From abf0acbec7d02f687e3433bcd8dead7a3e41c563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Mon, 7 Jul 2025 01:41:59 +0200 Subject: [PATCH 01/13] Update generated cpp files created by cimgen - Fix custom namespace in cpp reader (e.g. entsoe in CGMES2, eu in CGMES3)) - Fix custom namespace in cpp writer (e.g. "entsoe" in CGMES2, "eu" in CGMES3; using new generated functions getClassNamespaceUrl and getAttributeNamespaceUrl) - Add function isAssignableFrom to fix parsing objects with changing types (e.g. first as Equipment, than as PowerTransformer) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- CGMES_2.4.13_18DEC2013/ACDCConverter.cpp | 214 +++++--- CGMES_2.4.13_18DEC2013/ACDCConverter.hpp | 17 +- .../ACDCConverterDCTerminal.cpp | 88 +++- .../ACDCConverterDCTerminal.hpp | 17 +- CGMES_2.4.13_18DEC2013/ACDCTerminal.cpp | 110 ++-- CGMES_2.4.13_18DEC2013/ACDCTerminal.hpp | 17 +- CGMES_2.4.13_18DEC2013/ACLineSegment.cpp | 130 +++-- CGMES_2.4.13_18DEC2013/ACLineSegment.hpp | 17 +- CGMES_2.4.13_18DEC2013/Accumulator.cpp | 84 ++- CGMES_2.4.13_18DEC2013/Accumulator.hpp | 17 +- CGMES_2.4.13_18DEC2013/AccumulatorLimit.cpp | 88 +++- CGMES_2.4.13_18DEC2013/AccumulatorLimit.hpp | 17 +- .../AccumulatorLimitSet.cpp | 92 +++- .../AccumulatorLimitSet.hpp | 17 +- CGMES_2.4.13_18DEC2013/AccumulatorReset.cpp | 82 ++- CGMES_2.4.13_18DEC2013/AccumulatorReset.hpp | 17 +- CGMES_2.4.13_18DEC2013/AccumulatorValue.cpp | 92 +++- CGMES_2.4.13_18DEC2013/AccumulatorValue.hpp | 17 +- CGMES_2.4.13_18DEC2013/ActivePowerLimit.cpp | 82 ++- CGMES_2.4.13_18DEC2013/ActivePowerLimit.hpp | 17 +- CGMES_2.4.13_18DEC2013/Analog.cpp | 90 +++- CGMES_2.4.13_18DEC2013/Analog.hpp | 17 +- CGMES_2.4.13_18DEC2013/AnalogControl.cpp | 94 +++- CGMES_2.4.13_18DEC2013/AnalogControl.hpp | 17 +- CGMES_2.4.13_18DEC2013/AnalogLimit.cpp | 88 +++- CGMES_2.4.13_18DEC2013/AnalogLimit.hpp | 17 +- CGMES_2.4.13_18DEC2013/AnalogLimitSet.cpp | 92 +++- CGMES_2.4.13_18DEC2013/AnalogLimitSet.hpp | 17 +- CGMES_2.4.13_18DEC2013/AnalogValue.cpp | 92 +++- CGMES_2.4.13_18DEC2013/AnalogValue.hpp | 17 +- CGMES_2.4.13_18DEC2013/ApparentPowerLimit.cpp | 82 ++- CGMES_2.4.13_18DEC2013/ApparentPowerLimit.hpp | 17 +- .../AsynchronousMachine.cpp | 144 +++-- .../AsynchronousMachine.hpp | 17 +- .../AsynchronousMachineDynamics.cpp | 94 +++- .../AsynchronousMachineDynamics.hpp | 17 +- .../AsynchronousMachineEquivalentCircuit.cpp | 106 ++-- .../AsynchronousMachineEquivalentCircuit.hpp | 17 +- ...ynchronousMachineTimeConstantReactance.cpp | 106 ++-- ...ynchronousMachineTimeConstantReactance.hpp | 17 +- .../AsynchronousMachineUserDefined.cpp | 86 ++- .../AsynchronousMachineUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/BaseVoltage.cpp | 104 +++- CGMES_2.4.13_18DEC2013/BaseVoltage.hpp | 17 +- .../BasicIntervalSchedule.cpp | 94 +++- .../BasicIntervalSchedule.hpp | 17 +- CGMES_2.4.13_18DEC2013/Bay.cpp | 82 ++- CGMES_2.4.13_18DEC2013/Bay.hpp | 17 +- CGMES_2.4.13_18DEC2013/Breaker.cpp | 78 ++- CGMES_2.4.13_18DEC2013/Breaker.hpp | 17 +- CGMES_2.4.13_18DEC2013/BusNameMarker.cpp | 92 +++- CGMES_2.4.13_18DEC2013/BusNameMarker.hpp | 17 +- CGMES_2.4.13_18DEC2013/BusbarSection.cpp | 82 ++- CGMES_2.4.13_18DEC2013/BusbarSection.hpp | 17 +- CGMES_2.4.13_18DEC2013/Command.cpp | 100 +++- CGMES_2.4.13_18DEC2013/Command.hpp | 17 +- .../ConductingEquipment.cpp | 98 +++- .../ConductingEquipment.hpp | 17 +- CGMES_2.4.13_18DEC2013/Conductor.cpp | 82 ++- CGMES_2.4.13_18DEC2013/Conductor.hpp | 17 +- CGMES_2.4.13_18DEC2013/ConformLoad.cpp | 82 ++- CGMES_2.4.13_18DEC2013/ConformLoad.hpp | 17 +- CGMES_2.4.13_18DEC2013/ConformLoadGroup.cpp | 84 ++- CGMES_2.4.13_18DEC2013/ConformLoadGroup.hpp | 17 +- .../ConformLoadSchedule.cpp | 82 ++- .../ConformLoadSchedule.hpp | 17 +- CGMES_2.4.13_18DEC2013/ConnectivityNode.cpp | 140 +++-- CGMES_2.4.13_18DEC2013/ConnectivityNode.hpp | 17 +- .../ConnectivityNodeContainer.cpp | 90 +++- .../ConnectivityNodeContainer.hpp | 17 +- CGMES_2.4.13_18DEC2013/Connector.cpp | 78 ++- CGMES_2.4.13_18DEC2013/Connector.hpp | 17 +- CGMES_2.4.13_18DEC2013/Control.cpp | 112 ++-- CGMES_2.4.13_18DEC2013/Control.hpp | 17 +- CGMES_2.4.13_18DEC2013/ControlArea.cpp | 112 ++-- CGMES_2.4.13_18DEC2013/ControlArea.hpp | 17 +- .../ControlAreaGeneratingUnit.cpp | 88 +++- .../ControlAreaGeneratingUnit.hpp | 17 +- CGMES_2.4.13_18DEC2013/CoordinateSystem.cpp | 86 ++- CGMES_2.4.13_18DEC2013/CoordinateSystem.hpp | 17 +- CGMES_2.4.13_18DEC2013/CsConverter.cpp | 164 +++--- CGMES_2.4.13_18DEC2013/CsConverter.hpp | 17 +- CGMES_2.4.13_18DEC2013/CurrentLimit.cpp | 82 ++- CGMES_2.4.13_18DEC2013/CurrentLimit.hpp | 17 +- CGMES_2.4.13_18DEC2013/Curve.cpp | 104 +++- CGMES_2.4.13_18DEC2013/Curve.hpp | 17 +- CGMES_2.4.13_18DEC2013/CurveData.cpp | 100 +++- CGMES_2.4.13_18DEC2013/CurveData.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCBaseTerminal.cpp | 90 +++- CGMES_2.4.13_18DEC2013/DCBaseTerminal.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCBreaker.cpp | 76 ++- CGMES_2.4.13_18DEC2013/DCBreaker.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCBusbar.cpp | 76 ++- CGMES_2.4.13_18DEC2013/DCBusbar.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCChopper.cpp | 76 ++- CGMES_2.4.13_18DEC2013/DCChopper.hpp | 17 +- .../DCConductingEquipment.cpp | 82 ++- .../DCConductingEquipment.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCConverterUnit.cpp | 88 +++- CGMES_2.4.13_18DEC2013/DCConverterUnit.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCDisconnector.cpp | 76 ++- CGMES_2.4.13_18DEC2013/DCDisconnector.hpp | 17 +- .../DCEquipmentContainer.cpp | 82 ++- .../DCEquipmentContainer.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCGround.cpp | 76 ++- CGMES_2.4.13_18DEC2013/DCGround.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCLine.cpp | 82 ++- CGMES_2.4.13_18DEC2013/DCLine.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCLineSegment.cpp | 106 ++-- CGMES_2.4.13_18DEC2013/DCLineSegment.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCNode.cpp | 86 ++- CGMES_2.4.13_18DEC2013/DCNode.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCSeriesDevice.cpp | 94 +++- CGMES_2.4.13_18DEC2013/DCSeriesDevice.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCShunt.cpp | 94 +++- CGMES_2.4.13_18DEC2013/DCShunt.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCSwitch.cpp | 76 ++- CGMES_2.4.13_18DEC2013/DCSwitch.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCTerminal.cpp | 84 ++- CGMES_2.4.13_18DEC2013/DCTerminal.hpp | 17 +- .../DCTopologicalIsland.cpp | 82 ++- .../DCTopologicalIsland.hpp | 17 +- CGMES_2.4.13_18DEC2013/DCTopologicalNode.cpp | 98 +++- CGMES_2.4.13_18DEC2013/DCTopologicalNode.hpp | 17 +- CGMES_2.4.13_18DEC2013/DayType.cpp | 80 ++- CGMES_2.4.13_18DEC2013/DayType.hpp | 17 +- CGMES_2.4.13_18DEC2013/Diagram.cpp | 116 ++-- CGMES_2.4.13_18DEC2013/Diagram.hpp | 17 +- .../DiagramLayoutVersion.cpp | 136 +++-- .../DiagramLayoutVersion.hpp | 17 +- CGMES_2.4.13_18DEC2013/DiagramObject.cpp | 132 +++-- CGMES_2.4.13_18DEC2013/DiagramObject.hpp | 17 +- .../DiagramObjectGluePoint.cpp | 80 ++- .../DiagramObjectGluePoint.hpp | 17 +- CGMES_2.4.13_18DEC2013/DiagramObjectPoint.cpp | 112 ++-- CGMES_2.4.13_18DEC2013/DiagramObjectPoint.hpp | 17 +- CGMES_2.4.13_18DEC2013/DiagramObjectStyle.cpp | 80 ++- CGMES_2.4.13_18DEC2013/DiagramObjectStyle.hpp | 17 +- CGMES_2.4.13_18DEC2013/DiagramStyle.cpp | 80 ++- CGMES_2.4.13_18DEC2013/DiagramStyle.hpp | 17 +- .../DiscExcContIEEEDEC1A.cpp | 184 ++++--- .../DiscExcContIEEEDEC1A.hpp | 17 +- .../DiscExcContIEEEDEC2A.cpp | 106 ++-- .../DiscExcContIEEEDEC2A.hpp | 17 +- .../DiscExcContIEEEDEC3A.cpp | 88 +++- .../DiscExcContIEEEDEC3A.hpp | 17 +- CGMES_2.4.13_18DEC2013/Disconnector.cpp | 78 ++- CGMES_2.4.13_18DEC2013/Disconnector.hpp | 17 +- ...DiscontinuousExcitationControlDynamics.cpp | 86 ++- ...DiscontinuousExcitationControlDynamics.hpp | 17 +- ...continuousExcitationControlUserDefined.cpp | 86 ++- ...continuousExcitationControlUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/Discrete.cpp | 86 ++- CGMES_2.4.13_18DEC2013/Discrete.hpp | 17 +- CGMES_2.4.13_18DEC2013/DiscreteValue.cpp | 92 +++- CGMES_2.4.13_18DEC2013/DiscreteValue.hpp | 17 +- .../DynamicsFunctionBlock.cpp | 82 ++- .../DynamicsFunctionBlock.hpp | 17 +- CGMES_2.4.13_18DEC2013/DynamicsVersion.cpp | 136 +++-- CGMES_2.4.13_18DEC2013/DynamicsVersion.hpp | 17 +- .../EarthFaultCompensator.cpp | 82 ++- .../EarthFaultCompensator.hpp | 17 +- CGMES_2.4.13_18DEC2013/EnergyArea.cpp | 80 ++- CGMES_2.4.13_18DEC2013/EnergyArea.hpp | 17 +- CGMES_2.4.13_18DEC2013/EnergyConsumer.cpp | 128 +++-- CGMES_2.4.13_18DEC2013/EnergyConsumer.hpp | 17 +- .../EnergySchedulingType.cpp | 82 ++- .../EnergySchedulingType.hpp | 17 +- CGMES_2.4.13_18DEC2013/EnergySource.cpp | 156 ++++-- CGMES_2.4.13_18DEC2013/EnergySource.hpp | 17 +- CGMES_2.4.13_18DEC2013/Equipment.cpp | 96 +++- CGMES_2.4.13_18DEC2013/Equipment.hpp | 17 +- .../EquipmentBoundaryVersion.cpp | 142 +++-- .../EquipmentBoundaryVersion.hpp | 17 +- CGMES_2.4.13_18DEC2013/EquipmentContainer.cpp | 82 ++- CGMES_2.4.13_18DEC2013/EquipmentContainer.hpp | 17 +- CGMES_2.4.13_18DEC2013/EquipmentVersion.cpp | 160 ++++-- CGMES_2.4.13_18DEC2013/EquipmentVersion.hpp | 17 +- CGMES_2.4.13_18DEC2013/EquivalentBranch.cpp | 172 +++--- CGMES_2.4.13_18DEC2013/EquivalentBranch.hpp | 17 +- .../EquivalentEquipment.cpp | 84 ++- .../EquivalentEquipment.hpp | 17 +- .../EquivalentInjection.cpp | 174 +++--- .../EquivalentInjection.hpp | 17 +- CGMES_2.4.13_18DEC2013/EquivalentNetwork.cpp | 80 ++- CGMES_2.4.13_18DEC2013/EquivalentNetwork.hpp | 17 +- CGMES_2.4.13_18DEC2013/EquivalentShunt.cpp | 88 +++- CGMES_2.4.13_18DEC2013/EquivalentShunt.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAC1A.cpp | 224 ++++---- CGMES_2.4.13_18DEC2013/ExcAC1A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAC2A.cpp | 260 +++++---- CGMES_2.4.13_18DEC2013/ExcAC2A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAC3A.cpp | 248 +++++---- CGMES_2.4.13_18DEC2013/ExcAC3A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAC4A.cpp | 130 +++-- CGMES_2.4.13_18DEC2013/ExcAC4A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAC5A.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/ExcAC5A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAC6A.cpp | 230 ++++---- CGMES_2.4.13_18DEC2013/ExcAC6A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAC8B.cpp | 254 +++++---- CGMES_2.4.13_18DEC2013/ExcAC8B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcANS.cpp | 160 ++++-- CGMES_2.4.13_18DEC2013/ExcANS.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAVR1.cpp | 148 ++++-- CGMES_2.4.13_18DEC2013/ExcAVR1.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAVR2.cpp | 154 ++++-- CGMES_2.4.13_18DEC2013/ExcAVR2.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAVR3.cpp | 148 ++++-- CGMES_2.4.13_18DEC2013/ExcAVR3.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAVR4.cpp | 160 ++++-- CGMES_2.4.13_18DEC2013/ExcAVR4.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAVR5.cpp | 94 +++- CGMES_2.4.13_18DEC2013/ExcAVR5.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcAVR7.cpp | 218 +++++--- CGMES_2.4.13_18DEC2013/ExcAVR7.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcBBC.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/ExcBBC.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcCZ.cpp | 136 +++-- CGMES_2.4.13_18DEC2013/ExcCZ.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcDC1A.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/ExcDC1A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcDC2A.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/ExcDC2A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcDC3A.cpp | 172 +++--- CGMES_2.4.13_18DEC2013/ExcDC3A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcDC3A1.cpp | 160 ++++-- CGMES_2.4.13_18DEC2013/ExcDC3A1.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcELIN1.cpp | 166 +++--- CGMES_2.4.13_18DEC2013/ExcELIN1.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcELIN2.cpp | 254 +++++---- CGMES_2.4.13_18DEC2013/ExcELIN2.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcHU.cpp | 148 ++++-- CGMES_2.4.13_18DEC2013/ExcHU.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.cpp | 218 +++++--- CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.cpp | 230 ++++---- CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.cpp | 130 +++-- CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.cpp | 160 ++++-- CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.cpp | 224 ++++---- CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.cpp | 248 +++++---- CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.cpp | 172 +++--- CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.cpp | 172 +++--- CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.cpp | 206 +++++--- CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEST1A.cpp | 206 +++++--- CGMES_2.4.13_18DEC2013/ExcIEEEST1A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEST2A.cpp | 154 ++++-- CGMES_2.4.13_18DEC2013/ExcIEEEST2A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEST3A.cpp | 212 +++++--- CGMES_2.4.13_18DEC2013/ExcIEEEST3A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEST4B.cpp | 172 +++--- CGMES_2.4.13_18DEC2013/ExcIEEEST4B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEST5B.cpp | 178 ++++--- CGMES_2.4.13_18DEC2013/ExcIEEEST5B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEST6B.cpp | 160 ++++-- CGMES_2.4.13_18DEC2013/ExcIEEEST6B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcIEEEST7B.cpp | 166 +++--- CGMES_2.4.13_18DEC2013/ExcIEEEST7B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcOEX3T.cpp | 206 +++++--- CGMES_2.4.13_18DEC2013/ExcOEX3T.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcPIC.cpp | 230 ++++---- CGMES_2.4.13_18DEC2013/ExcPIC.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcREXS.cpp | 308 ++++++----- CGMES_2.4.13_18DEC2013/ExcREXS.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcSCRX.cpp | 124 +++-- CGMES_2.4.13_18DEC2013/ExcSCRX.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcSEXS.cpp | 136 +++-- CGMES_2.4.13_18DEC2013/ExcSEXS.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcSK.cpp | 284 +++++----- CGMES_2.4.13_18DEC2013/ExcSK.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcST1A.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/ExcST1A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcST2A.cpp | 166 +++--- CGMES_2.4.13_18DEC2013/ExcST2A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcST3A.cpp | 212 +++++--- CGMES_2.4.13_18DEC2013/ExcST3A.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcST4B.cpp | 206 +++++--- CGMES_2.4.13_18DEC2013/ExcST4B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcST6B.cpp | 230 ++++---- CGMES_2.4.13_18DEC2013/ExcST6B.hpp | 17 +- CGMES_2.4.13_18DEC2013/ExcST7B.cpp | 172 +++--- CGMES_2.4.13_18DEC2013/ExcST7B.hpp | 17 +- .../ExcitationSystemDynamics.cpp | 112 ++-- .../ExcitationSystemDynamics.hpp | 17 +- .../ExcitationSystemUserDefined.cpp | 86 ++- .../ExcitationSystemUserDefined.hpp | 17 +- .../ExternalNetworkInjection.cpp | 202 ++++--- .../ExternalNetworkInjection.hpp | 17 +- CGMES_2.4.13_18DEC2013/FossilFuel.cpp | 88 +++- CGMES_2.4.13_18DEC2013/FossilFuel.hpp | 17 +- .../GenICompensationForGenJ.cpp | 100 +++- .../GenICompensationForGenJ.hpp | 17 +- CGMES_2.4.13_18DEC2013/GeneratingUnit.cpp | 202 ++++--- CGMES_2.4.13_18DEC2013/GeneratingUnit.hpp | 17 +- .../GeographicalLocationVersion.cpp | 136 +++-- .../GeographicalLocationVersion.hpp | 17 +- CGMES_2.4.13_18DEC2013/GeographicalRegion.cpp | 82 ++- CGMES_2.4.13_18DEC2013/GeographicalRegion.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovCT1.cpp | 308 ++++++----- CGMES_2.4.13_18DEC2013/GovCT1.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovCT2.cpp | 434 ++++++++------- CGMES_2.4.13_18DEC2013/GovCT2.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovGAST.cpp | 136 +++-- CGMES_2.4.13_18DEC2013/GovGAST.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovGAST1.cpp | 296 ++++++----- CGMES_2.4.13_18DEC2013/GovGAST1.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovGAST2.cpp | 284 +++++----- CGMES_2.4.13_18DEC2013/GovGAST2.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovGAST3.cpp | 218 +++++--- CGMES_2.4.13_18DEC2013/GovGAST3.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovGAST4.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/GovGAST4.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovGASTWD.cpp | 290 +++++----- CGMES_2.4.13_18DEC2013/GovGASTWD.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydro1.cpp | 160 ++++-- CGMES_2.4.13_18DEC2013/GovHydro1.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydro2.cpp | 266 ++++++---- CGMES_2.4.13_18DEC2013/GovHydro2.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydro3.cpp | 308 ++++++----- CGMES_2.4.13_18DEC2013/GovHydro3.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydro4.cpp | 320 +++++++----- CGMES_2.4.13_18DEC2013/GovHydro4.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroDD.cpp | 302 ++++++----- CGMES_2.4.13_18DEC2013/GovHydroDD.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroFrancis.cpp | 254 +++++---- CGMES_2.4.13_18DEC2013/GovHydroFrancis.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroIEEE0.cpp | 124 +++-- CGMES_2.4.13_18DEC2013/GovHydroIEEE0.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroIEEE2.cpp | 248 +++++---- CGMES_2.4.13_18DEC2013/GovHydroIEEE2.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroPID.cpp | 290 +++++----- CGMES_2.4.13_18DEC2013/GovHydroPID.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroPID2.cpp | 224 ++++---- CGMES_2.4.13_18DEC2013/GovHydroPID2.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroPelton.cpp | 260 +++++---- CGMES_2.4.13_18DEC2013/GovHydroPelton.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroR.cpp | 344 ++++++------ CGMES_2.4.13_18DEC2013/GovHydroR.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroWEH.cpp | 398 +++++++------- CGMES_2.4.13_18DEC2013/GovHydroWEH.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovHydroWPID.cpp | 224 ++++---- CGMES_2.4.13_18DEC2013/GovHydroWPID.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteam0.cpp | 124 +++-- CGMES_2.4.13_18DEC2013/GovSteam0.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteam1.cpp | 326 +++++++----- CGMES_2.4.13_18DEC2013/GovSteam1.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteam2.cpp | 124 +++-- CGMES_2.4.13_18DEC2013/GovSteam2.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteamCC.cpp | 178 ++++--- CGMES_2.4.13_18DEC2013/GovSteamCC.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteamEU.cpp | 302 ++++++----- CGMES_2.4.13_18DEC2013/GovSteamEU.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteamFV2.cpp | 154 ++++-- CGMES_2.4.13_18DEC2013/GovSteamFV2.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteamFV3.cpp | 206 +++++--- CGMES_2.4.13_18DEC2013/GovSteamFV3.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteamFV4.cpp | 398 +++++++------- CGMES_2.4.13_18DEC2013/GovSteamFV4.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteamIEEE1.cpp | 218 +++++--- CGMES_2.4.13_18DEC2013/GovSteamIEEE1.hpp | 17 +- CGMES_2.4.13_18DEC2013/GovSteamSGO.cpp | 148 ++++-- CGMES_2.4.13_18DEC2013/GovSteamSGO.hpp | 17 +- .../GrossToNetActivePowerCurve.cpp | 82 ++- .../GrossToNetActivePowerCurve.hpp | 17 +- CGMES_2.4.13_18DEC2013/Ground.cpp | 76 ++- CGMES_2.4.13_18DEC2013/Ground.hpp | 17 +- CGMES_2.4.13_18DEC2013/GroundDisconnector.cpp | 78 ++- CGMES_2.4.13_18DEC2013/GroundDisconnector.hpp | 17 +- CGMES_2.4.13_18DEC2013/GroundingImpedance.cpp | 82 ++- CGMES_2.4.13_18DEC2013/GroundingImpedance.hpp | 17 +- .../HydroGeneratingUnit.cpp | 90 +++- .../HydroGeneratingUnit.hpp | 17 +- CGMES_2.4.13_18DEC2013/HydroPowerPlant.cpp | 90 +++- CGMES_2.4.13_18DEC2013/HydroPowerPlant.hpp | 17 +- CGMES_2.4.13_18DEC2013/HydroPump.cpp | 88 +++- CGMES_2.4.13_18DEC2013/HydroPump.hpp | 17 +- CGMES_2.4.13_18DEC2013/IdentifiedObject.cpp | 130 +++-- CGMES_2.4.13_18DEC2013/IdentifiedObject.hpp | 17 +- CGMES_2.4.13_18DEC2013/Junction.cpp | 78 ++- CGMES_2.4.13_18DEC2013/Junction.hpp | 17 +- CGMES_2.4.13_18DEC2013/Limit.cpp | 76 ++- CGMES_2.4.13_18DEC2013/Limit.hpp | 17 +- CGMES_2.4.13_18DEC2013/LimitSet.cpp | 76 ++- CGMES_2.4.13_18DEC2013/LimitSet.hpp | 17 +- CGMES_2.4.13_18DEC2013/Line.cpp | 84 ++- CGMES_2.4.13_18DEC2013/Line.hpp | 17 +- .../LinearShuntCompensator.cpp | 102 +++- .../LinearShuntCompensator.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadAggregate.cpp | 84 ++- CGMES_2.4.13_18DEC2013/LoadAggregate.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadArea.cpp | 80 ++- CGMES_2.4.13_18DEC2013/LoadArea.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadBreakSwitch.cpp | 78 ++- CGMES_2.4.13_18DEC2013/LoadBreakSwitch.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadComposite.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/LoadComposite.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadDynamics.cpp | 80 ++- CGMES_2.4.13_18DEC2013/LoadDynamics.hpp | 17 +- .../LoadGenericNonLinear.cpp | 130 +++-- .../LoadGenericNonLinear.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadGroup.cpp | 82 ++- CGMES_2.4.13_18DEC2013/LoadGroup.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadMotor.cpp | 160 ++++-- CGMES_2.4.13_18DEC2013/LoadMotor.hpp | 17 +- .../LoadResponseCharacteristic.cpp | 146 ++++-- .../LoadResponseCharacteristic.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadStatic.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/LoadStatic.hpp | 17 +- CGMES_2.4.13_18DEC2013/LoadUserDefined.cpp | 86 ++- CGMES_2.4.13_18DEC2013/LoadUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/Location.cpp | 92 +++- CGMES_2.4.13_18DEC2013/Location.hpp | 17 +- CGMES_2.4.13_18DEC2013/Measurement.cpp | 112 ++-- CGMES_2.4.13_18DEC2013/Measurement.hpp | 17 +- CGMES_2.4.13_18DEC2013/MeasurementValue.cpp | 98 +++- CGMES_2.4.13_18DEC2013/MeasurementValue.hpp | 17 +- .../MeasurementValueQuality.cpp | 82 ++- .../MeasurementValueQuality.hpp | 17 +- .../MeasurementValueSource.cpp | 80 ++- .../MeasurementValueSource.hpp | 17 +- CGMES_2.4.13_18DEC2013/MechLoad1.cpp | 100 +++- CGMES_2.4.13_18DEC2013/MechLoad1.hpp | 17 +- .../MechanicalLoadDynamics.cpp | 88 +++- .../MechanicalLoadDynamics.hpp | 17 +- .../MechanicalLoadUserDefined.cpp | 86 ++- .../MechanicalLoadUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/MutualCoupling.cpp | 136 +++-- CGMES_2.4.13_18DEC2013/MutualCoupling.hpp | 17 +- CGMES_2.4.13_18DEC2013/NonConformLoad.cpp | 82 ++- CGMES_2.4.13_18DEC2013/NonConformLoad.hpp | 17 +- .../NonConformLoadGroup.cpp | 84 ++- .../NonConformLoadGroup.hpp | 17 +- .../NonConformLoadSchedule.cpp | 82 ++- .../NonConformLoadSchedule.hpp | 17 +- .../NonlinearShuntCompensator.cpp | 82 ++- .../NonlinearShuntCompensator.hpp | 17 +- .../NonlinearShuntCompensatorPoint.cpp | 112 ++-- .../NonlinearShuntCompensatorPoint.hpp | 17 +- .../NuclearGeneratingUnit.cpp | 78 ++- .../NuclearGeneratingUnit.hpp | 17 +- CGMES_2.4.13_18DEC2013/OperationalLimit.cpp | 88 +++- CGMES_2.4.13_18DEC2013/OperationalLimit.hpp | 17 +- .../OperationalLimitSet.cpp | 92 +++- .../OperationalLimitSet.hpp | 17 +- .../OperationalLimitType.cpp | 98 +++- .../OperationalLimitType.hpp | 17 +- CGMES_2.4.13_18DEC2013/OverexcLim2.cpp | 100 +++- CGMES_2.4.13_18DEC2013/OverexcLim2.hpp | 17 +- CGMES_2.4.13_18DEC2013/OverexcLimIEEE.cpp | 112 ++-- CGMES_2.4.13_18DEC2013/OverexcLimIEEE.hpp | 17 +- CGMES_2.4.13_18DEC2013/OverexcLimX1.cpp | 136 +++-- CGMES_2.4.13_18DEC2013/OverexcLimX1.hpp | 17 +- CGMES_2.4.13_18DEC2013/OverexcLimX2.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/OverexcLimX2.hpp | 17 +- .../OverexcitationLimiterDynamics.cpp | 82 ++- .../OverexcitationLimiterDynamics.hpp | 17 +- .../OverexcitationLimiterUserDefined.cpp | 86 ++- .../OverexcitationLimiterUserDefined.hpp | 17 +- .../PFVArControllerType1Dynamics.cpp | 90 +++- .../PFVArControllerType1Dynamics.hpp | 17 +- .../PFVArControllerType1UserDefined.cpp | 86 ++- .../PFVArControllerType1UserDefined.hpp | 17 +- .../PFVArControllerType2Dynamics.cpp | 82 ++- .../PFVArControllerType2Dynamics.hpp | 17 +- .../PFVArControllerType2UserDefined.cpp | 86 ++- .../PFVArControllerType2UserDefined.hpp | 17 +- .../PFVArType1IEEEPFController.cpp | 124 +++-- .../PFVArType1IEEEPFController.hpp | 17 +- .../PFVArType1IEEEVArController.cpp | 112 ++-- .../PFVArType1IEEEVArController.hpp | 17 +- CGMES_2.4.13_18DEC2013/PFVArType2Common1.cpp | 106 ++-- CGMES_2.4.13_18DEC2013/PFVArType2Common1.hpp | 17 +- .../PFVArType2IEEEPFController.cpp | 118 +++-- .../PFVArType2IEEEPFController.hpp | 17 +- .../PFVArType2IEEEVArController.cpp | 118 +++-- .../PFVArType2IEEEVArController.hpp | 17 +- .../PerLengthDCLineParameter.cpp | 98 +++- .../PerLengthDCLineParameter.hpp | 17 +- CGMES_2.4.13_18DEC2013/PetersenCoil.cpp | 118 +++-- CGMES_2.4.13_18DEC2013/PetersenCoil.hpp | 17 +- CGMES_2.4.13_18DEC2013/PhaseTapChanger.cpp | 82 ++- CGMES_2.4.13_18DEC2013/PhaseTapChanger.hpp | 17 +- .../PhaseTapChangerAsymmetrical.cpp | 82 ++- .../PhaseTapChangerAsymmetrical.hpp | 17 +- .../PhaseTapChangerLinear.cpp | 94 +++- .../PhaseTapChangerLinear.hpp | 17 +- .../PhaseTapChangerNonLinear.cpp | 94 +++- .../PhaseTapChangerNonLinear.hpp | 17 +- .../PhaseTapChangerSymmetrical.cpp | 76 ++- .../PhaseTapChangerSymmetrical.hpp | 17 +- .../PhaseTapChangerTable.cpp | 84 ++- .../PhaseTapChangerTable.hpp | 17 +- .../PhaseTapChangerTablePoint.cpp | 88 +++- .../PhaseTapChangerTablePoint.hpp | 17 +- .../PhaseTapChangerTabular.cpp | 82 ++- .../PhaseTapChangerTabular.hpp | 17 +- CGMES_2.4.13_18DEC2013/PositionPoint.cpp | 106 ++-- CGMES_2.4.13_18DEC2013/PositionPoint.hpp | 17 +- .../PowerSystemResource.cpp | 96 +++- .../PowerSystemResource.hpp | 17 +- .../PowerSystemStabilizerDynamics.cpp | 86 ++- .../PowerSystemStabilizerDynamics.hpp | 17 +- .../PowerSystemStabilizerUserDefined.cpp | 86 ++- .../PowerSystemStabilizerUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/PowerTransformer.cpp | 116 ++-- CGMES_2.4.13_18DEC2013/PowerTransformer.hpp | 17 +- .../PowerTransformerEnd.cpp | 154 ++++-- .../PowerTransformerEnd.hpp | 17 +- .../ProprietaryParameterDynamics.cpp | 224 ++++---- .../ProprietaryParameterDynamics.hpp | 17 +- CGMES_2.4.13_18DEC2013/ProtectedSwitch.cpp | 78 ++- CGMES_2.4.13_18DEC2013/ProtectedSwitch.hpp | 17 +- CGMES_2.4.13_18DEC2013/Pss1.cpp | 166 +++--- CGMES_2.4.13_18DEC2013/Pss1.hpp | 17 +- CGMES_2.4.13_18DEC2013/Pss1A.cpp | 224 ++++---- CGMES_2.4.13_18DEC2013/Pss1A.hpp | 17 +- CGMES_2.4.13_18DEC2013/Pss2B.cpp | 278 ++++++---- CGMES_2.4.13_18DEC2013/Pss2B.hpp | 17 +- CGMES_2.4.13_18DEC2013/Pss2ST.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/Pss2ST.hpp | 17 +- CGMES_2.4.13_18DEC2013/Pss5.cpp | 178 ++++--- CGMES_2.4.13_18DEC2013/Pss5.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssELIN2.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/PssELIN2.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssIEEE1A.cpp | 148 ++++-- CGMES_2.4.13_18DEC2013/PssIEEE1A.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssIEEE2B.cpp | 254 +++++---- CGMES_2.4.13_18DEC2013/PssIEEE2B.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssIEEE3B.cpp | 206 +++++--- CGMES_2.4.13_18DEC2013/PssIEEE3B.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssIEEE4B.cpp | 458 ++++++++-------- CGMES_2.4.13_18DEC2013/PssIEEE4B.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssPTIST1.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/PssPTIST1.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssPTIST3.cpp | 296 ++++++----- CGMES_2.4.13_18DEC2013/PssPTIST3.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssSB4.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/PssSB4.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssSH.cpp | 154 ++++-- CGMES_2.4.13_18DEC2013/PssSH.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssSK.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/PssSK.hpp | 17 +- CGMES_2.4.13_18DEC2013/PssWECC.cpp | 184 ++++--- CGMES_2.4.13_18DEC2013/PssWECC.hpp | 17 +- CGMES_2.4.13_18DEC2013/Quality61850.cpp | 148 ++++-- CGMES_2.4.13_18DEC2013/Quality61850.hpp | 17 +- CGMES_2.4.13_18DEC2013/RaiseLowerCommand.cpp | 82 ++- CGMES_2.4.13_18DEC2013/RaiseLowerCommand.hpp | 17 +- CGMES_2.4.13_18DEC2013/RatioTapChanger.cpp | 100 +++- CGMES_2.4.13_18DEC2013/RatioTapChanger.hpp | 17 +- .../RatioTapChangerTable.cpp | 84 ++- .../RatioTapChangerTable.hpp | 17 +- .../RatioTapChangerTablePoint.cpp | 82 ++- .../RatioTapChangerTablePoint.hpp | 17 +- .../ReactiveCapabilityCurve.cpp | 84 ++- .../ReactiveCapabilityCurve.hpp | 17 +- .../RegularIntervalSchedule.cpp | 92 +++- .../RegularIntervalSchedule.hpp | 17 +- CGMES_2.4.13_18DEC2013/RegularTimePoint.cpp | 100 +++- CGMES_2.4.13_18DEC2013/RegularTimePoint.hpp | 17 +- CGMES_2.4.13_18DEC2013/RegulatingCondEq.cpp | 92 +++- CGMES_2.4.13_18DEC2013/RegulatingCondEq.hpp | 17 +- CGMES_2.4.13_18DEC2013/RegulatingControl.cpp | 128 +++-- CGMES_2.4.13_18DEC2013/RegulatingControl.hpp | 17 +- CGMES_2.4.13_18DEC2013/RegulationSchedule.cpp | 82 ++- CGMES_2.4.13_18DEC2013/RegulationSchedule.hpp | 17 +- CGMES_2.4.13_18DEC2013/RemoteInputSignal.cpp | 130 +++-- CGMES_2.4.13_18DEC2013/RemoteInputSignal.hpp | 17 +- CGMES_2.4.13_18DEC2013/ReportingGroup.cpp | 86 ++- CGMES_2.4.13_18DEC2013/ReportingGroup.hpp | 17 +- CGMES_2.4.13_18DEC2013/RotatingMachine.cpp | 120 +++-- CGMES_2.4.13_18DEC2013/RotatingMachine.hpp | 17 +- .../RotatingMachineDynamics.cpp | 112 ++-- .../RotatingMachineDynamics.hpp | 17 +- CGMES_2.4.13_18DEC2013/Season.cpp | 92 +++- CGMES_2.4.13_18DEC2013/Season.hpp | 17 +- .../SeasonDayTypeSchedule.cpp | 88 +++- .../SeasonDayTypeSchedule.hpp | 17 +- CGMES_2.4.13_18DEC2013/SeriesCompensator.cpp | 118 +++-- CGMES_2.4.13_18DEC2013/SeriesCompensator.hpp | 17 +- CGMES_2.4.13_18DEC2013/SetPoint.cpp | 88 +++- CGMES_2.4.13_18DEC2013/SetPoint.hpp | 17 +- CGMES_2.4.13_18DEC2013/ShuntCompensator.cpp | 138 +++-- CGMES_2.4.13_18DEC2013/ShuntCompensator.hpp | 17 +- .../SolarGeneratingUnit.cpp | 78 ++- .../SolarGeneratingUnit.hpp | 17 +- .../StateVariablesVersion.cpp | 136 +++-- .../StateVariablesVersion.hpp | 17 +- .../StaticVarCompensator.cpp | 114 ++-- .../StaticVarCompensator.hpp | 17 +- CGMES_2.4.13_18DEC2013/StationSupply.cpp | 76 ++- CGMES_2.4.13_18DEC2013/StationSupply.hpp | 17 +- .../SteadyStateHypothesisVersion.cpp | 136 +++-- .../SteadyStateHypothesisVersion.hpp | 17 +- CGMES_2.4.13_18DEC2013/StringMeasurement.cpp | 80 ++- CGMES_2.4.13_18DEC2013/StringMeasurement.hpp | 17 +- .../StringMeasurementValue.cpp | 88 +++- .../StringMeasurementValue.hpp | 17 +- .../SubGeographicalRegion.cpp | 96 +++- .../SubGeographicalRegion.hpp | 17 +- CGMES_2.4.13_18DEC2013/SubLoadArea.cpp | 86 ++- CGMES_2.4.13_18DEC2013/SubLoadArea.hpp | 17 +- CGMES_2.4.13_18DEC2013/Substation.cpp | 90 +++- CGMES_2.4.13_18DEC2013/Substation.hpp | 17 +- CGMES_2.4.13_18DEC2013/SvInjection.cpp | 94 +++- CGMES_2.4.13_18DEC2013/SvInjection.hpp | 17 +- CGMES_2.4.13_18DEC2013/SvPowerFlow.cpp | 94 +++- CGMES_2.4.13_18DEC2013/SvPowerFlow.hpp | 17 +- .../SvShuntCompensatorSections.cpp | 88 +++- .../SvShuntCompensatorSections.hpp | 17 +- CGMES_2.4.13_18DEC2013/SvStatus.cpp | 88 +++- CGMES_2.4.13_18DEC2013/SvStatus.hpp | 17 +- CGMES_2.4.13_18DEC2013/SvTapStep.cpp | 88 +++- CGMES_2.4.13_18DEC2013/SvTapStep.hpp | 17 +- CGMES_2.4.13_18DEC2013/SvVoltage.cpp | 94 +++- CGMES_2.4.13_18DEC2013/SvVoltage.hpp | 17 +- CGMES_2.4.13_18DEC2013/Switch.cpp | 106 ++-- CGMES_2.4.13_18DEC2013/Switch.hpp | 17 +- CGMES_2.4.13_18DEC2013/SwitchSchedule.cpp | 82 ++- CGMES_2.4.13_18DEC2013/SwitchSchedule.hpp | 17 +- CGMES_2.4.13_18DEC2013/SynchronousMachine.cpp | 232 ++++---- CGMES_2.4.13_18DEC2013/SynchronousMachine.hpp | 17 +- .../SynchronousMachineDetailed.cpp | 106 ++-- .../SynchronousMachineDetailed.hpp | 17 +- .../SynchronousMachineDynamics.cpp | 98 +++- .../SynchronousMachineDynamics.hpp | 17 +- .../SynchronousMachineEquivalentCircuit.cpp | 142 +++-- .../SynchronousMachineEquivalentCircuit.hpp | 17 +- .../SynchronousMachineSimplified.cpp | 76 ++- .../SynchronousMachineSimplified.hpp | 17 +- ...ynchronousMachineTimeConstantReactance.cpp | 160 ++++-- ...ynchronousMachineTimeConstantReactance.hpp | 17 +- .../SynchronousMachineUserDefined.cpp | 86 ++- .../SynchronousMachineUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/TapChanger.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/TapChanger.hpp | 17 +- CGMES_2.4.13_18DEC2013/TapChangerControl.cpp | 80 ++- CGMES_2.4.13_18DEC2013/TapChangerControl.hpp | 17 +- .../TapChangerTablePoint.cpp | 112 ++-- .../TapChangerTablePoint.hpp | 17 +- CGMES_2.4.13_18DEC2013/TapSchedule.cpp | 82 ++- CGMES_2.4.13_18DEC2013/TapSchedule.hpp | 17 +- CGMES_2.4.13_18DEC2013/Terminal.cpp | 142 +++-- CGMES_2.4.13_18DEC2013/Terminal.hpp | 17 +- CGMES_2.4.13_18DEC2013/TextDiagramObject.cpp | 82 ++- CGMES_2.4.13_18DEC2013/TextDiagramObject.hpp | 17 +- .../ThermalGeneratingUnit.cpp | 82 ++- .../ThermalGeneratingUnit.hpp | 17 +- CGMES_2.4.13_18DEC2013/TieFlow.cpp | 94 +++- CGMES_2.4.13_18DEC2013/TieFlow.hpp | 17 +- CGMES_2.4.13_18DEC2013/TopologicalIsland.cpp | 88 +++- CGMES_2.4.13_18DEC2013/TopologicalIsland.hpp | 17 +- CGMES_2.4.13_18DEC2013/TopologicalNode.cpp | 164 +++--- CGMES_2.4.13_18DEC2013/TopologicalNode.hpp | 17 +- .../TopologyBoundaryVersion.cpp | 136 +++-- .../TopologyBoundaryVersion.hpp | 17 +- CGMES_2.4.13_18DEC2013/TopologyVersion.cpp | 136 +++-- CGMES_2.4.13_18DEC2013/TopologyVersion.hpp | 17 +- CGMES_2.4.13_18DEC2013/TransformerEnd.cpp | 120 +++-- CGMES_2.4.13_18DEC2013/TransformerEnd.hpp | 17 +- CGMES_2.4.13_18DEC2013/TurbLCFB1.cpp | 148 ++++-- CGMES_2.4.13_18DEC2013/TurbLCFB1.hpp | 17 +- .../TurbineGovernorDynamics.cpp | 92 +++- .../TurbineGovernorDynamics.hpp | 17 +- .../TurbineGovernorUserDefined.cpp | 86 ++- .../TurbineGovernorUserDefined.hpp | 17 +- .../TurbineLoadControllerDynamics.cpp | 82 ++- .../TurbineLoadControllerDynamics.hpp | 17 +- .../TurbineLoadControllerUserDefined.cpp | 86 ++- .../TurbineLoadControllerUserDefined.hpp | 17 +- .../UnderexcLim2Simplified.cpp | 118 +++-- .../UnderexcLim2Simplified.hpp | 17 +- CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.cpp | 166 +++--- CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.hpp | 17 +- CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.cpp | 332 +++++++----- CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.hpp | 17 +- CGMES_2.4.13_18DEC2013/UnderexcLimX1.cpp | 112 ++-- CGMES_2.4.13_18DEC2013/UnderexcLimX1.hpp | 17 +- CGMES_2.4.13_18DEC2013/UnderexcLimX2.cpp | 118 +++-- CGMES_2.4.13_18DEC2013/UnderexcLimX2.hpp | 17 +- .../UnderexcitationLimiterDynamics.cpp | 86 ++- .../UnderexcitationLimiterDynamics.hpp | 17 +- .../UnderexcitationLimiterUserDefined.cpp | 86 ++- .../UnderexcitationLimiterUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/VAdjIEEE.cpp | 112 ++-- CGMES_2.4.13_18DEC2013/VAdjIEEE.hpp | 17 +- CGMES_2.4.13_18DEC2013/VCompIEEEType1.cpp | 94 +++- CGMES_2.4.13_18DEC2013/VCompIEEEType1.hpp | 17 +- CGMES_2.4.13_18DEC2013/VCompIEEEType2.cpp | 86 ++- CGMES_2.4.13_18DEC2013/VCompIEEEType2.hpp | 17 +- CGMES_2.4.13_18DEC2013/ValueAliasSet.cpp | 92 +++- CGMES_2.4.13_18DEC2013/ValueAliasSet.hpp | 17 +- CGMES_2.4.13_18DEC2013/ValueToAlias.cpp | 88 +++- CGMES_2.4.13_18DEC2013/ValueToAlias.hpp | 17 +- CGMES_2.4.13_18DEC2013/VisibilityLayer.cpp | 88 +++- CGMES_2.4.13_18DEC2013/VisibilityLayer.hpp | 17 +- .../VoltageAdjusterDynamics.cpp | 82 ++- .../VoltageAdjusterDynamics.hpp | 17 +- .../VoltageAdjusterUserDefined.cpp | 86 ++- .../VoltageAdjusterUserDefined.hpp | 17 +- .../VoltageCompensatorDynamics.cpp | 86 ++- .../VoltageCompensatorDynamics.hpp | 17 +- .../VoltageCompensatorUserDefined.cpp | 86 ++- .../VoltageCompensatorUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/VoltageLevel.cpp | 104 +++- CGMES_2.4.13_18DEC2013/VoltageLevel.hpp | 17 +- CGMES_2.4.13_18DEC2013/VoltageLimit.cpp | 82 ++- CGMES_2.4.13_18DEC2013/VoltageLimit.hpp | 17 +- CGMES_2.4.13_18DEC2013/VsCapabilityCurve.cpp | 80 ++- CGMES_2.4.13_18DEC2013/VsCapabilityCurve.hpp | 17 +- CGMES_2.4.13_18DEC2013/VsConverter.cpp | 152 ++++-- CGMES_2.4.13_18DEC2013/VsConverter.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindAeroConstIEC.cpp | 80 ++- CGMES_2.4.13_18DEC2013/WindAeroConstIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.cpp | 112 ++-- CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.cpp | 114 ++-- CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindContPType3IEC.cpp | 226 ++++---- CGMES_2.4.13_18DEC2013/WindContPType3IEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindContPType4aIEC.cpp | 98 +++- CGMES_2.4.13_18DEC2013/WindContPType4aIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindContPType4bIEC.cpp | 104 +++- CGMES_2.4.13_18DEC2013/WindContPType4bIEC.hpp | 17 +- .../WindContPitchAngleIEC.cpp | 140 +++-- .../WindContPitchAngleIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindContQIEC.cpp | 252 +++++---- CGMES_2.4.13_18DEC2013/WindContQIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindContRotorRIEC.cpp | 132 +++-- CGMES_2.4.13_18DEC2013/WindContRotorRIEC.hpp | 17 +- .../WindDynamicsLookupTable.cpp | 124 +++-- .../WindDynamicsLookupTable.hpp | 17 +- .../WindGenTurbineType1IEC.cpp | 82 ++- .../WindGenTurbineType1IEC.hpp | 17 +- .../WindGenTurbineType2IEC.cpp | 88 +++- .../WindGenTurbineType2IEC.hpp | 17 +- .../WindGenTurbineType3IEC.cpp | 112 ++-- .../WindGenTurbineType3IEC.hpp | 17 +- .../WindGenTurbineType3aIEC.cpp | 94 +++- .../WindGenTurbineType3aIEC.hpp | 17 +- .../WindGenTurbineType3bIEC.cpp | 106 ++-- .../WindGenTurbineType3bIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindGenType4IEC.cpp | 100 +++- CGMES_2.4.13_18DEC2013/WindGenType4IEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindGeneratingUnit.cpp | 84 ++- CGMES_2.4.13_18DEC2013/WindGeneratingUnit.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindMechIEC.cpp | 114 ++-- CGMES_2.4.13_18DEC2013/WindMechIEC.hpp | 17 +- .../WindPitchContEmulIEC.cpp | 140 +++-- .../WindPitchContEmulIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindPlantDynamics.cpp | 86 ++- CGMES_2.4.13_18DEC2013/WindPlantDynamics.hpp | 17 +- .../WindPlantFreqPcontrolIEC.cpp | 144 +++-- .../WindPlantFreqPcontrolIEC.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindPlantIEC.cpp | 88 +++- CGMES_2.4.13_18DEC2013/WindPlantIEC.hpp | 17 +- .../WindPlantReactiveControlIEC.cpp | 158 ++++-- .../WindPlantReactiveControlIEC.hpp | 17 +- .../WindPlantUserDefined.cpp | 86 ++- .../WindPlantUserDefined.hpp | 17 +- CGMES_2.4.13_18DEC2013/WindProtectionIEC.cpp | 132 +++-- CGMES_2.4.13_18DEC2013/WindProtectionIEC.hpp | 17 +- .../WindTurbineType1or2Dynamics.cpp | 88 +++- .../WindTurbineType1or2Dynamics.hpp | 17 +- .../WindTurbineType1or2IEC.cpp | 88 +++- .../WindTurbineType1or2IEC.hpp | 17 +- .../WindTurbineType3or4Dynamics.cpp | 94 +++- .../WindTurbineType3or4Dynamics.hpp | 17 +- .../WindTurbineType3or4IEC.cpp | 94 +++- .../WindTurbineType3or4IEC.hpp | 17 +- .../WindTurbineType4aIEC.cpp | 82 ++- .../WindTurbineType4aIEC.hpp | 17 +- .../WindTurbineType4bIEC.cpp | 88 +++- .../WindTurbineType4bIEC.hpp | 17 +- .../WindType1or2UserDefined.cpp | 86 ++- .../WindType1or2UserDefined.hpp | 17 +- .../WindType3or4UserDefined.cpp | 86 ++- .../WindType3or4UserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/ACDCConverter.cpp | 208 +++++--- CGMES_2.4.15_16FEB2016/ACDCConverter.hpp | 17 +- .../ACDCConverterDCTerminal.cpp | 92 +++- .../ACDCConverterDCTerminal.hpp | 17 +- CGMES_2.4.15_16FEB2016/ACDCTerminal.cpp | 110 ++-- CGMES_2.4.15_16FEB2016/ACDCTerminal.hpp | 17 +- CGMES_2.4.15_16FEB2016/ACLineSegment.cpp | 130 +++-- CGMES_2.4.15_16FEB2016/ACLineSegment.hpp | 17 +- CGMES_2.4.15_16FEB2016/Accumulator.cpp | 84 ++- CGMES_2.4.15_16FEB2016/Accumulator.hpp | 17 +- CGMES_2.4.15_16FEB2016/AccumulatorLimit.cpp | 88 +++- CGMES_2.4.15_16FEB2016/AccumulatorLimit.hpp | 17 +- .../AccumulatorLimitSet.cpp | 86 ++- .../AccumulatorLimitSet.hpp | 17 +- CGMES_2.4.15_16FEB2016/AccumulatorReset.cpp | 82 ++- CGMES_2.4.15_16FEB2016/AccumulatorReset.hpp | 17 +- CGMES_2.4.15_16FEB2016/AccumulatorValue.cpp | 92 +++- CGMES_2.4.15_16FEB2016/AccumulatorValue.hpp | 17 +- CGMES_2.4.15_16FEB2016/ActivePowerLimit.cpp | 82 ++- CGMES_2.4.15_16FEB2016/ActivePowerLimit.hpp | 17 +- CGMES_2.4.15_16FEB2016/Analog.cpp | 90 +++- CGMES_2.4.15_16FEB2016/Analog.hpp | 17 +- CGMES_2.4.15_16FEB2016/AnalogControl.cpp | 94 +++- CGMES_2.4.15_16FEB2016/AnalogControl.hpp | 17 +- CGMES_2.4.15_16FEB2016/AnalogLimit.cpp | 88 +++- CGMES_2.4.15_16FEB2016/AnalogLimit.hpp | 17 +- CGMES_2.4.15_16FEB2016/AnalogLimitSet.cpp | 86 ++- CGMES_2.4.15_16FEB2016/AnalogLimitSet.hpp | 17 +- CGMES_2.4.15_16FEB2016/AnalogValue.cpp | 92 +++- CGMES_2.4.15_16FEB2016/AnalogValue.hpp | 17 +- CGMES_2.4.15_16FEB2016/ApparentPowerLimit.cpp | 82 ++- CGMES_2.4.15_16FEB2016/ApparentPowerLimit.hpp | 17 +- .../AsynchronousMachine.cpp | 144 +++-- .../AsynchronousMachine.hpp | 17 +- .../AsynchronousMachineDynamics.cpp | 94 +++- .../AsynchronousMachineDynamics.hpp | 17 +- .../AsynchronousMachineEquivalentCircuit.cpp | 106 ++-- .../AsynchronousMachineEquivalentCircuit.hpp | 17 +- ...ynchronousMachineTimeConstantReactance.cpp | 106 ++-- ...ynchronousMachineTimeConstantReactance.hpp | 17 +- .../AsynchronousMachineUserDefined.cpp | 86 ++- .../AsynchronousMachineUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/BaseVoltage.cpp | 104 +++- CGMES_2.4.15_16FEB2016/BaseVoltage.hpp | 17 +- .../BasicIntervalSchedule.cpp | 94 +++- .../BasicIntervalSchedule.hpp | 17 +- CGMES_2.4.15_16FEB2016/Bay.cpp | 82 ++- CGMES_2.4.15_16FEB2016/Bay.hpp | 17 +- CGMES_2.4.15_16FEB2016/Breaker.cpp | 78 ++- CGMES_2.4.15_16FEB2016/Breaker.hpp | 17 +- CGMES_2.4.15_16FEB2016/BusNameMarker.cpp | 92 +++- CGMES_2.4.15_16FEB2016/BusNameMarker.hpp | 17 +- CGMES_2.4.15_16FEB2016/BusbarSection.cpp | 82 ++- CGMES_2.4.15_16FEB2016/BusbarSection.hpp | 17 +- CGMES_2.4.15_16FEB2016/Command.cpp | 100 +++- CGMES_2.4.15_16FEB2016/Command.hpp | 17 +- .../ConductingEquipment.cpp | 98 +++- .../ConductingEquipment.hpp | 17 +- CGMES_2.4.15_16FEB2016/Conductor.cpp | 82 ++- CGMES_2.4.15_16FEB2016/Conductor.hpp | 17 +- CGMES_2.4.15_16FEB2016/ConformLoad.cpp | 84 ++- CGMES_2.4.15_16FEB2016/ConformLoad.hpp | 17 +- CGMES_2.4.15_16FEB2016/ConformLoadGroup.cpp | 84 ++- CGMES_2.4.15_16FEB2016/ConformLoadGroup.hpp | 17 +- .../ConformLoadSchedule.cpp | 82 ++- .../ConformLoadSchedule.hpp | 17 +- CGMES_2.4.15_16FEB2016/ConnectivityNode.cpp | 140 +++-- CGMES_2.4.15_16FEB2016/ConnectivityNode.hpp | 17 +- .../ConnectivityNodeContainer.cpp | 90 +++- .../ConnectivityNodeContainer.hpp | 17 +- CGMES_2.4.15_16FEB2016/Connector.cpp | 78 ++- CGMES_2.4.15_16FEB2016/Connector.hpp | 17 +- CGMES_2.4.15_16FEB2016/Control.cpp | 112 ++-- CGMES_2.4.15_16FEB2016/Control.hpp | 17 +- CGMES_2.4.15_16FEB2016/ControlArea.cpp | 112 ++-- CGMES_2.4.15_16FEB2016/ControlArea.hpp | 17 +- .../ControlAreaGeneratingUnit.cpp | 88 +++- .../ControlAreaGeneratingUnit.hpp | 17 +- CGMES_2.4.15_16FEB2016/CoordinateSystem.cpp | 86 ++- CGMES_2.4.15_16FEB2016/CoordinateSystem.hpp | 17 +- CGMES_2.4.15_16FEB2016/CsConverter.cpp | 164 +++--- CGMES_2.4.15_16FEB2016/CsConverter.hpp | 17 +- CGMES_2.4.15_16FEB2016/CurrentLimit.cpp | 82 ++- CGMES_2.4.15_16FEB2016/CurrentLimit.hpp | 17 +- CGMES_2.4.15_16FEB2016/Curve.cpp | 104 +++- CGMES_2.4.15_16FEB2016/Curve.hpp | 17 +- CGMES_2.4.15_16FEB2016/CurveData.cpp | 100 +++- CGMES_2.4.15_16FEB2016/CurveData.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCBaseTerminal.cpp | 92 +++- CGMES_2.4.15_16FEB2016/DCBaseTerminal.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCBreaker.cpp | 76 ++- CGMES_2.4.15_16FEB2016/DCBreaker.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCBusbar.cpp | 76 ++- CGMES_2.4.15_16FEB2016/DCBusbar.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCChopper.cpp | 76 ++- CGMES_2.4.15_16FEB2016/DCChopper.hpp | 17 +- .../DCConductingEquipment.cpp | 80 ++- .../DCConductingEquipment.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCConverterUnit.cpp | 88 +++- CGMES_2.4.15_16FEB2016/DCConverterUnit.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCDisconnector.cpp | 76 ++- CGMES_2.4.15_16FEB2016/DCDisconnector.hpp | 17 +- .../DCEquipmentContainer.cpp | 86 ++- .../DCEquipmentContainer.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCGround.cpp | 88 +++- CGMES_2.4.15_16FEB2016/DCGround.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCLine.cpp | 82 ++- CGMES_2.4.15_16FEB2016/DCLine.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCLineSegment.cpp | 106 ++-- CGMES_2.4.15_16FEB2016/DCLineSegment.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCNode.cpp | 94 +++- CGMES_2.4.15_16FEB2016/DCNode.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCSeriesDevice.cpp | 94 +++- CGMES_2.4.15_16FEB2016/DCSeriesDevice.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCShunt.cpp | 94 +++- CGMES_2.4.15_16FEB2016/DCShunt.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCSwitch.cpp | 76 ++- CGMES_2.4.15_16FEB2016/DCSwitch.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCTerminal.cpp | 86 ++- CGMES_2.4.15_16FEB2016/DCTerminal.hpp | 17 +- .../DCTopologicalIsland.cpp | 82 ++- .../DCTopologicalIsland.hpp | 17 +- CGMES_2.4.15_16FEB2016/DCTopologicalNode.cpp | 96 +++- CGMES_2.4.15_16FEB2016/DCTopologicalNode.hpp | 17 +- CGMES_2.4.15_16FEB2016/DayType.cpp | 80 ++- CGMES_2.4.15_16FEB2016/DayType.hpp | 17 +- CGMES_2.4.15_16FEB2016/Diagram.cpp | 116 ++-- CGMES_2.4.15_16FEB2016/Diagram.hpp | 17 +- .../DiagramLayoutVersion.cpp | 136 +++-- .../DiagramLayoutVersion.hpp | 17 +- CGMES_2.4.15_16FEB2016/DiagramObject.cpp | 132 +++-- CGMES_2.4.15_16FEB2016/DiagramObject.hpp | 17 +- .../DiagramObjectGluePoint.cpp | 80 ++- .../DiagramObjectGluePoint.hpp | 17 +- CGMES_2.4.15_16FEB2016/DiagramObjectPoint.cpp | 112 ++-- CGMES_2.4.15_16FEB2016/DiagramObjectPoint.hpp | 17 +- CGMES_2.4.15_16FEB2016/DiagramObjectStyle.cpp | 80 ++- CGMES_2.4.15_16FEB2016/DiagramObjectStyle.hpp | 17 +- CGMES_2.4.15_16FEB2016/DiagramStyle.cpp | 80 ++- CGMES_2.4.15_16FEB2016/DiagramStyle.hpp | 17 +- .../DiscExcContIEEEDEC1A.cpp | 184 ++++--- .../DiscExcContIEEEDEC1A.hpp | 17 +- .../DiscExcContIEEEDEC2A.cpp | 106 ++-- .../DiscExcContIEEEDEC2A.hpp | 17 +- .../DiscExcContIEEEDEC3A.cpp | 88 +++- .../DiscExcContIEEEDEC3A.hpp | 17 +- CGMES_2.4.15_16FEB2016/Disconnector.cpp | 78 ++- CGMES_2.4.15_16FEB2016/Disconnector.hpp | 17 +- ...DiscontinuousExcitationControlDynamics.cpp | 86 ++- ...DiscontinuousExcitationControlDynamics.hpp | 17 +- ...continuousExcitationControlUserDefined.cpp | 86 ++- ...continuousExcitationControlUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/Discrete.cpp | 86 ++- CGMES_2.4.15_16FEB2016/Discrete.hpp | 17 +- CGMES_2.4.15_16FEB2016/DiscreteValue.cpp | 92 +++- CGMES_2.4.15_16FEB2016/DiscreteValue.hpp | 17 +- .../DynamicsFunctionBlock.cpp | 82 ++- .../DynamicsFunctionBlock.hpp | 17 +- CGMES_2.4.15_16FEB2016/DynamicsVersion.cpp | 136 +++-- CGMES_2.4.15_16FEB2016/DynamicsVersion.hpp | 17 +- .../EarthFaultCompensator.cpp | 82 ++- .../EarthFaultCompensator.hpp | 17 +- CGMES_2.4.15_16FEB2016/EnergyArea.cpp | 80 ++- CGMES_2.4.15_16FEB2016/EnergyArea.hpp | 17 +- CGMES_2.4.15_16FEB2016/EnergyConsumer.cpp | 128 +++-- CGMES_2.4.15_16FEB2016/EnergyConsumer.hpp | 17 +- .../EnergySchedulingType.cpp | 82 ++- .../EnergySchedulingType.hpp | 17 +- CGMES_2.4.15_16FEB2016/EnergySource.cpp | 158 ++++-- CGMES_2.4.15_16FEB2016/EnergySource.hpp | 17 +- CGMES_2.4.15_16FEB2016/Equipment.cpp | 98 +++- CGMES_2.4.15_16FEB2016/Equipment.hpp | 17 +- .../EquipmentBoundaryVersion.cpp | 142 +++-- .../EquipmentBoundaryVersion.hpp | 17 +- CGMES_2.4.15_16FEB2016/EquipmentContainer.cpp | 82 ++- CGMES_2.4.15_16FEB2016/EquipmentContainer.hpp | 17 +- CGMES_2.4.15_16FEB2016/EquipmentVersion.cpp | 160 ++++-- CGMES_2.4.15_16FEB2016/EquipmentVersion.hpp | 17 +- CGMES_2.4.15_16FEB2016/EquivalentBranch.cpp | 172 +++--- CGMES_2.4.15_16FEB2016/EquivalentBranch.hpp | 17 +- .../EquivalentEquipment.cpp | 84 ++- .../EquivalentEquipment.hpp | 17 +- .../EquivalentInjection.cpp | 174 +++--- .../EquivalentInjection.hpp | 17 +- CGMES_2.4.15_16FEB2016/EquivalentNetwork.cpp | 80 ++- CGMES_2.4.15_16FEB2016/EquivalentNetwork.hpp | 17 +- CGMES_2.4.15_16FEB2016/EquivalentShunt.cpp | 88 +++- CGMES_2.4.15_16FEB2016/EquivalentShunt.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAC1A.cpp | 224 ++++---- CGMES_2.4.15_16FEB2016/ExcAC1A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAC2A.cpp | 260 +++++---- CGMES_2.4.15_16FEB2016/ExcAC2A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAC3A.cpp | 248 +++++---- CGMES_2.4.15_16FEB2016/ExcAC3A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAC4A.cpp | 130 +++-- CGMES_2.4.15_16FEB2016/ExcAC4A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAC5A.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/ExcAC5A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAC6A.cpp | 230 ++++---- CGMES_2.4.15_16FEB2016/ExcAC6A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAC8B.cpp | 254 +++++---- CGMES_2.4.15_16FEB2016/ExcAC8B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcANS.cpp | 160 ++++-- CGMES_2.4.15_16FEB2016/ExcANS.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAVR1.cpp | 148 ++++-- CGMES_2.4.15_16FEB2016/ExcAVR1.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAVR2.cpp | 154 ++++-- CGMES_2.4.15_16FEB2016/ExcAVR2.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAVR3.cpp | 148 ++++-- CGMES_2.4.15_16FEB2016/ExcAVR3.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAVR4.cpp | 160 ++++-- CGMES_2.4.15_16FEB2016/ExcAVR4.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAVR5.cpp | 94 +++- CGMES_2.4.15_16FEB2016/ExcAVR5.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcAVR7.cpp | 218 +++++--- CGMES_2.4.15_16FEB2016/ExcAVR7.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcBBC.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/ExcBBC.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcCZ.cpp | 136 +++-- CGMES_2.4.15_16FEB2016/ExcCZ.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcDC1A.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/ExcDC1A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcDC2A.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/ExcDC2A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcDC3A.cpp | 172 +++--- CGMES_2.4.15_16FEB2016/ExcDC3A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcDC3A1.cpp | 160 ++++-- CGMES_2.4.15_16FEB2016/ExcDC3A1.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcELIN1.cpp | 166 +++--- CGMES_2.4.15_16FEB2016/ExcELIN1.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcELIN2.cpp | 254 +++++---- CGMES_2.4.15_16FEB2016/ExcELIN2.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcHU.cpp | 148 ++++-- CGMES_2.4.15_16FEB2016/ExcHU.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.cpp | 218 +++++--- CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.cpp | 218 +++++--- CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.cpp | 130 +++-- CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.cpp | 160 ++++-- CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.cpp | 224 ++++---- CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.cpp | 248 +++++---- CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.cpp | 172 +++--- CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.cpp | 172 +++--- CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.cpp | 206 +++++--- CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEST1A.cpp | 206 +++++--- CGMES_2.4.15_16FEB2016/ExcIEEEST1A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEST2A.cpp | 154 ++++-- CGMES_2.4.15_16FEB2016/ExcIEEEST2A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEST3A.cpp | 212 +++++--- CGMES_2.4.15_16FEB2016/ExcIEEEST3A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEST4B.cpp | 172 +++--- CGMES_2.4.15_16FEB2016/ExcIEEEST4B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEST5B.cpp | 178 ++++--- CGMES_2.4.15_16FEB2016/ExcIEEEST5B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEST6B.cpp | 160 ++++-- CGMES_2.4.15_16FEB2016/ExcIEEEST6B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcIEEEST7B.cpp | 166 +++--- CGMES_2.4.15_16FEB2016/ExcIEEEST7B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcOEX3T.cpp | 206 +++++--- CGMES_2.4.15_16FEB2016/ExcOEX3T.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcPIC.cpp | 230 ++++---- CGMES_2.4.15_16FEB2016/ExcPIC.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcREXS.cpp | 308 ++++++----- CGMES_2.4.15_16FEB2016/ExcREXS.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcSCRX.cpp | 124 +++-- CGMES_2.4.15_16FEB2016/ExcSCRX.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcSEXS.cpp | 136 +++-- CGMES_2.4.15_16FEB2016/ExcSEXS.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcSK.cpp | 284 +++++----- CGMES_2.4.15_16FEB2016/ExcSK.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcST1A.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/ExcST1A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcST2A.cpp | 166 +++--- CGMES_2.4.15_16FEB2016/ExcST2A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcST3A.cpp | 212 +++++--- CGMES_2.4.15_16FEB2016/ExcST3A.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcST4B.cpp | 206 +++++--- CGMES_2.4.15_16FEB2016/ExcST4B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcST6B.cpp | 230 ++++---- CGMES_2.4.15_16FEB2016/ExcST6B.hpp | 17 +- CGMES_2.4.15_16FEB2016/ExcST7B.cpp | 172 +++--- CGMES_2.4.15_16FEB2016/ExcST7B.hpp | 17 +- .../ExcitationSystemDynamics.cpp | 112 ++-- .../ExcitationSystemDynamics.hpp | 17 +- .../ExcitationSystemUserDefined.cpp | 86 ++- .../ExcitationSystemUserDefined.hpp | 17 +- .../ExternalNetworkInjection.cpp | 202 ++++--- .../ExternalNetworkInjection.hpp | 17 +- CGMES_2.4.15_16FEB2016/FossilFuel.cpp | 88 +++- CGMES_2.4.15_16FEB2016/FossilFuel.hpp | 17 +- .../GenICompensationForGenJ.cpp | 100 +++- .../GenICompensationForGenJ.hpp | 17 +- CGMES_2.4.15_16FEB2016/GeneratingUnit.cpp | 202 ++++--- CGMES_2.4.15_16FEB2016/GeneratingUnit.hpp | 17 +- .../GeographicalLocationVersion.cpp | 136 +++-- .../GeographicalLocationVersion.hpp | 17 +- CGMES_2.4.15_16FEB2016/GeographicalRegion.cpp | 82 ++- CGMES_2.4.15_16FEB2016/GeographicalRegion.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovCT1.cpp | 302 ++++++----- CGMES_2.4.15_16FEB2016/GovCT1.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovCT2.cpp | 428 ++++++++------- CGMES_2.4.15_16FEB2016/GovCT2.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovGAST.cpp | 136 +++-- CGMES_2.4.15_16FEB2016/GovGAST.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovGAST1.cpp | 296 ++++++----- CGMES_2.4.15_16FEB2016/GovGAST1.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovGAST2.cpp | 284 +++++----- CGMES_2.4.15_16FEB2016/GovGAST2.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovGAST3.cpp | 218 +++++--- CGMES_2.4.15_16FEB2016/GovGAST3.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovGAST4.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/GovGAST4.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovGASTWD.cpp | 290 +++++----- CGMES_2.4.15_16FEB2016/GovGASTWD.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydro1.cpp | 160 ++++-- CGMES_2.4.15_16FEB2016/GovHydro1.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydro2.cpp | 266 ++++++---- CGMES_2.4.15_16FEB2016/GovHydro2.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydro3.cpp | 308 ++++++----- CGMES_2.4.15_16FEB2016/GovHydro3.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydro4.cpp | 320 +++++++----- CGMES_2.4.15_16FEB2016/GovHydro4.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroDD.cpp | 302 ++++++----- CGMES_2.4.15_16FEB2016/GovHydroDD.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroFrancis.cpp | 254 +++++---- CGMES_2.4.15_16FEB2016/GovHydroFrancis.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroIEEE0.cpp | 124 +++-- CGMES_2.4.15_16FEB2016/GovHydroIEEE0.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroIEEE2.cpp | 248 +++++---- CGMES_2.4.15_16FEB2016/GovHydroIEEE2.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroPID.cpp | 290 +++++----- CGMES_2.4.15_16FEB2016/GovHydroPID.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroPID2.cpp | 224 ++++---- CGMES_2.4.15_16FEB2016/GovHydroPID2.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroPelton.cpp | 260 +++++---- CGMES_2.4.15_16FEB2016/GovHydroPelton.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroR.cpp | 344 ++++++------ CGMES_2.4.15_16FEB2016/GovHydroR.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroWEH.cpp | 398 +++++++------- CGMES_2.4.15_16FEB2016/GovHydroWEH.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovHydroWPID.cpp | 224 ++++---- CGMES_2.4.15_16FEB2016/GovHydroWPID.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteam0.cpp | 124 +++-- CGMES_2.4.15_16FEB2016/GovSteam0.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteam1.cpp | 326 +++++++----- CGMES_2.4.15_16FEB2016/GovSteam1.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteam2.cpp | 124 +++-- CGMES_2.4.15_16FEB2016/GovSteam2.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteamCC.cpp | 178 ++++--- CGMES_2.4.15_16FEB2016/GovSteamCC.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteamEU.cpp | 302 ++++++----- CGMES_2.4.15_16FEB2016/GovSteamEU.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteamFV2.cpp | 154 ++++-- CGMES_2.4.15_16FEB2016/GovSteamFV2.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteamFV3.cpp | 206 +++++--- CGMES_2.4.15_16FEB2016/GovSteamFV3.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteamFV4.cpp | 398 +++++++------- CGMES_2.4.15_16FEB2016/GovSteamFV4.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteamIEEE1.cpp | 218 +++++--- CGMES_2.4.15_16FEB2016/GovSteamIEEE1.hpp | 17 +- CGMES_2.4.15_16FEB2016/GovSteamSGO.cpp | 148 ++++-- CGMES_2.4.15_16FEB2016/GovSteamSGO.hpp | 17 +- .../GrossToNetActivePowerCurve.cpp | 82 ++- .../GrossToNetActivePowerCurve.hpp | 17 +- CGMES_2.4.15_16FEB2016/Ground.cpp | 76 ++- CGMES_2.4.15_16FEB2016/Ground.hpp | 17 +- CGMES_2.4.15_16FEB2016/GroundDisconnector.cpp | 78 ++- CGMES_2.4.15_16FEB2016/GroundDisconnector.hpp | 17 +- CGMES_2.4.15_16FEB2016/GroundingImpedance.cpp | 82 ++- CGMES_2.4.15_16FEB2016/GroundingImpedance.hpp | 17 +- .../HydroGeneratingUnit.cpp | 90 +++- .../HydroGeneratingUnit.hpp | 17 +- CGMES_2.4.15_16FEB2016/HydroPowerPlant.cpp | 90 +++- CGMES_2.4.15_16FEB2016/HydroPowerPlant.hpp | 17 +- CGMES_2.4.15_16FEB2016/HydroPump.cpp | 88 +++- CGMES_2.4.15_16FEB2016/HydroPump.hpp | 17 +- CGMES_2.4.15_16FEB2016/IdentifiedObject.cpp | 130 +++-- CGMES_2.4.15_16FEB2016/IdentifiedObject.hpp | 17 +- CGMES_2.4.15_16FEB2016/Junction.cpp | 78 ++- CGMES_2.4.15_16FEB2016/Junction.hpp | 17 +- CGMES_2.4.15_16FEB2016/Limit.cpp | 76 ++- CGMES_2.4.15_16FEB2016/Limit.hpp | 17 +- CGMES_2.4.15_16FEB2016/LimitSet.cpp | 82 ++- CGMES_2.4.15_16FEB2016/LimitSet.hpp | 17 +- CGMES_2.4.15_16FEB2016/Line.cpp | 84 ++- CGMES_2.4.15_16FEB2016/Line.hpp | 17 +- .../LinearShuntCompensator.cpp | 102 +++- .../LinearShuntCompensator.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadAggregate.cpp | 84 ++- CGMES_2.4.15_16FEB2016/LoadAggregate.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadArea.cpp | 80 ++- CGMES_2.4.15_16FEB2016/LoadArea.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadBreakSwitch.cpp | 78 ++- CGMES_2.4.15_16FEB2016/LoadBreakSwitch.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadComposite.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/LoadComposite.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadDynamics.cpp | 80 ++- CGMES_2.4.15_16FEB2016/LoadDynamics.hpp | 17 +- .../LoadGenericNonLinear.cpp | 130 +++-- .../LoadGenericNonLinear.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadGroup.cpp | 82 ++- CGMES_2.4.15_16FEB2016/LoadGroup.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadMotor.cpp | 160 ++++-- CGMES_2.4.15_16FEB2016/LoadMotor.hpp | 17 +- .../LoadResponseCharacteristic.cpp | 146 ++++-- .../LoadResponseCharacteristic.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadStatic.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/LoadStatic.hpp | 17 +- CGMES_2.4.15_16FEB2016/LoadUserDefined.cpp | 86 ++- CGMES_2.4.15_16FEB2016/LoadUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/Location.cpp | 92 +++- CGMES_2.4.15_16FEB2016/Location.hpp | 17 +- CGMES_2.4.15_16FEB2016/Measurement.cpp | 112 ++-- CGMES_2.4.15_16FEB2016/Measurement.hpp | 17 +- CGMES_2.4.15_16FEB2016/MeasurementValue.cpp | 98 +++- CGMES_2.4.15_16FEB2016/MeasurementValue.hpp | 17 +- .../MeasurementValueQuality.cpp | 82 ++- .../MeasurementValueQuality.hpp | 17 +- .../MeasurementValueSource.cpp | 80 ++- .../MeasurementValueSource.hpp | 17 +- CGMES_2.4.15_16FEB2016/MechLoad1.cpp | 100 +++- CGMES_2.4.15_16FEB2016/MechLoad1.hpp | 17 +- .../MechanicalLoadDynamics.cpp | 88 +++- .../MechanicalLoadDynamics.hpp | 17 +- .../MechanicalLoadUserDefined.cpp | 86 ++- .../MechanicalLoadUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/MutualCoupling.cpp | 136 +++-- CGMES_2.4.15_16FEB2016/MutualCoupling.hpp | 17 +- CGMES_2.4.15_16FEB2016/NonConformLoad.cpp | 84 ++- CGMES_2.4.15_16FEB2016/NonConformLoad.hpp | 17 +- .../NonConformLoadGroup.cpp | 84 ++- .../NonConformLoadGroup.hpp | 17 +- .../NonConformLoadSchedule.cpp | 82 ++- .../NonConformLoadSchedule.hpp | 17 +- .../NonlinearShuntCompensator.cpp | 82 ++- .../NonlinearShuntCompensator.hpp | 17 +- .../NonlinearShuntCompensatorPoint.cpp | 112 ++-- .../NonlinearShuntCompensatorPoint.hpp | 17 +- .../NuclearGeneratingUnit.cpp | 78 ++- .../NuclearGeneratingUnit.hpp | 17 +- CGMES_2.4.15_16FEB2016/OperationalLimit.cpp | 88 +++- CGMES_2.4.15_16FEB2016/OperationalLimit.hpp | 17 +- .../OperationalLimitSet.cpp | 92 +++- .../OperationalLimitSet.hpp | 17 +- .../OperationalLimitType.cpp | 98 +++- .../OperationalLimitType.hpp | 17 +- CGMES_2.4.15_16FEB2016/OverexcLim2.cpp | 100 +++- CGMES_2.4.15_16FEB2016/OverexcLim2.hpp | 17 +- CGMES_2.4.15_16FEB2016/OverexcLimIEEE.cpp | 112 ++-- CGMES_2.4.15_16FEB2016/OverexcLimIEEE.hpp | 17 +- CGMES_2.4.15_16FEB2016/OverexcLimX1.cpp | 136 +++-- CGMES_2.4.15_16FEB2016/OverexcLimX1.hpp | 17 +- CGMES_2.4.15_16FEB2016/OverexcLimX2.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/OverexcLimX2.hpp | 17 +- .../OverexcitationLimiterDynamics.cpp | 82 ++- .../OverexcitationLimiterDynamics.hpp | 17 +- .../OverexcitationLimiterUserDefined.cpp | 86 ++- .../OverexcitationLimiterUserDefined.hpp | 17 +- .../PFVArControllerType1Dynamics.cpp | 90 +++- .../PFVArControllerType1Dynamics.hpp | 17 +- .../PFVArControllerType1UserDefined.cpp | 86 ++- .../PFVArControllerType1UserDefined.hpp | 17 +- .../PFVArControllerType2Dynamics.cpp | 82 ++- .../PFVArControllerType2Dynamics.hpp | 17 +- .../PFVArControllerType2UserDefined.cpp | 86 ++- .../PFVArControllerType2UserDefined.hpp | 17 +- .../PFVArType1IEEEPFController.cpp | 124 +++-- .../PFVArType1IEEEPFController.hpp | 17 +- .../PFVArType1IEEEVArController.cpp | 112 ++-- .../PFVArType1IEEEVArController.hpp | 17 +- CGMES_2.4.15_16FEB2016/PFVArType2Common1.cpp | 106 ++-- CGMES_2.4.15_16FEB2016/PFVArType2Common1.hpp | 17 +- .../PFVArType2IEEEPFController.cpp | 118 +++-- .../PFVArType2IEEEPFController.hpp | 17 +- .../PFVArType2IEEEVArController.cpp | 118 +++-- .../PFVArType2IEEEVArController.hpp | 17 +- .../PerLengthDCLineParameter.cpp | 98 +++- .../PerLengthDCLineParameter.hpp | 17 +- CGMES_2.4.15_16FEB2016/PetersenCoil.cpp | 118 +++-- CGMES_2.4.15_16FEB2016/PetersenCoil.hpp | 17 +- CGMES_2.4.15_16FEB2016/PhaseTapChanger.cpp | 84 ++- CGMES_2.4.15_16FEB2016/PhaseTapChanger.hpp | 17 +- .../PhaseTapChangerAsymmetrical.cpp | 84 ++- .../PhaseTapChangerAsymmetrical.hpp | 17 +- .../PhaseTapChangerLinear.cpp | 96 +++- .../PhaseTapChangerLinear.hpp | 17 +- .../PhaseTapChangerNonLinear.cpp | 96 +++- .../PhaseTapChangerNonLinear.hpp | 17 +- .../PhaseTapChangerSymmetrical.cpp | 78 ++- .../PhaseTapChangerSymmetrical.hpp | 17 +- .../PhaseTapChangerTable.cpp | 84 ++- .../PhaseTapChangerTable.hpp | 17 +- .../PhaseTapChangerTablePoint.cpp | 88 +++- .../PhaseTapChangerTablePoint.hpp | 17 +- .../PhaseTapChangerTabular.cpp | 84 ++- .../PhaseTapChangerTabular.hpp | 17 +- CGMES_2.4.15_16FEB2016/PositionPoint.cpp | 106 ++-- CGMES_2.4.15_16FEB2016/PositionPoint.hpp | 17 +- .../PowerSystemResource.cpp | 96 +++- .../PowerSystemResource.hpp | 17 +- .../PowerSystemStabilizerDynamics.cpp | 86 ++- .../PowerSystemStabilizerDynamics.hpp | 17 +- .../PowerSystemStabilizerUserDefined.cpp | 86 ++- .../PowerSystemStabilizerUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/PowerTransformer.cpp | 116 ++-- CGMES_2.4.15_16FEB2016/PowerTransformer.hpp | 17 +- .../PowerTransformerEnd.cpp | 154 ++++-- .../PowerTransformerEnd.hpp | 17 +- .../ProprietaryParameterDynamics.cpp | 224 ++++---- .../ProprietaryParameterDynamics.hpp | 17 +- CGMES_2.4.15_16FEB2016/ProtectedSwitch.cpp | 78 ++- CGMES_2.4.15_16FEB2016/ProtectedSwitch.hpp | 17 +- CGMES_2.4.15_16FEB2016/Pss1.cpp | 166 +++--- CGMES_2.4.15_16FEB2016/Pss1.hpp | 17 +- CGMES_2.4.15_16FEB2016/Pss1A.cpp | 224 ++++---- CGMES_2.4.15_16FEB2016/Pss1A.hpp | 17 +- CGMES_2.4.15_16FEB2016/Pss2B.cpp | 278 ++++++---- CGMES_2.4.15_16FEB2016/Pss2B.hpp | 17 +- CGMES_2.4.15_16FEB2016/Pss2ST.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/Pss2ST.hpp | 17 +- CGMES_2.4.15_16FEB2016/Pss5.cpp | 178 ++++--- CGMES_2.4.15_16FEB2016/Pss5.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssELIN2.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/PssELIN2.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssIEEE1A.cpp | 148 ++++-- CGMES_2.4.15_16FEB2016/PssIEEE1A.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssIEEE2B.cpp | 254 +++++---- CGMES_2.4.15_16FEB2016/PssIEEE2B.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssIEEE3B.cpp | 206 +++++--- CGMES_2.4.15_16FEB2016/PssIEEE3B.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssIEEE4B.cpp | 494 ++++++++++-------- CGMES_2.4.15_16FEB2016/PssIEEE4B.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssPTIST1.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/PssPTIST1.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssPTIST3.cpp | 296 ++++++----- CGMES_2.4.15_16FEB2016/PssPTIST3.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssSB4.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/PssSB4.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssSH.cpp | 154 ++++-- CGMES_2.4.15_16FEB2016/PssSH.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssSK.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/PssSK.hpp | 17 +- CGMES_2.4.15_16FEB2016/PssWECC.cpp | 184 ++++--- CGMES_2.4.15_16FEB2016/PssWECC.hpp | 17 +- CGMES_2.4.15_16FEB2016/Quality61850.cpp | 148 ++++-- CGMES_2.4.15_16FEB2016/Quality61850.hpp | 17 +- CGMES_2.4.15_16FEB2016/RaiseLowerCommand.cpp | 82 ++- CGMES_2.4.15_16FEB2016/RaiseLowerCommand.hpp | 17 +- CGMES_2.4.15_16FEB2016/RatioTapChanger.cpp | 102 +++- CGMES_2.4.15_16FEB2016/RatioTapChanger.hpp | 17 +- .../RatioTapChangerTable.cpp | 84 ++- .../RatioTapChangerTable.hpp | 17 +- .../RatioTapChangerTablePoint.cpp | 82 ++- .../RatioTapChangerTablePoint.hpp | 17 +- .../ReactiveCapabilityCurve.cpp | 84 ++- .../ReactiveCapabilityCurve.hpp | 17 +- .../RegularIntervalSchedule.cpp | 92 +++- .../RegularIntervalSchedule.hpp | 17 +- CGMES_2.4.15_16FEB2016/RegularTimePoint.cpp | 100 +++- CGMES_2.4.15_16FEB2016/RegularTimePoint.hpp | 17 +- CGMES_2.4.15_16FEB2016/RegulatingCondEq.cpp | 92 +++- CGMES_2.4.15_16FEB2016/RegulatingCondEq.hpp | 17 +- CGMES_2.4.15_16FEB2016/RegulatingControl.cpp | 128 +++-- CGMES_2.4.15_16FEB2016/RegulatingControl.hpp | 17 +- CGMES_2.4.15_16FEB2016/RegulationSchedule.cpp | 82 ++- CGMES_2.4.15_16FEB2016/RegulationSchedule.hpp | 17 +- CGMES_2.4.15_16FEB2016/RemoteInputSignal.cpp | 130 +++-- CGMES_2.4.15_16FEB2016/RemoteInputSignal.hpp | 17 +- CGMES_2.4.15_16FEB2016/ReportingGroup.cpp | 86 ++- CGMES_2.4.15_16FEB2016/ReportingGroup.hpp | 17 +- CGMES_2.4.15_16FEB2016/RotatingMachine.cpp | 120 +++-- CGMES_2.4.15_16FEB2016/RotatingMachine.hpp | 17 +- .../RotatingMachineDynamics.cpp | 112 ++-- .../RotatingMachineDynamics.hpp | 17 +- CGMES_2.4.15_16FEB2016/Season.cpp | 92 +++- CGMES_2.4.15_16FEB2016/Season.hpp | 17 +- .../SeasonDayTypeSchedule.cpp | 88 +++- .../SeasonDayTypeSchedule.hpp | 17 +- CGMES_2.4.15_16FEB2016/SeriesCompensator.cpp | 118 +++-- CGMES_2.4.15_16FEB2016/SeriesCompensator.hpp | 17 +- CGMES_2.4.15_16FEB2016/SetPoint.cpp | 88 +++- CGMES_2.4.15_16FEB2016/SetPoint.hpp | 17 +- CGMES_2.4.15_16FEB2016/ShuntCompensator.cpp | 138 +++-- CGMES_2.4.15_16FEB2016/ShuntCompensator.hpp | 17 +- .../SolarGeneratingUnit.cpp | 78 ++- .../SolarGeneratingUnit.hpp | 17 +- .../StateVariablesVersion.cpp | 136 +++-- .../StateVariablesVersion.hpp | 17 +- .../StaticVarCompensator.cpp | 114 ++-- .../StaticVarCompensator.hpp | 17 +- CGMES_2.4.15_16FEB2016/StationSupply.cpp | 78 ++- CGMES_2.4.15_16FEB2016/StationSupply.hpp | 17 +- .../SteadyStateHypothesisVersion.cpp | 136 +++-- .../SteadyStateHypothesisVersion.hpp | 17 +- CGMES_2.4.15_16FEB2016/StringMeasurement.cpp | 80 ++- CGMES_2.4.15_16FEB2016/StringMeasurement.hpp | 17 +- .../StringMeasurementValue.cpp | 88 +++- .../StringMeasurementValue.hpp | 17 +- .../SubGeographicalRegion.cpp | 96 +++- .../SubGeographicalRegion.hpp | 17 +- CGMES_2.4.15_16FEB2016/SubLoadArea.cpp | 86 ++- CGMES_2.4.15_16FEB2016/SubLoadArea.hpp | 17 +- CGMES_2.4.15_16FEB2016/Substation.cpp | 90 +++- CGMES_2.4.15_16FEB2016/Substation.hpp | 17 +- CGMES_2.4.15_16FEB2016/SvInjection.cpp | 94 +++- CGMES_2.4.15_16FEB2016/SvInjection.hpp | 17 +- CGMES_2.4.15_16FEB2016/SvPowerFlow.cpp | 94 +++- CGMES_2.4.15_16FEB2016/SvPowerFlow.hpp | 17 +- .../SvShuntCompensatorSections.cpp | 88 +++- .../SvShuntCompensatorSections.hpp | 17 +- CGMES_2.4.15_16FEB2016/SvStatus.cpp | 88 +++- CGMES_2.4.15_16FEB2016/SvStatus.hpp | 17 +- CGMES_2.4.15_16FEB2016/SvTapStep.cpp | 88 +++- CGMES_2.4.15_16FEB2016/SvTapStep.hpp | 17 +- CGMES_2.4.15_16FEB2016/SvVoltage.cpp | 94 +++- CGMES_2.4.15_16FEB2016/SvVoltage.hpp | 17 +- CGMES_2.4.15_16FEB2016/Switch.cpp | 106 ++-- CGMES_2.4.15_16FEB2016/Switch.hpp | 17 +- CGMES_2.4.15_16FEB2016/SwitchSchedule.cpp | 82 ++- CGMES_2.4.15_16FEB2016/SwitchSchedule.hpp | 17 +- CGMES_2.4.15_16FEB2016/SynchronousMachine.cpp | 232 ++++---- CGMES_2.4.15_16FEB2016/SynchronousMachine.hpp | 17 +- .../SynchronousMachineDetailed.cpp | 106 ++-- .../SynchronousMachineDetailed.hpp | 17 +- .../SynchronousMachineDynamics.cpp | 98 +++- .../SynchronousMachineDynamics.hpp | 17 +- .../SynchronousMachineEquivalentCircuit.cpp | 142 +++-- .../SynchronousMachineEquivalentCircuit.hpp | 17 +- .../SynchronousMachineSimplified.cpp | 76 ++- .../SynchronousMachineSimplified.hpp | 17 +- ...ynchronousMachineTimeConstantReactance.cpp | 160 ++++-- ...ynchronousMachineTimeConstantReactance.hpp | 17 +- .../SynchronousMachineUserDefined.cpp | 86 ++- .../SynchronousMachineUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/TapChanger.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/TapChanger.hpp | 17 +- CGMES_2.4.15_16FEB2016/TapChangerControl.cpp | 82 ++- CGMES_2.4.15_16FEB2016/TapChangerControl.hpp | 17 +- .../TapChangerTablePoint.cpp | 112 ++-- .../TapChangerTablePoint.hpp | 17 +- CGMES_2.4.15_16FEB2016/TapSchedule.cpp | 82 ++- CGMES_2.4.15_16FEB2016/TapSchedule.hpp | 17 +- CGMES_2.4.15_16FEB2016/Terminal.cpp | 142 +++-- CGMES_2.4.15_16FEB2016/Terminal.hpp | 17 +- CGMES_2.4.15_16FEB2016/TextDiagramObject.cpp | 82 ++- CGMES_2.4.15_16FEB2016/TextDiagramObject.hpp | 17 +- .../ThermalGeneratingUnit.cpp | 82 ++- .../ThermalGeneratingUnit.hpp | 17 +- CGMES_2.4.15_16FEB2016/TieFlow.cpp | 94 +++- CGMES_2.4.15_16FEB2016/TieFlow.hpp | 17 +- CGMES_2.4.15_16FEB2016/TopologicalIsland.cpp | 88 +++- CGMES_2.4.15_16FEB2016/TopologicalIsland.hpp | 17 +- CGMES_2.4.15_16FEB2016/TopologicalNode.cpp | 164 +++--- CGMES_2.4.15_16FEB2016/TopologicalNode.hpp | 17 +- .../TopologyBoundaryVersion.cpp | 136 +++-- .../TopologyBoundaryVersion.hpp | 17 +- CGMES_2.4.15_16FEB2016/TopologyVersion.cpp | 136 +++-- CGMES_2.4.15_16FEB2016/TopologyVersion.hpp | 17 +- CGMES_2.4.15_16FEB2016/TransformerEnd.cpp | 120 +++-- CGMES_2.4.15_16FEB2016/TransformerEnd.hpp | 17 +- CGMES_2.4.15_16FEB2016/TurbLCFB1.cpp | 148 ++++-- CGMES_2.4.15_16FEB2016/TurbLCFB1.hpp | 17 +- .../TurbineGovernorDynamics.cpp | 92 +++- .../TurbineGovernorDynamics.hpp | 17 +- .../TurbineGovernorUserDefined.cpp | 86 ++- .../TurbineGovernorUserDefined.hpp | 17 +- .../TurbineLoadControllerDynamics.cpp | 82 ++- .../TurbineLoadControllerDynamics.hpp | 17 +- .../TurbineLoadControllerUserDefined.cpp | 86 ++- .../TurbineLoadControllerUserDefined.hpp | 17 +- .../UnderexcLim2Simplified.cpp | 118 +++-- .../UnderexcLim2Simplified.hpp | 17 +- CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.cpp | 166 +++--- CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.hpp | 17 +- CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.cpp | 332 +++++++----- CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.hpp | 17 +- CGMES_2.4.15_16FEB2016/UnderexcLimX1.cpp | 112 ++-- CGMES_2.4.15_16FEB2016/UnderexcLimX1.hpp | 17 +- CGMES_2.4.15_16FEB2016/UnderexcLimX2.cpp | 118 +++-- CGMES_2.4.15_16FEB2016/UnderexcLimX2.hpp | 17 +- .../UnderexcitationLimiterDynamics.cpp | 86 ++- .../UnderexcitationLimiterDynamics.hpp | 17 +- .../UnderexcitationLimiterUserDefined.cpp | 86 ++- .../UnderexcitationLimiterUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/VAdjIEEE.cpp | 112 ++-- CGMES_2.4.15_16FEB2016/VAdjIEEE.hpp | 17 +- CGMES_2.4.15_16FEB2016/VCompIEEEType1.cpp | 94 +++- CGMES_2.4.15_16FEB2016/VCompIEEEType1.hpp | 17 +- CGMES_2.4.15_16FEB2016/VCompIEEEType2.cpp | 86 ++- CGMES_2.4.15_16FEB2016/VCompIEEEType2.hpp | 17 +- CGMES_2.4.15_16FEB2016/ValueAliasSet.cpp | 92 +++- CGMES_2.4.15_16FEB2016/ValueAliasSet.hpp | 17 +- CGMES_2.4.15_16FEB2016/ValueToAlias.cpp | 88 +++- CGMES_2.4.15_16FEB2016/ValueToAlias.hpp | 17 +- CGMES_2.4.15_16FEB2016/VisibilityLayer.cpp | 88 +++- CGMES_2.4.15_16FEB2016/VisibilityLayer.hpp | 17 +- .../VoltageAdjusterDynamics.cpp | 82 ++- .../VoltageAdjusterDynamics.hpp | 17 +- .../VoltageAdjusterUserDefined.cpp | 86 ++- .../VoltageAdjusterUserDefined.hpp | 17 +- .../VoltageCompensatorDynamics.cpp | 86 ++- .../VoltageCompensatorDynamics.hpp | 17 +- .../VoltageCompensatorUserDefined.cpp | 86 ++- .../VoltageCompensatorUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/VoltageLevel.cpp | 104 +++- CGMES_2.4.15_16FEB2016/VoltageLevel.hpp | 17 +- CGMES_2.4.15_16FEB2016/VoltageLimit.cpp | 82 ++- CGMES_2.4.15_16FEB2016/VoltageLimit.hpp | 17 +- CGMES_2.4.15_16FEB2016/VsCapabilityCurve.cpp | 80 ++- CGMES_2.4.15_16FEB2016/VsCapabilityCurve.hpp | 17 +- CGMES_2.4.15_16FEB2016/VsConverter.cpp | 152 ++++-- CGMES_2.4.15_16FEB2016/VsConverter.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindAeroConstIEC.cpp | 80 ++- CGMES_2.4.15_16FEB2016/WindAeroConstIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.cpp | 112 ++-- CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.cpp | 114 ++-- CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindContPType3IEC.cpp | 226 ++++---- CGMES_2.4.15_16FEB2016/WindContPType3IEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindContPType4aIEC.cpp | 98 +++- CGMES_2.4.15_16FEB2016/WindContPType4aIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindContPType4bIEC.cpp | 104 +++- CGMES_2.4.15_16FEB2016/WindContPType4bIEC.hpp | 17 +- .../WindContPitchAngleIEC.cpp | 140 +++-- .../WindContPitchAngleIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindContQIEC.cpp | 252 +++++---- CGMES_2.4.15_16FEB2016/WindContQIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindContRotorRIEC.cpp | 132 +++-- CGMES_2.4.15_16FEB2016/WindContRotorRIEC.hpp | 17 +- .../WindDynamicsLookupTable.cpp | 124 +++-- .../WindDynamicsLookupTable.hpp | 17 +- .../WindGenTurbineType1IEC.cpp | 82 ++- .../WindGenTurbineType1IEC.hpp | 17 +- .../WindGenTurbineType2IEC.cpp | 88 +++- .../WindGenTurbineType2IEC.hpp | 17 +- .../WindGenTurbineType3IEC.cpp | 112 ++-- .../WindGenTurbineType3IEC.hpp | 17 +- .../WindGenTurbineType3aIEC.cpp | 94 +++- .../WindGenTurbineType3aIEC.hpp | 17 +- .../WindGenTurbineType3bIEC.cpp | 106 ++-- .../WindGenTurbineType3bIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindGenType4IEC.cpp | 100 +++- CGMES_2.4.15_16FEB2016/WindGenType4IEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindGeneratingUnit.cpp | 84 ++- CGMES_2.4.15_16FEB2016/WindGeneratingUnit.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindMechIEC.cpp | 114 ++-- CGMES_2.4.15_16FEB2016/WindMechIEC.hpp | 17 +- .../WindPitchContEmulIEC.cpp | 140 +++-- .../WindPitchContEmulIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindPlantDynamics.cpp | 86 ++- CGMES_2.4.15_16FEB2016/WindPlantDynamics.hpp | 17 +- .../WindPlantFreqPcontrolIEC.cpp | 144 +++-- .../WindPlantFreqPcontrolIEC.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindPlantIEC.cpp | 88 +++- CGMES_2.4.15_16FEB2016/WindPlantIEC.hpp | 17 +- .../WindPlantReactiveControlIEC.cpp | 158 ++++-- .../WindPlantReactiveControlIEC.hpp | 17 +- .../WindPlantUserDefined.cpp | 86 ++- .../WindPlantUserDefined.hpp | 17 +- CGMES_2.4.15_16FEB2016/WindProtectionIEC.cpp | 132 +++-- CGMES_2.4.15_16FEB2016/WindProtectionIEC.hpp | 17 +- .../WindTurbineType1or2Dynamics.cpp | 88 +++- .../WindTurbineType1or2Dynamics.hpp | 17 +- .../WindTurbineType1or2IEC.cpp | 88 +++- .../WindTurbineType1or2IEC.hpp | 17 +- .../WindTurbineType3or4Dynamics.cpp | 94 +++- .../WindTurbineType3or4Dynamics.hpp | 17 +- .../WindTurbineType3or4IEC.cpp | 94 +++- .../WindTurbineType3or4IEC.hpp | 17 +- .../WindTurbineType4aIEC.cpp | 82 ++- .../WindTurbineType4aIEC.hpp | 17 +- .../WindTurbineType4bIEC.cpp | 88 +++- .../WindTurbineType4bIEC.hpp | 17 +- .../WindType1or2UserDefined.cpp | 86 ++- .../WindType1or2UserDefined.hpp | 17 +- .../WindType3or4UserDefined.cpp | 86 ++- .../WindType3or4UserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/ACDCConverter.cpp | 208 +++++--- CGMES_2.4.15_27JAN2020/ACDCConverter.hpp | 17 +- .../ACDCConverterDCTerminal.cpp | 92 +++- .../ACDCConverterDCTerminal.hpp | 17 +- CGMES_2.4.15_27JAN2020/ACDCTerminal.cpp | 110 ++-- CGMES_2.4.15_27JAN2020/ACDCTerminal.hpp | 17 +- CGMES_2.4.15_27JAN2020/ACLineSegment.cpp | 130 +++-- CGMES_2.4.15_27JAN2020/ACLineSegment.hpp | 17 +- CGMES_2.4.15_27JAN2020/Accumulator.cpp | 84 ++- CGMES_2.4.15_27JAN2020/Accumulator.hpp | 17 +- CGMES_2.4.15_27JAN2020/AccumulatorLimit.cpp | 88 +++- CGMES_2.4.15_27JAN2020/AccumulatorLimit.hpp | 17 +- .../AccumulatorLimitSet.cpp | 86 ++- .../AccumulatorLimitSet.hpp | 17 +- CGMES_2.4.15_27JAN2020/AccumulatorReset.cpp | 82 ++- CGMES_2.4.15_27JAN2020/AccumulatorReset.hpp | 17 +- CGMES_2.4.15_27JAN2020/AccumulatorValue.cpp | 92 +++- CGMES_2.4.15_27JAN2020/AccumulatorValue.hpp | 17 +- CGMES_2.4.15_27JAN2020/ActivePowerLimit.cpp | 82 ++- CGMES_2.4.15_27JAN2020/ActivePowerLimit.hpp | 17 +- CGMES_2.4.15_27JAN2020/Analog.cpp | 90 +++- CGMES_2.4.15_27JAN2020/Analog.hpp | 17 +- CGMES_2.4.15_27JAN2020/AnalogControl.cpp | 94 +++- CGMES_2.4.15_27JAN2020/AnalogControl.hpp | 17 +- CGMES_2.4.15_27JAN2020/AnalogLimit.cpp | 88 +++- CGMES_2.4.15_27JAN2020/AnalogLimit.hpp | 17 +- CGMES_2.4.15_27JAN2020/AnalogLimitSet.cpp | 86 ++- CGMES_2.4.15_27JAN2020/AnalogLimitSet.hpp | 17 +- CGMES_2.4.15_27JAN2020/AnalogValue.cpp | 92 +++- CGMES_2.4.15_27JAN2020/AnalogValue.hpp | 17 +- CGMES_2.4.15_27JAN2020/ApparentPowerLimit.cpp | 82 ++- CGMES_2.4.15_27JAN2020/ApparentPowerLimit.hpp | 17 +- .../AsynchronousMachine.cpp | 144 +++-- .../AsynchronousMachine.hpp | 17 +- .../AsynchronousMachineDynamics.cpp | 94 +++- .../AsynchronousMachineDynamics.hpp | 17 +- .../AsynchronousMachineEquivalentCircuit.cpp | 106 ++-- .../AsynchronousMachineEquivalentCircuit.hpp | 17 +- ...ynchronousMachineTimeConstantReactance.cpp | 106 ++-- ...ynchronousMachineTimeConstantReactance.hpp | 17 +- .../AsynchronousMachineUserDefined.cpp | 86 ++- .../AsynchronousMachineUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/BaseVoltage.cpp | 104 +++- CGMES_2.4.15_27JAN2020/BaseVoltage.hpp | 17 +- .../BasicIntervalSchedule.cpp | 94 +++- .../BasicIntervalSchedule.hpp | 17 +- CGMES_2.4.15_27JAN2020/Bay.cpp | 82 ++- CGMES_2.4.15_27JAN2020/Bay.hpp | 17 +- CGMES_2.4.15_27JAN2020/Breaker.cpp | 78 ++- CGMES_2.4.15_27JAN2020/Breaker.hpp | 17 +- CGMES_2.4.15_27JAN2020/BusNameMarker.cpp | 92 +++- CGMES_2.4.15_27JAN2020/BusNameMarker.hpp | 17 +- CGMES_2.4.15_27JAN2020/BusbarSection.cpp | 82 ++- CGMES_2.4.15_27JAN2020/BusbarSection.hpp | 17 +- CGMES_2.4.15_27JAN2020/Command.cpp | 100 +++- CGMES_2.4.15_27JAN2020/Command.hpp | 17 +- .../ConductingEquipment.cpp | 98 +++- .../ConductingEquipment.hpp | 17 +- CGMES_2.4.15_27JAN2020/Conductor.cpp | 82 ++- CGMES_2.4.15_27JAN2020/Conductor.hpp | 17 +- CGMES_2.4.15_27JAN2020/ConformLoad.cpp | 84 ++- CGMES_2.4.15_27JAN2020/ConformLoad.hpp | 17 +- CGMES_2.4.15_27JAN2020/ConformLoadGroup.cpp | 84 ++- CGMES_2.4.15_27JAN2020/ConformLoadGroup.hpp | 17 +- .../ConformLoadSchedule.cpp | 82 ++- .../ConformLoadSchedule.hpp | 17 +- CGMES_2.4.15_27JAN2020/ConnectivityNode.cpp | 140 +++-- CGMES_2.4.15_27JAN2020/ConnectivityNode.hpp | 17 +- .../ConnectivityNodeContainer.cpp | 90 +++- .../ConnectivityNodeContainer.hpp | 17 +- CGMES_2.4.15_27JAN2020/Connector.cpp | 78 ++- CGMES_2.4.15_27JAN2020/Connector.hpp | 17 +- CGMES_2.4.15_27JAN2020/Control.cpp | 112 ++-- CGMES_2.4.15_27JAN2020/Control.hpp | 17 +- CGMES_2.4.15_27JAN2020/ControlArea.cpp | 112 ++-- CGMES_2.4.15_27JAN2020/ControlArea.hpp | 17 +- .../ControlAreaGeneratingUnit.cpp | 88 +++- .../ControlAreaGeneratingUnit.hpp | 17 +- CGMES_2.4.15_27JAN2020/CoordinateSystem.cpp | 86 ++- CGMES_2.4.15_27JAN2020/CoordinateSystem.hpp | 17 +- CGMES_2.4.15_27JAN2020/CsConverter.cpp | 164 +++--- CGMES_2.4.15_27JAN2020/CsConverter.hpp | 17 +- CGMES_2.4.15_27JAN2020/CurrentLimit.cpp | 82 ++- CGMES_2.4.15_27JAN2020/CurrentLimit.hpp | 17 +- CGMES_2.4.15_27JAN2020/Curve.cpp | 104 +++- CGMES_2.4.15_27JAN2020/Curve.hpp | 17 +- CGMES_2.4.15_27JAN2020/CurveData.cpp | 100 +++- CGMES_2.4.15_27JAN2020/CurveData.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCBaseTerminal.cpp | 92 +++- CGMES_2.4.15_27JAN2020/DCBaseTerminal.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCBreaker.cpp | 76 ++- CGMES_2.4.15_27JAN2020/DCBreaker.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCBusbar.cpp | 76 ++- CGMES_2.4.15_27JAN2020/DCBusbar.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCChopper.cpp | 76 ++- CGMES_2.4.15_27JAN2020/DCChopper.hpp | 17 +- .../DCConductingEquipment.cpp | 80 ++- .../DCConductingEquipment.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCConverterUnit.cpp | 88 +++- CGMES_2.4.15_27JAN2020/DCConverterUnit.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCDisconnector.cpp | 76 ++- CGMES_2.4.15_27JAN2020/DCDisconnector.hpp | 17 +- .../DCEquipmentContainer.cpp | 86 ++- .../DCEquipmentContainer.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCGround.cpp | 88 +++- CGMES_2.4.15_27JAN2020/DCGround.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCLine.cpp | 82 ++- CGMES_2.4.15_27JAN2020/DCLine.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCLineSegment.cpp | 106 ++-- CGMES_2.4.15_27JAN2020/DCLineSegment.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCNode.cpp | 94 +++- CGMES_2.4.15_27JAN2020/DCNode.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCSeriesDevice.cpp | 94 +++- CGMES_2.4.15_27JAN2020/DCSeriesDevice.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCShunt.cpp | 94 +++- CGMES_2.4.15_27JAN2020/DCShunt.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCSwitch.cpp | 76 ++- CGMES_2.4.15_27JAN2020/DCSwitch.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCTerminal.cpp | 86 ++- CGMES_2.4.15_27JAN2020/DCTerminal.hpp | 17 +- .../DCTopologicalIsland.cpp | 82 ++- .../DCTopologicalIsland.hpp | 17 +- CGMES_2.4.15_27JAN2020/DCTopologicalNode.cpp | 96 +++- CGMES_2.4.15_27JAN2020/DCTopologicalNode.hpp | 17 +- CGMES_2.4.15_27JAN2020/DayType.cpp | 80 ++- CGMES_2.4.15_27JAN2020/DayType.hpp | 17 +- CGMES_2.4.15_27JAN2020/Diagram.cpp | 116 ++-- CGMES_2.4.15_27JAN2020/Diagram.hpp | 17 +- .../DiagramLayoutVersion.cpp | 136 +++-- .../DiagramLayoutVersion.hpp | 17 +- CGMES_2.4.15_27JAN2020/DiagramObject.cpp | 132 +++-- CGMES_2.4.15_27JAN2020/DiagramObject.hpp | 17 +- .../DiagramObjectGluePoint.cpp | 80 ++- .../DiagramObjectGluePoint.hpp | 17 +- CGMES_2.4.15_27JAN2020/DiagramObjectPoint.cpp | 112 ++-- CGMES_2.4.15_27JAN2020/DiagramObjectPoint.hpp | 17 +- CGMES_2.4.15_27JAN2020/DiagramObjectStyle.cpp | 80 ++- CGMES_2.4.15_27JAN2020/DiagramObjectStyle.hpp | 17 +- CGMES_2.4.15_27JAN2020/DiagramStyle.cpp | 80 ++- CGMES_2.4.15_27JAN2020/DiagramStyle.hpp | 17 +- .../DiscExcContIEEEDEC1A.cpp | 184 ++++--- .../DiscExcContIEEEDEC1A.hpp | 17 +- .../DiscExcContIEEEDEC2A.cpp | 106 ++-- .../DiscExcContIEEEDEC2A.hpp | 17 +- .../DiscExcContIEEEDEC3A.cpp | 88 +++- .../DiscExcContIEEEDEC3A.hpp | 17 +- CGMES_2.4.15_27JAN2020/Disconnector.cpp | 78 ++- CGMES_2.4.15_27JAN2020/Disconnector.hpp | 17 +- ...DiscontinuousExcitationControlDynamics.cpp | 86 ++- ...DiscontinuousExcitationControlDynamics.hpp | 17 +- ...continuousExcitationControlUserDefined.cpp | 86 ++- ...continuousExcitationControlUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/Discrete.cpp | 86 ++- CGMES_2.4.15_27JAN2020/Discrete.hpp | 17 +- CGMES_2.4.15_27JAN2020/DiscreteValue.cpp | 92 +++- CGMES_2.4.15_27JAN2020/DiscreteValue.hpp | 17 +- .../DynamicsFunctionBlock.cpp | 82 ++- .../DynamicsFunctionBlock.hpp | 17 +- CGMES_2.4.15_27JAN2020/DynamicsVersion.cpp | 136 +++-- CGMES_2.4.15_27JAN2020/DynamicsVersion.hpp | 17 +- .../EarthFaultCompensator.cpp | 82 ++- .../EarthFaultCompensator.hpp | 17 +- CGMES_2.4.15_27JAN2020/EnergyArea.cpp | 80 ++- CGMES_2.4.15_27JAN2020/EnergyArea.hpp | 17 +- CGMES_2.4.15_27JAN2020/EnergyConsumer.cpp | 128 +++-- CGMES_2.4.15_27JAN2020/EnergyConsumer.hpp | 17 +- .../EnergySchedulingType.cpp | 82 ++- .../EnergySchedulingType.hpp | 17 +- CGMES_2.4.15_27JAN2020/EnergySource.cpp | 158 ++++-- CGMES_2.4.15_27JAN2020/EnergySource.hpp | 17 +- CGMES_2.4.15_27JAN2020/Equipment.cpp | 98 +++- CGMES_2.4.15_27JAN2020/Equipment.hpp | 17 +- .../EquipmentBoundaryVersion.cpp | 142 +++-- .../EquipmentBoundaryVersion.hpp | 17 +- CGMES_2.4.15_27JAN2020/EquipmentContainer.cpp | 82 ++- CGMES_2.4.15_27JAN2020/EquipmentContainer.hpp | 17 +- CGMES_2.4.15_27JAN2020/EquipmentVersion.cpp | 160 ++++-- CGMES_2.4.15_27JAN2020/EquipmentVersion.hpp | 17 +- CGMES_2.4.15_27JAN2020/EquivalentBranch.cpp | 172 +++--- CGMES_2.4.15_27JAN2020/EquivalentBranch.hpp | 17 +- .../EquivalentEquipment.cpp | 84 ++- .../EquivalentEquipment.hpp | 17 +- .../EquivalentInjection.cpp | 174 +++--- .../EquivalentInjection.hpp | 17 +- CGMES_2.4.15_27JAN2020/EquivalentNetwork.cpp | 80 ++- CGMES_2.4.15_27JAN2020/EquivalentNetwork.hpp | 17 +- CGMES_2.4.15_27JAN2020/EquivalentShunt.cpp | 88 +++- CGMES_2.4.15_27JAN2020/EquivalentShunt.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAC1A.cpp | 224 ++++---- CGMES_2.4.15_27JAN2020/ExcAC1A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAC2A.cpp | 260 +++++---- CGMES_2.4.15_27JAN2020/ExcAC2A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAC3A.cpp | 248 +++++---- CGMES_2.4.15_27JAN2020/ExcAC3A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAC4A.cpp | 130 +++-- CGMES_2.4.15_27JAN2020/ExcAC4A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAC5A.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/ExcAC5A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAC6A.cpp | 230 ++++---- CGMES_2.4.15_27JAN2020/ExcAC6A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAC8B.cpp | 254 +++++---- CGMES_2.4.15_27JAN2020/ExcAC8B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcANS.cpp | 160 ++++-- CGMES_2.4.15_27JAN2020/ExcANS.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAVR1.cpp | 148 ++++-- CGMES_2.4.15_27JAN2020/ExcAVR1.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAVR2.cpp | 154 ++++-- CGMES_2.4.15_27JAN2020/ExcAVR2.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAVR3.cpp | 148 ++++-- CGMES_2.4.15_27JAN2020/ExcAVR3.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAVR4.cpp | 160 ++++-- CGMES_2.4.15_27JAN2020/ExcAVR4.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAVR5.cpp | 94 +++- CGMES_2.4.15_27JAN2020/ExcAVR5.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcAVR7.cpp | 218 +++++--- CGMES_2.4.15_27JAN2020/ExcAVR7.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcBBC.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/ExcBBC.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcCZ.cpp | 136 +++-- CGMES_2.4.15_27JAN2020/ExcCZ.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcDC1A.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/ExcDC1A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcDC2A.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/ExcDC2A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcDC3A.cpp | 172 +++--- CGMES_2.4.15_27JAN2020/ExcDC3A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcDC3A1.cpp | 160 ++++-- CGMES_2.4.15_27JAN2020/ExcDC3A1.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcELIN1.cpp | 166 +++--- CGMES_2.4.15_27JAN2020/ExcELIN1.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcELIN2.cpp | 254 +++++---- CGMES_2.4.15_27JAN2020/ExcELIN2.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcHU.cpp | 148 ++++-- CGMES_2.4.15_27JAN2020/ExcHU.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.cpp | 218 +++++--- CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.cpp | 218 +++++--- CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.cpp | 130 +++-- CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.cpp | 160 ++++-- CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.cpp | 224 ++++---- CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.cpp | 248 +++++---- CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.cpp | 172 +++--- CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.cpp | 172 +++--- CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.cpp | 206 +++++--- CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEST1A.cpp | 206 +++++--- CGMES_2.4.15_27JAN2020/ExcIEEEST1A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEST2A.cpp | 154 ++++-- CGMES_2.4.15_27JAN2020/ExcIEEEST2A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEST3A.cpp | 212 +++++--- CGMES_2.4.15_27JAN2020/ExcIEEEST3A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEST4B.cpp | 172 +++--- CGMES_2.4.15_27JAN2020/ExcIEEEST4B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEST5B.cpp | 178 ++++--- CGMES_2.4.15_27JAN2020/ExcIEEEST5B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEST6B.cpp | 160 ++++-- CGMES_2.4.15_27JAN2020/ExcIEEEST6B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcIEEEST7B.cpp | 166 +++--- CGMES_2.4.15_27JAN2020/ExcIEEEST7B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcOEX3T.cpp | 206 +++++--- CGMES_2.4.15_27JAN2020/ExcOEX3T.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcPIC.cpp | 230 ++++---- CGMES_2.4.15_27JAN2020/ExcPIC.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcREXS.cpp | 308 ++++++----- CGMES_2.4.15_27JAN2020/ExcREXS.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcSCRX.cpp | 124 +++-- CGMES_2.4.15_27JAN2020/ExcSCRX.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcSEXS.cpp | 136 +++-- CGMES_2.4.15_27JAN2020/ExcSEXS.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcSK.cpp | 284 +++++----- CGMES_2.4.15_27JAN2020/ExcSK.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcST1A.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/ExcST1A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcST2A.cpp | 166 +++--- CGMES_2.4.15_27JAN2020/ExcST2A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcST3A.cpp | 212 +++++--- CGMES_2.4.15_27JAN2020/ExcST3A.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcST4B.cpp | 206 +++++--- CGMES_2.4.15_27JAN2020/ExcST4B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcST6B.cpp | 230 ++++---- CGMES_2.4.15_27JAN2020/ExcST6B.hpp | 17 +- CGMES_2.4.15_27JAN2020/ExcST7B.cpp | 172 +++--- CGMES_2.4.15_27JAN2020/ExcST7B.hpp | 17 +- .../ExcitationSystemDynamics.cpp | 112 ++-- .../ExcitationSystemDynamics.hpp | 17 +- .../ExcitationSystemUserDefined.cpp | 86 ++- .../ExcitationSystemUserDefined.hpp | 17 +- .../ExternalNetworkInjection.cpp | 202 ++++--- .../ExternalNetworkInjection.hpp | 17 +- CGMES_2.4.15_27JAN2020/FossilFuel.cpp | 88 +++- CGMES_2.4.15_27JAN2020/FossilFuel.hpp | 17 +- .../GenICompensationForGenJ.cpp | 100 +++- .../GenICompensationForGenJ.hpp | 17 +- CGMES_2.4.15_27JAN2020/GeneratingUnit.cpp | 202 ++++--- CGMES_2.4.15_27JAN2020/GeneratingUnit.hpp | 17 +- .../GeographicalLocationVersion.cpp | 136 +++-- .../GeographicalLocationVersion.hpp | 17 +- CGMES_2.4.15_27JAN2020/GeographicalRegion.cpp | 82 ++- CGMES_2.4.15_27JAN2020/GeographicalRegion.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovCT1.cpp | 302 ++++++----- CGMES_2.4.15_27JAN2020/GovCT1.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovCT2.cpp | 428 ++++++++------- CGMES_2.4.15_27JAN2020/GovCT2.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovGAST.cpp | 136 +++-- CGMES_2.4.15_27JAN2020/GovGAST.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovGAST1.cpp | 296 ++++++----- CGMES_2.4.15_27JAN2020/GovGAST1.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovGAST2.cpp | 284 +++++----- CGMES_2.4.15_27JAN2020/GovGAST2.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovGAST3.cpp | 218 +++++--- CGMES_2.4.15_27JAN2020/GovGAST3.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovGAST4.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/GovGAST4.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovGASTWD.cpp | 290 +++++----- CGMES_2.4.15_27JAN2020/GovGASTWD.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydro1.cpp | 160 ++++-- CGMES_2.4.15_27JAN2020/GovHydro1.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydro2.cpp | 266 ++++++---- CGMES_2.4.15_27JAN2020/GovHydro2.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydro3.cpp | 308 ++++++----- CGMES_2.4.15_27JAN2020/GovHydro3.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydro4.cpp | 320 +++++++----- CGMES_2.4.15_27JAN2020/GovHydro4.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroDD.cpp | 302 ++++++----- CGMES_2.4.15_27JAN2020/GovHydroDD.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroFrancis.cpp | 254 +++++---- CGMES_2.4.15_27JAN2020/GovHydroFrancis.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroIEEE0.cpp | 124 +++-- CGMES_2.4.15_27JAN2020/GovHydroIEEE0.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroIEEE2.cpp | 248 +++++---- CGMES_2.4.15_27JAN2020/GovHydroIEEE2.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroPID.cpp | 290 +++++----- CGMES_2.4.15_27JAN2020/GovHydroPID.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroPID2.cpp | 224 ++++---- CGMES_2.4.15_27JAN2020/GovHydroPID2.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroPelton.cpp | 260 +++++---- CGMES_2.4.15_27JAN2020/GovHydroPelton.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroR.cpp | 344 ++++++------ CGMES_2.4.15_27JAN2020/GovHydroR.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroWEH.cpp | 398 +++++++------- CGMES_2.4.15_27JAN2020/GovHydroWEH.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovHydroWPID.cpp | 224 ++++---- CGMES_2.4.15_27JAN2020/GovHydroWPID.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteam0.cpp | 124 +++-- CGMES_2.4.15_27JAN2020/GovSteam0.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteam1.cpp | 326 +++++++----- CGMES_2.4.15_27JAN2020/GovSteam1.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteam2.cpp | 124 +++-- CGMES_2.4.15_27JAN2020/GovSteam2.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteamCC.cpp | 178 ++++--- CGMES_2.4.15_27JAN2020/GovSteamCC.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteamEU.cpp | 302 ++++++----- CGMES_2.4.15_27JAN2020/GovSteamEU.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteamFV2.cpp | 154 ++++-- CGMES_2.4.15_27JAN2020/GovSteamFV2.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteamFV3.cpp | 206 +++++--- CGMES_2.4.15_27JAN2020/GovSteamFV3.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteamFV4.cpp | 398 +++++++------- CGMES_2.4.15_27JAN2020/GovSteamFV4.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteamIEEE1.cpp | 218 +++++--- CGMES_2.4.15_27JAN2020/GovSteamIEEE1.hpp | 17 +- CGMES_2.4.15_27JAN2020/GovSteamSGO.cpp | 148 ++++-- CGMES_2.4.15_27JAN2020/GovSteamSGO.hpp | 17 +- .../GrossToNetActivePowerCurve.cpp | 82 ++- .../GrossToNetActivePowerCurve.hpp | 17 +- CGMES_2.4.15_27JAN2020/Ground.cpp | 76 ++- CGMES_2.4.15_27JAN2020/Ground.hpp | 17 +- CGMES_2.4.15_27JAN2020/GroundDisconnector.cpp | 78 ++- CGMES_2.4.15_27JAN2020/GroundDisconnector.hpp | 17 +- CGMES_2.4.15_27JAN2020/GroundingImpedance.cpp | 82 ++- CGMES_2.4.15_27JAN2020/GroundingImpedance.hpp | 17 +- .../HydroGeneratingUnit.cpp | 90 +++- .../HydroGeneratingUnit.hpp | 17 +- CGMES_2.4.15_27JAN2020/HydroPowerPlant.cpp | 90 +++- CGMES_2.4.15_27JAN2020/HydroPowerPlant.hpp | 17 +- CGMES_2.4.15_27JAN2020/HydroPump.cpp | 88 +++- CGMES_2.4.15_27JAN2020/HydroPump.hpp | 17 +- CGMES_2.4.15_27JAN2020/IdentifiedObject.cpp | 130 +++-- CGMES_2.4.15_27JAN2020/IdentifiedObject.hpp | 17 +- CGMES_2.4.15_27JAN2020/Junction.cpp | 78 ++- CGMES_2.4.15_27JAN2020/Junction.hpp | 17 +- CGMES_2.4.15_27JAN2020/Limit.cpp | 76 ++- CGMES_2.4.15_27JAN2020/Limit.hpp | 17 +- CGMES_2.4.15_27JAN2020/LimitSet.cpp | 82 ++- CGMES_2.4.15_27JAN2020/LimitSet.hpp | 17 +- CGMES_2.4.15_27JAN2020/Line.cpp | 84 ++- CGMES_2.4.15_27JAN2020/Line.hpp | 17 +- .../LinearShuntCompensator.cpp | 102 +++- .../LinearShuntCompensator.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadAggregate.cpp | 84 ++- CGMES_2.4.15_27JAN2020/LoadAggregate.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadArea.cpp | 80 ++- CGMES_2.4.15_27JAN2020/LoadArea.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadBreakSwitch.cpp | 78 ++- CGMES_2.4.15_27JAN2020/LoadBreakSwitch.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadComposite.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/LoadComposite.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadDynamics.cpp | 80 ++- CGMES_2.4.15_27JAN2020/LoadDynamics.hpp | 17 +- .../LoadGenericNonLinear.cpp | 130 +++-- .../LoadGenericNonLinear.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadGroup.cpp | 82 ++- CGMES_2.4.15_27JAN2020/LoadGroup.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadMotor.cpp | 160 ++++-- CGMES_2.4.15_27JAN2020/LoadMotor.hpp | 17 +- .../LoadResponseCharacteristic.cpp | 146 ++++-- .../LoadResponseCharacteristic.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadStatic.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/LoadStatic.hpp | 17 +- CGMES_2.4.15_27JAN2020/LoadUserDefined.cpp | 86 ++- CGMES_2.4.15_27JAN2020/LoadUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/Location.cpp | 92 +++- CGMES_2.4.15_27JAN2020/Location.hpp | 17 +- CGMES_2.4.15_27JAN2020/Measurement.cpp | 112 ++-- CGMES_2.4.15_27JAN2020/Measurement.hpp | 17 +- CGMES_2.4.15_27JAN2020/MeasurementValue.cpp | 98 +++- CGMES_2.4.15_27JAN2020/MeasurementValue.hpp | 17 +- .../MeasurementValueQuality.cpp | 82 ++- .../MeasurementValueQuality.hpp | 17 +- .../MeasurementValueSource.cpp | 80 ++- .../MeasurementValueSource.hpp | 17 +- CGMES_2.4.15_27JAN2020/MechLoad1.cpp | 100 +++- CGMES_2.4.15_27JAN2020/MechLoad1.hpp | 17 +- .../MechanicalLoadDynamics.cpp | 88 +++- .../MechanicalLoadDynamics.hpp | 17 +- .../MechanicalLoadUserDefined.cpp | 86 ++- .../MechanicalLoadUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/MutualCoupling.cpp | 136 +++-- CGMES_2.4.15_27JAN2020/MutualCoupling.hpp | 17 +- CGMES_2.4.15_27JAN2020/NonConformLoad.cpp | 84 ++- CGMES_2.4.15_27JAN2020/NonConformLoad.hpp | 17 +- .../NonConformLoadGroup.cpp | 84 ++- .../NonConformLoadGroup.hpp | 17 +- .../NonConformLoadSchedule.cpp | 82 ++- .../NonConformLoadSchedule.hpp | 17 +- .../NonlinearShuntCompensator.cpp | 82 ++- .../NonlinearShuntCompensator.hpp | 17 +- .../NonlinearShuntCompensatorPoint.cpp | 112 ++-- .../NonlinearShuntCompensatorPoint.hpp | 17 +- .../NuclearGeneratingUnit.cpp | 78 ++- .../NuclearGeneratingUnit.hpp | 17 +- CGMES_2.4.15_27JAN2020/OperationalLimit.cpp | 88 +++- CGMES_2.4.15_27JAN2020/OperationalLimit.hpp | 17 +- .../OperationalLimitSet.cpp | 92 +++- .../OperationalLimitSet.hpp | 17 +- .../OperationalLimitType.cpp | 98 +++- .../OperationalLimitType.hpp | 17 +- CGMES_2.4.15_27JAN2020/OverexcLim2.cpp | 100 +++- CGMES_2.4.15_27JAN2020/OverexcLim2.hpp | 17 +- CGMES_2.4.15_27JAN2020/OverexcLimIEEE.cpp | 112 ++-- CGMES_2.4.15_27JAN2020/OverexcLimIEEE.hpp | 17 +- CGMES_2.4.15_27JAN2020/OverexcLimX1.cpp | 136 +++-- CGMES_2.4.15_27JAN2020/OverexcLimX1.hpp | 17 +- CGMES_2.4.15_27JAN2020/OverexcLimX2.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/OverexcLimX2.hpp | 17 +- .../OverexcitationLimiterDynamics.cpp | 82 ++- .../OverexcitationLimiterDynamics.hpp | 17 +- .../OverexcitationLimiterUserDefined.cpp | 86 ++- .../OverexcitationLimiterUserDefined.hpp | 17 +- .../PFVArControllerType1Dynamics.cpp | 90 +++- .../PFVArControllerType1Dynamics.hpp | 17 +- .../PFVArControllerType1UserDefined.cpp | 86 ++- .../PFVArControllerType1UserDefined.hpp | 17 +- .../PFVArControllerType2Dynamics.cpp | 82 ++- .../PFVArControllerType2Dynamics.hpp | 17 +- .../PFVArControllerType2UserDefined.cpp | 86 ++- .../PFVArControllerType2UserDefined.hpp | 17 +- .../PFVArType1IEEEPFController.cpp | 124 +++-- .../PFVArType1IEEEPFController.hpp | 17 +- .../PFVArType1IEEEVArController.cpp | 112 ++-- .../PFVArType1IEEEVArController.hpp | 17 +- CGMES_2.4.15_27JAN2020/PFVArType2Common1.cpp | 106 ++-- CGMES_2.4.15_27JAN2020/PFVArType2Common1.hpp | 17 +- .../PFVArType2IEEEPFController.cpp | 118 +++-- .../PFVArType2IEEEPFController.hpp | 17 +- .../PFVArType2IEEEVArController.cpp | 118 +++-- .../PFVArType2IEEEVArController.hpp | 17 +- .../PerLengthDCLineParameter.cpp | 98 +++- .../PerLengthDCLineParameter.hpp | 17 +- CGMES_2.4.15_27JAN2020/PetersenCoil.cpp | 118 +++-- CGMES_2.4.15_27JAN2020/PetersenCoil.hpp | 17 +- CGMES_2.4.15_27JAN2020/PhaseTapChanger.cpp | 84 ++- CGMES_2.4.15_27JAN2020/PhaseTapChanger.hpp | 17 +- .../PhaseTapChangerAsymmetrical.cpp | 84 ++- .../PhaseTapChangerAsymmetrical.hpp | 17 +- .../PhaseTapChangerLinear.cpp | 96 +++- .../PhaseTapChangerLinear.hpp | 17 +- .../PhaseTapChangerNonLinear.cpp | 96 +++- .../PhaseTapChangerNonLinear.hpp | 17 +- .../PhaseTapChangerSymmetrical.cpp | 78 ++- .../PhaseTapChangerSymmetrical.hpp | 17 +- .../PhaseTapChangerTable.cpp | 84 ++- .../PhaseTapChangerTable.hpp | 17 +- .../PhaseTapChangerTablePoint.cpp | 88 +++- .../PhaseTapChangerTablePoint.hpp | 17 +- .../PhaseTapChangerTabular.cpp | 84 ++- .../PhaseTapChangerTabular.hpp | 17 +- CGMES_2.4.15_27JAN2020/PositionPoint.cpp | 106 ++-- CGMES_2.4.15_27JAN2020/PositionPoint.hpp | 17 +- .../PowerSystemResource.cpp | 96 +++- .../PowerSystemResource.hpp | 17 +- .../PowerSystemStabilizerDynamics.cpp | 86 ++- .../PowerSystemStabilizerDynamics.hpp | 17 +- .../PowerSystemStabilizerUserDefined.cpp | 86 ++- .../PowerSystemStabilizerUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/PowerTransformer.cpp | 116 ++-- CGMES_2.4.15_27JAN2020/PowerTransformer.hpp | 17 +- .../PowerTransformerEnd.cpp | 154 ++++-- .../PowerTransformerEnd.hpp | 17 +- .../ProprietaryParameterDynamics.cpp | 224 ++++---- .../ProprietaryParameterDynamics.hpp | 17 +- CGMES_2.4.15_27JAN2020/ProtectedSwitch.cpp | 78 ++- CGMES_2.4.15_27JAN2020/ProtectedSwitch.hpp | 17 +- CGMES_2.4.15_27JAN2020/Pss1.cpp | 166 +++--- CGMES_2.4.15_27JAN2020/Pss1.hpp | 17 +- CGMES_2.4.15_27JAN2020/Pss1A.cpp | 224 ++++---- CGMES_2.4.15_27JAN2020/Pss1A.hpp | 17 +- CGMES_2.4.15_27JAN2020/Pss2B.cpp | 278 ++++++---- CGMES_2.4.15_27JAN2020/Pss2B.hpp | 17 +- CGMES_2.4.15_27JAN2020/Pss2ST.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/Pss2ST.hpp | 17 +- CGMES_2.4.15_27JAN2020/Pss5.cpp | 178 ++++--- CGMES_2.4.15_27JAN2020/Pss5.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssELIN2.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/PssELIN2.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssIEEE1A.cpp | 148 ++++-- CGMES_2.4.15_27JAN2020/PssIEEE1A.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssIEEE2B.cpp | 254 +++++---- CGMES_2.4.15_27JAN2020/PssIEEE2B.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssIEEE3B.cpp | 206 +++++--- CGMES_2.4.15_27JAN2020/PssIEEE3B.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssIEEE4B.cpp | 494 ++++++++++-------- CGMES_2.4.15_27JAN2020/PssIEEE4B.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssPTIST1.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/PssPTIST1.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssPTIST3.cpp | 296 ++++++----- CGMES_2.4.15_27JAN2020/PssPTIST3.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssSB4.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/PssSB4.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssSH.cpp | 154 ++++-- CGMES_2.4.15_27JAN2020/PssSH.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssSK.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/PssSK.hpp | 17 +- CGMES_2.4.15_27JAN2020/PssWECC.cpp | 184 ++++--- CGMES_2.4.15_27JAN2020/PssWECC.hpp | 17 +- CGMES_2.4.15_27JAN2020/Quality61850.cpp | 148 ++++-- CGMES_2.4.15_27JAN2020/Quality61850.hpp | 17 +- CGMES_2.4.15_27JAN2020/RaiseLowerCommand.cpp | 82 ++- CGMES_2.4.15_27JAN2020/RaiseLowerCommand.hpp | 17 +- CGMES_2.4.15_27JAN2020/RatioTapChanger.cpp | 102 +++- CGMES_2.4.15_27JAN2020/RatioTapChanger.hpp | 17 +- .../RatioTapChangerTable.cpp | 84 ++- .../RatioTapChangerTable.hpp | 17 +- .../RatioTapChangerTablePoint.cpp | 82 ++- .../RatioTapChangerTablePoint.hpp | 17 +- .../ReactiveCapabilityCurve.cpp | 84 ++- .../ReactiveCapabilityCurve.hpp | 17 +- .../RegularIntervalSchedule.cpp | 92 +++- .../RegularIntervalSchedule.hpp | 17 +- CGMES_2.4.15_27JAN2020/RegularTimePoint.cpp | 100 +++- CGMES_2.4.15_27JAN2020/RegularTimePoint.hpp | 17 +- CGMES_2.4.15_27JAN2020/RegulatingCondEq.cpp | 92 +++- CGMES_2.4.15_27JAN2020/RegulatingCondEq.hpp | 17 +- CGMES_2.4.15_27JAN2020/RegulatingControl.cpp | 128 +++-- CGMES_2.4.15_27JAN2020/RegulatingControl.hpp | 17 +- CGMES_2.4.15_27JAN2020/RegulationSchedule.cpp | 82 ++- CGMES_2.4.15_27JAN2020/RegulationSchedule.hpp | 17 +- CGMES_2.4.15_27JAN2020/RemoteInputSignal.cpp | 130 +++-- CGMES_2.4.15_27JAN2020/RemoteInputSignal.hpp | 17 +- CGMES_2.4.15_27JAN2020/ReportingGroup.cpp | 86 ++- CGMES_2.4.15_27JAN2020/ReportingGroup.hpp | 17 +- CGMES_2.4.15_27JAN2020/RotatingMachine.cpp | 120 +++-- CGMES_2.4.15_27JAN2020/RotatingMachine.hpp | 17 +- .../RotatingMachineDynamics.cpp | 112 ++-- .../RotatingMachineDynamics.hpp | 17 +- CGMES_2.4.15_27JAN2020/Season.cpp | 92 +++- CGMES_2.4.15_27JAN2020/Season.hpp | 17 +- .../SeasonDayTypeSchedule.cpp | 88 +++- .../SeasonDayTypeSchedule.hpp | 17 +- CGMES_2.4.15_27JAN2020/SeriesCompensator.cpp | 118 +++-- CGMES_2.4.15_27JAN2020/SeriesCompensator.hpp | 17 +- CGMES_2.4.15_27JAN2020/SetPoint.cpp | 88 +++- CGMES_2.4.15_27JAN2020/SetPoint.hpp | 17 +- CGMES_2.4.15_27JAN2020/ShuntCompensator.cpp | 138 +++-- CGMES_2.4.15_27JAN2020/ShuntCompensator.hpp | 17 +- .../SolarGeneratingUnit.cpp | 78 ++- .../SolarGeneratingUnit.hpp | 17 +- .../StateVariablesVersion.cpp | 136 +++-- .../StateVariablesVersion.hpp | 17 +- .../StaticVarCompensator.cpp | 114 ++-- .../StaticVarCompensator.hpp | 17 +- CGMES_2.4.15_27JAN2020/StationSupply.cpp | 78 ++- CGMES_2.4.15_27JAN2020/StationSupply.hpp | 17 +- .../SteadyStateHypothesisVersion.cpp | 136 +++-- .../SteadyStateHypothesisVersion.hpp | 17 +- CGMES_2.4.15_27JAN2020/StringMeasurement.cpp | 80 ++- CGMES_2.4.15_27JAN2020/StringMeasurement.hpp | 17 +- .../StringMeasurementValue.cpp | 88 +++- .../StringMeasurementValue.hpp | 17 +- .../SubGeographicalRegion.cpp | 96 +++- .../SubGeographicalRegion.hpp | 17 +- CGMES_2.4.15_27JAN2020/SubLoadArea.cpp | 86 ++- CGMES_2.4.15_27JAN2020/SubLoadArea.hpp | 17 +- CGMES_2.4.15_27JAN2020/Substation.cpp | 90 +++- CGMES_2.4.15_27JAN2020/Substation.hpp | 17 +- CGMES_2.4.15_27JAN2020/SvInjection.cpp | 94 +++- CGMES_2.4.15_27JAN2020/SvInjection.hpp | 17 +- CGMES_2.4.15_27JAN2020/SvPowerFlow.cpp | 94 +++- CGMES_2.4.15_27JAN2020/SvPowerFlow.hpp | 17 +- .../SvShuntCompensatorSections.cpp | 88 +++- .../SvShuntCompensatorSections.hpp | 17 +- CGMES_2.4.15_27JAN2020/SvStatus.cpp | 88 +++- CGMES_2.4.15_27JAN2020/SvStatus.hpp | 17 +- CGMES_2.4.15_27JAN2020/SvTapStep.cpp | 88 +++- CGMES_2.4.15_27JAN2020/SvTapStep.hpp | 17 +- CGMES_2.4.15_27JAN2020/SvVoltage.cpp | 94 +++- CGMES_2.4.15_27JAN2020/SvVoltage.hpp | 17 +- CGMES_2.4.15_27JAN2020/Switch.cpp | 106 ++-- CGMES_2.4.15_27JAN2020/Switch.hpp | 17 +- CGMES_2.4.15_27JAN2020/SwitchSchedule.cpp | 82 ++- CGMES_2.4.15_27JAN2020/SwitchSchedule.hpp | 17 +- CGMES_2.4.15_27JAN2020/SynchronousMachine.cpp | 232 ++++---- CGMES_2.4.15_27JAN2020/SynchronousMachine.hpp | 17 +- .../SynchronousMachineDetailed.cpp | 106 ++-- .../SynchronousMachineDetailed.hpp | 17 +- .../SynchronousMachineDynamics.cpp | 98 +++- .../SynchronousMachineDynamics.hpp | 17 +- .../SynchronousMachineEquivalentCircuit.cpp | 142 +++-- .../SynchronousMachineEquivalentCircuit.hpp | 17 +- .../SynchronousMachineSimplified.cpp | 76 ++- .../SynchronousMachineSimplified.hpp | 17 +- ...ynchronousMachineTimeConstantReactance.cpp | 160 ++++-- ...ynchronousMachineTimeConstantReactance.hpp | 17 +- .../SynchronousMachineUserDefined.cpp | 86 ++- .../SynchronousMachineUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/TapChanger.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/TapChanger.hpp | 17 +- CGMES_2.4.15_27JAN2020/TapChangerControl.cpp | 82 ++- CGMES_2.4.15_27JAN2020/TapChangerControl.hpp | 17 +- .../TapChangerTablePoint.cpp | 112 ++-- .../TapChangerTablePoint.hpp | 17 +- CGMES_2.4.15_27JAN2020/TapSchedule.cpp | 82 ++- CGMES_2.4.15_27JAN2020/TapSchedule.hpp | 17 +- CGMES_2.4.15_27JAN2020/Terminal.cpp | 142 +++-- CGMES_2.4.15_27JAN2020/Terminal.hpp | 17 +- CGMES_2.4.15_27JAN2020/TextDiagramObject.cpp | 82 ++- CGMES_2.4.15_27JAN2020/TextDiagramObject.hpp | 17 +- .../ThermalGeneratingUnit.cpp | 82 ++- .../ThermalGeneratingUnit.hpp | 17 +- CGMES_2.4.15_27JAN2020/TieFlow.cpp | 94 +++- CGMES_2.4.15_27JAN2020/TieFlow.hpp | 17 +- CGMES_2.4.15_27JAN2020/TopologicalIsland.cpp | 88 +++- CGMES_2.4.15_27JAN2020/TopologicalIsland.hpp | 17 +- CGMES_2.4.15_27JAN2020/TopologicalNode.cpp | 164 +++--- CGMES_2.4.15_27JAN2020/TopologicalNode.hpp | 17 +- .../TopologyBoundaryVersion.cpp | 136 +++-- .../TopologyBoundaryVersion.hpp | 17 +- CGMES_2.4.15_27JAN2020/TopologyVersion.cpp | 136 +++-- CGMES_2.4.15_27JAN2020/TopologyVersion.hpp | 17 +- CGMES_2.4.15_27JAN2020/TransformerEnd.cpp | 120 +++-- CGMES_2.4.15_27JAN2020/TransformerEnd.hpp | 17 +- CGMES_2.4.15_27JAN2020/TurbLCFB1.cpp | 148 ++++-- CGMES_2.4.15_27JAN2020/TurbLCFB1.hpp | 17 +- .../TurbineGovernorDynamics.cpp | 92 +++- .../TurbineGovernorDynamics.hpp | 17 +- .../TurbineGovernorUserDefined.cpp | 86 ++- .../TurbineGovernorUserDefined.hpp | 17 +- .../TurbineLoadControllerDynamics.cpp | 82 ++- .../TurbineLoadControllerDynamics.hpp | 17 +- .../TurbineLoadControllerUserDefined.cpp | 86 ++- .../TurbineLoadControllerUserDefined.hpp | 17 +- .../UnderexcLim2Simplified.cpp | 118 +++-- .../UnderexcLim2Simplified.hpp | 17 +- CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.cpp | 166 +++--- CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.hpp | 17 +- CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.cpp | 332 +++++++----- CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.hpp | 17 +- CGMES_2.4.15_27JAN2020/UnderexcLimX1.cpp | 112 ++-- CGMES_2.4.15_27JAN2020/UnderexcLimX1.hpp | 17 +- CGMES_2.4.15_27JAN2020/UnderexcLimX2.cpp | 118 +++-- CGMES_2.4.15_27JAN2020/UnderexcLimX2.hpp | 17 +- .../UnderexcitationLimiterDynamics.cpp | 86 ++- .../UnderexcitationLimiterDynamics.hpp | 17 +- .../UnderexcitationLimiterUserDefined.cpp | 86 ++- .../UnderexcitationLimiterUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/VAdjIEEE.cpp | 112 ++-- CGMES_2.4.15_27JAN2020/VAdjIEEE.hpp | 17 +- CGMES_2.4.15_27JAN2020/VCompIEEEType1.cpp | 94 +++- CGMES_2.4.15_27JAN2020/VCompIEEEType1.hpp | 17 +- CGMES_2.4.15_27JAN2020/VCompIEEEType2.cpp | 86 ++- CGMES_2.4.15_27JAN2020/VCompIEEEType2.hpp | 17 +- CGMES_2.4.15_27JAN2020/ValueAliasSet.cpp | 92 +++- CGMES_2.4.15_27JAN2020/ValueAliasSet.hpp | 17 +- CGMES_2.4.15_27JAN2020/ValueToAlias.cpp | 88 +++- CGMES_2.4.15_27JAN2020/ValueToAlias.hpp | 17 +- CGMES_2.4.15_27JAN2020/VisibilityLayer.cpp | 88 +++- CGMES_2.4.15_27JAN2020/VisibilityLayer.hpp | 17 +- .../VoltageAdjusterDynamics.cpp | 82 ++- .../VoltageAdjusterDynamics.hpp | 17 +- .../VoltageAdjusterUserDefined.cpp | 86 ++- .../VoltageAdjusterUserDefined.hpp | 17 +- .../VoltageCompensatorDynamics.cpp | 86 ++- .../VoltageCompensatorDynamics.hpp | 17 +- .../VoltageCompensatorUserDefined.cpp | 86 ++- .../VoltageCompensatorUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/VoltageLevel.cpp | 104 +++- CGMES_2.4.15_27JAN2020/VoltageLevel.hpp | 17 +- CGMES_2.4.15_27JAN2020/VoltageLimit.cpp | 82 ++- CGMES_2.4.15_27JAN2020/VoltageLimit.hpp | 17 +- CGMES_2.4.15_27JAN2020/VsCapabilityCurve.cpp | 80 ++- CGMES_2.4.15_27JAN2020/VsCapabilityCurve.hpp | 17 +- CGMES_2.4.15_27JAN2020/VsConverter.cpp | 152 ++++-- CGMES_2.4.15_27JAN2020/VsConverter.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindAeroConstIEC.cpp | 80 ++- CGMES_2.4.15_27JAN2020/WindAeroConstIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.cpp | 112 ++-- CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.cpp | 114 ++-- CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindContPType3IEC.cpp | 226 ++++---- CGMES_2.4.15_27JAN2020/WindContPType3IEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindContPType4aIEC.cpp | 98 +++- CGMES_2.4.15_27JAN2020/WindContPType4aIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindContPType4bIEC.cpp | 104 +++- CGMES_2.4.15_27JAN2020/WindContPType4bIEC.hpp | 17 +- .../WindContPitchAngleIEC.cpp | 140 +++-- .../WindContPitchAngleIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindContQIEC.cpp | 252 +++++---- CGMES_2.4.15_27JAN2020/WindContQIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindContRotorRIEC.cpp | 132 +++-- CGMES_2.4.15_27JAN2020/WindContRotorRIEC.hpp | 17 +- .../WindDynamicsLookupTable.cpp | 124 +++-- .../WindDynamicsLookupTable.hpp | 17 +- .../WindGenTurbineType1IEC.cpp | 82 ++- .../WindGenTurbineType1IEC.hpp | 17 +- .../WindGenTurbineType2IEC.cpp | 88 +++- .../WindGenTurbineType2IEC.hpp | 17 +- .../WindGenTurbineType3IEC.cpp | 112 ++-- .../WindGenTurbineType3IEC.hpp | 17 +- .../WindGenTurbineType3aIEC.cpp | 94 +++- .../WindGenTurbineType3aIEC.hpp | 17 +- .../WindGenTurbineType3bIEC.cpp | 106 ++-- .../WindGenTurbineType3bIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindGenType4IEC.cpp | 100 +++- CGMES_2.4.15_27JAN2020/WindGenType4IEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindGeneratingUnit.cpp | 84 ++- CGMES_2.4.15_27JAN2020/WindGeneratingUnit.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindMechIEC.cpp | 114 ++-- CGMES_2.4.15_27JAN2020/WindMechIEC.hpp | 17 +- .../WindPitchContEmulIEC.cpp | 140 +++-- .../WindPitchContEmulIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindPlantDynamics.cpp | 86 ++- CGMES_2.4.15_27JAN2020/WindPlantDynamics.hpp | 17 +- .../WindPlantFreqPcontrolIEC.cpp | 144 +++-- .../WindPlantFreqPcontrolIEC.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindPlantIEC.cpp | 88 +++- CGMES_2.4.15_27JAN2020/WindPlantIEC.hpp | 17 +- .../WindPlantReactiveControlIEC.cpp | 158 ++++-- .../WindPlantReactiveControlIEC.hpp | 17 +- .../WindPlantUserDefined.cpp | 86 ++- .../WindPlantUserDefined.hpp | 17 +- CGMES_2.4.15_27JAN2020/WindProtectionIEC.cpp | 132 +++-- CGMES_2.4.15_27JAN2020/WindProtectionIEC.hpp | 17 +- .../WindTurbineType1or2Dynamics.cpp | 88 +++- .../WindTurbineType1or2Dynamics.hpp | 17 +- .../WindTurbineType1or2IEC.cpp | 88 +++- .../WindTurbineType1or2IEC.hpp | 17 +- .../WindTurbineType3or4Dynamics.cpp | 94 +++- .../WindTurbineType3or4Dynamics.hpp | 17 +- .../WindTurbineType3or4IEC.cpp | 94 +++- .../WindTurbineType3or4IEC.hpp | 17 +- .../WindTurbineType4aIEC.cpp | 82 ++- .../WindTurbineType4aIEC.hpp | 17 +- .../WindTurbineType4bIEC.cpp | 88 +++- .../WindTurbineType4bIEC.hpp | 17 +- .../WindType1or2UserDefined.cpp | 86 ++- .../WindType1or2UserDefined.hpp | 17 +- .../WindType3or4UserDefined.cpp | 86 ++- .../WindType3or4UserDefined.hpp | 17 +- CGMES_3.0.0/ACDCConverter.cpp | 222 ++++---- CGMES_3.0.0/ACDCConverter.hpp | 17 +- CGMES_3.0.0/ACDCConverterDCTerminal.cpp | 92 +++- CGMES_3.0.0/ACDCConverterDCTerminal.hpp | 17 +- CGMES_3.0.0/ACDCTerminal.cpp | 116 ++-- CGMES_3.0.0/ACDCTerminal.hpp | 17 +- CGMES_3.0.0/ACLineSegment.cpp | 140 +++-- CGMES_3.0.0/ACLineSegment.hpp | 17 +- CGMES_3.0.0/Accumulator.cpp | 84 ++- CGMES_3.0.0/Accumulator.hpp | 17 +- CGMES_3.0.0/AccumulatorLimit.cpp | 88 +++- CGMES_3.0.0/AccumulatorLimit.hpp | 17 +- CGMES_3.0.0/AccumulatorLimitSet.cpp | 86 ++- CGMES_3.0.0/AccumulatorLimitSet.hpp | 17 +- CGMES_3.0.0/AccumulatorReset.cpp | 82 ++- CGMES_3.0.0/AccumulatorReset.hpp | 17 +- CGMES_3.0.0/AccumulatorValue.cpp | 86 ++- CGMES_3.0.0/AccumulatorValue.hpp | 17 +- CGMES_3.0.0/ActivePowerLimit.cpp | 90 +++- CGMES_3.0.0/ActivePowerLimit.hpp | 17 +- CGMES_3.0.0/Analog.cpp | 90 +++- CGMES_3.0.0/Analog.hpp | 17 +- CGMES_3.0.0/AnalogControl.cpp | 94 +++- CGMES_3.0.0/AnalogControl.hpp | 17 +- CGMES_3.0.0/AnalogLimit.cpp | 88 +++- CGMES_3.0.0/AnalogLimit.hpp | 17 +- CGMES_3.0.0/AnalogLimitSet.cpp | 86 ++- CGMES_3.0.0/AnalogLimitSet.hpp | 17 +- CGMES_3.0.0/AnalogValue.cpp | 86 ++- CGMES_3.0.0/AnalogValue.hpp | 17 +- CGMES_3.0.0/ApparentPowerLimit.cpp | 90 +++- CGMES_3.0.0/ApparentPowerLimit.hpp | 17 +- CGMES_3.0.0/AsynchronousMachine.cpp | 146 ++++-- CGMES_3.0.0/AsynchronousMachine.hpp | 17 +- CGMES_3.0.0/AsynchronousMachineDynamics.cpp | 94 +++- CGMES_3.0.0/AsynchronousMachineDynamics.hpp | 17 +- .../AsynchronousMachineEquivalentCircuit.cpp | 106 ++-- .../AsynchronousMachineEquivalentCircuit.hpp | 17 +- ...ynchronousMachineTimeConstantReactance.cpp | 106 ++-- ...ynchronousMachineTimeConstantReactance.hpp | 17 +- .../AsynchronousMachineUserDefined.cpp | 86 ++- .../AsynchronousMachineUserDefined.hpp | 17 +- CGMES_3.0.0/AuxiliaryEquipment.cpp | 82 ++- CGMES_3.0.0/AuxiliaryEquipment.hpp | 17 +- CGMES_3.0.0/BaseVoltage.cpp | 102 +++- CGMES_3.0.0/BaseVoltage.hpp | 17 +- CGMES_3.0.0/BasicIntervalSchedule.cpp | 94 +++- CGMES_3.0.0/BasicIntervalSchedule.hpp | 17 +- CGMES_3.0.0/BatteryUnit.cpp | 96 +++- CGMES_3.0.0/BatteryUnit.hpp | 17 +- CGMES_3.0.0/Bay.cpp | 84 ++- CGMES_3.0.0/Bay.hpp | 17 +- CGMES_3.0.0/BoundaryPoint.cpp | 132 +++-- CGMES_3.0.0/BoundaryPoint.hpp | 17 +- CGMES_3.0.0/Breaker.cpp | 78 ++- CGMES_3.0.0/Breaker.hpp | 17 +- CGMES_3.0.0/BusNameMarker.cpp | 92 +++- CGMES_3.0.0/BusNameMarker.hpp | 17 +- CGMES_3.0.0/BusbarSection.cpp | 84 ++- CGMES_3.0.0/BusbarSection.hpp | 17 +- CGMES_3.0.0/CAESPlant.cpp | 80 ++- CGMES_3.0.0/CAESPlant.hpp | 17 +- CGMES_3.0.0/CSCDynamics.cpp | 82 ++- CGMES_3.0.0/CSCDynamics.hpp | 17 +- CGMES_3.0.0/CSCUserDefined.cpp | 86 ++- CGMES_3.0.0/CSCUserDefined.hpp | 17 +- CGMES_3.0.0/Clamp.cpp | 88 +++- CGMES_3.0.0/Clamp.hpp | 17 +- CGMES_3.0.0/CogenerationPlant.cpp | 80 ++- CGMES_3.0.0/CogenerationPlant.hpp | 17 +- CGMES_3.0.0/CombinedCyclePlant.cpp | 80 ++- CGMES_3.0.0/CombinedCyclePlant.hpp | 17 +- CGMES_3.0.0/Command.cpp | 100 +++- CGMES_3.0.0/Command.hpp | 17 +- CGMES_3.0.0/ConductingEquipment.cpp | 100 +++- CGMES_3.0.0/ConductingEquipment.hpp | 17 +- CGMES_3.0.0/Conductor.cpp | 84 ++- CGMES_3.0.0/Conductor.hpp | 17 +- CGMES_3.0.0/ConformLoad.cpp | 84 ++- CGMES_3.0.0/ConformLoad.hpp | 17 +- CGMES_3.0.0/ConformLoadGroup.cpp | 84 ++- CGMES_3.0.0/ConformLoadGroup.hpp | 17 +- CGMES_3.0.0/ConformLoadSchedule.cpp | 82 ++- CGMES_3.0.0/ConformLoadSchedule.hpp | 17 +- CGMES_3.0.0/ConnectivityNode.cpp | 100 +++- CGMES_3.0.0/ConnectivityNode.hpp | 17 +- CGMES_3.0.0/ConnectivityNodeContainer.cpp | 88 +++- CGMES_3.0.0/ConnectivityNodeContainer.hpp | 17 +- CGMES_3.0.0/Connector.cpp | 80 ++- CGMES_3.0.0/Connector.hpp | 17 +- CGMES_3.0.0/Control.cpp | 112 ++-- CGMES_3.0.0/Control.hpp | 17 +- CGMES_3.0.0/ControlArea.cpp | 112 ++-- CGMES_3.0.0/ControlArea.hpp | 17 +- CGMES_3.0.0/ControlAreaGeneratingUnit.cpp | 88 +++- CGMES_3.0.0/ControlAreaGeneratingUnit.hpp | 17 +- CGMES_3.0.0/CoordinateSystem.cpp | 86 ++- CGMES_3.0.0/CoordinateSystem.hpp | 17 +- .../CrossCompoundTurbineGovernorDynamics.cpp | 88 +++- .../CrossCompoundTurbineGovernorDynamics.hpp | 17 +- CGMES_3.0.0/CsConverter.cpp | 170 +++--- CGMES_3.0.0/CsConverter.hpp | 17 +- CGMES_3.0.0/CurrentLimit.cpp | 90 +++- CGMES_3.0.0/CurrentLimit.hpp | 17 +- CGMES_3.0.0/CurrentTransformer.cpp | 76 ++- CGMES_3.0.0/CurrentTransformer.hpp | 17 +- CGMES_3.0.0/Curve.cpp | 104 +++- CGMES_3.0.0/Curve.hpp | 17 +- CGMES_3.0.0/CurveData.cpp | 100 +++- CGMES_3.0.0/CurveData.hpp | 17 +- CGMES_3.0.0/Cut.cpp | 88 +++- CGMES_3.0.0/Cut.hpp | 17 +- CGMES_3.0.0/DCBaseTerminal.cpp | 92 +++- CGMES_3.0.0/DCBaseTerminal.hpp | 17 +- CGMES_3.0.0/DCBreaker.cpp | 76 ++- CGMES_3.0.0/DCBreaker.hpp | 17 +- CGMES_3.0.0/DCBusbar.cpp | 76 ++- CGMES_3.0.0/DCBusbar.hpp | 17 +- CGMES_3.0.0/DCChopper.cpp | 76 ++- CGMES_3.0.0/DCChopper.hpp | 17 +- CGMES_3.0.0/DCConductingEquipment.cpp | 86 ++- CGMES_3.0.0/DCConductingEquipment.hpp | 17 +- CGMES_3.0.0/DCConverterUnit.cpp | 88 +++- CGMES_3.0.0/DCConverterUnit.hpp | 17 +- CGMES_3.0.0/DCDisconnector.cpp | 76 ++- CGMES_3.0.0/DCDisconnector.hpp | 17 +- CGMES_3.0.0/DCEquipmentContainer.cpp | 86 ++- CGMES_3.0.0/DCEquipmentContainer.hpp | 17 +- CGMES_3.0.0/DCGround.cpp | 88 +++- CGMES_3.0.0/DCGround.hpp | 17 +- CGMES_3.0.0/DCLine.cpp | 82 ++- CGMES_3.0.0/DCLine.hpp | 17 +- CGMES_3.0.0/DCLineSegment.cpp | 100 +++- CGMES_3.0.0/DCLineSegment.hpp | 17 +- CGMES_3.0.0/DCNode.cpp | 94 +++- CGMES_3.0.0/DCNode.hpp | 17 +- CGMES_3.0.0/DCSeriesDevice.cpp | 88 +++- CGMES_3.0.0/DCSeriesDevice.hpp | 17 +- CGMES_3.0.0/DCShunt.cpp | 88 +++- CGMES_3.0.0/DCShunt.hpp | 17 +- CGMES_3.0.0/DCSwitch.cpp | 76 ++- CGMES_3.0.0/DCSwitch.hpp | 17 +- CGMES_3.0.0/DCTerminal.cpp | 86 ++- CGMES_3.0.0/DCTerminal.hpp | 17 +- CGMES_3.0.0/DCTopologicalIsland.cpp | 82 ++- CGMES_3.0.0/DCTopologicalIsland.hpp | 17 +- CGMES_3.0.0/DCTopologicalNode.cpp | 96 +++- CGMES_3.0.0/DCTopologicalNode.hpp | 17 +- CGMES_3.0.0/DayType.cpp | 80 ++- CGMES_3.0.0/DayType.hpp | 17 +- CGMES_3.0.0/Diagram.cpp | 116 ++-- CGMES_3.0.0/Diagram.hpp | 17 +- CGMES_3.0.0/DiagramObject.cpp | 132 +++-- CGMES_3.0.0/DiagramObject.hpp | 17 +- CGMES_3.0.0/DiagramObjectGluePoint.cpp | 80 ++- CGMES_3.0.0/DiagramObjectGluePoint.hpp | 17 +- CGMES_3.0.0/DiagramObjectPoint.cpp | 112 ++-- CGMES_3.0.0/DiagramObjectPoint.hpp | 17 +- CGMES_3.0.0/DiagramObjectStyle.cpp | 80 ++- CGMES_3.0.0/DiagramObjectStyle.hpp | 17 +- CGMES_3.0.0/DiagramStyle.cpp | 80 ++- CGMES_3.0.0/DiagramStyle.hpp | 17 +- CGMES_3.0.0/DiscExcContIEEEDEC1A.cpp | 184 ++++--- CGMES_3.0.0/DiscExcContIEEEDEC1A.hpp | 17 +- CGMES_3.0.0/DiscExcContIEEEDEC2A.cpp | 106 ++-- CGMES_3.0.0/DiscExcContIEEEDEC2A.hpp | 17 +- CGMES_3.0.0/DiscExcContIEEEDEC3A.cpp | 88 +++- CGMES_3.0.0/DiscExcContIEEEDEC3A.hpp | 17 +- CGMES_3.0.0/DisconnectingCircuitBreaker.cpp | 78 ++- CGMES_3.0.0/DisconnectingCircuitBreaker.hpp | 17 +- CGMES_3.0.0/Disconnector.cpp | 78 ++- CGMES_3.0.0/Disconnector.hpp | 17 +- ...DiscontinuousExcitationControlDynamics.cpp | 86 ++- ...DiscontinuousExcitationControlDynamics.hpp | 17 +- ...continuousExcitationControlUserDefined.cpp | 86 ++- ...continuousExcitationControlUserDefined.hpp | 17 +- CGMES_3.0.0/Discrete.cpp | 86 ++- CGMES_3.0.0/Discrete.hpp | 17 +- CGMES_3.0.0/DiscreteValue.cpp | 86 ++- CGMES_3.0.0/DiscreteValue.hpp | 17 +- CGMES_3.0.0/DynamicsFunctionBlock.cpp | 82 ++- CGMES_3.0.0/DynamicsFunctionBlock.hpp | 17 +- CGMES_3.0.0/EarthFaultCompensator.cpp | 84 ++- CGMES_3.0.0/EarthFaultCompensator.hpp | 17 +- CGMES_3.0.0/EnergyArea.cpp | 80 ++- CGMES_3.0.0/EnergyArea.hpp | 17 +- CGMES_3.0.0/EnergyConnection.cpp | 82 ++- CGMES_3.0.0/EnergyConnection.hpp | 17 +- CGMES_3.0.0/EnergyConsumer.cpp | 128 +++-- CGMES_3.0.0/EnergyConsumer.hpp | 17 +- CGMES_3.0.0/EnergySchedulingType.cpp | 82 ++- CGMES_3.0.0/EnergySchedulingType.hpp | 17 +- CGMES_3.0.0/EnergySource.cpp | 164 +++--- CGMES_3.0.0/EnergySource.hpp | 17 +- CGMES_3.0.0/Equipment.cpp | 112 ++-- CGMES_3.0.0/Equipment.hpp | 17 +- CGMES_3.0.0/EquipmentContainer.cpp | 82 ++- CGMES_3.0.0/EquipmentContainer.hpp | 17 +- CGMES_3.0.0/EquivalentBranch.cpp | 174 +++--- CGMES_3.0.0/EquivalentBranch.hpp | 17 +- CGMES_3.0.0/EquivalentEquipment.cpp | 86 ++- CGMES_3.0.0/EquivalentEquipment.hpp | 17 +- CGMES_3.0.0/EquivalentInjection.cpp | 176 ++++--- CGMES_3.0.0/EquivalentInjection.hpp | 17 +- CGMES_3.0.0/EquivalentNetwork.cpp | 80 ++- CGMES_3.0.0/EquivalentNetwork.hpp | 17 +- CGMES_3.0.0/EquivalentShunt.cpp | 88 +++- CGMES_3.0.0/EquivalentShunt.hpp | 17 +- CGMES_3.0.0/ExcAC1A.cpp | 224 ++++---- CGMES_3.0.0/ExcAC1A.hpp | 17 +- CGMES_3.0.0/ExcAC2A.cpp | 260 +++++---- CGMES_3.0.0/ExcAC2A.hpp | 17 +- CGMES_3.0.0/ExcAC3A.cpp | 248 +++++---- CGMES_3.0.0/ExcAC3A.hpp | 17 +- CGMES_3.0.0/ExcAC4A.cpp | 130 +++-- CGMES_3.0.0/ExcAC4A.hpp | 17 +- CGMES_3.0.0/ExcAC5A.cpp | 184 ++++--- CGMES_3.0.0/ExcAC5A.hpp | 17 +- CGMES_3.0.0/ExcAC6A.cpp | 230 ++++---- CGMES_3.0.0/ExcAC6A.hpp | 17 +- CGMES_3.0.0/ExcAC8B.cpp | 254 +++++---- CGMES_3.0.0/ExcAC8B.hpp | 17 +- CGMES_3.0.0/ExcANS.cpp | 160 ++++-- CGMES_3.0.0/ExcANS.hpp | 17 +- CGMES_3.0.0/ExcAVR1.cpp | 148 ++++-- CGMES_3.0.0/ExcAVR1.hpp | 17 +- CGMES_3.0.0/ExcAVR2.cpp | 154 ++++-- CGMES_3.0.0/ExcAVR2.hpp | 17 +- CGMES_3.0.0/ExcAVR3.cpp | 148 ++++-- CGMES_3.0.0/ExcAVR3.hpp | 17 +- CGMES_3.0.0/ExcAVR4.cpp | 160 ++++-- CGMES_3.0.0/ExcAVR4.hpp | 17 +- CGMES_3.0.0/ExcAVR5.cpp | 94 +++- CGMES_3.0.0/ExcAVR5.hpp | 17 +- CGMES_3.0.0/ExcAVR7.cpp | 218 +++++--- CGMES_3.0.0/ExcAVR7.hpp | 17 +- CGMES_3.0.0/ExcBBC.cpp | 142 +++-- CGMES_3.0.0/ExcBBC.hpp | 17 +- CGMES_3.0.0/ExcCZ.cpp | 136 +++-- CGMES_3.0.0/ExcCZ.hpp | 17 +- CGMES_3.0.0/ExcDC1A.cpp | 184 ++++--- CGMES_3.0.0/ExcDC1A.hpp | 17 +- CGMES_3.0.0/ExcDC2A.cpp | 184 ++++--- CGMES_3.0.0/ExcDC2A.hpp | 17 +- CGMES_3.0.0/ExcDC3A.cpp | 172 +++--- CGMES_3.0.0/ExcDC3A.hpp | 17 +- CGMES_3.0.0/ExcDC3A1.cpp | 160 ++++-- CGMES_3.0.0/ExcDC3A1.hpp | 17 +- CGMES_3.0.0/ExcELIN1.cpp | 166 +++--- CGMES_3.0.0/ExcELIN1.hpp | 17 +- CGMES_3.0.0/ExcELIN2.cpp | 254 +++++---- CGMES_3.0.0/ExcELIN2.hpp | 17 +- CGMES_3.0.0/ExcHU.cpp | 148 ++++-- CGMES_3.0.0/ExcHU.hpp | 17 +- CGMES_3.0.0/ExcIEEEAC1A.cpp | 184 ++++--- CGMES_3.0.0/ExcIEEEAC1A.hpp | 17 +- CGMES_3.0.0/ExcIEEEAC2A.cpp | 218 +++++--- CGMES_3.0.0/ExcIEEEAC2A.hpp | 17 +- CGMES_3.0.0/ExcIEEEAC3A.cpp | 218 +++++--- CGMES_3.0.0/ExcIEEEAC3A.hpp | 17 +- CGMES_3.0.0/ExcIEEEAC4A.cpp | 130 +++-- CGMES_3.0.0/ExcIEEEAC4A.hpp | 17 +- CGMES_3.0.0/ExcIEEEAC5A.cpp | 160 ++++-- CGMES_3.0.0/ExcIEEEAC5A.hpp | 17 +- CGMES_3.0.0/ExcIEEEAC6A.cpp | 224 ++++---- CGMES_3.0.0/ExcIEEEAC6A.hpp | 17 +- CGMES_3.0.0/ExcIEEEAC7B.cpp | 248 +++++---- CGMES_3.0.0/ExcIEEEAC7B.hpp | 17 +- CGMES_3.0.0/ExcIEEEAC8B.cpp | 184 ++++--- CGMES_3.0.0/ExcIEEEAC8B.hpp | 17 +- CGMES_3.0.0/ExcIEEEDC1A.cpp | 172 +++--- CGMES_3.0.0/ExcIEEEDC1A.hpp | 17 +- CGMES_3.0.0/ExcIEEEDC2A.cpp | 172 +++--- CGMES_3.0.0/ExcIEEEDC2A.hpp | 17 +- CGMES_3.0.0/ExcIEEEDC3A.cpp | 142 +++-- CGMES_3.0.0/ExcIEEEDC3A.hpp | 17 +- CGMES_3.0.0/ExcIEEEDC4B.cpp | 206 +++++--- CGMES_3.0.0/ExcIEEEDC4B.hpp | 17 +- CGMES_3.0.0/ExcIEEEST1A.cpp | 206 +++++--- CGMES_3.0.0/ExcIEEEST1A.hpp | 17 +- CGMES_3.0.0/ExcIEEEST2A.cpp | 154 ++++-- CGMES_3.0.0/ExcIEEEST2A.hpp | 17 +- CGMES_3.0.0/ExcIEEEST3A.cpp | 212 +++++--- CGMES_3.0.0/ExcIEEEST3A.hpp | 17 +- CGMES_3.0.0/ExcIEEEST4B.cpp | 172 +++--- CGMES_3.0.0/ExcIEEEST4B.hpp | 17 +- CGMES_3.0.0/ExcIEEEST5B.cpp | 178 ++++--- CGMES_3.0.0/ExcIEEEST5B.hpp | 17 +- CGMES_3.0.0/ExcIEEEST6B.cpp | 160 ++++-- CGMES_3.0.0/ExcIEEEST6B.hpp | 17 +- CGMES_3.0.0/ExcIEEEST7B.cpp | 166 +++--- CGMES_3.0.0/ExcIEEEST7B.hpp | 17 +- CGMES_3.0.0/ExcNI.cpp | 136 +++-- CGMES_3.0.0/ExcNI.hpp | 17 +- CGMES_3.0.0/ExcOEX3T.cpp | 206 +++++--- CGMES_3.0.0/ExcOEX3T.hpp | 17 +- CGMES_3.0.0/ExcPIC.cpp | 230 ++++---- CGMES_3.0.0/ExcPIC.hpp | 17 +- CGMES_3.0.0/ExcREXS.cpp | 308 ++++++----- CGMES_3.0.0/ExcREXS.hpp | 17 +- CGMES_3.0.0/ExcRQB.cpp | 154 ++++-- CGMES_3.0.0/ExcRQB.hpp | 17 +- CGMES_3.0.0/ExcSCRX.cpp | 124 +++-- CGMES_3.0.0/ExcSCRX.hpp | 17 +- CGMES_3.0.0/ExcSEXS.cpp | 136 +++-- CGMES_3.0.0/ExcSEXS.hpp | 17 +- CGMES_3.0.0/ExcSK.cpp | 284 +++++----- CGMES_3.0.0/ExcSK.hpp | 17 +- CGMES_3.0.0/ExcST1A.cpp | 184 ++++--- CGMES_3.0.0/ExcST1A.hpp | 17 +- CGMES_3.0.0/ExcST2A.cpp | 166 +++--- CGMES_3.0.0/ExcST2A.hpp | 17 +- CGMES_3.0.0/ExcST3A.cpp | 212 +++++--- CGMES_3.0.0/ExcST3A.hpp | 17 +- CGMES_3.0.0/ExcST4B.cpp | 206 +++++--- CGMES_3.0.0/ExcST4B.hpp | 17 +- CGMES_3.0.0/ExcST6B.cpp | 230 ++++---- CGMES_3.0.0/ExcST6B.hpp | 17 +- CGMES_3.0.0/ExcST7B.cpp | 172 +++--- CGMES_3.0.0/ExcST7B.hpp | 17 +- CGMES_3.0.0/ExcitationSystemDynamics.cpp | 112 ++-- CGMES_3.0.0/ExcitationSystemDynamics.hpp | 17 +- CGMES_3.0.0/ExcitationSystemUserDefined.cpp | 86 ++- CGMES_3.0.0/ExcitationSystemUserDefined.hpp | 17 +- CGMES_3.0.0/ExternalNetworkInjection.cpp | 204 +++++--- CGMES_3.0.0/ExternalNetworkInjection.hpp | 17 +- CGMES_3.0.0/FaultIndicator.cpp | 76 ++- CGMES_3.0.0/FaultIndicator.hpp | 17 +- CGMES_3.0.0/FossilFuel.cpp | 88 +++- CGMES_3.0.0/FossilFuel.hpp | 17 +- CGMES_3.0.0/Fuse.cpp | 78 ++- CGMES_3.0.0/Fuse.hpp | 17 +- CGMES_3.0.0/GenICompensationForGenJ.cpp | 100 +++- CGMES_3.0.0/GenICompensationForGenJ.hpp | 17 +- CGMES_3.0.0/GeneratingUnit.cpp | 202 ++++--- CGMES_3.0.0/GeneratingUnit.hpp | 17 +- CGMES_3.0.0/GeographicalRegion.cpp | 82 ++- CGMES_3.0.0/GeographicalRegion.hpp | 17 +- CGMES_3.0.0/GovCT1.cpp | 302 ++++++----- CGMES_3.0.0/GovCT1.hpp | 17 +- CGMES_3.0.0/GovCT2.cpp | 428 ++++++++------- CGMES_3.0.0/GovCT2.hpp | 17 +- CGMES_3.0.0/GovGAST.cpp | 136 +++-- CGMES_3.0.0/GovGAST.hpp | 17 +- CGMES_3.0.0/GovGAST1.cpp | 296 ++++++----- CGMES_3.0.0/GovGAST1.hpp | 17 +- CGMES_3.0.0/GovGAST2.cpp | 284 +++++----- CGMES_3.0.0/GovGAST2.hpp | 17 +- CGMES_3.0.0/GovGAST3.cpp | 218 +++++--- CGMES_3.0.0/GovGAST3.hpp | 17 +- CGMES_3.0.0/GovGAST4.cpp | 142 +++-- CGMES_3.0.0/GovGAST4.hpp | 17 +- CGMES_3.0.0/GovGASTWD.cpp | 290 +++++----- CGMES_3.0.0/GovGASTWD.hpp | 17 +- CGMES_3.0.0/GovHydro1.cpp | 160 ++++-- CGMES_3.0.0/GovHydro1.hpp | 17 +- CGMES_3.0.0/GovHydro2.cpp | 266 ++++++---- CGMES_3.0.0/GovHydro2.hpp | 17 +- CGMES_3.0.0/GovHydro3.cpp | 308 ++++++----- CGMES_3.0.0/GovHydro3.hpp | 17 +- CGMES_3.0.0/GovHydro4.cpp | 326 +++++++----- CGMES_3.0.0/GovHydro4.hpp | 17 +- CGMES_3.0.0/GovHydroDD.cpp | 302 ++++++----- CGMES_3.0.0/GovHydroDD.hpp | 17 +- CGMES_3.0.0/GovHydroFrancis.cpp | 254 +++++---- CGMES_3.0.0/GovHydroFrancis.hpp | 17 +- CGMES_3.0.0/GovHydroIEEE0.cpp | 124 +++-- CGMES_3.0.0/GovHydroIEEE0.hpp | 17 +- CGMES_3.0.0/GovHydroIEEE2.cpp | 248 +++++---- CGMES_3.0.0/GovHydroIEEE2.hpp | 17 +- CGMES_3.0.0/GovHydroPID.cpp | 290 +++++----- CGMES_3.0.0/GovHydroPID.hpp | 17 +- CGMES_3.0.0/GovHydroPID2.cpp | 224 ++++---- CGMES_3.0.0/GovHydroPID2.hpp | 17 +- CGMES_3.0.0/GovHydroPelton.cpp | 260 +++++---- CGMES_3.0.0/GovHydroPelton.hpp | 17 +- CGMES_3.0.0/GovHydroR.cpp | 344 ++++++------ CGMES_3.0.0/GovHydroR.hpp | 17 +- CGMES_3.0.0/GovHydroWEH.cpp | 398 +++++++------- CGMES_3.0.0/GovHydroWEH.hpp | 17 +- CGMES_3.0.0/GovHydroWPID.cpp | 224 ++++---- CGMES_3.0.0/GovHydroWPID.hpp | 17 +- CGMES_3.0.0/GovSteam0.cpp | 124 +++-- CGMES_3.0.0/GovSteam0.hpp | 17 +- CGMES_3.0.0/GovSteam1.cpp | 326 +++++++----- CGMES_3.0.0/GovSteam1.hpp | 17 +- CGMES_3.0.0/GovSteam2.cpp | 124 +++-- CGMES_3.0.0/GovSteam2.hpp | 17 +- CGMES_3.0.0/GovSteamBB.cpp | 178 ++++--- CGMES_3.0.0/GovSteamBB.hpp | 17 +- CGMES_3.0.0/GovSteamCC.cpp | 178 ++++--- CGMES_3.0.0/GovSteamCC.hpp | 17 +- CGMES_3.0.0/GovSteamEU.cpp | 302 ++++++----- CGMES_3.0.0/GovSteamEU.hpp | 17 +- CGMES_3.0.0/GovSteamFV2.cpp | 148 ++++-- CGMES_3.0.0/GovSteamFV2.hpp | 17 +- CGMES_3.0.0/GovSteamFV3.cpp | 278 ++++++---- CGMES_3.0.0/GovSteamFV3.hpp | 17 +- CGMES_3.0.0/GovSteamFV4.cpp | 398 +++++++------- CGMES_3.0.0/GovSteamFV4.hpp | 17 +- CGMES_3.0.0/GovSteamIEEE1.cpp | 218 +++++--- CGMES_3.0.0/GovSteamIEEE1.hpp | 17 +- CGMES_3.0.0/GovSteamSGO.cpp | 148 ++++-- CGMES_3.0.0/GovSteamSGO.hpp | 17 +- CGMES_3.0.0/GrossToNetActivePowerCurve.cpp | 82 ++- CGMES_3.0.0/GrossToNetActivePowerCurve.hpp | 17 +- CGMES_3.0.0/Ground.cpp | 76 ++- CGMES_3.0.0/Ground.hpp | 17 +- CGMES_3.0.0/GroundDisconnector.cpp | 78 ++- CGMES_3.0.0/GroundDisconnector.hpp | 17 +- CGMES_3.0.0/GroundingImpedance.cpp | 84 ++- CGMES_3.0.0/GroundingImpedance.hpp | 17 +- CGMES_3.0.0/HVDCDynamics.cpp | 76 ++- CGMES_3.0.0/HVDCDynamics.hpp | 17 +- CGMES_3.0.0/HydroGeneratingUnit.cpp | 102 +++- CGMES_3.0.0/HydroGeneratingUnit.hpp | 17 +- CGMES_3.0.0/HydroPowerPlant.cpp | 90 +++- CGMES_3.0.0/HydroPowerPlant.hpp | 17 +- CGMES_3.0.0/HydroPump.cpp | 88 +++- CGMES_3.0.0/HydroPump.hpp | 17 +- CGMES_3.0.0/IOPoint.cpp | 76 ++- CGMES_3.0.0/IOPoint.hpp | 17 +- CGMES_3.0.0/IdentifiedObject.cpp | 132 +++-- CGMES_3.0.0/IdentifiedObject.hpp | 17 +- CGMES_3.0.0/Jumper.cpp | 78 ++- CGMES_3.0.0/Jumper.hpp | 17 +- CGMES_3.0.0/Junction.cpp | 78 ++- CGMES_3.0.0/Junction.hpp | 17 +- CGMES_3.0.0/Limit.cpp | 76 ++- CGMES_3.0.0/Limit.hpp | 17 +- CGMES_3.0.0/LimitSet.cpp | 82 ++- CGMES_3.0.0/LimitSet.hpp | 17 +- CGMES_3.0.0/Line.cpp | 84 ++- CGMES_3.0.0/Line.hpp | 17 +- CGMES_3.0.0/LinearShuntCompensator.cpp | 104 +++- CGMES_3.0.0/LinearShuntCompensator.hpp | 17 +- CGMES_3.0.0/LoadAggregate.cpp | 84 ++- CGMES_3.0.0/LoadAggregate.hpp | 17 +- CGMES_3.0.0/LoadArea.cpp | 80 ++- CGMES_3.0.0/LoadArea.hpp | 17 +- CGMES_3.0.0/LoadBreakSwitch.cpp | 78 ++- CGMES_3.0.0/LoadBreakSwitch.hpp | 17 +- CGMES_3.0.0/LoadComposite.cpp | 142 +++-- CGMES_3.0.0/LoadComposite.hpp | 17 +- CGMES_3.0.0/LoadDynamics.cpp | 80 ++- CGMES_3.0.0/LoadDynamics.hpp | 17 +- CGMES_3.0.0/LoadGenericNonLinear.cpp | 118 +++-- CGMES_3.0.0/LoadGenericNonLinear.hpp | 17 +- CGMES_3.0.0/LoadGroup.cpp | 82 ++- CGMES_3.0.0/LoadGroup.hpp | 17 +- CGMES_3.0.0/LoadMotor.cpp | 160 ++++-- CGMES_3.0.0/LoadMotor.hpp | 17 +- CGMES_3.0.0/LoadResponseCharacteristic.cpp | 146 ++++-- CGMES_3.0.0/LoadResponseCharacteristic.hpp | 17 +- CGMES_3.0.0/LoadStatic.cpp | 184 ++++--- CGMES_3.0.0/LoadStatic.hpp | 17 +- CGMES_3.0.0/LoadUserDefined.cpp | 86 ++- CGMES_3.0.0/LoadUserDefined.hpp | 17 +- CGMES_3.0.0/Location.cpp | 98 +++- CGMES_3.0.0/Location.hpp | 17 +- CGMES_3.0.0/Measurement.cpp | 112 ++-- CGMES_3.0.0/Measurement.hpp | 17 +- CGMES_3.0.0/MeasurementValue.cpp | 98 +++- CGMES_3.0.0/MeasurementValue.hpp | 17 +- CGMES_3.0.0/MeasurementValueQuality.cpp | 82 ++- CGMES_3.0.0/MeasurementValueQuality.hpp | 17 +- CGMES_3.0.0/MeasurementValueSource.cpp | 80 ++- CGMES_3.0.0/MeasurementValueSource.hpp | 17 +- CGMES_3.0.0/MechLoad1.cpp | 100 +++- CGMES_3.0.0/MechLoad1.hpp | 17 +- CGMES_3.0.0/MechanicalLoadDynamics.cpp | 88 +++- CGMES_3.0.0/MechanicalLoadDynamics.hpp | 17 +- CGMES_3.0.0/MechanicalLoadUserDefined.cpp | 86 ++- CGMES_3.0.0/MechanicalLoadUserDefined.hpp | 17 +- CGMES_3.0.0/MutualCoupling.cpp | 136 +++-- CGMES_3.0.0/MutualCoupling.hpp | 17 +- CGMES_3.0.0/NonConformLoad.cpp | 84 ++- CGMES_3.0.0/NonConformLoad.hpp | 17 +- CGMES_3.0.0/NonConformLoadGroup.cpp | 84 ++- CGMES_3.0.0/NonConformLoadGroup.hpp | 17 +- CGMES_3.0.0/NonConformLoadSchedule.cpp | 82 ++- CGMES_3.0.0/NonConformLoadSchedule.hpp | 17 +- CGMES_3.0.0/NonlinearShuntCompensator.cpp | 82 ++- CGMES_3.0.0/NonlinearShuntCompensator.hpp | 17 +- .../NonlinearShuntCompensatorPoint.cpp | 114 ++-- .../NonlinearShuntCompensatorPoint.hpp | 17 +- CGMES_3.0.0/NuclearGeneratingUnit.cpp | 78 ++- CGMES_3.0.0/NuclearGeneratingUnit.hpp | 17 +- CGMES_3.0.0/OperationalLimit.cpp | 90 +++- CGMES_3.0.0/OperationalLimit.hpp | 17 +- CGMES_3.0.0/OperationalLimitSet.cpp | 92 +++- CGMES_3.0.0/OperationalLimitSet.hpp | 17 +- CGMES_3.0.0/OperationalLimitType.cpp | 104 +++- CGMES_3.0.0/OperationalLimitType.hpp | 17 +- CGMES_3.0.0/OverexcLim2.cpp | 100 +++- CGMES_3.0.0/OverexcLim2.hpp | 17 +- CGMES_3.0.0/OverexcLimIEEE.cpp | 112 ++-- CGMES_3.0.0/OverexcLimIEEE.hpp | 17 +- CGMES_3.0.0/OverexcLimX1.cpp | 136 +++-- CGMES_3.0.0/OverexcLimX1.hpp | 17 +- CGMES_3.0.0/OverexcLimX2.cpp | 142 +++-- CGMES_3.0.0/OverexcLimX2.hpp | 17 +- CGMES_3.0.0/OverexcitationLimiterDynamics.cpp | 82 ++- CGMES_3.0.0/OverexcitationLimiterDynamics.hpp | 17 +- .../OverexcitationLimiterUserDefined.cpp | 86 ++- .../OverexcitationLimiterUserDefined.hpp | 17 +- CGMES_3.0.0/PFVArControllerType1Dynamics.cpp | 90 +++- CGMES_3.0.0/PFVArControllerType1Dynamics.hpp | 17 +- .../PFVArControllerType1UserDefined.cpp | 86 ++- .../PFVArControllerType1UserDefined.hpp | 17 +- CGMES_3.0.0/PFVArControllerType2Dynamics.cpp | 82 ++- CGMES_3.0.0/PFVArControllerType2Dynamics.hpp | 17 +- .../PFVArControllerType2UserDefined.cpp | 86 ++- .../PFVArControllerType2UserDefined.hpp | 17 +- CGMES_3.0.0/PFVArType1IEEEPFController.cpp | 124 +++-- CGMES_3.0.0/PFVArType1IEEEPFController.hpp | 17 +- CGMES_3.0.0/PFVArType1IEEEVArController.cpp | 112 ++-- CGMES_3.0.0/PFVArType1IEEEVArController.hpp | 17 +- CGMES_3.0.0/PFVArType2Common1.cpp | 106 ++-- CGMES_3.0.0/PFVArType2Common1.hpp | 17 +- CGMES_3.0.0/PFVArType2IEEEPFController.cpp | 118 +++-- CGMES_3.0.0/PFVArType2IEEEPFController.hpp | 17 +- CGMES_3.0.0/PFVArType2IEEEVArController.cpp | 118 +++-- CGMES_3.0.0/PFVArType2IEEEVArController.hpp | 17 +- CGMES_3.0.0/PetersenCoil.cpp | 120 +++-- CGMES_3.0.0/PetersenCoil.hpp | 17 +- CGMES_3.0.0/PhaseTapChanger.cpp | 84 ++- CGMES_3.0.0/PhaseTapChanger.hpp | 17 +- CGMES_3.0.0/PhaseTapChangerAsymmetrical.cpp | 84 ++- CGMES_3.0.0/PhaseTapChangerAsymmetrical.hpp | 17 +- CGMES_3.0.0/PhaseTapChangerLinear.cpp | 96 +++- CGMES_3.0.0/PhaseTapChangerLinear.hpp | 17 +- CGMES_3.0.0/PhaseTapChangerNonLinear.cpp | 96 +++- CGMES_3.0.0/PhaseTapChangerNonLinear.hpp | 17 +- CGMES_3.0.0/PhaseTapChangerSymmetrical.cpp | 78 ++- CGMES_3.0.0/PhaseTapChangerSymmetrical.hpp | 17 +- CGMES_3.0.0/PhaseTapChangerTable.cpp | 84 ++- CGMES_3.0.0/PhaseTapChangerTable.hpp | 17 +- CGMES_3.0.0/PhaseTapChangerTablePoint.cpp | 88 +++- CGMES_3.0.0/PhaseTapChangerTablePoint.hpp | 17 +- CGMES_3.0.0/PhaseTapChangerTabular.cpp | 84 ++- CGMES_3.0.0/PhaseTapChangerTabular.hpp | 17 +- CGMES_3.0.0/PhotoVoltaicUnit.cpp | 76 ++- CGMES_3.0.0/PhotoVoltaicUnit.hpp | 17 +- CGMES_3.0.0/PositionPoint.cpp | 106 ++-- CGMES_3.0.0/PositionPoint.hpp | 17 +- CGMES_3.0.0/PostLineSensor.cpp | 76 ++- CGMES_3.0.0/PostLineSensor.hpp | 17 +- CGMES_3.0.0/PotentialTransformer.cpp | 76 ++- CGMES_3.0.0/PotentialTransformer.hpp | 17 +- CGMES_3.0.0/PowerElectronicsConnection.cpp | 126 +++-- CGMES_3.0.0/PowerElectronicsConnection.hpp | 17 +- CGMES_3.0.0/PowerElectronicsUnit.cpp | 94 +++- CGMES_3.0.0/PowerElectronicsUnit.hpp | 17 +- CGMES_3.0.0/PowerElectronicsWindUnit.cpp | 76 ++- CGMES_3.0.0/PowerElectronicsWindUnit.hpp | 17 +- CGMES_3.0.0/PowerSystemResource.cpp | 100 +++- CGMES_3.0.0/PowerSystemResource.hpp | 17 +- CGMES_3.0.0/PowerSystemStabilizerDynamics.cpp | 86 ++- CGMES_3.0.0/PowerSystemStabilizerDynamics.hpp | 17 +- .../PowerSystemStabilizerUserDefined.cpp | 86 ++- .../PowerSystemStabilizerUserDefined.hpp | 17 +- CGMES_3.0.0/PowerTransformer.cpp | 118 +++-- CGMES_3.0.0/PowerTransformer.hpp | 17 +- CGMES_3.0.0/PowerTransformerEnd.cpp | 156 ++++-- CGMES_3.0.0/PowerTransformerEnd.hpp | 17 +- CGMES_3.0.0/ProprietaryParameterDynamics.cpp | 242 +++++---- CGMES_3.0.0/ProprietaryParameterDynamics.hpp | 17 +- CGMES_3.0.0/ProtectedSwitch.cpp | 78 ++- CGMES_3.0.0/ProtectedSwitch.hpp | 17 +- CGMES_3.0.0/Pss1.cpp | 166 +++--- CGMES_3.0.0/Pss1.hpp | 17 +- CGMES_3.0.0/Pss1A.cpp | 224 ++++---- CGMES_3.0.0/Pss1A.hpp | 17 +- CGMES_3.0.0/Pss2B.cpp | 266 ++++++---- CGMES_3.0.0/Pss2B.hpp | 17 +- CGMES_3.0.0/Pss2ST.cpp | 184 ++++--- CGMES_3.0.0/Pss2ST.hpp | 17 +- CGMES_3.0.0/Pss5.cpp | 178 ++++--- CGMES_3.0.0/Pss5.hpp | 17 +- CGMES_3.0.0/PssELIN2.cpp | 142 +++-- CGMES_3.0.0/PssELIN2.hpp | 17 +- CGMES_3.0.0/PssIEEE1A.cpp | 148 ++++-- CGMES_3.0.0/PssIEEE1A.hpp | 17 +- CGMES_3.0.0/PssIEEE2B.cpp | 254 +++++---- CGMES_3.0.0/PssIEEE2B.hpp | 17 +- CGMES_3.0.0/PssIEEE3B.cpp | 178 ++++--- CGMES_3.0.0/PssIEEE3B.hpp | 17 +- CGMES_3.0.0/PssIEEE4B.cpp | 494 ++++++++++-------- CGMES_3.0.0/PssIEEE4B.hpp | 17 +- CGMES_3.0.0/PssPTIST1.cpp | 142 +++-- CGMES_3.0.0/PssPTIST1.hpp | 17 +- CGMES_3.0.0/PssPTIST3.cpp | 296 ++++++----- CGMES_3.0.0/PssPTIST3.hpp | 17 +- CGMES_3.0.0/PssRQB.cpp | 136 +++-- CGMES_3.0.0/PssRQB.hpp | 17 +- CGMES_3.0.0/PssSB4.cpp | 142 +++-- CGMES_3.0.0/PssSB4.hpp | 17 +- CGMES_3.0.0/PssSH.cpp | 154 ++++-- CGMES_3.0.0/PssSH.hpp | 17 +- CGMES_3.0.0/PssSK.cpp | 142 +++-- CGMES_3.0.0/PssSK.hpp | 17 +- CGMES_3.0.0/PssSTAB2A.cpp | 124 +++-- CGMES_3.0.0/PssSTAB2A.hpp | 17 +- CGMES_3.0.0/PssWECC.cpp | 184 ++++--- CGMES_3.0.0/PssWECC.hpp | 17 +- CGMES_3.0.0/Quality61850.cpp | 148 ++++-- CGMES_3.0.0/Quality61850.hpp | 17 +- CGMES_3.0.0/RaiseLowerCommand.cpp | 82 ++- CGMES_3.0.0/RaiseLowerCommand.hpp | 17 +- CGMES_3.0.0/RatioTapChanger.cpp | 96 +++- CGMES_3.0.0/RatioTapChanger.hpp | 17 +- CGMES_3.0.0/RatioTapChangerTable.cpp | 84 ++- CGMES_3.0.0/RatioTapChangerTable.hpp | 17 +- CGMES_3.0.0/RatioTapChangerTablePoint.cpp | 82 ++- CGMES_3.0.0/RatioTapChangerTablePoint.hpp | 17 +- CGMES_3.0.0/ReactiveCapabilityCurve.cpp | 84 ++- CGMES_3.0.0/ReactiveCapabilityCurve.hpp | 17 +- CGMES_3.0.0/RegularIntervalSchedule.cpp | 92 +++- CGMES_3.0.0/RegularIntervalSchedule.hpp | 17 +- CGMES_3.0.0/RegularTimePoint.cpp | 100 +++- CGMES_3.0.0/RegularTimePoint.hpp | 17 +- CGMES_3.0.0/RegulatingCondEq.cpp | 94 +++- CGMES_3.0.0/RegulatingCondEq.hpp | 17 +- CGMES_3.0.0/RegulatingControl.cpp | 140 +++-- CGMES_3.0.0/RegulatingControl.hpp | 17 +- CGMES_3.0.0/RegulationSchedule.cpp | 82 ++- CGMES_3.0.0/RegulationSchedule.hpp | 17 +- CGMES_3.0.0/RemoteInputSignal.cpp | 130 +++-- CGMES_3.0.0/RemoteInputSignal.hpp | 17 +- CGMES_3.0.0/ReportingGroup.cpp | 86 ++- CGMES_3.0.0/ReportingGroup.hpp | 17 +- CGMES_3.0.0/RotatingMachine.cpp | 122 +++-- CGMES_3.0.0/RotatingMachine.hpp | 17 +- CGMES_3.0.0/RotatingMachineDynamics.cpp | 112 ++-- CGMES_3.0.0/RotatingMachineDynamics.hpp | 17 +- CGMES_3.0.0/SVCUserDefined.cpp | 86 ++- CGMES_3.0.0/SVCUserDefined.hpp | 17 +- CGMES_3.0.0/Season.cpp | 92 +++- CGMES_3.0.0/Season.hpp | 17 +- CGMES_3.0.0/SeasonDayTypeSchedule.cpp | 88 +++- CGMES_3.0.0/SeasonDayTypeSchedule.hpp | 17 +- CGMES_3.0.0/Sensor.cpp | 76 ++- CGMES_3.0.0/Sensor.hpp | 17 +- CGMES_3.0.0/SeriesCompensator.cpp | 120 +++-- CGMES_3.0.0/SeriesCompensator.hpp | 17 +- CGMES_3.0.0/ServiceLocation.cpp | 76 ++- CGMES_3.0.0/ServiceLocation.hpp | 17 +- CGMES_3.0.0/SetPoint.cpp | 88 +++- CGMES_3.0.0/SetPoint.hpp | 17 +- CGMES_3.0.0/ShuntCompensator.cpp | 128 +++-- CGMES_3.0.0/ShuntCompensator.hpp | 17 +- CGMES_3.0.0/SolarGeneratingUnit.cpp | 84 ++- CGMES_3.0.0/SolarGeneratingUnit.hpp | 17 +- CGMES_3.0.0/SolarPowerPlant.cpp | 80 ++- CGMES_3.0.0/SolarPowerPlant.hpp | 17 +- CGMES_3.0.0/StaticVarCompensator.cpp | 120 +++-- CGMES_3.0.0/StaticVarCompensator.hpp | 17 +- CGMES_3.0.0/StaticVarCompensatorDynamics.cpp | 82 ++- CGMES_3.0.0/StaticVarCompensatorDynamics.hpp | 17 +- CGMES_3.0.0/StationSupply.cpp | 78 ++- CGMES_3.0.0/StationSupply.hpp | 17 +- CGMES_3.0.0/Status.cpp | 100 +++- CGMES_3.0.0/Status.hpp | 17 +- CGMES_3.0.0/StreetAddress.cpp | 112 ++-- CGMES_3.0.0/StreetAddress.hpp | 17 +- CGMES_3.0.0/StreetDetail.cpp | 154 ++++-- CGMES_3.0.0/StreetDetail.hpp | 17 +- CGMES_3.0.0/StringMeasurement.cpp | 80 ++- CGMES_3.0.0/StringMeasurement.hpp | 17 +- CGMES_3.0.0/StringMeasurementValue.cpp | 82 ++- CGMES_3.0.0/StringMeasurementValue.hpp | 17 +- CGMES_3.0.0/SubGeographicalRegion.cpp | 96 +++- CGMES_3.0.0/SubGeographicalRegion.hpp | 17 +- CGMES_3.0.0/SubLoadArea.cpp | 86 ++- CGMES_3.0.0/SubLoadArea.hpp | 17 +- CGMES_3.0.0/Substation.cpp | 92 +++- CGMES_3.0.0/Substation.hpp | 17 +- CGMES_3.0.0/SurgeArrester.cpp | 76 ++- CGMES_3.0.0/SurgeArrester.hpp | 17 +- CGMES_3.0.0/SvInjection.cpp | 94 +++- CGMES_3.0.0/SvInjection.hpp | 17 +- CGMES_3.0.0/SvPowerFlow.cpp | 94 +++- CGMES_3.0.0/SvPowerFlow.hpp | 17 +- CGMES_3.0.0/SvShuntCompensatorSections.cpp | 88 +++- CGMES_3.0.0/SvShuntCompensatorSections.hpp | 17 +- CGMES_3.0.0/SvStatus.cpp | 88 +++- CGMES_3.0.0/SvStatus.hpp | 17 +- CGMES_3.0.0/SvSwitch.cpp | 88 +++- CGMES_3.0.0/SvSwitch.hpp | 17 +- CGMES_3.0.0/SvTapStep.cpp | 88 +++- CGMES_3.0.0/SvTapStep.hpp | 17 +- CGMES_3.0.0/SvVoltage.cpp | 94 +++- CGMES_3.0.0/SvVoltage.hpp | 17 +- CGMES_3.0.0/Switch.cpp | 118 +++-- CGMES_3.0.0/Switch.hpp | 17 +- CGMES_3.0.0/SwitchSchedule.cpp | 82 ++- CGMES_3.0.0/SwitchSchedule.hpp | 17 +- CGMES_3.0.0/SynchronousMachine.cpp | 234 +++++---- CGMES_3.0.0/SynchronousMachine.hpp | 17 +- CGMES_3.0.0/SynchronousMachineDetailed.cpp | 100 +++- CGMES_3.0.0/SynchronousMachineDetailed.hpp | 17 +- CGMES_3.0.0/SynchronousMachineDynamics.cpp | 106 ++-- CGMES_3.0.0/SynchronousMachineDynamics.hpp | 17 +- .../SynchronousMachineEquivalentCircuit.cpp | 142 +++-- .../SynchronousMachineEquivalentCircuit.hpp | 17 +- CGMES_3.0.0/SynchronousMachineSimplified.cpp | 76 ++- CGMES_3.0.0/SynchronousMachineSimplified.hpp | 17 +- ...ynchronousMachineTimeConstantReactance.cpp | 160 ++++-- ...ynchronousMachineTimeConstantReactance.hpp | 17 +- CGMES_3.0.0/SynchronousMachineUserDefined.cpp | 86 ++- CGMES_3.0.0/SynchronousMachineUserDefined.hpp | 17 +- CGMES_3.0.0/TapChanger.cpp | 142 +++-- CGMES_3.0.0/TapChanger.hpp | 17 +- CGMES_3.0.0/TapChangerControl.cpp | 82 ++- CGMES_3.0.0/TapChangerControl.hpp | 17 +- CGMES_3.0.0/TapChangerTablePoint.cpp | 112 ++-- CGMES_3.0.0/TapChangerTablePoint.hpp | 17 +- CGMES_3.0.0/TapSchedule.cpp | 82 ++- CGMES_3.0.0/TapSchedule.hpp | 17 +- CGMES_3.0.0/Terminal.cpp | 166 +++--- CGMES_3.0.0/Terminal.hpp | 17 +- CGMES_3.0.0/TextDiagramObject.cpp | 82 ++- CGMES_3.0.0/TextDiagramObject.hpp | 17 +- CGMES_3.0.0/ThermalGeneratingUnit.cpp | 100 +++- CGMES_3.0.0/ThermalGeneratingUnit.hpp | 17 +- CGMES_3.0.0/TieFlow.cpp | 94 +++- CGMES_3.0.0/TieFlow.hpp | 17 +- CGMES_3.0.0/TopologicalIsland.cpp | 88 +++- CGMES_3.0.0/TopologicalIsland.hpp | 17 +- CGMES_3.0.0/TopologicalNode.cpp | 120 +++-- CGMES_3.0.0/TopologicalNode.hpp | 17 +- CGMES_3.0.0/TownDetail.cpp | 106 ++-- CGMES_3.0.0/TownDetail.hpp | 17 +- CGMES_3.0.0/TransformerEnd.cpp | 122 +++-- CGMES_3.0.0/TransformerEnd.hpp | 17 +- CGMES_3.0.0/TurbLCFB1.cpp | 148 ++++-- CGMES_3.0.0/TurbLCFB1.hpp | 17 +- CGMES_3.0.0/TurbineGovernorDynamics.cpp | 92 +++- CGMES_3.0.0/TurbineGovernorDynamics.hpp | 17 +- CGMES_3.0.0/TurbineGovernorUserDefined.cpp | 86 ++- CGMES_3.0.0/TurbineGovernorUserDefined.hpp | 17 +- CGMES_3.0.0/TurbineLoadControllerDynamics.cpp | 82 ++- CGMES_3.0.0/TurbineLoadControllerDynamics.hpp | 17 +- .../TurbineLoadControllerUserDefined.cpp | 86 ++- .../TurbineLoadControllerUserDefined.hpp | 17 +- CGMES_3.0.0/UnderexcLim2Simplified.cpp | 118 +++-- CGMES_3.0.0/UnderexcLim2Simplified.hpp | 17 +- CGMES_3.0.0/UnderexcLimIEEE1.cpp | 166 +++--- CGMES_3.0.0/UnderexcLimIEEE1.hpp | 17 +- CGMES_3.0.0/UnderexcLimIEEE2.cpp | 332 +++++++----- CGMES_3.0.0/UnderexcLimIEEE2.hpp | 17 +- CGMES_3.0.0/UnderexcLimX1.cpp | 112 ++-- CGMES_3.0.0/UnderexcLimX1.hpp | 17 +- CGMES_3.0.0/UnderexcLimX2.cpp | 118 +++-- CGMES_3.0.0/UnderexcLimX2.hpp | 17 +- .../UnderexcitationLimiterDynamics.cpp | 86 ++- .../UnderexcitationLimiterDynamics.hpp | 17 +- .../UnderexcitationLimiterUserDefined.cpp | 86 ++- .../UnderexcitationLimiterUserDefined.hpp | 17 +- CGMES_3.0.0/VAdjIEEE.cpp | 112 ++-- CGMES_3.0.0/VAdjIEEE.hpp | 17 +- CGMES_3.0.0/VCompIEEEType1.cpp | 94 +++- CGMES_3.0.0/VCompIEEEType1.hpp | 17 +- CGMES_3.0.0/VCompIEEEType2.cpp | 86 ++- CGMES_3.0.0/VCompIEEEType2.hpp | 17 +- CGMES_3.0.0/VSCDynamics.cpp | 82 ++- CGMES_3.0.0/VSCDynamics.hpp | 17 +- CGMES_3.0.0/VSCUserDefined.cpp | 86 ++- CGMES_3.0.0/VSCUserDefined.hpp | 17 +- CGMES_3.0.0/ValueAliasSet.cpp | 92 +++- CGMES_3.0.0/ValueAliasSet.hpp | 17 +- CGMES_3.0.0/ValueToAlias.cpp | 88 +++- CGMES_3.0.0/ValueToAlias.hpp | 17 +- CGMES_3.0.0/VisibilityLayer.cpp | 88 +++- CGMES_3.0.0/VisibilityLayer.hpp | 17 +- CGMES_3.0.0/VoltageAdjusterDynamics.cpp | 82 ++- CGMES_3.0.0/VoltageAdjusterDynamics.hpp | 17 +- CGMES_3.0.0/VoltageAdjusterUserDefined.cpp | 86 ++- CGMES_3.0.0/VoltageAdjusterUserDefined.hpp | 17 +- CGMES_3.0.0/VoltageCompensatorDynamics.cpp | 86 ++- CGMES_3.0.0/VoltageCompensatorDynamics.hpp | 17 +- CGMES_3.0.0/VoltageCompensatorUserDefined.cpp | 86 ++- CGMES_3.0.0/VoltageCompensatorUserDefined.hpp | 17 +- CGMES_3.0.0/VoltageLevel.cpp | 106 ++-- CGMES_3.0.0/VoltageLevel.hpp | 17 +- CGMES_3.0.0/VoltageLimit.cpp | 90 +++- CGMES_3.0.0/VoltageLimit.hpp | 17 +- CGMES_3.0.0/VsCapabilityCurve.cpp | 80 ++- CGMES_3.0.0/VsCapabilityCurve.hpp | 17 +- CGMES_3.0.0/VsConverter.cpp | 170 +++--- CGMES_3.0.0/VsConverter.hpp | 17 +- CGMES_3.0.0/WaveTrap.cpp | 76 ++- CGMES_3.0.0/WaveTrap.hpp | 17 +- CGMES_3.0.0/WindAeroConstIEC.cpp | 80 ++- CGMES_3.0.0/WindAeroConstIEC.hpp | 17 +- CGMES_3.0.0/WindAeroOneDimIEC.cpp | 92 +++- CGMES_3.0.0/WindAeroOneDimIEC.hpp | 17 +- CGMES_3.0.0/WindAeroTwoDimIEC.cpp | 122 +++-- CGMES_3.0.0/WindAeroTwoDimIEC.hpp | 17 +- CGMES_3.0.0/WindContCurrLimIEC.cpp | 126 +++-- CGMES_3.0.0/WindContCurrLimIEC.hpp | 17 +- CGMES_3.0.0/WindContPType3IEC.cpp | 238 +++++---- CGMES_3.0.0/WindContPType3IEC.hpp | 17 +- CGMES_3.0.0/WindContPType4aIEC.cpp | 98 +++- CGMES_3.0.0/WindContPType4aIEC.hpp | 17 +- CGMES_3.0.0/WindContPType4bIEC.cpp | 104 +++- CGMES_3.0.0/WindContPType4bIEC.hpp | 17 +- CGMES_3.0.0/WindContPitchAngleIEC.cpp | 140 +++-- CGMES_3.0.0/WindContPitchAngleIEC.hpp | 17 +- CGMES_3.0.0/WindContQIEC.cpp | 234 +++++---- CGMES_3.0.0/WindContQIEC.hpp | 17 +- CGMES_3.0.0/WindContQLimIEC.cpp | 92 +++- CGMES_3.0.0/WindContQLimIEC.hpp | 17 +- CGMES_3.0.0/WindContQPQULimIEC.cpp | 96 +++- CGMES_3.0.0/WindContQPQULimIEC.hpp | 17 +- CGMES_3.0.0/WindContRotorRIEC.cpp | 132 +++-- CGMES_3.0.0/WindContRotorRIEC.hpp | 17 +- CGMES_3.0.0/WindDynamicsLookupTable.cpp | 154 ++++-- CGMES_3.0.0/WindDynamicsLookupTable.hpp | 17 +- CGMES_3.0.0/WindGenTurbineType1aIEC.cpp | 82 ++- CGMES_3.0.0/WindGenTurbineType1aIEC.hpp | 17 +- CGMES_3.0.0/WindGenTurbineType1bIEC.cpp | 82 ++- CGMES_3.0.0/WindGenTurbineType1bIEC.hpp | 17 +- CGMES_3.0.0/WindGenTurbineType2IEC.cpp | 88 +++- CGMES_3.0.0/WindGenTurbineType2IEC.hpp | 17 +- CGMES_3.0.0/WindGenType3IEC.cpp | 98 +++- CGMES_3.0.0/WindGenType3IEC.hpp | 17 +- CGMES_3.0.0/WindGenType3aIEC.cpp | 92 +++- CGMES_3.0.0/WindGenType3aIEC.hpp | 17 +- CGMES_3.0.0/WindGenType3bIEC.cpp | 98 +++- CGMES_3.0.0/WindGenType3bIEC.hpp | 17 +- CGMES_3.0.0/WindGenType4IEC.cpp | 110 ++-- CGMES_3.0.0/WindGenType4IEC.hpp | 17 +- CGMES_3.0.0/WindGeneratingUnit.cpp | 90 +++- CGMES_3.0.0/WindGeneratingUnit.hpp | 17 +- CGMES_3.0.0/WindMechIEC.cpp | 114 ++-- CGMES_3.0.0/WindMechIEC.hpp | 17 +- CGMES_3.0.0/WindPitchContPowerIEC.cpp | 130 +++-- CGMES_3.0.0/WindPitchContPowerIEC.hpp | 17 +- CGMES_3.0.0/WindPlantDynamics.cpp | 86 ++- CGMES_3.0.0/WindPlantDynamics.hpp | 17 +- CGMES_3.0.0/WindPlantFreqPcontrolIEC.cpp | 174 +++--- CGMES_3.0.0/WindPlantFreqPcontrolIEC.hpp | 17 +- CGMES_3.0.0/WindPlantIEC.cpp | 88 +++- CGMES_3.0.0/WindPlantIEC.hpp | 17 +- CGMES_3.0.0/WindPlantReactiveControlIEC.cpp | 208 +++++--- CGMES_3.0.0/WindPlantReactiveControlIEC.hpp | 17 +- CGMES_3.0.0/WindPlantUserDefined.cpp | 86 ++- CGMES_3.0.0/WindPlantUserDefined.hpp | 17 +- CGMES_3.0.0/WindPowerPlant.cpp | 80 ++- CGMES_3.0.0/WindPowerPlant.hpp | 17 +- CGMES_3.0.0/WindProtectionIEC.cpp | 130 +++-- CGMES_3.0.0/WindProtectionIEC.hpp | 17 +- CGMES_3.0.0/WindRefFrameRotIEC.cpp | 98 +++- CGMES_3.0.0/WindRefFrameRotIEC.hpp | 17 +- CGMES_3.0.0/WindTurbineType1or2Dynamics.cpp | 88 +++- CGMES_3.0.0/WindTurbineType1or2Dynamics.hpp | 17 +- CGMES_3.0.0/WindTurbineType1or2IEC.cpp | 88 +++- CGMES_3.0.0/WindTurbineType1or2IEC.hpp | 17 +- CGMES_3.0.0/WindTurbineType3IEC.cpp | 112 ++-- CGMES_3.0.0/WindTurbineType3IEC.hpp | 17 +- CGMES_3.0.0/WindTurbineType3or4Dynamics.cpp | 94 +++- CGMES_3.0.0/WindTurbineType3or4Dynamics.hpp | 17 +- CGMES_3.0.0/WindTurbineType3or4IEC.cpp | 112 ++-- CGMES_3.0.0/WindTurbineType3or4IEC.hpp | 17 +- CGMES_3.0.0/WindTurbineType4IEC.cpp | 82 ++- CGMES_3.0.0/WindTurbineType4IEC.hpp | 17 +- CGMES_3.0.0/WindTurbineType4aIEC.cpp | 88 +++- CGMES_3.0.0/WindTurbineType4aIEC.hpp | 17 +- CGMES_3.0.0/WindTurbineType4bIEC.cpp | 94 +++- CGMES_3.0.0/WindTurbineType4bIEC.hpp | 17 +- CGMES_3.0.0/WindType1or2UserDefined.cpp | 86 ++- CGMES_3.0.0/WindType1or2UserDefined.hpp | 17 +- CGMES_3.0.0/WindType3or4UserDefined.cpp | 86 ++- CGMES_3.0.0/WindType3or4UserDefined.hpp | 17 +- CGMES_3.0.0/WorkLocation.cpp | 76 ++- CGMES_3.0.0/WorkLocation.hpp | 17 +- static/BaseClass.cpp | 16 +- static/BaseClass.hpp | 18 +- static/CimClassDetails.cpp | 63 +++ static/CimClassDetails.hpp | 51 ++ 3258 files changed, 167801 insertions(+), 71668 deletions(-) create mode 100644 static/CimClassDetails.cpp create mode 100644 static/CimClassDetails.hpp diff --git a/CGMES_2.4.13_18DEC2013/ACDCConverter.cpp b/CGMES_2.4.13_18DEC2013/ACDCConverter.cpp index 6216b3adb..a6cf4be03 100644 --- a/CGMES_2.4.13_18DEC2013/ACDCConverter.cpp +++ b/CGMES_2.4.13_18DEC2013/ACDCConverter.cpp @@ -13,53 +13,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCConverter.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.PccTerminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.baseS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.idc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.idleLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.maxUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.minUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.nomUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.numberOfValves", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.poleLossP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.resistiveLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.switchingLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.targetPpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.targetUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.udc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.valveU0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCConverter::ACDCConverter() : PccTerminal(nullptr) {} ACDCConverter::~ACDCConverter() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ACDCConverter.DCTerminals", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.PccTerminal", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.baseS", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.idc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.idleLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.maxUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.minUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.nomUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.numberOfValves", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.p", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.poleLossP", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.q", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.resistiveLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.switchingLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.targetPpcc", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.targetUdc", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.uc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.udc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.valveU0", { CGMESProfile::EQ, } }, -}; - -std::list -ACDCConverter::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ACDCConverter::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ACDCConverter::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ACDCConverter::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ACDCConverter::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ACDCConverter::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACDCConverterDCTerminal_DCConductingEquipment(BaseClass*, BaseClass*); @@ -641,64 +673,64 @@ const char* ACDCConverter::debugString() const void ACDCConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCConverter", &ACDCConverter_factory); + factory_map.emplace("ACDCConverter", &ACDCConverter_factory); } void ACDCConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverter.baseS", &assign_ACDCConverter_baseS); - assign_map.emplace("cim:ACDCConverter.idc", &assign_ACDCConverter_idc); - assign_map.emplace("cim:ACDCConverter.idleLoss", &assign_ACDCConverter_idleLoss); - assign_map.emplace("cim:ACDCConverter.maxUdc", &assign_ACDCConverter_maxUdc); - assign_map.emplace("cim:ACDCConverter.minUdc", &assign_ACDCConverter_minUdc); - assign_map.emplace("cim:ACDCConverter.nomUdc", &assign_ACDCConverter_nomUdc); - assign_map.emplace("cim:ACDCConverter.numberOfValves", &assign_ACDCConverter_numberOfValves); - assign_map.emplace("cim:ACDCConverter.p", &assign_ACDCConverter_p); - assign_map.emplace("cim:ACDCConverter.poleLossP", &assign_ACDCConverter_poleLossP); - assign_map.emplace("cim:ACDCConverter.q", &assign_ACDCConverter_q); - assign_map.emplace("cim:ACDCConverter.ratedUdc", &assign_ACDCConverter_ratedUdc); - assign_map.emplace("cim:ACDCConverter.resistiveLoss", &assign_ACDCConverter_resistiveLoss); - assign_map.emplace("cim:ACDCConverter.switchingLoss", &assign_ACDCConverter_switchingLoss); - assign_map.emplace("cim:ACDCConverter.targetPpcc", &assign_ACDCConverter_targetPpcc); - assign_map.emplace("cim:ACDCConverter.targetUdc", &assign_ACDCConverter_targetUdc); - assign_map.emplace("cim:ACDCConverter.uc", &assign_ACDCConverter_uc); - assign_map.emplace("cim:ACDCConverter.udc", &assign_ACDCConverter_udc); - assign_map.emplace("cim:ACDCConverter.valveU0", &assign_ACDCConverter_valveU0); + assign_map.emplace("ACDCConverter.baseS", &assign_ACDCConverter_baseS); + assign_map.emplace("ACDCConverter.idc", &assign_ACDCConverter_idc); + assign_map.emplace("ACDCConverter.idleLoss", &assign_ACDCConverter_idleLoss); + assign_map.emplace("ACDCConverter.maxUdc", &assign_ACDCConverter_maxUdc); + assign_map.emplace("ACDCConverter.minUdc", &assign_ACDCConverter_minUdc); + assign_map.emplace("ACDCConverter.nomUdc", &assign_ACDCConverter_nomUdc); + assign_map.emplace("ACDCConverter.numberOfValves", &assign_ACDCConverter_numberOfValves); + assign_map.emplace("ACDCConverter.p", &assign_ACDCConverter_p); + assign_map.emplace("ACDCConverter.poleLossP", &assign_ACDCConverter_poleLossP); + assign_map.emplace("ACDCConverter.q", &assign_ACDCConverter_q); + assign_map.emplace("ACDCConverter.ratedUdc", &assign_ACDCConverter_ratedUdc); + assign_map.emplace("ACDCConverter.resistiveLoss", &assign_ACDCConverter_resistiveLoss); + assign_map.emplace("ACDCConverter.switchingLoss", &assign_ACDCConverter_switchingLoss); + assign_map.emplace("ACDCConverter.targetPpcc", &assign_ACDCConverter_targetPpcc); + assign_map.emplace("ACDCConverter.targetUdc", &assign_ACDCConverter_targetUdc); + assign_map.emplace("ACDCConverter.uc", &assign_ACDCConverter_uc); + assign_map.emplace("ACDCConverter.udc", &assign_ACDCConverter_udc); + assign_map.emplace("ACDCConverter.valveU0", &assign_ACDCConverter_valveU0); } void ACDCConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverter.DCTerminals", &assign_ACDCConverter_DCTerminals); - assign_map.emplace("cim:ACDCConverter.PccTerminal", &assign_ACDCConverter_PccTerminal); + assign_map.emplace("ACDCConverter.DCTerminals", &assign_ACDCConverter_DCTerminals); + assign_map.emplace("ACDCConverter.PccTerminal", &assign_ACDCConverter_PccTerminal); } void ACDCConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverter.baseS", &get_ACDCConverter_baseS); - get_map.emplace("cim:ACDCConverter.idc", &get_ACDCConverter_idc); - get_map.emplace("cim:ACDCConverter.idleLoss", &get_ACDCConverter_idleLoss); - get_map.emplace("cim:ACDCConverter.maxUdc", &get_ACDCConverter_maxUdc); - get_map.emplace("cim:ACDCConverter.minUdc", &get_ACDCConverter_minUdc); - get_map.emplace("cim:ACDCConverter.nomUdc", &get_ACDCConverter_nomUdc); - get_map.emplace("cim:ACDCConverter.numberOfValves", &get_ACDCConverter_numberOfValves); - get_map.emplace("cim:ACDCConverter.p", &get_ACDCConverter_p); - get_map.emplace("cim:ACDCConverter.poleLossP", &get_ACDCConverter_poleLossP); - get_map.emplace("cim:ACDCConverter.q", &get_ACDCConverter_q); - get_map.emplace("cim:ACDCConverter.ratedUdc", &get_ACDCConverter_ratedUdc); - get_map.emplace("cim:ACDCConverter.resistiveLoss", &get_ACDCConverter_resistiveLoss); - get_map.emplace("cim:ACDCConverter.switchingLoss", &get_ACDCConverter_switchingLoss); - get_map.emplace("cim:ACDCConverter.targetPpcc", &get_ACDCConverter_targetPpcc); - get_map.emplace("cim:ACDCConverter.targetUdc", &get_ACDCConverter_targetUdc); - get_map.emplace("cim:ACDCConverter.uc", &get_ACDCConverter_uc); - get_map.emplace("cim:ACDCConverter.udc", &get_ACDCConverter_udc); - get_map.emplace("cim:ACDCConverter.valveU0", &get_ACDCConverter_valveU0); + get_map.emplace("ACDCConverter.baseS", &get_ACDCConverter_baseS); + get_map.emplace("ACDCConverter.idc", &get_ACDCConverter_idc); + get_map.emplace("ACDCConverter.idleLoss", &get_ACDCConverter_idleLoss); + get_map.emplace("ACDCConverter.maxUdc", &get_ACDCConverter_maxUdc); + get_map.emplace("ACDCConverter.minUdc", &get_ACDCConverter_minUdc); + get_map.emplace("ACDCConverter.nomUdc", &get_ACDCConverter_nomUdc); + get_map.emplace("ACDCConverter.numberOfValves", &get_ACDCConverter_numberOfValves); + get_map.emplace("ACDCConverter.p", &get_ACDCConverter_p); + get_map.emplace("ACDCConverter.poleLossP", &get_ACDCConverter_poleLossP); + get_map.emplace("ACDCConverter.q", &get_ACDCConverter_q); + get_map.emplace("ACDCConverter.ratedUdc", &get_ACDCConverter_ratedUdc); + get_map.emplace("ACDCConverter.resistiveLoss", &get_ACDCConverter_resistiveLoss); + get_map.emplace("ACDCConverter.switchingLoss", &get_ACDCConverter_switchingLoss); + get_map.emplace("ACDCConverter.targetPpcc", &get_ACDCConverter_targetPpcc); + get_map.emplace("ACDCConverter.targetUdc", &get_ACDCConverter_targetUdc); + get_map.emplace("ACDCConverter.uc", &get_ACDCConverter_uc); + get_map.emplace("ACDCConverter.udc", &get_ACDCConverter_udc); + get_map.emplace("ACDCConverter.valveU0", &get_ACDCConverter_valveU0); } void ACDCConverter::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverter.PccTerminal", &get_ACDCConverter_PccTerminal); + get_map.emplace("ACDCConverter.PccTerminal", &get_ACDCConverter_PccTerminal); } void ACDCConverter::addEnumGetFnsToMap(std::map& get_map) const @@ -706,11 +738,25 @@ void ACDCConverter::addEnumGetFnsToMap(std::map& get_ ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool ACDCConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCConverter" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACDCConverter::declare() { return BaseClassDefiner(ACDCConverter::addConstructToMap, ACDCConverter::addPrimitiveAssignFnsToMap, ACDCConverter::addClassAssignFnsToMap, ACDCConverter::debugName); } +std::map ACDCConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCConverter_factory() diff --git a/CGMES_2.4.13_18DEC2013/ACDCConverter.hpp b/CGMES_2.4.13_18DEC2013/ACDCConverter.hpp index dec762625..93c0aaf9e 100644 --- a/CGMES_2.4.13_18DEC2013/ACDCConverter.hpp +++ b/CGMES_2.4.13_18DEC2013/ACDCConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ApparentPower.hpp" #include "CurrentFlow.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCConverter_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ACDCConverterDCTerminal.cpp b/CGMES_2.4.13_18DEC2013/ACDCConverterDCTerminal.cpp index ca0c487b0..d8f9a1b25 100644 --- a/CGMES_2.4.13_18DEC2013/ACDCConverterDCTerminal.cpp +++ b/CGMES_2.4.13_18DEC2013/ACDCConverterDCTerminal.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCConverterDCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCConverterDCTerminal.DCConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverterDCTerminal.polarity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCConverterDCTerminal::ACDCConverterDCTerminal() : DCConductingEquipment(nullptr) {} ACDCConverterDCTerminal::~ACDCConverterDCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& ACDCConverterDCTerminal::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACDCConverterDCTerminal::getClassNamespaceUrl() const { - { "cim:ACDCConverterDCTerminal.DCConductingEquipment", { CGMESProfile::EQ, } }, - { "cim:ACDCConverterDCTerminal.polarity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACDCConverterDCTerminal::getPossibleProfilesForClass() const +const std::string& ACDCConverterDCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACDCConverterDCTerminal::getPossibleProfilesForAttributes() const +const std::list& ACDCConverterDCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCBaseTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCConverterDCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCConverterDCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCConverterDCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACDCConverter_DCTerminals(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* ACDCConverterDCTerminal::debugString() const void ACDCConverterDCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCConverterDCTerminal", &ACDCConverterDCTerminal_factory); + factory_map.emplace("ACDCConverterDCTerminal", &ACDCConverterDCTerminal_factory); } void ACDCConverterDCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverterDCTerminal.polarity", &assign_ACDCConverterDCTerminal_polarity); + assign_map.emplace("ACDCConverterDCTerminal.polarity", &assign_ACDCConverterDCTerminal_polarity); } void ACDCConverterDCTerminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverterDCTerminal.DCConductingEquipment", &assign_ACDCConverterDCTerminal_DCConductingEquipment); + assign_map.emplace("ACDCConverterDCTerminal.DCConductingEquipment", &assign_ACDCConverterDCTerminal_DCConductingEquipment); } void ACDCConverterDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void ACDCConverterDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverterDCTerminal.DCConductingEquipment", &get_ACDCConverterDCTerminal_DCConductingEquipment); + get_map.emplace("ACDCConverterDCTerminal.DCConductingEquipment", &get_ACDCConverterDCTerminal_DCConductingEquipment); } void ACDCConverterDCTerminal::addEnumGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverterDCTerminal.polarity", &get_ACDCConverterDCTerminal_polarity); + get_map.emplace("ACDCConverterDCTerminal.polarity", &get_ACDCConverterDCTerminal_polarity); +} + +bool ACDCConverterDCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCConverterDCTerminal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ACDCConverterDCTerminal::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner ACDCConverterDCTerminal::declare() return BaseClassDefiner(ACDCConverterDCTerminal::addConstructToMap, ACDCConverterDCTerminal::addPrimitiveAssignFnsToMap, ACDCConverterDCTerminal::addClassAssignFnsToMap, ACDCConverterDCTerminal::debugName); } +std::map ACDCConverterDCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCBaseTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCConverterDCTerminal_factory() diff --git a/CGMES_2.4.13_18DEC2013/ACDCConverterDCTerminal.hpp b/CGMES_2.4.13_18DEC2013/ACDCConverterDCTerminal.hpp index 84b1157e7..8b5ff2fe4 100644 --- a/CGMES_2.4.13_18DEC2013/ACDCConverterDCTerminal.hpp +++ b/CGMES_2.4.13_18DEC2013/ACDCConverterDCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCBaseTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DCPolarityKind.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCConverterDCTerminal_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ACDCTerminal.cpp b/CGMES_2.4.13_18DEC2013/ACDCTerminal.cpp index d4cc5c048..4e51e15ed 100644 --- a/CGMES_2.4.13_18DEC2013/ACDCTerminal.cpp +++ b/CGMES_2.4.13_18DEC2013/ACDCTerminal.cpp @@ -14,40 +14,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCTerminal.BusNameMarker", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.connected", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCTerminal.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCTerminal::ACDCTerminal() : BusNameMarker(nullptr) {} ACDCTerminal::~ACDCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& ACDCTerminal::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACDCTerminal::getClassNamespaceUrl() const { - { "cim:ACDCTerminal.BusNameMarker", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.Measurements", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.connected", { CGMESProfile::SSH, } }, - { "cim:ACDCTerminal.sequenceNumber", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACDCTerminal::getPossibleProfilesForClass() const +const std::string& ACDCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACDCTerminal::getPossibleProfilesForAttributes() const +const std::list& ACDCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusNameMarker_Terminal(BaseClass*, BaseClass*); @@ -183,33 +215,33 @@ const char* ACDCTerminal::debugString() const void ACDCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCTerminal", &ACDCTerminal_factory); + factory_map.emplace("ACDCTerminal", &ACDCTerminal_factory); } void ACDCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCTerminal.connected", &assign_ACDCTerminal_connected); - assign_map.emplace("cim:ACDCTerminal.sequenceNumber", &assign_ACDCTerminal_sequenceNumber); + assign_map.emplace("ACDCTerminal.connected", &assign_ACDCTerminal_connected); + assign_map.emplace("ACDCTerminal.sequenceNumber", &assign_ACDCTerminal_sequenceNumber); } void ACDCTerminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCTerminal.BusNameMarker", &assign_ACDCTerminal_BusNameMarker); - assign_map.emplace("cim:ACDCTerminal.Measurements", &assign_ACDCTerminal_Measurements); - assign_map.emplace("cim:ACDCTerminal.OperationalLimitSet", &assign_ACDCTerminal_OperationalLimitSet); + assign_map.emplace("ACDCTerminal.BusNameMarker", &assign_ACDCTerminal_BusNameMarker); + assign_map.emplace("ACDCTerminal.Measurements", &assign_ACDCTerminal_Measurements); + assign_map.emplace("ACDCTerminal.OperationalLimitSet", &assign_ACDCTerminal_OperationalLimitSet); } void ACDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACDCTerminal.connected", &get_ACDCTerminal_connected); - get_map.emplace("cim:ACDCTerminal.sequenceNumber", &get_ACDCTerminal_sequenceNumber); + get_map.emplace("ACDCTerminal.connected", &get_ACDCTerminal_connected); + get_map.emplace("ACDCTerminal.sequenceNumber", &get_ACDCTerminal_sequenceNumber); } void ACDCTerminal::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCTerminal.BusNameMarker", &get_ACDCTerminal_BusNameMarker); + get_map.emplace("ACDCTerminal.BusNameMarker", &get_ACDCTerminal_BusNameMarker); } void ACDCTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -217,11 +249,25 @@ void ACDCTerminal::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ACDCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACDCTerminal::declare() { return BaseClassDefiner(ACDCTerminal::addConstructToMap, ACDCTerminal::addPrimitiveAssignFnsToMap, ACDCTerminal::addClassAssignFnsToMap, ACDCTerminal::debugName); } +std::map ACDCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCTerminal_factory() diff --git a/CGMES_2.4.13_18DEC2013/ACDCTerminal.hpp b/CGMES_2.4.13_18DEC2013/ACDCTerminal.hpp index ed29f46b5..d25cb3674 100644 --- a/CGMES_2.4.13_18DEC2013/ACDCTerminal.hpp +++ b/CGMES_2.4.13_18DEC2013/ACDCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCTerminal_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ACLineSegment.cpp b/CGMES_2.4.13_18DEC2013/ACLineSegment.cpp index baecc7103..850a73416 100644 --- a/CGMES_2.4.13_18DEC2013/ACLineSegment.cpp +++ b/CGMES_2.4.13_18DEC2013/ACLineSegment.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACLineSegment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACLineSegment.b0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.bch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.g0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.gch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.shortCircuitEndTemperature", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACLineSegment::ACLineSegment() {} ACLineSegment::~ACLineSegment() {} -static const std::list PossibleProfilesForClass = +const std::list& ACLineSegment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACLineSegment::getClassNamespaceUrl() const { - { "cim:ACLineSegment.b0ch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.bch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.g0ch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.gch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.r", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.r0", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.shortCircuitEndTemperature", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.x", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACLineSegment::getPossibleProfilesForClass() const +const std::string& ACLineSegment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACLineSegment::getPossibleProfilesForAttributes() const +const std::list& ACLineSegment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Conductor::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACLineSegment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACLineSegment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACLineSegment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACLineSegment_b0ch(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ACLineSegment::debugString() const void ACLineSegment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACLineSegment", &ACLineSegment_factory); + factory_map.emplace("ACLineSegment", &ACLineSegment_factory); } void ACLineSegment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACLineSegment.b0ch", &assign_ACLineSegment_b0ch); - assign_map.emplace("cim:ACLineSegment.bch", &assign_ACLineSegment_bch); - assign_map.emplace("cim:ACLineSegment.g0ch", &assign_ACLineSegment_g0ch); - assign_map.emplace("cim:ACLineSegment.gch", &assign_ACLineSegment_gch); - assign_map.emplace("cim:ACLineSegment.r", &assign_ACLineSegment_r); - assign_map.emplace("cim:ACLineSegment.r0", &assign_ACLineSegment_r0); - assign_map.emplace("cim:ACLineSegment.shortCircuitEndTemperature", &assign_ACLineSegment_shortCircuitEndTemperature); - assign_map.emplace("cim:ACLineSegment.x", &assign_ACLineSegment_x); - assign_map.emplace("cim:ACLineSegment.x0", &assign_ACLineSegment_x0); + assign_map.emplace("ACLineSegment.b0ch", &assign_ACLineSegment_b0ch); + assign_map.emplace("ACLineSegment.bch", &assign_ACLineSegment_bch); + assign_map.emplace("ACLineSegment.g0ch", &assign_ACLineSegment_g0ch); + assign_map.emplace("ACLineSegment.gch", &assign_ACLineSegment_gch); + assign_map.emplace("ACLineSegment.r", &assign_ACLineSegment_r); + assign_map.emplace("ACLineSegment.r0", &assign_ACLineSegment_r0); + assign_map.emplace("ACLineSegment.shortCircuitEndTemperature", &assign_ACLineSegment_shortCircuitEndTemperature); + assign_map.emplace("ACLineSegment.x", &assign_ACLineSegment_x); + assign_map.emplace("ACLineSegment.x0", &assign_ACLineSegment_x0); } void ACLineSegment::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ACLineSegment::addClassAssignFnsToMap(std::unordered_map& get_map) const { Conductor::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACLineSegment.b0ch", &get_ACLineSegment_b0ch); - get_map.emplace("cim:ACLineSegment.bch", &get_ACLineSegment_bch); - get_map.emplace("cim:ACLineSegment.g0ch", &get_ACLineSegment_g0ch); - get_map.emplace("cim:ACLineSegment.gch", &get_ACLineSegment_gch); - get_map.emplace("cim:ACLineSegment.r", &get_ACLineSegment_r); - get_map.emplace("cim:ACLineSegment.r0", &get_ACLineSegment_r0); - get_map.emplace("cim:ACLineSegment.shortCircuitEndTemperature", &get_ACLineSegment_shortCircuitEndTemperature); - get_map.emplace("cim:ACLineSegment.x", &get_ACLineSegment_x); - get_map.emplace("cim:ACLineSegment.x0", &get_ACLineSegment_x0); + get_map.emplace("ACLineSegment.b0ch", &get_ACLineSegment_b0ch); + get_map.emplace("ACLineSegment.bch", &get_ACLineSegment_bch); + get_map.emplace("ACLineSegment.g0ch", &get_ACLineSegment_g0ch); + get_map.emplace("ACLineSegment.gch", &get_ACLineSegment_gch); + get_map.emplace("ACLineSegment.r", &get_ACLineSegment_r); + get_map.emplace("ACLineSegment.r0", &get_ACLineSegment_r0); + get_map.emplace("ACLineSegment.shortCircuitEndTemperature", &get_ACLineSegment_shortCircuitEndTemperature); + get_map.emplace("ACLineSegment.x", &get_ACLineSegment_x); + get_map.emplace("ACLineSegment.x0", &get_ACLineSegment_x0); } void ACLineSegment::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ACLineSegment::addEnumGetFnsToMap(std::map& get_ Conductor::addEnumGetFnsToMap(get_map); } +bool ACLineSegment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACLineSegment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACLineSegment::declare() { return BaseClassDefiner(ACLineSegment::addConstructToMap, ACLineSegment::addPrimitiveAssignFnsToMap, ACLineSegment::addClassAssignFnsToMap, ACLineSegment::debugName); } +std::map ACLineSegment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Conductor::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACLineSegment_factory() diff --git a/CGMES_2.4.13_18DEC2013/ACLineSegment.hpp b/CGMES_2.4.13_18DEC2013/ACLineSegment.hpp index 21be2e6c6..22fe1df59 100644 --- a/CGMES_2.4.13_18DEC2013/ACLineSegment.hpp +++ b/CGMES_2.4.13_18DEC2013/ACLineSegment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Conductor.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Reactance.hpp" #include "Resistance.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACLineSegment_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Accumulator.cpp b/CGMES_2.4.13_18DEC2013/Accumulator.cpp index 0f56cb3a0..dbf2c1230 100644 --- a/CGMES_2.4.13_18DEC2013/Accumulator.cpp +++ b/CGMES_2.4.13_18DEC2013/Accumulator.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Accumulator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Accumulator.AccumulatorValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Accumulator.LimitSets", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Accumulator::Accumulator() {} Accumulator::~Accumulator() {} -static const std::list PossibleProfilesForClass = +const std::list& Accumulator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Accumulator::getClassNamespaceUrl() const { - { "cim:Accumulator.AccumulatorValues", { CGMESProfile::EQ, } }, - { "cim:Accumulator.LimitSets", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Accumulator::getPossibleProfilesForClass() const +const std::string& Accumulator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Accumulator::getPossibleProfilesForAttributes() const +const std::list& Accumulator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Accumulator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Accumulator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Accumulator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorValue_Accumulator(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* Accumulator::debugString() const void Accumulator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Accumulator", &Accumulator_factory); + factory_map.emplace("Accumulator", &Accumulator_factory); } void Accumulator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void Accumulator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Accumulator.AccumulatorValues", &assign_Accumulator_AccumulatorValues); - assign_map.emplace("cim:Accumulator.LimitSets", &assign_Accumulator_LimitSets); + assign_map.emplace("Accumulator.AccumulatorValues", &assign_Accumulator_AccumulatorValues); + assign_map.emplace("Accumulator.LimitSets", &assign_Accumulator_LimitSets); } void Accumulator::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void Accumulator::addEnumGetFnsToMap(std::map& get_ma Measurement::addEnumGetFnsToMap(get_map); } +bool Accumulator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Accumulator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Accumulator::declare() { return BaseClassDefiner(Accumulator::addConstructToMap, Accumulator::addPrimitiveAssignFnsToMap, Accumulator::addClassAssignFnsToMap, Accumulator::debugName); } +std::map Accumulator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Accumulator_factory() diff --git a/CGMES_2.4.13_18DEC2013/Accumulator.hpp b/CGMES_2.4.13_18DEC2013/Accumulator.hpp index 0ea3177cb..e618a77ec 100644 --- a/CGMES_2.4.13_18DEC2013/Accumulator.hpp +++ b/CGMES_2.4.13_18DEC2013/Accumulator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Accumulator_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AccumulatorLimit.cpp b/CGMES_2.4.13_18DEC2013/AccumulatorLimit.cpp index f04f7dc98..79be5abaf 100644 --- a/CGMES_2.4.13_18DEC2013/AccumulatorLimit.cpp +++ b/CGMES_2.4.13_18DEC2013/AccumulatorLimit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorLimit.LimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorLimit::AccumulatorLimit() : LimitSet(nullptr) {} AccumulatorLimit::~AccumulatorLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorLimit::getClassNamespaceUrl() const { - { "cim:AccumulatorLimit.LimitSet", { CGMESProfile::EQ, } }, - { "cim:AccumulatorLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorLimit::getPossibleProfilesForClass() const +const std::string& AccumulatorLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorLimit::getPossibleProfilesForAttributes() const +const std::list& AccumulatorLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Limit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorLimitSet_Limits(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* AccumulatorLimit::debugString() const void AccumulatorLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorLimit", &AccumulatorLimit_factory); + factory_map.emplace("AccumulatorLimit", &AccumulatorLimit_factory); } void AccumulatorLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimit.value", &assign_AccumulatorLimit_value); + assign_map.emplace("AccumulatorLimit.value", &assign_AccumulatorLimit_value); } void AccumulatorLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimit.LimitSet", &assign_AccumulatorLimit_LimitSet); + assign_map.emplace("AccumulatorLimit.LimitSet", &assign_AccumulatorLimit_LimitSet); } void AccumulatorLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { Limit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimit.value", &get_AccumulatorLimit_value); + get_map.emplace("AccumulatorLimit.value", &get_AccumulatorLimit_value); } void AccumulatorLimit::addClassGetFnsToMap(std::map& get_map) const { Limit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimit.LimitSet", &get_AccumulatorLimit_LimitSet); + get_map.emplace("AccumulatorLimit.LimitSet", &get_AccumulatorLimit_LimitSet); } void AccumulatorLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void AccumulatorLimit::addEnumGetFnsToMap(std::map& g Limit::addEnumGetFnsToMap(get_map); } +bool AccumulatorLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorLimit::declare() { return BaseClassDefiner(AccumulatorLimit::addConstructToMap, AccumulatorLimit::addPrimitiveAssignFnsToMap, AccumulatorLimit::addClassAssignFnsToMap, AccumulatorLimit::debugName); } +std::map AccumulatorLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Limit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorLimit_factory() diff --git a/CGMES_2.4.13_18DEC2013/AccumulatorLimit.hpp b/CGMES_2.4.13_18DEC2013/AccumulatorLimit.hpp index e49dffefb..dbf326d27 100644 --- a/CGMES_2.4.13_18DEC2013/AccumulatorLimit.hpp +++ b/CGMES_2.4.13_18DEC2013/AccumulatorLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Limit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorLimit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AccumulatorLimitSet.cpp b/CGMES_2.4.13_18DEC2013/AccumulatorLimitSet.cpp index dcba477a5..af1646dc3 100644 --- a/CGMES_2.4.13_18DEC2013/AccumulatorLimitSet.cpp +++ b/CGMES_2.4.13_18DEC2013/AccumulatorLimitSet.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorLimitSet.Limits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorLimitSet.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorLimitSet.isPercentageLimits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorLimitSet::AccumulatorLimitSet() {} AccumulatorLimitSet::~AccumulatorLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorLimitSet::getClassNamespaceUrl() const { - { "cim:AccumulatorLimitSet.Limits", { CGMESProfile::EQ, } }, - { "cim:AccumulatorLimitSet.Measurements", { CGMESProfile::EQ, } }, - { "cim:AccumulatorLimitSet.isPercentageLimits", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorLimitSet::getPossibleProfilesForClass() const +const std::string& AccumulatorLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorLimitSet::getPossibleProfilesForAttributes() const +const std::list& AccumulatorLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LimitSet::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorLimit_LimitSet(BaseClass*, BaseClass*); @@ -126,30 +158,30 @@ const char* AccumulatorLimitSet::debugString() const void AccumulatorLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorLimitSet", &AccumulatorLimitSet_factory); + factory_map.emplace("AccumulatorLimitSet", &AccumulatorLimitSet_factory); } void AccumulatorLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimitSet.isPercentageLimits", &assign_AccumulatorLimitSet_isPercentageLimits); + assign_map.emplace("AccumulatorLimitSet.isPercentageLimits", &assign_AccumulatorLimitSet_isPercentageLimits); } void AccumulatorLimitSet::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimitSet.Limits", &assign_AccumulatorLimitSet_Limits); - assign_map.emplace("cim:AccumulatorLimitSet.Measurements", &assign_AccumulatorLimitSet_Measurements); + assign_map.emplace("AccumulatorLimitSet.Limits", &assign_AccumulatorLimitSet_Limits); + assign_map.emplace("AccumulatorLimitSet.Measurements", &assign_AccumulatorLimitSet_Measurements); } void AccumulatorLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { LimitSet::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimitSet.isPercentageLimits", &get_AccumulatorLimitSet_isPercentageLimits); + get_map.emplace("AccumulatorLimitSet.isPercentageLimits", &get_AccumulatorLimitSet_isPercentageLimits); } void AccumulatorLimitSet::addClassGetFnsToMap(std::map& get_map) const { LimitSet::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimitSet.Measurements", &get_AccumulatorLimitSet_Measurements); + get_map.emplace("AccumulatorLimitSet.Measurements", &get_AccumulatorLimitSet_Measurements); } void AccumulatorLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void AccumulatorLimitSet::addEnumGetFnsToMap(std::map LimitSet::addEnumGetFnsToMap(get_map); } +bool AccumulatorLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorLimitSet::declare() { return BaseClassDefiner(AccumulatorLimitSet::addConstructToMap, AccumulatorLimitSet::addPrimitiveAssignFnsToMap, AccumulatorLimitSet::addClassAssignFnsToMap, AccumulatorLimitSet::debugName); } +std::map AccumulatorLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LimitSet::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorLimitSet_factory() diff --git a/CGMES_2.4.13_18DEC2013/AccumulatorLimitSet.hpp b/CGMES_2.4.13_18DEC2013/AccumulatorLimitSet.hpp index bbe956f8c..3162c4d1f 100644 --- a/CGMES_2.4.13_18DEC2013/AccumulatorLimitSet.hpp +++ b/CGMES_2.4.13_18DEC2013/AccumulatorLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LimitSet.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorLimitSet_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AccumulatorReset.cpp b/CGMES_2.4.13_18DEC2013/AccumulatorReset.cpp index ae3e698db..1cfdba4f7 100644 --- a/CGMES_2.4.13_18DEC2013/AccumulatorReset.cpp +++ b/CGMES_2.4.13_18DEC2013/AccumulatorReset.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorReset(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorReset.AccumulatorValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorReset::AccumulatorReset() : AccumulatorValue(nullptr) {} AccumulatorReset::~AccumulatorReset() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorReset::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorReset::getClassNamespaceUrl() const { - { "cim:AccumulatorReset.AccumulatorValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorReset::getPossibleProfilesForClass() const +const std::string& AccumulatorReset::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorReset::getPossibleProfilesForAttributes() const +const std::list& AccumulatorReset::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorReset::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorReset::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorReset::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorValue_AccumulatorReset(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* AccumulatorReset::debugString() const void AccumulatorReset::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorReset", &AccumulatorReset_factory); + factory_map.emplace("AccumulatorReset", &AccumulatorReset_factory); } void AccumulatorReset::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void AccumulatorReset::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorReset.AccumulatorValue", &assign_AccumulatorReset_AccumulatorValue); + assign_map.emplace("AccumulatorReset.AccumulatorValue", &assign_AccumulatorReset_AccumulatorValue); } void AccumulatorReset::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void AccumulatorReset::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorReset.AccumulatorValue", &get_AccumulatorReset_AccumulatorValue); + get_map.emplace("AccumulatorReset.AccumulatorValue", &get_AccumulatorReset_AccumulatorValue); } void AccumulatorReset::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void AccumulatorReset::addEnumGetFnsToMap(std::map& g Control::addEnumGetFnsToMap(get_map); } +bool AccumulatorReset::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorReset" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorReset::declare() { return BaseClassDefiner(AccumulatorReset::addConstructToMap, AccumulatorReset::addPrimitiveAssignFnsToMap, AccumulatorReset::addClassAssignFnsToMap, AccumulatorReset::debugName); } +std::map AccumulatorReset::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorReset_factory() diff --git a/CGMES_2.4.13_18DEC2013/AccumulatorReset.hpp b/CGMES_2.4.13_18DEC2013/AccumulatorReset.hpp index 8c35f6e44..60642f1ec 100644 --- a/CGMES_2.4.13_18DEC2013/AccumulatorReset.hpp +++ b/CGMES_2.4.13_18DEC2013/AccumulatorReset.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorReset_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AccumulatorValue.cpp b/CGMES_2.4.13_18DEC2013/AccumulatorValue.cpp index 7311c3091..d9c2c4b05 100644 --- a/CGMES_2.4.13_18DEC2013/AccumulatorValue.cpp +++ b/CGMES_2.4.13_18DEC2013/AccumulatorValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorValue.Accumulator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorValue.AccumulatorReset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorValue::AccumulatorValue() : Accumulator(nullptr), AccumulatorReset(nullptr) {} AccumulatorValue::~AccumulatorValue() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorValue::getClassNamespaceUrl() const { - { "cim:AccumulatorValue.Accumulator", { CGMESProfile::EQ, } }, - { "cim:AccumulatorValue.AccumulatorReset", { CGMESProfile::EQ, } }, - { "cim:AccumulatorValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorValue::getPossibleProfilesForClass() const +const std::string& AccumulatorValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorValue::getPossibleProfilesForAttributes() const +const std::list& AccumulatorValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Accumulator_AccumulatorValues(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* AccumulatorValue::debugString() const void AccumulatorValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorValue", &AccumulatorValue_factory); + factory_map.emplace("AccumulatorValue", &AccumulatorValue_factory); } void AccumulatorValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorValue.value", &assign_AccumulatorValue_value); + assign_map.emplace("AccumulatorValue.value", &assign_AccumulatorValue_value); } void AccumulatorValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorValue.Accumulator", &assign_AccumulatorValue_Accumulator); - assign_map.emplace("cim:AccumulatorValue.AccumulatorReset", &assign_AccumulatorValue_AccumulatorReset); + assign_map.emplace("AccumulatorValue.Accumulator", &assign_AccumulatorValue_Accumulator); + assign_map.emplace("AccumulatorValue.AccumulatorReset", &assign_AccumulatorValue_AccumulatorReset); } void AccumulatorValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorValue.value", &get_AccumulatorValue_value); + get_map.emplace("AccumulatorValue.value", &get_AccumulatorValue_value); } void AccumulatorValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorValue.Accumulator", &get_AccumulatorValue_Accumulator); + get_map.emplace("AccumulatorValue.Accumulator", &get_AccumulatorValue_Accumulator); } void AccumulatorValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void AccumulatorValue::addEnumGetFnsToMap(std::map& g MeasurementValue::addEnumGetFnsToMap(get_map); } +bool AccumulatorValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorValue::declare() { return BaseClassDefiner(AccumulatorValue::addConstructToMap, AccumulatorValue::addPrimitiveAssignFnsToMap, AccumulatorValue::addClassAssignFnsToMap, AccumulatorValue::debugName); } +std::map AccumulatorValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorValue_factory() diff --git a/CGMES_2.4.13_18DEC2013/AccumulatorValue.hpp b/CGMES_2.4.13_18DEC2013/AccumulatorValue.hpp index 3a573eb45..9836f908f 100644 --- a/CGMES_2.4.13_18DEC2013/AccumulatorValue.hpp +++ b/CGMES_2.4.13_18DEC2013/AccumulatorValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorValue_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ActivePowerLimit.cpp b/CGMES_2.4.13_18DEC2013/ActivePowerLimit.cpp index d05a279c9..c4a2010d1 100644 --- a/CGMES_2.4.13_18DEC2013/ActivePowerLimit.cpp +++ b/CGMES_2.4.13_18DEC2013/ActivePowerLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ActivePowerLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ActivePowerLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ActivePowerLimit::ActivePowerLimit() {} ActivePowerLimit::~ActivePowerLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& ActivePowerLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ActivePowerLimit::getClassNamespaceUrl() const { - { "cim:ActivePowerLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ActivePowerLimit::getPossibleProfilesForClass() const +const std::string& ActivePowerLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ActivePowerLimit::getPossibleProfilesForAttributes() const +const std::list& ActivePowerLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ActivePowerLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ActivePowerLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ActivePowerLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ActivePowerLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* ActivePowerLimit::debugString() const void ActivePowerLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ActivePowerLimit", &ActivePowerLimit_factory); + factory_map.emplace("ActivePowerLimit", &ActivePowerLimit_factory); } void ActivePowerLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ActivePowerLimit.value", &assign_ActivePowerLimit_value); + assign_map.emplace("ActivePowerLimit.value", &assign_ActivePowerLimit_value); } void ActivePowerLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void ActivePowerLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ActivePowerLimit.value", &get_ActivePowerLimit_value); + get_map.emplace("ActivePowerLimit.value", &get_ActivePowerLimit_value); } void ActivePowerLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void ActivePowerLimit::addEnumGetFnsToMap(std::map& g OperationalLimit::addEnumGetFnsToMap(get_map); } +bool ActivePowerLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ActivePowerLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ActivePowerLimit::declare() { return BaseClassDefiner(ActivePowerLimit::addConstructToMap, ActivePowerLimit::addPrimitiveAssignFnsToMap, ActivePowerLimit::addClassAssignFnsToMap, ActivePowerLimit::debugName); } +std::map ActivePowerLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ActivePowerLimit_factory() diff --git a/CGMES_2.4.13_18DEC2013/ActivePowerLimit.hpp b/CGMES_2.4.13_18DEC2013/ActivePowerLimit.hpp index cdf99235b..ce13f59df 100644 --- a/CGMES_2.4.13_18DEC2013/ActivePowerLimit.hpp +++ b/CGMES_2.4.13_18DEC2013/ActivePowerLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ActivePowerLimit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Analog.cpp b/CGMES_2.4.13_18DEC2013/Analog.cpp index d11d78a05..3d4b3da38 100644 --- a/CGMES_2.4.13_18DEC2013/Analog.cpp +++ b/CGMES_2.4.13_18DEC2013/Analog.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Analog(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Analog.AnalogValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Analog.LimitSets", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Analog.positiveFlowIn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Analog::Analog() {} Analog::~Analog() {} -static const std::list PossibleProfilesForClass = +const std::list& Analog::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Analog::getClassNamespaceUrl() const { - { "cim:Analog.AnalogValues", { CGMESProfile::EQ, } }, - { "cim:Analog.LimitSets", { CGMESProfile::EQ, } }, - { "cim:Analog.positiveFlowIn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Analog::getPossibleProfilesForClass() const +const std::string& Analog::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Analog::getPossibleProfilesForAttributes() const +const std::list& Analog::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Analog::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Analog::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Analog::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogValue_Analog(BaseClass*, BaseClass*); @@ -116,24 +148,24 @@ const char* Analog::debugString() const void Analog::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Analog", &Analog_factory); + factory_map.emplace("Analog", &Analog_factory); } void Analog::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Analog.positiveFlowIn", &assign_Analog_positiveFlowIn); + assign_map.emplace("Analog.positiveFlowIn", &assign_Analog_positiveFlowIn); } void Analog::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Analog.AnalogValues", &assign_Analog_AnalogValues); - assign_map.emplace("cim:Analog.LimitSets", &assign_Analog_LimitSets); + assign_map.emplace("Analog.AnalogValues", &assign_Analog_AnalogValues); + assign_map.emplace("Analog.LimitSets", &assign_Analog_LimitSets); } void Analog::addPrimitiveGetFnsToMap(std::map& get_map) const { Measurement::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Analog.positiveFlowIn", &get_Analog_positiveFlowIn); + get_map.emplace("Analog.positiveFlowIn", &get_Analog_positiveFlowIn); } void Analog::addClassGetFnsToMap(std::map& get_map) const @@ -146,11 +178,25 @@ void Analog::addEnumGetFnsToMap(std::map& get_map) co Measurement::addEnumGetFnsToMap(get_map); } +bool Analog::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Analog" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Analog::declare() { return BaseClassDefiner(Analog::addConstructToMap, Analog::addPrimitiveAssignFnsToMap, Analog::addClassAssignFnsToMap, Analog::debugName); } +std::map Analog::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Analog_factory() diff --git a/CGMES_2.4.13_18DEC2013/Analog.hpp b/CGMES_2.4.13_18DEC2013/Analog.hpp index 38ba38c37..e935c564b 100644 --- a/CGMES_2.4.13_18DEC2013/Analog.hpp +++ b/CGMES_2.4.13_18DEC2013/Analog.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Analog_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AnalogControl.cpp b/CGMES_2.4.13_18DEC2013/AnalogControl.cpp index aba858065..6070983bc 100644 --- a/CGMES_2.4.13_18DEC2013/AnalogControl.cpp +++ b/CGMES_2.4.13_18DEC2013/AnalogControl.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogControl.AnalogValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogControl.maxValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogControl.minValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogControl::AnalogControl() : AnalogValue(nullptr) {} AnalogControl::~AnalogControl() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogControl::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogControl::getClassNamespaceUrl() const { - { "cim:AnalogControl.AnalogValue", { CGMESProfile::EQ, } }, - { "cim:AnalogControl.maxValue", { CGMESProfile::EQ, } }, - { "cim:AnalogControl.minValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogControl::getPossibleProfilesForClass() const +const std::string& AnalogControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogControl::getPossibleProfilesForAttributes() const +const std::list& AnalogControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogValue_AnalogControl(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* AnalogControl::debugString() const void AnalogControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogControl", &AnalogControl_factory); + factory_map.emplace("AnalogControl", &AnalogControl_factory); } void AnalogControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogControl.maxValue", &assign_AnalogControl_maxValue); - assign_map.emplace("cim:AnalogControl.minValue", &assign_AnalogControl_minValue); + assign_map.emplace("AnalogControl.maxValue", &assign_AnalogControl_maxValue); + assign_map.emplace("AnalogControl.minValue", &assign_AnalogControl_minValue); } void AnalogControl::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogControl.AnalogValue", &assign_AnalogControl_AnalogValue); + assign_map.emplace("AnalogControl.AnalogValue", &assign_AnalogControl_AnalogValue); } void AnalogControl::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogControl.maxValue", &get_AnalogControl_maxValue); - get_map.emplace("cim:AnalogControl.minValue", &get_AnalogControl_minValue); + get_map.emplace("AnalogControl.maxValue", &get_AnalogControl_maxValue); + get_map.emplace("AnalogControl.minValue", &get_AnalogControl_minValue); } void AnalogControl::addClassGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogControl.AnalogValue", &get_AnalogControl_AnalogValue); + get_map.emplace("AnalogControl.AnalogValue", &get_AnalogControl_AnalogValue); } void AnalogControl::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void AnalogControl::addEnumGetFnsToMap(std::map& get_ Control::addEnumGetFnsToMap(get_map); } +bool AnalogControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogControl" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogControl::declare() { return BaseClassDefiner(AnalogControl::addConstructToMap, AnalogControl::addPrimitiveAssignFnsToMap, AnalogControl::addClassAssignFnsToMap, AnalogControl::debugName); } +std::map AnalogControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogControl_factory() diff --git a/CGMES_2.4.13_18DEC2013/AnalogControl.hpp b/CGMES_2.4.13_18DEC2013/AnalogControl.hpp index 8185c302e..9f13d988f 100644 --- a/CGMES_2.4.13_18DEC2013/AnalogControl.hpp +++ b/CGMES_2.4.13_18DEC2013/AnalogControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogControl_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AnalogLimit.cpp b/CGMES_2.4.13_18DEC2013/AnalogLimit.cpp index 007d1c5d0..2997f3652 100644 --- a/CGMES_2.4.13_18DEC2013/AnalogLimit.cpp +++ b/CGMES_2.4.13_18DEC2013/AnalogLimit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogLimit.LimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogLimit::AnalogLimit() : LimitSet(nullptr) {} AnalogLimit::~AnalogLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogLimit::getClassNamespaceUrl() const { - { "cim:AnalogLimit.LimitSet", { CGMESProfile::EQ, } }, - { "cim:AnalogLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogLimit::getPossibleProfilesForClass() const +const std::string& AnalogLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogLimit::getPossibleProfilesForAttributes() const +const std::list& AnalogLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Limit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogLimitSet_Limits(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* AnalogLimit::debugString() const void AnalogLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogLimit", &AnalogLimit_factory); + factory_map.emplace("AnalogLimit", &AnalogLimit_factory); } void AnalogLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimit.value", &assign_AnalogLimit_value); + assign_map.emplace("AnalogLimit.value", &assign_AnalogLimit_value); } void AnalogLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimit.LimitSet", &assign_AnalogLimit_LimitSet); + assign_map.emplace("AnalogLimit.LimitSet", &assign_AnalogLimit_LimitSet); } void AnalogLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { Limit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimit.value", &get_AnalogLimit_value); + get_map.emplace("AnalogLimit.value", &get_AnalogLimit_value); } void AnalogLimit::addClassGetFnsToMap(std::map& get_map) const { Limit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimit.LimitSet", &get_AnalogLimit_LimitSet); + get_map.emplace("AnalogLimit.LimitSet", &get_AnalogLimit_LimitSet); } void AnalogLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void AnalogLimit::addEnumGetFnsToMap(std::map& get_ma Limit::addEnumGetFnsToMap(get_map); } +bool AnalogLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogLimit::declare() { return BaseClassDefiner(AnalogLimit::addConstructToMap, AnalogLimit::addPrimitiveAssignFnsToMap, AnalogLimit::addClassAssignFnsToMap, AnalogLimit::debugName); } +std::map AnalogLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Limit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogLimit_factory() diff --git a/CGMES_2.4.13_18DEC2013/AnalogLimit.hpp b/CGMES_2.4.13_18DEC2013/AnalogLimit.hpp index 58ddbd984..4ecac92a7 100644 --- a/CGMES_2.4.13_18DEC2013/AnalogLimit.hpp +++ b/CGMES_2.4.13_18DEC2013/AnalogLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Limit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogLimit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AnalogLimitSet.cpp b/CGMES_2.4.13_18DEC2013/AnalogLimitSet.cpp index c59ae0fa2..3d0c9ba6e 100644 --- a/CGMES_2.4.13_18DEC2013/AnalogLimitSet.cpp +++ b/CGMES_2.4.13_18DEC2013/AnalogLimitSet.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogLimitSet.Limits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogLimitSet.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogLimitSet.isPercentageLimits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogLimitSet::AnalogLimitSet() {} AnalogLimitSet::~AnalogLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogLimitSet::getClassNamespaceUrl() const { - { "cim:AnalogLimitSet.Limits", { CGMESProfile::EQ, } }, - { "cim:AnalogLimitSet.Measurements", { CGMESProfile::EQ, } }, - { "cim:AnalogLimitSet.isPercentageLimits", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogLimitSet::getPossibleProfilesForClass() const +const std::string& AnalogLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogLimitSet::getPossibleProfilesForAttributes() const +const std::list& AnalogLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LimitSet::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogLimit_LimitSet(BaseClass*, BaseClass*); @@ -126,30 +158,30 @@ const char* AnalogLimitSet::debugString() const void AnalogLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogLimitSet", &AnalogLimitSet_factory); + factory_map.emplace("AnalogLimitSet", &AnalogLimitSet_factory); } void AnalogLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimitSet.isPercentageLimits", &assign_AnalogLimitSet_isPercentageLimits); + assign_map.emplace("AnalogLimitSet.isPercentageLimits", &assign_AnalogLimitSet_isPercentageLimits); } void AnalogLimitSet::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimitSet.Limits", &assign_AnalogLimitSet_Limits); - assign_map.emplace("cim:AnalogLimitSet.Measurements", &assign_AnalogLimitSet_Measurements); + assign_map.emplace("AnalogLimitSet.Limits", &assign_AnalogLimitSet_Limits); + assign_map.emplace("AnalogLimitSet.Measurements", &assign_AnalogLimitSet_Measurements); } void AnalogLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { LimitSet::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimitSet.isPercentageLimits", &get_AnalogLimitSet_isPercentageLimits); + get_map.emplace("AnalogLimitSet.isPercentageLimits", &get_AnalogLimitSet_isPercentageLimits); } void AnalogLimitSet::addClassGetFnsToMap(std::map& get_map) const { LimitSet::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimitSet.Measurements", &get_AnalogLimitSet_Measurements); + get_map.emplace("AnalogLimitSet.Measurements", &get_AnalogLimitSet_Measurements); } void AnalogLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void AnalogLimitSet::addEnumGetFnsToMap(std::map& get LimitSet::addEnumGetFnsToMap(get_map); } +bool AnalogLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogLimitSet::declare() { return BaseClassDefiner(AnalogLimitSet::addConstructToMap, AnalogLimitSet::addPrimitiveAssignFnsToMap, AnalogLimitSet::addClassAssignFnsToMap, AnalogLimitSet::debugName); } +std::map AnalogLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LimitSet::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogLimitSet_factory() diff --git a/CGMES_2.4.13_18DEC2013/AnalogLimitSet.hpp b/CGMES_2.4.13_18DEC2013/AnalogLimitSet.hpp index 3bc86a57d..275052762 100644 --- a/CGMES_2.4.13_18DEC2013/AnalogLimitSet.hpp +++ b/CGMES_2.4.13_18DEC2013/AnalogLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LimitSet.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogLimitSet_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AnalogValue.cpp b/CGMES_2.4.13_18DEC2013/AnalogValue.cpp index 2c9ec60f2..fb2b6b3d7 100644 --- a/CGMES_2.4.13_18DEC2013/AnalogValue.cpp +++ b/CGMES_2.4.13_18DEC2013/AnalogValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogValue.Analog", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogValue.AnalogControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogValue::AnalogValue() : Analog(nullptr), AnalogControl(nullptr) {} AnalogValue::~AnalogValue() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogValue::getClassNamespaceUrl() const { - { "cim:AnalogValue.Analog", { CGMESProfile::EQ, } }, - { "cim:AnalogValue.AnalogControl", { CGMESProfile::EQ, } }, - { "cim:AnalogValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogValue::getPossibleProfilesForClass() const +const std::string& AnalogValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogValue::getPossibleProfilesForAttributes() const +const std::list& AnalogValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Analog_AnalogValues(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* AnalogValue::debugString() const void AnalogValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogValue", &AnalogValue_factory); + factory_map.emplace("AnalogValue", &AnalogValue_factory); } void AnalogValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogValue.value", &assign_AnalogValue_value); + assign_map.emplace("AnalogValue.value", &assign_AnalogValue_value); } void AnalogValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogValue.Analog", &assign_AnalogValue_Analog); - assign_map.emplace("cim:AnalogValue.AnalogControl", &assign_AnalogValue_AnalogControl); + assign_map.emplace("AnalogValue.Analog", &assign_AnalogValue_Analog); + assign_map.emplace("AnalogValue.AnalogControl", &assign_AnalogValue_AnalogControl); } void AnalogValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogValue.value", &get_AnalogValue_value); + get_map.emplace("AnalogValue.value", &get_AnalogValue_value); } void AnalogValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogValue.Analog", &get_AnalogValue_Analog); + get_map.emplace("AnalogValue.Analog", &get_AnalogValue_Analog); } void AnalogValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void AnalogValue::addEnumGetFnsToMap(std::map& get_ma MeasurementValue::addEnumGetFnsToMap(get_map); } +bool AnalogValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogValue::declare() { return BaseClassDefiner(AnalogValue::addConstructToMap, AnalogValue::addPrimitiveAssignFnsToMap, AnalogValue::addClassAssignFnsToMap, AnalogValue::debugName); } +std::map AnalogValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogValue_factory() diff --git a/CGMES_2.4.13_18DEC2013/AnalogValue.hpp b/CGMES_2.4.13_18DEC2013/AnalogValue.hpp index 6a1f17faf..09fb0dfb2 100644 --- a/CGMES_2.4.13_18DEC2013/AnalogValue.hpp +++ b/CGMES_2.4.13_18DEC2013/AnalogValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogValue_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ApparentPowerLimit.cpp b/CGMES_2.4.13_18DEC2013/ApparentPowerLimit.cpp index adbb44d3c..11ce5e75e 100644 --- a/CGMES_2.4.13_18DEC2013/ApparentPowerLimit.cpp +++ b/CGMES_2.4.13_18DEC2013/ApparentPowerLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ApparentPowerLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ApparentPowerLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ApparentPowerLimit::ApparentPowerLimit() {} ApparentPowerLimit::~ApparentPowerLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& ApparentPowerLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ApparentPowerLimit::getClassNamespaceUrl() const { - { "cim:ApparentPowerLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ApparentPowerLimit::getPossibleProfilesForClass() const +const std::string& ApparentPowerLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ApparentPowerLimit::getPossibleProfilesForAttributes() const +const std::list& ApparentPowerLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ApparentPowerLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ApparentPowerLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ApparentPowerLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ApparentPowerLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* ApparentPowerLimit::debugString() const void ApparentPowerLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ApparentPowerLimit", &ApparentPowerLimit_factory); + factory_map.emplace("ApparentPowerLimit", &ApparentPowerLimit_factory); } void ApparentPowerLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ApparentPowerLimit.value", &assign_ApparentPowerLimit_value); + assign_map.emplace("ApparentPowerLimit.value", &assign_ApparentPowerLimit_value); } void ApparentPowerLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void ApparentPowerLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ApparentPowerLimit.value", &get_ApparentPowerLimit_value); + get_map.emplace("ApparentPowerLimit.value", &get_ApparentPowerLimit_value); } void ApparentPowerLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void ApparentPowerLimit::addEnumGetFnsToMap(std::map& OperationalLimit::addEnumGetFnsToMap(get_map); } +bool ApparentPowerLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ApparentPowerLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ApparentPowerLimit::declare() { return BaseClassDefiner(ApparentPowerLimit::addConstructToMap, ApparentPowerLimit::addPrimitiveAssignFnsToMap, ApparentPowerLimit::addClassAssignFnsToMap, ApparentPowerLimit::debugName); } +std::map ApparentPowerLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ApparentPowerLimit_factory() diff --git a/CGMES_2.4.13_18DEC2013/ApparentPowerLimit.hpp b/CGMES_2.4.13_18DEC2013/ApparentPowerLimit.hpp index c9bf47334..b740e4d26 100644 --- a/CGMES_2.4.13_18DEC2013/ApparentPowerLimit.hpp +++ b/CGMES_2.4.13_18DEC2013/ApparentPowerLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ApparentPowerLimit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachine.cpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachine.cpp index 934692393..20db0142b 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachine.cpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachine.cpp @@ -12,44 +12,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachine.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachine.asynchronousMachineType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "AsynchronousMachine.converterFedDrive", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.efficiency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.iaIrRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.nominalFrequency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.nominalSpeed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.polePairNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.ratedMechanicalPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.reversible", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.rxLockedRotorRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachine::AsynchronousMachine() : AsynchronousMachineDynamics(nullptr) {} AsynchronousMachine::~AsynchronousMachine() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachine::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachine::getClassNamespaceUrl() const { - { "cim:AsynchronousMachine.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachine.asynchronousMachineType", { CGMESProfile::SSH, } }, - { "cim:AsynchronousMachine.converterFedDrive", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.efficiency", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.iaIrRatio", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.nominalFrequency", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.nominalSpeed", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.polePairNumber", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.ratedMechanicalPower", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.reversible", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.rxLockedRotorRatio", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachine::getPossibleProfilesForClass() const +const std::string& AsynchronousMachine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachine::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachine::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_AsynchronousMachine(BaseClass*, BaseClass*); @@ -368,40 +400,40 @@ const char* AsynchronousMachine::debugString() const void AsynchronousMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachine", &AsynchronousMachine_factory); + factory_map.emplace("AsynchronousMachine", &AsynchronousMachine_factory); } void AsynchronousMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachine.asynchronousMachineType", &assign_AsynchronousMachine_asynchronousMachineType); - assign_map.emplace("cim:AsynchronousMachine.converterFedDrive", &assign_AsynchronousMachine_converterFedDrive); - assign_map.emplace("cim:AsynchronousMachine.efficiency", &assign_AsynchronousMachine_efficiency); - assign_map.emplace("cim:AsynchronousMachine.iaIrRatio", &assign_AsynchronousMachine_iaIrRatio); - assign_map.emplace("cim:AsynchronousMachine.nominalFrequency", &assign_AsynchronousMachine_nominalFrequency); - assign_map.emplace("cim:AsynchronousMachine.nominalSpeed", &assign_AsynchronousMachine_nominalSpeed); - assign_map.emplace("cim:AsynchronousMachine.polePairNumber", &assign_AsynchronousMachine_polePairNumber); - assign_map.emplace("cim:AsynchronousMachine.ratedMechanicalPower", &assign_AsynchronousMachine_ratedMechanicalPower); - assign_map.emplace("cim:AsynchronousMachine.reversible", &assign_AsynchronousMachine_reversible); - assign_map.emplace("cim:AsynchronousMachine.rxLockedRotorRatio", &assign_AsynchronousMachine_rxLockedRotorRatio); + assign_map.emplace("AsynchronousMachine.asynchronousMachineType", &assign_AsynchronousMachine_asynchronousMachineType); + assign_map.emplace("AsynchronousMachine.converterFedDrive", &assign_AsynchronousMachine_converterFedDrive); + assign_map.emplace("AsynchronousMachine.efficiency", &assign_AsynchronousMachine_efficiency); + assign_map.emplace("AsynchronousMachine.iaIrRatio", &assign_AsynchronousMachine_iaIrRatio); + assign_map.emplace("AsynchronousMachine.nominalFrequency", &assign_AsynchronousMachine_nominalFrequency); + assign_map.emplace("AsynchronousMachine.nominalSpeed", &assign_AsynchronousMachine_nominalSpeed); + assign_map.emplace("AsynchronousMachine.polePairNumber", &assign_AsynchronousMachine_polePairNumber); + assign_map.emplace("AsynchronousMachine.ratedMechanicalPower", &assign_AsynchronousMachine_ratedMechanicalPower); + assign_map.emplace("AsynchronousMachine.reversible", &assign_AsynchronousMachine_reversible); + assign_map.emplace("AsynchronousMachine.rxLockedRotorRatio", &assign_AsynchronousMachine_rxLockedRotorRatio); } void AsynchronousMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachine.AsynchronousMachineDynamics", &assign_AsynchronousMachine_AsynchronousMachineDynamics); + assign_map.emplace("AsynchronousMachine.AsynchronousMachineDynamics", &assign_AsynchronousMachine_AsynchronousMachineDynamics); } void AsynchronousMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachine::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachine.converterFedDrive", &get_AsynchronousMachine_converterFedDrive); - get_map.emplace("cim:AsynchronousMachine.efficiency", &get_AsynchronousMachine_efficiency); - get_map.emplace("cim:AsynchronousMachine.iaIrRatio", &get_AsynchronousMachine_iaIrRatio); - get_map.emplace("cim:AsynchronousMachine.nominalFrequency", &get_AsynchronousMachine_nominalFrequency); - get_map.emplace("cim:AsynchronousMachine.nominalSpeed", &get_AsynchronousMachine_nominalSpeed); - get_map.emplace("cim:AsynchronousMachine.polePairNumber", &get_AsynchronousMachine_polePairNumber); - get_map.emplace("cim:AsynchronousMachine.ratedMechanicalPower", &get_AsynchronousMachine_ratedMechanicalPower); - get_map.emplace("cim:AsynchronousMachine.reversible", &get_AsynchronousMachine_reversible); - get_map.emplace("cim:AsynchronousMachine.rxLockedRotorRatio", &get_AsynchronousMachine_rxLockedRotorRatio); + get_map.emplace("AsynchronousMachine.converterFedDrive", &get_AsynchronousMachine_converterFedDrive); + get_map.emplace("AsynchronousMachine.efficiency", &get_AsynchronousMachine_efficiency); + get_map.emplace("AsynchronousMachine.iaIrRatio", &get_AsynchronousMachine_iaIrRatio); + get_map.emplace("AsynchronousMachine.nominalFrequency", &get_AsynchronousMachine_nominalFrequency); + get_map.emplace("AsynchronousMachine.nominalSpeed", &get_AsynchronousMachine_nominalSpeed); + get_map.emplace("AsynchronousMachine.polePairNumber", &get_AsynchronousMachine_polePairNumber); + get_map.emplace("AsynchronousMachine.ratedMechanicalPower", &get_AsynchronousMachine_ratedMechanicalPower); + get_map.emplace("AsynchronousMachine.reversible", &get_AsynchronousMachine_reversible); + get_map.emplace("AsynchronousMachine.rxLockedRotorRatio", &get_AsynchronousMachine_rxLockedRotorRatio); } void AsynchronousMachine::addClassGetFnsToMap(std::map& get_map) const @@ -412,7 +444,13 @@ void AsynchronousMachine::addClassGetFnsToMap(std::map& get_map) const { RotatingMachine::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachine.asynchronousMachineType", &get_AsynchronousMachine_asynchronousMachineType); + get_map.emplace("AsynchronousMachine.asynchronousMachineType", &get_AsynchronousMachine_asynchronousMachineType); +} + +bool AsynchronousMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AsynchronousMachine" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner AsynchronousMachine::declare() @@ -420,6 +458,14 @@ const BaseClassDefiner AsynchronousMachine::declare() return BaseClassDefiner(AsynchronousMachine::addConstructToMap, AsynchronousMachine::addPrimitiveAssignFnsToMap, AsynchronousMachine::addClassAssignFnsToMap, AsynchronousMachine::debugName); } +std::map AsynchronousMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachine::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachine_factory() diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachine.hpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachine.hpp index 9808c783d..90b7082fa 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachine.hpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachine.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "AsynchronousMachineKind.hpp" #include "Boolean.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachine_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachineDynamics.cpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachineDynamics.cpp index a7e89471f..2ae33600b 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachineDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachineDynamics.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineDynamics.AsynchronousMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.MechanicalLoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineDynamics::AsynchronousMachineDynamics() : AsynchronousMachine(nullptr), MechanicalLoadDynamics(nullptr), TurbineGovernorDynamics(nullptr), WindTurbineType1or2Dynamics(nullptr) {} AsynchronousMachineDynamics::~AsynchronousMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineDynamics::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineDynamics.AsynchronousMachine", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.MechanicalLoadDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineDynamics::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachine_AsynchronousMachineDynamics(BaseClass*, BaseClass*); @@ -139,7 +171,7 @@ const char* AsynchronousMachineDynamics::debugString() const void AsynchronousMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineDynamics", &AsynchronousMachineDynamics_factory); + factory_map.emplace("AsynchronousMachineDynamics", &AsynchronousMachineDynamics_factory); } void AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -148,10 +180,10 @@ void AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void AsynchronousMachineDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineDynamics.AsynchronousMachine", &assign_AsynchronousMachineDynamics_AsynchronousMachine); - assign_map.emplace("cim:AsynchronousMachineDynamics.MechanicalLoadDynamics", &assign_AsynchronousMachineDynamics_MechanicalLoadDynamics); - assign_map.emplace("cim:AsynchronousMachineDynamics.TurbineGovernorDynamics", &assign_AsynchronousMachineDynamics_TurbineGovernorDynamics); - assign_map.emplace("cim:AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", &assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics); + assign_map.emplace("AsynchronousMachineDynamics.AsynchronousMachine", &assign_AsynchronousMachineDynamics_AsynchronousMachine); + assign_map.emplace("AsynchronousMachineDynamics.MechanicalLoadDynamics", &assign_AsynchronousMachineDynamics_MechanicalLoadDynamics); + assign_map.emplace("AsynchronousMachineDynamics.TurbineGovernorDynamics", &assign_AsynchronousMachineDynamics_TurbineGovernorDynamics); + assign_map.emplace("AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", &assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics); } void AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -162,7 +194,7 @@ void AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachineDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineDynamics.AsynchronousMachine", &get_AsynchronousMachineDynamics_AsynchronousMachine); + get_map.emplace("AsynchronousMachineDynamics.AsynchronousMachine", &get_AsynchronousMachineDynamics_AsynchronousMachine); } void AsynchronousMachineDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -170,11 +202,25 @@ void AsynchronousMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineDynamics::declare() { return BaseClassDefiner(AsynchronousMachineDynamics::addConstructToMap, AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap, AsynchronousMachineDynamics::addClassAssignFnsToMap, AsynchronousMachineDynamics::debugName); } +std::map AsynchronousMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachineDynamics.hpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachineDynamics.hpp index bc0e2a13d..47bcafe5e 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachineDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachineEquivalentCircuit.cpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachineEquivalentCircuit.cpp index 5ed52c82d..69d074daa 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachineEquivalentCircuit.cpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachineEquivalentCircuit.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineEquivalentCircuit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineEquivalentCircuit.rr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.rr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xlr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xlr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineEquivalentCircuit::AsynchronousMachineEquivalentCircuit() {} AsynchronousMachineEquivalentCircuit::~AsynchronousMachineEquivalentCircuit() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineEquivalentCircuit::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineEquivalentCircuit::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineEquivalentCircuit.rr1", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.rr2", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xlr1", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xlr2", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineEquivalentCircuit::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineEquivalentCircuit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineEquivalentCircuit::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineEquivalentCircuit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineEquivalentCircuit_rr1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* AsynchronousMachineEquivalentCircuit::debugString() const void AsynchronousMachineEquivalentCircuit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineEquivalentCircuit", &AsynchronousMachineEquivalentCircuit_factory); + factory_map.emplace("AsynchronousMachineEquivalentCircuit", &AsynchronousMachineEquivalentCircuit_factory); } void AsynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr1", &assign_AsynchronousMachineEquivalentCircuit_rr1); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr2", &assign_AsynchronousMachineEquivalentCircuit_rr2); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr1", &assign_AsynchronousMachineEquivalentCircuit_xlr1); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr2", &assign_AsynchronousMachineEquivalentCircuit_xlr2); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xm", &assign_AsynchronousMachineEquivalentCircuit_xm); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.rr1", &assign_AsynchronousMachineEquivalentCircuit_rr1); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.rr2", &assign_AsynchronousMachineEquivalentCircuit_rr2); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xlr1", &assign_AsynchronousMachineEquivalentCircuit_xlr1); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xlr2", &assign_AsynchronousMachineEquivalentCircuit_xlr2); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xm", &assign_AsynchronousMachineEquivalentCircuit_xm); } void AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered void AsynchronousMachineEquivalentCircuit::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr1", &get_AsynchronousMachineEquivalentCircuit_rr1); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr2", &get_AsynchronousMachineEquivalentCircuit_rr2); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr1", &get_AsynchronousMachineEquivalentCircuit_xlr1); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr2", &get_AsynchronousMachineEquivalentCircuit_xlr2); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xm", &get_AsynchronousMachineEquivalentCircuit_xm); + get_map.emplace("AsynchronousMachineEquivalentCircuit.rr1", &get_AsynchronousMachineEquivalentCircuit_rr1); + get_map.emplace("AsynchronousMachineEquivalentCircuit.rr2", &get_AsynchronousMachineEquivalentCircuit_rr2); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xlr1", &get_AsynchronousMachineEquivalentCircuit_xlr1); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xlr2", &get_AsynchronousMachineEquivalentCircuit_xlr2); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xm", &get_AsynchronousMachineEquivalentCircuit_xm); } void AsynchronousMachineEquivalentCircuit::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void AsynchronousMachineEquivalentCircuit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineEquivalentCircuit::declare() { return BaseClassDefiner(AsynchronousMachineEquivalentCircuit::addConstructToMap, AsynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap, AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap, AsynchronousMachineEquivalentCircuit::debugName); } +std::map AsynchronousMachineEquivalentCircuit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineEquivalentCircuit_factory() diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachineEquivalentCircuit.hpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachineEquivalentCircuit.hpp index 0280d8e3e..f1d8915cf 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachineEquivalentCircuit.hpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachineEquivalentCircuit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineEquivalentCircuit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachineTimeConstantReactance.cpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachineTimeConstantReactance.cpp index 4f8d1492d..28a9cbfaa 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachineTimeConstantReactance.cpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachineTimeConstantReactance.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineTimeConstantReactance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineTimeConstantReactance.tpo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.tppo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineTimeConstantReactance::AsynchronousMachineTimeConstantReactance() {} AsynchronousMachineTimeConstantReactance::~AsynchronousMachineTimeConstantReactance() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineTimeConstantReactance::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineTimeConstantReactance::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineTimeConstantReactance.tpo", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.tppo", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xp", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xpp", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineTimeConstantReactance::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineTimeConstantReactance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineTimeConstantReactance::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineTimeConstantReactance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineTimeConstantReactance_tpo(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* AsynchronousMachineTimeConstantReactance::debugString() const void AsynchronousMachineTimeConstantReactance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineTimeConstantReactance", &AsynchronousMachineTimeConstantReactance_factory); + factory_map.emplace("AsynchronousMachineTimeConstantReactance", &AsynchronousMachineTimeConstantReactance_factory); } void AsynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tpo", &assign_AsynchronousMachineTimeConstantReactance_tpo); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tppo", &assign_AsynchronousMachineTimeConstantReactance_tppo); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xp", &assign_AsynchronousMachineTimeConstantReactance_xp); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xpp", &assign_AsynchronousMachineTimeConstantReactance_xpp); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xs", &assign_AsynchronousMachineTimeConstantReactance_xs); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.tpo", &assign_AsynchronousMachineTimeConstantReactance_tpo); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.tppo", &assign_AsynchronousMachineTimeConstantReactance_tppo); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xp", &assign_AsynchronousMachineTimeConstantReactance_xp); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xpp", &assign_AsynchronousMachineTimeConstantReactance_xpp); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xs", &assign_AsynchronousMachineTimeConstantReactance_xs); } void AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unord void AsynchronousMachineTimeConstantReactance::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tpo", &get_AsynchronousMachineTimeConstantReactance_tpo); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tppo", &get_AsynchronousMachineTimeConstantReactance_tppo); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xp", &get_AsynchronousMachineTimeConstantReactance_xp); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xpp", &get_AsynchronousMachineTimeConstantReactance_xpp); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xs", &get_AsynchronousMachineTimeConstantReactance_xs); + get_map.emplace("AsynchronousMachineTimeConstantReactance.tpo", &get_AsynchronousMachineTimeConstantReactance_tpo); + get_map.emplace("AsynchronousMachineTimeConstantReactance.tppo", &get_AsynchronousMachineTimeConstantReactance_tppo); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xp", &get_AsynchronousMachineTimeConstantReactance_xp); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xpp", &get_AsynchronousMachineTimeConstantReactance_xpp); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xs", &get_AsynchronousMachineTimeConstantReactance_xs); } void AsynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void AsynchronousMachineTimeConstantReactance::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineTimeConstantReactance::declare() { return BaseClassDefiner(AsynchronousMachineTimeConstantReactance::addConstructToMap, AsynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap, AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap, AsynchronousMachineTimeConstantReactance::debugName); } +std::map AsynchronousMachineTimeConstantReactance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineTimeConstantReactance_factory() diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachineTimeConstantReactance.hpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachineTimeConstantReactance.hpp index 8c5a0b3f6..3ff208eda 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachineTimeConstantReactance.hpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachineTimeConstantReactance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineTimeConstantReactance_factory(); diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachineUserDefined.cpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachineUserDefined.cpp index df2454abf..bd6bfa976 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachineUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachineUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineUserDefined::AsynchronousMachineUserDefined() {} AsynchronousMachineUserDefined::~AsynchronousMachineUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineUserDefined::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineUserDefined::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineUserDefined::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* AsynchronousMachineUserDefined::debugString() const void AsynchronousMachineUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineUserDefined", &AsynchronousMachineUserDefined_factory); + factory_map.emplace("AsynchronousMachineUserDefined", &AsynchronousMachineUserDefined_factory); } void AsynchronousMachineUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineUserDefined.proprietary", &assign_AsynchronousMachineUserDefined_proprietary); + assign_map.emplace("AsynchronousMachineUserDefined.proprietary", &assign_AsynchronousMachineUserDefined_proprietary); } void AsynchronousMachineUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("AsynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics); } void AsynchronousMachineUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineUserDefined.proprietary", &get_AsynchronousMachineUserDefined_proprietary); + get_map.emplace("AsynchronousMachineUserDefined.proprietary", &get_AsynchronousMachineUserDefined_proprietary); } void AsynchronousMachineUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AsynchronousMachineUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineUserDefined::declare() { return BaseClassDefiner(AsynchronousMachineUserDefined::addConstructToMap, AsynchronousMachineUserDefined::addPrimitiveAssignFnsToMap, AsynchronousMachineUserDefined::addClassAssignFnsToMap, AsynchronousMachineUserDefined::debugName); } +std::map AsynchronousMachineUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/AsynchronousMachineUserDefined.hpp b/CGMES_2.4.13_18DEC2013/AsynchronousMachineUserDefined.hpp index 76f2416f2..f9dc049e3 100644 --- a/CGMES_2.4.13_18DEC2013/AsynchronousMachineUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/AsynchronousMachineUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/BaseVoltage.cpp b/CGMES_2.4.13_18DEC2013/BaseVoltage.cpp index b4ba1e5da..a0c59ef18 100644 --- a/CGMES_2.4.13_18DEC2013/BaseVoltage.cpp +++ b/CGMES_2.4.13_18DEC2013/BaseVoltage.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BaseVoltage(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BaseVoltage.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "BaseVoltage.TransformerEnds", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.VoltageLevel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.nominalVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BaseVoltage::BaseVoltage() {} BaseVoltage::~BaseVoltage() {} -static const std::list PossibleProfilesForClass = +const std::list& BaseVoltage::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BaseVoltage::getClassNamespaceUrl() const { - { "cim:BaseVoltage.ConductingEquipment", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:BaseVoltage.TransformerEnds", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.VoltageLevel", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.nominalVoltage", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BaseVoltage::getPossibleProfilesForClass() const +const std::string& BaseVoltage::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BaseVoltage::getPossibleProfilesForAttributes() const +const std::list& BaseVoltage::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BaseVoltage::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BaseVoltage::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BaseVoltage::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_BaseVoltage(BaseClass*, BaseClass*); @@ -159,26 +191,26 @@ const char* BaseVoltage::debugString() const void BaseVoltage::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BaseVoltage", &BaseVoltage_factory); + factory_map.emplace("BaseVoltage", &BaseVoltage_factory); } void BaseVoltage::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BaseVoltage.nominalVoltage", &assign_BaseVoltage_nominalVoltage); + assign_map.emplace("BaseVoltage.nominalVoltage", &assign_BaseVoltage_nominalVoltage); } void BaseVoltage::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BaseVoltage.ConductingEquipment", &assign_BaseVoltage_ConductingEquipment); - assign_map.emplace("cim:BaseVoltage.TopologicalNode", &assign_BaseVoltage_TopologicalNode); - assign_map.emplace("cim:BaseVoltage.TransformerEnds", &assign_BaseVoltage_TransformerEnds); - assign_map.emplace("cim:BaseVoltage.VoltageLevel", &assign_BaseVoltage_VoltageLevel); + assign_map.emplace("BaseVoltage.ConductingEquipment", &assign_BaseVoltage_ConductingEquipment); + assign_map.emplace("BaseVoltage.TopologicalNode", &assign_BaseVoltage_TopologicalNode); + assign_map.emplace("BaseVoltage.TransformerEnds", &assign_BaseVoltage_TransformerEnds); + assign_map.emplace("BaseVoltage.VoltageLevel", &assign_BaseVoltage_VoltageLevel); } void BaseVoltage::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BaseVoltage.nominalVoltage", &get_BaseVoltage_nominalVoltage); + get_map.emplace("BaseVoltage.nominalVoltage", &get_BaseVoltage_nominalVoltage); } void BaseVoltage::addClassGetFnsToMap(std::map& get_map) const @@ -191,11 +223,25 @@ void BaseVoltage::addEnumGetFnsToMap(std::map& get_ma IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool BaseVoltage::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BaseVoltage" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BaseVoltage::declare() { return BaseClassDefiner(BaseVoltage::addConstructToMap, BaseVoltage::addPrimitiveAssignFnsToMap, BaseVoltage::addClassAssignFnsToMap, BaseVoltage::debugName); } +std::map BaseVoltage::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BaseVoltage_factory() diff --git a/CGMES_2.4.13_18DEC2013/BaseVoltage.hpp b/CGMES_2.4.13_18DEC2013/BaseVoltage.hpp index 5e04e5f8a..72d1ad2f2 100644 --- a/CGMES_2.4.13_18DEC2013/BaseVoltage.hpp +++ b/CGMES_2.4.13_18DEC2013/BaseVoltage.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BaseVoltage_factory(); diff --git a/CGMES_2.4.13_18DEC2013/BasicIntervalSchedule.cpp b/CGMES_2.4.13_18DEC2013/BasicIntervalSchedule.cpp index 2daa4c674..86dfa504e 100644 --- a/CGMES_2.4.13_18DEC2013/BasicIntervalSchedule.cpp +++ b/CGMES_2.4.13_18DEC2013/BasicIntervalSchedule.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BasicIntervalSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BasicIntervalSchedule.startTime", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BasicIntervalSchedule.value1Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BasicIntervalSchedule.value2Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BasicIntervalSchedule::BasicIntervalSchedule() {} BasicIntervalSchedule::~BasicIntervalSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& BasicIntervalSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BasicIntervalSchedule::getClassNamespaceUrl() const { - { "cim:BasicIntervalSchedule.startTime", { CGMESProfile::EQ, } }, - { "cim:BasicIntervalSchedule.value1Unit", { CGMESProfile::EQ, } }, - { "cim:BasicIntervalSchedule.value2Unit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BasicIntervalSchedule::getPossibleProfilesForClass() const +const std::string& BasicIntervalSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BasicIntervalSchedule::getPossibleProfilesForAttributes() const +const std::list& BasicIntervalSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BasicIntervalSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BasicIntervalSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BasicIntervalSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BasicIntervalSchedule_startTime(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* BasicIntervalSchedule::debugString() const void BasicIntervalSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BasicIntervalSchedule", &BasicIntervalSchedule_factory); + factory_map.emplace("BasicIntervalSchedule", &BasicIntervalSchedule_factory); } void BasicIntervalSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BasicIntervalSchedule.startTime", &assign_BasicIntervalSchedule_startTime); - assign_map.emplace("cim:BasicIntervalSchedule.value1Unit", &assign_BasicIntervalSchedule_value1Unit); - assign_map.emplace("cim:BasicIntervalSchedule.value2Unit", &assign_BasicIntervalSchedule_value2Unit); + assign_map.emplace("BasicIntervalSchedule.startTime", &assign_BasicIntervalSchedule_startTime); + assign_map.emplace("BasicIntervalSchedule.value1Unit", &assign_BasicIntervalSchedule_value1Unit); + assign_map.emplace("BasicIntervalSchedule.value2Unit", &assign_BasicIntervalSchedule_value2Unit); } void BasicIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,7 +185,7 @@ void BasicIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BasicIntervalSchedule.startTime", &get_BasicIntervalSchedule_startTime); + get_map.emplace("BasicIntervalSchedule.startTime", &get_BasicIntervalSchedule_startTime); } void BasicIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const @@ -164,8 +196,14 @@ void BasicIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:BasicIntervalSchedule.value1Unit", &get_BasicIntervalSchedule_value1Unit); - get_map.emplace("cim:BasicIntervalSchedule.value2Unit", &get_BasicIntervalSchedule_value2Unit); + get_map.emplace("BasicIntervalSchedule.value1Unit", &get_BasicIntervalSchedule_value1Unit); + get_map.emplace("BasicIntervalSchedule.value2Unit", &get_BasicIntervalSchedule_value2Unit); +} + +bool BasicIntervalSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BasicIntervalSchedule" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner BasicIntervalSchedule::declare() @@ -173,6 +211,14 @@ const BaseClassDefiner BasicIntervalSchedule::declare() return BaseClassDefiner(BasicIntervalSchedule::addConstructToMap, BasicIntervalSchedule::addPrimitiveAssignFnsToMap, BasicIntervalSchedule::addClassAssignFnsToMap, BasicIntervalSchedule::debugName); } +std::map BasicIntervalSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BasicIntervalSchedule_factory() diff --git a/CGMES_2.4.13_18DEC2013/BasicIntervalSchedule.hpp b/CGMES_2.4.13_18DEC2013/BasicIntervalSchedule.hpp index 610f2e7d6..cd7deb84a 100644 --- a/CGMES_2.4.13_18DEC2013/BasicIntervalSchedule.hpp +++ b/CGMES_2.4.13_18DEC2013/BasicIntervalSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "UnitSymbol.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BasicIntervalSchedule_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Bay.cpp b/CGMES_2.4.13_18DEC2013/Bay.cpp index bf629aae8..4102a120f 100644 --- a/CGMES_2.4.13_18DEC2013/Bay.cpp +++ b/CGMES_2.4.13_18DEC2013/Bay.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Bay(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Bay.VoltageLevel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Bay::Bay() : VoltageLevel(nullptr) {} Bay::~Bay() {} -static const std::list PossibleProfilesForClass = +const std::list& Bay::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Bay::getClassNamespaceUrl() const { - { "cim:Bay.VoltageLevel", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Bay::getPossibleProfilesForClass() const +const std::string& Bay::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Bay::getPossibleProfilesForAttributes() const +const std::list& Bay::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Bay::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Bay::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Bay::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VoltageLevel_Bays(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* Bay::debugString() const void Bay::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Bay", &Bay_factory); + factory_map.emplace("Bay", &Bay_factory); } void Bay::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void Bay::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Bay.VoltageLevel", &assign_Bay_VoltageLevel); + assign_map.emplace("Bay.VoltageLevel", &assign_Bay_VoltageLevel); } void Bay::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void Bay::addPrimitiveGetFnsToMap(std::map& get_map) void Bay::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Bay.VoltageLevel", &get_Bay_VoltageLevel); + get_map.emplace("Bay.VoltageLevel", &get_Bay_VoltageLevel); } void Bay::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void Bay::addEnumGetFnsToMap(std::map& get_map) const EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Bay::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Bay" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Bay::declare() { return BaseClassDefiner(Bay::addConstructToMap, Bay::addPrimitiveAssignFnsToMap, Bay::addClassAssignFnsToMap, Bay::debugName); } +std::map Bay::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Bay_factory() diff --git a/CGMES_2.4.13_18DEC2013/Bay.hpp b/CGMES_2.4.13_18DEC2013/Bay.hpp index 7d30425e4..2ec947982 100644 --- a/CGMES_2.4.13_18DEC2013/Bay.hpp +++ b/CGMES_2.4.13_18DEC2013/Bay.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Bay_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Breaker.cpp b/CGMES_2.4.13_18DEC2013/Breaker.cpp index 034b1ee93..09c0e6df6 100644 --- a/CGMES_2.4.13_18DEC2013/Breaker.cpp +++ b/CGMES_2.4.13_18DEC2013/Breaker.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Breaker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Breaker::Breaker() {} Breaker::~Breaker() {} -static const std::list PossibleProfilesForClass = +const std::list& Breaker::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Breaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Breaker::getPossibleProfilesForClass() const +const std::string& Breaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Breaker::getPossibleProfilesForAttributes() const +const std::list& Breaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ProtectedSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Breaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Breaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Breaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Breaker::debugName[] = "Breaker"; @@ -47,7 +79,7 @@ const char* Breaker::debugString() const void Breaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Breaker", &Breaker_factory); + factory_map.emplace("Breaker", &Breaker_factory); } void Breaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Breaker::addEnumGetFnsToMap(std::map& get_map) c ProtectedSwitch::addEnumGetFnsToMap(get_map); } +bool Breaker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Breaker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Breaker::declare() { return BaseClassDefiner(Breaker::addConstructToMap, Breaker::addPrimitiveAssignFnsToMap, Breaker::addClassAssignFnsToMap, Breaker::debugName); } +std::map Breaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ProtectedSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Breaker_factory() diff --git a/CGMES_2.4.13_18DEC2013/Breaker.hpp b/CGMES_2.4.13_18DEC2013/Breaker.hpp index 812da0f56..f50099984 100644 --- a/CGMES_2.4.13_18DEC2013/Breaker.hpp +++ b/CGMES_2.4.13_18DEC2013/Breaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ProtectedSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Breaker_factory(); diff --git a/CGMES_2.4.13_18DEC2013/BusNameMarker.cpp b/CGMES_2.4.13_18DEC2013/BusNameMarker.cpp index 24a10645f..42ca46832 100644 --- a/CGMES_2.4.13_18DEC2013/BusNameMarker.cpp +++ b/CGMES_2.4.13_18DEC2013/BusNameMarker.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BusNameMarker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BusNameMarker.ReportingGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BusNameMarker.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BusNameMarker.priority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BusNameMarker::BusNameMarker() : ReportingGroup(nullptr) {} BusNameMarker::~BusNameMarker() {} -static const std::list PossibleProfilesForClass = +const std::list& BusNameMarker::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BusNameMarker::getClassNamespaceUrl() const { - { "cim:BusNameMarker.ReportingGroup", { CGMESProfile::EQ, } }, - { "cim:BusNameMarker.Terminal", { CGMESProfile::EQ, } }, - { "cim:BusNameMarker.priority", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BusNameMarker::getPossibleProfilesForClass() const +const std::string& BusNameMarker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BusNameMarker::getPossibleProfilesForAttributes() const +const std::list& BusNameMarker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BusNameMarker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BusNameMarker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BusNameMarker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReportingGroup_BusNameMarker(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* BusNameMarker::debugString() const void BusNameMarker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BusNameMarker", &BusNameMarker_factory); + factory_map.emplace("BusNameMarker", &BusNameMarker_factory); } void BusNameMarker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusNameMarker.priority", &assign_BusNameMarker_priority); + assign_map.emplace("BusNameMarker.priority", &assign_BusNameMarker_priority); } void BusNameMarker::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusNameMarker.ReportingGroup", &assign_BusNameMarker_ReportingGroup); - assign_map.emplace("cim:BusNameMarker.Terminal", &assign_BusNameMarker_Terminal); + assign_map.emplace("BusNameMarker.ReportingGroup", &assign_BusNameMarker_ReportingGroup); + assign_map.emplace("BusNameMarker.Terminal", &assign_BusNameMarker_Terminal); } void BusNameMarker::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BusNameMarker.priority", &get_BusNameMarker_priority); + get_map.emplace("BusNameMarker.priority", &get_BusNameMarker_priority); } void BusNameMarker::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:BusNameMarker.ReportingGroup", &get_BusNameMarker_ReportingGroup); + get_map.emplace("BusNameMarker.ReportingGroup", &get_BusNameMarker_ReportingGroup); } void BusNameMarker::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void BusNameMarker::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool BusNameMarker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BusNameMarker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BusNameMarker::declare() { return BaseClassDefiner(BusNameMarker::addConstructToMap, BusNameMarker::addPrimitiveAssignFnsToMap, BusNameMarker::addClassAssignFnsToMap, BusNameMarker::debugName); } +std::map BusNameMarker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BusNameMarker_factory() diff --git a/CGMES_2.4.13_18DEC2013/BusNameMarker.hpp b/CGMES_2.4.13_18DEC2013/BusNameMarker.hpp index 7aa5a6d42..fcb3906d1 100644 --- a/CGMES_2.4.13_18DEC2013/BusNameMarker.hpp +++ b/CGMES_2.4.13_18DEC2013/BusNameMarker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BusNameMarker_factory(); diff --git a/CGMES_2.4.13_18DEC2013/BusbarSection.cpp b/CGMES_2.4.13_18DEC2013/BusbarSection.cpp index 2b6048953..29a5e8b28 100644 --- a/CGMES_2.4.13_18DEC2013/BusbarSection.cpp +++ b/CGMES_2.4.13_18DEC2013/BusbarSection.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BusbarSection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BusbarSection.ipMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BusbarSection::BusbarSection() {} BusbarSection::~BusbarSection() {} -static const std::list PossibleProfilesForClass = +const std::list& BusbarSection::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BusbarSection::getClassNamespaceUrl() const { - { "cim:BusbarSection.ipMax", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BusbarSection::getPossibleProfilesForClass() const +const std::string& BusbarSection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BusbarSection::getPossibleProfilesForAttributes() const +const std::list& BusbarSection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Connector::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BusbarSection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BusbarSection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BusbarSection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusbarSection_ipMax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* BusbarSection::debugString() const void BusbarSection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BusbarSection", &BusbarSection_factory); + factory_map.emplace("BusbarSection", &BusbarSection_factory); } void BusbarSection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusbarSection.ipMax", &assign_BusbarSection_ipMax); + assign_map.emplace("BusbarSection.ipMax", &assign_BusbarSection_ipMax); } void BusbarSection::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void BusbarSection::addClassAssignFnsToMap(std::unordered_map& get_map) const { Connector::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BusbarSection.ipMax", &get_BusbarSection_ipMax); + get_map.emplace("BusbarSection.ipMax", &get_BusbarSection_ipMax); } void BusbarSection::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void BusbarSection::addEnumGetFnsToMap(std::map& get_ Connector::addEnumGetFnsToMap(get_map); } +bool BusbarSection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BusbarSection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BusbarSection::declare() { return BaseClassDefiner(BusbarSection::addConstructToMap, BusbarSection::addPrimitiveAssignFnsToMap, BusbarSection::addClassAssignFnsToMap, BusbarSection::debugName); } +std::map BusbarSection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Connector::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BusbarSection_factory() diff --git a/CGMES_2.4.13_18DEC2013/BusbarSection.hpp b/CGMES_2.4.13_18DEC2013/BusbarSection.hpp index 1fa53d221..43d80e3f0 100644 --- a/CGMES_2.4.13_18DEC2013/BusbarSection.hpp +++ b/CGMES_2.4.13_18DEC2013/BusbarSection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Connector.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BusbarSection_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Command.cpp b/CGMES_2.4.13_18DEC2013/Command.cpp index 7a02eb36a..509d9ffa9 100644 --- a/CGMES_2.4.13_18DEC2013/Command.cpp +++ b/CGMES_2.4.13_18DEC2013/Command.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Command(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Command.DiscreteValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.normalValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Command::Command() : DiscreteValue(nullptr), ValueAliasSet(nullptr) {} Command::~Command() {} -static const std::list PossibleProfilesForClass = +const std::list& Command::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Command::getClassNamespaceUrl() const { - { "cim:Command.DiscreteValue", { CGMESProfile::EQ, } }, - { "cim:Command.ValueAliasSet", { CGMESProfile::EQ, } }, - { "cim:Command.normalValue", { CGMESProfile::EQ, } }, - { "cim:Command.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Command::getPossibleProfilesForClass() const +const std::string& Command::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Command::getPossibleProfilesForAttributes() const +const std::list& Command::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Command::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Command::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Command::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscreteValue_Command(BaseClass*, BaseClass*); @@ -172,33 +204,33 @@ const char* Command::debugString() const void Command::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Command", &Command_factory); + factory_map.emplace("Command", &Command_factory); } void Command::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Command.normalValue", &assign_Command_normalValue); - assign_map.emplace("cim:Command.value", &assign_Command_value); + assign_map.emplace("Command.normalValue", &assign_Command_normalValue); + assign_map.emplace("Command.value", &assign_Command_value); } void Command::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Command.DiscreteValue", &assign_Command_DiscreteValue); - assign_map.emplace("cim:Command.ValueAliasSet", &assign_Command_ValueAliasSet); + assign_map.emplace("Command.DiscreteValue", &assign_Command_DiscreteValue); + assign_map.emplace("Command.ValueAliasSet", &assign_Command_ValueAliasSet); } void Command::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Command.normalValue", &get_Command_normalValue); - get_map.emplace("cim:Command.value", &get_Command_value); + get_map.emplace("Command.normalValue", &get_Command_normalValue); + get_map.emplace("Command.value", &get_Command_value); } void Command::addClassGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Command.DiscreteValue", &get_Command_DiscreteValue); - get_map.emplace("cim:Command.ValueAliasSet", &get_Command_ValueAliasSet); + get_map.emplace("Command.DiscreteValue", &get_Command_DiscreteValue); + get_map.emplace("Command.ValueAliasSet", &get_Command_ValueAliasSet); } void Command::addEnumGetFnsToMap(std::map& get_map) const @@ -206,11 +238,25 @@ void Command::addEnumGetFnsToMap(std::map& get_map) c Control::addEnumGetFnsToMap(get_map); } +bool Command::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Command" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Command::declare() { return BaseClassDefiner(Command::addConstructToMap, Command::addPrimitiveAssignFnsToMap, Command::addClassAssignFnsToMap, Command::debugName); } +std::map Command::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Command_factory() diff --git a/CGMES_2.4.13_18DEC2013/Command.hpp b/CGMES_2.4.13_18DEC2013/Command.hpp index e91f39202..5ea7c2d05 100644 --- a/CGMES_2.4.13_18DEC2013/Command.hpp +++ b/CGMES_2.4.13_18DEC2013/Command.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Command_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ConductingEquipment.cpp b/CGMES_2.4.13_18DEC2013/ConductingEquipment.cpp index 77cbe0b92..1d2ce9281 100644 --- a/CGMES_2.4.13_18DEC2013/ConductingEquipment.cpp +++ b/CGMES_2.4.13_18DEC2013/ConductingEquipment.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConductingEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConductingEquipment.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConductingEquipment.SvStatus", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ConductingEquipment.Terminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConductingEquipment::ConductingEquipment() : BaseVoltage(nullptr), SvStatus(nullptr) {} ConductingEquipment::~ConductingEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& ConductingEquipment::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConductingEquipment::getClassNamespaceUrl() const { - { "cim:ConductingEquipment.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:ConductingEquipment.SvStatus", { CGMESProfile::SV, } }, - { "cim:ConductingEquipment.Terminals", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConductingEquipment::getPossibleProfilesForClass() const +const std::string& ConductingEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConductingEquipment::getPossibleProfilesForAttributes() const +const std::list& ConductingEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConductingEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConductingEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConductingEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_ConductingEquipment(BaseClass*, BaseClass*); @@ -123,7 +155,7 @@ const char* ConductingEquipment::debugString() const void ConductingEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConductingEquipment", &ConductingEquipment_factory); + factory_map.emplace("ConductingEquipment", &ConductingEquipment_factory); } void ConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -132,9 +164,9 @@ void ConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConductingEquipment.BaseVoltage", &assign_ConductingEquipment_BaseVoltage); - assign_map.emplace("cim:ConductingEquipment.SvStatus", &assign_ConductingEquipment_SvStatus); - assign_map.emplace("cim:ConductingEquipment.Terminals", &assign_ConductingEquipment_Terminals); + assign_map.emplace("ConductingEquipment.BaseVoltage", &assign_ConductingEquipment_BaseVoltage); + assign_map.emplace("ConductingEquipment.SvStatus", &assign_ConductingEquipment_SvStatus); + assign_map.emplace("ConductingEquipment.Terminals", &assign_ConductingEquipment_Terminals); } void ConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -145,7 +177,7 @@ void ConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConductingEquipment.BaseVoltage", &get_ConductingEquipment_BaseVoltage); + get_map.emplace("ConductingEquipment.BaseVoltage", &get_ConductingEquipment_BaseVoltage); } void ConductingEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -153,11 +185,25 @@ void ConductingEquipment::addEnumGetFnsToMap(std::map Equipment::addEnumGetFnsToMap(get_map); } +bool ConductingEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConductingEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConductingEquipment::declare() { return BaseClassDefiner(ConductingEquipment::addConstructToMap, ConductingEquipment::addPrimitiveAssignFnsToMap, ConductingEquipment::addClassAssignFnsToMap, ConductingEquipment::debugName); } +std::map ConductingEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConductingEquipment_factory() diff --git a/CGMES_2.4.13_18DEC2013/ConductingEquipment.hpp b/CGMES_2.4.13_18DEC2013/ConductingEquipment.hpp index 633a41871..6c8426a9c 100644 --- a/CGMES_2.4.13_18DEC2013/ConductingEquipment.hpp +++ b/CGMES_2.4.13_18DEC2013/ConductingEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConductingEquipment_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Conductor.cpp b/CGMES_2.4.13_18DEC2013/Conductor.cpp index c3579e253..91e37ed92 100644 --- a/CGMES_2.4.13_18DEC2013/Conductor.cpp +++ b/CGMES_2.4.13_18DEC2013/Conductor.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Conductor(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Conductor.length", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Conductor::Conductor() {} Conductor::~Conductor() {} -static const std::list PossibleProfilesForClass = +const std::list& Conductor::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Conductor::getClassNamespaceUrl() const { - { "cim:Conductor.length", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Conductor::getPossibleProfilesForClass() const +const std::string& Conductor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Conductor::getPossibleProfilesForAttributes() const +const std::list& Conductor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Conductor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Conductor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Conductor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Conductor_length(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* Conductor::debugString() const void Conductor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Conductor", &Conductor_factory); + factory_map.emplace("Conductor", &Conductor_factory); } void Conductor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Conductor.length", &assign_Conductor_length); + assign_map.emplace("Conductor.length", &assign_Conductor_length); } void Conductor::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void Conductor::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Conductor.length", &get_Conductor_length); + get_map.emplace("Conductor.length", &get_Conductor_length); } void Conductor::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void Conductor::addEnumGetFnsToMap(std::map& get_map) ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Conductor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Conductor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Conductor::declare() { return BaseClassDefiner(Conductor::addConstructToMap, Conductor::addPrimitiveAssignFnsToMap, Conductor::addClassAssignFnsToMap, Conductor::debugName); } +std::map Conductor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Conductor_factory() diff --git a/CGMES_2.4.13_18DEC2013/Conductor.hpp b/CGMES_2.4.13_18DEC2013/Conductor.hpp index cb84bd42d..2982c6862 100644 --- a/CGMES_2.4.13_18DEC2013/Conductor.hpp +++ b/CGMES_2.4.13_18DEC2013/Conductor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Length.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Conductor_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ConformLoad.cpp b/CGMES_2.4.13_18DEC2013/ConformLoad.cpp index 8e91acf2f..48098b8f5 100644 --- a/CGMES_2.4.13_18DEC2013/ConformLoad.cpp +++ b/CGMES_2.4.13_18DEC2013/ConformLoad.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoad(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoad.LoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoad::ConformLoad() : LoadGroup(nullptr) {} ConformLoad::~ConformLoad() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoad::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoad::getClassNamespaceUrl() const { - { "cim:ConformLoad.LoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoad::getPossibleProfilesForClass() const +const std::string& ConformLoad::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoad::getPossibleProfilesForAttributes() const +const std::list& ConformLoad::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoad::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoad::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoad::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadGroup_EnergyConsumers(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* ConformLoad::debugString() const void ConformLoad::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoad", &ConformLoad_factory); + factory_map.emplace("ConformLoad", &ConformLoad_factory); } void ConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void ConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoad.LoadGroup", &assign_ConformLoad_LoadGroup); + assign_map.emplace("ConformLoad.LoadGroup", &assign_ConformLoad_LoadGroup); } void ConformLoad::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void ConformLoad::addPrimitiveGetFnsToMap(std::map& g void ConformLoad::addClassGetFnsToMap(std::map& get_map) const { EnergyConsumer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConformLoad.LoadGroup", &get_ConformLoad_LoadGroup); + get_map.emplace("ConformLoad.LoadGroup", &get_ConformLoad_LoadGroup); } void ConformLoad::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void ConformLoad::addEnumGetFnsToMap(std::map& get_ma EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool ConformLoad::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoad" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoad::declare() { return BaseClassDefiner(ConformLoad::addConstructToMap, ConformLoad::addPrimitiveAssignFnsToMap, ConformLoad::addClassAssignFnsToMap, ConformLoad::debugName); } +std::map ConformLoad::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoad_factory() diff --git a/CGMES_2.4.13_18DEC2013/ConformLoad.hpp b/CGMES_2.4.13_18DEC2013/ConformLoad.hpp index 0448c6f96..7a3c55f03 100644 --- a/CGMES_2.4.13_18DEC2013/ConformLoad.hpp +++ b/CGMES_2.4.13_18DEC2013/ConformLoad.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoad_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ConformLoadGroup.cpp b/CGMES_2.4.13_18DEC2013/ConformLoadGroup.cpp index c8d5c15fa..2518ece15 100644 --- a/CGMES_2.4.13_18DEC2013/ConformLoadGroup.cpp +++ b/CGMES_2.4.13_18DEC2013/ConformLoadGroup.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoadGroup.ConformLoadSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConformLoadGroup.EnergyConsumers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoadGroup::ConformLoadGroup() {} ConformLoadGroup::~ConformLoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoadGroup::getClassNamespaceUrl() const { - { "cim:ConformLoadGroup.ConformLoadSchedules", { CGMESProfile::EQ, } }, - { "cim:ConformLoadGroup.EnergyConsumers", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoadGroup::getPossibleProfilesForClass() const +const std::string& ConformLoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoadGroup::getPossibleProfilesForAttributes() const +const std::list& ConformLoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadGroup::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadSchedule_ConformLoadGroup(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* ConformLoadGroup::debugString() const void ConformLoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoadGroup", &ConformLoadGroup_factory); + factory_map.emplace("ConformLoadGroup", &ConformLoadGroup_factory); } void ConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void ConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoadGroup.ConformLoadSchedules", &assign_ConformLoadGroup_ConformLoadSchedules); - assign_map.emplace("cim:ConformLoadGroup.EnergyConsumers", &assign_ConformLoadGroup_EnergyConsumers); + assign_map.emplace("ConformLoadGroup.ConformLoadSchedules", &assign_ConformLoadGroup_ConformLoadSchedules); + assign_map.emplace("ConformLoadGroup.EnergyConsumers", &assign_ConformLoadGroup_EnergyConsumers); } void ConformLoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void ConformLoadGroup::addEnumGetFnsToMap(std::map& g LoadGroup::addEnumGetFnsToMap(get_map); } +bool ConformLoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoadGroup::declare() { return BaseClassDefiner(ConformLoadGroup::addConstructToMap, ConformLoadGroup::addPrimitiveAssignFnsToMap, ConformLoadGroup::addClassAssignFnsToMap, ConformLoadGroup::debugName); } +std::map ConformLoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadGroup::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoadGroup_factory() diff --git a/CGMES_2.4.13_18DEC2013/ConformLoadGroup.hpp b/CGMES_2.4.13_18DEC2013/ConformLoadGroup.hpp index 5e59426da..7a1f564e0 100644 --- a/CGMES_2.4.13_18DEC2013/ConformLoadGroup.hpp +++ b/CGMES_2.4.13_18DEC2013/ConformLoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadGroup.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoadGroup_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ConformLoadSchedule.cpp b/CGMES_2.4.13_18DEC2013/ConformLoadSchedule.cpp index 51bb1e07b..bfcf56e0e 100644 --- a/CGMES_2.4.13_18DEC2013/ConformLoadSchedule.cpp +++ b/CGMES_2.4.13_18DEC2013/ConformLoadSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoadSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoadSchedule.ConformLoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoadSchedule::ConformLoadSchedule() : ConformLoadGroup(nullptr) {} ConformLoadSchedule::~ConformLoadSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoadSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoadSchedule::getClassNamespaceUrl() const { - { "cim:ConformLoadSchedule.ConformLoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoadSchedule::getPossibleProfilesForClass() const +const std::string& ConformLoadSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoadSchedule::getPossibleProfilesForAttributes() const +const std::list& ConformLoadSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoadSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoadSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoadSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadGroup_ConformLoadSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* ConformLoadSchedule::debugString() const void ConformLoadSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoadSchedule", &ConformLoadSchedule_factory); + factory_map.emplace("ConformLoadSchedule", &ConformLoadSchedule_factory); } void ConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void ConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoadSchedule.ConformLoadGroup", &assign_ConformLoadSchedule_ConformLoadGroup); + assign_map.emplace("ConformLoadSchedule.ConformLoadGroup", &assign_ConformLoadSchedule_ConformLoadGroup); } void ConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void ConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConformLoadSchedule.ConformLoadGroup", &get_ConformLoadSchedule_ConformLoadGroup); + get_map.emplace("ConformLoadSchedule.ConformLoadGroup", &get_ConformLoadSchedule_ConformLoadGroup); } void ConformLoadSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void ConformLoadSchedule::addEnumGetFnsToMap(std::map SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool ConformLoadSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoadSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoadSchedule::declare() { return BaseClassDefiner(ConformLoadSchedule::addConstructToMap, ConformLoadSchedule::addPrimitiveAssignFnsToMap, ConformLoadSchedule::addClassAssignFnsToMap, ConformLoadSchedule::debugName); } +std::map ConformLoadSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoadSchedule_factory() diff --git a/CGMES_2.4.13_18DEC2013/ConformLoadSchedule.hpp b/CGMES_2.4.13_18DEC2013/ConformLoadSchedule.hpp index 72fd6f6af..a4b404d3f 100644 --- a/CGMES_2.4.13_18DEC2013/ConformLoadSchedule.hpp +++ b/CGMES_2.4.13_18DEC2013/ConformLoadSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoadSchedule_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ConnectivityNode.cpp b/CGMES_2.4.13_18DEC2013/ConnectivityNode.cpp index a387855d6..f62ddd512 100644 --- a/CGMES_2.4.13_18DEC2013/ConnectivityNode.cpp +++ b/CGMES_2.4.13_18DEC2013/ConnectivityNode.cpp @@ -14,44 +14,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConnectivityNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConnectivityNode.ConnectivityNodeContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "ConnectivityNode.Terminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConnectivityNode.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "ConnectivityNode.boundaryPoint", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + }; + return ClassAttrDetailsMap; +} + ConnectivityNode::ConnectivityNode() : ConnectivityNodeContainer(nullptr), TopologicalNode(nullptr) {} ConnectivityNode::~ConnectivityNode() {} -static const std::list PossibleProfilesForClass = +const std::list& ConnectivityNode::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConnectivityNode::getClassNamespaceUrl() const { - { "cim:ConnectivityNode.ConnectivityNodeContainer", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:ConnectivityNode.Terminals", { CGMESProfile::EQ, } }, - { "cim:ConnectivityNode.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:ConnectivityNode.boundaryPoint", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndIsoCode", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndName", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndNameTso", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndIsoCode", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndName", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndNameTso", { CGMESProfile::EQ_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConnectivityNode::getPossibleProfilesForClass() const +const std::string& ConnectivityNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConnectivityNode::getPossibleProfilesForAttributes() const +const std::list& ConnectivityNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConnectivityNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConnectivityNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConnectivityNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConnectivityNodeContainer_ConnectivityNodes(BaseClass*, BaseClass*); @@ -345,44 +377,44 @@ const char* ConnectivityNode::debugString() const void ConnectivityNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConnectivityNode", &ConnectivityNode_factory); + factory_map.emplace("ConnectivityNode", &ConnectivityNode_factory); } void ConnectivityNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNode.boundaryPoint", &assign_ConnectivityNode_boundaryPoint); - assign_map.emplace("cim:ConnectivityNode.fromEndIsoCode", &assign_ConnectivityNode_fromEndIsoCode); - assign_map.emplace("cim:ConnectivityNode.fromEndName", &assign_ConnectivityNode_fromEndName); - assign_map.emplace("cim:ConnectivityNode.fromEndNameTso", &assign_ConnectivityNode_fromEndNameTso); - assign_map.emplace("cim:ConnectivityNode.toEndIsoCode", &assign_ConnectivityNode_toEndIsoCode); - assign_map.emplace("cim:ConnectivityNode.toEndName", &assign_ConnectivityNode_toEndName); - assign_map.emplace("cim:ConnectivityNode.toEndNameTso", &assign_ConnectivityNode_toEndNameTso); + assign_map.emplace("ConnectivityNode.boundaryPoint", &assign_ConnectivityNode_boundaryPoint); + assign_map.emplace("ConnectivityNode.fromEndIsoCode", &assign_ConnectivityNode_fromEndIsoCode); + assign_map.emplace("ConnectivityNode.fromEndName", &assign_ConnectivityNode_fromEndName); + assign_map.emplace("ConnectivityNode.fromEndNameTso", &assign_ConnectivityNode_fromEndNameTso); + assign_map.emplace("ConnectivityNode.toEndIsoCode", &assign_ConnectivityNode_toEndIsoCode); + assign_map.emplace("ConnectivityNode.toEndName", &assign_ConnectivityNode_toEndName); + assign_map.emplace("ConnectivityNode.toEndNameTso", &assign_ConnectivityNode_toEndNameTso); } void ConnectivityNode::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNode.ConnectivityNodeContainer", &assign_ConnectivityNode_ConnectivityNodeContainer); - assign_map.emplace("cim:ConnectivityNode.Terminals", &assign_ConnectivityNode_Terminals); - assign_map.emplace("cim:ConnectivityNode.TopologicalNode", &assign_ConnectivityNode_TopologicalNode); + assign_map.emplace("ConnectivityNode.ConnectivityNodeContainer", &assign_ConnectivityNode_ConnectivityNodeContainer); + assign_map.emplace("ConnectivityNode.Terminals", &assign_ConnectivityNode_Terminals); + assign_map.emplace("ConnectivityNode.TopologicalNode", &assign_ConnectivityNode_TopologicalNode); } void ConnectivityNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ConnectivityNode.boundaryPoint", &get_ConnectivityNode_boundaryPoint); - get_map.emplace("cim:ConnectivityNode.fromEndIsoCode", &get_ConnectivityNode_fromEndIsoCode); - get_map.emplace("cim:ConnectivityNode.fromEndName", &get_ConnectivityNode_fromEndName); - get_map.emplace("cim:ConnectivityNode.fromEndNameTso", &get_ConnectivityNode_fromEndNameTso); - get_map.emplace("cim:ConnectivityNode.toEndIsoCode", &get_ConnectivityNode_toEndIsoCode); - get_map.emplace("cim:ConnectivityNode.toEndName", &get_ConnectivityNode_toEndName); - get_map.emplace("cim:ConnectivityNode.toEndNameTso", &get_ConnectivityNode_toEndNameTso); + get_map.emplace("ConnectivityNode.boundaryPoint", &get_ConnectivityNode_boundaryPoint); + get_map.emplace("ConnectivityNode.fromEndIsoCode", &get_ConnectivityNode_fromEndIsoCode); + get_map.emplace("ConnectivityNode.fromEndName", &get_ConnectivityNode_fromEndName); + get_map.emplace("ConnectivityNode.fromEndNameTso", &get_ConnectivityNode_fromEndNameTso); + get_map.emplace("ConnectivityNode.toEndIsoCode", &get_ConnectivityNode_toEndIsoCode); + get_map.emplace("ConnectivityNode.toEndName", &get_ConnectivityNode_toEndName); + get_map.emplace("ConnectivityNode.toEndNameTso", &get_ConnectivityNode_toEndNameTso); } void ConnectivityNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConnectivityNode.ConnectivityNodeContainer", &get_ConnectivityNode_ConnectivityNodeContainer); - get_map.emplace("cim:ConnectivityNode.TopologicalNode", &get_ConnectivityNode_TopologicalNode); + get_map.emplace("ConnectivityNode.ConnectivityNodeContainer", &get_ConnectivityNode_ConnectivityNodeContainer); + get_map.emplace("ConnectivityNode.TopologicalNode", &get_ConnectivityNode_TopologicalNode); } void ConnectivityNode::addEnumGetFnsToMap(std::map& get_map) const @@ -390,11 +422,25 @@ void ConnectivityNode::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ConnectivityNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConnectivityNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConnectivityNode::declare() { return BaseClassDefiner(ConnectivityNode::addConstructToMap, ConnectivityNode::addPrimitiveAssignFnsToMap, ConnectivityNode::addClassAssignFnsToMap, ConnectivityNode::debugName); } +std::map ConnectivityNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConnectivityNode_factory() diff --git a/CGMES_2.4.13_18DEC2013/ConnectivityNode.hpp b/CGMES_2.4.13_18DEC2013/ConnectivityNode.hpp index d6b9bed98..34241bcbb 100644 --- a/CGMES_2.4.13_18DEC2013/ConnectivityNode.hpp +++ b/CGMES_2.4.13_18DEC2013/ConnectivityNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "String.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConnectivityNode_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ConnectivityNodeContainer.cpp b/CGMES_2.4.13_18DEC2013/ConnectivityNodeContainer.cpp index 6e3459df3..be24be472 100644 --- a/CGMES_2.4.13_18DEC2013/ConnectivityNodeContainer.cpp +++ b/CGMES_2.4.13_18DEC2013/ConnectivityNodeContainer.cpp @@ -13,36 +13,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConnectivityNodeContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConnectivityNodeContainer.ConnectivityNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "ConnectivityNodeContainer.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ConnectivityNodeContainer::ConnectivityNodeContainer() {} ConnectivityNodeContainer::~ConnectivityNodeContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& ConnectivityNodeContainer::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConnectivityNodeContainer::getClassNamespaceUrl() const { - { "cim:ConnectivityNodeContainer.ConnectivityNodes", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:ConnectivityNodeContainer.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConnectivityNodeContainer::getPossibleProfilesForClass() const +const std::string& ConnectivityNodeContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConnectivityNodeContainer::getPossibleProfilesForAttributes() const +const std::list& ConnectivityNodeContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConnectivityNodeContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConnectivityNodeContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConnectivityNodeContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConnectivityNode_ConnectivityNodeContainer(BaseClass*, BaseClass*); @@ -89,7 +121,7 @@ const char* ConnectivityNodeContainer::debugString() const void ConnectivityNodeContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConnectivityNodeContainer", &ConnectivityNodeContainer_factory); + factory_map.emplace("ConnectivityNodeContainer", &ConnectivityNodeContainer_factory); } void ConnectivityNodeContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -98,8 +130,8 @@ void ConnectivityNodeContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNodeContainer.ConnectivityNodes", &assign_ConnectivityNodeContainer_ConnectivityNodes); - assign_map.emplace("cim:ConnectivityNodeContainer.TopologicalNode", &assign_ConnectivityNodeContainer_TopologicalNode); + assign_map.emplace("ConnectivityNodeContainer.ConnectivityNodes", &assign_ConnectivityNodeContainer_ConnectivityNodes); + assign_map.emplace("ConnectivityNodeContainer.TopologicalNode", &assign_ConnectivityNodeContainer_TopologicalNode); } void ConnectivityNodeContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,11 +149,25 @@ void ConnectivityNodeContainer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ConnectivityNodeContainer::declare() { return BaseClassDefiner(ConnectivityNodeContainer::addConstructToMap, ConnectivityNodeContainer::addPrimitiveAssignFnsToMap, ConnectivityNodeContainer::addClassAssignFnsToMap, ConnectivityNodeContainer::debugName); } +std::map ConnectivityNodeContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConnectivityNodeContainer_factory() diff --git a/CGMES_2.4.13_18DEC2013/ConnectivityNodeContainer.hpp b/CGMES_2.4.13_18DEC2013/ConnectivityNodeContainer.hpp index 4ab1c963f..da93c0b70 100644 --- a/CGMES_2.4.13_18DEC2013/ConnectivityNodeContainer.hpp +++ b/CGMES_2.4.13_18DEC2013/ConnectivityNodeContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConnectivityNodeContainer_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Connector.cpp b/CGMES_2.4.13_18DEC2013/Connector.cpp index 207f85553..a5af87a13 100644 --- a/CGMES_2.4.13_18DEC2013/Connector.cpp +++ b/CGMES_2.4.13_18DEC2013/Connector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Connector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Connector::Connector() {} Connector::~Connector() {} -static const std::list PossibleProfilesForClass = +const std::list& Connector::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Connector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Connector::getPossibleProfilesForClass() const +const std::string& Connector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Connector::getPossibleProfilesForAttributes() const +const std::list& Connector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Connector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Connector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Connector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Connector::debugName[] = "Connector"; @@ -47,7 +79,7 @@ const char* Connector::debugString() const void Connector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Connector", &Connector_factory); + factory_map.emplace("Connector", &Connector_factory); } void Connector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Connector::addEnumGetFnsToMap(std::map& get_map) ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Connector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Connector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Connector::declare() { return BaseClassDefiner(Connector::addConstructToMap, Connector::addPrimitiveAssignFnsToMap, Connector::addClassAssignFnsToMap, Connector::debugName); } +std::map Connector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Connector_factory() diff --git a/CGMES_2.4.13_18DEC2013/Connector.hpp b/CGMES_2.4.13_18DEC2013/Connector.hpp index 0c319c834..086ce0513 100644 --- a/CGMES_2.4.13_18DEC2013/Connector.hpp +++ b/CGMES_2.4.13_18DEC2013/Connector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Connector_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Control.cpp b/CGMES_2.4.13_18DEC2013/Control.cpp index 9e90ef372..f8558e3f5 100644 --- a/CGMES_2.4.13_18DEC2013/Control.cpp +++ b/CGMES_2.4.13_18DEC2013/Control.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Control(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Control.PowerSystemResource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.controlType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.operationInProgress", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.timeStamp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.unitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.unitSymbol", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Control::Control() : PowerSystemResource(nullptr) {} Control::~Control() {} -static const std::list PossibleProfilesForClass = +const std::list& Control::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Control::getClassNamespaceUrl() const { - { "cim:Control.PowerSystemResource", { CGMESProfile::EQ, } }, - { "cim:Control.controlType", { CGMESProfile::EQ, } }, - { "cim:Control.operationInProgress", { CGMESProfile::EQ, } }, - { "cim:Control.timeStamp", { CGMESProfile::EQ, } }, - { "cim:Control.unitMultiplier", { CGMESProfile::EQ, } }, - { "cim:Control.unitSymbol", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Control::getPossibleProfilesForClass() const +const std::string& Control::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Control::getPossibleProfilesForAttributes() const +const std::list& Control::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Control::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Control::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Control::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerSystemResource_Controls(BaseClass*, BaseClass*); @@ -229,42 +261,48 @@ const char* Control::debugString() const void Control::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Control", &Control_factory); + factory_map.emplace("Control", &Control_factory); } void Control::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Control.controlType", &assign_Control_controlType); - assign_map.emplace("cim:Control.operationInProgress", &assign_Control_operationInProgress); - assign_map.emplace("cim:Control.timeStamp", &assign_Control_timeStamp); - assign_map.emplace("cim:Control.unitMultiplier", &assign_Control_unitMultiplier); - assign_map.emplace("cim:Control.unitSymbol", &assign_Control_unitSymbol); + assign_map.emplace("Control.controlType", &assign_Control_controlType); + assign_map.emplace("Control.operationInProgress", &assign_Control_operationInProgress); + assign_map.emplace("Control.timeStamp", &assign_Control_timeStamp); + assign_map.emplace("Control.unitMultiplier", &assign_Control_unitMultiplier); + assign_map.emplace("Control.unitSymbol", &assign_Control_unitSymbol); } void Control::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Control.PowerSystemResource", &assign_Control_PowerSystemResource); + assign_map.emplace("Control.PowerSystemResource", &assign_Control_PowerSystemResource); } void Control::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Control.controlType", &get_Control_controlType); - get_map.emplace("cim:Control.operationInProgress", &get_Control_operationInProgress); - get_map.emplace("cim:Control.timeStamp", &get_Control_timeStamp); + get_map.emplace("Control.controlType", &get_Control_controlType); + get_map.emplace("Control.operationInProgress", &get_Control_operationInProgress); + get_map.emplace("Control.timeStamp", &get_Control_timeStamp); } void Control::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Control.PowerSystemResource", &get_Control_PowerSystemResource); + get_map.emplace("Control.PowerSystemResource", &get_Control_PowerSystemResource); } void Control::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Control.unitMultiplier", &get_Control_unitMultiplier); - get_map.emplace("cim:Control.unitSymbol", &get_Control_unitSymbol); + get_map.emplace("Control.unitMultiplier", &get_Control_unitMultiplier); + get_map.emplace("Control.unitSymbol", &get_Control_unitSymbol); +} + +bool Control::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Control" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Control::declare() @@ -272,6 +310,14 @@ const BaseClassDefiner Control::declare() return BaseClassDefiner(Control::addConstructToMap, Control::addPrimitiveAssignFnsToMap, Control::addClassAssignFnsToMap, Control::debugName); } +std::map Control::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Control_factory() diff --git a/CGMES_2.4.13_18DEC2013/Control.hpp b/CGMES_2.4.13_18DEC2013/Control.hpp index f0072bfae..ae6bf23df 100644 --- a/CGMES_2.4.13_18DEC2013/Control.hpp +++ b/CGMES_2.4.13_18DEC2013/Control.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "DateTime.hpp" #include "String.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Control_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ControlArea.cpp b/CGMES_2.4.13_18DEC2013/ControlArea.cpp index 21c90385d..3771a6376 100644 --- a/CGMES_2.4.13_18DEC2013/ControlArea.cpp +++ b/CGMES_2.4.13_18DEC2013/ControlArea.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ControlArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ControlArea.ControlAreaGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.EnergyArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.TieFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.netInterchange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ControlArea.pTolerance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ControlArea.type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ControlArea::ControlArea() : EnergyArea(nullptr) {} ControlArea::~ControlArea() {} -static const std::list PossibleProfilesForClass = +const std::list& ControlArea::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ControlArea::getClassNamespaceUrl() const { - { "cim:ControlArea.ControlAreaGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:ControlArea.EnergyArea", { CGMESProfile::EQ, } }, - { "cim:ControlArea.TieFlow", { CGMESProfile::EQ, } }, - { "cim:ControlArea.netInterchange", { CGMESProfile::SSH, } }, - { "cim:ControlArea.pTolerance", { CGMESProfile::SSH, } }, - { "cim:ControlArea.type", { CGMESProfile::EQ, } }, -}; - -std::list -ControlArea::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& ControlArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ControlArea::getPossibleProfilesForAttributes() const +const std::list& ControlArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ControlArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ControlArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ControlArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlAreaGeneratingUnit_ControlArea(BaseClass*, BaseClass*); @@ -210,40 +242,46 @@ const char* ControlArea::debugString() const void ControlArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ControlArea", &ControlArea_factory); + factory_map.emplace("ControlArea", &ControlArea_factory); } void ControlArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlArea.netInterchange", &assign_ControlArea_netInterchange); - assign_map.emplace("cim:ControlArea.pTolerance", &assign_ControlArea_pTolerance); - assign_map.emplace("cim:ControlArea.type", &assign_ControlArea_type); + assign_map.emplace("ControlArea.netInterchange", &assign_ControlArea_netInterchange); + assign_map.emplace("ControlArea.pTolerance", &assign_ControlArea_pTolerance); + assign_map.emplace("ControlArea.type", &assign_ControlArea_type); } void ControlArea::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlArea.ControlAreaGeneratingUnit", &assign_ControlArea_ControlAreaGeneratingUnit); - assign_map.emplace("cim:ControlArea.EnergyArea", &assign_ControlArea_EnergyArea); - assign_map.emplace("cim:ControlArea.TieFlow", &assign_ControlArea_TieFlow); + assign_map.emplace("ControlArea.ControlAreaGeneratingUnit", &assign_ControlArea_ControlAreaGeneratingUnit); + assign_map.emplace("ControlArea.EnergyArea", &assign_ControlArea_EnergyArea); + assign_map.emplace("ControlArea.TieFlow", &assign_ControlArea_TieFlow); } void ControlArea::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.netInterchange", &get_ControlArea_netInterchange); - get_map.emplace("cim:ControlArea.pTolerance", &get_ControlArea_pTolerance); + get_map.emplace("ControlArea.netInterchange", &get_ControlArea_netInterchange); + get_map.emplace("ControlArea.pTolerance", &get_ControlArea_pTolerance); } void ControlArea::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.EnergyArea", &get_ControlArea_EnergyArea); + get_map.emplace("ControlArea.EnergyArea", &get_ControlArea_EnergyArea); } void ControlArea::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.type", &get_ControlArea_type); + get_map.emplace("ControlArea.type", &get_ControlArea_type); +} + +bool ControlArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ControlArea" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ControlArea::declare() @@ -251,6 +289,14 @@ const BaseClassDefiner ControlArea::declare() return BaseClassDefiner(ControlArea::addConstructToMap, ControlArea::addPrimitiveAssignFnsToMap, ControlArea::addClassAssignFnsToMap, ControlArea::debugName); } +std::map ControlArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ControlArea_factory() diff --git a/CGMES_2.4.13_18DEC2013/ControlArea.hpp b/CGMES_2.4.13_18DEC2013/ControlArea.hpp index 3231605bd..08d4f547e 100644 --- a/CGMES_2.4.13_18DEC2013/ControlArea.hpp +++ b/CGMES_2.4.13_18DEC2013/ControlArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ControlAreaTypeKind.hpp" @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ControlArea_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ControlAreaGeneratingUnit.cpp b/CGMES_2.4.13_18DEC2013/ControlAreaGeneratingUnit.cpp index 907553a54..5bc33cacb 100644 --- a/CGMES_2.4.13_18DEC2013/ControlAreaGeneratingUnit.cpp +++ b/CGMES_2.4.13_18DEC2013/ControlAreaGeneratingUnit.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ControlAreaGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ControlAreaGeneratingUnit.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlAreaGeneratingUnit.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ControlAreaGeneratingUnit::ControlAreaGeneratingUnit() : ControlArea(nullptr), GeneratingUnit(nullptr) {} ControlAreaGeneratingUnit::~ControlAreaGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& ControlAreaGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ControlAreaGeneratingUnit::getClassNamespaceUrl() const { - { "cim:ControlAreaGeneratingUnit.ControlArea", { CGMESProfile::EQ, } }, - { "cim:ControlAreaGeneratingUnit.GeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ControlAreaGeneratingUnit::getPossibleProfilesForClass() const +const std::string& ControlAreaGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ControlAreaGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& ControlAreaGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ControlAreaGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ControlAreaGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ControlAreaGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_ControlAreaGeneratingUnit(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* ControlAreaGeneratingUnit::debugString() const void ControlAreaGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ControlAreaGeneratingUnit", &ControlAreaGeneratingUnit_factory); + factory_map.emplace("ControlAreaGeneratingUnit", &ControlAreaGeneratingUnit_factory); } void ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlAreaGeneratingUnit.ControlArea", &assign_ControlAreaGeneratingUnit_ControlArea); - assign_map.emplace("cim:ControlAreaGeneratingUnit.GeneratingUnit", &assign_ControlAreaGeneratingUnit_GeneratingUnit); + assign_map.emplace("ControlAreaGeneratingUnit.ControlArea", &assign_ControlAreaGeneratingUnit_ControlArea); + assign_map.emplace("ControlAreaGeneratingUnit.GeneratingUnit", &assign_ControlAreaGeneratingUnit_GeneratingUnit); } void ControlAreaGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void ControlAreaGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ControlAreaGeneratingUnit.ControlArea", &get_ControlAreaGeneratingUnit_ControlArea); - get_map.emplace("cim:ControlAreaGeneratingUnit.GeneratingUnit", &get_ControlAreaGeneratingUnit_GeneratingUnit); + get_map.emplace("ControlAreaGeneratingUnit.ControlArea", &get_ControlAreaGeneratingUnit_ControlArea); + get_map.emplace("ControlAreaGeneratingUnit.GeneratingUnit", &get_ControlAreaGeneratingUnit_GeneratingUnit); } void ControlAreaGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void ControlAreaGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ControlAreaGeneratingUnit::declare() { return BaseClassDefiner(ControlAreaGeneratingUnit::addConstructToMap, ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap, ControlAreaGeneratingUnit::addClassAssignFnsToMap, ControlAreaGeneratingUnit::debugName); } +std::map ControlAreaGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ControlAreaGeneratingUnit_factory() diff --git a/CGMES_2.4.13_18DEC2013/ControlAreaGeneratingUnit.hpp b/CGMES_2.4.13_18DEC2013/ControlAreaGeneratingUnit.hpp index 5dea42c34..cf20122dd 100644 --- a/CGMES_2.4.13_18DEC2013/ControlAreaGeneratingUnit.hpp +++ b/CGMES_2.4.13_18DEC2013/ControlAreaGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ControlAreaGeneratingUnit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/CoordinateSystem.cpp b/CGMES_2.4.13_18DEC2013/CoordinateSystem.cpp index 56ef9a8b4..888bdb68f 100644 --- a/CGMES_2.4.13_18DEC2013/CoordinateSystem.cpp +++ b/CGMES_2.4.13_18DEC2013/CoordinateSystem.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CoordinateSystem(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CoordinateSystem.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "CoordinateSystem.crsUrn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + CoordinateSystem::CoordinateSystem() {} CoordinateSystem::~CoordinateSystem() {} -static const std::list PossibleProfilesForClass = +const std::list& CoordinateSystem::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CoordinateSystem::getClassNamespaceUrl() const { - { "cim:CoordinateSystem.Location", { CGMESProfile::GL, } }, - { "cim:CoordinateSystem.crsUrn", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CoordinateSystem::getPossibleProfilesForClass() const +const std::string& CoordinateSystem::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CoordinateSystem::getPossibleProfilesForAttributes() const +const std::list& CoordinateSystem::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CoordinateSystem::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CoordinateSystem::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CoordinateSystem::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Location_CoordinateSystem(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* CoordinateSystem::debugString() const void CoordinateSystem::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CoordinateSystem", &CoordinateSystem_factory); + factory_map.emplace("CoordinateSystem", &CoordinateSystem_factory); } void CoordinateSystem::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CoordinateSystem.crsUrn", &assign_CoordinateSystem_crsUrn); + assign_map.emplace("CoordinateSystem.crsUrn", &assign_CoordinateSystem_crsUrn); } void CoordinateSystem::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CoordinateSystem.Location", &assign_CoordinateSystem_Location); + assign_map.emplace("CoordinateSystem.Location", &assign_CoordinateSystem_Location); } void CoordinateSystem::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CoordinateSystem.crsUrn", &get_CoordinateSystem_crsUrn); + get_map.emplace("CoordinateSystem.crsUrn", &get_CoordinateSystem_crsUrn); } void CoordinateSystem::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void CoordinateSystem::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool CoordinateSystem::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CoordinateSystem" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CoordinateSystem::declare() { return BaseClassDefiner(CoordinateSystem::addConstructToMap, CoordinateSystem::addPrimitiveAssignFnsToMap, CoordinateSystem::addClassAssignFnsToMap, CoordinateSystem::debugName); } +std::map CoordinateSystem::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CoordinateSystem_factory() diff --git a/CGMES_2.4.13_18DEC2013/CoordinateSystem.hpp b/CGMES_2.4.13_18DEC2013/CoordinateSystem.hpp index 46172486a..0cbe149f6 100644 --- a/CGMES_2.4.13_18DEC2013/CoordinateSystem.hpp +++ b/CGMES_2.4.13_18DEC2013/CoordinateSystem.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CoordinateSystem_factory(); diff --git a/CGMES_2.4.13_18DEC2013/CsConverter.cpp b/CGMES_2.4.13_18DEC2013/CsConverter.cpp index 32000a24e..b1113045a 100644 --- a/CGMES_2.4.13_18DEC2013/CsConverter.cpp +++ b/CGMES_2.4.13_18DEC2013/CsConverter.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CsConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CsConverter.alpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "CsConverter.gamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "CsConverter.maxAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.maxGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.maxIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.operatingMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.pPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.ratedIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.targetAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.targetGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.targetIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + CsConverter::CsConverter() {} CsConverter::~CsConverter() {} -static const std::list PossibleProfilesForClass = +const std::list& CsConverter::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CsConverter::getClassNamespaceUrl() const { - { "cim:CsConverter.alpha", { CGMESProfile::SV, } }, - { "cim:CsConverter.gamma", { CGMESProfile::SV, } }, - { "cim:CsConverter.maxAlpha", { CGMESProfile::EQ, } }, - { "cim:CsConverter.maxGamma", { CGMESProfile::EQ, } }, - { "cim:CsConverter.maxIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minAlpha", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minGamma", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.operatingMode", { CGMESProfile::SSH, } }, - { "cim:CsConverter.pPccControl", { CGMESProfile::SSH, } }, - { "cim:CsConverter.ratedIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.targetAlpha", { CGMESProfile::SSH, } }, - { "cim:CsConverter.targetGamma", { CGMESProfile::SSH, } }, - { "cim:CsConverter.targetIdc", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CsConverter::getPossibleProfilesForClass() const +const std::string& CsConverter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CsConverter::getPossibleProfilesForAttributes() const +const std::list& CsConverter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCConverter::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CsConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CsConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CsConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CsConverter_alpha(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -468,25 +500,25 @@ const char* CsConverter::debugString() const void CsConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CsConverter", &CsConverter_factory); + factory_map.emplace("CsConverter", &CsConverter_factory); } void CsConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CsConverter.alpha", &assign_CsConverter_alpha); - assign_map.emplace("cim:CsConverter.gamma", &assign_CsConverter_gamma); - assign_map.emplace("cim:CsConverter.maxAlpha", &assign_CsConverter_maxAlpha); - assign_map.emplace("cim:CsConverter.maxGamma", &assign_CsConverter_maxGamma); - assign_map.emplace("cim:CsConverter.maxIdc", &assign_CsConverter_maxIdc); - assign_map.emplace("cim:CsConverter.minAlpha", &assign_CsConverter_minAlpha); - assign_map.emplace("cim:CsConverter.minGamma", &assign_CsConverter_minGamma); - assign_map.emplace("cim:CsConverter.minIdc", &assign_CsConverter_minIdc); - assign_map.emplace("cim:CsConverter.operatingMode", &assign_CsConverter_operatingMode); - assign_map.emplace("cim:CsConverter.pPccControl", &assign_CsConverter_pPccControl); - assign_map.emplace("cim:CsConverter.ratedIdc", &assign_CsConverter_ratedIdc); - assign_map.emplace("cim:CsConverter.targetAlpha", &assign_CsConverter_targetAlpha); - assign_map.emplace("cim:CsConverter.targetGamma", &assign_CsConverter_targetGamma); - assign_map.emplace("cim:CsConverter.targetIdc", &assign_CsConverter_targetIdc); + assign_map.emplace("CsConverter.alpha", &assign_CsConverter_alpha); + assign_map.emplace("CsConverter.gamma", &assign_CsConverter_gamma); + assign_map.emplace("CsConverter.maxAlpha", &assign_CsConverter_maxAlpha); + assign_map.emplace("CsConverter.maxGamma", &assign_CsConverter_maxGamma); + assign_map.emplace("CsConverter.maxIdc", &assign_CsConverter_maxIdc); + assign_map.emplace("CsConverter.minAlpha", &assign_CsConverter_minAlpha); + assign_map.emplace("CsConverter.minGamma", &assign_CsConverter_minGamma); + assign_map.emplace("CsConverter.minIdc", &assign_CsConverter_minIdc); + assign_map.emplace("CsConverter.operatingMode", &assign_CsConverter_operatingMode); + assign_map.emplace("CsConverter.pPccControl", &assign_CsConverter_pPccControl); + assign_map.emplace("CsConverter.ratedIdc", &assign_CsConverter_ratedIdc); + assign_map.emplace("CsConverter.targetAlpha", &assign_CsConverter_targetAlpha); + assign_map.emplace("CsConverter.targetGamma", &assign_CsConverter_targetGamma); + assign_map.emplace("CsConverter.targetIdc", &assign_CsConverter_targetIdc); } void CsConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -496,18 +528,18 @@ void CsConverter::addClassAssignFnsToMap(std::unordered_map& get_map) const { ACDCConverter::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CsConverter.alpha", &get_CsConverter_alpha); - get_map.emplace("cim:CsConverter.gamma", &get_CsConverter_gamma); - get_map.emplace("cim:CsConverter.maxAlpha", &get_CsConverter_maxAlpha); - get_map.emplace("cim:CsConverter.maxGamma", &get_CsConverter_maxGamma); - get_map.emplace("cim:CsConverter.maxIdc", &get_CsConverter_maxIdc); - get_map.emplace("cim:CsConverter.minAlpha", &get_CsConverter_minAlpha); - get_map.emplace("cim:CsConverter.minGamma", &get_CsConverter_minGamma); - get_map.emplace("cim:CsConverter.minIdc", &get_CsConverter_minIdc); - get_map.emplace("cim:CsConverter.ratedIdc", &get_CsConverter_ratedIdc); - get_map.emplace("cim:CsConverter.targetAlpha", &get_CsConverter_targetAlpha); - get_map.emplace("cim:CsConverter.targetGamma", &get_CsConverter_targetGamma); - get_map.emplace("cim:CsConverter.targetIdc", &get_CsConverter_targetIdc); + get_map.emplace("CsConverter.alpha", &get_CsConverter_alpha); + get_map.emplace("CsConverter.gamma", &get_CsConverter_gamma); + get_map.emplace("CsConverter.maxAlpha", &get_CsConverter_maxAlpha); + get_map.emplace("CsConverter.maxGamma", &get_CsConverter_maxGamma); + get_map.emplace("CsConverter.maxIdc", &get_CsConverter_maxIdc); + get_map.emplace("CsConverter.minAlpha", &get_CsConverter_minAlpha); + get_map.emplace("CsConverter.minGamma", &get_CsConverter_minGamma); + get_map.emplace("CsConverter.minIdc", &get_CsConverter_minIdc); + get_map.emplace("CsConverter.ratedIdc", &get_CsConverter_ratedIdc); + get_map.emplace("CsConverter.targetAlpha", &get_CsConverter_targetAlpha); + get_map.emplace("CsConverter.targetGamma", &get_CsConverter_targetGamma); + get_map.emplace("CsConverter.targetIdc", &get_CsConverter_targetIdc); } void CsConverter::addClassGetFnsToMap(std::map& get_map) const @@ -518,8 +550,14 @@ void CsConverter::addClassGetFnsToMap(std::map& void CsConverter::addEnumGetFnsToMap(std::map& get_map) const { ACDCConverter::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:CsConverter.operatingMode", &get_CsConverter_operatingMode); - get_map.emplace("cim:CsConverter.pPccControl", &get_CsConverter_pPccControl); + get_map.emplace("CsConverter.operatingMode", &get_CsConverter_operatingMode); + get_map.emplace("CsConverter.pPccControl", &get_CsConverter_pPccControl); +} + +bool CsConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CsConverter" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner CsConverter::declare() @@ -527,6 +565,14 @@ const BaseClassDefiner CsConverter::declare() return BaseClassDefiner(CsConverter::addConstructToMap, CsConverter::addPrimitiveAssignFnsToMap, CsConverter::addClassAssignFnsToMap, CsConverter::debugName); } +std::map CsConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCConverter::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CsConverter_factory() diff --git a/CGMES_2.4.13_18DEC2013/CsConverter.hpp b/CGMES_2.4.13_18DEC2013/CsConverter.hpp index 4d14a5460..fd3d2f8c1 100644 --- a/CGMES_2.4.13_18DEC2013/CsConverter.hpp +++ b/CGMES_2.4.13_18DEC2013/CsConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCConverter.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "CsOperatingModeKind.hpp" #include "CsPpccControlKind.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CsConverter_factory(); diff --git a/CGMES_2.4.13_18DEC2013/CurrentLimit.cpp b/CGMES_2.4.13_18DEC2013/CurrentLimit.cpp index 6b79e39d4..6629945e6 100644 --- a/CGMES_2.4.13_18DEC2013/CurrentLimit.cpp +++ b/CGMES_2.4.13_18DEC2013/CurrentLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurrentLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CurrentLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CurrentLimit::CurrentLimit() {} CurrentLimit::~CurrentLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& CurrentLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurrentLimit::getClassNamespaceUrl() const { - { "cim:CurrentLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurrentLimit::getPossibleProfilesForClass() const +const std::string& CurrentLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurrentLimit::getPossibleProfilesForAttributes() const +const std::list& CurrentLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurrentLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurrentLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurrentLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CurrentLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* CurrentLimit::debugString() const void CurrentLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurrentLimit", &CurrentLimit_factory); + factory_map.emplace("CurrentLimit", &CurrentLimit_factory); } void CurrentLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurrentLimit.value", &assign_CurrentLimit_value); + assign_map.emplace("CurrentLimit.value", &assign_CurrentLimit_value); } void CurrentLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void CurrentLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CurrentLimit.value", &get_CurrentLimit_value); + get_map.emplace("CurrentLimit.value", &get_CurrentLimit_value); } void CurrentLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void CurrentLimit::addEnumGetFnsToMap(std::map& get_m OperationalLimit::addEnumGetFnsToMap(get_map); } +bool CurrentLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurrentLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurrentLimit::declare() { return BaseClassDefiner(CurrentLimit::addConstructToMap, CurrentLimit::addPrimitiveAssignFnsToMap, CurrentLimit::addClassAssignFnsToMap, CurrentLimit::debugName); } +std::map CurrentLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurrentLimit_factory() diff --git a/CGMES_2.4.13_18DEC2013/CurrentLimit.hpp b/CGMES_2.4.13_18DEC2013/CurrentLimit.hpp index b670b6c54..23516417c 100644 --- a/CGMES_2.4.13_18DEC2013/CurrentLimit.hpp +++ b/CGMES_2.4.13_18DEC2013/CurrentLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurrentLimit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Curve.cpp b/CGMES_2.4.13_18DEC2013/Curve.cpp index 776e5c46d..c8f91ebbd 100644 --- a/CGMES_2.4.13_18DEC2013/Curve.cpp +++ b/CGMES_2.4.13_18DEC2013/Curve.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Curve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Curve.CurveDatas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.curveStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.xUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.y1Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.y2Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Curve::Curve() {} Curve::~Curve() {} -static const std::list PossibleProfilesForClass = +const std::list& Curve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Curve::getClassNamespaceUrl() const { - { "cim:Curve.CurveDatas", { CGMESProfile::EQ, } }, - { "cim:Curve.curveStyle", { CGMESProfile::EQ, } }, - { "cim:Curve.xUnit", { CGMESProfile::EQ, } }, - { "cim:Curve.y1Unit", { CGMESProfile::EQ, } }, - { "cim:Curve.y2Unit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Curve::getPossibleProfilesForClass() const +const std::string& Curve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Curve::getPossibleProfilesForAttributes() const +const std::list& Curve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Curve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Curve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Curve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CurveData_Curve(BaseClass*, BaseClass*); @@ -186,20 +218,20 @@ const char* Curve::debugString() const void Curve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Curve", &Curve_factory); + factory_map.emplace("Curve", &Curve_factory); } void Curve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Curve.curveStyle", &assign_Curve_curveStyle); - assign_map.emplace("cim:Curve.xUnit", &assign_Curve_xUnit); - assign_map.emplace("cim:Curve.y1Unit", &assign_Curve_y1Unit); - assign_map.emplace("cim:Curve.y2Unit", &assign_Curve_y2Unit); + assign_map.emplace("Curve.curveStyle", &assign_Curve_curveStyle); + assign_map.emplace("Curve.xUnit", &assign_Curve_xUnit); + assign_map.emplace("Curve.y1Unit", &assign_Curve_y1Unit); + assign_map.emplace("Curve.y2Unit", &assign_Curve_y2Unit); } void Curve::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Curve.CurveDatas", &assign_Curve_CurveDatas); + assign_map.emplace("Curve.CurveDatas", &assign_Curve_CurveDatas); } void Curve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -215,10 +247,16 @@ void Curve::addClassGetFnsToMap(std::map& get_m void Curve::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Curve.curveStyle", &get_Curve_curveStyle); - get_map.emplace("cim:Curve.xUnit", &get_Curve_xUnit); - get_map.emplace("cim:Curve.y1Unit", &get_Curve_y1Unit); - get_map.emplace("cim:Curve.y2Unit", &get_Curve_y2Unit); + get_map.emplace("Curve.curveStyle", &get_Curve_curveStyle); + get_map.emplace("Curve.xUnit", &get_Curve_xUnit); + get_map.emplace("Curve.y1Unit", &get_Curve_y1Unit); + get_map.emplace("Curve.y2Unit", &get_Curve_y2Unit); +} + +bool Curve::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Curve" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Curve::declare() @@ -226,6 +264,14 @@ const BaseClassDefiner Curve::declare() return BaseClassDefiner(Curve::addConstructToMap, Curve::addPrimitiveAssignFnsToMap, Curve::addClassAssignFnsToMap, Curve::debugName); } +std::map Curve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Curve_factory() diff --git a/CGMES_2.4.13_18DEC2013/Curve.hpp b/CGMES_2.4.13_18DEC2013/Curve.hpp index bb10f8a2b..3764326ee 100644 --- a/CGMES_2.4.13_18DEC2013/Curve.hpp +++ b/CGMES_2.4.13_18DEC2013/Curve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurveStyle.hpp" #include "UnitSymbol.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Curve_factory(); diff --git a/CGMES_2.4.13_18DEC2013/CurveData.cpp b/CGMES_2.4.13_18DEC2013/CurveData.cpp index f2d46bf44..b87a7241b 100644 --- a/CGMES_2.4.13_18DEC2013/CurveData.cpp +++ b/CGMES_2.4.13_18DEC2013/CurveData.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurveData(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CurveData.Curve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.xvalue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.y1value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.y2value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CurveData::CurveData() : Curve(nullptr) {} CurveData::~CurveData() {} -static const std::list PossibleProfilesForClass = +const std::list& CurveData::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurveData::getClassNamespaceUrl() const { - { "cim:CurveData.Curve", { CGMESProfile::EQ, } }, - { "cim:CurveData.xvalue", { CGMESProfile::EQ, } }, - { "cim:CurveData.y1value", { CGMESProfile::EQ, } }, - { "cim:CurveData.y2value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurveData::getPossibleProfilesForClass() const +const std::string& CurveData::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurveData::getPossibleProfilesForAttributes() const +const std::list& CurveData::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurveData::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurveData::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurveData::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Curve_CurveDatas(BaseClass*, BaseClass*); @@ -169,33 +201,33 @@ const char* CurveData::debugString() const void CurveData::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurveData", &CurveData_factory); + factory_map.emplace("CurveData", &CurveData_factory); } void CurveData::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurveData.xvalue", &assign_CurveData_xvalue); - assign_map.emplace("cim:CurveData.y1value", &assign_CurveData_y1value); - assign_map.emplace("cim:CurveData.y2value", &assign_CurveData_y2value); + assign_map.emplace("CurveData.xvalue", &assign_CurveData_xvalue); + assign_map.emplace("CurveData.y1value", &assign_CurveData_y1value); + assign_map.emplace("CurveData.y2value", &assign_CurveData_y2value); } void CurveData::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurveData.Curve", &assign_CurveData_Curve); + assign_map.emplace("CurveData.Curve", &assign_CurveData_Curve); } void CurveData::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CurveData.xvalue", &get_CurveData_xvalue); - get_map.emplace("cim:CurveData.y1value", &get_CurveData_y1value); - get_map.emplace("cim:CurveData.y2value", &get_CurveData_y2value); + get_map.emplace("CurveData.xvalue", &get_CurveData_xvalue); + get_map.emplace("CurveData.y1value", &get_CurveData_y1value); + get_map.emplace("CurveData.y2value", &get_CurveData_y2value); } void CurveData::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:CurveData.Curve", &get_CurveData_Curve); + get_map.emplace("CurveData.Curve", &get_CurveData_Curve); } void CurveData::addEnumGetFnsToMap(std::map& get_map) const @@ -203,11 +235,25 @@ void CurveData::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool CurveData::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurveData" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurveData::declare() { return BaseClassDefiner(CurveData::addConstructToMap, CurveData::addPrimitiveAssignFnsToMap, CurveData::addClassAssignFnsToMap, CurveData::debugName); } +std::map CurveData::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurveData_factory() diff --git a/CGMES_2.4.13_18DEC2013/CurveData.hpp b/CGMES_2.4.13_18DEC2013/CurveData.hpp index 3bbd6ba03..c7b6b6620 100644 --- a/CGMES_2.4.13_18DEC2013/CurveData.hpp +++ b/CGMES_2.4.13_18DEC2013/CurveData.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurveData_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCBaseTerminal.cpp b/CGMES_2.4.13_18DEC2013/DCBaseTerminal.cpp index d702d5b96..7ff5f66fe 100644 --- a/CGMES_2.4.13_18DEC2013/DCBaseTerminal.cpp +++ b/CGMES_2.4.13_18DEC2013/DCBaseTerminal.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBaseTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCBaseTerminal.DCNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, CGMESProfile::TP, } } }, + { "DCBaseTerminal.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCBaseTerminal::DCBaseTerminal() : DCNode(nullptr), DCTopologicalNode(nullptr) {} DCBaseTerminal::~DCBaseTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBaseTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBaseTerminal::getClassNamespaceUrl() const { - { "cim:DCBaseTerminal.DCNode", { CGMESProfile::EQ, CGMESProfile::TP, } }, - { "cim:DCBaseTerminal.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBaseTerminal::getPossibleProfilesForClass() const +const std::string& DCBaseTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBaseTerminal::getPossibleProfilesForAttributes() const +const std::list& DCBaseTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBaseTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBaseTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBaseTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCNode_DCTerminals(BaseClass*, BaseClass*); @@ -113,7 +145,7 @@ const char* DCBaseTerminal::debugString() const void DCBaseTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBaseTerminal", &DCBaseTerminal_factory); + factory_map.emplace("DCBaseTerminal", &DCBaseTerminal_factory); } void DCBaseTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DCBaseTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCBaseTerminal.DCNode", &assign_DCBaseTerminal_DCNode); - assign_map.emplace("cim:DCBaseTerminal.DCTopologicalNode", &assign_DCBaseTerminal_DCTopologicalNode); + assign_map.emplace("DCBaseTerminal.DCNode", &assign_DCBaseTerminal_DCNode); + assign_map.emplace("DCBaseTerminal.DCTopologicalNode", &assign_DCBaseTerminal_DCTopologicalNode); } void DCBaseTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -134,8 +166,8 @@ void DCBaseTerminal::addPrimitiveGetFnsToMap(std::map void DCBaseTerminal::addClassGetFnsToMap(std::map& get_map) const { ACDCTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCBaseTerminal.DCNode", &get_DCBaseTerminal_DCNode); - get_map.emplace("cim:DCBaseTerminal.DCTopologicalNode", &get_DCBaseTerminal_DCTopologicalNode); + get_map.emplace("DCBaseTerminal.DCNode", &get_DCBaseTerminal_DCNode); + get_map.emplace("DCBaseTerminal.DCTopologicalNode", &get_DCBaseTerminal_DCTopologicalNode); } void DCBaseTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -143,11 +175,25 @@ void DCBaseTerminal::addEnumGetFnsToMap(std::map& get ACDCTerminal::addEnumGetFnsToMap(get_map); } +bool DCBaseTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBaseTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBaseTerminal::declare() { return BaseClassDefiner(DCBaseTerminal::addConstructToMap, DCBaseTerminal::addPrimitiveAssignFnsToMap, DCBaseTerminal::addClassAssignFnsToMap, DCBaseTerminal::debugName); } +std::map DCBaseTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBaseTerminal_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCBaseTerminal.hpp b/CGMES_2.4.13_18DEC2013/DCBaseTerminal.hpp index 1538e8e05..557b1f472 100644 --- a/CGMES_2.4.13_18DEC2013/DCBaseTerminal.hpp +++ b/CGMES_2.4.13_18DEC2013/DCBaseTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBaseTerminal_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCBreaker.cpp b/CGMES_2.4.13_18DEC2013/DCBreaker.cpp index 721524d6e..e2fa3f87e 100644 --- a/CGMES_2.4.13_18DEC2013/DCBreaker.cpp +++ b/CGMES_2.4.13_18DEC2013/DCBreaker.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBreaker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCBreaker::DCBreaker() {} DCBreaker::~DCBreaker() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBreaker::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBreaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBreaker::getPossibleProfilesForClass() const +const std::string& DCBreaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBreaker::getPossibleProfilesForAttributes() const +const std::list& DCBreaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBreaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBreaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBreaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCBreaker::debugName[] = "DCBreaker"; @@ -46,7 +78,7 @@ const char* DCBreaker::debugString() const void DCBreaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBreaker", &DCBreaker_factory); + factory_map.emplace("DCBreaker", &DCBreaker_factory); } void DCBreaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCBreaker::addEnumGetFnsToMap(std::map& get_map) DCSwitch::addEnumGetFnsToMap(get_map); } +bool DCBreaker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBreaker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBreaker::declare() { return BaseClassDefiner(DCBreaker::addConstructToMap, DCBreaker::addPrimitiveAssignFnsToMap, DCBreaker::addClassAssignFnsToMap, DCBreaker::debugName); } +std::map DCBreaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBreaker_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCBreaker.hpp b/CGMES_2.4.13_18DEC2013/DCBreaker.hpp index 51ebd5f70..c73ba330c 100644 --- a/CGMES_2.4.13_18DEC2013/DCBreaker.hpp +++ b/CGMES_2.4.13_18DEC2013/DCBreaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBreaker_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCBusbar.cpp b/CGMES_2.4.13_18DEC2013/DCBusbar.cpp index 1ecf0f6fa..c59efd727 100644 --- a/CGMES_2.4.13_18DEC2013/DCBusbar.cpp +++ b/CGMES_2.4.13_18DEC2013/DCBusbar.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBusbar(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCBusbar::DCBusbar() {} DCBusbar::~DCBusbar() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBusbar::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBusbar::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBusbar::getPossibleProfilesForClass() const +const std::string& DCBusbar::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBusbar::getPossibleProfilesForAttributes() const +const std::list& DCBusbar::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBusbar::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBusbar::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBusbar::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCBusbar::debugName[] = "DCBusbar"; @@ -46,7 +78,7 @@ const char* DCBusbar::debugString() const void DCBusbar::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBusbar", &DCBusbar_factory); + factory_map.emplace("DCBusbar", &DCBusbar_factory); } void DCBusbar::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCBusbar::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCBusbar::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBusbar" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBusbar::declare() { return BaseClassDefiner(DCBusbar::addConstructToMap, DCBusbar::addPrimitiveAssignFnsToMap, DCBusbar::addClassAssignFnsToMap, DCBusbar::debugName); } +std::map DCBusbar::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBusbar_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCBusbar.hpp b/CGMES_2.4.13_18DEC2013/DCBusbar.hpp index 443ea1142..25382b74b 100644 --- a/CGMES_2.4.13_18DEC2013/DCBusbar.hpp +++ b/CGMES_2.4.13_18DEC2013/DCBusbar.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBusbar_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCChopper.cpp b/CGMES_2.4.13_18DEC2013/DCChopper.cpp index 74dd30f11..76932c261 100644 --- a/CGMES_2.4.13_18DEC2013/DCChopper.cpp +++ b/CGMES_2.4.13_18DEC2013/DCChopper.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCChopper(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCChopper::DCChopper() {} DCChopper::~DCChopper() {} -static const std::list PossibleProfilesForClass = +const std::list& DCChopper::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCChopper::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCChopper::getPossibleProfilesForClass() const +const std::string& DCChopper::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCChopper::getPossibleProfilesForAttributes() const +const std::list& DCChopper::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCChopper::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCChopper::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCChopper::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCChopper::debugName[] = "DCChopper"; @@ -46,7 +78,7 @@ const char* DCChopper::debugString() const void DCChopper::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCChopper", &DCChopper_factory); + factory_map.emplace("DCChopper", &DCChopper_factory); } void DCChopper::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCChopper::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCChopper::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCChopper" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCChopper::declare() { return BaseClassDefiner(DCChopper::addConstructToMap, DCChopper::addPrimitiveAssignFnsToMap, DCChopper::addClassAssignFnsToMap, DCChopper::debugName); } +std::map DCChopper::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCChopper_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCChopper.hpp b/CGMES_2.4.13_18DEC2013/DCChopper.hpp index 69669fe03..79f28e42f 100644 --- a/CGMES_2.4.13_18DEC2013/DCChopper.hpp +++ b/CGMES_2.4.13_18DEC2013/DCChopper.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCChopper_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCConductingEquipment.cpp b/CGMES_2.4.13_18DEC2013/DCConductingEquipment.cpp index b837861c2..d8fe8c9a3 100644 --- a/CGMES_2.4.13_18DEC2013/DCConductingEquipment.cpp +++ b/CGMES_2.4.13_18DEC2013/DCConductingEquipment.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCConductingEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCConductingEquipment.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCConductingEquipment::DCConductingEquipment() {} DCConductingEquipment::~DCConductingEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& DCConductingEquipment::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCConductingEquipment::getClassNamespaceUrl() const { - { "cim:DCConductingEquipment.DCTerminals", { CGMESProfile::EQ, CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCConductingEquipment::getPossibleProfilesForClass() const +const std::string& DCConductingEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCConductingEquipment::getPossibleProfilesForAttributes() const +const std::list& DCConductingEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCConductingEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCConductingEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCConductingEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTerminal_DCConductingEquipment(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* DCConductingEquipment::debugString() const void DCConductingEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCConductingEquipment", &DCConductingEquipment_factory); + factory_map.emplace("DCConductingEquipment", &DCConductingEquipment_factory); } void DCConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void DCConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConductingEquipment.DCTerminals", &assign_DCConductingEquipment_DCTerminals); + assign_map.emplace("DCConductingEquipment.DCTerminals", &assign_DCConductingEquipment_DCTerminals); } void DCConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void DCConductingEquipment::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DCConductingEquipment::declare() { return BaseClassDefiner(DCConductingEquipment::addConstructToMap, DCConductingEquipment::addPrimitiveAssignFnsToMap, DCConductingEquipment::addClassAssignFnsToMap, DCConductingEquipment::debugName); } +std::map DCConductingEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCConductingEquipment_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCConductingEquipment.hpp b/CGMES_2.4.13_18DEC2013/DCConductingEquipment.hpp index 7ef261fec..1b096dc2f 100644 --- a/CGMES_2.4.13_18DEC2013/DCConductingEquipment.hpp +++ b/CGMES_2.4.13_18DEC2013/DCConductingEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCConductingEquipment_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCConverterUnit.cpp b/CGMES_2.4.13_18DEC2013/DCConverterUnit.cpp index 2d1090ab2..a508ef2d0 100644 --- a/CGMES_2.4.13_18DEC2013/DCConverterUnit.cpp +++ b/CGMES_2.4.13_18DEC2013/DCConverterUnit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCConverterUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCConverterUnit.Substation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCConverterUnit.operationMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCConverterUnit::DCConverterUnit() : Substation(nullptr) {} DCConverterUnit::~DCConverterUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& DCConverterUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCConverterUnit::getClassNamespaceUrl() const { - { "cim:DCConverterUnit.Substation", { CGMESProfile::EQ, } }, - { "cim:DCConverterUnit.operationMode", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCConverterUnit::getPossibleProfilesForClass() const +const std::string& DCConverterUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCConverterUnit::getPossibleProfilesForAttributes() const +const std::list& DCConverterUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCEquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCConverterUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCConverterUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCConverterUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Substation_DCConverterUnit(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* DCConverterUnit::debugString() const void DCConverterUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCConverterUnit", &DCConverterUnit_factory); + factory_map.emplace("DCConverterUnit", &DCConverterUnit_factory); } void DCConverterUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConverterUnit.operationMode", &assign_DCConverterUnit_operationMode); + assign_map.emplace("DCConverterUnit.operationMode", &assign_DCConverterUnit_operationMode); } void DCConverterUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConverterUnit.Substation", &assign_DCConverterUnit_Substation); + assign_map.emplace("DCConverterUnit.Substation", &assign_DCConverterUnit_Substation); } void DCConverterUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void DCConverterUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCConverterUnit.Substation", &get_DCConverterUnit_Substation); + get_map.emplace("DCConverterUnit.Substation", &get_DCConverterUnit_Substation); } void DCConverterUnit::addEnumGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:DCConverterUnit.operationMode", &get_DCConverterUnit_operationMode); + get_map.emplace("DCConverterUnit.operationMode", &get_DCConverterUnit_operationMode); +} + +bool DCConverterUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCConverterUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner DCConverterUnit::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner DCConverterUnit::declare() return BaseClassDefiner(DCConverterUnit::addConstructToMap, DCConverterUnit::addPrimitiveAssignFnsToMap, DCConverterUnit::addClassAssignFnsToMap, DCConverterUnit::debugName); } +std::map DCConverterUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCEquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCConverterUnit_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCConverterUnit.hpp b/CGMES_2.4.13_18DEC2013/DCConverterUnit.hpp index 0ceada939..3f545ab57 100644 --- a/CGMES_2.4.13_18DEC2013/DCConverterUnit.hpp +++ b/CGMES_2.4.13_18DEC2013/DCConverterUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCEquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DCConverterOperatingModeKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCConverterUnit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCDisconnector.cpp b/CGMES_2.4.13_18DEC2013/DCDisconnector.cpp index fe93c5903..506442ba0 100644 --- a/CGMES_2.4.13_18DEC2013/DCDisconnector.cpp +++ b/CGMES_2.4.13_18DEC2013/DCDisconnector.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCDisconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCDisconnector::DCDisconnector() {} DCDisconnector::~DCDisconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& DCDisconnector::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCDisconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCDisconnector::getPossibleProfilesForClass() const +const std::string& DCDisconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCDisconnector::getPossibleProfilesForAttributes() const +const std::list& DCDisconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCDisconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCDisconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCDisconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCDisconnector::debugName[] = "DCDisconnector"; @@ -46,7 +78,7 @@ const char* DCDisconnector::debugString() const void DCDisconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCDisconnector", &DCDisconnector_factory); + factory_map.emplace("DCDisconnector", &DCDisconnector_factory); } void DCDisconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCDisconnector::addEnumGetFnsToMap(std::map& get DCSwitch::addEnumGetFnsToMap(get_map); } +bool DCDisconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCDisconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCDisconnector::declare() { return BaseClassDefiner(DCDisconnector::addConstructToMap, DCDisconnector::addPrimitiveAssignFnsToMap, DCDisconnector::addClassAssignFnsToMap, DCDisconnector::debugName); } +std::map DCDisconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCDisconnector_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCDisconnector.hpp b/CGMES_2.4.13_18DEC2013/DCDisconnector.hpp index 9000b268e..081bad109 100644 --- a/CGMES_2.4.13_18DEC2013/DCDisconnector.hpp +++ b/CGMES_2.4.13_18DEC2013/DCDisconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCDisconnector_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCEquipmentContainer.cpp b/CGMES_2.4.13_18DEC2013/DCEquipmentContainer.cpp index 0fc1f9398..565e513c9 100644 --- a/CGMES_2.4.13_18DEC2013/DCEquipmentContainer.cpp +++ b/CGMES_2.4.13_18DEC2013/DCEquipmentContainer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCEquipmentContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCEquipmentContainer.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCEquipmentContainer::DCEquipmentContainer() {} DCEquipmentContainer::~DCEquipmentContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& DCEquipmentContainer::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCEquipmentContainer::getClassNamespaceUrl() const { - { "cim:DCEquipmentContainer.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCEquipmentContainer::getPossibleProfilesForClass() const +const std::string& DCEquipmentContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCEquipmentContainer::getPossibleProfilesForAttributes() const +const std::list& DCEquipmentContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCEquipmentContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCEquipmentContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCEquipmentContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTopologicalNode_DCEquipmentContainer(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* DCEquipmentContainer::debugString() const void DCEquipmentContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCEquipmentContainer", &DCEquipmentContainer_factory); + factory_map.emplace("DCEquipmentContainer", &DCEquipmentContainer_factory); } void DCEquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void DCEquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCEquipmentContainer.DCTopologicalNode", &assign_DCEquipmentContainer_DCTopologicalNode); + assign_map.emplace("DCEquipmentContainer.DCTopologicalNode", &assign_DCEquipmentContainer_DCTopologicalNode); } void DCEquipmentContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void DCEquipmentContainer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DCEquipmentContainer::declare() { return BaseClassDefiner(DCEquipmentContainer::addConstructToMap, DCEquipmentContainer::addPrimitiveAssignFnsToMap, DCEquipmentContainer::addClassAssignFnsToMap, DCEquipmentContainer::debugName); } +std::map DCEquipmentContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCEquipmentContainer_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCEquipmentContainer.hpp b/CGMES_2.4.13_18DEC2013/DCEquipmentContainer.hpp index e391253fd..178063dc2 100644 --- a/CGMES_2.4.13_18DEC2013/DCEquipmentContainer.hpp +++ b/CGMES_2.4.13_18DEC2013/DCEquipmentContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCEquipmentContainer_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCGround.cpp b/CGMES_2.4.13_18DEC2013/DCGround.cpp index 116c3a350..e410d38fc 100644 --- a/CGMES_2.4.13_18DEC2013/DCGround.cpp +++ b/CGMES_2.4.13_18DEC2013/DCGround.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCGround(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCGround::DCGround() {} DCGround::~DCGround() {} -static const std::list PossibleProfilesForClass = +const std::list& DCGround::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCGround::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCGround::getPossibleProfilesForClass() const +const std::string& DCGround::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCGround::getPossibleProfilesForAttributes() const +const std::list& DCGround::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCGround::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCGround::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCGround::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCGround::debugName[] = "DCGround"; @@ -46,7 +78,7 @@ const char* DCGround::debugString() const void DCGround::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCGround", &DCGround_factory); + factory_map.emplace("DCGround", &DCGround_factory); } void DCGround::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCGround::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCGround::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCGround" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCGround::declare() { return BaseClassDefiner(DCGround::addConstructToMap, DCGround::addPrimitiveAssignFnsToMap, DCGround::addClassAssignFnsToMap, DCGround::debugName); } +std::map DCGround::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCGround_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCGround.hpp b/CGMES_2.4.13_18DEC2013/DCGround.hpp index 02517bb29..a06fb3239 100644 --- a/CGMES_2.4.13_18DEC2013/DCGround.hpp +++ b/CGMES_2.4.13_18DEC2013/DCGround.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCGround_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCLine.cpp b/CGMES_2.4.13_18DEC2013/DCLine.cpp index 15f9c9331..6185f1acb 100644 --- a/CGMES_2.4.13_18DEC2013/DCLine.cpp +++ b/CGMES_2.4.13_18DEC2013/DCLine.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCLine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCLine.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCLine::DCLine() : Region(nullptr) {} DCLine::~DCLine() {} -static const std::list PossibleProfilesForClass = +const std::list& DCLine::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCLine::getClassNamespaceUrl() const { - { "cim:DCLine.Region", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCLine::getPossibleProfilesForClass() const +const std::string& DCLine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCLine::getPossibleProfilesForAttributes() const +const std::list& DCLine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCEquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCLine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCLine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCLine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_DCLines(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* DCLine::debugString() const void DCLine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCLine", &DCLine_factory); + factory_map.emplace("DCLine", &DCLine_factory); } void DCLine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void DCLine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLine.Region", &assign_DCLine_Region); + assign_map.emplace("DCLine.Region", &assign_DCLine_Region); } void DCLine::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void DCLine::addPrimitiveGetFnsToMap(std::map& get_ma void DCLine::addClassGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCLine.Region", &get_DCLine_Region); + get_map.emplace("DCLine.Region", &get_DCLine_Region); } void DCLine::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void DCLine::addEnumGetFnsToMap(std::map& get_map) co DCEquipmentContainer::addEnumGetFnsToMap(get_map); } +bool DCLine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCLine" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCLine::declare() { return BaseClassDefiner(DCLine::addConstructToMap, DCLine::addPrimitiveAssignFnsToMap, DCLine::addClassAssignFnsToMap, DCLine::debugName); } +std::map DCLine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCEquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCLine_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCLine.hpp b/CGMES_2.4.13_18DEC2013/DCLine.hpp index 91657a003..697d58ca4 100644 --- a/CGMES_2.4.13_18DEC2013/DCLine.hpp +++ b/CGMES_2.4.13_18DEC2013/DCLine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCEquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCLine_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCLineSegment.cpp b/CGMES_2.4.13_18DEC2013/DCLineSegment.cpp index 3b5b3a411..f3dbcaff4 100644 --- a/CGMES_2.4.13_18DEC2013/DCLineSegment.cpp +++ b/CGMES_2.4.13_18DEC2013/DCLineSegment.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCLineSegment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCLineSegment.PerLengthParameter", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.length", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCLineSegment::DCLineSegment() : PerLengthParameter(nullptr) {} DCLineSegment::~DCLineSegment() {} -static const std::list PossibleProfilesForClass = +const std::list& DCLineSegment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCLineSegment::getClassNamespaceUrl() const { - { "cim:DCLineSegment.PerLengthParameter", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.capacitance", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.inductance", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.length", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCLineSegment::getPossibleProfilesForClass() const +const std::string& DCLineSegment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCLineSegment::getPossibleProfilesForAttributes() const +const std::list& DCLineSegment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCLineSegment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCLineSegment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCLineSegment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PerLengthDCLineParameter_DCLineSegments(BaseClass*, BaseClass*); @@ -199,35 +231,35 @@ const char* DCLineSegment::debugString() const void DCLineSegment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCLineSegment", &DCLineSegment_factory); + factory_map.emplace("DCLineSegment", &DCLineSegment_factory); } void DCLineSegment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLineSegment.capacitance", &assign_DCLineSegment_capacitance); - assign_map.emplace("cim:DCLineSegment.inductance", &assign_DCLineSegment_inductance); - assign_map.emplace("cim:DCLineSegment.length", &assign_DCLineSegment_length); - assign_map.emplace("cim:DCLineSegment.resistance", &assign_DCLineSegment_resistance); + assign_map.emplace("DCLineSegment.capacitance", &assign_DCLineSegment_capacitance); + assign_map.emplace("DCLineSegment.inductance", &assign_DCLineSegment_inductance); + assign_map.emplace("DCLineSegment.length", &assign_DCLineSegment_length); + assign_map.emplace("DCLineSegment.resistance", &assign_DCLineSegment_resistance); } void DCLineSegment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLineSegment.PerLengthParameter", &assign_DCLineSegment_PerLengthParameter); + assign_map.emplace("DCLineSegment.PerLengthParameter", &assign_DCLineSegment_PerLengthParameter); } void DCLineSegment::addPrimitiveGetFnsToMap(std::map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCLineSegment.capacitance", &get_DCLineSegment_capacitance); - get_map.emplace("cim:DCLineSegment.inductance", &get_DCLineSegment_inductance); - get_map.emplace("cim:DCLineSegment.length", &get_DCLineSegment_length); - get_map.emplace("cim:DCLineSegment.resistance", &get_DCLineSegment_resistance); + get_map.emplace("DCLineSegment.capacitance", &get_DCLineSegment_capacitance); + get_map.emplace("DCLineSegment.inductance", &get_DCLineSegment_inductance); + get_map.emplace("DCLineSegment.length", &get_DCLineSegment_length); + get_map.emplace("DCLineSegment.resistance", &get_DCLineSegment_resistance); } void DCLineSegment::addClassGetFnsToMap(std::map& get_map) const { DCConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCLineSegment.PerLengthParameter", &get_DCLineSegment_PerLengthParameter); + get_map.emplace("DCLineSegment.PerLengthParameter", &get_DCLineSegment_PerLengthParameter); } void DCLineSegment::addEnumGetFnsToMap(std::map& get_map) const @@ -235,11 +267,25 @@ void DCLineSegment::addEnumGetFnsToMap(std::map& get_ DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCLineSegment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCLineSegment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCLineSegment::declare() { return BaseClassDefiner(DCLineSegment::addConstructToMap, DCLineSegment::addPrimitiveAssignFnsToMap, DCLineSegment::addClassAssignFnsToMap, DCLineSegment::debugName); } +std::map DCLineSegment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCLineSegment_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCLineSegment.hpp b/CGMES_2.4.13_18DEC2013/DCLineSegment.hpp index 58c280fe1..930398dcd 100644 --- a/CGMES_2.4.13_18DEC2013/DCLineSegment.hpp +++ b/CGMES_2.4.13_18DEC2013/DCLineSegment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Capacitance.hpp" #include "Inductance.hpp" #include "Length.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCLineSegment_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCNode.cpp b/CGMES_2.4.13_18DEC2013/DCNode.cpp index c502c009c..851d71a0c 100644 --- a/CGMES_2.4.13_18DEC2013/DCNode.cpp +++ b/CGMES_2.4.13_18DEC2013/DCNode.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCNode.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, CGMESProfile::TP, } } }, + { "DCNode.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCNode::DCNode() : DCTopologicalNode(nullptr) {} DCNode::~DCNode() {} -static const std::list PossibleProfilesForClass = +const std::list& DCNode::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCNode::getClassNamespaceUrl() const { - { "cim:DCNode.DCTerminals", { CGMESProfile::EQ, CGMESProfile::TP, } }, - { "cim:DCNode.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCNode::getPossibleProfilesForClass() const +const std::string& DCNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCNode::getPossibleProfilesForAttributes() const +const std::list& DCNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCBaseTerminal_DCNode(BaseClass*, BaseClass*); @@ -87,7 +119,7 @@ const char* DCNode::debugString() const void DCNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCNode", &DCNode_factory); + factory_map.emplace("DCNode", &DCNode_factory); } void DCNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -96,8 +128,8 @@ void DCNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCNode.DCTerminals", &assign_DCNode_DCTerminals); - assign_map.emplace("cim:DCNode.DCTopologicalNode", &assign_DCNode_DCTopologicalNode); + assign_map.emplace("DCNode.DCTerminals", &assign_DCNode_DCTerminals); + assign_map.emplace("DCNode.DCTopologicalNode", &assign_DCNode_DCTopologicalNode); } void DCNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -115,11 +147,25 @@ void DCNode::addEnumGetFnsToMap(std::map& get_map) co IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCNode::declare() { return BaseClassDefiner(DCNode::addConstructToMap, DCNode::addPrimitiveAssignFnsToMap, DCNode::addClassAssignFnsToMap, DCNode::debugName); } +std::map DCNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCNode_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCNode.hpp b/CGMES_2.4.13_18DEC2013/DCNode.hpp index 7aaf96aef..ed224c578 100644 --- a/CGMES_2.4.13_18DEC2013/DCNode.hpp +++ b/CGMES_2.4.13_18DEC2013/DCNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCNode_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCSeriesDevice.cpp b/CGMES_2.4.13_18DEC2013/DCSeriesDevice.cpp index 4f042583c..4fe371522 100644 --- a/CGMES_2.4.13_18DEC2013/DCSeriesDevice.cpp +++ b/CGMES_2.4.13_18DEC2013/DCSeriesDevice.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCSeriesDevice(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCSeriesDevice.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCSeriesDevice.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCSeriesDevice.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCSeriesDevice::DCSeriesDevice() {} DCSeriesDevice::~DCSeriesDevice() {} -static const std::list PossibleProfilesForClass = +const std::list& DCSeriesDevice::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCSeriesDevice::getClassNamespaceUrl() const { - { "cim:DCSeriesDevice.inductance", { CGMESProfile::EQ, } }, - { "cim:DCSeriesDevice.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:DCSeriesDevice.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCSeriesDevice::getPossibleProfilesForClass() const +const std::string& DCSeriesDevice::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCSeriesDevice::getPossibleProfilesForAttributes() const +const std::list& DCSeriesDevice::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCSeriesDevice::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCSeriesDevice::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCSeriesDevice::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCSeriesDevice_inductance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* DCSeriesDevice::debugString() const void DCSeriesDevice::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCSeriesDevice", &DCSeriesDevice_factory); + factory_map.emplace("DCSeriesDevice", &DCSeriesDevice_factory); } void DCSeriesDevice::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCSeriesDevice.inductance", &assign_DCSeriesDevice_inductance); - assign_map.emplace("cim:DCSeriesDevice.ratedUdc", &assign_DCSeriesDevice_ratedUdc); - assign_map.emplace("cim:DCSeriesDevice.resistance", &assign_DCSeriesDevice_resistance); + assign_map.emplace("DCSeriesDevice.inductance", &assign_DCSeriesDevice_inductance); + assign_map.emplace("DCSeriesDevice.ratedUdc", &assign_DCSeriesDevice_ratedUdc); + assign_map.emplace("DCSeriesDevice.resistance", &assign_DCSeriesDevice_resistance); } void DCSeriesDevice::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void DCSeriesDevice::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCSeriesDevice.inductance", &get_DCSeriesDevice_inductance); - get_map.emplace("cim:DCSeriesDevice.ratedUdc", &get_DCSeriesDevice_ratedUdc); - get_map.emplace("cim:DCSeriesDevice.resistance", &get_DCSeriesDevice_resistance); + get_map.emplace("DCSeriesDevice.inductance", &get_DCSeriesDevice_inductance); + get_map.emplace("DCSeriesDevice.ratedUdc", &get_DCSeriesDevice_ratedUdc); + get_map.emplace("DCSeriesDevice.resistance", &get_DCSeriesDevice_resistance); } void DCSeriesDevice::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void DCSeriesDevice::addEnumGetFnsToMap(std::map& get DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCSeriesDevice::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCSeriesDevice" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCSeriesDevice::declare() { return BaseClassDefiner(DCSeriesDevice::addConstructToMap, DCSeriesDevice::addPrimitiveAssignFnsToMap, DCSeriesDevice::addClassAssignFnsToMap, DCSeriesDevice::debugName); } +std::map DCSeriesDevice::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCSeriesDevice_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCSeriesDevice.hpp b/CGMES_2.4.13_18DEC2013/DCSeriesDevice.hpp index 73436d451..c07252d1c 100644 --- a/CGMES_2.4.13_18DEC2013/DCSeriesDevice.hpp +++ b/CGMES_2.4.13_18DEC2013/DCSeriesDevice.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Inductance.hpp" #include "Resistance.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCSeriesDevice_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCShunt.cpp b/CGMES_2.4.13_18DEC2013/DCShunt.cpp index 35992c09b..d89c28051 100644 --- a/CGMES_2.4.13_18DEC2013/DCShunt.cpp +++ b/CGMES_2.4.13_18DEC2013/DCShunt.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCShunt(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCShunt.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCShunt.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCShunt.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCShunt::DCShunt() {} DCShunt::~DCShunt() {} -static const std::list PossibleProfilesForClass = +const std::list& DCShunt::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCShunt::getClassNamespaceUrl() const { - { "cim:DCShunt.capacitance", { CGMESProfile::EQ, } }, - { "cim:DCShunt.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:DCShunt.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCShunt::getPossibleProfilesForClass() const +const std::string& DCShunt::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCShunt::getPossibleProfilesForAttributes() const +const std::list& DCShunt::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCShunt::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCShunt::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCShunt::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCShunt_capacitance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* DCShunt::debugString() const void DCShunt::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCShunt", &DCShunt_factory); + factory_map.emplace("DCShunt", &DCShunt_factory); } void DCShunt::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCShunt.capacitance", &assign_DCShunt_capacitance); - assign_map.emplace("cim:DCShunt.ratedUdc", &assign_DCShunt_ratedUdc); - assign_map.emplace("cim:DCShunt.resistance", &assign_DCShunt_resistance); + assign_map.emplace("DCShunt.capacitance", &assign_DCShunt_capacitance); + assign_map.emplace("DCShunt.ratedUdc", &assign_DCShunt_ratedUdc); + assign_map.emplace("DCShunt.resistance", &assign_DCShunt_resistance); } void DCShunt::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void DCShunt::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCShunt.capacitance", &get_DCShunt_capacitance); - get_map.emplace("cim:DCShunt.ratedUdc", &get_DCShunt_ratedUdc); - get_map.emplace("cim:DCShunt.resistance", &get_DCShunt_resistance); + get_map.emplace("DCShunt.capacitance", &get_DCShunt_capacitance); + get_map.emplace("DCShunt.ratedUdc", &get_DCShunt_ratedUdc); + get_map.emplace("DCShunt.resistance", &get_DCShunt_resistance); } void DCShunt::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void DCShunt::addEnumGetFnsToMap(std::map& get_map) c DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCShunt::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCShunt" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCShunt::declare() { return BaseClassDefiner(DCShunt::addConstructToMap, DCShunt::addPrimitiveAssignFnsToMap, DCShunt::addClassAssignFnsToMap, DCShunt::debugName); } +std::map DCShunt::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCShunt_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCShunt.hpp b/CGMES_2.4.13_18DEC2013/DCShunt.hpp index 401c9d74e..001e9495e 100644 --- a/CGMES_2.4.13_18DEC2013/DCShunt.hpp +++ b/CGMES_2.4.13_18DEC2013/DCShunt.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Capacitance.hpp" #include "Resistance.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCShunt_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCSwitch.cpp b/CGMES_2.4.13_18DEC2013/DCSwitch.cpp index 2183c59a5..1b23f0ac4 100644 --- a/CGMES_2.4.13_18DEC2013/DCSwitch.cpp +++ b/CGMES_2.4.13_18DEC2013/DCSwitch.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCSwitch::DCSwitch() {} DCSwitch::~DCSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& DCSwitch::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCSwitch::getPossibleProfilesForClass() const +const std::string& DCSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCSwitch::getPossibleProfilesForAttributes() const +const std::list& DCSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCSwitch::debugName[] = "DCSwitch"; @@ -46,7 +78,7 @@ const char* DCSwitch::debugString() const void DCSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCSwitch", &DCSwitch_factory); + factory_map.emplace("DCSwitch", &DCSwitch_factory); } void DCSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCSwitch::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCSwitch::declare() { return BaseClassDefiner(DCSwitch::addConstructToMap, DCSwitch::addPrimitiveAssignFnsToMap, DCSwitch::addClassAssignFnsToMap, DCSwitch::debugName); } +std::map DCSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCSwitch_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCSwitch.hpp b/CGMES_2.4.13_18DEC2013/DCSwitch.hpp index 2512b3a78..52d24bba8 100644 --- a/CGMES_2.4.13_18DEC2013/DCSwitch.hpp +++ b/CGMES_2.4.13_18DEC2013/DCSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCSwitch_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCTerminal.cpp b/CGMES_2.4.13_18DEC2013/DCTerminal.cpp index b845cb069..725c41210 100644 --- a/CGMES_2.4.13_18DEC2013/DCTerminal.cpp +++ b/CGMES_2.4.13_18DEC2013/DCTerminal.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTerminal.DCConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCTerminal::DCTerminal() : DCConductingEquipment(nullptr) {} DCTerminal::~DCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTerminal::getClassNamespaceUrl() const { - { "cim:DCTerminal.DCConductingEquipment", { CGMESProfile::EQ, CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTerminal::getPossibleProfilesForClass() const +const std::string& DCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTerminal::getPossibleProfilesForAttributes() const +const std::list& DCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCBaseTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCConductingEquipment_DCTerminals(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* DCTerminal::debugString() const void DCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTerminal", &DCTerminal_factory); + factory_map.emplace("DCTerminal", &DCTerminal_factory); } void DCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void DCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTerminal.DCConductingEquipment", &assign_DCTerminal_DCConductingEquipment); + assign_map.emplace("DCTerminal.DCConductingEquipment", &assign_DCTerminal_DCConductingEquipment); } void DCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void DCTerminal::addPrimitiveGetFnsToMap(std::map& ge void DCTerminal::addClassGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTerminal.DCConductingEquipment", &get_DCTerminal_DCConductingEquipment); + get_map.emplace("DCTerminal.DCConductingEquipment", &get_DCTerminal_DCConductingEquipment); } void DCTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void DCTerminal::addEnumGetFnsToMap(std::map& get_map DCBaseTerminal::addEnumGetFnsToMap(get_map); } +bool DCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTerminal::declare() { return BaseClassDefiner(DCTerminal::addConstructToMap, DCTerminal::addPrimitiveAssignFnsToMap, DCTerminal::addClassAssignFnsToMap, DCTerminal::debugName); } +std::map DCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCBaseTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTerminal_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCTerminal.hpp b/CGMES_2.4.13_18DEC2013/DCTerminal.hpp index b750fd4c5..232809078 100644 --- a/CGMES_2.4.13_18DEC2013/DCTerminal.hpp +++ b/CGMES_2.4.13_18DEC2013/DCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCBaseTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTerminal_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCTopologicalIsland.cpp b/CGMES_2.4.13_18DEC2013/DCTopologicalIsland.cpp index 1e7a83ea2..a9be60040 100644 --- a/CGMES_2.4.13_18DEC2013/DCTopologicalIsland.cpp +++ b/CGMES_2.4.13_18DEC2013/DCTopologicalIsland.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTopologicalIsland(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTopologicalIsland.DCTopologicalNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + DCTopologicalIsland::DCTopologicalIsland() {} DCTopologicalIsland::~DCTopologicalIsland() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTopologicalIsland::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTopologicalIsland::getClassNamespaceUrl() const { - { "cim:DCTopologicalIsland.DCTopologicalNodes", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTopologicalIsland::getPossibleProfilesForClass() const +const std::string& DCTopologicalIsland::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTopologicalIsland::getPossibleProfilesForAttributes() const +const std::list& DCTopologicalIsland::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTopologicalIsland::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTopologicalIsland::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTopologicalIsland::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTopologicalNode_DCTopologicalIsland(BaseClass*, BaseClass*); @@ -76,7 +108,7 @@ const char* DCTopologicalIsland::debugString() const void DCTopologicalIsland::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTopologicalIsland", &DCTopologicalIsland_factory); + factory_map.emplace("DCTopologicalIsland", &DCTopologicalIsland_factory); } void DCTopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -85,7 +117,7 @@ void DCTopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTopologicalIsland.DCTopologicalNodes", &assign_DCTopologicalIsland_DCTopologicalNodes); + assign_map.emplace("DCTopologicalIsland.DCTopologicalNodes", &assign_DCTopologicalIsland_DCTopologicalNodes); } void DCTopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -96,7 +128,7 @@ void DCTopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTopologicalIsland.DCTopologicalNodes", &get_DCTopologicalIsland_DCTopologicalNodes); + get_map.emplace("DCTopologicalIsland.DCTopologicalNodes", &get_DCTopologicalIsland_DCTopologicalNodes); } void DCTopologicalIsland::addEnumGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void DCTopologicalIsland::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCTopologicalIsland::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTopologicalIsland" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTopologicalIsland::declare() { return BaseClassDefiner(DCTopologicalIsland::addConstructToMap, DCTopologicalIsland::addPrimitiveAssignFnsToMap, DCTopologicalIsland::addClassAssignFnsToMap, DCTopologicalIsland::debugName); } +std::map DCTopologicalIsland::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTopologicalIsland_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCTopologicalIsland.hpp b/CGMES_2.4.13_18DEC2013/DCTopologicalIsland.hpp index 35384ea69..d920deeb3 100644 --- a/CGMES_2.4.13_18DEC2013/DCTopologicalIsland.hpp +++ b/CGMES_2.4.13_18DEC2013/DCTopologicalIsland.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTopologicalIsland_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DCTopologicalNode.cpp b/CGMES_2.4.13_18DEC2013/DCTopologicalNode.cpp index 6c338a5f5..75899ac6d 100644 --- a/CGMES_2.4.13_18DEC2013/DCTopologicalNode.cpp +++ b/CGMES_2.4.13_18DEC2013/DCTopologicalNode.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTopologicalNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTopologicalNode.DCEquipmentContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCTopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + DCTopologicalNode::DCTopologicalNode() : DCEquipmentContainer(nullptr), DCTopologicalIsland(nullptr) {} DCTopologicalNode::~DCTopologicalNode() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTopologicalNode::getAttributeNames() const { - CGMESProfile::SV, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTopologicalNode::getClassNamespaceUrl() const { - { "cim:DCTopologicalNode.DCEquipmentContainer", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCNodes", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCTerminals", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCTopologicalIsland", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTopologicalNode::getPossibleProfilesForClass() const +const std::string& DCTopologicalNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTopologicalNode::getPossibleProfilesForAttributes() const +const std::list& DCTopologicalNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTopologicalNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTopologicalNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTopologicalNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCEquipmentContainer_DCTopologicalNode(BaseClass*, BaseClass*); @@ -150,7 +182,7 @@ const char* DCTopologicalNode::debugString() const void DCTopologicalNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTopologicalNode", &DCTopologicalNode_factory); + factory_map.emplace("DCTopologicalNode", &DCTopologicalNode_factory); } void DCTopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -159,10 +191,10 @@ void DCTopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTopologicalNode.DCEquipmentContainer", &assign_DCTopologicalNode_DCEquipmentContainer); - assign_map.emplace("cim:DCTopologicalNode.DCNodes", &assign_DCTopologicalNode_DCNodes); - assign_map.emplace("cim:DCTopologicalNode.DCTerminals", &assign_DCTopologicalNode_DCTerminals); - assign_map.emplace("cim:DCTopologicalNode.DCTopologicalIsland", &assign_DCTopologicalNode_DCTopologicalIsland); + assign_map.emplace("DCTopologicalNode.DCEquipmentContainer", &assign_DCTopologicalNode_DCEquipmentContainer); + assign_map.emplace("DCTopologicalNode.DCNodes", &assign_DCTopologicalNode_DCNodes); + assign_map.emplace("DCTopologicalNode.DCTerminals", &assign_DCTopologicalNode_DCTerminals); + assign_map.emplace("DCTopologicalNode.DCTopologicalIsland", &assign_DCTopologicalNode_DCTopologicalIsland); } void DCTopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -173,8 +205,8 @@ void DCTopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTopologicalNode.DCEquipmentContainer", &get_DCTopologicalNode_DCEquipmentContainer); - get_map.emplace("cim:DCTopologicalNode.DCNodes", &get_DCTopologicalNode_DCNodes); + get_map.emplace("DCTopologicalNode.DCEquipmentContainer", &get_DCTopologicalNode_DCEquipmentContainer); + get_map.emplace("DCTopologicalNode.DCNodes", &get_DCTopologicalNode_DCNodes); } void DCTopologicalNode::addEnumGetFnsToMap(std::map& get_map) const @@ -182,11 +214,25 @@ void DCTopologicalNode::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCTopologicalNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTopologicalNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTopologicalNode::declare() { return BaseClassDefiner(DCTopologicalNode::addConstructToMap, DCTopologicalNode::addPrimitiveAssignFnsToMap, DCTopologicalNode::addClassAssignFnsToMap, DCTopologicalNode::debugName); } +std::map DCTopologicalNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTopologicalNode_factory() diff --git a/CGMES_2.4.13_18DEC2013/DCTopologicalNode.hpp b/CGMES_2.4.13_18DEC2013/DCTopologicalNode.hpp index 893680baa..e7e56c08c 100644 --- a/CGMES_2.4.13_18DEC2013/DCTopologicalNode.hpp +++ b/CGMES_2.4.13_18DEC2013/DCTopologicalNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTopologicalNode_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DayType.cpp b/CGMES_2.4.13_18DEC2013/DayType.cpp index 3783d542a..827ae166a 100644 --- a/CGMES_2.4.13_18DEC2013/DayType.cpp +++ b/CGMES_2.4.13_18DEC2013/DayType.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DayType(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DayType.SeasonDayTypeSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DayType::DayType() {} DayType::~DayType() {} -static const std::list PossibleProfilesForClass = +const std::list& DayType::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DayType::getClassNamespaceUrl() const { - { "cim:DayType.SeasonDayTypeSchedules", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DayType::getPossibleProfilesForClass() const +const std::string& DayType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DayType::getPossibleProfilesForAttributes() const +const std::list& DayType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DayType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DayType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DayType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeasonDayTypeSchedule_DayType(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DayType::debugString() const void DayType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DayType", &DayType_factory); + factory_map.emplace("DayType", &DayType_factory); } void DayType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DayType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DayType.SeasonDayTypeSchedules", &assign_DayType_SeasonDayTypeSchedules); + assign_map.emplace("DayType.SeasonDayTypeSchedules", &assign_DayType_SeasonDayTypeSchedules); } void DayType::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DayType::addEnumGetFnsToMap(std::map& get_map) c IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DayType::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DayType" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DayType::declare() { return BaseClassDefiner(DayType::addConstructToMap, DayType::addPrimitiveAssignFnsToMap, DayType::addClassAssignFnsToMap, DayType::debugName); } +std::map DayType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DayType_factory() diff --git a/CGMES_2.4.13_18DEC2013/DayType.hpp b/CGMES_2.4.13_18DEC2013/DayType.hpp index 71436c000..92906d300 100644 --- a/CGMES_2.4.13_18DEC2013/DayType.hpp +++ b/CGMES_2.4.13_18DEC2013/DayType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DayType_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Diagram.cpp b/CGMES_2.4.13_18DEC2013/Diagram.cpp index 20da79106..d76030e85 100644 --- a/CGMES_2.4.13_18DEC2013/Diagram.cpp +++ b/CGMES_2.4.13_18DEC2013/Diagram.cpp @@ -13,38 +13,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Diagram(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Diagram.DiagramElements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.DiagramStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.orientation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.x1InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.x2InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.y1InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.y2InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + Diagram::Diagram() : DiagramStyle(nullptr) {} Diagram::~Diagram() {} -static const std::list PossibleProfilesForClass = +const std::list& Diagram::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Diagram::getClassNamespaceUrl() const { - { "cim:Diagram.DiagramElements", { CGMESProfile::DL, } }, - { "cim:Diagram.DiagramStyle", { CGMESProfile::DL, } }, - { "cim:Diagram.orientation", { CGMESProfile::DL, } }, - { "cim:Diagram.x1InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.x2InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.y1InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.y2InitialView", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Diagram::getPossibleProfilesForClass() const +const std::string& Diagram::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Diagram::getPossibleProfilesForAttributes() const +const std::list& Diagram::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Diagram::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Diagram::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Diagram::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_Diagram(BaseClass*, BaseClass*); @@ -249,43 +281,49 @@ const char* Diagram::debugString() const void Diagram::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Diagram", &Diagram_factory); + factory_map.emplace("Diagram", &Diagram_factory); } void Diagram::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Diagram.orientation", &assign_Diagram_orientation); - assign_map.emplace("cim:Diagram.x1InitialView", &assign_Diagram_x1InitialView); - assign_map.emplace("cim:Diagram.x2InitialView", &assign_Diagram_x2InitialView); - assign_map.emplace("cim:Diagram.y1InitialView", &assign_Diagram_y1InitialView); - assign_map.emplace("cim:Diagram.y2InitialView", &assign_Diagram_y2InitialView); + assign_map.emplace("Diagram.orientation", &assign_Diagram_orientation); + assign_map.emplace("Diagram.x1InitialView", &assign_Diagram_x1InitialView); + assign_map.emplace("Diagram.x2InitialView", &assign_Diagram_x2InitialView); + assign_map.emplace("Diagram.y1InitialView", &assign_Diagram_y1InitialView); + assign_map.emplace("Diagram.y2InitialView", &assign_Diagram_y2InitialView); } void Diagram::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Diagram.DiagramElements", &assign_Diagram_DiagramElements); - assign_map.emplace("cim:Diagram.DiagramStyle", &assign_Diagram_DiagramStyle); + assign_map.emplace("Diagram.DiagramElements", &assign_Diagram_DiagramElements); + assign_map.emplace("Diagram.DiagramStyle", &assign_Diagram_DiagramStyle); } void Diagram::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.x1InitialView", &get_Diagram_x1InitialView); - get_map.emplace("cim:Diagram.x2InitialView", &get_Diagram_x2InitialView); - get_map.emplace("cim:Diagram.y1InitialView", &get_Diagram_y1InitialView); - get_map.emplace("cim:Diagram.y2InitialView", &get_Diagram_y2InitialView); + get_map.emplace("Diagram.x1InitialView", &get_Diagram_x1InitialView); + get_map.emplace("Diagram.x2InitialView", &get_Diagram_x2InitialView); + get_map.emplace("Diagram.y1InitialView", &get_Diagram_y1InitialView); + get_map.emplace("Diagram.y2InitialView", &get_Diagram_y2InitialView); } void Diagram::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.DiagramStyle", &get_Diagram_DiagramStyle); + get_map.emplace("Diagram.DiagramStyle", &get_Diagram_DiagramStyle); } void Diagram::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.orientation", &get_Diagram_orientation); + get_map.emplace("Diagram.orientation", &get_Diagram_orientation); +} + +bool Diagram::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Diagram" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Diagram::declare() @@ -293,6 +331,14 @@ const BaseClassDefiner Diagram::declare() return BaseClassDefiner(Diagram::addConstructToMap, Diagram::addPrimitiveAssignFnsToMap, Diagram::addClassAssignFnsToMap, Diagram::debugName); } +std::map Diagram::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Diagram_factory() diff --git a/CGMES_2.4.13_18DEC2013/Diagram.hpp b/CGMES_2.4.13_18DEC2013/Diagram.hpp index f8820ae2f..dab6f1138 100644 --- a/CGMES_2.4.13_18DEC2013/Diagram.hpp +++ b/CGMES_2.4.13_18DEC2013/Diagram.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "OrientationKind.hpp" #include "Simple_Float.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Diagram_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiagramLayoutVersion.cpp b/CGMES_2.4.13_18DEC2013/DiagramLayoutVersion.cpp index 55ea4f1cf..e8e0808d7 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramLayoutVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/DiagramLayoutVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramLayoutVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramLayoutVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramLayoutVersion::DiagramLayoutVersion() {} DiagramLayoutVersion::~DiagramLayoutVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramLayoutVersion::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramLayoutVersion::getClassNamespaceUrl() const { - { "cim:DiagramLayoutVersion.baseUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.baseURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.date", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.differenceModelURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.entsoeUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.entsoeURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.modelDescriptionURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.namespaceRDF", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.namespaceUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.shortName", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramLayoutVersion::getPossibleProfilesForClass() const +const std::string& DiagramLayoutVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramLayoutVersion::getPossibleProfilesForAttributes() const +const std::list& DiagramLayoutVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramLayoutVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramLayoutVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramLayoutVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramLayoutVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* DiagramLayoutVersion::debugString() const void DiagramLayoutVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramLayoutVersion", &DiagramLayoutVersion_factory); + factory_map.emplace("DiagramLayoutVersion", &DiagramLayoutVersion_factory); } void DiagramLayoutVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramLayoutVersion.baseUML", &assign_DiagramLayoutVersion_baseUML); - assign_map.emplace("cim:DiagramLayoutVersion.baseURI", &assign_DiagramLayoutVersion_baseURI); - assign_map.emplace("cim:DiagramLayoutVersion.date", &assign_DiagramLayoutVersion_date); - assign_map.emplace("cim:DiagramLayoutVersion.differenceModelURI", &assign_DiagramLayoutVersion_differenceModelURI); - assign_map.emplace("cim:DiagramLayoutVersion.entsoeUML", &assign_DiagramLayoutVersion_entsoeUML); - assign_map.emplace("cim:DiagramLayoutVersion.entsoeURI", &assign_DiagramLayoutVersion_entsoeURI); - assign_map.emplace("cim:DiagramLayoutVersion.modelDescriptionURI", &assign_DiagramLayoutVersion_modelDescriptionURI); - assign_map.emplace("cim:DiagramLayoutVersion.namespaceRDF", &assign_DiagramLayoutVersion_namespaceRDF); - assign_map.emplace("cim:DiagramLayoutVersion.namespaceUML", &assign_DiagramLayoutVersion_namespaceUML); - assign_map.emplace("cim:DiagramLayoutVersion.shortName", &assign_DiagramLayoutVersion_shortName); + assign_map.emplace("DiagramLayoutVersion.baseUML", &assign_DiagramLayoutVersion_baseUML); + assign_map.emplace("DiagramLayoutVersion.baseURI", &assign_DiagramLayoutVersion_baseURI); + assign_map.emplace("DiagramLayoutVersion.date", &assign_DiagramLayoutVersion_date); + assign_map.emplace("DiagramLayoutVersion.differenceModelURI", &assign_DiagramLayoutVersion_differenceModelURI); + assign_map.emplace("DiagramLayoutVersion.entsoeUML", &assign_DiagramLayoutVersion_entsoeUML); + assign_map.emplace("DiagramLayoutVersion.entsoeURI", &assign_DiagramLayoutVersion_entsoeURI); + assign_map.emplace("DiagramLayoutVersion.modelDescriptionURI", &assign_DiagramLayoutVersion_modelDescriptionURI); + assign_map.emplace("DiagramLayoutVersion.namespaceRDF", &assign_DiagramLayoutVersion_namespaceRDF); + assign_map.emplace("DiagramLayoutVersion.namespaceUML", &assign_DiagramLayoutVersion_namespaceUML); + assign_map.emplace("DiagramLayoutVersion.shortName", &assign_DiagramLayoutVersion_shortName); } void DiagramLayoutVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void DiagramLayoutVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramLayoutVersion.baseUML", &get_DiagramLayoutVersion_baseUML); - get_map.emplace("cim:DiagramLayoutVersion.baseURI", &get_DiagramLayoutVersion_baseURI); - get_map.emplace("cim:DiagramLayoutVersion.date", &get_DiagramLayoutVersion_date); - get_map.emplace("cim:DiagramLayoutVersion.differenceModelURI", &get_DiagramLayoutVersion_differenceModelURI); - get_map.emplace("cim:DiagramLayoutVersion.entsoeUML", &get_DiagramLayoutVersion_entsoeUML); - get_map.emplace("cim:DiagramLayoutVersion.entsoeURI", &get_DiagramLayoutVersion_entsoeURI); - get_map.emplace("cim:DiagramLayoutVersion.modelDescriptionURI", &get_DiagramLayoutVersion_modelDescriptionURI); - get_map.emplace("cim:DiagramLayoutVersion.namespaceRDF", &get_DiagramLayoutVersion_namespaceRDF); - get_map.emplace("cim:DiagramLayoutVersion.namespaceUML", &get_DiagramLayoutVersion_namespaceUML); - get_map.emplace("cim:DiagramLayoutVersion.shortName", &get_DiagramLayoutVersion_shortName); + get_map.emplace("DiagramLayoutVersion.baseUML", &get_DiagramLayoutVersion_baseUML); + get_map.emplace("DiagramLayoutVersion.baseURI", &get_DiagramLayoutVersion_baseURI); + get_map.emplace("DiagramLayoutVersion.date", &get_DiagramLayoutVersion_date); + get_map.emplace("DiagramLayoutVersion.differenceModelURI", &get_DiagramLayoutVersion_differenceModelURI); + get_map.emplace("DiagramLayoutVersion.entsoeUML", &get_DiagramLayoutVersion_entsoeUML); + get_map.emplace("DiagramLayoutVersion.entsoeURI", &get_DiagramLayoutVersion_entsoeURI); + get_map.emplace("DiagramLayoutVersion.modelDescriptionURI", &get_DiagramLayoutVersion_modelDescriptionURI); + get_map.emplace("DiagramLayoutVersion.namespaceRDF", &get_DiagramLayoutVersion_namespaceRDF); + get_map.emplace("DiagramLayoutVersion.namespaceUML", &get_DiagramLayoutVersion_namespaceUML); + get_map.emplace("DiagramLayoutVersion.shortName", &get_DiagramLayoutVersion_shortName); } void DiagramLayoutVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void DiagramLayoutVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiagramLayoutVersion::declare() { return BaseClassDefiner(DiagramLayoutVersion::addConstructToMap, DiagramLayoutVersion::addPrimitiveAssignFnsToMap, DiagramLayoutVersion::addClassAssignFnsToMap, DiagramLayoutVersion::debugName); } +std::map DiagramLayoutVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramLayoutVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiagramLayoutVersion.hpp b/CGMES_2.4.13_18DEC2013/DiagramLayoutVersion.hpp index e260f2faf..abc23a584 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramLayoutVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/DiagramLayoutVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramLayoutVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiagramObject.cpp b/CGMES_2.4.13_18DEC2013/DiagramObject.cpp index 26515a78e..5c6978158 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramObject.cpp +++ b/CGMES_2.4.13_18DEC2013/DiagramObject.cpp @@ -16,41 +16,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObject.Diagram", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.DiagramObjectPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.DiagramObjectStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.IdentifiedObject", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.VisibilityLayers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.drawingOrder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.isPolygon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.offsetX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.offsetY", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.rotation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObject::DiagramObject() : Diagram(nullptr), DiagramObjectStyle(nullptr), IdentifiedObject(nullptr) {} DiagramObject::~DiagramObject() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObject::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObject::getClassNamespaceUrl() const { - { "cim:DiagramObject.Diagram", { CGMESProfile::DL, } }, - { "cim:DiagramObject.DiagramObjectPoints", { CGMESProfile::DL, } }, - { "cim:DiagramObject.DiagramObjectStyle", { CGMESProfile::DL, } }, - { "cim:DiagramObject.IdentifiedObject", { CGMESProfile::DL, } }, - { "cim:DiagramObject.VisibilityLayers", { CGMESProfile::DL, } }, - { "cim:DiagramObject.drawingOrder", { CGMESProfile::DL, } }, - { "cim:DiagramObject.isPolygon", { CGMESProfile::DL, } }, - { "cim:DiagramObject.offsetX", { CGMESProfile::DL, } }, - { "cim:DiagramObject.offsetY", { CGMESProfile::DL, } }, - { "cim:DiagramObject.rotation", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObject::getPossibleProfilesForClass() const +const std::string& DiagramObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObject::getPossibleProfilesForAttributes() const +const std::list& DiagramObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Diagram_DiagramElements(BaseClass*, BaseClass*); @@ -335,43 +367,43 @@ const char* DiagramObject::debugString() const void DiagramObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObject", &DiagramObject_factory); + factory_map.emplace("DiagramObject", &DiagramObject_factory); } void DiagramObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObject.drawingOrder", &assign_DiagramObject_drawingOrder); - assign_map.emplace("cim:DiagramObject.isPolygon", &assign_DiagramObject_isPolygon); - assign_map.emplace("cim:DiagramObject.offsetX", &assign_DiagramObject_offsetX); - assign_map.emplace("cim:DiagramObject.offsetY", &assign_DiagramObject_offsetY); - assign_map.emplace("cim:DiagramObject.rotation", &assign_DiagramObject_rotation); + assign_map.emplace("DiagramObject.drawingOrder", &assign_DiagramObject_drawingOrder); + assign_map.emplace("DiagramObject.isPolygon", &assign_DiagramObject_isPolygon); + assign_map.emplace("DiagramObject.offsetX", &assign_DiagramObject_offsetX); + assign_map.emplace("DiagramObject.offsetY", &assign_DiagramObject_offsetY); + assign_map.emplace("DiagramObject.rotation", &assign_DiagramObject_rotation); } void DiagramObject::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObject.Diagram", &assign_DiagramObject_Diagram); - assign_map.emplace("cim:DiagramObject.DiagramObjectPoints", &assign_DiagramObject_DiagramObjectPoints); - assign_map.emplace("cim:DiagramObject.DiagramObjectStyle", &assign_DiagramObject_DiagramObjectStyle); - assign_map.emplace("cim:DiagramObject.IdentifiedObject", &assign_DiagramObject_IdentifiedObject); - assign_map.emplace("cim:DiagramObject.VisibilityLayers", &assign_DiagramObject_VisibilityLayers); + assign_map.emplace("DiagramObject.Diagram", &assign_DiagramObject_Diagram); + assign_map.emplace("DiagramObject.DiagramObjectPoints", &assign_DiagramObject_DiagramObjectPoints); + assign_map.emplace("DiagramObject.DiagramObjectStyle", &assign_DiagramObject_DiagramObjectStyle); + assign_map.emplace("DiagramObject.IdentifiedObject", &assign_DiagramObject_IdentifiedObject); + assign_map.emplace("DiagramObject.VisibilityLayers", &assign_DiagramObject_VisibilityLayers); } void DiagramObject::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObject.drawingOrder", &get_DiagramObject_drawingOrder); - get_map.emplace("cim:DiagramObject.isPolygon", &get_DiagramObject_isPolygon); - get_map.emplace("cim:DiagramObject.offsetX", &get_DiagramObject_offsetX); - get_map.emplace("cim:DiagramObject.offsetY", &get_DiagramObject_offsetY); - get_map.emplace("cim:DiagramObject.rotation", &get_DiagramObject_rotation); + get_map.emplace("DiagramObject.drawingOrder", &get_DiagramObject_drawingOrder); + get_map.emplace("DiagramObject.isPolygon", &get_DiagramObject_isPolygon); + get_map.emplace("DiagramObject.offsetX", &get_DiagramObject_offsetX); + get_map.emplace("DiagramObject.offsetY", &get_DiagramObject_offsetY); + get_map.emplace("DiagramObject.rotation", &get_DiagramObject_rotation); } void DiagramObject::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObject.Diagram", &get_DiagramObject_Diagram); - get_map.emplace("cim:DiagramObject.DiagramObjectStyle", &get_DiagramObject_DiagramObjectStyle); - get_map.emplace("cim:DiagramObject.IdentifiedObject", &get_DiagramObject_IdentifiedObject); + get_map.emplace("DiagramObject.Diagram", &get_DiagramObject_Diagram); + get_map.emplace("DiagramObject.DiagramObjectStyle", &get_DiagramObject_DiagramObjectStyle); + get_map.emplace("DiagramObject.IdentifiedObject", &get_DiagramObject_IdentifiedObject); } void DiagramObject::addEnumGetFnsToMap(std::map& get_map) const @@ -379,11 +411,25 @@ void DiagramObject::addEnumGetFnsToMap(std::map& get_ BaseClass::addEnumGetFnsToMap(get_map); } +bool DiagramObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObject::declare() { return BaseClassDefiner(DiagramObject::addConstructToMap, DiagramObject::addPrimitiveAssignFnsToMap, DiagramObject::addClassAssignFnsToMap, DiagramObject::debugName); } +std::map DiagramObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObject_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiagramObject.hpp b/CGMES_2.4.13_18DEC2013/DiagramObject.hpp index b755a906d..5bafaf606 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramObject.hpp +++ b/CGMES_2.4.13_18DEC2013/DiagramObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "Integer.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObject_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiagramObjectGluePoint.cpp b/CGMES_2.4.13_18DEC2013/DiagramObjectGluePoint.cpp index eea8918f9..43406562a 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramObjectGluePoint.cpp +++ b/CGMES_2.4.13_18DEC2013/DiagramObjectGluePoint.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectGluePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectGluePoint.DiagramObjectPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectGluePoint::DiagramObjectGluePoint() {} DiagramObjectGluePoint::~DiagramObjectGluePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectGluePoint::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectGluePoint::getClassNamespaceUrl() const { - { "cim:DiagramObjectGluePoint.DiagramObjectPoints", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectGluePoint::getPossibleProfilesForClass() const +const std::string& DiagramObjectGluePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectGluePoint::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectGluePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectGluePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectGluePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectGluePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObjectPoint_DiagramObjectGluePoint(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramObjectGluePoint::debugString() const void DiagramObjectGluePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectGluePoint", &DiagramObjectGluePoint_factory); + factory_map.emplace("DiagramObjectGluePoint", &DiagramObjectGluePoint_factory); } void DiagramObjectGluePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramObjectGluePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectGluePoint.DiagramObjectPoints", &assign_DiagramObjectGluePoint_DiagramObjectPoints); + assign_map.emplace("DiagramObjectGluePoint.DiagramObjectPoints", &assign_DiagramObjectGluePoint_DiagramObjectPoints); } void DiagramObjectGluePoint::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramObjectGluePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectGluePoint::declare() { return BaseClassDefiner(DiagramObjectGluePoint::addConstructToMap, DiagramObjectGluePoint::addPrimitiveAssignFnsToMap, DiagramObjectGluePoint::addClassAssignFnsToMap, DiagramObjectGluePoint::debugName); } +std::map DiagramObjectGluePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectGluePoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiagramObjectGluePoint.hpp b/CGMES_2.4.13_18DEC2013/DiagramObjectGluePoint.hpp index fec9f8e23..e99190a4f 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramObjectGluePoint.hpp +++ b/CGMES_2.4.13_18DEC2013/DiagramObjectGluePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectGluePoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiagramObjectPoint.cpp b/CGMES_2.4.13_18DEC2013/DiagramObjectPoint.cpp index 4afd45f45..a422e8c03 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramObjectPoint.cpp +++ b/CGMES_2.4.13_18DEC2013/DiagramObjectPoint.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectPoint.DiagramObject", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.DiagramObjectGluePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.xPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.yPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.zPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectPoint::DiagramObjectPoint() : DiagramObject(nullptr), DiagramObjectGluePoint(nullptr) {} DiagramObjectPoint::~DiagramObjectPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectPoint::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectPoint::getClassNamespaceUrl() const { - { "cim:DiagramObjectPoint.DiagramObject", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.DiagramObjectGluePoint", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.sequenceNumber", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.xPosition", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.yPosition", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.zPosition", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectPoint::getPossibleProfilesForClass() const +const std::string& DiagramObjectPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectPoint::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_DiagramObjectPoints(BaseClass*, BaseClass*); @@ -232,37 +264,37 @@ const char* DiagramObjectPoint::debugString() const void DiagramObjectPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectPoint", &DiagramObjectPoint_factory); + factory_map.emplace("DiagramObjectPoint", &DiagramObjectPoint_factory); } void DiagramObjectPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectPoint.sequenceNumber", &assign_DiagramObjectPoint_sequenceNumber); - assign_map.emplace("cim:DiagramObjectPoint.xPosition", &assign_DiagramObjectPoint_xPosition); - assign_map.emplace("cim:DiagramObjectPoint.yPosition", &assign_DiagramObjectPoint_yPosition); - assign_map.emplace("cim:DiagramObjectPoint.zPosition", &assign_DiagramObjectPoint_zPosition); + assign_map.emplace("DiagramObjectPoint.sequenceNumber", &assign_DiagramObjectPoint_sequenceNumber); + assign_map.emplace("DiagramObjectPoint.xPosition", &assign_DiagramObjectPoint_xPosition); + assign_map.emplace("DiagramObjectPoint.yPosition", &assign_DiagramObjectPoint_yPosition); + assign_map.emplace("DiagramObjectPoint.zPosition", &assign_DiagramObjectPoint_zPosition); } void DiagramObjectPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectPoint.DiagramObject", &assign_DiagramObjectPoint_DiagramObject); - assign_map.emplace("cim:DiagramObjectPoint.DiagramObjectGluePoint", &assign_DiagramObjectPoint_DiagramObjectGluePoint); + assign_map.emplace("DiagramObjectPoint.DiagramObject", &assign_DiagramObjectPoint_DiagramObject); + assign_map.emplace("DiagramObjectPoint.DiagramObjectGluePoint", &assign_DiagramObjectPoint_DiagramObjectGluePoint); } void DiagramObjectPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObjectPoint.sequenceNumber", &get_DiagramObjectPoint_sequenceNumber); - get_map.emplace("cim:DiagramObjectPoint.xPosition", &get_DiagramObjectPoint_xPosition); - get_map.emplace("cim:DiagramObjectPoint.yPosition", &get_DiagramObjectPoint_yPosition); - get_map.emplace("cim:DiagramObjectPoint.zPosition", &get_DiagramObjectPoint_zPosition); + get_map.emplace("DiagramObjectPoint.sequenceNumber", &get_DiagramObjectPoint_sequenceNumber); + get_map.emplace("DiagramObjectPoint.xPosition", &get_DiagramObjectPoint_xPosition); + get_map.emplace("DiagramObjectPoint.yPosition", &get_DiagramObjectPoint_yPosition); + get_map.emplace("DiagramObjectPoint.zPosition", &get_DiagramObjectPoint_zPosition); } void DiagramObjectPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObjectPoint.DiagramObject", &get_DiagramObjectPoint_DiagramObject); - get_map.emplace("cim:DiagramObjectPoint.DiagramObjectGluePoint", &get_DiagramObjectPoint_DiagramObjectGluePoint); + get_map.emplace("DiagramObjectPoint.DiagramObject", &get_DiagramObjectPoint_DiagramObject); + get_map.emplace("DiagramObjectPoint.DiagramObjectGluePoint", &get_DiagramObjectPoint_DiagramObjectGluePoint); } void DiagramObjectPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -270,11 +302,25 @@ void DiagramObjectPoint::addEnumGetFnsToMap(std::map& BaseClass::addEnumGetFnsToMap(get_map); } +bool DiagramObjectPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObjectPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectPoint::declare() { return BaseClassDefiner(DiagramObjectPoint::addConstructToMap, DiagramObjectPoint::addPrimitiveAssignFnsToMap, DiagramObjectPoint::addClassAssignFnsToMap, DiagramObjectPoint::debugName); } +std::map DiagramObjectPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectPoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiagramObjectPoint.hpp b/CGMES_2.4.13_18DEC2013/DiagramObjectPoint.hpp index ed1f2dcc5..714be009e 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramObjectPoint.hpp +++ b/CGMES_2.4.13_18DEC2013/DiagramObjectPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectPoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiagramObjectStyle.cpp b/CGMES_2.4.13_18DEC2013/DiagramObjectStyle.cpp index db870f870..a2439ade4 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramObjectStyle.cpp +++ b/CGMES_2.4.13_18DEC2013/DiagramObjectStyle.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectStyle(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectStyle.StyledObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectStyle::DiagramObjectStyle() {} DiagramObjectStyle::~DiagramObjectStyle() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectStyle::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectStyle::getClassNamespaceUrl() const { - { "cim:DiagramObjectStyle.StyledObjects", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectStyle::getPossibleProfilesForClass() const +const std::string& DiagramObjectStyle::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectStyle::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectStyle::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectStyle::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectStyle::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectStyle::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_DiagramObjectStyle(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramObjectStyle::debugString() const void DiagramObjectStyle::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectStyle", &DiagramObjectStyle_factory); + factory_map.emplace("DiagramObjectStyle", &DiagramObjectStyle_factory); } void DiagramObjectStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramObjectStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectStyle.StyledObjects", &assign_DiagramObjectStyle_StyledObjects); + assign_map.emplace("DiagramObjectStyle.StyledObjects", &assign_DiagramObjectStyle_StyledObjects); } void DiagramObjectStyle::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramObjectStyle::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramObjectStyle::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObjectStyle" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectStyle::declare() { return BaseClassDefiner(DiagramObjectStyle::addConstructToMap, DiagramObjectStyle::addPrimitiveAssignFnsToMap, DiagramObjectStyle::addClassAssignFnsToMap, DiagramObjectStyle::debugName); } +std::map DiagramObjectStyle::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectStyle_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiagramObjectStyle.hpp b/CGMES_2.4.13_18DEC2013/DiagramObjectStyle.hpp index a2dc55692..492f12573 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramObjectStyle.hpp +++ b/CGMES_2.4.13_18DEC2013/DiagramObjectStyle.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectStyle_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiagramStyle.cpp b/CGMES_2.4.13_18DEC2013/DiagramStyle.cpp index dd98ebef0..0cb05ba20 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramStyle.cpp +++ b/CGMES_2.4.13_18DEC2013/DiagramStyle.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramStyle(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramStyle.Diagram", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramStyle::DiagramStyle() {} DiagramStyle::~DiagramStyle() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramStyle::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramStyle::getClassNamespaceUrl() const { - { "cim:DiagramStyle.Diagram", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramStyle::getPossibleProfilesForClass() const +const std::string& DiagramStyle::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramStyle::getPossibleProfilesForAttributes() const +const std::list& DiagramStyle::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramStyle::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramStyle::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramStyle::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Diagram_DiagramStyle(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramStyle::debugString() const void DiagramStyle::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramStyle", &DiagramStyle_factory); + factory_map.emplace("DiagramStyle", &DiagramStyle_factory); } void DiagramStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramStyle.Diagram", &assign_DiagramStyle_Diagram); + assign_map.emplace("DiagramStyle.Diagram", &assign_DiagramStyle_Diagram); } void DiagramStyle::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramStyle::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramStyle::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramStyle" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramStyle::declare() { return BaseClassDefiner(DiagramStyle::addConstructToMap, DiagramStyle::addPrimitiveAssignFnsToMap, DiagramStyle::addClassAssignFnsToMap, DiagramStyle::debugName); } +std::map DiagramStyle::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramStyle_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiagramStyle.hpp b/CGMES_2.4.13_18DEC2013/DiagramStyle.hpp index 76311dfe7..e816715cf 100644 --- a/CGMES_2.4.13_18DEC2013/DiagramStyle.hpp +++ b/CGMES_2.4.13_18DEC2013/DiagramStyle.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramStyle_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC1A.cpp b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC1A.cpp index 590aabc67..29aef6281 100644 --- a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC1A.cpp +++ b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC1A.esc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.kan", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.ketl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tan", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tw5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.val", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vanmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vomax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vomin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtlmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC1A::DiscExcContIEEEDEC1A() {} DiscExcContIEEEDEC1A::~DiscExcContIEEEDEC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC1A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC1A.esc", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.kan", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.ketl", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tan", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.td", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tl1", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tl2", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tw5", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.val", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vanmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vomax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vomin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vsmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vsmin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtc", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtlmt", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtm", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtn", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC1A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC1A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC1A_esc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* DiscExcContIEEEDEC1A::debugString() const void DiscExcContIEEEDEC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC1A", &DiscExcContIEEEDEC1A_factory); + factory_map.emplace("DiscExcContIEEEDEC1A", &DiscExcContIEEEDEC1A_factory); } void DiscExcContIEEEDEC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC1A.esc", &assign_DiscExcContIEEEDEC1A_esc); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.kan", &assign_DiscExcContIEEEDEC1A_kan); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.ketl", &assign_DiscExcContIEEEDEC1A_ketl); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tan", &assign_DiscExcContIEEEDEC1A_tan); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.td", &assign_DiscExcContIEEEDEC1A_td); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tl1", &assign_DiscExcContIEEEDEC1A_tl1); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tl2", &assign_DiscExcContIEEEDEC1A_tl2); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tw5", &assign_DiscExcContIEEEDEC1A_tw5); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.val", &assign_DiscExcContIEEEDEC1A_val); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vanmax", &assign_DiscExcContIEEEDEC1A_vanmax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vomax", &assign_DiscExcContIEEEDEC1A_vomax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vomin", &assign_DiscExcContIEEEDEC1A_vomin); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vsmax", &assign_DiscExcContIEEEDEC1A_vsmax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vsmin", &assign_DiscExcContIEEEDEC1A_vsmin); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtc", &assign_DiscExcContIEEEDEC1A_vtc); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtlmt", &assign_DiscExcContIEEEDEC1A_vtlmt); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtm", &assign_DiscExcContIEEEDEC1A_vtm); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtn", &assign_DiscExcContIEEEDEC1A_vtn); + assign_map.emplace("DiscExcContIEEEDEC1A.esc", &assign_DiscExcContIEEEDEC1A_esc); + assign_map.emplace("DiscExcContIEEEDEC1A.kan", &assign_DiscExcContIEEEDEC1A_kan); + assign_map.emplace("DiscExcContIEEEDEC1A.ketl", &assign_DiscExcContIEEEDEC1A_ketl); + assign_map.emplace("DiscExcContIEEEDEC1A.tan", &assign_DiscExcContIEEEDEC1A_tan); + assign_map.emplace("DiscExcContIEEEDEC1A.td", &assign_DiscExcContIEEEDEC1A_td); + assign_map.emplace("DiscExcContIEEEDEC1A.tl1", &assign_DiscExcContIEEEDEC1A_tl1); + assign_map.emplace("DiscExcContIEEEDEC1A.tl2", &assign_DiscExcContIEEEDEC1A_tl2); + assign_map.emplace("DiscExcContIEEEDEC1A.tw5", &assign_DiscExcContIEEEDEC1A_tw5); + assign_map.emplace("DiscExcContIEEEDEC1A.val", &assign_DiscExcContIEEEDEC1A_val); + assign_map.emplace("DiscExcContIEEEDEC1A.vanmax", &assign_DiscExcContIEEEDEC1A_vanmax); + assign_map.emplace("DiscExcContIEEEDEC1A.vomax", &assign_DiscExcContIEEEDEC1A_vomax); + assign_map.emplace("DiscExcContIEEEDEC1A.vomin", &assign_DiscExcContIEEEDEC1A_vomin); + assign_map.emplace("DiscExcContIEEEDEC1A.vsmax", &assign_DiscExcContIEEEDEC1A_vsmax); + assign_map.emplace("DiscExcContIEEEDEC1A.vsmin", &assign_DiscExcContIEEEDEC1A_vsmin); + assign_map.emplace("DiscExcContIEEEDEC1A.vtc", &assign_DiscExcContIEEEDEC1A_vtc); + assign_map.emplace("DiscExcContIEEEDEC1A.vtlmt", &assign_DiscExcContIEEEDEC1A_vtlmt); + assign_map.emplace("DiscExcContIEEEDEC1A.vtm", &assign_DiscExcContIEEEDEC1A_vtm); + assign_map.emplace("DiscExcContIEEEDEC1A.vtn", &assign_DiscExcContIEEEDEC1A_vtn); } void DiscExcContIEEEDEC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void DiscExcContIEEEDEC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC1A.esc", &get_DiscExcContIEEEDEC1A_esc); - get_map.emplace("cim:DiscExcContIEEEDEC1A.kan", &get_DiscExcContIEEEDEC1A_kan); - get_map.emplace("cim:DiscExcContIEEEDEC1A.ketl", &get_DiscExcContIEEEDEC1A_ketl); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tan", &get_DiscExcContIEEEDEC1A_tan); - get_map.emplace("cim:DiscExcContIEEEDEC1A.td", &get_DiscExcContIEEEDEC1A_td); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tl1", &get_DiscExcContIEEEDEC1A_tl1); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tl2", &get_DiscExcContIEEEDEC1A_tl2); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tw5", &get_DiscExcContIEEEDEC1A_tw5); - get_map.emplace("cim:DiscExcContIEEEDEC1A.val", &get_DiscExcContIEEEDEC1A_val); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vanmax", &get_DiscExcContIEEEDEC1A_vanmax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vomax", &get_DiscExcContIEEEDEC1A_vomax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vomin", &get_DiscExcContIEEEDEC1A_vomin); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vsmax", &get_DiscExcContIEEEDEC1A_vsmax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vsmin", &get_DiscExcContIEEEDEC1A_vsmin); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtc", &get_DiscExcContIEEEDEC1A_vtc); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtlmt", &get_DiscExcContIEEEDEC1A_vtlmt); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtm", &get_DiscExcContIEEEDEC1A_vtm); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtn", &get_DiscExcContIEEEDEC1A_vtn); + get_map.emplace("DiscExcContIEEEDEC1A.esc", &get_DiscExcContIEEEDEC1A_esc); + get_map.emplace("DiscExcContIEEEDEC1A.kan", &get_DiscExcContIEEEDEC1A_kan); + get_map.emplace("DiscExcContIEEEDEC1A.ketl", &get_DiscExcContIEEEDEC1A_ketl); + get_map.emplace("DiscExcContIEEEDEC1A.tan", &get_DiscExcContIEEEDEC1A_tan); + get_map.emplace("DiscExcContIEEEDEC1A.td", &get_DiscExcContIEEEDEC1A_td); + get_map.emplace("DiscExcContIEEEDEC1A.tl1", &get_DiscExcContIEEEDEC1A_tl1); + get_map.emplace("DiscExcContIEEEDEC1A.tl2", &get_DiscExcContIEEEDEC1A_tl2); + get_map.emplace("DiscExcContIEEEDEC1A.tw5", &get_DiscExcContIEEEDEC1A_tw5); + get_map.emplace("DiscExcContIEEEDEC1A.val", &get_DiscExcContIEEEDEC1A_val); + get_map.emplace("DiscExcContIEEEDEC1A.vanmax", &get_DiscExcContIEEEDEC1A_vanmax); + get_map.emplace("DiscExcContIEEEDEC1A.vomax", &get_DiscExcContIEEEDEC1A_vomax); + get_map.emplace("DiscExcContIEEEDEC1A.vomin", &get_DiscExcContIEEEDEC1A_vomin); + get_map.emplace("DiscExcContIEEEDEC1A.vsmax", &get_DiscExcContIEEEDEC1A_vsmax); + get_map.emplace("DiscExcContIEEEDEC1A.vsmin", &get_DiscExcContIEEEDEC1A_vsmin); + get_map.emplace("DiscExcContIEEEDEC1A.vtc", &get_DiscExcContIEEEDEC1A_vtc); + get_map.emplace("DiscExcContIEEEDEC1A.vtlmt", &get_DiscExcContIEEEDEC1A_vtlmt); + get_map.emplace("DiscExcContIEEEDEC1A.vtm", &get_DiscExcContIEEEDEC1A_vtm); + get_map.emplace("DiscExcContIEEEDEC1A.vtn", &get_DiscExcContIEEEDEC1A_vtn); } void DiscExcContIEEEDEC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void DiscExcContIEEEDEC1A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC1A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC1A::addConstructToMap, DiscExcContIEEEDEC1A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC1A::addClassAssignFnsToMap, DiscExcContIEEEDEC1A::debugName); } +std::map DiscExcContIEEEDEC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC1A.hpp b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC1A.hpp index d401f3ce2..bbda6b2dd 100644 --- a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC1A.hpp +++ b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC2A.cpp b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC2A.cpp index dc94e52c0..d7f69c3db 100644 --- a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC2A.cpp +++ b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC2A.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC2A.td1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.td2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC2A::DiscExcContIEEEDEC2A() {} DiscExcContIEEEDEC2A::~DiscExcContIEEEDEC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC2A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC2A.td1", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.td2", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vdmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vdmin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vk", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC2A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC2A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC2A_td1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* DiscExcContIEEEDEC2A::debugString() const void DiscExcContIEEEDEC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC2A", &DiscExcContIEEEDEC2A_factory); + factory_map.emplace("DiscExcContIEEEDEC2A", &DiscExcContIEEEDEC2A_factory); } void DiscExcContIEEEDEC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC2A.td1", &assign_DiscExcContIEEEDEC2A_td1); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.td2", &assign_DiscExcContIEEEDEC2A_td2); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vdmax", &assign_DiscExcContIEEEDEC2A_vdmax); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vdmin", &assign_DiscExcContIEEEDEC2A_vdmin); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vk", &assign_DiscExcContIEEEDEC2A_vk); + assign_map.emplace("DiscExcContIEEEDEC2A.td1", &assign_DiscExcContIEEEDEC2A_td1); + assign_map.emplace("DiscExcContIEEEDEC2A.td2", &assign_DiscExcContIEEEDEC2A_td2); + assign_map.emplace("DiscExcContIEEEDEC2A.vdmax", &assign_DiscExcContIEEEDEC2A_vdmax); + assign_map.emplace("DiscExcContIEEEDEC2A.vdmin", &assign_DiscExcContIEEEDEC2A_vdmin); + assign_map.emplace("DiscExcContIEEEDEC2A.vk", &assign_DiscExcContIEEEDEC2A_vk); } void DiscExcContIEEEDEC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void DiscExcContIEEEDEC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC2A.td1", &get_DiscExcContIEEEDEC2A_td1); - get_map.emplace("cim:DiscExcContIEEEDEC2A.td2", &get_DiscExcContIEEEDEC2A_td2); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vdmax", &get_DiscExcContIEEEDEC2A_vdmax); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vdmin", &get_DiscExcContIEEEDEC2A_vdmin); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vk", &get_DiscExcContIEEEDEC2A_vk); + get_map.emplace("DiscExcContIEEEDEC2A.td1", &get_DiscExcContIEEEDEC2A_td1); + get_map.emplace("DiscExcContIEEEDEC2A.td2", &get_DiscExcContIEEEDEC2A_td2); + get_map.emplace("DiscExcContIEEEDEC2A.vdmax", &get_DiscExcContIEEEDEC2A_vdmax); + get_map.emplace("DiscExcContIEEEDEC2A.vdmin", &get_DiscExcContIEEEDEC2A_vdmin); + get_map.emplace("DiscExcContIEEEDEC2A.vk", &get_DiscExcContIEEEDEC2A_vk); } void DiscExcContIEEEDEC2A::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void DiscExcContIEEEDEC2A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC2A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC2A::addConstructToMap, DiscExcContIEEEDEC2A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC2A::addClassAssignFnsToMap, DiscExcContIEEEDEC2A::debugName); } +std::map DiscExcContIEEEDEC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC2A_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC2A.hpp b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC2A.hpp index 0e8a5a1bd..bf9f135a4 100644 --- a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC2A.hpp +++ b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC2A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC3A.cpp b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC3A.cpp index 67dd91242..ba0c94f9b 100644 --- a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC3A.cpp +++ b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC3A.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC3A.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC3A.vtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC3A::DiscExcContIEEEDEC3A() {} DiscExcContIEEEDEC3A::~DiscExcContIEEEDEC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC3A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC3A.tdr", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC3A.vtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC3A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC3A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC3A_tdr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DiscExcContIEEEDEC3A::debugString() const void DiscExcContIEEEDEC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC3A", &DiscExcContIEEEDEC3A_factory); + factory_map.emplace("DiscExcContIEEEDEC3A", &DiscExcContIEEEDEC3A_factory); } void DiscExcContIEEEDEC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC3A.tdr", &assign_DiscExcContIEEEDEC3A_tdr); - assign_map.emplace("cim:DiscExcContIEEEDEC3A.vtmin", &assign_DiscExcContIEEEDEC3A_vtmin); + assign_map.emplace("DiscExcContIEEEDEC3A.tdr", &assign_DiscExcContIEEEDEC3A_tdr); + assign_map.emplace("DiscExcContIEEEDEC3A.vtmin", &assign_DiscExcContIEEEDEC3A_vtmin); } void DiscExcContIEEEDEC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DiscExcContIEEEDEC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC3A.tdr", &get_DiscExcContIEEEDEC3A_tdr); - get_map.emplace("cim:DiscExcContIEEEDEC3A.vtmin", &get_DiscExcContIEEEDEC3A_vtmin); + get_map.emplace("DiscExcContIEEEDEC3A.tdr", &get_DiscExcContIEEEDEC3A_tdr); + get_map.emplace("DiscExcContIEEEDEC3A.vtmin", &get_DiscExcContIEEEDEC3A_vtmin); } void DiscExcContIEEEDEC3A::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DiscExcContIEEEDEC3A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC3A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC3A::addConstructToMap, DiscExcContIEEEDEC3A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC3A::addClassAssignFnsToMap, DiscExcContIEEEDEC3A::debugName); } +std::map DiscExcContIEEEDEC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC3A_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC3A.hpp b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC3A.hpp index 24ceb2f88..4c5aa480d 100644 --- a/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC3A.hpp +++ b/CGMES_2.4.13_18DEC2013/DiscExcContIEEEDEC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC3A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Disconnector.cpp b/CGMES_2.4.13_18DEC2013/Disconnector.cpp index e64c24d80..0d9016d8f 100644 --- a/CGMES_2.4.13_18DEC2013/Disconnector.cpp +++ b/CGMES_2.4.13_18DEC2013/Disconnector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Disconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Disconnector::Disconnector() {} Disconnector::~Disconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& Disconnector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Disconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Disconnector::getPossibleProfilesForClass() const +const std::string& Disconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Disconnector::getPossibleProfilesForAttributes() const +const std::list& Disconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Disconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Disconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Disconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Disconnector::debugName[] = "Disconnector"; @@ -47,7 +79,7 @@ const char* Disconnector::debugString() const void Disconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Disconnector", &Disconnector_factory); + factory_map.emplace("Disconnector", &Disconnector_factory); } void Disconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Disconnector::addEnumGetFnsToMap(std::map& get_m Switch::addEnumGetFnsToMap(get_map); } +bool Disconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Disconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Disconnector::declare() { return BaseClassDefiner(Disconnector::addConstructToMap, Disconnector::addPrimitiveAssignFnsToMap, Disconnector::addClassAssignFnsToMap, Disconnector::debugName); } +std::map Disconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Disconnector_factory() diff --git a/CGMES_2.4.13_18DEC2013/Disconnector.hpp b/CGMES_2.4.13_18DEC2013/Disconnector.hpp index 844173634..ee167a6d1 100644 --- a/CGMES_2.4.13_18DEC2013/Disconnector.hpp +++ b/CGMES_2.4.13_18DEC2013/Disconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Disconnector_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlDynamics.cpp b/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlDynamics.cpp index 1e6569ea1..9073c219f 100644 --- a/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscontinuousExcitationControlDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscontinuousExcitationControlDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscontinuousExcitationControlDynamics::DiscontinuousExcitationControlDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} DiscontinuousExcitationControlDynamics::~DiscontinuousExcitationControlDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscontinuousExcitationControlDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscontinuousExcitationControlDynamics::getClassNamespaceUrl() const { - { "cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:DiscontinuousExcitationControlDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscontinuousExcitationControlDynamics::getPossibleProfilesForClass() const +const std::string& DiscontinuousExcitationControlDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes() const +const std::list& DiscontinuousExcitationControlDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscontinuousExcitationControlDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscontinuousExcitationControlDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscontinuousExcitationControlDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* DiscontinuousExcitationControlDynamics::debugString() const void DiscontinuousExcitationControlDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscontinuousExcitationControlDynamics", &DiscontinuousExcitationControlDynamics_factory); + factory_map.emplace("DiscontinuousExcitationControlDynamics", &DiscontinuousExcitationControlDynamics_factory); } void DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap(std::uno void DiscontinuousExcitationControlDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:DiscontinuousExcitationControlDynamics.RemoteInputSignal", &assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal); + assign_map.emplace("DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); + assign_map.emplace("DiscontinuousExcitationControlDynamics.RemoteInputSignal", &assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal); } void DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &get_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); + get_map.emplace("DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &get_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); } void DiscontinuousExcitationControlDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void DiscontinuousExcitationControlDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscontinuousExcitationControlDynamics::declare() { return BaseClassDefiner(DiscontinuousExcitationControlDynamics::addConstructToMap, DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap, DiscontinuousExcitationControlDynamics::addClassAssignFnsToMap, DiscontinuousExcitationControlDynamics::debugName); } +std::map DiscontinuousExcitationControlDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscontinuousExcitationControlDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlDynamics.hpp b/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlDynamics.hpp index e0a40c245..a674d954c 100644 --- a/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscontinuousExcitationControlDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlUserDefined.cpp b/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlUserDefined.cpp index f2154bd03..654660541 100644 --- a/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscontinuousExcitationControlUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscontinuousExcitationControlUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscontinuousExcitationControlUserDefined::DiscontinuousExcitationControlUserDefined() {} DiscontinuousExcitationControlUserDefined::~DiscontinuousExcitationControlUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscontinuousExcitationControlUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscontinuousExcitationControlUserDefined::getClassNamespaceUrl() const { - { "cim:DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:DiscontinuousExcitationControlUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscontinuousExcitationControlUserDefined::getPossibleProfilesForClass() const +const std::string& DiscontinuousExcitationControlUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscontinuousExcitationControlUserDefined::getPossibleProfilesForAttributes() const +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscontinuousExcitationControlUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* DiscontinuousExcitationControlUserDefined::debugString() const void DiscontinuousExcitationControlUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscontinuousExcitationControlUserDefined", &DiscontinuousExcitationControlUserDefined_factory); + factory_map.emplace("DiscontinuousExcitationControlUserDefined", &DiscontinuousExcitationControlUserDefined_factory); } void DiscontinuousExcitationControlUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlUserDefined.proprietary", &assign_DiscontinuousExcitationControlUserDefined_proprietary); + assign_map.emplace("DiscontinuousExcitationControlUserDefined.proprietary", &assign_DiscontinuousExcitationControlUserDefined_proprietary); } void DiscontinuousExcitationControlUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", &assign_DiscontinuousExcitationControlUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", &assign_DiscontinuousExcitationControlUserDefined_ProprietaryParameterDynamics); } void DiscontinuousExcitationControlUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscontinuousExcitationControlUserDefined.proprietary", &get_DiscontinuousExcitationControlUserDefined_proprietary); + get_map.emplace("DiscontinuousExcitationControlUserDefined.proprietary", &get_DiscontinuousExcitationControlUserDefined_proprietary); } void DiscontinuousExcitationControlUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void DiscontinuousExcitationControlUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscontinuousExcitationControlUserDefined::declare() { return BaseClassDefiner(DiscontinuousExcitationControlUserDefined::addConstructToMap, DiscontinuousExcitationControlUserDefined::addPrimitiveAssignFnsToMap, DiscontinuousExcitationControlUserDefined::addClassAssignFnsToMap, DiscontinuousExcitationControlUserDefined::debugName); } +std::map DiscontinuousExcitationControlUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscontinuousExcitationControlUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlUserDefined.hpp b/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlUserDefined.hpp index 051d1a48d..d5f249b1b 100644 --- a/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/DiscontinuousExcitationControlUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscontinuousExcitationControlUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Discrete.cpp b/CGMES_2.4.13_18DEC2013/Discrete.cpp index bed7e18ab..1bd375816 100644 --- a/CGMES_2.4.13_18DEC2013/Discrete.cpp +++ b/CGMES_2.4.13_18DEC2013/Discrete.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Discrete(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Discrete.DiscreteValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Discrete.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Discrete::Discrete() : ValueAliasSet(nullptr) {} Discrete::~Discrete() {} -static const std::list PossibleProfilesForClass = +const std::list& Discrete::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Discrete::getClassNamespaceUrl() const { - { "cim:Discrete.DiscreteValues", { CGMESProfile::EQ, } }, - { "cim:Discrete.ValueAliasSet", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Discrete::getPossibleProfilesForClass() const +const std::string& Discrete::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Discrete::getPossibleProfilesForAttributes() const +const std::list& Discrete::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Discrete::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Discrete::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Discrete::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscreteValue_Discrete(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* Discrete::debugString() const void Discrete::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Discrete", &Discrete_factory); + factory_map.emplace("Discrete", &Discrete_factory); } void Discrete::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void Discrete::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Discrete.DiscreteValues", &assign_Discrete_DiscreteValues); - assign_map.emplace("cim:Discrete.ValueAliasSet", &assign_Discrete_ValueAliasSet); + assign_map.emplace("Discrete.DiscreteValues", &assign_Discrete_DiscreteValues); + assign_map.emplace("Discrete.ValueAliasSet", &assign_Discrete_ValueAliasSet); } void Discrete::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void Discrete::addPrimitiveGetFnsToMap(std::map& get_ void Discrete::addClassGetFnsToMap(std::map& get_map) const { Measurement::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Discrete.ValueAliasSet", &get_Discrete_ValueAliasSet); + get_map.emplace("Discrete.ValueAliasSet", &get_Discrete_ValueAliasSet); } void Discrete::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void Discrete::addEnumGetFnsToMap(std::map& get_map) Measurement::addEnumGetFnsToMap(get_map); } +bool Discrete::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Discrete" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Discrete::declare() { return BaseClassDefiner(Discrete::addConstructToMap, Discrete::addPrimitiveAssignFnsToMap, Discrete::addClassAssignFnsToMap, Discrete::debugName); } +std::map Discrete::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Discrete_factory() diff --git a/CGMES_2.4.13_18DEC2013/Discrete.hpp b/CGMES_2.4.13_18DEC2013/Discrete.hpp index 2672d040b..aaf8edce0 100644 --- a/CGMES_2.4.13_18DEC2013/Discrete.hpp +++ b/CGMES_2.4.13_18DEC2013/Discrete.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Discrete_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DiscreteValue.cpp b/CGMES_2.4.13_18DEC2013/DiscreteValue.cpp index a990c7895..0e11b18cd 100644 --- a/CGMES_2.4.13_18DEC2013/DiscreteValue.cpp +++ b/CGMES_2.4.13_18DEC2013/DiscreteValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscreteValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscreteValue.Command", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DiscreteValue.Discrete", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DiscreteValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DiscreteValue::DiscreteValue() : Command(nullptr), Discrete(nullptr) {} DiscreteValue::~DiscreteValue() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscreteValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscreteValue::getClassNamespaceUrl() const { - { "cim:DiscreteValue.Command", { CGMESProfile::EQ, } }, - { "cim:DiscreteValue.Discrete", { CGMESProfile::EQ, } }, - { "cim:DiscreteValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscreteValue::getPossibleProfilesForClass() const +const std::string& DiscreteValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscreteValue::getPossibleProfilesForAttributes() const +const std::list& DiscreteValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscreteValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscreteValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscreteValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Command_DiscreteValue(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* DiscreteValue::debugString() const void DiscreteValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscreteValue", &DiscreteValue_factory); + factory_map.emplace("DiscreteValue", &DiscreteValue_factory); } void DiscreteValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscreteValue.value", &assign_DiscreteValue_value); + assign_map.emplace("DiscreteValue.value", &assign_DiscreteValue_value); } void DiscreteValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscreteValue.Command", &assign_DiscreteValue_Command); - assign_map.emplace("cim:DiscreteValue.Discrete", &assign_DiscreteValue_Discrete); + assign_map.emplace("DiscreteValue.Command", &assign_DiscreteValue_Command); + assign_map.emplace("DiscreteValue.Discrete", &assign_DiscreteValue_Discrete); } void DiscreteValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscreteValue.value", &get_DiscreteValue_value); + get_map.emplace("DiscreteValue.value", &get_DiscreteValue_value); } void DiscreteValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiscreteValue.Discrete", &get_DiscreteValue_Discrete); + get_map.emplace("DiscreteValue.Discrete", &get_DiscreteValue_Discrete); } void DiscreteValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void DiscreteValue::addEnumGetFnsToMap(std::map& get_ MeasurementValue::addEnumGetFnsToMap(get_map); } +bool DiscreteValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiscreteValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiscreteValue::declare() { return BaseClassDefiner(DiscreteValue::addConstructToMap, DiscreteValue::addPrimitiveAssignFnsToMap, DiscreteValue::addClassAssignFnsToMap, DiscreteValue::debugName); } +std::map DiscreteValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscreteValue_factory() diff --git a/CGMES_2.4.13_18DEC2013/DiscreteValue.hpp b/CGMES_2.4.13_18DEC2013/DiscreteValue.hpp index 1fbc352c7..250331f6f 100644 --- a/CGMES_2.4.13_18DEC2013/DiscreteValue.hpp +++ b/CGMES_2.4.13_18DEC2013/DiscreteValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscreteValue_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DynamicsFunctionBlock.cpp b/CGMES_2.4.13_18DEC2013/DynamicsFunctionBlock.cpp index 3ed474991..3e79182d2 100644 --- a/CGMES_2.4.13_18DEC2013/DynamicsFunctionBlock.cpp +++ b/CGMES_2.4.13_18DEC2013/DynamicsFunctionBlock.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DynamicsFunctionBlock(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DynamicsFunctionBlock.enabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DynamicsFunctionBlock::DynamicsFunctionBlock() {} DynamicsFunctionBlock::~DynamicsFunctionBlock() {} -static const std::list PossibleProfilesForClass = +const std::list& DynamicsFunctionBlock::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DynamicsFunctionBlock::getClassNamespaceUrl() const { - { "cim:DynamicsFunctionBlock.enabled", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DynamicsFunctionBlock::getPossibleProfilesForClass() const +const std::string& DynamicsFunctionBlock::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DynamicsFunctionBlock::getPossibleProfilesForAttributes() const +const std::list& DynamicsFunctionBlock::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DynamicsFunctionBlock::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DynamicsFunctionBlock::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DynamicsFunctionBlock::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DynamicsFunctionBlock_enabled(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* DynamicsFunctionBlock::debugString() const void DynamicsFunctionBlock::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DynamicsFunctionBlock", &DynamicsFunctionBlock_factory); + factory_map.emplace("DynamicsFunctionBlock", &DynamicsFunctionBlock_factory); } void DynamicsFunctionBlock::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DynamicsFunctionBlock.enabled", &assign_DynamicsFunctionBlock_enabled); + assign_map.emplace("DynamicsFunctionBlock.enabled", &assign_DynamicsFunctionBlock_enabled); } void DynamicsFunctionBlock::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void DynamicsFunctionBlock::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DynamicsFunctionBlock.enabled", &get_DynamicsFunctionBlock_enabled); + get_map.emplace("DynamicsFunctionBlock.enabled", &get_DynamicsFunctionBlock_enabled); } void DynamicsFunctionBlock::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void DynamicsFunctionBlock::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DynamicsFunctionBlock::declare() { return BaseClassDefiner(DynamicsFunctionBlock::addConstructToMap, DynamicsFunctionBlock::addPrimitiveAssignFnsToMap, DynamicsFunctionBlock::addClassAssignFnsToMap, DynamicsFunctionBlock::debugName); } +std::map DynamicsFunctionBlock::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DynamicsFunctionBlock_factory() diff --git a/CGMES_2.4.13_18DEC2013/DynamicsFunctionBlock.hpp b/CGMES_2.4.13_18DEC2013/DynamicsFunctionBlock.hpp index cfce2f68e..f7a130c52 100644 --- a/CGMES_2.4.13_18DEC2013/DynamicsFunctionBlock.hpp +++ b/CGMES_2.4.13_18DEC2013/DynamicsFunctionBlock.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DynamicsFunctionBlock_factory(); diff --git a/CGMES_2.4.13_18DEC2013/DynamicsVersion.cpp b/CGMES_2.4.13_18DEC2013/DynamicsVersion.cpp index 4a2ca6829..3738aedf3 100644 --- a/CGMES_2.4.13_18DEC2013/DynamicsVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/DynamicsVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DynamicsVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DynamicsVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DynamicsVersion::DynamicsVersion() {} DynamicsVersion::~DynamicsVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& DynamicsVersion::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DynamicsVersion::getClassNamespaceUrl() const { - { "cim:DynamicsVersion.baseUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.baseURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.date", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.differenceModelURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.entsoeUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.entsoeURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.modelDescriptionURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.namespaceRDF", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.namespaceUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.shortName", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DynamicsVersion::getPossibleProfilesForClass() const +const std::string& DynamicsVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DynamicsVersion::getPossibleProfilesForAttributes() const +const std::list& DynamicsVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DynamicsVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DynamicsVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DynamicsVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DynamicsVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* DynamicsVersion::debugString() const void DynamicsVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DynamicsVersion", &DynamicsVersion_factory); + factory_map.emplace("DynamicsVersion", &DynamicsVersion_factory); } void DynamicsVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DynamicsVersion.baseUML", &assign_DynamicsVersion_baseUML); - assign_map.emplace("cim:DynamicsVersion.baseURI", &assign_DynamicsVersion_baseURI); - assign_map.emplace("cim:DynamicsVersion.date", &assign_DynamicsVersion_date); - assign_map.emplace("cim:DynamicsVersion.differenceModelURI", &assign_DynamicsVersion_differenceModelURI); - assign_map.emplace("cim:DynamicsVersion.entsoeUML", &assign_DynamicsVersion_entsoeUML); - assign_map.emplace("cim:DynamicsVersion.entsoeURI", &assign_DynamicsVersion_entsoeURI); - assign_map.emplace("cim:DynamicsVersion.modelDescriptionURI", &assign_DynamicsVersion_modelDescriptionURI); - assign_map.emplace("cim:DynamicsVersion.namespaceRDF", &assign_DynamicsVersion_namespaceRDF); - assign_map.emplace("cim:DynamicsVersion.namespaceUML", &assign_DynamicsVersion_namespaceUML); - assign_map.emplace("cim:DynamicsVersion.shortName", &assign_DynamicsVersion_shortName); + assign_map.emplace("DynamicsVersion.baseUML", &assign_DynamicsVersion_baseUML); + assign_map.emplace("DynamicsVersion.baseURI", &assign_DynamicsVersion_baseURI); + assign_map.emplace("DynamicsVersion.date", &assign_DynamicsVersion_date); + assign_map.emplace("DynamicsVersion.differenceModelURI", &assign_DynamicsVersion_differenceModelURI); + assign_map.emplace("DynamicsVersion.entsoeUML", &assign_DynamicsVersion_entsoeUML); + assign_map.emplace("DynamicsVersion.entsoeURI", &assign_DynamicsVersion_entsoeURI); + assign_map.emplace("DynamicsVersion.modelDescriptionURI", &assign_DynamicsVersion_modelDescriptionURI); + assign_map.emplace("DynamicsVersion.namespaceRDF", &assign_DynamicsVersion_namespaceRDF); + assign_map.emplace("DynamicsVersion.namespaceUML", &assign_DynamicsVersion_namespaceUML); + assign_map.emplace("DynamicsVersion.shortName", &assign_DynamicsVersion_shortName); } void DynamicsVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void DynamicsVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DynamicsVersion.baseUML", &get_DynamicsVersion_baseUML); - get_map.emplace("cim:DynamicsVersion.baseURI", &get_DynamicsVersion_baseURI); - get_map.emplace("cim:DynamicsVersion.date", &get_DynamicsVersion_date); - get_map.emplace("cim:DynamicsVersion.differenceModelURI", &get_DynamicsVersion_differenceModelURI); - get_map.emplace("cim:DynamicsVersion.entsoeUML", &get_DynamicsVersion_entsoeUML); - get_map.emplace("cim:DynamicsVersion.entsoeURI", &get_DynamicsVersion_entsoeURI); - get_map.emplace("cim:DynamicsVersion.modelDescriptionURI", &get_DynamicsVersion_modelDescriptionURI); - get_map.emplace("cim:DynamicsVersion.namespaceRDF", &get_DynamicsVersion_namespaceRDF); - get_map.emplace("cim:DynamicsVersion.namespaceUML", &get_DynamicsVersion_namespaceUML); - get_map.emplace("cim:DynamicsVersion.shortName", &get_DynamicsVersion_shortName); + get_map.emplace("DynamicsVersion.baseUML", &get_DynamicsVersion_baseUML); + get_map.emplace("DynamicsVersion.baseURI", &get_DynamicsVersion_baseURI); + get_map.emplace("DynamicsVersion.date", &get_DynamicsVersion_date); + get_map.emplace("DynamicsVersion.differenceModelURI", &get_DynamicsVersion_differenceModelURI); + get_map.emplace("DynamicsVersion.entsoeUML", &get_DynamicsVersion_entsoeUML); + get_map.emplace("DynamicsVersion.entsoeURI", &get_DynamicsVersion_entsoeURI); + get_map.emplace("DynamicsVersion.modelDescriptionURI", &get_DynamicsVersion_modelDescriptionURI); + get_map.emplace("DynamicsVersion.namespaceRDF", &get_DynamicsVersion_namespaceRDF); + get_map.emplace("DynamicsVersion.namespaceUML", &get_DynamicsVersion_namespaceUML); + get_map.emplace("DynamicsVersion.shortName", &get_DynamicsVersion_shortName); } void DynamicsVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void DynamicsVersion::addEnumGetFnsToMap(std::map& ge BaseClass::addEnumGetFnsToMap(get_map); } +bool DynamicsVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DynamicsVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DynamicsVersion::declare() { return BaseClassDefiner(DynamicsVersion::addConstructToMap, DynamicsVersion::addPrimitiveAssignFnsToMap, DynamicsVersion::addClassAssignFnsToMap, DynamicsVersion::debugName); } +std::map DynamicsVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DynamicsVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/DynamicsVersion.hpp b/CGMES_2.4.13_18DEC2013/DynamicsVersion.hpp index 67ae2df75..ee55e7ffc 100644 --- a/CGMES_2.4.13_18DEC2013/DynamicsVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/DynamicsVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DynamicsVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EarthFaultCompensator.cpp b/CGMES_2.4.13_18DEC2013/EarthFaultCompensator.cpp index f5411585b..45f8ed6b4 100644 --- a/CGMES_2.4.13_18DEC2013/EarthFaultCompensator.cpp +++ b/CGMES_2.4.13_18DEC2013/EarthFaultCompensator.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EarthFaultCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EarthFaultCompensator.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EarthFaultCompensator::EarthFaultCompensator() {} EarthFaultCompensator::~EarthFaultCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& EarthFaultCompensator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EarthFaultCompensator::getClassNamespaceUrl() const { - { "cim:EarthFaultCompensator.r", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EarthFaultCompensator::getPossibleProfilesForClass() const +const std::string& EarthFaultCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EarthFaultCompensator::getPossibleProfilesForAttributes() const +const std::list& EarthFaultCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EarthFaultCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EarthFaultCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EarthFaultCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EarthFaultCompensator_r(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* EarthFaultCompensator::debugString() const void EarthFaultCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EarthFaultCompensator", &EarthFaultCompensator_factory); + factory_map.emplace("EarthFaultCompensator", &EarthFaultCompensator_factory); } void EarthFaultCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EarthFaultCompensator.r", &assign_EarthFaultCompensator_r); + assign_map.emplace("EarthFaultCompensator.r", &assign_EarthFaultCompensator_r); } void EarthFaultCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void EarthFaultCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EarthFaultCompensator.r", &get_EarthFaultCompensator_r); + get_map.emplace("EarthFaultCompensator.r", &get_EarthFaultCompensator_r); } void EarthFaultCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void EarthFaultCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EarthFaultCompensator::declare() { return BaseClassDefiner(EarthFaultCompensator::addConstructToMap, EarthFaultCompensator::addPrimitiveAssignFnsToMap, EarthFaultCompensator::addClassAssignFnsToMap, EarthFaultCompensator::debugName); } +std::map EarthFaultCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EarthFaultCompensator_factory() diff --git a/CGMES_2.4.13_18DEC2013/EarthFaultCompensator.hpp b/CGMES_2.4.13_18DEC2013/EarthFaultCompensator.hpp index 5f16c7ac2..29c74418f 100644 --- a/CGMES_2.4.13_18DEC2013/EarthFaultCompensator.hpp +++ b/CGMES_2.4.13_18DEC2013/EarthFaultCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Resistance.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EarthFaultCompensator_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EnergyArea.cpp b/CGMES_2.4.13_18DEC2013/EnergyArea.cpp index 0df0b19c1..ff709dd55 100644 --- a/CGMES_2.4.13_18DEC2013/EnergyArea.cpp +++ b/CGMES_2.4.13_18DEC2013/EnergyArea.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergyArea.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergyArea::EnergyArea() : ControlArea(nullptr) {} EnergyArea::~EnergyArea() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyArea::getClassNamespaceUrl() const { - { "cim:EnergyArea.ControlArea", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyArea::getPossibleProfilesForClass() const +const std::string& EnergyArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyArea::getPossibleProfilesForAttributes() const +const std::list& EnergyArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_EnergyArea(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* EnergyArea::debugString() const void EnergyArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyArea", &EnergyArea_factory); + factory_map.emplace("EnergyArea", &EnergyArea_factory); } void EnergyArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void EnergyArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyArea.ControlArea", &assign_EnergyArea_ControlArea); + assign_map.emplace("EnergyArea.ControlArea", &assign_EnergyArea_ControlArea); } void EnergyArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void EnergyArea::addEnumGetFnsToMap(std::map& get_map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool EnergyArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyArea::declare() { return BaseClassDefiner(EnergyArea::addConstructToMap, EnergyArea::addPrimitiveAssignFnsToMap, EnergyArea::addClassAssignFnsToMap, EnergyArea::debugName); } +std::map EnergyArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyArea_factory() diff --git a/CGMES_2.4.13_18DEC2013/EnergyArea.hpp b/CGMES_2.4.13_18DEC2013/EnergyArea.hpp index ba0241fe1..b19e56025 100644 --- a/CGMES_2.4.13_18DEC2013/EnergyArea.hpp +++ b/CGMES_2.4.13_18DEC2013/EnergyArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyArea_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EnergyConsumer.cpp b/CGMES_2.4.13_18DEC2013/EnergyConsumer.cpp index b95cded7e..49fdbc76b 100644 --- a/CGMES_2.4.13_18DEC2013/EnergyConsumer.cpp +++ b/CGMES_2.4.13_18DEC2013/EnergyConsumer.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyConsumer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergyConsumer.LoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "EnergyConsumer.LoadResponse", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergyConsumer.pfixed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.pfixedPct", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergyConsumer.qfixed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.qfixedPct", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergyConsumer::EnergyConsumer() : LoadDynamics(nullptr), LoadResponse(nullptr) {} EnergyConsumer::~EnergyConsumer() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyConsumer::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyConsumer::getClassNamespaceUrl() const { - { "cim:EnergyConsumer.LoadDynamics", { CGMESProfile::DY, } }, - { "cim:EnergyConsumer.LoadResponse", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.p", { CGMESProfile::SSH, } }, - { "cim:EnergyConsumer.pfixed", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.pfixedPct", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.q", { CGMESProfile::SSH, } }, - { "cim:EnergyConsumer.qfixed", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.qfixedPct", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyConsumer::getPossibleProfilesForClass() const +const std::string& EnergyConsumer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyConsumer::getPossibleProfilesForAttributes() const +const std::list& EnergyConsumer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyConsumer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyConsumer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyConsumer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadDynamics_EnergyConsumer(BaseClass*, BaseClass*); @@ -294,41 +326,41 @@ const char* EnergyConsumer::debugString() const void EnergyConsumer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyConsumer", &EnergyConsumer_factory); + factory_map.emplace("EnergyConsumer", &EnergyConsumer_factory); } void EnergyConsumer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyConsumer.p", &assign_EnergyConsumer_p); - assign_map.emplace("cim:EnergyConsumer.pfixed", &assign_EnergyConsumer_pfixed); - assign_map.emplace("cim:EnergyConsumer.pfixedPct", &assign_EnergyConsumer_pfixedPct); - assign_map.emplace("cim:EnergyConsumer.q", &assign_EnergyConsumer_q); - assign_map.emplace("cim:EnergyConsumer.qfixed", &assign_EnergyConsumer_qfixed); - assign_map.emplace("cim:EnergyConsumer.qfixedPct", &assign_EnergyConsumer_qfixedPct); + assign_map.emplace("EnergyConsumer.p", &assign_EnergyConsumer_p); + assign_map.emplace("EnergyConsumer.pfixed", &assign_EnergyConsumer_pfixed); + assign_map.emplace("EnergyConsumer.pfixedPct", &assign_EnergyConsumer_pfixedPct); + assign_map.emplace("EnergyConsumer.q", &assign_EnergyConsumer_q); + assign_map.emplace("EnergyConsumer.qfixed", &assign_EnergyConsumer_qfixed); + assign_map.emplace("EnergyConsumer.qfixedPct", &assign_EnergyConsumer_qfixedPct); } void EnergyConsumer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyConsumer.LoadDynamics", &assign_EnergyConsumer_LoadDynamics); - assign_map.emplace("cim:EnergyConsumer.LoadResponse", &assign_EnergyConsumer_LoadResponse); + assign_map.emplace("EnergyConsumer.LoadDynamics", &assign_EnergyConsumer_LoadDynamics); + assign_map.emplace("EnergyConsumer.LoadResponse", &assign_EnergyConsumer_LoadResponse); } void EnergyConsumer::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EnergyConsumer.p", &get_EnergyConsumer_p); - get_map.emplace("cim:EnergyConsumer.pfixed", &get_EnergyConsumer_pfixed); - get_map.emplace("cim:EnergyConsumer.pfixedPct", &get_EnergyConsumer_pfixedPct); - get_map.emplace("cim:EnergyConsumer.q", &get_EnergyConsumer_q); - get_map.emplace("cim:EnergyConsumer.qfixed", &get_EnergyConsumer_qfixed); - get_map.emplace("cim:EnergyConsumer.qfixedPct", &get_EnergyConsumer_qfixedPct); + get_map.emplace("EnergyConsumer.p", &get_EnergyConsumer_p); + get_map.emplace("EnergyConsumer.pfixed", &get_EnergyConsumer_pfixed); + get_map.emplace("EnergyConsumer.pfixedPct", &get_EnergyConsumer_pfixedPct); + get_map.emplace("EnergyConsumer.q", &get_EnergyConsumer_q); + get_map.emplace("EnergyConsumer.qfixed", &get_EnergyConsumer_qfixed); + get_map.emplace("EnergyConsumer.qfixedPct", &get_EnergyConsumer_qfixedPct); } void EnergyConsumer::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EnergyConsumer.LoadDynamics", &get_EnergyConsumer_LoadDynamics); - get_map.emplace("cim:EnergyConsumer.LoadResponse", &get_EnergyConsumer_LoadResponse); + get_map.emplace("EnergyConsumer.LoadDynamics", &get_EnergyConsumer_LoadDynamics); + get_map.emplace("EnergyConsumer.LoadResponse", &get_EnergyConsumer_LoadResponse); } void EnergyConsumer::addEnumGetFnsToMap(std::map& get_map) const @@ -336,11 +368,25 @@ void EnergyConsumer::addEnumGetFnsToMap(std::map& get ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EnergyConsumer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyConsumer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyConsumer::declare() { return BaseClassDefiner(EnergyConsumer::addConstructToMap, EnergyConsumer::addPrimitiveAssignFnsToMap, EnergyConsumer::addClassAssignFnsToMap, EnergyConsumer::debugName); } +std::map EnergyConsumer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyConsumer_factory() diff --git a/CGMES_2.4.13_18DEC2013/EnergyConsumer.hpp b/CGMES_2.4.13_18DEC2013/EnergyConsumer.hpp index 54d03c283..a50a7bce0 100644 --- a/CGMES_2.4.13_18DEC2013/EnergyConsumer.hpp +++ b/CGMES_2.4.13_18DEC2013/EnergyConsumer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PerCent.hpp" #include "ReactivePower.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyConsumer_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EnergySchedulingType.cpp b/CGMES_2.4.13_18DEC2013/EnergySchedulingType.cpp index 9a4007c0e..7aa0b33e5 100644 --- a/CGMES_2.4.13_18DEC2013/EnergySchedulingType.cpp +++ b/CGMES_2.4.13_18DEC2013/EnergySchedulingType.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergySchedulingType(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergySchedulingType.EnergySource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergySchedulingType::EnergySchedulingType() {} EnergySchedulingType::~EnergySchedulingType() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergySchedulingType::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergySchedulingType::getClassNamespaceUrl() const { - { "cim:EnergySchedulingType.EnergySource", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergySchedulingType::getPossibleProfilesForClass() const +const std::string& EnergySchedulingType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergySchedulingType::getPossibleProfilesForAttributes() const +const std::list& EnergySchedulingType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergySchedulingType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergySchedulingType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergySchedulingType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySource_EnergySchedulingType(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* EnergySchedulingType::debugString() const void EnergySchedulingType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergySchedulingType", &EnergySchedulingType_factory); + factory_map.emplace("EnergySchedulingType", &EnergySchedulingType_factory); } void EnergySchedulingType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void EnergySchedulingType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySchedulingType.EnergySource", &assign_EnergySchedulingType_EnergySource); + assign_map.emplace("EnergySchedulingType.EnergySource", &assign_EnergySchedulingType_EnergySource); } void EnergySchedulingType::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void EnergySchedulingType::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EnergySchedulingType::declare() { return BaseClassDefiner(EnergySchedulingType::addConstructToMap, EnergySchedulingType::addPrimitiveAssignFnsToMap, EnergySchedulingType::addClassAssignFnsToMap, EnergySchedulingType::debugName); } +std::map EnergySchedulingType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergySchedulingType_factory() diff --git a/CGMES_2.4.13_18DEC2013/EnergySchedulingType.hpp b/CGMES_2.4.13_18DEC2013/EnergySchedulingType.hpp index b3d0489f1..dfa93c4cd 100644 --- a/CGMES_2.4.13_18DEC2013/EnergySchedulingType.hpp +++ b/CGMES_2.4.13_18DEC2013/EnergySchedulingType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergySchedulingType_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EnergySource.cpp b/CGMES_2.4.13_18DEC2013/EnergySource.cpp index 487c67ebe..9e5c7508b 100644 --- a/CGMES_2.4.13_18DEC2013/EnergySource.cpp +++ b/CGMES_2.4.13_18DEC2013/EnergySource.cpp @@ -13,46 +13,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergySource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergySource.EnergySchedulingType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "EnergySource.activePower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergySource.nominalVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.reactivePower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergySource.rn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.voltageAngle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.voltageMagnitude", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.xn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergySource::EnergySource() : EnergySchedulingType(nullptr), WindTurbineType3or4Dynamics(nullptr) {} EnergySource::~EnergySource() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergySource::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergySource::getClassNamespaceUrl() const { - { "cim:EnergySource.EnergySchedulingType", { CGMESProfile::EQ, } }, - { "cim:EnergySource.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, - { "cim:EnergySource.activePower", { CGMESProfile::SSH, } }, - { "cim:EnergySource.nominalVoltage", { CGMESProfile::EQ, } }, - { "cim:EnergySource.r", { CGMESProfile::EQ, } }, - { "cim:EnergySource.r0", { CGMESProfile::EQ, } }, - { "cim:EnergySource.reactivePower", { CGMESProfile::SSH, } }, - { "cim:EnergySource.rn", { CGMESProfile::EQ, } }, - { "cim:EnergySource.voltageAngle", { CGMESProfile::EQ, } }, - { "cim:EnergySource.voltageMagnitude", { CGMESProfile::EQ, } }, - { "cim:EnergySource.x", { CGMESProfile::EQ, } }, - { "cim:EnergySource.x0", { CGMESProfile::EQ, } }, - { "cim:EnergySource.xn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergySource::getPossibleProfilesForClass() const +const std::string& EnergySource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergySource::getPossibleProfilesForAttributes() const +const std::list& EnergySource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergySource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergySource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergySource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySchedulingType_EnergySource(BaseClass*, BaseClass*); @@ -431,50 +463,50 @@ const char* EnergySource::debugString() const void EnergySource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergySource", &EnergySource_factory); + factory_map.emplace("EnergySource", &EnergySource_factory); } void EnergySource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySource.activePower", &assign_EnergySource_activePower); - assign_map.emplace("cim:EnergySource.nominalVoltage", &assign_EnergySource_nominalVoltage); - assign_map.emplace("cim:EnergySource.r", &assign_EnergySource_r); - assign_map.emplace("cim:EnergySource.r0", &assign_EnergySource_r0); - assign_map.emplace("cim:EnergySource.reactivePower", &assign_EnergySource_reactivePower); - assign_map.emplace("cim:EnergySource.rn", &assign_EnergySource_rn); - assign_map.emplace("cim:EnergySource.voltageAngle", &assign_EnergySource_voltageAngle); - assign_map.emplace("cim:EnergySource.voltageMagnitude", &assign_EnergySource_voltageMagnitude); - assign_map.emplace("cim:EnergySource.x", &assign_EnergySource_x); - assign_map.emplace("cim:EnergySource.x0", &assign_EnergySource_x0); - assign_map.emplace("cim:EnergySource.xn", &assign_EnergySource_xn); + assign_map.emplace("EnergySource.activePower", &assign_EnergySource_activePower); + assign_map.emplace("EnergySource.nominalVoltage", &assign_EnergySource_nominalVoltage); + assign_map.emplace("EnergySource.r", &assign_EnergySource_r); + assign_map.emplace("EnergySource.r0", &assign_EnergySource_r0); + assign_map.emplace("EnergySource.reactivePower", &assign_EnergySource_reactivePower); + assign_map.emplace("EnergySource.rn", &assign_EnergySource_rn); + assign_map.emplace("EnergySource.voltageAngle", &assign_EnergySource_voltageAngle); + assign_map.emplace("EnergySource.voltageMagnitude", &assign_EnergySource_voltageMagnitude); + assign_map.emplace("EnergySource.x", &assign_EnergySource_x); + assign_map.emplace("EnergySource.x0", &assign_EnergySource_x0); + assign_map.emplace("EnergySource.xn", &assign_EnergySource_xn); } void EnergySource::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySource.EnergySchedulingType", &assign_EnergySource_EnergySchedulingType); - assign_map.emplace("cim:EnergySource.WindTurbineType3or4Dynamics", &assign_EnergySource_WindTurbineType3or4Dynamics); + assign_map.emplace("EnergySource.EnergySchedulingType", &assign_EnergySource_EnergySchedulingType); + assign_map.emplace("EnergySource.WindTurbineType3or4Dynamics", &assign_EnergySource_WindTurbineType3or4Dynamics); } void EnergySource::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EnergySource.activePower", &get_EnergySource_activePower); - get_map.emplace("cim:EnergySource.nominalVoltage", &get_EnergySource_nominalVoltage); - get_map.emplace("cim:EnergySource.r", &get_EnergySource_r); - get_map.emplace("cim:EnergySource.r0", &get_EnergySource_r0); - get_map.emplace("cim:EnergySource.reactivePower", &get_EnergySource_reactivePower); - get_map.emplace("cim:EnergySource.rn", &get_EnergySource_rn); - get_map.emplace("cim:EnergySource.voltageAngle", &get_EnergySource_voltageAngle); - get_map.emplace("cim:EnergySource.voltageMagnitude", &get_EnergySource_voltageMagnitude); - get_map.emplace("cim:EnergySource.x", &get_EnergySource_x); - get_map.emplace("cim:EnergySource.x0", &get_EnergySource_x0); - get_map.emplace("cim:EnergySource.xn", &get_EnergySource_xn); + get_map.emplace("EnergySource.activePower", &get_EnergySource_activePower); + get_map.emplace("EnergySource.nominalVoltage", &get_EnergySource_nominalVoltage); + get_map.emplace("EnergySource.r", &get_EnergySource_r); + get_map.emplace("EnergySource.r0", &get_EnergySource_r0); + get_map.emplace("EnergySource.reactivePower", &get_EnergySource_reactivePower); + get_map.emplace("EnergySource.rn", &get_EnergySource_rn); + get_map.emplace("EnergySource.voltageAngle", &get_EnergySource_voltageAngle); + get_map.emplace("EnergySource.voltageMagnitude", &get_EnergySource_voltageMagnitude); + get_map.emplace("EnergySource.x", &get_EnergySource_x); + get_map.emplace("EnergySource.x0", &get_EnergySource_x0); + get_map.emplace("EnergySource.xn", &get_EnergySource_xn); } void EnergySource::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EnergySource.EnergySchedulingType", &get_EnergySource_EnergySchedulingType); + get_map.emplace("EnergySource.EnergySchedulingType", &get_EnergySource_EnergySchedulingType); } void EnergySource::addEnumGetFnsToMap(std::map& get_map) const @@ -482,11 +514,25 @@ void EnergySource::addEnumGetFnsToMap(std::map& get_m ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EnergySource::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergySource" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergySource::declare() { return BaseClassDefiner(EnergySource::addConstructToMap, EnergySource::addPrimitiveAssignFnsToMap, EnergySource::addClassAssignFnsToMap, EnergySource::debugName); } +std::map EnergySource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergySource_factory() diff --git a/CGMES_2.4.13_18DEC2013/EnergySource.hpp b/CGMES_2.4.13_18DEC2013/EnergySource.hpp index 6472e47ce..7472e2e24 100644 --- a/CGMES_2.4.13_18DEC2013/EnergySource.hpp +++ b/CGMES_2.4.13_18DEC2013/EnergySource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "AngleRadians.hpp" #include "Reactance.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergySource_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Equipment.cpp b/CGMES_2.4.13_18DEC2013/Equipment.cpp index 1b08d8503..25bb9e3d5 100644 --- a/CGMES_2.4.13_18DEC2013/Equipment.cpp +++ b/CGMES_2.4.13_18DEC2013/Equipment.cpp @@ -13,36 +13,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Equipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Equipment.EquipmentContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Equipment.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Equipment.aggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Equipment::Equipment() : EquipmentContainer(nullptr) {} Equipment::~Equipment() {} -static const std::list PossibleProfilesForClass = +const std::list& Equipment::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Equipment::getClassNamespaceUrl() const { - { "cim:Equipment.EquipmentContainer", { CGMESProfile::EQ, } }, - { "cim:Equipment.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:Equipment.aggregate", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Equipment::getPossibleProfilesForClass() const +const std::string& Equipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Equipment::getPossibleProfilesForAttributes() const +const std::list& Equipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Equipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Equipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Equipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentContainer_Equipments(BaseClass*, BaseClass*); @@ -131,30 +163,30 @@ const char* Equipment::debugString() const void Equipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Equipment", &Equipment_factory); + factory_map.emplace("Equipment", &Equipment_factory); } void Equipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Equipment.aggregate", &assign_Equipment_aggregate); + assign_map.emplace("Equipment.aggregate", &assign_Equipment_aggregate); } void Equipment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Equipment.EquipmentContainer", &assign_Equipment_EquipmentContainer); - assign_map.emplace("cim:Equipment.OperationalLimitSet", &assign_Equipment_OperationalLimitSet); + assign_map.emplace("Equipment.EquipmentContainer", &assign_Equipment_EquipmentContainer); + assign_map.emplace("Equipment.OperationalLimitSet", &assign_Equipment_OperationalLimitSet); } void Equipment::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Equipment.aggregate", &get_Equipment_aggregate); + get_map.emplace("Equipment.aggregate", &get_Equipment_aggregate); } void Equipment::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Equipment.EquipmentContainer", &get_Equipment_EquipmentContainer); + get_map.emplace("Equipment.EquipmentContainer", &get_Equipment_EquipmentContainer); } void Equipment::addEnumGetFnsToMap(std::map& get_map) const @@ -162,11 +194,25 @@ void Equipment::addEnumGetFnsToMap(std::map& get_map) PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool Equipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Equipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Equipment::declare() { return BaseClassDefiner(Equipment::addConstructToMap, Equipment::addPrimitiveAssignFnsToMap, Equipment::addClassAssignFnsToMap, Equipment::debugName); } +std::map Equipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Equipment_factory() diff --git a/CGMES_2.4.13_18DEC2013/Equipment.hpp b/CGMES_2.4.13_18DEC2013/Equipment.hpp index 7a818843f..107251fd3 100644 --- a/CGMES_2.4.13_18DEC2013/Equipment.hpp +++ b/CGMES_2.4.13_18DEC2013/Equipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Equipment_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EquipmentBoundaryVersion.cpp b/CGMES_2.4.13_18DEC2013/EquipmentBoundaryVersion.cpp index 93b5017ab..38c0549ee 100644 --- a/CGMES_2.4.13_18DEC2013/EquipmentBoundaryVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/EquipmentBoundaryVersion.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentBoundaryVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::EQ_BD, + }, + CGMESProfile::EQ_BD + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentBoundaryVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentBoundaryVersion::EquipmentBoundaryVersion() {} EquipmentBoundaryVersion::~EquipmentBoundaryVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentBoundaryVersion::getAttributeNames() const { - CGMESProfile::EQ_BD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentBoundaryVersion::getClassNamespaceUrl() const { - { "cim:EquipmentBoundaryVersion.baseUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.baseURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.date", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.differenceModelURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeURIcore", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeURIoperation", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.modelDescriptionURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.namespaceRDF", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.namespaceUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.shortName", { CGMESProfile::EQ_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentBoundaryVersion::getPossibleProfilesForClass() const +const std::string& EquipmentBoundaryVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentBoundaryVersion::getPossibleProfilesForAttributes() const +const std::list& EquipmentBoundaryVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentBoundaryVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentBoundaryVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentBoundaryVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentBoundaryVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* EquipmentBoundaryVersion::debugString() const void EquipmentBoundaryVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentBoundaryVersion", &EquipmentBoundaryVersion_factory); + factory_map.emplace("EquipmentBoundaryVersion", &EquipmentBoundaryVersion_factory); } void EquipmentBoundaryVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentBoundaryVersion.baseUML", &assign_EquipmentBoundaryVersion_baseUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.baseURI", &assign_EquipmentBoundaryVersion_baseURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.date", &assign_EquipmentBoundaryVersion_date); - assign_map.emplace("cim:EquipmentBoundaryVersion.differenceModelURI", &assign_EquipmentBoundaryVersion_differenceModelURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeUML", &assign_EquipmentBoundaryVersion_entsoeUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIcore", &assign_EquipmentBoundaryVersion_entsoeURIcore); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIoperation", &assign_EquipmentBoundaryVersion_entsoeURIoperation); - assign_map.emplace("cim:EquipmentBoundaryVersion.modelDescriptionURI", &assign_EquipmentBoundaryVersion_modelDescriptionURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.namespaceRDF", &assign_EquipmentBoundaryVersion_namespaceRDF); - assign_map.emplace("cim:EquipmentBoundaryVersion.namespaceUML", &assign_EquipmentBoundaryVersion_namespaceUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.shortName", &assign_EquipmentBoundaryVersion_shortName); + assign_map.emplace("EquipmentBoundaryVersion.baseUML", &assign_EquipmentBoundaryVersion_baseUML); + assign_map.emplace("EquipmentBoundaryVersion.baseURI", &assign_EquipmentBoundaryVersion_baseURI); + assign_map.emplace("EquipmentBoundaryVersion.date", &assign_EquipmentBoundaryVersion_date); + assign_map.emplace("EquipmentBoundaryVersion.differenceModelURI", &assign_EquipmentBoundaryVersion_differenceModelURI); + assign_map.emplace("EquipmentBoundaryVersion.entsoeUML", &assign_EquipmentBoundaryVersion_entsoeUML); + assign_map.emplace("EquipmentBoundaryVersion.entsoeURIcore", &assign_EquipmentBoundaryVersion_entsoeURIcore); + assign_map.emplace("EquipmentBoundaryVersion.entsoeURIoperation", &assign_EquipmentBoundaryVersion_entsoeURIoperation); + assign_map.emplace("EquipmentBoundaryVersion.modelDescriptionURI", &assign_EquipmentBoundaryVersion_modelDescriptionURI); + assign_map.emplace("EquipmentBoundaryVersion.namespaceRDF", &assign_EquipmentBoundaryVersion_namespaceRDF); + assign_map.emplace("EquipmentBoundaryVersion.namespaceUML", &assign_EquipmentBoundaryVersion_namespaceUML); + assign_map.emplace("EquipmentBoundaryVersion.shortName", &assign_EquipmentBoundaryVersion_shortName); } void EquipmentBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void EquipmentBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquipmentBoundaryVersion.baseUML", &get_EquipmentBoundaryVersion_baseUML); - get_map.emplace("cim:EquipmentBoundaryVersion.baseURI", &get_EquipmentBoundaryVersion_baseURI); - get_map.emplace("cim:EquipmentBoundaryVersion.date", &get_EquipmentBoundaryVersion_date); - get_map.emplace("cim:EquipmentBoundaryVersion.differenceModelURI", &get_EquipmentBoundaryVersion_differenceModelURI); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeUML", &get_EquipmentBoundaryVersion_entsoeUML); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIcore", &get_EquipmentBoundaryVersion_entsoeURIcore); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIoperation", &get_EquipmentBoundaryVersion_entsoeURIoperation); - get_map.emplace("cim:EquipmentBoundaryVersion.modelDescriptionURI", &get_EquipmentBoundaryVersion_modelDescriptionURI); - get_map.emplace("cim:EquipmentBoundaryVersion.namespaceRDF", &get_EquipmentBoundaryVersion_namespaceRDF); - get_map.emplace("cim:EquipmentBoundaryVersion.namespaceUML", &get_EquipmentBoundaryVersion_namespaceUML); - get_map.emplace("cim:EquipmentBoundaryVersion.shortName", &get_EquipmentBoundaryVersion_shortName); + get_map.emplace("EquipmentBoundaryVersion.baseUML", &get_EquipmentBoundaryVersion_baseUML); + get_map.emplace("EquipmentBoundaryVersion.baseURI", &get_EquipmentBoundaryVersion_baseURI); + get_map.emplace("EquipmentBoundaryVersion.date", &get_EquipmentBoundaryVersion_date); + get_map.emplace("EquipmentBoundaryVersion.differenceModelURI", &get_EquipmentBoundaryVersion_differenceModelURI); + get_map.emplace("EquipmentBoundaryVersion.entsoeUML", &get_EquipmentBoundaryVersion_entsoeUML); + get_map.emplace("EquipmentBoundaryVersion.entsoeURIcore", &get_EquipmentBoundaryVersion_entsoeURIcore); + get_map.emplace("EquipmentBoundaryVersion.entsoeURIoperation", &get_EquipmentBoundaryVersion_entsoeURIoperation); + get_map.emplace("EquipmentBoundaryVersion.modelDescriptionURI", &get_EquipmentBoundaryVersion_modelDescriptionURI); + get_map.emplace("EquipmentBoundaryVersion.namespaceRDF", &get_EquipmentBoundaryVersion_namespaceRDF); + get_map.emplace("EquipmentBoundaryVersion.namespaceUML", &get_EquipmentBoundaryVersion_namespaceUML); + get_map.emplace("EquipmentBoundaryVersion.shortName", &get_EquipmentBoundaryVersion_shortName); } void EquipmentBoundaryVersion::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void EquipmentBoundaryVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentBoundaryVersion::declare() { return BaseClassDefiner(EquipmentBoundaryVersion::addConstructToMap, EquipmentBoundaryVersion::addPrimitiveAssignFnsToMap, EquipmentBoundaryVersion::addClassAssignFnsToMap, EquipmentBoundaryVersion::debugName); } +std::map EquipmentBoundaryVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentBoundaryVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/EquipmentBoundaryVersion.hpp b/CGMES_2.4.13_18DEC2013/EquipmentBoundaryVersion.hpp index 7dce745e6..6ee6a6480 100644 --- a/CGMES_2.4.13_18DEC2013/EquipmentBoundaryVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/EquipmentBoundaryVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentBoundaryVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EquipmentContainer.cpp b/CGMES_2.4.13_18DEC2013/EquipmentContainer.cpp index 4c86d8c57..41811a073 100644 --- a/CGMES_2.4.13_18DEC2013/EquipmentContainer.cpp +++ b/CGMES_2.4.13_18DEC2013/EquipmentContainer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentContainer.Equipments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentContainer::EquipmentContainer() {} EquipmentContainer::~EquipmentContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentContainer::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentContainer::getClassNamespaceUrl() const { - { "cim:EquipmentContainer.Equipments", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentContainer::getPossibleProfilesForClass() const +const std::string& EquipmentContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentContainer::getPossibleProfilesForAttributes() const +const std::list& EquipmentContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConnectivityNodeContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Equipment_EquipmentContainer(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* EquipmentContainer::debugString() const void EquipmentContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentContainer", &EquipmentContainer_factory); + factory_map.emplace("EquipmentContainer", &EquipmentContainer_factory); } void EquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void EquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentContainer.Equipments", &assign_EquipmentContainer_Equipments); + assign_map.emplace("EquipmentContainer.Equipments", &assign_EquipmentContainer_Equipments); } void EquipmentContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void EquipmentContainer::addEnumGetFnsToMap(std::map& ConnectivityNodeContainer::addEnumGetFnsToMap(get_map); } +bool EquipmentContainer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquipmentContainer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentContainer::declare() { return BaseClassDefiner(EquipmentContainer::addConstructToMap, EquipmentContainer::addPrimitiveAssignFnsToMap, EquipmentContainer::addClassAssignFnsToMap, EquipmentContainer::debugName); } +std::map EquipmentContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConnectivityNodeContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentContainer_factory() diff --git a/CGMES_2.4.13_18DEC2013/EquipmentContainer.hpp b/CGMES_2.4.13_18DEC2013/EquipmentContainer.hpp index 5a76e1707..a12a72452 100644 --- a/CGMES_2.4.13_18DEC2013/EquipmentContainer.hpp +++ b/CGMES_2.4.13_18DEC2013/EquipmentContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConnectivityNodeContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentContainer_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EquipmentVersion.cpp b/CGMES_2.4.13_18DEC2013/EquipmentVersion.cpp index e02b7f229..6ea5b0089 100644 --- a/CGMES_2.4.13_18DEC2013/EquipmentVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/EquipmentVersion.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIshortCircuit", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIshortCircuit", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentVersion::EquipmentVersion() {} EquipmentVersion::~EquipmentVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentVersion::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentVersion::getClassNamespaceUrl() const { - { "cim:EquipmentVersion.baseUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIcore", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIoperation", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIshortCircuit", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.date", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.differenceModelURI", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIcore", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIoperation", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIshortCircuit", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.modelDescriptionURI", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.namespaceRDF", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.namespaceUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.shortName", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentVersion::getPossibleProfilesForClass() const +const std::string& EquipmentVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentVersion::getPossibleProfilesForAttributes() const +const std::list& EquipmentVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* EquipmentVersion::debugString() const void EquipmentVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentVersion", &EquipmentVersion_factory); + factory_map.emplace("EquipmentVersion", &EquipmentVersion_factory); } void EquipmentVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentVersion.baseUML", &assign_EquipmentVersion_baseUML); - assign_map.emplace("cim:EquipmentVersion.baseURIcore", &assign_EquipmentVersion_baseURIcore); - assign_map.emplace("cim:EquipmentVersion.baseURIoperation", &assign_EquipmentVersion_baseURIoperation); - assign_map.emplace("cim:EquipmentVersion.baseURIshortCircuit", &assign_EquipmentVersion_baseURIshortCircuit); - assign_map.emplace("cim:EquipmentVersion.date", &assign_EquipmentVersion_date); - assign_map.emplace("cim:EquipmentVersion.differenceModelURI", &assign_EquipmentVersion_differenceModelURI); - assign_map.emplace("cim:EquipmentVersion.entsoeUML", &assign_EquipmentVersion_entsoeUML); - assign_map.emplace("cim:EquipmentVersion.entsoeURIcore", &assign_EquipmentVersion_entsoeURIcore); - assign_map.emplace("cim:EquipmentVersion.entsoeURIoperation", &assign_EquipmentVersion_entsoeURIoperation); - assign_map.emplace("cim:EquipmentVersion.entsoeURIshortCircuit", &assign_EquipmentVersion_entsoeURIshortCircuit); - assign_map.emplace("cim:EquipmentVersion.modelDescriptionURI", &assign_EquipmentVersion_modelDescriptionURI); - assign_map.emplace("cim:EquipmentVersion.namespaceRDF", &assign_EquipmentVersion_namespaceRDF); - assign_map.emplace("cim:EquipmentVersion.namespaceUML", &assign_EquipmentVersion_namespaceUML); - assign_map.emplace("cim:EquipmentVersion.shortName", &assign_EquipmentVersion_shortName); + assign_map.emplace("EquipmentVersion.baseUML", &assign_EquipmentVersion_baseUML); + assign_map.emplace("EquipmentVersion.baseURIcore", &assign_EquipmentVersion_baseURIcore); + assign_map.emplace("EquipmentVersion.baseURIoperation", &assign_EquipmentVersion_baseURIoperation); + assign_map.emplace("EquipmentVersion.baseURIshortCircuit", &assign_EquipmentVersion_baseURIshortCircuit); + assign_map.emplace("EquipmentVersion.date", &assign_EquipmentVersion_date); + assign_map.emplace("EquipmentVersion.differenceModelURI", &assign_EquipmentVersion_differenceModelURI); + assign_map.emplace("EquipmentVersion.entsoeUML", &assign_EquipmentVersion_entsoeUML); + assign_map.emplace("EquipmentVersion.entsoeURIcore", &assign_EquipmentVersion_entsoeURIcore); + assign_map.emplace("EquipmentVersion.entsoeURIoperation", &assign_EquipmentVersion_entsoeURIoperation); + assign_map.emplace("EquipmentVersion.entsoeURIshortCircuit", &assign_EquipmentVersion_entsoeURIshortCircuit); + assign_map.emplace("EquipmentVersion.modelDescriptionURI", &assign_EquipmentVersion_modelDescriptionURI); + assign_map.emplace("EquipmentVersion.namespaceRDF", &assign_EquipmentVersion_namespaceRDF); + assign_map.emplace("EquipmentVersion.namespaceUML", &assign_EquipmentVersion_namespaceUML); + assign_map.emplace("EquipmentVersion.shortName", &assign_EquipmentVersion_shortName); } void EquipmentVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void EquipmentVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquipmentVersion.baseUML", &get_EquipmentVersion_baseUML); - get_map.emplace("cim:EquipmentVersion.baseURIcore", &get_EquipmentVersion_baseURIcore); - get_map.emplace("cim:EquipmentVersion.baseURIoperation", &get_EquipmentVersion_baseURIoperation); - get_map.emplace("cim:EquipmentVersion.baseURIshortCircuit", &get_EquipmentVersion_baseURIshortCircuit); - get_map.emplace("cim:EquipmentVersion.date", &get_EquipmentVersion_date); - get_map.emplace("cim:EquipmentVersion.differenceModelURI", &get_EquipmentVersion_differenceModelURI); - get_map.emplace("cim:EquipmentVersion.entsoeUML", &get_EquipmentVersion_entsoeUML); - get_map.emplace("cim:EquipmentVersion.entsoeURIcore", &get_EquipmentVersion_entsoeURIcore); - get_map.emplace("cim:EquipmentVersion.entsoeURIoperation", &get_EquipmentVersion_entsoeURIoperation); - get_map.emplace("cim:EquipmentVersion.entsoeURIshortCircuit", &get_EquipmentVersion_entsoeURIshortCircuit); - get_map.emplace("cim:EquipmentVersion.modelDescriptionURI", &get_EquipmentVersion_modelDescriptionURI); - get_map.emplace("cim:EquipmentVersion.namespaceRDF", &get_EquipmentVersion_namespaceRDF); - get_map.emplace("cim:EquipmentVersion.namespaceUML", &get_EquipmentVersion_namespaceUML); - get_map.emplace("cim:EquipmentVersion.shortName", &get_EquipmentVersion_shortName); + get_map.emplace("EquipmentVersion.baseUML", &get_EquipmentVersion_baseUML); + get_map.emplace("EquipmentVersion.baseURIcore", &get_EquipmentVersion_baseURIcore); + get_map.emplace("EquipmentVersion.baseURIoperation", &get_EquipmentVersion_baseURIoperation); + get_map.emplace("EquipmentVersion.baseURIshortCircuit", &get_EquipmentVersion_baseURIshortCircuit); + get_map.emplace("EquipmentVersion.date", &get_EquipmentVersion_date); + get_map.emplace("EquipmentVersion.differenceModelURI", &get_EquipmentVersion_differenceModelURI); + get_map.emplace("EquipmentVersion.entsoeUML", &get_EquipmentVersion_entsoeUML); + get_map.emplace("EquipmentVersion.entsoeURIcore", &get_EquipmentVersion_entsoeURIcore); + get_map.emplace("EquipmentVersion.entsoeURIoperation", &get_EquipmentVersion_entsoeURIoperation); + get_map.emplace("EquipmentVersion.entsoeURIshortCircuit", &get_EquipmentVersion_entsoeURIshortCircuit); + get_map.emplace("EquipmentVersion.modelDescriptionURI", &get_EquipmentVersion_modelDescriptionURI); + get_map.emplace("EquipmentVersion.namespaceRDF", &get_EquipmentVersion_namespaceRDF); + get_map.emplace("EquipmentVersion.namespaceUML", &get_EquipmentVersion_namespaceUML); + get_map.emplace("EquipmentVersion.shortName", &get_EquipmentVersion_shortName); } void EquipmentVersion::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void EquipmentVersion::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool EquipmentVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquipmentVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentVersion::declare() { return BaseClassDefiner(EquipmentVersion::addConstructToMap, EquipmentVersion::addPrimitiveAssignFnsToMap, EquipmentVersion::addClassAssignFnsToMap, EquipmentVersion::debugName); } +std::map EquipmentVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/EquipmentVersion.hpp b/CGMES_2.4.13_18DEC2013/EquipmentVersion.hpp index 3de80068d..1db7a92df 100644 --- a/CGMES_2.4.13_18DEC2013/EquipmentVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/EquipmentVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -71,8 +72,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -80,7 +88,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EquivalentBranch.cpp b/CGMES_2.4.13_18DEC2013/EquivalentBranch.cpp index 466b35022..6d41858ee 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentBranch.cpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentBranch.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentBranch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentBranch.negativeR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.r21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.x21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentBranch::EquivalentBranch() {} EquivalentBranch::~EquivalentBranch() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentBranch::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentBranch::getClassNamespaceUrl() const { - { "cim:EquivalentBranch.negativeR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeX21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveX21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.r", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.r21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.x", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.x21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroX21", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentBranch::getPossibleProfilesForClass() const +const std::string& EquivalentBranch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentBranch::getPossibleProfilesForAttributes() const +const std::list& EquivalentBranch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentBranch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentBranch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentBranch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentBranch_negativeR12(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* EquivalentBranch::debugString() const void EquivalentBranch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentBranch", &EquivalentBranch_factory); + factory_map.emplace("EquivalentBranch", &EquivalentBranch_factory); } void EquivalentBranch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentBranch.negativeR12", &assign_EquivalentBranch_negativeR12); - assign_map.emplace("cim:EquivalentBranch.negativeR21", &assign_EquivalentBranch_negativeR21); - assign_map.emplace("cim:EquivalentBranch.negativeX12", &assign_EquivalentBranch_negativeX12); - assign_map.emplace("cim:EquivalentBranch.negativeX21", &assign_EquivalentBranch_negativeX21); - assign_map.emplace("cim:EquivalentBranch.positiveR12", &assign_EquivalentBranch_positiveR12); - assign_map.emplace("cim:EquivalentBranch.positiveR21", &assign_EquivalentBranch_positiveR21); - assign_map.emplace("cim:EquivalentBranch.positiveX12", &assign_EquivalentBranch_positiveX12); - assign_map.emplace("cim:EquivalentBranch.positiveX21", &assign_EquivalentBranch_positiveX21); - assign_map.emplace("cim:EquivalentBranch.r", &assign_EquivalentBranch_r); - assign_map.emplace("cim:EquivalentBranch.r21", &assign_EquivalentBranch_r21); - assign_map.emplace("cim:EquivalentBranch.x", &assign_EquivalentBranch_x); - assign_map.emplace("cim:EquivalentBranch.x21", &assign_EquivalentBranch_x21); - assign_map.emplace("cim:EquivalentBranch.zeroR12", &assign_EquivalentBranch_zeroR12); - assign_map.emplace("cim:EquivalentBranch.zeroR21", &assign_EquivalentBranch_zeroR21); - assign_map.emplace("cim:EquivalentBranch.zeroX12", &assign_EquivalentBranch_zeroX12); - assign_map.emplace("cim:EquivalentBranch.zeroX21", &assign_EquivalentBranch_zeroX21); + assign_map.emplace("EquivalentBranch.negativeR12", &assign_EquivalentBranch_negativeR12); + assign_map.emplace("EquivalentBranch.negativeR21", &assign_EquivalentBranch_negativeR21); + assign_map.emplace("EquivalentBranch.negativeX12", &assign_EquivalentBranch_negativeX12); + assign_map.emplace("EquivalentBranch.negativeX21", &assign_EquivalentBranch_negativeX21); + assign_map.emplace("EquivalentBranch.positiveR12", &assign_EquivalentBranch_positiveR12); + assign_map.emplace("EquivalentBranch.positiveR21", &assign_EquivalentBranch_positiveR21); + assign_map.emplace("EquivalentBranch.positiveX12", &assign_EquivalentBranch_positiveX12); + assign_map.emplace("EquivalentBranch.positiveX21", &assign_EquivalentBranch_positiveX21); + assign_map.emplace("EquivalentBranch.r", &assign_EquivalentBranch_r); + assign_map.emplace("EquivalentBranch.r21", &assign_EquivalentBranch_r21); + assign_map.emplace("EquivalentBranch.x", &assign_EquivalentBranch_x); + assign_map.emplace("EquivalentBranch.x21", &assign_EquivalentBranch_x21); + assign_map.emplace("EquivalentBranch.zeroR12", &assign_EquivalentBranch_zeroR12); + assign_map.emplace("EquivalentBranch.zeroR21", &assign_EquivalentBranch_zeroR21); + assign_map.emplace("EquivalentBranch.zeroX12", &assign_EquivalentBranch_zeroX12); + assign_map.emplace("EquivalentBranch.zeroX21", &assign_EquivalentBranch_zeroX21); } void EquivalentBranch::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void EquivalentBranch::addClassAssignFnsToMap(std::unordered_map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentBranch.negativeR12", &get_EquivalentBranch_negativeR12); - get_map.emplace("cim:EquivalentBranch.negativeR21", &get_EquivalentBranch_negativeR21); - get_map.emplace("cim:EquivalentBranch.negativeX12", &get_EquivalentBranch_negativeX12); - get_map.emplace("cim:EquivalentBranch.negativeX21", &get_EquivalentBranch_negativeX21); - get_map.emplace("cim:EquivalentBranch.positiveR12", &get_EquivalentBranch_positiveR12); - get_map.emplace("cim:EquivalentBranch.positiveR21", &get_EquivalentBranch_positiveR21); - get_map.emplace("cim:EquivalentBranch.positiveX12", &get_EquivalentBranch_positiveX12); - get_map.emplace("cim:EquivalentBranch.positiveX21", &get_EquivalentBranch_positiveX21); - get_map.emplace("cim:EquivalentBranch.r", &get_EquivalentBranch_r); - get_map.emplace("cim:EquivalentBranch.r21", &get_EquivalentBranch_r21); - get_map.emplace("cim:EquivalentBranch.x", &get_EquivalentBranch_x); - get_map.emplace("cim:EquivalentBranch.x21", &get_EquivalentBranch_x21); - get_map.emplace("cim:EquivalentBranch.zeroR12", &get_EquivalentBranch_zeroR12); - get_map.emplace("cim:EquivalentBranch.zeroR21", &get_EquivalentBranch_zeroR21); - get_map.emplace("cim:EquivalentBranch.zeroX12", &get_EquivalentBranch_zeroX12); - get_map.emplace("cim:EquivalentBranch.zeroX21", &get_EquivalentBranch_zeroX21); + get_map.emplace("EquivalentBranch.negativeR12", &get_EquivalentBranch_negativeR12); + get_map.emplace("EquivalentBranch.negativeR21", &get_EquivalentBranch_negativeR21); + get_map.emplace("EquivalentBranch.negativeX12", &get_EquivalentBranch_negativeX12); + get_map.emplace("EquivalentBranch.negativeX21", &get_EquivalentBranch_negativeX21); + get_map.emplace("EquivalentBranch.positiveR12", &get_EquivalentBranch_positiveR12); + get_map.emplace("EquivalentBranch.positiveR21", &get_EquivalentBranch_positiveR21); + get_map.emplace("EquivalentBranch.positiveX12", &get_EquivalentBranch_positiveX12); + get_map.emplace("EquivalentBranch.positiveX21", &get_EquivalentBranch_positiveX21); + get_map.emplace("EquivalentBranch.r", &get_EquivalentBranch_r); + get_map.emplace("EquivalentBranch.r21", &get_EquivalentBranch_r21); + get_map.emplace("EquivalentBranch.x", &get_EquivalentBranch_x); + get_map.emplace("EquivalentBranch.x21", &get_EquivalentBranch_x21); + get_map.emplace("EquivalentBranch.zeroR12", &get_EquivalentBranch_zeroR12); + get_map.emplace("EquivalentBranch.zeroR21", &get_EquivalentBranch_zeroR21); + get_map.emplace("EquivalentBranch.zeroX12", &get_EquivalentBranch_zeroX12); + get_map.emplace("EquivalentBranch.zeroX21", &get_EquivalentBranch_zeroX21); } void EquivalentBranch::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void EquivalentBranch::addEnumGetFnsToMap(std::map& g EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentBranch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentBranch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentBranch::declare() { return BaseClassDefiner(EquivalentBranch::addConstructToMap, EquivalentBranch::addPrimitiveAssignFnsToMap, EquivalentBranch::addClassAssignFnsToMap, EquivalentBranch::debugName); } +std::map EquivalentBranch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentBranch_factory() diff --git a/CGMES_2.4.13_18DEC2013/EquivalentBranch.hpp b/CGMES_2.4.13_18DEC2013/EquivalentBranch.hpp index 5147c3fd5..b609020fe 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentBranch.hpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentBranch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" #include "Resistance.hpp" @@ -77,8 +78,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -86,7 +94,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentBranch_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EquivalentEquipment.cpp b/CGMES_2.4.13_18DEC2013/EquivalentEquipment.cpp index a0b317564..ba3a054f0 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentEquipment.cpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentEquipment.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentEquipment.EquivalentNetwork", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentEquipment::EquivalentEquipment() : EquivalentNetwork(nullptr) {} EquivalentEquipment::~EquivalentEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentEquipment::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentEquipment::getClassNamespaceUrl() const { - { "cim:EquivalentEquipment.EquivalentNetwork", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentEquipment::getPossibleProfilesForClass() const +const std::string& EquivalentEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentEquipment::getPossibleProfilesForAttributes() const +const std::list& EquivalentEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentNetwork_EquivalentEquipments(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* EquivalentEquipment::debugString() const void EquivalentEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentEquipment", &EquivalentEquipment_factory); + factory_map.emplace("EquivalentEquipment", &EquivalentEquipment_factory); } void EquivalentEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void EquivalentEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentEquipment.EquivalentNetwork", &assign_EquivalentEquipment_EquivalentNetwork); + assign_map.emplace("EquivalentEquipment.EquivalentNetwork", &assign_EquivalentEquipment_EquivalentNetwork); } void EquivalentEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void EquivalentEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentEquipment.EquivalentNetwork", &get_EquivalentEquipment_EquivalentNetwork); + get_map.emplace("EquivalentEquipment.EquivalentNetwork", &get_EquivalentEquipment_EquivalentNetwork); } void EquivalentEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void EquivalentEquipment::addEnumGetFnsToMap(std::map ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentEquipment::declare() { return BaseClassDefiner(EquivalentEquipment::addConstructToMap, EquivalentEquipment::addPrimitiveAssignFnsToMap, EquivalentEquipment::addClassAssignFnsToMap, EquivalentEquipment::debugName); } +std::map EquivalentEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentEquipment_factory() diff --git a/CGMES_2.4.13_18DEC2013/EquivalentEquipment.hpp b/CGMES_2.4.13_18DEC2013/EquivalentEquipment.hpp index 3e375293f..781c85161 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentEquipment.hpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentEquipment_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EquivalentInjection.cpp b/CGMES_2.4.13_18DEC2013/EquivalentInjection.cpp index 5b0b543b1..c16a7d103 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentInjection.cpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentInjection.cpp @@ -12,48 +12,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentInjection.ReactiveCapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.maxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.minP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.r2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.regulationCapability", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.regulationStatus", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.regulationTarget", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.x2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentInjection::EquivalentInjection() : ReactiveCapabilityCurve(nullptr) {} EquivalentInjection::~EquivalentInjection() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentInjection::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentInjection::getClassNamespaceUrl() const { - { "cim:EquivalentInjection.ReactiveCapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.maxP", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.maxQ", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.minP", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.minQ", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.p", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.q", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.r", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.r0", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.r2", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.regulationCapability", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.regulationStatus", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.regulationTarget", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.x", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.x0", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.x2", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentInjection::getPossibleProfilesForClass() const +const std::string& EquivalentInjection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentInjection::getPossibleProfilesForAttributes() const +const std::list& EquivalentInjection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReactiveCapabilityCurve_EquivalentInjection(BaseClass*, BaseClass*); @@ -530,57 +562,57 @@ const char* EquivalentInjection::debugString() const void EquivalentInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentInjection", &EquivalentInjection_factory); + factory_map.emplace("EquivalentInjection", &EquivalentInjection_factory); } void EquivalentInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentInjection.maxP", &assign_EquivalentInjection_maxP); - assign_map.emplace("cim:EquivalentInjection.maxQ", &assign_EquivalentInjection_maxQ); - assign_map.emplace("cim:EquivalentInjection.minP", &assign_EquivalentInjection_minP); - assign_map.emplace("cim:EquivalentInjection.minQ", &assign_EquivalentInjection_minQ); - assign_map.emplace("cim:EquivalentInjection.p", &assign_EquivalentInjection_p); - assign_map.emplace("cim:EquivalentInjection.q", &assign_EquivalentInjection_q); - assign_map.emplace("cim:EquivalentInjection.r", &assign_EquivalentInjection_r); - assign_map.emplace("cim:EquivalentInjection.r0", &assign_EquivalentInjection_r0); - assign_map.emplace("cim:EquivalentInjection.r2", &assign_EquivalentInjection_r2); - assign_map.emplace("cim:EquivalentInjection.regulationCapability", &assign_EquivalentInjection_regulationCapability); - assign_map.emplace("cim:EquivalentInjection.regulationStatus", &assign_EquivalentInjection_regulationStatus); - assign_map.emplace("cim:EquivalentInjection.regulationTarget", &assign_EquivalentInjection_regulationTarget); - assign_map.emplace("cim:EquivalentInjection.x", &assign_EquivalentInjection_x); - assign_map.emplace("cim:EquivalentInjection.x0", &assign_EquivalentInjection_x0); - assign_map.emplace("cim:EquivalentInjection.x2", &assign_EquivalentInjection_x2); + assign_map.emplace("EquivalentInjection.maxP", &assign_EquivalentInjection_maxP); + assign_map.emplace("EquivalentInjection.maxQ", &assign_EquivalentInjection_maxQ); + assign_map.emplace("EquivalentInjection.minP", &assign_EquivalentInjection_minP); + assign_map.emplace("EquivalentInjection.minQ", &assign_EquivalentInjection_minQ); + assign_map.emplace("EquivalentInjection.p", &assign_EquivalentInjection_p); + assign_map.emplace("EquivalentInjection.q", &assign_EquivalentInjection_q); + assign_map.emplace("EquivalentInjection.r", &assign_EquivalentInjection_r); + assign_map.emplace("EquivalentInjection.r0", &assign_EquivalentInjection_r0); + assign_map.emplace("EquivalentInjection.r2", &assign_EquivalentInjection_r2); + assign_map.emplace("EquivalentInjection.regulationCapability", &assign_EquivalentInjection_regulationCapability); + assign_map.emplace("EquivalentInjection.regulationStatus", &assign_EquivalentInjection_regulationStatus); + assign_map.emplace("EquivalentInjection.regulationTarget", &assign_EquivalentInjection_regulationTarget); + assign_map.emplace("EquivalentInjection.x", &assign_EquivalentInjection_x); + assign_map.emplace("EquivalentInjection.x0", &assign_EquivalentInjection_x0); + assign_map.emplace("EquivalentInjection.x2", &assign_EquivalentInjection_x2); } void EquivalentInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentInjection.ReactiveCapabilityCurve", &assign_EquivalentInjection_ReactiveCapabilityCurve); + assign_map.emplace("EquivalentInjection.ReactiveCapabilityCurve", &assign_EquivalentInjection_ReactiveCapabilityCurve); } void EquivalentInjection::addPrimitiveGetFnsToMap(std::map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentInjection.maxP", &get_EquivalentInjection_maxP); - get_map.emplace("cim:EquivalentInjection.maxQ", &get_EquivalentInjection_maxQ); - get_map.emplace("cim:EquivalentInjection.minP", &get_EquivalentInjection_minP); - get_map.emplace("cim:EquivalentInjection.minQ", &get_EquivalentInjection_minQ); - get_map.emplace("cim:EquivalentInjection.p", &get_EquivalentInjection_p); - get_map.emplace("cim:EquivalentInjection.q", &get_EquivalentInjection_q); - get_map.emplace("cim:EquivalentInjection.r", &get_EquivalentInjection_r); - get_map.emplace("cim:EquivalentInjection.r0", &get_EquivalentInjection_r0); - get_map.emplace("cim:EquivalentInjection.r2", &get_EquivalentInjection_r2); - get_map.emplace("cim:EquivalentInjection.regulationCapability", &get_EquivalentInjection_regulationCapability); - get_map.emplace("cim:EquivalentInjection.regulationStatus", &get_EquivalentInjection_regulationStatus); - get_map.emplace("cim:EquivalentInjection.regulationTarget", &get_EquivalentInjection_regulationTarget); - get_map.emplace("cim:EquivalentInjection.x", &get_EquivalentInjection_x); - get_map.emplace("cim:EquivalentInjection.x0", &get_EquivalentInjection_x0); - get_map.emplace("cim:EquivalentInjection.x2", &get_EquivalentInjection_x2); + get_map.emplace("EquivalentInjection.maxP", &get_EquivalentInjection_maxP); + get_map.emplace("EquivalentInjection.maxQ", &get_EquivalentInjection_maxQ); + get_map.emplace("EquivalentInjection.minP", &get_EquivalentInjection_minP); + get_map.emplace("EquivalentInjection.minQ", &get_EquivalentInjection_minQ); + get_map.emplace("EquivalentInjection.p", &get_EquivalentInjection_p); + get_map.emplace("EquivalentInjection.q", &get_EquivalentInjection_q); + get_map.emplace("EquivalentInjection.r", &get_EquivalentInjection_r); + get_map.emplace("EquivalentInjection.r0", &get_EquivalentInjection_r0); + get_map.emplace("EquivalentInjection.r2", &get_EquivalentInjection_r2); + get_map.emplace("EquivalentInjection.regulationCapability", &get_EquivalentInjection_regulationCapability); + get_map.emplace("EquivalentInjection.regulationStatus", &get_EquivalentInjection_regulationStatus); + get_map.emplace("EquivalentInjection.regulationTarget", &get_EquivalentInjection_regulationTarget); + get_map.emplace("EquivalentInjection.x", &get_EquivalentInjection_x); + get_map.emplace("EquivalentInjection.x0", &get_EquivalentInjection_x0); + get_map.emplace("EquivalentInjection.x2", &get_EquivalentInjection_x2); } void EquivalentInjection::addClassGetFnsToMap(std::map& get_map) const { EquivalentEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentInjection.ReactiveCapabilityCurve", &get_EquivalentInjection_ReactiveCapabilityCurve); + get_map.emplace("EquivalentInjection.ReactiveCapabilityCurve", &get_EquivalentInjection_ReactiveCapabilityCurve); } void EquivalentInjection::addEnumGetFnsToMap(std::map& get_map) const @@ -588,11 +620,25 @@ void EquivalentInjection::addEnumGetFnsToMap(std::map EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentInjection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentInjection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentInjection::declare() { return BaseClassDefiner(EquivalentInjection::addConstructToMap, EquivalentInjection::addPrimitiveAssignFnsToMap, EquivalentInjection::addClassAssignFnsToMap, EquivalentInjection::debugName); } +std::map EquivalentInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentInjection_factory() diff --git a/CGMES_2.4.13_18DEC2013/EquivalentInjection.hpp b/CGMES_2.4.13_18DEC2013/EquivalentInjection.hpp index 52d59c58c..a81ac2937 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentInjection.hpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Reactance.hpp" @@ -82,8 +83,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -91,7 +99,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentInjection_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EquivalentNetwork.cpp b/CGMES_2.4.13_18DEC2013/EquivalentNetwork.cpp index 81b5286cd..a732cb018 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentNetwork.cpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentNetwork.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentNetwork(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentNetwork.EquivalentEquipments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentNetwork::EquivalentNetwork() {} EquivalentNetwork::~EquivalentNetwork() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentNetwork::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentNetwork::getClassNamespaceUrl() const { - { "cim:EquivalentNetwork.EquivalentEquipments", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentNetwork::getPossibleProfilesForClass() const +const std::string& EquivalentNetwork::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentNetwork::getPossibleProfilesForAttributes() const +const std::list& EquivalentNetwork::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConnectivityNodeContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentNetwork::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentNetwork::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentNetwork::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentEquipment_EquivalentNetwork(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* EquivalentNetwork::debugString() const void EquivalentNetwork::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentNetwork", &EquivalentNetwork_factory); + factory_map.emplace("EquivalentNetwork", &EquivalentNetwork_factory); } void EquivalentNetwork::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void EquivalentNetwork::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentNetwork.EquivalentEquipments", &assign_EquivalentNetwork_EquivalentEquipments); + assign_map.emplace("EquivalentNetwork.EquivalentEquipments", &assign_EquivalentNetwork_EquivalentEquipments); } void EquivalentNetwork::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void EquivalentNetwork::addEnumGetFnsToMap(std::map& ConnectivityNodeContainer::addEnumGetFnsToMap(get_map); } +bool EquivalentNetwork::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentNetwork" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentNetwork::declare() { return BaseClassDefiner(EquivalentNetwork::addConstructToMap, EquivalentNetwork::addPrimitiveAssignFnsToMap, EquivalentNetwork::addClassAssignFnsToMap, EquivalentNetwork::debugName); } +std::map EquivalentNetwork::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConnectivityNodeContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentNetwork_factory() diff --git a/CGMES_2.4.13_18DEC2013/EquivalentNetwork.hpp b/CGMES_2.4.13_18DEC2013/EquivalentNetwork.hpp index 280054dc0..4edef9914 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentNetwork.hpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentNetwork.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConnectivityNodeContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentNetwork_factory(); diff --git a/CGMES_2.4.13_18DEC2013/EquivalentShunt.cpp b/CGMES_2.4.13_18DEC2013/EquivalentShunt.cpp index 3bee41ffb..38a014766 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentShunt.cpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentShunt.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentShunt(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentShunt.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentShunt.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentShunt::EquivalentShunt() {} EquivalentShunt::~EquivalentShunt() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentShunt::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentShunt::getClassNamespaceUrl() const { - { "cim:EquivalentShunt.b", { CGMESProfile::EQ, } }, - { "cim:EquivalentShunt.g", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentShunt::getPossibleProfilesForClass() const +const std::string& EquivalentShunt::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentShunt::getPossibleProfilesForAttributes() const +const std::list& EquivalentShunt::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentShunt::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentShunt::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentShunt::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentShunt_b(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* EquivalentShunt::debugString() const void EquivalentShunt::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentShunt", &EquivalentShunt_factory); + factory_map.emplace("EquivalentShunt", &EquivalentShunt_factory); } void EquivalentShunt::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentShunt.b", &assign_EquivalentShunt_b); - assign_map.emplace("cim:EquivalentShunt.g", &assign_EquivalentShunt_g); + assign_map.emplace("EquivalentShunt.b", &assign_EquivalentShunt_b); + assign_map.emplace("EquivalentShunt.g", &assign_EquivalentShunt_g); } void EquivalentShunt::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void EquivalentShunt::addClassAssignFnsToMap(std::unordered_map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentShunt.b", &get_EquivalentShunt_b); - get_map.emplace("cim:EquivalentShunt.g", &get_EquivalentShunt_g); + get_map.emplace("EquivalentShunt.b", &get_EquivalentShunt_b); + get_map.emplace("EquivalentShunt.g", &get_EquivalentShunt_g); } void EquivalentShunt::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void EquivalentShunt::addEnumGetFnsToMap(std::map& ge EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentShunt::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentShunt" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentShunt::declare() { return BaseClassDefiner(EquivalentShunt::addConstructToMap, EquivalentShunt::addPrimitiveAssignFnsToMap, EquivalentShunt::addClassAssignFnsToMap, EquivalentShunt::debugName); } +std::map EquivalentShunt::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentShunt_factory() diff --git a/CGMES_2.4.13_18DEC2013/EquivalentShunt.hpp b/CGMES_2.4.13_18DEC2013/EquivalentShunt.hpp index 4cd995dcf..8f645b0fc 100644 --- a/CGMES_2.4.13_18DEC2013/EquivalentShunt.hpp +++ b/CGMES_2.4.13_18DEC2013/EquivalentShunt.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Susceptance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentShunt_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAC1A.cpp b/CGMES_2.4.13_18DEC2013/ExcAC1A.cpp index d5bbdc7a5..c870922e9 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC1A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC1A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC1A.hvlvgates", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC1A::ExcAC1A() {} ExcAC1A::~ExcAC1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC1A.hvlvgates", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC1A_hvlvgates(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* ExcAC1A::debugString() const void ExcAC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC1A", &ExcAC1A_factory); + factory_map.emplace("ExcAC1A", &ExcAC1A_factory); } void ExcAC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC1A.hvlvgates", &assign_ExcAC1A_hvlvgates); - assign_map.emplace("cim:ExcAC1A.ka", &assign_ExcAC1A_ka); - assign_map.emplace("cim:ExcAC1A.kc", &assign_ExcAC1A_kc); - assign_map.emplace("cim:ExcAC1A.kd", &assign_ExcAC1A_kd); - assign_map.emplace("cim:ExcAC1A.ke", &assign_ExcAC1A_ke); - assign_map.emplace("cim:ExcAC1A.kf", &assign_ExcAC1A_kf); - assign_map.emplace("cim:ExcAC1A.kf1", &assign_ExcAC1A_kf1); - assign_map.emplace("cim:ExcAC1A.kf2", &assign_ExcAC1A_kf2); - assign_map.emplace("cim:ExcAC1A.ks", &assign_ExcAC1A_ks); - assign_map.emplace("cim:ExcAC1A.seve1", &assign_ExcAC1A_seve1); - assign_map.emplace("cim:ExcAC1A.seve2", &assign_ExcAC1A_seve2); - assign_map.emplace("cim:ExcAC1A.ta", &assign_ExcAC1A_ta); - assign_map.emplace("cim:ExcAC1A.tb", &assign_ExcAC1A_tb); - assign_map.emplace("cim:ExcAC1A.tc", &assign_ExcAC1A_tc); - assign_map.emplace("cim:ExcAC1A.te", &assign_ExcAC1A_te); - assign_map.emplace("cim:ExcAC1A.tf", &assign_ExcAC1A_tf); - assign_map.emplace("cim:ExcAC1A.vamax", &assign_ExcAC1A_vamax); - assign_map.emplace("cim:ExcAC1A.vamin", &assign_ExcAC1A_vamin); - assign_map.emplace("cim:ExcAC1A.ve1", &assign_ExcAC1A_ve1); - assign_map.emplace("cim:ExcAC1A.ve2", &assign_ExcAC1A_ve2); - assign_map.emplace("cim:ExcAC1A.vrmax", &assign_ExcAC1A_vrmax); - assign_map.emplace("cim:ExcAC1A.vrmin", &assign_ExcAC1A_vrmin); + assign_map.emplace("ExcAC1A.hvlvgates", &assign_ExcAC1A_hvlvgates); + assign_map.emplace("ExcAC1A.ka", &assign_ExcAC1A_ka); + assign_map.emplace("ExcAC1A.kc", &assign_ExcAC1A_kc); + assign_map.emplace("ExcAC1A.kd", &assign_ExcAC1A_kd); + assign_map.emplace("ExcAC1A.ke", &assign_ExcAC1A_ke); + assign_map.emplace("ExcAC1A.kf", &assign_ExcAC1A_kf); + assign_map.emplace("ExcAC1A.kf1", &assign_ExcAC1A_kf1); + assign_map.emplace("ExcAC1A.kf2", &assign_ExcAC1A_kf2); + assign_map.emplace("ExcAC1A.ks", &assign_ExcAC1A_ks); + assign_map.emplace("ExcAC1A.seve1", &assign_ExcAC1A_seve1); + assign_map.emplace("ExcAC1A.seve2", &assign_ExcAC1A_seve2); + assign_map.emplace("ExcAC1A.ta", &assign_ExcAC1A_ta); + assign_map.emplace("ExcAC1A.tb", &assign_ExcAC1A_tb); + assign_map.emplace("ExcAC1A.tc", &assign_ExcAC1A_tc); + assign_map.emplace("ExcAC1A.te", &assign_ExcAC1A_te); + assign_map.emplace("ExcAC1A.tf", &assign_ExcAC1A_tf); + assign_map.emplace("ExcAC1A.vamax", &assign_ExcAC1A_vamax); + assign_map.emplace("ExcAC1A.vamin", &assign_ExcAC1A_vamin); + assign_map.emplace("ExcAC1A.ve1", &assign_ExcAC1A_ve1); + assign_map.emplace("ExcAC1A.ve2", &assign_ExcAC1A_ve2); + assign_map.emplace("ExcAC1A.vrmax", &assign_ExcAC1A_vrmax); + assign_map.emplace("ExcAC1A.vrmin", &assign_ExcAC1A_vrmin); } void ExcAC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void ExcAC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC1A.hvlvgates", &get_ExcAC1A_hvlvgates); - get_map.emplace("cim:ExcAC1A.ka", &get_ExcAC1A_ka); - get_map.emplace("cim:ExcAC1A.kc", &get_ExcAC1A_kc); - get_map.emplace("cim:ExcAC1A.kd", &get_ExcAC1A_kd); - get_map.emplace("cim:ExcAC1A.ke", &get_ExcAC1A_ke); - get_map.emplace("cim:ExcAC1A.kf", &get_ExcAC1A_kf); - get_map.emplace("cim:ExcAC1A.kf1", &get_ExcAC1A_kf1); - get_map.emplace("cim:ExcAC1A.kf2", &get_ExcAC1A_kf2); - get_map.emplace("cim:ExcAC1A.ks", &get_ExcAC1A_ks); - get_map.emplace("cim:ExcAC1A.seve1", &get_ExcAC1A_seve1); - get_map.emplace("cim:ExcAC1A.seve2", &get_ExcAC1A_seve2); - get_map.emplace("cim:ExcAC1A.ta", &get_ExcAC1A_ta); - get_map.emplace("cim:ExcAC1A.tb", &get_ExcAC1A_tb); - get_map.emplace("cim:ExcAC1A.tc", &get_ExcAC1A_tc); - get_map.emplace("cim:ExcAC1A.te", &get_ExcAC1A_te); - get_map.emplace("cim:ExcAC1A.tf", &get_ExcAC1A_tf); - get_map.emplace("cim:ExcAC1A.vamax", &get_ExcAC1A_vamax); - get_map.emplace("cim:ExcAC1A.vamin", &get_ExcAC1A_vamin); - get_map.emplace("cim:ExcAC1A.ve1", &get_ExcAC1A_ve1); - get_map.emplace("cim:ExcAC1A.ve2", &get_ExcAC1A_ve2); - get_map.emplace("cim:ExcAC1A.vrmax", &get_ExcAC1A_vrmax); - get_map.emplace("cim:ExcAC1A.vrmin", &get_ExcAC1A_vrmin); + get_map.emplace("ExcAC1A.hvlvgates", &get_ExcAC1A_hvlvgates); + get_map.emplace("ExcAC1A.ka", &get_ExcAC1A_ka); + get_map.emplace("ExcAC1A.kc", &get_ExcAC1A_kc); + get_map.emplace("ExcAC1A.kd", &get_ExcAC1A_kd); + get_map.emplace("ExcAC1A.ke", &get_ExcAC1A_ke); + get_map.emplace("ExcAC1A.kf", &get_ExcAC1A_kf); + get_map.emplace("ExcAC1A.kf1", &get_ExcAC1A_kf1); + get_map.emplace("ExcAC1A.kf2", &get_ExcAC1A_kf2); + get_map.emplace("ExcAC1A.ks", &get_ExcAC1A_ks); + get_map.emplace("ExcAC1A.seve1", &get_ExcAC1A_seve1); + get_map.emplace("ExcAC1A.seve2", &get_ExcAC1A_seve2); + get_map.emplace("ExcAC1A.ta", &get_ExcAC1A_ta); + get_map.emplace("ExcAC1A.tb", &get_ExcAC1A_tb); + get_map.emplace("ExcAC1A.tc", &get_ExcAC1A_tc); + get_map.emplace("ExcAC1A.te", &get_ExcAC1A_te); + get_map.emplace("ExcAC1A.tf", &get_ExcAC1A_tf); + get_map.emplace("ExcAC1A.vamax", &get_ExcAC1A_vamax); + get_map.emplace("ExcAC1A.vamin", &get_ExcAC1A_vamin); + get_map.emplace("ExcAC1A.ve1", &get_ExcAC1A_ve1); + get_map.emplace("ExcAC1A.ve2", &get_ExcAC1A_ve2); + get_map.emplace("ExcAC1A.vrmax", &get_ExcAC1A_vrmax); + get_map.emplace("ExcAC1A.vrmin", &get_ExcAC1A_vrmin); } void ExcAC1A::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void ExcAC1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC1A::declare() { return BaseClassDefiner(ExcAC1A::addConstructToMap, ExcAC1A::addPrimitiveAssignFnsToMap, ExcAC1A::addClassAssignFnsToMap, ExcAC1A::debugName); } +std::map ExcAC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAC1A.hpp b/CGMES_2.4.13_18DEC2013/ExcAC1A.hpp index 3a0fca2c2..625ead518 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC1A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAC2A.cpp b/CGMES_2.4.13_18DEC2013/ExcAC2A.cpp index 733be71b2..2120ee02c 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC2A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC2A.cpp @@ -11,59 +11,91 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC2A.hvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.lvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vlr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC2A::ExcAC2A() {} ExcAC2A::~ExcAC2A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC2A.hvgate", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kb", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kb1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kh", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kl", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kl1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.lvgate", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vlr", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC2A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC2A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC2A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC2A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC2A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC2A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC2A_hvgate(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -886,39 +918,39 @@ const char* ExcAC2A::debugString() const void ExcAC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC2A", &ExcAC2A_factory); + factory_map.emplace("ExcAC2A", &ExcAC2A_factory); } void ExcAC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC2A.hvgate", &assign_ExcAC2A_hvgate); - assign_map.emplace("cim:ExcAC2A.ka", &assign_ExcAC2A_ka); - assign_map.emplace("cim:ExcAC2A.kb", &assign_ExcAC2A_kb); - assign_map.emplace("cim:ExcAC2A.kb1", &assign_ExcAC2A_kb1); - assign_map.emplace("cim:ExcAC2A.kc", &assign_ExcAC2A_kc); - assign_map.emplace("cim:ExcAC2A.kd", &assign_ExcAC2A_kd); - assign_map.emplace("cim:ExcAC2A.ke", &assign_ExcAC2A_ke); - assign_map.emplace("cim:ExcAC2A.kf", &assign_ExcAC2A_kf); - assign_map.emplace("cim:ExcAC2A.kh", &assign_ExcAC2A_kh); - assign_map.emplace("cim:ExcAC2A.kl", &assign_ExcAC2A_kl); - assign_map.emplace("cim:ExcAC2A.kl1", &assign_ExcAC2A_kl1); - assign_map.emplace("cim:ExcAC2A.ks", &assign_ExcAC2A_ks); - assign_map.emplace("cim:ExcAC2A.lvgate", &assign_ExcAC2A_lvgate); - assign_map.emplace("cim:ExcAC2A.seve1", &assign_ExcAC2A_seve1); - assign_map.emplace("cim:ExcAC2A.seve2", &assign_ExcAC2A_seve2); - assign_map.emplace("cim:ExcAC2A.ta", &assign_ExcAC2A_ta); - assign_map.emplace("cim:ExcAC2A.tb", &assign_ExcAC2A_tb); - assign_map.emplace("cim:ExcAC2A.tc", &assign_ExcAC2A_tc); - assign_map.emplace("cim:ExcAC2A.te", &assign_ExcAC2A_te); - assign_map.emplace("cim:ExcAC2A.tf", &assign_ExcAC2A_tf); - assign_map.emplace("cim:ExcAC2A.vamax", &assign_ExcAC2A_vamax); - assign_map.emplace("cim:ExcAC2A.vamin", &assign_ExcAC2A_vamin); - assign_map.emplace("cim:ExcAC2A.ve1", &assign_ExcAC2A_ve1); - assign_map.emplace("cim:ExcAC2A.ve2", &assign_ExcAC2A_ve2); - assign_map.emplace("cim:ExcAC2A.vfemax", &assign_ExcAC2A_vfemax); - assign_map.emplace("cim:ExcAC2A.vlr", &assign_ExcAC2A_vlr); - assign_map.emplace("cim:ExcAC2A.vrmax", &assign_ExcAC2A_vrmax); - assign_map.emplace("cim:ExcAC2A.vrmin", &assign_ExcAC2A_vrmin); + assign_map.emplace("ExcAC2A.hvgate", &assign_ExcAC2A_hvgate); + assign_map.emplace("ExcAC2A.ka", &assign_ExcAC2A_ka); + assign_map.emplace("ExcAC2A.kb", &assign_ExcAC2A_kb); + assign_map.emplace("ExcAC2A.kb1", &assign_ExcAC2A_kb1); + assign_map.emplace("ExcAC2A.kc", &assign_ExcAC2A_kc); + assign_map.emplace("ExcAC2A.kd", &assign_ExcAC2A_kd); + assign_map.emplace("ExcAC2A.ke", &assign_ExcAC2A_ke); + assign_map.emplace("ExcAC2A.kf", &assign_ExcAC2A_kf); + assign_map.emplace("ExcAC2A.kh", &assign_ExcAC2A_kh); + assign_map.emplace("ExcAC2A.kl", &assign_ExcAC2A_kl); + assign_map.emplace("ExcAC2A.kl1", &assign_ExcAC2A_kl1); + assign_map.emplace("ExcAC2A.ks", &assign_ExcAC2A_ks); + assign_map.emplace("ExcAC2A.lvgate", &assign_ExcAC2A_lvgate); + assign_map.emplace("ExcAC2A.seve1", &assign_ExcAC2A_seve1); + assign_map.emplace("ExcAC2A.seve2", &assign_ExcAC2A_seve2); + assign_map.emplace("ExcAC2A.ta", &assign_ExcAC2A_ta); + assign_map.emplace("ExcAC2A.tb", &assign_ExcAC2A_tb); + assign_map.emplace("ExcAC2A.tc", &assign_ExcAC2A_tc); + assign_map.emplace("ExcAC2A.te", &assign_ExcAC2A_te); + assign_map.emplace("ExcAC2A.tf", &assign_ExcAC2A_tf); + assign_map.emplace("ExcAC2A.vamax", &assign_ExcAC2A_vamax); + assign_map.emplace("ExcAC2A.vamin", &assign_ExcAC2A_vamin); + assign_map.emplace("ExcAC2A.ve1", &assign_ExcAC2A_ve1); + assign_map.emplace("ExcAC2A.ve2", &assign_ExcAC2A_ve2); + assign_map.emplace("ExcAC2A.vfemax", &assign_ExcAC2A_vfemax); + assign_map.emplace("ExcAC2A.vlr", &assign_ExcAC2A_vlr); + assign_map.emplace("ExcAC2A.vrmax", &assign_ExcAC2A_vrmax); + assign_map.emplace("ExcAC2A.vrmin", &assign_ExcAC2A_vrmin); } void ExcAC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -928,34 +960,34 @@ void ExcAC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC2A.hvgate", &get_ExcAC2A_hvgate); - get_map.emplace("cim:ExcAC2A.ka", &get_ExcAC2A_ka); - get_map.emplace("cim:ExcAC2A.kb", &get_ExcAC2A_kb); - get_map.emplace("cim:ExcAC2A.kb1", &get_ExcAC2A_kb1); - get_map.emplace("cim:ExcAC2A.kc", &get_ExcAC2A_kc); - get_map.emplace("cim:ExcAC2A.kd", &get_ExcAC2A_kd); - get_map.emplace("cim:ExcAC2A.ke", &get_ExcAC2A_ke); - get_map.emplace("cim:ExcAC2A.kf", &get_ExcAC2A_kf); - get_map.emplace("cim:ExcAC2A.kh", &get_ExcAC2A_kh); - get_map.emplace("cim:ExcAC2A.kl", &get_ExcAC2A_kl); - get_map.emplace("cim:ExcAC2A.kl1", &get_ExcAC2A_kl1); - get_map.emplace("cim:ExcAC2A.ks", &get_ExcAC2A_ks); - get_map.emplace("cim:ExcAC2A.lvgate", &get_ExcAC2A_lvgate); - get_map.emplace("cim:ExcAC2A.seve1", &get_ExcAC2A_seve1); - get_map.emplace("cim:ExcAC2A.seve2", &get_ExcAC2A_seve2); - get_map.emplace("cim:ExcAC2A.ta", &get_ExcAC2A_ta); - get_map.emplace("cim:ExcAC2A.tb", &get_ExcAC2A_tb); - get_map.emplace("cim:ExcAC2A.tc", &get_ExcAC2A_tc); - get_map.emplace("cim:ExcAC2A.te", &get_ExcAC2A_te); - get_map.emplace("cim:ExcAC2A.tf", &get_ExcAC2A_tf); - get_map.emplace("cim:ExcAC2A.vamax", &get_ExcAC2A_vamax); - get_map.emplace("cim:ExcAC2A.vamin", &get_ExcAC2A_vamin); - get_map.emplace("cim:ExcAC2A.ve1", &get_ExcAC2A_ve1); - get_map.emplace("cim:ExcAC2A.ve2", &get_ExcAC2A_ve2); - get_map.emplace("cim:ExcAC2A.vfemax", &get_ExcAC2A_vfemax); - get_map.emplace("cim:ExcAC2A.vlr", &get_ExcAC2A_vlr); - get_map.emplace("cim:ExcAC2A.vrmax", &get_ExcAC2A_vrmax); - get_map.emplace("cim:ExcAC2A.vrmin", &get_ExcAC2A_vrmin); + get_map.emplace("ExcAC2A.hvgate", &get_ExcAC2A_hvgate); + get_map.emplace("ExcAC2A.ka", &get_ExcAC2A_ka); + get_map.emplace("ExcAC2A.kb", &get_ExcAC2A_kb); + get_map.emplace("ExcAC2A.kb1", &get_ExcAC2A_kb1); + get_map.emplace("ExcAC2A.kc", &get_ExcAC2A_kc); + get_map.emplace("ExcAC2A.kd", &get_ExcAC2A_kd); + get_map.emplace("ExcAC2A.ke", &get_ExcAC2A_ke); + get_map.emplace("ExcAC2A.kf", &get_ExcAC2A_kf); + get_map.emplace("ExcAC2A.kh", &get_ExcAC2A_kh); + get_map.emplace("ExcAC2A.kl", &get_ExcAC2A_kl); + get_map.emplace("ExcAC2A.kl1", &get_ExcAC2A_kl1); + get_map.emplace("ExcAC2A.ks", &get_ExcAC2A_ks); + get_map.emplace("ExcAC2A.lvgate", &get_ExcAC2A_lvgate); + get_map.emplace("ExcAC2A.seve1", &get_ExcAC2A_seve1); + get_map.emplace("ExcAC2A.seve2", &get_ExcAC2A_seve2); + get_map.emplace("ExcAC2A.ta", &get_ExcAC2A_ta); + get_map.emplace("ExcAC2A.tb", &get_ExcAC2A_tb); + get_map.emplace("ExcAC2A.tc", &get_ExcAC2A_tc); + get_map.emplace("ExcAC2A.te", &get_ExcAC2A_te); + get_map.emplace("ExcAC2A.tf", &get_ExcAC2A_tf); + get_map.emplace("ExcAC2A.vamax", &get_ExcAC2A_vamax); + get_map.emplace("ExcAC2A.vamin", &get_ExcAC2A_vamin); + get_map.emplace("ExcAC2A.ve1", &get_ExcAC2A_ve1); + get_map.emplace("ExcAC2A.ve2", &get_ExcAC2A_ve2); + get_map.emplace("ExcAC2A.vfemax", &get_ExcAC2A_vfemax); + get_map.emplace("ExcAC2A.vlr", &get_ExcAC2A_vlr); + get_map.emplace("ExcAC2A.vrmax", &get_ExcAC2A_vrmax); + get_map.emplace("ExcAC2A.vrmin", &get_ExcAC2A_vrmin); } void ExcAC2A::addClassGetFnsToMap(std::map& get_map) const @@ -968,11 +1000,25 @@ void ExcAC2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC2A::declare() { return BaseClassDefiner(ExcAC2A::addConstructToMap, ExcAC2A::addPrimitiveAssignFnsToMap, ExcAC2A::addClassAssignFnsToMap, ExcAC2A::debugName); } +std::map ExcAC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC2A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAC2A.hpp b/CGMES_2.4.13_18DEC2013/ExcAC2A.hpp index 902938d79..c2b57c443 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC2A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -115,8 +116,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -124,7 +132,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC2A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAC3A.cpp b/CGMES_2.4.13_18DEC2013/ExcAC3A.cpp index 254577cfa..cb098c0b4 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC3A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC3A.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC3A.efdn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.klv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vlv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC3A::ExcAC3A() {} ExcAC3A::~ExcAC3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC3A.efdn", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.klv", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kn", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vemin", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vlv", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC3A_efdn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* ExcAC3A::debugString() const void ExcAC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC3A", &ExcAC3A_factory); + factory_map.emplace("ExcAC3A", &ExcAC3A_factory); } void ExcAC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC3A.efdn", &assign_ExcAC3A_efdn); - assign_map.emplace("cim:ExcAC3A.ka", &assign_ExcAC3A_ka); - assign_map.emplace("cim:ExcAC3A.kc", &assign_ExcAC3A_kc); - assign_map.emplace("cim:ExcAC3A.kd", &assign_ExcAC3A_kd); - assign_map.emplace("cim:ExcAC3A.ke", &assign_ExcAC3A_ke); - assign_map.emplace("cim:ExcAC3A.kf", &assign_ExcAC3A_kf); - assign_map.emplace("cim:ExcAC3A.kf1", &assign_ExcAC3A_kf1); - assign_map.emplace("cim:ExcAC3A.kf2", &assign_ExcAC3A_kf2); - assign_map.emplace("cim:ExcAC3A.klv", &assign_ExcAC3A_klv); - assign_map.emplace("cim:ExcAC3A.kn", &assign_ExcAC3A_kn); - assign_map.emplace("cim:ExcAC3A.kr", &assign_ExcAC3A_kr); - assign_map.emplace("cim:ExcAC3A.ks", &assign_ExcAC3A_ks); - assign_map.emplace("cim:ExcAC3A.seve1", &assign_ExcAC3A_seve1); - assign_map.emplace("cim:ExcAC3A.seve2", &assign_ExcAC3A_seve2); - assign_map.emplace("cim:ExcAC3A.ta", &assign_ExcAC3A_ta); - assign_map.emplace("cim:ExcAC3A.tb", &assign_ExcAC3A_tb); - assign_map.emplace("cim:ExcAC3A.tc", &assign_ExcAC3A_tc); - assign_map.emplace("cim:ExcAC3A.te", &assign_ExcAC3A_te); - assign_map.emplace("cim:ExcAC3A.tf", &assign_ExcAC3A_tf); - assign_map.emplace("cim:ExcAC3A.vamax", &assign_ExcAC3A_vamax); - assign_map.emplace("cim:ExcAC3A.vamin", &assign_ExcAC3A_vamin); - assign_map.emplace("cim:ExcAC3A.ve1", &assign_ExcAC3A_ve1); - assign_map.emplace("cim:ExcAC3A.ve2", &assign_ExcAC3A_ve2); - assign_map.emplace("cim:ExcAC3A.vemin", &assign_ExcAC3A_vemin); - assign_map.emplace("cim:ExcAC3A.vfemax", &assign_ExcAC3A_vfemax); - assign_map.emplace("cim:ExcAC3A.vlv", &assign_ExcAC3A_vlv); + assign_map.emplace("ExcAC3A.efdn", &assign_ExcAC3A_efdn); + assign_map.emplace("ExcAC3A.ka", &assign_ExcAC3A_ka); + assign_map.emplace("ExcAC3A.kc", &assign_ExcAC3A_kc); + assign_map.emplace("ExcAC3A.kd", &assign_ExcAC3A_kd); + assign_map.emplace("ExcAC3A.ke", &assign_ExcAC3A_ke); + assign_map.emplace("ExcAC3A.kf", &assign_ExcAC3A_kf); + assign_map.emplace("ExcAC3A.kf1", &assign_ExcAC3A_kf1); + assign_map.emplace("ExcAC3A.kf2", &assign_ExcAC3A_kf2); + assign_map.emplace("ExcAC3A.klv", &assign_ExcAC3A_klv); + assign_map.emplace("ExcAC3A.kn", &assign_ExcAC3A_kn); + assign_map.emplace("ExcAC3A.kr", &assign_ExcAC3A_kr); + assign_map.emplace("ExcAC3A.ks", &assign_ExcAC3A_ks); + assign_map.emplace("ExcAC3A.seve1", &assign_ExcAC3A_seve1); + assign_map.emplace("ExcAC3A.seve2", &assign_ExcAC3A_seve2); + assign_map.emplace("ExcAC3A.ta", &assign_ExcAC3A_ta); + assign_map.emplace("ExcAC3A.tb", &assign_ExcAC3A_tb); + assign_map.emplace("ExcAC3A.tc", &assign_ExcAC3A_tc); + assign_map.emplace("ExcAC3A.te", &assign_ExcAC3A_te); + assign_map.emplace("ExcAC3A.tf", &assign_ExcAC3A_tf); + assign_map.emplace("ExcAC3A.vamax", &assign_ExcAC3A_vamax); + assign_map.emplace("ExcAC3A.vamin", &assign_ExcAC3A_vamin); + assign_map.emplace("ExcAC3A.ve1", &assign_ExcAC3A_ve1); + assign_map.emplace("ExcAC3A.ve2", &assign_ExcAC3A_ve2); + assign_map.emplace("ExcAC3A.vemin", &assign_ExcAC3A_vemin); + assign_map.emplace("ExcAC3A.vfemax", &assign_ExcAC3A_vfemax); + assign_map.emplace("ExcAC3A.vlv", &assign_ExcAC3A_vlv); } void ExcAC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void ExcAC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC3A.efdn", &get_ExcAC3A_efdn); - get_map.emplace("cim:ExcAC3A.ka", &get_ExcAC3A_ka); - get_map.emplace("cim:ExcAC3A.kc", &get_ExcAC3A_kc); - get_map.emplace("cim:ExcAC3A.kd", &get_ExcAC3A_kd); - get_map.emplace("cim:ExcAC3A.ke", &get_ExcAC3A_ke); - get_map.emplace("cim:ExcAC3A.kf", &get_ExcAC3A_kf); - get_map.emplace("cim:ExcAC3A.kf1", &get_ExcAC3A_kf1); - get_map.emplace("cim:ExcAC3A.kf2", &get_ExcAC3A_kf2); - get_map.emplace("cim:ExcAC3A.klv", &get_ExcAC3A_klv); - get_map.emplace("cim:ExcAC3A.kn", &get_ExcAC3A_kn); - get_map.emplace("cim:ExcAC3A.kr", &get_ExcAC3A_kr); - get_map.emplace("cim:ExcAC3A.ks", &get_ExcAC3A_ks); - get_map.emplace("cim:ExcAC3A.seve1", &get_ExcAC3A_seve1); - get_map.emplace("cim:ExcAC3A.seve2", &get_ExcAC3A_seve2); - get_map.emplace("cim:ExcAC3A.ta", &get_ExcAC3A_ta); - get_map.emplace("cim:ExcAC3A.tb", &get_ExcAC3A_tb); - get_map.emplace("cim:ExcAC3A.tc", &get_ExcAC3A_tc); - get_map.emplace("cim:ExcAC3A.te", &get_ExcAC3A_te); - get_map.emplace("cim:ExcAC3A.tf", &get_ExcAC3A_tf); - get_map.emplace("cim:ExcAC3A.vamax", &get_ExcAC3A_vamax); - get_map.emplace("cim:ExcAC3A.vamin", &get_ExcAC3A_vamin); - get_map.emplace("cim:ExcAC3A.ve1", &get_ExcAC3A_ve1); - get_map.emplace("cim:ExcAC3A.ve2", &get_ExcAC3A_ve2); - get_map.emplace("cim:ExcAC3A.vemin", &get_ExcAC3A_vemin); - get_map.emplace("cim:ExcAC3A.vfemax", &get_ExcAC3A_vfemax); - get_map.emplace("cim:ExcAC3A.vlv", &get_ExcAC3A_vlv); + get_map.emplace("ExcAC3A.efdn", &get_ExcAC3A_efdn); + get_map.emplace("ExcAC3A.ka", &get_ExcAC3A_ka); + get_map.emplace("ExcAC3A.kc", &get_ExcAC3A_kc); + get_map.emplace("ExcAC3A.kd", &get_ExcAC3A_kd); + get_map.emplace("ExcAC3A.ke", &get_ExcAC3A_ke); + get_map.emplace("ExcAC3A.kf", &get_ExcAC3A_kf); + get_map.emplace("ExcAC3A.kf1", &get_ExcAC3A_kf1); + get_map.emplace("ExcAC3A.kf2", &get_ExcAC3A_kf2); + get_map.emplace("ExcAC3A.klv", &get_ExcAC3A_klv); + get_map.emplace("ExcAC3A.kn", &get_ExcAC3A_kn); + get_map.emplace("ExcAC3A.kr", &get_ExcAC3A_kr); + get_map.emplace("ExcAC3A.ks", &get_ExcAC3A_ks); + get_map.emplace("ExcAC3A.seve1", &get_ExcAC3A_seve1); + get_map.emplace("ExcAC3A.seve2", &get_ExcAC3A_seve2); + get_map.emplace("ExcAC3A.ta", &get_ExcAC3A_ta); + get_map.emplace("ExcAC3A.tb", &get_ExcAC3A_tb); + get_map.emplace("ExcAC3A.tc", &get_ExcAC3A_tc); + get_map.emplace("ExcAC3A.te", &get_ExcAC3A_te); + get_map.emplace("ExcAC3A.tf", &get_ExcAC3A_tf); + get_map.emplace("ExcAC3A.vamax", &get_ExcAC3A_vamax); + get_map.emplace("ExcAC3A.vamin", &get_ExcAC3A_vamin); + get_map.emplace("ExcAC3A.ve1", &get_ExcAC3A_ve1); + get_map.emplace("ExcAC3A.ve2", &get_ExcAC3A_ve2); + get_map.emplace("ExcAC3A.vemin", &get_ExcAC3A_vemin); + get_map.emplace("ExcAC3A.vfemax", &get_ExcAC3A_vfemax); + get_map.emplace("ExcAC3A.vlv", &get_ExcAC3A_vlv); } void ExcAC3A::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void ExcAC3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC3A::declare() { return BaseClassDefiner(ExcAC3A::addConstructToMap, ExcAC3A::addPrimitiveAssignFnsToMap, ExcAC3A::addClassAssignFnsToMap, ExcAC3A::debugName); } +std::map ExcAC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC3A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAC3A.hpp b/CGMES_2.4.13_18DEC2013/ExcAC3A.hpp index 430ee5d27..ab770529e 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC3A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC3A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAC4A.cpp b/CGMES_2.4.13_18DEC2013/ExcAC4A.cpp index ee9a03733..fb9830e44 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC4A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC4A.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC4A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC4A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC4A::ExcAC4A() {} ExcAC4A::~ExcAC4A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAC4A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAC4A::getClassNamespaceUrl() const { - { "cim:ExcAC4A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAC4A::getPossibleProfilesForClass() const +const std::string& ExcAC4A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAC4A::getPossibleProfilesForAttributes() const +const std::list& ExcAC4A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC4A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC4A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC4A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC4A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ExcAC4A::debugString() const void ExcAC4A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC4A", &ExcAC4A_factory); + factory_map.emplace("ExcAC4A", &ExcAC4A_factory); } void ExcAC4A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC4A.ka", &assign_ExcAC4A_ka); - assign_map.emplace("cim:ExcAC4A.kc", &assign_ExcAC4A_kc); - assign_map.emplace("cim:ExcAC4A.ta", &assign_ExcAC4A_ta); - assign_map.emplace("cim:ExcAC4A.tb", &assign_ExcAC4A_tb); - assign_map.emplace("cim:ExcAC4A.tc", &assign_ExcAC4A_tc); - assign_map.emplace("cim:ExcAC4A.vimax", &assign_ExcAC4A_vimax); - assign_map.emplace("cim:ExcAC4A.vimin", &assign_ExcAC4A_vimin); - assign_map.emplace("cim:ExcAC4A.vrmax", &assign_ExcAC4A_vrmax); - assign_map.emplace("cim:ExcAC4A.vrmin", &assign_ExcAC4A_vrmin); + assign_map.emplace("ExcAC4A.ka", &assign_ExcAC4A_ka); + assign_map.emplace("ExcAC4A.kc", &assign_ExcAC4A_kc); + assign_map.emplace("ExcAC4A.ta", &assign_ExcAC4A_ta); + assign_map.emplace("ExcAC4A.tb", &assign_ExcAC4A_tb); + assign_map.emplace("ExcAC4A.tc", &assign_ExcAC4A_tc); + assign_map.emplace("ExcAC4A.vimax", &assign_ExcAC4A_vimax); + assign_map.emplace("ExcAC4A.vimin", &assign_ExcAC4A_vimin); + assign_map.emplace("ExcAC4A.vrmax", &assign_ExcAC4A_vrmax); + assign_map.emplace("ExcAC4A.vrmin", &assign_ExcAC4A_vrmin); } void ExcAC4A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ExcAC4A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC4A.ka", &get_ExcAC4A_ka); - get_map.emplace("cim:ExcAC4A.kc", &get_ExcAC4A_kc); - get_map.emplace("cim:ExcAC4A.ta", &get_ExcAC4A_ta); - get_map.emplace("cim:ExcAC4A.tb", &get_ExcAC4A_tb); - get_map.emplace("cim:ExcAC4A.tc", &get_ExcAC4A_tc); - get_map.emplace("cim:ExcAC4A.vimax", &get_ExcAC4A_vimax); - get_map.emplace("cim:ExcAC4A.vimin", &get_ExcAC4A_vimin); - get_map.emplace("cim:ExcAC4A.vrmax", &get_ExcAC4A_vrmax); - get_map.emplace("cim:ExcAC4A.vrmin", &get_ExcAC4A_vrmin); + get_map.emplace("ExcAC4A.ka", &get_ExcAC4A_ka); + get_map.emplace("ExcAC4A.kc", &get_ExcAC4A_kc); + get_map.emplace("ExcAC4A.ta", &get_ExcAC4A_ta); + get_map.emplace("ExcAC4A.tb", &get_ExcAC4A_tb); + get_map.emplace("ExcAC4A.tc", &get_ExcAC4A_tc); + get_map.emplace("ExcAC4A.vimax", &get_ExcAC4A_vimax); + get_map.emplace("ExcAC4A.vimin", &get_ExcAC4A_vimin); + get_map.emplace("ExcAC4A.vrmax", &get_ExcAC4A_vrmax); + get_map.emplace("ExcAC4A.vrmin", &get_ExcAC4A_vrmin); } void ExcAC4A::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ExcAC4A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC4A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC4A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC4A::declare() { return BaseClassDefiner(ExcAC4A::addConstructToMap, ExcAC4A::addPrimitiveAssignFnsToMap, ExcAC4A::addClassAssignFnsToMap, ExcAC4A::debugName); } +std::map ExcAC4A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC4A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAC4A.hpp b/CGMES_2.4.13_18DEC2013/ExcAC4A.hpp index d0fc847a7..56da05fe8 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC4A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC4A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC4A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAC5A.cpp b/CGMES_2.4.13_18DEC2013/ExcAC5A.cpp index c0836badb..6e755d270 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC5A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC5A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC5A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC5A.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC5A::ExcAC5A() {} ExcAC5A::~ExcAC5A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAC5A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAC5A::getClassNamespaceUrl() const { - { "cim:ExcAC5A.a", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf3", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAC5A::getPossibleProfilesForClass() const +const std::string& ExcAC5A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAC5A::getPossibleProfilesForAttributes() const +const std::list& ExcAC5A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC5A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC5A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC5A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC5A_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcAC5A::debugString() const void ExcAC5A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC5A", &ExcAC5A_factory); + factory_map.emplace("ExcAC5A", &ExcAC5A_factory); } void ExcAC5A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC5A.a", &assign_ExcAC5A_a); - assign_map.emplace("cim:ExcAC5A.efd1", &assign_ExcAC5A_efd1); - assign_map.emplace("cim:ExcAC5A.efd2", &assign_ExcAC5A_efd2); - assign_map.emplace("cim:ExcAC5A.ka", &assign_ExcAC5A_ka); - assign_map.emplace("cim:ExcAC5A.ke", &assign_ExcAC5A_ke); - assign_map.emplace("cim:ExcAC5A.kf", &assign_ExcAC5A_kf); - assign_map.emplace("cim:ExcAC5A.ks", &assign_ExcAC5A_ks); - assign_map.emplace("cim:ExcAC5A.seefd1", &assign_ExcAC5A_seefd1); - assign_map.emplace("cim:ExcAC5A.seefd2", &assign_ExcAC5A_seefd2); - assign_map.emplace("cim:ExcAC5A.ta", &assign_ExcAC5A_ta); - assign_map.emplace("cim:ExcAC5A.tb", &assign_ExcAC5A_tb); - assign_map.emplace("cim:ExcAC5A.tc", &assign_ExcAC5A_tc); - assign_map.emplace("cim:ExcAC5A.te", &assign_ExcAC5A_te); - assign_map.emplace("cim:ExcAC5A.tf1", &assign_ExcAC5A_tf1); - assign_map.emplace("cim:ExcAC5A.tf2", &assign_ExcAC5A_tf2); - assign_map.emplace("cim:ExcAC5A.tf3", &assign_ExcAC5A_tf3); - assign_map.emplace("cim:ExcAC5A.vrmax", &assign_ExcAC5A_vrmax); - assign_map.emplace("cim:ExcAC5A.vrmin", &assign_ExcAC5A_vrmin); + assign_map.emplace("ExcAC5A.a", &assign_ExcAC5A_a); + assign_map.emplace("ExcAC5A.efd1", &assign_ExcAC5A_efd1); + assign_map.emplace("ExcAC5A.efd2", &assign_ExcAC5A_efd2); + assign_map.emplace("ExcAC5A.ka", &assign_ExcAC5A_ka); + assign_map.emplace("ExcAC5A.ke", &assign_ExcAC5A_ke); + assign_map.emplace("ExcAC5A.kf", &assign_ExcAC5A_kf); + assign_map.emplace("ExcAC5A.ks", &assign_ExcAC5A_ks); + assign_map.emplace("ExcAC5A.seefd1", &assign_ExcAC5A_seefd1); + assign_map.emplace("ExcAC5A.seefd2", &assign_ExcAC5A_seefd2); + assign_map.emplace("ExcAC5A.ta", &assign_ExcAC5A_ta); + assign_map.emplace("ExcAC5A.tb", &assign_ExcAC5A_tb); + assign_map.emplace("ExcAC5A.tc", &assign_ExcAC5A_tc); + assign_map.emplace("ExcAC5A.te", &assign_ExcAC5A_te); + assign_map.emplace("ExcAC5A.tf1", &assign_ExcAC5A_tf1); + assign_map.emplace("ExcAC5A.tf2", &assign_ExcAC5A_tf2); + assign_map.emplace("ExcAC5A.tf3", &assign_ExcAC5A_tf3); + assign_map.emplace("ExcAC5A.vrmax", &assign_ExcAC5A_vrmax); + assign_map.emplace("ExcAC5A.vrmin", &assign_ExcAC5A_vrmin); } void ExcAC5A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcAC5A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC5A.a", &get_ExcAC5A_a); - get_map.emplace("cim:ExcAC5A.efd1", &get_ExcAC5A_efd1); - get_map.emplace("cim:ExcAC5A.efd2", &get_ExcAC5A_efd2); - get_map.emplace("cim:ExcAC5A.ka", &get_ExcAC5A_ka); - get_map.emplace("cim:ExcAC5A.ke", &get_ExcAC5A_ke); - get_map.emplace("cim:ExcAC5A.kf", &get_ExcAC5A_kf); - get_map.emplace("cim:ExcAC5A.ks", &get_ExcAC5A_ks); - get_map.emplace("cim:ExcAC5A.seefd1", &get_ExcAC5A_seefd1); - get_map.emplace("cim:ExcAC5A.seefd2", &get_ExcAC5A_seefd2); - get_map.emplace("cim:ExcAC5A.ta", &get_ExcAC5A_ta); - get_map.emplace("cim:ExcAC5A.tb", &get_ExcAC5A_tb); - get_map.emplace("cim:ExcAC5A.tc", &get_ExcAC5A_tc); - get_map.emplace("cim:ExcAC5A.te", &get_ExcAC5A_te); - get_map.emplace("cim:ExcAC5A.tf1", &get_ExcAC5A_tf1); - get_map.emplace("cim:ExcAC5A.tf2", &get_ExcAC5A_tf2); - get_map.emplace("cim:ExcAC5A.tf3", &get_ExcAC5A_tf3); - get_map.emplace("cim:ExcAC5A.vrmax", &get_ExcAC5A_vrmax); - get_map.emplace("cim:ExcAC5A.vrmin", &get_ExcAC5A_vrmin); + get_map.emplace("ExcAC5A.a", &get_ExcAC5A_a); + get_map.emplace("ExcAC5A.efd1", &get_ExcAC5A_efd1); + get_map.emplace("ExcAC5A.efd2", &get_ExcAC5A_efd2); + get_map.emplace("ExcAC5A.ka", &get_ExcAC5A_ka); + get_map.emplace("ExcAC5A.ke", &get_ExcAC5A_ke); + get_map.emplace("ExcAC5A.kf", &get_ExcAC5A_kf); + get_map.emplace("ExcAC5A.ks", &get_ExcAC5A_ks); + get_map.emplace("ExcAC5A.seefd1", &get_ExcAC5A_seefd1); + get_map.emplace("ExcAC5A.seefd2", &get_ExcAC5A_seefd2); + get_map.emplace("ExcAC5A.ta", &get_ExcAC5A_ta); + get_map.emplace("ExcAC5A.tb", &get_ExcAC5A_tb); + get_map.emplace("ExcAC5A.tc", &get_ExcAC5A_tc); + get_map.emplace("ExcAC5A.te", &get_ExcAC5A_te); + get_map.emplace("ExcAC5A.tf1", &get_ExcAC5A_tf1); + get_map.emplace("ExcAC5A.tf2", &get_ExcAC5A_tf2); + get_map.emplace("ExcAC5A.tf3", &get_ExcAC5A_tf3); + get_map.emplace("ExcAC5A.vrmax", &get_ExcAC5A_vrmax); + get_map.emplace("ExcAC5A.vrmin", &get_ExcAC5A_vrmin); } void ExcAC5A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcAC5A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC5A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC5A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC5A::declare() { return BaseClassDefiner(ExcAC5A::addConstructToMap, ExcAC5A::addPrimitiveAssignFnsToMap, ExcAC5A::addClassAssignFnsToMap, ExcAC5A::debugName); } +std::map ExcAC5A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC5A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAC5A.hpp b/CGMES_2.4.13_18DEC2013/ExcAC5A.hpp index 17c61ea36..009ae6ba3 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC5A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC5A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC5A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAC6A.cpp b/CGMES_2.4.13_18DEC2013/ExcAC6A.cpp index bcdd5fdcd..ff05d5aa7 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC6A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC6A.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC6A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC6A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.th", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vfelim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC6A::ExcAC6A() {} ExcAC6A::~ExcAC6A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC6A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kh", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.th", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tj", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tk", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vfelim", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vhmax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC6A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC6A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC6A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC6A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC6A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC6A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC6A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC6A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC6A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC6A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcAC6A::debugString() const void ExcAC6A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC6A", &ExcAC6A_factory); + factory_map.emplace("ExcAC6A", &ExcAC6A_factory); } void ExcAC6A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC6A.ka", &assign_ExcAC6A_ka); - assign_map.emplace("cim:ExcAC6A.kc", &assign_ExcAC6A_kc); - assign_map.emplace("cim:ExcAC6A.kd", &assign_ExcAC6A_kd); - assign_map.emplace("cim:ExcAC6A.ke", &assign_ExcAC6A_ke); - assign_map.emplace("cim:ExcAC6A.kh", &assign_ExcAC6A_kh); - assign_map.emplace("cim:ExcAC6A.ks", &assign_ExcAC6A_ks); - assign_map.emplace("cim:ExcAC6A.seve1", &assign_ExcAC6A_seve1); - assign_map.emplace("cim:ExcAC6A.seve2", &assign_ExcAC6A_seve2); - assign_map.emplace("cim:ExcAC6A.ta", &assign_ExcAC6A_ta); - assign_map.emplace("cim:ExcAC6A.tb", &assign_ExcAC6A_tb); - assign_map.emplace("cim:ExcAC6A.tc", &assign_ExcAC6A_tc); - assign_map.emplace("cim:ExcAC6A.te", &assign_ExcAC6A_te); - assign_map.emplace("cim:ExcAC6A.th", &assign_ExcAC6A_th); - assign_map.emplace("cim:ExcAC6A.tj", &assign_ExcAC6A_tj); - assign_map.emplace("cim:ExcAC6A.tk", &assign_ExcAC6A_tk); - assign_map.emplace("cim:ExcAC6A.vamax", &assign_ExcAC6A_vamax); - assign_map.emplace("cim:ExcAC6A.vamin", &assign_ExcAC6A_vamin); - assign_map.emplace("cim:ExcAC6A.ve1", &assign_ExcAC6A_ve1); - assign_map.emplace("cim:ExcAC6A.ve2", &assign_ExcAC6A_ve2); - assign_map.emplace("cim:ExcAC6A.vfelim", &assign_ExcAC6A_vfelim); - assign_map.emplace("cim:ExcAC6A.vhmax", &assign_ExcAC6A_vhmax); - assign_map.emplace("cim:ExcAC6A.vrmax", &assign_ExcAC6A_vrmax); - assign_map.emplace("cim:ExcAC6A.vrmin", &assign_ExcAC6A_vrmin); + assign_map.emplace("ExcAC6A.ka", &assign_ExcAC6A_ka); + assign_map.emplace("ExcAC6A.kc", &assign_ExcAC6A_kc); + assign_map.emplace("ExcAC6A.kd", &assign_ExcAC6A_kd); + assign_map.emplace("ExcAC6A.ke", &assign_ExcAC6A_ke); + assign_map.emplace("ExcAC6A.kh", &assign_ExcAC6A_kh); + assign_map.emplace("ExcAC6A.ks", &assign_ExcAC6A_ks); + assign_map.emplace("ExcAC6A.seve1", &assign_ExcAC6A_seve1); + assign_map.emplace("ExcAC6A.seve2", &assign_ExcAC6A_seve2); + assign_map.emplace("ExcAC6A.ta", &assign_ExcAC6A_ta); + assign_map.emplace("ExcAC6A.tb", &assign_ExcAC6A_tb); + assign_map.emplace("ExcAC6A.tc", &assign_ExcAC6A_tc); + assign_map.emplace("ExcAC6A.te", &assign_ExcAC6A_te); + assign_map.emplace("ExcAC6A.th", &assign_ExcAC6A_th); + assign_map.emplace("ExcAC6A.tj", &assign_ExcAC6A_tj); + assign_map.emplace("ExcAC6A.tk", &assign_ExcAC6A_tk); + assign_map.emplace("ExcAC6A.vamax", &assign_ExcAC6A_vamax); + assign_map.emplace("ExcAC6A.vamin", &assign_ExcAC6A_vamin); + assign_map.emplace("ExcAC6A.ve1", &assign_ExcAC6A_ve1); + assign_map.emplace("ExcAC6A.ve2", &assign_ExcAC6A_ve2); + assign_map.emplace("ExcAC6A.vfelim", &assign_ExcAC6A_vfelim); + assign_map.emplace("ExcAC6A.vhmax", &assign_ExcAC6A_vhmax); + assign_map.emplace("ExcAC6A.vrmax", &assign_ExcAC6A_vrmax); + assign_map.emplace("ExcAC6A.vrmin", &assign_ExcAC6A_vrmin); } void ExcAC6A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcAC6A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC6A.ka", &get_ExcAC6A_ka); - get_map.emplace("cim:ExcAC6A.kc", &get_ExcAC6A_kc); - get_map.emplace("cim:ExcAC6A.kd", &get_ExcAC6A_kd); - get_map.emplace("cim:ExcAC6A.ke", &get_ExcAC6A_ke); - get_map.emplace("cim:ExcAC6A.kh", &get_ExcAC6A_kh); - get_map.emplace("cim:ExcAC6A.ks", &get_ExcAC6A_ks); - get_map.emplace("cim:ExcAC6A.seve1", &get_ExcAC6A_seve1); - get_map.emplace("cim:ExcAC6A.seve2", &get_ExcAC6A_seve2); - get_map.emplace("cim:ExcAC6A.ta", &get_ExcAC6A_ta); - get_map.emplace("cim:ExcAC6A.tb", &get_ExcAC6A_tb); - get_map.emplace("cim:ExcAC6A.tc", &get_ExcAC6A_tc); - get_map.emplace("cim:ExcAC6A.te", &get_ExcAC6A_te); - get_map.emplace("cim:ExcAC6A.th", &get_ExcAC6A_th); - get_map.emplace("cim:ExcAC6A.tj", &get_ExcAC6A_tj); - get_map.emplace("cim:ExcAC6A.tk", &get_ExcAC6A_tk); - get_map.emplace("cim:ExcAC6A.vamax", &get_ExcAC6A_vamax); - get_map.emplace("cim:ExcAC6A.vamin", &get_ExcAC6A_vamin); - get_map.emplace("cim:ExcAC6A.ve1", &get_ExcAC6A_ve1); - get_map.emplace("cim:ExcAC6A.ve2", &get_ExcAC6A_ve2); - get_map.emplace("cim:ExcAC6A.vfelim", &get_ExcAC6A_vfelim); - get_map.emplace("cim:ExcAC6A.vhmax", &get_ExcAC6A_vhmax); - get_map.emplace("cim:ExcAC6A.vrmax", &get_ExcAC6A_vrmax); - get_map.emplace("cim:ExcAC6A.vrmin", &get_ExcAC6A_vrmin); + get_map.emplace("ExcAC6A.ka", &get_ExcAC6A_ka); + get_map.emplace("ExcAC6A.kc", &get_ExcAC6A_kc); + get_map.emplace("ExcAC6A.kd", &get_ExcAC6A_kd); + get_map.emplace("ExcAC6A.ke", &get_ExcAC6A_ke); + get_map.emplace("ExcAC6A.kh", &get_ExcAC6A_kh); + get_map.emplace("ExcAC6A.ks", &get_ExcAC6A_ks); + get_map.emplace("ExcAC6A.seve1", &get_ExcAC6A_seve1); + get_map.emplace("ExcAC6A.seve2", &get_ExcAC6A_seve2); + get_map.emplace("ExcAC6A.ta", &get_ExcAC6A_ta); + get_map.emplace("ExcAC6A.tb", &get_ExcAC6A_tb); + get_map.emplace("ExcAC6A.tc", &get_ExcAC6A_tc); + get_map.emplace("ExcAC6A.te", &get_ExcAC6A_te); + get_map.emplace("ExcAC6A.th", &get_ExcAC6A_th); + get_map.emplace("ExcAC6A.tj", &get_ExcAC6A_tj); + get_map.emplace("ExcAC6A.tk", &get_ExcAC6A_tk); + get_map.emplace("ExcAC6A.vamax", &get_ExcAC6A_vamax); + get_map.emplace("ExcAC6A.vamin", &get_ExcAC6A_vamin); + get_map.emplace("ExcAC6A.ve1", &get_ExcAC6A_ve1); + get_map.emplace("ExcAC6A.ve2", &get_ExcAC6A_ve2); + get_map.emplace("ExcAC6A.vfelim", &get_ExcAC6A_vfelim); + get_map.emplace("ExcAC6A.vhmax", &get_ExcAC6A_vhmax); + get_map.emplace("ExcAC6A.vrmax", &get_ExcAC6A_vrmax); + get_map.emplace("ExcAC6A.vrmin", &get_ExcAC6A_vrmin); } void ExcAC6A::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcAC6A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC6A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC6A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC6A::declare() { return BaseClassDefiner(ExcAC6A::addConstructToMap, ExcAC6A::addPrimitiveAssignFnsToMap, ExcAC6A::addClassAssignFnsToMap, ExcAC6A::debugName); } +std::map ExcAC6A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC6A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAC6A.hpp b/CGMES_2.4.13_18DEC2013/ExcAC6A.hpp index 9bc679ac4..43fed9636 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC6A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC6A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -99,8 +100,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -108,7 +116,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC6A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAC8B.cpp b/CGMES_2.4.13_18DEC2013/ExcAC8B.cpp index d43497172..9cd4d5e27 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC8B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC8B.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC8B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC8B.inlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.pidlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.telim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vpidmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vpidmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vtmult", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC8B::ExcAC8B() {} ExcAC8B::~ExcAC8B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC8B.inlim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kir", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.pidlim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.te", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.telim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vimax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vimin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vpidmax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vpidmin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vtmult", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC8B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC8B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC8B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC8B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC8B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC8B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC8B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC8B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC8B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC8B_inlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* ExcAC8B::debugString() const void ExcAC8B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC8B", &ExcAC8B_factory); + factory_map.emplace("ExcAC8B", &ExcAC8B_factory); } void ExcAC8B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC8B.inlim", &assign_ExcAC8B_inlim); - assign_map.emplace("cim:ExcAC8B.ka", &assign_ExcAC8B_ka); - assign_map.emplace("cim:ExcAC8B.kc", &assign_ExcAC8B_kc); - assign_map.emplace("cim:ExcAC8B.kd", &assign_ExcAC8B_kd); - assign_map.emplace("cim:ExcAC8B.kdr", &assign_ExcAC8B_kdr); - assign_map.emplace("cim:ExcAC8B.ke", &assign_ExcAC8B_ke); - assign_map.emplace("cim:ExcAC8B.kir", &assign_ExcAC8B_kir); - assign_map.emplace("cim:ExcAC8B.kpr", &assign_ExcAC8B_kpr); - assign_map.emplace("cim:ExcAC8B.ks", &assign_ExcAC8B_ks); - assign_map.emplace("cim:ExcAC8B.pidlim", &assign_ExcAC8B_pidlim); - assign_map.emplace("cim:ExcAC8B.seve1", &assign_ExcAC8B_seve1); - assign_map.emplace("cim:ExcAC8B.seve2", &assign_ExcAC8B_seve2); - assign_map.emplace("cim:ExcAC8B.ta", &assign_ExcAC8B_ta); - assign_map.emplace("cim:ExcAC8B.tdr", &assign_ExcAC8B_tdr); - assign_map.emplace("cim:ExcAC8B.te", &assign_ExcAC8B_te); - assign_map.emplace("cim:ExcAC8B.telim", &assign_ExcAC8B_telim); - assign_map.emplace("cim:ExcAC8B.ve1", &assign_ExcAC8B_ve1); - assign_map.emplace("cim:ExcAC8B.ve2", &assign_ExcAC8B_ve2); - assign_map.emplace("cim:ExcAC8B.vemin", &assign_ExcAC8B_vemin); - assign_map.emplace("cim:ExcAC8B.vfemax", &assign_ExcAC8B_vfemax); - assign_map.emplace("cim:ExcAC8B.vimax", &assign_ExcAC8B_vimax); - assign_map.emplace("cim:ExcAC8B.vimin", &assign_ExcAC8B_vimin); - assign_map.emplace("cim:ExcAC8B.vpidmax", &assign_ExcAC8B_vpidmax); - assign_map.emplace("cim:ExcAC8B.vpidmin", &assign_ExcAC8B_vpidmin); - assign_map.emplace("cim:ExcAC8B.vrmax", &assign_ExcAC8B_vrmax); - assign_map.emplace("cim:ExcAC8B.vrmin", &assign_ExcAC8B_vrmin); - assign_map.emplace("cim:ExcAC8B.vtmult", &assign_ExcAC8B_vtmult); + assign_map.emplace("ExcAC8B.inlim", &assign_ExcAC8B_inlim); + assign_map.emplace("ExcAC8B.ka", &assign_ExcAC8B_ka); + assign_map.emplace("ExcAC8B.kc", &assign_ExcAC8B_kc); + assign_map.emplace("ExcAC8B.kd", &assign_ExcAC8B_kd); + assign_map.emplace("ExcAC8B.kdr", &assign_ExcAC8B_kdr); + assign_map.emplace("ExcAC8B.ke", &assign_ExcAC8B_ke); + assign_map.emplace("ExcAC8B.kir", &assign_ExcAC8B_kir); + assign_map.emplace("ExcAC8B.kpr", &assign_ExcAC8B_kpr); + assign_map.emplace("ExcAC8B.ks", &assign_ExcAC8B_ks); + assign_map.emplace("ExcAC8B.pidlim", &assign_ExcAC8B_pidlim); + assign_map.emplace("ExcAC8B.seve1", &assign_ExcAC8B_seve1); + assign_map.emplace("ExcAC8B.seve2", &assign_ExcAC8B_seve2); + assign_map.emplace("ExcAC8B.ta", &assign_ExcAC8B_ta); + assign_map.emplace("ExcAC8B.tdr", &assign_ExcAC8B_tdr); + assign_map.emplace("ExcAC8B.te", &assign_ExcAC8B_te); + assign_map.emplace("ExcAC8B.telim", &assign_ExcAC8B_telim); + assign_map.emplace("ExcAC8B.ve1", &assign_ExcAC8B_ve1); + assign_map.emplace("ExcAC8B.ve2", &assign_ExcAC8B_ve2); + assign_map.emplace("ExcAC8B.vemin", &assign_ExcAC8B_vemin); + assign_map.emplace("ExcAC8B.vfemax", &assign_ExcAC8B_vfemax); + assign_map.emplace("ExcAC8B.vimax", &assign_ExcAC8B_vimax); + assign_map.emplace("ExcAC8B.vimin", &assign_ExcAC8B_vimin); + assign_map.emplace("ExcAC8B.vpidmax", &assign_ExcAC8B_vpidmax); + assign_map.emplace("ExcAC8B.vpidmin", &assign_ExcAC8B_vpidmin); + assign_map.emplace("ExcAC8B.vrmax", &assign_ExcAC8B_vrmax); + assign_map.emplace("ExcAC8B.vrmin", &assign_ExcAC8B_vrmin); + assign_map.emplace("ExcAC8B.vtmult", &assign_ExcAC8B_vtmult); } void ExcAC8B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,33 +929,33 @@ void ExcAC8B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC8B.inlim", &get_ExcAC8B_inlim); - get_map.emplace("cim:ExcAC8B.ka", &get_ExcAC8B_ka); - get_map.emplace("cim:ExcAC8B.kc", &get_ExcAC8B_kc); - get_map.emplace("cim:ExcAC8B.kd", &get_ExcAC8B_kd); - get_map.emplace("cim:ExcAC8B.kdr", &get_ExcAC8B_kdr); - get_map.emplace("cim:ExcAC8B.ke", &get_ExcAC8B_ke); - get_map.emplace("cim:ExcAC8B.kir", &get_ExcAC8B_kir); - get_map.emplace("cim:ExcAC8B.kpr", &get_ExcAC8B_kpr); - get_map.emplace("cim:ExcAC8B.ks", &get_ExcAC8B_ks); - get_map.emplace("cim:ExcAC8B.pidlim", &get_ExcAC8B_pidlim); - get_map.emplace("cim:ExcAC8B.seve1", &get_ExcAC8B_seve1); - get_map.emplace("cim:ExcAC8B.seve2", &get_ExcAC8B_seve2); - get_map.emplace("cim:ExcAC8B.ta", &get_ExcAC8B_ta); - get_map.emplace("cim:ExcAC8B.tdr", &get_ExcAC8B_tdr); - get_map.emplace("cim:ExcAC8B.te", &get_ExcAC8B_te); - get_map.emplace("cim:ExcAC8B.telim", &get_ExcAC8B_telim); - get_map.emplace("cim:ExcAC8B.ve1", &get_ExcAC8B_ve1); - get_map.emplace("cim:ExcAC8B.ve2", &get_ExcAC8B_ve2); - get_map.emplace("cim:ExcAC8B.vemin", &get_ExcAC8B_vemin); - get_map.emplace("cim:ExcAC8B.vfemax", &get_ExcAC8B_vfemax); - get_map.emplace("cim:ExcAC8B.vimax", &get_ExcAC8B_vimax); - get_map.emplace("cim:ExcAC8B.vimin", &get_ExcAC8B_vimin); - get_map.emplace("cim:ExcAC8B.vpidmax", &get_ExcAC8B_vpidmax); - get_map.emplace("cim:ExcAC8B.vpidmin", &get_ExcAC8B_vpidmin); - get_map.emplace("cim:ExcAC8B.vrmax", &get_ExcAC8B_vrmax); - get_map.emplace("cim:ExcAC8B.vrmin", &get_ExcAC8B_vrmin); - get_map.emplace("cim:ExcAC8B.vtmult", &get_ExcAC8B_vtmult); + get_map.emplace("ExcAC8B.inlim", &get_ExcAC8B_inlim); + get_map.emplace("ExcAC8B.ka", &get_ExcAC8B_ka); + get_map.emplace("ExcAC8B.kc", &get_ExcAC8B_kc); + get_map.emplace("ExcAC8B.kd", &get_ExcAC8B_kd); + get_map.emplace("ExcAC8B.kdr", &get_ExcAC8B_kdr); + get_map.emplace("ExcAC8B.ke", &get_ExcAC8B_ke); + get_map.emplace("ExcAC8B.kir", &get_ExcAC8B_kir); + get_map.emplace("ExcAC8B.kpr", &get_ExcAC8B_kpr); + get_map.emplace("ExcAC8B.ks", &get_ExcAC8B_ks); + get_map.emplace("ExcAC8B.pidlim", &get_ExcAC8B_pidlim); + get_map.emplace("ExcAC8B.seve1", &get_ExcAC8B_seve1); + get_map.emplace("ExcAC8B.seve2", &get_ExcAC8B_seve2); + get_map.emplace("ExcAC8B.ta", &get_ExcAC8B_ta); + get_map.emplace("ExcAC8B.tdr", &get_ExcAC8B_tdr); + get_map.emplace("ExcAC8B.te", &get_ExcAC8B_te); + get_map.emplace("ExcAC8B.telim", &get_ExcAC8B_telim); + get_map.emplace("ExcAC8B.ve1", &get_ExcAC8B_ve1); + get_map.emplace("ExcAC8B.ve2", &get_ExcAC8B_ve2); + get_map.emplace("ExcAC8B.vemin", &get_ExcAC8B_vemin); + get_map.emplace("ExcAC8B.vfemax", &get_ExcAC8B_vfemax); + get_map.emplace("ExcAC8B.vimax", &get_ExcAC8B_vimax); + get_map.emplace("ExcAC8B.vimin", &get_ExcAC8B_vimin); + get_map.emplace("ExcAC8B.vpidmax", &get_ExcAC8B_vpidmax); + get_map.emplace("ExcAC8B.vpidmin", &get_ExcAC8B_vpidmin); + get_map.emplace("ExcAC8B.vrmax", &get_ExcAC8B_vrmax); + get_map.emplace("ExcAC8B.vrmin", &get_ExcAC8B_vrmin); + get_map.emplace("ExcAC8B.vtmult", &get_ExcAC8B_vtmult); } void ExcAC8B::addClassGetFnsToMap(std::map& get_map) const @@ -936,11 +968,25 @@ void ExcAC8B::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC8B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC8B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC8B::declare() { return BaseClassDefiner(ExcAC8B::addConstructToMap, ExcAC8B::addPrimitiveAssignFnsToMap, ExcAC8B::addClassAssignFnsToMap, ExcAC8B::debugName); } +std::map ExcAC8B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC8B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAC8B.hpp b/CGMES_2.4.13_18DEC2013/ExcAC8B.hpp index 3137771da..2e61bfaa1 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAC8B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAC8B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -112,8 +113,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -121,7 +129,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC8B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcANS.cpp b/CGMES_2.4.13_18DEC2013/ExcANS.cpp index afc2cb7d6..d8d18d591 100644 --- a/CGMES_2.4.13_18DEC2013/ExcANS.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcANS.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcANS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcANS.blint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.ifmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.ifmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.kce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.krvecc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.kvfif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcANS::ExcANS() {} ExcANS::~ExcANS() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcANS::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcANS::getClassNamespaceUrl() const { - { "cim:ExcANS.blint", { CGMESProfile::DY, } }, - { "cim:ExcANS.ifmn", { CGMESProfile::DY, } }, - { "cim:ExcANS.ifmx", { CGMESProfile::DY, } }, - { "cim:ExcANS.k2", { CGMESProfile::DY, } }, - { "cim:ExcANS.k3", { CGMESProfile::DY, } }, - { "cim:ExcANS.kce", { CGMESProfile::DY, } }, - { "cim:ExcANS.krvecc", { CGMESProfile::DY, } }, - { "cim:ExcANS.kvfif", { CGMESProfile::DY, } }, - { "cim:ExcANS.t1", { CGMESProfile::DY, } }, - { "cim:ExcANS.t2", { CGMESProfile::DY, } }, - { "cim:ExcANS.t3", { CGMESProfile::DY, } }, - { "cim:ExcANS.tb", { CGMESProfile::DY, } }, - { "cim:ExcANS.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcANS.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcANS::getPossibleProfilesForClass() const +const std::string& ExcANS::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcANS::getPossibleProfilesForAttributes() const +const std::list& ExcANS::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcANS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcANS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcANS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcANS_blint(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcANS::debugString() const void ExcANS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcANS", &ExcANS_factory); + factory_map.emplace("ExcANS", &ExcANS_factory); } void ExcANS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcANS.blint", &assign_ExcANS_blint); - assign_map.emplace("cim:ExcANS.ifmn", &assign_ExcANS_ifmn); - assign_map.emplace("cim:ExcANS.ifmx", &assign_ExcANS_ifmx); - assign_map.emplace("cim:ExcANS.k2", &assign_ExcANS_k2); - assign_map.emplace("cim:ExcANS.k3", &assign_ExcANS_k3); - assign_map.emplace("cim:ExcANS.kce", &assign_ExcANS_kce); - assign_map.emplace("cim:ExcANS.krvecc", &assign_ExcANS_krvecc); - assign_map.emplace("cim:ExcANS.kvfif", &assign_ExcANS_kvfif); - assign_map.emplace("cim:ExcANS.t1", &assign_ExcANS_t1); - assign_map.emplace("cim:ExcANS.t2", &assign_ExcANS_t2); - assign_map.emplace("cim:ExcANS.t3", &assign_ExcANS_t3); - assign_map.emplace("cim:ExcANS.tb", &assign_ExcANS_tb); - assign_map.emplace("cim:ExcANS.vrmn", &assign_ExcANS_vrmn); - assign_map.emplace("cim:ExcANS.vrmx", &assign_ExcANS_vrmx); + assign_map.emplace("ExcANS.blint", &assign_ExcANS_blint); + assign_map.emplace("ExcANS.ifmn", &assign_ExcANS_ifmn); + assign_map.emplace("ExcANS.ifmx", &assign_ExcANS_ifmx); + assign_map.emplace("ExcANS.k2", &assign_ExcANS_k2); + assign_map.emplace("ExcANS.k3", &assign_ExcANS_k3); + assign_map.emplace("ExcANS.kce", &assign_ExcANS_kce); + assign_map.emplace("ExcANS.krvecc", &assign_ExcANS_krvecc); + assign_map.emplace("ExcANS.kvfif", &assign_ExcANS_kvfif); + assign_map.emplace("ExcANS.t1", &assign_ExcANS_t1); + assign_map.emplace("ExcANS.t2", &assign_ExcANS_t2); + assign_map.emplace("ExcANS.t3", &assign_ExcANS_t3); + assign_map.emplace("ExcANS.tb", &assign_ExcANS_tb); + assign_map.emplace("ExcANS.vrmn", &assign_ExcANS_vrmn); + assign_map.emplace("ExcANS.vrmx", &assign_ExcANS_vrmx); } void ExcANS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcANS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcANS.blint", &get_ExcANS_blint); - get_map.emplace("cim:ExcANS.ifmn", &get_ExcANS_ifmn); - get_map.emplace("cim:ExcANS.ifmx", &get_ExcANS_ifmx); - get_map.emplace("cim:ExcANS.k2", &get_ExcANS_k2); - get_map.emplace("cim:ExcANS.k3", &get_ExcANS_k3); - get_map.emplace("cim:ExcANS.kce", &get_ExcANS_kce); - get_map.emplace("cim:ExcANS.krvecc", &get_ExcANS_krvecc); - get_map.emplace("cim:ExcANS.kvfif", &get_ExcANS_kvfif); - get_map.emplace("cim:ExcANS.t1", &get_ExcANS_t1); - get_map.emplace("cim:ExcANS.t2", &get_ExcANS_t2); - get_map.emplace("cim:ExcANS.t3", &get_ExcANS_t3); - get_map.emplace("cim:ExcANS.tb", &get_ExcANS_tb); - get_map.emplace("cim:ExcANS.vrmn", &get_ExcANS_vrmn); - get_map.emplace("cim:ExcANS.vrmx", &get_ExcANS_vrmx); + get_map.emplace("ExcANS.blint", &get_ExcANS_blint); + get_map.emplace("ExcANS.ifmn", &get_ExcANS_ifmn); + get_map.emplace("ExcANS.ifmx", &get_ExcANS_ifmx); + get_map.emplace("ExcANS.k2", &get_ExcANS_k2); + get_map.emplace("ExcANS.k3", &get_ExcANS_k3); + get_map.emplace("ExcANS.kce", &get_ExcANS_kce); + get_map.emplace("ExcANS.krvecc", &get_ExcANS_krvecc); + get_map.emplace("ExcANS.kvfif", &get_ExcANS_kvfif); + get_map.emplace("ExcANS.t1", &get_ExcANS_t1); + get_map.emplace("ExcANS.t2", &get_ExcANS_t2); + get_map.emplace("ExcANS.t3", &get_ExcANS_t3); + get_map.emplace("ExcANS.tb", &get_ExcANS_tb); + get_map.emplace("ExcANS.vrmn", &get_ExcANS_vrmn); + get_map.emplace("ExcANS.vrmx", &get_ExcANS_vrmx); } void ExcANS::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcANS::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcANS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcANS" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcANS::declare() { return BaseClassDefiner(ExcANS::addConstructToMap, ExcANS::addPrimitiveAssignFnsToMap, ExcANS::addClassAssignFnsToMap, ExcANS::debugName); } +std::map ExcANS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcANS_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcANS.hpp b/CGMES_2.4.13_18DEC2013/ExcANS.hpp index b1ba9b1be..df1375aef 100644 --- a/CGMES_2.4.13_18DEC2013/ExcANS.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcANS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcANS_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR1.cpp b/CGMES_2.4.13_18DEC2013/ExcAVR1.cpp index 3daf41454..cba9b8143 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR1.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR1.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR1.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR1::ExcAVR1() {} ExcAVR1::~ExcAVR1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR1::getClassNamespaceUrl() const { - { "cim:ExcAVR1.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.kf", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.ta", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.tb", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.tf", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR1::getPossibleProfilesForClass() const +const std::string& ExcAVR1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR1::getPossibleProfilesForAttributes() const +const std::list& ExcAVR1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR1_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcAVR1::debugString() const void ExcAVR1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR1", &ExcAVR1_factory); + factory_map.emplace("ExcAVR1", &ExcAVR1_factory); } void ExcAVR1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR1.e1", &assign_ExcAVR1_e1); - assign_map.emplace("cim:ExcAVR1.e2", &assign_ExcAVR1_e2); - assign_map.emplace("cim:ExcAVR1.ka", &assign_ExcAVR1_ka); - assign_map.emplace("cim:ExcAVR1.kf", &assign_ExcAVR1_kf); - assign_map.emplace("cim:ExcAVR1.se1", &assign_ExcAVR1_se1); - assign_map.emplace("cim:ExcAVR1.se2", &assign_ExcAVR1_se2); - assign_map.emplace("cim:ExcAVR1.ta", &assign_ExcAVR1_ta); - assign_map.emplace("cim:ExcAVR1.tb", &assign_ExcAVR1_tb); - assign_map.emplace("cim:ExcAVR1.te", &assign_ExcAVR1_te); - assign_map.emplace("cim:ExcAVR1.tf", &assign_ExcAVR1_tf); - assign_map.emplace("cim:ExcAVR1.vrmn", &assign_ExcAVR1_vrmn); - assign_map.emplace("cim:ExcAVR1.vrmx", &assign_ExcAVR1_vrmx); + assign_map.emplace("ExcAVR1.e1", &assign_ExcAVR1_e1); + assign_map.emplace("ExcAVR1.e2", &assign_ExcAVR1_e2); + assign_map.emplace("ExcAVR1.ka", &assign_ExcAVR1_ka); + assign_map.emplace("ExcAVR1.kf", &assign_ExcAVR1_kf); + assign_map.emplace("ExcAVR1.se1", &assign_ExcAVR1_se1); + assign_map.emplace("ExcAVR1.se2", &assign_ExcAVR1_se2); + assign_map.emplace("ExcAVR1.ta", &assign_ExcAVR1_ta); + assign_map.emplace("ExcAVR1.tb", &assign_ExcAVR1_tb); + assign_map.emplace("ExcAVR1.te", &assign_ExcAVR1_te); + assign_map.emplace("ExcAVR1.tf", &assign_ExcAVR1_tf); + assign_map.emplace("ExcAVR1.vrmn", &assign_ExcAVR1_vrmn); + assign_map.emplace("ExcAVR1.vrmx", &assign_ExcAVR1_vrmx); } void ExcAVR1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcAVR1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR1.e1", &get_ExcAVR1_e1); - get_map.emplace("cim:ExcAVR1.e2", &get_ExcAVR1_e2); - get_map.emplace("cim:ExcAVR1.ka", &get_ExcAVR1_ka); - get_map.emplace("cim:ExcAVR1.kf", &get_ExcAVR1_kf); - get_map.emplace("cim:ExcAVR1.se1", &get_ExcAVR1_se1); - get_map.emplace("cim:ExcAVR1.se2", &get_ExcAVR1_se2); - get_map.emplace("cim:ExcAVR1.ta", &get_ExcAVR1_ta); - get_map.emplace("cim:ExcAVR1.tb", &get_ExcAVR1_tb); - get_map.emplace("cim:ExcAVR1.te", &get_ExcAVR1_te); - get_map.emplace("cim:ExcAVR1.tf", &get_ExcAVR1_tf); - get_map.emplace("cim:ExcAVR1.vrmn", &get_ExcAVR1_vrmn); - get_map.emplace("cim:ExcAVR1.vrmx", &get_ExcAVR1_vrmx); + get_map.emplace("ExcAVR1.e1", &get_ExcAVR1_e1); + get_map.emplace("ExcAVR1.e2", &get_ExcAVR1_e2); + get_map.emplace("ExcAVR1.ka", &get_ExcAVR1_ka); + get_map.emplace("ExcAVR1.kf", &get_ExcAVR1_kf); + get_map.emplace("ExcAVR1.se1", &get_ExcAVR1_se1); + get_map.emplace("ExcAVR1.se2", &get_ExcAVR1_se2); + get_map.emplace("ExcAVR1.ta", &get_ExcAVR1_ta); + get_map.emplace("ExcAVR1.tb", &get_ExcAVR1_tb); + get_map.emplace("ExcAVR1.te", &get_ExcAVR1_te); + get_map.emplace("ExcAVR1.tf", &get_ExcAVR1_tf); + get_map.emplace("ExcAVR1.vrmn", &get_ExcAVR1_vrmn); + get_map.emplace("ExcAVR1.vrmx", &get_ExcAVR1_vrmx); } void ExcAVR1::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcAVR1::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR1::declare() { return BaseClassDefiner(ExcAVR1::addConstructToMap, ExcAVR1::addPrimitiveAssignFnsToMap, ExcAVR1::addClassAssignFnsToMap, ExcAVR1::debugName); } +std::map ExcAVR1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR1_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR1.hpp b/CGMES_2.4.13_18DEC2013/ExcAVR1.hpp index 867d7920d..7045fa1ea 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR1.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR2.cpp b/CGMES_2.4.13_18DEC2013/ExcAVR2.cpp index c9f8d13de..b0031b608 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR2.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR2.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR2.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR2::ExcAVR2() {} ExcAVR2::~ExcAVR2() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR2::getClassNamespaceUrl() const { - { "cim:ExcAVR2.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.kf", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.ta", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tb", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tf1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tf2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR2::getPossibleProfilesForClass() const +const std::string& ExcAVR2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR2::getPossibleProfilesForAttributes() const +const std::list& ExcAVR2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR2_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcAVR2::debugString() const void ExcAVR2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR2", &ExcAVR2_factory); + factory_map.emplace("ExcAVR2", &ExcAVR2_factory); } void ExcAVR2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR2.e1", &assign_ExcAVR2_e1); - assign_map.emplace("cim:ExcAVR2.e2", &assign_ExcAVR2_e2); - assign_map.emplace("cim:ExcAVR2.ka", &assign_ExcAVR2_ka); - assign_map.emplace("cim:ExcAVR2.kf", &assign_ExcAVR2_kf); - assign_map.emplace("cim:ExcAVR2.se1", &assign_ExcAVR2_se1); - assign_map.emplace("cim:ExcAVR2.se2", &assign_ExcAVR2_se2); - assign_map.emplace("cim:ExcAVR2.ta", &assign_ExcAVR2_ta); - assign_map.emplace("cim:ExcAVR2.tb", &assign_ExcAVR2_tb); - assign_map.emplace("cim:ExcAVR2.te", &assign_ExcAVR2_te); - assign_map.emplace("cim:ExcAVR2.tf1", &assign_ExcAVR2_tf1); - assign_map.emplace("cim:ExcAVR2.tf2", &assign_ExcAVR2_tf2); - assign_map.emplace("cim:ExcAVR2.vrmn", &assign_ExcAVR2_vrmn); - assign_map.emplace("cim:ExcAVR2.vrmx", &assign_ExcAVR2_vrmx); + assign_map.emplace("ExcAVR2.e1", &assign_ExcAVR2_e1); + assign_map.emplace("ExcAVR2.e2", &assign_ExcAVR2_e2); + assign_map.emplace("ExcAVR2.ka", &assign_ExcAVR2_ka); + assign_map.emplace("ExcAVR2.kf", &assign_ExcAVR2_kf); + assign_map.emplace("ExcAVR2.se1", &assign_ExcAVR2_se1); + assign_map.emplace("ExcAVR2.se2", &assign_ExcAVR2_se2); + assign_map.emplace("ExcAVR2.ta", &assign_ExcAVR2_ta); + assign_map.emplace("ExcAVR2.tb", &assign_ExcAVR2_tb); + assign_map.emplace("ExcAVR2.te", &assign_ExcAVR2_te); + assign_map.emplace("ExcAVR2.tf1", &assign_ExcAVR2_tf1); + assign_map.emplace("ExcAVR2.tf2", &assign_ExcAVR2_tf2); + assign_map.emplace("ExcAVR2.vrmn", &assign_ExcAVR2_vrmn); + assign_map.emplace("ExcAVR2.vrmx", &assign_ExcAVR2_vrmx); } void ExcAVR2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcAVR2::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR2.e1", &get_ExcAVR2_e1); - get_map.emplace("cim:ExcAVR2.e2", &get_ExcAVR2_e2); - get_map.emplace("cim:ExcAVR2.ka", &get_ExcAVR2_ka); - get_map.emplace("cim:ExcAVR2.kf", &get_ExcAVR2_kf); - get_map.emplace("cim:ExcAVR2.se1", &get_ExcAVR2_se1); - get_map.emplace("cim:ExcAVR2.se2", &get_ExcAVR2_se2); - get_map.emplace("cim:ExcAVR2.ta", &get_ExcAVR2_ta); - get_map.emplace("cim:ExcAVR2.tb", &get_ExcAVR2_tb); - get_map.emplace("cim:ExcAVR2.te", &get_ExcAVR2_te); - get_map.emplace("cim:ExcAVR2.tf1", &get_ExcAVR2_tf1); - get_map.emplace("cim:ExcAVR2.tf2", &get_ExcAVR2_tf2); - get_map.emplace("cim:ExcAVR2.vrmn", &get_ExcAVR2_vrmn); - get_map.emplace("cim:ExcAVR2.vrmx", &get_ExcAVR2_vrmx); + get_map.emplace("ExcAVR2.e1", &get_ExcAVR2_e1); + get_map.emplace("ExcAVR2.e2", &get_ExcAVR2_e2); + get_map.emplace("ExcAVR2.ka", &get_ExcAVR2_ka); + get_map.emplace("ExcAVR2.kf", &get_ExcAVR2_kf); + get_map.emplace("ExcAVR2.se1", &get_ExcAVR2_se1); + get_map.emplace("ExcAVR2.se2", &get_ExcAVR2_se2); + get_map.emplace("ExcAVR2.ta", &get_ExcAVR2_ta); + get_map.emplace("ExcAVR2.tb", &get_ExcAVR2_tb); + get_map.emplace("ExcAVR2.te", &get_ExcAVR2_te); + get_map.emplace("ExcAVR2.tf1", &get_ExcAVR2_tf1); + get_map.emplace("ExcAVR2.tf2", &get_ExcAVR2_tf2); + get_map.emplace("ExcAVR2.vrmn", &get_ExcAVR2_vrmn); + get_map.emplace("ExcAVR2.vrmx", &get_ExcAVR2_vrmx); } void ExcAVR2::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcAVR2::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR2::declare() { return BaseClassDefiner(ExcAVR2::addConstructToMap, ExcAVR2::addPrimitiveAssignFnsToMap, ExcAVR2::addClassAssignFnsToMap, ExcAVR2::debugName); } +std::map ExcAVR2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR2_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR2.hpp b/CGMES_2.4.13_18DEC2013/ExcAVR2.hpp index 4ef10bee6..e490f3c29 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR2.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR3.cpp b/CGMES_2.4.13_18DEC2013/ExcAVR3.cpp index a58bdda7d..90713cbce 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR3.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR3.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR3.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR3::ExcAVR3() {} ExcAVR3::~ExcAVR3() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR3::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR3::getClassNamespaceUrl() const { - { "cim:ExcAVR3.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR3::getPossibleProfilesForClass() const +const std::string& ExcAVR3::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR3::getPossibleProfilesForAttributes() const +const std::list& ExcAVR3::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR3_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcAVR3::debugString() const void ExcAVR3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR3", &ExcAVR3_factory); + factory_map.emplace("ExcAVR3", &ExcAVR3_factory); } void ExcAVR3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR3.e1", &assign_ExcAVR3_e1); - assign_map.emplace("cim:ExcAVR3.e2", &assign_ExcAVR3_e2); - assign_map.emplace("cim:ExcAVR3.ka", &assign_ExcAVR3_ka); - assign_map.emplace("cim:ExcAVR3.se1", &assign_ExcAVR3_se1); - assign_map.emplace("cim:ExcAVR3.se2", &assign_ExcAVR3_se2); - assign_map.emplace("cim:ExcAVR3.t1", &assign_ExcAVR3_t1); - assign_map.emplace("cim:ExcAVR3.t2", &assign_ExcAVR3_t2); - assign_map.emplace("cim:ExcAVR3.t3", &assign_ExcAVR3_t3); - assign_map.emplace("cim:ExcAVR3.t4", &assign_ExcAVR3_t4); - assign_map.emplace("cim:ExcAVR3.te", &assign_ExcAVR3_te); - assign_map.emplace("cim:ExcAVR3.vrmn", &assign_ExcAVR3_vrmn); - assign_map.emplace("cim:ExcAVR3.vrmx", &assign_ExcAVR3_vrmx); + assign_map.emplace("ExcAVR3.e1", &assign_ExcAVR3_e1); + assign_map.emplace("ExcAVR3.e2", &assign_ExcAVR3_e2); + assign_map.emplace("ExcAVR3.ka", &assign_ExcAVR3_ka); + assign_map.emplace("ExcAVR3.se1", &assign_ExcAVR3_se1); + assign_map.emplace("ExcAVR3.se2", &assign_ExcAVR3_se2); + assign_map.emplace("ExcAVR3.t1", &assign_ExcAVR3_t1); + assign_map.emplace("ExcAVR3.t2", &assign_ExcAVR3_t2); + assign_map.emplace("ExcAVR3.t3", &assign_ExcAVR3_t3); + assign_map.emplace("ExcAVR3.t4", &assign_ExcAVR3_t4); + assign_map.emplace("ExcAVR3.te", &assign_ExcAVR3_te); + assign_map.emplace("ExcAVR3.vrmn", &assign_ExcAVR3_vrmn); + assign_map.emplace("ExcAVR3.vrmx", &assign_ExcAVR3_vrmx); } void ExcAVR3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcAVR3::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR3.e1", &get_ExcAVR3_e1); - get_map.emplace("cim:ExcAVR3.e2", &get_ExcAVR3_e2); - get_map.emplace("cim:ExcAVR3.ka", &get_ExcAVR3_ka); - get_map.emplace("cim:ExcAVR3.se1", &get_ExcAVR3_se1); - get_map.emplace("cim:ExcAVR3.se2", &get_ExcAVR3_se2); - get_map.emplace("cim:ExcAVR3.t1", &get_ExcAVR3_t1); - get_map.emplace("cim:ExcAVR3.t2", &get_ExcAVR3_t2); - get_map.emplace("cim:ExcAVR3.t3", &get_ExcAVR3_t3); - get_map.emplace("cim:ExcAVR3.t4", &get_ExcAVR3_t4); - get_map.emplace("cim:ExcAVR3.te", &get_ExcAVR3_te); - get_map.emplace("cim:ExcAVR3.vrmn", &get_ExcAVR3_vrmn); - get_map.emplace("cim:ExcAVR3.vrmx", &get_ExcAVR3_vrmx); + get_map.emplace("ExcAVR3.e1", &get_ExcAVR3_e1); + get_map.emplace("ExcAVR3.e2", &get_ExcAVR3_e2); + get_map.emplace("ExcAVR3.ka", &get_ExcAVR3_ka); + get_map.emplace("ExcAVR3.se1", &get_ExcAVR3_se1); + get_map.emplace("ExcAVR3.se2", &get_ExcAVR3_se2); + get_map.emplace("ExcAVR3.t1", &get_ExcAVR3_t1); + get_map.emplace("ExcAVR3.t2", &get_ExcAVR3_t2); + get_map.emplace("ExcAVR3.t3", &get_ExcAVR3_t3); + get_map.emplace("ExcAVR3.t4", &get_ExcAVR3_t4); + get_map.emplace("ExcAVR3.te", &get_ExcAVR3_te); + get_map.emplace("ExcAVR3.vrmn", &get_ExcAVR3_vrmn); + get_map.emplace("ExcAVR3.vrmx", &get_ExcAVR3_vrmx); } void ExcAVR3::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcAVR3::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR3::declare() { return BaseClassDefiner(ExcAVR3::addConstructToMap, ExcAVR3::addPrimitiveAssignFnsToMap, ExcAVR3::addClassAssignFnsToMap, ExcAVR3::debugName); } +std::map ExcAVR3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR3_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR3.hpp b/CGMES_2.4.13_18DEC2013/ExcAVR3.hpp index 9e24fc4b5..b1b804aab 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR3.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR3_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR4.cpp b/CGMES_2.4.13_18DEC2013/ExcAVR4.cpp index 52fd9e5cd..ad4e7a618 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR4.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR4.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR4.imul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.kif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t1if", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.tif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vfmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vfmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR4::ExcAVR4() {} ExcAVR4::~ExcAVR4() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR4::getClassNamespaceUrl() const { - { "cim:ExcAVR4.imul", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.ke", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.kif", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t1if", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.tif", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vfmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vfmx", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR4::getPossibleProfilesForClass() const +const std::string& ExcAVR4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR4::getPossibleProfilesForAttributes() const +const std::list& ExcAVR4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR4_imul(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcAVR4::debugString() const void ExcAVR4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR4", &ExcAVR4_factory); + factory_map.emplace("ExcAVR4", &ExcAVR4_factory); } void ExcAVR4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR4.imul", &assign_ExcAVR4_imul); - assign_map.emplace("cim:ExcAVR4.ka", &assign_ExcAVR4_ka); - assign_map.emplace("cim:ExcAVR4.ke", &assign_ExcAVR4_ke); - assign_map.emplace("cim:ExcAVR4.kif", &assign_ExcAVR4_kif); - assign_map.emplace("cim:ExcAVR4.t1", &assign_ExcAVR4_t1); - assign_map.emplace("cim:ExcAVR4.t1if", &assign_ExcAVR4_t1if); - assign_map.emplace("cim:ExcAVR4.t2", &assign_ExcAVR4_t2); - assign_map.emplace("cim:ExcAVR4.t3", &assign_ExcAVR4_t3); - assign_map.emplace("cim:ExcAVR4.t4", &assign_ExcAVR4_t4); - assign_map.emplace("cim:ExcAVR4.tif", &assign_ExcAVR4_tif); - assign_map.emplace("cim:ExcAVR4.vfmn", &assign_ExcAVR4_vfmn); - assign_map.emplace("cim:ExcAVR4.vfmx", &assign_ExcAVR4_vfmx); - assign_map.emplace("cim:ExcAVR4.vrmn", &assign_ExcAVR4_vrmn); - assign_map.emplace("cim:ExcAVR4.vrmx", &assign_ExcAVR4_vrmx); + assign_map.emplace("ExcAVR4.imul", &assign_ExcAVR4_imul); + assign_map.emplace("ExcAVR4.ka", &assign_ExcAVR4_ka); + assign_map.emplace("ExcAVR4.ke", &assign_ExcAVR4_ke); + assign_map.emplace("ExcAVR4.kif", &assign_ExcAVR4_kif); + assign_map.emplace("ExcAVR4.t1", &assign_ExcAVR4_t1); + assign_map.emplace("ExcAVR4.t1if", &assign_ExcAVR4_t1if); + assign_map.emplace("ExcAVR4.t2", &assign_ExcAVR4_t2); + assign_map.emplace("ExcAVR4.t3", &assign_ExcAVR4_t3); + assign_map.emplace("ExcAVR4.t4", &assign_ExcAVR4_t4); + assign_map.emplace("ExcAVR4.tif", &assign_ExcAVR4_tif); + assign_map.emplace("ExcAVR4.vfmn", &assign_ExcAVR4_vfmn); + assign_map.emplace("ExcAVR4.vfmx", &assign_ExcAVR4_vfmx); + assign_map.emplace("ExcAVR4.vrmn", &assign_ExcAVR4_vrmn); + assign_map.emplace("ExcAVR4.vrmx", &assign_ExcAVR4_vrmx); } void ExcAVR4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcAVR4::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR4.imul", &get_ExcAVR4_imul); - get_map.emplace("cim:ExcAVR4.ka", &get_ExcAVR4_ka); - get_map.emplace("cim:ExcAVR4.ke", &get_ExcAVR4_ke); - get_map.emplace("cim:ExcAVR4.kif", &get_ExcAVR4_kif); - get_map.emplace("cim:ExcAVR4.t1", &get_ExcAVR4_t1); - get_map.emplace("cim:ExcAVR4.t1if", &get_ExcAVR4_t1if); - get_map.emplace("cim:ExcAVR4.t2", &get_ExcAVR4_t2); - get_map.emplace("cim:ExcAVR4.t3", &get_ExcAVR4_t3); - get_map.emplace("cim:ExcAVR4.t4", &get_ExcAVR4_t4); - get_map.emplace("cim:ExcAVR4.tif", &get_ExcAVR4_tif); - get_map.emplace("cim:ExcAVR4.vfmn", &get_ExcAVR4_vfmn); - get_map.emplace("cim:ExcAVR4.vfmx", &get_ExcAVR4_vfmx); - get_map.emplace("cim:ExcAVR4.vrmn", &get_ExcAVR4_vrmn); - get_map.emplace("cim:ExcAVR4.vrmx", &get_ExcAVR4_vrmx); + get_map.emplace("ExcAVR4.imul", &get_ExcAVR4_imul); + get_map.emplace("ExcAVR4.ka", &get_ExcAVR4_ka); + get_map.emplace("ExcAVR4.ke", &get_ExcAVR4_ke); + get_map.emplace("ExcAVR4.kif", &get_ExcAVR4_kif); + get_map.emplace("ExcAVR4.t1", &get_ExcAVR4_t1); + get_map.emplace("ExcAVR4.t1if", &get_ExcAVR4_t1if); + get_map.emplace("ExcAVR4.t2", &get_ExcAVR4_t2); + get_map.emplace("ExcAVR4.t3", &get_ExcAVR4_t3); + get_map.emplace("ExcAVR4.t4", &get_ExcAVR4_t4); + get_map.emplace("ExcAVR4.tif", &get_ExcAVR4_tif); + get_map.emplace("ExcAVR4.vfmn", &get_ExcAVR4_vfmn); + get_map.emplace("ExcAVR4.vfmx", &get_ExcAVR4_vfmx); + get_map.emplace("ExcAVR4.vrmn", &get_ExcAVR4_vrmn); + get_map.emplace("ExcAVR4.vrmx", &get_ExcAVR4_vrmx); } void ExcAVR4::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcAVR4::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR4::declare() { return BaseClassDefiner(ExcAVR4::addConstructToMap, ExcAVR4::addPrimitiveAssignFnsToMap, ExcAVR4::addClassAssignFnsToMap, ExcAVR4::debugName); } +std::map ExcAVR4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR4_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR4.hpp b/CGMES_2.4.13_18DEC2013/ExcAVR4.hpp index f77d11a15..59a3b3ff1 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR4.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR4_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR5.cpp b/CGMES_2.4.13_18DEC2013/ExcAVR5.cpp index 3f6eb23fe..73598394a 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR5.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR5.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR5(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR5.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR5.rex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR5.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR5::ExcAVR5() {} ExcAVR5::~ExcAVR5() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR5::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR5::getClassNamespaceUrl() const { - { "cim:ExcAVR5.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR5.rex", { CGMESProfile::DY, } }, - { "cim:ExcAVR5.ta", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR5::getPossibleProfilesForClass() const +const std::string& ExcAVR5::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR5::getPossibleProfilesForAttributes() const +const std::list& ExcAVR5::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR5::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR5::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR5::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR5_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* ExcAVR5::debugString() const void ExcAVR5::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR5", &ExcAVR5_factory); + factory_map.emplace("ExcAVR5", &ExcAVR5_factory); } void ExcAVR5::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR5.ka", &assign_ExcAVR5_ka); - assign_map.emplace("cim:ExcAVR5.rex", &assign_ExcAVR5_rex); - assign_map.emplace("cim:ExcAVR5.ta", &assign_ExcAVR5_ta); + assign_map.emplace("ExcAVR5.ka", &assign_ExcAVR5_ka); + assign_map.emplace("ExcAVR5.rex", &assign_ExcAVR5_rex); + assign_map.emplace("ExcAVR5.ta", &assign_ExcAVR5_ta); } void ExcAVR5::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void ExcAVR5::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR5.ka", &get_ExcAVR5_ka); - get_map.emplace("cim:ExcAVR5.rex", &get_ExcAVR5_rex); - get_map.emplace("cim:ExcAVR5.ta", &get_ExcAVR5_ta); + get_map.emplace("ExcAVR5.ka", &get_ExcAVR5_ka); + get_map.emplace("ExcAVR5.rex", &get_ExcAVR5_rex); + get_map.emplace("ExcAVR5.ta", &get_ExcAVR5_ta); } void ExcAVR5::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void ExcAVR5::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR5::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR5" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR5::declare() { return BaseClassDefiner(ExcAVR5::addConstructToMap, ExcAVR5::addPrimitiveAssignFnsToMap, ExcAVR5::addClassAssignFnsToMap, ExcAVR5::debugName); } +std::map ExcAVR5::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR5_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR5.hpp b/CGMES_2.4.13_18DEC2013/ExcAVR5.hpp index ddd53d379..09af2c69c 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR5.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR5.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR5_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR7.cpp b/CGMES_2.4.13_18DEC2013/ExcAVR7.cpp index 3568b24b1..2361023c9 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR7.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR7.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR7(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR7.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR7::ExcAVR7() {} ExcAVR7::~ExcAVR7() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAVR7.a1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a2", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a4", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a6", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t6", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin5", { CGMESProfile::DY, } }, -}; - -std::list -ExcAVR7::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAVR7::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAVR7::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAVR7::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAVR7::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAVR7::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR7::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR7::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR7::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR7_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcAVR7::debugString() const void ExcAVR7::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR7", &ExcAVR7_factory); + factory_map.emplace("ExcAVR7", &ExcAVR7_factory); } void ExcAVR7::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR7.a1", &assign_ExcAVR7_a1); - assign_map.emplace("cim:ExcAVR7.a2", &assign_ExcAVR7_a2); - assign_map.emplace("cim:ExcAVR7.a3", &assign_ExcAVR7_a3); - assign_map.emplace("cim:ExcAVR7.a4", &assign_ExcAVR7_a4); - assign_map.emplace("cim:ExcAVR7.a5", &assign_ExcAVR7_a5); - assign_map.emplace("cim:ExcAVR7.a6", &assign_ExcAVR7_a6); - assign_map.emplace("cim:ExcAVR7.k1", &assign_ExcAVR7_k1); - assign_map.emplace("cim:ExcAVR7.k3", &assign_ExcAVR7_k3); - assign_map.emplace("cim:ExcAVR7.k5", &assign_ExcAVR7_k5); - assign_map.emplace("cim:ExcAVR7.t1", &assign_ExcAVR7_t1); - assign_map.emplace("cim:ExcAVR7.t2", &assign_ExcAVR7_t2); - assign_map.emplace("cim:ExcAVR7.t3", &assign_ExcAVR7_t3); - assign_map.emplace("cim:ExcAVR7.t4", &assign_ExcAVR7_t4); - assign_map.emplace("cim:ExcAVR7.t5", &assign_ExcAVR7_t5); - assign_map.emplace("cim:ExcAVR7.t6", &assign_ExcAVR7_t6); - assign_map.emplace("cim:ExcAVR7.vmax1", &assign_ExcAVR7_vmax1); - assign_map.emplace("cim:ExcAVR7.vmax3", &assign_ExcAVR7_vmax3); - assign_map.emplace("cim:ExcAVR7.vmax5", &assign_ExcAVR7_vmax5); - assign_map.emplace("cim:ExcAVR7.vmin1", &assign_ExcAVR7_vmin1); - assign_map.emplace("cim:ExcAVR7.vmin3", &assign_ExcAVR7_vmin3); - assign_map.emplace("cim:ExcAVR7.vmin5", &assign_ExcAVR7_vmin5); + assign_map.emplace("ExcAVR7.a1", &assign_ExcAVR7_a1); + assign_map.emplace("ExcAVR7.a2", &assign_ExcAVR7_a2); + assign_map.emplace("ExcAVR7.a3", &assign_ExcAVR7_a3); + assign_map.emplace("ExcAVR7.a4", &assign_ExcAVR7_a4); + assign_map.emplace("ExcAVR7.a5", &assign_ExcAVR7_a5); + assign_map.emplace("ExcAVR7.a6", &assign_ExcAVR7_a6); + assign_map.emplace("ExcAVR7.k1", &assign_ExcAVR7_k1); + assign_map.emplace("ExcAVR7.k3", &assign_ExcAVR7_k3); + assign_map.emplace("ExcAVR7.k5", &assign_ExcAVR7_k5); + assign_map.emplace("ExcAVR7.t1", &assign_ExcAVR7_t1); + assign_map.emplace("ExcAVR7.t2", &assign_ExcAVR7_t2); + assign_map.emplace("ExcAVR7.t3", &assign_ExcAVR7_t3); + assign_map.emplace("ExcAVR7.t4", &assign_ExcAVR7_t4); + assign_map.emplace("ExcAVR7.t5", &assign_ExcAVR7_t5); + assign_map.emplace("ExcAVR7.t6", &assign_ExcAVR7_t6); + assign_map.emplace("ExcAVR7.vmax1", &assign_ExcAVR7_vmax1); + assign_map.emplace("ExcAVR7.vmax3", &assign_ExcAVR7_vmax3); + assign_map.emplace("ExcAVR7.vmax5", &assign_ExcAVR7_vmax5); + assign_map.emplace("ExcAVR7.vmin1", &assign_ExcAVR7_vmin1); + assign_map.emplace("ExcAVR7.vmin3", &assign_ExcAVR7_vmin3); + assign_map.emplace("ExcAVR7.vmin5", &assign_ExcAVR7_vmin5); } void ExcAVR7::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcAVR7::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR7.a1", &get_ExcAVR7_a1); - get_map.emplace("cim:ExcAVR7.a2", &get_ExcAVR7_a2); - get_map.emplace("cim:ExcAVR7.a3", &get_ExcAVR7_a3); - get_map.emplace("cim:ExcAVR7.a4", &get_ExcAVR7_a4); - get_map.emplace("cim:ExcAVR7.a5", &get_ExcAVR7_a5); - get_map.emplace("cim:ExcAVR7.a6", &get_ExcAVR7_a6); - get_map.emplace("cim:ExcAVR7.k1", &get_ExcAVR7_k1); - get_map.emplace("cim:ExcAVR7.k3", &get_ExcAVR7_k3); - get_map.emplace("cim:ExcAVR7.k5", &get_ExcAVR7_k5); - get_map.emplace("cim:ExcAVR7.t1", &get_ExcAVR7_t1); - get_map.emplace("cim:ExcAVR7.t2", &get_ExcAVR7_t2); - get_map.emplace("cim:ExcAVR7.t3", &get_ExcAVR7_t3); - get_map.emplace("cim:ExcAVR7.t4", &get_ExcAVR7_t4); - get_map.emplace("cim:ExcAVR7.t5", &get_ExcAVR7_t5); - get_map.emplace("cim:ExcAVR7.t6", &get_ExcAVR7_t6); - get_map.emplace("cim:ExcAVR7.vmax1", &get_ExcAVR7_vmax1); - get_map.emplace("cim:ExcAVR7.vmax3", &get_ExcAVR7_vmax3); - get_map.emplace("cim:ExcAVR7.vmax5", &get_ExcAVR7_vmax5); - get_map.emplace("cim:ExcAVR7.vmin1", &get_ExcAVR7_vmin1); - get_map.emplace("cim:ExcAVR7.vmin3", &get_ExcAVR7_vmin3); - get_map.emplace("cim:ExcAVR7.vmin5", &get_ExcAVR7_vmin5); + get_map.emplace("ExcAVR7.a1", &get_ExcAVR7_a1); + get_map.emplace("ExcAVR7.a2", &get_ExcAVR7_a2); + get_map.emplace("ExcAVR7.a3", &get_ExcAVR7_a3); + get_map.emplace("ExcAVR7.a4", &get_ExcAVR7_a4); + get_map.emplace("ExcAVR7.a5", &get_ExcAVR7_a5); + get_map.emplace("ExcAVR7.a6", &get_ExcAVR7_a6); + get_map.emplace("ExcAVR7.k1", &get_ExcAVR7_k1); + get_map.emplace("ExcAVR7.k3", &get_ExcAVR7_k3); + get_map.emplace("ExcAVR7.k5", &get_ExcAVR7_k5); + get_map.emplace("ExcAVR7.t1", &get_ExcAVR7_t1); + get_map.emplace("ExcAVR7.t2", &get_ExcAVR7_t2); + get_map.emplace("ExcAVR7.t3", &get_ExcAVR7_t3); + get_map.emplace("ExcAVR7.t4", &get_ExcAVR7_t4); + get_map.emplace("ExcAVR7.t5", &get_ExcAVR7_t5); + get_map.emplace("ExcAVR7.t6", &get_ExcAVR7_t6); + get_map.emplace("ExcAVR7.vmax1", &get_ExcAVR7_vmax1); + get_map.emplace("ExcAVR7.vmax3", &get_ExcAVR7_vmax3); + get_map.emplace("ExcAVR7.vmax5", &get_ExcAVR7_vmax5); + get_map.emplace("ExcAVR7.vmin1", &get_ExcAVR7_vmin1); + get_map.emplace("ExcAVR7.vmin3", &get_ExcAVR7_vmin3); + get_map.emplace("ExcAVR7.vmin5", &get_ExcAVR7_vmin5); } void ExcAVR7::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcAVR7::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR7::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR7" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR7::declare() { return BaseClassDefiner(ExcAVR7::addConstructToMap, ExcAVR7::addPrimitiveAssignFnsToMap, ExcAVR7::addClassAssignFnsToMap, ExcAVR7::debugName); } +std::map ExcAVR7::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR7_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcAVR7.hpp b/CGMES_2.4.13_18DEC2013/ExcAVR7.hpp index 5bd945535..e618d90e9 100644 --- a/CGMES_2.4.13_18DEC2013/ExcAVR7.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcAVR7.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -92,8 +93,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -101,7 +109,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR7_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcBBC.cpp b/CGMES_2.4.13_18DEC2013/ExcBBC.cpp index 5ed4908bf..beaa25586 100644 --- a/CGMES_2.4.13_18DEC2013/ExcBBC.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcBBC.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcBBC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcBBC.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.switch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcBBC::ExcBBC() {} ExcBBC::~ExcBBC() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcBBC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcBBC::getClassNamespaceUrl() const { - { "cim:ExcBBC.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcBBC.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcBBC.k", { CGMESProfile::DY, } }, - { "cim:ExcBBC.switch", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t1", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t2", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t3", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t4", { CGMESProfile::DY, } }, - { "cim:ExcBBC.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcBBC.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcBBC.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcBBC::getPossibleProfilesForClass() const +const std::string& ExcBBC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcBBC::getPossibleProfilesForAttributes() const +const std::list& ExcBBC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcBBC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcBBC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcBBC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcBBC_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* ExcBBC::debugString() const void ExcBBC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcBBC", &ExcBBC_factory); + factory_map.emplace("ExcBBC", &ExcBBC_factory); } void ExcBBC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcBBC.efdmax", &assign_ExcBBC_efdmax); - assign_map.emplace("cim:ExcBBC.efdmin", &assign_ExcBBC_efdmin); - assign_map.emplace("cim:ExcBBC.k", &assign_ExcBBC_k); - assign_map.emplace("cim:ExcBBC.switch", &assign_ExcBBC_switch); - assign_map.emplace("cim:ExcBBC.t1", &assign_ExcBBC_t1); - assign_map.emplace("cim:ExcBBC.t2", &assign_ExcBBC_t2); - assign_map.emplace("cim:ExcBBC.t3", &assign_ExcBBC_t3); - assign_map.emplace("cim:ExcBBC.t4", &assign_ExcBBC_t4); - assign_map.emplace("cim:ExcBBC.vrmax", &assign_ExcBBC_vrmax); - assign_map.emplace("cim:ExcBBC.vrmin", &assign_ExcBBC_vrmin); - assign_map.emplace("cim:ExcBBC.xe", &assign_ExcBBC_xe); + assign_map.emplace("ExcBBC.efdmax", &assign_ExcBBC_efdmax); + assign_map.emplace("ExcBBC.efdmin", &assign_ExcBBC_efdmin); + assign_map.emplace("ExcBBC.k", &assign_ExcBBC_k); + assign_map.emplace("ExcBBC.switch", &assign_ExcBBC_switch); + assign_map.emplace("ExcBBC.t1", &assign_ExcBBC_t1); + assign_map.emplace("ExcBBC.t2", &assign_ExcBBC_t2); + assign_map.emplace("ExcBBC.t3", &assign_ExcBBC_t3); + assign_map.emplace("ExcBBC.t4", &assign_ExcBBC_t4); + assign_map.emplace("ExcBBC.vrmax", &assign_ExcBBC_vrmax); + assign_map.emplace("ExcBBC.vrmin", &assign_ExcBBC_vrmin); + assign_map.emplace("ExcBBC.xe", &assign_ExcBBC_xe); } void ExcBBC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void ExcBBC::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcBBC.efdmax", &get_ExcBBC_efdmax); - get_map.emplace("cim:ExcBBC.efdmin", &get_ExcBBC_efdmin); - get_map.emplace("cim:ExcBBC.k", &get_ExcBBC_k); - get_map.emplace("cim:ExcBBC.switch", &get_ExcBBC_switch); - get_map.emplace("cim:ExcBBC.t1", &get_ExcBBC_t1); - get_map.emplace("cim:ExcBBC.t2", &get_ExcBBC_t2); - get_map.emplace("cim:ExcBBC.t3", &get_ExcBBC_t3); - get_map.emplace("cim:ExcBBC.t4", &get_ExcBBC_t4); - get_map.emplace("cim:ExcBBC.vrmax", &get_ExcBBC_vrmax); - get_map.emplace("cim:ExcBBC.vrmin", &get_ExcBBC_vrmin); - get_map.emplace("cim:ExcBBC.xe", &get_ExcBBC_xe); + get_map.emplace("ExcBBC.efdmax", &get_ExcBBC_efdmax); + get_map.emplace("ExcBBC.efdmin", &get_ExcBBC_efdmin); + get_map.emplace("ExcBBC.k", &get_ExcBBC_k); + get_map.emplace("ExcBBC.switch", &get_ExcBBC_switch); + get_map.emplace("ExcBBC.t1", &get_ExcBBC_t1); + get_map.emplace("ExcBBC.t2", &get_ExcBBC_t2); + get_map.emplace("ExcBBC.t3", &get_ExcBBC_t3); + get_map.emplace("ExcBBC.t4", &get_ExcBBC_t4); + get_map.emplace("ExcBBC.vrmax", &get_ExcBBC_vrmax); + get_map.emplace("ExcBBC.vrmin", &get_ExcBBC_vrmin); + get_map.emplace("ExcBBC.xe", &get_ExcBBC_xe); } void ExcBBC::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void ExcBBC::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcBBC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcBBC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcBBC::declare() { return BaseClassDefiner(ExcBBC::addConstructToMap, ExcBBC::addPrimitiveAssignFnsToMap, ExcBBC::addClassAssignFnsToMap, ExcBBC::debugName); } +std::map ExcBBC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcBBC_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcBBC.hpp b/CGMES_2.4.13_18DEC2013/ExcBBC.hpp index 069831f27..2f9341949 100644 --- a/CGMES_2.4.13_18DEC2013/ExcBBC.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcBBC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcBBC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcCZ.cpp b/CGMES_2.4.13_18DEC2013/ExcCZ.cpp index 836b963d1..9d06d006c 100644 --- a/CGMES_2.4.13_18DEC2013/ExcCZ.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcCZ.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcCZ(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcCZ.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcCZ::ExcCZ() {} ExcCZ::~ExcCZ() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcCZ::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcCZ::getClassNamespaceUrl() const { - { "cim:ExcCZ.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcCZ.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ka", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ke", { CGMESProfile::DY, } }, - { "cim:ExcCZ.kp", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ta", { CGMESProfile::DY, } }, - { "cim:ExcCZ.tc", { CGMESProfile::DY, } }, - { "cim:ExcCZ.te", { CGMESProfile::DY, } }, - { "cim:ExcCZ.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcCZ.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcCZ::getPossibleProfilesForClass() const +const std::string& ExcCZ::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcCZ::getPossibleProfilesForAttributes() const +const std::list& ExcCZ::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcCZ::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcCZ::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcCZ::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcCZ_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcCZ::debugString() const void ExcCZ::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcCZ", &ExcCZ_factory); + factory_map.emplace("ExcCZ", &ExcCZ_factory); } void ExcCZ::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcCZ.efdmax", &assign_ExcCZ_efdmax); - assign_map.emplace("cim:ExcCZ.efdmin", &assign_ExcCZ_efdmin); - assign_map.emplace("cim:ExcCZ.ka", &assign_ExcCZ_ka); - assign_map.emplace("cim:ExcCZ.ke", &assign_ExcCZ_ke); - assign_map.emplace("cim:ExcCZ.kp", &assign_ExcCZ_kp); - assign_map.emplace("cim:ExcCZ.ta", &assign_ExcCZ_ta); - assign_map.emplace("cim:ExcCZ.tc", &assign_ExcCZ_tc); - assign_map.emplace("cim:ExcCZ.te", &assign_ExcCZ_te); - assign_map.emplace("cim:ExcCZ.vrmax", &assign_ExcCZ_vrmax); - assign_map.emplace("cim:ExcCZ.vrmin", &assign_ExcCZ_vrmin); + assign_map.emplace("ExcCZ.efdmax", &assign_ExcCZ_efdmax); + assign_map.emplace("ExcCZ.efdmin", &assign_ExcCZ_efdmin); + assign_map.emplace("ExcCZ.ka", &assign_ExcCZ_ka); + assign_map.emplace("ExcCZ.ke", &assign_ExcCZ_ke); + assign_map.emplace("ExcCZ.kp", &assign_ExcCZ_kp); + assign_map.emplace("ExcCZ.ta", &assign_ExcCZ_ta); + assign_map.emplace("ExcCZ.tc", &assign_ExcCZ_tc); + assign_map.emplace("ExcCZ.te", &assign_ExcCZ_te); + assign_map.emplace("ExcCZ.vrmax", &assign_ExcCZ_vrmax); + assign_map.emplace("ExcCZ.vrmin", &assign_ExcCZ_vrmin); } void ExcCZ::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcCZ::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcCZ.efdmax", &get_ExcCZ_efdmax); - get_map.emplace("cim:ExcCZ.efdmin", &get_ExcCZ_efdmin); - get_map.emplace("cim:ExcCZ.ka", &get_ExcCZ_ka); - get_map.emplace("cim:ExcCZ.ke", &get_ExcCZ_ke); - get_map.emplace("cim:ExcCZ.kp", &get_ExcCZ_kp); - get_map.emplace("cim:ExcCZ.ta", &get_ExcCZ_ta); - get_map.emplace("cim:ExcCZ.tc", &get_ExcCZ_tc); - get_map.emplace("cim:ExcCZ.te", &get_ExcCZ_te); - get_map.emplace("cim:ExcCZ.vrmax", &get_ExcCZ_vrmax); - get_map.emplace("cim:ExcCZ.vrmin", &get_ExcCZ_vrmin); + get_map.emplace("ExcCZ.efdmax", &get_ExcCZ_efdmax); + get_map.emplace("ExcCZ.efdmin", &get_ExcCZ_efdmin); + get_map.emplace("ExcCZ.ka", &get_ExcCZ_ka); + get_map.emplace("ExcCZ.ke", &get_ExcCZ_ke); + get_map.emplace("ExcCZ.kp", &get_ExcCZ_kp); + get_map.emplace("ExcCZ.ta", &get_ExcCZ_ta); + get_map.emplace("ExcCZ.tc", &get_ExcCZ_tc); + get_map.emplace("ExcCZ.te", &get_ExcCZ_te); + get_map.emplace("ExcCZ.vrmax", &get_ExcCZ_vrmax); + get_map.emplace("ExcCZ.vrmin", &get_ExcCZ_vrmin); } void ExcCZ::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcCZ::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcCZ::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcCZ" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcCZ::declare() { return BaseClassDefiner(ExcCZ::addConstructToMap, ExcCZ::addPrimitiveAssignFnsToMap, ExcCZ::addClassAssignFnsToMap, ExcCZ::debugName); } +std::map ExcCZ::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcCZ_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcCZ.hpp b/CGMES_2.4.13_18DEC2013/ExcCZ.hpp index 535e79794..315621089 100644 --- a/CGMES_2.4.13_18DEC2013/ExcCZ.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcCZ.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcCZ_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcDC1A.cpp b/CGMES_2.4.13_18DEC2013/ExcDC1A.cpp index 66f08bb53..4a2d815c9 100644 --- a/CGMES_2.4.13_18DEC2013/ExcDC1A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcDC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC1A.edfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC1A::ExcDC1A() {} ExcDC1A::~ExcDC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC1A::getClassNamespaceUrl() const { - { "cim:ExcDC1A.edfmax", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC1A::getPossibleProfilesForClass() const +const std::string& ExcDC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC1A::getPossibleProfilesForAttributes() const +const std::list& ExcDC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC1A_edfmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcDC1A::debugString() const void ExcDC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC1A", &ExcDC1A_factory); + factory_map.emplace("ExcDC1A", &ExcDC1A_factory); } void ExcDC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC1A.edfmax", &assign_ExcDC1A_edfmax); - assign_map.emplace("cim:ExcDC1A.efd1", &assign_ExcDC1A_efd1); - assign_map.emplace("cim:ExcDC1A.efd2", &assign_ExcDC1A_efd2); - assign_map.emplace("cim:ExcDC1A.efdmin", &assign_ExcDC1A_efdmin); - assign_map.emplace("cim:ExcDC1A.exclim", &assign_ExcDC1A_exclim); - assign_map.emplace("cim:ExcDC1A.ka", &assign_ExcDC1A_ka); - assign_map.emplace("cim:ExcDC1A.ke", &assign_ExcDC1A_ke); - assign_map.emplace("cim:ExcDC1A.kf", &assign_ExcDC1A_kf); - assign_map.emplace("cim:ExcDC1A.ks", &assign_ExcDC1A_ks); - assign_map.emplace("cim:ExcDC1A.seefd1", &assign_ExcDC1A_seefd1); - assign_map.emplace("cim:ExcDC1A.seefd2", &assign_ExcDC1A_seefd2); - assign_map.emplace("cim:ExcDC1A.ta", &assign_ExcDC1A_ta); - assign_map.emplace("cim:ExcDC1A.tb", &assign_ExcDC1A_tb); - assign_map.emplace("cim:ExcDC1A.tc", &assign_ExcDC1A_tc); - assign_map.emplace("cim:ExcDC1A.te", &assign_ExcDC1A_te); - assign_map.emplace("cim:ExcDC1A.tf", &assign_ExcDC1A_tf); - assign_map.emplace("cim:ExcDC1A.vrmax", &assign_ExcDC1A_vrmax); - assign_map.emplace("cim:ExcDC1A.vrmin", &assign_ExcDC1A_vrmin); + assign_map.emplace("ExcDC1A.edfmax", &assign_ExcDC1A_edfmax); + assign_map.emplace("ExcDC1A.efd1", &assign_ExcDC1A_efd1); + assign_map.emplace("ExcDC1A.efd2", &assign_ExcDC1A_efd2); + assign_map.emplace("ExcDC1A.efdmin", &assign_ExcDC1A_efdmin); + assign_map.emplace("ExcDC1A.exclim", &assign_ExcDC1A_exclim); + assign_map.emplace("ExcDC1A.ka", &assign_ExcDC1A_ka); + assign_map.emplace("ExcDC1A.ke", &assign_ExcDC1A_ke); + assign_map.emplace("ExcDC1A.kf", &assign_ExcDC1A_kf); + assign_map.emplace("ExcDC1A.ks", &assign_ExcDC1A_ks); + assign_map.emplace("ExcDC1A.seefd1", &assign_ExcDC1A_seefd1); + assign_map.emplace("ExcDC1A.seefd2", &assign_ExcDC1A_seefd2); + assign_map.emplace("ExcDC1A.ta", &assign_ExcDC1A_ta); + assign_map.emplace("ExcDC1A.tb", &assign_ExcDC1A_tb); + assign_map.emplace("ExcDC1A.tc", &assign_ExcDC1A_tc); + assign_map.emplace("ExcDC1A.te", &assign_ExcDC1A_te); + assign_map.emplace("ExcDC1A.tf", &assign_ExcDC1A_tf); + assign_map.emplace("ExcDC1A.vrmax", &assign_ExcDC1A_vrmax); + assign_map.emplace("ExcDC1A.vrmin", &assign_ExcDC1A_vrmin); } void ExcDC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcDC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC1A.edfmax", &get_ExcDC1A_edfmax); - get_map.emplace("cim:ExcDC1A.efd1", &get_ExcDC1A_efd1); - get_map.emplace("cim:ExcDC1A.efd2", &get_ExcDC1A_efd2); - get_map.emplace("cim:ExcDC1A.efdmin", &get_ExcDC1A_efdmin); - get_map.emplace("cim:ExcDC1A.exclim", &get_ExcDC1A_exclim); - get_map.emplace("cim:ExcDC1A.ka", &get_ExcDC1A_ka); - get_map.emplace("cim:ExcDC1A.ke", &get_ExcDC1A_ke); - get_map.emplace("cim:ExcDC1A.kf", &get_ExcDC1A_kf); - get_map.emplace("cim:ExcDC1A.ks", &get_ExcDC1A_ks); - get_map.emplace("cim:ExcDC1A.seefd1", &get_ExcDC1A_seefd1); - get_map.emplace("cim:ExcDC1A.seefd2", &get_ExcDC1A_seefd2); - get_map.emplace("cim:ExcDC1A.ta", &get_ExcDC1A_ta); - get_map.emplace("cim:ExcDC1A.tb", &get_ExcDC1A_tb); - get_map.emplace("cim:ExcDC1A.tc", &get_ExcDC1A_tc); - get_map.emplace("cim:ExcDC1A.te", &get_ExcDC1A_te); - get_map.emplace("cim:ExcDC1A.tf", &get_ExcDC1A_tf); - get_map.emplace("cim:ExcDC1A.vrmax", &get_ExcDC1A_vrmax); - get_map.emplace("cim:ExcDC1A.vrmin", &get_ExcDC1A_vrmin); + get_map.emplace("ExcDC1A.edfmax", &get_ExcDC1A_edfmax); + get_map.emplace("ExcDC1A.efd1", &get_ExcDC1A_efd1); + get_map.emplace("ExcDC1A.efd2", &get_ExcDC1A_efd2); + get_map.emplace("ExcDC1A.efdmin", &get_ExcDC1A_efdmin); + get_map.emplace("ExcDC1A.exclim", &get_ExcDC1A_exclim); + get_map.emplace("ExcDC1A.ka", &get_ExcDC1A_ka); + get_map.emplace("ExcDC1A.ke", &get_ExcDC1A_ke); + get_map.emplace("ExcDC1A.kf", &get_ExcDC1A_kf); + get_map.emplace("ExcDC1A.ks", &get_ExcDC1A_ks); + get_map.emplace("ExcDC1A.seefd1", &get_ExcDC1A_seefd1); + get_map.emplace("ExcDC1A.seefd2", &get_ExcDC1A_seefd2); + get_map.emplace("ExcDC1A.ta", &get_ExcDC1A_ta); + get_map.emplace("ExcDC1A.tb", &get_ExcDC1A_tb); + get_map.emplace("ExcDC1A.tc", &get_ExcDC1A_tc); + get_map.emplace("ExcDC1A.te", &get_ExcDC1A_te); + get_map.emplace("ExcDC1A.tf", &get_ExcDC1A_tf); + get_map.emplace("ExcDC1A.vrmax", &get_ExcDC1A_vrmax); + get_map.emplace("ExcDC1A.vrmin", &get_ExcDC1A_vrmin); } void ExcDC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcDC1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC1A::declare() { return BaseClassDefiner(ExcDC1A::addConstructToMap, ExcDC1A::addPrimitiveAssignFnsToMap, ExcDC1A::addClassAssignFnsToMap, ExcDC1A::debugName); } +std::map ExcDC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcDC1A.hpp b/CGMES_2.4.13_18DEC2013/ExcDC1A.hpp index 5cff88d2f..0fbae4e76 100644 --- a/CGMES_2.4.13_18DEC2013/ExcDC1A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcDC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcDC2A.cpp b/CGMES_2.4.13_18DEC2013/ExcDC2A.cpp index 79a98e618..0c4832f36 100644 --- a/CGMES_2.4.13_18DEC2013/ExcDC2A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcDC2A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC2A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vtlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC2A::ExcDC2A() {} ExcDC2A::~ExcDC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC2A::getClassNamespaceUrl() const { - { "cim:ExcDC2A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vtlim", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC2A::getPossibleProfilesForClass() const +const std::string& ExcDC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC2A::getPossibleProfilesForAttributes() const +const std::list& ExcDC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC2A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcDC2A::debugString() const void ExcDC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC2A", &ExcDC2A_factory); + factory_map.emplace("ExcDC2A", &ExcDC2A_factory); } void ExcDC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC2A.efd1", &assign_ExcDC2A_efd1); - assign_map.emplace("cim:ExcDC2A.efd2", &assign_ExcDC2A_efd2); - assign_map.emplace("cim:ExcDC2A.exclim", &assign_ExcDC2A_exclim); - assign_map.emplace("cim:ExcDC2A.ka", &assign_ExcDC2A_ka); - assign_map.emplace("cim:ExcDC2A.ke", &assign_ExcDC2A_ke); - assign_map.emplace("cim:ExcDC2A.kf", &assign_ExcDC2A_kf); - assign_map.emplace("cim:ExcDC2A.ks", &assign_ExcDC2A_ks); - assign_map.emplace("cim:ExcDC2A.seefd1", &assign_ExcDC2A_seefd1); - assign_map.emplace("cim:ExcDC2A.seefd2", &assign_ExcDC2A_seefd2); - assign_map.emplace("cim:ExcDC2A.ta", &assign_ExcDC2A_ta); - assign_map.emplace("cim:ExcDC2A.tb", &assign_ExcDC2A_tb); - assign_map.emplace("cim:ExcDC2A.tc", &assign_ExcDC2A_tc); - assign_map.emplace("cim:ExcDC2A.te", &assign_ExcDC2A_te); - assign_map.emplace("cim:ExcDC2A.tf", &assign_ExcDC2A_tf); - assign_map.emplace("cim:ExcDC2A.tf1", &assign_ExcDC2A_tf1); - assign_map.emplace("cim:ExcDC2A.vrmax", &assign_ExcDC2A_vrmax); - assign_map.emplace("cim:ExcDC2A.vrmin", &assign_ExcDC2A_vrmin); - assign_map.emplace("cim:ExcDC2A.vtlim", &assign_ExcDC2A_vtlim); + assign_map.emplace("ExcDC2A.efd1", &assign_ExcDC2A_efd1); + assign_map.emplace("ExcDC2A.efd2", &assign_ExcDC2A_efd2); + assign_map.emplace("ExcDC2A.exclim", &assign_ExcDC2A_exclim); + assign_map.emplace("ExcDC2A.ka", &assign_ExcDC2A_ka); + assign_map.emplace("ExcDC2A.ke", &assign_ExcDC2A_ke); + assign_map.emplace("ExcDC2A.kf", &assign_ExcDC2A_kf); + assign_map.emplace("ExcDC2A.ks", &assign_ExcDC2A_ks); + assign_map.emplace("ExcDC2A.seefd1", &assign_ExcDC2A_seefd1); + assign_map.emplace("ExcDC2A.seefd2", &assign_ExcDC2A_seefd2); + assign_map.emplace("ExcDC2A.ta", &assign_ExcDC2A_ta); + assign_map.emplace("ExcDC2A.tb", &assign_ExcDC2A_tb); + assign_map.emplace("ExcDC2A.tc", &assign_ExcDC2A_tc); + assign_map.emplace("ExcDC2A.te", &assign_ExcDC2A_te); + assign_map.emplace("ExcDC2A.tf", &assign_ExcDC2A_tf); + assign_map.emplace("ExcDC2A.tf1", &assign_ExcDC2A_tf1); + assign_map.emplace("ExcDC2A.vrmax", &assign_ExcDC2A_vrmax); + assign_map.emplace("ExcDC2A.vrmin", &assign_ExcDC2A_vrmin); + assign_map.emplace("ExcDC2A.vtlim", &assign_ExcDC2A_vtlim); } void ExcDC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcDC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC2A.efd1", &get_ExcDC2A_efd1); - get_map.emplace("cim:ExcDC2A.efd2", &get_ExcDC2A_efd2); - get_map.emplace("cim:ExcDC2A.exclim", &get_ExcDC2A_exclim); - get_map.emplace("cim:ExcDC2A.ka", &get_ExcDC2A_ka); - get_map.emplace("cim:ExcDC2A.ke", &get_ExcDC2A_ke); - get_map.emplace("cim:ExcDC2A.kf", &get_ExcDC2A_kf); - get_map.emplace("cim:ExcDC2A.ks", &get_ExcDC2A_ks); - get_map.emplace("cim:ExcDC2A.seefd1", &get_ExcDC2A_seefd1); - get_map.emplace("cim:ExcDC2A.seefd2", &get_ExcDC2A_seefd2); - get_map.emplace("cim:ExcDC2A.ta", &get_ExcDC2A_ta); - get_map.emplace("cim:ExcDC2A.tb", &get_ExcDC2A_tb); - get_map.emplace("cim:ExcDC2A.tc", &get_ExcDC2A_tc); - get_map.emplace("cim:ExcDC2A.te", &get_ExcDC2A_te); - get_map.emplace("cim:ExcDC2A.tf", &get_ExcDC2A_tf); - get_map.emplace("cim:ExcDC2A.tf1", &get_ExcDC2A_tf1); - get_map.emplace("cim:ExcDC2A.vrmax", &get_ExcDC2A_vrmax); - get_map.emplace("cim:ExcDC2A.vrmin", &get_ExcDC2A_vrmin); - get_map.emplace("cim:ExcDC2A.vtlim", &get_ExcDC2A_vtlim); + get_map.emplace("ExcDC2A.efd1", &get_ExcDC2A_efd1); + get_map.emplace("ExcDC2A.efd2", &get_ExcDC2A_efd2); + get_map.emplace("ExcDC2A.exclim", &get_ExcDC2A_exclim); + get_map.emplace("ExcDC2A.ka", &get_ExcDC2A_ka); + get_map.emplace("ExcDC2A.ke", &get_ExcDC2A_ke); + get_map.emplace("ExcDC2A.kf", &get_ExcDC2A_kf); + get_map.emplace("ExcDC2A.ks", &get_ExcDC2A_ks); + get_map.emplace("ExcDC2A.seefd1", &get_ExcDC2A_seefd1); + get_map.emplace("ExcDC2A.seefd2", &get_ExcDC2A_seefd2); + get_map.emplace("ExcDC2A.ta", &get_ExcDC2A_ta); + get_map.emplace("ExcDC2A.tb", &get_ExcDC2A_tb); + get_map.emplace("ExcDC2A.tc", &get_ExcDC2A_tc); + get_map.emplace("ExcDC2A.te", &get_ExcDC2A_te); + get_map.emplace("ExcDC2A.tf", &get_ExcDC2A_tf); + get_map.emplace("ExcDC2A.tf1", &get_ExcDC2A_tf1); + get_map.emplace("ExcDC2A.vrmax", &get_ExcDC2A_vrmax); + get_map.emplace("ExcDC2A.vrmin", &get_ExcDC2A_vrmin); + get_map.emplace("ExcDC2A.vtlim", &get_ExcDC2A_vtlim); } void ExcDC2A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcDC2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC2A::declare() { return BaseClassDefiner(ExcDC2A::addConstructToMap, ExcDC2A::addPrimitiveAssignFnsToMap, ExcDC2A::addClassAssignFnsToMap, ExcDC2A::debugName); } +std::map ExcDC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC2A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcDC2A.hpp b/CGMES_2.4.13_18DEC2013/ExcDC2A.hpp index e317a7ea0..a8516ce30 100644 --- a/CGMES_2.4.13_18DEC2013/ExcDC2A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcDC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC2A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcDC3A.cpp b/CGMES_2.4.13_18DEC2013/ExcDC3A.cpp index 71b995f87..26a084b8c 100644 --- a/CGMES_2.4.13_18DEC2013/ExcDC3A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcDC3A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC3A.edfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.kv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC3A::ExcDC3A() {} ExcDC3A::~ExcDC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC3A::getClassNamespaceUrl() const { - { "cim:ExcDC3A.edfmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdlim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.kv", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.trh", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC3A::getPossibleProfilesForClass() const +const std::string& ExcDC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC3A::getPossibleProfilesForAttributes() const +const std::list& ExcDC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC3A_edfmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcDC3A::debugString() const void ExcDC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC3A", &ExcDC3A_factory); + factory_map.emplace("ExcDC3A", &ExcDC3A_factory); } void ExcDC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC3A.edfmax", &assign_ExcDC3A_edfmax); - assign_map.emplace("cim:ExcDC3A.efd1", &assign_ExcDC3A_efd1); - assign_map.emplace("cim:ExcDC3A.efd2", &assign_ExcDC3A_efd2); - assign_map.emplace("cim:ExcDC3A.efdlim", &assign_ExcDC3A_efdlim); - assign_map.emplace("cim:ExcDC3A.efdmin", &assign_ExcDC3A_efdmin); - assign_map.emplace("cim:ExcDC3A.exclim", &assign_ExcDC3A_exclim); - assign_map.emplace("cim:ExcDC3A.ke", &assign_ExcDC3A_ke); - assign_map.emplace("cim:ExcDC3A.kr", &assign_ExcDC3A_kr); - assign_map.emplace("cim:ExcDC3A.ks", &assign_ExcDC3A_ks); - assign_map.emplace("cim:ExcDC3A.kv", &assign_ExcDC3A_kv); - assign_map.emplace("cim:ExcDC3A.seefd1", &assign_ExcDC3A_seefd1); - assign_map.emplace("cim:ExcDC3A.seefd2", &assign_ExcDC3A_seefd2); - assign_map.emplace("cim:ExcDC3A.te", &assign_ExcDC3A_te); - assign_map.emplace("cim:ExcDC3A.trh", &assign_ExcDC3A_trh); - assign_map.emplace("cim:ExcDC3A.vrmax", &assign_ExcDC3A_vrmax); - assign_map.emplace("cim:ExcDC3A.vrmin", &assign_ExcDC3A_vrmin); + assign_map.emplace("ExcDC3A.edfmax", &assign_ExcDC3A_edfmax); + assign_map.emplace("ExcDC3A.efd1", &assign_ExcDC3A_efd1); + assign_map.emplace("ExcDC3A.efd2", &assign_ExcDC3A_efd2); + assign_map.emplace("ExcDC3A.efdlim", &assign_ExcDC3A_efdlim); + assign_map.emplace("ExcDC3A.efdmin", &assign_ExcDC3A_efdmin); + assign_map.emplace("ExcDC3A.exclim", &assign_ExcDC3A_exclim); + assign_map.emplace("ExcDC3A.ke", &assign_ExcDC3A_ke); + assign_map.emplace("ExcDC3A.kr", &assign_ExcDC3A_kr); + assign_map.emplace("ExcDC3A.ks", &assign_ExcDC3A_ks); + assign_map.emplace("ExcDC3A.kv", &assign_ExcDC3A_kv); + assign_map.emplace("ExcDC3A.seefd1", &assign_ExcDC3A_seefd1); + assign_map.emplace("ExcDC3A.seefd2", &assign_ExcDC3A_seefd2); + assign_map.emplace("ExcDC3A.te", &assign_ExcDC3A_te); + assign_map.emplace("ExcDC3A.trh", &assign_ExcDC3A_trh); + assign_map.emplace("ExcDC3A.vrmax", &assign_ExcDC3A_vrmax); + assign_map.emplace("ExcDC3A.vrmin", &assign_ExcDC3A_vrmin); } void ExcDC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcDC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC3A.edfmax", &get_ExcDC3A_edfmax); - get_map.emplace("cim:ExcDC3A.efd1", &get_ExcDC3A_efd1); - get_map.emplace("cim:ExcDC3A.efd2", &get_ExcDC3A_efd2); - get_map.emplace("cim:ExcDC3A.efdlim", &get_ExcDC3A_efdlim); - get_map.emplace("cim:ExcDC3A.efdmin", &get_ExcDC3A_efdmin); - get_map.emplace("cim:ExcDC3A.exclim", &get_ExcDC3A_exclim); - get_map.emplace("cim:ExcDC3A.ke", &get_ExcDC3A_ke); - get_map.emplace("cim:ExcDC3A.kr", &get_ExcDC3A_kr); - get_map.emplace("cim:ExcDC3A.ks", &get_ExcDC3A_ks); - get_map.emplace("cim:ExcDC3A.kv", &get_ExcDC3A_kv); - get_map.emplace("cim:ExcDC3A.seefd1", &get_ExcDC3A_seefd1); - get_map.emplace("cim:ExcDC3A.seefd2", &get_ExcDC3A_seefd2); - get_map.emplace("cim:ExcDC3A.te", &get_ExcDC3A_te); - get_map.emplace("cim:ExcDC3A.trh", &get_ExcDC3A_trh); - get_map.emplace("cim:ExcDC3A.vrmax", &get_ExcDC3A_vrmax); - get_map.emplace("cim:ExcDC3A.vrmin", &get_ExcDC3A_vrmin); + get_map.emplace("ExcDC3A.edfmax", &get_ExcDC3A_edfmax); + get_map.emplace("ExcDC3A.efd1", &get_ExcDC3A_efd1); + get_map.emplace("ExcDC3A.efd2", &get_ExcDC3A_efd2); + get_map.emplace("ExcDC3A.efdlim", &get_ExcDC3A_efdlim); + get_map.emplace("ExcDC3A.efdmin", &get_ExcDC3A_efdmin); + get_map.emplace("ExcDC3A.exclim", &get_ExcDC3A_exclim); + get_map.emplace("ExcDC3A.ke", &get_ExcDC3A_ke); + get_map.emplace("ExcDC3A.kr", &get_ExcDC3A_kr); + get_map.emplace("ExcDC3A.ks", &get_ExcDC3A_ks); + get_map.emplace("ExcDC3A.kv", &get_ExcDC3A_kv); + get_map.emplace("ExcDC3A.seefd1", &get_ExcDC3A_seefd1); + get_map.emplace("ExcDC3A.seefd2", &get_ExcDC3A_seefd2); + get_map.emplace("ExcDC3A.te", &get_ExcDC3A_te); + get_map.emplace("ExcDC3A.trh", &get_ExcDC3A_trh); + get_map.emplace("ExcDC3A.vrmax", &get_ExcDC3A_vrmax); + get_map.emplace("ExcDC3A.vrmin", &get_ExcDC3A_vrmin); } void ExcDC3A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcDC3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC3A::declare() { return BaseClassDefiner(ExcDC3A::addConstructToMap, ExcDC3A::addPrimitiveAssignFnsToMap, ExcDC3A::addClassAssignFnsToMap, ExcDC3A::debugName); } +std::map ExcDC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC3A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcDC3A.hpp b/CGMES_2.4.13_18DEC2013/ExcDC3A.hpp index 53e5af5f0..944ed867e 100644 --- a/CGMES_2.4.13_18DEC2013/ExcDC3A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcDC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC3A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcDC3A1.cpp b/CGMES_2.4.13_18DEC2013/ExcDC3A1.cpp index 4d46a92b7..c81645b51 100644 --- a/CGMES_2.4.13_18DEC2013/ExcDC3A1.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcDC3A1.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC3A1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC3A1.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vb1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vblim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC3A1::ExcDC3A1() {} ExcDC3A1::~ExcDC3A1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC3A1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC3A1::getClassNamespaceUrl() const { - { "cim:ExcDC3A1.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ki", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.kp", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.te", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vb1max", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vblim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC3A1::getPossibleProfilesForClass() const +const std::string& ExcDC3A1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC3A1::getPossibleProfilesForAttributes() const +const std::list& ExcDC3A1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC3A1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC3A1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC3A1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC3A1_exclim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcDC3A1::debugString() const void ExcDC3A1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC3A1", &ExcDC3A1_factory); + factory_map.emplace("ExcDC3A1", &ExcDC3A1_factory); } void ExcDC3A1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC3A1.exclim", &assign_ExcDC3A1_exclim); - assign_map.emplace("cim:ExcDC3A1.ka", &assign_ExcDC3A1_ka); - assign_map.emplace("cim:ExcDC3A1.ke", &assign_ExcDC3A1_ke); - assign_map.emplace("cim:ExcDC3A1.kf", &assign_ExcDC3A1_kf); - assign_map.emplace("cim:ExcDC3A1.ki", &assign_ExcDC3A1_ki); - assign_map.emplace("cim:ExcDC3A1.kp", &assign_ExcDC3A1_kp); - assign_map.emplace("cim:ExcDC3A1.ta", &assign_ExcDC3A1_ta); - assign_map.emplace("cim:ExcDC3A1.te", &assign_ExcDC3A1_te); - assign_map.emplace("cim:ExcDC3A1.tf", &assign_ExcDC3A1_tf); - assign_map.emplace("cim:ExcDC3A1.vb1max", &assign_ExcDC3A1_vb1max); - assign_map.emplace("cim:ExcDC3A1.vblim", &assign_ExcDC3A1_vblim); - assign_map.emplace("cim:ExcDC3A1.vbmax", &assign_ExcDC3A1_vbmax); - assign_map.emplace("cim:ExcDC3A1.vrmax", &assign_ExcDC3A1_vrmax); - assign_map.emplace("cim:ExcDC3A1.vrmin", &assign_ExcDC3A1_vrmin); + assign_map.emplace("ExcDC3A1.exclim", &assign_ExcDC3A1_exclim); + assign_map.emplace("ExcDC3A1.ka", &assign_ExcDC3A1_ka); + assign_map.emplace("ExcDC3A1.ke", &assign_ExcDC3A1_ke); + assign_map.emplace("ExcDC3A1.kf", &assign_ExcDC3A1_kf); + assign_map.emplace("ExcDC3A1.ki", &assign_ExcDC3A1_ki); + assign_map.emplace("ExcDC3A1.kp", &assign_ExcDC3A1_kp); + assign_map.emplace("ExcDC3A1.ta", &assign_ExcDC3A1_ta); + assign_map.emplace("ExcDC3A1.te", &assign_ExcDC3A1_te); + assign_map.emplace("ExcDC3A1.tf", &assign_ExcDC3A1_tf); + assign_map.emplace("ExcDC3A1.vb1max", &assign_ExcDC3A1_vb1max); + assign_map.emplace("ExcDC3A1.vblim", &assign_ExcDC3A1_vblim); + assign_map.emplace("ExcDC3A1.vbmax", &assign_ExcDC3A1_vbmax); + assign_map.emplace("ExcDC3A1.vrmax", &assign_ExcDC3A1_vrmax); + assign_map.emplace("ExcDC3A1.vrmin", &assign_ExcDC3A1_vrmin); } void ExcDC3A1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcDC3A1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC3A1.exclim", &get_ExcDC3A1_exclim); - get_map.emplace("cim:ExcDC3A1.ka", &get_ExcDC3A1_ka); - get_map.emplace("cim:ExcDC3A1.ke", &get_ExcDC3A1_ke); - get_map.emplace("cim:ExcDC3A1.kf", &get_ExcDC3A1_kf); - get_map.emplace("cim:ExcDC3A1.ki", &get_ExcDC3A1_ki); - get_map.emplace("cim:ExcDC3A1.kp", &get_ExcDC3A1_kp); - get_map.emplace("cim:ExcDC3A1.ta", &get_ExcDC3A1_ta); - get_map.emplace("cim:ExcDC3A1.te", &get_ExcDC3A1_te); - get_map.emplace("cim:ExcDC3A1.tf", &get_ExcDC3A1_tf); - get_map.emplace("cim:ExcDC3A1.vb1max", &get_ExcDC3A1_vb1max); - get_map.emplace("cim:ExcDC3A1.vblim", &get_ExcDC3A1_vblim); - get_map.emplace("cim:ExcDC3A1.vbmax", &get_ExcDC3A1_vbmax); - get_map.emplace("cim:ExcDC3A1.vrmax", &get_ExcDC3A1_vrmax); - get_map.emplace("cim:ExcDC3A1.vrmin", &get_ExcDC3A1_vrmin); + get_map.emplace("ExcDC3A1.exclim", &get_ExcDC3A1_exclim); + get_map.emplace("ExcDC3A1.ka", &get_ExcDC3A1_ka); + get_map.emplace("ExcDC3A1.ke", &get_ExcDC3A1_ke); + get_map.emplace("ExcDC3A1.kf", &get_ExcDC3A1_kf); + get_map.emplace("ExcDC3A1.ki", &get_ExcDC3A1_ki); + get_map.emplace("ExcDC3A1.kp", &get_ExcDC3A1_kp); + get_map.emplace("ExcDC3A1.ta", &get_ExcDC3A1_ta); + get_map.emplace("ExcDC3A1.te", &get_ExcDC3A1_te); + get_map.emplace("ExcDC3A1.tf", &get_ExcDC3A1_tf); + get_map.emplace("ExcDC3A1.vb1max", &get_ExcDC3A1_vb1max); + get_map.emplace("ExcDC3A1.vblim", &get_ExcDC3A1_vblim); + get_map.emplace("ExcDC3A1.vbmax", &get_ExcDC3A1_vbmax); + get_map.emplace("ExcDC3A1.vrmax", &get_ExcDC3A1_vrmax); + get_map.emplace("ExcDC3A1.vrmin", &get_ExcDC3A1_vrmin); } void ExcDC3A1::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcDC3A1::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC3A1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC3A1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC3A1::declare() { return BaseClassDefiner(ExcDC3A1::addConstructToMap, ExcDC3A1::addPrimitiveAssignFnsToMap, ExcDC3A1::addClassAssignFnsToMap, ExcDC3A1::debugName); } +std::map ExcDC3A1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC3A1_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcDC3A1.hpp b/CGMES_2.4.13_18DEC2013/ExcDC3A1.hpp index e58f7643f..8b5d08474 100644 --- a/CGMES_2.4.13_18DEC2013/ExcDC3A1.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcDC3A1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC3A1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcELIN1.cpp b/CGMES_2.4.13_18DEC2013/ExcELIN1.cpp index 449d03fd8..288b8daee 100644 --- a/CGMES_2.4.13_18DEC2013/ExcELIN1.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcELIN1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcELIN1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcELIN1.dpnf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.efmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.efmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.smax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tfi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tnu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ts1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ts2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tsw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpnf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcELIN1::ExcELIN1() {} ExcELIN1::~ExcELIN1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcELIN1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcELIN1::getClassNamespaceUrl() const { - { "cim:ExcELIN1.dpnf", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.efmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.efmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ks1", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ks2", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.smax", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tfi", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tnu", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ts1", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ts2", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tsw", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpi", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpnf", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpu", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcELIN1::getPossibleProfilesForClass() const +const std::string& ExcELIN1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcELIN1::getPossibleProfilesForAttributes() const +const std::list& ExcELIN1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcELIN1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcELIN1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcELIN1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcELIN1_dpnf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcELIN1::debugString() const void ExcELIN1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcELIN1", &ExcELIN1_factory); + factory_map.emplace("ExcELIN1", &ExcELIN1_factory); } void ExcELIN1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcELIN1.dpnf", &assign_ExcELIN1_dpnf); - assign_map.emplace("cim:ExcELIN1.efmax", &assign_ExcELIN1_efmax); - assign_map.emplace("cim:ExcELIN1.efmin", &assign_ExcELIN1_efmin); - assign_map.emplace("cim:ExcELIN1.ks1", &assign_ExcELIN1_ks1); - assign_map.emplace("cim:ExcELIN1.ks2", &assign_ExcELIN1_ks2); - assign_map.emplace("cim:ExcELIN1.smax", &assign_ExcELIN1_smax); - assign_map.emplace("cim:ExcELIN1.tfi", &assign_ExcELIN1_tfi); - assign_map.emplace("cim:ExcELIN1.tnu", &assign_ExcELIN1_tnu); - assign_map.emplace("cim:ExcELIN1.ts1", &assign_ExcELIN1_ts1); - assign_map.emplace("cim:ExcELIN1.ts2", &assign_ExcELIN1_ts2); - assign_map.emplace("cim:ExcELIN1.tsw", &assign_ExcELIN1_tsw); - assign_map.emplace("cim:ExcELIN1.vpi", &assign_ExcELIN1_vpi); - assign_map.emplace("cim:ExcELIN1.vpnf", &assign_ExcELIN1_vpnf); - assign_map.emplace("cim:ExcELIN1.vpu", &assign_ExcELIN1_vpu); - assign_map.emplace("cim:ExcELIN1.xe", &assign_ExcELIN1_xe); + assign_map.emplace("ExcELIN1.dpnf", &assign_ExcELIN1_dpnf); + assign_map.emplace("ExcELIN1.efmax", &assign_ExcELIN1_efmax); + assign_map.emplace("ExcELIN1.efmin", &assign_ExcELIN1_efmin); + assign_map.emplace("ExcELIN1.ks1", &assign_ExcELIN1_ks1); + assign_map.emplace("ExcELIN1.ks2", &assign_ExcELIN1_ks2); + assign_map.emplace("ExcELIN1.smax", &assign_ExcELIN1_smax); + assign_map.emplace("ExcELIN1.tfi", &assign_ExcELIN1_tfi); + assign_map.emplace("ExcELIN1.tnu", &assign_ExcELIN1_tnu); + assign_map.emplace("ExcELIN1.ts1", &assign_ExcELIN1_ts1); + assign_map.emplace("ExcELIN1.ts2", &assign_ExcELIN1_ts2); + assign_map.emplace("ExcELIN1.tsw", &assign_ExcELIN1_tsw); + assign_map.emplace("ExcELIN1.vpi", &assign_ExcELIN1_vpi); + assign_map.emplace("ExcELIN1.vpnf", &assign_ExcELIN1_vpnf); + assign_map.emplace("ExcELIN1.vpu", &assign_ExcELIN1_vpu); + assign_map.emplace("ExcELIN1.xe", &assign_ExcELIN1_xe); } void ExcELIN1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void ExcELIN1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcELIN1.dpnf", &get_ExcELIN1_dpnf); - get_map.emplace("cim:ExcELIN1.efmax", &get_ExcELIN1_efmax); - get_map.emplace("cim:ExcELIN1.efmin", &get_ExcELIN1_efmin); - get_map.emplace("cim:ExcELIN1.ks1", &get_ExcELIN1_ks1); - get_map.emplace("cim:ExcELIN1.ks2", &get_ExcELIN1_ks2); - get_map.emplace("cim:ExcELIN1.smax", &get_ExcELIN1_smax); - get_map.emplace("cim:ExcELIN1.tfi", &get_ExcELIN1_tfi); - get_map.emplace("cim:ExcELIN1.tnu", &get_ExcELIN1_tnu); - get_map.emplace("cim:ExcELIN1.ts1", &get_ExcELIN1_ts1); - get_map.emplace("cim:ExcELIN1.ts2", &get_ExcELIN1_ts2); - get_map.emplace("cim:ExcELIN1.tsw", &get_ExcELIN1_tsw); - get_map.emplace("cim:ExcELIN1.vpi", &get_ExcELIN1_vpi); - get_map.emplace("cim:ExcELIN1.vpnf", &get_ExcELIN1_vpnf); - get_map.emplace("cim:ExcELIN1.vpu", &get_ExcELIN1_vpu); - get_map.emplace("cim:ExcELIN1.xe", &get_ExcELIN1_xe); + get_map.emplace("ExcELIN1.dpnf", &get_ExcELIN1_dpnf); + get_map.emplace("ExcELIN1.efmax", &get_ExcELIN1_efmax); + get_map.emplace("ExcELIN1.efmin", &get_ExcELIN1_efmin); + get_map.emplace("ExcELIN1.ks1", &get_ExcELIN1_ks1); + get_map.emplace("ExcELIN1.ks2", &get_ExcELIN1_ks2); + get_map.emplace("ExcELIN1.smax", &get_ExcELIN1_smax); + get_map.emplace("ExcELIN1.tfi", &get_ExcELIN1_tfi); + get_map.emplace("ExcELIN1.tnu", &get_ExcELIN1_tnu); + get_map.emplace("ExcELIN1.ts1", &get_ExcELIN1_ts1); + get_map.emplace("ExcELIN1.ts2", &get_ExcELIN1_ts2); + get_map.emplace("ExcELIN1.tsw", &get_ExcELIN1_tsw); + get_map.emplace("ExcELIN1.vpi", &get_ExcELIN1_vpi); + get_map.emplace("ExcELIN1.vpnf", &get_ExcELIN1_vpnf); + get_map.emplace("ExcELIN1.vpu", &get_ExcELIN1_vpu); + get_map.emplace("ExcELIN1.xe", &get_ExcELIN1_xe); } void ExcELIN1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void ExcELIN1::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcELIN1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcELIN1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcELIN1::declare() { return BaseClassDefiner(ExcELIN1::addConstructToMap, ExcELIN1::addPrimitiveAssignFnsToMap, ExcELIN1::addClassAssignFnsToMap, ExcELIN1::debugName); } +std::map ExcELIN1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcELIN1_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcELIN1.hpp b/CGMES_2.4.13_18DEC2013/ExcELIN1.hpp index 91e784ce6..83c524da0 100644 --- a/CGMES_2.4.13_18DEC2013/ExcELIN1.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcELIN1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcELIN1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcELIN2.cpp b/CGMES_2.4.13_18DEC2013/ExcELIN2.cpp index afd309820..27fe9469b 100644 --- a/CGMES_2.4.13_18DEC2013/ExcELIN2.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcELIN2.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcELIN2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcELIN2.efdbas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmax2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k1ec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.kd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ke2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ketb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.pid1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.te2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.tr4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.upmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.upmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.xp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcELIN2::ExcELIN2() {} ExcELIN2::~ExcELIN2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcELIN2.efdbas", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmax2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k1ec", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k3", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.kd1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ke2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ketb", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.pid1max", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.seve1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.seve2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.tb1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.te", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.te2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti3", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.tr4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.upmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.upmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ve1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ve2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.xp", { CGMESProfile::DY, } }, -}; - -std::list -ExcELIN2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcELIN2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcELIN2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcELIN2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcELIN2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcELIN2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcELIN2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcELIN2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcELIN2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcELIN2_efdbas(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* ExcELIN2::debugString() const void ExcELIN2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcELIN2", &ExcELIN2_factory); + factory_map.emplace("ExcELIN2", &ExcELIN2_factory); } void ExcELIN2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcELIN2.efdbas", &assign_ExcELIN2_efdbas); - assign_map.emplace("cim:ExcELIN2.iefmax", &assign_ExcELIN2_iefmax); - assign_map.emplace("cim:ExcELIN2.iefmax2", &assign_ExcELIN2_iefmax2); - assign_map.emplace("cim:ExcELIN2.iefmin", &assign_ExcELIN2_iefmin); - assign_map.emplace("cim:ExcELIN2.k1", &assign_ExcELIN2_k1); - assign_map.emplace("cim:ExcELIN2.k1ec", &assign_ExcELIN2_k1ec); - assign_map.emplace("cim:ExcELIN2.k2", &assign_ExcELIN2_k2); - assign_map.emplace("cim:ExcELIN2.k3", &assign_ExcELIN2_k3); - assign_map.emplace("cim:ExcELIN2.k4", &assign_ExcELIN2_k4); - assign_map.emplace("cim:ExcELIN2.kd1", &assign_ExcELIN2_kd1); - assign_map.emplace("cim:ExcELIN2.ke2", &assign_ExcELIN2_ke2); - assign_map.emplace("cim:ExcELIN2.ketb", &assign_ExcELIN2_ketb); - assign_map.emplace("cim:ExcELIN2.pid1max", &assign_ExcELIN2_pid1max); - assign_map.emplace("cim:ExcELIN2.seve1", &assign_ExcELIN2_seve1); - assign_map.emplace("cim:ExcELIN2.seve2", &assign_ExcELIN2_seve2); - assign_map.emplace("cim:ExcELIN2.tb1", &assign_ExcELIN2_tb1); - assign_map.emplace("cim:ExcELIN2.te", &assign_ExcELIN2_te); - assign_map.emplace("cim:ExcELIN2.te2", &assign_ExcELIN2_te2); - assign_map.emplace("cim:ExcELIN2.ti1", &assign_ExcELIN2_ti1); - assign_map.emplace("cim:ExcELIN2.ti3", &assign_ExcELIN2_ti3); - assign_map.emplace("cim:ExcELIN2.ti4", &assign_ExcELIN2_ti4); - assign_map.emplace("cim:ExcELIN2.tr4", &assign_ExcELIN2_tr4); - assign_map.emplace("cim:ExcELIN2.upmax", &assign_ExcELIN2_upmax); - assign_map.emplace("cim:ExcELIN2.upmin", &assign_ExcELIN2_upmin); - assign_map.emplace("cim:ExcELIN2.ve1", &assign_ExcELIN2_ve1); - assign_map.emplace("cim:ExcELIN2.ve2", &assign_ExcELIN2_ve2); - assign_map.emplace("cim:ExcELIN2.xp", &assign_ExcELIN2_xp); + assign_map.emplace("ExcELIN2.efdbas", &assign_ExcELIN2_efdbas); + assign_map.emplace("ExcELIN2.iefmax", &assign_ExcELIN2_iefmax); + assign_map.emplace("ExcELIN2.iefmax2", &assign_ExcELIN2_iefmax2); + assign_map.emplace("ExcELIN2.iefmin", &assign_ExcELIN2_iefmin); + assign_map.emplace("ExcELIN2.k1", &assign_ExcELIN2_k1); + assign_map.emplace("ExcELIN2.k1ec", &assign_ExcELIN2_k1ec); + assign_map.emplace("ExcELIN2.k2", &assign_ExcELIN2_k2); + assign_map.emplace("ExcELIN2.k3", &assign_ExcELIN2_k3); + assign_map.emplace("ExcELIN2.k4", &assign_ExcELIN2_k4); + assign_map.emplace("ExcELIN2.kd1", &assign_ExcELIN2_kd1); + assign_map.emplace("ExcELIN2.ke2", &assign_ExcELIN2_ke2); + assign_map.emplace("ExcELIN2.ketb", &assign_ExcELIN2_ketb); + assign_map.emplace("ExcELIN2.pid1max", &assign_ExcELIN2_pid1max); + assign_map.emplace("ExcELIN2.seve1", &assign_ExcELIN2_seve1); + assign_map.emplace("ExcELIN2.seve2", &assign_ExcELIN2_seve2); + assign_map.emplace("ExcELIN2.tb1", &assign_ExcELIN2_tb1); + assign_map.emplace("ExcELIN2.te", &assign_ExcELIN2_te); + assign_map.emplace("ExcELIN2.te2", &assign_ExcELIN2_te2); + assign_map.emplace("ExcELIN2.ti1", &assign_ExcELIN2_ti1); + assign_map.emplace("ExcELIN2.ti3", &assign_ExcELIN2_ti3); + assign_map.emplace("ExcELIN2.ti4", &assign_ExcELIN2_ti4); + assign_map.emplace("ExcELIN2.tr4", &assign_ExcELIN2_tr4); + assign_map.emplace("ExcELIN2.upmax", &assign_ExcELIN2_upmax); + assign_map.emplace("ExcELIN2.upmin", &assign_ExcELIN2_upmin); + assign_map.emplace("ExcELIN2.ve1", &assign_ExcELIN2_ve1); + assign_map.emplace("ExcELIN2.ve2", &assign_ExcELIN2_ve2); + assign_map.emplace("ExcELIN2.xp", &assign_ExcELIN2_xp); } void ExcELIN2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,33 +929,33 @@ void ExcELIN2::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcELIN2.efdbas", &get_ExcELIN2_efdbas); - get_map.emplace("cim:ExcELIN2.iefmax", &get_ExcELIN2_iefmax); - get_map.emplace("cim:ExcELIN2.iefmax2", &get_ExcELIN2_iefmax2); - get_map.emplace("cim:ExcELIN2.iefmin", &get_ExcELIN2_iefmin); - get_map.emplace("cim:ExcELIN2.k1", &get_ExcELIN2_k1); - get_map.emplace("cim:ExcELIN2.k1ec", &get_ExcELIN2_k1ec); - get_map.emplace("cim:ExcELIN2.k2", &get_ExcELIN2_k2); - get_map.emplace("cim:ExcELIN2.k3", &get_ExcELIN2_k3); - get_map.emplace("cim:ExcELIN2.k4", &get_ExcELIN2_k4); - get_map.emplace("cim:ExcELIN2.kd1", &get_ExcELIN2_kd1); - get_map.emplace("cim:ExcELIN2.ke2", &get_ExcELIN2_ke2); - get_map.emplace("cim:ExcELIN2.ketb", &get_ExcELIN2_ketb); - get_map.emplace("cim:ExcELIN2.pid1max", &get_ExcELIN2_pid1max); - get_map.emplace("cim:ExcELIN2.seve1", &get_ExcELIN2_seve1); - get_map.emplace("cim:ExcELIN2.seve2", &get_ExcELIN2_seve2); - get_map.emplace("cim:ExcELIN2.tb1", &get_ExcELIN2_tb1); - get_map.emplace("cim:ExcELIN2.te", &get_ExcELIN2_te); - get_map.emplace("cim:ExcELIN2.te2", &get_ExcELIN2_te2); - get_map.emplace("cim:ExcELIN2.ti1", &get_ExcELIN2_ti1); - get_map.emplace("cim:ExcELIN2.ti3", &get_ExcELIN2_ti3); - get_map.emplace("cim:ExcELIN2.ti4", &get_ExcELIN2_ti4); - get_map.emplace("cim:ExcELIN2.tr4", &get_ExcELIN2_tr4); - get_map.emplace("cim:ExcELIN2.upmax", &get_ExcELIN2_upmax); - get_map.emplace("cim:ExcELIN2.upmin", &get_ExcELIN2_upmin); - get_map.emplace("cim:ExcELIN2.ve1", &get_ExcELIN2_ve1); - get_map.emplace("cim:ExcELIN2.ve2", &get_ExcELIN2_ve2); - get_map.emplace("cim:ExcELIN2.xp", &get_ExcELIN2_xp); + get_map.emplace("ExcELIN2.efdbas", &get_ExcELIN2_efdbas); + get_map.emplace("ExcELIN2.iefmax", &get_ExcELIN2_iefmax); + get_map.emplace("ExcELIN2.iefmax2", &get_ExcELIN2_iefmax2); + get_map.emplace("ExcELIN2.iefmin", &get_ExcELIN2_iefmin); + get_map.emplace("ExcELIN2.k1", &get_ExcELIN2_k1); + get_map.emplace("ExcELIN2.k1ec", &get_ExcELIN2_k1ec); + get_map.emplace("ExcELIN2.k2", &get_ExcELIN2_k2); + get_map.emplace("ExcELIN2.k3", &get_ExcELIN2_k3); + get_map.emplace("ExcELIN2.k4", &get_ExcELIN2_k4); + get_map.emplace("ExcELIN2.kd1", &get_ExcELIN2_kd1); + get_map.emplace("ExcELIN2.ke2", &get_ExcELIN2_ke2); + get_map.emplace("ExcELIN2.ketb", &get_ExcELIN2_ketb); + get_map.emplace("ExcELIN2.pid1max", &get_ExcELIN2_pid1max); + get_map.emplace("ExcELIN2.seve1", &get_ExcELIN2_seve1); + get_map.emplace("ExcELIN2.seve2", &get_ExcELIN2_seve2); + get_map.emplace("ExcELIN2.tb1", &get_ExcELIN2_tb1); + get_map.emplace("ExcELIN2.te", &get_ExcELIN2_te); + get_map.emplace("ExcELIN2.te2", &get_ExcELIN2_te2); + get_map.emplace("ExcELIN2.ti1", &get_ExcELIN2_ti1); + get_map.emplace("ExcELIN2.ti3", &get_ExcELIN2_ti3); + get_map.emplace("ExcELIN2.ti4", &get_ExcELIN2_ti4); + get_map.emplace("ExcELIN2.tr4", &get_ExcELIN2_tr4); + get_map.emplace("ExcELIN2.upmax", &get_ExcELIN2_upmax); + get_map.emplace("ExcELIN2.upmin", &get_ExcELIN2_upmin); + get_map.emplace("ExcELIN2.ve1", &get_ExcELIN2_ve1); + get_map.emplace("ExcELIN2.ve2", &get_ExcELIN2_ve2); + get_map.emplace("ExcELIN2.xp", &get_ExcELIN2_xp); } void ExcELIN2::addClassGetFnsToMap(std::map& get_map) const @@ -936,11 +968,25 @@ void ExcELIN2::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcELIN2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcELIN2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcELIN2::declare() { return BaseClassDefiner(ExcELIN2::addConstructToMap, ExcELIN2::addPrimitiveAssignFnsToMap, ExcELIN2::addClassAssignFnsToMap, ExcELIN2::debugName); } +std::map ExcELIN2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcELIN2_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcELIN2.hpp b/CGMES_2.4.13_18DEC2013/ExcELIN2.hpp index b68685963..91d08a67e 100644 --- a/CGMES_2.4.13_18DEC2013/ExcELIN2.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcELIN2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -110,8 +111,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -119,7 +127,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcELIN2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcHU.cpp b/CGMES_2.4.13_18DEC2013/ExcHU.cpp index d00bf89d8..00ef6e590 100644 --- a/CGMES_2.4.13_18DEC2013/ExcHU.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcHU.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcHU(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcHU.ae", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ai", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.atr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.imax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.imin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcHU::ExcHU() {} ExcHU::~ExcHU() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcHU::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcHU::getClassNamespaceUrl() const { - { "cim:ExcHU.ae", { CGMESProfile::DY, } }, - { "cim:ExcHU.ai", { CGMESProfile::DY, } }, - { "cim:ExcHU.atr", { CGMESProfile::DY, } }, - { "cim:ExcHU.emax", { CGMESProfile::DY, } }, - { "cim:ExcHU.emin", { CGMESProfile::DY, } }, - { "cim:ExcHU.imax", { CGMESProfile::DY, } }, - { "cim:ExcHU.imin", { CGMESProfile::DY, } }, - { "cim:ExcHU.ke", { CGMESProfile::DY, } }, - { "cim:ExcHU.ki", { CGMESProfile::DY, } }, - { "cim:ExcHU.te", { CGMESProfile::DY, } }, - { "cim:ExcHU.ti", { CGMESProfile::DY, } }, - { "cim:ExcHU.tr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcHU::getPossibleProfilesForClass() const +const std::string& ExcHU::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcHU::getPossibleProfilesForAttributes() const +const std::list& ExcHU::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcHU::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcHU::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcHU::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcHU_ae(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcHU::debugString() const void ExcHU::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcHU", &ExcHU_factory); + factory_map.emplace("ExcHU", &ExcHU_factory); } void ExcHU::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcHU.ae", &assign_ExcHU_ae); - assign_map.emplace("cim:ExcHU.ai", &assign_ExcHU_ai); - assign_map.emplace("cim:ExcHU.atr", &assign_ExcHU_atr); - assign_map.emplace("cim:ExcHU.emax", &assign_ExcHU_emax); - assign_map.emplace("cim:ExcHU.emin", &assign_ExcHU_emin); - assign_map.emplace("cim:ExcHU.imax", &assign_ExcHU_imax); - assign_map.emplace("cim:ExcHU.imin", &assign_ExcHU_imin); - assign_map.emplace("cim:ExcHU.ke", &assign_ExcHU_ke); - assign_map.emplace("cim:ExcHU.ki", &assign_ExcHU_ki); - assign_map.emplace("cim:ExcHU.te", &assign_ExcHU_te); - assign_map.emplace("cim:ExcHU.ti", &assign_ExcHU_ti); - assign_map.emplace("cim:ExcHU.tr", &assign_ExcHU_tr); + assign_map.emplace("ExcHU.ae", &assign_ExcHU_ae); + assign_map.emplace("ExcHU.ai", &assign_ExcHU_ai); + assign_map.emplace("ExcHU.atr", &assign_ExcHU_atr); + assign_map.emplace("ExcHU.emax", &assign_ExcHU_emax); + assign_map.emplace("ExcHU.emin", &assign_ExcHU_emin); + assign_map.emplace("ExcHU.imax", &assign_ExcHU_imax); + assign_map.emplace("ExcHU.imin", &assign_ExcHU_imin); + assign_map.emplace("ExcHU.ke", &assign_ExcHU_ke); + assign_map.emplace("ExcHU.ki", &assign_ExcHU_ki); + assign_map.emplace("ExcHU.te", &assign_ExcHU_te); + assign_map.emplace("ExcHU.ti", &assign_ExcHU_ti); + assign_map.emplace("ExcHU.tr", &assign_ExcHU_tr); } void ExcHU::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcHU::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcHU.ae", &get_ExcHU_ae); - get_map.emplace("cim:ExcHU.ai", &get_ExcHU_ai); - get_map.emplace("cim:ExcHU.atr", &get_ExcHU_atr); - get_map.emplace("cim:ExcHU.emax", &get_ExcHU_emax); - get_map.emplace("cim:ExcHU.emin", &get_ExcHU_emin); - get_map.emplace("cim:ExcHU.imax", &get_ExcHU_imax); - get_map.emplace("cim:ExcHU.imin", &get_ExcHU_imin); - get_map.emplace("cim:ExcHU.ke", &get_ExcHU_ke); - get_map.emplace("cim:ExcHU.ki", &get_ExcHU_ki); - get_map.emplace("cim:ExcHU.te", &get_ExcHU_te); - get_map.emplace("cim:ExcHU.ti", &get_ExcHU_ti); - get_map.emplace("cim:ExcHU.tr", &get_ExcHU_tr); + get_map.emplace("ExcHU.ae", &get_ExcHU_ae); + get_map.emplace("ExcHU.ai", &get_ExcHU_ai); + get_map.emplace("ExcHU.atr", &get_ExcHU_atr); + get_map.emplace("ExcHU.emax", &get_ExcHU_emax); + get_map.emplace("ExcHU.emin", &get_ExcHU_emin); + get_map.emplace("ExcHU.imax", &get_ExcHU_imax); + get_map.emplace("ExcHU.imin", &get_ExcHU_imin); + get_map.emplace("ExcHU.ke", &get_ExcHU_ke); + get_map.emplace("ExcHU.ki", &get_ExcHU_ki); + get_map.emplace("ExcHU.te", &get_ExcHU_te); + get_map.emplace("ExcHU.ti", &get_ExcHU_ti); + get_map.emplace("ExcHU.tr", &get_ExcHU_tr); } void ExcHU::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcHU::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcHU::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcHU" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcHU::declare() { return BaseClassDefiner(ExcHU::addConstructToMap, ExcHU::addPrimitiveAssignFnsToMap, ExcHU::addClassAssignFnsToMap, ExcHU::debugName); } +std::map ExcHU::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcHU_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcHU.hpp b/CGMES_2.4.13_18DEC2013/ExcHU.hpp index 6e31eb84e..4f79f01b5 100644 --- a/CGMES_2.4.13_18DEC2013/ExcHU.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcHU.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcHU_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.cpp index 9b4889e3d..84179ef44 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC1A::ExcIEEEAC1A() {} ExcIEEEAC1A::~ExcIEEEAC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC1A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC1A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC1A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC1A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcIEEEAC1A::debugString() const void ExcIEEEAC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC1A", &ExcIEEEAC1A_factory); + factory_map.emplace("ExcIEEEAC1A", &ExcIEEEAC1A_factory); } void ExcIEEEAC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC1A.ka", &assign_ExcIEEEAC1A_ka); - assign_map.emplace("cim:ExcIEEEAC1A.kc", &assign_ExcIEEEAC1A_kc); - assign_map.emplace("cim:ExcIEEEAC1A.kd", &assign_ExcIEEEAC1A_kd); - assign_map.emplace("cim:ExcIEEEAC1A.ke", &assign_ExcIEEEAC1A_ke); - assign_map.emplace("cim:ExcIEEEAC1A.kf", &assign_ExcIEEEAC1A_kf); - assign_map.emplace("cim:ExcIEEEAC1A.seve1", &assign_ExcIEEEAC1A_seve1); - assign_map.emplace("cim:ExcIEEEAC1A.seve2", &assign_ExcIEEEAC1A_seve2); - assign_map.emplace("cim:ExcIEEEAC1A.ta", &assign_ExcIEEEAC1A_ta); - assign_map.emplace("cim:ExcIEEEAC1A.tb", &assign_ExcIEEEAC1A_tb); - assign_map.emplace("cim:ExcIEEEAC1A.tc", &assign_ExcIEEEAC1A_tc); - assign_map.emplace("cim:ExcIEEEAC1A.te", &assign_ExcIEEEAC1A_te); - assign_map.emplace("cim:ExcIEEEAC1A.tf", &assign_ExcIEEEAC1A_tf); - assign_map.emplace("cim:ExcIEEEAC1A.vamax", &assign_ExcIEEEAC1A_vamax); - assign_map.emplace("cim:ExcIEEEAC1A.vamin", &assign_ExcIEEEAC1A_vamin); - assign_map.emplace("cim:ExcIEEEAC1A.ve1", &assign_ExcIEEEAC1A_ve1); - assign_map.emplace("cim:ExcIEEEAC1A.ve2", &assign_ExcIEEEAC1A_ve2); - assign_map.emplace("cim:ExcIEEEAC1A.vrmax", &assign_ExcIEEEAC1A_vrmax); - assign_map.emplace("cim:ExcIEEEAC1A.vrmin", &assign_ExcIEEEAC1A_vrmin); + assign_map.emplace("ExcIEEEAC1A.ka", &assign_ExcIEEEAC1A_ka); + assign_map.emplace("ExcIEEEAC1A.kc", &assign_ExcIEEEAC1A_kc); + assign_map.emplace("ExcIEEEAC1A.kd", &assign_ExcIEEEAC1A_kd); + assign_map.emplace("ExcIEEEAC1A.ke", &assign_ExcIEEEAC1A_ke); + assign_map.emplace("ExcIEEEAC1A.kf", &assign_ExcIEEEAC1A_kf); + assign_map.emplace("ExcIEEEAC1A.seve1", &assign_ExcIEEEAC1A_seve1); + assign_map.emplace("ExcIEEEAC1A.seve2", &assign_ExcIEEEAC1A_seve2); + assign_map.emplace("ExcIEEEAC1A.ta", &assign_ExcIEEEAC1A_ta); + assign_map.emplace("ExcIEEEAC1A.tb", &assign_ExcIEEEAC1A_tb); + assign_map.emplace("ExcIEEEAC1A.tc", &assign_ExcIEEEAC1A_tc); + assign_map.emplace("ExcIEEEAC1A.te", &assign_ExcIEEEAC1A_te); + assign_map.emplace("ExcIEEEAC1A.tf", &assign_ExcIEEEAC1A_tf); + assign_map.emplace("ExcIEEEAC1A.vamax", &assign_ExcIEEEAC1A_vamax); + assign_map.emplace("ExcIEEEAC1A.vamin", &assign_ExcIEEEAC1A_vamin); + assign_map.emplace("ExcIEEEAC1A.ve1", &assign_ExcIEEEAC1A_ve1); + assign_map.emplace("ExcIEEEAC1A.ve2", &assign_ExcIEEEAC1A_ve2); + assign_map.emplace("ExcIEEEAC1A.vrmax", &assign_ExcIEEEAC1A_vrmax); + assign_map.emplace("ExcIEEEAC1A.vrmin", &assign_ExcIEEEAC1A_vrmin); } void ExcIEEEAC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcIEEEAC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC1A.ka", &get_ExcIEEEAC1A_ka); - get_map.emplace("cim:ExcIEEEAC1A.kc", &get_ExcIEEEAC1A_kc); - get_map.emplace("cim:ExcIEEEAC1A.kd", &get_ExcIEEEAC1A_kd); - get_map.emplace("cim:ExcIEEEAC1A.ke", &get_ExcIEEEAC1A_ke); - get_map.emplace("cim:ExcIEEEAC1A.kf", &get_ExcIEEEAC1A_kf); - get_map.emplace("cim:ExcIEEEAC1A.seve1", &get_ExcIEEEAC1A_seve1); - get_map.emplace("cim:ExcIEEEAC1A.seve2", &get_ExcIEEEAC1A_seve2); - get_map.emplace("cim:ExcIEEEAC1A.ta", &get_ExcIEEEAC1A_ta); - get_map.emplace("cim:ExcIEEEAC1A.tb", &get_ExcIEEEAC1A_tb); - get_map.emplace("cim:ExcIEEEAC1A.tc", &get_ExcIEEEAC1A_tc); - get_map.emplace("cim:ExcIEEEAC1A.te", &get_ExcIEEEAC1A_te); - get_map.emplace("cim:ExcIEEEAC1A.tf", &get_ExcIEEEAC1A_tf); - get_map.emplace("cim:ExcIEEEAC1A.vamax", &get_ExcIEEEAC1A_vamax); - get_map.emplace("cim:ExcIEEEAC1A.vamin", &get_ExcIEEEAC1A_vamin); - get_map.emplace("cim:ExcIEEEAC1A.ve1", &get_ExcIEEEAC1A_ve1); - get_map.emplace("cim:ExcIEEEAC1A.ve2", &get_ExcIEEEAC1A_ve2); - get_map.emplace("cim:ExcIEEEAC1A.vrmax", &get_ExcIEEEAC1A_vrmax); - get_map.emplace("cim:ExcIEEEAC1A.vrmin", &get_ExcIEEEAC1A_vrmin); + get_map.emplace("ExcIEEEAC1A.ka", &get_ExcIEEEAC1A_ka); + get_map.emplace("ExcIEEEAC1A.kc", &get_ExcIEEEAC1A_kc); + get_map.emplace("ExcIEEEAC1A.kd", &get_ExcIEEEAC1A_kd); + get_map.emplace("ExcIEEEAC1A.ke", &get_ExcIEEEAC1A_ke); + get_map.emplace("ExcIEEEAC1A.kf", &get_ExcIEEEAC1A_kf); + get_map.emplace("ExcIEEEAC1A.seve1", &get_ExcIEEEAC1A_seve1); + get_map.emplace("ExcIEEEAC1A.seve2", &get_ExcIEEEAC1A_seve2); + get_map.emplace("ExcIEEEAC1A.ta", &get_ExcIEEEAC1A_ta); + get_map.emplace("ExcIEEEAC1A.tb", &get_ExcIEEEAC1A_tb); + get_map.emplace("ExcIEEEAC1A.tc", &get_ExcIEEEAC1A_tc); + get_map.emplace("ExcIEEEAC1A.te", &get_ExcIEEEAC1A_te); + get_map.emplace("ExcIEEEAC1A.tf", &get_ExcIEEEAC1A_tf); + get_map.emplace("ExcIEEEAC1A.vamax", &get_ExcIEEEAC1A_vamax); + get_map.emplace("ExcIEEEAC1A.vamin", &get_ExcIEEEAC1A_vamin); + get_map.emplace("ExcIEEEAC1A.ve1", &get_ExcIEEEAC1A_ve1); + get_map.emplace("ExcIEEEAC1A.ve2", &get_ExcIEEEAC1A_ve2); + get_map.emplace("ExcIEEEAC1A.vrmax", &get_ExcIEEEAC1A_vrmax); + get_map.emplace("ExcIEEEAC1A.vrmin", &get_ExcIEEEAC1A_vrmin); } void ExcIEEEAC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcIEEEAC1A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC1A::declare() { return BaseClassDefiner(ExcIEEEAC1A::addConstructToMap, ExcIEEEAC1A::addPrimitiveAssignFnsToMap, ExcIEEEAC1A::addClassAssignFnsToMap, ExcIEEEAC1A::debugName); } +std::map ExcIEEEAC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.hpp index a3d32c72f..029fa51b8 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.cpp index a6f4da576..5531f988c 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC2A::ExcIEEEAC2A() {} ExcIEEEAC2A::~ExcIEEEAC2A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC2A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC2A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC2A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC2A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC2A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC2A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC2A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcIEEEAC2A::debugString() const void ExcIEEEAC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC2A", &ExcIEEEAC2A_factory); + factory_map.emplace("ExcIEEEAC2A", &ExcIEEEAC2A_factory); } void ExcIEEEAC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC2A.ka", &assign_ExcIEEEAC2A_ka); - assign_map.emplace("cim:ExcIEEEAC2A.kb", &assign_ExcIEEEAC2A_kb); - assign_map.emplace("cim:ExcIEEEAC2A.kc", &assign_ExcIEEEAC2A_kc); - assign_map.emplace("cim:ExcIEEEAC2A.kd", &assign_ExcIEEEAC2A_kd); - assign_map.emplace("cim:ExcIEEEAC2A.ke", &assign_ExcIEEEAC2A_ke); - assign_map.emplace("cim:ExcIEEEAC2A.kf", &assign_ExcIEEEAC2A_kf); - assign_map.emplace("cim:ExcIEEEAC2A.kh", &assign_ExcIEEEAC2A_kh); - assign_map.emplace("cim:ExcIEEEAC2A.seve1", &assign_ExcIEEEAC2A_seve1); - assign_map.emplace("cim:ExcIEEEAC2A.seve2", &assign_ExcIEEEAC2A_seve2); - assign_map.emplace("cim:ExcIEEEAC2A.ta", &assign_ExcIEEEAC2A_ta); - assign_map.emplace("cim:ExcIEEEAC2A.tb", &assign_ExcIEEEAC2A_tb); - assign_map.emplace("cim:ExcIEEEAC2A.tc", &assign_ExcIEEEAC2A_tc); - assign_map.emplace("cim:ExcIEEEAC2A.te", &assign_ExcIEEEAC2A_te); - assign_map.emplace("cim:ExcIEEEAC2A.tf", &assign_ExcIEEEAC2A_tf); - assign_map.emplace("cim:ExcIEEEAC2A.vamax", &assign_ExcIEEEAC2A_vamax); - assign_map.emplace("cim:ExcIEEEAC2A.vamin", &assign_ExcIEEEAC2A_vamin); - assign_map.emplace("cim:ExcIEEEAC2A.ve1", &assign_ExcIEEEAC2A_ve1); - assign_map.emplace("cim:ExcIEEEAC2A.ve2", &assign_ExcIEEEAC2A_ve2); - assign_map.emplace("cim:ExcIEEEAC2A.vfemax", &assign_ExcIEEEAC2A_vfemax); - assign_map.emplace("cim:ExcIEEEAC2A.vrmax", &assign_ExcIEEEAC2A_vrmax); - assign_map.emplace("cim:ExcIEEEAC2A.vrmin", &assign_ExcIEEEAC2A_vrmin); + assign_map.emplace("ExcIEEEAC2A.ka", &assign_ExcIEEEAC2A_ka); + assign_map.emplace("ExcIEEEAC2A.kb", &assign_ExcIEEEAC2A_kb); + assign_map.emplace("ExcIEEEAC2A.kc", &assign_ExcIEEEAC2A_kc); + assign_map.emplace("ExcIEEEAC2A.kd", &assign_ExcIEEEAC2A_kd); + assign_map.emplace("ExcIEEEAC2A.ke", &assign_ExcIEEEAC2A_ke); + assign_map.emplace("ExcIEEEAC2A.kf", &assign_ExcIEEEAC2A_kf); + assign_map.emplace("ExcIEEEAC2A.kh", &assign_ExcIEEEAC2A_kh); + assign_map.emplace("ExcIEEEAC2A.seve1", &assign_ExcIEEEAC2A_seve1); + assign_map.emplace("ExcIEEEAC2A.seve2", &assign_ExcIEEEAC2A_seve2); + assign_map.emplace("ExcIEEEAC2A.ta", &assign_ExcIEEEAC2A_ta); + assign_map.emplace("ExcIEEEAC2A.tb", &assign_ExcIEEEAC2A_tb); + assign_map.emplace("ExcIEEEAC2A.tc", &assign_ExcIEEEAC2A_tc); + assign_map.emplace("ExcIEEEAC2A.te", &assign_ExcIEEEAC2A_te); + assign_map.emplace("ExcIEEEAC2A.tf", &assign_ExcIEEEAC2A_tf); + assign_map.emplace("ExcIEEEAC2A.vamax", &assign_ExcIEEEAC2A_vamax); + assign_map.emplace("ExcIEEEAC2A.vamin", &assign_ExcIEEEAC2A_vamin); + assign_map.emplace("ExcIEEEAC2A.ve1", &assign_ExcIEEEAC2A_ve1); + assign_map.emplace("ExcIEEEAC2A.ve2", &assign_ExcIEEEAC2A_ve2); + assign_map.emplace("ExcIEEEAC2A.vfemax", &assign_ExcIEEEAC2A_vfemax); + assign_map.emplace("ExcIEEEAC2A.vrmax", &assign_ExcIEEEAC2A_vrmax); + assign_map.emplace("ExcIEEEAC2A.vrmin", &assign_ExcIEEEAC2A_vrmin); } void ExcIEEEAC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcIEEEAC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC2A.ka", &get_ExcIEEEAC2A_ka); - get_map.emplace("cim:ExcIEEEAC2A.kb", &get_ExcIEEEAC2A_kb); - get_map.emplace("cim:ExcIEEEAC2A.kc", &get_ExcIEEEAC2A_kc); - get_map.emplace("cim:ExcIEEEAC2A.kd", &get_ExcIEEEAC2A_kd); - get_map.emplace("cim:ExcIEEEAC2A.ke", &get_ExcIEEEAC2A_ke); - get_map.emplace("cim:ExcIEEEAC2A.kf", &get_ExcIEEEAC2A_kf); - get_map.emplace("cim:ExcIEEEAC2A.kh", &get_ExcIEEEAC2A_kh); - get_map.emplace("cim:ExcIEEEAC2A.seve1", &get_ExcIEEEAC2A_seve1); - get_map.emplace("cim:ExcIEEEAC2A.seve2", &get_ExcIEEEAC2A_seve2); - get_map.emplace("cim:ExcIEEEAC2A.ta", &get_ExcIEEEAC2A_ta); - get_map.emplace("cim:ExcIEEEAC2A.tb", &get_ExcIEEEAC2A_tb); - get_map.emplace("cim:ExcIEEEAC2A.tc", &get_ExcIEEEAC2A_tc); - get_map.emplace("cim:ExcIEEEAC2A.te", &get_ExcIEEEAC2A_te); - get_map.emplace("cim:ExcIEEEAC2A.tf", &get_ExcIEEEAC2A_tf); - get_map.emplace("cim:ExcIEEEAC2A.vamax", &get_ExcIEEEAC2A_vamax); - get_map.emplace("cim:ExcIEEEAC2A.vamin", &get_ExcIEEEAC2A_vamin); - get_map.emplace("cim:ExcIEEEAC2A.ve1", &get_ExcIEEEAC2A_ve1); - get_map.emplace("cim:ExcIEEEAC2A.ve2", &get_ExcIEEEAC2A_ve2); - get_map.emplace("cim:ExcIEEEAC2A.vfemax", &get_ExcIEEEAC2A_vfemax); - get_map.emplace("cim:ExcIEEEAC2A.vrmax", &get_ExcIEEEAC2A_vrmax); - get_map.emplace("cim:ExcIEEEAC2A.vrmin", &get_ExcIEEEAC2A_vrmin); + get_map.emplace("ExcIEEEAC2A.ka", &get_ExcIEEEAC2A_ka); + get_map.emplace("ExcIEEEAC2A.kb", &get_ExcIEEEAC2A_kb); + get_map.emplace("ExcIEEEAC2A.kc", &get_ExcIEEEAC2A_kc); + get_map.emplace("ExcIEEEAC2A.kd", &get_ExcIEEEAC2A_kd); + get_map.emplace("ExcIEEEAC2A.ke", &get_ExcIEEEAC2A_ke); + get_map.emplace("ExcIEEEAC2A.kf", &get_ExcIEEEAC2A_kf); + get_map.emplace("ExcIEEEAC2A.kh", &get_ExcIEEEAC2A_kh); + get_map.emplace("ExcIEEEAC2A.seve1", &get_ExcIEEEAC2A_seve1); + get_map.emplace("ExcIEEEAC2A.seve2", &get_ExcIEEEAC2A_seve2); + get_map.emplace("ExcIEEEAC2A.ta", &get_ExcIEEEAC2A_ta); + get_map.emplace("ExcIEEEAC2A.tb", &get_ExcIEEEAC2A_tb); + get_map.emplace("ExcIEEEAC2A.tc", &get_ExcIEEEAC2A_tc); + get_map.emplace("ExcIEEEAC2A.te", &get_ExcIEEEAC2A_te); + get_map.emplace("ExcIEEEAC2A.tf", &get_ExcIEEEAC2A_tf); + get_map.emplace("ExcIEEEAC2A.vamax", &get_ExcIEEEAC2A_vamax); + get_map.emplace("ExcIEEEAC2A.vamin", &get_ExcIEEEAC2A_vamin); + get_map.emplace("ExcIEEEAC2A.ve1", &get_ExcIEEEAC2A_ve1); + get_map.emplace("ExcIEEEAC2A.ve2", &get_ExcIEEEAC2A_ve2); + get_map.emplace("ExcIEEEAC2A.vfemax", &get_ExcIEEEAC2A_vfemax); + get_map.emplace("ExcIEEEAC2A.vrmax", &get_ExcIEEEAC2A_vrmax); + get_map.emplace("ExcIEEEAC2A.vrmin", &get_ExcIEEEAC2A_vrmin); } void ExcIEEEAC2A::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcIEEEAC2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC2A::declare() { return BaseClassDefiner(ExcIEEEAC2A::addConstructToMap, ExcIEEEAC2A::addPrimitiveAssignFnsToMap, ExcIEEEAC2A::addClassAssignFnsToMap, ExcIEEEAC2A::debugName); } +std::map ExcIEEEAC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC2A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.hpp index 77dc89d3e..a0ba000b4 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC2A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.cpp index 50d701a41..c18672739 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC3A.efdn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.klv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vlv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC3A::ExcIEEEAC3A() {} ExcIEEEAC3A::~ExcIEEEAC3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC3A.efdn", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.klv", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kn", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vlv", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC3A_efdn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcIEEEAC3A::debugString() const void ExcIEEEAC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC3A", &ExcIEEEAC3A_factory); + factory_map.emplace("ExcIEEEAC3A", &ExcIEEEAC3A_factory); } void ExcIEEEAC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC3A.efdn", &assign_ExcIEEEAC3A_efdn); - assign_map.emplace("cim:ExcIEEEAC3A.ka", &assign_ExcIEEEAC3A_ka); - assign_map.emplace("cim:ExcIEEEAC3A.kc", &assign_ExcIEEEAC3A_kc); - assign_map.emplace("cim:ExcIEEEAC3A.kd", &assign_ExcIEEEAC3A_kd); - assign_map.emplace("cim:ExcIEEEAC3A.ke", &assign_ExcIEEEAC3A_ke); - assign_map.emplace("cim:ExcIEEEAC3A.kf", &assign_ExcIEEEAC3A_kf); - assign_map.emplace("cim:ExcIEEEAC3A.klv", &assign_ExcIEEEAC3A_klv); - assign_map.emplace("cim:ExcIEEEAC3A.kn", &assign_ExcIEEEAC3A_kn); - assign_map.emplace("cim:ExcIEEEAC3A.kr", &assign_ExcIEEEAC3A_kr); - assign_map.emplace("cim:ExcIEEEAC3A.seve1", &assign_ExcIEEEAC3A_seve1); - assign_map.emplace("cim:ExcIEEEAC3A.seve2", &assign_ExcIEEEAC3A_seve2); - assign_map.emplace("cim:ExcIEEEAC3A.ta", &assign_ExcIEEEAC3A_ta); - assign_map.emplace("cim:ExcIEEEAC3A.tb", &assign_ExcIEEEAC3A_tb); - assign_map.emplace("cim:ExcIEEEAC3A.tc", &assign_ExcIEEEAC3A_tc); - assign_map.emplace("cim:ExcIEEEAC3A.te", &assign_ExcIEEEAC3A_te); - assign_map.emplace("cim:ExcIEEEAC3A.tf", &assign_ExcIEEEAC3A_tf); - assign_map.emplace("cim:ExcIEEEAC3A.vamax", &assign_ExcIEEEAC3A_vamax); - assign_map.emplace("cim:ExcIEEEAC3A.vamin", &assign_ExcIEEEAC3A_vamin); - assign_map.emplace("cim:ExcIEEEAC3A.ve1", &assign_ExcIEEEAC3A_ve1); - assign_map.emplace("cim:ExcIEEEAC3A.ve2", &assign_ExcIEEEAC3A_ve2); - assign_map.emplace("cim:ExcIEEEAC3A.vemin", &assign_ExcIEEEAC3A_vemin); - assign_map.emplace("cim:ExcIEEEAC3A.vfemax", &assign_ExcIEEEAC3A_vfemax); - assign_map.emplace("cim:ExcIEEEAC3A.vlv", &assign_ExcIEEEAC3A_vlv); + assign_map.emplace("ExcIEEEAC3A.efdn", &assign_ExcIEEEAC3A_efdn); + assign_map.emplace("ExcIEEEAC3A.ka", &assign_ExcIEEEAC3A_ka); + assign_map.emplace("ExcIEEEAC3A.kc", &assign_ExcIEEEAC3A_kc); + assign_map.emplace("ExcIEEEAC3A.kd", &assign_ExcIEEEAC3A_kd); + assign_map.emplace("ExcIEEEAC3A.ke", &assign_ExcIEEEAC3A_ke); + assign_map.emplace("ExcIEEEAC3A.kf", &assign_ExcIEEEAC3A_kf); + assign_map.emplace("ExcIEEEAC3A.klv", &assign_ExcIEEEAC3A_klv); + assign_map.emplace("ExcIEEEAC3A.kn", &assign_ExcIEEEAC3A_kn); + assign_map.emplace("ExcIEEEAC3A.kr", &assign_ExcIEEEAC3A_kr); + assign_map.emplace("ExcIEEEAC3A.seve1", &assign_ExcIEEEAC3A_seve1); + assign_map.emplace("ExcIEEEAC3A.seve2", &assign_ExcIEEEAC3A_seve2); + assign_map.emplace("ExcIEEEAC3A.ta", &assign_ExcIEEEAC3A_ta); + assign_map.emplace("ExcIEEEAC3A.tb", &assign_ExcIEEEAC3A_tb); + assign_map.emplace("ExcIEEEAC3A.tc", &assign_ExcIEEEAC3A_tc); + assign_map.emplace("ExcIEEEAC3A.te", &assign_ExcIEEEAC3A_te); + assign_map.emplace("ExcIEEEAC3A.tf", &assign_ExcIEEEAC3A_tf); + assign_map.emplace("ExcIEEEAC3A.vamax", &assign_ExcIEEEAC3A_vamax); + assign_map.emplace("ExcIEEEAC3A.vamin", &assign_ExcIEEEAC3A_vamin); + assign_map.emplace("ExcIEEEAC3A.ve1", &assign_ExcIEEEAC3A_ve1); + assign_map.emplace("ExcIEEEAC3A.ve2", &assign_ExcIEEEAC3A_ve2); + assign_map.emplace("ExcIEEEAC3A.vemin", &assign_ExcIEEEAC3A_vemin); + assign_map.emplace("ExcIEEEAC3A.vfemax", &assign_ExcIEEEAC3A_vfemax); + assign_map.emplace("ExcIEEEAC3A.vlv", &assign_ExcIEEEAC3A_vlv); } void ExcIEEEAC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcIEEEAC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC3A.efdn", &get_ExcIEEEAC3A_efdn); - get_map.emplace("cim:ExcIEEEAC3A.ka", &get_ExcIEEEAC3A_ka); - get_map.emplace("cim:ExcIEEEAC3A.kc", &get_ExcIEEEAC3A_kc); - get_map.emplace("cim:ExcIEEEAC3A.kd", &get_ExcIEEEAC3A_kd); - get_map.emplace("cim:ExcIEEEAC3A.ke", &get_ExcIEEEAC3A_ke); - get_map.emplace("cim:ExcIEEEAC3A.kf", &get_ExcIEEEAC3A_kf); - get_map.emplace("cim:ExcIEEEAC3A.klv", &get_ExcIEEEAC3A_klv); - get_map.emplace("cim:ExcIEEEAC3A.kn", &get_ExcIEEEAC3A_kn); - get_map.emplace("cim:ExcIEEEAC3A.kr", &get_ExcIEEEAC3A_kr); - get_map.emplace("cim:ExcIEEEAC3A.seve1", &get_ExcIEEEAC3A_seve1); - get_map.emplace("cim:ExcIEEEAC3A.seve2", &get_ExcIEEEAC3A_seve2); - get_map.emplace("cim:ExcIEEEAC3A.ta", &get_ExcIEEEAC3A_ta); - get_map.emplace("cim:ExcIEEEAC3A.tb", &get_ExcIEEEAC3A_tb); - get_map.emplace("cim:ExcIEEEAC3A.tc", &get_ExcIEEEAC3A_tc); - get_map.emplace("cim:ExcIEEEAC3A.te", &get_ExcIEEEAC3A_te); - get_map.emplace("cim:ExcIEEEAC3A.tf", &get_ExcIEEEAC3A_tf); - get_map.emplace("cim:ExcIEEEAC3A.vamax", &get_ExcIEEEAC3A_vamax); - get_map.emplace("cim:ExcIEEEAC3A.vamin", &get_ExcIEEEAC3A_vamin); - get_map.emplace("cim:ExcIEEEAC3A.ve1", &get_ExcIEEEAC3A_ve1); - get_map.emplace("cim:ExcIEEEAC3A.ve2", &get_ExcIEEEAC3A_ve2); - get_map.emplace("cim:ExcIEEEAC3A.vemin", &get_ExcIEEEAC3A_vemin); - get_map.emplace("cim:ExcIEEEAC3A.vfemax", &get_ExcIEEEAC3A_vfemax); - get_map.emplace("cim:ExcIEEEAC3A.vlv", &get_ExcIEEEAC3A_vlv); + get_map.emplace("ExcIEEEAC3A.efdn", &get_ExcIEEEAC3A_efdn); + get_map.emplace("ExcIEEEAC3A.ka", &get_ExcIEEEAC3A_ka); + get_map.emplace("ExcIEEEAC3A.kc", &get_ExcIEEEAC3A_kc); + get_map.emplace("ExcIEEEAC3A.kd", &get_ExcIEEEAC3A_kd); + get_map.emplace("ExcIEEEAC3A.ke", &get_ExcIEEEAC3A_ke); + get_map.emplace("ExcIEEEAC3A.kf", &get_ExcIEEEAC3A_kf); + get_map.emplace("ExcIEEEAC3A.klv", &get_ExcIEEEAC3A_klv); + get_map.emplace("ExcIEEEAC3A.kn", &get_ExcIEEEAC3A_kn); + get_map.emplace("ExcIEEEAC3A.kr", &get_ExcIEEEAC3A_kr); + get_map.emplace("ExcIEEEAC3A.seve1", &get_ExcIEEEAC3A_seve1); + get_map.emplace("ExcIEEEAC3A.seve2", &get_ExcIEEEAC3A_seve2); + get_map.emplace("ExcIEEEAC3A.ta", &get_ExcIEEEAC3A_ta); + get_map.emplace("ExcIEEEAC3A.tb", &get_ExcIEEEAC3A_tb); + get_map.emplace("ExcIEEEAC3A.tc", &get_ExcIEEEAC3A_tc); + get_map.emplace("ExcIEEEAC3A.te", &get_ExcIEEEAC3A_te); + get_map.emplace("ExcIEEEAC3A.tf", &get_ExcIEEEAC3A_tf); + get_map.emplace("ExcIEEEAC3A.vamax", &get_ExcIEEEAC3A_vamax); + get_map.emplace("ExcIEEEAC3A.vamin", &get_ExcIEEEAC3A_vamin); + get_map.emplace("ExcIEEEAC3A.ve1", &get_ExcIEEEAC3A_ve1); + get_map.emplace("ExcIEEEAC3A.ve2", &get_ExcIEEEAC3A_ve2); + get_map.emplace("ExcIEEEAC3A.vemin", &get_ExcIEEEAC3A_vemin); + get_map.emplace("ExcIEEEAC3A.vfemax", &get_ExcIEEEAC3A_vfemax); + get_map.emplace("ExcIEEEAC3A.vlv", &get_ExcIEEEAC3A_vlv); } void ExcIEEEAC3A::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcIEEEAC3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC3A::declare() { return BaseClassDefiner(ExcIEEEAC3A::addConstructToMap, ExcIEEEAC3A::addPrimitiveAssignFnsToMap, ExcIEEEAC3A::addClassAssignFnsToMap, ExcIEEEAC3A::debugName); } +std::map ExcIEEEAC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC3A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.hpp index c8a67fb32..b953f52b9 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -99,8 +100,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -108,7 +116,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC3A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.cpp index e1510a699..2e727b4c8 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC4A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC4A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC4A::ExcIEEEAC4A() {} ExcIEEEAC4A::~ExcIEEEAC4A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC4A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC4A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC4A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC4A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC4A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC4A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC4A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC4A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC4A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC4A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC4A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ExcIEEEAC4A::debugString() const void ExcIEEEAC4A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC4A", &ExcIEEEAC4A_factory); + factory_map.emplace("ExcIEEEAC4A", &ExcIEEEAC4A_factory); } void ExcIEEEAC4A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC4A.ka", &assign_ExcIEEEAC4A_ka); - assign_map.emplace("cim:ExcIEEEAC4A.kc", &assign_ExcIEEEAC4A_kc); - assign_map.emplace("cim:ExcIEEEAC4A.ta", &assign_ExcIEEEAC4A_ta); - assign_map.emplace("cim:ExcIEEEAC4A.tb", &assign_ExcIEEEAC4A_tb); - assign_map.emplace("cim:ExcIEEEAC4A.tc", &assign_ExcIEEEAC4A_tc); - assign_map.emplace("cim:ExcIEEEAC4A.vimax", &assign_ExcIEEEAC4A_vimax); - assign_map.emplace("cim:ExcIEEEAC4A.vimin", &assign_ExcIEEEAC4A_vimin); - assign_map.emplace("cim:ExcIEEEAC4A.vrmax", &assign_ExcIEEEAC4A_vrmax); - assign_map.emplace("cim:ExcIEEEAC4A.vrmin", &assign_ExcIEEEAC4A_vrmin); + assign_map.emplace("ExcIEEEAC4A.ka", &assign_ExcIEEEAC4A_ka); + assign_map.emplace("ExcIEEEAC4A.kc", &assign_ExcIEEEAC4A_kc); + assign_map.emplace("ExcIEEEAC4A.ta", &assign_ExcIEEEAC4A_ta); + assign_map.emplace("ExcIEEEAC4A.tb", &assign_ExcIEEEAC4A_tb); + assign_map.emplace("ExcIEEEAC4A.tc", &assign_ExcIEEEAC4A_tc); + assign_map.emplace("ExcIEEEAC4A.vimax", &assign_ExcIEEEAC4A_vimax); + assign_map.emplace("ExcIEEEAC4A.vimin", &assign_ExcIEEEAC4A_vimin); + assign_map.emplace("ExcIEEEAC4A.vrmax", &assign_ExcIEEEAC4A_vrmax); + assign_map.emplace("ExcIEEEAC4A.vrmin", &assign_ExcIEEEAC4A_vrmin); } void ExcIEEEAC4A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ExcIEEEAC4A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC4A.ka", &get_ExcIEEEAC4A_ka); - get_map.emplace("cim:ExcIEEEAC4A.kc", &get_ExcIEEEAC4A_kc); - get_map.emplace("cim:ExcIEEEAC4A.ta", &get_ExcIEEEAC4A_ta); - get_map.emplace("cim:ExcIEEEAC4A.tb", &get_ExcIEEEAC4A_tb); - get_map.emplace("cim:ExcIEEEAC4A.tc", &get_ExcIEEEAC4A_tc); - get_map.emplace("cim:ExcIEEEAC4A.vimax", &get_ExcIEEEAC4A_vimax); - get_map.emplace("cim:ExcIEEEAC4A.vimin", &get_ExcIEEEAC4A_vimin); - get_map.emplace("cim:ExcIEEEAC4A.vrmax", &get_ExcIEEEAC4A_vrmax); - get_map.emplace("cim:ExcIEEEAC4A.vrmin", &get_ExcIEEEAC4A_vrmin); + get_map.emplace("ExcIEEEAC4A.ka", &get_ExcIEEEAC4A_ka); + get_map.emplace("ExcIEEEAC4A.kc", &get_ExcIEEEAC4A_kc); + get_map.emplace("ExcIEEEAC4A.ta", &get_ExcIEEEAC4A_ta); + get_map.emplace("ExcIEEEAC4A.tb", &get_ExcIEEEAC4A_tb); + get_map.emplace("ExcIEEEAC4A.tc", &get_ExcIEEEAC4A_tc); + get_map.emplace("ExcIEEEAC4A.vimax", &get_ExcIEEEAC4A_vimax); + get_map.emplace("ExcIEEEAC4A.vimin", &get_ExcIEEEAC4A_vimin); + get_map.emplace("ExcIEEEAC4A.vrmax", &get_ExcIEEEAC4A_vrmax); + get_map.emplace("ExcIEEEAC4A.vrmin", &get_ExcIEEEAC4A_vrmin); } void ExcIEEEAC4A::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ExcIEEEAC4A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC4A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC4A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC4A::declare() { return BaseClassDefiner(ExcIEEEAC4A::addConstructToMap, ExcIEEEAC4A::addPrimitiveAssignFnsToMap, ExcIEEEAC4A::addClassAssignFnsToMap, ExcIEEEAC4A::debugName); } +std::map ExcIEEEAC4A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC4A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.hpp index afdfb2fe2..0c7b02701 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC4A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC4A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.cpp index 8187407bd..7a19c674b 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC5A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC5A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC5A::ExcIEEEAC5A() {} ExcIEEEAC5A::~ExcIEEEAC5A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC5A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC5A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC5A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf3", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC5A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC5A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC5A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC5A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC5A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC5A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC5A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC5A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcIEEEAC5A::debugString() const void ExcIEEEAC5A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC5A", &ExcIEEEAC5A_factory); + factory_map.emplace("ExcIEEEAC5A", &ExcIEEEAC5A_factory); } void ExcIEEEAC5A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC5A.efd1", &assign_ExcIEEEAC5A_efd1); - assign_map.emplace("cim:ExcIEEEAC5A.efd2", &assign_ExcIEEEAC5A_efd2); - assign_map.emplace("cim:ExcIEEEAC5A.ka", &assign_ExcIEEEAC5A_ka); - assign_map.emplace("cim:ExcIEEEAC5A.ke", &assign_ExcIEEEAC5A_ke); - assign_map.emplace("cim:ExcIEEEAC5A.kf", &assign_ExcIEEEAC5A_kf); - assign_map.emplace("cim:ExcIEEEAC5A.seefd1", &assign_ExcIEEEAC5A_seefd1); - assign_map.emplace("cim:ExcIEEEAC5A.seefd2", &assign_ExcIEEEAC5A_seefd2); - assign_map.emplace("cim:ExcIEEEAC5A.ta", &assign_ExcIEEEAC5A_ta); - assign_map.emplace("cim:ExcIEEEAC5A.te", &assign_ExcIEEEAC5A_te); - assign_map.emplace("cim:ExcIEEEAC5A.tf1", &assign_ExcIEEEAC5A_tf1); - assign_map.emplace("cim:ExcIEEEAC5A.tf2", &assign_ExcIEEEAC5A_tf2); - assign_map.emplace("cim:ExcIEEEAC5A.tf3", &assign_ExcIEEEAC5A_tf3); - assign_map.emplace("cim:ExcIEEEAC5A.vrmax", &assign_ExcIEEEAC5A_vrmax); - assign_map.emplace("cim:ExcIEEEAC5A.vrmin", &assign_ExcIEEEAC5A_vrmin); + assign_map.emplace("ExcIEEEAC5A.efd1", &assign_ExcIEEEAC5A_efd1); + assign_map.emplace("ExcIEEEAC5A.efd2", &assign_ExcIEEEAC5A_efd2); + assign_map.emplace("ExcIEEEAC5A.ka", &assign_ExcIEEEAC5A_ka); + assign_map.emplace("ExcIEEEAC5A.ke", &assign_ExcIEEEAC5A_ke); + assign_map.emplace("ExcIEEEAC5A.kf", &assign_ExcIEEEAC5A_kf); + assign_map.emplace("ExcIEEEAC5A.seefd1", &assign_ExcIEEEAC5A_seefd1); + assign_map.emplace("ExcIEEEAC5A.seefd2", &assign_ExcIEEEAC5A_seefd2); + assign_map.emplace("ExcIEEEAC5A.ta", &assign_ExcIEEEAC5A_ta); + assign_map.emplace("ExcIEEEAC5A.te", &assign_ExcIEEEAC5A_te); + assign_map.emplace("ExcIEEEAC5A.tf1", &assign_ExcIEEEAC5A_tf1); + assign_map.emplace("ExcIEEEAC5A.tf2", &assign_ExcIEEEAC5A_tf2); + assign_map.emplace("ExcIEEEAC5A.tf3", &assign_ExcIEEEAC5A_tf3); + assign_map.emplace("ExcIEEEAC5A.vrmax", &assign_ExcIEEEAC5A_vrmax); + assign_map.emplace("ExcIEEEAC5A.vrmin", &assign_ExcIEEEAC5A_vrmin); } void ExcIEEEAC5A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcIEEEAC5A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC5A.efd1", &get_ExcIEEEAC5A_efd1); - get_map.emplace("cim:ExcIEEEAC5A.efd2", &get_ExcIEEEAC5A_efd2); - get_map.emplace("cim:ExcIEEEAC5A.ka", &get_ExcIEEEAC5A_ka); - get_map.emplace("cim:ExcIEEEAC5A.ke", &get_ExcIEEEAC5A_ke); - get_map.emplace("cim:ExcIEEEAC5A.kf", &get_ExcIEEEAC5A_kf); - get_map.emplace("cim:ExcIEEEAC5A.seefd1", &get_ExcIEEEAC5A_seefd1); - get_map.emplace("cim:ExcIEEEAC5A.seefd2", &get_ExcIEEEAC5A_seefd2); - get_map.emplace("cim:ExcIEEEAC5A.ta", &get_ExcIEEEAC5A_ta); - get_map.emplace("cim:ExcIEEEAC5A.te", &get_ExcIEEEAC5A_te); - get_map.emplace("cim:ExcIEEEAC5A.tf1", &get_ExcIEEEAC5A_tf1); - get_map.emplace("cim:ExcIEEEAC5A.tf2", &get_ExcIEEEAC5A_tf2); - get_map.emplace("cim:ExcIEEEAC5A.tf3", &get_ExcIEEEAC5A_tf3); - get_map.emplace("cim:ExcIEEEAC5A.vrmax", &get_ExcIEEEAC5A_vrmax); - get_map.emplace("cim:ExcIEEEAC5A.vrmin", &get_ExcIEEEAC5A_vrmin); + get_map.emplace("ExcIEEEAC5A.efd1", &get_ExcIEEEAC5A_efd1); + get_map.emplace("ExcIEEEAC5A.efd2", &get_ExcIEEEAC5A_efd2); + get_map.emplace("ExcIEEEAC5A.ka", &get_ExcIEEEAC5A_ka); + get_map.emplace("ExcIEEEAC5A.ke", &get_ExcIEEEAC5A_ke); + get_map.emplace("ExcIEEEAC5A.kf", &get_ExcIEEEAC5A_kf); + get_map.emplace("ExcIEEEAC5A.seefd1", &get_ExcIEEEAC5A_seefd1); + get_map.emplace("ExcIEEEAC5A.seefd2", &get_ExcIEEEAC5A_seefd2); + get_map.emplace("ExcIEEEAC5A.ta", &get_ExcIEEEAC5A_ta); + get_map.emplace("ExcIEEEAC5A.te", &get_ExcIEEEAC5A_te); + get_map.emplace("ExcIEEEAC5A.tf1", &get_ExcIEEEAC5A_tf1); + get_map.emplace("ExcIEEEAC5A.tf2", &get_ExcIEEEAC5A_tf2); + get_map.emplace("ExcIEEEAC5A.tf3", &get_ExcIEEEAC5A_tf3); + get_map.emplace("ExcIEEEAC5A.vrmax", &get_ExcIEEEAC5A_vrmax); + get_map.emplace("ExcIEEEAC5A.vrmin", &get_ExcIEEEAC5A_vrmin); } void ExcIEEEAC5A::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcIEEEAC5A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC5A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC5A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC5A::declare() { return BaseClassDefiner(ExcIEEEAC5A::addConstructToMap, ExcIEEEAC5A::addPrimitiveAssignFnsToMap, ExcIEEEAC5A::addClassAssignFnsToMap, ExcIEEEAC5A::debugName); } +std::map ExcIEEEAC5A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC5A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.hpp index 53b26311c..d1827ea37 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC5A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC5A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.cpp index cf956daff..987fb3595 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC6A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC6A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.th", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vfelim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC6A::ExcIEEEAC6A() {} ExcIEEEAC6A::~ExcIEEEAC6A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC6A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.th", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tj", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tk", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vfelim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vhmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC6A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC6A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC6A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC6A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC6A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC6A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC6A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC6A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC6A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC6A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* ExcIEEEAC6A::debugString() const void ExcIEEEAC6A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC6A", &ExcIEEEAC6A_factory); + factory_map.emplace("ExcIEEEAC6A", &ExcIEEEAC6A_factory); } void ExcIEEEAC6A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC6A.ka", &assign_ExcIEEEAC6A_ka); - assign_map.emplace("cim:ExcIEEEAC6A.kc", &assign_ExcIEEEAC6A_kc); - assign_map.emplace("cim:ExcIEEEAC6A.kd", &assign_ExcIEEEAC6A_kd); - assign_map.emplace("cim:ExcIEEEAC6A.ke", &assign_ExcIEEEAC6A_ke); - assign_map.emplace("cim:ExcIEEEAC6A.kh", &assign_ExcIEEEAC6A_kh); - assign_map.emplace("cim:ExcIEEEAC6A.seve1", &assign_ExcIEEEAC6A_seve1); - assign_map.emplace("cim:ExcIEEEAC6A.seve2", &assign_ExcIEEEAC6A_seve2); - assign_map.emplace("cim:ExcIEEEAC6A.ta", &assign_ExcIEEEAC6A_ta); - assign_map.emplace("cim:ExcIEEEAC6A.tb", &assign_ExcIEEEAC6A_tb); - assign_map.emplace("cim:ExcIEEEAC6A.tc", &assign_ExcIEEEAC6A_tc); - assign_map.emplace("cim:ExcIEEEAC6A.te", &assign_ExcIEEEAC6A_te); - assign_map.emplace("cim:ExcIEEEAC6A.th", &assign_ExcIEEEAC6A_th); - assign_map.emplace("cim:ExcIEEEAC6A.tj", &assign_ExcIEEEAC6A_tj); - assign_map.emplace("cim:ExcIEEEAC6A.tk", &assign_ExcIEEEAC6A_tk); - assign_map.emplace("cim:ExcIEEEAC6A.vamax", &assign_ExcIEEEAC6A_vamax); - assign_map.emplace("cim:ExcIEEEAC6A.vamin", &assign_ExcIEEEAC6A_vamin); - assign_map.emplace("cim:ExcIEEEAC6A.ve1", &assign_ExcIEEEAC6A_ve1); - assign_map.emplace("cim:ExcIEEEAC6A.ve2", &assign_ExcIEEEAC6A_ve2); - assign_map.emplace("cim:ExcIEEEAC6A.vfelim", &assign_ExcIEEEAC6A_vfelim); - assign_map.emplace("cim:ExcIEEEAC6A.vhmax", &assign_ExcIEEEAC6A_vhmax); - assign_map.emplace("cim:ExcIEEEAC6A.vrmax", &assign_ExcIEEEAC6A_vrmax); - assign_map.emplace("cim:ExcIEEEAC6A.vrmin", &assign_ExcIEEEAC6A_vrmin); + assign_map.emplace("ExcIEEEAC6A.ka", &assign_ExcIEEEAC6A_ka); + assign_map.emplace("ExcIEEEAC6A.kc", &assign_ExcIEEEAC6A_kc); + assign_map.emplace("ExcIEEEAC6A.kd", &assign_ExcIEEEAC6A_kd); + assign_map.emplace("ExcIEEEAC6A.ke", &assign_ExcIEEEAC6A_ke); + assign_map.emplace("ExcIEEEAC6A.kh", &assign_ExcIEEEAC6A_kh); + assign_map.emplace("ExcIEEEAC6A.seve1", &assign_ExcIEEEAC6A_seve1); + assign_map.emplace("ExcIEEEAC6A.seve2", &assign_ExcIEEEAC6A_seve2); + assign_map.emplace("ExcIEEEAC6A.ta", &assign_ExcIEEEAC6A_ta); + assign_map.emplace("ExcIEEEAC6A.tb", &assign_ExcIEEEAC6A_tb); + assign_map.emplace("ExcIEEEAC6A.tc", &assign_ExcIEEEAC6A_tc); + assign_map.emplace("ExcIEEEAC6A.te", &assign_ExcIEEEAC6A_te); + assign_map.emplace("ExcIEEEAC6A.th", &assign_ExcIEEEAC6A_th); + assign_map.emplace("ExcIEEEAC6A.tj", &assign_ExcIEEEAC6A_tj); + assign_map.emplace("ExcIEEEAC6A.tk", &assign_ExcIEEEAC6A_tk); + assign_map.emplace("ExcIEEEAC6A.vamax", &assign_ExcIEEEAC6A_vamax); + assign_map.emplace("ExcIEEEAC6A.vamin", &assign_ExcIEEEAC6A_vamin); + assign_map.emplace("ExcIEEEAC6A.ve1", &assign_ExcIEEEAC6A_ve1); + assign_map.emplace("ExcIEEEAC6A.ve2", &assign_ExcIEEEAC6A_ve2); + assign_map.emplace("ExcIEEEAC6A.vfelim", &assign_ExcIEEEAC6A_vfelim); + assign_map.emplace("ExcIEEEAC6A.vhmax", &assign_ExcIEEEAC6A_vhmax); + assign_map.emplace("ExcIEEEAC6A.vrmax", &assign_ExcIEEEAC6A_vrmax); + assign_map.emplace("ExcIEEEAC6A.vrmin", &assign_ExcIEEEAC6A_vrmin); } void ExcIEEEAC6A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void ExcIEEEAC6A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC6A.ka", &get_ExcIEEEAC6A_ka); - get_map.emplace("cim:ExcIEEEAC6A.kc", &get_ExcIEEEAC6A_kc); - get_map.emplace("cim:ExcIEEEAC6A.kd", &get_ExcIEEEAC6A_kd); - get_map.emplace("cim:ExcIEEEAC6A.ke", &get_ExcIEEEAC6A_ke); - get_map.emplace("cim:ExcIEEEAC6A.kh", &get_ExcIEEEAC6A_kh); - get_map.emplace("cim:ExcIEEEAC6A.seve1", &get_ExcIEEEAC6A_seve1); - get_map.emplace("cim:ExcIEEEAC6A.seve2", &get_ExcIEEEAC6A_seve2); - get_map.emplace("cim:ExcIEEEAC6A.ta", &get_ExcIEEEAC6A_ta); - get_map.emplace("cim:ExcIEEEAC6A.tb", &get_ExcIEEEAC6A_tb); - get_map.emplace("cim:ExcIEEEAC6A.tc", &get_ExcIEEEAC6A_tc); - get_map.emplace("cim:ExcIEEEAC6A.te", &get_ExcIEEEAC6A_te); - get_map.emplace("cim:ExcIEEEAC6A.th", &get_ExcIEEEAC6A_th); - get_map.emplace("cim:ExcIEEEAC6A.tj", &get_ExcIEEEAC6A_tj); - get_map.emplace("cim:ExcIEEEAC6A.tk", &get_ExcIEEEAC6A_tk); - get_map.emplace("cim:ExcIEEEAC6A.vamax", &get_ExcIEEEAC6A_vamax); - get_map.emplace("cim:ExcIEEEAC6A.vamin", &get_ExcIEEEAC6A_vamin); - get_map.emplace("cim:ExcIEEEAC6A.ve1", &get_ExcIEEEAC6A_ve1); - get_map.emplace("cim:ExcIEEEAC6A.ve2", &get_ExcIEEEAC6A_ve2); - get_map.emplace("cim:ExcIEEEAC6A.vfelim", &get_ExcIEEEAC6A_vfelim); - get_map.emplace("cim:ExcIEEEAC6A.vhmax", &get_ExcIEEEAC6A_vhmax); - get_map.emplace("cim:ExcIEEEAC6A.vrmax", &get_ExcIEEEAC6A_vrmax); - get_map.emplace("cim:ExcIEEEAC6A.vrmin", &get_ExcIEEEAC6A_vrmin); + get_map.emplace("ExcIEEEAC6A.ka", &get_ExcIEEEAC6A_ka); + get_map.emplace("ExcIEEEAC6A.kc", &get_ExcIEEEAC6A_kc); + get_map.emplace("ExcIEEEAC6A.kd", &get_ExcIEEEAC6A_kd); + get_map.emplace("ExcIEEEAC6A.ke", &get_ExcIEEEAC6A_ke); + get_map.emplace("ExcIEEEAC6A.kh", &get_ExcIEEEAC6A_kh); + get_map.emplace("ExcIEEEAC6A.seve1", &get_ExcIEEEAC6A_seve1); + get_map.emplace("ExcIEEEAC6A.seve2", &get_ExcIEEEAC6A_seve2); + get_map.emplace("ExcIEEEAC6A.ta", &get_ExcIEEEAC6A_ta); + get_map.emplace("ExcIEEEAC6A.tb", &get_ExcIEEEAC6A_tb); + get_map.emplace("ExcIEEEAC6A.tc", &get_ExcIEEEAC6A_tc); + get_map.emplace("ExcIEEEAC6A.te", &get_ExcIEEEAC6A_te); + get_map.emplace("ExcIEEEAC6A.th", &get_ExcIEEEAC6A_th); + get_map.emplace("ExcIEEEAC6A.tj", &get_ExcIEEEAC6A_tj); + get_map.emplace("ExcIEEEAC6A.tk", &get_ExcIEEEAC6A_tk); + get_map.emplace("ExcIEEEAC6A.vamax", &get_ExcIEEEAC6A_vamax); + get_map.emplace("ExcIEEEAC6A.vamin", &get_ExcIEEEAC6A_vamin); + get_map.emplace("ExcIEEEAC6A.ve1", &get_ExcIEEEAC6A_ve1); + get_map.emplace("ExcIEEEAC6A.ve2", &get_ExcIEEEAC6A_ve2); + get_map.emplace("ExcIEEEAC6A.vfelim", &get_ExcIEEEAC6A_vfelim); + get_map.emplace("ExcIEEEAC6A.vhmax", &get_ExcIEEEAC6A_vhmax); + get_map.emplace("ExcIEEEAC6A.vrmax", &get_ExcIEEEAC6A_vrmax); + get_map.emplace("ExcIEEEAC6A.vrmin", &get_ExcIEEEAC6A_vrmin); } void ExcIEEEAC6A::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void ExcIEEEAC6A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC6A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC6A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC6A::declare() { return BaseClassDefiner(ExcIEEEAC6A::addConstructToMap, ExcIEEEAC6A::addPrimitiveAssignFnsToMap, ExcIEEEAC6A::addClassAssignFnsToMap, ExcIEEEAC6A::debugName); } +std::map ExcIEEEAC6A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC6A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.hpp index b32c16c38..ae30e5138 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC6A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -96,8 +97,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -105,7 +113,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC6A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.cpp index 92658ed8f..1ae6d689e 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC7B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC7B::ExcIEEEAC7B() {} ExcIEEEAC7B::~ExcIEEEAC7B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC7B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf3", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC7B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC7B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC7B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC7B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC7B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC7B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC7B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* ExcIEEEAC7B::debugString() const void ExcIEEEAC7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC7B", &ExcIEEEAC7B_factory); + factory_map.emplace("ExcIEEEAC7B", &ExcIEEEAC7B_factory); } void ExcIEEEAC7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC7B.kc", &assign_ExcIEEEAC7B_kc); - assign_map.emplace("cim:ExcIEEEAC7B.kd", &assign_ExcIEEEAC7B_kd); - assign_map.emplace("cim:ExcIEEEAC7B.kdr", &assign_ExcIEEEAC7B_kdr); - assign_map.emplace("cim:ExcIEEEAC7B.ke", &assign_ExcIEEEAC7B_ke); - assign_map.emplace("cim:ExcIEEEAC7B.kf1", &assign_ExcIEEEAC7B_kf1); - assign_map.emplace("cim:ExcIEEEAC7B.kf2", &assign_ExcIEEEAC7B_kf2); - assign_map.emplace("cim:ExcIEEEAC7B.kf3", &assign_ExcIEEEAC7B_kf3); - assign_map.emplace("cim:ExcIEEEAC7B.kia", &assign_ExcIEEEAC7B_kia); - assign_map.emplace("cim:ExcIEEEAC7B.kir", &assign_ExcIEEEAC7B_kir); - assign_map.emplace("cim:ExcIEEEAC7B.kl", &assign_ExcIEEEAC7B_kl); - assign_map.emplace("cim:ExcIEEEAC7B.kp", &assign_ExcIEEEAC7B_kp); - assign_map.emplace("cim:ExcIEEEAC7B.kpa", &assign_ExcIEEEAC7B_kpa); - assign_map.emplace("cim:ExcIEEEAC7B.kpr", &assign_ExcIEEEAC7B_kpr); - assign_map.emplace("cim:ExcIEEEAC7B.seve1", &assign_ExcIEEEAC7B_seve1); - assign_map.emplace("cim:ExcIEEEAC7B.seve2", &assign_ExcIEEEAC7B_seve2); - assign_map.emplace("cim:ExcIEEEAC7B.tdr", &assign_ExcIEEEAC7B_tdr); - assign_map.emplace("cim:ExcIEEEAC7B.te", &assign_ExcIEEEAC7B_te); - assign_map.emplace("cim:ExcIEEEAC7B.tf", &assign_ExcIEEEAC7B_tf); - assign_map.emplace("cim:ExcIEEEAC7B.vamax", &assign_ExcIEEEAC7B_vamax); - assign_map.emplace("cim:ExcIEEEAC7B.vamin", &assign_ExcIEEEAC7B_vamin); - assign_map.emplace("cim:ExcIEEEAC7B.ve1", &assign_ExcIEEEAC7B_ve1); - assign_map.emplace("cim:ExcIEEEAC7B.ve2", &assign_ExcIEEEAC7B_ve2); - assign_map.emplace("cim:ExcIEEEAC7B.vemin", &assign_ExcIEEEAC7B_vemin); - assign_map.emplace("cim:ExcIEEEAC7B.vfemax", &assign_ExcIEEEAC7B_vfemax); - assign_map.emplace("cim:ExcIEEEAC7B.vrmax", &assign_ExcIEEEAC7B_vrmax); - assign_map.emplace("cim:ExcIEEEAC7B.vrmin", &assign_ExcIEEEAC7B_vrmin); + assign_map.emplace("ExcIEEEAC7B.kc", &assign_ExcIEEEAC7B_kc); + assign_map.emplace("ExcIEEEAC7B.kd", &assign_ExcIEEEAC7B_kd); + assign_map.emplace("ExcIEEEAC7B.kdr", &assign_ExcIEEEAC7B_kdr); + assign_map.emplace("ExcIEEEAC7B.ke", &assign_ExcIEEEAC7B_ke); + assign_map.emplace("ExcIEEEAC7B.kf1", &assign_ExcIEEEAC7B_kf1); + assign_map.emplace("ExcIEEEAC7B.kf2", &assign_ExcIEEEAC7B_kf2); + assign_map.emplace("ExcIEEEAC7B.kf3", &assign_ExcIEEEAC7B_kf3); + assign_map.emplace("ExcIEEEAC7B.kia", &assign_ExcIEEEAC7B_kia); + assign_map.emplace("ExcIEEEAC7B.kir", &assign_ExcIEEEAC7B_kir); + assign_map.emplace("ExcIEEEAC7B.kl", &assign_ExcIEEEAC7B_kl); + assign_map.emplace("ExcIEEEAC7B.kp", &assign_ExcIEEEAC7B_kp); + assign_map.emplace("ExcIEEEAC7B.kpa", &assign_ExcIEEEAC7B_kpa); + assign_map.emplace("ExcIEEEAC7B.kpr", &assign_ExcIEEEAC7B_kpr); + assign_map.emplace("ExcIEEEAC7B.seve1", &assign_ExcIEEEAC7B_seve1); + assign_map.emplace("ExcIEEEAC7B.seve2", &assign_ExcIEEEAC7B_seve2); + assign_map.emplace("ExcIEEEAC7B.tdr", &assign_ExcIEEEAC7B_tdr); + assign_map.emplace("ExcIEEEAC7B.te", &assign_ExcIEEEAC7B_te); + assign_map.emplace("ExcIEEEAC7B.tf", &assign_ExcIEEEAC7B_tf); + assign_map.emplace("ExcIEEEAC7B.vamax", &assign_ExcIEEEAC7B_vamax); + assign_map.emplace("ExcIEEEAC7B.vamin", &assign_ExcIEEEAC7B_vamin); + assign_map.emplace("ExcIEEEAC7B.ve1", &assign_ExcIEEEAC7B_ve1); + assign_map.emplace("ExcIEEEAC7B.ve2", &assign_ExcIEEEAC7B_ve2); + assign_map.emplace("ExcIEEEAC7B.vemin", &assign_ExcIEEEAC7B_vemin); + assign_map.emplace("ExcIEEEAC7B.vfemax", &assign_ExcIEEEAC7B_vfemax); + assign_map.emplace("ExcIEEEAC7B.vrmax", &assign_ExcIEEEAC7B_vrmax); + assign_map.emplace("ExcIEEEAC7B.vrmin", &assign_ExcIEEEAC7B_vrmin); } void ExcIEEEAC7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void ExcIEEEAC7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC7B.kc", &get_ExcIEEEAC7B_kc); - get_map.emplace("cim:ExcIEEEAC7B.kd", &get_ExcIEEEAC7B_kd); - get_map.emplace("cim:ExcIEEEAC7B.kdr", &get_ExcIEEEAC7B_kdr); - get_map.emplace("cim:ExcIEEEAC7B.ke", &get_ExcIEEEAC7B_ke); - get_map.emplace("cim:ExcIEEEAC7B.kf1", &get_ExcIEEEAC7B_kf1); - get_map.emplace("cim:ExcIEEEAC7B.kf2", &get_ExcIEEEAC7B_kf2); - get_map.emplace("cim:ExcIEEEAC7B.kf3", &get_ExcIEEEAC7B_kf3); - get_map.emplace("cim:ExcIEEEAC7B.kia", &get_ExcIEEEAC7B_kia); - get_map.emplace("cim:ExcIEEEAC7B.kir", &get_ExcIEEEAC7B_kir); - get_map.emplace("cim:ExcIEEEAC7B.kl", &get_ExcIEEEAC7B_kl); - get_map.emplace("cim:ExcIEEEAC7B.kp", &get_ExcIEEEAC7B_kp); - get_map.emplace("cim:ExcIEEEAC7B.kpa", &get_ExcIEEEAC7B_kpa); - get_map.emplace("cim:ExcIEEEAC7B.kpr", &get_ExcIEEEAC7B_kpr); - get_map.emplace("cim:ExcIEEEAC7B.seve1", &get_ExcIEEEAC7B_seve1); - get_map.emplace("cim:ExcIEEEAC7B.seve2", &get_ExcIEEEAC7B_seve2); - get_map.emplace("cim:ExcIEEEAC7B.tdr", &get_ExcIEEEAC7B_tdr); - get_map.emplace("cim:ExcIEEEAC7B.te", &get_ExcIEEEAC7B_te); - get_map.emplace("cim:ExcIEEEAC7B.tf", &get_ExcIEEEAC7B_tf); - get_map.emplace("cim:ExcIEEEAC7B.vamax", &get_ExcIEEEAC7B_vamax); - get_map.emplace("cim:ExcIEEEAC7B.vamin", &get_ExcIEEEAC7B_vamin); - get_map.emplace("cim:ExcIEEEAC7B.ve1", &get_ExcIEEEAC7B_ve1); - get_map.emplace("cim:ExcIEEEAC7B.ve2", &get_ExcIEEEAC7B_ve2); - get_map.emplace("cim:ExcIEEEAC7B.vemin", &get_ExcIEEEAC7B_vemin); - get_map.emplace("cim:ExcIEEEAC7B.vfemax", &get_ExcIEEEAC7B_vfemax); - get_map.emplace("cim:ExcIEEEAC7B.vrmax", &get_ExcIEEEAC7B_vrmax); - get_map.emplace("cim:ExcIEEEAC7B.vrmin", &get_ExcIEEEAC7B_vrmin); + get_map.emplace("ExcIEEEAC7B.kc", &get_ExcIEEEAC7B_kc); + get_map.emplace("ExcIEEEAC7B.kd", &get_ExcIEEEAC7B_kd); + get_map.emplace("ExcIEEEAC7B.kdr", &get_ExcIEEEAC7B_kdr); + get_map.emplace("ExcIEEEAC7B.ke", &get_ExcIEEEAC7B_ke); + get_map.emplace("ExcIEEEAC7B.kf1", &get_ExcIEEEAC7B_kf1); + get_map.emplace("ExcIEEEAC7B.kf2", &get_ExcIEEEAC7B_kf2); + get_map.emplace("ExcIEEEAC7B.kf3", &get_ExcIEEEAC7B_kf3); + get_map.emplace("ExcIEEEAC7B.kia", &get_ExcIEEEAC7B_kia); + get_map.emplace("ExcIEEEAC7B.kir", &get_ExcIEEEAC7B_kir); + get_map.emplace("ExcIEEEAC7B.kl", &get_ExcIEEEAC7B_kl); + get_map.emplace("ExcIEEEAC7B.kp", &get_ExcIEEEAC7B_kp); + get_map.emplace("ExcIEEEAC7B.kpa", &get_ExcIEEEAC7B_kpa); + get_map.emplace("ExcIEEEAC7B.kpr", &get_ExcIEEEAC7B_kpr); + get_map.emplace("ExcIEEEAC7B.seve1", &get_ExcIEEEAC7B_seve1); + get_map.emplace("ExcIEEEAC7B.seve2", &get_ExcIEEEAC7B_seve2); + get_map.emplace("ExcIEEEAC7B.tdr", &get_ExcIEEEAC7B_tdr); + get_map.emplace("ExcIEEEAC7B.te", &get_ExcIEEEAC7B_te); + get_map.emplace("ExcIEEEAC7B.tf", &get_ExcIEEEAC7B_tf); + get_map.emplace("ExcIEEEAC7B.vamax", &get_ExcIEEEAC7B_vamax); + get_map.emplace("ExcIEEEAC7B.vamin", &get_ExcIEEEAC7B_vamin); + get_map.emplace("ExcIEEEAC7B.ve1", &get_ExcIEEEAC7B_ve1); + get_map.emplace("ExcIEEEAC7B.ve2", &get_ExcIEEEAC7B_ve2); + get_map.emplace("ExcIEEEAC7B.vemin", &get_ExcIEEEAC7B_vemin); + get_map.emplace("ExcIEEEAC7B.vfemax", &get_ExcIEEEAC7B_vfemax); + get_map.emplace("ExcIEEEAC7B.vrmax", &get_ExcIEEEAC7B_vrmax); + get_map.emplace("ExcIEEEAC7B.vrmin", &get_ExcIEEEAC7B_vrmin); } void ExcIEEEAC7B::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void ExcIEEEAC7B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC7B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC7B::declare() { return BaseClassDefiner(ExcIEEEAC7B::addConstructToMap, ExcIEEEAC7B::addPrimitiveAssignFnsToMap, ExcIEEEAC7B::addClassAssignFnsToMap, ExcIEEEAC7B::debugName); } +std::map ExcIEEEAC7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC7B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.hpp index 8e6afa3e6..92e4d374b 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC7B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.cpp index ebf326092..a11134d4a 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC8B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC8B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC8B::ExcIEEEAC8B() {} ExcIEEEAC8B::~ExcIEEEAC8B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC8B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC8B::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC8B.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC8B::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC8B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC8B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC8B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC8B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC8B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC8B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC8B_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcIEEEAC8B::debugString() const void ExcIEEEAC8B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC8B", &ExcIEEEAC8B_factory); + factory_map.emplace("ExcIEEEAC8B", &ExcIEEEAC8B_factory); } void ExcIEEEAC8B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC8B.ka", &assign_ExcIEEEAC8B_ka); - assign_map.emplace("cim:ExcIEEEAC8B.kc", &assign_ExcIEEEAC8B_kc); - assign_map.emplace("cim:ExcIEEEAC8B.kd", &assign_ExcIEEEAC8B_kd); - assign_map.emplace("cim:ExcIEEEAC8B.kdr", &assign_ExcIEEEAC8B_kdr); - assign_map.emplace("cim:ExcIEEEAC8B.ke", &assign_ExcIEEEAC8B_ke); - assign_map.emplace("cim:ExcIEEEAC8B.kir", &assign_ExcIEEEAC8B_kir); - assign_map.emplace("cim:ExcIEEEAC8B.kpr", &assign_ExcIEEEAC8B_kpr); - assign_map.emplace("cim:ExcIEEEAC8B.seve1", &assign_ExcIEEEAC8B_seve1); - assign_map.emplace("cim:ExcIEEEAC8B.seve2", &assign_ExcIEEEAC8B_seve2); - assign_map.emplace("cim:ExcIEEEAC8B.ta", &assign_ExcIEEEAC8B_ta); - assign_map.emplace("cim:ExcIEEEAC8B.tdr", &assign_ExcIEEEAC8B_tdr); - assign_map.emplace("cim:ExcIEEEAC8B.te", &assign_ExcIEEEAC8B_te); - assign_map.emplace("cim:ExcIEEEAC8B.ve1", &assign_ExcIEEEAC8B_ve1); - assign_map.emplace("cim:ExcIEEEAC8B.ve2", &assign_ExcIEEEAC8B_ve2); - assign_map.emplace("cim:ExcIEEEAC8B.vemin", &assign_ExcIEEEAC8B_vemin); - assign_map.emplace("cim:ExcIEEEAC8B.vfemax", &assign_ExcIEEEAC8B_vfemax); - assign_map.emplace("cim:ExcIEEEAC8B.vrmax", &assign_ExcIEEEAC8B_vrmax); - assign_map.emplace("cim:ExcIEEEAC8B.vrmin", &assign_ExcIEEEAC8B_vrmin); + assign_map.emplace("ExcIEEEAC8B.ka", &assign_ExcIEEEAC8B_ka); + assign_map.emplace("ExcIEEEAC8B.kc", &assign_ExcIEEEAC8B_kc); + assign_map.emplace("ExcIEEEAC8B.kd", &assign_ExcIEEEAC8B_kd); + assign_map.emplace("ExcIEEEAC8B.kdr", &assign_ExcIEEEAC8B_kdr); + assign_map.emplace("ExcIEEEAC8B.ke", &assign_ExcIEEEAC8B_ke); + assign_map.emplace("ExcIEEEAC8B.kir", &assign_ExcIEEEAC8B_kir); + assign_map.emplace("ExcIEEEAC8B.kpr", &assign_ExcIEEEAC8B_kpr); + assign_map.emplace("ExcIEEEAC8B.seve1", &assign_ExcIEEEAC8B_seve1); + assign_map.emplace("ExcIEEEAC8B.seve2", &assign_ExcIEEEAC8B_seve2); + assign_map.emplace("ExcIEEEAC8B.ta", &assign_ExcIEEEAC8B_ta); + assign_map.emplace("ExcIEEEAC8B.tdr", &assign_ExcIEEEAC8B_tdr); + assign_map.emplace("ExcIEEEAC8B.te", &assign_ExcIEEEAC8B_te); + assign_map.emplace("ExcIEEEAC8B.ve1", &assign_ExcIEEEAC8B_ve1); + assign_map.emplace("ExcIEEEAC8B.ve2", &assign_ExcIEEEAC8B_ve2); + assign_map.emplace("ExcIEEEAC8B.vemin", &assign_ExcIEEEAC8B_vemin); + assign_map.emplace("ExcIEEEAC8B.vfemax", &assign_ExcIEEEAC8B_vfemax); + assign_map.emplace("ExcIEEEAC8B.vrmax", &assign_ExcIEEEAC8B_vrmax); + assign_map.emplace("ExcIEEEAC8B.vrmin", &assign_ExcIEEEAC8B_vrmin); } void ExcIEEEAC8B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcIEEEAC8B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC8B.ka", &get_ExcIEEEAC8B_ka); - get_map.emplace("cim:ExcIEEEAC8B.kc", &get_ExcIEEEAC8B_kc); - get_map.emplace("cim:ExcIEEEAC8B.kd", &get_ExcIEEEAC8B_kd); - get_map.emplace("cim:ExcIEEEAC8B.kdr", &get_ExcIEEEAC8B_kdr); - get_map.emplace("cim:ExcIEEEAC8B.ke", &get_ExcIEEEAC8B_ke); - get_map.emplace("cim:ExcIEEEAC8B.kir", &get_ExcIEEEAC8B_kir); - get_map.emplace("cim:ExcIEEEAC8B.kpr", &get_ExcIEEEAC8B_kpr); - get_map.emplace("cim:ExcIEEEAC8B.seve1", &get_ExcIEEEAC8B_seve1); - get_map.emplace("cim:ExcIEEEAC8B.seve2", &get_ExcIEEEAC8B_seve2); - get_map.emplace("cim:ExcIEEEAC8B.ta", &get_ExcIEEEAC8B_ta); - get_map.emplace("cim:ExcIEEEAC8B.tdr", &get_ExcIEEEAC8B_tdr); - get_map.emplace("cim:ExcIEEEAC8B.te", &get_ExcIEEEAC8B_te); - get_map.emplace("cim:ExcIEEEAC8B.ve1", &get_ExcIEEEAC8B_ve1); - get_map.emplace("cim:ExcIEEEAC8B.ve2", &get_ExcIEEEAC8B_ve2); - get_map.emplace("cim:ExcIEEEAC8B.vemin", &get_ExcIEEEAC8B_vemin); - get_map.emplace("cim:ExcIEEEAC8B.vfemax", &get_ExcIEEEAC8B_vfemax); - get_map.emplace("cim:ExcIEEEAC8B.vrmax", &get_ExcIEEEAC8B_vrmax); - get_map.emplace("cim:ExcIEEEAC8B.vrmin", &get_ExcIEEEAC8B_vrmin); + get_map.emplace("ExcIEEEAC8B.ka", &get_ExcIEEEAC8B_ka); + get_map.emplace("ExcIEEEAC8B.kc", &get_ExcIEEEAC8B_kc); + get_map.emplace("ExcIEEEAC8B.kd", &get_ExcIEEEAC8B_kd); + get_map.emplace("ExcIEEEAC8B.kdr", &get_ExcIEEEAC8B_kdr); + get_map.emplace("ExcIEEEAC8B.ke", &get_ExcIEEEAC8B_ke); + get_map.emplace("ExcIEEEAC8B.kir", &get_ExcIEEEAC8B_kir); + get_map.emplace("ExcIEEEAC8B.kpr", &get_ExcIEEEAC8B_kpr); + get_map.emplace("ExcIEEEAC8B.seve1", &get_ExcIEEEAC8B_seve1); + get_map.emplace("ExcIEEEAC8B.seve2", &get_ExcIEEEAC8B_seve2); + get_map.emplace("ExcIEEEAC8B.ta", &get_ExcIEEEAC8B_ta); + get_map.emplace("ExcIEEEAC8B.tdr", &get_ExcIEEEAC8B_tdr); + get_map.emplace("ExcIEEEAC8B.te", &get_ExcIEEEAC8B_te); + get_map.emplace("ExcIEEEAC8B.ve1", &get_ExcIEEEAC8B_ve1); + get_map.emplace("ExcIEEEAC8B.ve2", &get_ExcIEEEAC8B_ve2); + get_map.emplace("ExcIEEEAC8B.vemin", &get_ExcIEEEAC8B_vemin); + get_map.emplace("ExcIEEEAC8B.vfemax", &get_ExcIEEEAC8B_vfemax); + get_map.emplace("ExcIEEEAC8B.vrmax", &get_ExcIEEEAC8B_vrmax); + get_map.emplace("ExcIEEEAC8B.vrmin", &get_ExcIEEEAC8B_vrmin); } void ExcIEEEAC8B::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcIEEEAC8B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC8B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC8B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC8B::declare() { return BaseClassDefiner(ExcIEEEAC8B::addConstructToMap, ExcIEEEAC8B::addPrimitiveAssignFnsToMap, ExcIEEEAC8B::addClassAssignFnsToMap, ExcIEEEAC8B::debugName); } +std::map ExcIEEEAC8B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC8B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.hpp index c9ca37813..4e6105a59 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEAC8B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC8B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.cpp index 51102e7b5..544db3f00 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC1A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC1A::ExcIEEEDC1A() {} ExcIEEEDC1A::~ExcIEEEDC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC1A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC1A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC1A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC1A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC1A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEDC1A::debugString() const void ExcIEEEDC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC1A", &ExcIEEEDC1A_factory); + factory_map.emplace("ExcIEEEDC1A", &ExcIEEEDC1A_factory); } void ExcIEEEDC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC1A.efd1", &assign_ExcIEEEDC1A_efd1); - assign_map.emplace("cim:ExcIEEEDC1A.efd2", &assign_ExcIEEEDC1A_efd2); - assign_map.emplace("cim:ExcIEEEDC1A.exclim", &assign_ExcIEEEDC1A_exclim); - assign_map.emplace("cim:ExcIEEEDC1A.ka", &assign_ExcIEEEDC1A_ka); - assign_map.emplace("cim:ExcIEEEDC1A.ke", &assign_ExcIEEEDC1A_ke); - assign_map.emplace("cim:ExcIEEEDC1A.kf", &assign_ExcIEEEDC1A_kf); - assign_map.emplace("cim:ExcIEEEDC1A.seefd1", &assign_ExcIEEEDC1A_seefd1); - assign_map.emplace("cim:ExcIEEEDC1A.seefd2", &assign_ExcIEEEDC1A_seefd2); - assign_map.emplace("cim:ExcIEEEDC1A.ta", &assign_ExcIEEEDC1A_ta); - assign_map.emplace("cim:ExcIEEEDC1A.tb", &assign_ExcIEEEDC1A_tb); - assign_map.emplace("cim:ExcIEEEDC1A.tc", &assign_ExcIEEEDC1A_tc); - assign_map.emplace("cim:ExcIEEEDC1A.te", &assign_ExcIEEEDC1A_te); - assign_map.emplace("cim:ExcIEEEDC1A.tf", &assign_ExcIEEEDC1A_tf); - assign_map.emplace("cim:ExcIEEEDC1A.uelin", &assign_ExcIEEEDC1A_uelin); - assign_map.emplace("cim:ExcIEEEDC1A.vrmax", &assign_ExcIEEEDC1A_vrmax); - assign_map.emplace("cim:ExcIEEEDC1A.vrmin", &assign_ExcIEEEDC1A_vrmin); + assign_map.emplace("ExcIEEEDC1A.efd1", &assign_ExcIEEEDC1A_efd1); + assign_map.emplace("ExcIEEEDC1A.efd2", &assign_ExcIEEEDC1A_efd2); + assign_map.emplace("ExcIEEEDC1A.exclim", &assign_ExcIEEEDC1A_exclim); + assign_map.emplace("ExcIEEEDC1A.ka", &assign_ExcIEEEDC1A_ka); + assign_map.emplace("ExcIEEEDC1A.ke", &assign_ExcIEEEDC1A_ke); + assign_map.emplace("ExcIEEEDC1A.kf", &assign_ExcIEEEDC1A_kf); + assign_map.emplace("ExcIEEEDC1A.seefd1", &assign_ExcIEEEDC1A_seefd1); + assign_map.emplace("ExcIEEEDC1A.seefd2", &assign_ExcIEEEDC1A_seefd2); + assign_map.emplace("ExcIEEEDC1A.ta", &assign_ExcIEEEDC1A_ta); + assign_map.emplace("ExcIEEEDC1A.tb", &assign_ExcIEEEDC1A_tb); + assign_map.emplace("ExcIEEEDC1A.tc", &assign_ExcIEEEDC1A_tc); + assign_map.emplace("ExcIEEEDC1A.te", &assign_ExcIEEEDC1A_te); + assign_map.emplace("ExcIEEEDC1A.tf", &assign_ExcIEEEDC1A_tf); + assign_map.emplace("ExcIEEEDC1A.uelin", &assign_ExcIEEEDC1A_uelin); + assign_map.emplace("ExcIEEEDC1A.vrmax", &assign_ExcIEEEDC1A_vrmax); + assign_map.emplace("ExcIEEEDC1A.vrmin", &assign_ExcIEEEDC1A_vrmin); } void ExcIEEEDC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEDC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC1A.efd1", &get_ExcIEEEDC1A_efd1); - get_map.emplace("cim:ExcIEEEDC1A.efd2", &get_ExcIEEEDC1A_efd2); - get_map.emplace("cim:ExcIEEEDC1A.exclim", &get_ExcIEEEDC1A_exclim); - get_map.emplace("cim:ExcIEEEDC1A.ka", &get_ExcIEEEDC1A_ka); - get_map.emplace("cim:ExcIEEEDC1A.ke", &get_ExcIEEEDC1A_ke); - get_map.emplace("cim:ExcIEEEDC1A.kf", &get_ExcIEEEDC1A_kf); - get_map.emplace("cim:ExcIEEEDC1A.seefd1", &get_ExcIEEEDC1A_seefd1); - get_map.emplace("cim:ExcIEEEDC1A.seefd2", &get_ExcIEEEDC1A_seefd2); - get_map.emplace("cim:ExcIEEEDC1A.ta", &get_ExcIEEEDC1A_ta); - get_map.emplace("cim:ExcIEEEDC1A.tb", &get_ExcIEEEDC1A_tb); - get_map.emplace("cim:ExcIEEEDC1A.tc", &get_ExcIEEEDC1A_tc); - get_map.emplace("cim:ExcIEEEDC1A.te", &get_ExcIEEEDC1A_te); - get_map.emplace("cim:ExcIEEEDC1A.tf", &get_ExcIEEEDC1A_tf); - get_map.emplace("cim:ExcIEEEDC1A.uelin", &get_ExcIEEEDC1A_uelin); - get_map.emplace("cim:ExcIEEEDC1A.vrmax", &get_ExcIEEEDC1A_vrmax); - get_map.emplace("cim:ExcIEEEDC1A.vrmin", &get_ExcIEEEDC1A_vrmin); + get_map.emplace("ExcIEEEDC1A.efd1", &get_ExcIEEEDC1A_efd1); + get_map.emplace("ExcIEEEDC1A.efd2", &get_ExcIEEEDC1A_efd2); + get_map.emplace("ExcIEEEDC1A.exclim", &get_ExcIEEEDC1A_exclim); + get_map.emplace("ExcIEEEDC1A.ka", &get_ExcIEEEDC1A_ka); + get_map.emplace("ExcIEEEDC1A.ke", &get_ExcIEEEDC1A_ke); + get_map.emplace("ExcIEEEDC1A.kf", &get_ExcIEEEDC1A_kf); + get_map.emplace("ExcIEEEDC1A.seefd1", &get_ExcIEEEDC1A_seefd1); + get_map.emplace("ExcIEEEDC1A.seefd2", &get_ExcIEEEDC1A_seefd2); + get_map.emplace("ExcIEEEDC1A.ta", &get_ExcIEEEDC1A_ta); + get_map.emplace("ExcIEEEDC1A.tb", &get_ExcIEEEDC1A_tb); + get_map.emplace("ExcIEEEDC1A.tc", &get_ExcIEEEDC1A_tc); + get_map.emplace("ExcIEEEDC1A.te", &get_ExcIEEEDC1A_te); + get_map.emplace("ExcIEEEDC1A.tf", &get_ExcIEEEDC1A_tf); + get_map.emplace("ExcIEEEDC1A.uelin", &get_ExcIEEEDC1A_uelin); + get_map.emplace("ExcIEEEDC1A.vrmax", &get_ExcIEEEDC1A_vrmax); + get_map.emplace("ExcIEEEDC1A.vrmin", &get_ExcIEEEDC1A_vrmin); } void ExcIEEEDC1A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEDC1A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC1A::declare() { return BaseClassDefiner(ExcIEEEDC1A::addConstructToMap, ExcIEEEDC1A::addPrimitiveAssignFnsToMap, ExcIEEEDC1A::addClassAssignFnsToMap, ExcIEEEDC1A::debugName); } +std::map ExcIEEEDC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.hpp index b3f403da2..b3951b32d 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEDC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.cpp index da3ebc726..14e9393e8 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC2A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC2A::ExcIEEEDC2A() {} ExcIEEEDC2A::~ExcIEEEDC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC2A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC2A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC2A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC2A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC2A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEDC2A::debugString() const void ExcIEEEDC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC2A", &ExcIEEEDC2A_factory); + factory_map.emplace("ExcIEEEDC2A", &ExcIEEEDC2A_factory); } void ExcIEEEDC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC2A.efd1", &assign_ExcIEEEDC2A_efd1); - assign_map.emplace("cim:ExcIEEEDC2A.efd2", &assign_ExcIEEEDC2A_efd2); - assign_map.emplace("cim:ExcIEEEDC2A.exclim", &assign_ExcIEEEDC2A_exclim); - assign_map.emplace("cim:ExcIEEEDC2A.ka", &assign_ExcIEEEDC2A_ka); - assign_map.emplace("cim:ExcIEEEDC2A.ke", &assign_ExcIEEEDC2A_ke); - assign_map.emplace("cim:ExcIEEEDC2A.kf", &assign_ExcIEEEDC2A_kf); - assign_map.emplace("cim:ExcIEEEDC2A.seefd1", &assign_ExcIEEEDC2A_seefd1); - assign_map.emplace("cim:ExcIEEEDC2A.seefd2", &assign_ExcIEEEDC2A_seefd2); - assign_map.emplace("cim:ExcIEEEDC2A.ta", &assign_ExcIEEEDC2A_ta); - assign_map.emplace("cim:ExcIEEEDC2A.tb", &assign_ExcIEEEDC2A_tb); - assign_map.emplace("cim:ExcIEEEDC2A.tc", &assign_ExcIEEEDC2A_tc); - assign_map.emplace("cim:ExcIEEEDC2A.te", &assign_ExcIEEEDC2A_te); - assign_map.emplace("cim:ExcIEEEDC2A.tf", &assign_ExcIEEEDC2A_tf); - assign_map.emplace("cim:ExcIEEEDC2A.uelin", &assign_ExcIEEEDC2A_uelin); - assign_map.emplace("cim:ExcIEEEDC2A.vrmax", &assign_ExcIEEEDC2A_vrmax); - assign_map.emplace("cim:ExcIEEEDC2A.vrmin", &assign_ExcIEEEDC2A_vrmin); + assign_map.emplace("ExcIEEEDC2A.efd1", &assign_ExcIEEEDC2A_efd1); + assign_map.emplace("ExcIEEEDC2A.efd2", &assign_ExcIEEEDC2A_efd2); + assign_map.emplace("ExcIEEEDC2A.exclim", &assign_ExcIEEEDC2A_exclim); + assign_map.emplace("ExcIEEEDC2A.ka", &assign_ExcIEEEDC2A_ka); + assign_map.emplace("ExcIEEEDC2A.ke", &assign_ExcIEEEDC2A_ke); + assign_map.emplace("ExcIEEEDC2A.kf", &assign_ExcIEEEDC2A_kf); + assign_map.emplace("ExcIEEEDC2A.seefd1", &assign_ExcIEEEDC2A_seefd1); + assign_map.emplace("ExcIEEEDC2A.seefd2", &assign_ExcIEEEDC2A_seefd2); + assign_map.emplace("ExcIEEEDC2A.ta", &assign_ExcIEEEDC2A_ta); + assign_map.emplace("ExcIEEEDC2A.tb", &assign_ExcIEEEDC2A_tb); + assign_map.emplace("ExcIEEEDC2A.tc", &assign_ExcIEEEDC2A_tc); + assign_map.emplace("ExcIEEEDC2A.te", &assign_ExcIEEEDC2A_te); + assign_map.emplace("ExcIEEEDC2A.tf", &assign_ExcIEEEDC2A_tf); + assign_map.emplace("ExcIEEEDC2A.uelin", &assign_ExcIEEEDC2A_uelin); + assign_map.emplace("ExcIEEEDC2A.vrmax", &assign_ExcIEEEDC2A_vrmax); + assign_map.emplace("ExcIEEEDC2A.vrmin", &assign_ExcIEEEDC2A_vrmin); } void ExcIEEEDC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEDC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC2A.efd1", &get_ExcIEEEDC2A_efd1); - get_map.emplace("cim:ExcIEEEDC2A.efd2", &get_ExcIEEEDC2A_efd2); - get_map.emplace("cim:ExcIEEEDC2A.exclim", &get_ExcIEEEDC2A_exclim); - get_map.emplace("cim:ExcIEEEDC2A.ka", &get_ExcIEEEDC2A_ka); - get_map.emplace("cim:ExcIEEEDC2A.ke", &get_ExcIEEEDC2A_ke); - get_map.emplace("cim:ExcIEEEDC2A.kf", &get_ExcIEEEDC2A_kf); - get_map.emplace("cim:ExcIEEEDC2A.seefd1", &get_ExcIEEEDC2A_seefd1); - get_map.emplace("cim:ExcIEEEDC2A.seefd2", &get_ExcIEEEDC2A_seefd2); - get_map.emplace("cim:ExcIEEEDC2A.ta", &get_ExcIEEEDC2A_ta); - get_map.emplace("cim:ExcIEEEDC2A.tb", &get_ExcIEEEDC2A_tb); - get_map.emplace("cim:ExcIEEEDC2A.tc", &get_ExcIEEEDC2A_tc); - get_map.emplace("cim:ExcIEEEDC2A.te", &get_ExcIEEEDC2A_te); - get_map.emplace("cim:ExcIEEEDC2A.tf", &get_ExcIEEEDC2A_tf); - get_map.emplace("cim:ExcIEEEDC2A.uelin", &get_ExcIEEEDC2A_uelin); - get_map.emplace("cim:ExcIEEEDC2A.vrmax", &get_ExcIEEEDC2A_vrmax); - get_map.emplace("cim:ExcIEEEDC2A.vrmin", &get_ExcIEEEDC2A_vrmin); + get_map.emplace("ExcIEEEDC2A.efd1", &get_ExcIEEEDC2A_efd1); + get_map.emplace("ExcIEEEDC2A.efd2", &get_ExcIEEEDC2A_efd2); + get_map.emplace("ExcIEEEDC2A.exclim", &get_ExcIEEEDC2A_exclim); + get_map.emplace("ExcIEEEDC2A.ka", &get_ExcIEEEDC2A_ka); + get_map.emplace("ExcIEEEDC2A.ke", &get_ExcIEEEDC2A_ke); + get_map.emplace("ExcIEEEDC2A.kf", &get_ExcIEEEDC2A_kf); + get_map.emplace("ExcIEEEDC2A.seefd1", &get_ExcIEEEDC2A_seefd1); + get_map.emplace("ExcIEEEDC2A.seefd2", &get_ExcIEEEDC2A_seefd2); + get_map.emplace("ExcIEEEDC2A.ta", &get_ExcIEEEDC2A_ta); + get_map.emplace("ExcIEEEDC2A.tb", &get_ExcIEEEDC2A_tb); + get_map.emplace("ExcIEEEDC2A.tc", &get_ExcIEEEDC2A_tc); + get_map.emplace("ExcIEEEDC2A.te", &get_ExcIEEEDC2A_te); + get_map.emplace("ExcIEEEDC2A.tf", &get_ExcIEEEDC2A_tf); + get_map.emplace("ExcIEEEDC2A.uelin", &get_ExcIEEEDC2A_uelin); + get_map.emplace("ExcIEEEDC2A.vrmax", &get_ExcIEEEDC2A_vrmax); + get_map.emplace("ExcIEEEDC2A.vrmin", &get_ExcIEEEDC2A_vrmin); } void ExcIEEEDC2A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEDC2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC2A::declare() { return BaseClassDefiner(ExcIEEEDC2A::addConstructToMap, ExcIEEEDC2A::addPrimitiveAssignFnsToMap, ExcIEEEDC2A::addClassAssignFnsToMap, ExcIEEEDC2A::debugName); } +std::map ExcIEEEDC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC2A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.hpp index eab87a37c..dc106a2ef 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEDC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC2A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.cpp index 0a3177ee8..767d339f8 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC3A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.kv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC3A::ExcIEEEDC3A() {} ExcIEEEDC3A::~ExcIEEEDC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC3A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC3A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.kv", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.trh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC3A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC3A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC3A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* ExcIEEEDC3A::debugString() const void ExcIEEEDC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC3A", &ExcIEEEDC3A_factory); + factory_map.emplace("ExcIEEEDC3A", &ExcIEEEDC3A_factory); } void ExcIEEEDC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC3A.efd1", &assign_ExcIEEEDC3A_efd1); - assign_map.emplace("cim:ExcIEEEDC3A.efd2", &assign_ExcIEEEDC3A_efd2); - assign_map.emplace("cim:ExcIEEEDC3A.exclim", &assign_ExcIEEEDC3A_exclim); - assign_map.emplace("cim:ExcIEEEDC3A.ke", &assign_ExcIEEEDC3A_ke); - assign_map.emplace("cim:ExcIEEEDC3A.kv", &assign_ExcIEEEDC3A_kv); - assign_map.emplace("cim:ExcIEEEDC3A.seefd1", &assign_ExcIEEEDC3A_seefd1); - assign_map.emplace("cim:ExcIEEEDC3A.seefd2", &assign_ExcIEEEDC3A_seefd2); - assign_map.emplace("cim:ExcIEEEDC3A.te", &assign_ExcIEEEDC3A_te); - assign_map.emplace("cim:ExcIEEEDC3A.trh", &assign_ExcIEEEDC3A_trh); - assign_map.emplace("cim:ExcIEEEDC3A.vrmax", &assign_ExcIEEEDC3A_vrmax); - assign_map.emplace("cim:ExcIEEEDC3A.vrmin", &assign_ExcIEEEDC3A_vrmin); + assign_map.emplace("ExcIEEEDC3A.efd1", &assign_ExcIEEEDC3A_efd1); + assign_map.emplace("ExcIEEEDC3A.efd2", &assign_ExcIEEEDC3A_efd2); + assign_map.emplace("ExcIEEEDC3A.exclim", &assign_ExcIEEEDC3A_exclim); + assign_map.emplace("ExcIEEEDC3A.ke", &assign_ExcIEEEDC3A_ke); + assign_map.emplace("ExcIEEEDC3A.kv", &assign_ExcIEEEDC3A_kv); + assign_map.emplace("ExcIEEEDC3A.seefd1", &assign_ExcIEEEDC3A_seefd1); + assign_map.emplace("ExcIEEEDC3A.seefd2", &assign_ExcIEEEDC3A_seefd2); + assign_map.emplace("ExcIEEEDC3A.te", &assign_ExcIEEEDC3A_te); + assign_map.emplace("ExcIEEEDC3A.trh", &assign_ExcIEEEDC3A_trh); + assign_map.emplace("ExcIEEEDC3A.vrmax", &assign_ExcIEEEDC3A_vrmax); + assign_map.emplace("ExcIEEEDC3A.vrmin", &assign_ExcIEEEDC3A_vrmin); } void ExcIEEEDC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void ExcIEEEDC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC3A.efd1", &get_ExcIEEEDC3A_efd1); - get_map.emplace("cim:ExcIEEEDC3A.efd2", &get_ExcIEEEDC3A_efd2); - get_map.emplace("cim:ExcIEEEDC3A.exclim", &get_ExcIEEEDC3A_exclim); - get_map.emplace("cim:ExcIEEEDC3A.ke", &get_ExcIEEEDC3A_ke); - get_map.emplace("cim:ExcIEEEDC3A.kv", &get_ExcIEEEDC3A_kv); - get_map.emplace("cim:ExcIEEEDC3A.seefd1", &get_ExcIEEEDC3A_seefd1); - get_map.emplace("cim:ExcIEEEDC3A.seefd2", &get_ExcIEEEDC3A_seefd2); - get_map.emplace("cim:ExcIEEEDC3A.te", &get_ExcIEEEDC3A_te); - get_map.emplace("cim:ExcIEEEDC3A.trh", &get_ExcIEEEDC3A_trh); - get_map.emplace("cim:ExcIEEEDC3A.vrmax", &get_ExcIEEEDC3A_vrmax); - get_map.emplace("cim:ExcIEEEDC3A.vrmin", &get_ExcIEEEDC3A_vrmin); + get_map.emplace("ExcIEEEDC3A.efd1", &get_ExcIEEEDC3A_efd1); + get_map.emplace("ExcIEEEDC3A.efd2", &get_ExcIEEEDC3A_efd2); + get_map.emplace("ExcIEEEDC3A.exclim", &get_ExcIEEEDC3A_exclim); + get_map.emplace("ExcIEEEDC3A.ke", &get_ExcIEEEDC3A_ke); + get_map.emplace("ExcIEEEDC3A.kv", &get_ExcIEEEDC3A_kv); + get_map.emplace("ExcIEEEDC3A.seefd1", &get_ExcIEEEDC3A_seefd1); + get_map.emplace("ExcIEEEDC3A.seefd2", &get_ExcIEEEDC3A_seefd2); + get_map.emplace("ExcIEEEDC3A.te", &get_ExcIEEEDC3A_te); + get_map.emplace("ExcIEEEDC3A.trh", &get_ExcIEEEDC3A_trh); + get_map.emplace("ExcIEEEDC3A.vrmax", &get_ExcIEEEDC3A_vrmax); + get_map.emplace("ExcIEEEDC3A.vrmin", &get_ExcIEEEDC3A_vrmin); } void ExcIEEEDC3A::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void ExcIEEEDC3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC3A::declare() { return BaseClassDefiner(ExcIEEEDC3A::addConstructToMap, ExcIEEEDC3A::addPrimitiveAssignFnsToMap, ExcIEEEDC3A::addClassAssignFnsToMap, ExcIEEEDC3A::debugName); } +std::map ExcIEEEDC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC3A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.hpp index 7c97b2656..aaff85bc4 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEDC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -64,8 +65,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -73,7 +81,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC3A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.cpp index 7f3838589..6943a6d89 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC4B.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC4B::ExcIEEEDC4B() {} ExcIEEEDC4B::~ExcIEEEDC4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEDC4B.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.td", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEDC4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEDC4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEDC4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEDC4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEDC4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEDC4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC4B_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcIEEEDC4B::debugString() const void ExcIEEEDC4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC4B", &ExcIEEEDC4B_factory); + factory_map.emplace("ExcIEEEDC4B", &ExcIEEEDC4B_factory); } void ExcIEEEDC4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC4B.efd1", &assign_ExcIEEEDC4B_efd1); - assign_map.emplace("cim:ExcIEEEDC4B.efd2", &assign_ExcIEEEDC4B_efd2); - assign_map.emplace("cim:ExcIEEEDC4B.ka", &assign_ExcIEEEDC4B_ka); - assign_map.emplace("cim:ExcIEEEDC4B.kd", &assign_ExcIEEEDC4B_kd); - assign_map.emplace("cim:ExcIEEEDC4B.ke", &assign_ExcIEEEDC4B_ke); - assign_map.emplace("cim:ExcIEEEDC4B.kf", &assign_ExcIEEEDC4B_kf); - assign_map.emplace("cim:ExcIEEEDC4B.ki", &assign_ExcIEEEDC4B_ki); - assign_map.emplace("cim:ExcIEEEDC4B.kp", &assign_ExcIEEEDC4B_kp); - assign_map.emplace("cim:ExcIEEEDC4B.oelin", &assign_ExcIEEEDC4B_oelin); - assign_map.emplace("cim:ExcIEEEDC4B.seefd1", &assign_ExcIEEEDC4B_seefd1); - assign_map.emplace("cim:ExcIEEEDC4B.seefd2", &assign_ExcIEEEDC4B_seefd2); - assign_map.emplace("cim:ExcIEEEDC4B.ta", &assign_ExcIEEEDC4B_ta); - assign_map.emplace("cim:ExcIEEEDC4B.td", &assign_ExcIEEEDC4B_td); - assign_map.emplace("cim:ExcIEEEDC4B.te", &assign_ExcIEEEDC4B_te); - assign_map.emplace("cim:ExcIEEEDC4B.tf", &assign_ExcIEEEDC4B_tf); - assign_map.emplace("cim:ExcIEEEDC4B.uelin", &assign_ExcIEEEDC4B_uelin); - assign_map.emplace("cim:ExcIEEEDC4B.vemin", &assign_ExcIEEEDC4B_vemin); - assign_map.emplace("cim:ExcIEEEDC4B.vrmax", &assign_ExcIEEEDC4B_vrmax); - assign_map.emplace("cim:ExcIEEEDC4B.vrmin", &assign_ExcIEEEDC4B_vrmin); + assign_map.emplace("ExcIEEEDC4B.efd1", &assign_ExcIEEEDC4B_efd1); + assign_map.emplace("ExcIEEEDC4B.efd2", &assign_ExcIEEEDC4B_efd2); + assign_map.emplace("ExcIEEEDC4B.ka", &assign_ExcIEEEDC4B_ka); + assign_map.emplace("ExcIEEEDC4B.kd", &assign_ExcIEEEDC4B_kd); + assign_map.emplace("ExcIEEEDC4B.ke", &assign_ExcIEEEDC4B_ke); + assign_map.emplace("ExcIEEEDC4B.kf", &assign_ExcIEEEDC4B_kf); + assign_map.emplace("ExcIEEEDC4B.ki", &assign_ExcIEEEDC4B_ki); + assign_map.emplace("ExcIEEEDC4B.kp", &assign_ExcIEEEDC4B_kp); + assign_map.emplace("ExcIEEEDC4B.oelin", &assign_ExcIEEEDC4B_oelin); + assign_map.emplace("ExcIEEEDC4B.seefd1", &assign_ExcIEEEDC4B_seefd1); + assign_map.emplace("ExcIEEEDC4B.seefd2", &assign_ExcIEEEDC4B_seefd2); + assign_map.emplace("ExcIEEEDC4B.ta", &assign_ExcIEEEDC4B_ta); + assign_map.emplace("ExcIEEEDC4B.td", &assign_ExcIEEEDC4B_td); + assign_map.emplace("ExcIEEEDC4B.te", &assign_ExcIEEEDC4B_te); + assign_map.emplace("ExcIEEEDC4B.tf", &assign_ExcIEEEDC4B_tf); + assign_map.emplace("ExcIEEEDC4B.uelin", &assign_ExcIEEEDC4B_uelin); + assign_map.emplace("ExcIEEEDC4B.vemin", &assign_ExcIEEEDC4B_vemin); + assign_map.emplace("ExcIEEEDC4B.vrmax", &assign_ExcIEEEDC4B_vrmax); + assign_map.emplace("ExcIEEEDC4B.vrmin", &assign_ExcIEEEDC4B_vrmin); } void ExcIEEEDC4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcIEEEDC4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC4B.efd1", &get_ExcIEEEDC4B_efd1); - get_map.emplace("cim:ExcIEEEDC4B.efd2", &get_ExcIEEEDC4B_efd2); - get_map.emplace("cim:ExcIEEEDC4B.ka", &get_ExcIEEEDC4B_ka); - get_map.emplace("cim:ExcIEEEDC4B.kd", &get_ExcIEEEDC4B_kd); - get_map.emplace("cim:ExcIEEEDC4B.ke", &get_ExcIEEEDC4B_ke); - get_map.emplace("cim:ExcIEEEDC4B.kf", &get_ExcIEEEDC4B_kf); - get_map.emplace("cim:ExcIEEEDC4B.ki", &get_ExcIEEEDC4B_ki); - get_map.emplace("cim:ExcIEEEDC4B.kp", &get_ExcIEEEDC4B_kp); - get_map.emplace("cim:ExcIEEEDC4B.oelin", &get_ExcIEEEDC4B_oelin); - get_map.emplace("cim:ExcIEEEDC4B.seefd1", &get_ExcIEEEDC4B_seefd1); - get_map.emplace("cim:ExcIEEEDC4B.seefd2", &get_ExcIEEEDC4B_seefd2); - get_map.emplace("cim:ExcIEEEDC4B.ta", &get_ExcIEEEDC4B_ta); - get_map.emplace("cim:ExcIEEEDC4B.td", &get_ExcIEEEDC4B_td); - get_map.emplace("cim:ExcIEEEDC4B.te", &get_ExcIEEEDC4B_te); - get_map.emplace("cim:ExcIEEEDC4B.tf", &get_ExcIEEEDC4B_tf); - get_map.emplace("cim:ExcIEEEDC4B.uelin", &get_ExcIEEEDC4B_uelin); - get_map.emplace("cim:ExcIEEEDC4B.vemin", &get_ExcIEEEDC4B_vemin); - get_map.emplace("cim:ExcIEEEDC4B.vrmax", &get_ExcIEEEDC4B_vrmax); - get_map.emplace("cim:ExcIEEEDC4B.vrmin", &get_ExcIEEEDC4B_vrmin); + get_map.emplace("ExcIEEEDC4B.efd1", &get_ExcIEEEDC4B_efd1); + get_map.emplace("ExcIEEEDC4B.efd2", &get_ExcIEEEDC4B_efd2); + get_map.emplace("ExcIEEEDC4B.ka", &get_ExcIEEEDC4B_ka); + get_map.emplace("ExcIEEEDC4B.kd", &get_ExcIEEEDC4B_kd); + get_map.emplace("ExcIEEEDC4B.ke", &get_ExcIEEEDC4B_ke); + get_map.emplace("ExcIEEEDC4B.kf", &get_ExcIEEEDC4B_kf); + get_map.emplace("ExcIEEEDC4B.ki", &get_ExcIEEEDC4B_ki); + get_map.emplace("ExcIEEEDC4B.kp", &get_ExcIEEEDC4B_kp); + get_map.emplace("ExcIEEEDC4B.oelin", &get_ExcIEEEDC4B_oelin); + get_map.emplace("ExcIEEEDC4B.seefd1", &get_ExcIEEEDC4B_seefd1); + get_map.emplace("ExcIEEEDC4B.seefd2", &get_ExcIEEEDC4B_seefd2); + get_map.emplace("ExcIEEEDC4B.ta", &get_ExcIEEEDC4B_ta); + get_map.emplace("ExcIEEEDC4B.td", &get_ExcIEEEDC4B_td); + get_map.emplace("ExcIEEEDC4B.te", &get_ExcIEEEDC4B_te); + get_map.emplace("ExcIEEEDC4B.tf", &get_ExcIEEEDC4B_tf); + get_map.emplace("ExcIEEEDC4B.uelin", &get_ExcIEEEDC4B_uelin); + get_map.emplace("ExcIEEEDC4B.vemin", &get_ExcIEEEDC4B_vemin); + get_map.emplace("ExcIEEEDC4B.vrmax", &get_ExcIEEEDC4B_vrmax); + get_map.emplace("ExcIEEEDC4B.vrmin", &get_ExcIEEEDC4B_vrmin); } void ExcIEEEDC4B::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcIEEEDC4B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC4B::declare() { return BaseClassDefiner(ExcIEEEDC4B::addConstructToMap, ExcIEEEDC4B::addPrimitiveAssignFnsToMap, ExcIEEEDC4B::addClassAssignFnsToMap, ExcIEEEDC4B::debugName); } +std::map ExcIEEEDC4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC4B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.hpp index b26843190..296cb5429 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEDC4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC4B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST1A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST1A.cpp index 17ef6c50f..279ec8bda 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST1A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST1A.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST1A.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.pssin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST1A::ExcIEEEST1A() {} ExcIEEEST1A::~ExcIEEEST1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEST1A.ilr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.klr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.pssin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tb1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEST1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEST1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEST1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEST1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEST1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEST1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST1A_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcIEEEST1A::debugString() const void ExcIEEEST1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST1A", &ExcIEEEST1A_factory); + factory_map.emplace("ExcIEEEST1A", &ExcIEEEST1A_factory); } void ExcIEEEST1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST1A.ilr", &assign_ExcIEEEST1A_ilr); - assign_map.emplace("cim:ExcIEEEST1A.ka", &assign_ExcIEEEST1A_ka); - assign_map.emplace("cim:ExcIEEEST1A.kc", &assign_ExcIEEEST1A_kc); - assign_map.emplace("cim:ExcIEEEST1A.kf", &assign_ExcIEEEST1A_kf); - assign_map.emplace("cim:ExcIEEEST1A.klr", &assign_ExcIEEEST1A_klr); - assign_map.emplace("cim:ExcIEEEST1A.pssin", &assign_ExcIEEEST1A_pssin); - assign_map.emplace("cim:ExcIEEEST1A.ta", &assign_ExcIEEEST1A_ta); - assign_map.emplace("cim:ExcIEEEST1A.tb", &assign_ExcIEEEST1A_tb); - assign_map.emplace("cim:ExcIEEEST1A.tb1", &assign_ExcIEEEST1A_tb1); - assign_map.emplace("cim:ExcIEEEST1A.tc", &assign_ExcIEEEST1A_tc); - assign_map.emplace("cim:ExcIEEEST1A.tc1", &assign_ExcIEEEST1A_tc1); - assign_map.emplace("cim:ExcIEEEST1A.tf", &assign_ExcIEEEST1A_tf); - assign_map.emplace("cim:ExcIEEEST1A.uelin", &assign_ExcIEEEST1A_uelin); - assign_map.emplace("cim:ExcIEEEST1A.vamax", &assign_ExcIEEEST1A_vamax); - assign_map.emplace("cim:ExcIEEEST1A.vamin", &assign_ExcIEEEST1A_vamin); - assign_map.emplace("cim:ExcIEEEST1A.vimax", &assign_ExcIEEEST1A_vimax); - assign_map.emplace("cim:ExcIEEEST1A.vimin", &assign_ExcIEEEST1A_vimin); - assign_map.emplace("cim:ExcIEEEST1A.vrmax", &assign_ExcIEEEST1A_vrmax); - assign_map.emplace("cim:ExcIEEEST1A.vrmin", &assign_ExcIEEEST1A_vrmin); + assign_map.emplace("ExcIEEEST1A.ilr", &assign_ExcIEEEST1A_ilr); + assign_map.emplace("ExcIEEEST1A.ka", &assign_ExcIEEEST1A_ka); + assign_map.emplace("ExcIEEEST1A.kc", &assign_ExcIEEEST1A_kc); + assign_map.emplace("ExcIEEEST1A.kf", &assign_ExcIEEEST1A_kf); + assign_map.emplace("ExcIEEEST1A.klr", &assign_ExcIEEEST1A_klr); + assign_map.emplace("ExcIEEEST1A.pssin", &assign_ExcIEEEST1A_pssin); + assign_map.emplace("ExcIEEEST1A.ta", &assign_ExcIEEEST1A_ta); + assign_map.emplace("ExcIEEEST1A.tb", &assign_ExcIEEEST1A_tb); + assign_map.emplace("ExcIEEEST1A.tb1", &assign_ExcIEEEST1A_tb1); + assign_map.emplace("ExcIEEEST1A.tc", &assign_ExcIEEEST1A_tc); + assign_map.emplace("ExcIEEEST1A.tc1", &assign_ExcIEEEST1A_tc1); + assign_map.emplace("ExcIEEEST1A.tf", &assign_ExcIEEEST1A_tf); + assign_map.emplace("ExcIEEEST1A.uelin", &assign_ExcIEEEST1A_uelin); + assign_map.emplace("ExcIEEEST1A.vamax", &assign_ExcIEEEST1A_vamax); + assign_map.emplace("ExcIEEEST1A.vamin", &assign_ExcIEEEST1A_vamin); + assign_map.emplace("ExcIEEEST1A.vimax", &assign_ExcIEEEST1A_vimax); + assign_map.emplace("ExcIEEEST1A.vimin", &assign_ExcIEEEST1A_vimin); + assign_map.emplace("ExcIEEEST1A.vrmax", &assign_ExcIEEEST1A_vrmax); + assign_map.emplace("ExcIEEEST1A.vrmin", &assign_ExcIEEEST1A_vrmin); } void ExcIEEEST1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,24 +681,24 @@ void ExcIEEEST1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST1A.ilr", &get_ExcIEEEST1A_ilr); - get_map.emplace("cim:ExcIEEEST1A.ka", &get_ExcIEEEST1A_ka); - get_map.emplace("cim:ExcIEEEST1A.kc", &get_ExcIEEEST1A_kc); - get_map.emplace("cim:ExcIEEEST1A.kf", &get_ExcIEEEST1A_kf); - get_map.emplace("cim:ExcIEEEST1A.klr", &get_ExcIEEEST1A_klr); - get_map.emplace("cim:ExcIEEEST1A.pssin", &get_ExcIEEEST1A_pssin); - get_map.emplace("cim:ExcIEEEST1A.ta", &get_ExcIEEEST1A_ta); - get_map.emplace("cim:ExcIEEEST1A.tb", &get_ExcIEEEST1A_tb); - get_map.emplace("cim:ExcIEEEST1A.tb1", &get_ExcIEEEST1A_tb1); - get_map.emplace("cim:ExcIEEEST1A.tc", &get_ExcIEEEST1A_tc); - get_map.emplace("cim:ExcIEEEST1A.tc1", &get_ExcIEEEST1A_tc1); - get_map.emplace("cim:ExcIEEEST1A.tf", &get_ExcIEEEST1A_tf); - get_map.emplace("cim:ExcIEEEST1A.vamax", &get_ExcIEEEST1A_vamax); - get_map.emplace("cim:ExcIEEEST1A.vamin", &get_ExcIEEEST1A_vamin); - get_map.emplace("cim:ExcIEEEST1A.vimax", &get_ExcIEEEST1A_vimax); - get_map.emplace("cim:ExcIEEEST1A.vimin", &get_ExcIEEEST1A_vimin); - get_map.emplace("cim:ExcIEEEST1A.vrmax", &get_ExcIEEEST1A_vrmax); - get_map.emplace("cim:ExcIEEEST1A.vrmin", &get_ExcIEEEST1A_vrmin); + get_map.emplace("ExcIEEEST1A.ilr", &get_ExcIEEEST1A_ilr); + get_map.emplace("ExcIEEEST1A.ka", &get_ExcIEEEST1A_ka); + get_map.emplace("ExcIEEEST1A.kc", &get_ExcIEEEST1A_kc); + get_map.emplace("ExcIEEEST1A.kf", &get_ExcIEEEST1A_kf); + get_map.emplace("ExcIEEEST1A.klr", &get_ExcIEEEST1A_klr); + get_map.emplace("ExcIEEEST1A.pssin", &get_ExcIEEEST1A_pssin); + get_map.emplace("ExcIEEEST1A.ta", &get_ExcIEEEST1A_ta); + get_map.emplace("ExcIEEEST1A.tb", &get_ExcIEEEST1A_tb); + get_map.emplace("ExcIEEEST1A.tb1", &get_ExcIEEEST1A_tb1); + get_map.emplace("ExcIEEEST1A.tc", &get_ExcIEEEST1A_tc); + get_map.emplace("ExcIEEEST1A.tc1", &get_ExcIEEEST1A_tc1); + get_map.emplace("ExcIEEEST1A.tf", &get_ExcIEEEST1A_tf); + get_map.emplace("ExcIEEEST1A.vamax", &get_ExcIEEEST1A_vamax); + get_map.emplace("ExcIEEEST1A.vamin", &get_ExcIEEEST1A_vamin); + get_map.emplace("ExcIEEEST1A.vimax", &get_ExcIEEEST1A_vimax); + get_map.emplace("ExcIEEEST1A.vimin", &get_ExcIEEEST1A_vimin); + get_map.emplace("ExcIEEEST1A.vrmax", &get_ExcIEEEST1A_vrmax); + get_map.emplace("ExcIEEEST1A.vrmin", &get_ExcIEEEST1A_vrmin); } void ExcIEEEST1A::addClassGetFnsToMap(std::map& get_map) const @@ -677,7 +709,13 @@ void ExcIEEEST1A::addClassGetFnsToMap(std::map& void ExcIEEEST1A::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST1A.uelin", &get_ExcIEEEST1A_uelin); + get_map.emplace("ExcIEEEST1A.uelin", &get_ExcIEEEST1A_uelin); +} + +bool ExcIEEEST1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST1A::declare() @@ -685,6 +723,14 @@ const BaseClassDefiner ExcIEEEST1A::declare() return BaseClassDefiner(ExcIEEEST1A::addConstructToMap, ExcIEEEST1A::addPrimitiveAssignFnsToMap, ExcIEEEST1A::addClassAssignFnsToMap, ExcIEEEST1A::debugName); } +std::map ExcIEEEST1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST1A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST1A.hpp index 66d916386..b8f697a20 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST1A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "ExcIEEEST1AUELselectorKind.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST2A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST2A.cpp index 0d80e5ac3..b07844550 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST2A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST2A.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST2A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST2A::ExcIEEEST2A() {} ExcIEEEST2A::~ExcIEEEST2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST2A::getClassNamespaceUrl() const { - { "cim:ExcIEEEST2A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST2A::getPossibleProfilesForClass() const +const std::string& ExcIEEEST2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST2A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST2A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcIEEEST2A::debugString() const void ExcIEEEST2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST2A", &ExcIEEEST2A_factory); + factory_map.emplace("ExcIEEEST2A", &ExcIEEEST2A_factory); } void ExcIEEEST2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST2A.efdmax", &assign_ExcIEEEST2A_efdmax); - assign_map.emplace("cim:ExcIEEEST2A.ka", &assign_ExcIEEEST2A_ka); - assign_map.emplace("cim:ExcIEEEST2A.kc", &assign_ExcIEEEST2A_kc); - assign_map.emplace("cim:ExcIEEEST2A.ke", &assign_ExcIEEEST2A_ke); - assign_map.emplace("cim:ExcIEEEST2A.kf", &assign_ExcIEEEST2A_kf); - assign_map.emplace("cim:ExcIEEEST2A.ki", &assign_ExcIEEEST2A_ki); - assign_map.emplace("cim:ExcIEEEST2A.kp", &assign_ExcIEEEST2A_kp); - assign_map.emplace("cim:ExcIEEEST2A.ta", &assign_ExcIEEEST2A_ta); - assign_map.emplace("cim:ExcIEEEST2A.te", &assign_ExcIEEEST2A_te); - assign_map.emplace("cim:ExcIEEEST2A.tf", &assign_ExcIEEEST2A_tf); - assign_map.emplace("cim:ExcIEEEST2A.uelin", &assign_ExcIEEEST2A_uelin); - assign_map.emplace("cim:ExcIEEEST2A.vrmax", &assign_ExcIEEEST2A_vrmax); - assign_map.emplace("cim:ExcIEEEST2A.vrmin", &assign_ExcIEEEST2A_vrmin); + assign_map.emplace("ExcIEEEST2A.efdmax", &assign_ExcIEEEST2A_efdmax); + assign_map.emplace("ExcIEEEST2A.ka", &assign_ExcIEEEST2A_ka); + assign_map.emplace("ExcIEEEST2A.kc", &assign_ExcIEEEST2A_kc); + assign_map.emplace("ExcIEEEST2A.ke", &assign_ExcIEEEST2A_ke); + assign_map.emplace("ExcIEEEST2A.kf", &assign_ExcIEEEST2A_kf); + assign_map.emplace("ExcIEEEST2A.ki", &assign_ExcIEEEST2A_ki); + assign_map.emplace("ExcIEEEST2A.kp", &assign_ExcIEEEST2A_kp); + assign_map.emplace("ExcIEEEST2A.ta", &assign_ExcIEEEST2A_ta); + assign_map.emplace("ExcIEEEST2A.te", &assign_ExcIEEEST2A_te); + assign_map.emplace("ExcIEEEST2A.tf", &assign_ExcIEEEST2A_tf); + assign_map.emplace("ExcIEEEST2A.uelin", &assign_ExcIEEEST2A_uelin); + assign_map.emplace("ExcIEEEST2A.vrmax", &assign_ExcIEEEST2A_vrmax); + assign_map.emplace("ExcIEEEST2A.vrmin", &assign_ExcIEEEST2A_vrmin); } void ExcIEEEST2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcIEEEST2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST2A.efdmax", &get_ExcIEEEST2A_efdmax); - get_map.emplace("cim:ExcIEEEST2A.ka", &get_ExcIEEEST2A_ka); - get_map.emplace("cim:ExcIEEEST2A.kc", &get_ExcIEEEST2A_kc); - get_map.emplace("cim:ExcIEEEST2A.ke", &get_ExcIEEEST2A_ke); - get_map.emplace("cim:ExcIEEEST2A.kf", &get_ExcIEEEST2A_kf); - get_map.emplace("cim:ExcIEEEST2A.ki", &get_ExcIEEEST2A_ki); - get_map.emplace("cim:ExcIEEEST2A.kp", &get_ExcIEEEST2A_kp); - get_map.emplace("cim:ExcIEEEST2A.ta", &get_ExcIEEEST2A_ta); - get_map.emplace("cim:ExcIEEEST2A.te", &get_ExcIEEEST2A_te); - get_map.emplace("cim:ExcIEEEST2A.tf", &get_ExcIEEEST2A_tf); - get_map.emplace("cim:ExcIEEEST2A.uelin", &get_ExcIEEEST2A_uelin); - get_map.emplace("cim:ExcIEEEST2A.vrmax", &get_ExcIEEEST2A_vrmax); - get_map.emplace("cim:ExcIEEEST2A.vrmin", &get_ExcIEEEST2A_vrmin); + get_map.emplace("ExcIEEEST2A.efdmax", &get_ExcIEEEST2A_efdmax); + get_map.emplace("ExcIEEEST2A.ka", &get_ExcIEEEST2A_ka); + get_map.emplace("ExcIEEEST2A.kc", &get_ExcIEEEST2A_kc); + get_map.emplace("ExcIEEEST2A.ke", &get_ExcIEEEST2A_ke); + get_map.emplace("ExcIEEEST2A.kf", &get_ExcIEEEST2A_kf); + get_map.emplace("ExcIEEEST2A.ki", &get_ExcIEEEST2A_ki); + get_map.emplace("ExcIEEEST2A.kp", &get_ExcIEEEST2A_kp); + get_map.emplace("ExcIEEEST2A.ta", &get_ExcIEEEST2A_ta); + get_map.emplace("ExcIEEEST2A.te", &get_ExcIEEEST2A_te); + get_map.emplace("ExcIEEEST2A.tf", &get_ExcIEEEST2A_tf); + get_map.emplace("ExcIEEEST2A.uelin", &get_ExcIEEEST2A_uelin); + get_map.emplace("ExcIEEEST2A.vrmax", &get_ExcIEEEST2A_vrmax); + get_map.emplace("ExcIEEEST2A.vrmin", &get_ExcIEEEST2A_vrmin); } void ExcIEEEST2A::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcIEEEST2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST2A::declare() { return BaseClassDefiner(ExcIEEEST2A::addConstructToMap, ExcIEEEST2A::addPrimitiveAssignFnsToMap, ExcIEEEST2A::addClassAssignFnsToMap, ExcIEEEST2A::debugName); } +std::map ExcIEEEST2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST2A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST2A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST2A.hpp index 14b7fc4ac..d61ade0b8 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST2A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST2A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST3A.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST3A.cpp index 143a70444..43ca93460 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST3A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST3A.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST3A::ExcIEEEST3A() {} ExcIEEEST3A::~ExcIEEEST3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEST3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.km", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.thetap", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tm", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEST3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEST3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEST3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEST3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEST3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEST3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST3A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -646,31 +678,31 @@ const char* ExcIEEEST3A::debugString() const void ExcIEEEST3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST3A", &ExcIEEEST3A_factory); + factory_map.emplace("ExcIEEEST3A", &ExcIEEEST3A_factory); } void ExcIEEEST3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST3A.ka", &assign_ExcIEEEST3A_ka); - assign_map.emplace("cim:ExcIEEEST3A.kc", &assign_ExcIEEEST3A_kc); - assign_map.emplace("cim:ExcIEEEST3A.kg", &assign_ExcIEEEST3A_kg); - assign_map.emplace("cim:ExcIEEEST3A.ki", &assign_ExcIEEEST3A_ki); - assign_map.emplace("cim:ExcIEEEST3A.km", &assign_ExcIEEEST3A_km); - assign_map.emplace("cim:ExcIEEEST3A.kp", &assign_ExcIEEEST3A_kp); - assign_map.emplace("cim:ExcIEEEST3A.ta", &assign_ExcIEEEST3A_ta); - assign_map.emplace("cim:ExcIEEEST3A.tb", &assign_ExcIEEEST3A_tb); - assign_map.emplace("cim:ExcIEEEST3A.tc", &assign_ExcIEEEST3A_tc); - assign_map.emplace("cim:ExcIEEEST3A.thetap", &assign_ExcIEEEST3A_thetap); - assign_map.emplace("cim:ExcIEEEST3A.tm", &assign_ExcIEEEST3A_tm); - assign_map.emplace("cim:ExcIEEEST3A.vbmax", &assign_ExcIEEEST3A_vbmax); - assign_map.emplace("cim:ExcIEEEST3A.vgmax", &assign_ExcIEEEST3A_vgmax); - assign_map.emplace("cim:ExcIEEEST3A.vimax", &assign_ExcIEEEST3A_vimax); - assign_map.emplace("cim:ExcIEEEST3A.vimin", &assign_ExcIEEEST3A_vimin); - assign_map.emplace("cim:ExcIEEEST3A.vmmax", &assign_ExcIEEEST3A_vmmax); - assign_map.emplace("cim:ExcIEEEST3A.vmmin", &assign_ExcIEEEST3A_vmmin); - assign_map.emplace("cim:ExcIEEEST3A.vrmax", &assign_ExcIEEEST3A_vrmax); - assign_map.emplace("cim:ExcIEEEST3A.vrmin", &assign_ExcIEEEST3A_vrmin); - assign_map.emplace("cim:ExcIEEEST3A.xl", &assign_ExcIEEEST3A_xl); + assign_map.emplace("ExcIEEEST3A.ka", &assign_ExcIEEEST3A_ka); + assign_map.emplace("ExcIEEEST3A.kc", &assign_ExcIEEEST3A_kc); + assign_map.emplace("ExcIEEEST3A.kg", &assign_ExcIEEEST3A_kg); + assign_map.emplace("ExcIEEEST3A.ki", &assign_ExcIEEEST3A_ki); + assign_map.emplace("ExcIEEEST3A.km", &assign_ExcIEEEST3A_km); + assign_map.emplace("ExcIEEEST3A.kp", &assign_ExcIEEEST3A_kp); + assign_map.emplace("ExcIEEEST3A.ta", &assign_ExcIEEEST3A_ta); + assign_map.emplace("ExcIEEEST3A.tb", &assign_ExcIEEEST3A_tb); + assign_map.emplace("ExcIEEEST3A.tc", &assign_ExcIEEEST3A_tc); + assign_map.emplace("ExcIEEEST3A.thetap", &assign_ExcIEEEST3A_thetap); + assign_map.emplace("ExcIEEEST3A.tm", &assign_ExcIEEEST3A_tm); + assign_map.emplace("ExcIEEEST3A.vbmax", &assign_ExcIEEEST3A_vbmax); + assign_map.emplace("ExcIEEEST3A.vgmax", &assign_ExcIEEEST3A_vgmax); + assign_map.emplace("ExcIEEEST3A.vimax", &assign_ExcIEEEST3A_vimax); + assign_map.emplace("ExcIEEEST3A.vimin", &assign_ExcIEEEST3A_vimin); + assign_map.emplace("ExcIEEEST3A.vmmax", &assign_ExcIEEEST3A_vmmax); + assign_map.emplace("ExcIEEEST3A.vmmin", &assign_ExcIEEEST3A_vmmin); + assign_map.emplace("ExcIEEEST3A.vrmax", &assign_ExcIEEEST3A_vrmax); + assign_map.emplace("ExcIEEEST3A.vrmin", &assign_ExcIEEEST3A_vrmin); + assign_map.emplace("ExcIEEEST3A.xl", &assign_ExcIEEEST3A_xl); } void ExcIEEEST3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -680,26 +712,26 @@ void ExcIEEEST3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST3A.ka", &get_ExcIEEEST3A_ka); - get_map.emplace("cim:ExcIEEEST3A.kc", &get_ExcIEEEST3A_kc); - get_map.emplace("cim:ExcIEEEST3A.kg", &get_ExcIEEEST3A_kg); - get_map.emplace("cim:ExcIEEEST3A.ki", &get_ExcIEEEST3A_ki); - get_map.emplace("cim:ExcIEEEST3A.km", &get_ExcIEEEST3A_km); - get_map.emplace("cim:ExcIEEEST3A.kp", &get_ExcIEEEST3A_kp); - get_map.emplace("cim:ExcIEEEST3A.ta", &get_ExcIEEEST3A_ta); - get_map.emplace("cim:ExcIEEEST3A.tb", &get_ExcIEEEST3A_tb); - get_map.emplace("cim:ExcIEEEST3A.tc", &get_ExcIEEEST3A_tc); - get_map.emplace("cim:ExcIEEEST3A.thetap", &get_ExcIEEEST3A_thetap); - get_map.emplace("cim:ExcIEEEST3A.tm", &get_ExcIEEEST3A_tm); - get_map.emplace("cim:ExcIEEEST3A.vbmax", &get_ExcIEEEST3A_vbmax); - get_map.emplace("cim:ExcIEEEST3A.vgmax", &get_ExcIEEEST3A_vgmax); - get_map.emplace("cim:ExcIEEEST3A.vimax", &get_ExcIEEEST3A_vimax); - get_map.emplace("cim:ExcIEEEST3A.vimin", &get_ExcIEEEST3A_vimin); - get_map.emplace("cim:ExcIEEEST3A.vmmax", &get_ExcIEEEST3A_vmmax); - get_map.emplace("cim:ExcIEEEST3A.vmmin", &get_ExcIEEEST3A_vmmin); - get_map.emplace("cim:ExcIEEEST3A.vrmax", &get_ExcIEEEST3A_vrmax); - get_map.emplace("cim:ExcIEEEST3A.vrmin", &get_ExcIEEEST3A_vrmin); - get_map.emplace("cim:ExcIEEEST3A.xl", &get_ExcIEEEST3A_xl); + get_map.emplace("ExcIEEEST3A.ka", &get_ExcIEEEST3A_ka); + get_map.emplace("ExcIEEEST3A.kc", &get_ExcIEEEST3A_kc); + get_map.emplace("ExcIEEEST3A.kg", &get_ExcIEEEST3A_kg); + get_map.emplace("ExcIEEEST3A.ki", &get_ExcIEEEST3A_ki); + get_map.emplace("ExcIEEEST3A.km", &get_ExcIEEEST3A_km); + get_map.emplace("ExcIEEEST3A.kp", &get_ExcIEEEST3A_kp); + get_map.emplace("ExcIEEEST3A.ta", &get_ExcIEEEST3A_ta); + get_map.emplace("ExcIEEEST3A.tb", &get_ExcIEEEST3A_tb); + get_map.emplace("ExcIEEEST3A.tc", &get_ExcIEEEST3A_tc); + get_map.emplace("ExcIEEEST3A.thetap", &get_ExcIEEEST3A_thetap); + get_map.emplace("ExcIEEEST3A.tm", &get_ExcIEEEST3A_tm); + get_map.emplace("ExcIEEEST3A.vbmax", &get_ExcIEEEST3A_vbmax); + get_map.emplace("ExcIEEEST3A.vgmax", &get_ExcIEEEST3A_vgmax); + get_map.emplace("ExcIEEEST3A.vimax", &get_ExcIEEEST3A_vimax); + get_map.emplace("ExcIEEEST3A.vimin", &get_ExcIEEEST3A_vimin); + get_map.emplace("ExcIEEEST3A.vmmax", &get_ExcIEEEST3A_vmmax); + get_map.emplace("ExcIEEEST3A.vmmin", &get_ExcIEEEST3A_vmmin); + get_map.emplace("ExcIEEEST3A.vrmax", &get_ExcIEEEST3A_vrmax); + get_map.emplace("ExcIEEEST3A.vrmin", &get_ExcIEEEST3A_vrmin); + get_map.emplace("ExcIEEEST3A.xl", &get_ExcIEEEST3A_xl); } void ExcIEEEST3A::addClassGetFnsToMap(std::map& get_map) const @@ -712,11 +744,25 @@ void ExcIEEEST3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST3A::declare() { return BaseClassDefiner(ExcIEEEST3A::addConstructToMap, ExcIEEEST3A::addPrimitiveAssignFnsToMap, ExcIEEEST3A::addClassAssignFnsToMap, ExcIEEEST3A::debugName); } +std::map ExcIEEEST3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST3A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST3A.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST3A.hpp index e2f7c6f05..e58fac5eb 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST3A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -90,8 +91,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -99,7 +107,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST3A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST4B.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST4B.cpp index 9912a54a6..6ffbf67f4 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST4B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST4B.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST4B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kpm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST4B::ExcIEEEST4B() {} ExcIEEEST4B::~ExcIEEEST4B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST4B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST4B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST4B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kpm", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.thetap", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.xl", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST4B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST4B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST4B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST4B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST4B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEST4B::debugString() const void ExcIEEEST4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST4B", &ExcIEEEST4B_factory); + factory_map.emplace("ExcIEEEST4B", &ExcIEEEST4B_factory); } void ExcIEEEST4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST4B.kc", &assign_ExcIEEEST4B_kc); - assign_map.emplace("cim:ExcIEEEST4B.kg", &assign_ExcIEEEST4B_kg); - assign_map.emplace("cim:ExcIEEEST4B.ki", &assign_ExcIEEEST4B_ki); - assign_map.emplace("cim:ExcIEEEST4B.kim", &assign_ExcIEEEST4B_kim); - assign_map.emplace("cim:ExcIEEEST4B.kir", &assign_ExcIEEEST4B_kir); - assign_map.emplace("cim:ExcIEEEST4B.kp", &assign_ExcIEEEST4B_kp); - assign_map.emplace("cim:ExcIEEEST4B.kpm", &assign_ExcIEEEST4B_kpm); - assign_map.emplace("cim:ExcIEEEST4B.kpr", &assign_ExcIEEEST4B_kpr); - assign_map.emplace("cim:ExcIEEEST4B.ta", &assign_ExcIEEEST4B_ta); - assign_map.emplace("cim:ExcIEEEST4B.thetap", &assign_ExcIEEEST4B_thetap); - assign_map.emplace("cim:ExcIEEEST4B.vbmax", &assign_ExcIEEEST4B_vbmax); - assign_map.emplace("cim:ExcIEEEST4B.vmmax", &assign_ExcIEEEST4B_vmmax); - assign_map.emplace("cim:ExcIEEEST4B.vmmin", &assign_ExcIEEEST4B_vmmin); - assign_map.emplace("cim:ExcIEEEST4B.vrmax", &assign_ExcIEEEST4B_vrmax); - assign_map.emplace("cim:ExcIEEEST4B.vrmin", &assign_ExcIEEEST4B_vrmin); - assign_map.emplace("cim:ExcIEEEST4B.xl", &assign_ExcIEEEST4B_xl); + assign_map.emplace("ExcIEEEST4B.kc", &assign_ExcIEEEST4B_kc); + assign_map.emplace("ExcIEEEST4B.kg", &assign_ExcIEEEST4B_kg); + assign_map.emplace("ExcIEEEST4B.ki", &assign_ExcIEEEST4B_ki); + assign_map.emplace("ExcIEEEST4B.kim", &assign_ExcIEEEST4B_kim); + assign_map.emplace("ExcIEEEST4B.kir", &assign_ExcIEEEST4B_kir); + assign_map.emplace("ExcIEEEST4B.kp", &assign_ExcIEEEST4B_kp); + assign_map.emplace("ExcIEEEST4B.kpm", &assign_ExcIEEEST4B_kpm); + assign_map.emplace("ExcIEEEST4B.kpr", &assign_ExcIEEEST4B_kpr); + assign_map.emplace("ExcIEEEST4B.ta", &assign_ExcIEEEST4B_ta); + assign_map.emplace("ExcIEEEST4B.thetap", &assign_ExcIEEEST4B_thetap); + assign_map.emplace("ExcIEEEST4B.vbmax", &assign_ExcIEEEST4B_vbmax); + assign_map.emplace("ExcIEEEST4B.vmmax", &assign_ExcIEEEST4B_vmmax); + assign_map.emplace("ExcIEEEST4B.vmmin", &assign_ExcIEEEST4B_vmmin); + assign_map.emplace("ExcIEEEST4B.vrmax", &assign_ExcIEEEST4B_vrmax); + assign_map.emplace("ExcIEEEST4B.vrmin", &assign_ExcIEEEST4B_vrmin); + assign_map.emplace("ExcIEEEST4B.xl", &assign_ExcIEEEST4B_xl); } void ExcIEEEST4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEST4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST4B.kc", &get_ExcIEEEST4B_kc); - get_map.emplace("cim:ExcIEEEST4B.kg", &get_ExcIEEEST4B_kg); - get_map.emplace("cim:ExcIEEEST4B.ki", &get_ExcIEEEST4B_ki); - get_map.emplace("cim:ExcIEEEST4B.kim", &get_ExcIEEEST4B_kim); - get_map.emplace("cim:ExcIEEEST4B.kir", &get_ExcIEEEST4B_kir); - get_map.emplace("cim:ExcIEEEST4B.kp", &get_ExcIEEEST4B_kp); - get_map.emplace("cim:ExcIEEEST4B.kpm", &get_ExcIEEEST4B_kpm); - get_map.emplace("cim:ExcIEEEST4B.kpr", &get_ExcIEEEST4B_kpr); - get_map.emplace("cim:ExcIEEEST4B.ta", &get_ExcIEEEST4B_ta); - get_map.emplace("cim:ExcIEEEST4B.thetap", &get_ExcIEEEST4B_thetap); - get_map.emplace("cim:ExcIEEEST4B.vbmax", &get_ExcIEEEST4B_vbmax); - get_map.emplace("cim:ExcIEEEST4B.vmmax", &get_ExcIEEEST4B_vmmax); - get_map.emplace("cim:ExcIEEEST4B.vmmin", &get_ExcIEEEST4B_vmmin); - get_map.emplace("cim:ExcIEEEST4B.vrmax", &get_ExcIEEEST4B_vrmax); - get_map.emplace("cim:ExcIEEEST4B.vrmin", &get_ExcIEEEST4B_vrmin); - get_map.emplace("cim:ExcIEEEST4B.xl", &get_ExcIEEEST4B_xl); + get_map.emplace("ExcIEEEST4B.kc", &get_ExcIEEEST4B_kc); + get_map.emplace("ExcIEEEST4B.kg", &get_ExcIEEEST4B_kg); + get_map.emplace("ExcIEEEST4B.ki", &get_ExcIEEEST4B_ki); + get_map.emplace("ExcIEEEST4B.kim", &get_ExcIEEEST4B_kim); + get_map.emplace("ExcIEEEST4B.kir", &get_ExcIEEEST4B_kir); + get_map.emplace("ExcIEEEST4B.kp", &get_ExcIEEEST4B_kp); + get_map.emplace("ExcIEEEST4B.kpm", &get_ExcIEEEST4B_kpm); + get_map.emplace("ExcIEEEST4B.kpr", &get_ExcIEEEST4B_kpr); + get_map.emplace("ExcIEEEST4B.ta", &get_ExcIEEEST4B_ta); + get_map.emplace("ExcIEEEST4B.thetap", &get_ExcIEEEST4B_thetap); + get_map.emplace("ExcIEEEST4B.vbmax", &get_ExcIEEEST4B_vbmax); + get_map.emplace("ExcIEEEST4B.vmmax", &get_ExcIEEEST4B_vmmax); + get_map.emplace("ExcIEEEST4B.vmmin", &get_ExcIEEEST4B_vmmin); + get_map.emplace("ExcIEEEST4B.vrmax", &get_ExcIEEEST4B_vrmax); + get_map.emplace("ExcIEEEST4B.vrmin", &get_ExcIEEEST4B_vrmin); + get_map.emplace("ExcIEEEST4B.xl", &get_ExcIEEEST4B_xl); } void ExcIEEEST4B::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEST4B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST4B::declare() { return BaseClassDefiner(ExcIEEEST4B::addConstructToMap, ExcIEEEST4B::addPrimitiveAssignFnsToMap, ExcIEEEST4B::addClassAssignFnsToMap, ExcIEEEST4B::debugName); } +std::map ExcIEEEST4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST4B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST4B.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST4B.hpp index b3ac3afe3..dab765741 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST4B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -78,8 +79,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -87,7 +95,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST4B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST5B.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST5B.cpp index 49f99553d..0f1a05d5e 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST5B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST5B.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST5B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST5B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tob1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tob2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.toc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.toc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tub1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tub2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tuc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tuc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST5B::ExcIEEEST5B() {} ExcIEEEST5B::~ExcIEEEST5B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST5B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST5B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST5B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.kr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.t1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tb1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tb2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tob1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tob2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.toc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.toc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tub1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tub2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tuc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tuc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST5B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST5B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST5B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST5B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST5B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST5B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST5B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST5B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* ExcIEEEST5B::debugString() const void ExcIEEEST5B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST5B", &ExcIEEEST5B_factory); + factory_map.emplace("ExcIEEEST5B", &ExcIEEEST5B_factory); } void ExcIEEEST5B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST5B.kc", &assign_ExcIEEEST5B_kc); - assign_map.emplace("cim:ExcIEEEST5B.kr", &assign_ExcIEEEST5B_kr); - assign_map.emplace("cim:ExcIEEEST5B.t1", &assign_ExcIEEEST5B_t1); - assign_map.emplace("cim:ExcIEEEST5B.tb1", &assign_ExcIEEEST5B_tb1); - assign_map.emplace("cim:ExcIEEEST5B.tb2", &assign_ExcIEEEST5B_tb2); - assign_map.emplace("cim:ExcIEEEST5B.tc1", &assign_ExcIEEEST5B_tc1); - assign_map.emplace("cim:ExcIEEEST5B.tc2", &assign_ExcIEEEST5B_tc2); - assign_map.emplace("cim:ExcIEEEST5B.tob1", &assign_ExcIEEEST5B_tob1); - assign_map.emplace("cim:ExcIEEEST5B.tob2", &assign_ExcIEEEST5B_tob2); - assign_map.emplace("cim:ExcIEEEST5B.toc1", &assign_ExcIEEEST5B_toc1); - assign_map.emplace("cim:ExcIEEEST5B.toc2", &assign_ExcIEEEST5B_toc2); - assign_map.emplace("cim:ExcIEEEST5B.tub1", &assign_ExcIEEEST5B_tub1); - assign_map.emplace("cim:ExcIEEEST5B.tub2", &assign_ExcIEEEST5B_tub2); - assign_map.emplace("cim:ExcIEEEST5B.tuc1", &assign_ExcIEEEST5B_tuc1); - assign_map.emplace("cim:ExcIEEEST5B.tuc2", &assign_ExcIEEEST5B_tuc2); - assign_map.emplace("cim:ExcIEEEST5B.vrmax", &assign_ExcIEEEST5B_vrmax); - assign_map.emplace("cim:ExcIEEEST5B.vrmin", &assign_ExcIEEEST5B_vrmin); + assign_map.emplace("ExcIEEEST5B.kc", &assign_ExcIEEEST5B_kc); + assign_map.emplace("ExcIEEEST5B.kr", &assign_ExcIEEEST5B_kr); + assign_map.emplace("ExcIEEEST5B.t1", &assign_ExcIEEEST5B_t1); + assign_map.emplace("ExcIEEEST5B.tb1", &assign_ExcIEEEST5B_tb1); + assign_map.emplace("ExcIEEEST5B.tb2", &assign_ExcIEEEST5B_tb2); + assign_map.emplace("ExcIEEEST5B.tc1", &assign_ExcIEEEST5B_tc1); + assign_map.emplace("ExcIEEEST5B.tc2", &assign_ExcIEEEST5B_tc2); + assign_map.emplace("ExcIEEEST5B.tob1", &assign_ExcIEEEST5B_tob1); + assign_map.emplace("ExcIEEEST5B.tob2", &assign_ExcIEEEST5B_tob2); + assign_map.emplace("ExcIEEEST5B.toc1", &assign_ExcIEEEST5B_toc1); + assign_map.emplace("ExcIEEEST5B.toc2", &assign_ExcIEEEST5B_toc2); + assign_map.emplace("ExcIEEEST5B.tub1", &assign_ExcIEEEST5B_tub1); + assign_map.emplace("ExcIEEEST5B.tub2", &assign_ExcIEEEST5B_tub2); + assign_map.emplace("ExcIEEEST5B.tuc1", &assign_ExcIEEEST5B_tuc1); + assign_map.emplace("ExcIEEEST5B.tuc2", &assign_ExcIEEEST5B_tuc2); + assign_map.emplace("ExcIEEEST5B.vrmax", &assign_ExcIEEEST5B_vrmax); + assign_map.emplace("ExcIEEEST5B.vrmin", &assign_ExcIEEEST5B_vrmin); } void ExcIEEEST5B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void ExcIEEEST5B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST5B.kc", &get_ExcIEEEST5B_kc); - get_map.emplace("cim:ExcIEEEST5B.kr", &get_ExcIEEEST5B_kr); - get_map.emplace("cim:ExcIEEEST5B.t1", &get_ExcIEEEST5B_t1); - get_map.emplace("cim:ExcIEEEST5B.tb1", &get_ExcIEEEST5B_tb1); - get_map.emplace("cim:ExcIEEEST5B.tb2", &get_ExcIEEEST5B_tb2); - get_map.emplace("cim:ExcIEEEST5B.tc1", &get_ExcIEEEST5B_tc1); - get_map.emplace("cim:ExcIEEEST5B.tc2", &get_ExcIEEEST5B_tc2); - get_map.emplace("cim:ExcIEEEST5B.tob1", &get_ExcIEEEST5B_tob1); - get_map.emplace("cim:ExcIEEEST5B.tob2", &get_ExcIEEEST5B_tob2); - get_map.emplace("cim:ExcIEEEST5B.toc1", &get_ExcIEEEST5B_toc1); - get_map.emplace("cim:ExcIEEEST5B.toc2", &get_ExcIEEEST5B_toc2); - get_map.emplace("cim:ExcIEEEST5B.tub1", &get_ExcIEEEST5B_tub1); - get_map.emplace("cim:ExcIEEEST5B.tub2", &get_ExcIEEEST5B_tub2); - get_map.emplace("cim:ExcIEEEST5B.tuc1", &get_ExcIEEEST5B_tuc1); - get_map.emplace("cim:ExcIEEEST5B.tuc2", &get_ExcIEEEST5B_tuc2); - get_map.emplace("cim:ExcIEEEST5B.vrmax", &get_ExcIEEEST5B_vrmax); - get_map.emplace("cim:ExcIEEEST5B.vrmin", &get_ExcIEEEST5B_vrmin); + get_map.emplace("ExcIEEEST5B.kc", &get_ExcIEEEST5B_kc); + get_map.emplace("ExcIEEEST5B.kr", &get_ExcIEEEST5B_kr); + get_map.emplace("ExcIEEEST5B.t1", &get_ExcIEEEST5B_t1); + get_map.emplace("ExcIEEEST5B.tb1", &get_ExcIEEEST5B_tb1); + get_map.emplace("ExcIEEEST5B.tb2", &get_ExcIEEEST5B_tb2); + get_map.emplace("ExcIEEEST5B.tc1", &get_ExcIEEEST5B_tc1); + get_map.emplace("ExcIEEEST5B.tc2", &get_ExcIEEEST5B_tc2); + get_map.emplace("ExcIEEEST5B.tob1", &get_ExcIEEEST5B_tob1); + get_map.emplace("ExcIEEEST5B.tob2", &get_ExcIEEEST5B_tob2); + get_map.emplace("ExcIEEEST5B.toc1", &get_ExcIEEEST5B_toc1); + get_map.emplace("ExcIEEEST5B.toc2", &get_ExcIEEEST5B_toc2); + get_map.emplace("ExcIEEEST5B.tub1", &get_ExcIEEEST5B_tub1); + get_map.emplace("ExcIEEEST5B.tub2", &get_ExcIEEEST5B_tub2); + get_map.emplace("ExcIEEEST5B.tuc1", &get_ExcIEEEST5B_tuc1); + get_map.emplace("ExcIEEEST5B.tuc2", &get_ExcIEEEST5B_tuc2); + get_map.emplace("ExcIEEEST5B.vrmax", &get_ExcIEEEST5B_vrmax); + get_map.emplace("ExcIEEEST5B.vrmin", &get_ExcIEEEST5B_vrmin); } void ExcIEEEST5B::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void ExcIEEEST5B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST5B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST5B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST5B::declare() { return BaseClassDefiner(ExcIEEEST5B::addConstructToMap, ExcIEEEST5B::addPrimitiveAssignFnsToMap, ExcIEEEST5B::addClassAssignFnsToMap, ExcIEEEST5B::debugName); } +std::map ExcIEEEST5B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST5B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST5B.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST5B.hpp index 165696a4d..108d9cf7e 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST5B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST5B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -80,8 +81,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -89,7 +97,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST5B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST6B.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST6B.cpp index 46aac194f..bd3a7fea5 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST6B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST6B.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST6B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST6B.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kci", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST6B::ExcIEEEST6B() {} ExcIEEEST6B::~ExcIEEEST6B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST6B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST6B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST6B.ilr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kci", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kff", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.klr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.km", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.tg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST6B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST6B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST6B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST6B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST6B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST6B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST6B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST6B_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcIEEEST6B::debugString() const void ExcIEEEST6B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST6B", &ExcIEEEST6B_factory); + factory_map.emplace("ExcIEEEST6B", &ExcIEEEST6B_factory); } void ExcIEEEST6B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST6B.ilr", &assign_ExcIEEEST6B_ilr); - assign_map.emplace("cim:ExcIEEEST6B.kci", &assign_ExcIEEEST6B_kci); - assign_map.emplace("cim:ExcIEEEST6B.kff", &assign_ExcIEEEST6B_kff); - assign_map.emplace("cim:ExcIEEEST6B.kg", &assign_ExcIEEEST6B_kg); - assign_map.emplace("cim:ExcIEEEST6B.kia", &assign_ExcIEEEST6B_kia); - assign_map.emplace("cim:ExcIEEEST6B.klr", &assign_ExcIEEEST6B_klr); - assign_map.emplace("cim:ExcIEEEST6B.km", &assign_ExcIEEEST6B_km); - assign_map.emplace("cim:ExcIEEEST6B.kpa", &assign_ExcIEEEST6B_kpa); - assign_map.emplace("cim:ExcIEEEST6B.oelin", &assign_ExcIEEEST6B_oelin); - assign_map.emplace("cim:ExcIEEEST6B.tg", &assign_ExcIEEEST6B_tg); - assign_map.emplace("cim:ExcIEEEST6B.vamax", &assign_ExcIEEEST6B_vamax); - assign_map.emplace("cim:ExcIEEEST6B.vamin", &assign_ExcIEEEST6B_vamin); - assign_map.emplace("cim:ExcIEEEST6B.vrmax", &assign_ExcIEEEST6B_vrmax); - assign_map.emplace("cim:ExcIEEEST6B.vrmin", &assign_ExcIEEEST6B_vrmin); + assign_map.emplace("ExcIEEEST6B.ilr", &assign_ExcIEEEST6B_ilr); + assign_map.emplace("ExcIEEEST6B.kci", &assign_ExcIEEEST6B_kci); + assign_map.emplace("ExcIEEEST6B.kff", &assign_ExcIEEEST6B_kff); + assign_map.emplace("ExcIEEEST6B.kg", &assign_ExcIEEEST6B_kg); + assign_map.emplace("ExcIEEEST6B.kia", &assign_ExcIEEEST6B_kia); + assign_map.emplace("ExcIEEEST6B.klr", &assign_ExcIEEEST6B_klr); + assign_map.emplace("ExcIEEEST6B.km", &assign_ExcIEEEST6B_km); + assign_map.emplace("ExcIEEEST6B.kpa", &assign_ExcIEEEST6B_kpa); + assign_map.emplace("ExcIEEEST6B.oelin", &assign_ExcIEEEST6B_oelin); + assign_map.emplace("ExcIEEEST6B.tg", &assign_ExcIEEEST6B_tg); + assign_map.emplace("ExcIEEEST6B.vamax", &assign_ExcIEEEST6B_vamax); + assign_map.emplace("ExcIEEEST6B.vamin", &assign_ExcIEEEST6B_vamin); + assign_map.emplace("ExcIEEEST6B.vrmax", &assign_ExcIEEEST6B_vrmax); + assign_map.emplace("ExcIEEEST6B.vrmin", &assign_ExcIEEEST6B_vrmin); } void ExcIEEEST6B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,19 +526,19 @@ void ExcIEEEST6B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST6B.ilr", &get_ExcIEEEST6B_ilr); - get_map.emplace("cim:ExcIEEEST6B.kci", &get_ExcIEEEST6B_kci); - get_map.emplace("cim:ExcIEEEST6B.kff", &get_ExcIEEEST6B_kff); - get_map.emplace("cim:ExcIEEEST6B.kg", &get_ExcIEEEST6B_kg); - get_map.emplace("cim:ExcIEEEST6B.kia", &get_ExcIEEEST6B_kia); - get_map.emplace("cim:ExcIEEEST6B.klr", &get_ExcIEEEST6B_klr); - get_map.emplace("cim:ExcIEEEST6B.km", &get_ExcIEEEST6B_km); - get_map.emplace("cim:ExcIEEEST6B.kpa", &get_ExcIEEEST6B_kpa); - get_map.emplace("cim:ExcIEEEST6B.tg", &get_ExcIEEEST6B_tg); - get_map.emplace("cim:ExcIEEEST6B.vamax", &get_ExcIEEEST6B_vamax); - get_map.emplace("cim:ExcIEEEST6B.vamin", &get_ExcIEEEST6B_vamin); - get_map.emplace("cim:ExcIEEEST6B.vrmax", &get_ExcIEEEST6B_vrmax); - get_map.emplace("cim:ExcIEEEST6B.vrmin", &get_ExcIEEEST6B_vrmin); + get_map.emplace("ExcIEEEST6B.ilr", &get_ExcIEEEST6B_ilr); + get_map.emplace("ExcIEEEST6B.kci", &get_ExcIEEEST6B_kci); + get_map.emplace("ExcIEEEST6B.kff", &get_ExcIEEEST6B_kff); + get_map.emplace("ExcIEEEST6B.kg", &get_ExcIEEEST6B_kg); + get_map.emplace("ExcIEEEST6B.kia", &get_ExcIEEEST6B_kia); + get_map.emplace("ExcIEEEST6B.klr", &get_ExcIEEEST6B_klr); + get_map.emplace("ExcIEEEST6B.km", &get_ExcIEEEST6B_km); + get_map.emplace("ExcIEEEST6B.kpa", &get_ExcIEEEST6B_kpa); + get_map.emplace("ExcIEEEST6B.tg", &get_ExcIEEEST6B_tg); + get_map.emplace("ExcIEEEST6B.vamax", &get_ExcIEEEST6B_vamax); + get_map.emplace("ExcIEEEST6B.vamin", &get_ExcIEEEST6B_vamin); + get_map.emplace("ExcIEEEST6B.vrmax", &get_ExcIEEEST6B_vrmax); + get_map.emplace("ExcIEEEST6B.vrmin", &get_ExcIEEEST6B_vrmin); } void ExcIEEEST6B::addClassGetFnsToMap(std::map& get_map) const @@ -517,7 +549,13 @@ void ExcIEEEST6B::addClassGetFnsToMap(std::map& void ExcIEEEST6B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST6B.oelin", &get_ExcIEEEST6B_oelin); + get_map.emplace("ExcIEEEST6B.oelin", &get_ExcIEEEST6B_oelin); +} + +bool ExcIEEEST6B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST6B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST6B::declare() @@ -525,6 +563,14 @@ const BaseClassDefiner ExcIEEEST6B::declare() return BaseClassDefiner(ExcIEEEST6B::addConstructToMap, ExcIEEEST6B::addPrimitiveAssignFnsToMap, ExcIEEEST6B::addClassAssignFnsToMap, ExcIEEEST6B::debugName); } +std::map ExcIEEEST6B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST6B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST6B.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST6B.hpp index 554b6609b..5c11dbc49 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST6B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST6B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST6BOELselectorKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST6B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST7B.cpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST7B.cpp index 20513a7f9..76d8c6b8a 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST7B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST7B.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST7B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST7B::ExcIEEEST7B() {} ExcIEEEST7B::~ExcIEEEST7B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST7B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST7B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST7B.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST7B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST7B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST7B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST7B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST7B_kh(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcIEEEST7B::debugString() const void ExcIEEEST7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST7B", &ExcIEEEST7B_factory); + factory_map.emplace("ExcIEEEST7B", &ExcIEEEST7B_factory); } void ExcIEEEST7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST7B.kh", &assign_ExcIEEEST7B_kh); - assign_map.emplace("cim:ExcIEEEST7B.kia", &assign_ExcIEEEST7B_kia); - assign_map.emplace("cim:ExcIEEEST7B.kl", &assign_ExcIEEEST7B_kl); - assign_map.emplace("cim:ExcIEEEST7B.kpa", &assign_ExcIEEEST7B_kpa); - assign_map.emplace("cim:ExcIEEEST7B.oelin", &assign_ExcIEEEST7B_oelin); - assign_map.emplace("cim:ExcIEEEST7B.tb", &assign_ExcIEEEST7B_tb); - assign_map.emplace("cim:ExcIEEEST7B.tc", &assign_ExcIEEEST7B_tc); - assign_map.emplace("cim:ExcIEEEST7B.tf", &assign_ExcIEEEST7B_tf); - assign_map.emplace("cim:ExcIEEEST7B.tg", &assign_ExcIEEEST7B_tg); - assign_map.emplace("cim:ExcIEEEST7B.tia", &assign_ExcIEEEST7B_tia); - assign_map.emplace("cim:ExcIEEEST7B.uelin", &assign_ExcIEEEST7B_uelin); - assign_map.emplace("cim:ExcIEEEST7B.vmax", &assign_ExcIEEEST7B_vmax); - assign_map.emplace("cim:ExcIEEEST7B.vmin", &assign_ExcIEEEST7B_vmin); - assign_map.emplace("cim:ExcIEEEST7B.vrmax", &assign_ExcIEEEST7B_vrmax); - assign_map.emplace("cim:ExcIEEEST7B.vrmin", &assign_ExcIEEEST7B_vrmin); + assign_map.emplace("ExcIEEEST7B.kh", &assign_ExcIEEEST7B_kh); + assign_map.emplace("ExcIEEEST7B.kia", &assign_ExcIEEEST7B_kia); + assign_map.emplace("ExcIEEEST7B.kl", &assign_ExcIEEEST7B_kl); + assign_map.emplace("ExcIEEEST7B.kpa", &assign_ExcIEEEST7B_kpa); + assign_map.emplace("ExcIEEEST7B.oelin", &assign_ExcIEEEST7B_oelin); + assign_map.emplace("ExcIEEEST7B.tb", &assign_ExcIEEEST7B_tb); + assign_map.emplace("ExcIEEEST7B.tc", &assign_ExcIEEEST7B_tc); + assign_map.emplace("ExcIEEEST7B.tf", &assign_ExcIEEEST7B_tf); + assign_map.emplace("ExcIEEEST7B.tg", &assign_ExcIEEEST7B_tg); + assign_map.emplace("ExcIEEEST7B.tia", &assign_ExcIEEEST7B_tia); + assign_map.emplace("ExcIEEEST7B.uelin", &assign_ExcIEEEST7B_uelin); + assign_map.emplace("ExcIEEEST7B.vmax", &assign_ExcIEEEST7B_vmax); + assign_map.emplace("ExcIEEEST7B.vmin", &assign_ExcIEEEST7B_vmin); + assign_map.emplace("ExcIEEEST7B.vrmax", &assign_ExcIEEEST7B_vrmax); + assign_map.emplace("ExcIEEEST7B.vrmin", &assign_ExcIEEEST7B_vrmin); } void ExcIEEEST7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,19 +557,19 @@ void ExcIEEEST7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST7B.kh", &get_ExcIEEEST7B_kh); - get_map.emplace("cim:ExcIEEEST7B.kia", &get_ExcIEEEST7B_kia); - get_map.emplace("cim:ExcIEEEST7B.kl", &get_ExcIEEEST7B_kl); - get_map.emplace("cim:ExcIEEEST7B.kpa", &get_ExcIEEEST7B_kpa); - get_map.emplace("cim:ExcIEEEST7B.tb", &get_ExcIEEEST7B_tb); - get_map.emplace("cim:ExcIEEEST7B.tc", &get_ExcIEEEST7B_tc); - get_map.emplace("cim:ExcIEEEST7B.tf", &get_ExcIEEEST7B_tf); - get_map.emplace("cim:ExcIEEEST7B.tg", &get_ExcIEEEST7B_tg); - get_map.emplace("cim:ExcIEEEST7B.tia", &get_ExcIEEEST7B_tia); - get_map.emplace("cim:ExcIEEEST7B.vmax", &get_ExcIEEEST7B_vmax); - get_map.emplace("cim:ExcIEEEST7B.vmin", &get_ExcIEEEST7B_vmin); - get_map.emplace("cim:ExcIEEEST7B.vrmax", &get_ExcIEEEST7B_vrmax); - get_map.emplace("cim:ExcIEEEST7B.vrmin", &get_ExcIEEEST7B_vrmin); + get_map.emplace("ExcIEEEST7B.kh", &get_ExcIEEEST7B_kh); + get_map.emplace("ExcIEEEST7B.kia", &get_ExcIEEEST7B_kia); + get_map.emplace("ExcIEEEST7B.kl", &get_ExcIEEEST7B_kl); + get_map.emplace("ExcIEEEST7B.kpa", &get_ExcIEEEST7B_kpa); + get_map.emplace("ExcIEEEST7B.tb", &get_ExcIEEEST7B_tb); + get_map.emplace("ExcIEEEST7B.tc", &get_ExcIEEEST7B_tc); + get_map.emplace("ExcIEEEST7B.tf", &get_ExcIEEEST7B_tf); + get_map.emplace("ExcIEEEST7B.tg", &get_ExcIEEEST7B_tg); + get_map.emplace("ExcIEEEST7B.tia", &get_ExcIEEEST7B_tia); + get_map.emplace("ExcIEEEST7B.vmax", &get_ExcIEEEST7B_vmax); + get_map.emplace("ExcIEEEST7B.vmin", &get_ExcIEEEST7B_vmin); + get_map.emplace("ExcIEEEST7B.vrmax", &get_ExcIEEEST7B_vrmax); + get_map.emplace("ExcIEEEST7B.vrmin", &get_ExcIEEEST7B_vrmin); } void ExcIEEEST7B::addClassGetFnsToMap(std::map& get_map) const @@ -548,8 +580,14 @@ void ExcIEEEST7B::addClassGetFnsToMap(std::map& void ExcIEEEST7B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST7B.oelin", &get_ExcIEEEST7B_oelin); - get_map.emplace("cim:ExcIEEEST7B.uelin", &get_ExcIEEEST7B_uelin); + get_map.emplace("ExcIEEEST7B.oelin", &get_ExcIEEEST7B_oelin); + get_map.emplace("ExcIEEEST7B.uelin", &get_ExcIEEEST7B_uelin); +} + +bool ExcIEEEST7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST7B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST7B::declare() @@ -557,6 +595,14 @@ const BaseClassDefiner ExcIEEEST7B::declare() return BaseClassDefiner(ExcIEEEST7B::addConstructToMap, ExcIEEEST7B::addPrimitiveAssignFnsToMap, ExcIEEEST7B::addClassAssignFnsToMap, ExcIEEEST7B::debugName); } +std::map ExcIEEEST7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST7B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcIEEEST7B.hpp b/CGMES_2.4.13_18DEC2013/ExcIEEEST7B.hpp index d1428a0fe..fa841cf57 100644 --- a/CGMES_2.4.13_18DEC2013/ExcIEEEST7B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcIEEEST7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST7BOELselectorKind.hpp" #include "ExcST7BUELselectorKind.hpp" #include "PU.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST7B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcOEX3T.cpp b/CGMES_2.4.13_18DEC2013/ExcOEX3T.cpp index 3fc422d40..d9723b03a 100644 --- a/CGMES_2.4.13_18DEC2013/ExcOEX3T.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcOEX3T.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcOEX3T(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcOEX3T.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.see1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.see2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcOEX3T::ExcOEX3T() {} ExcOEX3T::~ExcOEX3T() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcOEX3T.e1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.e2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.ka", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kc", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kd", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.ke", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kf", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.see1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.see2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t3", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t4", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t5", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t6", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.te", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.tf", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcOEX3T::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcOEX3T::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcOEX3T::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcOEX3T::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcOEX3T::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcOEX3T::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcOEX3T::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcOEX3T::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcOEX3T::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcOEX3T_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcOEX3T::debugString() const void ExcOEX3T::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcOEX3T", &ExcOEX3T_factory); + factory_map.emplace("ExcOEX3T", &ExcOEX3T_factory); } void ExcOEX3T::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcOEX3T.e1", &assign_ExcOEX3T_e1); - assign_map.emplace("cim:ExcOEX3T.e2", &assign_ExcOEX3T_e2); - assign_map.emplace("cim:ExcOEX3T.ka", &assign_ExcOEX3T_ka); - assign_map.emplace("cim:ExcOEX3T.kc", &assign_ExcOEX3T_kc); - assign_map.emplace("cim:ExcOEX3T.kd", &assign_ExcOEX3T_kd); - assign_map.emplace("cim:ExcOEX3T.ke", &assign_ExcOEX3T_ke); - assign_map.emplace("cim:ExcOEX3T.kf", &assign_ExcOEX3T_kf); - assign_map.emplace("cim:ExcOEX3T.see1", &assign_ExcOEX3T_see1); - assign_map.emplace("cim:ExcOEX3T.see2", &assign_ExcOEX3T_see2); - assign_map.emplace("cim:ExcOEX3T.t1", &assign_ExcOEX3T_t1); - assign_map.emplace("cim:ExcOEX3T.t2", &assign_ExcOEX3T_t2); - assign_map.emplace("cim:ExcOEX3T.t3", &assign_ExcOEX3T_t3); - assign_map.emplace("cim:ExcOEX3T.t4", &assign_ExcOEX3T_t4); - assign_map.emplace("cim:ExcOEX3T.t5", &assign_ExcOEX3T_t5); - assign_map.emplace("cim:ExcOEX3T.t6", &assign_ExcOEX3T_t6); - assign_map.emplace("cim:ExcOEX3T.te", &assign_ExcOEX3T_te); - assign_map.emplace("cim:ExcOEX3T.tf", &assign_ExcOEX3T_tf); - assign_map.emplace("cim:ExcOEX3T.vrmax", &assign_ExcOEX3T_vrmax); - assign_map.emplace("cim:ExcOEX3T.vrmin", &assign_ExcOEX3T_vrmin); + assign_map.emplace("ExcOEX3T.e1", &assign_ExcOEX3T_e1); + assign_map.emplace("ExcOEX3T.e2", &assign_ExcOEX3T_e2); + assign_map.emplace("ExcOEX3T.ka", &assign_ExcOEX3T_ka); + assign_map.emplace("ExcOEX3T.kc", &assign_ExcOEX3T_kc); + assign_map.emplace("ExcOEX3T.kd", &assign_ExcOEX3T_kd); + assign_map.emplace("ExcOEX3T.ke", &assign_ExcOEX3T_ke); + assign_map.emplace("ExcOEX3T.kf", &assign_ExcOEX3T_kf); + assign_map.emplace("ExcOEX3T.see1", &assign_ExcOEX3T_see1); + assign_map.emplace("ExcOEX3T.see2", &assign_ExcOEX3T_see2); + assign_map.emplace("ExcOEX3T.t1", &assign_ExcOEX3T_t1); + assign_map.emplace("ExcOEX3T.t2", &assign_ExcOEX3T_t2); + assign_map.emplace("ExcOEX3T.t3", &assign_ExcOEX3T_t3); + assign_map.emplace("ExcOEX3T.t4", &assign_ExcOEX3T_t4); + assign_map.emplace("ExcOEX3T.t5", &assign_ExcOEX3T_t5); + assign_map.emplace("ExcOEX3T.t6", &assign_ExcOEX3T_t6); + assign_map.emplace("ExcOEX3T.te", &assign_ExcOEX3T_te); + assign_map.emplace("ExcOEX3T.tf", &assign_ExcOEX3T_tf); + assign_map.emplace("ExcOEX3T.vrmax", &assign_ExcOEX3T_vrmax); + assign_map.emplace("ExcOEX3T.vrmin", &assign_ExcOEX3T_vrmin); } void ExcOEX3T::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcOEX3T::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcOEX3T.e1", &get_ExcOEX3T_e1); - get_map.emplace("cim:ExcOEX3T.e2", &get_ExcOEX3T_e2); - get_map.emplace("cim:ExcOEX3T.ka", &get_ExcOEX3T_ka); - get_map.emplace("cim:ExcOEX3T.kc", &get_ExcOEX3T_kc); - get_map.emplace("cim:ExcOEX3T.kd", &get_ExcOEX3T_kd); - get_map.emplace("cim:ExcOEX3T.ke", &get_ExcOEX3T_ke); - get_map.emplace("cim:ExcOEX3T.kf", &get_ExcOEX3T_kf); - get_map.emplace("cim:ExcOEX3T.see1", &get_ExcOEX3T_see1); - get_map.emplace("cim:ExcOEX3T.see2", &get_ExcOEX3T_see2); - get_map.emplace("cim:ExcOEX3T.t1", &get_ExcOEX3T_t1); - get_map.emplace("cim:ExcOEX3T.t2", &get_ExcOEX3T_t2); - get_map.emplace("cim:ExcOEX3T.t3", &get_ExcOEX3T_t3); - get_map.emplace("cim:ExcOEX3T.t4", &get_ExcOEX3T_t4); - get_map.emplace("cim:ExcOEX3T.t5", &get_ExcOEX3T_t5); - get_map.emplace("cim:ExcOEX3T.t6", &get_ExcOEX3T_t6); - get_map.emplace("cim:ExcOEX3T.te", &get_ExcOEX3T_te); - get_map.emplace("cim:ExcOEX3T.tf", &get_ExcOEX3T_tf); - get_map.emplace("cim:ExcOEX3T.vrmax", &get_ExcOEX3T_vrmax); - get_map.emplace("cim:ExcOEX3T.vrmin", &get_ExcOEX3T_vrmin); + get_map.emplace("ExcOEX3T.e1", &get_ExcOEX3T_e1); + get_map.emplace("ExcOEX3T.e2", &get_ExcOEX3T_e2); + get_map.emplace("ExcOEX3T.ka", &get_ExcOEX3T_ka); + get_map.emplace("ExcOEX3T.kc", &get_ExcOEX3T_kc); + get_map.emplace("ExcOEX3T.kd", &get_ExcOEX3T_kd); + get_map.emplace("ExcOEX3T.ke", &get_ExcOEX3T_ke); + get_map.emplace("ExcOEX3T.kf", &get_ExcOEX3T_kf); + get_map.emplace("ExcOEX3T.see1", &get_ExcOEX3T_see1); + get_map.emplace("ExcOEX3T.see2", &get_ExcOEX3T_see2); + get_map.emplace("ExcOEX3T.t1", &get_ExcOEX3T_t1); + get_map.emplace("ExcOEX3T.t2", &get_ExcOEX3T_t2); + get_map.emplace("ExcOEX3T.t3", &get_ExcOEX3T_t3); + get_map.emplace("ExcOEX3T.t4", &get_ExcOEX3T_t4); + get_map.emplace("ExcOEX3T.t5", &get_ExcOEX3T_t5); + get_map.emplace("ExcOEX3T.t6", &get_ExcOEX3T_t6); + get_map.emplace("ExcOEX3T.te", &get_ExcOEX3T_te); + get_map.emplace("ExcOEX3T.tf", &get_ExcOEX3T_tf); + get_map.emplace("ExcOEX3T.vrmax", &get_ExcOEX3T_vrmax); + get_map.emplace("ExcOEX3T.vrmin", &get_ExcOEX3T_vrmin); } void ExcOEX3T::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcOEX3T::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcOEX3T::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcOEX3T" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcOEX3T::declare() { return BaseClassDefiner(ExcOEX3T::addConstructToMap, ExcOEX3T::addPrimitiveAssignFnsToMap, ExcOEX3T::addClassAssignFnsToMap, ExcOEX3T::debugName); } +std::map ExcOEX3T::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcOEX3T_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcOEX3T.hpp b/CGMES_2.4.13_18DEC2013/ExcOEX3T.hpp index da7bc97eb..98f4229d5 100644 --- a/CGMES_2.4.13_18DEC2013/ExcOEX3T.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcOEX3T.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -86,8 +87,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -95,7 +103,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcOEX3T_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcPIC.cpp b/CGMES_2.4.13_18DEC2013/ExcPIC.cpp index dbace3479..3cc7cd35b 100644 --- a/CGMES_2.4.13_18DEC2013/ExcPIC.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcPIC.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcPIC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcPIC.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcPIC::ExcPIC() {} ExcPIC::~ExcPIC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcPIC.e1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.e2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcPIC.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ka", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kc", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ke", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kf", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ki", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kp", { CGMESProfile::DY, } }, - { "cim:ExcPIC.se1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.se2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta3", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta4", { CGMESProfile::DY, } }, - { "cim:ExcPIC.te", { CGMESProfile::DY, } }, - { "cim:ExcPIC.tf1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.tf2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vr1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vr2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcPIC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcPIC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcPIC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcPIC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcPIC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcPIC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcPIC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcPIC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcPIC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcPIC_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcPIC::debugString() const void ExcPIC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcPIC", &ExcPIC_factory); + factory_map.emplace("ExcPIC", &ExcPIC_factory); } void ExcPIC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcPIC.e1", &assign_ExcPIC_e1); - assign_map.emplace("cim:ExcPIC.e2", &assign_ExcPIC_e2); - assign_map.emplace("cim:ExcPIC.efdmax", &assign_ExcPIC_efdmax); - assign_map.emplace("cim:ExcPIC.efdmin", &assign_ExcPIC_efdmin); - assign_map.emplace("cim:ExcPIC.ka", &assign_ExcPIC_ka); - assign_map.emplace("cim:ExcPIC.kc", &assign_ExcPIC_kc); - assign_map.emplace("cim:ExcPIC.ke", &assign_ExcPIC_ke); - assign_map.emplace("cim:ExcPIC.kf", &assign_ExcPIC_kf); - assign_map.emplace("cim:ExcPIC.ki", &assign_ExcPIC_ki); - assign_map.emplace("cim:ExcPIC.kp", &assign_ExcPIC_kp); - assign_map.emplace("cim:ExcPIC.se1", &assign_ExcPIC_se1); - assign_map.emplace("cim:ExcPIC.se2", &assign_ExcPIC_se2); - assign_map.emplace("cim:ExcPIC.ta1", &assign_ExcPIC_ta1); - assign_map.emplace("cim:ExcPIC.ta2", &assign_ExcPIC_ta2); - assign_map.emplace("cim:ExcPIC.ta3", &assign_ExcPIC_ta3); - assign_map.emplace("cim:ExcPIC.ta4", &assign_ExcPIC_ta4); - assign_map.emplace("cim:ExcPIC.te", &assign_ExcPIC_te); - assign_map.emplace("cim:ExcPIC.tf1", &assign_ExcPIC_tf1); - assign_map.emplace("cim:ExcPIC.tf2", &assign_ExcPIC_tf2); - assign_map.emplace("cim:ExcPIC.vr1", &assign_ExcPIC_vr1); - assign_map.emplace("cim:ExcPIC.vr2", &assign_ExcPIC_vr2); - assign_map.emplace("cim:ExcPIC.vrmax", &assign_ExcPIC_vrmax); - assign_map.emplace("cim:ExcPIC.vrmin", &assign_ExcPIC_vrmin); + assign_map.emplace("ExcPIC.e1", &assign_ExcPIC_e1); + assign_map.emplace("ExcPIC.e2", &assign_ExcPIC_e2); + assign_map.emplace("ExcPIC.efdmax", &assign_ExcPIC_efdmax); + assign_map.emplace("ExcPIC.efdmin", &assign_ExcPIC_efdmin); + assign_map.emplace("ExcPIC.ka", &assign_ExcPIC_ka); + assign_map.emplace("ExcPIC.kc", &assign_ExcPIC_kc); + assign_map.emplace("ExcPIC.ke", &assign_ExcPIC_ke); + assign_map.emplace("ExcPIC.kf", &assign_ExcPIC_kf); + assign_map.emplace("ExcPIC.ki", &assign_ExcPIC_ki); + assign_map.emplace("ExcPIC.kp", &assign_ExcPIC_kp); + assign_map.emplace("ExcPIC.se1", &assign_ExcPIC_se1); + assign_map.emplace("ExcPIC.se2", &assign_ExcPIC_se2); + assign_map.emplace("ExcPIC.ta1", &assign_ExcPIC_ta1); + assign_map.emplace("ExcPIC.ta2", &assign_ExcPIC_ta2); + assign_map.emplace("ExcPIC.ta3", &assign_ExcPIC_ta3); + assign_map.emplace("ExcPIC.ta4", &assign_ExcPIC_ta4); + assign_map.emplace("ExcPIC.te", &assign_ExcPIC_te); + assign_map.emplace("ExcPIC.tf1", &assign_ExcPIC_tf1); + assign_map.emplace("ExcPIC.tf2", &assign_ExcPIC_tf2); + assign_map.emplace("ExcPIC.vr1", &assign_ExcPIC_vr1); + assign_map.emplace("ExcPIC.vr2", &assign_ExcPIC_vr2); + assign_map.emplace("ExcPIC.vrmax", &assign_ExcPIC_vrmax); + assign_map.emplace("ExcPIC.vrmin", &assign_ExcPIC_vrmin); } void ExcPIC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcPIC::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcPIC.e1", &get_ExcPIC_e1); - get_map.emplace("cim:ExcPIC.e2", &get_ExcPIC_e2); - get_map.emplace("cim:ExcPIC.efdmax", &get_ExcPIC_efdmax); - get_map.emplace("cim:ExcPIC.efdmin", &get_ExcPIC_efdmin); - get_map.emplace("cim:ExcPIC.ka", &get_ExcPIC_ka); - get_map.emplace("cim:ExcPIC.kc", &get_ExcPIC_kc); - get_map.emplace("cim:ExcPIC.ke", &get_ExcPIC_ke); - get_map.emplace("cim:ExcPIC.kf", &get_ExcPIC_kf); - get_map.emplace("cim:ExcPIC.ki", &get_ExcPIC_ki); - get_map.emplace("cim:ExcPIC.kp", &get_ExcPIC_kp); - get_map.emplace("cim:ExcPIC.se1", &get_ExcPIC_se1); - get_map.emplace("cim:ExcPIC.se2", &get_ExcPIC_se2); - get_map.emplace("cim:ExcPIC.ta1", &get_ExcPIC_ta1); - get_map.emplace("cim:ExcPIC.ta2", &get_ExcPIC_ta2); - get_map.emplace("cim:ExcPIC.ta3", &get_ExcPIC_ta3); - get_map.emplace("cim:ExcPIC.ta4", &get_ExcPIC_ta4); - get_map.emplace("cim:ExcPIC.te", &get_ExcPIC_te); - get_map.emplace("cim:ExcPIC.tf1", &get_ExcPIC_tf1); - get_map.emplace("cim:ExcPIC.tf2", &get_ExcPIC_tf2); - get_map.emplace("cim:ExcPIC.vr1", &get_ExcPIC_vr1); - get_map.emplace("cim:ExcPIC.vr2", &get_ExcPIC_vr2); - get_map.emplace("cim:ExcPIC.vrmax", &get_ExcPIC_vrmax); - get_map.emplace("cim:ExcPIC.vrmin", &get_ExcPIC_vrmin); + get_map.emplace("ExcPIC.e1", &get_ExcPIC_e1); + get_map.emplace("ExcPIC.e2", &get_ExcPIC_e2); + get_map.emplace("ExcPIC.efdmax", &get_ExcPIC_efdmax); + get_map.emplace("ExcPIC.efdmin", &get_ExcPIC_efdmin); + get_map.emplace("ExcPIC.ka", &get_ExcPIC_ka); + get_map.emplace("ExcPIC.kc", &get_ExcPIC_kc); + get_map.emplace("ExcPIC.ke", &get_ExcPIC_ke); + get_map.emplace("ExcPIC.kf", &get_ExcPIC_kf); + get_map.emplace("ExcPIC.ki", &get_ExcPIC_ki); + get_map.emplace("ExcPIC.kp", &get_ExcPIC_kp); + get_map.emplace("ExcPIC.se1", &get_ExcPIC_se1); + get_map.emplace("ExcPIC.se2", &get_ExcPIC_se2); + get_map.emplace("ExcPIC.ta1", &get_ExcPIC_ta1); + get_map.emplace("ExcPIC.ta2", &get_ExcPIC_ta2); + get_map.emplace("ExcPIC.ta3", &get_ExcPIC_ta3); + get_map.emplace("ExcPIC.ta4", &get_ExcPIC_ta4); + get_map.emplace("ExcPIC.te", &get_ExcPIC_te); + get_map.emplace("ExcPIC.tf1", &get_ExcPIC_tf1); + get_map.emplace("ExcPIC.tf2", &get_ExcPIC_tf2); + get_map.emplace("ExcPIC.vr1", &get_ExcPIC_vr1); + get_map.emplace("ExcPIC.vr2", &get_ExcPIC_vr2); + get_map.emplace("ExcPIC.vrmax", &get_ExcPIC_vrmax); + get_map.emplace("ExcPIC.vrmin", &get_ExcPIC_vrmin); } void ExcPIC::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcPIC::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcPIC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcPIC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcPIC::declare() { return BaseClassDefiner(ExcPIC::addConstructToMap, ExcPIC::addPrimitiveAssignFnsToMap, ExcPIC::addClassAssignFnsToMap, ExcPIC::debugName); } +std::map ExcPIC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcPIC_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcPIC.hpp b/CGMES_2.4.13_18DEC2013/ExcPIC.hpp index 152d86aa7..6d119f178 100644 --- a/CGMES_2.4.13_18DEC2013/ExcPIC.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcPIC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -98,8 +99,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -107,7 +115,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcPIC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcREXS.cpp b/CGMES_2.4.13_18DEC2013/ExcREXS.cpp index 7c198209c..caeb500dd 100644 --- a/CGMES_2.4.13_18DEC2013/ExcREXS.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcREXS.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcREXS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcREXS.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.fbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.flimf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kefd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kii", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvphz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.nvphz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vcmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vfmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcREXS::ExcREXS() {} ExcREXS::~ExcREXS() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcREXS.e1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.e2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.fbf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.flimf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kc", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kd", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ke", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kefd", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kh", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kii", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kip", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ks", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvi", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvp", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvphz", { CGMESProfile::DY, } }, - { "cim:ExcREXS.nvphz", { CGMESProfile::DY, } }, - { "cim:ExcREXS.se1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.se2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ta", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tb1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tb2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tc1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tc2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.te", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tp", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vcmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vfmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vfmin", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vimax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcREXS.xc", { CGMESProfile::DY, } }, -}; - -std::list -ExcREXS::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcREXS::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcREXS::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcREXS::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcREXS::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcREXS::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcREXS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcREXS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcREXS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcREXS_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* ExcREXS::debugString() const void ExcREXS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcREXS", &ExcREXS_factory); + factory_map.emplace("ExcREXS", &ExcREXS_factory); } void ExcREXS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcREXS.e1", &assign_ExcREXS_e1); - assign_map.emplace("cim:ExcREXS.e2", &assign_ExcREXS_e2); - assign_map.emplace("cim:ExcREXS.fbf", &assign_ExcREXS_fbf); - assign_map.emplace("cim:ExcREXS.flimf", &assign_ExcREXS_flimf); - assign_map.emplace("cim:ExcREXS.kc", &assign_ExcREXS_kc); - assign_map.emplace("cim:ExcREXS.kd", &assign_ExcREXS_kd); - assign_map.emplace("cim:ExcREXS.ke", &assign_ExcREXS_ke); - assign_map.emplace("cim:ExcREXS.kefd", &assign_ExcREXS_kefd); - assign_map.emplace("cim:ExcREXS.kf", &assign_ExcREXS_kf); - assign_map.emplace("cim:ExcREXS.kh", &assign_ExcREXS_kh); - assign_map.emplace("cim:ExcREXS.kii", &assign_ExcREXS_kii); - assign_map.emplace("cim:ExcREXS.kip", &assign_ExcREXS_kip); - assign_map.emplace("cim:ExcREXS.ks", &assign_ExcREXS_ks); - assign_map.emplace("cim:ExcREXS.kvi", &assign_ExcREXS_kvi); - assign_map.emplace("cim:ExcREXS.kvp", &assign_ExcREXS_kvp); - assign_map.emplace("cim:ExcREXS.kvphz", &assign_ExcREXS_kvphz); - assign_map.emplace("cim:ExcREXS.nvphz", &assign_ExcREXS_nvphz); - assign_map.emplace("cim:ExcREXS.se1", &assign_ExcREXS_se1); - assign_map.emplace("cim:ExcREXS.se2", &assign_ExcREXS_se2); - assign_map.emplace("cim:ExcREXS.ta", &assign_ExcREXS_ta); - assign_map.emplace("cim:ExcREXS.tb1", &assign_ExcREXS_tb1); - assign_map.emplace("cim:ExcREXS.tb2", &assign_ExcREXS_tb2); - assign_map.emplace("cim:ExcREXS.tc1", &assign_ExcREXS_tc1); - assign_map.emplace("cim:ExcREXS.tc2", &assign_ExcREXS_tc2); - assign_map.emplace("cim:ExcREXS.te", &assign_ExcREXS_te); - assign_map.emplace("cim:ExcREXS.tf", &assign_ExcREXS_tf); - assign_map.emplace("cim:ExcREXS.tf1", &assign_ExcREXS_tf1); - assign_map.emplace("cim:ExcREXS.tf2", &assign_ExcREXS_tf2); - assign_map.emplace("cim:ExcREXS.tp", &assign_ExcREXS_tp); - assign_map.emplace("cim:ExcREXS.vcmax", &assign_ExcREXS_vcmax); - assign_map.emplace("cim:ExcREXS.vfmax", &assign_ExcREXS_vfmax); - assign_map.emplace("cim:ExcREXS.vfmin", &assign_ExcREXS_vfmin); - assign_map.emplace("cim:ExcREXS.vimax", &assign_ExcREXS_vimax); - assign_map.emplace("cim:ExcREXS.vrmax", &assign_ExcREXS_vrmax); - assign_map.emplace("cim:ExcREXS.vrmin", &assign_ExcREXS_vrmin); - assign_map.emplace("cim:ExcREXS.xc", &assign_ExcREXS_xc); + assign_map.emplace("ExcREXS.e1", &assign_ExcREXS_e1); + assign_map.emplace("ExcREXS.e2", &assign_ExcREXS_e2); + assign_map.emplace("ExcREXS.fbf", &assign_ExcREXS_fbf); + assign_map.emplace("ExcREXS.flimf", &assign_ExcREXS_flimf); + assign_map.emplace("ExcREXS.kc", &assign_ExcREXS_kc); + assign_map.emplace("ExcREXS.kd", &assign_ExcREXS_kd); + assign_map.emplace("ExcREXS.ke", &assign_ExcREXS_ke); + assign_map.emplace("ExcREXS.kefd", &assign_ExcREXS_kefd); + assign_map.emplace("ExcREXS.kf", &assign_ExcREXS_kf); + assign_map.emplace("ExcREXS.kh", &assign_ExcREXS_kh); + assign_map.emplace("ExcREXS.kii", &assign_ExcREXS_kii); + assign_map.emplace("ExcREXS.kip", &assign_ExcREXS_kip); + assign_map.emplace("ExcREXS.ks", &assign_ExcREXS_ks); + assign_map.emplace("ExcREXS.kvi", &assign_ExcREXS_kvi); + assign_map.emplace("ExcREXS.kvp", &assign_ExcREXS_kvp); + assign_map.emplace("ExcREXS.kvphz", &assign_ExcREXS_kvphz); + assign_map.emplace("ExcREXS.nvphz", &assign_ExcREXS_nvphz); + assign_map.emplace("ExcREXS.se1", &assign_ExcREXS_se1); + assign_map.emplace("ExcREXS.se2", &assign_ExcREXS_se2); + assign_map.emplace("ExcREXS.ta", &assign_ExcREXS_ta); + assign_map.emplace("ExcREXS.tb1", &assign_ExcREXS_tb1); + assign_map.emplace("ExcREXS.tb2", &assign_ExcREXS_tb2); + assign_map.emplace("ExcREXS.tc1", &assign_ExcREXS_tc1); + assign_map.emplace("ExcREXS.tc2", &assign_ExcREXS_tc2); + assign_map.emplace("ExcREXS.te", &assign_ExcREXS_te); + assign_map.emplace("ExcREXS.tf", &assign_ExcREXS_tf); + assign_map.emplace("ExcREXS.tf1", &assign_ExcREXS_tf1); + assign_map.emplace("ExcREXS.tf2", &assign_ExcREXS_tf2); + assign_map.emplace("ExcREXS.tp", &assign_ExcREXS_tp); + assign_map.emplace("ExcREXS.vcmax", &assign_ExcREXS_vcmax); + assign_map.emplace("ExcREXS.vfmax", &assign_ExcREXS_vfmax); + assign_map.emplace("ExcREXS.vfmin", &assign_ExcREXS_vfmin); + assign_map.emplace("ExcREXS.vimax", &assign_ExcREXS_vimax); + assign_map.emplace("ExcREXS.vrmax", &assign_ExcREXS_vrmax); + assign_map.emplace("ExcREXS.vrmin", &assign_ExcREXS_vrmin); + assign_map.emplace("ExcREXS.xc", &assign_ExcREXS_xc); } void ExcREXS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,41 +1208,41 @@ void ExcREXS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcREXS.e1", &get_ExcREXS_e1); - get_map.emplace("cim:ExcREXS.e2", &get_ExcREXS_e2); - get_map.emplace("cim:ExcREXS.flimf", &get_ExcREXS_flimf); - get_map.emplace("cim:ExcREXS.kc", &get_ExcREXS_kc); - get_map.emplace("cim:ExcREXS.kd", &get_ExcREXS_kd); - get_map.emplace("cim:ExcREXS.ke", &get_ExcREXS_ke); - get_map.emplace("cim:ExcREXS.kefd", &get_ExcREXS_kefd); - get_map.emplace("cim:ExcREXS.kf", &get_ExcREXS_kf); - get_map.emplace("cim:ExcREXS.kh", &get_ExcREXS_kh); - get_map.emplace("cim:ExcREXS.kii", &get_ExcREXS_kii); - get_map.emplace("cim:ExcREXS.kip", &get_ExcREXS_kip); - get_map.emplace("cim:ExcREXS.ks", &get_ExcREXS_ks); - get_map.emplace("cim:ExcREXS.kvi", &get_ExcREXS_kvi); - get_map.emplace("cim:ExcREXS.kvp", &get_ExcREXS_kvp); - get_map.emplace("cim:ExcREXS.kvphz", &get_ExcREXS_kvphz); - get_map.emplace("cim:ExcREXS.nvphz", &get_ExcREXS_nvphz); - get_map.emplace("cim:ExcREXS.se1", &get_ExcREXS_se1); - get_map.emplace("cim:ExcREXS.se2", &get_ExcREXS_se2); - get_map.emplace("cim:ExcREXS.ta", &get_ExcREXS_ta); - get_map.emplace("cim:ExcREXS.tb1", &get_ExcREXS_tb1); - get_map.emplace("cim:ExcREXS.tb2", &get_ExcREXS_tb2); - get_map.emplace("cim:ExcREXS.tc1", &get_ExcREXS_tc1); - get_map.emplace("cim:ExcREXS.tc2", &get_ExcREXS_tc2); - get_map.emplace("cim:ExcREXS.te", &get_ExcREXS_te); - get_map.emplace("cim:ExcREXS.tf", &get_ExcREXS_tf); - get_map.emplace("cim:ExcREXS.tf1", &get_ExcREXS_tf1); - get_map.emplace("cim:ExcREXS.tf2", &get_ExcREXS_tf2); - get_map.emplace("cim:ExcREXS.tp", &get_ExcREXS_tp); - get_map.emplace("cim:ExcREXS.vcmax", &get_ExcREXS_vcmax); - get_map.emplace("cim:ExcREXS.vfmax", &get_ExcREXS_vfmax); - get_map.emplace("cim:ExcREXS.vfmin", &get_ExcREXS_vfmin); - get_map.emplace("cim:ExcREXS.vimax", &get_ExcREXS_vimax); - get_map.emplace("cim:ExcREXS.vrmax", &get_ExcREXS_vrmax); - get_map.emplace("cim:ExcREXS.vrmin", &get_ExcREXS_vrmin); - get_map.emplace("cim:ExcREXS.xc", &get_ExcREXS_xc); + get_map.emplace("ExcREXS.e1", &get_ExcREXS_e1); + get_map.emplace("ExcREXS.e2", &get_ExcREXS_e2); + get_map.emplace("ExcREXS.flimf", &get_ExcREXS_flimf); + get_map.emplace("ExcREXS.kc", &get_ExcREXS_kc); + get_map.emplace("ExcREXS.kd", &get_ExcREXS_kd); + get_map.emplace("ExcREXS.ke", &get_ExcREXS_ke); + get_map.emplace("ExcREXS.kefd", &get_ExcREXS_kefd); + get_map.emplace("ExcREXS.kf", &get_ExcREXS_kf); + get_map.emplace("ExcREXS.kh", &get_ExcREXS_kh); + get_map.emplace("ExcREXS.kii", &get_ExcREXS_kii); + get_map.emplace("ExcREXS.kip", &get_ExcREXS_kip); + get_map.emplace("ExcREXS.ks", &get_ExcREXS_ks); + get_map.emplace("ExcREXS.kvi", &get_ExcREXS_kvi); + get_map.emplace("ExcREXS.kvp", &get_ExcREXS_kvp); + get_map.emplace("ExcREXS.kvphz", &get_ExcREXS_kvphz); + get_map.emplace("ExcREXS.nvphz", &get_ExcREXS_nvphz); + get_map.emplace("ExcREXS.se1", &get_ExcREXS_se1); + get_map.emplace("ExcREXS.se2", &get_ExcREXS_se2); + get_map.emplace("ExcREXS.ta", &get_ExcREXS_ta); + get_map.emplace("ExcREXS.tb1", &get_ExcREXS_tb1); + get_map.emplace("ExcREXS.tb2", &get_ExcREXS_tb2); + get_map.emplace("ExcREXS.tc1", &get_ExcREXS_tc1); + get_map.emplace("ExcREXS.tc2", &get_ExcREXS_tc2); + get_map.emplace("ExcREXS.te", &get_ExcREXS_te); + get_map.emplace("ExcREXS.tf", &get_ExcREXS_tf); + get_map.emplace("ExcREXS.tf1", &get_ExcREXS_tf1); + get_map.emplace("ExcREXS.tf2", &get_ExcREXS_tf2); + get_map.emplace("ExcREXS.tp", &get_ExcREXS_tp); + get_map.emplace("ExcREXS.vcmax", &get_ExcREXS_vcmax); + get_map.emplace("ExcREXS.vfmax", &get_ExcREXS_vfmax); + get_map.emplace("ExcREXS.vfmin", &get_ExcREXS_vfmin); + get_map.emplace("ExcREXS.vimax", &get_ExcREXS_vimax); + get_map.emplace("ExcREXS.vrmax", &get_ExcREXS_vrmax); + get_map.emplace("ExcREXS.vrmin", &get_ExcREXS_vrmin); + get_map.emplace("ExcREXS.xc", &get_ExcREXS_xc); } void ExcREXS::addClassGetFnsToMap(std::map& get_map) const @@ -1221,7 +1253,13 @@ void ExcREXS::addClassGetFnsToMap(std::map& get void ExcREXS::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcREXS.fbf", &get_ExcREXS_fbf); + get_map.emplace("ExcREXS.fbf", &get_ExcREXS_fbf); +} + +bool ExcREXS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcREXS" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcREXS::declare() @@ -1229,6 +1267,14 @@ const BaseClassDefiner ExcREXS::declare() return BaseClassDefiner(ExcREXS::addConstructToMap, ExcREXS::addPrimitiveAssignFnsToMap, ExcREXS::addClassAssignFnsToMap, ExcREXS::debugName); } +std::map ExcREXS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcREXS_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcREXS.hpp b/CGMES_2.4.13_18DEC2013/ExcREXS.hpp index 18cd27ace..d513fe42b 100644 --- a/CGMES_2.4.13_18DEC2013/ExcREXS.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcREXS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcREXSFeedbackSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcREXS_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcSCRX.cpp b/CGMES_2.4.13_18DEC2013/ExcSCRX.cpp index be7b304c3..90e0114c7 100644 --- a/CGMES_2.4.13_18DEC2013/ExcSCRX.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcSCRX.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSCRX(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSCRX.cswitch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.rcrfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.tatb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSCRX::ExcSCRX() {} ExcSCRX::~ExcSCRX() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcSCRX::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcSCRX::getClassNamespaceUrl() const { - { "cim:ExcSCRX.cswitch", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.emax", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.emin", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.k", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.rcrfd", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.tatb", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.tb", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.te", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcSCRX::getPossibleProfilesForClass() const +const std::string& ExcSCRX::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcSCRX::getPossibleProfilesForAttributes() const +const std::list& ExcSCRX::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSCRX::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSCRX::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSCRX::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSCRX_cswitch(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* ExcSCRX::debugString() const void ExcSCRX::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSCRX", &ExcSCRX_factory); + factory_map.emplace("ExcSCRX", &ExcSCRX_factory); } void ExcSCRX::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSCRX.cswitch", &assign_ExcSCRX_cswitch); - assign_map.emplace("cim:ExcSCRX.emax", &assign_ExcSCRX_emax); - assign_map.emplace("cim:ExcSCRX.emin", &assign_ExcSCRX_emin); - assign_map.emplace("cim:ExcSCRX.k", &assign_ExcSCRX_k); - assign_map.emplace("cim:ExcSCRX.rcrfd", &assign_ExcSCRX_rcrfd); - assign_map.emplace("cim:ExcSCRX.tatb", &assign_ExcSCRX_tatb); - assign_map.emplace("cim:ExcSCRX.tb", &assign_ExcSCRX_tb); - assign_map.emplace("cim:ExcSCRX.te", &assign_ExcSCRX_te); + assign_map.emplace("ExcSCRX.cswitch", &assign_ExcSCRX_cswitch); + assign_map.emplace("ExcSCRX.emax", &assign_ExcSCRX_emax); + assign_map.emplace("ExcSCRX.emin", &assign_ExcSCRX_emin); + assign_map.emplace("ExcSCRX.k", &assign_ExcSCRX_k); + assign_map.emplace("ExcSCRX.rcrfd", &assign_ExcSCRX_rcrfd); + assign_map.emplace("ExcSCRX.tatb", &assign_ExcSCRX_tatb); + assign_map.emplace("ExcSCRX.tb", &assign_ExcSCRX_tb); + assign_map.emplace("ExcSCRX.te", &assign_ExcSCRX_te); } void ExcSCRX::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void ExcSCRX::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSCRX.cswitch", &get_ExcSCRX_cswitch); - get_map.emplace("cim:ExcSCRX.emax", &get_ExcSCRX_emax); - get_map.emplace("cim:ExcSCRX.emin", &get_ExcSCRX_emin); - get_map.emplace("cim:ExcSCRX.k", &get_ExcSCRX_k); - get_map.emplace("cim:ExcSCRX.rcrfd", &get_ExcSCRX_rcrfd); - get_map.emplace("cim:ExcSCRX.tatb", &get_ExcSCRX_tatb); - get_map.emplace("cim:ExcSCRX.tb", &get_ExcSCRX_tb); - get_map.emplace("cim:ExcSCRX.te", &get_ExcSCRX_te); + get_map.emplace("ExcSCRX.cswitch", &get_ExcSCRX_cswitch); + get_map.emplace("ExcSCRX.emax", &get_ExcSCRX_emax); + get_map.emplace("ExcSCRX.emin", &get_ExcSCRX_emin); + get_map.emplace("ExcSCRX.k", &get_ExcSCRX_k); + get_map.emplace("ExcSCRX.rcrfd", &get_ExcSCRX_rcrfd); + get_map.emplace("ExcSCRX.tatb", &get_ExcSCRX_tatb); + get_map.emplace("ExcSCRX.tb", &get_ExcSCRX_tb); + get_map.emplace("ExcSCRX.te", &get_ExcSCRX_te); } void ExcSCRX::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void ExcSCRX::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSCRX::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSCRX" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSCRX::declare() { return BaseClassDefiner(ExcSCRX::addConstructToMap, ExcSCRX::addPrimitiveAssignFnsToMap, ExcSCRX::addClassAssignFnsToMap, ExcSCRX::debugName); } +std::map ExcSCRX::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSCRX_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcSCRX.hpp b/CGMES_2.4.13_18DEC2013/ExcSCRX.hpp index 5bf3e69b6..a3ed4f0c6 100644 --- a/CGMES_2.4.13_18DEC2013/ExcSCRX.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcSCRX.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSCRX_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcSEXS.cpp b/CGMES_2.4.13_18DEC2013/ExcSEXS.cpp index e78222ab6..00fedb674 100644 --- a/CGMES_2.4.13_18DEC2013/ExcSEXS.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcSEXS.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSEXS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSEXS.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tatb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSEXS::ExcSEXS() {} ExcSEXS::~ExcSEXS() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcSEXS::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcSEXS::getClassNamespaceUrl() const { - { "cim:ExcSEXS.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.emax", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.emin", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.k", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.kc", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tatb", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tb", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tc", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.te", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcSEXS::getPossibleProfilesForClass() const +const std::string& ExcSEXS::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcSEXS::getPossibleProfilesForAttributes() const +const std::list& ExcSEXS::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSEXS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSEXS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSEXS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSEXS_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcSEXS::debugString() const void ExcSEXS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSEXS", &ExcSEXS_factory); + factory_map.emplace("ExcSEXS", &ExcSEXS_factory); } void ExcSEXS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSEXS.efdmax", &assign_ExcSEXS_efdmax); - assign_map.emplace("cim:ExcSEXS.efdmin", &assign_ExcSEXS_efdmin); - assign_map.emplace("cim:ExcSEXS.emax", &assign_ExcSEXS_emax); - assign_map.emplace("cim:ExcSEXS.emin", &assign_ExcSEXS_emin); - assign_map.emplace("cim:ExcSEXS.k", &assign_ExcSEXS_k); - assign_map.emplace("cim:ExcSEXS.kc", &assign_ExcSEXS_kc); - assign_map.emplace("cim:ExcSEXS.tatb", &assign_ExcSEXS_tatb); - assign_map.emplace("cim:ExcSEXS.tb", &assign_ExcSEXS_tb); - assign_map.emplace("cim:ExcSEXS.tc", &assign_ExcSEXS_tc); - assign_map.emplace("cim:ExcSEXS.te", &assign_ExcSEXS_te); + assign_map.emplace("ExcSEXS.efdmax", &assign_ExcSEXS_efdmax); + assign_map.emplace("ExcSEXS.efdmin", &assign_ExcSEXS_efdmin); + assign_map.emplace("ExcSEXS.emax", &assign_ExcSEXS_emax); + assign_map.emplace("ExcSEXS.emin", &assign_ExcSEXS_emin); + assign_map.emplace("ExcSEXS.k", &assign_ExcSEXS_k); + assign_map.emplace("ExcSEXS.kc", &assign_ExcSEXS_kc); + assign_map.emplace("ExcSEXS.tatb", &assign_ExcSEXS_tatb); + assign_map.emplace("ExcSEXS.tb", &assign_ExcSEXS_tb); + assign_map.emplace("ExcSEXS.tc", &assign_ExcSEXS_tc); + assign_map.emplace("ExcSEXS.te", &assign_ExcSEXS_te); } void ExcSEXS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcSEXS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSEXS.efdmax", &get_ExcSEXS_efdmax); - get_map.emplace("cim:ExcSEXS.efdmin", &get_ExcSEXS_efdmin); - get_map.emplace("cim:ExcSEXS.emax", &get_ExcSEXS_emax); - get_map.emplace("cim:ExcSEXS.emin", &get_ExcSEXS_emin); - get_map.emplace("cim:ExcSEXS.k", &get_ExcSEXS_k); - get_map.emplace("cim:ExcSEXS.kc", &get_ExcSEXS_kc); - get_map.emplace("cim:ExcSEXS.tatb", &get_ExcSEXS_tatb); - get_map.emplace("cim:ExcSEXS.tb", &get_ExcSEXS_tb); - get_map.emplace("cim:ExcSEXS.tc", &get_ExcSEXS_tc); - get_map.emplace("cim:ExcSEXS.te", &get_ExcSEXS_te); + get_map.emplace("ExcSEXS.efdmax", &get_ExcSEXS_efdmax); + get_map.emplace("ExcSEXS.efdmin", &get_ExcSEXS_efdmin); + get_map.emplace("ExcSEXS.emax", &get_ExcSEXS_emax); + get_map.emplace("ExcSEXS.emin", &get_ExcSEXS_emin); + get_map.emplace("ExcSEXS.k", &get_ExcSEXS_k); + get_map.emplace("ExcSEXS.kc", &get_ExcSEXS_kc); + get_map.emplace("ExcSEXS.tatb", &get_ExcSEXS_tatb); + get_map.emplace("ExcSEXS.tb", &get_ExcSEXS_tb); + get_map.emplace("ExcSEXS.tc", &get_ExcSEXS_tc); + get_map.emplace("ExcSEXS.te", &get_ExcSEXS_te); } void ExcSEXS::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcSEXS::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSEXS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSEXS" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSEXS::declare() { return BaseClassDefiner(ExcSEXS::addConstructToMap, ExcSEXS::addPrimitiveAssignFnsToMap, ExcSEXS::addClassAssignFnsToMap, ExcSEXS::debugName); } +std::map ExcSEXS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSEXS_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcSEXS.hpp b/CGMES_2.4.13_18DEC2013/ExcSEXS.hpp index 2b957eb4e..d9bfb2a09 100644 --- a/CGMES_2.4.13_18DEC2013/ExcSEXS.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcSEXS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSEXS_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcSK.cpp b/CGMES_2.4.13_18DEC2013/ExcSK.cpp index 0c8d97812..7b1c04326 100644 --- a/CGMES_2.4.13_18DEC2013/ExcSK.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcSK.cpp @@ -11,63 +11,95 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSK(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSK.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kgob", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqob", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.nq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.qconoff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.qz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.remote", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.sbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.uimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.uimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.urmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.urmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.vtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.vtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.yp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSK::ExcSK() {} ExcSK::~ExcSK() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcSK.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.emax", { CGMESProfile::DY, } }, - { "cim:ExcSK.emin", { CGMESProfile::DY, } }, - { "cim:ExcSK.k", { CGMESProfile::DY, } }, - { "cim:ExcSK.k1", { CGMESProfile::DY, } }, - { "cim:ExcSK.k2", { CGMESProfile::DY, } }, - { "cim:ExcSK.kc", { CGMESProfile::DY, } }, - { "cim:ExcSK.kce", { CGMESProfile::DY, } }, - { "cim:ExcSK.kd", { CGMESProfile::DY, } }, - { "cim:ExcSK.kgob", { CGMESProfile::DY, } }, - { "cim:ExcSK.kp", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqi", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqob", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqp", { CGMESProfile::DY, } }, - { "cim:ExcSK.nq", { CGMESProfile::DY, } }, - { "cim:ExcSK.qconoff", { CGMESProfile::DY, } }, - { "cim:ExcSK.qz", { CGMESProfile::DY, } }, - { "cim:ExcSK.remote", { CGMESProfile::DY, } }, - { "cim:ExcSK.sbase", { CGMESProfile::DY, } }, - { "cim:ExcSK.tc", { CGMESProfile::DY, } }, - { "cim:ExcSK.te", { CGMESProfile::DY, } }, - { "cim:ExcSK.ti", { CGMESProfile::DY, } }, - { "cim:ExcSK.tp", { CGMESProfile::DY, } }, - { "cim:ExcSK.tr", { CGMESProfile::DY, } }, - { "cim:ExcSK.uimax", { CGMESProfile::DY, } }, - { "cim:ExcSK.uimin", { CGMESProfile::DY, } }, - { "cim:ExcSK.urmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.urmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.vtmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.vtmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.yp", { CGMESProfile::DY, } }, -}; - -std::list -ExcSK::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcSK::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcSK::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcSK::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcSK::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcSK::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSK::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSK::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSK::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSK_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1006,43 +1038,43 @@ const char* ExcSK::debugString() const void ExcSK::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSK", &ExcSK_factory); + factory_map.emplace("ExcSK", &ExcSK_factory); } void ExcSK::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSK.efdmax", &assign_ExcSK_efdmax); - assign_map.emplace("cim:ExcSK.efdmin", &assign_ExcSK_efdmin); - assign_map.emplace("cim:ExcSK.emax", &assign_ExcSK_emax); - assign_map.emplace("cim:ExcSK.emin", &assign_ExcSK_emin); - assign_map.emplace("cim:ExcSK.k", &assign_ExcSK_k); - assign_map.emplace("cim:ExcSK.k1", &assign_ExcSK_k1); - assign_map.emplace("cim:ExcSK.k2", &assign_ExcSK_k2); - assign_map.emplace("cim:ExcSK.kc", &assign_ExcSK_kc); - assign_map.emplace("cim:ExcSK.kce", &assign_ExcSK_kce); - assign_map.emplace("cim:ExcSK.kd", &assign_ExcSK_kd); - assign_map.emplace("cim:ExcSK.kgob", &assign_ExcSK_kgob); - assign_map.emplace("cim:ExcSK.kp", &assign_ExcSK_kp); - assign_map.emplace("cim:ExcSK.kqi", &assign_ExcSK_kqi); - assign_map.emplace("cim:ExcSK.kqob", &assign_ExcSK_kqob); - assign_map.emplace("cim:ExcSK.kqp", &assign_ExcSK_kqp); - assign_map.emplace("cim:ExcSK.nq", &assign_ExcSK_nq); - assign_map.emplace("cim:ExcSK.qconoff", &assign_ExcSK_qconoff); - assign_map.emplace("cim:ExcSK.qz", &assign_ExcSK_qz); - assign_map.emplace("cim:ExcSK.remote", &assign_ExcSK_remote); - assign_map.emplace("cim:ExcSK.sbase", &assign_ExcSK_sbase); - assign_map.emplace("cim:ExcSK.tc", &assign_ExcSK_tc); - assign_map.emplace("cim:ExcSK.te", &assign_ExcSK_te); - assign_map.emplace("cim:ExcSK.ti", &assign_ExcSK_ti); - assign_map.emplace("cim:ExcSK.tp", &assign_ExcSK_tp); - assign_map.emplace("cim:ExcSK.tr", &assign_ExcSK_tr); - assign_map.emplace("cim:ExcSK.uimax", &assign_ExcSK_uimax); - assign_map.emplace("cim:ExcSK.uimin", &assign_ExcSK_uimin); - assign_map.emplace("cim:ExcSK.urmax", &assign_ExcSK_urmax); - assign_map.emplace("cim:ExcSK.urmin", &assign_ExcSK_urmin); - assign_map.emplace("cim:ExcSK.vtmax", &assign_ExcSK_vtmax); - assign_map.emplace("cim:ExcSK.vtmin", &assign_ExcSK_vtmin); - assign_map.emplace("cim:ExcSK.yp", &assign_ExcSK_yp); + assign_map.emplace("ExcSK.efdmax", &assign_ExcSK_efdmax); + assign_map.emplace("ExcSK.efdmin", &assign_ExcSK_efdmin); + assign_map.emplace("ExcSK.emax", &assign_ExcSK_emax); + assign_map.emplace("ExcSK.emin", &assign_ExcSK_emin); + assign_map.emplace("ExcSK.k", &assign_ExcSK_k); + assign_map.emplace("ExcSK.k1", &assign_ExcSK_k1); + assign_map.emplace("ExcSK.k2", &assign_ExcSK_k2); + assign_map.emplace("ExcSK.kc", &assign_ExcSK_kc); + assign_map.emplace("ExcSK.kce", &assign_ExcSK_kce); + assign_map.emplace("ExcSK.kd", &assign_ExcSK_kd); + assign_map.emplace("ExcSK.kgob", &assign_ExcSK_kgob); + assign_map.emplace("ExcSK.kp", &assign_ExcSK_kp); + assign_map.emplace("ExcSK.kqi", &assign_ExcSK_kqi); + assign_map.emplace("ExcSK.kqob", &assign_ExcSK_kqob); + assign_map.emplace("ExcSK.kqp", &assign_ExcSK_kqp); + assign_map.emplace("ExcSK.nq", &assign_ExcSK_nq); + assign_map.emplace("ExcSK.qconoff", &assign_ExcSK_qconoff); + assign_map.emplace("ExcSK.qz", &assign_ExcSK_qz); + assign_map.emplace("ExcSK.remote", &assign_ExcSK_remote); + assign_map.emplace("ExcSK.sbase", &assign_ExcSK_sbase); + assign_map.emplace("ExcSK.tc", &assign_ExcSK_tc); + assign_map.emplace("ExcSK.te", &assign_ExcSK_te); + assign_map.emplace("ExcSK.ti", &assign_ExcSK_ti); + assign_map.emplace("ExcSK.tp", &assign_ExcSK_tp); + assign_map.emplace("ExcSK.tr", &assign_ExcSK_tr); + assign_map.emplace("ExcSK.uimax", &assign_ExcSK_uimax); + assign_map.emplace("ExcSK.uimin", &assign_ExcSK_uimin); + assign_map.emplace("ExcSK.urmax", &assign_ExcSK_urmax); + assign_map.emplace("ExcSK.urmin", &assign_ExcSK_urmin); + assign_map.emplace("ExcSK.vtmax", &assign_ExcSK_vtmax); + assign_map.emplace("ExcSK.vtmin", &assign_ExcSK_vtmin); + assign_map.emplace("ExcSK.yp", &assign_ExcSK_yp); } void ExcSK::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1052,38 +1084,38 @@ void ExcSK::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSK.efdmax", &get_ExcSK_efdmax); - get_map.emplace("cim:ExcSK.efdmin", &get_ExcSK_efdmin); - get_map.emplace("cim:ExcSK.emax", &get_ExcSK_emax); - get_map.emplace("cim:ExcSK.emin", &get_ExcSK_emin); - get_map.emplace("cim:ExcSK.k", &get_ExcSK_k); - get_map.emplace("cim:ExcSK.k1", &get_ExcSK_k1); - get_map.emplace("cim:ExcSK.k2", &get_ExcSK_k2); - get_map.emplace("cim:ExcSK.kc", &get_ExcSK_kc); - get_map.emplace("cim:ExcSK.kce", &get_ExcSK_kce); - get_map.emplace("cim:ExcSK.kd", &get_ExcSK_kd); - get_map.emplace("cim:ExcSK.kgob", &get_ExcSK_kgob); - get_map.emplace("cim:ExcSK.kp", &get_ExcSK_kp); - get_map.emplace("cim:ExcSK.kqi", &get_ExcSK_kqi); - get_map.emplace("cim:ExcSK.kqob", &get_ExcSK_kqob); - get_map.emplace("cim:ExcSK.kqp", &get_ExcSK_kqp); - get_map.emplace("cim:ExcSK.nq", &get_ExcSK_nq); - get_map.emplace("cim:ExcSK.qconoff", &get_ExcSK_qconoff); - get_map.emplace("cim:ExcSK.qz", &get_ExcSK_qz); - get_map.emplace("cim:ExcSK.remote", &get_ExcSK_remote); - get_map.emplace("cim:ExcSK.sbase", &get_ExcSK_sbase); - get_map.emplace("cim:ExcSK.tc", &get_ExcSK_tc); - get_map.emplace("cim:ExcSK.te", &get_ExcSK_te); - get_map.emplace("cim:ExcSK.ti", &get_ExcSK_ti); - get_map.emplace("cim:ExcSK.tp", &get_ExcSK_tp); - get_map.emplace("cim:ExcSK.tr", &get_ExcSK_tr); - get_map.emplace("cim:ExcSK.uimax", &get_ExcSK_uimax); - get_map.emplace("cim:ExcSK.uimin", &get_ExcSK_uimin); - get_map.emplace("cim:ExcSK.urmax", &get_ExcSK_urmax); - get_map.emplace("cim:ExcSK.urmin", &get_ExcSK_urmin); - get_map.emplace("cim:ExcSK.vtmax", &get_ExcSK_vtmax); - get_map.emplace("cim:ExcSK.vtmin", &get_ExcSK_vtmin); - get_map.emplace("cim:ExcSK.yp", &get_ExcSK_yp); + get_map.emplace("ExcSK.efdmax", &get_ExcSK_efdmax); + get_map.emplace("ExcSK.efdmin", &get_ExcSK_efdmin); + get_map.emplace("ExcSK.emax", &get_ExcSK_emax); + get_map.emplace("ExcSK.emin", &get_ExcSK_emin); + get_map.emplace("ExcSK.k", &get_ExcSK_k); + get_map.emplace("ExcSK.k1", &get_ExcSK_k1); + get_map.emplace("ExcSK.k2", &get_ExcSK_k2); + get_map.emplace("ExcSK.kc", &get_ExcSK_kc); + get_map.emplace("ExcSK.kce", &get_ExcSK_kce); + get_map.emplace("ExcSK.kd", &get_ExcSK_kd); + get_map.emplace("ExcSK.kgob", &get_ExcSK_kgob); + get_map.emplace("ExcSK.kp", &get_ExcSK_kp); + get_map.emplace("ExcSK.kqi", &get_ExcSK_kqi); + get_map.emplace("ExcSK.kqob", &get_ExcSK_kqob); + get_map.emplace("ExcSK.kqp", &get_ExcSK_kqp); + get_map.emplace("ExcSK.nq", &get_ExcSK_nq); + get_map.emplace("ExcSK.qconoff", &get_ExcSK_qconoff); + get_map.emplace("ExcSK.qz", &get_ExcSK_qz); + get_map.emplace("ExcSK.remote", &get_ExcSK_remote); + get_map.emplace("ExcSK.sbase", &get_ExcSK_sbase); + get_map.emplace("ExcSK.tc", &get_ExcSK_tc); + get_map.emplace("ExcSK.te", &get_ExcSK_te); + get_map.emplace("ExcSK.ti", &get_ExcSK_ti); + get_map.emplace("ExcSK.tp", &get_ExcSK_tp); + get_map.emplace("ExcSK.tr", &get_ExcSK_tr); + get_map.emplace("ExcSK.uimax", &get_ExcSK_uimax); + get_map.emplace("ExcSK.uimin", &get_ExcSK_uimin); + get_map.emplace("ExcSK.urmax", &get_ExcSK_urmax); + get_map.emplace("ExcSK.urmin", &get_ExcSK_urmin); + get_map.emplace("ExcSK.vtmax", &get_ExcSK_vtmax); + get_map.emplace("ExcSK.vtmin", &get_ExcSK_vtmin); + get_map.emplace("ExcSK.yp", &get_ExcSK_yp); } void ExcSK::addClassGetFnsToMap(std::map& get_map) const @@ -1096,11 +1128,25 @@ void ExcSK::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSK::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSK" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSK::declare() { return BaseClassDefiner(ExcSK::addConstructToMap, ExcSK::addPrimitiveAssignFnsToMap, ExcSK::addClassAssignFnsToMap, ExcSK::debugName); } +std::map ExcSK::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSK_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcSK.hpp b/CGMES_2.4.13_18DEC2013/ExcSK.hpp index 3d724e1da..669f37a1e 100644 --- a/CGMES_2.4.13_18DEC2013/ExcSK.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcSK.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -127,8 +128,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -136,7 +144,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSK_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcST1A.cpp b/CGMES_2.4.13_18DEC2013/ExcST1A.cpp index f96434060..45febb804 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST1A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcST1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST1A.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST1A::ExcST1A() {} ExcST1A::~ExcST1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST1A::getClassNamespaceUrl() const { - { "cim:ExcST1A.ilr", { CGMESProfile::DY, } }, - { "cim:ExcST1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcST1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcST1A.klr", { CGMESProfile::DY, } }, - { "cim:ExcST1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tb1", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tc1", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST1A::getPossibleProfilesForClass() const +const std::string& ExcST1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST1A::getPossibleProfilesForAttributes() const +const std::list& ExcST1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST1A_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcST1A::debugString() const void ExcST1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST1A", &ExcST1A_factory); + factory_map.emplace("ExcST1A", &ExcST1A_factory); } void ExcST1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST1A.ilr", &assign_ExcST1A_ilr); - assign_map.emplace("cim:ExcST1A.ka", &assign_ExcST1A_ka); - assign_map.emplace("cim:ExcST1A.kc", &assign_ExcST1A_kc); - assign_map.emplace("cim:ExcST1A.kf", &assign_ExcST1A_kf); - assign_map.emplace("cim:ExcST1A.klr", &assign_ExcST1A_klr); - assign_map.emplace("cim:ExcST1A.ta", &assign_ExcST1A_ta); - assign_map.emplace("cim:ExcST1A.tb", &assign_ExcST1A_tb); - assign_map.emplace("cim:ExcST1A.tb1", &assign_ExcST1A_tb1); - assign_map.emplace("cim:ExcST1A.tc", &assign_ExcST1A_tc); - assign_map.emplace("cim:ExcST1A.tc1", &assign_ExcST1A_tc1); - assign_map.emplace("cim:ExcST1A.tf", &assign_ExcST1A_tf); - assign_map.emplace("cim:ExcST1A.vamax", &assign_ExcST1A_vamax); - assign_map.emplace("cim:ExcST1A.vamin", &assign_ExcST1A_vamin); - assign_map.emplace("cim:ExcST1A.vimax", &assign_ExcST1A_vimax); - assign_map.emplace("cim:ExcST1A.vimin", &assign_ExcST1A_vimin); - assign_map.emplace("cim:ExcST1A.vrmax", &assign_ExcST1A_vrmax); - assign_map.emplace("cim:ExcST1A.vrmin", &assign_ExcST1A_vrmin); - assign_map.emplace("cim:ExcST1A.xe", &assign_ExcST1A_xe); + assign_map.emplace("ExcST1A.ilr", &assign_ExcST1A_ilr); + assign_map.emplace("ExcST1A.ka", &assign_ExcST1A_ka); + assign_map.emplace("ExcST1A.kc", &assign_ExcST1A_kc); + assign_map.emplace("ExcST1A.kf", &assign_ExcST1A_kf); + assign_map.emplace("ExcST1A.klr", &assign_ExcST1A_klr); + assign_map.emplace("ExcST1A.ta", &assign_ExcST1A_ta); + assign_map.emplace("ExcST1A.tb", &assign_ExcST1A_tb); + assign_map.emplace("ExcST1A.tb1", &assign_ExcST1A_tb1); + assign_map.emplace("ExcST1A.tc", &assign_ExcST1A_tc); + assign_map.emplace("ExcST1A.tc1", &assign_ExcST1A_tc1); + assign_map.emplace("ExcST1A.tf", &assign_ExcST1A_tf); + assign_map.emplace("ExcST1A.vamax", &assign_ExcST1A_vamax); + assign_map.emplace("ExcST1A.vamin", &assign_ExcST1A_vamin); + assign_map.emplace("ExcST1A.vimax", &assign_ExcST1A_vimax); + assign_map.emplace("ExcST1A.vimin", &assign_ExcST1A_vimin); + assign_map.emplace("ExcST1A.vrmax", &assign_ExcST1A_vrmax); + assign_map.emplace("ExcST1A.vrmin", &assign_ExcST1A_vrmin); + assign_map.emplace("ExcST1A.xe", &assign_ExcST1A_xe); } void ExcST1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcST1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST1A.ilr", &get_ExcST1A_ilr); - get_map.emplace("cim:ExcST1A.ka", &get_ExcST1A_ka); - get_map.emplace("cim:ExcST1A.kc", &get_ExcST1A_kc); - get_map.emplace("cim:ExcST1A.kf", &get_ExcST1A_kf); - get_map.emplace("cim:ExcST1A.klr", &get_ExcST1A_klr); - get_map.emplace("cim:ExcST1A.ta", &get_ExcST1A_ta); - get_map.emplace("cim:ExcST1A.tb", &get_ExcST1A_tb); - get_map.emplace("cim:ExcST1A.tb1", &get_ExcST1A_tb1); - get_map.emplace("cim:ExcST1A.tc", &get_ExcST1A_tc); - get_map.emplace("cim:ExcST1A.tc1", &get_ExcST1A_tc1); - get_map.emplace("cim:ExcST1A.tf", &get_ExcST1A_tf); - get_map.emplace("cim:ExcST1A.vamax", &get_ExcST1A_vamax); - get_map.emplace("cim:ExcST1A.vamin", &get_ExcST1A_vamin); - get_map.emplace("cim:ExcST1A.vimax", &get_ExcST1A_vimax); - get_map.emplace("cim:ExcST1A.vimin", &get_ExcST1A_vimin); - get_map.emplace("cim:ExcST1A.vrmax", &get_ExcST1A_vrmax); - get_map.emplace("cim:ExcST1A.vrmin", &get_ExcST1A_vrmin); - get_map.emplace("cim:ExcST1A.xe", &get_ExcST1A_xe); + get_map.emplace("ExcST1A.ilr", &get_ExcST1A_ilr); + get_map.emplace("ExcST1A.ka", &get_ExcST1A_ka); + get_map.emplace("ExcST1A.kc", &get_ExcST1A_kc); + get_map.emplace("ExcST1A.kf", &get_ExcST1A_kf); + get_map.emplace("ExcST1A.klr", &get_ExcST1A_klr); + get_map.emplace("ExcST1A.ta", &get_ExcST1A_ta); + get_map.emplace("ExcST1A.tb", &get_ExcST1A_tb); + get_map.emplace("ExcST1A.tb1", &get_ExcST1A_tb1); + get_map.emplace("ExcST1A.tc", &get_ExcST1A_tc); + get_map.emplace("ExcST1A.tc1", &get_ExcST1A_tc1); + get_map.emplace("ExcST1A.tf", &get_ExcST1A_tf); + get_map.emplace("ExcST1A.vamax", &get_ExcST1A_vamax); + get_map.emplace("ExcST1A.vamin", &get_ExcST1A_vamin); + get_map.emplace("ExcST1A.vimax", &get_ExcST1A_vimax); + get_map.emplace("ExcST1A.vimin", &get_ExcST1A_vimin); + get_map.emplace("ExcST1A.vrmax", &get_ExcST1A_vrmax); + get_map.emplace("ExcST1A.vrmin", &get_ExcST1A_vrmin); + get_map.emplace("ExcST1A.xe", &get_ExcST1A_xe); } void ExcST1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcST1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST1A::declare() { return BaseClassDefiner(ExcST1A::addConstructToMap, ExcST1A::addPrimitiveAssignFnsToMap, ExcST1A::addClassAssignFnsToMap, ExcST1A::debugName); } +std::map ExcST1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcST1A.hpp b/CGMES_2.4.13_18DEC2013/ExcST1A.hpp index 2c1805a46..3c3094d0d 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST1A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcST1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcST2A.cpp b/CGMES_2.4.13_18DEC2013/ExcST2A.cpp index afa9e20ff..a0eba51e0 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST2A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcST2A.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST2A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST2A::ExcST2A() {} ExcST2A::~ExcST2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST2A::getClassNamespaceUrl() const { - { "cim:ExcST2A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ki", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kp", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST2A.te", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcST2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcST2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST2A::getPossibleProfilesForClass() const +const std::string& ExcST2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST2A::getPossibleProfilesForAttributes() const +const std::list& ExcST2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST2A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcST2A::debugString() const void ExcST2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST2A", &ExcST2A_factory); + factory_map.emplace("ExcST2A", &ExcST2A_factory); } void ExcST2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST2A.efdmax", &assign_ExcST2A_efdmax); - assign_map.emplace("cim:ExcST2A.ka", &assign_ExcST2A_ka); - assign_map.emplace("cim:ExcST2A.kc", &assign_ExcST2A_kc); - assign_map.emplace("cim:ExcST2A.ke", &assign_ExcST2A_ke); - assign_map.emplace("cim:ExcST2A.kf", &assign_ExcST2A_kf); - assign_map.emplace("cim:ExcST2A.ki", &assign_ExcST2A_ki); - assign_map.emplace("cim:ExcST2A.kp", &assign_ExcST2A_kp); - assign_map.emplace("cim:ExcST2A.ta", &assign_ExcST2A_ta); - assign_map.emplace("cim:ExcST2A.tb", &assign_ExcST2A_tb); - assign_map.emplace("cim:ExcST2A.tc", &assign_ExcST2A_tc); - assign_map.emplace("cim:ExcST2A.te", &assign_ExcST2A_te); - assign_map.emplace("cim:ExcST2A.tf", &assign_ExcST2A_tf); - assign_map.emplace("cim:ExcST2A.uelin", &assign_ExcST2A_uelin); - assign_map.emplace("cim:ExcST2A.vrmax", &assign_ExcST2A_vrmax); - assign_map.emplace("cim:ExcST2A.vrmin", &assign_ExcST2A_vrmin); + assign_map.emplace("ExcST2A.efdmax", &assign_ExcST2A_efdmax); + assign_map.emplace("ExcST2A.ka", &assign_ExcST2A_ka); + assign_map.emplace("ExcST2A.kc", &assign_ExcST2A_kc); + assign_map.emplace("ExcST2A.ke", &assign_ExcST2A_ke); + assign_map.emplace("ExcST2A.kf", &assign_ExcST2A_kf); + assign_map.emplace("ExcST2A.ki", &assign_ExcST2A_ki); + assign_map.emplace("ExcST2A.kp", &assign_ExcST2A_kp); + assign_map.emplace("ExcST2A.ta", &assign_ExcST2A_ta); + assign_map.emplace("ExcST2A.tb", &assign_ExcST2A_tb); + assign_map.emplace("ExcST2A.tc", &assign_ExcST2A_tc); + assign_map.emplace("ExcST2A.te", &assign_ExcST2A_te); + assign_map.emplace("ExcST2A.tf", &assign_ExcST2A_tf); + assign_map.emplace("ExcST2A.uelin", &assign_ExcST2A_uelin); + assign_map.emplace("ExcST2A.vrmax", &assign_ExcST2A_vrmax); + assign_map.emplace("ExcST2A.vrmin", &assign_ExcST2A_vrmin); } void ExcST2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void ExcST2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST2A.efdmax", &get_ExcST2A_efdmax); - get_map.emplace("cim:ExcST2A.ka", &get_ExcST2A_ka); - get_map.emplace("cim:ExcST2A.kc", &get_ExcST2A_kc); - get_map.emplace("cim:ExcST2A.ke", &get_ExcST2A_ke); - get_map.emplace("cim:ExcST2A.kf", &get_ExcST2A_kf); - get_map.emplace("cim:ExcST2A.ki", &get_ExcST2A_ki); - get_map.emplace("cim:ExcST2A.kp", &get_ExcST2A_kp); - get_map.emplace("cim:ExcST2A.ta", &get_ExcST2A_ta); - get_map.emplace("cim:ExcST2A.tb", &get_ExcST2A_tb); - get_map.emplace("cim:ExcST2A.tc", &get_ExcST2A_tc); - get_map.emplace("cim:ExcST2A.te", &get_ExcST2A_te); - get_map.emplace("cim:ExcST2A.tf", &get_ExcST2A_tf); - get_map.emplace("cim:ExcST2A.uelin", &get_ExcST2A_uelin); - get_map.emplace("cim:ExcST2A.vrmax", &get_ExcST2A_vrmax); - get_map.emplace("cim:ExcST2A.vrmin", &get_ExcST2A_vrmin); + get_map.emplace("ExcST2A.efdmax", &get_ExcST2A_efdmax); + get_map.emplace("ExcST2A.ka", &get_ExcST2A_ka); + get_map.emplace("ExcST2A.kc", &get_ExcST2A_kc); + get_map.emplace("ExcST2A.ke", &get_ExcST2A_ke); + get_map.emplace("ExcST2A.kf", &get_ExcST2A_kf); + get_map.emplace("ExcST2A.ki", &get_ExcST2A_ki); + get_map.emplace("ExcST2A.kp", &get_ExcST2A_kp); + get_map.emplace("ExcST2A.ta", &get_ExcST2A_ta); + get_map.emplace("ExcST2A.tb", &get_ExcST2A_tb); + get_map.emplace("ExcST2A.tc", &get_ExcST2A_tc); + get_map.emplace("ExcST2A.te", &get_ExcST2A_te); + get_map.emplace("ExcST2A.tf", &get_ExcST2A_tf); + get_map.emplace("ExcST2A.uelin", &get_ExcST2A_uelin); + get_map.emplace("ExcST2A.vrmax", &get_ExcST2A_vrmax); + get_map.emplace("ExcST2A.vrmin", &get_ExcST2A_vrmin); } void ExcST2A::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void ExcST2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST2A::declare() { return BaseClassDefiner(ExcST2A::addConstructToMap, ExcST2A::addPrimitiveAssignFnsToMap, ExcST2A::addClassAssignFnsToMap, ExcST2A::debugName); } +std::map ExcST2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST2A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcST2A.hpp b/CGMES_2.4.13_18DEC2013/ExcST2A.hpp index 1da9826e1..ad4dbd002 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST2A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcST2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -75,8 +76,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -84,7 +92,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST2A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcST3A.cpp b/CGMES_2.4.13_18DEC2013/ExcST3A.cpp index e31c2b37c..30bc2661a 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST3A.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcST3A.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST3A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST3A::ExcST3A() {} ExcST3A::~ExcST3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST3A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kg", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ki", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kj", { CGMESProfile::DY, } }, - { "cim:ExcST3A.km", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kp", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ks1", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST3A.thetap", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tm", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST3A.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcST3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST3A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -646,31 +678,31 @@ const char* ExcST3A::debugString() const void ExcST3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST3A", &ExcST3A_factory); + factory_map.emplace("ExcST3A", &ExcST3A_factory); } void ExcST3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST3A.efdmax", &assign_ExcST3A_efdmax); - assign_map.emplace("cim:ExcST3A.kc", &assign_ExcST3A_kc); - assign_map.emplace("cim:ExcST3A.kg", &assign_ExcST3A_kg); - assign_map.emplace("cim:ExcST3A.ki", &assign_ExcST3A_ki); - assign_map.emplace("cim:ExcST3A.kj", &assign_ExcST3A_kj); - assign_map.emplace("cim:ExcST3A.km", &assign_ExcST3A_km); - assign_map.emplace("cim:ExcST3A.kp", &assign_ExcST3A_kp); - assign_map.emplace("cim:ExcST3A.ks", &assign_ExcST3A_ks); - assign_map.emplace("cim:ExcST3A.ks1", &assign_ExcST3A_ks1); - assign_map.emplace("cim:ExcST3A.tb", &assign_ExcST3A_tb); - assign_map.emplace("cim:ExcST3A.tc", &assign_ExcST3A_tc); - assign_map.emplace("cim:ExcST3A.thetap", &assign_ExcST3A_thetap); - assign_map.emplace("cim:ExcST3A.tm", &assign_ExcST3A_tm); - assign_map.emplace("cim:ExcST3A.vbmax", &assign_ExcST3A_vbmax); - assign_map.emplace("cim:ExcST3A.vgmax", &assign_ExcST3A_vgmax); - assign_map.emplace("cim:ExcST3A.vimax", &assign_ExcST3A_vimax); - assign_map.emplace("cim:ExcST3A.vimin", &assign_ExcST3A_vimin); - assign_map.emplace("cim:ExcST3A.vrmax", &assign_ExcST3A_vrmax); - assign_map.emplace("cim:ExcST3A.vrmin", &assign_ExcST3A_vrmin); - assign_map.emplace("cim:ExcST3A.xl", &assign_ExcST3A_xl); + assign_map.emplace("ExcST3A.efdmax", &assign_ExcST3A_efdmax); + assign_map.emplace("ExcST3A.kc", &assign_ExcST3A_kc); + assign_map.emplace("ExcST3A.kg", &assign_ExcST3A_kg); + assign_map.emplace("ExcST3A.ki", &assign_ExcST3A_ki); + assign_map.emplace("ExcST3A.kj", &assign_ExcST3A_kj); + assign_map.emplace("ExcST3A.km", &assign_ExcST3A_km); + assign_map.emplace("ExcST3A.kp", &assign_ExcST3A_kp); + assign_map.emplace("ExcST3A.ks", &assign_ExcST3A_ks); + assign_map.emplace("ExcST3A.ks1", &assign_ExcST3A_ks1); + assign_map.emplace("ExcST3A.tb", &assign_ExcST3A_tb); + assign_map.emplace("ExcST3A.tc", &assign_ExcST3A_tc); + assign_map.emplace("ExcST3A.thetap", &assign_ExcST3A_thetap); + assign_map.emplace("ExcST3A.tm", &assign_ExcST3A_tm); + assign_map.emplace("ExcST3A.vbmax", &assign_ExcST3A_vbmax); + assign_map.emplace("ExcST3A.vgmax", &assign_ExcST3A_vgmax); + assign_map.emplace("ExcST3A.vimax", &assign_ExcST3A_vimax); + assign_map.emplace("ExcST3A.vimin", &assign_ExcST3A_vimin); + assign_map.emplace("ExcST3A.vrmax", &assign_ExcST3A_vrmax); + assign_map.emplace("ExcST3A.vrmin", &assign_ExcST3A_vrmin); + assign_map.emplace("ExcST3A.xl", &assign_ExcST3A_xl); } void ExcST3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -680,26 +712,26 @@ void ExcST3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST3A.efdmax", &get_ExcST3A_efdmax); - get_map.emplace("cim:ExcST3A.kc", &get_ExcST3A_kc); - get_map.emplace("cim:ExcST3A.kg", &get_ExcST3A_kg); - get_map.emplace("cim:ExcST3A.ki", &get_ExcST3A_ki); - get_map.emplace("cim:ExcST3A.kj", &get_ExcST3A_kj); - get_map.emplace("cim:ExcST3A.km", &get_ExcST3A_km); - get_map.emplace("cim:ExcST3A.kp", &get_ExcST3A_kp); - get_map.emplace("cim:ExcST3A.ks", &get_ExcST3A_ks); - get_map.emplace("cim:ExcST3A.ks1", &get_ExcST3A_ks1); - get_map.emplace("cim:ExcST3A.tb", &get_ExcST3A_tb); - get_map.emplace("cim:ExcST3A.tc", &get_ExcST3A_tc); - get_map.emplace("cim:ExcST3A.thetap", &get_ExcST3A_thetap); - get_map.emplace("cim:ExcST3A.tm", &get_ExcST3A_tm); - get_map.emplace("cim:ExcST3A.vbmax", &get_ExcST3A_vbmax); - get_map.emplace("cim:ExcST3A.vgmax", &get_ExcST3A_vgmax); - get_map.emplace("cim:ExcST3A.vimax", &get_ExcST3A_vimax); - get_map.emplace("cim:ExcST3A.vimin", &get_ExcST3A_vimin); - get_map.emplace("cim:ExcST3A.vrmax", &get_ExcST3A_vrmax); - get_map.emplace("cim:ExcST3A.vrmin", &get_ExcST3A_vrmin); - get_map.emplace("cim:ExcST3A.xl", &get_ExcST3A_xl); + get_map.emplace("ExcST3A.efdmax", &get_ExcST3A_efdmax); + get_map.emplace("ExcST3A.kc", &get_ExcST3A_kc); + get_map.emplace("ExcST3A.kg", &get_ExcST3A_kg); + get_map.emplace("ExcST3A.ki", &get_ExcST3A_ki); + get_map.emplace("ExcST3A.kj", &get_ExcST3A_kj); + get_map.emplace("ExcST3A.km", &get_ExcST3A_km); + get_map.emplace("ExcST3A.kp", &get_ExcST3A_kp); + get_map.emplace("ExcST3A.ks", &get_ExcST3A_ks); + get_map.emplace("ExcST3A.ks1", &get_ExcST3A_ks1); + get_map.emplace("ExcST3A.tb", &get_ExcST3A_tb); + get_map.emplace("ExcST3A.tc", &get_ExcST3A_tc); + get_map.emplace("ExcST3A.thetap", &get_ExcST3A_thetap); + get_map.emplace("ExcST3A.tm", &get_ExcST3A_tm); + get_map.emplace("ExcST3A.vbmax", &get_ExcST3A_vbmax); + get_map.emplace("ExcST3A.vgmax", &get_ExcST3A_vgmax); + get_map.emplace("ExcST3A.vimax", &get_ExcST3A_vimax); + get_map.emplace("ExcST3A.vimin", &get_ExcST3A_vimin); + get_map.emplace("ExcST3A.vrmax", &get_ExcST3A_vrmax); + get_map.emplace("ExcST3A.vrmin", &get_ExcST3A_vrmin); + get_map.emplace("ExcST3A.xl", &get_ExcST3A_xl); } void ExcST3A::addClassGetFnsToMap(std::map& get_map) const @@ -712,11 +744,25 @@ void ExcST3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST3A::declare() { return BaseClassDefiner(ExcST3A::addConstructToMap, ExcST3A::addPrimitiveAssignFnsToMap, ExcST3A::addClassAssignFnsToMap, ExcST3A::debugName); } +std::map ExcST3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST3A_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcST3A.hpp b/CGMES_2.4.13_18DEC2013/ExcST3A.hpp index 522bb2633..750b93987 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST3A.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcST3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -90,8 +91,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -99,7 +107,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST3A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcST4B.cpp b/CGMES_2.4.13_18DEC2013/ExcST4B.cpp index b09570552..bb7ae0dc9 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST4B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcST4B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST4B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kpm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.lvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.uel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST4B::ExcST4B() {} ExcST4B::~ExcST4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST4B.kc", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kg", { CGMESProfile::DY, } }, - { "cim:ExcST4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kim", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kir", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kpm", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcST4B.lvgate", { CGMESProfile::DY, } }, - { "cim:ExcST4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcST4B.thetap", { CGMESProfile::DY, } }, - { "cim:ExcST4B.uel", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST4B.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcST4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST4B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcST4B::debugString() const void ExcST4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST4B", &ExcST4B_factory); + factory_map.emplace("ExcST4B", &ExcST4B_factory); } void ExcST4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST4B.kc", &assign_ExcST4B_kc); - assign_map.emplace("cim:ExcST4B.kg", &assign_ExcST4B_kg); - assign_map.emplace("cim:ExcST4B.ki", &assign_ExcST4B_ki); - assign_map.emplace("cim:ExcST4B.kim", &assign_ExcST4B_kim); - assign_map.emplace("cim:ExcST4B.kir", &assign_ExcST4B_kir); - assign_map.emplace("cim:ExcST4B.kp", &assign_ExcST4B_kp); - assign_map.emplace("cim:ExcST4B.kpm", &assign_ExcST4B_kpm); - assign_map.emplace("cim:ExcST4B.kpr", &assign_ExcST4B_kpr); - assign_map.emplace("cim:ExcST4B.lvgate", &assign_ExcST4B_lvgate); - assign_map.emplace("cim:ExcST4B.ta", &assign_ExcST4B_ta); - assign_map.emplace("cim:ExcST4B.thetap", &assign_ExcST4B_thetap); - assign_map.emplace("cim:ExcST4B.uel", &assign_ExcST4B_uel); - assign_map.emplace("cim:ExcST4B.vbmax", &assign_ExcST4B_vbmax); - assign_map.emplace("cim:ExcST4B.vgmax", &assign_ExcST4B_vgmax); - assign_map.emplace("cim:ExcST4B.vmmax", &assign_ExcST4B_vmmax); - assign_map.emplace("cim:ExcST4B.vmmin", &assign_ExcST4B_vmmin); - assign_map.emplace("cim:ExcST4B.vrmax", &assign_ExcST4B_vrmax); - assign_map.emplace("cim:ExcST4B.vrmin", &assign_ExcST4B_vrmin); - assign_map.emplace("cim:ExcST4B.xl", &assign_ExcST4B_xl); + assign_map.emplace("ExcST4B.kc", &assign_ExcST4B_kc); + assign_map.emplace("ExcST4B.kg", &assign_ExcST4B_kg); + assign_map.emplace("ExcST4B.ki", &assign_ExcST4B_ki); + assign_map.emplace("ExcST4B.kim", &assign_ExcST4B_kim); + assign_map.emplace("ExcST4B.kir", &assign_ExcST4B_kir); + assign_map.emplace("ExcST4B.kp", &assign_ExcST4B_kp); + assign_map.emplace("ExcST4B.kpm", &assign_ExcST4B_kpm); + assign_map.emplace("ExcST4B.kpr", &assign_ExcST4B_kpr); + assign_map.emplace("ExcST4B.lvgate", &assign_ExcST4B_lvgate); + assign_map.emplace("ExcST4B.ta", &assign_ExcST4B_ta); + assign_map.emplace("ExcST4B.thetap", &assign_ExcST4B_thetap); + assign_map.emplace("ExcST4B.uel", &assign_ExcST4B_uel); + assign_map.emplace("ExcST4B.vbmax", &assign_ExcST4B_vbmax); + assign_map.emplace("ExcST4B.vgmax", &assign_ExcST4B_vgmax); + assign_map.emplace("ExcST4B.vmmax", &assign_ExcST4B_vmmax); + assign_map.emplace("ExcST4B.vmmin", &assign_ExcST4B_vmmin); + assign_map.emplace("ExcST4B.vrmax", &assign_ExcST4B_vrmax); + assign_map.emplace("ExcST4B.vrmin", &assign_ExcST4B_vrmin); + assign_map.emplace("ExcST4B.xl", &assign_ExcST4B_xl); } void ExcST4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcST4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST4B.kc", &get_ExcST4B_kc); - get_map.emplace("cim:ExcST4B.kg", &get_ExcST4B_kg); - get_map.emplace("cim:ExcST4B.ki", &get_ExcST4B_ki); - get_map.emplace("cim:ExcST4B.kim", &get_ExcST4B_kim); - get_map.emplace("cim:ExcST4B.kir", &get_ExcST4B_kir); - get_map.emplace("cim:ExcST4B.kp", &get_ExcST4B_kp); - get_map.emplace("cim:ExcST4B.kpm", &get_ExcST4B_kpm); - get_map.emplace("cim:ExcST4B.kpr", &get_ExcST4B_kpr); - get_map.emplace("cim:ExcST4B.lvgate", &get_ExcST4B_lvgate); - get_map.emplace("cim:ExcST4B.ta", &get_ExcST4B_ta); - get_map.emplace("cim:ExcST4B.thetap", &get_ExcST4B_thetap); - get_map.emplace("cim:ExcST4B.uel", &get_ExcST4B_uel); - get_map.emplace("cim:ExcST4B.vbmax", &get_ExcST4B_vbmax); - get_map.emplace("cim:ExcST4B.vgmax", &get_ExcST4B_vgmax); - get_map.emplace("cim:ExcST4B.vmmax", &get_ExcST4B_vmmax); - get_map.emplace("cim:ExcST4B.vmmin", &get_ExcST4B_vmmin); - get_map.emplace("cim:ExcST4B.vrmax", &get_ExcST4B_vrmax); - get_map.emplace("cim:ExcST4B.vrmin", &get_ExcST4B_vrmin); - get_map.emplace("cim:ExcST4B.xl", &get_ExcST4B_xl); + get_map.emplace("ExcST4B.kc", &get_ExcST4B_kc); + get_map.emplace("ExcST4B.kg", &get_ExcST4B_kg); + get_map.emplace("ExcST4B.ki", &get_ExcST4B_ki); + get_map.emplace("ExcST4B.kim", &get_ExcST4B_kim); + get_map.emplace("ExcST4B.kir", &get_ExcST4B_kir); + get_map.emplace("ExcST4B.kp", &get_ExcST4B_kp); + get_map.emplace("ExcST4B.kpm", &get_ExcST4B_kpm); + get_map.emplace("ExcST4B.kpr", &get_ExcST4B_kpr); + get_map.emplace("ExcST4B.lvgate", &get_ExcST4B_lvgate); + get_map.emplace("ExcST4B.ta", &get_ExcST4B_ta); + get_map.emplace("ExcST4B.thetap", &get_ExcST4B_thetap); + get_map.emplace("ExcST4B.uel", &get_ExcST4B_uel); + get_map.emplace("ExcST4B.vbmax", &get_ExcST4B_vbmax); + get_map.emplace("ExcST4B.vgmax", &get_ExcST4B_vgmax); + get_map.emplace("ExcST4B.vmmax", &get_ExcST4B_vmmax); + get_map.emplace("ExcST4B.vmmin", &get_ExcST4B_vmmin); + get_map.emplace("ExcST4B.vrmax", &get_ExcST4B_vrmax); + get_map.emplace("ExcST4B.vrmin", &get_ExcST4B_vrmin); + get_map.emplace("ExcST4B.xl", &get_ExcST4B_xl); } void ExcST4B::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcST4B::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST4B::declare() { return BaseClassDefiner(ExcST4B::addConstructToMap, ExcST4B::addPrimitiveAssignFnsToMap, ExcST4B::addClassAssignFnsToMap, ExcST4B::debugName); } +std::map ExcST4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST4B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcST4B.hpp b/CGMES_2.4.13_18DEC2013/ExcST4B.hpp index 5aa265787..f769e715a 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST4B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcST4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST4B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcST6B.cpp b/CGMES_2.4.13_18DEC2013/ExcST6B.cpp index 9942e0b7a..1eb2154cf 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST6B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcST6B.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST6B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST6B.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.tvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vilim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vmult", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST6B::ExcST6B() {} ExcST6B::~ExcST6B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST6B.ilr", { CGMESProfile::DY, } }, - { "cim:ExcST6B.k1", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kcl", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kff", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kg", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kia", { CGMESProfile::DY, } }, - { "cim:ExcST6B.klr", { CGMESProfile::DY, } }, - { "cim:ExcST6B.km", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kvd", { CGMESProfile::DY, } }, - { "cim:ExcST6B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.tg", { CGMESProfile::DY, } }, - { "cim:ExcST6B.ts", { CGMESProfile::DY, } }, - { "cim:ExcST6B.tvd", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vilim", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vmult", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.xc", { CGMESProfile::DY, } }, -}; - -std::list -ExcST6B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST6B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST6B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST6B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST6B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST6B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST6B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST6B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST6B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST6B_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcST6B::debugString() const void ExcST6B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST6B", &ExcST6B_factory); + factory_map.emplace("ExcST6B", &ExcST6B_factory); } void ExcST6B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST6B.ilr", &assign_ExcST6B_ilr); - assign_map.emplace("cim:ExcST6B.k1", &assign_ExcST6B_k1); - assign_map.emplace("cim:ExcST6B.kcl", &assign_ExcST6B_kcl); - assign_map.emplace("cim:ExcST6B.kff", &assign_ExcST6B_kff); - assign_map.emplace("cim:ExcST6B.kg", &assign_ExcST6B_kg); - assign_map.emplace("cim:ExcST6B.kia", &assign_ExcST6B_kia); - assign_map.emplace("cim:ExcST6B.klr", &assign_ExcST6B_klr); - assign_map.emplace("cim:ExcST6B.km", &assign_ExcST6B_km); - assign_map.emplace("cim:ExcST6B.kpa", &assign_ExcST6B_kpa); - assign_map.emplace("cim:ExcST6B.kvd", &assign_ExcST6B_kvd); - assign_map.emplace("cim:ExcST6B.oelin", &assign_ExcST6B_oelin); - assign_map.emplace("cim:ExcST6B.tg", &assign_ExcST6B_tg); - assign_map.emplace("cim:ExcST6B.ts", &assign_ExcST6B_ts); - assign_map.emplace("cim:ExcST6B.tvd", &assign_ExcST6B_tvd); - assign_map.emplace("cim:ExcST6B.vamax", &assign_ExcST6B_vamax); - assign_map.emplace("cim:ExcST6B.vamin", &assign_ExcST6B_vamin); - assign_map.emplace("cim:ExcST6B.vilim", &assign_ExcST6B_vilim); - assign_map.emplace("cim:ExcST6B.vimax", &assign_ExcST6B_vimax); - assign_map.emplace("cim:ExcST6B.vimin", &assign_ExcST6B_vimin); - assign_map.emplace("cim:ExcST6B.vmult", &assign_ExcST6B_vmult); - assign_map.emplace("cim:ExcST6B.vrmax", &assign_ExcST6B_vrmax); - assign_map.emplace("cim:ExcST6B.vrmin", &assign_ExcST6B_vrmin); - assign_map.emplace("cim:ExcST6B.xc", &assign_ExcST6B_xc); + assign_map.emplace("ExcST6B.ilr", &assign_ExcST6B_ilr); + assign_map.emplace("ExcST6B.k1", &assign_ExcST6B_k1); + assign_map.emplace("ExcST6B.kcl", &assign_ExcST6B_kcl); + assign_map.emplace("ExcST6B.kff", &assign_ExcST6B_kff); + assign_map.emplace("ExcST6B.kg", &assign_ExcST6B_kg); + assign_map.emplace("ExcST6B.kia", &assign_ExcST6B_kia); + assign_map.emplace("ExcST6B.klr", &assign_ExcST6B_klr); + assign_map.emplace("ExcST6B.km", &assign_ExcST6B_km); + assign_map.emplace("ExcST6B.kpa", &assign_ExcST6B_kpa); + assign_map.emplace("ExcST6B.kvd", &assign_ExcST6B_kvd); + assign_map.emplace("ExcST6B.oelin", &assign_ExcST6B_oelin); + assign_map.emplace("ExcST6B.tg", &assign_ExcST6B_tg); + assign_map.emplace("ExcST6B.ts", &assign_ExcST6B_ts); + assign_map.emplace("ExcST6B.tvd", &assign_ExcST6B_tvd); + assign_map.emplace("ExcST6B.vamax", &assign_ExcST6B_vamax); + assign_map.emplace("ExcST6B.vamin", &assign_ExcST6B_vamin); + assign_map.emplace("ExcST6B.vilim", &assign_ExcST6B_vilim); + assign_map.emplace("ExcST6B.vimax", &assign_ExcST6B_vimax); + assign_map.emplace("ExcST6B.vimin", &assign_ExcST6B_vimin); + assign_map.emplace("ExcST6B.vmult", &assign_ExcST6B_vmult); + assign_map.emplace("ExcST6B.vrmax", &assign_ExcST6B_vrmax); + assign_map.emplace("ExcST6B.vrmin", &assign_ExcST6B_vrmin); + assign_map.emplace("ExcST6B.xc", &assign_ExcST6B_xc); } void ExcST6B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,28 +805,28 @@ void ExcST6B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST6B.ilr", &get_ExcST6B_ilr); - get_map.emplace("cim:ExcST6B.k1", &get_ExcST6B_k1); - get_map.emplace("cim:ExcST6B.kcl", &get_ExcST6B_kcl); - get_map.emplace("cim:ExcST6B.kff", &get_ExcST6B_kff); - get_map.emplace("cim:ExcST6B.kg", &get_ExcST6B_kg); - get_map.emplace("cim:ExcST6B.kia", &get_ExcST6B_kia); - get_map.emplace("cim:ExcST6B.klr", &get_ExcST6B_klr); - get_map.emplace("cim:ExcST6B.km", &get_ExcST6B_km); - get_map.emplace("cim:ExcST6B.kpa", &get_ExcST6B_kpa); - get_map.emplace("cim:ExcST6B.kvd", &get_ExcST6B_kvd); - get_map.emplace("cim:ExcST6B.tg", &get_ExcST6B_tg); - get_map.emplace("cim:ExcST6B.ts", &get_ExcST6B_ts); - get_map.emplace("cim:ExcST6B.tvd", &get_ExcST6B_tvd); - get_map.emplace("cim:ExcST6B.vamax", &get_ExcST6B_vamax); - get_map.emplace("cim:ExcST6B.vamin", &get_ExcST6B_vamin); - get_map.emplace("cim:ExcST6B.vilim", &get_ExcST6B_vilim); - get_map.emplace("cim:ExcST6B.vimax", &get_ExcST6B_vimax); - get_map.emplace("cim:ExcST6B.vimin", &get_ExcST6B_vimin); - get_map.emplace("cim:ExcST6B.vmult", &get_ExcST6B_vmult); - get_map.emplace("cim:ExcST6B.vrmax", &get_ExcST6B_vrmax); - get_map.emplace("cim:ExcST6B.vrmin", &get_ExcST6B_vrmin); - get_map.emplace("cim:ExcST6B.xc", &get_ExcST6B_xc); + get_map.emplace("ExcST6B.ilr", &get_ExcST6B_ilr); + get_map.emplace("ExcST6B.k1", &get_ExcST6B_k1); + get_map.emplace("ExcST6B.kcl", &get_ExcST6B_kcl); + get_map.emplace("ExcST6B.kff", &get_ExcST6B_kff); + get_map.emplace("ExcST6B.kg", &get_ExcST6B_kg); + get_map.emplace("ExcST6B.kia", &get_ExcST6B_kia); + get_map.emplace("ExcST6B.klr", &get_ExcST6B_klr); + get_map.emplace("ExcST6B.km", &get_ExcST6B_km); + get_map.emplace("ExcST6B.kpa", &get_ExcST6B_kpa); + get_map.emplace("ExcST6B.kvd", &get_ExcST6B_kvd); + get_map.emplace("ExcST6B.tg", &get_ExcST6B_tg); + get_map.emplace("ExcST6B.ts", &get_ExcST6B_ts); + get_map.emplace("ExcST6B.tvd", &get_ExcST6B_tvd); + get_map.emplace("ExcST6B.vamax", &get_ExcST6B_vamax); + get_map.emplace("ExcST6B.vamin", &get_ExcST6B_vamin); + get_map.emplace("ExcST6B.vilim", &get_ExcST6B_vilim); + get_map.emplace("ExcST6B.vimax", &get_ExcST6B_vimax); + get_map.emplace("ExcST6B.vimin", &get_ExcST6B_vimin); + get_map.emplace("ExcST6B.vmult", &get_ExcST6B_vmult); + get_map.emplace("ExcST6B.vrmax", &get_ExcST6B_vrmax); + get_map.emplace("ExcST6B.vrmin", &get_ExcST6B_vrmin); + get_map.emplace("ExcST6B.xc", &get_ExcST6B_xc); } void ExcST6B::addClassGetFnsToMap(std::map& get_map) const @@ -805,7 +837,13 @@ void ExcST6B::addClassGetFnsToMap(std::map& get void ExcST6B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcST6B.oelin", &get_ExcST6B_oelin); + get_map.emplace("ExcST6B.oelin", &get_ExcST6B_oelin); +} + +bool ExcST6B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST6B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcST6B::declare() @@ -813,6 +851,14 @@ const BaseClassDefiner ExcST6B::declare() return BaseClassDefiner(ExcST6B::addConstructToMap, ExcST6B::addPrimitiveAssignFnsToMap, ExcST6B::addClassAssignFnsToMap, ExcST6B::debugName); } +std::map ExcST6B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST6B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcST6B.hpp b/CGMES_2.4.13_18DEC2013/ExcST6B.hpp index 5b79ac602..9a5dc81bd 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST6B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcST6B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "ExcST6BOELselectorKind.hpp" #include "PU.hpp" @@ -100,8 +101,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -109,7 +117,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST6B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcST7B.cpp b/CGMES_2.4.13_18DEC2013/ExcST7B.cpp index b353d3afa..d4ab87ebf 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST7B.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcST7B.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST7B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST7B::ExcST7B() {} ExcST7B::~ExcST7B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST7B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST7B::getClassNamespaceUrl() const { - { "cim:ExcST7B.kh", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcST7B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tb", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tc", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tg", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tia", { CGMESProfile::DY, } }, - { "cim:ExcST7B.ts", { CGMESProfile::DY, } }, - { "cim:ExcST7B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vmax", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vmin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST7B::getPossibleProfilesForClass() const +const std::string& ExcST7B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST7B::getPossibleProfilesForAttributes() const +const std::list& ExcST7B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST7B_kh(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcST7B::debugString() const void ExcST7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST7B", &ExcST7B_factory); + factory_map.emplace("ExcST7B", &ExcST7B_factory); } void ExcST7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST7B.kh", &assign_ExcST7B_kh); - assign_map.emplace("cim:ExcST7B.kia", &assign_ExcST7B_kia); - assign_map.emplace("cim:ExcST7B.kl", &assign_ExcST7B_kl); - assign_map.emplace("cim:ExcST7B.kpa", &assign_ExcST7B_kpa); - assign_map.emplace("cim:ExcST7B.oelin", &assign_ExcST7B_oelin); - assign_map.emplace("cim:ExcST7B.tb", &assign_ExcST7B_tb); - assign_map.emplace("cim:ExcST7B.tc", &assign_ExcST7B_tc); - assign_map.emplace("cim:ExcST7B.tf", &assign_ExcST7B_tf); - assign_map.emplace("cim:ExcST7B.tg", &assign_ExcST7B_tg); - assign_map.emplace("cim:ExcST7B.tia", &assign_ExcST7B_tia); - assign_map.emplace("cim:ExcST7B.ts", &assign_ExcST7B_ts); - assign_map.emplace("cim:ExcST7B.uelin", &assign_ExcST7B_uelin); - assign_map.emplace("cim:ExcST7B.vmax", &assign_ExcST7B_vmax); - assign_map.emplace("cim:ExcST7B.vmin", &assign_ExcST7B_vmin); - assign_map.emplace("cim:ExcST7B.vrmax", &assign_ExcST7B_vrmax); - assign_map.emplace("cim:ExcST7B.vrmin", &assign_ExcST7B_vrmin); + assign_map.emplace("ExcST7B.kh", &assign_ExcST7B_kh); + assign_map.emplace("ExcST7B.kia", &assign_ExcST7B_kia); + assign_map.emplace("ExcST7B.kl", &assign_ExcST7B_kl); + assign_map.emplace("ExcST7B.kpa", &assign_ExcST7B_kpa); + assign_map.emplace("ExcST7B.oelin", &assign_ExcST7B_oelin); + assign_map.emplace("ExcST7B.tb", &assign_ExcST7B_tb); + assign_map.emplace("ExcST7B.tc", &assign_ExcST7B_tc); + assign_map.emplace("ExcST7B.tf", &assign_ExcST7B_tf); + assign_map.emplace("ExcST7B.tg", &assign_ExcST7B_tg); + assign_map.emplace("ExcST7B.tia", &assign_ExcST7B_tia); + assign_map.emplace("ExcST7B.ts", &assign_ExcST7B_ts); + assign_map.emplace("ExcST7B.uelin", &assign_ExcST7B_uelin); + assign_map.emplace("ExcST7B.vmax", &assign_ExcST7B_vmax); + assign_map.emplace("ExcST7B.vmin", &assign_ExcST7B_vmin); + assign_map.emplace("ExcST7B.vrmax", &assign_ExcST7B_vrmax); + assign_map.emplace("ExcST7B.vrmin", &assign_ExcST7B_vrmin); } void ExcST7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,20 +588,20 @@ void ExcST7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST7B.kh", &get_ExcST7B_kh); - get_map.emplace("cim:ExcST7B.kia", &get_ExcST7B_kia); - get_map.emplace("cim:ExcST7B.kl", &get_ExcST7B_kl); - get_map.emplace("cim:ExcST7B.kpa", &get_ExcST7B_kpa); - get_map.emplace("cim:ExcST7B.tb", &get_ExcST7B_tb); - get_map.emplace("cim:ExcST7B.tc", &get_ExcST7B_tc); - get_map.emplace("cim:ExcST7B.tf", &get_ExcST7B_tf); - get_map.emplace("cim:ExcST7B.tg", &get_ExcST7B_tg); - get_map.emplace("cim:ExcST7B.tia", &get_ExcST7B_tia); - get_map.emplace("cim:ExcST7B.ts", &get_ExcST7B_ts); - get_map.emplace("cim:ExcST7B.vmax", &get_ExcST7B_vmax); - get_map.emplace("cim:ExcST7B.vmin", &get_ExcST7B_vmin); - get_map.emplace("cim:ExcST7B.vrmax", &get_ExcST7B_vrmax); - get_map.emplace("cim:ExcST7B.vrmin", &get_ExcST7B_vrmin); + get_map.emplace("ExcST7B.kh", &get_ExcST7B_kh); + get_map.emplace("ExcST7B.kia", &get_ExcST7B_kia); + get_map.emplace("ExcST7B.kl", &get_ExcST7B_kl); + get_map.emplace("ExcST7B.kpa", &get_ExcST7B_kpa); + get_map.emplace("ExcST7B.tb", &get_ExcST7B_tb); + get_map.emplace("ExcST7B.tc", &get_ExcST7B_tc); + get_map.emplace("ExcST7B.tf", &get_ExcST7B_tf); + get_map.emplace("ExcST7B.tg", &get_ExcST7B_tg); + get_map.emplace("ExcST7B.tia", &get_ExcST7B_tia); + get_map.emplace("ExcST7B.ts", &get_ExcST7B_ts); + get_map.emplace("ExcST7B.vmax", &get_ExcST7B_vmax); + get_map.emplace("ExcST7B.vmin", &get_ExcST7B_vmin); + get_map.emplace("ExcST7B.vrmax", &get_ExcST7B_vrmax); + get_map.emplace("ExcST7B.vrmin", &get_ExcST7B_vrmin); } void ExcST7B::addClassGetFnsToMap(std::map& get_map) const @@ -580,8 +612,14 @@ void ExcST7B::addClassGetFnsToMap(std::map& get void ExcST7B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcST7B.oelin", &get_ExcST7B_oelin); - get_map.emplace("cim:ExcST7B.uelin", &get_ExcST7B_uelin); + get_map.emplace("ExcST7B.oelin", &get_ExcST7B_oelin); + get_map.emplace("ExcST7B.uelin", &get_ExcST7B_uelin); +} + +bool ExcST7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST7B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcST7B::declare() @@ -589,6 +627,14 @@ const BaseClassDefiner ExcST7B::declare() return BaseClassDefiner(ExcST7B::addConstructToMap, ExcST7B::addPrimitiveAssignFnsToMap, ExcST7B::addClassAssignFnsToMap, ExcST7B::debugName); } +std::map ExcST7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST7B_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcST7B.hpp b/CGMES_2.4.13_18DEC2013/ExcST7B.hpp index 3a015ea97..b7d7b756c 100644 --- a/CGMES_2.4.13_18DEC2013/ExcST7B.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcST7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST7BOELselectorKind.hpp" #include "ExcST7BUELselectorKind.hpp" #include "PU.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST7B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcitationSystemDynamics.cpp b/CGMES_2.4.13_18DEC2013/ExcitationSystemDynamics.cpp index 540af8c6a..f278015d3 100644 --- a/CGMES_2.4.13_18DEC2013/ExcitationSystemDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcitationSystemDynamics.cpp @@ -19,39 +19,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcitationSystemDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.OverexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PFVArControllerType2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PowerSystemStabilizerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.UnderexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.VoltageCompensatorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcitationSystemDynamics::ExcitationSystemDynamics() : DiscontinuousExcitationControlDynamics(nullptr), OverexcitationLimiterDynamics(nullptr), PFVArControllerType1Dynamics(nullptr), PFVArControllerType2Dynamics(nullptr), PowerSystemStabilizerDynamics(nullptr), SynchronousMachineDynamics(nullptr), UnderexcitationLimiterDynamics(nullptr), VoltageCompensatorDynamics(nullptr) {} ExcitationSystemDynamics::~ExcitationSystemDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcitationSystemDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcitationSystemDynamics::getClassNamespaceUrl() const { - { "cim:ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.OverexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PFVArControllerType2Dynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PowerSystemStabilizerDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.UnderexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.VoltageCompensatorDynamics", { CGMESProfile::DY, } }, -}; - -std::list -ExcitationSystemDynamics::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcitationSystemDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcitationSystemDynamics::getPossibleProfilesForAttributes() const +const std::list& ExcitationSystemDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcitationSystemDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcitationSystemDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcitationSystemDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics(BaseClass*, BaseClass*); @@ -219,7 +251,7 @@ const char* ExcitationSystemDynamics::debugString() const void ExcitationSystemDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcitationSystemDynamics", &ExcitationSystemDynamics_factory); + factory_map.emplace("ExcitationSystemDynamics", &ExcitationSystemDynamics_factory); } void ExcitationSystemDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -228,14 +260,14 @@ void ExcitationSystemDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", &assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.OverexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PFVArControllerType1Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PFVArControllerType2Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PowerSystemStabilizerDynamics", &assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.SynchronousMachineDynamics", &assign_ExcitationSystemDynamics_SynchronousMachineDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.UnderexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.VoltageCompensatorDynamics", &assign_ExcitationSystemDynamics_VoltageCompensatorDynamics); + assign_map.emplace("ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", &assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics); + assign_map.emplace("ExcitationSystemDynamics.OverexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics); + assign_map.emplace("ExcitationSystemDynamics.PFVArControllerType1Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics); + assign_map.emplace("ExcitationSystemDynamics.PFVArControllerType2Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics); + assign_map.emplace("ExcitationSystemDynamics.PowerSystemStabilizerDynamics", &assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics); + assign_map.emplace("ExcitationSystemDynamics.SynchronousMachineDynamics", &assign_ExcitationSystemDynamics_SynchronousMachineDynamics); + assign_map.emplace("ExcitationSystemDynamics.UnderexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics); + assign_map.emplace("ExcitationSystemDynamics.VoltageCompensatorDynamics", &assign_ExcitationSystemDynamics_VoltageCompensatorDynamics); } void ExcitationSystemDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -246,7 +278,7 @@ void ExcitationSystemDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ExcitationSystemDynamics.SynchronousMachineDynamics", &get_ExcitationSystemDynamics_SynchronousMachineDynamics); + get_map.emplace("ExcitationSystemDynamics.SynchronousMachineDynamics", &get_ExcitationSystemDynamics_SynchronousMachineDynamics); } void ExcitationSystemDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -254,11 +286,25 @@ void ExcitationSystemDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExcitationSystemDynamics::declare() { return BaseClassDefiner(ExcitationSystemDynamics::addConstructToMap, ExcitationSystemDynamics::addPrimitiveAssignFnsToMap, ExcitationSystemDynamics::addClassAssignFnsToMap, ExcitationSystemDynamics::debugName); } +std::map ExcitationSystemDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcitationSystemDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcitationSystemDynamics.hpp b/CGMES_2.4.13_18DEC2013/ExcitationSystemDynamics.hpp index eb20de209..5904db177 100644 --- a/CGMES_2.4.13_18DEC2013/ExcitationSystemDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcitationSystemDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcitationSystemDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExcitationSystemUserDefined.cpp b/CGMES_2.4.13_18DEC2013/ExcitationSystemUserDefined.cpp index 362ef357e..926f5b95a 100644 --- a/CGMES_2.4.13_18DEC2013/ExcitationSystemUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/ExcitationSystemUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcitationSystemUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcitationSystemUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcitationSystemUserDefined::ExcitationSystemUserDefined() {} ExcitationSystemUserDefined::~ExcitationSystemUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcitationSystemUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcitationSystemUserDefined::getClassNamespaceUrl() const { - { "cim:ExcitationSystemUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcitationSystemUserDefined::getPossibleProfilesForClass() const +const std::string& ExcitationSystemUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcitationSystemUserDefined::getPossibleProfilesForAttributes() const +const std::list& ExcitationSystemUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcitationSystemUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcitationSystemUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcitationSystemUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* ExcitationSystemUserDefined::debugString() const void ExcitationSystemUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcitationSystemUserDefined", &ExcitationSystemUserDefined_factory); + factory_map.emplace("ExcitationSystemUserDefined", &ExcitationSystemUserDefined_factory); } void ExcitationSystemUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemUserDefined.proprietary", &assign_ExcitationSystemUserDefined_proprietary); + assign_map.emplace("ExcitationSystemUserDefined.proprietary", &assign_ExcitationSystemUserDefined_proprietary); } void ExcitationSystemUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemUserDefined.ProprietaryParameterDynamics", &assign_ExcitationSystemUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("ExcitationSystemUserDefined.ProprietaryParameterDynamics", &assign_ExcitationSystemUserDefined_ProprietaryParameterDynamics); } void ExcitationSystemUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcitationSystemUserDefined.proprietary", &get_ExcitationSystemUserDefined_proprietary); + get_map.emplace("ExcitationSystemUserDefined.proprietary", &get_ExcitationSystemUserDefined_proprietary); } void ExcitationSystemUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void ExcitationSystemUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExcitationSystemUserDefined::declare() { return BaseClassDefiner(ExcitationSystemUserDefined::addConstructToMap, ExcitationSystemUserDefined::addPrimitiveAssignFnsToMap, ExcitationSystemUserDefined::addClassAssignFnsToMap, ExcitationSystemUserDefined::debugName); } +std::map ExcitationSystemUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcitationSystemUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExcitationSystemUserDefined.hpp b/CGMES_2.4.13_18DEC2013/ExcitationSystemUserDefined.hpp index 02b86bd95..a1b3c317d 100644 --- a/CGMES_2.4.13_18DEC2013/ExcitationSystemUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/ExcitationSystemUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcitationSystemUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ExternalNetworkInjection.cpp b/CGMES_2.4.13_18DEC2013/ExternalNetworkInjection.cpp index 134627b99..ce5150369 100644 --- a/CGMES_2.4.13_18DEC2013/ExternalNetworkInjection.cpp +++ b/CGMES_2.4.13_18DEC2013/ExternalNetworkInjection.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExternalNetworkInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExternalNetworkInjection.governorSCD", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.ikSecond", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxInitialSymShCCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxR0ToX0Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxR1ToX1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxZ0ToZ1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minInitialSymShCCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minR0ToX0Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minR1ToX1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minZ0ToZ1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.referencePriority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.voltageFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ExternalNetworkInjection::ExternalNetworkInjection() {} ExternalNetworkInjection::~ExternalNetworkInjection() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExternalNetworkInjection.governorSCD", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.ikSecond", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxInitialSymShCCurrent", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxP", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxQ", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxR0ToX0Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxR1ToX1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minInitialSymShCCurrent", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minP", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minQ", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minR0ToX0Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minR1ToX1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minZ0ToZ1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.p", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.q", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.referencePriority", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.voltageFactor", { CGMESProfile::EQ, } }, -}; - -std::list -ExternalNetworkInjection::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExternalNetworkInjection::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExternalNetworkInjection::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExternalNetworkInjection::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExternalNetworkInjection::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExternalNetworkInjection::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExternalNetworkInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExternalNetworkInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExternalNetworkInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExternalNetworkInjection_governorSCD(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -587,29 +619,29 @@ const char* ExternalNetworkInjection::debugString() const void ExternalNetworkInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExternalNetworkInjection", &ExternalNetworkInjection_factory); + factory_map.emplace("ExternalNetworkInjection", &ExternalNetworkInjection_factory); } void ExternalNetworkInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExternalNetworkInjection.governorSCD", &assign_ExternalNetworkInjection_governorSCD); - assign_map.emplace("cim:ExternalNetworkInjection.ikSecond", &assign_ExternalNetworkInjection_ikSecond); - assign_map.emplace("cim:ExternalNetworkInjection.maxInitialSymShCCurrent", &assign_ExternalNetworkInjection_maxInitialSymShCCurrent); - assign_map.emplace("cim:ExternalNetworkInjection.maxP", &assign_ExternalNetworkInjection_maxP); - assign_map.emplace("cim:ExternalNetworkInjection.maxQ", &assign_ExternalNetworkInjection_maxQ); - assign_map.emplace("cim:ExternalNetworkInjection.maxR0ToX0Ratio", &assign_ExternalNetworkInjection_maxR0ToX0Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.maxR1ToX1Ratio", &assign_ExternalNetworkInjection_maxR1ToX1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", &assign_ExternalNetworkInjection_maxZ0ToZ1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minInitialSymShCCurrent", &assign_ExternalNetworkInjection_minInitialSymShCCurrent); - assign_map.emplace("cim:ExternalNetworkInjection.minP", &assign_ExternalNetworkInjection_minP); - assign_map.emplace("cim:ExternalNetworkInjection.minQ", &assign_ExternalNetworkInjection_minQ); - assign_map.emplace("cim:ExternalNetworkInjection.minR0ToX0Ratio", &assign_ExternalNetworkInjection_minR0ToX0Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minR1ToX1Ratio", &assign_ExternalNetworkInjection_minR1ToX1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minZ0ToZ1Ratio", &assign_ExternalNetworkInjection_minZ0ToZ1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.p", &assign_ExternalNetworkInjection_p); - assign_map.emplace("cim:ExternalNetworkInjection.q", &assign_ExternalNetworkInjection_q); - assign_map.emplace("cim:ExternalNetworkInjection.referencePriority", &assign_ExternalNetworkInjection_referencePriority); - assign_map.emplace("cim:ExternalNetworkInjection.voltageFactor", &assign_ExternalNetworkInjection_voltageFactor); + assign_map.emplace("ExternalNetworkInjection.governorSCD", &assign_ExternalNetworkInjection_governorSCD); + assign_map.emplace("ExternalNetworkInjection.ikSecond", &assign_ExternalNetworkInjection_ikSecond); + assign_map.emplace("ExternalNetworkInjection.maxInitialSymShCCurrent", &assign_ExternalNetworkInjection_maxInitialSymShCCurrent); + assign_map.emplace("ExternalNetworkInjection.maxP", &assign_ExternalNetworkInjection_maxP); + assign_map.emplace("ExternalNetworkInjection.maxQ", &assign_ExternalNetworkInjection_maxQ); + assign_map.emplace("ExternalNetworkInjection.maxR0ToX0Ratio", &assign_ExternalNetworkInjection_maxR0ToX0Ratio); + assign_map.emplace("ExternalNetworkInjection.maxR1ToX1Ratio", &assign_ExternalNetworkInjection_maxR1ToX1Ratio); + assign_map.emplace("ExternalNetworkInjection.maxZ0ToZ1Ratio", &assign_ExternalNetworkInjection_maxZ0ToZ1Ratio); + assign_map.emplace("ExternalNetworkInjection.minInitialSymShCCurrent", &assign_ExternalNetworkInjection_minInitialSymShCCurrent); + assign_map.emplace("ExternalNetworkInjection.minP", &assign_ExternalNetworkInjection_minP); + assign_map.emplace("ExternalNetworkInjection.minQ", &assign_ExternalNetworkInjection_minQ); + assign_map.emplace("ExternalNetworkInjection.minR0ToX0Ratio", &assign_ExternalNetworkInjection_minR0ToX0Ratio); + assign_map.emplace("ExternalNetworkInjection.minR1ToX1Ratio", &assign_ExternalNetworkInjection_minR1ToX1Ratio); + assign_map.emplace("ExternalNetworkInjection.minZ0ToZ1Ratio", &assign_ExternalNetworkInjection_minZ0ToZ1Ratio); + assign_map.emplace("ExternalNetworkInjection.p", &assign_ExternalNetworkInjection_p); + assign_map.emplace("ExternalNetworkInjection.q", &assign_ExternalNetworkInjection_q); + assign_map.emplace("ExternalNetworkInjection.referencePriority", &assign_ExternalNetworkInjection_referencePriority); + assign_map.emplace("ExternalNetworkInjection.voltageFactor", &assign_ExternalNetworkInjection_voltageFactor); } void ExternalNetworkInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -619,24 +651,24 @@ void ExternalNetworkInjection::addClassAssignFnsToMap(std::unordered_map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExternalNetworkInjection.governorSCD", &get_ExternalNetworkInjection_governorSCD); - get_map.emplace("cim:ExternalNetworkInjection.ikSecond", &get_ExternalNetworkInjection_ikSecond); - get_map.emplace("cim:ExternalNetworkInjection.maxInitialSymShCCurrent", &get_ExternalNetworkInjection_maxInitialSymShCCurrent); - get_map.emplace("cim:ExternalNetworkInjection.maxP", &get_ExternalNetworkInjection_maxP); - get_map.emplace("cim:ExternalNetworkInjection.maxQ", &get_ExternalNetworkInjection_maxQ); - get_map.emplace("cim:ExternalNetworkInjection.maxR0ToX0Ratio", &get_ExternalNetworkInjection_maxR0ToX0Ratio); - get_map.emplace("cim:ExternalNetworkInjection.maxR1ToX1Ratio", &get_ExternalNetworkInjection_maxR1ToX1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", &get_ExternalNetworkInjection_maxZ0ToZ1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minInitialSymShCCurrent", &get_ExternalNetworkInjection_minInitialSymShCCurrent); - get_map.emplace("cim:ExternalNetworkInjection.minP", &get_ExternalNetworkInjection_minP); - get_map.emplace("cim:ExternalNetworkInjection.minQ", &get_ExternalNetworkInjection_minQ); - get_map.emplace("cim:ExternalNetworkInjection.minR0ToX0Ratio", &get_ExternalNetworkInjection_minR0ToX0Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minR1ToX1Ratio", &get_ExternalNetworkInjection_minR1ToX1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minZ0ToZ1Ratio", &get_ExternalNetworkInjection_minZ0ToZ1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.p", &get_ExternalNetworkInjection_p); - get_map.emplace("cim:ExternalNetworkInjection.q", &get_ExternalNetworkInjection_q); - get_map.emplace("cim:ExternalNetworkInjection.referencePriority", &get_ExternalNetworkInjection_referencePriority); - get_map.emplace("cim:ExternalNetworkInjection.voltageFactor", &get_ExternalNetworkInjection_voltageFactor); + get_map.emplace("ExternalNetworkInjection.governorSCD", &get_ExternalNetworkInjection_governorSCD); + get_map.emplace("ExternalNetworkInjection.ikSecond", &get_ExternalNetworkInjection_ikSecond); + get_map.emplace("ExternalNetworkInjection.maxInitialSymShCCurrent", &get_ExternalNetworkInjection_maxInitialSymShCCurrent); + get_map.emplace("ExternalNetworkInjection.maxP", &get_ExternalNetworkInjection_maxP); + get_map.emplace("ExternalNetworkInjection.maxQ", &get_ExternalNetworkInjection_maxQ); + get_map.emplace("ExternalNetworkInjection.maxR0ToX0Ratio", &get_ExternalNetworkInjection_maxR0ToX0Ratio); + get_map.emplace("ExternalNetworkInjection.maxR1ToX1Ratio", &get_ExternalNetworkInjection_maxR1ToX1Ratio); + get_map.emplace("ExternalNetworkInjection.maxZ0ToZ1Ratio", &get_ExternalNetworkInjection_maxZ0ToZ1Ratio); + get_map.emplace("ExternalNetworkInjection.minInitialSymShCCurrent", &get_ExternalNetworkInjection_minInitialSymShCCurrent); + get_map.emplace("ExternalNetworkInjection.minP", &get_ExternalNetworkInjection_minP); + get_map.emplace("ExternalNetworkInjection.minQ", &get_ExternalNetworkInjection_minQ); + get_map.emplace("ExternalNetworkInjection.minR0ToX0Ratio", &get_ExternalNetworkInjection_minR0ToX0Ratio); + get_map.emplace("ExternalNetworkInjection.minR1ToX1Ratio", &get_ExternalNetworkInjection_minR1ToX1Ratio); + get_map.emplace("ExternalNetworkInjection.minZ0ToZ1Ratio", &get_ExternalNetworkInjection_minZ0ToZ1Ratio); + get_map.emplace("ExternalNetworkInjection.p", &get_ExternalNetworkInjection_p); + get_map.emplace("ExternalNetworkInjection.q", &get_ExternalNetworkInjection_q); + get_map.emplace("ExternalNetworkInjection.referencePriority", &get_ExternalNetworkInjection_referencePriority); + get_map.emplace("ExternalNetworkInjection.voltageFactor", &get_ExternalNetworkInjection_voltageFactor); } void ExternalNetworkInjection::addClassGetFnsToMap(std::map& get_map) const @@ -649,11 +681,25 @@ void ExternalNetworkInjection::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExternalNetworkInjection::declare() { return BaseClassDefiner(ExternalNetworkInjection::addConstructToMap, ExternalNetworkInjection::addPrimitiveAssignFnsToMap, ExternalNetworkInjection::addClassAssignFnsToMap, ExternalNetworkInjection::debugName); } +std::map ExternalNetworkInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExternalNetworkInjection_factory() diff --git a/CGMES_2.4.13_18DEC2013/ExternalNetworkInjection.hpp b/CGMES_2.4.13_18DEC2013/ExternalNetworkInjection.hpp index e4e61c828..32343cc80 100644 --- a/CGMES_2.4.13_18DEC2013/ExternalNetworkInjection.hpp +++ b/CGMES_2.4.13_18DEC2013/ExternalNetworkInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ActivePowerPerFrequency.hpp" #include "Boolean.hpp" @@ -89,8 +90,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -98,7 +106,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExternalNetworkInjection_factory(); diff --git a/CGMES_2.4.13_18DEC2013/FossilFuel.cpp b/CGMES_2.4.13_18DEC2013/FossilFuel.cpp index d8564bf4d..2c4dfb3f0 100644 --- a/CGMES_2.4.13_18DEC2013/FossilFuel.cpp +++ b/CGMES_2.4.13_18DEC2013/FossilFuel.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + FossilFuel(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "FossilFuel.ThermalGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "FossilFuel.fossilFuelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + FossilFuel::FossilFuel() : ThermalGeneratingUnit(nullptr) {} FossilFuel::~FossilFuel() {} -static const std::list PossibleProfilesForClass = +const std::list& FossilFuel::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& FossilFuel::getClassNamespaceUrl() const { - { "cim:FossilFuel.ThermalGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:FossilFuel.fossilFuelType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -FossilFuel::getPossibleProfilesForClass() const +const std::string& FossilFuel::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -FossilFuel::getPossibleProfilesForAttributes() const +const std::list& FossilFuel::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& FossilFuel::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& FossilFuel::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& FossilFuel::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ThermalGeneratingUnit_FossilFuels(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* FossilFuel::debugString() const void FossilFuel::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:FossilFuel", &FossilFuel_factory); + factory_map.emplace("FossilFuel", &FossilFuel_factory); } void FossilFuel::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:FossilFuel.fossilFuelType", &assign_FossilFuel_fossilFuelType); + assign_map.emplace("FossilFuel.fossilFuelType", &assign_FossilFuel_fossilFuelType); } void FossilFuel::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:FossilFuel.ThermalGeneratingUnit", &assign_FossilFuel_ThermalGeneratingUnit); + assign_map.emplace("FossilFuel.ThermalGeneratingUnit", &assign_FossilFuel_ThermalGeneratingUnit); } void FossilFuel::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void FossilFuel::addPrimitiveGetFnsToMap(std::map& ge void FossilFuel::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:FossilFuel.ThermalGeneratingUnit", &get_FossilFuel_ThermalGeneratingUnit); + get_map.emplace("FossilFuel.ThermalGeneratingUnit", &get_FossilFuel_ThermalGeneratingUnit); } void FossilFuel::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:FossilFuel.fossilFuelType", &get_FossilFuel_fossilFuelType); + get_map.emplace("FossilFuel.fossilFuelType", &get_FossilFuel_fossilFuelType); +} + +bool FossilFuel::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "FossilFuel" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner FossilFuel::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner FossilFuel::declare() return BaseClassDefiner(FossilFuel::addConstructToMap, FossilFuel::addPrimitiveAssignFnsToMap, FossilFuel::addClassAssignFnsToMap, FossilFuel::debugName); } +std::map FossilFuel::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* FossilFuel_factory() diff --git a/CGMES_2.4.13_18DEC2013/FossilFuel.hpp b/CGMES_2.4.13_18DEC2013/FossilFuel.hpp index 8b402a908..d691f6007 100644 --- a/CGMES_2.4.13_18DEC2013/FossilFuel.hpp +++ b/CGMES_2.4.13_18DEC2013/FossilFuel.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "FuelType.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* FossilFuel_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GenICompensationForGenJ.cpp b/CGMES_2.4.13_18DEC2013/GenICompensationForGenJ.cpp index ade258b3c..6f0a817c2 100644 --- a/CGMES_2.4.13_18DEC2013/GenICompensationForGenJ.cpp +++ b/CGMES_2.4.13_18DEC2013/GenICompensationForGenJ.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GenICompensationForGenJ(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GenICompensationForGenJ.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.VcompIEEEType2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.rcij", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.xcij", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GenICompensationForGenJ::GenICompensationForGenJ() : SynchronousMachineDynamics(nullptr), VcompIEEEType2(nullptr) {} GenICompensationForGenJ::~GenICompensationForGenJ() {} -static const std::list PossibleProfilesForClass = +const std::list& GenICompensationForGenJ::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GenICompensationForGenJ::getClassNamespaceUrl() const { - { "cim:GenICompensationForGenJ.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.VcompIEEEType2", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.rcij", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.xcij", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GenICompensationForGenJ::getPossibleProfilesForClass() const +const std::string& GenICompensationForGenJ::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GenICompensationForGenJ::getPossibleProfilesForAttributes() const +const std::list& GenICompensationForGenJ::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GenICompensationForGenJ::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GenICompensationForGenJ::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GenICompensationForGenJ::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDynamics_GenICompensationForGenJ(BaseClass*, BaseClass*); @@ -172,33 +204,33 @@ const char* GenICompensationForGenJ::debugString() const void GenICompensationForGenJ::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GenICompensationForGenJ", &GenICompensationForGenJ_factory); + factory_map.emplace("GenICompensationForGenJ", &GenICompensationForGenJ_factory); } void GenICompensationForGenJ::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GenICompensationForGenJ.rcij", &assign_GenICompensationForGenJ_rcij); - assign_map.emplace("cim:GenICompensationForGenJ.xcij", &assign_GenICompensationForGenJ_xcij); + assign_map.emplace("GenICompensationForGenJ.rcij", &assign_GenICompensationForGenJ_rcij); + assign_map.emplace("GenICompensationForGenJ.xcij", &assign_GenICompensationForGenJ_xcij); } void GenICompensationForGenJ::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GenICompensationForGenJ.SynchronousMachineDynamics", &assign_GenICompensationForGenJ_SynchronousMachineDynamics); - assign_map.emplace("cim:GenICompensationForGenJ.VcompIEEEType2", &assign_GenICompensationForGenJ_VcompIEEEType2); + assign_map.emplace("GenICompensationForGenJ.SynchronousMachineDynamics", &assign_GenICompensationForGenJ_SynchronousMachineDynamics); + assign_map.emplace("GenICompensationForGenJ.VcompIEEEType2", &assign_GenICompensationForGenJ_VcompIEEEType2); } void GenICompensationForGenJ::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GenICompensationForGenJ.rcij", &get_GenICompensationForGenJ_rcij); - get_map.emplace("cim:GenICompensationForGenJ.xcij", &get_GenICompensationForGenJ_xcij); + get_map.emplace("GenICompensationForGenJ.rcij", &get_GenICompensationForGenJ_rcij); + get_map.emplace("GenICompensationForGenJ.xcij", &get_GenICompensationForGenJ_xcij); } void GenICompensationForGenJ::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:GenICompensationForGenJ.SynchronousMachineDynamics", &get_GenICompensationForGenJ_SynchronousMachineDynamics); - get_map.emplace("cim:GenICompensationForGenJ.VcompIEEEType2", &get_GenICompensationForGenJ_VcompIEEEType2); + get_map.emplace("GenICompensationForGenJ.SynchronousMachineDynamics", &get_GenICompensationForGenJ_SynchronousMachineDynamics); + get_map.emplace("GenICompensationForGenJ.VcompIEEEType2", &get_GenICompensationForGenJ_VcompIEEEType2); } void GenICompensationForGenJ::addEnumGetFnsToMap(std::map& get_map) const @@ -206,11 +238,25 @@ void GenICompensationForGenJ::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GenICompensationForGenJ::declare() { return BaseClassDefiner(GenICompensationForGenJ::addConstructToMap, GenICompensationForGenJ::addPrimitiveAssignFnsToMap, GenICompensationForGenJ::addClassAssignFnsToMap, GenICompensationForGenJ::debugName); } +std::map GenICompensationForGenJ::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GenICompensationForGenJ_factory() diff --git a/CGMES_2.4.13_18DEC2013/GenICompensationForGenJ.hpp b/CGMES_2.4.13_18DEC2013/GenICompensationForGenJ.hpp index 01a042d67..e3879d78d 100644 --- a/CGMES_2.4.13_18DEC2013/GenICompensationForGenJ.hpp +++ b/CGMES_2.4.13_18DEC2013/GenICompensationForGenJ.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GenICompensationForGenJ_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GeneratingUnit.cpp b/CGMES_2.4.13_18DEC2013/GeneratingUnit.cpp index 247f593eb..e1e929ee4 100644 --- a/CGMES_2.4.13_18DEC2013/GeneratingUnit.cpp +++ b/CGMES_2.4.13_18DEC2013/GeneratingUnit.cpp @@ -14,51 +14,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeneratingUnit.ControlAreaGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.GrossToNetActivePowerCurves", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.RotatingMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.genControlSource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.governorSCD", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.initialP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.longPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.maxOperatingP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.maximumAllowableSpinningReserve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.minOperatingP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.nominalP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.normalPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "GeneratingUnit.ratedGrossMaxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.ratedGrossMinP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.ratedNetMaxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.shortPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.startupCost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.totalEfficiency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.variableCost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GeneratingUnit::GeneratingUnit() {} GeneratingUnit::~GeneratingUnit() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GeneratingUnit.ControlAreaGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.GrossToNetActivePowerCurves", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.RotatingMachine", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.genControlSource", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.governorSCD", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.initialP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.longPF", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.maxOperatingP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.maximumAllowableSpinningReserve", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.minOperatingP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.nominalP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.normalPF", { CGMESProfile::SSH, } }, - { "cim:GeneratingUnit.ratedGrossMaxP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.ratedGrossMinP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.ratedNetMaxP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.shortPF", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.startupCost", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.totalEfficiency", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.variableCost", { CGMESProfile::EQ, } }, -}; - -std::list -GeneratingUnit::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GeneratingUnit::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GeneratingUnit::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GeneratingUnit::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GeneratingUnit::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlAreaGeneratingUnit_GeneratingUnit(BaseClass*, BaseClass*); @@ -587,54 +619,54 @@ const char* GeneratingUnit::debugString() const void GeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeneratingUnit", &GeneratingUnit_factory); + factory_map.emplace("GeneratingUnit", &GeneratingUnit_factory); } void GeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeneratingUnit.genControlSource", &assign_GeneratingUnit_genControlSource); - assign_map.emplace("cim:GeneratingUnit.governorSCD", &assign_GeneratingUnit_governorSCD); - assign_map.emplace("cim:GeneratingUnit.initialP", &assign_GeneratingUnit_initialP); - assign_map.emplace("cim:GeneratingUnit.longPF", &assign_GeneratingUnit_longPF); - assign_map.emplace("cim:GeneratingUnit.maxOperatingP", &assign_GeneratingUnit_maxOperatingP); - assign_map.emplace("cim:GeneratingUnit.maximumAllowableSpinningReserve", &assign_GeneratingUnit_maximumAllowableSpinningReserve); - assign_map.emplace("cim:GeneratingUnit.minOperatingP", &assign_GeneratingUnit_minOperatingP); - assign_map.emplace("cim:GeneratingUnit.nominalP", &assign_GeneratingUnit_nominalP); - assign_map.emplace("cim:GeneratingUnit.normalPF", &assign_GeneratingUnit_normalPF); - assign_map.emplace("cim:GeneratingUnit.ratedGrossMaxP", &assign_GeneratingUnit_ratedGrossMaxP); - assign_map.emplace("cim:GeneratingUnit.ratedGrossMinP", &assign_GeneratingUnit_ratedGrossMinP); - assign_map.emplace("cim:GeneratingUnit.ratedNetMaxP", &assign_GeneratingUnit_ratedNetMaxP); - assign_map.emplace("cim:GeneratingUnit.shortPF", &assign_GeneratingUnit_shortPF); - assign_map.emplace("cim:GeneratingUnit.startupCost", &assign_GeneratingUnit_startupCost); - assign_map.emplace("cim:GeneratingUnit.totalEfficiency", &assign_GeneratingUnit_totalEfficiency); - assign_map.emplace("cim:GeneratingUnit.variableCost", &assign_GeneratingUnit_variableCost); + assign_map.emplace("GeneratingUnit.genControlSource", &assign_GeneratingUnit_genControlSource); + assign_map.emplace("GeneratingUnit.governorSCD", &assign_GeneratingUnit_governorSCD); + assign_map.emplace("GeneratingUnit.initialP", &assign_GeneratingUnit_initialP); + assign_map.emplace("GeneratingUnit.longPF", &assign_GeneratingUnit_longPF); + assign_map.emplace("GeneratingUnit.maxOperatingP", &assign_GeneratingUnit_maxOperatingP); + assign_map.emplace("GeneratingUnit.maximumAllowableSpinningReserve", &assign_GeneratingUnit_maximumAllowableSpinningReserve); + assign_map.emplace("GeneratingUnit.minOperatingP", &assign_GeneratingUnit_minOperatingP); + assign_map.emplace("GeneratingUnit.nominalP", &assign_GeneratingUnit_nominalP); + assign_map.emplace("GeneratingUnit.normalPF", &assign_GeneratingUnit_normalPF); + assign_map.emplace("GeneratingUnit.ratedGrossMaxP", &assign_GeneratingUnit_ratedGrossMaxP); + assign_map.emplace("GeneratingUnit.ratedGrossMinP", &assign_GeneratingUnit_ratedGrossMinP); + assign_map.emplace("GeneratingUnit.ratedNetMaxP", &assign_GeneratingUnit_ratedNetMaxP); + assign_map.emplace("GeneratingUnit.shortPF", &assign_GeneratingUnit_shortPF); + assign_map.emplace("GeneratingUnit.startupCost", &assign_GeneratingUnit_startupCost); + assign_map.emplace("GeneratingUnit.totalEfficiency", &assign_GeneratingUnit_totalEfficiency); + assign_map.emplace("GeneratingUnit.variableCost", &assign_GeneratingUnit_variableCost); } void GeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeneratingUnit.ControlAreaGeneratingUnit", &assign_GeneratingUnit_ControlAreaGeneratingUnit); - assign_map.emplace("cim:GeneratingUnit.GrossToNetActivePowerCurves", &assign_GeneratingUnit_GrossToNetActivePowerCurves); - assign_map.emplace("cim:GeneratingUnit.RotatingMachine", &assign_GeneratingUnit_RotatingMachine); + assign_map.emplace("GeneratingUnit.ControlAreaGeneratingUnit", &assign_GeneratingUnit_ControlAreaGeneratingUnit); + assign_map.emplace("GeneratingUnit.GrossToNetActivePowerCurves", &assign_GeneratingUnit_GrossToNetActivePowerCurves); + assign_map.emplace("GeneratingUnit.RotatingMachine", &assign_GeneratingUnit_RotatingMachine); } void GeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GeneratingUnit.governorSCD", &get_GeneratingUnit_governorSCD); - get_map.emplace("cim:GeneratingUnit.initialP", &get_GeneratingUnit_initialP); - get_map.emplace("cim:GeneratingUnit.longPF", &get_GeneratingUnit_longPF); - get_map.emplace("cim:GeneratingUnit.maxOperatingP", &get_GeneratingUnit_maxOperatingP); - get_map.emplace("cim:GeneratingUnit.maximumAllowableSpinningReserve", &get_GeneratingUnit_maximumAllowableSpinningReserve); - get_map.emplace("cim:GeneratingUnit.minOperatingP", &get_GeneratingUnit_minOperatingP); - get_map.emplace("cim:GeneratingUnit.nominalP", &get_GeneratingUnit_nominalP); - get_map.emplace("cim:GeneratingUnit.normalPF", &get_GeneratingUnit_normalPF); - get_map.emplace("cim:GeneratingUnit.ratedGrossMaxP", &get_GeneratingUnit_ratedGrossMaxP); - get_map.emplace("cim:GeneratingUnit.ratedGrossMinP", &get_GeneratingUnit_ratedGrossMinP); - get_map.emplace("cim:GeneratingUnit.ratedNetMaxP", &get_GeneratingUnit_ratedNetMaxP); - get_map.emplace("cim:GeneratingUnit.shortPF", &get_GeneratingUnit_shortPF); - get_map.emplace("cim:GeneratingUnit.startupCost", &get_GeneratingUnit_startupCost); - get_map.emplace("cim:GeneratingUnit.totalEfficiency", &get_GeneratingUnit_totalEfficiency); - get_map.emplace("cim:GeneratingUnit.variableCost", &get_GeneratingUnit_variableCost); + get_map.emplace("GeneratingUnit.governorSCD", &get_GeneratingUnit_governorSCD); + get_map.emplace("GeneratingUnit.initialP", &get_GeneratingUnit_initialP); + get_map.emplace("GeneratingUnit.longPF", &get_GeneratingUnit_longPF); + get_map.emplace("GeneratingUnit.maxOperatingP", &get_GeneratingUnit_maxOperatingP); + get_map.emplace("GeneratingUnit.maximumAllowableSpinningReserve", &get_GeneratingUnit_maximumAllowableSpinningReserve); + get_map.emplace("GeneratingUnit.minOperatingP", &get_GeneratingUnit_minOperatingP); + get_map.emplace("GeneratingUnit.nominalP", &get_GeneratingUnit_nominalP); + get_map.emplace("GeneratingUnit.normalPF", &get_GeneratingUnit_normalPF); + get_map.emplace("GeneratingUnit.ratedGrossMaxP", &get_GeneratingUnit_ratedGrossMaxP); + get_map.emplace("GeneratingUnit.ratedGrossMinP", &get_GeneratingUnit_ratedGrossMinP); + get_map.emplace("GeneratingUnit.ratedNetMaxP", &get_GeneratingUnit_ratedNetMaxP); + get_map.emplace("GeneratingUnit.shortPF", &get_GeneratingUnit_shortPF); + get_map.emplace("GeneratingUnit.startupCost", &get_GeneratingUnit_startupCost); + get_map.emplace("GeneratingUnit.totalEfficiency", &get_GeneratingUnit_totalEfficiency); + get_map.emplace("GeneratingUnit.variableCost", &get_GeneratingUnit_variableCost); } void GeneratingUnit::addClassGetFnsToMap(std::map& get_map) const @@ -645,7 +677,13 @@ void GeneratingUnit::addClassGetFnsToMap(std::map& get_map) const { Equipment::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GeneratingUnit.genControlSource", &get_GeneratingUnit_genControlSource); + get_map.emplace("GeneratingUnit.genControlSource", &get_GeneratingUnit_genControlSource); +} + +bool GeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GeneratingUnit::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner GeneratingUnit::declare() return BaseClassDefiner(GeneratingUnit::addConstructToMap, GeneratingUnit::addPrimitiveAssignFnsToMap, GeneratingUnit::addClassAssignFnsToMap, GeneratingUnit::debugName); } +std::map GeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeneratingUnit_factory() diff --git a/CGMES_2.4.13_18DEC2013/GeneratingUnit.hpp b/CGMES_2.4.13_18DEC2013/GeneratingUnit.hpp index 6261629bb..1ebeda406 100644 --- a/CGMES_2.4.13_18DEC2013/GeneratingUnit.hpp +++ b/CGMES_2.4.13_18DEC2013/GeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "GeneratorControlSource.hpp" #include "Money.hpp" @@ -92,8 +93,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -101,7 +109,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeneratingUnit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GeographicalLocationVersion.cpp b/CGMES_2.4.13_18DEC2013/GeographicalLocationVersion.cpp index f7622e2dc..b6121cd23 100644 --- a/CGMES_2.4.13_18DEC2013/GeographicalLocationVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/GeographicalLocationVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeographicalLocationVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeographicalLocationVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + GeographicalLocationVersion::GeographicalLocationVersion() {} GeographicalLocationVersion::~GeographicalLocationVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& GeographicalLocationVersion::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GeographicalLocationVersion::getClassNamespaceUrl() const { - { "cim:GeographicalLocationVersion.baseUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.baseURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.date", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.differenceModelURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.entsoeUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.entsoeURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.modelDescriptionURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.namespaceRDF", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.namespaceUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.shortName", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GeographicalLocationVersion::getPossibleProfilesForClass() const +const std::string& GeographicalLocationVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GeographicalLocationVersion::getPossibleProfilesForAttributes() const +const std::list& GeographicalLocationVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeographicalLocationVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeographicalLocationVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeographicalLocationVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeographicalLocationVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* GeographicalLocationVersion::debugString() const void GeographicalLocationVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeographicalLocationVersion", &GeographicalLocationVersion_factory); + factory_map.emplace("GeographicalLocationVersion", &GeographicalLocationVersion_factory); } void GeographicalLocationVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeographicalLocationVersion.baseUML", &assign_GeographicalLocationVersion_baseUML); - assign_map.emplace("cim:GeographicalLocationVersion.baseURI", &assign_GeographicalLocationVersion_baseURI); - assign_map.emplace("cim:GeographicalLocationVersion.date", &assign_GeographicalLocationVersion_date); - assign_map.emplace("cim:GeographicalLocationVersion.differenceModelURI", &assign_GeographicalLocationVersion_differenceModelURI); - assign_map.emplace("cim:GeographicalLocationVersion.entsoeUML", &assign_GeographicalLocationVersion_entsoeUML); - assign_map.emplace("cim:GeographicalLocationVersion.entsoeURI", &assign_GeographicalLocationVersion_entsoeURI); - assign_map.emplace("cim:GeographicalLocationVersion.modelDescriptionURI", &assign_GeographicalLocationVersion_modelDescriptionURI); - assign_map.emplace("cim:GeographicalLocationVersion.namespaceRDF", &assign_GeographicalLocationVersion_namespaceRDF); - assign_map.emplace("cim:GeographicalLocationVersion.namespaceUML", &assign_GeographicalLocationVersion_namespaceUML); - assign_map.emplace("cim:GeographicalLocationVersion.shortName", &assign_GeographicalLocationVersion_shortName); + assign_map.emplace("GeographicalLocationVersion.baseUML", &assign_GeographicalLocationVersion_baseUML); + assign_map.emplace("GeographicalLocationVersion.baseURI", &assign_GeographicalLocationVersion_baseURI); + assign_map.emplace("GeographicalLocationVersion.date", &assign_GeographicalLocationVersion_date); + assign_map.emplace("GeographicalLocationVersion.differenceModelURI", &assign_GeographicalLocationVersion_differenceModelURI); + assign_map.emplace("GeographicalLocationVersion.entsoeUML", &assign_GeographicalLocationVersion_entsoeUML); + assign_map.emplace("GeographicalLocationVersion.entsoeURI", &assign_GeographicalLocationVersion_entsoeURI); + assign_map.emplace("GeographicalLocationVersion.modelDescriptionURI", &assign_GeographicalLocationVersion_modelDescriptionURI); + assign_map.emplace("GeographicalLocationVersion.namespaceRDF", &assign_GeographicalLocationVersion_namespaceRDF); + assign_map.emplace("GeographicalLocationVersion.namespaceUML", &assign_GeographicalLocationVersion_namespaceUML); + assign_map.emplace("GeographicalLocationVersion.shortName", &assign_GeographicalLocationVersion_shortName); } void GeographicalLocationVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void GeographicalLocationVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GeographicalLocationVersion.baseUML", &get_GeographicalLocationVersion_baseUML); - get_map.emplace("cim:GeographicalLocationVersion.baseURI", &get_GeographicalLocationVersion_baseURI); - get_map.emplace("cim:GeographicalLocationVersion.date", &get_GeographicalLocationVersion_date); - get_map.emplace("cim:GeographicalLocationVersion.differenceModelURI", &get_GeographicalLocationVersion_differenceModelURI); - get_map.emplace("cim:GeographicalLocationVersion.entsoeUML", &get_GeographicalLocationVersion_entsoeUML); - get_map.emplace("cim:GeographicalLocationVersion.entsoeURI", &get_GeographicalLocationVersion_entsoeURI); - get_map.emplace("cim:GeographicalLocationVersion.modelDescriptionURI", &get_GeographicalLocationVersion_modelDescriptionURI); - get_map.emplace("cim:GeographicalLocationVersion.namespaceRDF", &get_GeographicalLocationVersion_namespaceRDF); - get_map.emplace("cim:GeographicalLocationVersion.namespaceUML", &get_GeographicalLocationVersion_namespaceUML); - get_map.emplace("cim:GeographicalLocationVersion.shortName", &get_GeographicalLocationVersion_shortName); + get_map.emplace("GeographicalLocationVersion.baseUML", &get_GeographicalLocationVersion_baseUML); + get_map.emplace("GeographicalLocationVersion.baseURI", &get_GeographicalLocationVersion_baseURI); + get_map.emplace("GeographicalLocationVersion.date", &get_GeographicalLocationVersion_date); + get_map.emplace("GeographicalLocationVersion.differenceModelURI", &get_GeographicalLocationVersion_differenceModelURI); + get_map.emplace("GeographicalLocationVersion.entsoeUML", &get_GeographicalLocationVersion_entsoeUML); + get_map.emplace("GeographicalLocationVersion.entsoeURI", &get_GeographicalLocationVersion_entsoeURI); + get_map.emplace("GeographicalLocationVersion.modelDescriptionURI", &get_GeographicalLocationVersion_modelDescriptionURI); + get_map.emplace("GeographicalLocationVersion.namespaceRDF", &get_GeographicalLocationVersion_namespaceRDF); + get_map.emplace("GeographicalLocationVersion.namespaceUML", &get_GeographicalLocationVersion_namespaceUML); + get_map.emplace("GeographicalLocationVersion.shortName", &get_GeographicalLocationVersion_shortName); } void GeographicalLocationVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void GeographicalLocationVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GeographicalLocationVersion::declare() { return BaseClassDefiner(GeographicalLocationVersion::addConstructToMap, GeographicalLocationVersion::addPrimitiveAssignFnsToMap, GeographicalLocationVersion::addClassAssignFnsToMap, GeographicalLocationVersion::debugName); } +std::map GeographicalLocationVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeographicalLocationVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/GeographicalLocationVersion.hpp b/CGMES_2.4.13_18DEC2013/GeographicalLocationVersion.hpp index b8b3523b3..ed4010efc 100644 --- a/CGMES_2.4.13_18DEC2013/GeographicalLocationVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/GeographicalLocationVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeographicalLocationVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GeographicalRegion.cpp b/CGMES_2.4.13_18DEC2013/GeographicalRegion.cpp index 229df2030..803b01afc 100644 --- a/CGMES_2.4.13_18DEC2013/GeographicalRegion.cpp +++ b/CGMES_2.4.13_18DEC2013/GeographicalRegion.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeographicalRegion(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeographicalRegion.Regions", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GeographicalRegion::GeographicalRegion() {} GeographicalRegion::~GeographicalRegion() {} -static const std::list PossibleProfilesForClass = +const std::list& GeographicalRegion::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GeographicalRegion::getClassNamespaceUrl() const { - { "cim:GeographicalRegion.Regions", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GeographicalRegion::getPossibleProfilesForClass() const +const std::string& GeographicalRegion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GeographicalRegion::getPossibleProfilesForAttributes() const +const std::list& GeographicalRegion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeographicalRegion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeographicalRegion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeographicalRegion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_Region(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* GeographicalRegion::debugString() const void GeographicalRegion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeographicalRegion", &GeographicalRegion_factory); + factory_map.emplace("GeographicalRegion", &GeographicalRegion_factory); } void GeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void GeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeographicalRegion.Regions", &assign_GeographicalRegion_Regions); + assign_map.emplace("GeographicalRegion.Regions", &assign_GeographicalRegion_Regions); } void GeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void GeographicalRegion::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool GeographicalRegion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GeographicalRegion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GeographicalRegion::declare() { return BaseClassDefiner(GeographicalRegion::addConstructToMap, GeographicalRegion::addPrimitiveAssignFnsToMap, GeographicalRegion::addClassAssignFnsToMap, GeographicalRegion::debugName); } +std::map GeographicalRegion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeographicalRegion_factory() diff --git a/CGMES_2.4.13_18DEC2013/GeographicalRegion.hpp b/CGMES_2.4.13_18DEC2013/GeographicalRegion.hpp index 8e23a3694..09772a2aa 100644 --- a/CGMES_2.4.13_18DEC2013/GeographicalRegion.hpp +++ b/CGMES_2.4.13_18DEC2013/GeographicalRegion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeographicalRegion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovCT1.cpp b/CGMES_2.4.13_18DEC2013/GovCT1.cpp index ce9795278..306a17d41 100644 --- a/CGMES_2.4.13_18DEC2013/GovCT1.cpp +++ b/CGMES_2.4.13_18DEC2013/GovCT1.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovCT1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovCT1.aset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.dm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kigov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kiload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kimw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kpgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kpload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ldref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.maxerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.minerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.pmwset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rclose", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rdown", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ropen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rselect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tact", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.teng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tfload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tsa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tsb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.wfnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.wfspd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovCT1::GovCT1() {} GovCT1::~GovCT1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovCT1.aset", { CGMESProfile::DY, } }, - { "cim:GovCT1.db", { CGMESProfile::DY, } }, - { "cim:GovCT1.dm", { CGMESProfile::DY, } }, - { "cim:GovCT1.ka", { CGMESProfile::DY, } }, - { "cim:GovCT1.kdgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kigov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kiload", { CGMESProfile::DY, } }, - { "cim:GovCT1.kimw", { CGMESProfile::DY, } }, - { "cim:GovCT1.kpgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kpload", { CGMESProfile::DY, } }, - { "cim:GovCT1.kturb", { CGMESProfile::DY, } }, - { "cim:GovCT1.ldref", { CGMESProfile::DY, } }, - { "cim:GovCT1.maxerr", { CGMESProfile::DY, } }, - { "cim:GovCT1.minerr", { CGMESProfile::DY, } }, - { "cim:GovCT1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovCT1.pmwset", { CGMESProfile::DY, } }, - { "cim:GovCT1.r", { CGMESProfile::DY, } }, - { "cim:GovCT1.rclose", { CGMESProfile::DY, } }, - { "cim:GovCT1.rdown", { CGMESProfile::DY, } }, - { "cim:GovCT1.ropen", { CGMESProfile::DY, } }, - { "cim:GovCT1.rselect", { CGMESProfile::DY, } }, - { "cim:GovCT1.rup", { CGMESProfile::DY, } }, - { "cim:GovCT1.ta", { CGMESProfile::DY, } }, - { "cim:GovCT1.tact", { CGMESProfile::DY, } }, - { "cim:GovCT1.tb", { CGMESProfile::DY, } }, - { "cim:GovCT1.tc", { CGMESProfile::DY, } }, - { "cim:GovCT1.tdgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.teng", { CGMESProfile::DY, } }, - { "cim:GovCT1.tfload", { CGMESProfile::DY, } }, - { "cim:GovCT1.tpelec", { CGMESProfile::DY, } }, - { "cim:GovCT1.tsa", { CGMESProfile::DY, } }, - { "cim:GovCT1.tsb", { CGMESProfile::DY, } }, - { "cim:GovCT1.vmax", { CGMESProfile::DY, } }, - { "cim:GovCT1.vmin", { CGMESProfile::DY, } }, - { "cim:GovCT1.wfnl", { CGMESProfile::DY, } }, - { "cim:GovCT1.wfspd", { CGMESProfile::DY, } }, -}; - -std::list -GovCT1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovCT1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovCT1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovCT1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovCT1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovCT1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovCT1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovCT1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovCT1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovCT1_aset(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* GovCT1::debugString() const void GovCT1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovCT1", &GovCT1_factory); + factory_map.emplace("GovCT1", &GovCT1_factory); } void GovCT1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovCT1.aset", &assign_GovCT1_aset); - assign_map.emplace("cim:GovCT1.db", &assign_GovCT1_db); - assign_map.emplace("cim:GovCT1.dm", &assign_GovCT1_dm); - assign_map.emplace("cim:GovCT1.ka", &assign_GovCT1_ka); - assign_map.emplace("cim:GovCT1.kdgov", &assign_GovCT1_kdgov); - assign_map.emplace("cim:GovCT1.kigov", &assign_GovCT1_kigov); - assign_map.emplace("cim:GovCT1.kiload", &assign_GovCT1_kiload); - assign_map.emplace("cim:GovCT1.kimw", &assign_GovCT1_kimw); - assign_map.emplace("cim:GovCT1.kpgov", &assign_GovCT1_kpgov); - assign_map.emplace("cim:GovCT1.kpload", &assign_GovCT1_kpload); - assign_map.emplace("cim:GovCT1.kturb", &assign_GovCT1_kturb); - assign_map.emplace("cim:GovCT1.ldref", &assign_GovCT1_ldref); - assign_map.emplace("cim:GovCT1.maxerr", &assign_GovCT1_maxerr); - assign_map.emplace("cim:GovCT1.minerr", &assign_GovCT1_minerr); - assign_map.emplace("cim:GovCT1.mwbase", &assign_GovCT1_mwbase); - assign_map.emplace("cim:GovCT1.pmwset", &assign_GovCT1_pmwset); - assign_map.emplace("cim:GovCT1.r", &assign_GovCT1_r); - assign_map.emplace("cim:GovCT1.rclose", &assign_GovCT1_rclose); - assign_map.emplace("cim:GovCT1.rdown", &assign_GovCT1_rdown); - assign_map.emplace("cim:GovCT1.ropen", &assign_GovCT1_ropen); - assign_map.emplace("cim:GovCT1.rselect", &assign_GovCT1_rselect); - assign_map.emplace("cim:GovCT1.rup", &assign_GovCT1_rup); - assign_map.emplace("cim:GovCT1.ta", &assign_GovCT1_ta); - assign_map.emplace("cim:GovCT1.tact", &assign_GovCT1_tact); - assign_map.emplace("cim:GovCT1.tb", &assign_GovCT1_tb); - assign_map.emplace("cim:GovCT1.tc", &assign_GovCT1_tc); - assign_map.emplace("cim:GovCT1.tdgov", &assign_GovCT1_tdgov); - assign_map.emplace("cim:GovCT1.teng", &assign_GovCT1_teng); - assign_map.emplace("cim:GovCT1.tfload", &assign_GovCT1_tfload); - assign_map.emplace("cim:GovCT1.tpelec", &assign_GovCT1_tpelec); - assign_map.emplace("cim:GovCT1.tsa", &assign_GovCT1_tsa); - assign_map.emplace("cim:GovCT1.tsb", &assign_GovCT1_tsb); - assign_map.emplace("cim:GovCT1.vmax", &assign_GovCT1_vmax); - assign_map.emplace("cim:GovCT1.vmin", &assign_GovCT1_vmin); - assign_map.emplace("cim:GovCT1.wfnl", &assign_GovCT1_wfnl); - assign_map.emplace("cim:GovCT1.wfspd", &assign_GovCT1_wfspd); + assign_map.emplace("GovCT1.aset", &assign_GovCT1_aset); + assign_map.emplace("GovCT1.db", &assign_GovCT1_db); + assign_map.emplace("GovCT1.dm", &assign_GovCT1_dm); + assign_map.emplace("GovCT1.ka", &assign_GovCT1_ka); + assign_map.emplace("GovCT1.kdgov", &assign_GovCT1_kdgov); + assign_map.emplace("GovCT1.kigov", &assign_GovCT1_kigov); + assign_map.emplace("GovCT1.kiload", &assign_GovCT1_kiload); + assign_map.emplace("GovCT1.kimw", &assign_GovCT1_kimw); + assign_map.emplace("GovCT1.kpgov", &assign_GovCT1_kpgov); + assign_map.emplace("GovCT1.kpload", &assign_GovCT1_kpload); + assign_map.emplace("GovCT1.kturb", &assign_GovCT1_kturb); + assign_map.emplace("GovCT1.ldref", &assign_GovCT1_ldref); + assign_map.emplace("GovCT1.maxerr", &assign_GovCT1_maxerr); + assign_map.emplace("GovCT1.minerr", &assign_GovCT1_minerr); + assign_map.emplace("GovCT1.mwbase", &assign_GovCT1_mwbase); + assign_map.emplace("GovCT1.pmwset", &assign_GovCT1_pmwset); + assign_map.emplace("GovCT1.r", &assign_GovCT1_r); + assign_map.emplace("GovCT1.rclose", &assign_GovCT1_rclose); + assign_map.emplace("GovCT1.rdown", &assign_GovCT1_rdown); + assign_map.emplace("GovCT1.ropen", &assign_GovCT1_ropen); + assign_map.emplace("GovCT1.rselect", &assign_GovCT1_rselect); + assign_map.emplace("GovCT1.rup", &assign_GovCT1_rup); + assign_map.emplace("GovCT1.ta", &assign_GovCT1_ta); + assign_map.emplace("GovCT1.tact", &assign_GovCT1_tact); + assign_map.emplace("GovCT1.tb", &assign_GovCT1_tb); + assign_map.emplace("GovCT1.tc", &assign_GovCT1_tc); + assign_map.emplace("GovCT1.tdgov", &assign_GovCT1_tdgov); + assign_map.emplace("GovCT1.teng", &assign_GovCT1_teng); + assign_map.emplace("GovCT1.tfload", &assign_GovCT1_tfload); + assign_map.emplace("GovCT1.tpelec", &assign_GovCT1_tpelec); + assign_map.emplace("GovCT1.tsa", &assign_GovCT1_tsa); + assign_map.emplace("GovCT1.tsb", &assign_GovCT1_tsb); + assign_map.emplace("GovCT1.vmax", &assign_GovCT1_vmax); + assign_map.emplace("GovCT1.vmin", &assign_GovCT1_vmin); + assign_map.emplace("GovCT1.wfnl", &assign_GovCT1_wfnl); + assign_map.emplace("GovCT1.wfspd", &assign_GovCT1_wfspd); } void GovCT1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,41 +1208,41 @@ void GovCT1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovCT1.aset", &get_GovCT1_aset); - get_map.emplace("cim:GovCT1.db", &get_GovCT1_db); - get_map.emplace("cim:GovCT1.dm", &get_GovCT1_dm); - get_map.emplace("cim:GovCT1.ka", &get_GovCT1_ka); - get_map.emplace("cim:GovCT1.kdgov", &get_GovCT1_kdgov); - get_map.emplace("cim:GovCT1.kigov", &get_GovCT1_kigov); - get_map.emplace("cim:GovCT1.kiload", &get_GovCT1_kiload); - get_map.emplace("cim:GovCT1.kimw", &get_GovCT1_kimw); - get_map.emplace("cim:GovCT1.kpgov", &get_GovCT1_kpgov); - get_map.emplace("cim:GovCT1.kpload", &get_GovCT1_kpload); - get_map.emplace("cim:GovCT1.kturb", &get_GovCT1_kturb); - get_map.emplace("cim:GovCT1.ldref", &get_GovCT1_ldref); - get_map.emplace("cim:GovCT1.maxerr", &get_GovCT1_maxerr); - get_map.emplace("cim:GovCT1.minerr", &get_GovCT1_minerr); - get_map.emplace("cim:GovCT1.mwbase", &get_GovCT1_mwbase); - get_map.emplace("cim:GovCT1.pmwset", &get_GovCT1_pmwset); - get_map.emplace("cim:GovCT1.r", &get_GovCT1_r); - get_map.emplace("cim:GovCT1.rclose", &get_GovCT1_rclose); - get_map.emplace("cim:GovCT1.rdown", &get_GovCT1_rdown); - get_map.emplace("cim:GovCT1.ropen", &get_GovCT1_ropen); - get_map.emplace("cim:GovCT1.rup", &get_GovCT1_rup); - get_map.emplace("cim:GovCT1.ta", &get_GovCT1_ta); - get_map.emplace("cim:GovCT1.tact", &get_GovCT1_tact); - get_map.emplace("cim:GovCT1.tb", &get_GovCT1_tb); - get_map.emplace("cim:GovCT1.tc", &get_GovCT1_tc); - get_map.emplace("cim:GovCT1.tdgov", &get_GovCT1_tdgov); - get_map.emplace("cim:GovCT1.teng", &get_GovCT1_teng); - get_map.emplace("cim:GovCT1.tfload", &get_GovCT1_tfload); - get_map.emplace("cim:GovCT1.tpelec", &get_GovCT1_tpelec); - get_map.emplace("cim:GovCT1.tsa", &get_GovCT1_tsa); - get_map.emplace("cim:GovCT1.tsb", &get_GovCT1_tsb); - get_map.emplace("cim:GovCT1.vmax", &get_GovCT1_vmax); - get_map.emplace("cim:GovCT1.vmin", &get_GovCT1_vmin); - get_map.emplace("cim:GovCT1.wfnl", &get_GovCT1_wfnl); - get_map.emplace("cim:GovCT1.wfspd", &get_GovCT1_wfspd); + get_map.emplace("GovCT1.aset", &get_GovCT1_aset); + get_map.emplace("GovCT1.db", &get_GovCT1_db); + get_map.emplace("GovCT1.dm", &get_GovCT1_dm); + get_map.emplace("GovCT1.ka", &get_GovCT1_ka); + get_map.emplace("GovCT1.kdgov", &get_GovCT1_kdgov); + get_map.emplace("GovCT1.kigov", &get_GovCT1_kigov); + get_map.emplace("GovCT1.kiload", &get_GovCT1_kiload); + get_map.emplace("GovCT1.kimw", &get_GovCT1_kimw); + get_map.emplace("GovCT1.kpgov", &get_GovCT1_kpgov); + get_map.emplace("GovCT1.kpload", &get_GovCT1_kpload); + get_map.emplace("GovCT1.kturb", &get_GovCT1_kturb); + get_map.emplace("GovCT1.ldref", &get_GovCT1_ldref); + get_map.emplace("GovCT1.maxerr", &get_GovCT1_maxerr); + get_map.emplace("GovCT1.minerr", &get_GovCT1_minerr); + get_map.emplace("GovCT1.mwbase", &get_GovCT1_mwbase); + get_map.emplace("GovCT1.pmwset", &get_GovCT1_pmwset); + get_map.emplace("GovCT1.r", &get_GovCT1_r); + get_map.emplace("GovCT1.rclose", &get_GovCT1_rclose); + get_map.emplace("GovCT1.rdown", &get_GovCT1_rdown); + get_map.emplace("GovCT1.ropen", &get_GovCT1_ropen); + get_map.emplace("GovCT1.rup", &get_GovCT1_rup); + get_map.emplace("GovCT1.ta", &get_GovCT1_ta); + get_map.emplace("GovCT1.tact", &get_GovCT1_tact); + get_map.emplace("GovCT1.tb", &get_GovCT1_tb); + get_map.emplace("GovCT1.tc", &get_GovCT1_tc); + get_map.emplace("GovCT1.tdgov", &get_GovCT1_tdgov); + get_map.emplace("GovCT1.teng", &get_GovCT1_teng); + get_map.emplace("GovCT1.tfload", &get_GovCT1_tfload); + get_map.emplace("GovCT1.tpelec", &get_GovCT1_tpelec); + get_map.emplace("GovCT1.tsa", &get_GovCT1_tsa); + get_map.emplace("GovCT1.tsb", &get_GovCT1_tsb); + get_map.emplace("GovCT1.vmax", &get_GovCT1_vmax); + get_map.emplace("GovCT1.vmin", &get_GovCT1_vmin); + get_map.emplace("GovCT1.wfnl", &get_GovCT1_wfnl); + get_map.emplace("GovCT1.wfspd", &get_GovCT1_wfspd); } void GovCT1::addClassGetFnsToMap(std::map& get_map) const @@ -1221,7 +1253,13 @@ void GovCT1::addClassGetFnsToMap(std::map& get_ void GovCT1::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovCT1.rselect", &get_GovCT1_rselect); + get_map.emplace("GovCT1.rselect", &get_GovCT1_rselect); +} + +bool GovCT1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovCT1" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovCT1::declare() @@ -1229,6 +1267,14 @@ const BaseClassDefiner GovCT1::declare() return BaseClassDefiner(GovCT1::addConstructToMap, GovCT1::addPrimitiveAssignFnsToMap, GovCT1::addClassAssignFnsToMap, GovCT1::debugName); } +std::map GovCT1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovCT1_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovCT1.hpp b/CGMES_2.4.13_18DEC2013/GovCT1.hpp index d4205a655..fe091c981 100644 --- a/CGMES_2.4.13_18DEC2013/GovCT1.hpp +++ b/CGMES_2.4.13_18DEC2013/GovCT1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "DroopSignalFeedbackKind.hpp" @@ -141,8 +142,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -150,7 +158,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovCT1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovCT2.cpp b/CGMES_2.4.13_18DEC2013/GovCT2.cpp index b627f39fb..7d5213591 100644 --- a/CGMES_2.4.13_18DEC2013/GovCT2.cpp +++ b/CGMES_2.4.13_18DEC2013/GovCT2.cpp @@ -11,88 +11,120 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovCT2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovCT2.aset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.dm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kigov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kiload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kimw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kpgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kpload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ldref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.maxerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.minerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.pmwset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.prate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rclose", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rdown", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ropen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rselect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tact", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.teng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tfload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tsa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tsb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.wfnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.wfspd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovCT2::GovCT2() {} GovCT2::~GovCT2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovCT2.aset", { CGMESProfile::DY, } }, - { "cim:GovCT2.db", { CGMESProfile::DY, } }, - { "cim:GovCT2.dm", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim1", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim10", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim2", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim3", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim4", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim5", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim6", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim7", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim8", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim9", { CGMESProfile::DY, } }, - { "cim:GovCT2.ka", { CGMESProfile::DY, } }, - { "cim:GovCT2.kdgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kigov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kiload", { CGMESProfile::DY, } }, - { "cim:GovCT2.kimw", { CGMESProfile::DY, } }, - { "cim:GovCT2.kpgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kpload", { CGMESProfile::DY, } }, - { "cim:GovCT2.kturb", { CGMESProfile::DY, } }, - { "cim:GovCT2.ldref", { CGMESProfile::DY, } }, - { "cim:GovCT2.maxerr", { CGMESProfile::DY, } }, - { "cim:GovCT2.minerr", { CGMESProfile::DY, } }, - { "cim:GovCT2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim1", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim10", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim2", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim3", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim4", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim5", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim6", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim7", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim8", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim9", { CGMESProfile::DY, } }, - { "cim:GovCT2.pmwset", { CGMESProfile::DY, } }, - { "cim:GovCT2.prate", { CGMESProfile::DY, } }, - { "cim:GovCT2.r", { CGMESProfile::DY, } }, - { "cim:GovCT2.rclose", { CGMESProfile::DY, } }, - { "cim:GovCT2.rdown", { CGMESProfile::DY, } }, - { "cim:GovCT2.ropen", { CGMESProfile::DY, } }, - { "cim:GovCT2.rselect", { CGMESProfile::DY, } }, - { "cim:GovCT2.rup", { CGMESProfile::DY, } }, - { "cim:GovCT2.ta", { CGMESProfile::DY, } }, - { "cim:GovCT2.tact", { CGMESProfile::DY, } }, - { "cim:GovCT2.tb", { CGMESProfile::DY, } }, - { "cim:GovCT2.tc", { CGMESProfile::DY, } }, - { "cim:GovCT2.tdgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.teng", { CGMESProfile::DY, } }, - { "cim:GovCT2.tfload", { CGMESProfile::DY, } }, - { "cim:GovCT2.tpelec", { CGMESProfile::DY, } }, - { "cim:GovCT2.tsa", { CGMESProfile::DY, } }, - { "cim:GovCT2.tsb", { CGMESProfile::DY, } }, - { "cim:GovCT2.vmax", { CGMESProfile::DY, } }, - { "cim:GovCT2.vmin", { CGMESProfile::DY, } }, - { "cim:GovCT2.wfnl", { CGMESProfile::DY, } }, - { "cim:GovCT2.wfspd", { CGMESProfile::DY, } }, -}; - -std::list -GovCT2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovCT2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovCT2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovCT2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovCT2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovCT2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovCT2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovCT2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovCT2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovCT2_aset(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1756,68 +1788,68 @@ const char* GovCT2::debugString() const void GovCT2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovCT2", &GovCT2_factory); + factory_map.emplace("GovCT2", &GovCT2_factory); } void GovCT2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovCT2.aset", &assign_GovCT2_aset); - assign_map.emplace("cim:GovCT2.db", &assign_GovCT2_db); - assign_map.emplace("cim:GovCT2.dm", &assign_GovCT2_dm); - assign_map.emplace("cim:GovCT2.flim1", &assign_GovCT2_flim1); - assign_map.emplace("cim:GovCT2.flim10", &assign_GovCT2_flim10); - assign_map.emplace("cim:GovCT2.flim2", &assign_GovCT2_flim2); - assign_map.emplace("cim:GovCT2.flim3", &assign_GovCT2_flim3); - assign_map.emplace("cim:GovCT2.flim4", &assign_GovCT2_flim4); - assign_map.emplace("cim:GovCT2.flim5", &assign_GovCT2_flim5); - assign_map.emplace("cim:GovCT2.flim6", &assign_GovCT2_flim6); - assign_map.emplace("cim:GovCT2.flim7", &assign_GovCT2_flim7); - assign_map.emplace("cim:GovCT2.flim8", &assign_GovCT2_flim8); - assign_map.emplace("cim:GovCT2.flim9", &assign_GovCT2_flim9); - assign_map.emplace("cim:GovCT2.ka", &assign_GovCT2_ka); - assign_map.emplace("cim:GovCT2.kdgov", &assign_GovCT2_kdgov); - assign_map.emplace("cim:GovCT2.kigov", &assign_GovCT2_kigov); - assign_map.emplace("cim:GovCT2.kiload", &assign_GovCT2_kiload); - assign_map.emplace("cim:GovCT2.kimw", &assign_GovCT2_kimw); - assign_map.emplace("cim:GovCT2.kpgov", &assign_GovCT2_kpgov); - assign_map.emplace("cim:GovCT2.kpload", &assign_GovCT2_kpload); - assign_map.emplace("cim:GovCT2.kturb", &assign_GovCT2_kturb); - assign_map.emplace("cim:GovCT2.ldref", &assign_GovCT2_ldref); - assign_map.emplace("cim:GovCT2.maxerr", &assign_GovCT2_maxerr); - assign_map.emplace("cim:GovCT2.minerr", &assign_GovCT2_minerr); - assign_map.emplace("cim:GovCT2.mwbase", &assign_GovCT2_mwbase); - assign_map.emplace("cim:GovCT2.plim1", &assign_GovCT2_plim1); - assign_map.emplace("cim:GovCT2.plim10", &assign_GovCT2_plim10); - assign_map.emplace("cim:GovCT2.plim2", &assign_GovCT2_plim2); - assign_map.emplace("cim:GovCT2.plim3", &assign_GovCT2_plim3); - assign_map.emplace("cim:GovCT2.plim4", &assign_GovCT2_plim4); - assign_map.emplace("cim:GovCT2.plim5", &assign_GovCT2_plim5); - assign_map.emplace("cim:GovCT2.plim6", &assign_GovCT2_plim6); - assign_map.emplace("cim:GovCT2.plim7", &assign_GovCT2_plim7); - assign_map.emplace("cim:GovCT2.plim8", &assign_GovCT2_plim8); - assign_map.emplace("cim:GovCT2.plim9", &assign_GovCT2_plim9); - assign_map.emplace("cim:GovCT2.pmwset", &assign_GovCT2_pmwset); - assign_map.emplace("cim:GovCT2.prate", &assign_GovCT2_prate); - assign_map.emplace("cim:GovCT2.r", &assign_GovCT2_r); - assign_map.emplace("cim:GovCT2.rclose", &assign_GovCT2_rclose); - assign_map.emplace("cim:GovCT2.rdown", &assign_GovCT2_rdown); - assign_map.emplace("cim:GovCT2.ropen", &assign_GovCT2_ropen); - assign_map.emplace("cim:GovCT2.rselect", &assign_GovCT2_rselect); - assign_map.emplace("cim:GovCT2.rup", &assign_GovCT2_rup); - assign_map.emplace("cim:GovCT2.ta", &assign_GovCT2_ta); - assign_map.emplace("cim:GovCT2.tact", &assign_GovCT2_tact); - assign_map.emplace("cim:GovCT2.tb", &assign_GovCT2_tb); - assign_map.emplace("cim:GovCT2.tc", &assign_GovCT2_tc); - assign_map.emplace("cim:GovCT2.tdgov", &assign_GovCT2_tdgov); - assign_map.emplace("cim:GovCT2.teng", &assign_GovCT2_teng); - assign_map.emplace("cim:GovCT2.tfload", &assign_GovCT2_tfload); - assign_map.emplace("cim:GovCT2.tpelec", &assign_GovCT2_tpelec); - assign_map.emplace("cim:GovCT2.tsa", &assign_GovCT2_tsa); - assign_map.emplace("cim:GovCT2.tsb", &assign_GovCT2_tsb); - assign_map.emplace("cim:GovCT2.vmax", &assign_GovCT2_vmax); - assign_map.emplace("cim:GovCT2.vmin", &assign_GovCT2_vmin); - assign_map.emplace("cim:GovCT2.wfnl", &assign_GovCT2_wfnl); - assign_map.emplace("cim:GovCT2.wfspd", &assign_GovCT2_wfspd); + assign_map.emplace("GovCT2.aset", &assign_GovCT2_aset); + assign_map.emplace("GovCT2.db", &assign_GovCT2_db); + assign_map.emplace("GovCT2.dm", &assign_GovCT2_dm); + assign_map.emplace("GovCT2.flim1", &assign_GovCT2_flim1); + assign_map.emplace("GovCT2.flim10", &assign_GovCT2_flim10); + assign_map.emplace("GovCT2.flim2", &assign_GovCT2_flim2); + assign_map.emplace("GovCT2.flim3", &assign_GovCT2_flim3); + assign_map.emplace("GovCT2.flim4", &assign_GovCT2_flim4); + assign_map.emplace("GovCT2.flim5", &assign_GovCT2_flim5); + assign_map.emplace("GovCT2.flim6", &assign_GovCT2_flim6); + assign_map.emplace("GovCT2.flim7", &assign_GovCT2_flim7); + assign_map.emplace("GovCT2.flim8", &assign_GovCT2_flim8); + assign_map.emplace("GovCT2.flim9", &assign_GovCT2_flim9); + assign_map.emplace("GovCT2.ka", &assign_GovCT2_ka); + assign_map.emplace("GovCT2.kdgov", &assign_GovCT2_kdgov); + assign_map.emplace("GovCT2.kigov", &assign_GovCT2_kigov); + assign_map.emplace("GovCT2.kiload", &assign_GovCT2_kiload); + assign_map.emplace("GovCT2.kimw", &assign_GovCT2_kimw); + assign_map.emplace("GovCT2.kpgov", &assign_GovCT2_kpgov); + assign_map.emplace("GovCT2.kpload", &assign_GovCT2_kpload); + assign_map.emplace("GovCT2.kturb", &assign_GovCT2_kturb); + assign_map.emplace("GovCT2.ldref", &assign_GovCT2_ldref); + assign_map.emplace("GovCT2.maxerr", &assign_GovCT2_maxerr); + assign_map.emplace("GovCT2.minerr", &assign_GovCT2_minerr); + assign_map.emplace("GovCT2.mwbase", &assign_GovCT2_mwbase); + assign_map.emplace("GovCT2.plim1", &assign_GovCT2_plim1); + assign_map.emplace("GovCT2.plim10", &assign_GovCT2_plim10); + assign_map.emplace("GovCT2.plim2", &assign_GovCT2_plim2); + assign_map.emplace("GovCT2.plim3", &assign_GovCT2_plim3); + assign_map.emplace("GovCT2.plim4", &assign_GovCT2_plim4); + assign_map.emplace("GovCT2.plim5", &assign_GovCT2_plim5); + assign_map.emplace("GovCT2.plim6", &assign_GovCT2_plim6); + assign_map.emplace("GovCT2.plim7", &assign_GovCT2_plim7); + assign_map.emplace("GovCT2.plim8", &assign_GovCT2_plim8); + assign_map.emplace("GovCT2.plim9", &assign_GovCT2_plim9); + assign_map.emplace("GovCT2.pmwset", &assign_GovCT2_pmwset); + assign_map.emplace("GovCT2.prate", &assign_GovCT2_prate); + assign_map.emplace("GovCT2.r", &assign_GovCT2_r); + assign_map.emplace("GovCT2.rclose", &assign_GovCT2_rclose); + assign_map.emplace("GovCT2.rdown", &assign_GovCT2_rdown); + assign_map.emplace("GovCT2.ropen", &assign_GovCT2_ropen); + assign_map.emplace("GovCT2.rselect", &assign_GovCT2_rselect); + assign_map.emplace("GovCT2.rup", &assign_GovCT2_rup); + assign_map.emplace("GovCT2.ta", &assign_GovCT2_ta); + assign_map.emplace("GovCT2.tact", &assign_GovCT2_tact); + assign_map.emplace("GovCT2.tb", &assign_GovCT2_tb); + assign_map.emplace("GovCT2.tc", &assign_GovCT2_tc); + assign_map.emplace("GovCT2.tdgov", &assign_GovCT2_tdgov); + assign_map.emplace("GovCT2.teng", &assign_GovCT2_teng); + assign_map.emplace("GovCT2.tfload", &assign_GovCT2_tfload); + assign_map.emplace("GovCT2.tpelec", &assign_GovCT2_tpelec); + assign_map.emplace("GovCT2.tsa", &assign_GovCT2_tsa); + assign_map.emplace("GovCT2.tsb", &assign_GovCT2_tsb); + assign_map.emplace("GovCT2.vmax", &assign_GovCT2_vmax); + assign_map.emplace("GovCT2.vmin", &assign_GovCT2_vmin); + assign_map.emplace("GovCT2.wfnl", &assign_GovCT2_wfnl); + assign_map.emplace("GovCT2.wfspd", &assign_GovCT2_wfspd); } void GovCT2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1827,62 +1859,62 @@ void GovCT2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovCT2.aset", &get_GovCT2_aset); - get_map.emplace("cim:GovCT2.db", &get_GovCT2_db); - get_map.emplace("cim:GovCT2.dm", &get_GovCT2_dm); - get_map.emplace("cim:GovCT2.flim1", &get_GovCT2_flim1); - get_map.emplace("cim:GovCT2.flim10", &get_GovCT2_flim10); - get_map.emplace("cim:GovCT2.flim2", &get_GovCT2_flim2); - get_map.emplace("cim:GovCT2.flim3", &get_GovCT2_flim3); - get_map.emplace("cim:GovCT2.flim4", &get_GovCT2_flim4); - get_map.emplace("cim:GovCT2.flim5", &get_GovCT2_flim5); - get_map.emplace("cim:GovCT2.flim6", &get_GovCT2_flim6); - get_map.emplace("cim:GovCT2.flim7", &get_GovCT2_flim7); - get_map.emplace("cim:GovCT2.flim8", &get_GovCT2_flim8); - get_map.emplace("cim:GovCT2.flim9", &get_GovCT2_flim9); - get_map.emplace("cim:GovCT2.ka", &get_GovCT2_ka); - get_map.emplace("cim:GovCT2.kdgov", &get_GovCT2_kdgov); - get_map.emplace("cim:GovCT2.kigov", &get_GovCT2_kigov); - get_map.emplace("cim:GovCT2.kiload", &get_GovCT2_kiload); - get_map.emplace("cim:GovCT2.kimw", &get_GovCT2_kimw); - get_map.emplace("cim:GovCT2.kpgov", &get_GovCT2_kpgov); - get_map.emplace("cim:GovCT2.kpload", &get_GovCT2_kpload); - get_map.emplace("cim:GovCT2.kturb", &get_GovCT2_kturb); - get_map.emplace("cim:GovCT2.ldref", &get_GovCT2_ldref); - get_map.emplace("cim:GovCT2.maxerr", &get_GovCT2_maxerr); - get_map.emplace("cim:GovCT2.minerr", &get_GovCT2_minerr); - get_map.emplace("cim:GovCT2.mwbase", &get_GovCT2_mwbase); - get_map.emplace("cim:GovCT2.plim1", &get_GovCT2_plim1); - get_map.emplace("cim:GovCT2.plim10", &get_GovCT2_plim10); - get_map.emplace("cim:GovCT2.plim2", &get_GovCT2_plim2); - get_map.emplace("cim:GovCT2.plim3", &get_GovCT2_plim3); - get_map.emplace("cim:GovCT2.plim4", &get_GovCT2_plim4); - get_map.emplace("cim:GovCT2.plim5", &get_GovCT2_plim5); - get_map.emplace("cim:GovCT2.plim6", &get_GovCT2_plim6); - get_map.emplace("cim:GovCT2.plim7", &get_GovCT2_plim7); - get_map.emplace("cim:GovCT2.plim8", &get_GovCT2_plim8); - get_map.emplace("cim:GovCT2.plim9", &get_GovCT2_plim9); - get_map.emplace("cim:GovCT2.pmwset", &get_GovCT2_pmwset); - get_map.emplace("cim:GovCT2.prate", &get_GovCT2_prate); - get_map.emplace("cim:GovCT2.r", &get_GovCT2_r); - get_map.emplace("cim:GovCT2.rclose", &get_GovCT2_rclose); - get_map.emplace("cim:GovCT2.rdown", &get_GovCT2_rdown); - get_map.emplace("cim:GovCT2.ropen", &get_GovCT2_ropen); - get_map.emplace("cim:GovCT2.rup", &get_GovCT2_rup); - get_map.emplace("cim:GovCT2.ta", &get_GovCT2_ta); - get_map.emplace("cim:GovCT2.tact", &get_GovCT2_tact); - get_map.emplace("cim:GovCT2.tb", &get_GovCT2_tb); - get_map.emplace("cim:GovCT2.tc", &get_GovCT2_tc); - get_map.emplace("cim:GovCT2.tdgov", &get_GovCT2_tdgov); - get_map.emplace("cim:GovCT2.teng", &get_GovCT2_teng); - get_map.emplace("cim:GovCT2.tfload", &get_GovCT2_tfload); - get_map.emplace("cim:GovCT2.tpelec", &get_GovCT2_tpelec); - get_map.emplace("cim:GovCT2.tsa", &get_GovCT2_tsa); - get_map.emplace("cim:GovCT2.tsb", &get_GovCT2_tsb); - get_map.emplace("cim:GovCT2.vmax", &get_GovCT2_vmax); - get_map.emplace("cim:GovCT2.vmin", &get_GovCT2_vmin); - get_map.emplace("cim:GovCT2.wfnl", &get_GovCT2_wfnl); - get_map.emplace("cim:GovCT2.wfspd", &get_GovCT2_wfspd); + get_map.emplace("GovCT2.aset", &get_GovCT2_aset); + get_map.emplace("GovCT2.db", &get_GovCT2_db); + get_map.emplace("GovCT2.dm", &get_GovCT2_dm); + get_map.emplace("GovCT2.flim1", &get_GovCT2_flim1); + get_map.emplace("GovCT2.flim10", &get_GovCT2_flim10); + get_map.emplace("GovCT2.flim2", &get_GovCT2_flim2); + get_map.emplace("GovCT2.flim3", &get_GovCT2_flim3); + get_map.emplace("GovCT2.flim4", &get_GovCT2_flim4); + get_map.emplace("GovCT2.flim5", &get_GovCT2_flim5); + get_map.emplace("GovCT2.flim6", &get_GovCT2_flim6); + get_map.emplace("GovCT2.flim7", &get_GovCT2_flim7); + get_map.emplace("GovCT2.flim8", &get_GovCT2_flim8); + get_map.emplace("GovCT2.flim9", &get_GovCT2_flim9); + get_map.emplace("GovCT2.ka", &get_GovCT2_ka); + get_map.emplace("GovCT2.kdgov", &get_GovCT2_kdgov); + get_map.emplace("GovCT2.kigov", &get_GovCT2_kigov); + get_map.emplace("GovCT2.kiload", &get_GovCT2_kiload); + get_map.emplace("GovCT2.kimw", &get_GovCT2_kimw); + get_map.emplace("GovCT2.kpgov", &get_GovCT2_kpgov); + get_map.emplace("GovCT2.kpload", &get_GovCT2_kpload); + get_map.emplace("GovCT2.kturb", &get_GovCT2_kturb); + get_map.emplace("GovCT2.ldref", &get_GovCT2_ldref); + get_map.emplace("GovCT2.maxerr", &get_GovCT2_maxerr); + get_map.emplace("GovCT2.minerr", &get_GovCT2_minerr); + get_map.emplace("GovCT2.mwbase", &get_GovCT2_mwbase); + get_map.emplace("GovCT2.plim1", &get_GovCT2_plim1); + get_map.emplace("GovCT2.plim10", &get_GovCT2_plim10); + get_map.emplace("GovCT2.plim2", &get_GovCT2_plim2); + get_map.emplace("GovCT2.plim3", &get_GovCT2_plim3); + get_map.emplace("GovCT2.plim4", &get_GovCT2_plim4); + get_map.emplace("GovCT2.plim5", &get_GovCT2_plim5); + get_map.emplace("GovCT2.plim6", &get_GovCT2_plim6); + get_map.emplace("GovCT2.plim7", &get_GovCT2_plim7); + get_map.emplace("GovCT2.plim8", &get_GovCT2_plim8); + get_map.emplace("GovCT2.plim9", &get_GovCT2_plim9); + get_map.emplace("GovCT2.pmwset", &get_GovCT2_pmwset); + get_map.emplace("GovCT2.prate", &get_GovCT2_prate); + get_map.emplace("GovCT2.r", &get_GovCT2_r); + get_map.emplace("GovCT2.rclose", &get_GovCT2_rclose); + get_map.emplace("GovCT2.rdown", &get_GovCT2_rdown); + get_map.emplace("GovCT2.ropen", &get_GovCT2_ropen); + get_map.emplace("GovCT2.rup", &get_GovCT2_rup); + get_map.emplace("GovCT2.ta", &get_GovCT2_ta); + get_map.emplace("GovCT2.tact", &get_GovCT2_tact); + get_map.emplace("GovCT2.tb", &get_GovCT2_tb); + get_map.emplace("GovCT2.tc", &get_GovCT2_tc); + get_map.emplace("GovCT2.tdgov", &get_GovCT2_tdgov); + get_map.emplace("GovCT2.teng", &get_GovCT2_teng); + get_map.emplace("GovCT2.tfload", &get_GovCT2_tfload); + get_map.emplace("GovCT2.tpelec", &get_GovCT2_tpelec); + get_map.emplace("GovCT2.tsa", &get_GovCT2_tsa); + get_map.emplace("GovCT2.tsb", &get_GovCT2_tsb); + get_map.emplace("GovCT2.vmax", &get_GovCT2_vmax); + get_map.emplace("GovCT2.vmin", &get_GovCT2_vmin); + get_map.emplace("GovCT2.wfnl", &get_GovCT2_wfnl); + get_map.emplace("GovCT2.wfspd", &get_GovCT2_wfspd); } void GovCT2::addClassGetFnsToMap(std::map& get_map) const @@ -1893,7 +1925,13 @@ void GovCT2::addClassGetFnsToMap(std::map& get_ void GovCT2::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovCT2.rselect", &get_GovCT2_rselect); + get_map.emplace("GovCT2.rselect", &get_GovCT2_rselect); +} + +bool GovCT2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovCT2" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovCT2::declare() @@ -1901,6 +1939,14 @@ const BaseClassDefiner GovCT2::declare() return BaseClassDefiner(GovCT2::addConstructToMap, GovCT2::addPrimitiveAssignFnsToMap, GovCT2::addClassAssignFnsToMap, GovCT2::debugName); } +std::map GovCT2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovCT2_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovCT2.hpp b/CGMES_2.4.13_18DEC2013/GovCT2.hpp index e5089b39b..4ef28c028 100644 --- a/CGMES_2.4.13_18DEC2013/GovCT2.hpp +++ b/CGMES_2.4.13_18DEC2013/GovCT2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "DroopSignalFeedbackKind.hpp" @@ -205,8 +206,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -214,7 +222,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovCT2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovGAST.cpp b/CGMES_2.4.13_18DEC2013/GovGAST.cpp index cc94e78ad..e25540aed 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST.cpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST::GovGAST() {} GovGAST::~GovGAST() {} -static const std::list PossibleProfilesForClass = +const std::list& GovGAST::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovGAST::getClassNamespaceUrl() const { - { "cim:GovGAST.at", { CGMESProfile::DY, } }, - { "cim:GovGAST.dturb", { CGMESProfile::DY, } }, - { "cim:GovGAST.kt", { CGMESProfile::DY, } }, - { "cim:GovGAST.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST.r", { CGMESProfile::DY, } }, - { "cim:GovGAST.t1", { CGMESProfile::DY, } }, - { "cim:GovGAST.t2", { CGMESProfile::DY, } }, - { "cim:GovGAST.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST.vmax", { CGMESProfile::DY, } }, - { "cim:GovGAST.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovGAST::getPossibleProfilesForClass() const +const std::string& GovGAST::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovGAST::getPossibleProfilesForAttributes() const +const std::list& GovGAST::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* GovGAST::debugString() const void GovGAST::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST", &GovGAST_factory); + factory_map.emplace("GovGAST", &GovGAST_factory); } void GovGAST::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST.at", &assign_GovGAST_at); - assign_map.emplace("cim:GovGAST.dturb", &assign_GovGAST_dturb); - assign_map.emplace("cim:GovGAST.kt", &assign_GovGAST_kt); - assign_map.emplace("cim:GovGAST.mwbase", &assign_GovGAST_mwbase); - assign_map.emplace("cim:GovGAST.r", &assign_GovGAST_r); - assign_map.emplace("cim:GovGAST.t1", &assign_GovGAST_t1); - assign_map.emplace("cim:GovGAST.t2", &assign_GovGAST_t2); - assign_map.emplace("cim:GovGAST.t3", &assign_GovGAST_t3); - assign_map.emplace("cim:GovGAST.vmax", &assign_GovGAST_vmax); - assign_map.emplace("cim:GovGAST.vmin", &assign_GovGAST_vmin); + assign_map.emplace("GovGAST.at", &assign_GovGAST_at); + assign_map.emplace("GovGAST.dturb", &assign_GovGAST_dturb); + assign_map.emplace("GovGAST.kt", &assign_GovGAST_kt); + assign_map.emplace("GovGAST.mwbase", &assign_GovGAST_mwbase); + assign_map.emplace("GovGAST.r", &assign_GovGAST_r); + assign_map.emplace("GovGAST.t1", &assign_GovGAST_t1); + assign_map.emplace("GovGAST.t2", &assign_GovGAST_t2); + assign_map.emplace("GovGAST.t3", &assign_GovGAST_t3); + assign_map.emplace("GovGAST.vmax", &assign_GovGAST_vmax); + assign_map.emplace("GovGAST.vmin", &assign_GovGAST_vmin); } void GovGAST::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void GovGAST::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST.at", &get_GovGAST_at); - get_map.emplace("cim:GovGAST.dturb", &get_GovGAST_dturb); - get_map.emplace("cim:GovGAST.kt", &get_GovGAST_kt); - get_map.emplace("cim:GovGAST.mwbase", &get_GovGAST_mwbase); - get_map.emplace("cim:GovGAST.r", &get_GovGAST_r); - get_map.emplace("cim:GovGAST.t1", &get_GovGAST_t1); - get_map.emplace("cim:GovGAST.t2", &get_GovGAST_t2); - get_map.emplace("cim:GovGAST.t3", &get_GovGAST_t3); - get_map.emplace("cim:GovGAST.vmax", &get_GovGAST_vmax); - get_map.emplace("cim:GovGAST.vmin", &get_GovGAST_vmin); + get_map.emplace("GovGAST.at", &get_GovGAST_at); + get_map.emplace("GovGAST.dturb", &get_GovGAST_dturb); + get_map.emplace("GovGAST.kt", &get_GovGAST_kt); + get_map.emplace("GovGAST.mwbase", &get_GovGAST_mwbase); + get_map.emplace("GovGAST.r", &get_GovGAST_r); + get_map.emplace("GovGAST.t1", &get_GovGAST_t1); + get_map.emplace("GovGAST.t2", &get_GovGAST_t2); + get_map.emplace("GovGAST.t3", &get_GovGAST_t3); + get_map.emplace("GovGAST.vmax", &get_GovGAST_vmax); + get_map.emplace("GovGAST.vmin", &get_GovGAST_vmin); } void GovGAST::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void GovGAST::addEnumGetFnsToMap(std::map& get_map) c TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST::declare() { return BaseClassDefiner(GovGAST::addConstructToMap, GovGAST::addPrimitiveAssignFnsToMap, GovGAST::addClassAssignFnsToMap, GovGAST::debugName); } +std::map GovGAST::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovGAST.hpp b/CGMES_2.4.13_18DEC2013/GovGAST.hpp index 497af8aa8..4c5e7e723 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST.hpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovGAST1.cpp b/CGMES_2.4.13_18DEC2013/GovGAST1.cpp index 4acaed7db..72360cb09 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST1.cpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST1.cpp @@ -11,65 +11,97 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST1.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.fidle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.lmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.loadinc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.ltrate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.rmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.tltr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST1::GovGAST1() {} GovGAST1::~GovGAST1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST1.a", { CGMESProfile::DY, } }, - { "cim:GovGAST1.b", { CGMESProfile::DY, } }, - { "cim:GovGAST1.db1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.db2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.eps", { CGMESProfile::DY, } }, - { "cim:GovGAST1.fidle", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv6", { CGMESProfile::DY, } }, - { "cim:GovGAST1.ka", { CGMESProfile::DY, } }, - { "cim:GovGAST1.kt", { CGMESProfile::DY, } }, - { "cim:GovGAST1.lmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.loadinc", { CGMESProfile::DY, } }, - { "cim:GovGAST1.ltrate", { CGMESProfile::DY, } }, - { "cim:GovGAST1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv6", { CGMESProfile::DY, } }, - { "cim:GovGAST1.r", { CGMESProfile::DY, } }, - { "cim:GovGAST1.rmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.tltr", { CGMESProfile::DY, } }, - { "cim:GovGAST1.vmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.vmin", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST1_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1066,45 +1098,45 @@ const char* GovGAST1::debugString() const void GovGAST1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST1", &GovGAST1_factory); + factory_map.emplace("GovGAST1", &GovGAST1_factory); } void GovGAST1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST1.a", &assign_GovGAST1_a); - assign_map.emplace("cim:GovGAST1.b", &assign_GovGAST1_b); - assign_map.emplace("cim:GovGAST1.db1", &assign_GovGAST1_db1); - assign_map.emplace("cim:GovGAST1.db2", &assign_GovGAST1_db2); - assign_map.emplace("cim:GovGAST1.eps", &assign_GovGAST1_eps); - assign_map.emplace("cim:GovGAST1.fidle", &assign_GovGAST1_fidle); - assign_map.emplace("cim:GovGAST1.gv1", &assign_GovGAST1_gv1); - assign_map.emplace("cim:GovGAST1.gv2", &assign_GovGAST1_gv2); - assign_map.emplace("cim:GovGAST1.gv3", &assign_GovGAST1_gv3); - assign_map.emplace("cim:GovGAST1.gv4", &assign_GovGAST1_gv4); - assign_map.emplace("cim:GovGAST1.gv5", &assign_GovGAST1_gv5); - assign_map.emplace("cim:GovGAST1.gv6", &assign_GovGAST1_gv6); - assign_map.emplace("cim:GovGAST1.ka", &assign_GovGAST1_ka); - assign_map.emplace("cim:GovGAST1.kt", &assign_GovGAST1_kt); - assign_map.emplace("cim:GovGAST1.lmax", &assign_GovGAST1_lmax); - assign_map.emplace("cim:GovGAST1.loadinc", &assign_GovGAST1_loadinc); - assign_map.emplace("cim:GovGAST1.ltrate", &assign_GovGAST1_ltrate); - assign_map.emplace("cim:GovGAST1.mwbase", &assign_GovGAST1_mwbase); - assign_map.emplace("cim:GovGAST1.pgv1", &assign_GovGAST1_pgv1); - assign_map.emplace("cim:GovGAST1.pgv2", &assign_GovGAST1_pgv2); - assign_map.emplace("cim:GovGAST1.pgv3", &assign_GovGAST1_pgv3); - assign_map.emplace("cim:GovGAST1.pgv4", &assign_GovGAST1_pgv4); - assign_map.emplace("cim:GovGAST1.pgv5", &assign_GovGAST1_pgv5); - assign_map.emplace("cim:GovGAST1.pgv6", &assign_GovGAST1_pgv6); - assign_map.emplace("cim:GovGAST1.r", &assign_GovGAST1_r); - assign_map.emplace("cim:GovGAST1.rmax", &assign_GovGAST1_rmax); - assign_map.emplace("cim:GovGAST1.t1", &assign_GovGAST1_t1); - assign_map.emplace("cim:GovGAST1.t2", &assign_GovGAST1_t2); - assign_map.emplace("cim:GovGAST1.t3", &assign_GovGAST1_t3); - assign_map.emplace("cim:GovGAST1.t4", &assign_GovGAST1_t4); - assign_map.emplace("cim:GovGAST1.t5", &assign_GovGAST1_t5); - assign_map.emplace("cim:GovGAST1.tltr", &assign_GovGAST1_tltr); - assign_map.emplace("cim:GovGAST1.vmax", &assign_GovGAST1_vmax); - assign_map.emplace("cim:GovGAST1.vmin", &assign_GovGAST1_vmin); + assign_map.emplace("GovGAST1.a", &assign_GovGAST1_a); + assign_map.emplace("GovGAST1.b", &assign_GovGAST1_b); + assign_map.emplace("GovGAST1.db1", &assign_GovGAST1_db1); + assign_map.emplace("GovGAST1.db2", &assign_GovGAST1_db2); + assign_map.emplace("GovGAST1.eps", &assign_GovGAST1_eps); + assign_map.emplace("GovGAST1.fidle", &assign_GovGAST1_fidle); + assign_map.emplace("GovGAST1.gv1", &assign_GovGAST1_gv1); + assign_map.emplace("GovGAST1.gv2", &assign_GovGAST1_gv2); + assign_map.emplace("GovGAST1.gv3", &assign_GovGAST1_gv3); + assign_map.emplace("GovGAST1.gv4", &assign_GovGAST1_gv4); + assign_map.emplace("GovGAST1.gv5", &assign_GovGAST1_gv5); + assign_map.emplace("GovGAST1.gv6", &assign_GovGAST1_gv6); + assign_map.emplace("GovGAST1.ka", &assign_GovGAST1_ka); + assign_map.emplace("GovGAST1.kt", &assign_GovGAST1_kt); + assign_map.emplace("GovGAST1.lmax", &assign_GovGAST1_lmax); + assign_map.emplace("GovGAST1.loadinc", &assign_GovGAST1_loadinc); + assign_map.emplace("GovGAST1.ltrate", &assign_GovGAST1_ltrate); + assign_map.emplace("GovGAST1.mwbase", &assign_GovGAST1_mwbase); + assign_map.emplace("GovGAST1.pgv1", &assign_GovGAST1_pgv1); + assign_map.emplace("GovGAST1.pgv2", &assign_GovGAST1_pgv2); + assign_map.emplace("GovGAST1.pgv3", &assign_GovGAST1_pgv3); + assign_map.emplace("GovGAST1.pgv4", &assign_GovGAST1_pgv4); + assign_map.emplace("GovGAST1.pgv5", &assign_GovGAST1_pgv5); + assign_map.emplace("GovGAST1.pgv6", &assign_GovGAST1_pgv6); + assign_map.emplace("GovGAST1.r", &assign_GovGAST1_r); + assign_map.emplace("GovGAST1.rmax", &assign_GovGAST1_rmax); + assign_map.emplace("GovGAST1.t1", &assign_GovGAST1_t1); + assign_map.emplace("GovGAST1.t2", &assign_GovGAST1_t2); + assign_map.emplace("GovGAST1.t3", &assign_GovGAST1_t3); + assign_map.emplace("GovGAST1.t4", &assign_GovGAST1_t4); + assign_map.emplace("GovGAST1.t5", &assign_GovGAST1_t5); + assign_map.emplace("GovGAST1.tltr", &assign_GovGAST1_tltr); + assign_map.emplace("GovGAST1.vmax", &assign_GovGAST1_vmax); + assign_map.emplace("GovGAST1.vmin", &assign_GovGAST1_vmin); } void GovGAST1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1114,40 +1146,40 @@ void GovGAST1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST1.a", &get_GovGAST1_a); - get_map.emplace("cim:GovGAST1.b", &get_GovGAST1_b); - get_map.emplace("cim:GovGAST1.db1", &get_GovGAST1_db1); - get_map.emplace("cim:GovGAST1.db2", &get_GovGAST1_db2); - get_map.emplace("cim:GovGAST1.eps", &get_GovGAST1_eps); - get_map.emplace("cim:GovGAST1.fidle", &get_GovGAST1_fidle); - get_map.emplace("cim:GovGAST1.gv1", &get_GovGAST1_gv1); - get_map.emplace("cim:GovGAST1.gv2", &get_GovGAST1_gv2); - get_map.emplace("cim:GovGAST1.gv3", &get_GovGAST1_gv3); - get_map.emplace("cim:GovGAST1.gv4", &get_GovGAST1_gv4); - get_map.emplace("cim:GovGAST1.gv5", &get_GovGAST1_gv5); - get_map.emplace("cim:GovGAST1.gv6", &get_GovGAST1_gv6); - get_map.emplace("cim:GovGAST1.ka", &get_GovGAST1_ka); - get_map.emplace("cim:GovGAST1.kt", &get_GovGAST1_kt); - get_map.emplace("cim:GovGAST1.lmax", &get_GovGAST1_lmax); - get_map.emplace("cim:GovGAST1.loadinc", &get_GovGAST1_loadinc); - get_map.emplace("cim:GovGAST1.ltrate", &get_GovGAST1_ltrate); - get_map.emplace("cim:GovGAST1.mwbase", &get_GovGAST1_mwbase); - get_map.emplace("cim:GovGAST1.pgv1", &get_GovGAST1_pgv1); - get_map.emplace("cim:GovGAST1.pgv2", &get_GovGAST1_pgv2); - get_map.emplace("cim:GovGAST1.pgv3", &get_GovGAST1_pgv3); - get_map.emplace("cim:GovGAST1.pgv4", &get_GovGAST1_pgv4); - get_map.emplace("cim:GovGAST1.pgv5", &get_GovGAST1_pgv5); - get_map.emplace("cim:GovGAST1.pgv6", &get_GovGAST1_pgv6); - get_map.emplace("cim:GovGAST1.r", &get_GovGAST1_r); - get_map.emplace("cim:GovGAST1.rmax", &get_GovGAST1_rmax); - get_map.emplace("cim:GovGAST1.t1", &get_GovGAST1_t1); - get_map.emplace("cim:GovGAST1.t2", &get_GovGAST1_t2); - get_map.emplace("cim:GovGAST1.t3", &get_GovGAST1_t3); - get_map.emplace("cim:GovGAST1.t4", &get_GovGAST1_t4); - get_map.emplace("cim:GovGAST1.t5", &get_GovGAST1_t5); - get_map.emplace("cim:GovGAST1.tltr", &get_GovGAST1_tltr); - get_map.emplace("cim:GovGAST1.vmax", &get_GovGAST1_vmax); - get_map.emplace("cim:GovGAST1.vmin", &get_GovGAST1_vmin); + get_map.emplace("GovGAST1.a", &get_GovGAST1_a); + get_map.emplace("GovGAST1.b", &get_GovGAST1_b); + get_map.emplace("GovGAST1.db1", &get_GovGAST1_db1); + get_map.emplace("GovGAST1.db2", &get_GovGAST1_db2); + get_map.emplace("GovGAST1.eps", &get_GovGAST1_eps); + get_map.emplace("GovGAST1.fidle", &get_GovGAST1_fidle); + get_map.emplace("GovGAST1.gv1", &get_GovGAST1_gv1); + get_map.emplace("GovGAST1.gv2", &get_GovGAST1_gv2); + get_map.emplace("GovGAST1.gv3", &get_GovGAST1_gv3); + get_map.emplace("GovGAST1.gv4", &get_GovGAST1_gv4); + get_map.emplace("GovGAST1.gv5", &get_GovGAST1_gv5); + get_map.emplace("GovGAST1.gv6", &get_GovGAST1_gv6); + get_map.emplace("GovGAST1.ka", &get_GovGAST1_ka); + get_map.emplace("GovGAST1.kt", &get_GovGAST1_kt); + get_map.emplace("GovGAST1.lmax", &get_GovGAST1_lmax); + get_map.emplace("GovGAST1.loadinc", &get_GovGAST1_loadinc); + get_map.emplace("GovGAST1.ltrate", &get_GovGAST1_ltrate); + get_map.emplace("GovGAST1.mwbase", &get_GovGAST1_mwbase); + get_map.emplace("GovGAST1.pgv1", &get_GovGAST1_pgv1); + get_map.emplace("GovGAST1.pgv2", &get_GovGAST1_pgv2); + get_map.emplace("GovGAST1.pgv3", &get_GovGAST1_pgv3); + get_map.emplace("GovGAST1.pgv4", &get_GovGAST1_pgv4); + get_map.emplace("GovGAST1.pgv5", &get_GovGAST1_pgv5); + get_map.emplace("GovGAST1.pgv6", &get_GovGAST1_pgv6); + get_map.emplace("GovGAST1.r", &get_GovGAST1_r); + get_map.emplace("GovGAST1.rmax", &get_GovGAST1_rmax); + get_map.emplace("GovGAST1.t1", &get_GovGAST1_t1); + get_map.emplace("GovGAST1.t2", &get_GovGAST1_t2); + get_map.emplace("GovGAST1.t3", &get_GovGAST1_t3); + get_map.emplace("GovGAST1.t4", &get_GovGAST1_t4); + get_map.emplace("GovGAST1.t5", &get_GovGAST1_t5); + get_map.emplace("GovGAST1.tltr", &get_GovGAST1_tltr); + get_map.emplace("GovGAST1.vmax", &get_GovGAST1_vmax); + get_map.emplace("GovGAST1.vmin", &get_GovGAST1_vmin); } void GovGAST1::addClassGetFnsToMap(std::map& get_map) const @@ -1160,11 +1192,25 @@ void GovGAST1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST1::declare() { return BaseClassDefiner(GovGAST1::addConstructToMap, GovGAST1::addPrimitiveAssignFnsToMap, GovGAST1::addClassAssignFnsToMap, GovGAST1::debugName); } +std::map GovGAST1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST1_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovGAST1.hpp b/CGMES_2.4.13_18DEC2013/GovGAST1.hpp index 2eaf845e2..a1fd4bfcc 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST1.hpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -134,8 +135,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -143,7 +151,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovGAST2.cpp b/CGMES_2.4.13_18DEC2013/GovGAST2.cpp index c78ffe45c..b2adfaa1e 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST2.cpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST2.cpp @@ -11,63 +11,95 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST2.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.af1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.af2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.bf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.bf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.c", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.cf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.ecr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.etd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.trate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.w", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.y", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.z", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST2::GovGAST2() {} GovGAST2::~GovGAST2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST2.a", { CGMESProfile::DY, } }, - { "cim:GovGAST2.af1", { CGMESProfile::DY, } }, - { "cim:GovGAST2.af2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.b", { CGMESProfile::DY, } }, - { "cim:GovGAST2.bf1", { CGMESProfile::DY, } }, - { "cim:GovGAST2.bf2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.c", { CGMESProfile::DY, } }, - { "cim:GovGAST2.cf2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.ecr", { CGMESProfile::DY, } }, - { "cim:GovGAST2.etd", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k3", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k4", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k5", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k6", { CGMESProfile::DY, } }, - { "cim:GovGAST2.kf", { CGMESProfile::DY, } }, - { "cim:GovGAST2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t4", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t5", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tcd", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tf", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tmax", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tmin", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tr", { CGMESProfile::DY, } }, - { "cim:GovGAST2.trate", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tt", { CGMESProfile::DY, } }, - { "cim:GovGAST2.w", { CGMESProfile::DY, } }, - { "cim:GovGAST2.x", { CGMESProfile::DY, } }, - { "cim:GovGAST2.y", { CGMESProfile::DY, } }, - { "cim:GovGAST2.z", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST2_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1006,43 +1038,43 @@ const char* GovGAST2::debugString() const void GovGAST2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST2", &GovGAST2_factory); + factory_map.emplace("GovGAST2", &GovGAST2_factory); } void GovGAST2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST2.a", &assign_GovGAST2_a); - assign_map.emplace("cim:GovGAST2.af1", &assign_GovGAST2_af1); - assign_map.emplace("cim:GovGAST2.af2", &assign_GovGAST2_af2); - assign_map.emplace("cim:GovGAST2.b", &assign_GovGAST2_b); - assign_map.emplace("cim:GovGAST2.bf1", &assign_GovGAST2_bf1); - assign_map.emplace("cim:GovGAST2.bf2", &assign_GovGAST2_bf2); - assign_map.emplace("cim:GovGAST2.c", &assign_GovGAST2_c); - assign_map.emplace("cim:GovGAST2.cf2", &assign_GovGAST2_cf2); - assign_map.emplace("cim:GovGAST2.ecr", &assign_GovGAST2_ecr); - assign_map.emplace("cim:GovGAST2.etd", &assign_GovGAST2_etd); - assign_map.emplace("cim:GovGAST2.k3", &assign_GovGAST2_k3); - assign_map.emplace("cim:GovGAST2.k4", &assign_GovGAST2_k4); - assign_map.emplace("cim:GovGAST2.k5", &assign_GovGAST2_k5); - assign_map.emplace("cim:GovGAST2.k6", &assign_GovGAST2_k6); - assign_map.emplace("cim:GovGAST2.kf", &assign_GovGAST2_kf); - assign_map.emplace("cim:GovGAST2.mwbase", &assign_GovGAST2_mwbase); - assign_map.emplace("cim:GovGAST2.t", &assign_GovGAST2_t); - assign_map.emplace("cim:GovGAST2.t3", &assign_GovGAST2_t3); - assign_map.emplace("cim:GovGAST2.t4", &assign_GovGAST2_t4); - assign_map.emplace("cim:GovGAST2.t5", &assign_GovGAST2_t5); - assign_map.emplace("cim:GovGAST2.tc", &assign_GovGAST2_tc); - assign_map.emplace("cim:GovGAST2.tcd", &assign_GovGAST2_tcd); - assign_map.emplace("cim:GovGAST2.tf", &assign_GovGAST2_tf); - assign_map.emplace("cim:GovGAST2.tmax", &assign_GovGAST2_tmax); - assign_map.emplace("cim:GovGAST2.tmin", &assign_GovGAST2_tmin); - assign_map.emplace("cim:GovGAST2.tr", &assign_GovGAST2_tr); - assign_map.emplace("cim:GovGAST2.trate", &assign_GovGAST2_trate); - assign_map.emplace("cim:GovGAST2.tt", &assign_GovGAST2_tt); - assign_map.emplace("cim:GovGAST2.w", &assign_GovGAST2_w); - assign_map.emplace("cim:GovGAST2.x", &assign_GovGAST2_x); - assign_map.emplace("cim:GovGAST2.y", &assign_GovGAST2_y); - assign_map.emplace("cim:GovGAST2.z", &assign_GovGAST2_z); + assign_map.emplace("GovGAST2.a", &assign_GovGAST2_a); + assign_map.emplace("GovGAST2.af1", &assign_GovGAST2_af1); + assign_map.emplace("GovGAST2.af2", &assign_GovGAST2_af2); + assign_map.emplace("GovGAST2.b", &assign_GovGAST2_b); + assign_map.emplace("GovGAST2.bf1", &assign_GovGAST2_bf1); + assign_map.emplace("GovGAST2.bf2", &assign_GovGAST2_bf2); + assign_map.emplace("GovGAST2.c", &assign_GovGAST2_c); + assign_map.emplace("GovGAST2.cf2", &assign_GovGAST2_cf2); + assign_map.emplace("GovGAST2.ecr", &assign_GovGAST2_ecr); + assign_map.emplace("GovGAST2.etd", &assign_GovGAST2_etd); + assign_map.emplace("GovGAST2.k3", &assign_GovGAST2_k3); + assign_map.emplace("GovGAST2.k4", &assign_GovGAST2_k4); + assign_map.emplace("GovGAST2.k5", &assign_GovGAST2_k5); + assign_map.emplace("GovGAST2.k6", &assign_GovGAST2_k6); + assign_map.emplace("GovGAST2.kf", &assign_GovGAST2_kf); + assign_map.emplace("GovGAST2.mwbase", &assign_GovGAST2_mwbase); + assign_map.emplace("GovGAST2.t", &assign_GovGAST2_t); + assign_map.emplace("GovGAST2.t3", &assign_GovGAST2_t3); + assign_map.emplace("GovGAST2.t4", &assign_GovGAST2_t4); + assign_map.emplace("GovGAST2.t5", &assign_GovGAST2_t5); + assign_map.emplace("GovGAST2.tc", &assign_GovGAST2_tc); + assign_map.emplace("GovGAST2.tcd", &assign_GovGAST2_tcd); + assign_map.emplace("GovGAST2.tf", &assign_GovGAST2_tf); + assign_map.emplace("GovGAST2.tmax", &assign_GovGAST2_tmax); + assign_map.emplace("GovGAST2.tmin", &assign_GovGAST2_tmin); + assign_map.emplace("GovGAST2.tr", &assign_GovGAST2_tr); + assign_map.emplace("GovGAST2.trate", &assign_GovGAST2_trate); + assign_map.emplace("GovGAST2.tt", &assign_GovGAST2_tt); + assign_map.emplace("GovGAST2.w", &assign_GovGAST2_w); + assign_map.emplace("GovGAST2.x", &assign_GovGAST2_x); + assign_map.emplace("GovGAST2.y", &assign_GovGAST2_y); + assign_map.emplace("GovGAST2.z", &assign_GovGAST2_z); } void GovGAST2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1052,38 +1084,38 @@ void GovGAST2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST2.a", &get_GovGAST2_a); - get_map.emplace("cim:GovGAST2.af1", &get_GovGAST2_af1); - get_map.emplace("cim:GovGAST2.af2", &get_GovGAST2_af2); - get_map.emplace("cim:GovGAST2.b", &get_GovGAST2_b); - get_map.emplace("cim:GovGAST2.bf1", &get_GovGAST2_bf1); - get_map.emplace("cim:GovGAST2.bf2", &get_GovGAST2_bf2); - get_map.emplace("cim:GovGAST2.c", &get_GovGAST2_c); - get_map.emplace("cim:GovGAST2.cf2", &get_GovGAST2_cf2); - get_map.emplace("cim:GovGAST2.ecr", &get_GovGAST2_ecr); - get_map.emplace("cim:GovGAST2.etd", &get_GovGAST2_etd); - get_map.emplace("cim:GovGAST2.k3", &get_GovGAST2_k3); - get_map.emplace("cim:GovGAST2.k4", &get_GovGAST2_k4); - get_map.emplace("cim:GovGAST2.k5", &get_GovGAST2_k5); - get_map.emplace("cim:GovGAST2.k6", &get_GovGAST2_k6); - get_map.emplace("cim:GovGAST2.kf", &get_GovGAST2_kf); - get_map.emplace("cim:GovGAST2.mwbase", &get_GovGAST2_mwbase); - get_map.emplace("cim:GovGAST2.t", &get_GovGAST2_t); - get_map.emplace("cim:GovGAST2.t3", &get_GovGAST2_t3); - get_map.emplace("cim:GovGAST2.t4", &get_GovGAST2_t4); - get_map.emplace("cim:GovGAST2.t5", &get_GovGAST2_t5); - get_map.emplace("cim:GovGAST2.tc", &get_GovGAST2_tc); - get_map.emplace("cim:GovGAST2.tcd", &get_GovGAST2_tcd); - get_map.emplace("cim:GovGAST2.tf", &get_GovGAST2_tf); - get_map.emplace("cim:GovGAST2.tmax", &get_GovGAST2_tmax); - get_map.emplace("cim:GovGAST2.tmin", &get_GovGAST2_tmin); - get_map.emplace("cim:GovGAST2.tr", &get_GovGAST2_tr); - get_map.emplace("cim:GovGAST2.trate", &get_GovGAST2_trate); - get_map.emplace("cim:GovGAST2.tt", &get_GovGAST2_tt); - get_map.emplace("cim:GovGAST2.w", &get_GovGAST2_w); - get_map.emplace("cim:GovGAST2.x", &get_GovGAST2_x); - get_map.emplace("cim:GovGAST2.y", &get_GovGAST2_y); - get_map.emplace("cim:GovGAST2.z", &get_GovGAST2_z); + get_map.emplace("GovGAST2.a", &get_GovGAST2_a); + get_map.emplace("GovGAST2.af1", &get_GovGAST2_af1); + get_map.emplace("GovGAST2.af2", &get_GovGAST2_af2); + get_map.emplace("GovGAST2.b", &get_GovGAST2_b); + get_map.emplace("GovGAST2.bf1", &get_GovGAST2_bf1); + get_map.emplace("GovGAST2.bf2", &get_GovGAST2_bf2); + get_map.emplace("GovGAST2.c", &get_GovGAST2_c); + get_map.emplace("GovGAST2.cf2", &get_GovGAST2_cf2); + get_map.emplace("GovGAST2.ecr", &get_GovGAST2_ecr); + get_map.emplace("GovGAST2.etd", &get_GovGAST2_etd); + get_map.emplace("GovGAST2.k3", &get_GovGAST2_k3); + get_map.emplace("GovGAST2.k4", &get_GovGAST2_k4); + get_map.emplace("GovGAST2.k5", &get_GovGAST2_k5); + get_map.emplace("GovGAST2.k6", &get_GovGAST2_k6); + get_map.emplace("GovGAST2.kf", &get_GovGAST2_kf); + get_map.emplace("GovGAST2.mwbase", &get_GovGAST2_mwbase); + get_map.emplace("GovGAST2.t", &get_GovGAST2_t); + get_map.emplace("GovGAST2.t3", &get_GovGAST2_t3); + get_map.emplace("GovGAST2.t4", &get_GovGAST2_t4); + get_map.emplace("GovGAST2.t5", &get_GovGAST2_t5); + get_map.emplace("GovGAST2.tc", &get_GovGAST2_tc); + get_map.emplace("GovGAST2.tcd", &get_GovGAST2_tcd); + get_map.emplace("GovGAST2.tf", &get_GovGAST2_tf); + get_map.emplace("GovGAST2.tmax", &get_GovGAST2_tmax); + get_map.emplace("GovGAST2.tmin", &get_GovGAST2_tmin); + get_map.emplace("GovGAST2.tr", &get_GovGAST2_tr); + get_map.emplace("GovGAST2.trate", &get_GovGAST2_trate); + get_map.emplace("GovGAST2.tt", &get_GovGAST2_tt); + get_map.emplace("GovGAST2.w", &get_GovGAST2_w); + get_map.emplace("GovGAST2.x", &get_GovGAST2_x); + get_map.emplace("GovGAST2.y", &get_GovGAST2_y); + get_map.emplace("GovGAST2.z", &get_GovGAST2_z); } void GovGAST2::addClassGetFnsToMap(std::map& get_map) const @@ -1096,11 +1128,25 @@ void GovGAST2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST2::declare() { return BaseClassDefiner(GovGAST2::addConstructToMap, GovGAST2::addPrimitiveAssignFnsToMap, GovGAST2::addClassAssignFnsToMap, GovGAST2::debugName); } +std::map GovGAST2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST2_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovGAST2.hpp b/CGMES_2.4.13_18DEC2013/GovGAST2.hpp index 37de9cf50..3e30ecfa1 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST2.hpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -129,8 +130,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -138,7 +146,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovGAST3.cpp b/CGMES_2.4.13_18DEC2013/GovGAST3.cpp index d80998b75..dfe7a19cf 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST3.cpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST3.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST3.bca", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.kac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.kca", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ksi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ky", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.rcmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.rcmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tfen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tsi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ttc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ty", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST3::GovGAST3() {} GovGAST3::~GovGAST3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST3.bca", { CGMESProfile::DY, } }, - { "cim:GovGAST3.bp", { CGMESProfile::DY, } }, - { "cim:GovGAST3.dtc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ka", { CGMESProfile::DY, } }, - { "cim:GovGAST3.kac", { CGMESProfile::DY, } }, - { "cim:GovGAST3.kca", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ksi", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ky", { CGMESProfile::DY, } }, - { "cim:GovGAST3.mnef", { CGMESProfile::DY, } }, - { "cim:GovGAST3.mxef", { CGMESProfile::DY, } }, - { "cim:GovGAST3.rcmn", { CGMESProfile::DY, } }, - { "cim:GovGAST3.rcmx", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tac", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.td", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tfen", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tg", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tsi", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tt", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ttc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ty", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST3_bca(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* GovGAST3::debugString() const void GovGAST3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST3", &GovGAST3_factory); + factory_map.emplace("GovGAST3", &GovGAST3_factory); } void GovGAST3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST3.bca", &assign_GovGAST3_bca); - assign_map.emplace("cim:GovGAST3.bp", &assign_GovGAST3_bp); - assign_map.emplace("cim:GovGAST3.dtc", &assign_GovGAST3_dtc); - assign_map.emplace("cim:GovGAST3.ka", &assign_GovGAST3_ka); - assign_map.emplace("cim:GovGAST3.kac", &assign_GovGAST3_kac); - assign_map.emplace("cim:GovGAST3.kca", &assign_GovGAST3_kca); - assign_map.emplace("cim:GovGAST3.ksi", &assign_GovGAST3_ksi); - assign_map.emplace("cim:GovGAST3.ky", &assign_GovGAST3_ky); - assign_map.emplace("cim:GovGAST3.mnef", &assign_GovGAST3_mnef); - assign_map.emplace("cim:GovGAST3.mxef", &assign_GovGAST3_mxef); - assign_map.emplace("cim:GovGAST3.rcmn", &assign_GovGAST3_rcmn); - assign_map.emplace("cim:GovGAST3.rcmx", &assign_GovGAST3_rcmx); - assign_map.emplace("cim:GovGAST3.tac", &assign_GovGAST3_tac); - assign_map.emplace("cim:GovGAST3.tc", &assign_GovGAST3_tc); - assign_map.emplace("cim:GovGAST3.td", &assign_GovGAST3_td); - assign_map.emplace("cim:GovGAST3.tfen", &assign_GovGAST3_tfen); - assign_map.emplace("cim:GovGAST3.tg", &assign_GovGAST3_tg); - assign_map.emplace("cim:GovGAST3.tsi", &assign_GovGAST3_tsi); - assign_map.emplace("cim:GovGAST3.tt", &assign_GovGAST3_tt); - assign_map.emplace("cim:GovGAST3.ttc", &assign_GovGAST3_ttc); - assign_map.emplace("cim:GovGAST3.ty", &assign_GovGAST3_ty); + assign_map.emplace("GovGAST3.bca", &assign_GovGAST3_bca); + assign_map.emplace("GovGAST3.bp", &assign_GovGAST3_bp); + assign_map.emplace("GovGAST3.dtc", &assign_GovGAST3_dtc); + assign_map.emplace("GovGAST3.ka", &assign_GovGAST3_ka); + assign_map.emplace("GovGAST3.kac", &assign_GovGAST3_kac); + assign_map.emplace("GovGAST3.kca", &assign_GovGAST3_kca); + assign_map.emplace("GovGAST3.ksi", &assign_GovGAST3_ksi); + assign_map.emplace("GovGAST3.ky", &assign_GovGAST3_ky); + assign_map.emplace("GovGAST3.mnef", &assign_GovGAST3_mnef); + assign_map.emplace("GovGAST3.mxef", &assign_GovGAST3_mxef); + assign_map.emplace("GovGAST3.rcmn", &assign_GovGAST3_rcmn); + assign_map.emplace("GovGAST3.rcmx", &assign_GovGAST3_rcmx); + assign_map.emplace("GovGAST3.tac", &assign_GovGAST3_tac); + assign_map.emplace("GovGAST3.tc", &assign_GovGAST3_tc); + assign_map.emplace("GovGAST3.td", &assign_GovGAST3_td); + assign_map.emplace("GovGAST3.tfen", &assign_GovGAST3_tfen); + assign_map.emplace("GovGAST3.tg", &assign_GovGAST3_tg); + assign_map.emplace("GovGAST3.tsi", &assign_GovGAST3_tsi); + assign_map.emplace("GovGAST3.tt", &assign_GovGAST3_tt); + assign_map.emplace("GovGAST3.ttc", &assign_GovGAST3_ttc); + assign_map.emplace("GovGAST3.ty", &assign_GovGAST3_ty); } void GovGAST3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void GovGAST3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST3.bca", &get_GovGAST3_bca); - get_map.emplace("cim:GovGAST3.bp", &get_GovGAST3_bp); - get_map.emplace("cim:GovGAST3.dtc", &get_GovGAST3_dtc); - get_map.emplace("cim:GovGAST3.ka", &get_GovGAST3_ka); - get_map.emplace("cim:GovGAST3.kac", &get_GovGAST3_kac); - get_map.emplace("cim:GovGAST3.kca", &get_GovGAST3_kca); - get_map.emplace("cim:GovGAST3.ksi", &get_GovGAST3_ksi); - get_map.emplace("cim:GovGAST3.ky", &get_GovGAST3_ky); - get_map.emplace("cim:GovGAST3.mnef", &get_GovGAST3_mnef); - get_map.emplace("cim:GovGAST3.mxef", &get_GovGAST3_mxef); - get_map.emplace("cim:GovGAST3.rcmn", &get_GovGAST3_rcmn); - get_map.emplace("cim:GovGAST3.rcmx", &get_GovGAST3_rcmx); - get_map.emplace("cim:GovGAST3.tac", &get_GovGAST3_tac); - get_map.emplace("cim:GovGAST3.tc", &get_GovGAST3_tc); - get_map.emplace("cim:GovGAST3.td", &get_GovGAST3_td); - get_map.emplace("cim:GovGAST3.tfen", &get_GovGAST3_tfen); - get_map.emplace("cim:GovGAST3.tg", &get_GovGAST3_tg); - get_map.emplace("cim:GovGAST3.tsi", &get_GovGAST3_tsi); - get_map.emplace("cim:GovGAST3.tt", &get_GovGAST3_tt); - get_map.emplace("cim:GovGAST3.ttc", &get_GovGAST3_ttc); - get_map.emplace("cim:GovGAST3.ty", &get_GovGAST3_ty); + get_map.emplace("GovGAST3.bca", &get_GovGAST3_bca); + get_map.emplace("GovGAST3.bp", &get_GovGAST3_bp); + get_map.emplace("GovGAST3.dtc", &get_GovGAST3_dtc); + get_map.emplace("GovGAST3.ka", &get_GovGAST3_ka); + get_map.emplace("GovGAST3.kac", &get_GovGAST3_kac); + get_map.emplace("GovGAST3.kca", &get_GovGAST3_kca); + get_map.emplace("GovGAST3.ksi", &get_GovGAST3_ksi); + get_map.emplace("GovGAST3.ky", &get_GovGAST3_ky); + get_map.emplace("GovGAST3.mnef", &get_GovGAST3_mnef); + get_map.emplace("GovGAST3.mxef", &get_GovGAST3_mxef); + get_map.emplace("GovGAST3.rcmn", &get_GovGAST3_rcmn); + get_map.emplace("GovGAST3.rcmx", &get_GovGAST3_rcmx); + get_map.emplace("GovGAST3.tac", &get_GovGAST3_tac); + get_map.emplace("GovGAST3.tc", &get_GovGAST3_tc); + get_map.emplace("GovGAST3.td", &get_GovGAST3_td); + get_map.emplace("GovGAST3.tfen", &get_GovGAST3_tfen); + get_map.emplace("GovGAST3.tg", &get_GovGAST3_tg); + get_map.emplace("GovGAST3.tsi", &get_GovGAST3_tsi); + get_map.emplace("GovGAST3.tt", &get_GovGAST3_tt); + get_map.emplace("GovGAST3.ttc", &get_GovGAST3_ttc); + get_map.emplace("GovGAST3.ty", &get_GovGAST3_ty); } void GovGAST3::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void GovGAST3::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST3::declare() { return BaseClassDefiner(GovGAST3::addConstructToMap, GovGAST3::addPrimitiveAssignFnsToMap, GovGAST3::addClassAssignFnsToMap, GovGAST3::debugName); } +std::map GovGAST3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST3_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovGAST3.hpp b/CGMES_2.4.13_18DEC2013/GovGAST3.hpp index 8d460f127..1c25e73ed 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST3.hpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST3_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovGAST4.cpp b/CGMES_2.4.13_18DEC2013/GovGAST4.cpp index 43052f31f..92206c256 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST4.cpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST4.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST4.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.ktm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.rymn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.rymx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tcm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST4::GovGAST4() {} GovGAST4::~GovGAST4() {} -static const std::list PossibleProfilesForClass = +const std::list& GovGAST4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovGAST4::getClassNamespaceUrl() const { - { "cim:GovGAST4.bp", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ktm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.mnef", { CGMESProfile::DY, } }, - { "cim:GovGAST4.mxef", { CGMESProfile::DY, } }, - { "cim:GovGAST4.rymn", { CGMESProfile::DY, } }, - { "cim:GovGAST4.rymx", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ta", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tcm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tv", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovGAST4::getPossibleProfilesForClass() const +const std::string& GovGAST4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovGAST4::getPossibleProfilesForAttributes() const +const std::list& GovGAST4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST4_bp(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* GovGAST4::debugString() const void GovGAST4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST4", &GovGAST4_factory); + factory_map.emplace("GovGAST4", &GovGAST4_factory); } void GovGAST4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST4.bp", &assign_GovGAST4_bp); - assign_map.emplace("cim:GovGAST4.ktm", &assign_GovGAST4_ktm); - assign_map.emplace("cim:GovGAST4.mnef", &assign_GovGAST4_mnef); - assign_map.emplace("cim:GovGAST4.mxef", &assign_GovGAST4_mxef); - assign_map.emplace("cim:GovGAST4.rymn", &assign_GovGAST4_rymn); - assign_map.emplace("cim:GovGAST4.rymx", &assign_GovGAST4_rymx); - assign_map.emplace("cim:GovGAST4.ta", &assign_GovGAST4_ta); - assign_map.emplace("cim:GovGAST4.tc", &assign_GovGAST4_tc); - assign_map.emplace("cim:GovGAST4.tcm", &assign_GovGAST4_tcm); - assign_map.emplace("cim:GovGAST4.tm", &assign_GovGAST4_tm); - assign_map.emplace("cim:GovGAST4.tv", &assign_GovGAST4_tv); + assign_map.emplace("GovGAST4.bp", &assign_GovGAST4_bp); + assign_map.emplace("GovGAST4.ktm", &assign_GovGAST4_ktm); + assign_map.emplace("GovGAST4.mnef", &assign_GovGAST4_mnef); + assign_map.emplace("GovGAST4.mxef", &assign_GovGAST4_mxef); + assign_map.emplace("GovGAST4.rymn", &assign_GovGAST4_rymn); + assign_map.emplace("GovGAST4.rymx", &assign_GovGAST4_rymx); + assign_map.emplace("GovGAST4.ta", &assign_GovGAST4_ta); + assign_map.emplace("GovGAST4.tc", &assign_GovGAST4_tc); + assign_map.emplace("GovGAST4.tcm", &assign_GovGAST4_tcm); + assign_map.emplace("GovGAST4.tm", &assign_GovGAST4_tm); + assign_map.emplace("GovGAST4.tv", &assign_GovGAST4_tv); } void GovGAST4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void GovGAST4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST4.bp", &get_GovGAST4_bp); - get_map.emplace("cim:GovGAST4.ktm", &get_GovGAST4_ktm); - get_map.emplace("cim:GovGAST4.mnef", &get_GovGAST4_mnef); - get_map.emplace("cim:GovGAST4.mxef", &get_GovGAST4_mxef); - get_map.emplace("cim:GovGAST4.rymn", &get_GovGAST4_rymn); - get_map.emplace("cim:GovGAST4.rymx", &get_GovGAST4_rymx); - get_map.emplace("cim:GovGAST4.ta", &get_GovGAST4_ta); - get_map.emplace("cim:GovGAST4.tc", &get_GovGAST4_tc); - get_map.emplace("cim:GovGAST4.tcm", &get_GovGAST4_tcm); - get_map.emplace("cim:GovGAST4.tm", &get_GovGAST4_tm); - get_map.emplace("cim:GovGAST4.tv", &get_GovGAST4_tv); + get_map.emplace("GovGAST4.bp", &get_GovGAST4_bp); + get_map.emplace("GovGAST4.ktm", &get_GovGAST4_ktm); + get_map.emplace("GovGAST4.mnef", &get_GovGAST4_mnef); + get_map.emplace("GovGAST4.mxef", &get_GovGAST4_mxef); + get_map.emplace("GovGAST4.rymn", &get_GovGAST4_rymn); + get_map.emplace("GovGAST4.rymx", &get_GovGAST4_rymx); + get_map.emplace("GovGAST4.ta", &get_GovGAST4_ta); + get_map.emplace("GovGAST4.tc", &get_GovGAST4_tc); + get_map.emplace("GovGAST4.tcm", &get_GovGAST4_tcm); + get_map.emplace("GovGAST4.tm", &get_GovGAST4_tm); + get_map.emplace("GovGAST4.tv", &get_GovGAST4_tv); } void GovGAST4::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void GovGAST4::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST4::declare() { return BaseClassDefiner(GovGAST4::addConstructToMap, GovGAST4::addPrimitiveAssignFnsToMap, GovGAST4::addClassAssignFnsToMap, GovGAST4::debugName); } +std::map GovGAST4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST4_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovGAST4.hpp b/CGMES_2.4.13_18DEC2013/GovGAST4.hpp index aa017e229..4be5d773e 100644 --- a/CGMES_2.4.13_18DEC2013/GovGAST4.hpp +++ b/CGMES_2.4.13_18DEC2013/GovGAST4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST4_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovGASTWD.cpp b/CGMES_2.4.13_18DEC2013/GovGASTWD.cpp index 06560d02d..808163e83 100644 --- a/CGMES_2.4.13_18DEC2013/GovGASTWD.cpp +++ b/CGMES_2.4.13_18DEC2013/GovGASTWD.cpp @@ -11,64 +11,96 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGASTWD(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGASTWD.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.af1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.af2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.bf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.bf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.c", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.cf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.ecr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.etd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.trate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGASTWD::GovGASTWD() {} GovGASTWD::~GovGASTWD() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGASTWD.a", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.af1", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.af2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.b", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.bf1", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.bf2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.c", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.cf2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.ecr", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.etd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k3", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k4", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k5", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k6", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kdroop", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kf", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.ki", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kp", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t3", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t4", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t5", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tc", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tcd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.td", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tf", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tmax", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tmin", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tr", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.trate", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tt", { CGMESProfile::DY, } }, -}; - -std::list -GovGASTWD::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGASTWD::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGASTWD::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGASTWD::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGASTWD::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGASTWD::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGASTWD::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGASTWD::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGASTWD::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGASTWD_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1036,44 +1068,44 @@ const char* GovGASTWD::debugString() const void GovGASTWD::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGASTWD", &GovGASTWD_factory); + factory_map.emplace("GovGASTWD", &GovGASTWD_factory); } void GovGASTWD::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGASTWD.a", &assign_GovGASTWD_a); - assign_map.emplace("cim:GovGASTWD.af1", &assign_GovGASTWD_af1); - assign_map.emplace("cim:GovGASTWD.af2", &assign_GovGASTWD_af2); - assign_map.emplace("cim:GovGASTWD.b", &assign_GovGASTWD_b); - assign_map.emplace("cim:GovGASTWD.bf1", &assign_GovGASTWD_bf1); - assign_map.emplace("cim:GovGASTWD.bf2", &assign_GovGASTWD_bf2); - assign_map.emplace("cim:GovGASTWD.c", &assign_GovGASTWD_c); - assign_map.emplace("cim:GovGASTWD.cf2", &assign_GovGASTWD_cf2); - assign_map.emplace("cim:GovGASTWD.ecr", &assign_GovGASTWD_ecr); - assign_map.emplace("cim:GovGASTWD.etd", &assign_GovGASTWD_etd); - assign_map.emplace("cim:GovGASTWD.k3", &assign_GovGASTWD_k3); - assign_map.emplace("cim:GovGASTWD.k4", &assign_GovGASTWD_k4); - assign_map.emplace("cim:GovGASTWD.k5", &assign_GovGASTWD_k5); - assign_map.emplace("cim:GovGASTWD.k6", &assign_GovGASTWD_k6); - assign_map.emplace("cim:GovGASTWD.kd", &assign_GovGASTWD_kd); - assign_map.emplace("cim:GovGASTWD.kdroop", &assign_GovGASTWD_kdroop); - assign_map.emplace("cim:GovGASTWD.kf", &assign_GovGASTWD_kf); - assign_map.emplace("cim:GovGASTWD.ki", &assign_GovGASTWD_ki); - assign_map.emplace("cim:GovGASTWD.kp", &assign_GovGASTWD_kp); - assign_map.emplace("cim:GovGASTWD.mwbase", &assign_GovGASTWD_mwbase); - assign_map.emplace("cim:GovGASTWD.t", &assign_GovGASTWD_t); - assign_map.emplace("cim:GovGASTWD.t3", &assign_GovGASTWD_t3); - assign_map.emplace("cim:GovGASTWD.t4", &assign_GovGASTWD_t4); - assign_map.emplace("cim:GovGASTWD.t5", &assign_GovGASTWD_t5); - assign_map.emplace("cim:GovGASTWD.tc", &assign_GovGASTWD_tc); - assign_map.emplace("cim:GovGASTWD.tcd", &assign_GovGASTWD_tcd); - assign_map.emplace("cim:GovGASTWD.td", &assign_GovGASTWD_td); - assign_map.emplace("cim:GovGASTWD.tf", &assign_GovGASTWD_tf); - assign_map.emplace("cim:GovGASTWD.tmax", &assign_GovGASTWD_tmax); - assign_map.emplace("cim:GovGASTWD.tmin", &assign_GovGASTWD_tmin); - assign_map.emplace("cim:GovGASTWD.tr", &assign_GovGASTWD_tr); - assign_map.emplace("cim:GovGASTWD.trate", &assign_GovGASTWD_trate); - assign_map.emplace("cim:GovGASTWD.tt", &assign_GovGASTWD_tt); + assign_map.emplace("GovGASTWD.a", &assign_GovGASTWD_a); + assign_map.emplace("GovGASTWD.af1", &assign_GovGASTWD_af1); + assign_map.emplace("GovGASTWD.af2", &assign_GovGASTWD_af2); + assign_map.emplace("GovGASTWD.b", &assign_GovGASTWD_b); + assign_map.emplace("GovGASTWD.bf1", &assign_GovGASTWD_bf1); + assign_map.emplace("GovGASTWD.bf2", &assign_GovGASTWD_bf2); + assign_map.emplace("GovGASTWD.c", &assign_GovGASTWD_c); + assign_map.emplace("GovGASTWD.cf2", &assign_GovGASTWD_cf2); + assign_map.emplace("GovGASTWD.ecr", &assign_GovGASTWD_ecr); + assign_map.emplace("GovGASTWD.etd", &assign_GovGASTWD_etd); + assign_map.emplace("GovGASTWD.k3", &assign_GovGASTWD_k3); + assign_map.emplace("GovGASTWD.k4", &assign_GovGASTWD_k4); + assign_map.emplace("GovGASTWD.k5", &assign_GovGASTWD_k5); + assign_map.emplace("GovGASTWD.k6", &assign_GovGASTWD_k6); + assign_map.emplace("GovGASTWD.kd", &assign_GovGASTWD_kd); + assign_map.emplace("GovGASTWD.kdroop", &assign_GovGASTWD_kdroop); + assign_map.emplace("GovGASTWD.kf", &assign_GovGASTWD_kf); + assign_map.emplace("GovGASTWD.ki", &assign_GovGASTWD_ki); + assign_map.emplace("GovGASTWD.kp", &assign_GovGASTWD_kp); + assign_map.emplace("GovGASTWD.mwbase", &assign_GovGASTWD_mwbase); + assign_map.emplace("GovGASTWD.t", &assign_GovGASTWD_t); + assign_map.emplace("GovGASTWD.t3", &assign_GovGASTWD_t3); + assign_map.emplace("GovGASTWD.t4", &assign_GovGASTWD_t4); + assign_map.emplace("GovGASTWD.t5", &assign_GovGASTWD_t5); + assign_map.emplace("GovGASTWD.tc", &assign_GovGASTWD_tc); + assign_map.emplace("GovGASTWD.tcd", &assign_GovGASTWD_tcd); + assign_map.emplace("GovGASTWD.td", &assign_GovGASTWD_td); + assign_map.emplace("GovGASTWD.tf", &assign_GovGASTWD_tf); + assign_map.emplace("GovGASTWD.tmax", &assign_GovGASTWD_tmax); + assign_map.emplace("GovGASTWD.tmin", &assign_GovGASTWD_tmin); + assign_map.emplace("GovGASTWD.tr", &assign_GovGASTWD_tr); + assign_map.emplace("GovGASTWD.trate", &assign_GovGASTWD_trate); + assign_map.emplace("GovGASTWD.tt", &assign_GovGASTWD_tt); } void GovGASTWD::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1083,39 +1115,39 @@ void GovGASTWD::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGASTWD.a", &get_GovGASTWD_a); - get_map.emplace("cim:GovGASTWD.af1", &get_GovGASTWD_af1); - get_map.emplace("cim:GovGASTWD.af2", &get_GovGASTWD_af2); - get_map.emplace("cim:GovGASTWD.b", &get_GovGASTWD_b); - get_map.emplace("cim:GovGASTWD.bf1", &get_GovGASTWD_bf1); - get_map.emplace("cim:GovGASTWD.bf2", &get_GovGASTWD_bf2); - get_map.emplace("cim:GovGASTWD.c", &get_GovGASTWD_c); - get_map.emplace("cim:GovGASTWD.cf2", &get_GovGASTWD_cf2); - get_map.emplace("cim:GovGASTWD.ecr", &get_GovGASTWD_ecr); - get_map.emplace("cim:GovGASTWD.etd", &get_GovGASTWD_etd); - get_map.emplace("cim:GovGASTWD.k3", &get_GovGASTWD_k3); - get_map.emplace("cim:GovGASTWD.k4", &get_GovGASTWD_k4); - get_map.emplace("cim:GovGASTWD.k5", &get_GovGASTWD_k5); - get_map.emplace("cim:GovGASTWD.k6", &get_GovGASTWD_k6); - get_map.emplace("cim:GovGASTWD.kd", &get_GovGASTWD_kd); - get_map.emplace("cim:GovGASTWD.kdroop", &get_GovGASTWD_kdroop); - get_map.emplace("cim:GovGASTWD.kf", &get_GovGASTWD_kf); - get_map.emplace("cim:GovGASTWD.ki", &get_GovGASTWD_ki); - get_map.emplace("cim:GovGASTWD.kp", &get_GovGASTWD_kp); - get_map.emplace("cim:GovGASTWD.mwbase", &get_GovGASTWD_mwbase); - get_map.emplace("cim:GovGASTWD.t", &get_GovGASTWD_t); - get_map.emplace("cim:GovGASTWD.t3", &get_GovGASTWD_t3); - get_map.emplace("cim:GovGASTWD.t4", &get_GovGASTWD_t4); - get_map.emplace("cim:GovGASTWD.t5", &get_GovGASTWD_t5); - get_map.emplace("cim:GovGASTWD.tc", &get_GovGASTWD_tc); - get_map.emplace("cim:GovGASTWD.tcd", &get_GovGASTWD_tcd); - get_map.emplace("cim:GovGASTWD.td", &get_GovGASTWD_td); - get_map.emplace("cim:GovGASTWD.tf", &get_GovGASTWD_tf); - get_map.emplace("cim:GovGASTWD.tmax", &get_GovGASTWD_tmax); - get_map.emplace("cim:GovGASTWD.tmin", &get_GovGASTWD_tmin); - get_map.emplace("cim:GovGASTWD.tr", &get_GovGASTWD_tr); - get_map.emplace("cim:GovGASTWD.trate", &get_GovGASTWD_trate); - get_map.emplace("cim:GovGASTWD.tt", &get_GovGASTWD_tt); + get_map.emplace("GovGASTWD.a", &get_GovGASTWD_a); + get_map.emplace("GovGASTWD.af1", &get_GovGASTWD_af1); + get_map.emplace("GovGASTWD.af2", &get_GovGASTWD_af2); + get_map.emplace("GovGASTWD.b", &get_GovGASTWD_b); + get_map.emplace("GovGASTWD.bf1", &get_GovGASTWD_bf1); + get_map.emplace("GovGASTWD.bf2", &get_GovGASTWD_bf2); + get_map.emplace("GovGASTWD.c", &get_GovGASTWD_c); + get_map.emplace("GovGASTWD.cf2", &get_GovGASTWD_cf2); + get_map.emplace("GovGASTWD.ecr", &get_GovGASTWD_ecr); + get_map.emplace("GovGASTWD.etd", &get_GovGASTWD_etd); + get_map.emplace("GovGASTWD.k3", &get_GovGASTWD_k3); + get_map.emplace("GovGASTWD.k4", &get_GovGASTWD_k4); + get_map.emplace("GovGASTWD.k5", &get_GovGASTWD_k5); + get_map.emplace("GovGASTWD.k6", &get_GovGASTWD_k6); + get_map.emplace("GovGASTWD.kd", &get_GovGASTWD_kd); + get_map.emplace("GovGASTWD.kdroop", &get_GovGASTWD_kdroop); + get_map.emplace("GovGASTWD.kf", &get_GovGASTWD_kf); + get_map.emplace("GovGASTWD.ki", &get_GovGASTWD_ki); + get_map.emplace("GovGASTWD.kp", &get_GovGASTWD_kp); + get_map.emplace("GovGASTWD.mwbase", &get_GovGASTWD_mwbase); + get_map.emplace("GovGASTWD.t", &get_GovGASTWD_t); + get_map.emplace("GovGASTWD.t3", &get_GovGASTWD_t3); + get_map.emplace("GovGASTWD.t4", &get_GovGASTWD_t4); + get_map.emplace("GovGASTWD.t5", &get_GovGASTWD_t5); + get_map.emplace("GovGASTWD.tc", &get_GovGASTWD_tc); + get_map.emplace("GovGASTWD.tcd", &get_GovGASTWD_tcd); + get_map.emplace("GovGASTWD.td", &get_GovGASTWD_td); + get_map.emplace("GovGASTWD.tf", &get_GovGASTWD_tf); + get_map.emplace("GovGASTWD.tmax", &get_GovGASTWD_tmax); + get_map.emplace("GovGASTWD.tmin", &get_GovGASTWD_tmin); + get_map.emplace("GovGASTWD.tr", &get_GovGASTWD_tr); + get_map.emplace("GovGASTWD.trate", &get_GovGASTWD_trate); + get_map.emplace("GovGASTWD.tt", &get_GovGASTWD_tt); } void GovGASTWD::addClassGetFnsToMap(std::map& get_map) const @@ -1128,11 +1160,25 @@ void GovGASTWD::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGASTWD::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGASTWD" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGASTWD::declare() { return BaseClassDefiner(GovGASTWD::addConstructToMap, GovGASTWD::addPrimitiveAssignFnsToMap, GovGASTWD::addClassAssignFnsToMap, GovGASTWD::debugName); } +std::map GovGASTWD::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGASTWD_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovGASTWD.hpp b/CGMES_2.4.13_18DEC2013/GovGASTWD.hpp index 8623cf082..746525532 100644 --- a/CGMES_2.4.13_18DEC2013/GovGASTWD.hpp +++ b/CGMES_2.4.13_18DEC2013/GovGASTWD.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -131,8 +132,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -140,7 +148,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGASTWD_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydro1.cpp b/CGMES_2.4.13_18DEC2013/GovHydro1.cpp index ba0d33f7d..97b741f32 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydro1.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydro1.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro1.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.hdam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.velm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro1::GovHydro1() {} GovHydro1::~GovHydro1() {} -static const std::list PossibleProfilesForClass = +const std::list& GovHydro1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovHydro1::getClassNamespaceUrl() const { - { "cim:GovHydro1.at", { CGMESProfile::DY, } }, - { "cim:GovHydro1.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro1.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydro1.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydro1.hdam", { CGMESProfile::DY, } }, - { "cim:GovHydro1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro1.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro1.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro1.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tf", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro1.velm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovHydro1::getPossibleProfilesForClass() const +const std::string& GovHydro1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovHydro1::getPossibleProfilesForAttributes() const +const std::list& GovHydro1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro1_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* GovHydro1::debugString() const void GovHydro1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro1", &GovHydro1_factory); + factory_map.emplace("GovHydro1", &GovHydro1_factory); } void GovHydro1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro1.at", &assign_GovHydro1_at); - assign_map.emplace("cim:GovHydro1.dturb", &assign_GovHydro1_dturb); - assign_map.emplace("cim:GovHydro1.gmax", &assign_GovHydro1_gmax); - assign_map.emplace("cim:GovHydro1.gmin", &assign_GovHydro1_gmin); - assign_map.emplace("cim:GovHydro1.hdam", &assign_GovHydro1_hdam); - assign_map.emplace("cim:GovHydro1.mwbase", &assign_GovHydro1_mwbase); - assign_map.emplace("cim:GovHydro1.qnl", &assign_GovHydro1_qnl); - assign_map.emplace("cim:GovHydro1.rperm", &assign_GovHydro1_rperm); - assign_map.emplace("cim:GovHydro1.rtemp", &assign_GovHydro1_rtemp); - assign_map.emplace("cim:GovHydro1.tf", &assign_GovHydro1_tf); - assign_map.emplace("cim:GovHydro1.tg", &assign_GovHydro1_tg); - assign_map.emplace("cim:GovHydro1.tr", &assign_GovHydro1_tr); - assign_map.emplace("cim:GovHydro1.tw", &assign_GovHydro1_tw); - assign_map.emplace("cim:GovHydro1.velm", &assign_GovHydro1_velm); + assign_map.emplace("GovHydro1.at", &assign_GovHydro1_at); + assign_map.emplace("GovHydro1.dturb", &assign_GovHydro1_dturb); + assign_map.emplace("GovHydro1.gmax", &assign_GovHydro1_gmax); + assign_map.emplace("GovHydro1.gmin", &assign_GovHydro1_gmin); + assign_map.emplace("GovHydro1.hdam", &assign_GovHydro1_hdam); + assign_map.emplace("GovHydro1.mwbase", &assign_GovHydro1_mwbase); + assign_map.emplace("GovHydro1.qnl", &assign_GovHydro1_qnl); + assign_map.emplace("GovHydro1.rperm", &assign_GovHydro1_rperm); + assign_map.emplace("GovHydro1.rtemp", &assign_GovHydro1_rtemp); + assign_map.emplace("GovHydro1.tf", &assign_GovHydro1_tf); + assign_map.emplace("GovHydro1.tg", &assign_GovHydro1_tg); + assign_map.emplace("GovHydro1.tr", &assign_GovHydro1_tr); + assign_map.emplace("GovHydro1.tw", &assign_GovHydro1_tw); + assign_map.emplace("GovHydro1.velm", &assign_GovHydro1_velm); } void GovHydro1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void GovHydro1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro1.at", &get_GovHydro1_at); - get_map.emplace("cim:GovHydro1.dturb", &get_GovHydro1_dturb); - get_map.emplace("cim:GovHydro1.gmax", &get_GovHydro1_gmax); - get_map.emplace("cim:GovHydro1.gmin", &get_GovHydro1_gmin); - get_map.emplace("cim:GovHydro1.hdam", &get_GovHydro1_hdam); - get_map.emplace("cim:GovHydro1.mwbase", &get_GovHydro1_mwbase); - get_map.emplace("cim:GovHydro1.qnl", &get_GovHydro1_qnl); - get_map.emplace("cim:GovHydro1.rperm", &get_GovHydro1_rperm); - get_map.emplace("cim:GovHydro1.rtemp", &get_GovHydro1_rtemp); - get_map.emplace("cim:GovHydro1.tf", &get_GovHydro1_tf); - get_map.emplace("cim:GovHydro1.tg", &get_GovHydro1_tg); - get_map.emplace("cim:GovHydro1.tr", &get_GovHydro1_tr); - get_map.emplace("cim:GovHydro1.tw", &get_GovHydro1_tw); - get_map.emplace("cim:GovHydro1.velm", &get_GovHydro1_velm); + get_map.emplace("GovHydro1.at", &get_GovHydro1_at); + get_map.emplace("GovHydro1.dturb", &get_GovHydro1_dturb); + get_map.emplace("GovHydro1.gmax", &get_GovHydro1_gmax); + get_map.emplace("GovHydro1.gmin", &get_GovHydro1_gmin); + get_map.emplace("GovHydro1.hdam", &get_GovHydro1_hdam); + get_map.emplace("GovHydro1.mwbase", &get_GovHydro1_mwbase); + get_map.emplace("GovHydro1.qnl", &get_GovHydro1_qnl); + get_map.emplace("GovHydro1.rperm", &get_GovHydro1_rperm); + get_map.emplace("GovHydro1.rtemp", &get_GovHydro1_rtemp); + get_map.emplace("GovHydro1.tf", &get_GovHydro1_tf); + get_map.emplace("GovHydro1.tg", &get_GovHydro1_tg); + get_map.emplace("GovHydro1.tr", &get_GovHydro1_tr); + get_map.emplace("GovHydro1.tw", &get_GovHydro1_tw); + get_map.emplace("GovHydro1.velm", &get_GovHydro1_velm); } void GovHydro1::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void GovHydro1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro1::declare() { return BaseClassDefiner(GovHydro1::addConstructToMap, GovHydro1::addPrimitiveAssignFnsToMap, GovHydro1::addClassAssignFnsToMap, GovHydro1::debugName); } +std::map GovHydro1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro1_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydro1.hpp b/CGMES_2.4.13_18DEC2013/GovHydro1.hpp index f0f99628b..e608726c8 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydro1.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydro1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydro2.cpp b/CGMES_2.4.13_18DEC2013/GovHydro2.cpp index 83cb2dbf7..f3d6a9b96 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydro2.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydro2.cpp @@ -11,60 +11,92 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro2.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro2::GovHydro2() {} GovHydro2::~GovHydro2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro2.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydro2.kturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydro2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro2.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro2.uc", { CGMESProfile::DY, } }, - { "cim:GovHydro2.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro2_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -916,40 +948,40 @@ const char* GovHydro2::debugString() const void GovHydro2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro2", &GovHydro2_factory); + factory_map.emplace("GovHydro2", &GovHydro2_factory); } void GovHydro2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro2.aturb", &assign_GovHydro2_aturb); - assign_map.emplace("cim:GovHydro2.bturb", &assign_GovHydro2_bturb); - assign_map.emplace("cim:GovHydro2.db1", &assign_GovHydro2_db1); - assign_map.emplace("cim:GovHydro2.db2", &assign_GovHydro2_db2); - assign_map.emplace("cim:GovHydro2.eps", &assign_GovHydro2_eps); - assign_map.emplace("cim:GovHydro2.gv1", &assign_GovHydro2_gv1); - assign_map.emplace("cim:GovHydro2.gv2", &assign_GovHydro2_gv2); - assign_map.emplace("cim:GovHydro2.gv3", &assign_GovHydro2_gv3); - assign_map.emplace("cim:GovHydro2.gv4", &assign_GovHydro2_gv4); - assign_map.emplace("cim:GovHydro2.gv5", &assign_GovHydro2_gv5); - assign_map.emplace("cim:GovHydro2.gv6", &assign_GovHydro2_gv6); - assign_map.emplace("cim:GovHydro2.kturb", &assign_GovHydro2_kturb); - assign_map.emplace("cim:GovHydro2.mwbase", &assign_GovHydro2_mwbase); - assign_map.emplace("cim:GovHydro2.pgv1", &assign_GovHydro2_pgv1); - assign_map.emplace("cim:GovHydro2.pgv2", &assign_GovHydro2_pgv2); - assign_map.emplace("cim:GovHydro2.pgv3", &assign_GovHydro2_pgv3); - assign_map.emplace("cim:GovHydro2.pgv4", &assign_GovHydro2_pgv4); - assign_map.emplace("cim:GovHydro2.pgv5", &assign_GovHydro2_pgv5); - assign_map.emplace("cim:GovHydro2.pgv6", &assign_GovHydro2_pgv6); - assign_map.emplace("cim:GovHydro2.pmax", &assign_GovHydro2_pmax); - assign_map.emplace("cim:GovHydro2.pmin", &assign_GovHydro2_pmin); - assign_map.emplace("cim:GovHydro2.rperm", &assign_GovHydro2_rperm); - assign_map.emplace("cim:GovHydro2.rtemp", &assign_GovHydro2_rtemp); - assign_map.emplace("cim:GovHydro2.tg", &assign_GovHydro2_tg); - assign_map.emplace("cim:GovHydro2.tp", &assign_GovHydro2_tp); - assign_map.emplace("cim:GovHydro2.tr", &assign_GovHydro2_tr); - assign_map.emplace("cim:GovHydro2.tw", &assign_GovHydro2_tw); - assign_map.emplace("cim:GovHydro2.uc", &assign_GovHydro2_uc); - assign_map.emplace("cim:GovHydro2.uo", &assign_GovHydro2_uo); + assign_map.emplace("GovHydro2.aturb", &assign_GovHydro2_aturb); + assign_map.emplace("GovHydro2.bturb", &assign_GovHydro2_bturb); + assign_map.emplace("GovHydro2.db1", &assign_GovHydro2_db1); + assign_map.emplace("GovHydro2.db2", &assign_GovHydro2_db2); + assign_map.emplace("GovHydro2.eps", &assign_GovHydro2_eps); + assign_map.emplace("GovHydro2.gv1", &assign_GovHydro2_gv1); + assign_map.emplace("GovHydro2.gv2", &assign_GovHydro2_gv2); + assign_map.emplace("GovHydro2.gv3", &assign_GovHydro2_gv3); + assign_map.emplace("GovHydro2.gv4", &assign_GovHydro2_gv4); + assign_map.emplace("GovHydro2.gv5", &assign_GovHydro2_gv5); + assign_map.emplace("GovHydro2.gv6", &assign_GovHydro2_gv6); + assign_map.emplace("GovHydro2.kturb", &assign_GovHydro2_kturb); + assign_map.emplace("GovHydro2.mwbase", &assign_GovHydro2_mwbase); + assign_map.emplace("GovHydro2.pgv1", &assign_GovHydro2_pgv1); + assign_map.emplace("GovHydro2.pgv2", &assign_GovHydro2_pgv2); + assign_map.emplace("GovHydro2.pgv3", &assign_GovHydro2_pgv3); + assign_map.emplace("GovHydro2.pgv4", &assign_GovHydro2_pgv4); + assign_map.emplace("GovHydro2.pgv5", &assign_GovHydro2_pgv5); + assign_map.emplace("GovHydro2.pgv6", &assign_GovHydro2_pgv6); + assign_map.emplace("GovHydro2.pmax", &assign_GovHydro2_pmax); + assign_map.emplace("GovHydro2.pmin", &assign_GovHydro2_pmin); + assign_map.emplace("GovHydro2.rperm", &assign_GovHydro2_rperm); + assign_map.emplace("GovHydro2.rtemp", &assign_GovHydro2_rtemp); + assign_map.emplace("GovHydro2.tg", &assign_GovHydro2_tg); + assign_map.emplace("GovHydro2.tp", &assign_GovHydro2_tp); + assign_map.emplace("GovHydro2.tr", &assign_GovHydro2_tr); + assign_map.emplace("GovHydro2.tw", &assign_GovHydro2_tw); + assign_map.emplace("GovHydro2.uc", &assign_GovHydro2_uc); + assign_map.emplace("GovHydro2.uo", &assign_GovHydro2_uo); } void GovHydro2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -959,35 +991,35 @@ void GovHydro2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro2.aturb", &get_GovHydro2_aturb); - get_map.emplace("cim:GovHydro2.bturb", &get_GovHydro2_bturb); - get_map.emplace("cim:GovHydro2.db1", &get_GovHydro2_db1); - get_map.emplace("cim:GovHydro2.db2", &get_GovHydro2_db2); - get_map.emplace("cim:GovHydro2.eps", &get_GovHydro2_eps); - get_map.emplace("cim:GovHydro2.gv1", &get_GovHydro2_gv1); - get_map.emplace("cim:GovHydro2.gv2", &get_GovHydro2_gv2); - get_map.emplace("cim:GovHydro2.gv3", &get_GovHydro2_gv3); - get_map.emplace("cim:GovHydro2.gv4", &get_GovHydro2_gv4); - get_map.emplace("cim:GovHydro2.gv5", &get_GovHydro2_gv5); - get_map.emplace("cim:GovHydro2.gv6", &get_GovHydro2_gv6); - get_map.emplace("cim:GovHydro2.kturb", &get_GovHydro2_kturb); - get_map.emplace("cim:GovHydro2.mwbase", &get_GovHydro2_mwbase); - get_map.emplace("cim:GovHydro2.pgv1", &get_GovHydro2_pgv1); - get_map.emplace("cim:GovHydro2.pgv2", &get_GovHydro2_pgv2); - get_map.emplace("cim:GovHydro2.pgv3", &get_GovHydro2_pgv3); - get_map.emplace("cim:GovHydro2.pgv4", &get_GovHydro2_pgv4); - get_map.emplace("cim:GovHydro2.pgv5", &get_GovHydro2_pgv5); - get_map.emplace("cim:GovHydro2.pgv6", &get_GovHydro2_pgv6); - get_map.emplace("cim:GovHydro2.pmax", &get_GovHydro2_pmax); - get_map.emplace("cim:GovHydro2.pmin", &get_GovHydro2_pmin); - get_map.emplace("cim:GovHydro2.rperm", &get_GovHydro2_rperm); - get_map.emplace("cim:GovHydro2.rtemp", &get_GovHydro2_rtemp); - get_map.emplace("cim:GovHydro2.tg", &get_GovHydro2_tg); - get_map.emplace("cim:GovHydro2.tp", &get_GovHydro2_tp); - get_map.emplace("cim:GovHydro2.tr", &get_GovHydro2_tr); - get_map.emplace("cim:GovHydro2.tw", &get_GovHydro2_tw); - get_map.emplace("cim:GovHydro2.uc", &get_GovHydro2_uc); - get_map.emplace("cim:GovHydro2.uo", &get_GovHydro2_uo); + get_map.emplace("GovHydro2.aturb", &get_GovHydro2_aturb); + get_map.emplace("GovHydro2.bturb", &get_GovHydro2_bturb); + get_map.emplace("GovHydro2.db1", &get_GovHydro2_db1); + get_map.emplace("GovHydro2.db2", &get_GovHydro2_db2); + get_map.emplace("GovHydro2.eps", &get_GovHydro2_eps); + get_map.emplace("GovHydro2.gv1", &get_GovHydro2_gv1); + get_map.emplace("GovHydro2.gv2", &get_GovHydro2_gv2); + get_map.emplace("GovHydro2.gv3", &get_GovHydro2_gv3); + get_map.emplace("GovHydro2.gv4", &get_GovHydro2_gv4); + get_map.emplace("GovHydro2.gv5", &get_GovHydro2_gv5); + get_map.emplace("GovHydro2.gv6", &get_GovHydro2_gv6); + get_map.emplace("GovHydro2.kturb", &get_GovHydro2_kturb); + get_map.emplace("GovHydro2.mwbase", &get_GovHydro2_mwbase); + get_map.emplace("GovHydro2.pgv1", &get_GovHydro2_pgv1); + get_map.emplace("GovHydro2.pgv2", &get_GovHydro2_pgv2); + get_map.emplace("GovHydro2.pgv3", &get_GovHydro2_pgv3); + get_map.emplace("GovHydro2.pgv4", &get_GovHydro2_pgv4); + get_map.emplace("GovHydro2.pgv5", &get_GovHydro2_pgv5); + get_map.emplace("GovHydro2.pgv6", &get_GovHydro2_pgv6); + get_map.emplace("GovHydro2.pmax", &get_GovHydro2_pmax); + get_map.emplace("GovHydro2.pmin", &get_GovHydro2_pmin); + get_map.emplace("GovHydro2.rperm", &get_GovHydro2_rperm); + get_map.emplace("GovHydro2.rtemp", &get_GovHydro2_rtemp); + get_map.emplace("GovHydro2.tg", &get_GovHydro2_tg); + get_map.emplace("GovHydro2.tp", &get_GovHydro2_tp); + get_map.emplace("GovHydro2.tr", &get_GovHydro2_tr); + get_map.emplace("GovHydro2.tw", &get_GovHydro2_tw); + get_map.emplace("GovHydro2.uc", &get_GovHydro2_uc); + get_map.emplace("GovHydro2.uo", &get_GovHydro2_uo); } void GovHydro2::addClassGetFnsToMap(std::map& get_map) const @@ -1000,11 +1032,25 @@ void GovHydro2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro2::declare() { return BaseClassDefiner(GovHydro2::addConstructToMap, GovHydro2::addPrimitiveAssignFnsToMap, GovHydro2::addClassAssignFnsToMap, GovHydro2::debugName); } +std::map GovHydro2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro2_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydro2.hpp b/CGMES_2.4.13_18DEC2013/GovHydro2.hpp index 3919c3e7b..7ec8c11d5 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydro2.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydro2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -119,8 +120,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -128,7 +136,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydro3.cpp b/CGMES_2.4.13_18DEC2013/GovHydro3.cpp index e942b6ea1..1a78b8e6f 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydro3.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydro3.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro3.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.governorControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.h0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.relec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.rgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro3::GovHydro3() {} GovHydro3::~GovHydro3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro3.at", { CGMESProfile::DY, } }, - { "cim:GovHydro3.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro3.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro3.governorControl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydro3.h0", { CGMESProfile::DY, } }, - { "cim:GovHydro3.k1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.k2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.kg", { CGMESProfile::DY, } }, - { "cim:GovHydro3.ki", { CGMESProfile::DY, } }, - { "cim:GovHydro3.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydro3.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.relec", { CGMESProfile::DY, } }, - { "cim:GovHydro3.rgate", { CGMESProfile::DY, } }, - { "cim:GovHydro3.td", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tf", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tt", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro3.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro3_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* GovHydro3::debugString() const void GovHydro3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro3", &GovHydro3_factory); + factory_map.emplace("GovHydro3", &GovHydro3_factory); } void GovHydro3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro3.at", &assign_GovHydro3_at); - assign_map.emplace("cim:GovHydro3.db1", &assign_GovHydro3_db1); - assign_map.emplace("cim:GovHydro3.db2", &assign_GovHydro3_db2); - assign_map.emplace("cim:GovHydro3.dturb", &assign_GovHydro3_dturb); - assign_map.emplace("cim:GovHydro3.eps", &assign_GovHydro3_eps); - assign_map.emplace("cim:GovHydro3.governorControl", &assign_GovHydro3_governorControl); - assign_map.emplace("cim:GovHydro3.gv1", &assign_GovHydro3_gv1); - assign_map.emplace("cim:GovHydro3.gv2", &assign_GovHydro3_gv2); - assign_map.emplace("cim:GovHydro3.gv3", &assign_GovHydro3_gv3); - assign_map.emplace("cim:GovHydro3.gv4", &assign_GovHydro3_gv4); - assign_map.emplace("cim:GovHydro3.gv5", &assign_GovHydro3_gv5); - assign_map.emplace("cim:GovHydro3.gv6", &assign_GovHydro3_gv6); - assign_map.emplace("cim:GovHydro3.h0", &assign_GovHydro3_h0); - assign_map.emplace("cim:GovHydro3.k1", &assign_GovHydro3_k1); - assign_map.emplace("cim:GovHydro3.k2", &assign_GovHydro3_k2); - assign_map.emplace("cim:GovHydro3.kg", &assign_GovHydro3_kg); - assign_map.emplace("cim:GovHydro3.ki", &assign_GovHydro3_ki); - assign_map.emplace("cim:GovHydro3.mwbase", &assign_GovHydro3_mwbase); - assign_map.emplace("cim:GovHydro3.pgv1", &assign_GovHydro3_pgv1); - assign_map.emplace("cim:GovHydro3.pgv2", &assign_GovHydro3_pgv2); - assign_map.emplace("cim:GovHydro3.pgv3", &assign_GovHydro3_pgv3); - assign_map.emplace("cim:GovHydro3.pgv4", &assign_GovHydro3_pgv4); - assign_map.emplace("cim:GovHydro3.pgv5", &assign_GovHydro3_pgv5); - assign_map.emplace("cim:GovHydro3.pgv6", &assign_GovHydro3_pgv6); - assign_map.emplace("cim:GovHydro3.pmax", &assign_GovHydro3_pmax); - assign_map.emplace("cim:GovHydro3.pmin", &assign_GovHydro3_pmin); - assign_map.emplace("cim:GovHydro3.qnl", &assign_GovHydro3_qnl); - assign_map.emplace("cim:GovHydro3.relec", &assign_GovHydro3_relec); - assign_map.emplace("cim:GovHydro3.rgate", &assign_GovHydro3_rgate); - assign_map.emplace("cim:GovHydro3.td", &assign_GovHydro3_td); - assign_map.emplace("cim:GovHydro3.tf", &assign_GovHydro3_tf); - assign_map.emplace("cim:GovHydro3.tp", &assign_GovHydro3_tp); - assign_map.emplace("cim:GovHydro3.tt", &assign_GovHydro3_tt); - assign_map.emplace("cim:GovHydro3.tw", &assign_GovHydro3_tw); - assign_map.emplace("cim:GovHydro3.velcl", &assign_GovHydro3_velcl); - assign_map.emplace("cim:GovHydro3.velop", &assign_GovHydro3_velop); + assign_map.emplace("GovHydro3.at", &assign_GovHydro3_at); + assign_map.emplace("GovHydro3.db1", &assign_GovHydro3_db1); + assign_map.emplace("GovHydro3.db2", &assign_GovHydro3_db2); + assign_map.emplace("GovHydro3.dturb", &assign_GovHydro3_dturb); + assign_map.emplace("GovHydro3.eps", &assign_GovHydro3_eps); + assign_map.emplace("GovHydro3.governorControl", &assign_GovHydro3_governorControl); + assign_map.emplace("GovHydro3.gv1", &assign_GovHydro3_gv1); + assign_map.emplace("GovHydro3.gv2", &assign_GovHydro3_gv2); + assign_map.emplace("GovHydro3.gv3", &assign_GovHydro3_gv3); + assign_map.emplace("GovHydro3.gv4", &assign_GovHydro3_gv4); + assign_map.emplace("GovHydro3.gv5", &assign_GovHydro3_gv5); + assign_map.emplace("GovHydro3.gv6", &assign_GovHydro3_gv6); + assign_map.emplace("GovHydro3.h0", &assign_GovHydro3_h0); + assign_map.emplace("GovHydro3.k1", &assign_GovHydro3_k1); + assign_map.emplace("GovHydro3.k2", &assign_GovHydro3_k2); + assign_map.emplace("GovHydro3.kg", &assign_GovHydro3_kg); + assign_map.emplace("GovHydro3.ki", &assign_GovHydro3_ki); + assign_map.emplace("GovHydro3.mwbase", &assign_GovHydro3_mwbase); + assign_map.emplace("GovHydro3.pgv1", &assign_GovHydro3_pgv1); + assign_map.emplace("GovHydro3.pgv2", &assign_GovHydro3_pgv2); + assign_map.emplace("GovHydro3.pgv3", &assign_GovHydro3_pgv3); + assign_map.emplace("GovHydro3.pgv4", &assign_GovHydro3_pgv4); + assign_map.emplace("GovHydro3.pgv5", &assign_GovHydro3_pgv5); + assign_map.emplace("GovHydro3.pgv6", &assign_GovHydro3_pgv6); + assign_map.emplace("GovHydro3.pmax", &assign_GovHydro3_pmax); + assign_map.emplace("GovHydro3.pmin", &assign_GovHydro3_pmin); + assign_map.emplace("GovHydro3.qnl", &assign_GovHydro3_qnl); + assign_map.emplace("GovHydro3.relec", &assign_GovHydro3_relec); + assign_map.emplace("GovHydro3.rgate", &assign_GovHydro3_rgate); + assign_map.emplace("GovHydro3.td", &assign_GovHydro3_td); + assign_map.emplace("GovHydro3.tf", &assign_GovHydro3_tf); + assign_map.emplace("GovHydro3.tp", &assign_GovHydro3_tp); + assign_map.emplace("GovHydro3.tt", &assign_GovHydro3_tt); + assign_map.emplace("GovHydro3.tw", &assign_GovHydro3_tw); + assign_map.emplace("GovHydro3.velcl", &assign_GovHydro3_velcl); + assign_map.emplace("GovHydro3.velop", &assign_GovHydro3_velop); } void GovHydro3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,42 +1208,42 @@ void GovHydro3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro3.at", &get_GovHydro3_at); - get_map.emplace("cim:GovHydro3.db1", &get_GovHydro3_db1); - get_map.emplace("cim:GovHydro3.db2", &get_GovHydro3_db2); - get_map.emplace("cim:GovHydro3.dturb", &get_GovHydro3_dturb); - get_map.emplace("cim:GovHydro3.eps", &get_GovHydro3_eps); - get_map.emplace("cim:GovHydro3.governorControl", &get_GovHydro3_governorControl); - get_map.emplace("cim:GovHydro3.gv1", &get_GovHydro3_gv1); - get_map.emplace("cim:GovHydro3.gv2", &get_GovHydro3_gv2); - get_map.emplace("cim:GovHydro3.gv3", &get_GovHydro3_gv3); - get_map.emplace("cim:GovHydro3.gv4", &get_GovHydro3_gv4); - get_map.emplace("cim:GovHydro3.gv5", &get_GovHydro3_gv5); - get_map.emplace("cim:GovHydro3.gv6", &get_GovHydro3_gv6); - get_map.emplace("cim:GovHydro3.h0", &get_GovHydro3_h0); - get_map.emplace("cim:GovHydro3.k1", &get_GovHydro3_k1); - get_map.emplace("cim:GovHydro3.k2", &get_GovHydro3_k2); - get_map.emplace("cim:GovHydro3.kg", &get_GovHydro3_kg); - get_map.emplace("cim:GovHydro3.ki", &get_GovHydro3_ki); - get_map.emplace("cim:GovHydro3.mwbase", &get_GovHydro3_mwbase); - get_map.emplace("cim:GovHydro3.pgv1", &get_GovHydro3_pgv1); - get_map.emplace("cim:GovHydro3.pgv2", &get_GovHydro3_pgv2); - get_map.emplace("cim:GovHydro3.pgv3", &get_GovHydro3_pgv3); - get_map.emplace("cim:GovHydro3.pgv4", &get_GovHydro3_pgv4); - get_map.emplace("cim:GovHydro3.pgv5", &get_GovHydro3_pgv5); - get_map.emplace("cim:GovHydro3.pgv6", &get_GovHydro3_pgv6); - get_map.emplace("cim:GovHydro3.pmax", &get_GovHydro3_pmax); - get_map.emplace("cim:GovHydro3.pmin", &get_GovHydro3_pmin); - get_map.emplace("cim:GovHydro3.qnl", &get_GovHydro3_qnl); - get_map.emplace("cim:GovHydro3.relec", &get_GovHydro3_relec); - get_map.emplace("cim:GovHydro3.rgate", &get_GovHydro3_rgate); - get_map.emplace("cim:GovHydro3.td", &get_GovHydro3_td); - get_map.emplace("cim:GovHydro3.tf", &get_GovHydro3_tf); - get_map.emplace("cim:GovHydro3.tp", &get_GovHydro3_tp); - get_map.emplace("cim:GovHydro3.tt", &get_GovHydro3_tt); - get_map.emplace("cim:GovHydro3.tw", &get_GovHydro3_tw); - get_map.emplace("cim:GovHydro3.velcl", &get_GovHydro3_velcl); - get_map.emplace("cim:GovHydro3.velop", &get_GovHydro3_velop); + get_map.emplace("GovHydro3.at", &get_GovHydro3_at); + get_map.emplace("GovHydro3.db1", &get_GovHydro3_db1); + get_map.emplace("GovHydro3.db2", &get_GovHydro3_db2); + get_map.emplace("GovHydro3.dturb", &get_GovHydro3_dturb); + get_map.emplace("GovHydro3.eps", &get_GovHydro3_eps); + get_map.emplace("GovHydro3.governorControl", &get_GovHydro3_governorControl); + get_map.emplace("GovHydro3.gv1", &get_GovHydro3_gv1); + get_map.emplace("GovHydro3.gv2", &get_GovHydro3_gv2); + get_map.emplace("GovHydro3.gv3", &get_GovHydro3_gv3); + get_map.emplace("GovHydro3.gv4", &get_GovHydro3_gv4); + get_map.emplace("GovHydro3.gv5", &get_GovHydro3_gv5); + get_map.emplace("GovHydro3.gv6", &get_GovHydro3_gv6); + get_map.emplace("GovHydro3.h0", &get_GovHydro3_h0); + get_map.emplace("GovHydro3.k1", &get_GovHydro3_k1); + get_map.emplace("GovHydro3.k2", &get_GovHydro3_k2); + get_map.emplace("GovHydro3.kg", &get_GovHydro3_kg); + get_map.emplace("GovHydro3.ki", &get_GovHydro3_ki); + get_map.emplace("GovHydro3.mwbase", &get_GovHydro3_mwbase); + get_map.emplace("GovHydro3.pgv1", &get_GovHydro3_pgv1); + get_map.emplace("GovHydro3.pgv2", &get_GovHydro3_pgv2); + get_map.emplace("GovHydro3.pgv3", &get_GovHydro3_pgv3); + get_map.emplace("GovHydro3.pgv4", &get_GovHydro3_pgv4); + get_map.emplace("GovHydro3.pgv5", &get_GovHydro3_pgv5); + get_map.emplace("GovHydro3.pgv6", &get_GovHydro3_pgv6); + get_map.emplace("GovHydro3.pmax", &get_GovHydro3_pmax); + get_map.emplace("GovHydro3.pmin", &get_GovHydro3_pmin); + get_map.emplace("GovHydro3.qnl", &get_GovHydro3_qnl); + get_map.emplace("GovHydro3.relec", &get_GovHydro3_relec); + get_map.emplace("GovHydro3.rgate", &get_GovHydro3_rgate); + get_map.emplace("GovHydro3.td", &get_GovHydro3_td); + get_map.emplace("GovHydro3.tf", &get_GovHydro3_tf); + get_map.emplace("GovHydro3.tp", &get_GovHydro3_tp); + get_map.emplace("GovHydro3.tt", &get_GovHydro3_tt); + get_map.emplace("GovHydro3.tw", &get_GovHydro3_tw); + get_map.emplace("GovHydro3.velcl", &get_GovHydro3_velcl); + get_map.emplace("GovHydro3.velop", &get_GovHydro3_velop); } void GovHydro3::addClassGetFnsToMap(std::map& get_map) const @@ -1224,11 +1256,25 @@ void GovHydro3::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro3::declare() { return BaseClassDefiner(GovHydro3::addConstructToMap, GovHydro3::addPrimitiveAssignFnsToMap, GovHydro3::addClassAssignFnsToMap, GovHydro3::debugName); } +std::map GovHydro3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro3_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydro3.hpp b/CGMES_2.4.13_18DEC2013/GovHydro3.hpp index d3e458631..ce2158f11 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydro3.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydro3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -141,8 +142,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -150,7 +158,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro3_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydro4.cpp b/CGMES_2.4.13_18DEC2013/GovHydro4.cpp index 4a841df9c..d2689abe8 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydro4.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydro4.cpp @@ -11,69 +11,101 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro4.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.hdam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.qn1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tblade", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro4::GovHydro4() {} GovHydro4::~GovHydro4() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro4.at", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bmax", { CGMESProfile::DY, } }, - { "cim:GovHydro4.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro4.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.hdam", { CGMESProfile::DY, } }, - { "cim:GovHydro4.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.qn1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro4.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tblade", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro4.uc", { CGMESProfile::DY, } }, - { "cim:GovHydro4.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro4::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro4::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro4::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro4::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro4::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro4::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro4_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1186,49 +1218,49 @@ const char* GovHydro4::debugString() const void GovHydro4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro4", &GovHydro4_factory); + factory_map.emplace("GovHydro4", &GovHydro4_factory); } void GovHydro4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro4.at", &assign_GovHydro4_at); - assign_map.emplace("cim:GovHydro4.bgv0", &assign_GovHydro4_bgv0); - assign_map.emplace("cim:GovHydro4.bgv1", &assign_GovHydro4_bgv1); - assign_map.emplace("cim:GovHydro4.bgv2", &assign_GovHydro4_bgv2); - assign_map.emplace("cim:GovHydro4.bgv3", &assign_GovHydro4_bgv3); - assign_map.emplace("cim:GovHydro4.bgv4", &assign_GovHydro4_bgv4); - assign_map.emplace("cim:GovHydro4.bgv5", &assign_GovHydro4_bgv5); - assign_map.emplace("cim:GovHydro4.bmax", &assign_GovHydro4_bmax); - assign_map.emplace("cim:GovHydro4.db1", &assign_GovHydro4_db1); - assign_map.emplace("cim:GovHydro4.db2", &assign_GovHydro4_db2); - assign_map.emplace("cim:GovHydro4.dturb", &assign_GovHydro4_dturb); - assign_map.emplace("cim:GovHydro4.eps", &assign_GovHydro4_eps); - assign_map.emplace("cim:GovHydro4.gmax", &assign_GovHydro4_gmax); - assign_map.emplace("cim:GovHydro4.gmin", &assign_GovHydro4_gmin); - assign_map.emplace("cim:GovHydro4.gv0", &assign_GovHydro4_gv0); - assign_map.emplace("cim:GovHydro4.gv1", &assign_GovHydro4_gv1); - assign_map.emplace("cim:GovHydro4.gv2", &assign_GovHydro4_gv2); - assign_map.emplace("cim:GovHydro4.gv3", &assign_GovHydro4_gv3); - assign_map.emplace("cim:GovHydro4.gv4", &assign_GovHydro4_gv4); - assign_map.emplace("cim:GovHydro4.gv5", &assign_GovHydro4_gv5); - assign_map.emplace("cim:GovHydro4.hdam", &assign_GovHydro4_hdam); - assign_map.emplace("cim:GovHydro4.mwbase", &assign_GovHydro4_mwbase); - assign_map.emplace("cim:GovHydro4.pgv0", &assign_GovHydro4_pgv0); - assign_map.emplace("cim:GovHydro4.pgv1", &assign_GovHydro4_pgv1); - assign_map.emplace("cim:GovHydro4.pgv2", &assign_GovHydro4_pgv2); - assign_map.emplace("cim:GovHydro4.pgv3", &assign_GovHydro4_pgv3); - assign_map.emplace("cim:GovHydro4.pgv4", &assign_GovHydro4_pgv4); - assign_map.emplace("cim:GovHydro4.pgv5", &assign_GovHydro4_pgv5); - assign_map.emplace("cim:GovHydro4.qn1", &assign_GovHydro4_qn1); - assign_map.emplace("cim:GovHydro4.rperm", &assign_GovHydro4_rperm); - assign_map.emplace("cim:GovHydro4.rtemp", &assign_GovHydro4_rtemp); - assign_map.emplace("cim:GovHydro4.tblade", &assign_GovHydro4_tblade); - assign_map.emplace("cim:GovHydro4.tg", &assign_GovHydro4_tg); - assign_map.emplace("cim:GovHydro4.tp", &assign_GovHydro4_tp); - assign_map.emplace("cim:GovHydro4.tr", &assign_GovHydro4_tr); - assign_map.emplace("cim:GovHydro4.tw", &assign_GovHydro4_tw); - assign_map.emplace("cim:GovHydro4.uc", &assign_GovHydro4_uc); - assign_map.emplace("cim:GovHydro4.uo", &assign_GovHydro4_uo); + assign_map.emplace("GovHydro4.at", &assign_GovHydro4_at); + assign_map.emplace("GovHydro4.bgv0", &assign_GovHydro4_bgv0); + assign_map.emplace("GovHydro4.bgv1", &assign_GovHydro4_bgv1); + assign_map.emplace("GovHydro4.bgv2", &assign_GovHydro4_bgv2); + assign_map.emplace("GovHydro4.bgv3", &assign_GovHydro4_bgv3); + assign_map.emplace("GovHydro4.bgv4", &assign_GovHydro4_bgv4); + assign_map.emplace("GovHydro4.bgv5", &assign_GovHydro4_bgv5); + assign_map.emplace("GovHydro4.bmax", &assign_GovHydro4_bmax); + assign_map.emplace("GovHydro4.db1", &assign_GovHydro4_db1); + assign_map.emplace("GovHydro4.db2", &assign_GovHydro4_db2); + assign_map.emplace("GovHydro4.dturb", &assign_GovHydro4_dturb); + assign_map.emplace("GovHydro4.eps", &assign_GovHydro4_eps); + assign_map.emplace("GovHydro4.gmax", &assign_GovHydro4_gmax); + assign_map.emplace("GovHydro4.gmin", &assign_GovHydro4_gmin); + assign_map.emplace("GovHydro4.gv0", &assign_GovHydro4_gv0); + assign_map.emplace("GovHydro4.gv1", &assign_GovHydro4_gv1); + assign_map.emplace("GovHydro4.gv2", &assign_GovHydro4_gv2); + assign_map.emplace("GovHydro4.gv3", &assign_GovHydro4_gv3); + assign_map.emplace("GovHydro4.gv4", &assign_GovHydro4_gv4); + assign_map.emplace("GovHydro4.gv5", &assign_GovHydro4_gv5); + assign_map.emplace("GovHydro4.hdam", &assign_GovHydro4_hdam); + assign_map.emplace("GovHydro4.mwbase", &assign_GovHydro4_mwbase); + assign_map.emplace("GovHydro4.pgv0", &assign_GovHydro4_pgv0); + assign_map.emplace("GovHydro4.pgv1", &assign_GovHydro4_pgv1); + assign_map.emplace("GovHydro4.pgv2", &assign_GovHydro4_pgv2); + assign_map.emplace("GovHydro4.pgv3", &assign_GovHydro4_pgv3); + assign_map.emplace("GovHydro4.pgv4", &assign_GovHydro4_pgv4); + assign_map.emplace("GovHydro4.pgv5", &assign_GovHydro4_pgv5); + assign_map.emplace("GovHydro4.qn1", &assign_GovHydro4_qn1); + assign_map.emplace("GovHydro4.rperm", &assign_GovHydro4_rperm); + assign_map.emplace("GovHydro4.rtemp", &assign_GovHydro4_rtemp); + assign_map.emplace("GovHydro4.tblade", &assign_GovHydro4_tblade); + assign_map.emplace("GovHydro4.tg", &assign_GovHydro4_tg); + assign_map.emplace("GovHydro4.tp", &assign_GovHydro4_tp); + assign_map.emplace("GovHydro4.tr", &assign_GovHydro4_tr); + assign_map.emplace("GovHydro4.tw", &assign_GovHydro4_tw); + assign_map.emplace("GovHydro4.uc", &assign_GovHydro4_uc); + assign_map.emplace("GovHydro4.uo", &assign_GovHydro4_uo); } void GovHydro4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1238,44 +1270,44 @@ void GovHydro4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro4.at", &get_GovHydro4_at); - get_map.emplace("cim:GovHydro4.bgv0", &get_GovHydro4_bgv0); - get_map.emplace("cim:GovHydro4.bgv1", &get_GovHydro4_bgv1); - get_map.emplace("cim:GovHydro4.bgv2", &get_GovHydro4_bgv2); - get_map.emplace("cim:GovHydro4.bgv3", &get_GovHydro4_bgv3); - get_map.emplace("cim:GovHydro4.bgv4", &get_GovHydro4_bgv4); - get_map.emplace("cim:GovHydro4.bgv5", &get_GovHydro4_bgv5); - get_map.emplace("cim:GovHydro4.bmax", &get_GovHydro4_bmax); - get_map.emplace("cim:GovHydro4.db1", &get_GovHydro4_db1); - get_map.emplace("cim:GovHydro4.db2", &get_GovHydro4_db2); - get_map.emplace("cim:GovHydro4.dturb", &get_GovHydro4_dturb); - get_map.emplace("cim:GovHydro4.eps", &get_GovHydro4_eps); - get_map.emplace("cim:GovHydro4.gmax", &get_GovHydro4_gmax); - get_map.emplace("cim:GovHydro4.gmin", &get_GovHydro4_gmin); - get_map.emplace("cim:GovHydro4.gv0", &get_GovHydro4_gv0); - get_map.emplace("cim:GovHydro4.gv1", &get_GovHydro4_gv1); - get_map.emplace("cim:GovHydro4.gv2", &get_GovHydro4_gv2); - get_map.emplace("cim:GovHydro4.gv3", &get_GovHydro4_gv3); - get_map.emplace("cim:GovHydro4.gv4", &get_GovHydro4_gv4); - get_map.emplace("cim:GovHydro4.gv5", &get_GovHydro4_gv5); - get_map.emplace("cim:GovHydro4.hdam", &get_GovHydro4_hdam); - get_map.emplace("cim:GovHydro4.mwbase", &get_GovHydro4_mwbase); - get_map.emplace("cim:GovHydro4.pgv0", &get_GovHydro4_pgv0); - get_map.emplace("cim:GovHydro4.pgv1", &get_GovHydro4_pgv1); - get_map.emplace("cim:GovHydro4.pgv2", &get_GovHydro4_pgv2); - get_map.emplace("cim:GovHydro4.pgv3", &get_GovHydro4_pgv3); - get_map.emplace("cim:GovHydro4.pgv4", &get_GovHydro4_pgv4); - get_map.emplace("cim:GovHydro4.pgv5", &get_GovHydro4_pgv5); - get_map.emplace("cim:GovHydro4.qn1", &get_GovHydro4_qn1); - get_map.emplace("cim:GovHydro4.rperm", &get_GovHydro4_rperm); - get_map.emplace("cim:GovHydro4.rtemp", &get_GovHydro4_rtemp); - get_map.emplace("cim:GovHydro4.tblade", &get_GovHydro4_tblade); - get_map.emplace("cim:GovHydro4.tg", &get_GovHydro4_tg); - get_map.emplace("cim:GovHydro4.tp", &get_GovHydro4_tp); - get_map.emplace("cim:GovHydro4.tr", &get_GovHydro4_tr); - get_map.emplace("cim:GovHydro4.tw", &get_GovHydro4_tw); - get_map.emplace("cim:GovHydro4.uc", &get_GovHydro4_uc); - get_map.emplace("cim:GovHydro4.uo", &get_GovHydro4_uo); + get_map.emplace("GovHydro4.at", &get_GovHydro4_at); + get_map.emplace("GovHydro4.bgv0", &get_GovHydro4_bgv0); + get_map.emplace("GovHydro4.bgv1", &get_GovHydro4_bgv1); + get_map.emplace("GovHydro4.bgv2", &get_GovHydro4_bgv2); + get_map.emplace("GovHydro4.bgv3", &get_GovHydro4_bgv3); + get_map.emplace("GovHydro4.bgv4", &get_GovHydro4_bgv4); + get_map.emplace("GovHydro4.bgv5", &get_GovHydro4_bgv5); + get_map.emplace("GovHydro4.bmax", &get_GovHydro4_bmax); + get_map.emplace("GovHydro4.db1", &get_GovHydro4_db1); + get_map.emplace("GovHydro4.db2", &get_GovHydro4_db2); + get_map.emplace("GovHydro4.dturb", &get_GovHydro4_dturb); + get_map.emplace("GovHydro4.eps", &get_GovHydro4_eps); + get_map.emplace("GovHydro4.gmax", &get_GovHydro4_gmax); + get_map.emplace("GovHydro4.gmin", &get_GovHydro4_gmin); + get_map.emplace("GovHydro4.gv0", &get_GovHydro4_gv0); + get_map.emplace("GovHydro4.gv1", &get_GovHydro4_gv1); + get_map.emplace("GovHydro4.gv2", &get_GovHydro4_gv2); + get_map.emplace("GovHydro4.gv3", &get_GovHydro4_gv3); + get_map.emplace("GovHydro4.gv4", &get_GovHydro4_gv4); + get_map.emplace("GovHydro4.gv5", &get_GovHydro4_gv5); + get_map.emplace("GovHydro4.hdam", &get_GovHydro4_hdam); + get_map.emplace("GovHydro4.mwbase", &get_GovHydro4_mwbase); + get_map.emplace("GovHydro4.pgv0", &get_GovHydro4_pgv0); + get_map.emplace("GovHydro4.pgv1", &get_GovHydro4_pgv1); + get_map.emplace("GovHydro4.pgv2", &get_GovHydro4_pgv2); + get_map.emplace("GovHydro4.pgv3", &get_GovHydro4_pgv3); + get_map.emplace("GovHydro4.pgv4", &get_GovHydro4_pgv4); + get_map.emplace("GovHydro4.pgv5", &get_GovHydro4_pgv5); + get_map.emplace("GovHydro4.qn1", &get_GovHydro4_qn1); + get_map.emplace("GovHydro4.rperm", &get_GovHydro4_rperm); + get_map.emplace("GovHydro4.rtemp", &get_GovHydro4_rtemp); + get_map.emplace("GovHydro4.tblade", &get_GovHydro4_tblade); + get_map.emplace("GovHydro4.tg", &get_GovHydro4_tg); + get_map.emplace("GovHydro4.tp", &get_GovHydro4_tp); + get_map.emplace("GovHydro4.tr", &get_GovHydro4_tr); + get_map.emplace("GovHydro4.tw", &get_GovHydro4_tw); + get_map.emplace("GovHydro4.uc", &get_GovHydro4_uc); + get_map.emplace("GovHydro4.uo", &get_GovHydro4_uo); } void GovHydro4::addClassGetFnsToMap(std::map& get_map) const @@ -1288,11 +1320,25 @@ void GovHydro4::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro4::declare() { return BaseClassDefiner(GovHydro4::addConstructToMap, GovHydro4::addPrimitiveAssignFnsToMap, GovHydro4::addClassAssignFnsToMap, GovHydro4::debugName); } +std::map GovHydro4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro4_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydro4.hpp b/CGMES_2.4.13_18DEC2013/GovHydro4.hpp index f5165645e..42ec8a76a 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydro4.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydro4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -146,8 +147,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -155,7 +163,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro4_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroDD.cpp b/CGMES_2.4.13_18DEC2013/GovHydroDD.cpp index c7efe476c..765ab78e4 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroDD.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroDD.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroDD(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroDD.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroDD::GovHydroDD() {} GovHydroDD::~GovHydroDD() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroDD.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.k1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.k2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.r", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.td", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tf", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroDD::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroDD::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroDD::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroDD::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroDD::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroDD::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroDD::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroDD::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroDD::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroDD_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovHydroDD::debugString() const void GovHydroDD::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroDD", &GovHydroDD_factory); + factory_map.emplace("GovHydroDD", &GovHydroDD_factory); } void GovHydroDD::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroDD.aturb", &assign_GovHydroDD_aturb); - assign_map.emplace("cim:GovHydroDD.bturb", &assign_GovHydroDD_bturb); - assign_map.emplace("cim:GovHydroDD.db1", &assign_GovHydroDD_db1); - assign_map.emplace("cim:GovHydroDD.db2", &assign_GovHydroDD_db2); - assign_map.emplace("cim:GovHydroDD.eps", &assign_GovHydroDD_eps); - assign_map.emplace("cim:GovHydroDD.gmax", &assign_GovHydroDD_gmax); - assign_map.emplace("cim:GovHydroDD.gmin", &assign_GovHydroDD_gmin); - assign_map.emplace("cim:GovHydroDD.gv1", &assign_GovHydroDD_gv1); - assign_map.emplace("cim:GovHydroDD.gv2", &assign_GovHydroDD_gv2); - assign_map.emplace("cim:GovHydroDD.gv3", &assign_GovHydroDD_gv3); - assign_map.emplace("cim:GovHydroDD.gv4", &assign_GovHydroDD_gv4); - assign_map.emplace("cim:GovHydroDD.gv5", &assign_GovHydroDD_gv5); - assign_map.emplace("cim:GovHydroDD.gv6", &assign_GovHydroDD_gv6); - assign_map.emplace("cim:GovHydroDD.inputSignal", &assign_GovHydroDD_inputSignal); - assign_map.emplace("cim:GovHydroDD.k1", &assign_GovHydroDD_k1); - assign_map.emplace("cim:GovHydroDD.k2", &assign_GovHydroDD_k2); - assign_map.emplace("cim:GovHydroDD.kg", &assign_GovHydroDD_kg); - assign_map.emplace("cim:GovHydroDD.ki", &assign_GovHydroDD_ki); - assign_map.emplace("cim:GovHydroDD.mwbase", &assign_GovHydroDD_mwbase); - assign_map.emplace("cim:GovHydroDD.pgv1", &assign_GovHydroDD_pgv1); - assign_map.emplace("cim:GovHydroDD.pgv2", &assign_GovHydroDD_pgv2); - assign_map.emplace("cim:GovHydroDD.pgv3", &assign_GovHydroDD_pgv3); - assign_map.emplace("cim:GovHydroDD.pgv4", &assign_GovHydroDD_pgv4); - assign_map.emplace("cim:GovHydroDD.pgv5", &assign_GovHydroDD_pgv5); - assign_map.emplace("cim:GovHydroDD.pgv6", &assign_GovHydroDD_pgv6); - assign_map.emplace("cim:GovHydroDD.pmax", &assign_GovHydroDD_pmax); - assign_map.emplace("cim:GovHydroDD.pmin", &assign_GovHydroDD_pmin); - assign_map.emplace("cim:GovHydroDD.r", &assign_GovHydroDD_r); - assign_map.emplace("cim:GovHydroDD.td", &assign_GovHydroDD_td); - assign_map.emplace("cim:GovHydroDD.tf", &assign_GovHydroDD_tf); - assign_map.emplace("cim:GovHydroDD.tp", &assign_GovHydroDD_tp); - assign_map.emplace("cim:GovHydroDD.tt", &assign_GovHydroDD_tt); - assign_map.emplace("cim:GovHydroDD.tturb", &assign_GovHydroDD_tturb); - assign_map.emplace("cim:GovHydroDD.velcl", &assign_GovHydroDD_velcl); - assign_map.emplace("cim:GovHydroDD.velop", &assign_GovHydroDD_velop); + assign_map.emplace("GovHydroDD.aturb", &assign_GovHydroDD_aturb); + assign_map.emplace("GovHydroDD.bturb", &assign_GovHydroDD_bturb); + assign_map.emplace("GovHydroDD.db1", &assign_GovHydroDD_db1); + assign_map.emplace("GovHydroDD.db2", &assign_GovHydroDD_db2); + assign_map.emplace("GovHydroDD.eps", &assign_GovHydroDD_eps); + assign_map.emplace("GovHydroDD.gmax", &assign_GovHydroDD_gmax); + assign_map.emplace("GovHydroDD.gmin", &assign_GovHydroDD_gmin); + assign_map.emplace("GovHydroDD.gv1", &assign_GovHydroDD_gv1); + assign_map.emplace("GovHydroDD.gv2", &assign_GovHydroDD_gv2); + assign_map.emplace("GovHydroDD.gv3", &assign_GovHydroDD_gv3); + assign_map.emplace("GovHydroDD.gv4", &assign_GovHydroDD_gv4); + assign_map.emplace("GovHydroDD.gv5", &assign_GovHydroDD_gv5); + assign_map.emplace("GovHydroDD.gv6", &assign_GovHydroDD_gv6); + assign_map.emplace("GovHydroDD.inputSignal", &assign_GovHydroDD_inputSignal); + assign_map.emplace("GovHydroDD.k1", &assign_GovHydroDD_k1); + assign_map.emplace("GovHydroDD.k2", &assign_GovHydroDD_k2); + assign_map.emplace("GovHydroDD.kg", &assign_GovHydroDD_kg); + assign_map.emplace("GovHydroDD.ki", &assign_GovHydroDD_ki); + assign_map.emplace("GovHydroDD.mwbase", &assign_GovHydroDD_mwbase); + assign_map.emplace("GovHydroDD.pgv1", &assign_GovHydroDD_pgv1); + assign_map.emplace("GovHydroDD.pgv2", &assign_GovHydroDD_pgv2); + assign_map.emplace("GovHydroDD.pgv3", &assign_GovHydroDD_pgv3); + assign_map.emplace("GovHydroDD.pgv4", &assign_GovHydroDD_pgv4); + assign_map.emplace("GovHydroDD.pgv5", &assign_GovHydroDD_pgv5); + assign_map.emplace("GovHydroDD.pgv6", &assign_GovHydroDD_pgv6); + assign_map.emplace("GovHydroDD.pmax", &assign_GovHydroDD_pmax); + assign_map.emplace("GovHydroDD.pmin", &assign_GovHydroDD_pmin); + assign_map.emplace("GovHydroDD.r", &assign_GovHydroDD_r); + assign_map.emplace("GovHydroDD.td", &assign_GovHydroDD_td); + assign_map.emplace("GovHydroDD.tf", &assign_GovHydroDD_tf); + assign_map.emplace("GovHydroDD.tp", &assign_GovHydroDD_tp); + assign_map.emplace("GovHydroDD.tt", &assign_GovHydroDD_tt); + assign_map.emplace("GovHydroDD.tturb", &assign_GovHydroDD_tturb); + assign_map.emplace("GovHydroDD.velcl", &assign_GovHydroDD_velcl); + assign_map.emplace("GovHydroDD.velop", &assign_GovHydroDD_velop); } void GovHydroDD::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,41 +1177,41 @@ void GovHydroDD::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroDD.aturb", &get_GovHydroDD_aturb); - get_map.emplace("cim:GovHydroDD.bturb", &get_GovHydroDD_bturb); - get_map.emplace("cim:GovHydroDD.db1", &get_GovHydroDD_db1); - get_map.emplace("cim:GovHydroDD.db2", &get_GovHydroDD_db2); - get_map.emplace("cim:GovHydroDD.eps", &get_GovHydroDD_eps); - get_map.emplace("cim:GovHydroDD.gmax", &get_GovHydroDD_gmax); - get_map.emplace("cim:GovHydroDD.gmin", &get_GovHydroDD_gmin); - get_map.emplace("cim:GovHydroDD.gv1", &get_GovHydroDD_gv1); - get_map.emplace("cim:GovHydroDD.gv2", &get_GovHydroDD_gv2); - get_map.emplace("cim:GovHydroDD.gv3", &get_GovHydroDD_gv3); - get_map.emplace("cim:GovHydroDD.gv4", &get_GovHydroDD_gv4); - get_map.emplace("cim:GovHydroDD.gv5", &get_GovHydroDD_gv5); - get_map.emplace("cim:GovHydroDD.gv6", &get_GovHydroDD_gv6); - get_map.emplace("cim:GovHydroDD.inputSignal", &get_GovHydroDD_inputSignal); - get_map.emplace("cim:GovHydroDD.k1", &get_GovHydroDD_k1); - get_map.emplace("cim:GovHydroDD.k2", &get_GovHydroDD_k2); - get_map.emplace("cim:GovHydroDD.kg", &get_GovHydroDD_kg); - get_map.emplace("cim:GovHydroDD.ki", &get_GovHydroDD_ki); - get_map.emplace("cim:GovHydroDD.mwbase", &get_GovHydroDD_mwbase); - get_map.emplace("cim:GovHydroDD.pgv1", &get_GovHydroDD_pgv1); - get_map.emplace("cim:GovHydroDD.pgv2", &get_GovHydroDD_pgv2); - get_map.emplace("cim:GovHydroDD.pgv3", &get_GovHydroDD_pgv3); - get_map.emplace("cim:GovHydroDD.pgv4", &get_GovHydroDD_pgv4); - get_map.emplace("cim:GovHydroDD.pgv5", &get_GovHydroDD_pgv5); - get_map.emplace("cim:GovHydroDD.pgv6", &get_GovHydroDD_pgv6); - get_map.emplace("cim:GovHydroDD.pmax", &get_GovHydroDD_pmax); - get_map.emplace("cim:GovHydroDD.pmin", &get_GovHydroDD_pmin); - get_map.emplace("cim:GovHydroDD.r", &get_GovHydroDD_r); - get_map.emplace("cim:GovHydroDD.td", &get_GovHydroDD_td); - get_map.emplace("cim:GovHydroDD.tf", &get_GovHydroDD_tf); - get_map.emplace("cim:GovHydroDD.tp", &get_GovHydroDD_tp); - get_map.emplace("cim:GovHydroDD.tt", &get_GovHydroDD_tt); - get_map.emplace("cim:GovHydroDD.tturb", &get_GovHydroDD_tturb); - get_map.emplace("cim:GovHydroDD.velcl", &get_GovHydroDD_velcl); - get_map.emplace("cim:GovHydroDD.velop", &get_GovHydroDD_velop); + get_map.emplace("GovHydroDD.aturb", &get_GovHydroDD_aturb); + get_map.emplace("GovHydroDD.bturb", &get_GovHydroDD_bturb); + get_map.emplace("GovHydroDD.db1", &get_GovHydroDD_db1); + get_map.emplace("GovHydroDD.db2", &get_GovHydroDD_db2); + get_map.emplace("GovHydroDD.eps", &get_GovHydroDD_eps); + get_map.emplace("GovHydroDD.gmax", &get_GovHydroDD_gmax); + get_map.emplace("GovHydroDD.gmin", &get_GovHydroDD_gmin); + get_map.emplace("GovHydroDD.gv1", &get_GovHydroDD_gv1); + get_map.emplace("GovHydroDD.gv2", &get_GovHydroDD_gv2); + get_map.emplace("GovHydroDD.gv3", &get_GovHydroDD_gv3); + get_map.emplace("GovHydroDD.gv4", &get_GovHydroDD_gv4); + get_map.emplace("GovHydroDD.gv5", &get_GovHydroDD_gv5); + get_map.emplace("GovHydroDD.gv6", &get_GovHydroDD_gv6); + get_map.emplace("GovHydroDD.inputSignal", &get_GovHydroDD_inputSignal); + get_map.emplace("GovHydroDD.k1", &get_GovHydroDD_k1); + get_map.emplace("GovHydroDD.k2", &get_GovHydroDD_k2); + get_map.emplace("GovHydroDD.kg", &get_GovHydroDD_kg); + get_map.emplace("GovHydroDD.ki", &get_GovHydroDD_ki); + get_map.emplace("GovHydroDD.mwbase", &get_GovHydroDD_mwbase); + get_map.emplace("GovHydroDD.pgv1", &get_GovHydroDD_pgv1); + get_map.emplace("GovHydroDD.pgv2", &get_GovHydroDD_pgv2); + get_map.emplace("GovHydroDD.pgv3", &get_GovHydroDD_pgv3); + get_map.emplace("GovHydroDD.pgv4", &get_GovHydroDD_pgv4); + get_map.emplace("GovHydroDD.pgv5", &get_GovHydroDD_pgv5); + get_map.emplace("GovHydroDD.pgv6", &get_GovHydroDD_pgv6); + get_map.emplace("GovHydroDD.pmax", &get_GovHydroDD_pmax); + get_map.emplace("GovHydroDD.pmin", &get_GovHydroDD_pmin); + get_map.emplace("GovHydroDD.r", &get_GovHydroDD_r); + get_map.emplace("GovHydroDD.td", &get_GovHydroDD_td); + get_map.emplace("GovHydroDD.tf", &get_GovHydroDD_tf); + get_map.emplace("GovHydroDD.tp", &get_GovHydroDD_tp); + get_map.emplace("GovHydroDD.tt", &get_GovHydroDD_tt); + get_map.emplace("GovHydroDD.tturb", &get_GovHydroDD_tturb); + get_map.emplace("GovHydroDD.velcl", &get_GovHydroDD_velcl); + get_map.emplace("GovHydroDD.velop", &get_GovHydroDD_velop); } void GovHydroDD::addClassGetFnsToMap(std::map& get_map) const @@ -1192,11 +1224,25 @@ void GovHydroDD::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroDD::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroDD" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroDD::declare() { return BaseClassDefiner(GovHydroDD::addConstructToMap, GovHydroDD::addPrimitiveAssignFnsToMap, GovHydroDD::addClassAssignFnsToMap, GovHydroDD::debugName); } +std::map GovHydroDD::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroDD_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroDD.hpp b/CGMES_2.4.13_18DEC2013/GovHydroDD.hpp index cca2ca2c0..f6430b09b 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroDD.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroDD.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroDD_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroFrancis.cpp b/CGMES_2.4.13_18DEC2013/GovHydroFrancis.cpp index 92cca504b..88a2c3c72 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroFrancis.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroFrancis.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroFrancis(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroFrancis.am", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.av0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.av1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.etamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.governorControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.h1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.h2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.hn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.qc0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.qn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.twnc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.twng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.tx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.va", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.valvmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.valvmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.vc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.waterTunnelSurgeChamberSimulation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.zsfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroFrancis::GovHydroFrancis() {} GovHydroFrancis::~GovHydroFrancis() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroFrancis.am", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.av0", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.av1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.bp", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.etamax", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.governorControl", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.h1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.h2", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.hn", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kt", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.qc0", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.qn", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.td", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.ts", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.twnc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.twng", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.tx", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.va", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.valvmax", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.valvmin", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.vc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.zsfc", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroFrancis::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroFrancis::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroFrancis::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroFrancis::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroFrancis::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroFrancis::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroFrancis::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroFrancis::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroFrancis::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroFrancis_am(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* GovHydroFrancis::debugString() const void GovHydroFrancis::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroFrancis", &GovHydroFrancis_factory); + factory_map.emplace("GovHydroFrancis", &GovHydroFrancis_factory); } void GovHydroFrancis::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroFrancis.am", &assign_GovHydroFrancis_am); - assign_map.emplace("cim:GovHydroFrancis.av0", &assign_GovHydroFrancis_av0); - assign_map.emplace("cim:GovHydroFrancis.av1", &assign_GovHydroFrancis_av1); - assign_map.emplace("cim:GovHydroFrancis.bp", &assign_GovHydroFrancis_bp); - assign_map.emplace("cim:GovHydroFrancis.db1", &assign_GovHydroFrancis_db1); - assign_map.emplace("cim:GovHydroFrancis.etamax", &assign_GovHydroFrancis_etamax); - assign_map.emplace("cim:GovHydroFrancis.governorControl", &assign_GovHydroFrancis_governorControl); - assign_map.emplace("cim:GovHydroFrancis.h1", &assign_GovHydroFrancis_h1); - assign_map.emplace("cim:GovHydroFrancis.h2", &assign_GovHydroFrancis_h2); - assign_map.emplace("cim:GovHydroFrancis.hn", &assign_GovHydroFrancis_hn); - assign_map.emplace("cim:GovHydroFrancis.kc", &assign_GovHydroFrancis_kc); - assign_map.emplace("cim:GovHydroFrancis.kg", &assign_GovHydroFrancis_kg); - assign_map.emplace("cim:GovHydroFrancis.kt", &assign_GovHydroFrancis_kt); - assign_map.emplace("cim:GovHydroFrancis.qc0", &assign_GovHydroFrancis_qc0); - assign_map.emplace("cim:GovHydroFrancis.qn", &assign_GovHydroFrancis_qn); - assign_map.emplace("cim:GovHydroFrancis.ta", &assign_GovHydroFrancis_ta); - assign_map.emplace("cim:GovHydroFrancis.td", &assign_GovHydroFrancis_td); - assign_map.emplace("cim:GovHydroFrancis.ts", &assign_GovHydroFrancis_ts); - assign_map.emplace("cim:GovHydroFrancis.twnc", &assign_GovHydroFrancis_twnc); - assign_map.emplace("cim:GovHydroFrancis.twng", &assign_GovHydroFrancis_twng); - assign_map.emplace("cim:GovHydroFrancis.tx", &assign_GovHydroFrancis_tx); - assign_map.emplace("cim:GovHydroFrancis.va", &assign_GovHydroFrancis_va); - assign_map.emplace("cim:GovHydroFrancis.valvmax", &assign_GovHydroFrancis_valvmax); - assign_map.emplace("cim:GovHydroFrancis.valvmin", &assign_GovHydroFrancis_valvmin); - assign_map.emplace("cim:GovHydroFrancis.vc", &assign_GovHydroFrancis_vc); - assign_map.emplace("cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", &assign_GovHydroFrancis_waterTunnelSurgeChamberSimulation); - assign_map.emplace("cim:GovHydroFrancis.zsfc", &assign_GovHydroFrancis_zsfc); + assign_map.emplace("GovHydroFrancis.am", &assign_GovHydroFrancis_am); + assign_map.emplace("GovHydroFrancis.av0", &assign_GovHydroFrancis_av0); + assign_map.emplace("GovHydroFrancis.av1", &assign_GovHydroFrancis_av1); + assign_map.emplace("GovHydroFrancis.bp", &assign_GovHydroFrancis_bp); + assign_map.emplace("GovHydroFrancis.db1", &assign_GovHydroFrancis_db1); + assign_map.emplace("GovHydroFrancis.etamax", &assign_GovHydroFrancis_etamax); + assign_map.emplace("GovHydroFrancis.governorControl", &assign_GovHydroFrancis_governorControl); + assign_map.emplace("GovHydroFrancis.h1", &assign_GovHydroFrancis_h1); + assign_map.emplace("GovHydroFrancis.h2", &assign_GovHydroFrancis_h2); + assign_map.emplace("GovHydroFrancis.hn", &assign_GovHydroFrancis_hn); + assign_map.emplace("GovHydroFrancis.kc", &assign_GovHydroFrancis_kc); + assign_map.emplace("GovHydroFrancis.kg", &assign_GovHydroFrancis_kg); + assign_map.emplace("GovHydroFrancis.kt", &assign_GovHydroFrancis_kt); + assign_map.emplace("GovHydroFrancis.qc0", &assign_GovHydroFrancis_qc0); + assign_map.emplace("GovHydroFrancis.qn", &assign_GovHydroFrancis_qn); + assign_map.emplace("GovHydroFrancis.ta", &assign_GovHydroFrancis_ta); + assign_map.emplace("GovHydroFrancis.td", &assign_GovHydroFrancis_td); + assign_map.emplace("GovHydroFrancis.ts", &assign_GovHydroFrancis_ts); + assign_map.emplace("GovHydroFrancis.twnc", &assign_GovHydroFrancis_twnc); + assign_map.emplace("GovHydroFrancis.twng", &assign_GovHydroFrancis_twng); + assign_map.emplace("GovHydroFrancis.tx", &assign_GovHydroFrancis_tx); + assign_map.emplace("GovHydroFrancis.va", &assign_GovHydroFrancis_va); + assign_map.emplace("GovHydroFrancis.valvmax", &assign_GovHydroFrancis_valvmax); + assign_map.emplace("GovHydroFrancis.valvmin", &assign_GovHydroFrancis_valvmin); + assign_map.emplace("GovHydroFrancis.vc", &assign_GovHydroFrancis_vc); + assign_map.emplace("GovHydroFrancis.waterTunnelSurgeChamberSimulation", &assign_GovHydroFrancis_waterTunnelSurgeChamberSimulation); + assign_map.emplace("GovHydroFrancis.zsfc", &assign_GovHydroFrancis_zsfc); } void GovHydroFrancis::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,32 +929,32 @@ void GovHydroFrancis::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroFrancis.am", &get_GovHydroFrancis_am); - get_map.emplace("cim:GovHydroFrancis.av0", &get_GovHydroFrancis_av0); - get_map.emplace("cim:GovHydroFrancis.av1", &get_GovHydroFrancis_av1); - get_map.emplace("cim:GovHydroFrancis.bp", &get_GovHydroFrancis_bp); - get_map.emplace("cim:GovHydroFrancis.db1", &get_GovHydroFrancis_db1); - get_map.emplace("cim:GovHydroFrancis.etamax", &get_GovHydroFrancis_etamax); - get_map.emplace("cim:GovHydroFrancis.h1", &get_GovHydroFrancis_h1); - get_map.emplace("cim:GovHydroFrancis.h2", &get_GovHydroFrancis_h2); - get_map.emplace("cim:GovHydroFrancis.hn", &get_GovHydroFrancis_hn); - get_map.emplace("cim:GovHydroFrancis.kc", &get_GovHydroFrancis_kc); - get_map.emplace("cim:GovHydroFrancis.kg", &get_GovHydroFrancis_kg); - get_map.emplace("cim:GovHydroFrancis.kt", &get_GovHydroFrancis_kt); - get_map.emplace("cim:GovHydroFrancis.qc0", &get_GovHydroFrancis_qc0); - get_map.emplace("cim:GovHydroFrancis.qn", &get_GovHydroFrancis_qn); - get_map.emplace("cim:GovHydroFrancis.ta", &get_GovHydroFrancis_ta); - get_map.emplace("cim:GovHydroFrancis.td", &get_GovHydroFrancis_td); - get_map.emplace("cim:GovHydroFrancis.ts", &get_GovHydroFrancis_ts); - get_map.emplace("cim:GovHydroFrancis.twnc", &get_GovHydroFrancis_twnc); - get_map.emplace("cim:GovHydroFrancis.twng", &get_GovHydroFrancis_twng); - get_map.emplace("cim:GovHydroFrancis.tx", &get_GovHydroFrancis_tx); - get_map.emplace("cim:GovHydroFrancis.va", &get_GovHydroFrancis_va); - get_map.emplace("cim:GovHydroFrancis.valvmax", &get_GovHydroFrancis_valvmax); - get_map.emplace("cim:GovHydroFrancis.valvmin", &get_GovHydroFrancis_valvmin); - get_map.emplace("cim:GovHydroFrancis.vc", &get_GovHydroFrancis_vc); - get_map.emplace("cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", &get_GovHydroFrancis_waterTunnelSurgeChamberSimulation); - get_map.emplace("cim:GovHydroFrancis.zsfc", &get_GovHydroFrancis_zsfc); + get_map.emplace("GovHydroFrancis.am", &get_GovHydroFrancis_am); + get_map.emplace("GovHydroFrancis.av0", &get_GovHydroFrancis_av0); + get_map.emplace("GovHydroFrancis.av1", &get_GovHydroFrancis_av1); + get_map.emplace("GovHydroFrancis.bp", &get_GovHydroFrancis_bp); + get_map.emplace("GovHydroFrancis.db1", &get_GovHydroFrancis_db1); + get_map.emplace("GovHydroFrancis.etamax", &get_GovHydroFrancis_etamax); + get_map.emplace("GovHydroFrancis.h1", &get_GovHydroFrancis_h1); + get_map.emplace("GovHydroFrancis.h2", &get_GovHydroFrancis_h2); + get_map.emplace("GovHydroFrancis.hn", &get_GovHydroFrancis_hn); + get_map.emplace("GovHydroFrancis.kc", &get_GovHydroFrancis_kc); + get_map.emplace("GovHydroFrancis.kg", &get_GovHydroFrancis_kg); + get_map.emplace("GovHydroFrancis.kt", &get_GovHydroFrancis_kt); + get_map.emplace("GovHydroFrancis.qc0", &get_GovHydroFrancis_qc0); + get_map.emplace("GovHydroFrancis.qn", &get_GovHydroFrancis_qn); + get_map.emplace("GovHydroFrancis.ta", &get_GovHydroFrancis_ta); + get_map.emplace("GovHydroFrancis.td", &get_GovHydroFrancis_td); + get_map.emplace("GovHydroFrancis.ts", &get_GovHydroFrancis_ts); + get_map.emplace("GovHydroFrancis.twnc", &get_GovHydroFrancis_twnc); + get_map.emplace("GovHydroFrancis.twng", &get_GovHydroFrancis_twng); + get_map.emplace("GovHydroFrancis.tx", &get_GovHydroFrancis_tx); + get_map.emplace("GovHydroFrancis.va", &get_GovHydroFrancis_va); + get_map.emplace("GovHydroFrancis.valvmax", &get_GovHydroFrancis_valvmax); + get_map.emplace("GovHydroFrancis.valvmin", &get_GovHydroFrancis_valvmin); + get_map.emplace("GovHydroFrancis.vc", &get_GovHydroFrancis_vc); + get_map.emplace("GovHydroFrancis.waterTunnelSurgeChamberSimulation", &get_GovHydroFrancis_waterTunnelSurgeChamberSimulation); + get_map.emplace("GovHydroFrancis.zsfc", &get_GovHydroFrancis_zsfc); } void GovHydroFrancis::addClassGetFnsToMap(std::map& get_map) const @@ -933,7 +965,13 @@ void GovHydroFrancis::addClassGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroFrancis.governorControl", &get_GovHydroFrancis_governorControl); + get_map.emplace("GovHydroFrancis.governorControl", &get_GovHydroFrancis_governorControl); +} + +bool GovHydroFrancis::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroFrancis" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovHydroFrancis::declare() @@ -941,6 +979,14 @@ const BaseClassDefiner GovHydroFrancis::declare() return BaseClassDefiner(GovHydroFrancis::addConstructToMap, GovHydroFrancis::addPrimitiveAssignFnsToMap, GovHydroFrancis::addClassAssignFnsToMap, GovHydroFrancis::debugName); } +std::map GovHydroFrancis::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroFrancis_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroFrancis.hpp b/CGMES_2.4.13_18DEC2013/GovHydroFrancis.hpp index a69654b37..172b7074c 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroFrancis.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroFrancis.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Area.hpp" #include "Boolean.hpp" #include "FrancisGovernorControlKind.hpp" @@ -117,8 +118,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -126,7 +134,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroFrancis_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroIEEE0.cpp b/CGMES_2.4.13_18DEC2013/GovHydroIEEE0.cpp index 7038d0233..193ee5e58 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroIEEE0.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroIEEE0.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroIEEE0(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroIEEE0.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroIEEE0::GovHydroIEEE0() {} GovHydroIEEE0::~GovHydroIEEE0() {} -static const std::list PossibleProfilesForClass = +const std::list& GovHydroIEEE0::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovHydroIEEE0::getClassNamespaceUrl() const { - { "cim:GovHydroIEEE0.k", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t4", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovHydroIEEE0::getPossibleProfilesForClass() const +const std::string& GovHydroIEEE0::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovHydroIEEE0::getPossibleProfilesForAttributes() const +const std::list& GovHydroIEEE0::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroIEEE0::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroIEEE0::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroIEEE0::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroIEEE0_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovHydroIEEE0::debugString() const void GovHydroIEEE0::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroIEEE0", &GovHydroIEEE0_factory); + factory_map.emplace("GovHydroIEEE0", &GovHydroIEEE0_factory); } void GovHydroIEEE0::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroIEEE0.k", &assign_GovHydroIEEE0_k); - assign_map.emplace("cim:GovHydroIEEE0.mwbase", &assign_GovHydroIEEE0_mwbase); - assign_map.emplace("cim:GovHydroIEEE0.pmax", &assign_GovHydroIEEE0_pmax); - assign_map.emplace("cim:GovHydroIEEE0.pmin", &assign_GovHydroIEEE0_pmin); - assign_map.emplace("cim:GovHydroIEEE0.t1", &assign_GovHydroIEEE0_t1); - assign_map.emplace("cim:GovHydroIEEE0.t2", &assign_GovHydroIEEE0_t2); - assign_map.emplace("cim:GovHydroIEEE0.t3", &assign_GovHydroIEEE0_t3); - assign_map.emplace("cim:GovHydroIEEE0.t4", &assign_GovHydroIEEE0_t4); + assign_map.emplace("GovHydroIEEE0.k", &assign_GovHydroIEEE0_k); + assign_map.emplace("GovHydroIEEE0.mwbase", &assign_GovHydroIEEE0_mwbase); + assign_map.emplace("GovHydroIEEE0.pmax", &assign_GovHydroIEEE0_pmax); + assign_map.emplace("GovHydroIEEE0.pmin", &assign_GovHydroIEEE0_pmin); + assign_map.emplace("GovHydroIEEE0.t1", &assign_GovHydroIEEE0_t1); + assign_map.emplace("GovHydroIEEE0.t2", &assign_GovHydroIEEE0_t2); + assign_map.emplace("GovHydroIEEE0.t3", &assign_GovHydroIEEE0_t3); + assign_map.emplace("GovHydroIEEE0.t4", &assign_GovHydroIEEE0_t4); } void GovHydroIEEE0::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovHydroIEEE0::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroIEEE0.k", &get_GovHydroIEEE0_k); - get_map.emplace("cim:GovHydroIEEE0.mwbase", &get_GovHydroIEEE0_mwbase); - get_map.emplace("cim:GovHydroIEEE0.pmax", &get_GovHydroIEEE0_pmax); - get_map.emplace("cim:GovHydroIEEE0.pmin", &get_GovHydroIEEE0_pmin); - get_map.emplace("cim:GovHydroIEEE0.t1", &get_GovHydroIEEE0_t1); - get_map.emplace("cim:GovHydroIEEE0.t2", &get_GovHydroIEEE0_t2); - get_map.emplace("cim:GovHydroIEEE0.t3", &get_GovHydroIEEE0_t3); - get_map.emplace("cim:GovHydroIEEE0.t4", &get_GovHydroIEEE0_t4); + get_map.emplace("GovHydroIEEE0.k", &get_GovHydroIEEE0_k); + get_map.emplace("GovHydroIEEE0.mwbase", &get_GovHydroIEEE0_mwbase); + get_map.emplace("GovHydroIEEE0.pmax", &get_GovHydroIEEE0_pmax); + get_map.emplace("GovHydroIEEE0.pmin", &get_GovHydroIEEE0_pmin); + get_map.emplace("GovHydroIEEE0.t1", &get_GovHydroIEEE0_t1); + get_map.emplace("GovHydroIEEE0.t2", &get_GovHydroIEEE0_t2); + get_map.emplace("GovHydroIEEE0.t3", &get_GovHydroIEEE0_t3); + get_map.emplace("GovHydroIEEE0.t4", &get_GovHydroIEEE0_t4); } void GovHydroIEEE0::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovHydroIEEE0::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroIEEE0::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroIEEE0" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroIEEE0::declare() { return BaseClassDefiner(GovHydroIEEE0::addConstructToMap, GovHydroIEEE0::addPrimitiveAssignFnsToMap, GovHydroIEEE0::addClassAssignFnsToMap, GovHydroIEEE0::debugName); } +std::map GovHydroIEEE0::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroIEEE0_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroIEEE0.hpp b/CGMES_2.4.13_18DEC2013/GovHydroIEEE0.hpp index 715982cd2..b2c0448f3 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroIEEE0.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroIEEE0.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroIEEE0_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroIEEE2.cpp b/CGMES_2.4.13_18DEC2013/GovHydroIEEE2.cpp index abbf5cf5e..1929d73d1 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroIEEE2.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroIEEE2.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroIEEE2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroIEEE2.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroIEEE2::GovHydroIEEE2() {} GovHydroIEEE2::~GovHydroIEEE2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroIEEE2.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.kturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tg", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tr", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.uc", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroIEEE2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroIEEE2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroIEEE2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroIEEE2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroIEEE2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroIEEE2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroIEEE2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroIEEE2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroIEEE2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroIEEE2_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* GovHydroIEEE2::debugString() const void GovHydroIEEE2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroIEEE2", &GovHydroIEEE2_factory); + factory_map.emplace("GovHydroIEEE2", &GovHydroIEEE2_factory); } void GovHydroIEEE2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroIEEE2.aturb", &assign_GovHydroIEEE2_aturb); - assign_map.emplace("cim:GovHydroIEEE2.bturb", &assign_GovHydroIEEE2_bturb); - assign_map.emplace("cim:GovHydroIEEE2.gv1", &assign_GovHydroIEEE2_gv1); - assign_map.emplace("cim:GovHydroIEEE2.gv2", &assign_GovHydroIEEE2_gv2); - assign_map.emplace("cim:GovHydroIEEE2.gv3", &assign_GovHydroIEEE2_gv3); - assign_map.emplace("cim:GovHydroIEEE2.gv4", &assign_GovHydroIEEE2_gv4); - assign_map.emplace("cim:GovHydroIEEE2.gv5", &assign_GovHydroIEEE2_gv5); - assign_map.emplace("cim:GovHydroIEEE2.gv6", &assign_GovHydroIEEE2_gv6); - assign_map.emplace("cim:GovHydroIEEE2.kturb", &assign_GovHydroIEEE2_kturb); - assign_map.emplace("cim:GovHydroIEEE2.mwbase", &assign_GovHydroIEEE2_mwbase); - assign_map.emplace("cim:GovHydroIEEE2.pgv1", &assign_GovHydroIEEE2_pgv1); - assign_map.emplace("cim:GovHydroIEEE2.pgv2", &assign_GovHydroIEEE2_pgv2); - assign_map.emplace("cim:GovHydroIEEE2.pgv3", &assign_GovHydroIEEE2_pgv3); - assign_map.emplace("cim:GovHydroIEEE2.pgv4", &assign_GovHydroIEEE2_pgv4); - assign_map.emplace("cim:GovHydroIEEE2.pgv5", &assign_GovHydroIEEE2_pgv5); - assign_map.emplace("cim:GovHydroIEEE2.pgv6", &assign_GovHydroIEEE2_pgv6); - assign_map.emplace("cim:GovHydroIEEE2.pmax", &assign_GovHydroIEEE2_pmax); - assign_map.emplace("cim:GovHydroIEEE2.pmin", &assign_GovHydroIEEE2_pmin); - assign_map.emplace("cim:GovHydroIEEE2.rperm", &assign_GovHydroIEEE2_rperm); - assign_map.emplace("cim:GovHydroIEEE2.rtemp", &assign_GovHydroIEEE2_rtemp); - assign_map.emplace("cim:GovHydroIEEE2.tg", &assign_GovHydroIEEE2_tg); - assign_map.emplace("cim:GovHydroIEEE2.tp", &assign_GovHydroIEEE2_tp); - assign_map.emplace("cim:GovHydroIEEE2.tr", &assign_GovHydroIEEE2_tr); - assign_map.emplace("cim:GovHydroIEEE2.tw", &assign_GovHydroIEEE2_tw); - assign_map.emplace("cim:GovHydroIEEE2.uc", &assign_GovHydroIEEE2_uc); - assign_map.emplace("cim:GovHydroIEEE2.uo", &assign_GovHydroIEEE2_uo); + assign_map.emplace("GovHydroIEEE2.aturb", &assign_GovHydroIEEE2_aturb); + assign_map.emplace("GovHydroIEEE2.bturb", &assign_GovHydroIEEE2_bturb); + assign_map.emplace("GovHydroIEEE2.gv1", &assign_GovHydroIEEE2_gv1); + assign_map.emplace("GovHydroIEEE2.gv2", &assign_GovHydroIEEE2_gv2); + assign_map.emplace("GovHydroIEEE2.gv3", &assign_GovHydroIEEE2_gv3); + assign_map.emplace("GovHydroIEEE2.gv4", &assign_GovHydroIEEE2_gv4); + assign_map.emplace("GovHydroIEEE2.gv5", &assign_GovHydroIEEE2_gv5); + assign_map.emplace("GovHydroIEEE2.gv6", &assign_GovHydroIEEE2_gv6); + assign_map.emplace("GovHydroIEEE2.kturb", &assign_GovHydroIEEE2_kturb); + assign_map.emplace("GovHydroIEEE2.mwbase", &assign_GovHydroIEEE2_mwbase); + assign_map.emplace("GovHydroIEEE2.pgv1", &assign_GovHydroIEEE2_pgv1); + assign_map.emplace("GovHydroIEEE2.pgv2", &assign_GovHydroIEEE2_pgv2); + assign_map.emplace("GovHydroIEEE2.pgv3", &assign_GovHydroIEEE2_pgv3); + assign_map.emplace("GovHydroIEEE2.pgv4", &assign_GovHydroIEEE2_pgv4); + assign_map.emplace("GovHydroIEEE2.pgv5", &assign_GovHydroIEEE2_pgv5); + assign_map.emplace("GovHydroIEEE2.pgv6", &assign_GovHydroIEEE2_pgv6); + assign_map.emplace("GovHydroIEEE2.pmax", &assign_GovHydroIEEE2_pmax); + assign_map.emplace("GovHydroIEEE2.pmin", &assign_GovHydroIEEE2_pmin); + assign_map.emplace("GovHydroIEEE2.rperm", &assign_GovHydroIEEE2_rperm); + assign_map.emplace("GovHydroIEEE2.rtemp", &assign_GovHydroIEEE2_rtemp); + assign_map.emplace("GovHydroIEEE2.tg", &assign_GovHydroIEEE2_tg); + assign_map.emplace("GovHydroIEEE2.tp", &assign_GovHydroIEEE2_tp); + assign_map.emplace("GovHydroIEEE2.tr", &assign_GovHydroIEEE2_tr); + assign_map.emplace("GovHydroIEEE2.tw", &assign_GovHydroIEEE2_tw); + assign_map.emplace("GovHydroIEEE2.uc", &assign_GovHydroIEEE2_uc); + assign_map.emplace("GovHydroIEEE2.uo", &assign_GovHydroIEEE2_uo); } void GovHydroIEEE2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void GovHydroIEEE2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroIEEE2.aturb", &get_GovHydroIEEE2_aturb); - get_map.emplace("cim:GovHydroIEEE2.bturb", &get_GovHydroIEEE2_bturb); - get_map.emplace("cim:GovHydroIEEE2.gv1", &get_GovHydroIEEE2_gv1); - get_map.emplace("cim:GovHydroIEEE2.gv2", &get_GovHydroIEEE2_gv2); - get_map.emplace("cim:GovHydroIEEE2.gv3", &get_GovHydroIEEE2_gv3); - get_map.emplace("cim:GovHydroIEEE2.gv4", &get_GovHydroIEEE2_gv4); - get_map.emplace("cim:GovHydroIEEE2.gv5", &get_GovHydroIEEE2_gv5); - get_map.emplace("cim:GovHydroIEEE2.gv6", &get_GovHydroIEEE2_gv6); - get_map.emplace("cim:GovHydroIEEE2.kturb", &get_GovHydroIEEE2_kturb); - get_map.emplace("cim:GovHydroIEEE2.mwbase", &get_GovHydroIEEE2_mwbase); - get_map.emplace("cim:GovHydroIEEE2.pgv1", &get_GovHydroIEEE2_pgv1); - get_map.emplace("cim:GovHydroIEEE2.pgv2", &get_GovHydroIEEE2_pgv2); - get_map.emplace("cim:GovHydroIEEE2.pgv3", &get_GovHydroIEEE2_pgv3); - get_map.emplace("cim:GovHydroIEEE2.pgv4", &get_GovHydroIEEE2_pgv4); - get_map.emplace("cim:GovHydroIEEE2.pgv5", &get_GovHydroIEEE2_pgv5); - get_map.emplace("cim:GovHydroIEEE2.pgv6", &get_GovHydroIEEE2_pgv6); - get_map.emplace("cim:GovHydroIEEE2.pmax", &get_GovHydroIEEE2_pmax); - get_map.emplace("cim:GovHydroIEEE2.pmin", &get_GovHydroIEEE2_pmin); - get_map.emplace("cim:GovHydroIEEE2.rperm", &get_GovHydroIEEE2_rperm); - get_map.emplace("cim:GovHydroIEEE2.rtemp", &get_GovHydroIEEE2_rtemp); - get_map.emplace("cim:GovHydroIEEE2.tg", &get_GovHydroIEEE2_tg); - get_map.emplace("cim:GovHydroIEEE2.tp", &get_GovHydroIEEE2_tp); - get_map.emplace("cim:GovHydroIEEE2.tr", &get_GovHydroIEEE2_tr); - get_map.emplace("cim:GovHydroIEEE2.tw", &get_GovHydroIEEE2_tw); - get_map.emplace("cim:GovHydroIEEE2.uc", &get_GovHydroIEEE2_uc); - get_map.emplace("cim:GovHydroIEEE2.uo", &get_GovHydroIEEE2_uo); + get_map.emplace("GovHydroIEEE2.aturb", &get_GovHydroIEEE2_aturb); + get_map.emplace("GovHydroIEEE2.bturb", &get_GovHydroIEEE2_bturb); + get_map.emplace("GovHydroIEEE2.gv1", &get_GovHydroIEEE2_gv1); + get_map.emplace("GovHydroIEEE2.gv2", &get_GovHydroIEEE2_gv2); + get_map.emplace("GovHydroIEEE2.gv3", &get_GovHydroIEEE2_gv3); + get_map.emplace("GovHydroIEEE2.gv4", &get_GovHydroIEEE2_gv4); + get_map.emplace("GovHydroIEEE2.gv5", &get_GovHydroIEEE2_gv5); + get_map.emplace("GovHydroIEEE2.gv6", &get_GovHydroIEEE2_gv6); + get_map.emplace("GovHydroIEEE2.kturb", &get_GovHydroIEEE2_kturb); + get_map.emplace("GovHydroIEEE2.mwbase", &get_GovHydroIEEE2_mwbase); + get_map.emplace("GovHydroIEEE2.pgv1", &get_GovHydroIEEE2_pgv1); + get_map.emplace("GovHydroIEEE2.pgv2", &get_GovHydroIEEE2_pgv2); + get_map.emplace("GovHydroIEEE2.pgv3", &get_GovHydroIEEE2_pgv3); + get_map.emplace("GovHydroIEEE2.pgv4", &get_GovHydroIEEE2_pgv4); + get_map.emplace("GovHydroIEEE2.pgv5", &get_GovHydroIEEE2_pgv5); + get_map.emplace("GovHydroIEEE2.pgv6", &get_GovHydroIEEE2_pgv6); + get_map.emplace("GovHydroIEEE2.pmax", &get_GovHydroIEEE2_pmax); + get_map.emplace("GovHydroIEEE2.pmin", &get_GovHydroIEEE2_pmin); + get_map.emplace("GovHydroIEEE2.rperm", &get_GovHydroIEEE2_rperm); + get_map.emplace("GovHydroIEEE2.rtemp", &get_GovHydroIEEE2_rtemp); + get_map.emplace("GovHydroIEEE2.tg", &get_GovHydroIEEE2_tg); + get_map.emplace("GovHydroIEEE2.tp", &get_GovHydroIEEE2_tp); + get_map.emplace("GovHydroIEEE2.tr", &get_GovHydroIEEE2_tr); + get_map.emplace("GovHydroIEEE2.tw", &get_GovHydroIEEE2_tw); + get_map.emplace("GovHydroIEEE2.uc", &get_GovHydroIEEE2_uc); + get_map.emplace("GovHydroIEEE2.uo", &get_GovHydroIEEE2_uo); } void GovHydroIEEE2::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void GovHydroIEEE2::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroIEEE2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroIEEE2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroIEEE2::declare() { return BaseClassDefiner(GovHydroIEEE2::addConstructToMap, GovHydroIEEE2::addPrimitiveAssignFnsToMap, GovHydroIEEE2::addClassAssignFnsToMap, GovHydroIEEE2::debugName); } +std::map GovHydroIEEE2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroIEEE2_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroIEEE2.hpp b/CGMES_2.4.13_18DEC2013/GovHydroIEEE2.hpp index 33d231831..c12de5be8 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroIEEE2.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroIEEE2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -109,8 +110,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -118,7 +126,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroIEEE2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroPID.cpp b/CGMES_2.4.13_18DEC2013/GovHydroPID.cpp index 45136a44f..3631e2d9b 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroPID.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroPID.cpp @@ -11,64 +11,96 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPID(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPID.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPID::GovHydroPID() {} GovHydroPID::~GovHydroPID() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPID.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.r", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.td", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tf", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPID::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPID::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPID::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPID::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPID::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPID::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPID::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPID::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPID::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPID_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1036,44 +1068,44 @@ const char* GovHydroPID::debugString() const void GovHydroPID::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPID", &GovHydroPID_factory); + factory_map.emplace("GovHydroPID", &GovHydroPID_factory); } void GovHydroPID::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPID.aturb", &assign_GovHydroPID_aturb); - assign_map.emplace("cim:GovHydroPID.bturb", &assign_GovHydroPID_bturb); - assign_map.emplace("cim:GovHydroPID.db1", &assign_GovHydroPID_db1); - assign_map.emplace("cim:GovHydroPID.db2", &assign_GovHydroPID_db2); - assign_map.emplace("cim:GovHydroPID.eps", &assign_GovHydroPID_eps); - assign_map.emplace("cim:GovHydroPID.gv1", &assign_GovHydroPID_gv1); - assign_map.emplace("cim:GovHydroPID.gv2", &assign_GovHydroPID_gv2); - assign_map.emplace("cim:GovHydroPID.gv3", &assign_GovHydroPID_gv3); - assign_map.emplace("cim:GovHydroPID.gv4", &assign_GovHydroPID_gv4); - assign_map.emplace("cim:GovHydroPID.gv5", &assign_GovHydroPID_gv5); - assign_map.emplace("cim:GovHydroPID.gv6", &assign_GovHydroPID_gv6); - assign_map.emplace("cim:GovHydroPID.inputSignal", &assign_GovHydroPID_inputSignal); - assign_map.emplace("cim:GovHydroPID.kd", &assign_GovHydroPID_kd); - assign_map.emplace("cim:GovHydroPID.kg", &assign_GovHydroPID_kg); - assign_map.emplace("cim:GovHydroPID.ki", &assign_GovHydroPID_ki); - assign_map.emplace("cim:GovHydroPID.kp", &assign_GovHydroPID_kp); - assign_map.emplace("cim:GovHydroPID.mwbase", &assign_GovHydroPID_mwbase); - assign_map.emplace("cim:GovHydroPID.pgv1", &assign_GovHydroPID_pgv1); - assign_map.emplace("cim:GovHydroPID.pgv2", &assign_GovHydroPID_pgv2); - assign_map.emplace("cim:GovHydroPID.pgv3", &assign_GovHydroPID_pgv3); - assign_map.emplace("cim:GovHydroPID.pgv4", &assign_GovHydroPID_pgv4); - assign_map.emplace("cim:GovHydroPID.pgv5", &assign_GovHydroPID_pgv5); - assign_map.emplace("cim:GovHydroPID.pgv6", &assign_GovHydroPID_pgv6); - assign_map.emplace("cim:GovHydroPID.pmax", &assign_GovHydroPID_pmax); - assign_map.emplace("cim:GovHydroPID.pmin", &assign_GovHydroPID_pmin); - assign_map.emplace("cim:GovHydroPID.r", &assign_GovHydroPID_r); - assign_map.emplace("cim:GovHydroPID.td", &assign_GovHydroPID_td); - assign_map.emplace("cim:GovHydroPID.tf", &assign_GovHydroPID_tf); - assign_map.emplace("cim:GovHydroPID.tp", &assign_GovHydroPID_tp); - assign_map.emplace("cim:GovHydroPID.tt", &assign_GovHydroPID_tt); - assign_map.emplace("cim:GovHydroPID.tturb", &assign_GovHydroPID_tturb); - assign_map.emplace("cim:GovHydroPID.velcl", &assign_GovHydroPID_velcl); - assign_map.emplace("cim:GovHydroPID.velop", &assign_GovHydroPID_velop); + assign_map.emplace("GovHydroPID.aturb", &assign_GovHydroPID_aturb); + assign_map.emplace("GovHydroPID.bturb", &assign_GovHydroPID_bturb); + assign_map.emplace("GovHydroPID.db1", &assign_GovHydroPID_db1); + assign_map.emplace("GovHydroPID.db2", &assign_GovHydroPID_db2); + assign_map.emplace("GovHydroPID.eps", &assign_GovHydroPID_eps); + assign_map.emplace("GovHydroPID.gv1", &assign_GovHydroPID_gv1); + assign_map.emplace("GovHydroPID.gv2", &assign_GovHydroPID_gv2); + assign_map.emplace("GovHydroPID.gv3", &assign_GovHydroPID_gv3); + assign_map.emplace("GovHydroPID.gv4", &assign_GovHydroPID_gv4); + assign_map.emplace("GovHydroPID.gv5", &assign_GovHydroPID_gv5); + assign_map.emplace("GovHydroPID.gv6", &assign_GovHydroPID_gv6); + assign_map.emplace("GovHydroPID.inputSignal", &assign_GovHydroPID_inputSignal); + assign_map.emplace("GovHydroPID.kd", &assign_GovHydroPID_kd); + assign_map.emplace("GovHydroPID.kg", &assign_GovHydroPID_kg); + assign_map.emplace("GovHydroPID.ki", &assign_GovHydroPID_ki); + assign_map.emplace("GovHydroPID.kp", &assign_GovHydroPID_kp); + assign_map.emplace("GovHydroPID.mwbase", &assign_GovHydroPID_mwbase); + assign_map.emplace("GovHydroPID.pgv1", &assign_GovHydroPID_pgv1); + assign_map.emplace("GovHydroPID.pgv2", &assign_GovHydroPID_pgv2); + assign_map.emplace("GovHydroPID.pgv3", &assign_GovHydroPID_pgv3); + assign_map.emplace("GovHydroPID.pgv4", &assign_GovHydroPID_pgv4); + assign_map.emplace("GovHydroPID.pgv5", &assign_GovHydroPID_pgv5); + assign_map.emplace("GovHydroPID.pgv6", &assign_GovHydroPID_pgv6); + assign_map.emplace("GovHydroPID.pmax", &assign_GovHydroPID_pmax); + assign_map.emplace("GovHydroPID.pmin", &assign_GovHydroPID_pmin); + assign_map.emplace("GovHydroPID.r", &assign_GovHydroPID_r); + assign_map.emplace("GovHydroPID.td", &assign_GovHydroPID_td); + assign_map.emplace("GovHydroPID.tf", &assign_GovHydroPID_tf); + assign_map.emplace("GovHydroPID.tp", &assign_GovHydroPID_tp); + assign_map.emplace("GovHydroPID.tt", &assign_GovHydroPID_tt); + assign_map.emplace("GovHydroPID.tturb", &assign_GovHydroPID_tturb); + assign_map.emplace("GovHydroPID.velcl", &assign_GovHydroPID_velcl); + assign_map.emplace("GovHydroPID.velop", &assign_GovHydroPID_velop); } void GovHydroPID::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1083,39 +1115,39 @@ void GovHydroPID::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPID.aturb", &get_GovHydroPID_aturb); - get_map.emplace("cim:GovHydroPID.bturb", &get_GovHydroPID_bturb); - get_map.emplace("cim:GovHydroPID.db1", &get_GovHydroPID_db1); - get_map.emplace("cim:GovHydroPID.db2", &get_GovHydroPID_db2); - get_map.emplace("cim:GovHydroPID.eps", &get_GovHydroPID_eps); - get_map.emplace("cim:GovHydroPID.gv1", &get_GovHydroPID_gv1); - get_map.emplace("cim:GovHydroPID.gv2", &get_GovHydroPID_gv2); - get_map.emplace("cim:GovHydroPID.gv3", &get_GovHydroPID_gv3); - get_map.emplace("cim:GovHydroPID.gv4", &get_GovHydroPID_gv4); - get_map.emplace("cim:GovHydroPID.gv5", &get_GovHydroPID_gv5); - get_map.emplace("cim:GovHydroPID.gv6", &get_GovHydroPID_gv6); - get_map.emplace("cim:GovHydroPID.inputSignal", &get_GovHydroPID_inputSignal); - get_map.emplace("cim:GovHydroPID.kd", &get_GovHydroPID_kd); - get_map.emplace("cim:GovHydroPID.kg", &get_GovHydroPID_kg); - get_map.emplace("cim:GovHydroPID.ki", &get_GovHydroPID_ki); - get_map.emplace("cim:GovHydroPID.kp", &get_GovHydroPID_kp); - get_map.emplace("cim:GovHydroPID.mwbase", &get_GovHydroPID_mwbase); - get_map.emplace("cim:GovHydroPID.pgv1", &get_GovHydroPID_pgv1); - get_map.emplace("cim:GovHydroPID.pgv2", &get_GovHydroPID_pgv2); - get_map.emplace("cim:GovHydroPID.pgv3", &get_GovHydroPID_pgv3); - get_map.emplace("cim:GovHydroPID.pgv4", &get_GovHydroPID_pgv4); - get_map.emplace("cim:GovHydroPID.pgv5", &get_GovHydroPID_pgv5); - get_map.emplace("cim:GovHydroPID.pgv6", &get_GovHydroPID_pgv6); - get_map.emplace("cim:GovHydroPID.pmax", &get_GovHydroPID_pmax); - get_map.emplace("cim:GovHydroPID.pmin", &get_GovHydroPID_pmin); - get_map.emplace("cim:GovHydroPID.r", &get_GovHydroPID_r); - get_map.emplace("cim:GovHydroPID.td", &get_GovHydroPID_td); - get_map.emplace("cim:GovHydroPID.tf", &get_GovHydroPID_tf); - get_map.emplace("cim:GovHydroPID.tp", &get_GovHydroPID_tp); - get_map.emplace("cim:GovHydroPID.tt", &get_GovHydroPID_tt); - get_map.emplace("cim:GovHydroPID.tturb", &get_GovHydroPID_tturb); - get_map.emplace("cim:GovHydroPID.velcl", &get_GovHydroPID_velcl); - get_map.emplace("cim:GovHydroPID.velop", &get_GovHydroPID_velop); + get_map.emplace("GovHydroPID.aturb", &get_GovHydroPID_aturb); + get_map.emplace("GovHydroPID.bturb", &get_GovHydroPID_bturb); + get_map.emplace("GovHydroPID.db1", &get_GovHydroPID_db1); + get_map.emplace("GovHydroPID.db2", &get_GovHydroPID_db2); + get_map.emplace("GovHydroPID.eps", &get_GovHydroPID_eps); + get_map.emplace("GovHydroPID.gv1", &get_GovHydroPID_gv1); + get_map.emplace("GovHydroPID.gv2", &get_GovHydroPID_gv2); + get_map.emplace("GovHydroPID.gv3", &get_GovHydroPID_gv3); + get_map.emplace("GovHydroPID.gv4", &get_GovHydroPID_gv4); + get_map.emplace("GovHydroPID.gv5", &get_GovHydroPID_gv5); + get_map.emplace("GovHydroPID.gv6", &get_GovHydroPID_gv6); + get_map.emplace("GovHydroPID.inputSignal", &get_GovHydroPID_inputSignal); + get_map.emplace("GovHydroPID.kd", &get_GovHydroPID_kd); + get_map.emplace("GovHydroPID.kg", &get_GovHydroPID_kg); + get_map.emplace("GovHydroPID.ki", &get_GovHydroPID_ki); + get_map.emplace("GovHydroPID.kp", &get_GovHydroPID_kp); + get_map.emplace("GovHydroPID.mwbase", &get_GovHydroPID_mwbase); + get_map.emplace("GovHydroPID.pgv1", &get_GovHydroPID_pgv1); + get_map.emplace("GovHydroPID.pgv2", &get_GovHydroPID_pgv2); + get_map.emplace("GovHydroPID.pgv3", &get_GovHydroPID_pgv3); + get_map.emplace("GovHydroPID.pgv4", &get_GovHydroPID_pgv4); + get_map.emplace("GovHydroPID.pgv5", &get_GovHydroPID_pgv5); + get_map.emplace("GovHydroPID.pgv6", &get_GovHydroPID_pgv6); + get_map.emplace("GovHydroPID.pmax", &get_GovHydroPID_pmax); + get_map.emplace("GovHydroPID.pmin", &get_GovHydroPID_pmin); + get_map.emplace("GovHydroPID.r", &get_GovHydroPID_r); + get_map.emplace("GovHydroPID.td", &get_GovHydroPID_td); + get_map.emplace("GovHydroPID.tf", &get_GovHydroPID_tf); + get_map.emplace("GovHydroPID.tp", &get_GovHydroPID_tp); + get_map.emplace("GovHydroPID.tt", &get_GovHydroPID_tt); + get_map.emplace("GovHydroPID.tturb", &get_GovHydroPID_tturb); + get_map.emplace("GovHydroPID.velcl", &get_GovHydroPID_velcl); + get_map.emplace("GovHydroPID.velop", &get_GovHydroPID_velop); } void GovHydroPID::addClassGetFnsToMap(std::map& get_map) const @@ -1128,11 +1160,25 @@ void GovHydroPID::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPID::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPID" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPID::declare() { return BaseClassDefiner(GovHydroPID::addConstructToMap, GovHydroPID::addPrimitiveAssignFnsToMap, GovHydroPID::addClassAssignFnsToMap, GovHydroPID::debugName); } +std::map GovHydroPID::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPID_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroPID.hpp b/CGMES_2.4.13_18DEC2013/GovHydroPID.hpp index 2d69e696b..e21b35713 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroPID.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroPID.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -132,8 +133,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -141,7 +149,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPID_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroPID2.cpp b/CGMES_2.4.13_18DEC2013/GovHydroPID2.cpp index 59654db7b..a7f59b9b2 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroPID2.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroPID2.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPID2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPID2.atw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.feedbackSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.treg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.velmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.velmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPID2::GovHydroPID2() {} GovHydroPID2::~GovHydroPID2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPID2.atw", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.d", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.feedbackSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g0", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.tb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.treg", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.velmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.velmin", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPID2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPID2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPID2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPID2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPID2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPID2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPID2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPID2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPID2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPID2_atw(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* GovHydroPID2::debugString() const void GovHydroPID2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPID2", &GovHydroPID2_factory); + factory_map.emplace("GovHydroPID2", &GovHydroPID2_factory); } void GovHydroPID2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPID2.atw", &assign_GovHydroPID2_atw); - assign_map.emplace("cim:GovHydroPID2.d", &assign_GovHydroPID2_d); - assign_map.emplace("cim:GovHydroPID2.feedbackSignal", &assign_GovHydroPID2_feedbackSignal); - assign_map.emplace("cim:GovHydroPID2.g0", &assign_GovHydroPID2_g0); - assign_map.emplace("cim:GovHydroPID2.g1", &assign_GovHydroPID2_g1); - assign_map.emplace("cim:GovHydroPID2.g2", &assign_GovHydroPID2_g2); - assign_map.emplace("cim:GovHydroPID2.gmax", &assign_GovHydroPID2_gmax); - assign_map.emplace("cim:GovHydroPID2.gmin", &assign_GovHydroPID2_gmin); - assign_map.emplace("cim:GovHydroPID2.kd", &assign_GovHydroPID2_kd); - assign_map.emplace("cim:GovHydroPID2.ki", &assign_GovHydroPID2_ki); - assign_map.emplace("cim:GovHydroPID2.kp", &assign_GovHydroPID2_kp); - assign_map.emplace("cim:GovHydroPID2.mwbase", &assign_GovHydroPID2_mwbase); - assign_map.emplace("cim:GovHydroPID2.p1", &assign_GovHydroPID2_p1); - assign_map.emplace("cim:GovHydroPID2.p2", &assign_GovHydroPID2_p2); - assign_map.emplace("cim:GovHydroPID2.p3", &assign_GovHydroPID2_p3); - assign_map.emplace("cim:GovHydroPID2.rperm", &assign_GovHydroPID2_rperm); - assign_map.emplace("cim:GovHydroPID2.ta", &assign_GovHydroPID2_ta); - assign_map.emplace("cim:GovHydroPID2.tb", &assign_GovHydroPID2_tb); - assign_map.emplace("cim:GovHydroPID2.treg", &assign_GovHydroPID2_treg); - assign_map.emplace("cim:GovHydroPID2.tw", &assign_GovHydroPID2_tw); - assign_map.emplace("cim:GovHydroPID2.velmax", &assign_GovHydroPID2_velmax); - assign_map.emplace("cim:GovHydroPID2.velmin", &assign_GovHydroPID2_velmin); + assign_map.emplace("GovHydroPID2.atw", &assign_GovHydroPID2_atw); + assign_map.emplace("GovHydroPID2.d", &assign_GovHydroPID2_d); + assign_map.emplace("GovHydroPID2.feedbackSignal", &assign_GovHydroPID2_feedbackSignal); + assign_map.emplace("GovHydroPID2.g0", &assign_GovHydroPID2_g0); + assign_map.emplace("GovHydroPID2.g1", &assign_GovHydroPID2_g1); + assign_map.emplace("GovHydroPID2.g2", &assign_GovHydroPID2_g2); + assign_map.emplace("GovHydroPID2.gmax", &assign_GovHydroPID2_gmax); + assign_map.emplace("GovHydroPID2.gmin", &assign_GovHydroPID2_gmin); + assign_map.emplace("GovHydroPID2.kd", &assign_GovHydroPID2_kd); + assign_map.emplace("GovHydroPID2.ki", &assign_GovHydroPID2_ki); + assign_map.emplace("GovHydroPID2.kp", &assign_GovHydroPID2_kp); + assign_map.emplace("GovHydroPID2.mwbase", &assign_GovHydroPID2_mwbase); + assign_map.emplace("GovHydroPID2.p1", &assign_GovHydroPID2_p1); + assign_map.emplace("GovHydroPID2.p2", &assign_GovHydroPID2_p2); + assign_map.emplace("GovHydroPID2.p3", &assign_GovHydroPID2_p3); + assign_map.emplace("GovHydroPID2.rperm", &assign_GovHydroPID2_rperm); + assign_map.emplace("GovHydroPID2.ta", &assign_GovHydroPID2_ta); + assign_map.emplace("GovHydroPID2.tb", &assign_GovHydroPID2_tb); + assign_map.emplace("GovHydroPID2.treg", &assign_GovHydroPID2_treg); + assign_map.emplace("GovHydroPID2.tw", &assign_GovHydroPID2_tw); + assign_map.emplace("GovHydroPID2.velmax", &assign_GovHydroPID2_velmax); + assign_map.emplace("GovHydroPID2.velmin", &assign_GovHydroPID2_velmin); } void GovHydroPID2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void GovHydroPID2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPID2.atw", &get_GovHydroPID2_atw); - get_map.emplace("cim:GovHydroPID2.d", &get_GovHydroPID2_d); - get_map.emplace("cim:GovHydroPID2.feedbackSignal", &get_GovHydroPID2_feedbackSignal); - get_map.emplace("cim:GovHydroPID2.g0", &get_GovHydroPID2_g0); - get_map.emplace("cim:GovHydroPID2.g1", &get_GovHydroPID2_g1); - get_map.emplace("cim:GovHydroPID2.g2", &get_GovHydroPID2_g2); - get_map.emplace("cim:GovHydroPID2.gmax", &get_GovHydroPID2_gmax); - get_map.emplace("cim:GovHydroPID2.gmin", &get_GovHydroPID2_gmin); - get_map.emplace("cim:GovHydroPID2.kd", &get_GovHydroPID2_kd); - get_map.emplace("cim:GovHydroPID2.ki", &get_GovHydroPID2_ki); - get_map.emplace("cim:GovHydroPID2.kp", &get_GovHydroPID2_kp); - get_map.emplace("cim:GovHydroPID2.mwbase", &get_GovHydroPID2_mwbase); - get_map.emplace("cim:GovHydroPID2.p1", &get_GovHydroPID2_p1); - get_map.emplace("cim:GovHydroPID2.p2", &get_GovHydroPID2_p2); - get_map.emplace("cim:GovHydroPID2.p3", &get_GovHydroPID2_p3); - get_map.emplace("cim:GovHydroPID2.rperm", &get_GovHydroPID2_rperm); - get_map.emplace("cim:GovHydroPID2.ta", &get_GovHydroPID2_ta); - get_map.emplace("cim:GovHydroPID2.tb", &get_GovHydroPID2_tb); - get_map.emplace("cim:GovHydroPID2.treg", &get_GovHydroPID2_treg); - get_map.emplace("cim:GovHydroPID2.tw", &get_GovHydroPID2_tw); - get_map.emplace("cim:GovHydroPID2.velmax", &get_GovHydroPID2_velmax); - get_map.emplace("cim:GovHydroPID2.velmin", &get_GovHydroPID2_velmin); + get_map.emplace("GovHydroPID2.atw", &get_GovHydroPID2_atw); + get_map.emplace("GovHydroPID2.d", &get_GovHydroPID2_d); + get_map.emplace("GovHydroPID2.feedbackSignal", &get_GovHydroPID2_feedbackSignal); + get_map.emplace("GovHydroPID2.g0", &get_GovHydroPID2_g0); + get_map.emplace("GovHydroPID2.g1", &get_GovHydroPID2_g1); + get_map.emplace("GovHydroPID2.g2", &get_GovHydroPID2_g2); + get_map.emplace("GovHydroPID2.gmax", &get_GovHydroPID2_gmax); + get_map.emplace("GovHydroPID2.gmin", &get_GovHydroPID2_gmin); + get_map.emplace("GovHydroPID2.kd", &get_GovHydroPID2_kd); + get_map.emplace("GovHydroPID2.ki", &get_GovHydroPID2_ki); + get_map.emplace("GovHydroPID2.kp", &get_GovHydroPID2_kp); + get_map.emplace("GovHydroPID2.mwbase", &get_GovHydroPID2_mwbase); + get_map.emplace("GovHydroPID2.p1", &get_GovHydroPID2_p1); + get_map.emplace("GovHydroPID2.p2", &get_GovHydroPID2_p2); + get_map.emplace("GovHydroPID2.p3", &get_GovHydroPID2_p3); + get_map.emplace("GovHydroPID2.rperm", &get_GovHydroPID2_rperm); + get_map.emplace("GovHydroPID2.ta", &get_GovHydroPID2_ta); + get_map.emplace("GovHydroPID2.tb", &get_GovHydroPID2_tb); + get_map.emplace("GovHydroPID2.treg", &get_GovHydroPID2_treg); + get_map.emplace("GovHydroPID2.tw", &get_GovHydroPID2_tw); + get_map.emplace("GovHydroPID2.velmax", &get_GovHydroPID2_velmax); + get_map.emplace("GovHydroPID2.velmin", &get_GovHydroPID2_velmin); } void GovHydroPID2::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void GovHydroPID2::addEnumGetFnsToMap(std::map& get_m TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPID2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPID2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPID2::declare() { return BaseClassDefiner(GovHydroPID2::addConstructToMap, GovHydroPID2::addPrimitiveAssignFnsToMap, GovHydroPID2::addClassAssignFnsToMap, GovHydroPID2::debugName); } +std::map GovHydroPID2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPID2_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroPID2.hpp b/CGMES_2.4.13_18DEC2013/GovHydroPID2.hpp index 3bbeb694e..3fb6cde1e 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroPID2.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroPID2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -98,8 +99,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -107,7 +115,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPID2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroPelton.cpp b/CGMES_2.4.13_18DEC2013/GovHydroPelton.cpp index 1f8f2bbfe..495ce5f7f 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroPelton.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroPelton.cpp @@ -11,59 +11,91 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPelton(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPelton.av0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.av1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.h1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.h2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.hn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.qc0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.qn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.simplifiedPelton", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.staticCompensating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.twnc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.twng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.tx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.va", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.valvmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.valvmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vav", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vcv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.waterTunnelSurgeChamberSimulation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.zsfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPelton::GovHydroPelton() {} GovHydroPelton::~GovHydroPelton() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPelton.av0", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.av1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.bp", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.h1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.h2", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.hn", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.kc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.qc0", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.qn", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.simplifiedPelton", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.staticCompensating", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.ts", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.tv", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.twnc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.twng", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.tx", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.va", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.valvmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.valvmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vav", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vcv", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.zsfc", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPelton::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPelton::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPelton::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPelton::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPelton::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPelton::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPelton::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPelton::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPelton::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPelton_av0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -886,39 +918,39 @@ const char* GovHydroPelton::debugString() const void GovHydroPelton::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPelton", &GovHydroPelton_factory); + factory_map.emplace("GovHydroPelton", &GovHydroPelton_factory); } void GovHydroPelton::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPelton.av0", &assign_GovHydroPelton_av0); - assign_map.emplace("cim:GovHydroPelton.av1", &assign_GovHydroPelton_av1); - assign_map.emplace("cim:GovHydroPelton.bp", &assign_GovHydroPelton_bp); - assign_map.emplace("cim:GovHydroPelton.db1", &assign_GovHydroPelton_db1); - assign_map.emplace("cim:GovHydroPelton.db2", &assign_GovHydroPelton_db2); - assign_map.emplace("cim:GovHydroPelton.h1", &assign_GovHydroPelton_h1); - assign_map.emplace("cim:GovHydroPelton.h2", &assign_GovHydroPelton_h2); - assign_map.emplace("cim:GovHydroPelton.hn", &assign_GovHydroPelton_hn); - assign_map.emplace("cim:GovHydroPelton.kc", &assign_GovHydroPelton_kc); - assign_map.emplace("cim:GovHydroPelton.kg", &assign_GovHydroPelton_kg); - assign_map.emplace("cim:GovHydroPelton.qc0", &assign_GovHydroPelton_qc0); - assign_map.emplace("cim:GovHydroPelton.qn", &assign_GovHydroPelton_qn); - assign_map.emplace("cim:GovHydroPelton.simplifiedPelton", &assign_GovHydroPelton_simplifiedPelton); - assign_map.emplace("cim:GovHydroPelton.staticCompensating", &assign_GovHydroPelton_staticCompensating); - assign_map.emplace("cim:GovHydroPelton.ta", &assign_GovHydroPelton_ta); - assign_map.emplace("cim:GovHydroPelton.ts", &assign_GovHydroPelton_ts); - assign_map.emplace("cim:GovHydroPelton.tv", &assign_GovHydroPelton_tv); - assign_map.emplace("cim:GovHydroPelton.twnc", &assign_GovHydroPelton_twnc); - assign_map.emplace("cim:GovHydroPelton.twng", &assign_GovHydroPelton_twng); - assign_map.emplace("cim:GovHydroPelton.tx", &assign_GovHydroPelton_tx); - assign_map.emplace("cim:GovHydroPelton.va", &assign_GovHydroPelton_va); - assign_map.emplace("cim:GovHydroPelton.valvmax", &assign_GovHydroPelton_valvmax); - assign_map.emplace("cim:GovHydroPelton.valvmin", &assign_GovHydroPelton_valvmin); - assign_map.emplace("cim:GovHydroPelton.vav", &assign_GovHydroPelton_vav); - assign_map.emplace("cim:GovHydroPelton.vc", &assign_GovHydroPelton_vc); - assign_map.emplace("cim:GovHydroPelton.vcv", &assign_GovHydroPelton_vcv); - assign_map.emplace("cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", &assign_GovHydroPelton_waterTunnelSurgeChamberSimulation); - assign_map.emplace("cim:GovHydroPelton.zsfc", &assign_GovHydroPelton_zsfc); + assign_map.emplace("GovHydroPelton.av0", &assign_GovHydroPelton_av0); + assign_map.emplace("GovHydroPelton.av1", &assign_GovHydroPelton_av1); + assign_map.emplace("GovHydroPelton.bp", &assign_GovHydroPelton_bp); + assign_map.emplace("GovHydroPelton.db1", &assign_GovHydroPelton_db1); + assign_map.emplace("GovHydroPelton.db2", &assign_GovHydroPelton_db2); + assign_map.emplace("GovHydroPelton.h1", &assign_GovHydroPelton_h1); + assign_map.emplace("GovHydroPelton.h2", &assign_GovHydroPelton_h2); + assign_map.emplace("GovHydroPelton.hn", &assign_GovHydroPelton_hn); + assign_map.emplace("GovHydroPelton.kc", &assign_GovHydroPelton_kc); + assign_map.emplace("GovHydroPelton.kg", &assign_GovHydroPelton_kg); + assign_map.emplace("GovHydroPelton.qc0", &assign_GovHydroPelton_qc0); + assign_map.emplace("GovHydroPelton.qn", &assign_GovHydroPelton_qn); + assign_map.emplace("GovHydroPelton.simplifiedPelton", &assign_GovHydroPelton_simplifiedPelton); + assign_map.emplace("GovHydroPelton.staticCompensating", &assign_GovHydroPelton_staticCompensating); + assign_map.emplace("GovHydroPelton.ta", &assign_GovHydroPelton_ta); + assign_map.emplace("GovHydroPelton.ts", &assign_GovHydroPelton_ts); + assign_map.emplace("GovHydroPelton.tv", &assign_GovHydroPelton_tv); + assign_map.emplace("GovHydroPelton.twnc", &assign_GovHydroPelton_twnc); + assign_map.emplace("GovHydroPelton.twng", &assign_GovHydroPelton_twng); + assign_map.emplace("GovHydroPelton.tx", &assign_GovHydroPelton_tx); + assign_map.emplace("GovHydroPelton.va", &assign_GovHydroPelton_va); + assign_map.emplace("GovHydroPelton.valvmax", &assign_GovHydroPelton_valvmax); + assign_map.emplace("GovHydroPelton.valvmin", &assign_GovHydroPelton_valvmin); + assign_map.emplace("GovHydroPelton.vav", &assign_GovHydroPelton_vav); + assign_map.emplace("GovHydroPelton.vc", &assign_GovHydroPelton_vc); + assign_map.emplace("GovHydroPelton.vcv", &assign_GovHydroPelton_vcv); + assign_map.emplace("GovHydroPelton.waterTunnelSurgeChamberSimulation", &assign_GovHydroPelton_waterTunnelSurgeChamberSimulation); + assign_map.emplace("GovHydroPelton.zsfc", &assign_GovHydroPelton_zsfc); } void GovHydroPelton::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -928,34 +960,34 @@ void GovHydroPelton::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPelton.av0", &get_GovHydroPelton_av0); - get_map.emplace("cim:GovHydroPelton.av1", &get_GovHydroPelton_av1); - get_map.emplace("cim:GovHydroPelton.bp", &get_GovHydroPelton_bp); - get_map.emplace("cim:GovHydroPelton.db1", &get_GovHydroPelton_db1); - get_map.emplace("cim:GovHydroPelton.db2", &get_GovHydroPelton_db2); - get_map.emplace("cim:GovHydroPelton.h1", &get_GovHydroPelton_h1); - get_map.emplace("cim:GovHydroPelton.h2", &get_GovHydroPelton_h2); - get_map.emplace("cim:GovHydroPelton.hn", &get_GovHydroPelton_hn); - get_map.emplace("cim:GovHydroPelton.kc", &get_GovHydroPelton_kc); - get_map.emplace("cim:GovHydroPelton.kg", &get_GovHydroPelton_kg); - get_map.emplace("cim:GovHydroPelton.qc0", &get_GovHydroPelton_qc0); - get_map.emplace("cim:GovHydroPelton.qn", &get_GovHydroPelton_qn); - get_map.emplace("cim:GovHydroPelton.simplifiedPelton", &get_GovHydroPelton_simplifiedPelton); - get_map.emplace("cim:GovHydroPelton.staticCompensating", &get_GovHydroPelton_staticCompensating); - get_map.emplace("cim:GovHydroPelton.ta", &get_GovHydroPelton_ta); - get_map.emplace("cim:GovHydroPelton.ts", &get_GovHydroPelton_ts); - get_map.emplace("cim:GovHydroPelton.tv", &get_GovHydroPelton_tv); - get_map.emplace("cim:GovHydroPelton.twnc", &get_GovHydroPelton_twnc); - get_map.emplace("cim:GovHydroPelton.twng", &get_GovHydroPelton_twng); - get_map.emplace("cim:GovHydroPelton.tx", &get_GovHydroPelton_tx); - get_map.emplace("cim:GovHydroPelton.va", &get_GovHydroPelton_va); - get_map.emplace("cim:GovHydroPelton.valvmax", &get_GovHydroPelton_valvmax); - get_map.emplace("cim:GovHydroPelton.valvmin", &get_GovHydroPelton_valvmin); - get_map.emplace("cim:GovHydroPelton.vav", &get_GovHydroPelton_vav); - get_map.emplace("cim:GovHydroPelton.vc", &get_GovHydroPelton_vc); - get_map.emplace("cim:GovHydroPelton.vcv", &get_GovHydroPelton_vcv); - get_map.emplace("cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", &get_GovHydroPelton_waterTunnelSurgeChamberSimulation); - get_map.emplace("cim:GovHydroPelton.zsfc", &get_GovHydroPelton_zsfc); + get_map.emplace("GovHydroPelton.av0", &get_GovHydroPelton_av0); + get_map.emplace("GovHydroPelton.av1", &get_GovHydroPelton_av1); + get_map.emplace("GovHydroPelton.bp", &get_GovHydroPelton_bp); + get_map.emplace("GovHydroPelton.db1", &get_GovHydroPelton_db1); + get_map.emplace("GovHydroPelton.db2", &get_GovHydroPelton_db2); + get_map.emplace("GovHydroPelton.h1", &get_GovHydroPelton_h1); + get_map.emplace("GovHydroPelton.h2", &get_GovHydroPelton_h2); + get_map.emplace("GovHydroPelton.hn", &get_GovHydroPelton_hn); + get_map.emplace("GovHydroPelton.kc", &get_GovHydroPelton_kc); + get_map.emplace("GovHydroPelton.kg", &get_GovHydroPelton_kg); + get_map.emplace("GovHydroPelton.qc0", &get_GovHydroPelton_qc0); + get_map.emplace("GovHydroPelton.qn", &get_GovHydroPelton_qn); + get_map.emplace("GovHydroPelton.simplifiedPelton", &get_GovHydroPelton_simplifiedPelton); + get_map.emplace("GovHydroPelton.staticCompensating", &get_GovHydroPelton_staticCompensating); + get_map.emplace("GovHydroPelton.ta", &get_GovHydroPelton_ta); + get_map.emplace("GovHydroPelton.ts", &get_GovHydroPelton_ts); + get_map.emplace("GovHydroPelton.tv", &get_GovHydroPelton_tv); + get_map.emplace("GovHydroPelton.twnc", &get_GovHydroPelton_twnc); + get_map.emplace("GovHydroPelton.twng", &get_GovHydroPelton_twng); + get_map.emplace("GovHydroPelton.tx", &get_GovHydroPelton_tx); + get_map.emplace("GovHydroPelton.va", &get_GovHydroPelton_va); + get_map.emplace("GovHydroPelton.valvmax", &get_GovHydroPelton_valvmax); + get_map.emplace("GovHydroPelton.valvmin", &get_GovHydroPelton_valvmin); + get_map.emplace("GovHydroPelton.vav", &get_GovHydroPelton_vav); + get_map.emplace("GovHydroPelton.vc", &get_GovHydroPelton_vc); + get_map.emplace("GovHydroPelton.vcv", &get_GovHydroPelton_vcv); + get_map.emplace("GovHydroPelton.waterTunnelSurgeChamberSimulation", &get_GovHydroPelton_waterTunnelSurgeChamberSimulation); + get_map.emplace("GovHydroPelton.zsfc", &get_GovHydroPelton_zsfc); } void GovHydroPelton::addClassGetFnsToMap(std::map& get_map) const @@ -968,11 +1000,25 @@ void GovHydroPelton::addEnumGetFnsToMap(std::map& get TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPelton::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPelton" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPelton::declare() { return BaseClassDefiner(GovHydroPelton::addConstructToMap, GovHydroPelton::addPrimitiveAssignFnsToMap, GovHydroPelton::addClassAssignFnsToMap, GovHydroPelton::debugName); } +std::map GovHydroPelton::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPelton_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroPelton.hpp b/CGMES_2.4.13_18DEC2013/GovHydroPelton.hpp index 8536bb331..1e3880ca5 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroPelton.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroPelton.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Area.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -119,8 +120,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -128,7 +136,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPelton_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroR.cpp b/CGMES_2.4.13_18DEC2013/GovHydroR.cpp index b98e8cfc6..5d7193936 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroR.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroR.cpp @@ -11,73 +11,105 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroR(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroR.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.h0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroR::GovHydroR() {} GovHydroR::~GovHydroR() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroR.at", { CGMESProfile::DY, } }, - { "cim:GovHydroR.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydroR.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.h0", { CGMESProfile::DY, } }, - { "cim:GovHydroR.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroR.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroR.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroR.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroR.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydroR.r", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t7", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t8", { CGMESProfile::DY, } }, - { "cim:GovHydroR.td", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroR.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroR.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroR::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroR::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroR::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroR::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroR::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroR::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroR::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroR::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroR::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroR_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1306,53 +1338,53 @@ const char* GovHydroR::debugString() const void GovHydroR::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroR", &GovHydroR_factory); + factory_map.emplace("GovHydroR", &GovHydroR_factory); } void GovHydroR::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroR.at", &assign_GovHydroR_at); - assign_map.emplace("cim:GovHydroR.db1", &assign_GovHydroR_db1); - assign_map.emplace("cim:GovHydroR.db2", &assign_GovHydroR_db2); - assign_map.emplace("cim:GovHydroR.dturb", &assign_GovHydroR_dturb); - assign_map.emplace("cim:GovHydroR.eps", &assign_GovHydroR_eps); - assign_map.emplace("cim:GovHydroR.gmax", &assign_GovHydroR_gmax); - assign_map.emplace("cim:GovHydroR.gmin", &assign_GovHydroR_gmin); - assign_map.emplace("cim:GovHydroR.gv1", &assign_GovHydroR_gv1); - assign_map.emplace("cim:GovHydroR.gv2", &assign_GovHydroR_gv2); - assign_map.emplace("cim:GovHydroR.gv3", &assign_GovHydroR_gv3); - assign_map.emplace("cim:GovHydroR.gv4", &assign_GovHydroR_gv4); - assign_map.emplace("cim:GovHydroR.gv5", &assign_GovHydroR_gv5); - assign_map.emplace("cim:GovHydroR.gv6", &assign_GovHydroR_gv6); - assign_map.emplace("cim:GovHydroR.h0", &assign_GovHydroR_h0); - assign_map.emplace("cim:GovHydroR.inputSignal", &assign_GovHydroR_inputSignal); - assign_map.emplace("cim:GovHydroR.kg", &assign_GovHydroR_kg); - assign_map.emplace("cim:GovHydroR.ki", &assign_GovHydroR_ki); - assign_map.emplace("cim:GovHydroR.mwbase", &assign_GovHydroR_mwbase); - assign_map.emplace("cim:GovHydroR.pgv1", &assign_GovHydroR_pgv1); - assign_map.emplace("cim:GovHydroR.pgv2", &assign_GovHydroR_pgv2); - assign_map.emplace("cim:GovHydroR.pgv3", &assign_GovHydroR_pgv3); - assign_map.emplace("cim:GovHydroR.pgv4", &assign_GovHydroR_pgv4); - assign_map.emplace("cim:GovHydroR.pgv5", &assign_GovHydroR_pgv5); - assign_map.emplace("cim:GovHydroR.pgv6", &assign_GovHydroR_pgv6); - assign_map.emplace("cim:GovHydroR.pmax", &assign_GovHydroR_pmax); - assign_map.emplace("cim:GovHydroR.pmin", &assign_GovHydroR_pmin); - assign_map.emplace("cim:GovHydroR.qnl", &assign_GovHydroR_qnl); - assign_map.emplace("cim:GovHydroR.r", &assign_GovHydroR_r); - assign_map.emplace("cim:GovHydroR.t1", &assign_GovHydroR_t1); - assign_map.emplace("cim:GovHydroR.t2", &assign_GovHydroR_t2); - assign_map.emplace("cim:GovHydroR.t3", &assign_GovHydroR_t3); - assign_map.emplace("cim:GovHydroR.t4", &assign_GovHydroR_t4); - assign_map.emplace("cim:GovHydroR.t5", &assign_GovHydroR_t5); - assign_map.emplace("cim:GovHydroR.t6", &assign_GovHydroR_t6); - assign_map.emplace("cim:GovHydroR.t7", &assign_GovHydroR_t7); - assign_map.emplace("cim:GovHydroR.t8", &assign_GovHydroR_t8); - assign_map.emplace("cim:GovHydroR.td", &assign_GovHydroR_td); - assign_map.emplace("cim:GovHydroR.tp", &assign_GovHydroR_tp); - assign_map.emplace("cim:GovHydroR.tt", &assign_GovHydroR_tt); - assign_map.emplace("cim:GovHydroR.tw", &assign_GovHydroR_tw); - assign_map.emplace("cim:GovHydroR.velcl", &assign_GovHydroR_velcl); - assign_map.emplace("cim:GovHydroR.velop", &assign_GovHydroR_velop); + assign_map.emplace("GovHydroR.at", &assign_GovHydroR_at); + assign_map.emplace("GovHydroR.db1", &assign_GovHydroR_db1); + assign_map.emplace("GovHydroR.db2", &assign_GovHydroR_db2); + assign_map.emplace("GovHydroR.dturb", &assign_GovHydroR_dturb); + assign_map.emplace("GovHydroR.eps", &assign_GovHydroR_eps); + assign_map.emplace("GovHydroR.gmax", &assign_GovHydroR_gmax); + assign_map.emplace("GovHydroR.gmin", &assign_GovHydroR_gmin); + assign_map.emplace("GovHydroR.gv1", &assign_GovHydroR_gv1); + assign_map.emplace("GovHydroR.gv2", &assign_GovHydroR_gv2); + assign_map.emplace("GovHydroR.gv3", &assign_GovHydroR_gv3); + assign_map.emplace("GovHydroR.gv4", &assign_GovHydroR_gv4); + assign_map.emplace("GovHydroR.gv5", &assign_GovHydroR_gv5); + assign_map.emplace("GovHydroR.gv6", &assign_GovHydroR_gv6); + assign_map.emplace("GovHydroR.h0", &assign_GovHydroR_h0); + assign_map.emplace("GovHydroR.inputSignal", &assign_GovHydroR_inputSignal); + assign_map.emplace("GovHydroR.kg", &assign_GovHydroR_kg); + assign_map.emplace("GovHydroR.ki", &assign_GovHydroR_ki); + assign_map.emplace("GovHydroR.mwbase", &assign_GovHydroR_mwbase); + assign_map.emplace("GovHydroR.pgv1", &assign_GovHydroR_pgv1); + assign_map.emplace("GovHydroR.pgv2", &assign_GovHydroR_pgv2); + assign_map.emplace("GovHydroR.pgv3", &assign_GovHydroR_pgv3); + assign_map.emplace("GovHydroR.pgv4", &assign_GovHydroR_pgv4); + assign_map.emplace("GovHydroR.pgv5", &assign_GovHydroR_pgv5); + assign_map.emplace("GovHydroR.pgv6", &assign_GovHydroR_pgv6); + assign_map.emplace("GovHydroR.pmax", &assign_GovHydroR_pmax); + assign_map.emplace("GovHydroR.pmin", &assign_GovHydroR_pmin); + assign_map.emplace("GovHydroR.qnl", &assign_GovHydroR_qnl); + assign_map.emplace("GovHydroR.r", &assign_GovHydroR_r); + assign_map.emplace("GovHydroR.t1", &assign_GovHydroR_t1); + assign_map.emplace("GovHydroR.t2", &assign_GovHydroR_t2); + assign_map.emplace("GovHydroR.t3", &assign_GovHydroR_t3); + assign_map.emplace("GovHydroR.t4", &assign_GovHydroR_t4); + assign_map.emplace("GovHydroR.t5", &assign_GovHydroR_t5); + assign_map.emplace("GovHydroR.t6", &assign_GovHydroR_t6); + assign_map.emplace("GovHydroR.t7", &assign_GovHydroR_t7); + assign_map.emplace("GovHydroR.t8", &assign_GovHydroR_t8); + assign_map.emplace("GovHydroR.td", &assign_GovHydroR_td); + assign_map.emplace("GovHydroR.tp", &assign_GovHydroR_tp); + assign_map.emplace("GovHydroR.tt", &assign_GovHydroR_tt); + assign_map.emplace("GovHydroR.tw", &assign_GovHydroR_tw); + assign_map.emplace("GovHydroR.velcl", &assign_GovHydroR_velcl); + assign_map.emplace("GovHydroR.velop", &assign_GovHydroR_velop); } void GovHydroR::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1362,48 +1394,48 @@ void GovHydroR::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroR.at", &get_GovHydroR_at); - get_map.emplace("cim:GovHydroR.db1", &get_GovHydroR_db1); - get_map.emplace("cim:GovHydroR.db2", &get_GovHydroR_db2); - get_map.emplace("cim:GovHydroR.dturb", &get_GovHydroR_dturb); - get_map.emplace("cim:GovHydroR.eps", &get_GovHydroR_eps); - get_map.emplace("cim:GovHydroR.gmax", &get_GovHydroR_gmax); - get_map.emplace("cim:GovHydroR.gmin", &get_GovHydroR_gmin); - get_map.emplace("cim:GovHydroR.gv1", &get_GovHydroR_gv1); - get_map.emplace("cim:GovHydroR.gv2", &get_GovHydroR_gv2); - get_map.emplace("cim:GovHydroR.gv3", &get_GovHydroR_gv3); - get_map.emplace("cim:GovHydroR.gv4", &get_GovHydroR_gv4); - get_map.emplace("cim:GovHydroR.gv5", &get_GovHydroR_gv5); - get_map.emplace("cim:GovHydroR.gv6", &get_GovHydroR_gv6); - get_map.emplace("cim:GovHydroR.h0", &get_GovHydroR_h0); - get_map.emplace("cim:GovHydroR.inputSignal", &get_GovHydroR_inputSignal); - get_map.emplace("cim:GovHydroR.kg", &get_GovHydroR_kg); - get_map.emplace("cim:GovHydroR.ki", &get_GovHydroR_ki); - get_map.emplace("cim:GovHydroR.mwbase", &get_GovHydroR_mwbase); - get_map.emplace("cim:GovHydroR.pgv1", &get_GovHydroR_pgv1); - get_map.emplace("cim:GovHydroR.pgv2", &get_GovHydroR_pgv2); - get_map.emplace("cim:GovHydroR.pgv3", &get_GovHydroR_pgv3); - get_map.emplace("cim:GovHydroR.pgv4", &get_GovHydroR_pgv4); - get_map.emplace("cim:GovHydroR.pgv5", &get_GovHydroR_pgv5); - get_map.emplace("cim:GovHydroR.pgv6", &get_GovHydroR_pgv6); - get_map.emplace("cim:GovHydroR.pmax", &get_GovHydroR_pmax); - get_map.emplace("cim:GovHydroR.pmin", &get_GovHydroR_pmin); - get_map.emplace("cim:GovHydroR.qnl", &get_GovHydroR_qnl); - get_map.emplace("cim:GovHydroR.r", &get_GovHydroR_r); - get_map.emplace("cim:GovHydroR.t1", &get_GovHydroR_t1); - get_map.emplace("cim:GovHydroR.t2", &get_GovHydroR_t2); - get_map.emplace("cim:GovHydroR.t3", &get_GovHydroR_t3); - get_map.emplace("cim:GovHydroR.t4", &get_GovHydroR_t4); - get_map.emplace("cim:GovHydroR.t5", &get_GovHydroR_t5); - get_map.emplace("cim:GovHydroR.t6", &get_GovHydroR_t6); - get_map.emplace("cim:GovHydroR.t7", &get_GovHydroR_t7); - get_map.emplace("cim:GovHydroR.t8", &get_GovHydroR_t8); - get_map.emplace("cim:GovHydroR.td", &get_GovHydroR_td); - get_map.emplace("cim:GovHydroR.tp", &get_GovHydroR_tp); - get_map.emplace("cim:GovHydroR.tt", &get_GovHydroR_tt); - get_map.emplace("cim:GovHydroR.tw", &get_GovHydroR_tw); - get_map.emplace("cim:GovHydroR.velcl", &get_GovHydroR_velcl); - get_map.emplace("cim:GovHydroR.velop", &get_GovHydroR_velop); + get_map.emplace("GovHydroR.at", &get_GovHydroR_at); + get_map.emplace("GovHydroR.db1", &get_GovHydroR_db1); + get_map.emplace("GovHydroR.db2", &get_GovHydroR_db2); + get_map.emplace("GovHydroR.dturb", &get_GovHydroR_dturb); + get_map.emplace("GovHydroR.eps", &get_GovHydroR_eps); + get_map.emplace("GovHydroR.gmax", &get_GovHydroR_gmax); + get_map.emplace("GovHydroR.gmin", &get_GovHydroR_gmin); + get_map.emplace("GovHydroR.gv1", &get_GovHydroR_gv1); + get_map.emplace("GovHydroR.gv2", &get_GovHydroR_gv2); + get_map.emplace("GovHydroR.gv3", &get_GovHydroR_gv3); + get_map.emplace("GovHydroR.gv4", &get_GovHydroR_gv4); + get_map.emplace("GovHydroR.gv5", &get_GovHydroR_gv5); + get_map.emplace("GovHydroR.gv6", &get_GovHydroR_gv6); + get_map.emplace("GovHydroR.h0", &get_GovHydroR_h0); + get_map.emplace("GovHydroR.inputSignal", &get_GovHydroR_inputSignal); + get_map.emplace("GovHydroR.kg", &get_GovHydroR_kg); + get_map.emplace("GovHydroR.ki", &get_GovHydroR_ki); + get_map.emplace("GovHydroR.mwbase", &get_GovHydroR_mwbase); + get_map.emplace("GovHydroR.pgv1", &get_GovHydroR_pgv1); + get_map.emplace("GovHydroR.pgv2", &get_GovHydroR_pgv2); + get_map.emplace("GovHydroR.pgv3", &get_GovHydroR_pgv3); + get_map.emplace("GovHydroR.pgv4", &get_GovHydroR_pgv4); + get_map.emplace("GovHydroR.pgv5", &get_GovHydroR_pgv5); + get_map.emplace("GovHydroR.pgv6", &get_GovHydroR_pgv6); + get_map.emplace("GovHydroR.pmax", &get_GovHydroR_pmax); + get_map.emplace("GovHydroR.pmin", &get_GovHydroR_pmin); + get_map.emplace("GovHydroR.qnl", &get_GovHydroR_qnl); + get_map.emplace("GovHydroR.r", &get_GovHydroR_r); + get_map.emplace("GovHydroR.t1", &get_GovHydroR_t1); + get_map.emplace("GovHydroR.t2", &get_GovHydroR_t2); + get_map.emplace("GovHydroR.t3", &get_GovHydroR_t3); + get_map.emplace("GovHydroR.t4", &get_GovHydroR_t4); + get_map.emplace("GovHydroR.t5", &get_GovHydroR_t5); + get_map.emplace("GovHydroR.t6", &get_GovHydroR_t6); + get_map.emplace("GovHydroR.t7", &get_GovHydroR_t7); + get_map.emplace("GovHydroR.t8", &get_GovHydroR_t8); + get_map.emplace("GovHydroR.td", &get_GovHydroR_td); + get_map.emplace("GovHydroR.tp", &get_GovHydroR_tp); + get_map.emplace("GovHydroR.tt", &get_GovHydroR_tt); + get_map.emplace("GovHydroR.tw", &get_GovHydroR_tw); + get_map.emplace("GovHydroR.velcl", &get_GovHydroR_velcl); + get_map.emplace("GovHydroR.velop", &get_GovHydroR_velop); } void GovHydroR::addClassGetFnsToMap(std::map& get_map) const @@ -1416,11 +1448,25 @@ void GovHydroR::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroR::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroR" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroR::declare() { return BaseClassDefiner(GovHydroR::addConstructToMap, GovHydroR::addPrimitiveAssignFnsToMap, GovHydroR::addClassAssignFnsToMap, GovHydroR::debugName); } +std::map GovHydroR::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroR_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroR.hpp b/CGMES_2.4.13_18DEC2013/GovHydroR.hpp index a14a39e56..584c41f87 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroR.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroR.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -159,8 +160,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -168,7 +176,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroR_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroWEH.cpp b/CGMES_2.4.13_18DEC2013/GovHydroWEH.cpp index a59096688..c237f3167 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroWEH.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroWEH.cpp @@ -11,82 +11,114 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroWEH(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroWEH.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dicn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dpv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.feedbackSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gtmxcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gtmxop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.rpg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.rpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tdv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroWEH::GovHydroWEH() {} GovHydroWEH::~GovHydroWEH() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroWEH.db", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dicn", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dpv", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.feedbackSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp10", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp6", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp7", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp8", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp9", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gtmxcl", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gtmxop", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss10", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss6", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss7", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss8", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss9", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.rpg", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.rpp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.td", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tdv", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tg", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tpe", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tw", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroWEH::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroWEH::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroWEH::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroWEH::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroWEH::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroWEH::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroWEH::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroWEH::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroWEH::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroWEH_db(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1576,62 +1608,62 @@ const char* GovHydroWEH::debugString() const void GovHydroWEH::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroWEH", &GovHydroWEH_factory); + factory_map.emplace("GovHydroWEH", &GovHydroWEH_factory); } void GovHydroWEH::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroWEH.db", &assign_GovHydroWEH_db); - assign_map.emplace("cim:GovHydroWEH.dicn", &assign_GovHydroWEH_dicn); - assign_map.emplace("cim:GovHydroWEH.dpv", &assign_GovHydroWEH_dpv); - assign_map.emplace("cim:GovHydroWEH.dturb", &assign_GovHydroWEH_dturb); - assign_map.emplace("cim:GovHydroWEH.feedbackSignal", &assign_GovHydroWEH_feedbackSignal); - assign_map.emplace("cim:GovHydroWEH.fl1", &assign_GovHydroWEH_fl1); - assign_map.emplace("cim:GovHydroWEH.fl2", &assign_GovHydroWEH_fl2); - assign_map.emplace("cim:GovHydroWEH.fl3", &assign_GovHydroWEH_fl3); - assign_map.emplace("cim:GovHydroWEH.fl4", &assign_GovHydroWEH_fl4); - assign_map.emplace("cim:GovHydroWEH.fl5", &assign_GovHydroWEH_fl5); - assign_map.emplace("cim:GovHydroWEH.fp1", &assign_GovHydroWEH_fp1); - assign_map.emplace("cim:GovHydroWEH.fp10", &assign_GovHydroWEH_fp10); - assign_map.emplace("cim:GovHydroWEH.fp2", &assign_GovHydroWEH_fp2); - assign_map.emplace("cim:GovHydroWEH.fp3", &assign_GovHydroWEH_fp3); - assign_map.emplace("cim:GovHydroWEH.fp4", &assign_GovHydroWEH_fp4); - assign_map.emplace("cim:GovHydroWEH.fp5", &assign_GovHydroWEH_fp5); - assign_map.emplace("cim:GovHydroWEH.fp6", &assign_GovHydroWEH_fp6); - assign_map.emplace("cim:GovHydroWEH.fp7", &assign_GovHydroWEH_fp7); - assign_map.emplace("cim:GovHydroWEH.fp8", &assign_GovHydroWEH_fp8); - assign_map.emplace("cim:GovHydroWEH.fp9", &assign_GovHydroWEH_fp9); - assign_map.emplace("cim:GovHydroWEH.gmax", &assign_GovHydroWEH_gmax); - assign_map.emplace("cim:GovHydroWEH.gmin", &assign_GovHydroWEH_gmin); - assign_map.emplace("cim:GovHydroWEH.gtmxcl", &assign_GovHydroWEH_gtmxcl); - assign_map.emplace("cim:GovHydroWEH.gtmxop", &assign_GovHydroWEH_gtmxop); - assign_map.emplace("cim:GovHydroWEH.gv1", &assign_GovHydroWEH_gv1); - assign_map.emplace("cim:GovHydroWEH.gv2", &assign_GovHydroWEH_gv2); - assign_map.emplace("cim:GovHydroWEH.gv3", &assign_GovHydroWEH_gv3); - assign_map.emplace("cim:GovHydroWEH.gv4", &assign_GovHydroWEH_gv4); - assign_map.emplace("cim:GovHydroWEH.gv5", &assign_GovHydroWEH_gv5); - assign_map.emplace("cim:GovHydroWEH.kd", &assign_GovHydroWEH_kd); - assign_map.emplace("cim:GovHydroWEH.ki", &assign_GovHydroWEH_ki); - assign_map.emplace("cim:GovHydroWEH.kp", &assign_GovHydroWEH_kp); - assign_map.emplace("cim:GovHydroWEH.mwbase", &assign_GovHydroWEH_mwbase); - assign_map.emplace("cim:GovHydroWEH.pmss1", &assign_GovHydroWEH_pmss1); - assign_map.emplace("cim:GovHydroWEH.pmss10", &assign_GovHydroWEH_pmss10); - assign_map.emplace("cim:GovHydroWEH.pmss2", &assign_GovHydroWEH_pmss2); - assign_map.emplace("cim:GovHydroWEH.pmss3", &assign_GovHydroWEH_pmss3); - assign_map.emplace("cim:GovHydroWEH.pmss4", &assign_GovHydroWEH_pmss4); - assign_map.emplace("cim:GovHydroWEH.pmss5", &assign_GovHydroWEH_pmss5); - assign_map.emplace("cim:GovHydroWEH.pmss6", &assign_GovHydroWEH_pmss6); - assign_map.emplace("cim:GovHydroWEH.pmss7", &assign_GovHydroWEH_pmss7); - assign_map.emplace("cim:GovHydroWEH.pmss8", &assign_GovHydroWEH_pmss8); - assign_map.emplace("cim:GovHydroWEH.pmss9", &assign_GovHydroWEH_pmss9); - assign_map.emplace("cim:GovHydroWEH.rpg", &assign_GovHydroWEH_rpg); - assign_map.emplace("cim:GovHydroWEH.rpp", &assign_GovHydroWEH_rpp); - assign_map.emplace("cim:GovHydroWEH.td", &assign_GovHydroWEH_td); - assign_map.emplace("cim:GovHydroWEH.tdv", &assign_GovHydroWEH_tdv); - assign_map.emplace("cim:GovHydroWEH.tg", &assign_GovHydroWEH_tg); - assign_map.emplace("cim:GovHydroWEH.tp", &assign_GovHydroWEH_tp); - assign_map.emplace("cim:GovHydroWEH.tpe", &assign_GovHydroWEH_tpe); - assign_map.emplace("cim:GovHydroWEH.tw", &assign_GovHydroWEH_tw); + assign_map.emplace("GovHydroWEH.db", &assign_GovHydroWEH_db); + assign_map.emplace("GovHydroWEH.dicn", &assign_GovHydroWEH_dicn); + assign_map.emplace("GovHydroWEH.dpv", &assign_GovHydroWEH_dpv); + assign_map.emplace("GovHydroWEH.dturb", &assign_GovHydroWEH_dturb); + assign_map.emplace("GovHydroWEH.feedbackSignal", &assign_GovHydroWEH_feedbackSignal); + assign_map.emplace("GovHydroWEH.fl1", &assign_GovHydroWEH_fl1); + assign_map.emplace("GovHydroWEH.fl2", &assign_GovHydroWEH_fl2); + assign_map.emplace("GovHydroWEH.fl3", &assign_GovHydroWEH_fl3); + assign_map.emplace("GovHydroWEH.fl4", &assign_GovHydroWEH_fl4); + assign_map.emplace("GovHydroWEH.fl5", &assign_GovHydroWEH_fl5); + assign_map.emplace("GovHydroWEH.fp1", &assign_GovHydroWEH_fp1); + assign_map.emplace("GovHydroWEH.fp10", &assign_GovHydroWEH_fp10); + assign_map.emplace("GovHydroWEH.fp2", &assign_GovHydroWEH_fp2); + assign_map.emplace("GovHydroWEH.fp3", &assign_GovHydroWEH_fp3); + assign_map.emplace("GovHydroWEH.fp4", &assign_GovHydroWEH_fp4); + assign_map.emplace("GovHydroWEH.fp5", &assign_GovHydroWEH_fp5); + assign_map.emplace("GovHydroWEH.fp6", &assign_GovHydroWEH_fp6); + assign_map.emplace("GovHydroWEH.fp7", &assign_GovHydroWEH_fp7); + assign_map.emplace("GovHydroWEH.fp8", &assign_GovHydroWEH_fp8); + assign_map.emplace("GovHydroWEH.fp9", &assign_GovHydroWEH_fp9); + assign_map.emplace("GovHydroWEH.gmax", &assign_GovHydroWEH_gmax); + assign_map.emplace("GovHydroWEH.gmin", &assign_GovHydroWEH_gmin); + assign_map.emplace("GovHydroWEH.gtmxcl", &assign_GovHydroWEH_gtmxcl); + assign_map.emplace("GovHydroWEH.gtmxop", &assign_GovHydroWEH_gtmxop); + assign_map.emplace("GovHydroWEH.gv1", &assign_GovHydroWEH_gv1); + assign_map.emplace("GovHydroWEH.gv2", &assign_GovHydroWEH_gv2); + assign_map.emplace("GovHydroWEH.gv3", &assign_GovHydroWEH_gv3); + assign_map.emplace("GovHydroWEH.gv4", &assign_GovHydroWEH_gv4); + assign_map.emplace("GovHydroWEH.gv5", &assign_GovHydroWEH_gv5); + assign_map.emplace("GovHydroWEH.kd", &assign_GovHydroWEH_kd); + assign_map.emplace("GovHydroWEH.ki", &assign_GovHydroWEH_ki); + assign_map.emplace("GovHydroWEH.kp", &assign_GovHydroWEH_kp); + assign_map.emplace("GovHydroWEH.mwbase", &assign_GovHydroWEH_mwbase); + assign_map.emplace("GovHydroWEH.pmss1", &assign_GovHydroWEH_pmss1); + assign_map.emplace("GovHydroWEH.pmss10", &assign_GovHydroWEH_pmss10); + assign_map.emplace("GovHydroWEH.pmss2", &assign_GovHydroWEH_pmss2); + assign_map.emplace("GovHydroWEH.pmss3", &assign_GovHydroWEH_pmss3); + assign_map.emplace("GovHydroWEH.pmss4", &assign_GovHydroWEH_pmss4); + assign_map.emplace("GovHydroWEH.pmss5", &assign_GovHydroWEH_pmss5); + assign_map.emplace("GovHydroWEH.pmss6", &assign_GovHydroWEH_pmss6); + assign_map.emplace("GovHydroWEH.pmss7", &assign_GovHydroWEH_pmss7); + assign_map.emplace("GovHydroWEH.pmss8", &assign_GovHydroWEH_pmss8); + assign_map.emplace("GovHydroWEH.pmss9", &assign_GovHydroWEH_pmss9); + assign_map.emplace("GovHydroWEH.rpg", &assign_GovHydroWEH_rpg); + assign_map.emplace("GovHydroWEH.rpp", &assign_GovHydroWEH_rpp); + assign_map.emplace("GovHydroWEH.td", &assign_GovHydroWEH_td); + assign_map.emplace("GovHydroWEH.tdv", &assign_GovHydroWEH_tdv); + assign_map.emplace("GovHydroWEH.tg", &assign_GovHydroWEH_tg); + assign_map.emplace("GovHydroWEH.tp", &assign_GovHydroWEH_tp); + assign_map.emplace("GovHydroWEH.tpe", &assign_GovHydroWEH_tpe); + assign_map.emplace("GovHydroWEH.tw", &assign_GovHydroWEH_tw); } void GovHydroWEH::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1641,57 +1673,57 @@ void GovHydroWEH::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroWEH.db", &get_GovHydroWEH_db); - get_map.emplace("cim:GovHydroWEH.dicn", &get_GovHydroWEH_dicn); - get_map.emplace("cim:GovHydroWEH.dpv", &get_GovHydroWEH_dpv); - get_map.emplace("cim:GovHydroWEH.dturb", &get_GovHydroWEH_dturb); - get_map.emplace("cim:GovHydroWEH.feedbackSignal", &get_GovHydroWEH_feedbackSignal); - get_map.emplace("cim:GovHydroWEH.fl1", &get_GovHydroWEH_fl1); - get_map.emplace("cim:GovHydroWEH.fl2", &get_GovHydroWEH_fl2); - get_map.emplace("cim:GovHydroWEH.fl3", &get_GovHydroWEH_fl3); - get_map.emplace("cim:GovHydroWEH.fl4", &get_GovHydroWEH_fl4); - get_map.emplace("cim:GovHydroWEH.fl5", &get_GovHydroWEH_fl5); - get_map.emplace("cim:GovHydroWEH.fp1", &get_GovHydroWEH_fp1); - get_map.emplace("cim:GovHydroWEH.fp10", &get_GovHydroWEH_fp10); - get_map.emplace("cim:GovHydroWEH.fp2", &get_GovHydroWEH_fp2); - get_map.emplace("cim:GovHydroWEH.fp3", &get_GovHydroWEH_fp3); - get_map.emplace("cim:GovHydroWEH.fp4", &get_GovHydroWEH_fp4); - get_map.emplace("cim:GovHydroWEH.fp5", &get_GovHydroWEH_fp5); - get_map.emplace("cim:GovHydroWEH.fp6", &get_GovHydroWEH_fp6); - get_map.emplace("cim:GovHydroWEH.fp7", &get_GovHydroWEH_fp7); - get_map.emplace("cim:GovHydroWEH.fp8", &get_GovHydroWEH_fp8); - get_map.emplace("cim:GovHydroWEH.fp9", &get_GovHydroWEH_fp9); - get_map.emplace("cim:GovHydroWEH.gmax", &get_GovHydroWEH_gmax); - get_map.emplace("cim:GovHydroWEH.gmin", &get_GovHydroWEH_gmin); - get_map.emplace("cim:GovHydroWEH.gtmxcl", &get_GovHydroWEH_gtmxcl); - get_map.emplace("cim:GovHydroWEH.gtmxop", &get_GovHydroWEH_gtmxop); - get_map.emplace("cim:GovHydroWEH.gv1", &get_GovHydroWEH_gv1); - get_map.emplace("cim:GovHydroWEH.gv2", &get_GovHydroWEH_gv2); - get_map.emplace("cim:GovHydroWEH.gv3", &get_GovHydroWEH_gv3); - get_map.emplace("cim:GovHydroWEH.gv4", &get_GovHydroWEH_gv4); - get_map.emplace("cim:GovHydroWEH.gv5", &get_GovHydroWEH_gv5); - get_map.emplace("cim:GovHydroWEH.kd", &get_GovHydroWEH_kd); - get_map.emplace("cim:GovHydroWEH.ki", &get_GovHydroWEH_ki); - get_map.emplace("cim:GovHydroWEH.kp", &get_GovHydroWEH_kp); - get_map.emplace("cim:GovHydroWEH.mwbase", &get_GovHydroWEH_mwbase); - get_map.emplace("cim:GovHydroWEH.pmss1", &get_GovHydroWEH_pmss1); - get_map.emplace("cim:GovHydroWEH.pmss10", &get_GovHydroWEH_pmss10); - get_map.emplace("cim:GovHydroWEH.pmss2", &get_GovHydroWEH_pmss2); - get_map.emplace("cim:GovHydroWEH.pmss3", &get_GovHydroWEH_pmss3); - get_map.emplace("cim:GovHydroWEH.pmss4", &get_GovHydroWEH_pmss4); - get_map.emplace("cim:GovHydroWEH.pmss5", &get_GovHydroWEH_pmss5); - get_map.emplace("cim:GovHydroWEH.pmss6", &get_GovHydroWEH_pmss6); - get_map.emplace("cim:GovHydroWEH.pmss7", &get_GovHydroWEH_pmss7); - get_map.emplace("cim:GovHydroWEH.pmss8", &get_GovHydroWEH_pmss8); - get_map.emplace("cim:GovHydroWEH.pmss9", &get_GovHydroWEH_pmss9); - get_map.emplace("cim:GovHydroWEH.rpg", &get_GovHydroWEH_rpg); - get_map.emplace("cim:GovHydroWEH.rpp", &get_GovHydroWEH_rpp); - get_map.emplace("cim:GovHydroWEH.td", &get_GovHydroWEH_td); - get_map.emplace("cim:GovHydroWEH.tdv", &get_GovHydroWEH_tdv); - get_map.emplace("cim:GovHydroWEH.tg", &get_GovHydroWEH_tg); - get_map.emplace("cim:GovHydroWEH.tp", &get_GovHydroWEH_tp); - get_map.emplace("cim:GovHydroWEH.tpe", &get_GovHydroWEH_tpe); - get_map.emplace("cim:GovHydroWEH.tw", &get_GovHydroWEH_tw); + get_map.emplace("GovHydroWEH.db", &get_GovHydroWEH_db); + get_map.emplace("GovHydroWEH.dicn", &get_GovHydroWEH_dicn); + get_map.emplace("GovHydroWEH.dpv", &get_GovHydroWEH_dpv); + get_map.emplace("GovHydroWEH.dturb", &get_GovHydroWEH_dturb); + get_map.emplace("GovHydroWEH.feedbackSignal", &get_GovHydroWEH_feedbackSignal); + get_map.emplace("GovHydroWEH.fl1", &get_GovHydroWEH_fl1); + get_map.emplace("GovHydroWEH.fl2", &get_GovHydroWEH_fl2); + get_map.emplace("GovHydroWEH.fl3", &get_GovHydroWEH_fl3); + get_map.emplace("GovHydroWEH.fl4", &get_GovHydroWEH_fl4); + get_map.emplace("GovHydroWEH.fl5", &get_GovHydroWEH_fl5); + get_map.emplace("GovHydroWEH.fp1", &get_GovHydroWEH_fp1); + get_map.emplace("GovHydroWEH.fp10", &get_GovHydroWEH_fp10); + get_map.emplace("GovHydroWEH.fp2", &get_GovHydroWEH_fp2); + get_map.emplace("GovHydroWEH.fp3", &get_GovHydroWEH_fp3); + get_map.emplace("GovHydroWEH.fp4", &get_GovHydroWEH_fp4); + get_map.emplace("GovHydroWEH.fp5", &get_GovHydroWEH_fp5); + get_map.emplace("GovHydroWEH.fp6", &get_GovHydroWEH_fp6); + get_map.emplace("GovHydroWEH.fp7", &get_GovHydroWEH_fp7); + get_map.emplace("GovHydroWEH.fp8", &get_GovHydroWEH_fp8); + get_map.emplace("GovHydroWEH.fp9", &get_GovHydroWEH_fp9); + get_map.emplace("GovHydroWEH.gmax", &get_GovHydroWEH_gmax); + get_map.emplace("GovHydroWEH.gmin", &get_GovHydroWEH_gmin); + get_map.emplace("GovHydroWEH.gtmxcl", &get_GovHydroWEH_gtmxcl); + get_map.emplace("GovHydroWEH.gtmxop", &get_GovHydroWEH_gtmxop); + get_map.emplace("GovHydroWEH.gv1", &get_GovHydroWEH_gv1); + get_map.emplace("GovHydroWEH.gv2", &get_GovHydroWEH_gv2); + get_map.emplace("GovHydroWEH.gv3", &get_GovHydroWEH_gv3); + get_map.emplace("GovHydroWEH.gv4", &get_GovHydroWEH_gv4); + get_map.emplace("GovHydroWEH.gv5", &get_GovHydroWEH_gv5); + get_map.emplace("GovHydroWEH.kd", &get_GovHydroWEH_kd); + get_map.emplace("GovHydroWEH.ki", &get_GovHydroWEH_ki); + get_map.emplace("GovHydroWEH.kp", &get_GovHydroWEH_kp); + get_map.emplace("GovHydroWEH.mwbase", &get_GovHydroWEH_mwbase); + get_map.emplace("GovHydroWEH.pmss1", &get_GovHydroWEH_pmss1); + get_map.emplace("GovHydroWEH.pmss10", &get_GovHydroWEH_pmss10); + get_map.emplace("GovHydroWEH.pmss2", &get_GovHydroWEH_pmss2); + get_map.emplace("GovHydroWEH.pmss3", &get_GovHydroWEH_pmss3); + get_map.emplace("GovHydroWEH.pmss4", &get_GovHydroWEH_pmss4); + get_map.emplace("GovHydroWEH.pmss5", &get_GovHydroWEH_pmss5); + get_map.emplace("GovHydroWEH.pmss6", &get_GovHydroWEH_pmss6); + get_map.emplace("GovHydroWEH.pmss7", &get_GovHydroWEH_pmss7); + get_map.emplace("GovHydroWEH.pmss8", &get_GovHydroWEH_pmss8); + get_map.emplace("GovHydroWEH.pmss9", &get_GovHydroWEH_pmss9); + get_map.emplace("GovHydroWEH.rpg", &get_GovHydroWEH_rpg); + get_map.emplace("GovHydroWEH.rpp", &get_GovHydroWEH_rpp); + get_map.emplace("GovHydroWEH.td", &get_GovHydroWEH_td); + get_map.emplace("GovHydroWEH.tdv", &get_GovHydroWEH_tdv); + get_map.emplace("GovHydroWEH.tg", &get_GovHydroWEH_tg); + get_map.emplace("GovHydroWEH.tp", &get_GovHydroWEH_tp); + get_map.emplace("GovHydroWEH.tpe", &get_GovHydroWEH_tpe); + get_map.emplace("GovHydroWEH.tw", &get_GovHydroWEH_tw); } void GovHydroWEH::addClassGetFnsToMap(std::map& get_map) const @@ -1704,11 +1736,25 @@ void GovHydroWEH::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroWEH::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroWEH" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroWEH::declare() { return BaseClassDefiner(GovHydroWEH::addConstructToMap, GovHydroWEH::addPrimitiveAssignFnsToMap, GovHydroWEH::addClassAssignFnsToMap, GovHydroWEH::debugName); } +std::map GovHydroWEH::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroWEH_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroWEH.hpp b/CGMES_2.4.13_18DEC2013/GovHydroWEH.hpp index 8417378d5..8c260f25e 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroWEH.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroWEH.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -185,8 +186,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -194,7 +202,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroWEH_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovHydroWPID.cpp b/CGMES_2.4.13_18DEC2013/GovHydroWPID.cpp index 52c605514..d4cd92336 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroWPID.cpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroWPID.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroWPID(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroWPID.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gatmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gatmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.reg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.treg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.velmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.velmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroWPID::GovHydroWPID() {} GovHydroWPID::~GovHydroWPID() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroWPID.d", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gatmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gatmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.reg", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.tb", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.treg", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.velmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.velmin", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroWPID::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroWPID::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroWPID::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroWPID::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroWPID::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroWPID::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroWPID::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroWPID::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroWPID::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroWPID_d(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* GovHydroWPID::debugString() const void GovHydroWPID::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroWPID", &GovHydroWPID_factory); + factory_map.emplace("GovHydroWPID", &GovHydroWPID_factory); } void GovHydroWPID::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroWPID.d", &assign_GovHydroWPID_d); - assign_map.emplace("cim:GovHydroWPID.gatmax", &assign_GovHydroWPID_gatmax); - assign_map.emplace("cim:GovHydroWPID.gatmin", &assign_GovHydroWPID_gatmin); - assign_map.emplace("cim:GovHydroWPID.gv1", &assign_GovHydroWPID_gv1); - assign_map.emplace("cim:GovHydroWPID.gv2", &assign_GovHydroWPID_gv2); - assign_map.emplace("cim:GovHydroWPID.gv3", &assign_GovHydroWPID_gv3); - assign_map.emplace("cim:GovHydroWPID.kd", &assign_GovHydroWPID_kd); - assign_map.emplace("cim:GovHydroWPID.ki", &assign_GovHydroWPID_ki); - assign_map.emplace("cim:GovHydroWPID.kp", &assign_GovHydroWPID_kp); - assign_map.emplace("cim:GovHydroWPID.mwbase", &assign_GovHydroWPID_mwbase); - assign_map.emplace("cim:GovHydroWPID.pgv1", &assign_GovHydroWPID_pgv1); - assign_map.emplace("cim:GovHydroWPID.pgv2", &assign_GovHydroWPID_pgv2); - assign_map.emplace("cim:GovHydroWPID.pgv3", &assign_GovHydroWPID_pgv3); - assign_map.emplace("cim:GovHydroWPID.pmax", &assign_GovHydroWPID_pmax); - assign_map.emplace("cim:GovHydroWPID.pmin", &assign_GovHydroWPID_pmin); - assign_map.emplace("cim:GovHydroWPID.reg", &assign_GovHydroWPID_reg); - assign_map.emplace("cim:GovHydroWPID.ta", &assign_GovHydroWPID_ta); - assign_map.emplace("cim:GovHydroWPID.tb", &assign_GovHydroWPID_tb); - assign_map.emplace("cim:GovHydroWPID.treg", &assign_GovHydroWPID_treg); - assign_map.emplace("cim:GovHydroWPID.tw", &assign_GovHydroWPID_tw); - assign_map.emplace("cim:GovHydroWPID.velmax", &assign_GovHydroWPID_velmax); - assign_map.emplace("cim:GovHydroWPID.velmin", &assign_GovHydroWPID_velmin); + assign_map.emplace("GovHydroWPID.d", &assign_GovHydroWPID_d); + assign_map.emplace("GovHydroWPID.gatmax", &assign_GovHydroWPID_gatmax); + assign_map.emplace("GovHydroWPID.gatmin", &assign_GovHydroWPID_gatmin); + assign_map.emplace("GovHydroWPID.gv1", &assign_GovHydroWPID_gv1); + assign_map.emplace("GovHydroWPID.gv2", &assign_GovHydroWPID_gv2); + assign_map.emplace("GovHydroWPID.gv3", &assign_GovHydroWPID_gv3); + assign_map.emplace("GovHydroWPID.kd", &assign_GovHydroWPID_kd); + assign_map.emplace("GovHydroWPID.ki", &assign_GovHydroWPID_ki); + assign_map.emplace("GovHydroWPID.kp", &assign_GovHydroWPID_kp); + assign_map.emplace("GovHydroWPID.mwbase", &assign_GovHydroWPID_mwbase); + assign_map.emplace("GovHydroWPID.pgv1", &assign_GovHydroWPID_pgv1); + assign_map.emplace("GovHydroWPID.pgv2", &assign_GovHydroWPID_pgv2); + assign_map.emplace("GovHydroWPID.pgv3", &assign_GovHydroWPID_pgv3); + assign_map.emplace("GovHydroWPID.pmax", &assign_GovHydroWPID_pmax); + assign_map.emplace("GovHydroWPID.pmin", &assign_GovHydroWPID_pmin); + assign_map.emplace("GovHydroWPID.reg", &assign_GovHydroWPID_reg); + assign_map.emplace("GovHydroWPID.ta", &assign_GovHydroWPID_ta); + assign_map.emplace("GovHydroWPID.tb", &assign_GovHydroWPID_tb); + assign_map.emplace("GovHydroWPID.treg", &assign_GovHydroWPID_treg); + assign_map.emplace("GovHydroWPID.tw", &assign_GovHydroWPID_tw); + assign_map.emplace("GovHydroWPID.velmax", &assign_GovHydroWPID_velmax); + assign_map.emplace("GovHydroWPID.velmin", &assign_GovHydroWPID_velmin); } void GovHydroWPID::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void GovHydroWPID::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroWPID.d", &get_GovHydroWPID_d); - get_map.emplace("cim:GovHydroWPID.gatmax", &get_GovHydroWPID_gatmax); - get_map.emplace("cim:GovHydroWPID.gatmin", &get_GovHydroWPID_gatmin); - get_map.emplace("cim:GovHydroWPID.gv1", &get_GovHydroWPID_gv1); - get_map.emplace("cim:GovHydroWPID.gv2", &get_GovHydroWPID_gv2); - get_map.emplace("cim:GovHydroWPID.gv3", &get_GovHydroWPID_gv3); - get_map.emplace("cim:GovHydroWPID.kd", &get_GovHydroWPID_kd); - get_map.emplace("cim:GovHydroWPID.ki", &get_GovHydroWPID_ki); - get_map.emplace("cim:GovHydroWPID.kp", &get_GovHydroWPID_kp); - get_map.emplace("cim:GovHydroWPID.mwbase", &get_GovHydroWPID_mwbase); - get_map.emplace("cim:GovHydroWPID.pgv1", &get_GovHydroWPID_pgv1); - get_map.emplace("cim:GovHydroWPID.pgv2", &get_GovHydroWPID_pgv2); - get_map.emplace("cim:GovHydroWPID.pgv3", &get_GovHydroWPID_pgv3); - get_map.emplace("cim:GovHydroWPID.pmax", &get_GovHydroWPID_pmax); - get_map.emplace("cim:GovHydroWPID.pmin", &get_GovHydroWPID_pmin); - get_map.emplace("cim:GovHydroWPID.reg", &get_GovHydroWPID_reg); - get_map.emplace("cim:GovHydroWPID.ta", &get_GovHydroWPID_ta); - get_map.emplace("cim:GovHydroWPID.tb", &get_GovHydroWPID_tb); - get_map.emplace("cim:GovHydroWPID.treg", &get_GovHydroWPID_treg); - get_map.emplace("cim:GovHydroWPID.tw", &get_GovHydroWPID_tw); - get_map.emplace("cim:GovHydroWPID.velmax", &get_GovHydroWPID_velmax); - get_map.emplace("cim:GovHydroWPID.velmin", &get_GovHydroWPID_velmin); + get_map.emplace("GovHydroWPID.d", &get_GovHydroWPID_d); + get_map.emplace("GovHydroWPID.gatmax", &get_GovHydroWPID_gatmax); + get_map.emplace("GovHydroWPID.gatmin", &get_GovHydroWPID_gatmin); + get_map.emplace("GovHydroWPID.gv1", &get_GovHydroWPID_gv1); + get_map.emplace("GovHydroWPID.gv2", &get_GovHydroWPID_gv2); + get_map.emplace("GovHydroWPID.gv3", &get_GovHydroWPID_gv3); + get_map.emplace("GovHydroWPID.kd", &get_GovHydroWPID_kd); + get_map.emplace("GovHydroWPID.ki", &get_GovHydroWPID_ki); + get_map.emplace("GovHydroWPID.kp", &get_GovHydroWPID_kp); + get_map.emplace("GovHydroWPID.mwbase", &get_GovHydroWPID_mwbase); + get_map.emplace("GovHydroWPID.pgv1", &get_GovHydroWPID_pgv1); + get_map.emplace("GovHydroWPID.pgv2", &get_GovHydroWPID_pgv2); + get_map.emplace("GovHydroWPID.pgv3", &get_GovHydroWPID_pgv3); + get_map.emplace("GovHydroWPID.pmax", &get_GovHydroWPID_pmax); + get_map.emplace("GovHydroWPID.pmin", &get_GovHydroWPID_pmin); + get_map.emplace("GovHydroWPID.reg", &get_GovHydroWPID_reg); + get_map.emplace("GovHydroWPID.ta", &get_GovHydroWPID_ta); + get_map.emplace("GovHydroWPID.tb", &get_GovHydroWPID_tb); + get_map.emplace("GovHydroWPID.treg", &get_GovHydroWPID_treg); + get_map.emplace("GovHydroWPID.tw", &get_GovHydroWPID_tw); + get_map.emplace("GovHydroWPID.velmax", &get_GovHydroWPID_velmax); + get_map.emplace("GovHydroWPID.velmin", &get_GovHydroWPID_velmin); } void GovHydroWPID::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void GovHydroWPID::addEnumGetFnsToMap(std::map& get_m TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroWPID::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroWPID" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroWPID::declare() { return BaseClassDefiner(GovHydroWPID::addConstructToMap, GovHydroWPID::addPrimitiveAssignFnsToMap, GovHydroWPID::addClassAssignFnsToMap, GovHydroWPID::debugName); } +std::map GovHydroWPID::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroWPID_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovHydroWPID.hpp b/CGMES_2.4.13_18DEC2013/GovHydroWPID.hpp index 7c5d870fa..c3f3dfb58 100644 --- a/CGMES_2.4.13_18DEC2013/GovHydroWPID.hpp +++ b/CGMES_2.4.13_18DEC2013/GovHydroWPID.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -96,8 +97,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -105,7 +113,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroWPID_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteam0.cpp b/CGMES_2.4.13_18DEC2013/GovSteam0.cpp index cc1c74f62..dfefb61c1 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteam0.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteam0.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam0(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam0.dt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam0::GovSteam0() {} GovSteam0::~GovSteam0() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteam0::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteam0::getClassNamespaceUrl() const { - { "cim:GovSteam0.dt", { CGMESProfile::DY, } }, - { "cim:GovSteam0.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteam0.r", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t2", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t3", { CGMESProfile::DY, } }, - { "cim:GovSteam0.vmax", { CGMESProfile::DY, } }, - { "cim:GovSteam0.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteam0::getPossibleProfilesForClass() const +const std::string& GovSteam0::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteam0::getPossibleProfilesForAttributes() const +const std::list& GovSteam0::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam0::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam0::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam0::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam0_dt(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovSteam0::debugString() const void GovSteam0::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam0", &GovSteam0_factory); + factory_map.emplace("GovSteam0", &GovSteam0_factory); } void GovSteam0::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam0.dt", &assign_GovSteam0_dt); - assign_map.emplace("cim:GovSteam0.mwbase", &assign_GovSteam0_mwbase); - assign_map.emplace("cim:GovSteam0.r", &assign_GovSteam0_r); - assign_map.emplace("cim:GovSteam0.t1", &assign_GovSteam0_t1); - assign_map.emplace("cim:GovSteam0.t2", &assign_GovSteam0_t2); - assign_map.emplace("cim:GovSteam0.t3", &assign_GovSteam0_t3); - assign_map.emplace("cim:GovSteam0.vmax", &assign_GovSteam0_vmax); - assign_map.emplace("cim:GovSteam0.vmin", &assign_GovSteam0_vmin); + assign_map.emplace("GovSteam0.dt", &assign_GovSteam0_dt); + assign_map.emplace("GovSteam0.mwbase", &assign_GovSteam0_mwbase); + assign_map.emplace("GovSteam0.r", &assign_GovSteam0_r); + assign_map.emplace("GovSteam0.t1", &assign_GovSteam0_t1); + assign_map.emplace("GovSteam0.t2", &assign_GovSteam0_t2); + assign_map.emplace("GovSteam0.t3", &assign_GovSteam0_t3); + assign_map.emplace("GovSteam0.vmax", &assign_GovSteam0_vmax); + assign_map.emplace("GovSteam0.vmin", &assign_GovSteam0_vmin); } void GovSteam0::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovSteam0::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam0.dt", &get_GovSteam0_dt); - get_map.emplace("cim:GovSteam0.mwbase", &get_GovSteam0_mwbase); - get_map.emplace("cim:GovSteam0.r", &get_GovSteam0_r); - get_map.emplace("cim:GovSteam0.t1", &get_GovSteam0_t1); - get_map.emplace("cim:GovSteam0.t2", &get_GovSteam0_t2); - get_map.emplace("cim:GovSteam0.t3", &get_GovSteam0_t3); - get_map.emplace("cim:GovSteam0.vmax", &get_GovSteam0_vmax); - get_map.emplace("cim:GovSteam0.vmin", &get_GovSteam0_vmin); + get_map.emplace("GovSteam0.dt", &get_GovSteam0_dt); + get_map.emplace("GovSteam0.mwbase", &get_GovSteam0_mwbase); + get_map.emplace("GovSteam0.r", &get_GovSteam0_r); + get_map.emplace("GovSteam0.t1", &get_GovSteam0_t1); + get_map.emplace("GovSteam0.t2", &get_GovSteam0_t2); + get_map.emplace("GovSteam0.t3", &get_GovSteam0_t3); + get_map.emplace("GovSteam0.vmax", &get_GovSteam0_vmax); + get_map.emplace("GovSteam0.vmin", &get_GovSteam0_vmin); } void GovSteam0::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovSteam0::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam0::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam0" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam0::declare() { return BaseClassDefiner(GovSteam0::addConstructToMap, GovSteam0::addPrimitiveAssignFnsToMap, GovSteam0::addClassAssignFnsToMap, GovSteam0::debugName); } +std::map GovSteam0::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam0_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteam0.hpp b/CGMES_2.4.13_18DEC2013/GovSteam0.hpp index 9929fe7ad..115d2321b 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteam0.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteam0.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam0_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteam1.cpp b/CGMES_2.4.13_18DEC2013/GovSteam1.cpp index 9f3c107a5..b2e9a8ee0 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteam1.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteam1.cpp @@ -11,70 +11,102 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam1.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.sdb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.sdb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.valve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam1::GovSteam1() {} GovSteam1::~GovSteam1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteam1.db1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.db2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.eps", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k7", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k8", { CGMESProfile::DY, } }, - { "cim:GovSteam1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteam1.sdb1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.sdb2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t7", { CGMESProfile::DY, } }, - { "cim:GovSteam1.uc", { CGMESProfile::DY, } }, - { "cim:GovSteam1.uo", { CGMESProfile::DY, } }, - { "cim:GovSteam1.valve", { CGMESProfile::DY, } }, -}; - -std::list -GovSteam1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteam1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteam1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteam1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteam1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteam1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam1_db1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1216,50 +1248,50 @@ const char* GovSteam1::debugString() const void GovSteam1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam1", &GovSteam1_factory); + factory_map.emplace("GovSteam1", &GovSteam1_factory); } void GovSteam1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam1.db1", &assign_GovSteam1_db1); - assign_map.emplace("cim:GovSteam1.db2", &assign_GovSteam1_db2); - assign_map.emplace("cim:GovSteam1.eps", &assign_GovSteam1_eps); - assign_map.emplace("cim:GovSteam1.gv1", &assign_GovSteam1_gv1); - assign_map.emplace("cim:GovSteam1.gv2", &assign_GovSteam1_gv2); - assign_map.emplace("cim:GovSteam1.gv3", &assign_GovSteam1_gv3); - assign_map.emplace("cim:GovSteam1.gv4", &assign_GovSteam1_gv4); - assign_map.emplace("cim:GovSteam1.gv5", &assign_GovSteam1_gv5); - assign_map.emplace("cim:GovSteam1.gv6", &assign_GovSteam1_gv6); - assign_map.emplace("cim:GovSteam1.k", &assign_GovSteam1_k); - assign_map.emplace("cim:GovSteam1.k1", &assign_GovSteam1_k1); - assign_map.emplace("cim:GovSteam1.k2", &assign_GovSteam1_k2); - assign_map.emplace("cim:GovSteam1.k3", &assign_GovSteam1_k3); - assign_map.emplace("cim:GovSteam1.k4", &assign_GovSteam1_k4); - assign_map.emplace("cim:GovSteam1.k5", &assign_GovSteam1_k5); - assign_map.emplace("cim:GovSteam1.k6", &assign_GovSteam1_k6); - assign_map.emplace("cim:GovSteam1.k7", &assign_GovSteam1_k7); - assign_map.emplace("cim:GovSteam1.k8", &assign_GovSteam1_k8); - assign_map.emplace("cim:GovSteam1.mwbase", &assign_GovSteam1_mwbase); - assign_map.emplace("cim:GovSteam1.pgv1", &assign_GovSteam1_pgv1); - assign_map.emplace("cim:GovSteam1.pgv2", &assign_GovSteam1_pgv2); - assign_map.emplace("cim:GovSteam1.pgv3", &assign_GovSteam1_pgv3); - assign_map.emplace("cim:GovSteam1.pgv4", &assign_GovSteam1_pgv4); - assign_map.emplace("cim:GovSteam1.pgv5", &assign_GovSteam1_pgv5); - assign_map.emplace("cim:GovSteam1.pgv6", &assign_GovSteam1_pgv6); - assign_map.emplace("cim:GovSteam1.pmax", &assign_GovSteam1_pmax); - assign_map.emplace("cim:GovSteam1.pmin", &assign_GovSteam1_pmin); - assign_map.emplace("cim:GovSteam1.sdb1", &assign_GovSteam1_sdb1); - assign_map.emplace("cim:GovSteam1.sdb2", &assign_GovSteam1_sdb2); - assign_map.emplace("cim:GovSteam1.t1", &assign_GovSteam1_t1); - assign_map.emplace("cim:GovSteam1.t2", &assign_GovSteam1_t2); - assign_map.emplace("cim:GovSteam1.t3", &assign_GovSteam1_t3); - assign_map.emplace("cim:GovSteam1.t4", &assign_GovSteam1_t4); - assign_map.emplace("cim:GovSteam1.t5", &assign_GovSteam1_t5); - assign_map.emplace("cim:GovSteam1.t6", &assign_GovSteam1_t6); - assign_map.emplace("cim:GovSteam1.t7", &assign_GovSteam1_t7); - assign_map.emplace("cim:GovSteam1.uc", &assign_GovSteam1_uc); - assign_map.emplace("cim:GovSteam1.uo", &assign_GovSteam1_uo); - assign_map.emplace("cim:GovSteam1.valve", &assign_GovSteam1_valve); + assign_map.emplace("GovSteam1.db1", &assign_GovSteam1_db1); + assign_map.emplace("GovSteam1.db2", &assign_GovSteam1_db2); + assign_map.emplace("GovSteam1.eps", &assign_GovSteam1_eps); + assign_map.emplace("GovSteam1.gv1", &assign_GovSteam1_gv1); + assign_map.emplace("GovSteam1.gv2", &assign_GovSteam1_gv2); + assign_map.emplace("GovSteam1.gv3", &assign_GovSteam1_gv3); + assign_map.emplace("GovSteam1.gv4", &assign_GovSteam1_gv4); + assign_map.emplace("GovSteam1.gv5", &assign_GovSteam1_gv5); + assign_map.emplace("GovSteam1.gv6", &assign_GovSteam1_gv6); + assign_map.emplace("GovSteam1.k", &assign_GovSteam1_k); + assign_map.emplace("GovSteam1.k1", &assign_GovSteam1_k1); + assign_map.emplace("GovSteam1.k2", &assign_GovSteam1_k2); + assign_map.emplace("GovSteam1.k3", &assign_GovSteam1_k3); + assign_map.emplace("GovSteam1.k4", &assign_GovSteam1_k4); + assign_map.emplace("GovSteam1.k5", &assign_GovSteam1_k5); + assign_map.emplace("GovSteam1.k6", &assign_GovSteam1_k6); + assign_map.emplace("GovSteam1.k7", &assign_GovSteam1_k7); + assign_map.emplace("GovSteam1.k8", &assign_GovSteam1_k8); + assign_map.emplace("GovSteam1.mwbase", &assign_GovSteam1_mwbase); + assign_map.emplace("GovSteam1.pgv1", &assign_GovSteam1_pgv1); + assign_map.emplace("GovSteam1.pgv2", &assign_GovSteam1_pgv2); + assign_map.emplace("GovSteam1.pgv3", &assign_GovSteam1_pgv3); + assign_map.emplace("GovSteam1.pgv4", &assign_GovSteam1_pgv4); + assign_map.emplace("GovSteam1.pgv5", &assign_GovSteam1_pgv5); + assign_map.emplace("GovSteam1.pgv6", &assign_GovSteam1_pgv6); + assign_map.emplace("GovSteam1.pmax", &assign_GovSteam1_pmax); + assign_map.emplace("GovSteam1.pmin", &assign_GovSteam1_pmin); + assign_map.emplace("GovSteam1.sdb1", &assign_GovSteam1_sdb1); + assign_map.emplace("GovSteam1.sdb2", &assign_GovSteam1_sdb2); + assign_map.emplace("GovSteam1.t1", &assign_GovSteam1_t1); + assign_map.emplace("GovSteam1.t2", &assign_GovSteam1_t2); + assign_map.emplace("GovSteam1.t3", &assign_GovSteam1_t3); + assign_map.emplace("GovSteam1.t4", &assign_GovSteam1_t4); + assign_map.emplace("GovSteam1.t5", &assign_GovSteam1_t5); + assign_map.emplace("GovSteam1.t6", &assign_GovSteam1_t6); + assign_map.emplace("GovSteam1.t7", &assign_GovSteam1_t7); + assign_map.emplace("GovSteam1.uc", &assign_GovSteam1_uc); + assign_map.emplace("GovSteam1.uo", &assign_GovSteam1_uo); + assign_map.emplace("GovSteam1.valve", &assign_GovSteam1_valve); } void GovSteam1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1269,45 +1301,45 @@ void GovSteam1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam1.db1", &get_GovSteam1_db1); - get_map.emplace("cim:GovSteam1.db2", &get_GovSteam1_db2); - get_map.emplace("cim:GovSteam1.eps", &get_GovSteam1_eps); - get_map.emplace("cim:GovSteam1.gv1", &get_GovSteam1_gv1); - get_map.emplace("cim:GovSteam1.gv2", &get_GovSteam1_gv2); - get_map.emplace("cim:GovSteam1.gv3", &get_GovSteam1_gv3); - get_map.emplace("cim:GovSteam1.gv4", &get_GovSteam1_gv4); - get_map.emplace("cim:GovSteam1.gv5", &get_GovSteam1_gv5); - get_map.emplace("cim:GovSteam1.gv6", &get_GovSteam1_gv6); - get_map.emplace("cim:GovSteam1.k", &get_GovSteam1_k); - get_map.emplace("cim:GovSteam1.k1", &get_GovSteam1_k1); - get_map.emplace("cim:GovSteam1.k2", &get_GovSteam1_k2); - get_map.emplace("cim:GovSteam1.k3", &get_GovSteam1_k3); - get_map.emplace("cim:GovSteam1.k4", &get_GovSteam1_k4); - get_map.emplace("cim:GovSteam1.k5", &get_GovSteam1_k5); - get_map.emplace("cim:GovSteam1.k6", &get_GovSteam1_k6); - get_map.emplace("cim:GovSteam1.k7", &get_GovSteam1_k7); - get_map.emplace("cim:GovSteam1.k8", &get_GovSteam1_k8); - get_map.emplace("cim:GovSteam1.mwbase", &get_GovSteam1_mwbase); - get_map.emplace("cim:GovSteam1.pgv1", &get_GovSteam1_pgv1); - get_map.emplace("cim:GovSteam1.pgv2", &get_GovSteam1_pgv2); - get_map.emplace("cim:GovSteam1.pgv3", &get_GovSteam1_pgv3); - get_map.emplace("cim:GovSteam1.pgv4", &get_GovSteam1_pgv4); - get_map.emplace("cim:GovSteam1.pgv5", &get_GovSteam1_pgv5); - get_map.emplace("cim:GovSteam1.pgv6", &get_GovSteam1_pgv6); - get_map.emplace("cim:GovSteam1.pmax", &get_GovSteam1_pmax); - get_map.emplace("cim:GovSteam1.pmin", &get_GovSteam1_pmin); - get_map.emplace("cim:GovSteam1.sdb1", &get_GovSteam1_sdb1); - get_map.emplace("cim:GovSteam1.sdb2", &get_GovSteam1_sdb2); - get_map.emplace("cim:GovSteam1.t1", &get_GovSteam1_t1); - get_map.emplace("cim:GovSteam1.t2", &get_GovSteam1_t2); - get_map.emplace("cim:GovSteam1.t3", &get_GovSteam1_t3); - get_map.emplace("cim:GovSteam1.t4", &get_GovSteam1_t4); - get_map.emplace("cim:GovSteam1.t5", &get_GovSteam1_t5); - get_map.emplace("cim:GovSteam1.t6", &get_GovSteam1_t6); - get_map.emplace("cim:GovSteam1.t7", &get_GovSteam1_t7); - get_map.emplace("cim:GovSteam1.uc", &get_GovSteam1_uc); - get_map.emplace("cim:GovSteam1.uo", &get_GovSteam1_uo); - get_map.emplace("cim:GovSteam1.valve", &get_GovSteam1_valve); + get_map.emplace("GovSteam1.db1", &get_GovSteam1_db1); + get_map.emplace("GovSteam1.db2", &get_GovSteam1_db2); + get_map.emplace("GovSteam1.eps", &get_GovSteam1_eps); + get_map.emplace("GovSteam1.gv1", &get_GovSteam1_gv1); + get_map.emplace("GovSteam1.gv2", &get_GovSteam1_gv2); + get_map.emplace("GovSteam1.gv3", &get_GovSteam1_gv3); + get_map.emplace("GovSteam1.gv4", &get_GovSteam1_gv4); + get_map.emplace("GovSteam1.gv5", &get_GovSteam1_gv5); + get_map.emplace("GovSteam1.gv6", &get_GovSteam1_gv6); + get_map.emplace("GovSteam1.k", &get_GovSteam1_k); + get_map.emplace("GovSteam1.k1", &get_GovSteam1_k1); + get_map.emplace("GovSteam1.k2", &get_GovSteam1_k2); + get_map.emplace("GovSteam1.k3", &get_GovSteam1_k3); + get_map.emplace("GovSteam1.k4", &get_GovSteam1_k4); + get_map.emplace("GovSteam1.k5", &get_GovSteam1_k5); + get_map.emplace("GovSteam1.k6", &get_GovSteam1_k6); + get_map.emplace("GovSteam1.k7", &get_GovSteam1_k7); + get_map.emplace("GovSteam1.k8", &get_GovSteam1_k8); + get_map.emplace("GovSteam1.mwbase", &get_GovSteam1_mwbase); + get_map.emplace("GovSteam1.pgv1", &get_GovSteam1_pgv1); + get_map.emplace("GovSteam1.pgv2", &get_GovSteam1_pgv2); + get_map.emplace("GovSteam1.pgv3", &get_GovSteam1_pgv3); + get_map.emplace("GovSteam1.pgv4", &get_GovSteam1_pgv4); + get_map.emplace("GovSteam1.pgv5", &get_GovSteam1_pgv5); + get_map.emplace("GovSteam1.pgv6", &get_GovSteam1_pgv6); + get_map.emplace("GovSteam1.pmax", &get_GovSteam1_pmax); + get_map.emplace("GovSteam1.pmin", &get_GovSteam1_pmin); + get_map.emplace("GovSteam1.sdb1", &get_GovSteam1_sdb1); + get_map.emplace("GovSteam1.sdb2", &get_GovSteam1_sdb2); + get_map.emplace("GovSteam1.t1", &get_GovSteam1_t1); + get_map.emplace("GovSteam1.t2", &get_GovSteam1_t2); + get_map.emplace("GovSteam1.t3", &get_GovSteam1_t3); + get_map.emplace("GovSteam1.t4", &get_GovSteam1_t4); + get_map.emplace("GovSteam1.t5", &get_GovSteam1_t5); + get_map.emplace("GovSteam1.t6", &get_GovSteam1_t6); + get_map.emplace("GovSteam1.t7", &get_GovSteam1_t7); + get_map.emplace("GovSteam1.uc", &get_GovSteam1_uc); + get_map.emplace("GovSteam1.uo", &get_GovSteam1_uo); + get_map.emplace("GovSteam1.valve", &get_GovSteam1_valve); } void GovSteam1::addClassGetFnsToMap(std::map& get_map) const @@ -1320,11 +1352,25 @@ void GovSteam1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam1::declare() { return BaseClassDefiner(GovSteam1::addConstructToMap, GovSteam1::addPrimitiveAssignFnsToMap, GovSteam1::addClassAssignFnsToMap, GovSteam1::debugName); } +std::map GovSteam1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam1_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteam1.hpp b/CGMES_2.4.13_18DEC2013/GovSteam1.hpp index da362ba99..36a730424 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteam1.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteam1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteam2.cpp b/CGMES_2.4.13_18DEC2013/GovSteam2.cpp index 8696d39ab..9bea48947 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteam2.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteam2.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam2.dbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam2::GovSteam2() {} GovSteam2::~GovSteam2() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteam2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteam2::getClassNamespaceUrl() const { - { "cim:GovSteam2.dbf", { CGMESProfile::DY, } }, - { "cim:GovSteam2.k", { CGMESProfile::DY, } }, - { "cim:GovSteam2.mnef", { CGMESProfile::DY, } }, - { "cim:GovSteam2.mxef", { CGMESProfile::DY, } }, - { "cim:GovSteam2.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteam2.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteam2.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam2.t2", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteam2::getPossibleProfilesForClass() const +const std::string& GovSteam2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteam2::getPossibleProfilesForAttributes() const +const std::list& GovSteam2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam2_dbf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovSteam2::debugString() const void GovSteam2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam2", &GovSteam2_factory); + factory_map.emplace("GovSteam2", &GovSteam2_factory); } void GovSteam2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam2.dbf", &assign_GovSteam2_dbf); - assign_map.emplace("cim:GovSteam2.k", &assign_GovSteam2_k); - assign_map.emplace("cim:GovSteam2.mnef", &assign_GovSteam2_mnef); - assign_map.emplace("cim:GovSteam2.mxef", &assign_GovSteam2_mxef); - assign_map.emplace("cim:GovSteam2.pmax", &assign_GovSteam2_pmax); - assign_map.emplace("cim:GovSteam2.pmin", &assign_GovSteam2_pmin); - assign_map.emplace("cim:GovSteam2.t1", &assign_GovSteam2_t1); - assign_map.emplace("cim:GovSteam2.t2", &assign_GovSteam2_t2); + assign_map.emplace("GovSteam2.dbf", &assign_GovSteam2_dbf); + assign_map.emplace("GovSteam2.k", &assign_GovSteam2_k); + assign_map.emplace("GovSteam2.mnef", &assign_GovSteam2_mnef); + assign_map.emplace("GovSteam2.mxef", &assign_GovSteam2_mxef); + assign_map.emplace("GovSteam2.pmax", &assign_GovSteam2_pmax); + assign_map.emplace("GovSteam2.pmin", &assign_GovSteam2_pmin); + assign_map.emplace("GovSteam2.t1", &assign_GovSteam2_t1); + assign_map.emplace("GovSteam2.t2", &assign_GovSteam2_t2); } void GovSteam2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovSteam2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam2.dbf", &get_GovSteam2_dbf); - get_map.emplace("cim:GovSteam2.k", &get_GovSteam2_k); - get_map.emplace("cim:GovSteam2.mnef", &get_GovSteam2_mnef); - get_map.emplace("cim:GovSteam2.mxef", &get_GovSteam2_mxef); - get_map.emplace("cim:GovSteam2.pmax", &get_GovSteam2_pmax); - get_map.emplace("cim:GovSteam2.pmin", &get_GovSteam2_pmin); - get_map.emplace("cim:GovSteam2.t1", &get_GovSteam2_t1); - get_map.emplace("cim:GovSteam2.t2", &get_GovSteam2_t2); + get_map.emplace("GovSteam2.dbf", &get_GovSteam2_dbf); + get_map.emplace("GovSteam2.k", &get_GovSteam2_k); + get_map.emplace("GovSteam2.mnef", &get_GovSteam2_mnef); + get_map.emplace("GovSteam2.mxef", &get_GovSteam2_mxef); + get_map.emplace("GovSteam2.pmax", &get_GovSteam2_pmax); + get_map.emplace("GovSteam2.pmin", &get_GovSteam2_pmin); + get_map.emplace("GovSteam2.t1", &get_GovSteam2_t1); + get_map.emplace("GovSteam2.t2", &get_GovSteam2_t2); } void GovSteam2::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovSteam2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam2::declare() { return BaseClassDefiner(GovSteam2::addConstructToMap, GovSteam2::addPrimitiveAssignFnsToMap, GovSteam2::addClassAssignFnsToMap, GovSteam2::debugName); } +std::map GovSteam2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam2_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteam2.hpp b/CGMES_2.4.13_18DEC2013/GovSteam2.hpp index 1968c0eb3..81c3b632d 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteam2.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteam2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteamCC.cpp b/CGMES_2.4.13_18DEC2013/GovSteamCC.cpp index 9d214c83b..adc213ef1 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamCC.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamCC.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamCC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamCC.dhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.dlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.fhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.flp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.pmaxhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.pmaxlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.rhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.rlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t1hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t1lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t3hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t3lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t4hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t4lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t5hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t5lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamCC::GovSteamCC() {} GovSteamCC::~GovSteamCC() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamCC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamCC::getClassNamespaceUrl() const { - { "cim:GovSteamCC.dhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.dlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.fhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.flp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.pmaxhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.pmaxlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.rhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.rlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t1hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t1lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t3hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t3lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t4hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t4lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t5hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t5lp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamCC::getPossibleProfilesForClass() const +const std::string& GovSteamCC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamCC::getPossibleProfilesForAttributes() const +const std::list& GovSteamCC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamCC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamCC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamCC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamCC_dhp(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* GovSteamCC::debugString() const void GovSteamCC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamCC", &GovSteamCC_factory); + factory_map.emplace("GovSteamCC", &GovSteamCC_factory); } void GovSteamCC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamCC.dhp", &assign_GovSteamCC_dhp); - assign_map.emplace("cim:GovSteamCC.dlp", &assign_GovSteamCC_dlp); - assign_map.emplace("cim:GovSteamCC.fhp", &assign_GovSteamCC_fhp); - assign_map.emplace("cim:GovSteamCC.flp", &assign_GovSteamCC_flp); - assign_map.emplace("cim:GovSteamCC.mwbase", &assign_GovSteamCC_mwbase); - assign_map.emplace("cim:GovSteamCC.pmaxhp", &assign_GovSteamCC_pmaxhp); - assign_map.emplace("cim:GovSteamCC.pmaxlp", &assign_GovSteamCC_pmaxlp); - assign_map.emplace("cim:GovSteamCC.rhp", &assign_GovSteamCC_rhp); - assign_map.emplace("cim:GovSteamCC.rlp", &assign_GovSteamCC_rlp); - assign_map.emplace("cim:GovSteamCC.t1hp", &assign_GovSteamCC_t1hp); - assign_map.emplace("cim:GovSteamCC.t1lp", &assign_GovSteamCC_t1lp); - assign_map.emplace("cim:GovSteamCC.t3hp", &assign_GovSteamCC_t3hp); - assign_map.emplace("cim:GovSteamCC.t3lp", &assign_GovSteamCC_t3lp); - assign_map.emplace("cim:GovSteamCC.t4hp", &assign_GovSteamCC_t4hp); - assign_map.emplace("cim:GovSteamCC.t4lp", &assign_GovSteamCC_t4lp); - assign_map.emplace("cim:GovSteamCC.t5hp", &assign_GovSteamCC_t5hp); - assign_map.emplace("cim:GovSteamCC.t5lp", &assign_GovSteamCC_t5lp); + assign_map.emplace("GovSteamCC.dhp", &assign_GovSteamCC_dhp); + assign_map.emplace("GovSteamCC.dlp", &assign_GovSteamCC_dlp); + assign_map.emplace("GovSteamCC.fhp", &assign_GovSteamCC_fhp); + assign_map.emplace("GovSteamCC.flp", &assign_GovSteamCC_flp); + assign_map.emplace("GovSteamCC.mwbase", &assign_GovSteamCC_mwbase); + assign_map.emplace("GovSteamCC.pmaxhp", &assign_GovSteamCC_pmaxhp); + assign_map.emplace("GovSteamCC.pmaxlp", &assign_GovSteamCC_pmaxlp); + assign_map.emplace("GovSteamCC.rhp", &assign_GovSteamCC_rhp); + assign_map.emplace("GovSteamCC.rlp", &assign_GovSteamCC_rlp); + assign_map.emplace("GovSteamCC.t1hp", &assign_GovSteamCC_t1hp); + assign_map.emplace("GovSteamCC.t1lp", &assign_GovSteamCC_t1lp); + assign_map.emplace("GovSteamCC.t3hp", &assign_GovSteamCC_t3hp); + assign_map.emplace("GovSteamCC.t3lp", &assign_GovSteamCC_t3lp); + assign_map.emplace("GovSteamCC.t4hp", &assign_GovSteamCC_t4hp); + assign_map.emplace("GovSteamCC.t4lp", &assign_GovSteamCC_t4lp); + assign_map.emplace("GovSteamCC.t5hp", &assign_GovSteamCC_t5hp); + assign_map.emplace("GovSteamCC.t5lp", &assign_GovSteamCC_t5lp); } void GovSteamCC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void GovSteamCC::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamCC.dhp", &get_GovSteamCC_dhp); - get_map.emplace("cim:GovSteamCC.dlp", &get_GovSteamCC_dlp); - get_map.emplace("cim:GovSteamCC.fhp", &get_GovSteamCC_fhp); - get_map.emplace("cim:GovSteamCC.flp", &get_GovSteamCC_flp); - get_map.emplace("cim:GovSteamCC.mwbase", &get_GovSteamCC_mwbase); - get_map.emplace("cim:GovSteamCC.pmaxhp", &get_GovSteamCC_pmaxhp); - get_map.emplace("cim:GovSteamCC.pmaxlp", &get_GovSteamCC_pmaxlp); - get_map.emplace("cim:GovSteamCC.rhp", &get_GovSteamCC_rhp); - get_map.emplace("cim:GovSteamCC.rlp", &get_GovSteamCC_rlp); - get_map.emplace("cim:GovSteamCC.t1hp", &get_GovSteamCC_t1hp); - get_map.emplace("cim:GovSteamCC.t1lp", &get_GovSteamCC_t1lp); - get_map.emplace("cim:GovSteamCC.t3hp", &get_GovSteamCC_t3hp); - get_map.emplace("cim:GovSteamCC.t3lp", &get_GovSteamCC_t3lp); - get_map.emplace("cim:GovSteamCC.t4hp", &get_GovSteamCC_t4hp); - get_map.emplace("cim:GovSteamCC.t4lp", &get_GovSteamCC_t4lp); - get_map.emplace("cim:GovSteamCC.t5hp", &get_GovSteamCC_t5hp); - get_map.emplace("cim:GovSteamCC.t5lp", &get_GovSteamCC_t5lp); + get_map.emplace("GovSteamCC.dhp", &get_GovSteamCC_dhp); + get_map.emplace("GovSteamCC.dlp", &get_GovSteamCC_dlp); + get_map.emplace("GovSteamCC.fhp", &get_GovSteamCC_fhp); + get_map.emplace("GovSteamCC.flp", &get_GovSteamCC_flp); + get_map.emplace("GovSteamCC.mwbase", &get_GovSteamCC_mwbase); + get_map.emplace("GovSteamCC.pmaxhp", &get_GovSteamCC_pmaxhp); + get_map.emplace("GovSteamCC.pmaxlp", &get_GovSteamCC_pmaxlp); + get_map.emplace("GovSteamCC.rhp", &get_GovSteamCC_rhp); + get_map.emplace("GovSteamCC.rlp", &get_GovSteamCC_rlp); + get_map.emplace("GovSteamCC.t1hp", &get_GovSteamCC_t1hp); + get_map.emplace("GovSteamCC.t1lp", &get_GovSteamCC_t1lp); + get_map.emplace("GovSteamCC.t3hp", &get_GovSteamCC_t3hp); + get_map.emplace("GovSteamCC.t3lp", &get_GovSteamCC_t3lp); + get_map.emplace("GovSteamCC.t4hp", &get_GovSteamCC_t4hp); + get_map.emplace("GovSteamCC.t4lp", &get_GovSteamCC_t4lp); + get_map.emplace("GovSteamCC.t5hp", &get_GovSteamCC_t5hp); + get_map.emplace("GovSteamCC.t5lp", &get_GovSteamCC_t5lp); } void GovSteamCC::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void GovSteamCC::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamCC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamCC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamCC::declare() { return BaseClassDefiner(GovSteamCC::addConstructToMap, GovSteamCC::addPrimitiveAssignFnsToMap, GovSteamCC::addClassAssignFnsToMap, GovSteamCC::debugName); } +std::map GovSteamCC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamCC_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteamCC.hpp b/CGMES_2.4.13_18DEC2013/GovSteamCC.hpp index 1e7c7a97d..adf6cad62 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamCC.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamCC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -81,8 +82,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -90,7 +98,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamCC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteamEU.cpp b/CGMES_2.4.13_18DEC2013/GovSteamEU.cpp index 79c47df8b..ca8ca6e82 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamEU.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamEU.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamEU(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamEU.chc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cho", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.hhpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.kfcor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.khp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.klp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.kwcor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.prhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.simx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tdp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.ten", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tfp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.thp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tvhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tvip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wfmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wmax1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wmax2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wwmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wwmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamEU::GovSteamEU() {} GovSteamEU::~GovSteamEU() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamEU.chc", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cho", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cic", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cio", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.db1", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.db2", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.hhpmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.ke", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.kfcor", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.khp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.klp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.kwcor", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.prhmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.simx", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tdp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.ten", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tf", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tfp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.thp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tip", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tlp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.trh", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tvhp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tvip", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tw", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wfmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wfmin", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wmax1", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wmax2", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wwmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wwmin", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamEU::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamEU::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamEU::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamEU::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamEU::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamEU::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamEU::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamEU::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamEU::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamEU_chc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovSteamEU::debugString() const void GovSteamEU::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamEU", &GovSteamEU_factory); + factory_map.emplace("GovSteamEU", &GovSteamEU_factory); } void GovSteamEU::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamEU.chc", &assign_GovSteamEU_chc); - assign_map.emplace("cim:GovSteamEU.cho", &assign_GovSteamEU_cho); - assign_map.emplace("cim:GovSteamEU.cic", &assign_GovSteamEU_cic); - assign_map.emplace("cim:GovSteamEU.cio", &assign_GovSteamEU_cio); - assign_map.emplace("cim:GovSteamEU.db1", &assign_GovSteamEU_db1); - assign_map.emplace("cim:GovSteamEU.db2", &assign_GovSteamEU_db2); - assign_map.emplace("cim:GovSteamEU.hhpmax", &assign_GovSteamEU_hhpmax); - assign_map.emplace("cim:GovSteamEU.ke", &assign_GovSteamEU_ke); - assign_map.emplace("cim:GovSteamEU.kfcor", &assign_GovSteamEU_kfcor); - assign_map.emplace("cim:GovSteamEU.khp", &assign_GovSteamEU_khp); - assign_map.emplace("cim:GovSteamEU.klp", &assign_GovSteamEU_klp); - assign_map.emplace("cim:GovSteamEU.kwcor", &assign_GovSteamEU_kwcor); - assign_map.emplace("cim:GovSteamEU.mwbase", &assign_GovSteamEU_mwbase); - assign_map.emplace("cim:GovSteamEU.pmax", &assign_GovSteamEU_pmax); - assign_map.emplace("cim:GovSteamEU.prhmax", &assign_GovSteamEU_prhmax); - assign_map.emplace("cim:GovSteamEU.simx", &assign_GovSteamEU_simx); - assign_map.emplace("cim:GovSteamEU.tb", &assign_GovSteamEU_tb); - assign_map.emplace("cim:GovSteamEU.tdp", &assign_GovSteamEU_tdp); - assign_map.emplace("cim:GovSteamEU.ten", &assign_GovSteamEU_ten); - assign_map.emplace("cim:GovSteamEU.tf", &assign_GovSteamEU_tf); - assign_map.emplace("cim:GovSteamEU.tfp", &assign_GovSteamEU_tfp); - assign_map.emplace("cim:GovSteamEU.thp", &assign_GovSteamEU_thp); - assign_map.emplace("cim:GovSteamEU.tip", &assign_GovSteamEU_tip); - assign_map.emplace("cim:GovSteamEU.tlp", &assign_GovSteamEU_tlp); - assign_map.emplace("cim:GovSteamEU.tp", &assign_GovSteamEU_tp); - assign_map.emplace("cim:GovSteamEU.trh", &assign_GovSteamEU_trh); - assign_map.emplace("cim:GovSteamEU.tvhp", &assign_GovSteamEU_tvhp); - assign_map.emplace("cim:GovSteamEU.tvip", &assign_GovSteamEU_tvip); - assign_map.emplace("cim:GovSteamEU.tw", &assign_GovSteamEU_tw); - assign_map.emplace("cim:GovSteamEU.wfmax", &assign_GovSteamEU_wfmax); - assign_map.emplace("cim:GovSteamEU.wfmin", &assign_GovSteamEU_wfmin); - assign_map.emplace("cim:GovSteamEU.wmax1", &assign_GovSteamEU_wmax1); - assign_map.emplace("cim:GovSteamEU.wmax2", &assign_GovSteamEU_wmax2); - assign_map.emplace("cim:GovSteamEU.wwmax", &assign_GovSteamEU_wwmax); - assign_map.emplace("cim:GovSteamEU.wwmin", &assign_GovSteamEU_wwmin); + assign_map.emplace("GovSteamEU.chc", &assign_GovSteamEU_chc); + assign_map.emplace("GovSteamEU.cho", &assign_GovSteamEU_cho); + assign_map.emplace("GovSteamEU.cic", &assign_GovSteamEU_cic); + assign_map.emplace("GovSteamEU.cio", &assign_GovSteamEU_cio); + assign_map.emplace("GovSteamEU.db1", &assign_GovSteamEU_db1); + assign_map.emplace("GovSteamEU.db2", &assign_GovSteamEU_db2); + assign_map.emplace("GovSteamEU.hhpmax", &assign_GovSteamEU_hhpmax); + assign_map.emplace("GovSteamEU.ke", &assign_GovSteamEU_ke); + assign_map.emplace("GovSteamEU.kfcor", &assign_GovSteamEU_kfcor); + assign_map.emplace("GovSteamEU.khp", &assign_GovSteamEU_khp); + assign_map.emplace("GovSteamEU.klp", &assign_GovSteamEU_klp); + assign_map.emplace("GovSteamEU.kwcor", &assign_GovSteamEU_kwcor); + assign_map.emplace("GovSteamEU.mwbase", &assign_GovSteamEU_mwbase); + assign_map.emplace("GovSteamEU.pmax", &assign_GovSteamEU_pmax); + assign_map.emplace("GovSteamEU.prhmax", &assign_GovSteamEU_prhmax); + assign_map.emplace("GovSteamEU.simx", &assign_GovSteamEU_simx); + assign_map.emplace("GovSteamEU.tb", &assign_GovSteamEU_tb); + assign_map.emplace("GovSteamEU.tdp", &assign_GovSteamEU_tdp); + assign_map.emplace("GovSteamEU.ten", &assign_GovSteamEU_ten); + assign_map.emplace("GovSteamEU.tf", &assign_GovSteamEU_tf); + assign_map.emplace("GovSteamEU.tfp", &assign_GovSteamEU_tfp); + assign_map.emplace("GovSteamEU.thp", &assign_GovSteamEU_thp); + assign_map.emplace("GovSteamEU.tip", &assign_GovSteamEU_tip); + assign_map.emplace("GovSteamEU.tlp", &assign_GovSteamEU_tlp); + assign_map.emplace("GovSteamEU.tp", &assign_GovSteamEU_tp); + assign_map.emplace("GovSteamEU.trh", &assign_GovSteamEU_trh); + assign_map.emplace("GovSteamEU.tvhp", &assign_GovSteamEU_tvhp); + assign_map.emplace("GovSteamEU.tvip", &assign_GovSteamEU_tvip); + assign_map.emplace("GovSteamEU.tw", &assign_GovSteamEU_tw); + assign_map.emplace("GovSteamEU.wfmax", &assign_GovSteamEU_wfmax); + assign_map.emplace("GovSteamEU.wfmin", &assign_GovSteamEU_wfmin); + assign_map.emplace("GovSteamEU.wmax1", &assign_GovSteamEU_wmax1); + assign_map.emplace("GovSteamEU.wmax2", &assign_GovSteamEU_wmax2); + assign_map.emplace("GovSteamEU.wwmax", &assign_GovSteamEU_wwmax); + assign_map.emplace("GovSteamEU.wwmin", &assign_GovSteamEU_wwmin); } void GovSteamEU::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,41 +1177,41 @@ void GovSteamEU::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamEU.chc", &get_GovSteamEU_chc); - get_map.emplace("cim:GovSteamEU.cho", &get_GovSteamEU_cho); - get_map.emplace("cim:GovSteamEU.cic", &get_GovSteamEU_cic); - get_map.emplace("cim:GovSteamEU.cio", &get_GovSteamEU_cio); - get_map.emplace("cim:GovSteamEU.db1", &get_GovSteamEU_db1); - get_map.emplace("cim:GovSteamEU.db2", &get_GovSteamEU_db2); - get_map.emplace("cim:GovSteamEU.hhpmax", &get_GovSteamEU_hhpmax); - get_map.emplace("cim:GovSteamEU.ke", &get_GovSteamEU_ke); - get_map.emplace("cim:GovSteamEU.kfcor", &get_GovSteamEU_kfcor); - get_map.emplace("cim:GovSteamEU.khp", &get_GovSteamEU_khp); - get_map.emplace("cim:GovSteamEU.klp", &get_GovSteamEU_klp); - get_map.emplace("cim:GovSteamEU.kwcor", &get_GovSteamEU_kwcor); - get_map.emplace("cim:GovSteamEU.mwbase", &get_GovSteamEU_mwbase); - get_map.emplace("cim:GovSteamEU.pmax", &get_GovSteamEU_pmax); - get_map.emplace("cim:GovSteamEU.prhmax", &get_GovSteamEU_prhmax); - get_map.emplace("cim:GovSteamEU.simx", &get_GovSteamEU_simx); - get_map.emplace("cim:GovSteamEU.tb", &get_GovSteamEU_tb); - get_map.emplace("cim:GovSteamEU.tdp", &get_GovSteamEU_tdp); - get_map.emplace("cim:GovSteamEU.ten", &get_GovSteamEU_ten); - get_map.emplace("cim:GovSteamEU.tf", &get_GovSteamEU_tf); - get_map.emplace("cim:GovSteamEU.tfp", &get_GovSteamEU_tfp); - get_map.emplace("cim:GovSteamEU.thp", &get_GovSteamEU_thp); - get_map.emplace("cim:GovSteamEU.tip", &get_GovSteamEU_tip); - get_map.emplace("cim:GovSteamEU.tlp", &get_GovSteamEU_tlp); - get_map.emplace("cim:GovSteamEU.tp", &get_GovSteamEU_tp); - get_map.emplace("cim:GovSteamEU.trh", &get_GovSteamEU_trh); - get_map.emplace("cim:GovSteamEU.tvhp", &get_GovSteamEU_tvhp); - get_map.emplace("cim:GovSteamEU.tvip", &get_GovSteamEU_tvip); - get_map.emplace("cim:GovSteamEU.tw", &get_GovSteamEU_tw); - get_map.emplace("cim:GovSteamEU.wfmax", &get_GovSteamEU_wfmax); - get_map.emplace("cim:GovSteamEU.wfmin", &get_GovSteamEU_wfmin); - get_map.emplace("cim:GovSteamEU.wmax1", &get_GovSteamEU_wmax1); - get_map.emplace("cim:GovSteamEU.wmax2", &get_GovSteamEU_wmax2); - get_map.emplace("cim:GovSteamEU.wwmax", &get_GovSteamEU_wwmax); - get_map.emplace("cim:GovSteamEU.wwmin", &get_GovSteamEU_wwmin); + get_map.emplace("GovSteamEU.chc", &get_GovSteamEU_chc); + get_map.emplace("GovSteamEU.cho", &get_GovSteamEU_cho); + get_map.emplace("GovSteamEU.cic", &get_GovSteamEU_cic); + get_map.emplace("GovSteamEU.cio", &get_GovSteamEU_cio); + get_map.emplace("GovSteamEU.db1", &get_GovSteamEU_db1); + get_map.emplace("GovSteamEU.db2", &get_GovSteamEU_db2); + get_map.emplace("GovSteamEU.hhpmax", &get_GovSteamEU_hhpmax); + get_map.emplace("GovSteamEU.ke", &get_GovSteamEU_ke); + get_map.emplace("GovSteamEU.kfcor", &get_GovSteamEU_kfcor); + get_map.emplace("GovSteamEU.khp", &get_GovSteamEU_khp); + get_map.emplace("GovSteamEU.klp", &get_GovSteamEU_klp); + get_map.emplace("GovSteamEU.kwcor", &get_GovSteamEU_kwcor); + get_map.emplace("GovSteamEU.mwbase", &get_GovSteamEU_mwbase); + get_map.emplace("GovSteamEU.pmax", &get_GovSteamEU_pmax); + get_map.emplace("GovSteamEU.prhmax", &get_GovSteamEU_prhmax); + get_map.emplace("GovSteamEU.simx", &get_GovSteamEU_simx); + get_map.emplace("GovSteamEU.tb", &get_GovSteamEU_tb); + get_map.emplace("GovSteamEU.tdp", &get_GovSteamEU_tdp); + get_map.emplace("GovSteamEU.ten", &get_GovSteamEU_ten); + get_map.emplace("GovSteamEU.tf", &get_GovSteamEU_tf); + get_map.emplace("GovSteamEU.tfp", &get_GovSteamEU_tfp); + get_map.emplace("GovSteamEU.thp", &get_GovSteamEU_thp); + get_map.emplace("GovSteamEU.tip", &get_GovSteamEU_tip); + get_map.emplace("GovSteamEU.tlp", &get_GovSteamEU_tlp); + get_map.emplace("GovSteamEU.tp", &get_GovSteamEU_tp); + get_map.emplace("GovSteamEU.trh", &get_GovSteamEU_trh); + get_map.emplace("GovSteamEU.tvhp", &get_GovSteamEU_tvhp); + get_map.emplace("GovSteamEU.tvip", &get_GovSteamEU_tvip); + get_map.emplace("GovSteamEU.tw", &get_GovSteamEU_tw); + get_map.emplace("GovSteamEU.wfmax", &get_GovSteamEU_wfmax); + get_map.emplace("GovSteamEU.wfmin", &get_GovSteamEU_wfmin); + get_map.emplace("GovSteamEU.wmax1", &get_GovSteamEU_wmax1); + get_map.emplace("GovSteamEU.wmax2", &get_GovSteamEU_wmax2); + get_map.emplace("GovSteamEU.wwmax", &get_GovSteamEU_wwmax); + get_map.emplace("GovSteamEU.wwmin", &get_GovSteamEU_wwmin); } void GovSteamEU::addClassGetFnsToMap(std::map& get_map) const @@ -1192,11 +1224,25 @@ void GovSteamEU::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamEU::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamEU" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamEU::declare() { return BaseClassDefiner(GovSteamEU::addConstructToMap, GovSteamEU::addPrimitiveAssignFnsToMap, GovSteamEU::addClassAssignFnsToMap, GovSteamEU::debugName); } +std::map GovSteamEU::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamEU_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteamEU.hpp b/CGMES_2.4.13_18DEC2013/GovSteamEU.hpp index 8a76be166..c1a98cc47 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamEU.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamEU.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -136,8 +137,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -145,7 +153,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamEU_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteamFV2.cpp b/CGMES_2.4.13_18DEC2013/GovSteamFV2.cpp index 2859415ca..6ed7f507a 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamFV2.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamFV2.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV2.dt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV2::GovSteamFV2() {} GovSteamFV2::~GovSteamFV2() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamFV2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamFV2::getClassNamespaceUrl() const { - { "cim:GovSteamFV2.dt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.k", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.r", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.ti", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.vmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamFV2::getPossibleProfilesForClass() const +const std::string& GovSteamFV2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamFV2::getPossibleProfilesForAttributes() const +const std::list& GovSteamFV2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV2_dt(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* GovSteamFV2::debugString() const void GovSteamFV2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV2", &GovSteamFV2_factory); + factory_map.emplace("GovSteamFV2", &GovSteamFV2_factory); } void GovSteamFV2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV2.dt", &assign_GovSteamFV2_dt); - assign_map.emplace("cim:GovSteamFV2.k", &assign_GovSteamFV2_k); - assign_map.emplace("cim:GovSteamFV2.mwbase", &assign_GovSteamFV2_mwbase); - assign_map.emplace("cim:GovSteamFV2.r", &assign_GovSteamFV2_r); - assign_map.emplace("cim:GovSteamFV2.t1", &assign_GovSteamFV2_t1); - assign_map.emplace("cim:GovSteamFV2.t3", &assign_GovSteamFV2_t3); - assign_map.emplace("cim:GovSteamFV2.ta", &assign_GovSteamFV2_ta); - assign_map.emplace("cim:GovSteamFV2.tb", &assign_GovSteamFV2_tb); - assign_map.emplace("cim:GovSteamFV2.tc", &assign_GovSteamFV2_tc); - assign_map.emplace("cim:GovSteamFV2.ti", &assign_GovSteamFV2_ti); - assign_map.emplace("cim:GovSteamFV2.tt", &assign_GovSteamFV2_tt); - assign_map.emplace("cim:GovSteamFV2.vmax", &assign_GovSteamFV2_vmax); - assign_map.emplace("cim:GovSteamFV2.vmin", &assign_GovSteamFV2_vmin); + assign_map.emplace("GovSteamFV2.dt", &assign_GovSteamFV2_dt); + assign_map.emplace("GovSteamFV2.k", &assign_GovSteamFV2_k); + assign_map.emplace("GovSteamFV2.mwbase", &assign_GovSteamFV2_mwbase); + assign_map.emplace("GovSteamFV2.r", &assign_GovSteamFV2_r); + assign_map.emplace("GovSteamFV2.t1", &assign_GovSteamFV2_t1); + assign_map.emplace("GovSteamFV2.t3", &assign_GovSteamFV2_t3); + assign_map.emplace("GovSteamFV2.ta", &assign_GovSteamFV2_ta); + assign_map.emplace("GovSteamFV2.tb", &assign_GovSteamFV2_tb); + assign_map.emplace("GovSteamFV2.tc", &assign_GovSteamFV2_tc); + assign_map.emplace("GovSteamFV2.ti", &assign_GovSteamFV2_ti); + assign_map.emplace("GovSteamFV2.tt", &assign_GovSteamFV2_tt); + assign_map.emplace("GovSteamFV2.vmax", &assign_GovSteamFV2_vmax); + assign_map.emplace("GovSteamFV2.vmin", &assign_GovSteamFV2_vmin); } void GovSteamFV2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void GovSteamFV2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV2.dt", &get_GovSteamFV2_dt); - get_map.emplace("cim:GovSteamFV2.k", &get_GovSteamFV2_k); - get_map.emplace("cim:GovSteamFV2.mwbase", &get_GovSteamFV2_mwbase); - get_map.emplace("cim:GovSteamFV2.r", &get_GovSteamFV2_r); - get_map.emplace("cim:GovSteamFV2.t1", &get_GovSteamFV2_t1); - get_map.emplace("cim:GovSteamFV2.t3", &get_GovSteamFV2_t3); - get_map.emplace("cim:GovSteamFV2.ta", &get_GovSteamFV2_ta); - get_map.emplace("cim:GovSteamFV2.tb", &get_GovSteamFV2_tb); - get_map.emplace("cim:GovSteamFV2.tc", &get_GovSteamFV2_tc); - get_map.emplace("cim:GovSteamFV2.ti", &get_GovSteamFV2_ti); - get_map.emplace("cim:GovSteamFV2.tt", &get_GovSteamFV2_tt); - get_map.emplace("cim:GovSteamFV2.vmax", &get_GovSteamFV2_vmax); - get_map.emplace("cim:GovSteamFV2.vmin", &get_GovSteamFV2_vmin); + get_map.emplace("GovSteamFV2.dt", &get_GovSteamFV2_dt); + get_map.emplace("GovSteamFV2.k", &get_GovSteamFV2_k); + get_map.emplace("GovSteamFV2.mwbase", &get_GovSteamFV2_mwbase); + get_map.emplace("GovSteamFV2.r", &get_GovSteamFV2_r); + get_map.emplace("GovSteamFV2.t1", &get_GovSteamFV2_t1); + get_map.emplace("GovSteamFV2.t3", &get_GovSteamFV2_t3); + get_map.emplace("GovSteamFV2.ta", &get_GovSteamFV2_ta); + get_map.emplace("GovSteamFV2.tb", &get_GovSteamFV2_tb); + get_map.emplace("GovSteamFV2.tc", &get_GovSteamFV2_tc); + get_map.emplace("GovSteamFV2.ti", &get_GovSteamFV2_ti); + get_map.emplace("GovSteamFV2.tt", &get_GovSteamFV2_tt); + get_map.emplace("GovSteamFV2.vmax", &get_GovSteamFV2_vmax); + get_map.emplace("GovSteamFV2.vmin", &get_GovSteamFV2_vmin); } void GovSteamFV2::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void GovSteamFV2::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV2::declare() { return BaseClassDefiner(GovSteamFV2::addConstructToMap, GovSteamFV2::addPrimitiveAssignFnsToMap, GovSteamFV2::addClassAssignFnsToMap, GovSteamFV2::debugName); } +std::map GovSteamFV2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV2_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteamFV2.hpp b/CGMES_2.4.13_18DEC2013/GovSteamFV2.hpp index 7df266adb..7aa432394 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamFV2.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamFV2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteamFV3.cpp b/CGMES_2.4.13_18DEC2013/GovSteamFV3.cpp index 871238fb7..dcabd7beb 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamFV3.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamFV3.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV3.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.prmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV3::GovSteamFV3() {} GovSteamFV3::~GovSteamFV3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamFV3.k", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.prmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.uc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamFV3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamFV3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamFV3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamFV3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamFV3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamFV3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV3_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* GovSteamFV3::debugString() const void GovSteamFV3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV3", &GovSteamFV3_factory); + factory_map.emplace("GovSteamFV3", &GovSteamFV3_factory); } void GovSteamFV3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV3.k", &assign_GovSteamFV3_k); - assign_map.emplace("cim:GovSteamFV3.k1", &assign_GovSteamFV3_k1); - assign_map.emplace("cim:GovSteamFV3.k2", &assign_GovSteamFV3_k2); - assign_map.emplace("cim:GovSteamFV3.k3", &assign_GovSteamFV3_k3); - assign_map.emplace("cim:GovSteamFV3.mwbase", &assign_GovSteamFV3_mwbase); - assign_map.emplace("cim:GovSteamFV3.pmax", &assign_GovSteamFV3_pmax); - assign_map.emplace("cim:GovSteamFV3.pmin", &assign_GovSteamFV3_pmin); - assign_map.emplace("cim:GovSteamFV3.prmax", &assign_GovSteamFV3_prmax); - assign_map.emplace("cim:GovSteamFV3.t1", &assign_GovSteamFV3_t1); - assign_map.emplace("cim:GovSteamFV3.t2", &assign_GovSteamFV3_t2); - assign_map.emplace("cim:GovSteamFV3.t3", &assign_GovSteamFV3_t3); - assign_map.emplace("cim:GovSteamFV3.t4", &assign_GovSteamFV3_t4); - assign_map.emplace("cim:GovSteamFV3.t5", &assign_GovSteamFV3_t5); - assign_map.emplace("cim:GovSteamFV3.t6", &assign_GovSteamFV3_t6); - assign_map.emplace("cim:GovSteamFV3.ta", &assign_GovSteamFV3_ta); - assign_map.emplace("cim:GovSteamFV3.tb", &assign_GovSteamFV3_tb); - assign_map.emplace("cim:GovSteamFV3.tc", &assign_GovSteamFV3_tc); - assign_map.emplace("cim:GovSteamFV3.uc", &assign_GovSteamFV3_uc); - assign_map.emplace("cim:GovSteamFV3.uo", &assign_GovSteamFV3_uo); + assign_map.emplace("GovSteamFV3.k", &assign_GovSteamFV3_k); + assign_map.emplace("GovSteamFV3.k1", &assign_GovSteamFV3_k1); + assign_map.emplace("GovSteamFV3.k2", &assign_GovSteamFV3_k2); + assign_map.emplace("GovSteamFV3.k3", &assign_GovSteamFV3_k3); + assign_map.emplace("GovSteamFV3.mwbase", &assign_GovSteamFV3_mwbase); + assign_map.emplace("GovSteamFV3.pmax", &assign_GovSteamFV3_pmax); + assign_map.emplace("GovSteamFV3.pmin", &assign_GovSteamFV3_pmin); + assign_map.emplace("GovSteamFV3.prmax", &assign_GovSteamFV3_prmax); + assign_map.emplace("GovSteamFV3.t1", &assign_GovSteamFV3_t1); + assign_map.emplace("GovSteamFV3.t2", &assign_GovSteamFV3_t2); + assign_map.emplace("GovSteamFV3.t3", &assign_GovSteamFV3_t3); + assign_map.emplace("GovSteamFV3.t4", &assign_GovSteamFV3_t4); + assign_map.emplace("GovSteamFV3.t5", &assign_GovSteamFV3_t5); + assign_map.emplace("GovSteamFV3.t6", &assign_GovSteamFV3_t6); + assign_map.emplace("GovSteamFV3.ta", &assign_GovSteamFV3_ta); + assign_map.emplace("GovSteamFV3.tb", &assign_GovSteamFV3_tb); + assign_map.emplace("GovSteamFV3.tc", &assign_GovSteamFV3_tc); + assign_map.emplace("GovSteamFV3.uc", &assign_GovSteamFV3_uc); + assign_map.emplace("GovSteamFV3.uo", &assign_GovSteamFV3_uo); } void GovSteamFV3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void GovSteamFV3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV3.k", &get_GovSteamFV3_k); - get_map.emplace("cim:GovSteamFV3.k1", &get_GovSteamFV3_k1); - get_map.emplace("cim:GovSteamFV3.k2", &get_GovSteamFV3_k2); - get_map.emplace("cim:GovSteamFV3.k3", &get_GovSteamFV3_k3); - get_map.emplace("cim:GovSteamFV3.mwbase", &get_GovSteamFV3_mwbase); - get_map.emplace("cim:GovSteamFV3.pmax", &get_GovSteamFV3_pmax); - get_map.emplace("cim:GovSteamFV3.pmin", &get_GovSteamFV3_pmin); - get_map.emplace("cim:GovSteamFV3.prmax", &get_GovSteamFV3_prmax); - get_map.emplace("cim:GovSteamFV3.t1", &get_GovSteamFV3_t1); - get_map.emplace("cim:GovSteamFV3.t2", &get_GovSteamFV3_t2); - get_map.emplace("cim:GovSteamFV3.t3", &get_GovSteamFV3_t3); - get_map.emplace("cim:GovSteamFV3.t4", &get_GovSteamFV3_t4); - get_map.emplace("cim:GovSteamFV3.t5", &get_GovSteamFV3_t5); - get_map.emplace("cim:GovSteamFV3.t6", &get_GovSteamFV3_t6); - get_map.emplace("cim:GovSteamFV3.ta", &get_GovSteamFV3_ta); - get_map.emplace("cim:GovSteamFV3.tb", &get_GovSteamFV3_tb); - get_map.emplace("cim:GovSteamFV3.tc", &get_GovSteamFV3_tc); - get_map.emplace("cim:GovSteamFV3.uc", &get_GovSteamFV3_uc); - get_map.emplace("cim:GovSteamFV3.uo", &get_GovSteamFV3_uo); + get_map.emplace("GovSteamFV3.k", &get_GovSteamFV3_k); + get_map.emplace("GovSteamFV3.k1", &get_GovSteamFV3_k1); + get_map.emplace("GovSteamFV3.k2", &get_GovSteamFV3_k2); + get_map.emplace("GovSteamFV3.k3", &get_GovSteamFV3_k3); + get_map.emplace("GovSteamFV3.mwbase", &get_GovSteamFV3_mwbase); + get_map.emplace("GovSteamFV3.pmax", &get_GovSteamFV3_pmax); + get_map.emplace("GovSteamFV3.pmin", &get_GovSteamFV3_pmin); + get_map.emplace("GovSteamFV3.prmax", &get_GovSteamFV3_prmax); + get_map.emplace("GovSteamFV3.t1", &get_GovSteamFV3_t1); + get_map.emplace("GovSteamFV3.t2", &get_GovSteamFV3_t2); + get_map.emplace("GovSteamFV3.t3", &get_GovSteamFV3_t3); + get_map.emplace("GovSteamFV3.t4", &get_GovSteamFV3_t4); + get_map.emplace("GovSteamFV3.t5", &get_GovSteamFV3_t5); + get_map.emplace("GovSteamFV3.t6", &get_GovSteamFV3_t6); + get_map.emplace("GovSteamFV3.ta", &get_GovSteamFV3_ta); + get_map.emplace("GovSteamFV3.tb", &get_GovSteamFV3_tb); + get_map.emplace("GovSteamFV3.tc", &get_GovSteamFV3_tc); + get_map.emplace("GovSteamFV3.uc", &get_GovSteamFV3_uc); + get_map.emplace("GovSteamFV3.uo", &get_GovSteamFV3_uo); } void GovSteamFV3::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void GovSteamFV3::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV3::declare() { return BaseClassDefiner(GovSteamFV3::addConstructToMap, GovSteamFV3::addPrimitiveAssignFnsToMap, GovSteamFV3::addClassAssignFnsToMap, GovSteamFV3::debugName); } +std::map GovSteamFV3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV3_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteamFV3.hpp b/CGMES_2.4.13_18DEC2013/GovSteamFV3.hpp index d69d84dd6..9fad1f0cb 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamFV3.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamFV3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV3_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteamFV4.cpp b/CGMES_2.4.13_18DEC2013/GovSteamFV4.cpp index 18cb0f39c..ca28d88c8 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamFV4.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamFV4.cpp @@ -11,82 +11,114 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV4.cpsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.cpsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.crmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.crmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.khp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kmp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kmp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.krc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ksh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.lpi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.lps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.pr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.pr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.psmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rsmimn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rsmimx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rvgmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rvgmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srsmp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.svmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.svmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tcm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.thp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tmp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ty", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.y", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.yhpmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.yhpmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ympmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ympmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV4::GovSteamFV4() {} GovSteamFV4::~GovSteamFV4() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamFV4.cpsmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.cpsmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.crmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.crmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kdc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kf1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kf3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.khp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kic", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kip", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kit", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kmp1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kmp2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.krc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ksh", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.lpi", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.lps", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.mnef", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.mxef", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.pr1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.pr2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.psmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rsmimn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rsmimx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rvgmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rvgmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srsmp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.svmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.svmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tam", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tcm", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tdc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tf1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tf2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.thp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tmp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.trh", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tv", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ty", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.y", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.yhpmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.yhpmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ympmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ympmx", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamFV4::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamFV4::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamFV4::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamFV4::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamFV4::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamFV4::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV4_cpsmn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1576,62 +1608,62 @@ const char* GovSteamFV4::debugString() const void GovSteamFV4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV4", &GovSteamFV4_factory); + factory_map.emplace("GovSteamFV4", &GovSteamFV4_factory); } void GovSteamFV4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV4.cpsmn", &assign_GovSteamFV4_cpsmn); - assign_map.emplace("cim:GovSteamFV4.cpsmx", &assign_GovSteamFV4_cpsmx); - assign_map.emplace("cim:GovSteamFV4.crmn", &assign_GovSteamFV4_crmn); - assign_map.emplace("cim:GovSteamFV4.crmx", &assign_GovSteamFV4_crmx); - assign_map.emplace("cim:GovSteamFV4.kdc", &assign_GovSteamFV4_kdc); - assign_map.emplace("cim:GovSteamFV4.kf1", &assign_GovSteamFV4_kf1); - assign_map.emplace("cim:GovSteamFV4.kf3", &assign_GovSteamFV4_kf3); - assign_map.emplace("cim:GovSteamFV4.khp", &assign_GovSteamFV4_khp); - assign_map.emplace("cim:GovSteamFV4.kic", &assign_GovSteamFV4_kic); - assign_map.emplace("cim:GovSteamFV4.kip", &assign_GovSteamFV4_kip); - assign_map.emplace("cim:GovSteamFV4.kit", &assign_GovSteamFV4_kit); - assign_map.emplace("cim:GovSteamFV4.kmp1", &assign_GovSteamFV4_kmp1); - assign_map.emplace("cim:GovSteamFV4.kmp2", &assign_GovSteamFV4_kmp2); - assign_map.emplace("cim:GovSteamFV4.kpc", &assign_GovSteamFV4_kpc); - assign_map.emplace("cim:GovSteamFV4.kpp", &assign_GovSteamFV4_kpp); - assign_map.emplace("cim:GovSteamFV4.kpt", &assign_GovSteamFV4_kpt); - assign_map.emplace("cim:GovSteamFV4.krc", &assign_GovSteamFV4_krc); - assign_map.emplace("cim:GovSteamFV4.ksh", &assign_GovSteamFV4_ksh); - assign_map.emplace("cim:GovSteamFV4.lpi", &assign_GovSteamFV4_lpi); - assign_map.emplace("cim:GovSteamFV4.lps", &assign_GovSteamFV4_lps); - assign_map.emplace("cim:GovSteamFV4.mnef", &assign_GovSteamFV4_mnef); - assign_map.emplace("cim:GovSteamFV4.mxef", &assign_GovSteamFV4_mxef); - assign_map.emplace("cim:GovSteamFV4.pr1", &assign_GovSteamFV4_pr1); - assign_map.emplace("cim:GovSteamFV4.pr2", &assign_GovSteamFV4_pr2); - assign_map.emplace("cim:GovSteamFV4.psmn", &assign_GovSteamFV4_psmn); - assign_map.emplace("cim:GovSteamFV4.rsmimn", &assign_GovSteamFV4_rsmimn); - assign_map.emplace("cim:GovSteamFV4.rsmimx", &assign_GovSteamFV4_rsmimx); - assign_map.emplace("cim:GovSteamFV4.rvgmn", &assign_GovSteamFV4_rvgmn); - assign_map.emplace("cim:GovSteamFV4.rvgmx", &assign_GovSteamFV4_rvgmx); - assign_map.emplace("cim:GovSteamFV4.srmn", &assign_GovSteamFV4_srmn); - assign_map.emplace("cim:GovSteamFV4.srmx", &assign_GovSteamFV4_srmx); - assign_map.emplace("cim:GovSteamFV4.srsmp", &assign_GovSteamFV4_srsmp); - assign_map.emplace("cim:GovSteamFV4.svmn", &assign_GovSteamFV4_svmn); - assign_map.emplace("cim:GovSteamFV4.svmx", &assign_GovSteamFV4_svmx); - assign_map.emplace("cim:GovSteamFV4.ta", &assign_GovSteamFV4_ta); - assign_map.emplace("cim:GovSteamFV4.tam", &assign_GovSteamFV4_tam); - assign_map.emplace("cim:GovSteamFV4.tc", &assign_GovSteamFV4_tc); - assign_map.emplace("cim:GovSteamFV4.tcm", &assign_GovSteamFV4_tcm); - assign_map.emplace("cim:GovSteamFV4.tdc", &assign_GovSteamFV4_tdc); - assign_map.emplace("cim:GovSteamFV4.tf1", &assign_GovSteamFV4_tf1); - assign_map.emplace("cim:GovSteamFV4.tf2", &assign_GovSteamFV4_tf2); - assign_map.emplace("cim:GovSteamFV4.thp", &assign_GovSteamFV4_thp); - assign_map.emplace("cim:GovSteamFV4.tmp", &assign_GovSteamFV4_tmp); - assign_map.emplace("cim:GovSteamFV4.trh", &assign_GovSteamFV4_trh); - assign_map.emplace("cim:GovSteamFV4.tv", &assign_GovSteamFV4_tv); - assign_map.emplace("cim:GovSteamFV4.ty", &assign_GovSteamFV4_ty); - assign_map.emplace("cim:GovSteamFV4.y", &assign_GovSteamFV4_y); - assign_map.emplace("cim:GovSteamFV4.yhpmn", &assign_GovSteamFV4_yhpmn); - assign_map.emplace("cim:GovSteamFV4.yhpmx", &assign_GovSteamFV4_yhpmx); - assign_map.emplace("cim:GovSteamFV4.ympmn", &assign_GovSteamFV4_ympmn); - assign_map.emplace("cim:GovSteamFV4.ympmx", &assign_GovSteamFV4_ympmx); + assign_map.emplace("GovSteamFV4.cpsmn", &assign_GovSteamFV4_cpsmn); + assign_map.emplace("GovSteamFV4.cpsmx", &assign_GovSteamFV4_cpsmx); + assign_map.emplace("GovSteamFV4.crmn", &assign_GovSteamFV4_crmn); + assign_map.emplace("GovSteamFV4.crmx", &assign_GovSteamFV4_crmx); + assign_map.emplace("GovSteamFV4.kdc", &assign_GovSteamFV4_kdc); + assign_map.emplace("GovSteamFV4.kf1", &assign_GovSteamFV4_kf1); + assign_map.emplace("GovSteamFV4.kf3", &assign_GovSteamFV4_kf3); + assign_map.emplace("GovSteamFV4.khp", &assign_GovSteamFV4_khp); + assign_map.emplace("GovSteamFV4.kic", &assign_GovSteamFV4_kic); + assign_map.emplace("GovSteamFV4.kip", &assign_GovSteamFV4_kip); + assign_map.emplace("GovSteamFV4.kit", &assign_GovSteamFV4_kit); + assign_map.emplace("GovSteamFV4.kmp1", &assign_GovSteamFV4_kmp1); + assign_map.emplace("GovSteamFV4.kmp2", &assign_GovSteamFV4_kmp2); + assign_map.emplace("GovSteamFV4.kpc", &assign_GovSteamFV4_kpc); + assign_map.emplace("GovSteamFV4.kpp", &assign_GovSteamFV4_kpp); + assign_map.emplace("GovSteamFV4.kpt", &assign_GovSteamFV4_kpt); + assign_map.emplace("GovSteamFV4.krc", &assign_GovSteamFV4_krc); + assign_map.emplace("GovSteamFV4.ksh", &assign_GovSteamFV4_ksh); + assign_map.emplace("GovSteamFV4.lpi", &assign_GovSteamFV4_lpi); + assign_map.emplace("GovSteamFV4.lps", &assign_GovSteamFV4_lps); + assign_map.emplace("GovSteamFV4.mnef", &assign_GovSteamFV4_mnef); + assign_map.emplace("GovSteamFV4.mxef", &assign_GovSteamFV4_mxef); + assign_map.emplace("GovSteamFV4.pr1", &assign_GovSteamFV4_pr1); + assign_map.emplace("GovSteamFV4.pr2", &assign_GovSteamFV4_pr2); + assign_map.emplace("GovSteamFV4.psmn", &assign_GovSteamFV4_psmn); + assign_map.emplace("GovSteamFV4.rsmimn", &assign_GovSteamFV4_rsmimn); + assign_map.emplace("GovSteamFV4.rsmimx", &assign_GovSteamFV4_rsmimx); + assign_map.emplace("GovSteamFV4.rvgmn", &assign_GovSteamFV4_rvgmn); + assign_map.emplace("GovSteamFV4.rvgmx", &assign_GovSteamFV4_rvgmx); + assign_map.emplace("GovSteamFV4.srmn", &assign_GovSteamFV4_srmn); + assign_map.emplace("GovSteamFV4.srmx", &assign_GovSteamFV4_srmx); + assign_map.emplace("GovSteamFV4.srsmp", &assign_GovSteamFV4_srsmp); + assign_map.emplace("GovSteamFV4.svmn", &assign_GovSteamFV4_svmn); + assign_map.emplace("GovSteamFV4.svmx", &assign_GovSteamFV4_svmx); + assign_map.emplace("GovSteamFV4.ta", &assign_GovSteamFV4_ta); + assign_map.emplace("GovSteamFV4.tam", &assign_GovSteamFV4_tam); + assign_map.emplace("GovSteamFV4.tc", &assign_GovSteamFV4_tc); + assign_map.emplace("GovSteamFV4.tcm", &assign_GovSteamFV4_tcm); + assign_map.emplace("GovSteamFV4.tdc", &assign_GovSteamFV4_tdc); + assign_map.emplace("GovSteamFV4.tf1", &assign_GovSteamFV4_tf1); + assign_map.emplace("GovSteamFV4.tf2", &assign_GovSteamFV4_tf2); + assign_map.emplace("GovSteamFV4.thp", &assign_GovSteamFV4_thp); + assign_map.emplace("GovSteamFV4.tmp", &assign_GovSteamFV4_tmp); + assign_map.emplace("GovSteamFV4.trh", &assign_GovSteamFV4_trh); + assign_map.emplace("GovSteamFV4.tv", &assign_GovSteamFV4_tv); + assign_map.emplace("GovSteamFV4.ty", &assign_GovSteamFV4_ty); + assign_map.emplace("GovSteamFV4.y", &assign_GovSteamFV4_y); + assign_map.emplace("GovSteamFV4.yhpmn", &assign_GovSteamFV4_yhpmn); + assign_map.emplace("GovSteamFV4.yhpmx", &assign_GovSteamFV4_yhpmx); + assign_map.emplace("GovSteamFV4.ympmn", &assign_GovSteamFV4_ympmn); + assign_map.emplace("GovSteamFV4.ympmx", &assign_GovSteamFV4_ympmx); } void GovSteamFV4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1641,57 +1673,57 @@ void GovSteamFV4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV4.cpsmn", &get_GovSteamFV4_cpsmn); - get_map.emplace("cim:GovSteamFV4.cpsmx", &get_GovSteamFV4_cpsmx); - get_map.emplace("cim:GovSteamFV4.crmn", &get_GovSteamFV4_crmn); - get_map.emplace("cim:GovSteamFV4.crmx", &get_GovSteamFV4_crmx); - get_map.emplace("cim:GovSteamFV4.kdc", &get_GovSteamFV4_kdc); - get_map.emplace("cim:GovSteamFV4.kf1", &get_GovSteamFV4_kf1); - get_map.emplace("cim:GovSteamFV4.kf3", &get_GovSteamFV4_kf3); - get_map.emplace("cim:GovSteamFV4.khp", &get_GovSteamFV4_khp); - get_map.emplace("cim:GovSteamFV4.kic", &get_GovSteamFV4_kic); - get_map.emplace("cim:GovSteamFV4.kip", &get_GovSteamFV4_kip); - get_map.emplace("cim:GovSteamFV4.kit", &get_GovSteamFV4_kit); - get_map.emplace("cim:GovSteamFV4.kmp1", &get_GovSteamFV4_kmp1); - get_map.emplace("cim:GovSteamFV4.kmp2", &get_GovSteamFV4_kmp2); - get_map.emplace("cim:GovSteamFV4.kpc", &get_GovSteamFV4_kpc); - get_map.emplace("cim:GovSteamFV4.kpp", &get_GovSteamFV4_kpp); - get_map.emplace("cim:GovSteamFV4.kpt", &get_GovSteamFV4_kpt); - get_map.emplace("cim:GovSteamFV4.krc", &get_GovSteamFV4_krc); - get_map.emplace("cim:GovSteamFV4.ksh", &get_GovSteamFV4_ksh); - get_map.emplace("cim:GovSteamFV4.lpi", &get_GovSteamFV4_lpi); - get_map.emplace("cim:GovSteamFV4.lps", &get_GovSteamFV4_lps); - get_map.emplace("cim:GovSteamFV4.mnef", &get_GovSteamFV4_mnef); - get_map.emplace("cim:GovSteamFV4.mxef", &get_GovSteamFV4_mxef); - get_map.emplace("cim:GovSteamFV4.pr1", &get_GovSteamFV4_pr1); - get_map.emplace("cim:GovSteamFV4.pr2", &get_GovSteamFV4_pr2); - get_map.emplace("cim:GovSteamFV4.psmn", &get_GovSteamFV4_psmn); - get_map.emplace("cim:GovSteamFV4.rsmimn", &get_GovSteamFV4_rsmimn); - get_map.emplace("cim:GovSteamFV4.rsmimx", &get_GovSteamFV4_rsmimx); - get_map.emplace("cim:GovSteamFV4.rvgmn", &get_GovSteamFV4_rvgmn); - get_map.emplace("cim:GovSteamFV4.rvgmx", &get_GovSteamFV4_rvgmx); - get_map.emplace("cim:GovSteamFV4.srmn", &get_GovSteamFV4_srmn); - get_map.emplace("cim:GovSteamFV4.srmx", &get_GovSteamFV4_srmx); - get_map.emplace("cim:GovSteamFV4.srsmp", &get_GovSteamFV4_srsmp); - get_map.emplace("cim:GovSteamFV4.svmn", &get_GovSteamFV4_svmn); - get_map.emplace("cim:GovSteamFV4.svmx", &get_GovSteamFV4_svmx); - get_map.emplace("cim:GovSteamFV4.ta", &get_GovSteamFV4_ta); - get_map.emplace("cim:GovSteamFV4.tam", &get_GovSteamFV4_tam); - get_map.emplace("cim:GovSteamFV4.tc", &get_GovSteamFV4_tc); - get_map.emplace("cim:GovSteamFV4.tcm", &get_GovSteamFV4_tcm); - get_map.emplace("cim:GovSteamFV4.tdc", &get_GovSteamFV4_tdc); - get_map.emplace("cim:GovSteamFV4.tf1", &get_GovSteamFV4_tf1); - get_map.emplace("cim:GovSteamFV4.tf2", &get_GovSteamFV4_tf2); - get_map.emplace("cim:GovSteamFV4.thp", &get_GovSteamFV4_thp); - get_map.emplace("cim:GovSteamFV4.tmp", &get_GovSteamFV4_tmp); - get_map.emplace("cim:GovSteamFV4.trh", &get_GovSteamFV4_trh); - get_map.emplace("cim:GovSteamFV4.tv", &get_GovSteamFV4_tv); - get_map.emplace("cim:GovSteamFV4.ty", &get_GovSteamFV4_ty); - get_map.emplace("cim:GovSteamFV4.y", &get_GovSteamFV4_y); - get_map.emplace("cim:GovSteamFV4.yhpmn", &get_GovSteamFV4_yhpmn); - get_map.emplace("cim:GovSteamFV4.yhpmx", &get_GovSteamFV4_yhpmx); - get_map.emplace("cim:GovSteamFV4.ympmn", &get_GovSteamFV4_ympmn); - get_map.emplace("cim:GovSteamFV4.ympmx", &get_GovSteamFV4_ympmx); + get_map.emplace("GovSteamFV4.cpsmn", &get_GovSteamFV4_cpsmn); + get_map.emplace("GovSteamFV4.cpsmx", &get_GovSteamFV4_cpsmx); + get_map.emplace("GovSteamFV4.crmn", &get_GovSteamFV4_crmn); + get_map.emplace("GovSteamFV4.crmx", &get_GovSteamFV4_crmx); + get_map.emplace("GovSteamFV4.kdc", &get_GovSteamFV4_kdc); + get_map.emplace("GovSteamFV4.kf1", &get_GovSteamFV4_kf1); + get_map.emplace("GovSteamFV4.kf3", &get_GovSteamFV4_kf3); + get_map.emplace("GovSteamFV4.khp", &get_GovSteamFV4_khp); + get_map.emplace("GovSteamFV4.kic", &get_GovSteamFV4_kic); + get_map.emplace("GovSteamFV4.kip", &get_GovSteamFV4_kip); + get_map.emplace("GovSteamFV4.kit", &get_GovSteamFV4_kit); + get_map.emplace("GovSteamFV4.kmp1", &get_GovSteamFV4_kmp1); + get_map.emplace("GovSteamFV4.kmp2", &get_GovSteamFV4_kmp2); + get_map.emplace("GovSteamFV4.kpc", &get_GovSteamFV4_kpc); + get_map.emplace("GovSteamFV4.kpp", &get_GovSteamFV4_kpp); + get_map.emplace("GovSteamFV4.kpt", &get_GovSteamFV4_kpt); + get_map.emplace("GovSteamFV4.krc", &get_GovSteamFV4_krc); + get_map.emplace("GovSteamFV4.ksh", &get_GovSteamFV4_ksh); + get_map.emplace("GovSteamFV4.lpi", &get_GovSteamFV4_lpi); + get_map.emplace("GovSteamFV4.lps", &get_GovSteamFV4_lps); + get_map.emplace("GovSteamFV4.mnef", &get_GovSteamFV4_mnef); + get_map.emplace("GovSteamFV4.mxef", &get_GovSteamFV4_mxef); + get_map.emplace("GovSteamFV4.pr1", &get_GovSteamFV4_pr1); + get_map.emplace("GovSteamFV4.pr2", &get_GovSteamFV4_pr2); + get_map.emplace("GovSteamFV4.psmn", &get_GovSteamFV4_psmn); + get_map.emplace("GovSteamFV4.rsmimn", &get_GovSteamFV4_rsmimn); + get_map.emplace("GovSteamFV4.rsmimx", &get_GovSteamFV4_rsmimx); + get_map.emplace("GovSteamFV4.rvgmn", &get_GovSteamFV4_rvgmn); + get_map.emplace("GovSteamFV4.rvgmx", &get_GovSteamFV4_rvgmx); + get_map.emplace("GovSteamFV4.srmn", &get_GovSteamFV4_srmn); + get_map.emplace("GovSteamFV4.srmx", &get_GovSteamFV4_srmx); + get_map.emplace("GovSteamFV4.srsmp", &get_GovSteamFV4_srsmp); + get_map.emplace("GovSteamFV4.svmn", &get_GovSteamFV4_svmn); + get_map.emplace("GovSteamFV4.svmx", &get_GovSteamFV4_svmx); + get_map.emplace("GovSteamFV4.ta", &get_GovSteamFV4_ta); + get_map.emplace("GovSteamFV4.tam", &get_GovSteamFV4_tam); + get_map.emplace("GovSteamFV4.tc", &get_GovSteamFV4_tc); + get_map.emplace("GovSteamFV4.tcm", &get_GovSteamFV4_tcm); + get_map.emplace("GovSteamFV4.tdc", &get_GovSteamFV4_tdc); + get_map.emplace("GovSteamFV4.tf1", &get_GovSteamFV4_tf1); + get_map.emplace("GovSteamFV4.tf2", &get_GovSteamFV4_tf2); + get_map.emplace("GovSteamFV4.thp", &get_GovSteamFV4_thp); + get_map.emplace("GovSteamFV4.tmp", &get_GovSteamFV4_tmp); + get_map.emplace("GovSteamFV4.trh", &get_GovSteamFV4_trh); + get_map.emplace("GovSteamFV4.tv", &get_GovSteamFV4_tv); + get_map.emplace("GovSteamFV4.ty", &get_GovSteamFV4_ty); + get_map.emplace("GovSteamFV4.y", &get_GovSteamFV4_y); + get_map.emplace("GovSteamFV4.yhpmn", &get_GovSteamFV4_yhpmn); + get_map.emplace("GovSteamFV4.yhpmx", &get_GovSteamFV4_yhpmx); + get_map.emplace("GovSteamFV4.ympmn", &get_GovSteamFV4_ympmn); + get_map.emplace("GovSteamFV4.ympmx", &get_GovSteamFV4_ympmx); } void GovSteamFV4::addClassGetFnsToMap(std::map& get_map) const @@ -1704,11 +1736,25 @@ void GovSteamFV4::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV4::declare() { return BaseClassDefiner(GovSteamFV4::addConstructToMap, GovSteamFV4::addPrimitiveAssignFnsToMap, GovSteamFV4::addClassAssignFnsToMap, GovSteamFV4::debugName); } +std::map GovSteamFV4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV4_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteamFV4.hpp b/CGMES_2.4.13_18DEC2013/GovSteamFV4.hpp index 1a9e91160..629f2e3f7 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamFV4.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamFV4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -183,8 +184,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -192,7 +200,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV4_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteamIEEE1.cpp b/CGMES_2.4.13_18DEC2013/GovSteamIEEE1.cpp index 8dafb5bc6..4104cb890 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamIEEE1.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamIEEE1.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamIEEE1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamIEEE1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamIEEE1::GovSteamIEEE1() {} GovSteamIEEE1::~GovSteamIEEE1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamIEEE1.k", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k4", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k5", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k6", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k7", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k8", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t7", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.uc", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamIEEE1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamIEEE1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamIEEE1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamIEEE1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamIEEE1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamIEEE1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamIEEE1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamIEEE1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamIEEE1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamIEEE1_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* GovSteamIEEE1::debugString() const void GovSteamIEEE1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamIEEE1", &GovSteamIEEE1_factory); + factory_map.emplace("GovSteamIEEE1", &GovSteamIEEE1_factory); } void GovSteamIEEE1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamIEEE1.k", &assign_GovSteamIEEE1_k); - assign_map.emplace("cim:GovSteamIEEE1.k1", &assign_GovSteamIEEE1_k1); - assign_map.emplace("cim:GovSteamIEEE1.k2", &assign_GovSteamIEEE1_k2); - assign_map.emplace("cim:GovSteamIEEE1.k3", &assign_GovSteamIEEE1_k3); - assign_map.emplace("cim:GovSteamIEEE1.k4", &assign_GovSteamIEEE1_k4); - assign_map.emplace("cim:GovSteamIEEE1.k5", &assign_GovSteamIEEE1_k5); - assign_map.emplace("cim:GovSteamIEEE1.k6", &assign_GovSteamIEEE1_k6); - assign_map.emplace("cim:GovSteamIEEE1.k7", &assign_GovSteamIEEE1_k7); - assign_map.emplace("cim:GovSteamIEEE1.k8", &assign_GovSteamIEEE1_k8); - assign_map.emplace("cim:GovSteamIEEE1.mwbase", &assign_GovSteamIEEE1_mwbase); - assign_map.emplace("cim:GovSteamIEEE1.pmax", &assign_GovSteamIEEE1_pmax); - assign_map.emplace("cim:GovSteamIEEE1.pmin", &assign_GovSteamIEEE1_pmin); - assign_map.emplace("cim:GovSteamIEEE1.t1", &assign_GovSteamIEEE1_t1); - assign_map.emplace("cim:GovSteamIEEE1.t2", &assign_GovSteamIEEE1_t2); - assign_map.emplace("cim:GovSteamIEEE1.t3", &assign_GovSteamIEEE1_t3); - assign_map.emplace("cim:GovSteamIEEE1.t4", &assign_GovSteamIEEE1_t4); - assign_map.emplace("cim:GovSteamIEEE1.t5", &assign_GovSteamIEEE1_t5); - assign_map.emplace("cim:GovSteamIEEE1.t6", &assign_GovSteamIEEE1_t6); - assign_map.emplace("cim:GovSteamIEEE1.t7", &assign_GovSteamIEEE1_t7); - assign_map.emplace("cim:GovSteamIEEE1.uc", &assign_GovSteamIEEE1_uc); - assign_map.emplace("cim:GovSteamIEEE1.uo", &assign_GovSteamIEEE1_uo); + assign_map.emplace("GovSteamIEEE1.k", &assign_GovSteamIEEE1_k); + assign_map.emplace("GovSteamIEEE1.k1", &assign_GovSteamIEEE1_k1); + assign_map.emplace("GovSteamIEEE1.k2", &assign_GovSteamIEEE1_k2); + assign_map.emplace("GovSteamIEEE1.k3", &assign_GovSteamIEEE1_k3); + assign_map.emplace("GovSteamIEEE1.k4", &assign_GovSteamIEEE1_k4); + assign_map.emplace("GovSteamIEEE1.k5", &assign_GovSteamIEEE1_k5); + assign_map.emplace("GovSteamIEEE1.k6", &assign_GovSteamIEEE1_k6); + assign_map.emplace("GovSteamIEEE1.k7", &assign_GovSteamIEEE1_k7); + assign_map.emplace("GovSteamIEEE1.k8", &assign_GovSteamIEEE1_k8); + assign_map.emplace("GovSteamIEEE1.mwbase", &assign_GovSteamIEEE1_mwbase); + assign_map.emplace("GovSteamIEEE1.pmax", &assign_GovSteamIEEE1_pmax); + assign_map.emplace("GovSteamIEEE1.pmin", &assign_GovSteamIEEE1_pmin); + assign_map.emplace("GovSteamIEEE1.t1", &assign_GovSteamIEEE1_t1); + assign_map.emplace("GovSteamIEEE1.t2", &assign_GovSteamIEEE1_t2); + assign_map.emplace("GovSteamIEEE1.t3", &assign_GovSteamIEEE1_t3); + assign_map.emplace("GovSteamIEEE1.t4", &assign_GovSteamIEEE1_t4); + assign_map.emplace("GovSteamIEEE1.t5", &assign_GovSteamIEEE1_t5); + assign_map.emplace("GovSteamIEEE1.t6", &assign_GovSteamIEEE1_t6); + assign_map.emplace("GovSteamIEEE1.t7", &assign_GovSteamIEEE1_t7); + assign_map.emplace("GovSteamIEEE1.uc", &assign_GovSteamIEEE1_uc); + assign_map.emplace("GovSteamIEEE1.uo", &assign_GovSteamIEEE1_uo); } void GovSteamIEEE1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void GovSteamIEEE1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamIEEE1.k", &get_GovSteamIEEE1_k); - get_map.emplace("cim:GovSteamIEEE1.k1", &get_GovSteamIEEE1_k1); - get_map.emplace("cim:GovSteamIEEE1.k2", &get_GovSteamIEEE1_k2); - get_map.emplace("cim:GovSteamIEEE1.k3", &get_GovSteamIEEE1_k3); - get_map.emplace("cim:GovSteamIEEE1.k4", &get_GovSteamIEEE1_k4); - get_map.emplace("cim:GovSteamIEEE1.k5", &get_GovSteamIEEE1_k5); - get_map.emplace("cim:GovSteamIEEE1.k6", &get_GovSteamIEEE1_k6); - get_map.emplace("cim:GovSteamIEEE1.k7", &get_GovSteamIEEE1_k7); - get_map.emplace("cim:GovSteamIEEE1.k8", &get_GovSteamIEEE1_k8); - get_map.emplace("cim:GovSteamIEEE1.mwbase", &get_GovSteamIEEE1_mwbase); - get_map.emplace("cim:GovSteamIEEE1.pmax", &get_GovSteamIEEE1_pmax); - get_map.emplace("cim:GovSteamIEEE1.pmin", &get_GovSteamIEEE1_pmin); - get_map.emplace("cim:GovSteamIEEE1.t1", &get_GovSteamIEEE1_t1); - get_map.emplace("cim:GovSteamIEEE1.t2", &get_GovSteamIEEE1_t2); - get_map.emplace("cim:GovSteamIEEE1.t3", &get_GovSteamIEEE1_t3); - get_map.emplace("cim:GovSteamIEEE1.t4", &get_GovSteamIEEE1_t4); - get_map.emplace("cim:GovSteamIEEE1.t5", &get_GovSteamIEEE1_t5); - get_map.emplace("cim:GovSteamIEEE1.t6", &get_GovSteamIEEE1_t6); - get_map.emplace("cim:GovSteamIEEE1.t7", &get_GovSteamIEEE1_t7); - get_map.emplace("cim:GovSteamIEEE1.uc", &get_GovSteamIEEE1_uc); - get_map.emplace("cim:GovSteamIEEE1.uo", &get_GovSteamIEEE1_uo); + get_map.emplace("GovSteamIEEE1.k", &get_GovSteamIEEE1_k); + get_map.emplace("GovSteamIEEE1.k1", &get_GovSteamIEEE1_k1); + get_map.emplace("GovSteamIEEE1.k2", &get_GovSteamIEEE1_k2); + get_map.emplace("GovSteamIEEE1.k3", &get_GovSteamIEEE1_k3); + get_map.emplace("GovSteamIEEE1.k4", &get_GovSteamIEEE1_k4); + get_map.emplace("GovSteamIEEE1.k5", &get_GovSteamIEEE1_k5); + get_map.emplace("GovSteamIEEE1.k6", &get_GovSteamIEEE1_k6); + get_map.emplace("GovSteamIEEE1.k7", &get_GovSteamIEEE1_k7); + get_map.emplace("GovSteamIEEE1.k8", &get_GovSteamIEEE1_k8); + get_map.emplace("GovSteamIEEE1.mwbase", &get_GovSteamIEEE1_mwbase); + get_map.emplace("GovSteamIEEE1.pmax", &get_GovSteamIEEE1_pmax); + get_map.emplace("GovSteamIEEE1.pmin", &get_GovSteamIEEE1_pmin); + get_map.emplace("GovSteamIEEE1.t1", &get_GovSteamIEEE1_t1); + get_map.emplace("GovSteamIEEE1.t2", &get_GovSteamIEEE1_t2); + get_map.emplace("GovSteamIEEE1.t3", &get_GovSteamIEEE1_t3); + get_map.emplace("GovSteamIEEE1.t4", &get_GovSteamIEEE1_t4); + get_map.emplace("GovSteamIEEE1.t5", &get_GovSteamIEEE1_t5); + get_map.emplace("GovSteamIEEE1.t6", &get_GovSteamIEEE1_t6); + get_map.emplace("GovSteamIEEE1.t7", &get_GovSteamIEEE1_t7); + get_map.emplace("GovSteamIEEE1.uc", &get_GovSteamIEEE1_uc); + get_map.emplace("GovSteamIEEE1.uo", &get_GovSteamIEEE1_uo); } void GovSteamIEEE1::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void GovSteamIEEE1::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamIEEE1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamIEEE1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamIEEE1::declare() { return BaseClassDefiner(GovSteamIEEE1::addConstructToMap, GovSteamIEEE1::addPrimitiveAssignFnsToMap, GovSteamIEEE1::addClassAssignFnsToMap, GovSteamIEEE1::debugName); } +std::map GovSteamIEEE1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamIEEE1_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteamIEEE1.hpp b/CGMES_2.4.13_18DEC2013/GovSteamIEEE1.hpp index 23784774a..f6a96cf0d 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamIEEE1.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamIEEE1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamIEEE1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GovSteamSGO.cpp b/CGMES_2.4.13_18DEC2013/GovSteamSGO.cpp index 8b1ecdec7..2bba143af 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamSGO.cpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamSGO.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamSGO(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamSGO.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamSGO::GovSteamSGO() {} GovSteamSGO::~GovSteamSGO() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamSGO::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamSGO::getClassNamespaceUrl() const { - { "cim:GovSteamSGO.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t6", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamSGO::getPossibleProfilesForClass() const +const std::string& GovSteamSGO::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamSGO::getPossibleProfilesForAttributes() const +const std::list& GovSteamSGO::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamSGO::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamSGO::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamSGO::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamSGO_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* GovSteamSGO::debugString() const void GovSteamSGO::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamSGO", &GovSteamSGO_factory); + factory_map.emplace("GovSteamSGO", &GovSteamSGO_factory); } void GovSteamSGO::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamSGO.k1", &assign_GovSteamSGO_k1); - assign_map.emplace("cim:GovSteamSGO.k2", &assign_GovSteamSGO_k2); - assign_map.emplace("cim:GovSteamSGO.k3", &assign_GovSteamSGO_k3); - assign_map.emplace("cim:GovSteamSGO.mwbase", &assign_GovSteamSGO_mwbase); - assign_map.emplace("cim:GovSteamSGO.pmax", &assign_GovSteamSGO_pmax); - assign_map.emplace("cim:GovSteamSGO.pmin", &assign_GovSteamSGO_pmin); - assign_map.emplace("cim:GovSteamSGO.t1", &assign_GovSteamSGO_t1); - assign_map.emplace("cim:GovSteamSGO.t2", &assign_GovSteamSGO_t2); - assign_map.emplace("cim:GovSteamSGO.t3", &assign_GovSteamSGO_t3); - assign_map.emplace("cim:GovSteamSGO.t4", &assign_GovSteamSGO_t4); - assign_map.emplace("cim:GovSteamSGO.t5", &assign_GovSteamSGO_t5); - assign_map.emplace("cim:GovSteamSGO.t6", &assign_GovSteamSGO_t6); + assign_map.emplace("GovSteamSGO.k1", &assign_GovSteamSGO_k1); + assign_map.emplace("GovSteamSGO.k2", &assign_GovSteamSGO_k2); + assign_map.emplace("GovSteamSGO.k3", &assign_GovSteamSGO_k3); + assign_map.emplace("GovSteamSGO.mwbase", &assign_GovSteamSGO_mwbase); + assign_map.emplace("GovSteamSGO.pmax", &assign_GovSteamSGO_pmax); + assign_map.emplace("GovSteamSGO.pmin", &assign_GovSteamSGO_pmin); + assign_map.emplace("GovSteamSGO.t1", &assign_GovSteamSGO_t1); + assign_map.emplace("GovSteamSGO.t2", &assign_GovSteamSGO_t2); + assign_map.emplace("GovSteamSGO.t3", &assign_GovSteamSGO_t3); + assign_map.emplace("GovSteamSGO.t4", &assign_GovSteamSGO_t4); + assign_map.emplace("GovSteamSGO.t5", &assign_GovSteamSGO_t5); + assign_map.emplace("GovSteamSGO.t6", &assign_GovSteamSGO_t6); } void GovSteamSGO::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void GovSteamSGO::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamSGO.k1", &get_GovSteamSGO_k1); - get_map.emplace("cim:GovSteamSGO.k2", &get_GovSteamSGO_k2); - get_map.emplace("cim:GovSteamSGO.k3", &get_GovSteamSGO_k3); - get_map.emplace("cim:GovSteamSGO.mwbase", &get_GovSteamSGO_mwbase); - get_map.emplace("cim:GovSteamSGO.pmax", &get_GovSteamSGO_pmax); - get_map.emplace("cim:GovSteamSGO.pmin", &get_GovSteamSGO_pmin); - get_map.emplace("cim:GovSteamSGO.t1", &get_GovSteamSGO_t1); - get_map.emplace("cim:GovSteamSGO.t2", &get_GovSteamSGO_t2); - get_map.emplace("cim:GovSteamSGO.t3", &get_GovSteamSGO_t3); - get_map.emplace("cim:GovSteamSGO.t4", &get_GovSteamSGO_t4); - get_map.emplace("cim:GovSteamSGO.t5", &get_GovSteamSGO_t5); - get_map.emplace("cim:GovSteamSGO.t6", &get_GovSteamSGO_t6); + get_map.emplace("GovSteamSGO.k1", &get_GovSteamSGO_k1); + get_map.emplace("GovSteamSGO.k2", &get_GovSteamSGO_k2); + get_map.emplace("GovSteamSGO.k3", &get_GovSteamSGO_k3); + get_map.emplace("GovSteamSGO.mwbase", &get_GovSteamSGO_mwbase); + get_map.emplace("GovSteamSGO.pmax", &get_GovSteamSGO_pmax); + get_map.emplace("GovSteamSGO.pmin", &get_GovSteamSGO_pmin); + get_map.emplace("GovSteamSGO.t1", &get_GovSteamSGO_t1); + get_map.emplace("GovSteamSGO.t2", &get_GovSteamSGO_t2); + get_map.emplace("GovSteamSGO.t3", &get_GovSteamSGO_t3); + get_map.emplace("GovSteamSGO.t4", &get_GovSteamSGO_t4); + get_map.emplace("GovSteamSGO.t5", &get_GovSteamSGO_t5); + get_map.emplace("GovSteamSGO.t6", &get_GovSteamSGO_t6); } void GovSteamSGO::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void GovSteamSGO::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamSGO::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamSGO" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamSGO::declare() { return BaseClassDefiner(GovSteamSGO::addConstructToMap, GovSteamSGO::addPrimitiveAssignFnsToMap, GovSteamSGO::addClassAssignFnsToMap, GovSteamSGO::debugName); } +std::map GovSteamSGO::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamSGO_factory() diff --git a/CGMES_2.4.13_18DEC2013/GovSteamSGO.hpp b/CGMES_2.4.13_18DEC2013/GovSteamSGO.hpp index 337ba6a63..1de9573a5 100644 --- a/CGMES_2.4.13_18DEC2013/GovSteamSGO.hpp +++ b/CGMES_2.4.13_18DEC2013/GovSteamSGO.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamSGO_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GrossToNetActivePowerCurve.cpp b/CGMES_2.4.13_18DEC2013/GrossToNetActivePowerCurve.cpp index 8e293b959..7a92732fe 100644 --- a/CGMES_2.4.13_18DEC2013/GrossToNetActivePowerCurve.cpp +++ b/CGMES_2.4.13_18DEC2013/GrossToNetActivePowerCurve.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GrossToNetActivePowerCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GrossToNetActivePowerCurve.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GrossToNetActivePowerCurve::GrossToNetActivePowerCurve() : GeneratingUnit(nullptr) {} GrossToNetActivePowerCurve::~GrossToNetActivePowerCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& GrossToNetActivePowerCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GrossToNetActivePowerCurve::getClassNamespaceUrl() const { - { "cim:GrossToNetActivePowerCurve.GeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GrossToNetActivePowerCurve::getPossibleProfilesForClass() const +const std::string& GrossToNetActivePowerCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GrossToNetActivePowerCurve::getPossibleProfilesForAttributes() const +const std::list& GrossToNetActivePowerCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GrossToNetActivePowerCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GrossToNetActivePowerCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GrossToNetActivePowerCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeneratingUnit_GrossToNetActivePowerCurves(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* GrossToNetActivePowerCurve::debugString() const void GrossToNetActivePowerCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GrossToNetActivePowerCurve", &GrossToNetActivePowerCurve_factory); + factory_map.emplace("GrossToNetActivePowerCurve", &GrossToNetActivePowerCurve_factory); } void GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GrossToNetActivePowerCurve.GeneratingUnit", &assign_GrossToNetActivePowerCurve_GeneratingUnit); + assign_map.emplace("GrossToNetActivePowerCurve.GeneratingUnit", &assign_GrossToNetActivePowerCurve_GeneratingUnit); } void GrossToNetActivePowerCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void GrossToNetActivePowerCurve::addPrimitiveGetFnsToMap(std::map& get_map) const { Curve::addClassGetFnsToMap(get_map); - get_map.emplace("cim:GrossToNetActivePowerCurve.GeneratingUnit", &get_GrossToNetActivePowerCurve_GeneratingUnit); + get_map.emplace("GrossToNetActivePowerCurve.GeneratingUnit", &get_GrossToNetActivePowerCurve_GeneratingUnit); } void GrossToNetActivePowerCurve::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void GrossToNetActivePowerCurve::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GrossToNetActivePowerCurve::declare() { return BaseClassDefiner(GrossToNetActivePowerCurve::addConstructToMap, GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap, GrossToNetActivePowerCurve::addClassAssignFnsToMap, GrossToNetActivePowerCurve::debugName); } +std::map GrossToNetActivePowerCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GrossToNetActivePowerCurve_factory() diff --git a/CGMES_2.4.13_18DEC2013/GrossToNetActivePowerCurve.hpp b/CGMES_2.4.13_18DEC2013/GrossToNetActivePowerCurve.hpp index eb1b8ea60..e3b30d932 100644 --- a/CGMES_2.4.13_18DEC2013/GrossToNetActivePowerCurve.hpp +++ b/CGMES_2.4.13_18DEC2013/GrossToNetActivePowerCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GrossToNetActivePowerCurve_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Ground.cpp b/CGMES_2.4.13_18DEC2013/Ground.cpp index e2e2a0868..6d74bce19 100644 --- a/CGMES_2.4.13_18DEC2013/Ground.cpp +++ b/CGMES_2.4.13_18DEC2013/Ground.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Ground(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Ground::Ground() {} Ground::~Ground() {} -static const std::list PossibleProfilesForClass = +const std::list& Ground::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Ground::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Ground::getPossibleProfilesForClass() const +const std::string& Ground::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Ground::getPossibleProfilesForAttributes() const +const std::list& Ground::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Ground::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Ground::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Ground::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Ground::debugName[] = "Ground"; @@ -46,7 +78,7 @@ const char* Ground::debugString() const void Ground::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Ground", &Ground_factory); + factory_map.emplace("Ground", &Ground_factory); } void Ground::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Ground::addEnumGetFnsToMap(std::map& get_map) co ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Ground::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Ground" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Ground::declare() { return BaseClassDefiner(Ground::addConstructToMap, Ground::addPrimitiveAssignFnsToMap, Ground::addClassAssignFnsToMap, Ground::debugName); } +std::map Ground::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Ground_factory() diff --git a/CGMES_2.4.13_18DEC2013/Ground.hpp b/CGMES_2.4.13_18DEC2013/Ground.hpp index 56bd33323..0d91fea23 100644 --- a/CGMES_2.4.13_18DEC2013/Ground.hpp +++ b/CGMES_2.4.13_18DEC2013/Ground.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Ground_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GroundDisconnector.cpp b/CGMES_2.4.13_18DEC2013/GroundDisconnector.cpp index 1926b56f9..68c739329 100644 --- a/CGMES_2.4.13_18DEC2013/GroundDisconnector.cpp +++ b/CGMES_2.4.13_18DEC2013/GroundDisconnector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GroundDisconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + GroundDisconnector::GroundDisconnector() {} GroundDisconnector::~GroundDisconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& GroundDisconnector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GroundDisconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GroundDisconnector::getPossibleProfilesForClass() const +const std::string& GroundDisconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GroundDisconnector::getPossibleProfilesForAttributes() const +const std::list& GroundDisconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GroundDisconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GroundDisconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GroundDisconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char GroundDisconnector::debugName[] = "GroundDisconnector"; @@ -47,7 +79,7 @@ const char* GroundDisconnector::debugString() const void GroundDisconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GroundDisconnector", &GroundDisconnector_factory); + factory_map.emplace("GroundDisconnector", &GroundDisconnector_factory); } void GroundDisconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void GroundDisconnector::addEnumGetFnsToMap(std::map& Switch::addEnumGetFnsToMap(get_map); } +bool GroundDisconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GroundDisconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GroundDisconnector::declare() { return BaseClassDefiner(GroundDisconnector::addConstructToMap, GroundDisconnector::addPrimitiveAssignFnsToMap, GroundDisconnector::addClassAssignFnsToMap, GroundDisconnector::debugName); } +std::map GroundDisconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GroundDisconnector_factory() diff --git a/CGMES_2.4.13_18DEC2013/GroundDisconnector.hpp b/CGMES_2.4.13_18DEC2013/GroundDisconnector.hpp index ccf2b2c27..69caa93ce 100644 --- a/CGMES_2.4.13_18DEC2013/GroundDisconnector.hpp +++ b/CGMES_2.4.13_18DEC2013/GroundDisconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GroundDisconnector_factory(); diff --git a/CGMES_2.4.13_18DEC2013/GroundingImpedance.cpp b/CGMES_2.4.13_18DEC2013/GroundingImpedance.cpp index db7a16992..4fd437b9e 100644 --- a/CGMES_2.4.13_18DEC2013/GroundingImpedance.cpp +++ b/CGMES_2.4.13_18DEC2013/GroundingImpedance.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GroundingImpedance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GroundingImpedance.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GroundingImpedance::GroundingImpedance() {} GroundingImpedance::~GroundingImpedance() {} -static const std::list PossibleProfilesForClass = +const std::list& GroundingImpedance::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GroundingImpedance::getClassNamespaceUrl() const { - { "cim:GroundingImpedance.x", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GroundingImpedance::getPossibleProfilesForClass() const +const std::string& GroundingImpedance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GroundingImpedance::getPossibleProfilesForAttributes() const +const std::list& GroundingImpedance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EarthFaultCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GroundingImpedance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GroundingImpedance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GroundingImpedance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GroundingImpedance_x(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* GroundingImpedance::debugString() const void GroundingImpedance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GroundingImpedance", &GroundingImpedance_factory); + factory_map.emplace("GroundingImpedance", &GroundingImpedance_factory); } void GroundingImpedance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GroundingImpedance.x", &assign_GroundingImpedance_x); + assign_map.emplace("GroundingImpedance.x", &assign_GroundingImpedance_x); } void GroundingImpedance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void GroundingImpedance::addClassAssignFnsToMap(std::unordered_map& get_map) const { EarthFaultCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GroundingImpedance.x", &get_GroundingImpedance_x); + get_map.emplace("GroundingImpedance.x", &get_GroundingImpedance_x); } void GroundingImpedance::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void GroundingImpedance::addEnumGetFnsToMap(std::map& EarthFaultCompensator::addEnumGetFnsToMap(get_map); } +bool GroundingImpedance::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GroundingImpedance" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GroundingImpedance::declare() { return BaseClassDefiner(GroundingImpedance::addConstructToMap, GroundingImpedance::addPrimitiveAssignFnsToMap, GroundingImpedance::addClassAssignFnsToMap, GroundingImpedance::debugName); } +std::map GroundingImpedance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EarthFaultCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GroundingImpedance_factory() diff --git a/CGMES_2.4.13_18DEC2013/GroundingImpedance.hpp b/CGMES_2.4.13_18DEC2013/GroundingImpedance.hpp index ad05b5aaa..f0d8f26e9 100644 --- a/CGMES_2.4.13_18DEC2013/GroundingImpedance.hpp +++ b/CGMES_2.4.13_18DEC2013/GroundingImpedance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EarthFaultCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GroundingImpedance_factory(); diff --git a/CGMES_2.4.13_18DEC2013/HydroGeneratingUnit.cpp b/CGMES_2.4.13_18DEC2013/HydroGeneratingUnit.cpp index 13c3f4210..13327edd9 100644 --- a/CGMES_2.4.13_18DEC2013/HydroGeneratingUnit.cpp +++ b/CGMES_2.4.13_18DEC2013/HydroGeneratingUnit.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroGeneratingUnit.HydroPowerPlant", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroGeneratingUnit.energyConversionCapability", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroGeneratingUnit::HydroGeneratingUnit() : HydroPowerPlant(nullptr) {} HydroGeneratingUnit::~HydroGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroGeneratingUnit::getClassNamespaceUrl() const { - { "cim:HydroGeneratingUnit.HydroPowerPlant", { CGMESProfile::EQ, } }, - { "cim:HydroGeneratingUnit.energyConversionCapability", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroGeneratingUnit::getPossibleProfilesForClass() const +const std::string& HydroGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& HydroGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroPowerPlant_HydroGeneratingUnits(BaseClass*, BaseClass*); @@ -110,17 +142,17 @@ const char* HydroGeneratingUnit::debugString() const void HydroGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroGeneratingUnit", &HydroGeneratingUnit_factory); + factory_map.emplace("HydroGeneratingUnit", &HydroGeneratingUnit_factory); } void HydroGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroGeneratingUnit.energyConversionCapability", &assign_HydroGeneratingUnit_energyConversionCapability); + assign_map.emplace("HydroGeneratingUnit.energyConversionCapability", &assign_HydroGeneratingUnit_energyConversionCapability); } void HydroGeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroGeneratingUnit.HydroPowerPlant", &assign_HydroGeneratingUnit_HydroPowerPlant); + assign_map.emplace("HydroGeneratingUnit.HydroPowerPlant", &assign_HydroGeneratingUnit_HydroPowerPlant); } void HydroGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -131,13 +163,19 @@ void HydroGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { GeneratingUnit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.HydroPowerPlant", &get_HydroGeneratingUnit_HydroPowerPlant); + get_map.emplace("HydroGeneratingUnit.HydroPowerPlant", &get_HydroGeneratingUnit_HydroPowerPlant); } void HydroGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const { GeneratingUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.energyConversionCapability", &get_HydroGeneratingUnit_energyConversionCapability); + get_map.emplace("HydroGeneratingUnit.energyConversionCapability", &get_HydroGeneratingUnit_energyConversionCapability); +} + +bool HydroGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner HydroGeneratingUnit::declare() @@ -145,6 +183,14 @@ const BaseClassDefiner HydroGeneratingUnit::declare() return BaseClassDefiner(HydroGeneratingUnit::addConstructToMap, HydroGeneratingUnit::addPrimitiveAssignFnsToMap, HydroGeneratingUnit::addClassAssignFnsToMap, HydroGeneratingUnit::debugName); } +std::map HydroGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroGeneratingUnit_factory() diff --git a/CGMES_2.4.13_18DEC2013/HydroGeneratingUnit.hpp b/CGMES_2.4.13_18DEC2013/HydroGeneratingUnit.hpp index 74455c5e9..1ca522d48 100644 --- a/CGMES_2.4.13_18DEC2013/HydroGeneratingUnit.hpp +++ b/CGMES_2.4.13_18DEC2013/HydroGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "HydroEnergyConversionKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroGeneratingUnit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/HydroPowerPlant.cpp b/CGMES_2.4.13_18DEC2013/HydroPowerPlant.cpp index ad177ac88..e6ed79aeb 100644 --- a/CGMES_2.4.13_18DEC2013/HydroPowerPlant.cpp +++ b/CGMES_2.4.13_18DEC2013/HydroPowerPlant.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroPowerPlant(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroPowerPlant.HydroGeneratingUnits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPowerPlant.HydroPumps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPowerPlant.hydroPlantStorageType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroPowerPlant::HydroPowerPlant() {} HydroPowerPlant::~HydroPowerPlant() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroPowerPlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroPowerPlant::getClassNamespaceUrl() const { - { "cim:HydroPowerPlant.HydroGeneratingUnits", { CGMESProfile::EQ, } }, - { "cim:HydroPowerPlant.HydroPumps", { CGMESProfile::EQ, } }, - { "cim:HydroPowerPlant.hydroPlantStorageType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroPowerPlant::getPossibleProfilesForClass() const +const std::string& HydroPowerPlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroPowerPlant::getPossibleProfilesForAttributes() const +const std::list& HydroPowerPlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroPowerPlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroPowerPlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroPowerPlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroGeneratingUnit_HydroPowerPlant(BaseClass*, BaseClass*); @@ -116,18 +148,18 @@ const char* HydroPowerPlant::debugString() const void HydroPowerPlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroPowerPlant", &HydroPowerPlant_factory); + factory_map.emplace("HydroPowerPlant", &HydroPowerPlant_factory); } void HydroPowerPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPowerPlant.hydroPlantStorageType", &assign_HydroPowerPlant_hydroPlantStorageType); + assign_map.emplace("HydroPowerPlant.hydroPlantStorageType", &assign_HydroPowerPlant_hydroPlantStorageType); } void HydroPowerPlant::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPowerPlant.HydroGeneratingUnits", &assign_HydroPowerPlant_HydroGeneratingUnits); - assign_map.emplace("cim:HydroPowerPlant.HydroPumps", &assign_HydroPowerPlant_HydroPumps); + assign_map.emplace("HydroPowerPlant.HydroGeneratingUnits", &assign_HydroPowerPlant_HydroGeneratingUnits); + assign_map.emplace("HydroPowerPlant.HydroPumps", &assign_HydroPowerPlant_HydroPumps); } void HydroPowerPlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -143,7 +175,13 @@ void HydroPowerPlant::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:HydroPowerPlant.hydroPlantStorageType", &get_HydroPowerPlant_hydroPlantStorageType); + get_map.emplace("HydroPowerPlant.hydroPlantStorageType", &get_HydroPowerPlant_hydroPlantStorageType); +} + +bool HydroPowerPlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroPowerPlant" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner HydroPowerPlant::declare() @@ -151,6 +189,14 @@ const BaseClassDefiner HydroPowerPlant::declare() return BaseClassDefiner(HydroPowerPlant::addConstructToMap, HydroPowerPlant::addPrimitiveAssignFnsToMap, HydroPowerPlant::addClassAssignFnsToMap, HydroPowerPlant::debugName); } +std::map HydroPowerPlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroPowerPlant_factory() diff --git a/CGMES_2.4.13_18DEC2013/HydroPowerPlant.hpp b/CGMES_2.4.13_18DEC2013/HydroPowerPlant.hpp index ab7712608..dc3babd9d 100644 --- a/CGMES_2.4.13_18DEC2013/HydroPowerPlant.hpp +++ b/CGMES_2.4.13_18DEC2013/HydroPowerPlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "HydroPlantStorageKind.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroPowerPlant_factory(); diff --git a/CGMES_2.4.13_18DEC2013/HydroPump.cpp b/CGMES_2.4.13_18DEC2013/HydroPump.cpp index 8d0613e79..92e2ecc57 100644 --- a/CGMES_2.4.13_18DEC2013/HydroPump.cpp +++ b/CGMES_2.4.13_18DEC2013/HydroPump.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroPump(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroPump.HydroPowerPlant", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPump.RotatingMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroPump::HydroPump() : HydroPowerPlant(nullptr), RotatingMachine(nullptr) {} HydroPump::~HydroPump() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroPump::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroPump::getClassNamespaceUrl() const { - { "cim:HydroPump.HydroPowerPlant", { CGMESProfile::EQ, } }, - { "cim:HydroPump.RotatingMachine", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroPump::getPossibleProfilesForClass() const +const std::string& HydroPump::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroPump::getPossibleProfilesForAttributes() const +const std::list& HydroPump::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroPump::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroPump::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroPump::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroPowerPlant_HydroPumps(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* HydroPump::debugString() const void HydroPump::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroPump", &HydroPump_factory); + factory_map.emplace("HydroPump", &HydroPump_factory); } void HydroPump::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void HydroPump::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPump.HydroPowerPlant", &assign_HydroPump_HydroPowerPlant); - assign_map.emplace("cim:HydroPump.RotatingMachine", &assign_HydroPump_RotatingMachine); + assign_map.emplace("HydroPump.HydroPowerPlant", &assign_HydroPump_HydroPowerPlant); + assign_map.emplace("HydroPump.RotatingMachine", &assign_HydroPump_RotatingMachine); } void HydroPump::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void HydroPump::addPrimitiveGetFnsToMap(std::map& get void HydroPump::addClassGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:HydroPump.HydroPowerPlant", &get_HydroPump_HydroPowerPlant); - get_map.emplace("cim:HydroPump.RotatingMachine", &get_HydroPump_RotatingMachine); + get_map.emplace("HydroPump.HydroPowerPlant", &get_HydroPump_HydroPowerPlant); + get_map.emplace("HydroPump.RotatingMachine", &get_HydroPump_RotatingMachine); } void HydroPump::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void HydroPump::addEnumGetFnsToMap(std::map& get_map) Equipment::addEnumGetFnsToMap(get_map); } +bool HydroPump::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroPump" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner HydroPump::declare() { return BaseClassDefiner(HydroPump::addConstructToMap, HydroPump::addPrimitiveAssignFnsToMap, HydroPump::addClassAssignFnsToMap, HydroPump::debugName); } +std::map HydroPump::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroPump_factory() diff --git a/CGMES_2.4.13_18DEC2013/HydroPump.hpp b/CGMES_2.4.13_18DEC2013/HydroPump.hpp index 9830eee7a..eaac31638 100644 --- a/CGMES_2.4.13_18DEC2013/HydroPump.hpp +++ b/CGMES_2.4.13_18DEC2013/HydroPump.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroPump_factory(); diff --git a/CGMES_2.4.13_18DEC2013/IdentifiedObject.cpp b/CGMES_2.4.13_18DEC2013/IdentifiedObject.cpp index b32ec2f29..6dee90ce3 100644 --- a/CGMES_2.4.13_18DEC2013/IdentifiedObject.cpp +++ b/CGMES_2.4.13_18DEC2013/IdentifiedObject.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + IdentifiedObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::GL, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "IdentifiedObject.DiagramObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "IdentifiedObject.description", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.energyIdentCodeEic", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.mRID", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.name", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + IdentifiedObject::IdentifiedObject() {} IdentifiedObject::~IdentifiedObject() {} -static const std::list PossibleProfilesForClass = +const std::list& IdentifiedObject::getAttributeNames() const { - CGMESProfile::DL, - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::GL, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; - -static const std::map> PossibleProfilesForAttributes = + return getCimClassDetails().AttrNamesList; +} + +const std::string& IdentifiedObject::getClassNamespaceUrl() const { - { "cim:IdentifiedObject.DiagramObjects", { CGMESProfile::DL, } }, - { "cim:IdentifiedObject.description", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.energyIdentCodeEic", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.mRID", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.name", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.shortName", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, -}; - -std::list -IdentifiedObject::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& IdentifiedObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -IdentifiedObject::getPossibleProfilesForAttributes() const +const std::list& IdentifiedObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& IdentifiedObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& IdentifiedObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& IdentifiedObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_IdentifiedObject(BaseClass*, BaseClass*); @@ -224,31 +256,31 @@ const char* IdentifiedObject::debugString() const void IdentifiedObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:IdentifiedObject", &IdentifiedObject_factory); + factory_map.emplace("IdentifiedObject", &IdentifiedObject_factory); } void IdentifiedObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:IdentifiedObject.description", &assign_IdentifiedObject_description); - assign_map.emplace("cim:IdentifiedObject.energyIdentCodeEic", &assign_IdentifiedObject_energyIdentCodeEic); - assign_map.emplace("cim:IdentifiedObject.mRID", &assign_IdentifiedObject_mRID); - assign_map.emplace("cim:IdentifiedObject.name", &assign_IdentifiedObject_name); - assign_map.emplace("cim:IdentifiedObject.shortName", &assign_IdentifiedObject_shortName); + assign_map.emplace("IdentifiedObject.description", &assign_IdentifiedObject_description); + assign_map.emplace("IdentifiedObject.energyIdentCodeEic", &assign_IdentifiedObject_energyIdentCodeEic); + assign_map.emplace("IdentifiedObject.mRID", &assign_IdentifiedObject_mRID); + assign_map.emplace("IdentifiedObject.name", &assign_IdentifiedObject_name); + assign_map.emplace("IdentifiedObject.shortName", &assign_IdentifiedObject_shortName); } void IdentifiedObject::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:IdentifiedObject.DiagramObjects", &assign_IdentifiedObject_DiagramObjects); + assign_map.emplace("IdentifiedObject.DiagramObjects", &assign_IdentifiedObject_DiagramObjects); } void IdentifiedObject::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:IdentifiedObject.description", &get_IdentifiedObject_description); - get_map.emplace("cim:IdentifiedObject.energyIdentCodeEic", &get_IdentifiedObject_energyIdentCodeEic); - get_map.emplace("cim:IdentifiedObject.mRID", &get_IdentifiedObject_mRID); - get_map.emplace("cim:IdentifiedObject.name", &get_IdentifiedObject_name); - get_map.emplace("cim:IdentifiedObject.shortName", &get_IdentifiedObject_shortName); + get_map.emplace("IdentifiedObject.description", &get_IdentifiedObject_description); + get_map.emplace("IdentifiedObject.energyIdentCodeEic", &get_IdentifiedObject_energyIdentCodeEic); + get_map.emplace("IdentifiedObject.mRID", &get_IdentifiedObject_mRID); + get_map.emplace("IdentifiedObject.name", &get_IdentifiedObject_name); + get_map.emplace("IdentifiedObject.shortName", &get_IdentifiedObject_shortName); } void IdentifiedObject::addClassGetFnsToMap(std::map& get_map) const @@ -261,11 +293,25 @@ void IdentifiedObject::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool IdentifiedObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "IdentifiedObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner IdentifiedObject::declare() { return BaseClassDefiner(IdentifiedObject::addConstructToMap, IdentifiedObject::addPrimitiveAssignFnsToMap, IdentifiedObject::addClassAssignFnsToMap, IdentifiedObject::debugName); } +std::map IdentifiedObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* IdentifiedObject_factory() diff --git a/CGMES_2.4.13_18DEC2013/IdentifiedObject.hpp b/CGMES_2.4.13_18DEC2013/IdentifiedObject.hpp index 315354196..41a362593 100644 --- a/CGMES_2.4.13_18DEC2013/IdentifiedObject.hpp +++ b/CGMES_2.4.13_18DEC2013/IdentifiedObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* IdentifiedObject_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Junction.cpp b/CGMES_2.4.13_18DEC2013/Junction.cpp index cd2b7c69d..b66050dd3 100644 --- a/CGMES_2.4.13_18DEC2013/Junction.cpp +++ b/CGMES_2.4.13_18DEC2013/Junction.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Junction(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Junction::Junction() {} Junction::~Junction() {} -static const std::list PossibleProfilesForClass = +const std::list& Junction::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Junction::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Junction::getPossibleProfilesForClass() const +const std::string& Junction::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Junction::getPossibleProfilesForAttributes() const +const std::list& Junction::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Connector::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Junction::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Junction::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Junction::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Junction::debugName[] = "Junction"; @@ -47,7 +79,7 @@ const char* Junction::debugString() const void Junction::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Junction", &Junction_factory); + factory_map.emplace("Junction", &Junction_factory); } void Junction::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Junction::addEnumGetFnsToMap(std::map& get_map) Connector::addEnumGetFnsToMap(get_map); } +bool Junction::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Junction" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Junction::declare() { return BaseClassDefiner(Junction::addConstructToMap, Junction::addPrimitiveAssignFnsToMap, Junction::addClassAssignFnsToMap, Junction::debugName); } +std::map Junction::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Connector::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Junction_factory() diff --git a/CGMES_2.4.13_18DEC2013/Junction.hpp b/CGMES_2.4.13_18DEC2013/Junction.hpp index 4f48dfc33..36e05a59e 100644 --- a/CGMES_2.4.13_18DEC2013/Junction.hpp +++ b/CGMES_2.4.13_18DEC2013/Junction.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Connector.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Junction_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Limit.cpp b/CGMES_2.4.13_18DEC2013/Limit.cpp index a83eaee0d..d2a7473d3 100644 --- a/CGMES_2.4.13_18DEC2013/Limit.cpp +++ b/CGMES_2.4.13_18DEC2013/Limit.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Limit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Limit::Limit() {} Limit::~Limit() {} -static const std::list PossibleProfilesForClass = +const std::list& Limit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Limit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Limit::getPossibleProfilesForClass() const +const std::string& Limit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Limit::getPossibleProfilesForAttributes() const +const std::list& Limit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Limit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Limit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Limit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Limit::debugName[] = "Limit"; @@ -46,7 +78,7 @@ const char* Limit::debugString() const void Limit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Limit", &Limit_factory); + factory_map.emplace("Limit", &Limit_factory); } void Limit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Limit::addEnumGetFnsToMap(std::map& get_map) con IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Limit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Limit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Limit::declare() { return BaseClassDefiner(Limit::addConstructToMap, Limit::addPrimitiveAssignFnsToMap, Limit::addClassAssignFnsToMap, Limit::debugName); } +std::map Limit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Limit_factory() diff --git a/CGMES_2.4.13_18DEC2013/Limit.hpp b/CGMES_2.4.13_18DEC2013/Limit.hpp index 76b2b4799..80c9039b8 100644 --- a/CGMES_2.4.13_18DEC2013/Limit.hpp +++ b/CGMES_2.4.13_18DEC2013/Limit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Limit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LimitSet.cpp b/CGMES_2.4.13_18DEC2013/LimitSet.cpp index 8288ba4ff..4153a3415 100644 --- a/CGMES_2.4.13_18DEC2013/LimitSet.cpp +++ b/CGMES_2.4.13_18DEC2013/LimitSet.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + LimitSet::LimitSet() {} LimitSet::~LimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& LimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LimitSet::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LimitSet::getPossibleProfilesForClass() const +const std::string& LimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LimitSet::getPossibleProfilesForAttributes() const +const std::list& LimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char LimitSet::debugName[] = "LimitSet"; @@ -46,7 +78,7 @@ const char* LimitSet::debugString() const void LimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LimitSet", &LimitSet_factory); + factory_map.emplace("LimitSet", &LimitSet_factory); } void LimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void LimitSet::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LimitSet::declare() { return BaseClassDefiner(LimitSet::addConstructToMap, LimitSet::addPrimitiveAssignFnsToMap, LimitSet::addClassAssignFnsToMap, LimitSet::debugName); } +std::map LimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LimitSet_factory() diff --git a/CGMES_2.4.13_18DEC2013/LimitSet.hpp b/CGMES_2.4.13_18DEC2013/LimitSet.hpp index 95be9de6f..8f9f814ea 100644 --- a/CGMES_2.4.13_18DEC2013/LimitSet.hpp +++ b/CGMES_2.4.13_18DEC2013/LimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LimitSet_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Line.cpp b/CGMES_2.4.13_18DEC2013/Line.cpp index 098452102..62ecbb3ad 100644 --- a/CGMES_2.4.13_18DEC2013/Line.cpp +++ b/CGMES_2.4.13_18DEC2013/Line.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Line(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Line.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Line::Line() : Region(nullptr) {} Line::~Line() {} -static const std::list PossibleProfilesForClass = +const std::list& Line::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Line::getClassNamespaceUrl() const { - { "cim:Line.Region", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Line::getPossibleProfilesForClass() const +const std::string& Line::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Line::getPossibleProfilesForAttributes() const +const std::list& Line::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Line::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Line::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Line::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_Lines(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* Line::debugString() const void Line::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Line", &Line_factory); + factory_map.emplace("Line", &Line_factory); } void Line::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void Line::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Line.Region", &assign_Line_Region); + assign_map.emplace("Line.Region", &assign_Line_Region); } void Line::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void Line::addPrimitiveGetFnsToMap(std::map& get_map) void Line::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Line.Region", &get_Line_Region); + get_map.emplace("Line.Region", &get_Line_Region); } void Line::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void Line::addEnumGetFnsToMap(std::map& get_map) cons EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Line::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Line" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Line::declare() { return BaseClassDefiner(Line::addConstructToMap, Line::addPrimitiveAssignFnsToMap, Line::addClassAssignFnsToMap, Line::debugName); } +std::map Line::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Line_factory() diff --git a/CGMES_2.4.13_18DEC2013/Line.hpp b/CGMES_2.4.13_18DEC2013/Line.hpp index 5a544c8ac..6e35dc11d 100644 --- a/CGMES_2.4.13_18DEC2013/Line.hpp +++ b/CGMES_2.4.13_18DEC2013/Line.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Line_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LinearShuntCompensator.cpp b/CGMES_2.4.13_18DEC2013/LinearShuntCompensator.cpp index e8914787f..a70a188c3 100644 --- a/CGMES_2.4.13_18DEC2013/LinearShuntCompensator.cpp +++ b/CGMES_2.4.13_18DEC2013/LinearShuntCompensator.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LinearShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LinearShuntCompensator.b0PerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.bPerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.g0PerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.gPerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LinearShuntCompensator::LinearShuntCompensator() {} LinearShuntCompensator::~LinearShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& LinearShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LinearShuntCompensator::getClassNamespaceUrl() const { - { "cim:LinearShuntCompensator.b0PerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.bPerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.g0PerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.gPerSection", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LinearShuntCompensator::getPossibleProfilesForClass() const +const std::string& LinearShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LinearShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& LinearShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ShuntCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LinearShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LinearShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LinearShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LinearShuntCompensator_b0PerSection(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -167,15 +199,15 @@ const char* LinearShuntCompensator::debugString() const void LinearShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LinearShuntCompensator", &LinearShuntCompensator_factory); + factory_map.emplace("LinearShuntCompensator", &LinearShuntCompensator_factory); } void LinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LinearShuntCompensator.b0PerSection", &assign_LinearShuntCompensator_b0PerSection); - assign_map.emplace("cim:LinearShuntCompensator.bPerSection", &assign_LinearShuntCompensator_bPerSection); - assign_map.emplace("cim:LinearShuntCompensator.g0PerSection", &assign_LinearShuntCompensator_g0PerSection); - assign_map.emplace("cim:LinearShuntCompensator.gPerSection", &assign_LinearShuntCompensator_gPerSection); + assign_map.emplace("LinearShuntCompensator.b0PerSection", &assign_LinearShuntCompensator_b0PerSection); + assign_map.emplace("LinearShuntCompensator.bPerSection", &assign_LinearShuntCompensator_bPerSection); + assign_map.emplace("LinearShuntCompensator.g0PerSection", &assign_LinearShuntCompensator_g0PerSection); + assign_map.emplace("LinearShuntCompensator.gPerSection", &assign_LinearShuntCompensator_gPerSection); } void LinearShuntCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -185,10 +217,10 @@ void LinearShuntCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ShuntCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LinearShuntCompensator.b0PerSection", &get_LinearShuntCompensator_b0PerSection); - get_map.emplace("cim:LinearShuntCompensator.bPerSection", &get_LinearShuntCompensator_bPerSection); - get_map.emplace("cim:LinearShuntCompensator.g0PerSection", &get_LinearShuntCompensator_g0PerSection); - get_map.emplace("cim:LinearShuntCompensator.gPerSection", &get_LinearShuntCompensator_gPerSection); + get_map.emplace("LinearShuntCompensator.b0PerSection", &get_LinearShuntCompensator_b0PerSection); + get_map.emplace("LinearShuntCompensator.bPerSection", &get_LinearShuntCompensator_bPerSection); + get_map.emplace("LinearShuntCompensator.g0PerSection", &get_LinearShuntCompensator_g0PerSection); + get_map.emplace("LinearShuntCompensator.gPerSection", &get_LinearShuntCompensator_gPerSection); } void LinearShuntCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -201,11 +233,25 @@ void LinearShuntCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner LinearShuntCompensator::declare() { return BaseClassDefiner(LinearShuntCompensator::addConstructToMap, LinearShuntCompensator::addPrimitiveAssignFnsToMap, LinearShuntCompensator::addClassAssignFnsToMap, LinearShuntCompensator::debugName); } +std::map LinearShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ShuntCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LinearShuntCompensator_factory() diff --git a/CGMES_2.4.13_18DEC2013/LinearShuntCompensator.hpp b/CGMES_2.4.13_18DEC2013/LinearShuntCompensator.hpp index 135910c4f..6b76b41f5 100644 --- a/CGMES_2.4.13_18DEC2013/LinearShuntCompensator.hpp +++ b/CGMES_2.4.13_18DEC2013/LinearShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ShuntCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Susceptance.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LinearShuntCompensator_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadAggregate.cpp b/CGMES_2.4.13_18DEC2013/LoadAggregate.cpp index 56bc69716..9a415d843 100644 --- a/CGMES_2.4.13_18DEC2013/LoadAggregate.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadAggregate.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadAggregate(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadAggregate.LoadMotor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadAggregate.LoadStatic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadAggregate::LoadAggregate() : LoadMotor(nullptr), LoadStatic(nullptr) {} LoadAggregate::~LoadAggregate() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadAggregate::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadAggregate::getClassNamespaceUrl() const { - { "cim:LoadAggregate.LoadMotor", { CGMESProfile::DY, } }, - { "cim:LoadAggregate.LoadStatic", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadAggregate::getPossibleProfilesForClass() const +const std::string& LoadAggregate::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadAggregate::getPossibleProfilesForAttributes() const +const std::list& LoadAggregate::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadAggregate::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadAggregate::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadAggregate::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadMotor_LoadAggregate(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* LoadAggregate::debugString() const void LoadAggregate::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadAggregate", &LoadAggregate_factory); + factory_map.emplace("LoadAggregate", &LoadAggregate_factory); } void LoadAggregate::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void LoadAggregate::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadAggregate.LoadMotor", &assign_LoadAggregate_LoadMotor); - assign_map.emplace("cim:LoadAggregate.LoadStatic", &assign_LoadAggregate_LoadStatic); + assign_map.emplace("LoadAggregate.LoadMotor", &assign_LoadAggregate_LoadMotor); + assign_map.emplace("LoadAggregate.LoadStatic", &assign_LoadAggregate_LoadStatic); } void LoadAggregate::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void LoadAggregate::addEnumGetFnsToMap(std::map& get_ LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadAggregate::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadAggregate" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadAggregate::declare() { return BaseClassDefiner(LoadAggregate::addConstructToMap, LoadAggregate::addPrimitiveAssignFnsToMap, LoadAggregate::addClassAssignFnsToMap, LoadAggregate::debugName); } +std::map LoadAggregate::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadAggregate_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadAggregate.hpp b/CGMES_2.4.13_18DEC2013/LoadAggregate.hpp index 4fb10931d..68255e577 100644 --- a/CGMES_2.4.13_18DEC2013/LoadAggregate.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadAggregate.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadAggregate_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadArea.cpp b/CGMES_2.4.13_18DEC2013/LoadArea.cpp index 8154b9035..34a421bbd 100644 --- a/CGMES_2.4.13_18DEC2013/LoadArea.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadArea.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadArea.SubLoadAreas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadArea::LoadArea() {} LoadArea::~LoadArea() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadArea::getClassNamespaceUrl() const { - { "cim:LoadArea.SubLoadAreas", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadArea::getPossibleProfilesForClass() const +const std::string& LoadArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadArea::getPossibleProfilesForAttributes() const +const std::list& LoadArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyArea::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubLoadArea_LoadArea(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* LoadArea::debugString() const void LoadArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadArea", &LoadArea_factory); + factory_map.emplace("LoadArea", &LoadArea_factory); } void LoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void LoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadArea.SubLoadAreas", &assign_LoadArea_SubLoadAreas); + assign_map.emplace("LoadArea.SubLoadAreas", &assign_LoadArea_SubLoadAreas); } void LoadArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void LoadArea::addEnumGetFnsToMap(std::map& get_map) EnergyArea::addEnumGetFnsToMap(get_map); } +bool LoadArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadArea::declare() { return BaseClassDefiner(LoadArea::addConstructToMap, LoadArea::addPrimitiveAssignFnsToMap, LoadArea::addClassAssignFnsToMap, LoadArea::debugName); } +std::map LoadArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyArea::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadArea_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadArea.hpp b/CGMES_2.4.13_18DEC2013/LoadArea.hpp index 9142620cd..0212922f5 100644 --- a/CGMES_2.4.13_18DEC2013/LoadArea.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyArea.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadArea_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadBreakSwitch.cpp b/CGMES_2.4.13_18DEC2013/LoadBreakSwitch.cpp index 881f3cd8a..d4278e70b 100644 --- a/CGMES_2.4.13_18DEC2013/LoadBreakSwitch.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadBreakSwitch.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadBreakSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + LoadBreakSwitch::LoadBreakSwitch() {} LoadBreakSwitch::~LoadBreakSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadBreakSwitch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadBreakSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadBreakSwitch::getPossibleProfilesForClass() const +const std::string& LoadBreakSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadBreakSwitch::getPossibleProfilesForAttributes() const +const std::list& LoadBreakSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ProtectedSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadBreakSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadBreakSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadBreakSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char LoadBreakSwitch::debugName[] = "LoadBreakSwitch"; @@ -47,7 +79,7 @@ const char* LoadBreakSwitch::debugString() const void LoadBreakSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadBreakSwitch", &LoadBreakSwitch_factory); + factory_map.emplace("LoadBreakSwitch", &LoadBreakSwitch_factory); } void LoadBreakSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void LoadBreakSwitch::addEnumGetFnsToMap(std::map& ge ProtectedSwitch::addEnumGetFnsToMap(get_map); } +bool LoadBreakSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadBreakSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadBreakSwitch::declare() { return BaseClassDefiner(LoadBreakSwitch::addConstructToMap, LoadBreakSwitch::addPrimitiveAssignFnsToMap, LoadBreakSwitch::addClassAssignFnsToMap, LoadBreakSwitch::debugName); } +std::map LoadBreakSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ProtectedSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadBreakSwitch_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadBreakSwitch.hpp b/CGMES_2.4.13_18DEC2013/LoadBreakSwitch.hpp index e6c20cc50..64a04bd2e 100644 --- a/CGMES_2.4.13_18DEC2013/LoadBreakSwitch.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadBreakSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ProtectedSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadBreakSwitch_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadComposite.cpp b/CGMES_2.4.13_18DEC2013/LoadComposite.cpp index 3502dc5ba..7505b5544 100644 --- a/CGMES_2.4.13_18DEC2013/LoadComposite.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadComposite.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadComposite(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadComposite.epfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epfs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqfs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.h", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.lfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.pfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadComposite::LoadComposite() {} LoadComposite::~LoadComposite() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadComposite::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadComposite::getClassNamespaceUrl() const { - { "cim:LoadComposite.epfd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epfs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epvd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epvs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqfd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqfs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqvd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqvs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.h", { CGMESProfile::DY, } }, - { "cim:LoadComposite.lfrac", { CGMESProfile::DY, } }, - { "cim:LoadComposite.pfrac", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadComposite::getPossibleProfilesForClass() const +const std::string& LoadComposite::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadComposite::getPossibleProfilesForAttributes() const +const std::list& LoadComposite::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadComposite::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadComposite::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadComposite::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadComposite_epfd(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* LoadComposite::debugString() const void LoadComposite::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadComposite", &LoadComposite_factory); + factory_map.emplace("LoadComposite", &LoadComposite_factory); } void LoadComposite::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadComposite.epfd", &assign_LoadComposite_epfd); - assign_map.emplace("cim:LoadComposite.epfs", &assign_LoadComposite_epfs); - assign_map.emplace("cim:LoadComposite.epvd", &assign_LoadComposite_epvd); - assign_map.emplace("cim:LoadComposite.epvs", &assign_LoadComposite_epvs); - assign_map.emplace("cim:LoadComposite.eqfd", &assign_LoadComposite_eqfd); - assign_map.emplace("cim:LoadComposite.eqfs", &assign_LoadComposite_eqfs); - assign_map.emplace("cim:LoadComposite.eqvd", &assign_LoadComposite_eqvd); - assign_map.emplace("cim:LoadComposite.eqvs", &assign_LoadComposite_eqvs); - assign_map.emplace("cim:LoadComposite.h", &assign_LoadComposite_h); - assign_map.emplace("cim:LoadComposite.lfrac", &assign_LoadComposite_lfrac); - assign_map.emplace("cim:LoadComposite.pfrac", &assign_LoadComposite_pfrac); + assign_map.emplace("LoadComposite.epfd", &assign_LoadComposite_epfd); + assign_map.emplace("LoadComposite.epfs", &assign_LoadComposite_epfs); + assign_map.emplace("LoadComposite.epvd", &assign_LoadComposite_epvd); + assign_map.emplace("LoadComposite.epvs", &assign_LoadComposite_epvs); + assign_map.emplace("LoadComposite.eqfd", &assign_LoadComposite_eqfd); + assign_map.emplace("LoadComposite.eqfs", &assign_LoadComposite_eqfs); + assign_map.emplace("LoadComposite.eqvd", &assign_LoadComposite_eqvd); + assign_map.emplace("LoadComposite.eqvs", &assign_LoadComposite_eqvs); + assign_map.emplace("LoadComposite.h", &assign_LoadComposite_h); + assign_map.emplace("LoadComposite.lfrac", &assign_LoadComposite_lfrac); + assign_map.emplace("LoadComposite.pfrac", &assign_LoadComposite_pfrac); } void LoadComposite::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void LoadComposite::addClassAssignFnsToMap(std::unordered_map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadComposite.epfd", &get_LoadComposite_epfd); - get_map.emplace("cim:LoadComposite.epfs", &get_LoadComposite_epfs); - get_map.emplace("cim:LoadComposite.epvd", &get_LoadComposite_epvd); - get_map.emplace("cim:LoadComposite.epvs", &get_LoadComposite_epvs); - get_map.emplace("cim:LoadComposite.eqfd", &get_LoadComposite_eqfd); - get_map.emplace("cim:LoadComposite.eqfs", &get_LoadComposite_eqfs); - get_map.emplace("cim:LoadComposite.eqvd", &get_LoadComposite_eqvd); - get_map.emplace("cim:LoadComposite.eqvs", &get_LoadComposite_eqvs); - get_map.emplace("cim:LoadComposite.h", &get_LoadComposite_h); - get_map.emplace("cim:LoadComposite.lfrac", &get_LoadComposite_lfrac); - get_map.emplace("cim:LoadComposite.pfrac", &get_LoadComposite_pfrac); + get_map.emplace("LoadComposite.epfd", &get_LoadComposite_epfd); + get_map.emplace("LoadComposite.epfs", &get_LoadComposite_epfs); + get_map.emplace("LoadComposite.epvd", &get_LoadComposite_epvd); + get_map.emplace("LoadComposite.epvs", &get_LoadComposite_epvs); + get_map.emplace("LoadComposite.eqfd", &get_LoadComposite_eqfd); + get_map.emplace("LoadComposite.eqfs", &get_LoadComposite_eqfs); + get_map.emplace("LoadComposite.eqvd", &get_LoadComposite_eqvd); + get_map.emplace("LoadComposite.eqvs", &get_LoadComposite_eqvs); + get_map.emplace("LoadComposite.h", &get_LoadComposite_h); + get_map.emplace("LoadComposite.lfrac", &get_LoadComposite_lfrac); + get_map.emplace("LoadComposite.pfrac", &get_LoadComposite_pfrac); } void LoadComposite::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void LoadComposite::addEnumGetFnsToMap(std::map& get_ LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadComposite::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadComposite" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadComposite::declare() { return BaseClassDefiner(LoadComposite::addConstructToMap, LoadComposite::addPrimitiveAssignFnsToMap, LoadComposite::addClassAssignFnsToMap, LoadComposite::debugName); } +std::map LoadComposite::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadComposite_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadComposite.hpp b/CGMES_2.4.13_18DEC2013/LoadComposite.hpp index 37bbc8ac6..df72bbcfa 100644 --- a/CGMES_2.4.13_18DEC2013/LoadComposite.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadComposite.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadComposite_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadDynamics.cpp b/CGMES_2.4.13_18DEC2013/LoadDynamics.cpp index 35cf6f647..2cbed6743 100644 --- a/CGMES_2.4.13_18DEC2013/LoadDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadDynamics.EnergyConsumer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadDynamics::LoadDynamics() {} LoadDynamics::~LoadDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadDynamics::getClassNamespaceUrl() const { - { "cim:LoadDynamics.EnergyConsumer", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadDynamics::getPossibleProfilesForClass() const +const std::string& LoadDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadDynamics::getPossibleProfilesForAttributes() const +const std::list& LoadDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergyConsumer_LoadDynamics(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* LoadDynamics::debugString() const void LoadDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadDynamics", &LoadDynamics_factory); + factory_map.emplace("LoadDynamics", &LoadDynamics_factory); } void LoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void LoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadDynamics.EnergyConsumer", &assign_LoadDynamics_EnergyConsumer); + assign_map.emplace("LoadDynamics.EnergyConsumer", &assign_LoadDynamics_EnergyConsumer); } void LoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void LoadDynamics::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadDynamics::declare() { return BaseClassDefiner(LoadDynamics::addConstructToMap, LoadDynamics::addPrimitiveAssignFnsToMap, LoadDynamics::addClassAssignFnsToMap, LoadDynamics::debugName); } +std::map LoadDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadDynamics.hpp b/CGMES_2.4.13_18DEC2013/LoadDynamics.hpp index ffaa8be53..216b42208 100644 --- a/CGMES_2.4.13_18DEC2013/LoadDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadGenericNonLinear.cpp b/CGMES_2.4.13_18DEC2013/LoadGenericNonLinear.cpp index 9bae002fa..3ea34eb20 100644 --- a/CGMES_2.4.13_18DEC2013/LoadGenericNonLinear.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadGenericNonLinear.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadGenericNonLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadGenericNonLinear.bs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.bt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.genericNonLinearLoadModelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.ls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.lt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.pt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.qt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.tq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadGenericNonLinear::LoadGenericNonLinear() {} LoadGenericNonLinear::~LoadGenericNonLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadGenericNonLinear::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadGenericNonLinear::getClassNamespaceUrl() const { - { "cim:LoadGenericNonLinear.bs", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.bt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.genericNonLinearLoadModelType", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.ls", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.lt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.pt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.qt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.tp", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.tq", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadGenericNonLinear::getPossibleProfilesForClass() const +const std::string& LoadGenericNonLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadGenericNonLinear::getPossibleProfilesForAttributes() const +const std::list& LoadGenericNonLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadGenericNonLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadGenericNonLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadGenericNonLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadGenericNonLinear_bs(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* LoadGenericNonLinear::debugString() const void LoadGenericNonLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadGenericNonLinear", &LoadGenericNonLinear_factory); + factory_map.emplace("LoadGenericNonLinear", &LoadGenericNonLinear_factory); } void LoadGenericNonLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadGenericNonLinear.bs", &assign_LoadGenericNonLinear_bs); - assign_map.emplace("cim:LoadGenericNonLinear.bt", &assign_LoadGenericNonLinear_bt); - assign_map.emplace("cim:LoadGenericNonLinear.genericNonLinearLoadModelType", &assign_LoadGenericNonLinear_genericNonLinearLoadModelType); - assign_map.emplace("cim:LoadGenericNonLinear.ls", &assign_LoadGenericNonLinear_ls); - assign_map.emplace("cim:LoadGenericNonLinear.lt", &assign_LoadGenericNonLinear_lt); - assign_map.emplace("cim:LoadGenericNonLinear.pt", &assign_LoadGenericNonLinear_pt); - assign_map.emplace("cim:LoadGenericNonLinear.qt", &assign_LoadGenericNonLinear_qt); - assign_map.emplace("cim:LoadGenericNonLinear.tp", &assign_LoadGenericNonLinear_tp); - assign_map.emplace("cim:LoadGenericNonLinear.tq", &assign_LoadGenericNonLinear_tq); + assign_map.emplace("LoadGenericNonLinear.bs", &assign_LoadGenericNonLinear_bs); + assign_map.emplace("LoadGenericNonLinear.bt", &assign_LoadGenericNonLinear_bt); + assign_map.emplace("LoadGenericNonLinear.genericNonLinearLoadModelType", &assign_LoadGenericNonLinear_genericNonLinearLoadModelType); + assign_map.emplace("LoadGenericNonLinear.ls", &assign_LoadGenericNonLinear_ls); + assign_map.emplace("LoadGenericNonLinear.lt", &assign_LoadGenericNonLinear_lt); + assign_map.emplace("LoadGenericNonLinear.pt", &assign_LoadGenericNonLinear_pt); + assign_map.emplace("LoadGenericNonLinear.qt", &assign_LoadGenericNonLinear_qt); + assign_map.emplace("LoadGenericNonLinear.tp", &assign_LoadGenericNonLinear_tp); + assign_map.emplace("LoadGenericNonLinear.tq", &assign_LoadGenericNonLinear_tq); } void LoadGenericNonLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,14 +371,14 @@ void LoadGenericNonLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadGenericNonLinear.bs", &get_LoadGenericNonLinear_bs); - get_map.emplace("cim:LoadGenericNonLinear.bt", &get_LoadGenericNonLinear_bt); - get_map.emplace("cim:LoadGenericNonLinear.ls", &get_LoadGenericNonLinear_ls); - get_map.emplace("cim:LoadGenericNonLinear.lt", &get_LoadGenericNonLinear_lt); - get_map.emplace("cim:LoadGenericNonLinear.pt", &get_LoadGenericNonLinear_pt); - get_map.emplace("cim:LoadGenericNonLinear.qt", &get_LoadGenericNonLinear_qt); - get_map.emplace("cim:LoadGenericNonLinear.tp", &get_LoadGenericNonLinear_tp); - get_map.emplace("cim:LoadGenericNonLinear.tq", &get_LoadGenericNonLinear_tq); + get_map.emplace("LoadGenericNonLinear.bs", &get_LoadGenericNonLinear_bs); + get_map.emplace("LoadGenericNonLinear.bt", &get_LoadGenericNonLinear_bt); + get_map.emplace("LoadGenericNonLinear.ls", &get_LoadGenericNonLinear_ls); + get_map.emplace("LoadGenericNonLinear.lt", &get_LoadGenericNonLinear_lt); + get_map.emplace("LoadGenericNonLinear.pt", &get_LoadGenericNonLinear_pt); + get_map.emplace("LoadGenericNonLinear.qt", &get_LoadGenericNonLinear_qt); + get_map.emplace("LoadGenericNonLinear.tp", &get_LoadGenericNonLinear_tp); + get_map.emplace("LoadGenericNonLinear.tq", &get_LoadGenericNonLinear_tq); } void LoadGenericNonLinear::addClassGetFnsToMap(std::map& get_map) const @@ -357,7 +389,13 @@ void LoadGenericNonLinear::addClassGetFnsToMap(std::map& get_map) const { LoadDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:LoadGenericNonLinear.genericNonLinearLoadModelType", &get_LoadGenericNonLinear_genericNonLinearLoadModelType); + get_map.emplace("LoadGenericNonLinear.genericNonLinearLoadModelType", &get_LoadGenericNonLinear_genericNonLinearLoadModelType); +} + +bool LoadGenericNonLinear::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadGenericNonLinear" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner LoadGenericNonLinear::declare() @@ -365,6 +403,14 @@ const BaseClassDefiner LoadGenericNonLinear::declare() return BaseClassDefiner(LoadGenericNonLinear::addConstructToMap, LoadGenericNonLinear::addPrimitiveAssignFnsToMap, LoadGenericNonLinear::addClassAssignFnsToMap, LoadGenericNonLinear::debugName); } +std::map LoadGenericNonLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadGenericNonLinear_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadGenericNonLinear.hpp b/CGMES_2.4.13_18DEC2013/LoadGenericNonLinear.hpp index c291b52e3..8e557e9e2 100644 --- a/CGMES_2.4.13_18DEC2013/LoadGenericNonLinear.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadGenericNonLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "GenericNonLinearLoadModelKind.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -57,8 +58,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -66,7 +74,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadGenericNonLinear_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadGroup.cpp b/CGMES_2.4.13_18DEC2013/LoadGroup.cpp index 142619bf7..7775c7576 100644 --- a/CGMES_2.4.13_18DEC2013/LoadGroup.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadGroup.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadGroup.SubLoadArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadGroup::LoadGroup() : SubLoadArea(nullptr) {} LoadGroup::~LoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadGroup::getClassNamespaceUrl() const { - { "cim:LoadGroup.SubLoadArea", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadGroup::getPossibleProfilesForClass() const +const std::string& LoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadGroup::getPossibleProfilesForAttributes() const +const std::list& LoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubLoadArea_LoadGroups(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* LoadGroup::debugString() const void LoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadGroup", &LoadGroup_factory); + factory_map.emplace("LoadGroup", &LoadGroup_factory); } void LoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void LoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadGroup.SubLoadArea", &assign_LoadGroup_SubLoadArea); + assign_map.emplace("LoadGroup.SubLoadArea", &assign_LoadGroup_SubLoadArea); } void LoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void LoadGroup::addPrimitiveGetFnsToMap(std::map& get void LoadGroup::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadGroup.SubLoadArea", &get_LoadGroup_SubLoadArea); + get_map.emplace("LoadGroup.SubLoadArea", &get_LoadGroup_SubLoadArea); } void LoadGroup::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void LoadGroup::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadGroup::declare() { return BaseClassDefiner(LoadGroup::addConstructToMap, LoadGroup::addPrimitiveAssignFnsToMap, LoadGroup::addClassAssignFnsToMap, LoadGroup::debugName); } +std::map LoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadGroup_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadGroup.hpp b/CGMES_2.4.13_18DEC2013/LoadGroup.hpp index d0fa3dd27..f3684c780 100644 --- a/CGMES_2.4.13_18DEC2013/LoadGroup.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadGroup_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadMotor.cpp b/CGMES_2.4.13_18DEC2013/LoadMotor.cpp index b1eddcd2a..bb8e8631f 100644 --- a/CGMES_2.4.13_18DEC2013/LoadMotor.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadMotor.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadMotor(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadMotor.LoadAggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.h", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lfac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.ls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.pfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.ra", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tbkr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tpo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tppo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.vt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadMotor::LoadMotor() : LoadAggregate(nullptr) {} LoadMotor::~LoadMotor() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadMotor::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadMotor::getClassNamespaceUrl() const { - { "cim:LoadMotor.LoadAggregate", { CGMESProfile::DY, } }, - { "cim:LoadMotor.d", { CGMESProfile::DY, } }, - { "cim:LoadMotor.h", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lfac", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lp", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lpp", { CGMESProfile::DY, } }, - { "cim:LoadMotor.ls", { CGMESProfile::DY, } }, - { "cim:LoadMotor.pfrac", { CGMESProfile::DY, } }, - { "cim:LoadMotor.ra", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tbkr", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tpo", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tppo", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tv", { CGMESProfile::DY, } }, - { "cim:LoadMotor.vt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadMotor::getPossibleProfilesForClass() const +const std::string& LoadMotor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadMotor::getPossibleProfilesForAttributes() const +const std::list& LoadMotor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadMotor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadMotor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadMotor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadAggregate_LoadMotor(BaseClass*, BaseClass*); @@ -469,53 +501,53 @@ const char* LoadMotor::debugString() const void LoadMotor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadMotor", &LoadMotor_factory); + factory_map.emplace("LoadMotor", &LoadMotor_factory); } void LoadMotor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadMotor.d", &assign_LoadMotor_d); - assign_map.emplace("cim:LoadMotor.h", &assign_LoadMotor_h); - assign_map.emplace("cim:LoadMotor.lfac", &assign_LoadMotor_lfac); - assign_map.emplace("cim:LoadMotor.lp", &assign_LoadMotor_lp); - assign_map.emplace("cim:LoadMotor.lpp", &assign_LoadMotor_lpp); - assign_map.emplace("cim:LoadMotor.ls", &assign_LoadMotor_ls); - assign_map.emplace("cim:LoadMotor.pfrac", &assign_LoadMotor_pfrac); - assign_map.emplace("cim:LoadMotor.ra", &assign_LoadMotor_ra); - assign_map.emplace("cim:LoadMotor.tbkr", &assign_LoadMotor_tbkr); - assign_map.emplace("cim:LoadMotor.tpo", &assign_LoadMotor_tpo); - assign_map.emplace("cim:LoadMotor.tppo", &assign_LoadMotor_tppo); - assign_map.emplace("cim:LoadMotor.tv", &assign_LoadMotor_tv); - assign_map.emplace("cim:LoadMotor.vt", &assign_LoadMotor_vt); + assign_map.emplace("LoadMotor.d", &assign_LoadMotor_d); + assign_map.emplace("LoadMotor.h", &assign_LoadMotor_h); + assign_map.emplace("LoadMotor.lfac", &assign_LoadMotor_lfac); + assign_map.emplace("LoadMotor.lp", &assign_LoadMotor_lp); + assign_map.emplace("LoadMotor.lpp", &assign_LoadMotor_lpp); + assign_map.emplace("LoadMotor.ls", &assign_LoadMotor_ls); + assign_map.emplace("LoadMotor.pfrac", &assign_LoadMotor_pfrac); + assign_map.emplace("LoadMotor.ra", &assign_LoadMotor_ra); + assign_map.emplace("LoadMotor.tbkr", &assign_LoadMotor_tbkr); + assign_map.emplace("LoadMotor.tpo", &assign_LoadMotor_tpo); + assign_map.emplace("LoadMotor.tppo", &assign_LoadMotor_tppo); + assign_map.emplace("LoadMotor.tv", &assign_LoadMotor_tv); + assign_map.emplace("LoadMotor.vt", &assign_LoadMotor_vt); } void LoadMotor::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadMotor.LoadAggregate", &assign_LoadMotor_LoadAggregate); + assign_map.emplace("LoadMotor.LoadAggregate", &assign_LoadMotor_LoadAggregate); } void LoadMotor::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadMotor.d", &get_LoadMotor_d); - get_map.emplace("cim:LoadMotor.h", &get_LoadMotor_h); - get_map.emplace("cim:LoadMotor.lfac", &get_LoadMotor_lfac); - get_map.emplace("cim:LoadMotor.lp", &get_LoadMotor_lp); - get_map.emplace("cim:LoadMotor.lpp", &get_LoadMotor_lpp); - get_map.emplace("cim:LoadMotor.ls", &get_LoadMotor_ls); - get_map.emplace("cim:LoadMotor.pfrac", &get_LoadMotor_pfrac); - get_map.emplace("cim:LoadMotor.ra", &get_LoadMotor_ra); - get_map.emplace("cim:LoadMotor.tbkr", &get_LoadMotor_tbkr); - get_map.emplace("cim:LoadMotor.tpo", &get_LoadMotor_tpo); - get_map.emplace("cim:LoadMotor.tppo", &get_LoadMotor_tppo); - get_map.emplace("cim:LoadMotor.tv", &get_LoadMotor_tv); - get_map.emplace("cim:LoadMotor.vt", &get_LoadMotor_vt); + get_map.emplace("LoadMotor.d", &get_LoadMotor_d); + get_map.emplace("LoadMotor.h", &get_LoadMotor_h); + get_map.emplace("LoadMotor.lfac", &get_LoadMotor_lfac); + get_map.emplace("LoadMotor.lp", &get_LoadMotor_lp); + get_map.emplace("LoadMotor.lpp", &get_LoadMotor_lpp); + get_map.emplace("LoadMotor.ls", &get_LoadMotor_ls); + get_map.emplace("LoadMotor.pfrac", &get_LoadMotor_pfrac); + get_map.emplace("LoadMotor.ra", &get_LoadMotor_ra); + get_map.emplace("LoadMotor.tbkr", &get_LoadMotor_tbkr); + get_map.emplace("LoadMotor.tpo", &get_LoadMotor_tpo); + get_map.emplace("LoadMotor.tppo", &get_LoadMotor_tppo); + get_map.emplace("LoadMotor.tv", &get_LoadMotor_tv); + get_map.emplace("LoadMotor.vt", &get_LoadMotor_vt); } void LoadMotor::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadMotor.LoadAggregate", &get_LoadMotor_LoadAggregate); + get_map.emplace("LoadMotor.LoadAggregate", &get_LoadMotor_LoadAggregate); } void LoadMotor::addEnumGetFnsToMap(std::map& get_map) const @@ -523,11 +555,25 @@ void LoadMotor::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadMotor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadMotor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadMotor::declare() { return BaseClassDefiner(LoadMotor::addConstructToMap, LoadMotor::addPrimitiveAssignFnsToMap, LoadMotor::addClassAssignFnsToMap, LoadMotor::debugName); } +std::map LoadMotor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadMotor_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadMotor.hpp b/CGMES_2.4.13_18DEC2013/LoadMotor.hpp index 66ad36cff..3bf4bea2b 100644 --- a/CGMES_2.4.13_18DEC2013/LoadMotor.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadMotor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadMotor_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadResponseCharacteristic.cpp b/CGMES_2.4.13_18DEC2013/LoadResponseCharacteristic.cpp index f4c2368ce..92e394bae 100644 --- a/CGMES_2.4.13_18DEC2013/LoadResponseCharacteristic.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadResponseCharacteristic.cpp @@ -12,43 +12,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadResponseCharacteristic(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadResponseCharacteristic.EnergyConsumer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.exponentModel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantImpedance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pFrequencyExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pVoltageExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantImpedance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qFrequencyExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qVoltageExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadResponseCharacteristic::LoadResponseCharacteristic() {} LoadResponseCharacteristic::~LoadResponseCharacteristic() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadResponseCharacteristic::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadResponseCharacteristic::getClassNamespaceUrl() const { - { "cim:LoadResponseCharacteristic.EnergyConsumer", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.exponentModel", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantCurrent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantImpedance", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantPower", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pFrequencyExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pVoltageExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantCurrent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantImpedance", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantPower", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qFrequencyExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qVoltageExponent", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadResponseCharacteristic::getPossibleProfilesForClass() const +const std::string& LoadResponseCharacteristic::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadResponseCharacteristic::getPossibleProfilesForAttributes() const +const std::list& LoadResponseCharacteristic::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadResponseCharacteristic::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadResponseCharacteristic::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadResponseCharacteristic::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergyConsumer_LoadResponse(BaseClass*, BaseClass*); @@ -396,43 +428,43 @@ const char* LoadResponseCharacteristic::debugString() const void LoadResponseCharacteristic::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadResponseCharacteristic", &LoadResponseCharacteristic_factory); + factory_map.emplace("LoadResponseCharacteristic", &LoadResponseCharacteristic_factory); } void LoadResponseCharacteristic::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadResponseCharacteristic.exponentModel", &assign_LoadResponseCharacteristic_exponentModel); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantCurrent", &assign_LoadResponseCharacteristic_pConstantCurrent); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantImpedance", &assign_LoadResponseCharacteristic_pConstantImpedance); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantPower", &assign_LoadResponseCharacteristic_pConstantPower); - assign_map.emplace("cim:LoadResponseCharacteristic.pFrequencyExponent", &assign_LoadResponseCharacteristic_pFrequencyExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.pVoltageExponent", &assign_LoadResponseCharacteristic_pVoltageExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantCurrent", &assign_LoadResponseCharacteristic_qConstantCurrent); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantImpedance", &assign_LoadResponseCharacteristic_qConstantImpedance); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantPower", &assign_LoadResponseCharacteristic_qConstantPower); - assign_map.emplace("cim:LoadResponseCharacteristic.qFrequencyExponent", &assign_LoadResponseCharacteristic_qFrequencyExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.qVoltageExponent", &assign_LoadResponseCharacteristic_qVoltageExponent); + assign_map.emplace("LoadResponseCharacteristic.exponentModel", &assign_LoadResponseCharacteristic_exponentModel); + assign_map.emplace("LoadResponseCharacteristic.pConstantCurrent", &assign_LoadResponseCharacteristic_pConstantCurrent); + assign_map.emplace("LoadResponseCharacteristic.pConstantImpedance", &assign_LoadResponseCharacteristic_pConstantImpedance); + assign_map.emplace("LoadResponseCharacteristic.pConstantPower", &assign_LoadResponseCharacteristic_pConstantPower); + assign_map.emplace("LoadResponseCharacteristic.pFrequencyExponent", &assign_LoadResponseCharacteristic_pFrequencyExponent); + assign_map.emplace("LoadResponseCharacteristic.pVoltageExponent", &assign_LoadResponseCharacteristic_pVoltageExponent); + assign_map.emplace("LoadResponseCharacteristic.qConstantCurrent", &assign_LoadResponseCharacteristic_qConstantCurrent); + assign_map.emplace("LoadResponseCharacteristic.qConstantImpedance", &assign_LoadResponseCharacteristic_qConstantImpedance); + assign_map.emplace("LoadResponseCharacteristic.qConstantPower", &assign_LoadResponseCharacteristic_qConstantPower); + assign_map.emplace("LoadResponseCharacteristic.qFrequencyExponent", &assign_LoadResponseCharacteristic_qFrequencyExponent); + assign_map.emplace("LoadResponseCharacteristic.qVoltageExponent", &assign_LoadResponseCharacteristic_qVoltageExponent); } void LoadResponseCharacteristic::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadResponseCharacteristic.EnergyConsumer", &assign_LoadResponseCharacteristic_EnergyConsumer); + assign_map.emplace("LoadResponseCharacteristic.EnergyConsumer", &assign_LoadResponseCharacteristic_EnergyConsumer); } void LoadResponseCharacteristic::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadResponseCharacteristic.exponentModel", &get_LoadResponseCharacteristic_exponentModel); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantCurrent", &get_LoadResponseCharacteristic_pConstantCurrent); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantImpedance", &get_LoadResponseCharacteristic_pConstantImpedance); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantPower", &get_LoadResponseCharacteristic_pConstantPower); - get_map.emplace("cim:LoadResponseCharacteristic.pFrequencyExponent", &get_LoadResponseCharacteristic_pFrequencyExponent); - get_map.emplace("cim:LoadResponseCharacteristic.pVoltageExponent", &get_LoadResponseCharacteristic_pVoltageExponent); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantCurrent", &get_LoadResponseCharacteristic_qConstantCurrent); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantImpedance", &get_LoadResponseCharacteristic_qConstantImpedance); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantPower", &get_LoadResponseCharacteristic_qConstantPower); - get_map.emplace("cim:LoadResponseCharacteristic.qFrequencyExponent", &get_LoadResponseCharacteristic_qFrequencyExponent); - get_map.emplace("cim:LoadResponseCharacteristic.qVoltageExponent", &get_LoadResponseCharacteristic_qVoltageExponent); + get_map.emplace("LoadResponseCharacteristic.exponentModel", &get_LoadResponseCharacteristic_exponentModel); + get_map.emplace("LoadResponseCharacteristic.pConstantCurrent", &get_LoadResponseCharacteristic_pConstantCurrent); + get_map.emplace("LoadResponseCharacteristic.pConstantImpedance", &get_LoadResponseCharacteristic_pConstantImpedance); + get_map.emplace("LoadResponseCharacteristic.pConstantPower", &get_LoadResponseCharacteristic_pConstantPower); + get_map.emplace("LoadResponseCharacteristic.pFrequencyExponent", &get_LoadResponseCharacteristic_pFrequencyExponent); + get_map.emplace("LoadResponseCharacteristic.pVoltageExponent", &get_LoadResponseCharacteristic_pVoltageExponent); + get_map.emplace("LoadResponseCharacteristic.qConstantCurrent", &get_LoadResponseCharacteristic_qConstantCurrent); + get_map.emplace("LoadResponseCharacteristic.qConstantImpedance", &get_LoadResponseCharacteristic_qConstantImpedance); + get_map.emplace("LoadResponseCharacteristic.qConstantPower", &get_LoadResponseCharacteristic_qConstantPower); + get_map.emplace("LoadResponseCharacteristic.qFrequencyExponent", &get_LoadResponseCharacteristic_qFrequencyExponent); + get_map.emplace("LoadResponseCharacteristic.qVoltageExponent", &get_LoadResponseCharacteristic_qVoltageExponent); } void LoadResponseCharacteristic::addClassGetFnsToMap(std::map& get_map) const @@ -445,11 +477,25 @@ void LoadResponseCharacteristic::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner LoadResponseCharacteristic::declare() { return BaseClassDefiner(LoadResponseCharacteristic::addConstructToMap, LoadResponseCharacteristic::addPrimitiveAssignFnsToMap, LoadResponseCharacteristic::addClassAssignFnsToMap, LoadResponseCharacteristic::debugName); } +std::map LoadResponseCharacteristic::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadResponseCharacteristic_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadResponseCharacteristic.hpp b/CGMES_2.4.13_18DEC2013/LoadResponseCharacteristic.hpp index 48e1ab3ae..72d7f6099 100644 --- a/CGMES_2.4.13_18DEC2013/LoadResponseCharacteristic.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadResponseCharacteristic.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadResponseCharacteristic_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadStatic.cpp b/CGMES_2.4.13_18DEC2013/LoadStatic.cpp index 1ae8c3ffb..ea16665cd 100644 --- a/CGMES_2.4.13_18DEC2013/LoadStatic.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadStatic.cpp @@ -12,49 +12,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadStatic(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadStatic.LoadAggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kpf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kqf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.staticLoadModelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadStatic::LoadStatic() : LoadAggregate(nullptr) {} LoadStatic::~LoadStatic() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadStatic::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadStatic::getClassNamespaceUrl() const { - { "cim:LoadStatic.LoadAggregate", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp4", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kpf", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq4", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kqf", { CGMESProfile::DY, } }, - { "cim:LoadStatic.staticLoadModelType", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadStatic::getPossibleProfilesForClass() const +const std::string& LoadStatic::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadStatic::getPossibleProfilesForAttributes() const +const std::list& LoadStatic::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadStatic::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadStatic::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadStatic::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadAggregate_LoadStatic(BaseClass*, BaseClass*); @@ -589,66 +621,72 @@ const char* LoadStatic::debugString() const void LoadStatic::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadStatic", &LoadStatic_factory); + factory_map.emplace("LoadStatic", &LoadStatic_factory); } void LoadStatic::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadStatic.ep1", &assign_LoadStatic_ep1); - assign_map.emplace("cim:LoadStatic.ep2", &assign_LoadStatic_ep2); - assign_map.emplace("cim:LoadStatic.ep3", &assign_LoadStatic_ep3); - assign_map.emplace("cim:LoadStatic.eq1", &assign_LoadStatic_eq1); - assign_map.emplace("cim:LoadStatic.eq2", &assign_LoadStatic_eq2); - assign_map.emplace("cim:LoadStatic.eq3", &assign_LoadStatic_eq3); - assign_map.emplace("cim:LoadStatic.kp1", &assign_LoadStatic_kp1); - assign_map.emplace("cim:LoadStatic.kp2", &assign_LoadStatic_kp2); - assign_map.emplace("cim:LoadStatic.kp3", &assign_LoadStatic_kp3); - assign_map.emplace("cim:LoadStatic.kp4", &assign_LoadStatic_kp4); - assign_map.emplace("cim:LoadStatic.kpf", &assign_LoadStatic_kpf); - assign_map.emplace("cim:LoadStatic.kq1", &assign_LoadStatic_kq1); - assign_map.emplace("cim:LoadStatic.kq2", &assign_LoadStatic_kq2); - assign_map.emplace("cim:LoadStatic.kq3", &assign_LoadStatic_kq3); - assign_map.emplace("cim:LoadStatic.kq4", &assign_LoadStatic_kq4); - assign_map.emplace("cim:LoadStatic.kqf", &assign_LoadStatic_kqf); - assign_map.emplace("cim:LoadStatic.staticLoadModelType", &assign_LoadStatic_staticLoadModelType); + assign_map.emplace("LoadStatic.ep1", &assign_LoadStatic_ep1); + assign_map.emplace("LoadStatic.ep2", &assign_LoadStatic_ep2); + assign_map.emplace("LoadStatic.ep3", &assign_LoadStatic_ep3); + assign_map.emplace("LoadStatic.eq1", &assign_LoadStatic_eq1); + assign_map.emplace("LoadStatic.eq2", &assign_LoadStatic_eq2); + assign_map.emplace("LoadStatic.eq3", &assign_LoadStatic_eq3); + assign_map.emplace("LoadStatic.kp1", &assign_LoadStatic_kp1); + assign_map.emplace("LoadStatic.kp2", &assign_LoadStatic_kp2); + assign_map.emplace("LoadStatic.kp3", &assign_LoadStatic_kp3); + assign_map.emplace("LoadStatic.kp4", &assign_LoadStatic_kp4); + assign_map.emplace("LoadStatic.kpf", &assign_LoadStatic_kpf); + assign_map.emplace("LoadStatic.kq1", &assign_LoadStatic_kq1); + assign_map.emplace("LoadStatic.kq2", &assign_LoadStatic_kq2); + assign_map.emplace("LoadStatic.kq3", &assign_LoadStatic_kq3); + assign_map.emplace("LoadStatic.kq4", &assign_LoadStatic_kq4); + assign_map.emplace("LoadStatic.kqf", &assign_LoadStatic_kqf); + assign_map.emplace("LoadStatic.staticLoadModelType", &assign_LoadStatic_staticLoadModelType); } void LoadStatic::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadStatic.LoadAggregate", &assign_LoadStatic_LoadAggregate); + assign_map.emplace("LoadStatic.LoadAggregate", &assign_LoadStatic_LoadAggregate); } void LoadStatic::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.ep1", &get_LoadStatic_ep1); - get_map.emplace("cim:LoadStatic.ep2", &get_LoadStatic_ep2); - get_map.emplace("cim:LoadStatic.ep3", &get_LoadStatic_ep3); - get_map.emplace("cim:LoadStatic.eq1", &get_LoadStatic_eq1); - get_map.emplace("cim:LoadStatic.eq2", &get_LoadStatic_eq2); - get_map.emplace("cim:LoadStatic.eq3", &get_LoadStatic_eq3); - get_map.emplace("cim:LoadStatic.kp1", &get_LoadStatic_kp1); - get_map.emplace("cim:LoadStatic.kp2", &get_LoadStatic_kp2); - get_map.emplace("cim:LoadStatic.kp3", &get_LoadStatic_kp3); - get_map.emplace("cim:LoadStatic.kp4", &get_LoadStatic_kp4); - get_map.emplace("cim:LoadStatic.kpf", &get_LoadStatic_kpf); - get_map.emplace("cim:LoadStatic.kq1", &get_LoadStatic_kq1); - get_map.emplace("cim:LoadStatic.kq2", &get_LoadStatic_kq2); - get_map.emplace("cim:LoadStatic.kq3", &get_LoadStatic_kq3); - get_map.emplace("cim:LoadStatic.kq4", &get_LoadStatic_kq4); - get_map.emplace("cim:LoadStatic.kqf", &get_LoadStatic_kqf); + get_map.emplace("LoadStatic.ep1", &get_LoadStatic_ep1); + get_map.emplace("LoadStatic.ep2", &get_LoadStatic_ep2); + get_map.emplace("LoadStatic.ep3", &get_LoadStatic_ep3); + get_map.emplace("LoadStatic.eq1", &get_LoadStatic_eq1); + get_map.emplace("LoadStatic.eq2", &get_LoadStatic_eq2); + get_map.emplace("LoadStatic.eq3", &get_LoadStatic_eq3); + get_map.emplace("LoadStatic.kp1", &get_LoadStatic_kp1); + get_map.emplace("LoadStatic.kp2", &get_LoadStatic_kp2); + get_map.emplace("LoadStatic.kp3", &get_LoadStatic_kp3); + get_map.emplace("LoadStatic.kp4", &get_LoadStatic_kp4); + get_map.emplace("LoadStatic.kpf", &get_LoadStatic_kpf); + get_map.emplace("LoadStatic.kq1", &get_LoadStatic_kq1); + get_map.emplace("LoadStatic.kq2", &get_LoadStatic_kq2); + get_map.emplace("LoadStatic.kq3", &get_LoadStatic_kq3); + get_map.emplace("LoadStatic.kq4", &get_LoadStatic_kq4); + get_map.emplace("LoadStatic.kqf", &get_LoadStatic_kqf); } void LoadStatic::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.LoadAggregate", &get_LoadStatic_LoadAggregate); + get_map.emplace("LoadStatic.LoadAggregate", &get_LoadStatic_LoadAggregate); } void LoadStatic::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.staticLoadModelType", &get_LoadStatic_staticLoadModelType); + get_map.emplace("LoadStatic.staticLoadModelType", &get_LoadStatic_staticLoadModelType); +} + +bool LoadStatic::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadStatic" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner LoadStatic::declare() @@ -656,6 +694,14 @@ const BaseClassDefiner LoadStatic::declare() return BaseClassDefiner(LoadStatic::addConstructToMap, LoadStatic::addPrimitiveAssignFnsToMap, LoadStatic::addClassAssignFnsToMap, LoadStatic::debugName); } +std::map LoadStatic::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadStatic_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadStatic.hpp b/CGMES_2.4.13_18DEC2013/LoadStatic.hpp index 7cea8b85f..a8def85f7 100644 --- a/CGMES_2.4.13_18DEC2013/LoadStatic.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadStatic.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" #include "StaticLoadModelKind.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadStatic_factory(); diff --git a/CGMES_2.4.13_18DEC2013/LoadUserDefined.cpp b/CGMES_2.4.13_18DEC2013/LoadUserDefined.cpp index ad0a491aa..2f53daa3f 100644 --- a/CGMES_2.4.13_18DEC2013/LoadUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/LoadUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadUserDefined::LoadUserDefined() {} LoadUserDefined::~LoadUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadUserDefined::getClassNamespaceUrl() const { - { "cim:LoadUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:LoadUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadUserDefined::getPossibleProfilesForClass() const +const std::string& LoadUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadUserDefined::getPossibleProfilesForAttributes() const +const std::list& LoadUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_LoadUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* LoadUserDefined::debugString() const void LoadUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadUserDefined", &LoadUserDefined_factory); + factory_map.emplace("LoadUserDefined", &LoadUserDefined_factory); } void LoadUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadUserDefined.proprietary", &assign_LoadUserDefined_proprietary); + assign_map.emplace("LoadUserDefined.proprietary", &assign_LoadUserDefined_proprietary); } void LoadUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadUserDefined.ProprietaryParameterDynamics", &assign_LoadUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("LoadUserDefined.ProprietaryParameterDynamics", &assign_LoadUserDefined_ProprietaryParameterDynamics); } void LoadUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadUserDefined.proprietary", &get_LoadUserDefined_proprietary); + get_map.emplace("LoadUserDefined.proprietary", &get_LoadUserDefined_proprietary); } void LoadUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void LoadUserDefined::addEnumGetFnsToMap(std::map& ge LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadUserDefined::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadUserDefined" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadUserDefined::declare() { return BaseClassDefiner(LoadUserDefined::addConstructToMap, LoadUserDefined::addPrimitiveAssignFnsToMap, LoadUserDefined::addClassAssignFnsToMap, LoadUserDefined::debugName); } +std::map LoadUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/LoadUserDefined.hpp b/CGMES_2.4.13_18DEC2013/LoadUserDefined.hpp index d9bea6707..b6de8e825 100644 --- a/CGMES_2.4.13_18DEC2013/LoadUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/LoadUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Location.cpp b/CGMES_2.4.13_18DEC2013/Location.cpp index d57fd2700..bc0ed5451 100644 --- a/CGMES_2.4.13_18DEC2013/Location.cpp +++ b/CGMES_2.4.13_18DEC2013/Location.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Location(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Location.CoordinateSystem", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "Location.PositionPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "Location.PowerSystemResources", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + Location::Location() : CoordinateSystem(nullptr), PowerSystemResources(nullptr) {} Location::~Location() {} -static const std::list PossibleProfilesForClass = +const std::list& Location::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Location::getClassNamespaceUrl() const { - { "cim:Location.CoordinateSystem", { CGMESProfile::GL, } }, - { "cim:Location.PositionPoints", { CGMESProfile::GL, } }, - { "cim:Location.PowerSystemResources", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Location::getPossibleProfilesForClass() const +const std::string& Location::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Location::getPossibleProfilesForAttributes() const +const std::list& Location::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Location::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Location::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Location::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CoordinateSystem_Location(BaseClass*, BaseClass*); @@ -132,7 +164,7 @@ const char* Location::debugString() const void Location::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Location", &Location_factory); + factory_map.emplace("Location", &Location_factory); } void Location::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -141,9 +173,9 @@ void Location::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Location.CoordinateSystem", &assign_Location_CoordinateSystem); - assign_map.emplace("cim:Location.PositionPoints", &assign_Location_PositionPoints); - assign_map.emplace("cim:Location.PowerSystemResources", &assign_Location_PowerSystemResources); + assign_map.emplace("Location.CoordinateSystem", &assign_Location_CoordinateSystem); + assign_map.emplace("Location.PositionPoints", &assign_Location_PositionPoints); + assign_map.emplace("Location.PowerSystemResources", &assign_Location_PowerSystemResources); } void Location::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -154,8 +186,8 @@ void Location::addPrimitiveGetFnsToMap(std::map& get_ void Location::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Location.CoordinateSystem", &get_Location_CoordinateSystem); - get_map.emplace("cim:Location.PowerSystemResources", &get_Location_PowerSystemResources); + get_map.emplace("Location.CoordinateSystem", &get_Location_CoordinateSystem); + get_map.emplace("Location.PowerSystemResources", &get_Location_PowerSystemResources); } void Location::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void Location::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Location::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Location" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Location::declare() { return BaseClassDefiner(Location::addConstructToMap, Location::addPrimitiveAssignFnsToMap, Location::addClassAssignFnsToMap, Location::debugName); } +std::map Location::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Location_factory() diff --git a/CGMES_2.4.13_18DEC2013/Location.hpp b/CGMES_2.4.13_18DEC2013/Location.hpp index 4d10bdb15..51bf89bd6 100644 --- a/CGMES_2.4.13_18DEC2013/Location.hpp +++ b/CGMES_2.4.13_18DEC2013/Location.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Location_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Measurement.cpp b/CGMES_2.4.13_18DEC2013/Measurement.cpp index 87a4ea88d..1aff8a057 100644 --- a/CGMES_2.4.13_18DEC2013/Measurement.cpp +++ b/CGMES_2.4.13_18DEC2013/Measurement.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Measurement(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Measurement.PowerSystemResource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.measurementType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.phases", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.unitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.unitSymbol", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Measurement::Measurement() : PowerSystemResource(nullptr), Terminal(nullptr) {} Measurement::~Measurement() {} -static const std::list PossibleProfilesForClass = +const std::list& Measurement::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Measurement::getClassNamespaceUrl() const { - { "cim:Measurement.PowerSystemResource", { CGMESProfile::EQ, } }, - { "cim:Measurement.Terminal", { CGMESProfile::EQ, } }, - { "cim:Measurement.measurementType", { CGMESProfile::EQ, } }, - { "cim:Measurement.phases", { CGMESProfile::EQ, } }, - { "cim:Measurement.unitMultiplier", { CGMESProfile::EQ, } }, - { "cim:Measurement.unitSymbol", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Measurement::getPossibleProfilesForClass() const +const std::string& Measurement::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Measurement::getPossibleProfilesForAttributes() const +const std::list& Measurement::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Measurement::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Measurement::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Measurement::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerSystemResource_Measurements(BaseClass*, BaseClass*); @@ -232,42 +264,48 @@ const char* Measurement::debugString() const void Measurement::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Measurement", &Measurement_factory); + factory_map.emplace("Measurement", &Measurement_factory); } void Measurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Measurement.measurementType", &assign_Measurement_measurementType); - assign_map.emplace("cim:Measurement.phases", &assign_Measurement_phases); - assign_map.emplace("cim:Measurement.unitMultiplier", &assign_Measurement_unitMultiplier); - assign_map.emplace("cim:Measurement.unitSymbol", &assign_Measurement_unitSymbol); + assign_map.emplace("Measurement.measurementType", &assign_Measurement_measurementType); + assign_map.emplace("Measurement.phases", &assign_Measurement_phases); + assign_map.emplace("Measurement.unitMultiplier", &assign_Measurement_unitMultiplier); + assign_map.emplace("Measurement.unitSymbol", &assign_Measurement_unitSymbol); } void Measurement::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Measurement.PowerSystemResource", &assign_Measurement_PowerSystemResource); - assign_map.emplace("cim:Measurement.Terminal", &assign_Measurement_Terminal); + assign_map.emplace("Measurement.PowerSystemResource", &assign_Measurement_PowerSystemResource); + assign_map.emplace("Measurement.Terminal", &assign_Measurement_Terminal); } void Measurement::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.measurementType", &get_Measurement_measurementType); + get_map.emplace("Measurement.measurementType", &get_Measurement_measurementType); } void Measurement::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.PowerSystemResource", &get_Measurement_PowerSystemResource); - get_map.emplace("cim:Measurement.Terminal", &get_Measurement_Terminal); + get_map.emplace("Measurement.PowerSystemResource", &get_Measurement_PowerSystemResource); + get_map.emplace("Measurement.Terminal", &get_Measurement_Terminal); } void Measurement::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.phases", &get_Measurement_phases); - get_map.emplace("cim:Measurement.unitMultiplier", &get_Measurement_unitMultiplier); - get_map.emplace("cim:Measurement.unitSymbol", &get_Measurement_unitSymbol); + get_map.emplace("Measurement.phases", &get_Measurement_phases); + get_map.emplace("Measurement.unitMultiplier", &get_Measurement_unitMultiplier); + get_map.emplace("Measurement.unitSymbol", &get_Measurement_unitSymbol); +} + +bool Measurement::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Measurement" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Measurement::declare() @@ -275,6 +313,14 @@ const BaseClassDefiner Measurement::declare() return BaseClassDefiner(Measurement::addConstructToMap, Measurement::addPrimitiveAssignFnsToMap, Measurement::addClassAssignFnsToMap, Measurement::debugName); } +std::map Measurement::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Measurement_factory() diff --git a/CGMES_2.4.13_18DEC2013/Measurement.hpp b/CGMES_2.4.13_18DEC2013/Measurement.hpp index 60b15fbaf..614134b99 100644 --- a/CGMES_2.4.13_18DEC2013/Measurement.hpp +++ b/CGMES_2.4.13_18DEC2013/Measurement.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PhaseCode.hpp" #include "String.hpp" #include "UnitMultiplier.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Measurement_factory(); diff --git a/CGMES_2.4.13_18DEC2013/MeasurementValue.cpp b/CGMES_2.4.13_18DEC2013/MeasurementValue.cpp index ed6bb5624..ad0d43310 100644 --- a/CGMES_2.4.13_18DEC2013/MeasurementValue.cpp +++ b/CGMES_2.4.13_18DEC2013/MeasurementValue.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValue.MeasurementValueQuality", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.MeasurementValueSource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.sensorAccuracy", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.timeStamp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValue::MeasurementValue() : MeasurementValueQuality(nullptr), MeasurementValueSource(nullptr) {} MeasurementValue::~MeasurementValue() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValue::getClassNamespaceUrl() const { - { "cim:MeasurementValue.MeasurementValueQuality", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.MeasurementValueSource", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.sensorAccuracy", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.timeStamp", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValue::getPossibleProfilesForClass() const +const std::string& MeasurementValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValue::getPossibleProfilesForAttributes() const +const std::list& MeasurementValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValueQuality_MeasurementValue(BaseClass*, BaseClass*); @@ -159,32 +191,32 @@ const char* MeasurementValue::debugString() const void MeasurementValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValue", &MeasurementValue_factory); + factory_map.emplace("MeasurementValue", &MeasurementValue_factory); } void MeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValue.sensorAccuracy", &assign_MeasurementValue_sensorAccuracy); - assign_map.emplace("cim:MeasurementValue.timeStamp", &assign_MeasurementValue_timeStamp); + assign_map.emplace("MeasurementValue.sensorAccuracy", &assign_MeasurementValue_sensorAccuracy); + assign_map.emplace("MeasurementValue.timeStamp", &assign_MeasurementValue_timeStamp); } void MeasurementValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValue.MeasurementValueQuality", &assign_MeasurementValue_MeasurementValueQuality); - assign_map.emplace("cim:MeasurementValue.MeasurementValueSource", &assign_MeasurementValue_MeasurementValueSource); + assign_map.emplace("MeasurementValue.MeasurementValueQuality", &assign_MeasurementValue_MeasurementValueQuality); + assign_map.emplace("MeasurementValue.MeasurementValueSource", &assign_MeasurementValue_MeasurementValueSource); } void MeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValue.sensorAccuracy", &get_MeasurementValue_sensorAccuracy); - get_map.emplace("cim:MeasurementValue.timeStamp", &get_MeasurementValue_timeStamp); + get_map.emplace("MeasurementValue.sensorAccuracy", &get_MeasurementValue_sensorAccuracy); + get_map.emplace("MeasurementValue.timeStamp", &get_MeasurementValue_timeStamp); } void MeasurementValue::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValue.MeasurementValueSource", &get_MeasurementValue_MeasurementValueSource); + get_map.emplace("MeasurementValue.MeasurementValueSource", &get_MeasurementValue_MeasurementValueSource); } void MeasurementValue::addEnumGetFnsToMap(std::map& get_map) const @@ -192,11 +224,25 @@ void MeasurementValue::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool MeasurementValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MeasurementValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValue::declare() { return BaseClassDefiner(MeasurementValue::addConstructToMap, MeasurementValue::addPrimitiveAssignFnsToMap, MeasurementValue::addClassAssignFnsToMap, MeasurementValue::debugName); } +std::map MeasurementValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValue_factory() diff --git a/CGMES_2.4.13_18DEC2013/MeasurementValue.hpp b/CGMES_2.4.13_18DEC2013/MeasurementValue.hpp index 5e4745ae7..78ffcfb9b 100644 --- a/CGMES_2.4.13_18DEC2013/MeasurementValue.hpp +++ b/CGMES_2.4.13_18DEC2013/MeasurementValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "PerCent.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValue_factory(); diff --git a/CGMES_2.4.13_18DEC2013/MeasurementValueQuality.cpp b/CGMES_2.4.13_18DEC2013/MeasurementValueQuality.cpp index 2137766e7..fbb0d686d 100644 --- a/CGMES_2.4.13_18DEC2013/MeasurementValueQuality.cpp +++ b/CGMES_2.4.13_18DEC2013/MeasurementValueQuality.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValueQuality(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValueQuality.MeasurementValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValueQuality::MeasurementValueQuality() : MeasurementValue(nullptr) {} MeasurementValueQuality::~MeasurementValueQuality() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValueQuality::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValueQuality::getClassNamespaceUrl() const { - { "cim:MeasurementValueQuality.MeasurementValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValueQuality::getPossibleProfilesForClass() const +const std::string& MeasurementValueQuality::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValueQuality::getPossibleProfilesForAttributes() const +const std::list& MeasurementValueQuality::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Quality61850::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValueQuality::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValueQuality::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValueQuality::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValue_MeasurementValueQuality(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* MeasurementValueQuality::debugString() const void MeasurementValueQuality::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValueQuality", &MeasurementValueQuality_factory); + factory_map.emplace("MeasurementValueQuality", &MeasurementValueQuality_factory); } void MeasurementValueQuality::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void MeasurementValueQuality::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValueQuality.MeasurementValue", &assign_MeasurementValueQuality_MeasurementValue); + assign_map.emplace("MeasurementValueQuality.MeasurementValue", &assign_MeasurementValueQuality_MeasurementValue); } void MeasurementValueQuality::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void MeasurementValueQuality::addPrimitiveGetFnsToMap(std::map& get_map) const { Quality61850::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValueQuality.MeasurementValue", &get_MeasurementValueQuality_MeasurementValue); + get_map.emplace("MeasurementValueQuality.MeasurementValue", &get_MeasurementValueQuality_MeasurementValue); } void MeasurementValueQuality::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void MeasurementValueQuality::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValueQuality::declare() { return BaseClassDefiner(MeasurementValueQuality::addConstructToMap, MeasurementValueQuality::addPrimitiveAssignFnsToMap, MeasurementValueQuality::addClassAssignFnsToMap, MeasurementValueQuality::debugName); } +std::map MeasurementValueQuality::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Quality61850::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValueQuality_factory() diff --git a/CGMES_2.4.13_18DEC2013/MeasurementValueQuality.hpp b/CGMES_2.4.13_18DEC2013/MeasurementValueQuality.hpp index bc0991186..c182f0a94 100644 --- a/CGMES_2.4.13_18DEC2013/MeasurementValueQuality.hpp +++ b/CGMES_2.4.13_18DEC2013/MeasurementValueQuality.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Quality61850.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValueQuality_factory(); diff --git a/CGMES_2.4.13_18DEC2013/MeasurementValueSource.cpp b/CGMES_2.4.13_18DEC2013/MeasurementValueSource.cpp index b276344bf..caf90c82a 100644 --- a/CGMES_2.4.13_18DEC2013/MeasurementValueSource.cpp +++ b/CGMES_2.4.13_18DEC2013/MeasurementValueSource.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValueSource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValueSource.MeasurementValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValueSource::MeasurementValueSource() {} MeasurementValueSource::~MeasurementValueSource() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValueSource::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValueSource::getClassNamespaceUrl() const { - { "cim:MeasurementValueSource.MeasurementValues", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValueSource::getPossibleProfilesForClass() const +const std::string& MeasurementValueSource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValueSource::getPossibleProfilesForAttributes() const +const std::list& MeasurementValueSource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValueSource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValueSource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValueSource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValue_MeasurementValueSource(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* MeasurementValueSource::debugString() const void MeasurementValueSource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValueSource", &MeasurementValueSource_factory); + factory_map.emplace("MeasurementValueSource", &MeasurementValueSource_factory); } void MeasurementValueSource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void MeasurementValueSource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValueSource.MeasurementValues", &assign_MeasurementValueSource_MeasurementValues); + assign_map.emplace("MeasurementValueSource.MeasurementValues", &assign_MeasurementValueSource_MeasurementValues); } void MeasurementValueSource::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void MeasurementValueSource::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValueSource::declare() { return BaseClassDefiner(MeasurementValueSource::addConstructToMap, MeasurementValueSource::addPrimitiveAssignFnsToMap, MeasurementValueSource::addClassAssignFnsToMap, MeasurementValueSource::debugName); } +std::map MeasurementValueSource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValueSource_factory() diff --git a/CGMES_2.4.13_18DEC2013/MeasurementValueSource.hpp b/CGMES_2.4.13_18DEC2013/MeasurementValueSource.hpp index 3411d326b..c61ca176e 100644 --- a/CGMES_2.4.13_18DEC2013/MeasurementValueSource.hpp +++ b/CGMES_2.4.13_18DEC2013/MeasurementValueSource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValueSource_factory(); diff --git a/CGMES_2.4.13_18DEC2013/MechLoad1.cpp b/CGMES_2.4.13_18DEC2013/MechLoad1.cpp index 7016b3c19..b043b7472 100644 --- a/CGMES_2.4.13_18DEC2013/MechLoad1.cpp +++ b/CGMES_2.4.13_18DEC2013/MechLoad1.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechLoad1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechLoad1.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.e", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechLoad1::MechLoad1() {} MechLoad1::~MechLoad1() {} -static const std::list PossibleProfilesForClass = +const std::list& MechLoad1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechLoad1::getClassNamespaceUrl() const { - { "cim:MechLoad1.a", { CGMESProfile::DY, } }, - { "cim:MechLoad1.b", { CGMESProfile::DY, } }, - { "cim:MechLoad1.d", { CGMESProfile::DY, } }, - { "cim:MechLoad1.e", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechLoad1::getPossibleProfilesForClass() const +const std::string& MechLoad1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechLoad1::getPossibleProfilesForAttributes() const +const std::list& MechLoad1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MechanicalLoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechLoad1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechLoad1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechLoad1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MechLoad1_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* MechLoad1::debugString() const void MechLoad1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechLoad1", &MechLoad1_factory); + factory_map.emplace("MechLoad1", &MechLoad1_factory); } void MechLoad1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechLoad1.a", &assign_MechLoad1_a); - assign_map.emplace("cim:MechLoad1.b", &assign_MechLoad1_b); - assign_map.emplace("cim:MechLoad1.d", &assign_MechLoad1_d); - assign_map.emplace("cim:MechLoad1.e", &assign_MechLoad1_e); + assign_map.emplace("MechLoad1.a", &assign_MechLoad1_a); + assign_map.emplace("MechLoad1.b", &assign_MechLoad1_b); + assign_map.emplace("MechLoad1.d", &assign_MechLoad1_d); + assign_map.emplace("MechLoad1.e", &assign_MechLoad1_e); } void MechLoad1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void MechLoad1::addClassAssignFnsToMap(std::unordered_map& get_map) const { MechanicalLoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MechLoad1.a", &get_MechLoad1_a); - get_map.emplace("cim:MechLoad1.b", &get_MechLoad1_b); - get_map.emplace("cim:MechLoad1.d", &get_MechLoad1_d); - get_map.emplace("cim:MechLoad1.e", &get_MechLoad1_e); + get_map.emplace("MechLoad1.a", &get_MechLoad1_a); + get_map.emplace("MechLoad1.b", &get_MechLoad1_b); + get_map.emplace("MechLoad1.d", &get_MechLoad1_d); + get_map.emplace("MechLoad1.e", &get_MechLoad1_e); } void MechLoad1::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void MechLoad1::addEnumGetFnsToMap(std::map& get_map) MechanicalLoadDynamics::addEnumGetFnsToMap(get_map); } +bool MechLoad1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MechLoad1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MechLoad1::declare() { return BaseClassDefiner(MechLoad1::addConstructToMap, MechLoad1::addPrimitiveAssignFnsToMap, MechLoad1::addClassAssignFnsToMap, MechLoad1::debugName); } +std::map MechLoad1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MechanicalLoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechLoad1_factory() diff --git a/CGMES_2.4.13_18DEC2013/MechLoad1.hpp b/CGMES_2.4.13_18DEC2013/MechLoad1.hpp index 9b16f17c2..96d802554 100644 --- a/CGMES_2.4.13_18DEC2013/MechLoad1.hpp +++ b/CGMES_2.4.13_18DEC2013/MechLoad1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MechanicalLoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -40,8 +41,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -49,7 +57,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechLoad1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/MechanicalLoadDynamics.cpp b/CGMES_2.4.13_18DEC2013/MechanicalLoadDynamics.cpp index dc44cac2d..34eec6f9d 100644 --- a/CGMES_2.4.13_18DEC2013/MechanicalLoadDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/MechanicalLoadDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechanicalLoadDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechanicalLoadDynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechanicalLoadDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechanicalLoadDynamics::MechanicalLoadDynamics() : AsynchronousMachineDynamics(nullptr), SynchronousMachineDynamics(nullptr) {} MechanicalLoadDynamics::~MechanicalLoadDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& MechanicalLoadDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechanicalLoadDynamics::getClassNamespaceUrl() const { - { "cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:MechanicalLoadDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechanicalLoadDynamics::getPossibleProfilesForClass() const +const std::string& MechanicalLoadDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechanicalLoadDynamics::getPossibleProfilesForAttributes() const +const std::list& MechanicalLoadDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechanicalLoadDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechanicalLoadDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechanicalLoadDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_MechanicalLoadDynamics(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* MechanicalLoadDynamics::debugString() const void MechanicalLoadDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechanicalLoadDynamics", &MechanicalLoadDynamics_factory); + factory_map.emplace("MechanicalLoadDynamics", &MechanicalLoadDynamics_factory); } void MechanicalLoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void MechanicalLoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", &assign_MechanicalLoadDynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:MechanicalLoadDynamics.SynchronousMachineDynamics", &assign_MechanicalLoadDynamics_SynchronousMachineDynamics); + assign_map.emplace("MechanicalLoadDynamics.AsynchronousMachineDynamics", &assign_MechanicalLoadDynamics_AsynchronousMachineDynamics); + assign_map.emplace("MechanicalLoadDynamics.SynchronousMachineDynamics", &assign_MechanicalLoadDynamics_SynchronousMachineDynamics); } void MechanicalLoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void MechanicalLoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", &get_MechanicalLoadDynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:MechanicalLoadDynamics.SynchronousMachineDynamics", &get_MechanicalLoadDynamics_SynchronousMachineDynamics); + get_map.emplace("MechanicalLoadDynamics.AsynchronousMachineDynamics", &get_MechanicalLoadDynamics_AsynchronousMachineDynamics); + get_map.emplace("MechanicalLoadDynamics.SynchronousMachineDynamics", &get_MechanicalLoadDynamics_SynchronousMachineDynamics); } void MechanicalLoadDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void MechanicalLoadDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MechanicalLoadDynamics::declare() { return BaseClassDefiner(MechanicalLoadDynamics::addConstructToMap, MechanicalLoadDynamics::addPrimitiveAssignFnsToMap, MechanicalLoadDynamics::addClassAssignFnsToMap, MechanicalLoadDynamics::debugName); } +std::map MechanicalLoadDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechanicalLoadDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/MechanicalLoadDynamics.hpp b/CGMES_2.4.13_18DEC2013/MechanicalLoadDynamics.hpp index 57b474f87..e7b0679fc 100644 --- a/CGMES_2.4.13_18DEC2013/MechanicalLoadDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/MechanicalLoadDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechanicalLoadDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/MechanicalLoadUserDefined.cpp b/CGMES_2.4.13_18DEC2013/MechanicalLoadUserDefined.cpp index 0fcdb6dee..17264b942 100644 --- a/CGMES_2.4.13_18DEC2013/MechanicalLoadUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/MechanicalLoadUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechanicalLoadUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechanicalLoadUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechanicalLoadUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechanicalLoadUserDefined::MechanicalLoadUserDefined() {} MechanicalLoadUserDefined::~MechanicalLoadUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& MechanicalLoadUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechanicalLoadUserDefined::getClassNamespaceUrl() const { - { "cim:MechanicalLoadUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:MechanicalLoadUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechanicalLoadUserDefined::getPossibleProfilesForClass() const +const std::string& MechanicalLoadUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechanicalLoadUserDefined::getPossibleProfilesForAttributes() const +const std::list& MechanicalLoadUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MechanicalLoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechanicalLoadUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechanicalLoadUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechanicalLoadUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* MechanicalLoadUserDefined::debugString() const void MechanicalLoadUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechanicalLoadUserDefined", &MechanicalLoadUserDefined_factory); + factory_map.emplace("MechanicalLoadUserDefined", &MechanicalLoadUserDefined_factory); } void MechanicalLoadUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadUserDefined.proprietary", &assign_MechanicalLoadUserDefined_proprietary); + assign_map.emplace("MechanicalLoadUserDefined.proprietary", &assign_MechanicalLoadUserDefined_proprietary); } void MechanicalLoadUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadUserDefined.ProprietaryParameterDynamics", &assign_MechanicalLoadUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("MechanicalLoadUserDefined.ProprietaryParameterDynamics", &assign_MechanicalLoadUserDefined_ProprietaryParameterDynamics); } void MechanicalLoadUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { MechanicalLoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MechanicalLoadUserDefined.proprietary", &get_MechanicalLoadUserDefined_proprietary); + get_map.emplace("MechanicalLoadUserDefined.proprietary", &get_MechanicalLoadUserDefined_proprietary); } void MechanicalLoadUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void MechanicalLoadUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MechanicalLoadUserDefined::declare() { return BaseClassDefiner(MechanicalLoadUserDefined::addConstructToMap, MechanicalLoadUserDefined::addPrimitiveAssignFnsToMap, MechanicalLoadUserDefined::addClassAssignFnsToMap, MechanicalLoadUserDefined::debugName); } +std::map MechanicalLoadUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MechanicalLoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechanicalLoadUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/MechanicalLoadUserDefined.hpp b/CGMES_2.4.13_18DEC2013/MechanicalLoadUserDefined.hpp index 474c01c3d..aa86fd0a6 100644 --- a/CGMES_2.4.13_18DEC2013/MechanicalLoadUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/MechanicalLoadUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MechanicalLoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechanicalLoadUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/MutualCoupling.cpp b/CGMES_2.4.13_18DEC2013/MutualCoupling.cpp index 0b97f5f70..1a199f9e4 100644 --- a/CGMES_2.4.13_18DEC2013/MutualCoupling.cpp +++ b/CGMES_2.4.13_18DEC2013/MutualCoupling.cpp @@ -12,41 +12,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MutualCoupling(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MutualCoupling.First_Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.Second_Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.b0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance22", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.g0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MutualCoupling::MutualCoupling() : First_Terminal(nullptr), Second_Terminal(nullptr) {} MutualCoupling::~MutualCoupling() {} -static const std::list PossibleProfilesForClass = +const std::list& MutualCoupling::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MutualCoupling::getClassNamespaceUrl() const { - { "cim:MutualCoupling.First_Terminal", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.Second_Terminal", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.b0ch", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance11", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance12", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance21", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance22", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.g0ch", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.r0", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MutualCoupling::getPossibleProfilesForClass() const +const std::string& MutualCoupling::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MutualCoupling::getPossibleProfilesForAttributes() const +const std::list& MutualCoupling::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MutualCoupling::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MutualCoupling::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MutualCoupling::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_HasFirstMutualCoupling(BaseClass*, BaseClass*); @@ -351,45 +383,45 @@ const char* MutualCoupling::debugString() const void MutualCoupling::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MutualCoupling", &MutualCoupling_factory); + factory_map.emplace("MutualCoupling", &MutualCoupling_factory); } void MutualCoupling::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MutualCoupling.b0ch", &assign_MutualCoupling_b0ch); - assign_map.emplace("cim:MutualCoupling.distance11", &assign_MutualCoupling_distance11); - assign_map.emplace("cim:MutualCoupling.distance12", &assign_MutualCoupling_distance12); - assign_map.emplace("cim:MutualCoupling.distance21", &assign_MutualCoupling_distance21); - assign_map.emplace("cim:MutualCoupling.distance22", &assign_MutualCoupling_distance22); - assign_map.emplace("cim:MutualCoupling.g0ch", &assign_MutualCoupling_g0ch); - assign_map.emplace("cim:MutualCoupling.r0", &assign_MutualCoupling_r0); - assign_map.emplace("cim:MutualCoupling.x0", &assign_MutualCoupling_x0); + assign_map.emplace("MutualCoupling.b0ch", &assign_MutualCoupling_b0ch); + assign_map.emplace("MutualCoupling.distance11", &assign_MutualCoupling_distance11); + assign_map.emplace("MutualCoupling.distance12", &assign_MutualCoupling_distance12); + assign_map.emplace("MutualCoupling.distance21", &assign_MutualCoupling_distance21); + assign_map.emplace("MutualCoupling.distance22", &assign_MutualCoupling_distance22); + assign_map.emplace("MutualCoupling.g0ch", &assign_MutualCoupling_g0ch); + assign_map.emplace("MutualCoupling.r0", &assign_MutualCoupling_r0); + assign_map.emplace("MutualCoupling.x0", &assign_MutualCoupling_x0); } void MutualCoupling::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MutualCoupling.First_Terminal", &assign_MutualCoupling_First_Terminal); - assign_map.emplace("cim:MutualCoupling.Second_Terminal", &assign_MutualCoupling_Second_Terminal); + assign_map.emplace("MutualCoupling.First_Terminal", &assign_MutualCoupling_First_Terminal); + assign_map.emplace("MutualCoupling.Second_Terminal", &assign_MutualCoupling_Second_Terminal); } void MutualCoupling::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MutualCoupling.b0ch", &get_MutualCoupling_b0ch); - get_map.emplace("cim:MutualCoupling.distance11", &get_MutualCoupling_distance11); - get_map.emplace("cim:MutualCoupling.distance12", &get_MutualCoupling_distance12); - get_map.emplace("cim:MutualCoupling.distance21", &get_MutualCoupling_distance21); - get_map.emplace("cim:MutualCoupling.distance22", &get_MutualCoupling_distance22); - get_map.emplace("cim:MutualCoupling.g0ch", &get_MutualCoupling_g0ch); - get_map.emplace("cim:MutualCoupling.r0", &get_MutualCoupling_r0); - get_map.emplace("cim:MutualCoupling.x0", &get_MutualCoupling_x0); + get_map.emplace("MutualCoupling.b0ch", &get_MutualCoupling_b0ch); + get_map.emplace("MutualCoupling.distance11", &get_MutualCoupling_distance11); + get_map.emplace("MutualCoupling.distance12", &get_MutualCoupling_distance12); + get_map.emplace("MutualCoupling.distance21", &get_MutualCoupling_distance21); + get_map.emplace("MutualCoupling.distance22", &get_MutualCoupling_distance22); + get_map.emplace("MutualCoupling.g0ch", &get_MutualCoupling_g0ch); + get_map.emplace("MutualCoupling.r0", &get_MutualCoupling_r0); + get_map.emplace("MutualCoupling.x0", &get_MutualCoupling_x0); } void MutualCoupling::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MutualCoupling.First_Terminal", &get_MutualCoupling_First_Terminal); - get_map.emplace("cim:MutualCoupling.Second_Terminal", &get_MutualCoupling_Second_Terminal); + get_map.emplace("MutualCoupling.First_Terminal", &get_MutualCoupling_First_Terminal); + get_map.emplace("MutualCoupling.Second_Terminal", &get_MutualCoupling_Second_Terminal); } void MutualCoupling::addEnumGetFnsToMap(std::map& get_map) const @@ -397,11 +429,25 @@ void MutualCoupling::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool MutualCoupling::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MutualCoupling" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MutualCoupling::declare() { return BaseClassDefiner(MutualCoupling::addConstructToMap, MutualCoupling::addPrimitiveAssignFnsToMap, MutualCoupling::addClassAssignFnsToMap, MutualCoupling::debugName); } +std::map MutualCoupling::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MutualCoupling_factory() diff --git a/CGMES_2.4.13_18DEC2013/MutualCoupling.hpp b/CGMES_2.4.13_18DEC2013/MutualCoupling.hpp index 00b130bed..62296a486 100644 --- a/CGMES_2.4.13_18DEC2013/MutualCoupling.hpp +++ b/CGMES_2.4.13_18DEC2013/MutualCoupling.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Length.hpp" #include "Reactance.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MutualCoupling_factory(); diff --git a/CGMES_2.4.13_18DEC2013/NonConformLoad.cpp b/CGMES_2.4.13_18DEC2013/NonConformLoad.cpp index 7d66953ed..a7041f789 100644 --- a/CGMES_2.4.13_18DEC2013/NonConformLoad.cpp +++ b/CGMES_2.4.13_18DEC2013/NonConformLoad.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoad(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoad.LoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoad::NonConformLoad() : LoadGroup(nullptr) {} NonConformLoad::~NonConformLoad() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoad::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoad::getClassNamespaceUrl() const { - { "cim:NonConformLoad.LoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoad::getPossibleProfilesForClass() const +const std::string& NonConformLoad::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoad::getPossibleProfilesForAttributes() const +const std::list& NonConformLoad::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoad::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoad::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoad::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoadGroup_EnergyConsumers(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* NonConformLoad::debugString() const void NonConformLoad::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoad", &NonConformLoad_factory); + factory_map.emplace("NonConformLoad", &NonConformLoad_factory); } void NonConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void NonConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoad.LoadGroup", &assign_NonConformLoad_LoadGroup); + assign_map.emplace("NonConformLoad.LoadGroup", &assign_NonConformLoad_LoadGroup); } void NonConformLoad::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void NonConformLoad::addPrimitiveGetFnsToMap(std::map void NonConformLoad::addClassGetFnsToMap(std::map& get_map) const { EnergyConsumer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonConformLoad.LoadGroup", &get_NonConformLoad_LoadGroup); + get_map.emplace("NonConformLoad.LoadGroup", &get_NonConformLoad_LoadGroup); } void NonConformLoad::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void NonConformLoad::addEnumGetFnsToMap(std::map& get EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool NonConformLoad::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "NonConformLoad" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoad::declare() { return BaseClassDefiner(NonConformLoad::addConstructToMap, NonConformLoad::addPrimitiveAssignFnsToMap, NonConformLoad::addClassAssignFnsToMap, NonConformLoad::debugName); } +std::map NonConformLoad::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoad_factory() diff --git a/CGMES_2.4.13_18DEC2013/NonConformLoad.hpp b/CGMES_2.4.13_18DEC2013/NonConformLoad.hpp index d30929052..b198682bc 100644 --- a/CGMES_2.4.13_18DEC2013/NonConformLoad.hpp +++ b/CGMES_2.4.13_18DEC2013/NonConformLoad.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoad_factory(); diff --git a/CGMES_2.4.13_18DEC2013/NonConformLoadGroup.cpp b/CGMES_2.4.13_18DEC2013/NonConformLoadGroup.cpp index 0ffa2111f..1c08e2f93 100644 --- a/CGMES_2.4.13_18DEC2013/NonConformLoadGroup.cpp +++ b/CGMES_2.4.13_18DEC2013/NonConformLoadGroup.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoadGroup.EnergyConsumers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonConformLoadGroup.NonConformLoadSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoadGroup::NonConformLoadGroup() {} NonConformLoadGroup::~NonConformLoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoadGroup::getClassNamespaceUrl() const { - { "cim:NonConformLoadGroup.EnergyConsumers", { CGMESProfile::EQ, } }, - { "cim:NonConformLoadGroup.NonConformLoadSchedules", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoadGroup::getPossibleProfilesForClass() const +const std::string& NonConformLoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoadGroup::getPossibleProfilesForAttributes() const +const std::list& NonConformLoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadGroup::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoad_LoadGroup(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* NonConformLoadGroup::debugString() const void NonConformLoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoadGroup", &NonConformLoadGroup_factory); + factory_map.emplace("NonConformLoadGroup", &NonConformLoadGroup_factory); } void NonConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void NonConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoadGroup.EnergyConsumers", &assign_NonConformLoadGroup_EnergyConsumers); - assign_map.emplace("cim:NonConformLoadGroup.NonConformLoadSchedules", &assign_NonConformLoadGroup_NonConformLoadSchedules); + assign_map.emplace("NonConformLoadGroup.EnergyConsumers", &assign_NonConformLoadGroup_EnergyConsumers); + assign_map.emplace("NonConformLoadGroup.NonConformLoadSchedules", &assign_NonConformLoadGroup_NonConformLoadSchedules); } void NonConformLoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void NonConformLoadGroup::addEnumGetFnsToMap(std::map LoadGroup::addEnumGetFnsToMap(get_map); } +bool NonConformLoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "NonConformLoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoadGroup::declare() { return BaseClassDefiner(NonConformLoadGroup::addConstructToMap, NonConformLoadGroup::addPrimitiveAssignFnsToMap, NonConformLoadGroup::addClassAssignFnsToMap, NonConformLoadGroup::debugName); } +std::map NonConformLoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadGroup::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoadGroup_factory() diff --git a/CGMES_2.4.13_18DEC2013/NonConformLoadGroup.hpp b/CGMES_2.4.13_18DEC2013/NonConformLoadGroup.hpp index 928188af7..78f437d42 100644 --- a/CGMES_2.4.13_18DEC2013/NonConformLoadGroup.hpp +++ b/CGMES_2.4.13_18DEC2013/NonConformLoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadGroup.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoadGroup_factory(); diff --git a/CGMES_2.4.13_18DEC2013/NonConformLoadSchedule.cpp b/CGMES_2.4.13_18DEC2013/NonConformLoadSchedule.cpp index f4a6a8203..3da2bba29 100644 --- a/CGMES_2.4.13_18DEC2013/NonConformLoadSchedule.cpp +++ b/CGMES_2.4.13_18DEC2013/NonConformLoadSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoadSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoadSchedule.NonConformLoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoadSchedule::NonConformLoadSchedule() : NonConformLoadGroup(nullptr) {} NonConformLoadSchedule::~NonConformLoadSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoadSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoadSchedule::getClassNamespaceUrl() const { - { "cim:NonConformLoadSchedule.NonConformLoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoadSchedule::getPossibleProfilesForClass() const +const std::string& NonConformLoadSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoadSchedule::getPossibleProfilesForAttributes() const +const std::list& NonConformLoadSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoadSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoadSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoadSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoadGroup_NonConformLoadSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* NonConformLoadSchedule::debugString() const void NonConformLoadSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoadSchedule", &NonConformLoadSchedule_factory); + factory_map.emplace("NonConformLoadSchedule", &NonConformLoadSchedule_factory); } void NonConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void NonConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoadSchedule.NonConformLoadGroup", &assign_NonConformLoadSchedule_NonConformLoadGroup); + assign_map.emplace("NonConformLoadSchedule.NonConformLoadGroup", &assign_NonConformLoadSchedule_NonConformLoadGroup); } void NonConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void NonConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonConformLoadSchedule.NonConformLoadGroup", &get_NonConformLoadSchedule_NonConformLoadGroup); + get_map.emplace("NonConformLoadSchedule.NonConformLoadGroup", &get_NonConformLoadSchedule_NonConformLoadGroup); } void NonConformLoadSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void NonConformLoadSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoadSchedule::declare() { return BaseClassDefiner(NonConformLoadSchedule::addConstructToMap, NonConformLoadSchedule::addPrimitiveAssignFnsToMap, NonConformLoadSchedule::addClassAssignFnsToMap, NonConformLoadSchedule::debugName); } +std::map NonConformLoadSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoadSchedule_factory() diff --git a/CGMES_2.4.13_18DEC2013/NonConformLoadSchedule.hpp b/CGMES_2.4.13_18DEC2013/NonConformLoadSchedule.hpp index c0ae51ebb..5400ec0f1 100644 --- a/CGMES_2.4.13_18DEC2013/NonConformLoadSchedule.hpp +++ b/CGMES_2.4.13_18DEC2013/NonConformLoadSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoadSchedule_factory(); diff --git a/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensator.cpp b/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensator.cpp index 5fd272895..02b5fb4dd 100644 --- a/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensator.cpp +++ b/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensator.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonlinearShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonlinearShuntCompensator::NonlinearShuntCompensator() {} NonlinearShuntCompensator::~NonlinearShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& NonlinearShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonlinearShuntCompensator::getClassNamespaceUrl() const { - { "cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonlinearShuntCompensator::getPossibleProfilesForClass() const +const std::string& NonlinearShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonlinearShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& NonlinearShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ShuntCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonlinearShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonlinearShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonlinearShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* NonlinearShuntCompensator::debugString() const void NonlinearShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonlinearShuntCompensator", &NonlinearShuntCompensator_factory); + factory_map.emplace("NonlinearShuntCompensator", &NonlinearShuntCompensator_factory); } void NonlinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void NonlinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", &assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints); + assign_map.emplace("NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", &assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints); } void NonlinearShuntCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void NonlinearShuntCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonlinearShuntCompensator::declare() { return BaseClassDefiner(NonlinearShuntCompensator::addConstructToMap, NonlinearShuntCompensator::addPrimitiveAssignFnsToMap, NonlinearShuntCompensator::addClassAssignFnsToMap, NonlinearShuntCompensator::debugName); } +std::map NonlinearShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ShuntCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonlinearShuntCompensator_factory() diff --git a/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensator.hpp b/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensator.hpp index c39f1cb1f..eeb89d1e2 100644 --- a/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensator.hpp +++ b/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ShuntCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonlinearShuntCompensator_factory(); diff --git a/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensatorPoint.cpp b/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensatorPoint.cpp index 39f049438..5acbc9bc6 100644 --- a/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensatorPoint.cpp +++ b/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensatorPoint.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonlinearShuntCompensatorPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.sectionNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonlinearShuntCompensatorPoint::NonlinearShuntCompensatorPoint() : NonlinearShuntCompensator(nullptr) {} NonlinearShuntCompensatorPoint::~NonlinearShuntCompensatorPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& NonlinearShuntCompensatorPoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonlinearShuntCompensatorPoint::getClassNamespaceUrl() const { - { "cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.b", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.b0", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.g", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.g0", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.sectionNumber", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonlinearShuntCompensatorPoint::getPossibleProfilesForClass() const +const std::string& NonlinearShuntCompensatorPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonlinearShuntCompensatorPoint::getPossibleProfilesForAttributes() const +const std::list& NonlinearShuntCompensatorPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonlinearShuntCompensatorPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonlinearShuntCompensatorPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonlinearShuntCompensatorPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints(BaseClass*, BaseClass*); @@ -229,37 +261,37 @@ const char* NonlinearShuntCompensatorPoint::debugString() const void NonlinearShuntCompensatorPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonlinearShuntCompensatorPoint", &NonlinearShuntCompensatorPoint_factory); + factory_map.emplace("NonlinearShuntCompensatorPoint", &NonlinearShuntCompensatorPoint_factory); } void NonlinearShuntCompensatorPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.b", &assign_NonlinearShuntCompensatorPoint_b); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.b0", &assign_NonlinearShuntCompensatorPoint_b0); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.g", &assign_NonlinearShuntCompensatorPoint_g); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.g0", &assign_NonlinearShuntCompensatorPoint_g0); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.sectionNumber", &assign_NonlinearShuntCompensatorPoint_sectionNumber); + assign_map.emplace("NonlinearShuntCompensatorPoint.b", &assign_NonlinearShuntCompensatorPoint_b); + assign_map.emplace("NonlinearShuntCompensatorPoint.b0", &assign_NonlinearShuntCompensatorPoint_b0); + assign_map.emplace("NonlinearShuntCompensatorPoint.g", &assign_NonlinearShuntCompensatorPoint_g); + assign_map.emplace("NonlinearShuntCompensatorPoint.g0", &assign_NonlinearShuntCompensatorPoint_g0); + assign_map.emplace("NonlinearShuntCompensatorPoint.sectionNumber", &assign_NonlinearShuntCompensatorPoint_sectionNumber); } void NonlinearShuntCompensatorPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); + assign_map.emplace("NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); } void NonlinearShuntCompensatorPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.b", &get_NonlinearShuntCompensatorPoint_b); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.b0", &get_NonlinearShuntCompensatorPoint_b0); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.g", &get_NonlinearShuntCompensatorPoint_g); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.g0", &get_NonlinearShuntCompensatorPoint_g0); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.sectionNumber", &get_NonlinearShuntCompensatorPoint_sectionNumber); + get_map.emplace("NonlinearShuntCompensatorPoint.b", &get_NonlinearShuntCompensatorPoint_b); + get_map.emplace("NonlinearShuntCompensatorPoint.b0", &get_NonlinearShuntCompensatorPoint_b0); + get_map.emplace("NonlinearShuntCompensatorPoint.g", &get_NonlinearShuntCompensatorPoint_g); + get_map.emplace("NonlinearShuntCompensatorPoint.g0", &get_NonlinearShuntCompensatorPoint_g0); + get_map.emplace("NonlinearShuntCompensatorPoint.sectionNumber", &get_NonlinearShuntCompensatorPoint_sectionNumber); } void NonlinearShuntCompensatorPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &get_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); + get_map.emplace("NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &get_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); } void NonlinearShuntCompensatorPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -267,11 +299,25 @@ void NonlinearShuntCompensatorPoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonlinearShuntCompensatorPoint::declare() { return BaseClassDefiner(NonlinearShuntCompensatorPoint::addConstructToMap, NonlinearShuntCompensatorPoint::addPrimitiveAssignFnsToMap, NonlinearShuntCompensatorPoint::addClassAssignFnsToMap, NonlinearShuntCompensatorPoint::debugName); } +std::map NonlinearShuntCompensatorPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonlinearShuntCompensatorPoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensatorPoint.hpp b/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensatorPoint.hpp index eaf108691..e0247aef0 100644 --- a/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensatorPoint.hpp +++ b/CGMES_2.4.13_18DEC2013/NonlinearShuntCompensatorPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Integer.hpp" #include "Susceptance.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonlinearShuntCompensatorPoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/NuclearGeneratingUnit.cpp b/CGMES_2.4.13_18DEC2013/NuclearGeneratingUnit.cpp index 3ce0ed75a..cbe9457e1 100644 --- a/CGMES_2.4.13_18DEC2013/NuclearGeneratingUnit.cpp +++ b/CGMES_2.4.13_18DEC2013/NuclearGeneratingUnit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NuclearGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + NuclearGeneratingUnit::NuclearGeneratingUnit() {} NuclearGeneratingUnit::~NuclearGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& NuclearGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NuclearGeneratingUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NuclearGeneratingUnit::getPossibleProfilesForClass() const +const std::string& NuclearGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NuclearGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& NuclearGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NuclearGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NuclearGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NuclearGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char NuclearGeneratingUnit::debugName[] = "NuclearGeneratingUnit"; @@ -47,7 +79,7 @@ const char* NuclearGeneratingUnit::debugString() const void NuclearGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NuclearGeneratingUnit", &NuclearGeneratingUnit_factory); + factory_map.emplace("NuclearGeneratingUnit", &NuclearGeneratingUnit_factory); } void NuclearGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void NuclearGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NuclearGeneratingUnit::declare() { return BaseClassDefiner(NuclearGeneratingUnit::addConstructToMap, NuclearGeneratingUnit::addPrimitiveAssignFnsToMap, NuclearGeneratingUnit::addClassAssignFnsToMap, NuclearGeneratingUnit::debugName); } +std::map NuclearGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NuclearGeneratingUnit_factory() diff --git a/CGMES_2.4.13_18DEC2013/NuclearGeneratingUnit.hpp b/CGMES_2.4.13_18DEC2013/NuclearGeneratingUnit.hpp index 81ab7cd3d..11f7283f8 100644 --- a/CGMES_2.4.13_18DEC2013/NuclearGeneratingUnit.hpp +++ b/CGMES_2.4.13_18DEC2013/NuclearGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NuclearGeneratingUnit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OperationalLimit.cpp b/CGMES_2.4.13_18DEC2013/OperationalLimit.cpp index 2f6e5f3f8..23beaf71c 100644 --- a/CGMES_2.4.13_18DEC2013/OperationalLimit.cpp +++ b/CGMES_2.4.13_18DEC2013/OperationalLimit.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimit.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimit.OperationalLimitType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimit::OperationalLimit() : OperationalLimitSet(nullptr), OperationalLimitType(nullptr) {} OperationalLimit::~OperationalLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimit::getClassNamespaceUrl() const { - { "cim:OperationalLimit.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:OperationalLimit.OperationalLimitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimit::getPossibleProfilesForClass() const +const std::string& OperationalLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimit::getPossibleProfilesForAttributes() const +const std::list& OperationalLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OperationalLimitSet_OperationalLimitValue(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* OperationalLimit::debugString() const void OperationalLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimit", &OperationalLimit_factory); + factory_map.emplace("OperationalLimit", &OperationalLimit_factory); } void OperationalLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void OperationalLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimit.OperationalLimitSet", &assign_OperationalLimit_OperationalLimitSet); - assign_map.emplace("cim:OperationalLimit.OperationalLimitType", &assign_OperationalLimit_OperationalLimitType); + assign_map.emplace("OperationalLimit.OperationalLimitSet", &assign_OperationalLimit_OperationalLimitSet); + assign_map.emplace("OperationalLimit.OperationalLimitType", &assign_OperationalLimit_OperationalLimitType); } void OperationalLimit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void OperationalLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimit.OperationalLimitSet", &get_OperationalLimit_OperationalLimitSet); - get_map.emplace("cim:OperationalLimit.OperationalLimitType", &get_OperationalLimit_OperationalLimitType); + get_map.emplace("OperationalLimit.OperationalLimitSet", &get_OperationalLimit_OperationalLimitSet); + get_map.emplace("OperationalLimit.OperationalLimitType", &get_OperationalLimit_OperationalLimitType); } void OperationalLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void OperationalLimit::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool OperationalLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OperationalLimit::declare() { return BaseClassDefiner(OperationalLimit::addConstructToMap, OperationalLimit::addPrimitiveAssignFnsToMap, OperationalLimit::addClassAssignFnsToMap, OperationalLimit::debugName); } +std::map OperationalLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimit_factory() diff --git a/CGMES_2.4.13_18DEC2013/OperationalLimit.hpp b/CGMES_2.4.13_18DEC2013/OperationalLimit.hpp index 1e167b812..c66fa91e2 100644 --- a/CGMES_2.4.13_18DEC2013/OperationalLimit.hpp +++ b/CGMES_2.4.13_18DEC2013/OperationalLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OperationalLimitSet.cpp b/CGMES_2.4.13_18DEC2013/OperationalLimitSet.cpp index b2d24e3d4..7a5c65292 100644 --- a/CGMES_2.4.13_18DEC2013/OperationalLimitSet.cpp +++ b/CGMES_2.4.13_18DEC2013/OperationalLimitSet.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimitSet.Equipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitSet.OperationalLimitValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitSet.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimitSet::OperationalLimitSet() : Equipment(nullptr), Terminal(nullptr) {} OperationalLimitSet::~OperationalLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimitSet::getClassNamespaceUrl() const { - { "cim:OperationalLimitSet.Equipment", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitSet.OperationalLimitValue", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitSet.Terminal", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimitSet::getPossibleProfilesForClass() const +const std::string& OperationalLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimitSet::getPossibleProfilesForAttributes() const +const std::list& OperationalLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Equipment_OperationalLimitSet(BaseClass*, BaseClass*); @@ -132,7 +164,7 @@ const char* OperationalLimitSet::debugString() const void OperationalLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimitSet", &OperationalLimitSet_factory); + factory_map.emplace("OperationalLimitSet", &OperationalLimitSet_factory); } void OperationalLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -141,9 +173,9 @@ void OperationalLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitSet.Equipment", &assign_OperationalLimitSet_Equipment); - assign_map.emplace("cim:OperationalLimitSet.OperationalLimitValue", &assign_OperationalLimitSet_OperationalLimitValue); - assign_map.emplace("cim:OperationalLimitSet.Terminal", &assign_OperationalLimitSet_Terminal); + assign_map.emplace("OperationalLimitSet.Equipment", &assign_OperationalLimitSet_Equipment); + assign_map.emplace("OperationalLimitSet.OperationalLimitValue", &assign_OperationalLimitSet_OperationalLimitValue); + assign_map.emplace("OperationalLimitSet.Terminal", &assign_OperationalLimitSet_Terminal); } void OperationalLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -154,8 +186,8 @@ void OperationalLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitSet.Equipment", &get_OperationalLimitSet_Equipment); - get_map.emplace("cim:OperationalLimitSet.Terminal", &get_OperationalLimitSet_Terminal); + get_map.emplace("OperationalLimitSet.Equipment", &get_OperationalLimitSet_Equipment); + get_map.emplace("OperationalLimitSet.Terminal", &get_OperationalLimitSet_Terminal); } void OperationalLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void OperationalLimitSet::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool OperationalLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OperationalLimitSet::declare() { return BaseClassDefiner(OperationalLimitSet::addConstructToMap, OperationalLimitSet::addPrimitiveAssignFnsToMap, OperationalLimitSet::addClassAssignFnsToMap, OperationalLimitSet::debugName); } +std::map OperationalLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimitSet_factory() diff --git a/CGMES_2.4.13_18DEC2013/OperationalLimitSet.hpp b/CGMES_2.4.13_18DEC2013/OperationalLimitSet.hpp index 97bb28d50..b559ccac8 100644 --- a/CGMES_2.4.13_18DEC2013/OperationalLimitSet.hpp +++ b/CGMES_2.4.13_18DEC2013/OperationalLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimitSet_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OperationalLimitType.cpp b/CGMES_2.4.13_18DEC2013/OperationalLimitType.cpp index d487e6145..08abe600d 100644 --- a/CGMES_2.4.13_18DEC2013/OperationalLimitType.cpp +++ b/CGMES_2.4.13_18DEC2013/OperationalLimitType.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimitType(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimitType.OperationalLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.acceptableDuration", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.direction", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.limitType", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimitType::OperationalLimitType() {} OperationalLimitType::~OperationalLimitType() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimitType::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimitType::getClassNamespaceUrl() const { - { "cim:OperationalLimitType.OperationalLimit", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.acceptableDuration", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.direction", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.limitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimitType::getPossibleProfilesForClass() const +const std::string& OperationalLimitType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimitType::getPossibleProfilesForAttributes() const +const std::list& OperationalLimitType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimitType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimitType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimitType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OperationalLimit_OperationalLimitType(BaseClass*, BaseClass*); @@ -156,25 +188,25 @@ const char* OperationalLimitType::debugString() const void OperationalLimitType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimitType", &OperationalLimitType_factory); + factory_map.emplace("OperationalLimitType", &OperationalLimitType_factory); } void OperationalLimitType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitType.acceptableDuration", &assign_OperationalLimitType_acceptableDuration); - assign_map.emplace("cim:OperationalLimitType.direction", &assign_OperationalLimitType_direction); - assign_map.emplace("cim:OperationalLimitType.limitType", &assign_OperationalLimitType_limitType); + assign_map.emplace("OperationalLimitType.acceptableDuration", &assign_OperationalLimitType_acceptableDuration); + assign_map.emplace("OperationalLimitType.direction", &assign_OperationalLimitType_direction); + assign_map.emplace("OperationalLimitType.limitType", &assign_OperationalLimitType_limitType); } void OperationalLimitType::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitType.OperationalLimit", &assign_OperationalLimitType_OperationalLimit); + assign_map.emplace("OperationalLimitType.OperationalLimit", &assign_OperationalLimitType_OperationalLimit); } void OperationalLimitType::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitType.acceptableDuration", &get_OperationalLimitType_acceptableDuration); + get_map.emplace("OperationalLimitType.acceptableDuration", &get_OperationalLimitType_acceptableDuration); } void OperationalLimitType::addClassGetFnsToMap(std::map& get_map) const @@ -185,8 +217,14 @@ void OperationalLimitType::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitType.direction", &get_OperationalLimitType_direction); - get_map.emplace("cim:OperationalLimitType.limitType", &get_OperationalLimitType_limitType); + get_map.emplace("OperationalLimitType.direction", &get_OperationalLimitType_direction); + get_map.emplace("OperationalLimitType.limitType", &get_OperationalLimitType_limitType); +} + +bool OperationalLimitType::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimitType" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner OperationalLimitType::declare() @@ -194,6 +232,14 @@ const BaseClassDefiner OperationalLimitType::declare() return BaseClassDefiner(OperationalLimitType::addConstructToMap, OperationalLimitType::addPrimitiveAssignFnsToMap, OperationalLimitType::addClassAssignFnsToMap, OperationalLimitType::debugName); } +std::map OperationalLimitType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimitType_factory() diff --git a/CGMES_2.4.13_18DEC2013/OperationalLimitType.hpp b/CGMES_2.4.13_18DEC2013/OperationalLimitType.hpp index 3b07eb447..0da7dd7f2 100644 --- a/CGMES_2.4.13_18DEC2013/OperationalLimitType.hpp +++ b/CGMES_2.4.13_18DEC2013/OperationalLimitType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "LimitTypeKind.hpp" #include "OperationalLimitDirectionKind.hpp" #include "Seconds.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimitType_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OverexcLim2.cpp b/CGMES_2.4.13_18DEC2013/OverexcLim2.cpp index 2e9009b9b..cc454e86a 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcLim2.cpp +++ b/CGMES_2.4.13_18DEC2013/OverexcLim2.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLim2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLim2.ifdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.koi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.voimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.voimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLim2::OverexcLim2() {} OverexcLim2::~OverexcLim2() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLim2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLim2::getClassNamespaceUrl() const { - { "cim:OverexcLim2.ifdlim", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.koi", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.voimax", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.voimin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLim2::getPossibleProfilesForClass() const +const std::string& OverexcLim2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLim2::getPossibleProfilesForAttributes() const +const std::list& OverexcLim2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLim2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLim2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLim2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLim2_ifdlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* OverexcLim2::debugString() const void OverexcLim2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLim2", &OverexcLim2_factory); + factory_map.emplace("OverexcLim2", &OverexcLim2_factory); } void OverexcLim2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLim2.ifdlim", &assign_OverexcLim2_ifdlim); - assign_map.emplace("cim:OverexcLim2.koi", &assign_OverexcLim2_koi); - assign_map.emplace("cim:OverexcLim2.voimax", &assign_OverexcLim2_voimax); - assign_map.emplace("cim:OverexcLim2.voimin", &assign_OverexcLim2_voimin); + assign_map.emplace("OverexcLim2.ifdlim", &assign_OverexcLim2_ifdlim); + assign_map.emplace("OverexcLim2.koi", &assign_OverexcLim2_koi); + assign_map.emplace("OverexcLim2.voimax", &assign_OverexcLim2_voimax); + assign_map.emplace("OverexcLim2.voimin", &assign_OverexcLim2_voimin); } void OverexcLim2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void OverexcLim2::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLim2.ifdlim", &get_OverexcLim2_ifdlim); - get_map.emplace("cim:OverexcLim2.koi", &get_OverexcLim2_koi); - get_map.emplace("cim:OverexcLim2.voimax", &get_OverexcLim2_voimax); - get_map.emplace("cim:OverexcLim2.voimin", &get_OverexcLim2_voimin); + get_map.emplace("OverexcLim2.ifdlim", &get_OverexcLim2_ifdlim); + get_map.emplace("OverexcLim2.koi", &get_OverexcLim2_koi); + get_map.emplace("OverexcLim2.voimax", &get_OverexcLim2_voimax); + get_map.emplace("OverexcLim2.voimin", &get_OverexcLim2_voimin); } void OverexcLim2::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void OverexcLim2::addEnumGetFnsToMap(std::map& get_ma OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLim2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLim2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLim2::declare() { return BaseClassDefiner(OverexcLim2::addConstructToMap, OverexcLim2::addPrimitiveAssignFnsToMap, OverexcLim2::addClassAssignFnsToMap, OverexcLim2::debugName); } +std::map OverexcLim2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLim2_factory() diff --git a/CGMES_2.4.13_18DEC2013/OverexcLim2.hpp b/CGMES_2.4.13_18DEC2013/OverexcLim2.hpp index 0278bfc7e..26c3617d8 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcLim2.hpp +++ b/CGMES_2.4.13_18DEC2013/OverexcLim2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -40,8 +41,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -49,7 +57,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLim2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OverexcLimIEEE.cpp b/CGMES_2.4.13_18DEC2013/OverexcLimIEEE.cpp index 0fb3e9857..a1ef0ebcb 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcLimIEEE.cpp +++ b/CGMES_2.4.13_18DEC2013/OverexcLimIEEE.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimIEEE(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimIEEE.hyst", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.ifdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.ifdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.itfpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.kcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.kramp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimIEEE::OverexcLimIEEE() {} OverexcLimIEEE::~OverexcLimIEEE() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimIEEE::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimIEEE::getClassNamespaceUrl() const { - { "cim:OverexcLimIEEE.hyst", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.ifdlim", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.ifdmax", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.itfpu", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.kcd", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.kramp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimIEEE::getPossibleProfilesForClass() const +const std::string& OverexcLimIEEE::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimIEEE::getPossibleProfilesForAttributes() const +const std::list& OverexcLimIEEE::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimIEEE::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimIEEE::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimIEEE::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimIEEE_hyst(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* OverexcLimIEEE::debugString() const void OverexcLimIEEE::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimIEEE", &OverexcLimIEEE_factory); + factory_map.emplace("OverexcLimIEEE", &OverexcLimIEEE_factory); } void OverexcLimIEEE::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimIEEE.hyst", &assign_OverexcLimIEEE_hyst); - assign_map.emplace("cim:OverexcLimIEEE.ifdlim", &assign_OverexcLimIEEE_ifdlim); - assign_map.emplace("cim:OverexcLimIEEE.ifdmax", &assign_OverexcLimIEEE_ifdmax); - assign_map.emplace("cim:OverexcLimIEEE.itfpu", &assign_OverexcLimIEEE_itfpu); - assign_map.emplace("cim:OverexcLimIEEE.kcd", &assign_OverexcLimIEEE_kcd); - assign_map.emplace("cim:OverexcLimIEEE.kramp", &assign_OverexcLimIEEE_kramp); + assign_map.emplace("OverexcLimIEEE.hyst", &assign_OverexcLimIEEE_hyst); + assign_map.emplace("OverexcLimIEEE.ifdlim", &assign_OverexcLimIEEE_ifdlim); + assign_map.emplace("OverexcLimIEEE.ifdmax", &assign_OverexcLimIEEE_ifdmax); + assign_map.emplace("OverexcLimIEEE.itfpu", &assign_OverexcLimIEEE_itfpu); + assign_map.emplace("OverexcLimIEEE.kcd", &assign_OverexcLimIEEE_kcd); + assign_map.emplace("OverexcLimIEEE.kramp", &assign_OverexcLimIEEE_kramp); } void OverexcLimIEEE::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void OverexcLimIEEE::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimIEEE.hyst", &get_OverexcLimIEEE_hyst); - get_map.emplace("cim:OverexcLimIEEE.ifdlim", &get_OverexcLimIEEE_ifdlim); - get_map.emplace("cim:OverexcLimIEEE.ifdmax", &get_OverexcLimIEEE_ifdmax); - get_map.emplace("cim:OverexcLimIEEE.itfpu", &get_OverexcLimIEEE_itfpu); - get_map.emplace("cim:OverexcLimIEEE.kcd", &get_OverexcLimIEEE_kcd); - get_map.emplace("cim:OverexcLimIEEE.kramp", &get_OverexcLimIEEE_kramp); + get_map.emplace("OverexcLimIEEE.hyst", &get_OverexcLimIEEE_hyst); + get_map.emplace("OverexcLimIEEE.ifdlim", &get_OverexcLimIEEE_ifdlim); + get_map.emplace("OverexcLimIEEE.ifdmax", &get_OverexcLimIEEE_ifdmax); + get_map.emplace("OverexcLimIEEE.itfpu", &get_OverexcLimIEEE_itfpu); + get_map.emplace("OverexcLimIEEE.kcd", &get_OverexcLimIEEE_kcd); + get_map.emplace("OverexcLimIEEE.kramp", &get_OverexcLimIEEE_kramp); } void OverexcLimIEEE::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void OverexcLimIEEE::addEnumGetFnsToMap(std::map& get OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimIEEE::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimIEEE" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimIEEE::declare() { return BaseClassDefiner(OverexcLimIEEE::addConstructToMap, OverexcLimIEEE::addPrimitiveAssignFnsToMap, OverexcLimIEEE::addClassAssignFnsToMap, OverexcLimIEEE::debugName); } +std::map OverexcLimIEEE::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimIEEE_factory() diff --git a/CGMES_2.4.13_18DEC2013/OverexcLimIEEE.hpp b/CGMES_2.4.13_18DEC2013/OverexcLimIEEE.hpp index de8e58374..79f15f03f 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcLimIEEE.hpp +++ b/CGMES_2.4.13_18DEC2013/OverexcLimIEEE.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimIEEE_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OverexcLimX1.cpp b/CGMES_2.4.13_18DEC2013/OverexcLimX1.cpp index c299b0d73..ca39a5f5b 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcLimX1.cpp +++ b/CGMES_2.4.13_18DEC2013/OverexcLimX1.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimX1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimX1.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efd3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efddes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efdrated", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.kmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.vlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimX1::OverexcLimX1() {} OverexcLimX1::~OverexcLimX1() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimX1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimX1::getClassNamespaceUrl() const { - { "cim:OverexcLimX1.efd1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efd2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efd3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efddes", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efdrated", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.kmx", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.vlow", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimX1::getPossibleProfilesForClass() const +const std::string& OverexcLimX1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimX1::getPossibleProfilesForAttributes() const +const std::list& OverexcLimX1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimX1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimX1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimX1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimX1_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* OverexcLimX1::debugString() const void OverexcLimX1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimX1", &OverexcLimX1_factory); + factory_map.emplace("OverexcLimX1", &OverexcLimX1_factory); } void OverexcLimX1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimX1.efd1", &assign_OverexcLimX1_efd1); - assign_map.emplace("cim:OverexcLimX1.efd2", &assign_OverexcLimX1_efd2); - assign_map.emplace("cim:OverexcLimX1.efd3", &assign_OverexcLimX1_efd3); - assign_map.emplace("cim:OverexcLimX1.efddes", &assign_OverexcLimX1_efddes); - assign_map.emplace("cim:OverexcLimX1.efdrated", &assign_OverexcLimX1_efdrated); - assign_map.emplace("cim:OverexcLimX1.kmx", &assign_OverexcLimX1_kmx); - assign_map.emplace("cim:OverexcLimX1.t1", &assign_OverexcLimX1_t1); - assign_map.emplace("cim:OverexcLimX1.t2", &assign_OverexcLimX1_t2); - assign_map.emplace("cim:OverexcLimX1.t3", &assign_OverexcLimX1_t3); - assign_map.emplace("cim:OverexcLimX1.vlow", &assign_OverexcLimX1_vlow); + assign_map.emplace("OverexcLimX1.efd1", &assign_OverexcLimX1_efd1); + assign_map.emplace("OverexcLimX1.efd2", &assign_OverexcLimX1_efd2); + assign_map.emplace("OverexcLimX1.efd3", &assign_OverexcLimX1_efd3); + assign_map.emplace("OverexcLimX1.efddes", &assign_OverexcLimX1_efddes); + assign_map.emplace("OverexcLimX1.efdrated", &assign_OverexcLimX1_efdrated); + assign_map.emplace("OverexcLimX1.kmx", &assign_OverexcLimX1_kmx); + assign_map.emplace("OverexcLimX1.t1", &assign_OverexcLimX1_t1); + assign_map.emplace("OverexcLimX1.t2", &assign_OverexcLimX1_t2); + assign_map.emplace("OverexcLimX1.t3", &assign_OverexcLimX1_t3); + assign_map.emplace("OverexcLimX1.vlow", &assign_OverexcLimX1_vlow); } void OverexcLimX1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void OverexcLimX1::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimX1.efd1", &get_OverexcLimX1_efd1); - get_map.emplace("cim:OverexcLimX1.efd2", &get_OverexcLimX1_efd2); - get_map.emplace("cim:OverexcLimX1.efd3", &get_OverexcLimX1_efd3); - get_map.emplace("cim:OverexcLimX1.efddes", &get_OverexcLimX1_efddes); - get_map.emplace("cim:OverexcLimX1.efdrated", &get_OverexcLimX1_efdrated); - get_map.emplace("cim:OverexcLimX1.kmx", &get_OverexcLimX1_kmx); - get_map.emplace("cim:OverexcLimX1.t1", &get_OverexcLimX1_t1); - get_map.emplace("cim:OverexcLimX1.t2", &get_OverexcLimX1_t2); - get_map.emplace("cim:OverexcLimX1.t3", &get_OverexcLimX1_t3); - get_map.emplace("cim:OverexcLimX1.vlow", &get_OverexcLimX1_vlow); + get_map.emplace("OverexcLimX1.efd1", &get_OverexcLimX1_efd1); + get_map.emplace("OverexcLimX1.efd2", &get_OverexcLimX1_efd2); + get_map.emplace("OverexcLimX1.efd3", &get_OverexcLimX1_efd3); + get_map.emplace("OverexcLimX1.efddes", &get_OverexcLimX1_efddes); + get_map.emplace("OverexcLimX1.efdrated", &get_OverexcLimX1_efdrated); + get_map.emplace("OverexcLimX1.kmx", &get_OverexcLimX1_kmx); + get_map.emplace("OverexcLimX1.t1", &get_OverexcLimX1_t1); + get_map.emplace("OverexcLimX1.t2", &get_OverexcLimX1_t2); + get_map.emplace("OverexcLimX1.t3", &get_OverexcLimX1_t3); + get_map.emplace("OverexcLimX1.vlow", &get_OverexcLimX1_vlow); } void OverexcLimX1::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void OverexcLimX1::addEnumGetFnsToMap(std::map& get_m OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimX1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimX1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimX1::declare() { return BaseClassDefiner(OverexcLimX1::addConstructToMap, OverexcLimX1::addPrimitiveAssignFnsToMap, OverexcLimX1::addClassAssignFnsToMap, OverexcLimX1::debugName); } +std::map OverexcLimX1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimX1_factory() diff --git a/CGMES_2.4.13_18DEC2013/OverexcLimX1.hpp b/CGMES_2.4.13_18DEC2013/OverexcLimX1.hpp index b0ac52a6c..9c0d3c1bd 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcLimX1.hpp +++ b/CGMES_2.4.13_18DEC2013/OverexcLimX1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimX1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OverexcLimX2.cpp b/CGMES_2.4.13_18DEC2013/OverexcLimX2.cpp index 0a0443e80..ec28d7143 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcLimX2.cpp +++ b/CGMES_2.4.13_18DEC2013/OverexcLimX2.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimX2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimX2.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efd3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efddes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efdrated", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.kmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.vlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimX2::OverexcLimX2() {} OverexcLimX2::~OverexcLimX2() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimX2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimX2::getClassNamespaceUrl() const { - { "cim:OverexcLimX2.efd1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efd2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efd3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efddes", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efdrated", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.kmx", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.m", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.vlow", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimX2::getPossibleProfilesForClass() const +const std::string& OverexcLimX2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimX2::getPossibleProfilesForAttributes() const +const std::list& OverexcLimX2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimX2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimX2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimX2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimX2_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* OverexcLimX2::debugString() const void OverexcLimX2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimX2", &OverexcLimX2_factory); + factory_map.emplace("OverexcLimX2", &OverexcLimX2_factory); } void OverexcLimX2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimX2.efd1", &assign_OverexcLimX2_efd1); - assign_map.emplace("cim:OverexcLimX2.efd2", &assign_OverexcLimX2_efd2); - assign_map.emplace("cim:OverexcLimX2.efd3", &assign_OverexcLimX2_efd3); - assign_map.emplace("cim:OverexcLimX2.efddes", &assign_OverexcLimX2_efddes); - assign_map.emplace("cim:OverexcLimX2.efdrated", &assign_OverexcLimX2_efdrated); - assign_map.emplace("cim:OverexcLimX2.kmx", &assign_OverexcLimX2_kmx); - assign_map.emplace("cim:OverexcLimX2.m", &assign_OverexcLimX2_m); - assign_map.emplace("cim:OverexcLimX2.t1", &assign_OverexcLimX2_t1); - assign_map.emplace("cim:OverexcLimX2.t2", &assign_OverexcLimX2_t2); - assign_map.emplace("cim:OverexcLimX2.t3", &assign_OverexcLimX2_t3); - assign_map.emplace("cim:OverexcLimX2.vlow", &assign_OverexcLimX2_vlow); + assign_map.emplace("OverexcLimX2.efd1", &assign_OverexcLimX2_efd1); + assign_map.emplace("OverexcLimX2.efd2", &assign_OverexcLimX2_efd2); + assign_map.emplace("OverexcLimX2.efd3", &assign_OverexcLimX2_efd3); + assign_map.emplace("OverexcLimX2.efddes", &assign_OverexcLimX2_efddes); + assign_map.emplace("OverexcLimX2.efdrated", &assign_OverexcLimX2_efdrated); + assign_map.emplace("OverexcLimX2.kmx", &assign_OverexcLimX2_kmx); + assign_map.emplace("OverexcLimX2.m", &assign_OverexcLimX2_m); + assign_map.emplace("OverexcLimX2.t1", &assign_OverexcLimX2_t1); + assign_map.emplace("OverexcLimX2.t2", &assign_OverexcLimX2_t2); + assign_map.emplace("OverexcLimX2.t3", &assign_OverexcLimX2_t3); + assign_map.emplace("OverexcLimX2.vlow", &assign_OverexcLimX2_vlow); } void OverexcLimX2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void OverexcLimX2::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimX2.efd1", &get_OverexcLimX2_efd1); - get_map.emplace("cim:OverexcLimX2.efd2", &get_OverexcLimX2_efd2); - get_map.emplace("cim:OverexcLimX2.efd3", &get_OverexcLimX2_efd3); - get_map.emplace("cim:OverexcLimX2.efddes", &get_OverexcLimX2_efddes); - get_map.emplace("cim:OverexcLimX2.efdrated", &get_OverexcLimX2_efdrated); - get_map.emplace("cim:OverexcLimX2.kmx", &get_OverexcLimX2_kmx); - get_map.emplace("cim:OverexcLimX2.m", &get_OverexcLimX2_m); - get_map.emplace("cim:OverexcLimX2.t1", &get_OverexcLimX2_t1); - get_map.emplace("cim:OverexcLimX2.t2", &get_OverexcLimX2_t2); - get_map.emplace("cim:OverexcLimX2.t3", &get_OverexcLimX2_t3); - get_map.emplace("cim:OverexcLimX2.vlow", &get_OverexcLimX2_vlow); + get_map.emplace("OverexcLimX2.efd1", &get_OverexcLimX2_efd1); + get_map.emplace("OverexcLimX2.efd2", &get_OverexcLimX2_efd2); + get_map.emplace("OverexcLimX2.efd3", &get_OverexcLimX2_efd3); + get_map.emplace("OverexcLimX2.efddes", &get_OverexcLimX2_efddes); + get_map.emplace("OverexcLimX2.efdrated", &get_OverexcLimX2_efdrated); + get_map.emplace("OverexcLimX2.kmx", &get_OverexcLimX2_kmx); + get_map.emplace("OverexcLimX2.m", &get_OverexcLimX2_m); + get_map.emplace("OverexcLimX2.t1", &get_OverexcLimX2_t1); + get_map.emplace("OverexcLimX2.t2", &get_OverexcLimX2_t2); + get_map.emplace("OverexcLimX2.t3", &get_OverexcLimX2_t3); + get_map.emplace("OverexcLimX2.vlow", &get_OverexcLimX2_vlow); } void OverexcLimX2::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void OverexcLimX2::addEnumGetFnsToMap(std::map& get_m OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimX2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimX2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimX2::declare() { return BaseClassDefiner(OverexcLimX2::addConstructToMap, OverexcLimX2::addPrimitiveAssignFnsToMap, OverexcLimX2::addClassAssignFnsToMap, OverexcLimX2::debugName); } +std::map OverexcLimX2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimX2_factory() diff --git a/CGMES_2.4.13_18DEC2013/OverexcLimX2.hpp b/CGMES_2.4.13_18DEC2013/OverexcLimX2.hpp index c361d076c..c9e1f2727 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcLimX2.hpp +++ b/CGMES_2.4.13_18DEC2013/OverexcLimX2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimX2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OverexcitationLimiterDynamics.cpp b/CGMES_2.4.13_18DEC2013/OverexcitationLimiterDynamics.cpp index bab89ee82..75fe225b5 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcitationLimiterDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/OverexcitationLimiterDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcitationLimiterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcitationLimiterDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcitationLimiterDynamics::OverexcitationLimiterDynamics() : ExcitationSystemDynamics(nullptr) {} OverexcitationLimiterDynamics::~OverexcitationLimiterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcitationLimiterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcitationLimiterDynamics::getClassNamespaceUrl() const { - { "cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcitationLimiterDynamics::getPossibleProfilesForClass() const +const std::string& OverexcitationLimiterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcitationLimiterDynamics::getPossibleProfilesForAttributes() const +const std::list& OverexcitationLimiterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcitationLimiterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcitationLimiterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcitationLimiterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* OverexcitationLimiterDynamics::debugString() const void OverexcitationLimiterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcitationLimiterDynamics", &OverexcitationLimiterDynamics_factory); + factory_map.emplace("OverexcitationLimiterDynamics", &OverexcitationLimiterDynamics_factory); } void OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void OverexcitationLimiterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_OverexcitationLimiterDynamics_ExcitationSystemDynamics); + assign_map.emplace("OverexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_OverexcitationLimiterDynamics_ExcitationSystemDynamics); } void OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", &get_OverexcitationLimiterDynamics_ExcitationSystemDynamics); + get_map.emplace("OverexcitationLimiterDynamics.ExcitationSystemDynamics", &get_OverexcitationLimiterDynamics_ExcitationSystemDynamics); } void OverexcitationLimiterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void OverexcitationLimiterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner OverexcitationLimiterDynamics::declare() { return BaseClassDefiner(OverexcitationLimiterDynamics::addConstructToMap, OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap, OverexcitationLimiterDynamics::addClassAssignFnsToMap, OverexcitationLimiterDynamics::debugName); } +std::map OverexcitationLimiterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcitationLimiterDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/OverexcitationLimiterDynamics.hpp b/CGMES_2.4.13_18DEC2013/OverexcitationLimiterDynamics.hpp index ec4713524..d68d986a1 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcitationLimiterDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/OverexcitationLimiterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcitationLimiterDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/OverexcitationLimiterUserDefined.cpp b/CGMES_2.4.13_18DEC2013/OverexcitationLimiterUserDefined.cpp index 18a97fc36..efc5084c1 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcitationLimiterUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/OverexcitationLimiterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcitationLimiterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcitationLimiterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcitationLimiterUserDefined::OverexcitationLimiterUserDefined() {} OverexcitationLimiterUserDefined::~OverexcitationLimiterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcitationLimiterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcitationLimiterUserDefined::getClassNamespaceUrl() const { - { "cim:OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:OverexcitationLimiterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcitationLimiterUserDefined::getPossibleProfilesForClass() const +const std::string& OverexcitationLimiterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcitationLimiterUserDefined::getPossibleProfilesForAttributes() const +const std::list& OverexcitationLimiterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcitationLimiterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcitationLimiterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcitationLimiterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* OverexcitationLimiterUserDefined::debugString() const void OverexcitationLimiterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcitationLimiterUserDefined", &OverexcitationLimiterUserDefined_factory); + factory_map.emplace("OverexcitationLimiterUserDefined", &OverexcitationLimiterUserDefined_factory); } void OverexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterUserDefined.proprietary", &assign_OverexcitationLimiterUserDefined_proprietary); + assign_map.emplace("OverexcitationLimiterUserDefined.proprietary", &assign_OverexcitationLimiterUserDefined_proprietary); } void OverexcitationLimiterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_OverexcitationLimiterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_OverexcitationLimiterUserDefined_ProprietaryParameterDynamics); } void OverexcitationLimiterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcitationLimiterUserDefined.proprietary", &get_OverexcitationLimiterUserDefined_proprietary); + get_map.emplace("OverexcitationLimiterUserDefined.proprietary", &get_OverexcitationLimiterUserDefined_proprietary); } void OverexcitationLimiterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void OverexcitationLimiterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner OverexcitationLimiterUserDefined::declare() { return BaseClassDefiner(OverexcitationLimiterUserDefined::addConstructToMap, OverexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap, OverexcitationLimiterUserDefined::addClassAssignFnsToMap, OverexcitationLimiterUserDefined::debugName); } +std::map OverexcitationLimiterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcitationLimiterUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/OverexcitationLimiterUserDefined.hpp b/CGMES_2.4.13_18DEC2013/OverexcitationLimiterUserDefined.hpp index 385c02fb4..201dbcdad 100644 --- a/CGMES_2.4.13_18DEC2013/OverexcitationLimiterUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/OverexcitationLimiterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcitationLimiterUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArControllerType1Dynamics.cpp b/CGMES_2.4.13_18DEC2013/PFVArControllerType1Dynamics.cpp index a9e1de1b5..171203216 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArControllerType1Dynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArControllerType1Dynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType1Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType1Dynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1Dynamics.VoltageAdjusterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType1Dynamics::PFVArControllerType1Dynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr), VoltageAdjusterDynamics(nullptr) {} PFVArControllerType1Dynamics::~PFVArControllerType1Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType1Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType1Dynamics::getClassNamespaceUrl() const { - { "cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1Dynamics.VoltageAdjusterDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType1Dynamics::getPossibleProfilesForClass() const +const std::string& PFVArControllerType1Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType1Dynamics::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType1Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType1Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType1Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType1Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics(BaseClass*, BaseClass*); @@ -119,7 +151,7 @@ const char* PFVArControllerType1Dynamics::debugString() const void PFVArControllerType1Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType1Dynamics", &PFVArControllerType1Dynamics_factory); + factory_map.emplace("PFVArControllerType1Dynamics", &PFVArControllerType1Dynamics_factory); } void PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -128,9 +160,9 @@ void PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map void PFVArControllerType1Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType1Dynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:PFVArControllerType1Dynamics.RemoteInputSignal", &assign_PFVArControllerType1Dynamics_RemoteInputSignal); - assign_map.emplace("cim:PFVArControllerType1Dynamics.VoltageAdjusterDynamics", &assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics); + assign_map.emplace("PFVArControllerType1Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType1Dynamics_ExcitationSystemDynamics); + assign_map.emplace("PFVArControllerType1Dynamics.RemoteInputSignal", &assign_PFVArControllerType1Dynamics_RemoteInputSignal); + assign_map.emplace("PFVArControllerType1Dynamics.VoltageAdjusterDynamics", &assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics); } void PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -141,7 +173,7 @@ void PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType1Dynamics_ExcitationSystemDynamics); + get_map.emplace("PFVArControllerType1Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType1Dynamics_ExcitationSystemDynamics); } void PFVArControllerType1Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -149,11 +181,25 @@ void PFVArControllerType1Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType1Dynamics::declare() { return BaseClassDefiner(PFVArControllerType1Dynamics::addConstructToMap, PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap, PFVArControllerType1Dynamics::addClassAssignFnsToMap, PFVArControllerType1Dynamics::debugName); } +std::map PFVArControllerType1Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType1Dynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArControllerType1Dynamics.hpp b/CGMES_2.4.13_18DEC2013/PFVArControllerType1Dynamics.hpp index 722dc238b..370559ca9 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArControllerType1Dynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArControllerType1Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType1Dynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArControllerType1UserDefined.cpp b/CGMES_2.4.13_18DEC2013/PFVArControllerType1UserDefined.cpp index 10b773647..51f44e3a8 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArControllerType1UserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArControllerType1UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType1UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType1UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType1UserDefined::PFVArControllerType1UserDefined() {} PFVArControllerType1UserDefined::~PFVArControllerType1UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType1UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType1UserDefined::getClassNamespaceUrl() const { - { "cim:PFVArControllerType1UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType1UserDefined::getPossibleProfilesForClass() const +const std::string& PFVArControllerType1UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType1UserDefined::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType1UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType1UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType1UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType1UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PFVArControllerType1UserDefined::debugString() const void PFVArControllerType1UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType1UserDefined", &PFVArControllerType1UserDefined_factory); + factory_map.emplace("PFVArControllerType1UserDefined", &PFVArControllerType1UserDefined_factory); } void PFVArControllerType1UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1UserDefined.proprietary", &assign_PFVArControllerType1UserDefined_proprietary); + assign_map.emplace("PFVArControllerType1UserDefined.proprietary", &assign_PFVArControllerType1UserDefined_proprietary); } void PFVArControllerType1UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType1UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PFVArControllerType1UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType1UserDefined_ProprietaryParameterDynamics); } void PFVArControllerType1UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType1UserDefined.proprietary", &get_PFVArControllerType1UserDefined_proprietary); + get_map.emplace("PFVArControllerType1UserDefined.proprietary", &get_PFVArControllerType1UserDefined_proprietary); } void PFVArControllerType1UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PFVArControllerType1UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType1UserDefined::declare() { return BaseClassDefiner(PFVArControllerType1UserDefined::addConstructToMap, PFVArControllerType1UserDefined::addPrimitiveAssignFnsToMap, PFVArControllerType1UserDefined::addClassAssignFnsToMap, PFVArControllerType1UserDefined::debugName); } +std::map PFVArControllerType1UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType1UserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArControllerType1UserDefined.hpp b/CGMES_2.4.13_18DEC2013/PFVArControllerType1UserDefined.hpp index c324b0c9f..6aa0afd40 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArControllerType1UserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArControllerType1UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType1UserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArControllerType2Dynamics.cpp b/CGMES_2.4.13_18DEC2013/PFVArControllerType2Dynamics.cpp index e6c875b3a..60885d0c7 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArControllerType2Dynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArControllerType2Dynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType2Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType2Dynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType2Dynamics::PFVArControllerType2Dynamics() : ExcitationSystemDynamics(nullptr) {} PFVArControllerType2Dynamics::~PFVArControllerType2Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType2Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType2Dynamics::getClassNamespaceUrl() const { - { "cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType2Dynamics::getPossibleProfilesForClass() const +const std::string& PFVArControllerType2Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType2Dynamics::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType2Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType2Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType2Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType2Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* PFVArControllerType2Dynamics::debugString() const void PFVArControllerType2Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType2Dynamics", &PFVArControllerType2Dynamics_factory); + factory_map.emplace("PFVArControllerType2Dynamics", &PFVArControllerType2Dynamics_factory); } void PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map void PFVArControllerType2Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType2Dynamics_ExcitationSystemDynamics); + assign_map.emplace("PFVArControllerType2Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType2Dynamics_ExcitationSystemDynamics); } void PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType2Dynamics_ExcitationSystemDynamics); + get_map.emplace("PFVArControllerType2Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType2Dynamics_ExcitationSystemDynamics); } void PFVArControllerType2Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void PFVArControllerType2Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType2Dynamics::declare() { return BaseClassDefiner(PFVArControllerType2Dynamics::addConstructToMap, PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap, PFVArControllerType2Dynamics::addClassAssignFnsToMap, PFVArControllerType2Dynamics::debugName); } +std::map PFVArControllerType2Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType2Dynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArControllerType2Dynamics.hpp b/CGMES_2.4.13_18DEC2013/PFVArControllerType2Dynamics.hpp index 28e466647..b945ca07f 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArControllerType2Dynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArControllerType2Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType2Dynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArControllerType2UserDefined.cpp b/CGMES_2.4.13_18DEC2013/PFVArControllerType2UserDefined.cpp index 166ceecea..a7370aaca 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArControllerType2UserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArControllerType2UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType2UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType2UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType2UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType2UserDefined::PFVArControllerType2UserDefined() {} PFVArControllerType2UserDefined::~PFVArControllerType2UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType2UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType2UserDefined::getClassNamespaceUrl() const { - { "cim:PFVArControllerType2UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType2UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType2UserDefined::getPossibleProfilesForClass() const +const std::string& PFVArControllerType2UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType2UserDefined::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType2UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType2UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType2UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType2UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PFVArControllerType2UserDefined::debugString() const void PFVArControllerType2UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType2UserDefined", &PFVArControllerType2UserDefined_factory); + factory_map.emplace("PFVArControllerType2UserDefined", &PFVArControllerType2UserDefined_factory); } void PFVArControllerType2UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2UserDefined.proprietary", &assign_PFVArControllerType2UserDefined_proprietary); + assign_map.emplace("PFVArControllerType2UserDefined.proprietary", &assign_PFVArControllerType2UserDefined_proprietary); } void PFVArControllerType2UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType2UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PFVArControllerType2UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType2UserDefined_ProprietaryParameterDynamics); } void PFVArControllerType2UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType2UserDefined.proprietary", &get_PFVArControllerType2UserDefined_proprietary); + get_map.emplace("PFVArControllerType2UserDefined.proprietary", &get_PFVArControllerType2UserDefined_proprietary); } void PFVArControllerType2UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PFVArControllerType2UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType2UserDefined::declare() { return BaseClassDefiner(PFVArControllerType2UserDefined::addConstructToMap, PFVArControllerType2UserDefined::addPrimitiveAssignFnsToMap, PFVArControllerType2UserDefined::addClassAssignFnsToMap, PFVArControllerType2UserDefined::debugName); } +std::map PFVArControllerType2UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType2UserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArControllerType2UserDefined.hpp b/CGMES_2.4.13_18DEC2013/PFVArControllerType2UserDefined.hpp index 7a58fa35b..af723ff2e 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArControllerType2UserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArControllerType2UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType2UserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArType1IEEEPFController.cpp b/CGMES_2.4.13_18DEC2013/PFVArType1IEEEPFController.cpp index 0bce66721..76e634baa 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType1IEEEPFController.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType1IEEEPFController.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType1IEEEPFController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType1IEEEPFController.ovex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.tpfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vitmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpfcbw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpfref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vvtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vvtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType1IEEEPFController::PFVArType1IEEEPFController() {} PFVArType1IEEEPFController::~PFVArType1IEEEPFController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType1IEEEPFController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType1IEEEPFController::getClassNamespaceUrl() const { - { "cim:PFVArType1IEEEPFController.ovex", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.tpfc", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vitmin", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpf", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpfcbw", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpfref", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vvtmax", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vvtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType1IEEEPFController::getPossibleProfilesForClass() const +const std::string& PFVArType1IEEEPFController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType1IEEEPFController::getPossibleProfilesForAttributes() const +const std::list& PFVArType1IEEEPFController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType1IEEEPFController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType1IEEEPFController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType1IEEEPFController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType1IEEEPFController_ovex(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* PFVArType1IEEEPFController::debugString() const void PFVArType1IEEEPFController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType1IEEEPFController", &PFVArType1IEEEPFController_factory); + factory_map.emplace("PFVArType1IEEEPFController", &PFVArType1IEEEPFController_factory); } void PFVArType1IEEEPFController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType1IEEEPFController.ovex", &assign_PFVArType1IEEEPFController_ovex); - assign_map.emplace("cim:PFVArType1IEEEPFController.tpfc", &assign_PFVArType1IEEEPFController_tpfc); - assign_map.emplace("cim:PFVArType1IEEEPFController.vitmin", &assign_PFVArType1IEEEPFController_vitmin); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpf", &assign_PFVArType1IEEEPFController_vpf); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpfcbw", &assign_PFVArType1IEEEPFController_vpfcbw); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpfref", &assign_PFVArType1IEEEPFController_vpfref); - assign_map.emplace("cim:PFVArType1IEEEPFController.vvtmax", &assign_PFVArType1IEEEPFController_vvtmax); - assign_map.emplace("cim:PFVArType1IEEEPFController.vvtmin", &assign_PFVArType1IEEEPFController_vvtmin); + assign_map.emplace("PFVArType1IEEEPFController.ovex", &assign_PFVArType1IEEEPFController_ovex); + assign_map.emplace("PFVArType1IEEEPFController.tpfc", &assign_PFVArType1IEEEPFController_tpfc); + assign_map.emplace("PFVArType1IEEEPFController.vitmin", &assign_PFVArType1IEEEPFController_vitmin); + assign_map.emplace("PFVArType1IEEEPFController.vpf", &assign_PFVArType1IEEEPFController_vpf); + assign_map.emplace("PFVArType1IEEEPFController.vpfcbw", &assign_PFVArType1IEEEPFController_vpfcbw); + assign_map.emplace("PFVArType1IEEEPFController.vpfref", &assign_PFVArType1IEEEPFController_vpfref); + assign_map.emplace("PFVArType1IEEEPFController.vvtmax", &assign_PFVArType1IEEEPFController_vvtmax); + assign_map.emplace("PFVArType1IEEEPFController.vvtmin", &assign_PFVArType1IEEEPFController_vvtmin); } void PFVArType1IEEEPFController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void PFVArType1IEEEPFController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType1IEEEPFController.ovex", &get_PFVArType1IEEEPFController_ovex); - get_map.emplace("cim:PFVArType1IEEEPFController.tpfc", &get_PFVArType1IEEEPFController_tpfc); - get_map.emplace("cim:PFVArType1IEEEPFController.vitmin", &get_PFVArType1IEEEPFController_vitmin); - get_map.emplace("cim:PFVArType1IEEEPFController.vpf", &get_PFVArType1IEEEPFController_vpf); - get_map.emplace("cim:PFVArType1IEEEPFController.vpfcbw", &get_PFVArType1IEEEPFController_vpfcbw); - get_map.emplace("cim:PFVArType1IEEEPFController.vpfref", &get_PFVArType1IEEEPFController_vpfref); - get_map.emplace("cim:PFVArType1IEEEPFController.vvtmax", &get_PFVArType1IEEEPFController_vvtmax); - get_map.emplace("cim:PFVArType1IEEEPFController.vvtmin", &get_PFVArType1IEEEPFController_vvtmin); + get_map.emplace("PFVArType1IEEEPFController.ovex", &get_PFVArType1IEEEPFController_ovex); + get_map.emplace("PFVArType1IEEEPFController.tpfc", &get_PFVArType1IEEEPFController_tpfc); + get_map.emplace("PFVArType1IEEEPFController.vitmin", &get_PFVArType1IEEEPFController_vitmin); + get_map.emplace("PFVArType1IEEEPFController.vpf", &get_PFVArType1IEEEPFController_vpf); + get_map.emplace("PFVArType1IEEEPFController.vpfcbw", &get_PFVArType1IEEEPFController_vpfcbw); + get_map.emplace("PFVArType1IEEEPFController.vpfref", &get_PFVArType1IEEEPFController_vpfref); + get_map.emplace("PFVArType1IEEEPFController.vvtmax", &get_PFVArType1IEEEPFController_vvtmax); + get_map.emplace("PFVArType1IEEEPFController.vvtmin", &get_PFVArType1IEEEPFController_vvtmin); } void PFVArType1IEEEPFController::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void PFVArType1IEEEPFController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType1IEEEPFController::declare() { return BaseClassDefiner(PFVArType1IEEEPFController::addConstructToMap, PFVArType1IEEEPFController::addPrimitiveAssignFnsToMap, PFVArType1IEEEPFController::addClassAssignFnsToMap, PFVArType1IEEEPFController::debugName); } +std::map PFVArType1IEEEPFController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType1IEEEPFController_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArType1IEEEPFController.hpp b/CGMES_2.4.13_18DEC2013/PFVArType1IEEEPFController.hpp index 752d31f36..f7a82252e 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType1IEEEPFController.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType1IEEEPFController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType1IEEEPFController_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArType1IEEEVArController.cpp b/CGMES_2.4.13_18DEC2013/PFVArType1IEEEVArController.cpp index 589dd60a6..c900b080a 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType1IEEEVArController.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType1IEEEVArController.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType1IEEEVArController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType1IEEEVArController.tvarc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvar", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvarcbw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvarref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType1IEEEVArController::PFVArType1IEEEVArController() {} PFVArType1IEEEVArController::~PFVArType1IEEEVArController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType1IEEEVArController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType1IEEEVArController::getClassNamespaceUrl() const { - { "cim:PFVArType1IEEEVArController.tvarc", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvar", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvarcbw", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvarref", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvtmax", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType1IEEEVArController::getPossibleProfilesForClass() const +const std::string& PFVArType1IEEEVArController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType1IEEEVArController::getPossibleProfilesForAttributes() const +const std::list& PFVArType1IEEEVArController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType1IEEEVArController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType1IEEEVArController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType1IEEEVArController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType1IEEEVArController_tvarc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* PFVArType1IEEEVArController::debugString() const void PFVArType1IEEEVArController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType1IEEEVArController", &PFVArType1IEEEVArController_factory); + factory_map.emplace("PFVArType1IEEEVArController", &PFVArType1IEEEVArController_factory); } void PFVArType1IEEEVArController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType1IEEEVArController.tvarc", &assign_PFVArType1IEEEVArController_tvarc); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvar", &assign_PFVArType1IEEEVArController_vvar); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvarcbw", &assign_PFVArType1IEEEVArController_vvarcbw); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvarref", &assign_PFVArType1IEEEVArController_vvarref); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvtmax", &assign_PFVArType1IEEEVArController_vvtmax); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvtmin", &assign_PFVArType1IEEEVArController_vvtmin); + assign_map.emplace("PFVArType1IEEEVArController.tvarc", &assign_PFVArType1IEEEVArController_tvarc); + assign_map.emplace("PFVArType1IEEEVArController.vvar", &assign_PFVArType1IEEEVArController_vvar); + assign_map.emplace("PFVArType1IEEEVArController.vvarcbw", &assign_PFVArType1IEEEVArController_vvarcbw); + assign_map.emplace("PFVArType1IEEEVArController.vvarref", &assign_PFVArType1IEEEVArController_vvarref); + assign_map.emplace("PFVArType1IEEEVArController.vvtmax", &assign_PFVArType1IEEEVArController_vvtmax); + assign_map.emplace("PFVArType1IEEEVArController.vvtmin", &assign_PFVArType1IEEEVArController_vvtmin); } void PFVArType1IEEEVArController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void PFVArType1IEEEVArController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType1IEEEVArController.tvarc", &get_PFVArType1IEEEVArController_tvarc); - get_map.emplace("cim:PFVArType1IEEEVArController.vvar", &get_PFVArType1IEEEVArController_vvar); - get_map.emplace("cim:PFVArType1IEEEVArController.vvarcbw", &get_PFVArType1IEEEVArController_vvarcbw); - get_map.emplace("cim:PFVArType1IEEEVArController.vvarref", &get_PFVArType1IEEEVArController_vvarref); - get_map.emplace("cim:PFVArType1IEEEVArController.vvtmax", &get_PFVArType1IEEEVArController_vvtmax); - get_map.emplace("cim:PFVArType1IEEEVArController.vvtmin", &get_PFVArType1IEEEVArController_vvtmin); + get_map.emplace("PFVArType1IEEEVArController.tvarc", &get_PFVArType1IEEEVArController_tvarc); + get_map.emplace("PFVArType1IEEEVArController.vvar", &get_PFVArType1IEEEVArController_vvar); + get_map.emplace("PFVArType1IEEEVArController.vvarcbw", &get_PFVArType1IEEEVArController_vvarcbw); + get_map.emplace("PFVArType1IEEEVArController.vvarref", &get_PFVArType1IEEEVArController_vvarref); + get_map.emplace("PFVArType1IEEEVArController.vvtmax", &get_PFVArType1IEEEVArController_vvtmax); + get_map.emplace("PFVArType1IEEEVArController.vvtmin", &get_PFVArType1IEEEVArController_vvtmin); } void PFVArType1IEEEVArController::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void PFVArType1IEEEVArController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType1IEEEVArController::declare() { return BaseClassDefiner(PFVArType1IEEEVArController::addConstructToMap, PFVArType1IEEEVArController::addPrimitiveAssignFnsToMap, PFVArType1IEEEVArController::addClassAssignFnsToMap, PFVArType1IEEEVArController::debugName); } +std::map PFVArType1IEEEVArController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType1IEEEVArController_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArType1IEEEVArController.hpp b/CGMES_2.4.13_18DEC2013/PFVArType1IEEEVArController.hpp index ccc74b4a4..88c05d87b 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType1IEEEVArController.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType1IEEEVArController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType1IEEEVArController_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArType2Common1.cpp b/CGMES_2.4.13_18DEC2013/PFVArType2Common1.cpp index 8bd6aecd5..a45e2b666 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType2Common1.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType2Common1.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2Common1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2Common1.j", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.ref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2Common1::PFVArType2Common1() {} PFVArType2Common1::~PFVArType2Common1() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2Common1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2Common1::getClassNamespaceUrl() const { - { "cim:PFVArType2Common1.j", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.max", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.ref", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2Common1::getPossibleProfilesForClass() const +const std::string& PFVArType2Common1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2Common1::getPossibleProfilesForAttributes() const +const std::list& PFVArType2Common1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2Common1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2Common1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2Common1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2Common1_j(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* PFVArType2Common1::debugString() const void PFVArType2Common1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2Common1", &PFVArType2Common1_factory); + factory_map.emplace("PFVArType2Common1", &PFVArType2Common1_factory); } void PFVArType2Common1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2Common1.j", &assign_PFVArType2Common1_j); - assign_map.emplace("cim:PFVArType2Common1.ki", &assign_PFVArType2Common1_ki); - assign_map.emplace("cim:PFVArType2Common1.kp", &assign_PFVArType2Common1_kp); - assign_map.emplace("cim:PFVArType2Common1.max", &assign_PFVArType2Common1_max); - assign_map.emplace("cim:PFVArType2Common1.ref", &assign_PFVArType2Common1_ref); + assign_map.emplace("PFVArType2Common1.j", &assign_PFVArType2Common1_j); + assign_map.emplace("PFVArType2Common1.ki", &assign_PFVArType2Common1_ki); + assign_map.emplace("PFVArType2Common1.kp", &assign_PFVArType2Common1_kp); + assign_map.emplace("PFVArType2Common1.max", &assign_PFVArType2Common1_max); + assign_map.emplace("PFVArType2Common1.ref", &assign_PFVArType2Common1_ref); } void PFVArType2Common1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void PFVArType2Common1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2Common1.j", &get_PFVArType2Common1_j); - get_map.emplace("cim:PFVArType2Common1.ki", &get_PFVArType2Common1_ki); - get_map.emplace("cim:PFVArType2Common1.kp", &get_PFVArType2Common1_kp); - get_map.emplace("cim:PFVArType2Common1.max", &get_PFVArType2Common1_max); - get_map.emplace("cim:PFVArType2Common1.ref", &get_PFVArType2Common1_ref); + get_map.emplace("PFVArType2Common1.j", &get_PFVArType2Common1_j); + get_map.emplace("PFVArType2Common1.ki", &get_PFVArType2Common1_ki); + get_map.emplace("PFVArType2Common1.kp", &get_PFVArType2Common1_kp); + get_map.emplace("PFVArType2Common1.max", &get_PFVArType2Common1_max); + get_map.emplace("PFVArType2Common1.ref", &get_PFVArType2Common1_ref); } void PFVArType2Common1::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void PFVArType2Common1::addEnumGetFnsToMap(std::map& PFVArControllerType2Dynamics::addEnumGetFnsToMap(get_map); } +bool PFVArType2Common1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PFVArType2Common1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2Common1::declare() { return BaseClassDefiner(PFVArType2Common1::addConstructToMap, PFVArType2Common1::addPrimitiveAssignFnsToMap, PFVArType2Common1::addClassAssignFnsToMap, PFVArType2Common1::debugName); } +std::map PFVArType2Common1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2Common1_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArType2Common1.hpp b/CGMES_2.4.13_18DEC2013/PFVArType2Common1.hpp index e6ccc4d7a..8fdc553db 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType2Common1.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType2Common1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2Common1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArType2IEEEPFController.cpp b/CGMES_2.4.13_18DEC2013/PFVArType2IEEEPFController.cpp index bdf95df85..854d75aeb 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType2IEEEPFController.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType2IEEEPFController.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2IEEEPFController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2IEEEPFController.exlon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.pfref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vclmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2IEEEPFController::PFVArType2IEEEPFController() {} PFVArType2IEEEPFController::~PFVArType2IEEEPFController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2IEEEPFController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2IEEEPFController::getClassNamespaceUrl() const { - { "cim:PFVArType2IEEEPFController.exlon", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.pfref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vclmt", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2IEEEPFController::getPossibleProfilesForClass() const +const std::string& PFVArType2IEEEPFController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2IEEEPFController::getPossibleProfilesForAttributes() const +const std::list& PFVArType2IEEEPFController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2IEEEPFController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2IEEEPFController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2IEEEPFController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2IEEEPFController_exlon(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PFVArType2IEEEPFController::debugString() const void PFVArType2IEEEPFController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2IEEEPFController", &PFVArType2IEEEPFController_factory); + factory_map.emplace("PFVArType2IEEEPFController", &PFVArType2IEEEPFController_factory); } void PFVArType2IEEEPFController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2IEEEPFController.exlon", &assign_PFVArType2IEEEPFController_exlon); - assign_map.emplace("cim:PFVArType2IEEEPFController.ki", &assign_PFVArType2IEEEPFController_ki); - assign_map.emplace("cim:PFVArType2IEEEPFController.kp", &assign_PFVArType2IEEEPFController_kp); - assign_map.emplace("cim:PFVArType2IEEEPFController.pfref", &assign_PFVArType2IEEEPFController_pfref); - assign_map.emplace("cim:PFVArType2IEEEPFController.vclmt", &assign_PFVArType2IEEEPFController_vclmt); - assign_map.emplace("cim:PFVArType2IEEEPFController.vref", &assign_PFVArType2IEEEPFController_vref); - assign_map.emplace("cim:PFVArType2IEEEPFController.vs", &assign_PFVArType2IEEEPFController_vs); + assign_map.emplace("PFVArType2IEEEPFController.exlon", &assign_PFVArType2IEEEPFController_exlon); + assign_map.emplace("PFVArType2IEEEPFController.ki", &assign_PFVArType2IEEEPFController_ki); + assign_map.emplace("PFVArType2IEEEPFController.kp", &assign_PFVArType2IEEEPFController_kp); + assign_map.emplace("PFVArType2IEEEPFController.pfref", &assign_PFVArType2IEEEPFController_pfref); + assign_map.emplace("PFVArType2IEEEPFController.vclmt", &assign_PFVArType2IEEEPFController_vclmt); + assign_map.emplace("PFVArType2IEEEPFController.vref", &assign_PFVArType2IEEEPFController_vref); + assign_map.emplace("PFVArType2IEEEPFController.vs", &assign_PFVArType2IEEEPFController_vs); } void PFVArType2IEEEPFController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void PFVArType2IEEEPFController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2IEEEPFController.exlon", &get_PFVArType2IEEEPFController_exlon); - get_map.emplace("cim:PFVArType2IEEEPFController.ki", &get_PFVArType2IEEEPFController_ki); - get_map.emplace("cim:PFVArType2IEEEPFController.kp", &get_PFVArType2IEEEPFController_kp); - get_map.emplace("cim:PFVArType2IEEEPFController.pfref", &get_PFVArType2IEEEPFController_pfref); - get_map.emplace("cim:PFVArType2IEEEPFController.vclmt", &get_PFVArType2IEEEPFController_vclmt); - get_map.emplace("cim:PFVArType2IEEEPFController.vref", &get_PFVArType2IEEEPFController_vref); - get_map.emplace("cim:PFVArType2IEEEPFController.vs", &get_PFVArType2IEEEPFController_vs); + get_map.emplace("PFVArType2IEEEPFController.exlon", &get_PFVArType2IEEEPFController_exlon); + get_map.emplace("PFVArType2IEEEPFController.ki", &get_PFVArType2IEEEPFController_ki); + get_map.emplace("PFVArType2IEEEPFController.kp", &get_PFVArType2IEEEPFController_kp); + get_map.emplace("PFVArType2IEEEPFController.pfref", &get_PFVArType2IEEEPFController_pfref); + get_map.emplace("PFVArType2IEEEPFController.vclmt", &get_PFVArType2IEEEPFController_vclmt); + get_map.emplace("PFVArType2IEEEPFController.vref", &get_PFVArType2IEEEPFController_vref); + get_map.emplace("PFVArType2IEEEPFController.vs", &get_PFVArType2IEEEPFController_vs); } void PFVArType2IEEEPFController::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void PFVArType2IEEEPFController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2IEEEPFController::declare() { return BaseClassDefiner(PFVArType2IEEEPFController::addConstructToMap, PFVArType2IEEEPFController::addPrimitiveAssignFnsToMap, PFVArType2IEEEPFController::addClassAssignFnsToMap, PFVArType2IEEEPFController::debugName); } +std::map PFVArType2IEEEPFController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2IEEEPFController_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArType2IEEEPFController.hpp b/CGMES_2.4.13_18DEC2013/PFVArType2IEEEPFController.hpp index b75160448..91ba33e8c 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType2IEEEPFController.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType2IEEEPFController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2IEEEPFController_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PFVArType2IEEEVArController.cpp b/CGMES_2.4.13_18DEC2013/PFVArType2IEEEVArController.cpp index 56e3c29b0..876ee7302 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType2IEEEVArController.cpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType2IEEEVArController.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2IEEEVArController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2IEEEVArController.exlon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.qref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vclmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2IEEEVArController::PFVArType2IEEEVArController() {} PFVArType2IEEEVArController::~PFVArType2IEEEVArController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2IEEEVArController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2IEEEVArController::getClassNamespaceUrl() const { - { "cim:PFVArType2IEEEVArController.exlon", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.qref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vclmt", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2IEEEVArController::getPossibleProfilesForClass() const +const std::string& PFVArType2IEEEVArController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2IEEEVArController::getPossibleProfilesForAttributes() const +const std::list& PFVArType2IEEEVArController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2IEEEVArController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2IEEEVArController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2IEEEVArController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2IEEEVArController_exlon(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PFVArType2IEEEVArController::debugString() const void PFVArType2IEEEVArController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2IEEEVArController", &PFVArType2IEEEVArController_factory); + factory_map.emplace("PFVArType2IEEEVArController", &PFVArType2IEEEVArController_factory); } void PFVArType2IEEEVArController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2IEEEVArController.exlon", &assign_PFVArType2IEEEVArController_exlon); - assign_map.emplace("cim:PFVArType2IEEEVArController.ki", &assign_PFVArType2IEEEVArController_ki); - assign_map.emplace("cim:PFVArType2IEEEVArController.kp", &assign_PFVArType2IEEEVArController_kp); - assign_map.emplace("cim:PFVArType2IEEEVArController.qref", &assign_PFVArType2IEEEVArController_qref); - assign_map.emplace("cim:PFVArType2IEEEVArController.vclmt", &assign_PFVArType2IEEEVArController_vclmt); - assign_map.emplace("cim:PFVArType2IEEEVArController.vref", &assign_PFVArType2IEEEVArController_vref); - assign_map.emplace("cim:PFVArType2IEEEVArController.vs", &assign_PFVArType2IEEEVArController_vs); + assign_map.emplace("PFVArType2IEEEVArController.exlon", &assign_PFVArType2IEEEVArController_exlon); + assign_map.emplace("PFVArType2IEEEVArController.ki", &assign_PFVArType2IEEEVArController_ki); + assign_map.emplace("PFVArType2IEEEVArController.kp", &assign_PFVArType2IEEEVArController_kp); + assign_map.emplace("PFVArType2IEEEVArController.qref", &assign_PFVArType2IEEEVArController_qref); + assign_map.emplace("PFVArType2IEEEVArController.vclmt", &assign_PFVArType2IEEEVArController_vclmt); + assign_map.emplace("PFVArType2IEEEVArController.vref", &assign_PFVArType2IEEEVArController_vref); + assign_map.emplace("PFVArType2IEEEVArController.vs", &assign_PFVArType2IEEEVArController_vs); } void PFVArType2IEEEVArController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void PFVArType2IEEEVArController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2IEEEVArController.exlon", &get_PFVArType2IEEEVArController_exlon); - get_map.emplace("cim:PFVArType2IEEEVArController.ki", &get_PFVArType2IEEEVArController_ki); - get_map.emplace("cim:PFVArType2IEEEVArController.kp", &get_PFVArType2IEEEVArController_kp); - get_map.emplace("cim:PFVArType2IEEEVArController.qref", &get_PFVArType2IEEEVArController_qref); - get_map.emplace("cim:PFVArType2IEEEVArController.vclmt", &get_PFVArType2IEEEVArController_vclmt); - get_map.emplace("cim:PFVArType2IEEEVArController.vref", &get_PFVArType2IEEEVArController_vref); - get_map.emplace("cim:PFVArType2IEEEVArController.vs", &get_PFVArType2IEEEVArController_vs); + get_map.emplace("PFVArType2IEEEVArController.exlon", &get_PFVArType2IEEEVArController_exlon); + get_map.emplace("PFVArType2IEEEVArController.ki", &get_PFVArType2IEEEVArController_ki); + get_map.emplace("PFVArType2IEEEVArController.kp", &get_PFVArType2IEEEVArController_kp); + get_map.emplace("PFVArType2IEEEVArController.qref", &get_PFVArType2IEEEVArController_qref); + get_map.emplace("PFVArType2IEEEVArController.vclmt", &get_PFVArType2IEEEVArController_vclmt); + get_map.emplace("PFVArType2IEEEVArController.vref", &get_PFVArType2IEEEVArController_vref); + get_map.emplace("PFVArType2IEEEVArController.vs", &get_PFVArType2IEEEVArController_vs); } void PFVArType2IEEEVArController::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void PFVArType2IEEEVArController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2IEEEVArController::declare() { return BaseClassDefiner(PFVArType2IEEEVArController::addConstructToMap, PFVArType2IEEEVArController::addPrimitiveAssignFnsToMap, PFVArType2IEEEVArController::addClassAssignFnsToMap, PFVArType2IEEEVArController::debugName); } +std::map PFVArType2IEEEVArController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2IEEEVArController_factory() diff --git a/CGMES_2.4.13_18DEC2013/PFVArType2IEEEVArController.hpp b/CGMES_2.4.13_18DEC2013/PFVArType2IEEEVArController.hpp index e5a578551..6b01e5312 100644 --- a/CGMES_2.4.13_18DEC2013/PFVArType2IEEEVArController.hpp +++ b/CGMES_2.4.13_18DEC2013/PFVArType2IEEEVArController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2IEEEVArController_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PerLengthDCLineParameter.cpp b/CGMES_2.4.13_18DEC2013/PerLengthDCLineParameter.cpp index f92329e76..4d3f659ab 100644 --- a/CGMES_2.4.13_18DEC2013/PerLengthDCLineParameter.cpp +++ b/CGMES_2.4.13_18DEC2013/PerLengthDCLineParameter.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PerLengthDCLineParameter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PerLengthDCLineParameter.DCLineSegments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PerLengthDCLineParameter::PerLengthDCLineParameter() {} PerLengthDCLineParameter::~PerLengthDCLineParameter() {} -static const std::list PossibleProfilesForClass = +const std::list& PerLengthDCLineParameter::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PerLengthDCLineParameter::getClassNamespaceUrl() const { - { "cim:PerLengthDCLineParameter.DCLineSegments", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.capacitance", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.inductance", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PerLengthDCLineParameter::getPossibleProfilesForClass() const +const std::string& PerLengthDCLineParameter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PerLengthDCLineParameter::getPossibleProfilesForAttributes() const +const std::list& PerLengthDCLineParameter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PerLengthDCLineParameter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PerLengthDCLineParameter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PerLengthDCLineParameter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCLineSegment_PerLengthParameter(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* PerLengthDCLineParameter::debugString() const void PerLengthDCLineParameter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PerLengthDCLineParameter", &PerLengthDCLineParameter_factory); + factory_map.emplace("PerLengthDCLineParameter", &PerLengthDCLineParameter_factory); } void PerLengthDCLineParameter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PerLengthDCLineParameter.capacitance", &assign_PerLengthDCLineParameter_capacitance); - assign_map.emplace("cim:PerLengthDCLineParameter.inductance", &assign_PerLengthDCLineParameter_inductance); - assign_map.emplace("cim:PerLengthDCLineParameter.resistance", &assign_PerLengthDCLineParameter_resistance); + assign_map.emplace("PerLengthDCLineParameter.capacitance", &assign_PerLengthDCLineParameter_capacitance); + assign_map.emplace("PerLengthDCLineParameter.inductance", &assign_PerLengthDCLineParameter_inductance); + assign_map.emplace("PerLengthDCLineParameter.resistance", &assign_PerLengthDCLineParameter_resistance); } void PerLengthDCLineParameter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PerLengthDCLineParameter.DCLineSegments", &assign_PerLengthDCLineParameter_DCLineSegments); + assign_map.emplace("PerLengthDCLineParameter.DCLineSegments", &assign_PerLengthDCLineParameter_DCLineSegments); } void PerLengthDCLineParameter::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PerLengthDCLineParameter.capacitance", &get_PerLengthDCLineParameter_capacitance); - get_map.emplace("cim:PerLengthDCLineParameter.inductance", &get_PerLengthDCLineParameter_inductance); - get_map.emplace("cim:PerLengthDCLineParameter.resistance", &get_PerLengthDCLineParameter_resistance); + get_map.emplace("PerLengthDCLineParameter.capacitance", &get_PerLengthDCLineParameter_capacitance); + get_map.emplace("PerLengthDCLineParameter.inductance", &get_PerLengthDCLineParameter_inductance); + get_map.emplace("PerLengthDCLineParameter.resistance", &get_PerLengthDCLineParameter_resistance); } void PerLengthDCLineParameter::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void PerLengthDCLineParameter::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PerLengthDCLineParameter::declare() { return BaseClassDefiner(PerLengthDCLineParameter::addConstructToMap, PerLengthDCLineParameter::addPrimitiveAssignFnsToMap, PerLengthDCLineParameter::addClassAssignFnsToMap, PerLengthDCLineParameter::debugName); } +std::map PerLengthDCLineParameter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PerLengthDCLineParameter_factory() diff --git a/CGMES_2.4.13_18DEC2013/PerLengthDCLineParameter.hpp b/CGMES_2.4.13_18DEC2013/PerLengthDCLineParameter.hpp index 5f5cadcde..b77b89271 100644 --- a/CGMES_2.4.13_18DEC2013/PerLengthDCLineParameter.hpp +++ b/CGMES_2.4.13_18DEC2013/PerLengthDCLineParameter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CapacitancePerLength.hpp" #include "InductancePerLength.hpp" #include "ResistancePerLength.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PerLengthDCLineParameter_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PetersenCoil.cpp b/CGMES_2.4.13_18DEC2013/PetersenCoil.cpp index d19f1fbad..3117b743e 100644 --- a/CGMES_2.4.13_18DEC2013/PetersenCoil.cpp +++ b/CGMES_2.4.13_18DEC2013/PetersenCoil.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PetersenCoil(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PetersenCoil.mode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.nominalU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.offsetCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.positionCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundNominal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PetersenCoil::PetersenCoil() {} PetersenCoil::~PetersenCoil() {} -static const std::list PossibleProfilesForClass = +const std::list& PetersenCoil::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PetersenCoil::getClassNamespaceUrl() const { - { "cim:PetersenCoil.mode", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.nominalU", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.offsetCurrent", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.positionCurrent", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundMax", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundMin", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundNominal", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PetersenCoil::getPossibleProfilesForClass() const +const std::string& PetersenCoil::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PetersenCoil::getPossibleProfilesForAttributes() const +const std::list& PetersenCoil::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EarthFaultCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PetersenCoil::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PetersenCoil::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PetersenCoil::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PetersenCoil_mode(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PetersenCoil::debugString() const void PetersenCoil::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PetersenCoil", &PetersenCoil_factory); + factory_map.emplace("PetersenCoil", &PetersenCoil_factory); } void PetersenCoil::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PetersenCoil.mode", &assign_PetersenCoil_mode); - assign_map.emplace("cim:PetersenCoil.nominalU", &assign_PetersenCoil_nominalU); - assign_map.emplace("cim:PetersenCoil.offsetCurrent", &assign_PetersenCoil_offsetCurrent); - assign_map.emplace("cim:PetersenCoil.positionCurrent", &assign_PetersenCoil_positionCurrent); - assign_map.emplace("cim:PetersenCoil.xGroundMax", &assign_PetersenCoil_xGroundMax); - assign_map.emplace("cim:PetersenCoil.xGroundMin", &assign_PetersenCoil_xGroundMin); - assign_map.emplace("cim:PetersenCoil.xGroundNominal", &assign_PetersenCoil_xGroundNominal); + assign_map.emplace("PetersenCoil.mode", &assign_PetersenCoil_mode); + assign_map.emplace("PetersenCoil.nominalU", &assign_PetersenCoil_nominalU); + assign_map.emplace("PetersenCoil.offsetCurrent", &assign_PetersenCoil_offsetCurrent); + assign_map.emplace("PetersenCoil.positionCurrent", &assign_PetersenCoil_positionCurrent); + assign_map.emplace("PetersenCoil.xGroundMax", &assign_PetersenCoil_xGroundMax); + assign_map.emplace("PetersenCoil.xGroundMin", &assign_PetersenCoil_xGroundMin); + assign_map.emplace("PetersenCoil.xGroundNominal", &assign_PetersenCoil_xGroundNominal); } void PetersenCoil::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,12 +309,12 @@ void PetersenCoil::addClassAssignFnsToMap(std::unordered_map& get_map) const { EarthFaultCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PetersenCoil.nominalU", &get_PetersenCoil_nominalU); - get_map.emplace("cim:PetersenCoil.offsetCurrent", &get_PetersenCoil_offsetCurrent); - get_map.emplace("cim:PetersenCoil.positionCurrent", &get_PetersenCoil_positionCurrent); - get_map.emplace("cim:PetersenCoil.xGroundMax", &get_PetersenCoil_xGroundMax); - get_map.emplace("cim:PetersenCoil.xGroundMin", &get_PetersenCoil_xGroundMin); - get_map.emplace("cim:PetersenCoil.xGroundNominal", &get_PetersenCoil_xGroundNominal); + get_map.emplace("PetersenCoil.nominalU", &get_PetersenCoil_nominalU); + get_map.emplace("PetersenCoil.offsetCurrent", &get_PetersenCoil_offsetCurrent); + get_map.emplace("PetersenCoil.positionCurrent", &get_PetersenCoil_positionCurrent); + get_map.emplace("PetersenCoil.xGroundMax", &get_PetersenCoil_xGroundMax); + get_map.emplace("PetersenCoil.xGroundMin", &get_PetersenCoil_xGroundMin); + get_map.emplace("PetersenCoil.xGroundNominal", &get_PetersenCoil_xGroundNominal); } void PetersenCoil::addClassGetFnsToMap(std::map& get_map) const @@ -293,7 +325,13 @@ void PetersenCoil::addClassGetFnsToMap(std::map void PetersenCoil::addEnumGetFnsToMap(std::map& get_map) const { EarthFaultCompensator::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PetersenCoil.mode", &get_PetersenCoil_mode); + get_map.emplace("PetersenCoil.mode", &get_PetersenCoil_mode); +} + +bool PetersenCoil::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PetersenCoil" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PetersenCoil::declare() @@ -301,6 +339,14 @@ const BaseClassDefiner PetersenCoil::declare() return BaseClassDefiner(PetersenCoil::addConstructToMap, PetersenCoil::addPrimitiveAssignFnsToMap, PetersenCoil::addClassAssignFnsToMap, PetersenCoil::debugName); } +std::map PetersenCoil::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EarthFaultCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PetersenCoil_factory() diff --git a/CGMES_2.4.13_18DEC2013/PetersenCoil.hpp b/CGMES_2.4.13_18DEC2013/PetersenCoil.hpp index 3fcf3a91b..f775112be 100644 --- a/CGMES_2.4.13_18DEC2013/PetersenCoil.hpp +++ b/CGMES_2.4.13_18DEC2013/PetersenCoil.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EarthFaultCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" #include "PetersenCoilModeKind.hpp" #include "Reactance.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PetersenCoil_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChanger.cpp b/CGMES_2.4.13_18DEC2013/PhaseTapChanger.cpp index 71a0b044e..0af167986 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChanger.cpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChanger.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChanger.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChanger::PhaseTapChanger() : TransformerEnd(nullptr) {} PhaseTapChanger::~PhaseTapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChanger::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChanger::getClassNamespaceUrl() const { - { "cim:PhaseTapChanger.TransformerEnd", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChanger::getPossibleProfilesForClass() const +const std::string& PhaseTapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChanger::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TransformerEnd_PhaseTapChanger(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* PhaseTapChanger::debugString() const void PhaseTapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChanger", &PhaseTapChanger_factory); + factory_map.emplace("PhaseTapChanger", &PhaseTapChanger_factory); } void PhaseTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void PhaseTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChanger.TransformerEnd", &assign_PhaseTapChanger_TransformerEnd); + assign_map.emplace("PhaseTapChanger.TransformerEnd", &assign_PhaseTapChanger_TransformerEnd); } void PhaseTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void PhaseTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChanger.TransformerEnd", &get_PhaseTapChanger_TransformerEnd); + get_map.emplace("PhaseTapChanger.TransformerEnd", &get_PhaseTapChanger_TransformerEnd); } void PhaseTapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void PhaseTapChanger::addEnumGetFnsToMap(std::map& ge TapChanger::addEnumGetFnsToMap(get_map); } +bool PhaseTapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PhaseTapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChanger::declare() { return BaseClassDefiner(PhaseTapChanger::addConstructToMap, PhaseTapChanger::addPrimitiveAssignFnsToMap, PhaseTapChanger::addClassAssignFnsToMap, PhaseTapChanger::debugName); } +std::map PhaseTapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChanger_factory() diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChanger.hpp b/CGMES_2.4.13_18DEC2013/PhaseTapChanger.hpp index 9fdaa4aa7..57a5f48f0 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChanger.hpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChanger_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerAsymmetrical.cpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerAsymmetrical.cpp index c776e0826..e7f2b6c21 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerAsymmetrical.cpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerAsymmetrical.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerAsymmetrical(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerAsymmetrical.windingConnectionAngle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerAsymmetrical::PhaseTapChangerAsymmetrical() {} PhaseTapChangerAsymmetrical::~PhaseTapChangerAsymmetrical() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerAsymmetrical::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerAsymmetrical::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerAsymmetrical::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerAsymmetrical::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerAsymmetrical::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerAsymmetrical::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChangerNonLinear::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerAsymmetrical::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerAsymmetrical::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerAsymmetrical::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerAsymmetrical_windingConnectionAngle(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* PhaseTapChangerAsymmetrical::debugString() const void PhaseTapChangerAsymmetrical::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerAsymmetrical", &PhaseTapChangerAsymmetrical_factory); + factory_map.emplace("PhaseTapChangerAsymmetrical", &PhaseTapChangerAsymmetrical_factory); } void PhaseTapChangerAsymmetrical::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", &assign_PhaseTapChangerAsymmetrical_windingConnectionAngle); + assign_map.emplace("PhaseTapChangerAsymmetrical.windingConnectionAngle", &assign_PhaseTapChangerAsymmetrical_windingConnectionAngle); } void PhaseTapChangerAsymmetrical::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void PhaseTapChangerAsymmetrical::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChangerNonLinear::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", &get_PhaseTapChangerAsymmetrical_windingConnectionAngle); + get_map.emplace("PhaseTapChangerAsymmetrical.windingConnectionAngle", &get_PhaseTapChangerAsymmetrical_windingConnectionAngle); } void PhaseTapChangerAsymmetrical::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void PhaseTapChangerAsymmetrical::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerAsymmetrical::declare() { return BaseClassDefiner(PhaseTapChangerAsymmetrical::addConstructToMap, PhaseTapChangerAsymmetrical::addPrimitiveAssignFnsToMap, PhaseTapChangerAsymmetrical::addClassAssignFnsToMap, PhaseTapChangerAsymmetrical::debugName); } +std::map PhaseTapChangerAsymmetrical::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChangerNonLinear::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerAsymmetrical_factory() diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerAsymmetrical.hpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerAsymmetrical.hpp index 580e7ca49..7b8b2f6e5 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerAsymmetrical.hpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerAsymmetrical.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChangerNonLinear.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerAsymmetrical_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerLinear.cpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerLinear.cpp index f6945cb77..288ad07f2 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerLinear.cpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerLinear.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerLinear.stepPhaseShiftIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerLinear.xMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerLinear.xMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerLinear::PhaseTapChangerLinear() {} PhaseTapChangerLinear::~PhaseTapChangerLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerLinear::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerLinear::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerLinear.xMax", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerLinear.xMin", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerLinear::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerLinear::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerLinear_stepPhaseShiftIncrement(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* PhaseTapChangerLinear::debugString() const void PhaseTapChangerLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerLinear", &PhaseTapChangerLinear_factory); + factory_map.emplace("PhaseTapChangerLinear", &PhaseTapChangerLinear_factory); } void PhaseTapChangerLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", &assign_PhaseTapChangerLinear_stepPhaseShiftIncrement); - assign_map.emplace("cim:PhaseTapChangerLinear.xMax", &assign_PhaseTapChangerLinear_xMax); - assign_map.emplace("cim:PhaseTapChangerLinear.xMin", &assign_PhaseTapChangerLinear_xMin); + assign_map.emplace("PhaseTapChangerLinear.stepPhaseShiftIncrement", &assign_PhaseTapChangerLinear_stepPhaseShiftIncrement); + assign_map.emplace("PhaseTapChangerLinear.xMax", &assign_PhaseTapChangerLinear_xMax); + assign_map.emplace("PhaseTapChangerLinear.xMin", &assign_PhaseTapChangerLinear_xMin); } void PhaseTapChangerLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void PhaseTapChangerLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", &get_PhaseTapChangerLinear_stepPhaseShiftIncrement); - get_map.emplace("cim:PhaseTapChangerLinear.xMax", &get_PhaseTapChangerLinear_xMax); - get_map.emplace("cim:PhaseTapChangerLinear.xMin", &get_PhaseTapChangerLinear_xMin); + get_map.emplace("PhaseTapChangerLinear.stepPhaseShiftIncrement", &get_PhaseTapChangerLinear_stepPhaseShiftIncrement); + get_map.emplace("PhaseTapChangerLinear.xMax", &get_PhaseTapChangerLinear_xMax); + get_map.emplace("PhaseTapChangerLinear.xMin", &get_PhaseTapChangerLinear_xMin); } void PhaseTapChangerLinear::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void PhaseTapChangerLinear::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerLinear::declare() { return BaseClassDefiner(PhaseTapChangerLinear::addConstructToMap, PhaseTapChangerLinear::addPrimitiveAssignFnsToMap, PhaseTapChangerLinear::addClassAssignFnsToMap, PhaseTapChangerLinear::debugName); } +std::map PhaseTapChangerLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerLinear_factory() diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerLinear.hpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerLinear.hpp index fb4655393..b7e39e2a9 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerLinear.hpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Reactance.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerLinear_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerNonLinear.cpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerNonLinear.cpp index fa16a2960..43bacf342 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerNonLinear.cpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerNonLinear.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerNonLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerNonLinear.voltageStepIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerNonLinear.xMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerNonLinear.xMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerNonLinear::PhaseTapChangerNonLinear() {} PhaseTapChangerNonLinear::~PhaseTapChangerNonLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerNonLinear::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerNonLinear::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerNonLinear.voltageStepIncrement", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerNonLinear.xMax", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerNonLinear.xMin", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerNonLinear::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerNonLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerNonLinear::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerNonLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerNonLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerNonLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerNonLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerNonLinear_voltageStepIncrement(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* PhaseTapChangerNonLinear::debugString() const void PhaseTapChangerNonLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerNonLinear", &PhaseTapChangerNonLinear_factory); + factory_map.emplace("PhaseTapChangerNonLinear", &PhaseTapChangerNonLinear_factory); } void PhaseTapChangerNonLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerNonLinear.voltageStepIncrement", &assign_PhaseTapChangerNonLinear_voltageStepIncrement); - assign_map.emplace("cim:PhaseTapChangerNonLinear.xMax", &assign_PhaseTapChangerNonLinear_xMax); - assign_map.emplace("cim:PhaseTapChangerNonLinear.xMin", &assign_PhaseTapChangerNonLinear_xMin); + assign_map.emplace("PhaseTapChangerNonLinear.voltageStepIncrement", &assign_PhaseTapChangerNonLinear_voltageStepIncrement); + assign_map.emplace("PhaseTapChangerNonLinear.xMax", &assign_PhaseTapChangerNonLinear_xMax); + assign_map.emplace("PhaseTapChangerNonLinear.xMin", &assign_PhaseTapChangerNonLinear_xMin); } void PhaseTapChangerNonLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void PhaseTapChangerNonLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerNonLinear.voltageStepIncrement", &get_PhaseTapChangerNonLinear_voltageStepIncrement); - get_map.emplace("cim:PhaseTapChangerNonLinear.xMax", &get_PhaseTapChangerNonLinear_xMax); - get_map.emplace("cim:PhaseTapChangerNonLinear.xMin", &get_PhaseTapChangerNonLinear_xMin); + get_map.emplace("PhaseTapChangerNonLinear.voltageStepIncrement", &get_PhaseTapChangerNonLinear_voltageStepIncrement); + get_map.emplace("PhaseTapChangerNonLinear.xMax", &get_PhaseTapChangerNonLinear_xMax); + get_map.emplace("PhaseTapChangerNonLinear.xMin", &get_PhaseTapChangerNonLinear_xMin); } void PhaseTapChangerNonLinear::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void PhaseTapChangerNonLinear::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerNonLinear::declare() { return BaseClassDefiner(PhaseTapChangerNonLinear::addConstructToMap, PhaseTapChangerNonLinear::addPrimitiveAssignFnsToMap, PhaseTapChangerNonLinear::addClassAssignFnsToMap, PhaseTapChangerNonLinear::debugName); } +std::map PhaseTapChangerNonLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerNonLinear_factory() diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerNonLinear.hpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerNonLinear.hpp index f45bdb493..69843cc58 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerNonLinear.hpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerNonLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PerCent.hpp" #include "Reactance.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerNonLinear_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerSymmetrical.cpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerSymmetrical.cpp index dc762e6d2..ffef2af3c 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerSymmetrical.cpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerSymmetrical.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerSymmetrical(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerSymmetrical::PhaseTapChangerSymmetrical() {} PhaseTapChangerSymmetrical::~PhaseTapChangerSymmetrical() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerSymmetrical::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerSymmetrical::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerSymmetrical::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerSymmetrical::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerSymmetrical::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerSymmetrical::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChangerNonLinear::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerSymmetrical::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerSymmetrical::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerSymmetrical::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char PhaseTapChangerSymmetrical::debugName[] = "PhaseTapChangerSymmetrical"; @@ -46,7 +78,7 @@ const char* PhaseTapChangerSymmetrical::debugString() const void PhaseTapChangerSymmetrical::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerSymmetrical", &PhaseTapChangerSymmetrical_factory); + factory_map.emplace("PhaseTapChangerSymmetrical", &PhaseTapChangerSymmetrical_factory); } void PhaseTapChangerSymmetrical::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void PhaseTapChangerSymmetrical::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerSymmetrical::declare() { return BaseClassDefiner(PhaseTapChangerSymmetrical::addConstructToMap, PhaseTapChangerSymmetrical::addPrimitiveAssignFnsToMap, PhaseTapChangerSymmetrical::addClassAssignFnsToMap, PhaseTapChangerSymmetrical::debugName); } +std::map PhaseTapChangerSymmetrical::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChangerNonLinear::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerSymmetrical_factory() diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerSymmetrical.hpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerSymmetrical.hpp index ee1910790..87115edd0 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerSymmetrical.hpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerSymmetrical.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChangerNonLinear.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerSymmetrical_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTable.cpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTable.cpp index 81e747699..567dc203d 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTable.cpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTable.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTable.PhaseTapChangerTablePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerTable.PhaseTapChangerTabular", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTable::PhaseTapChangerTable() {} PhaseTapChangerTable::~PhaseTapChangerTable() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTable::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTable::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerTable.PhaseTapChangerTabular", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTable::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTable::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTablePoint_PhaseTapChangerTable(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* PhaseTapChangerTable::debugString() const void PhaseTapChangerTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTable", &PhaseTapChangerTable_factory); + factory_map.emplace("PhaseTapChangerTable", &PhaseTapChangerTable_factory); } void PhaseTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void PhaseTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", &assign_PhaseTapChangerTable_PhaseTapChangerTablePoint); - assign_map.emplace("cim:PhaseTapChangerTable.PhaseTapChangerTabular", &assign_PhaseTapChangerTable_PhaseTapChangerTabular); + assign_map.emplace("PhaseTapChangerTable.PhaseTapChangerTablePoint", &assign_PhaseTapChangerTable_PhaseTapChangerTablePoint); + assign_map.emplace("PhaseTapChangerTable.PhaseTapChangerTabular", &assign_PhaseTapChangerTable_PhaseTapChangerTabular); } void PhaseTapChangerTable::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void PhaseTapChangerTable::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTable::declare() { return BaseClassDefiner(PhaseTapChangerTable::addConstructToMap, PhaseTapChangerTable::addPrimitiveAssignFnsToMap, PhaseTapChangerTable::addClassAssignFnsToMap, PhaseTapChangerTable::debugName); } +std::map PhaseTapChangerTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTable_factory() diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTable.hpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTable.hpp index 9b76ee650..3cebfaef0 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTable.hpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTable_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTablePoint.cpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTablePoint.cpp index e4c877019..2926432a6 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTablePoint.cpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTablePoint.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTablePoint.PhaseTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerTablePoint.angle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTablePoint::PhaseTapChangerTablePoint() : PhaseTapChangerTable(nullptr) {} PhaseTapChangerTablePoint::~PhaseTapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerTablePoint.angle", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChangerTablePoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTable_PhaseTapChangerTablePoint(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* PhaseTapChangerTablePoint::debugString() const void PhaseTapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTablePoint", &PhaseTapChangerTablePoint_factory); + factory_map.emplace("PhaseTapChangerTablePoint", &PhaseTapChangerTablePoint_factory); } void PhaseTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTablePoint.angle", &assign_PhaseTapChangerTablePoint_angle); + assign_map.emplace("PhaseTapChangerTablePoint.angle", &assign_PhaseTapChangerTablePoint_angle); } void PhaseTapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", &assign_PhaseTapChangerTablePoint_PhaseTapChangerTable); + assign_map.emplace("PhaseTapChangerTablePoint.PhaseTapChangerTable", &assign_PhaseTapChangerTablePoint_PhaseTapChangerTable); } void PhaseTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTablePoint.angle", &get_PhaseTapChangerTablePoint_angle); + get_map.emplace("PhaseTapChangerTablePoint.angle", &get_PhaseTapChangerTablePoint_angle); } void PhaseTapChangerTablePoint::addClassGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", &get_PhaseTapChangerTablePoint_PhaseTapChangerTable); + get_map.emplace("PhaseTapChangerTablePoint.PhaseTapChangerTable", &get_PhaseTapChangerTablePoint_PhaseTapChangerTable); } void PhaseTapChangerTablePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void PhaseTapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTablePoint::declare() { return BaseClassDefiner(PhaseTapChangerTablePoint::addConstructToMap, PhaseTapChangerTablePoint::addPrimitiveAssignFnsToMap, PhaseTapChangerTablePoint::addClassAssignFnsToMap, PhaseTapChangerTablePoint::debugName); } +std::map PhaseTapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChangerTablePoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTablePoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTablePoint.hpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTablePoint.hpp index 451bb17ad..d2d72b54a 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTablePoint.hpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChangerTablePoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTablePoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTabular.cpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTabular.cpp index 4d55ad1ae..5d844090b 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTabular.cpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTabular.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTabular(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTabular.PhaseTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTabular::PhaseTapChangerTabular() : PhaseTapChangerTable(nullptr) {} PhaseTapChangerTabular::~PhaseTapChangerTabular() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTabular::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTabular::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTabular.PhaseTapChangerTable", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTabular::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTabular::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTabular::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTabular::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTabular::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTabular::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTabular::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTable_PhaseTapChangerTabular(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* PhaseTapChangerTabular::debugString() const void PhaseTapChangerTabular::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTabular", &PhaseTapChangerTabular_factory); + factory_map.emplace("PhaseTapChangerTabular", &PhaseTapChangerTabular_factory); } void PhaseTapChangerTabular::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void PhaseTapChangerTabular::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTabular.PhaseTapChangerTable", &assign_PhaseTapChangerTabular_PhaseTapChangerTable); + assign_map.emplace("PhaseTapChangerTabular.PhaseTapChangerTable", &assign_PhaseTapChangerTabular_PhaseTapChangerTable); } void PhaseTapChangerTabular::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void PhaseTapChangerTabular::addPrimitiveGetFnsToMap(std::map& get_map) const { PhaseTapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTabular.PhaseTapChangerTable", &get_PhaseTapChangerTabular_PhaseTapChangerTable); + get_map.emplace("PhaseTapChangerTabular.PhaseTapChangerTable", &get_PhaseTapChangerTabular_PhaseTapChangerTable); } void PhaseTapChangerTabular::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void PhaseTapChangerTabular::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTabular::declare() { return BaseClassDefiner(PhaseTapChangerTabular::addConstructToMap, PhaseTapChangerTabular::addPrimitiveAssignFnsToMap, PhaseTapChangerTabular::addClassAssignFnsToMap, PhaseTapChangerTabular::debugName); } +std::map PhaseTapChangerTabular::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTabular_factory() diff --git a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTabular.hpp b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTabular.hpp index 85b69cbec..f779f0918 100644 --- a/CGMES_2.4.13_18DEC2013/PhaseTapChangerTabular.hpp +++ b/CGMES_2.4.13_18DEC2013/PhaseTapChangerTabular.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -30,8 +31,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -39,7 +47,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTabular_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PositionPoint.cpp b/CGMES_2.4.13_18DEC2013/PositionPoint.cpp index 9fbc902cc..33f097ca3 100644 --- a/CGMES_2.4.13_18DEC2013/PositionPoint.cpp +++ b/CGMES_2.4.13_18DEC2013/PositionPoint.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PositionPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PositionPoint.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.xPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.yPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.zPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + PositionPoint::PositionPoint() : Location(nullptr) {} PositionPoint::~PositionPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& PositionPoint::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PositionPoint::getClassNamespaceUrl() const { - { "cim:PositionPoint.Location", { CGMESProfile::GL, } }, - { "cim:PositionPoint.sequenceNumber", { CGMESProfile::GL, } }, - { "cim:PositionPoint.xPosition", { CGMESProfile::GL, } }, - { "cim:PositionPoint.yPosition", { CGMESProfile::GL, } }, - { "cim:PositionPoint.zPosition", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PositionPoint::getPossibleProfilesForClass() const +const std::string& PositionPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PositionPoint::getPossibleProfilesForAttributes() const +const std::list& PositionPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PositionPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PositionPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PositionPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Location_PositionPoints(BaseClass*, BaseClass*); @@ -199,35 +231,35 @@ const char* PositionPoint::debugString() const void PositionPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PositionPoint", &PositionPoint_factory); + factory_map.emplace("PositionPoint", &PositionPoint_factory); } void PositionPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PositionPoint.sequenceNumber", &assign_PositionPoint_sequenceNumber); - assign_map.emplace("cim:PositionPoint.xPosition", &assign_PositionPoint_xPosition); - assign_map.emplace("cim:PositionPoint.yPosition", &assign_PositionPoint_yPosition); - assign_map.emplace("cim:PositionPoint.zPosition", &assign_PositionPoint_zPosition); + assign_map.emplace("PositionPoint.sequenceNumber", &assign_PositionPoint_sequenceNumber); + assign_map.emplace("PositionPoint.xPosition", &assign_PositionPoint_xPosition); + assign_map.emplace("PositionPoint.yPosition", &assign_PositionPoint_yPosition); + assign_map.emplace("PositionPoint.zPosition", &assign_PositionPoint_zPosition); } void PositionPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PositionPoint.Location", &assign_PositionPoint_Location); + assign_map.emplace("PositionPoint.Location", &assign_PositionPoint_Location); } void PositionPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PositionPoint.sequenceNumber", &get_PositionPoint_sequenceNumber); - get_map.emplace("cim:PositionPoint.xPosition", &get_PositionPoint_xPosition); - get_map.emplace("cim:PositionPoint.yPosition", &get_PositionPoint_yPosition); - get_map.emplace("cim:PositionPoint.zPosition", &get_PositionPoint_zPosition); + get_map.emplace("PositionPoint.sequenceNumber", &get_PositionPoint_sequenceNumber); + get_map.emplace("PositionPoint.xPosition", &get_PositionPoint_xPosition); + get_map.emplace("PositionPoint.yPosition", &get_PositionPoint_yPosition); + get_map.emplace("PositionPoint.zPosition", &get_PositionPoint_zPosition); } void PositionPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PositionPoint.Location", &get_PositionPoint_Location); + get_map.emplace("PositionPoint.Location", &get_PositionPoint_Location); } void PositionPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -235,11 +267,25 @@ void PositionPoint::addEnumGetFnsToMap(std::map& get_ BaseClass::addEnumGetFnsToMap(get_map); } +bool PositionPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PositionPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PositionPoint::declare() { return BaseClassDefiner(PositionPoint::addConstructToMap, PositionPoint::addPrimitiveAssignFnsToMap, PositionPoint::addClassAssignFnsToMap, PositionPoint::debugName); } +std::map PositionPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PositionPoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/PositionPoint.hpp b/CGMES_2.4.13_18DEC2013/PositionPoint.hpp index b7eead20b..e712636e2 100644 --- a/CGMES_2.4.13_18DEC2013/PositionPoint.hpp +++ b/CGMES_2.4.13_18DEC2013/PositionPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "String.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PositionPoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PowerSystemResource.cpp b/CGMES_2.4.13_18DEC2013/PowerSystemResource.cpp index dd4878f2c..83bc348a9 100644 --- a/CGMES_2.4.13_18DEC2013/PowerSystemResource.cpp +++ b/CGMES_2.4.13_18DEC2013/PowerSystemResource.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemResource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::GL, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemResource.Controls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerSystemResource.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PowerSystemResource.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemResource::PowerSystemResource() : Location(nullptr) {} PowerSystemResource::~PowerSystemResource() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemResource::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::GL, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemResource::getClassNamespaceUrl() const { - { "cim:PowerSystemResource.Controls", { CGMESProfile::EQ, } }, - { "cim:PowerSystemResource.Location", { CGMESProfile::GL, } }, - { "cim:PowerSystemResource.Measurements", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemResource::getPossibleProfilesForClass() const +const std::string& PowerSystemResource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemResource::getPossibleProfilesForAttributes() const +const std::list& PowerSystemResource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemResource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemResource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemResource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Control_PowerSystemResource(BaseClass*, BaseClass*); @@ -110,7 +142,7 @@ const char* PowerSystemResource::debugString() const void PowerSystemResource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemResource", &PowerSystemResource_factory); + factory_map.emplace("PowerSystemResource", &PowerSystemResource_factory); } void PowerSystemResource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -119,9 +151,9 @@ void PowerSystemResource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemResource.Controls", &assign_PowerSystemResource_Controls); - assign_map.emplace("cim:PowerSystemResource.Location", &assign_PowerSystemResource_Location); - assign_map.emplace("cim:PowerSystemResource.Measurements", &assign_PowerSystemResource_Measurements); + assign_map.emplace("PowerSystemResource.Controls", &assign_PowerSystemResource_Controls); + assign_map.emplace("PowerSystemResource.Location", &assign_PowerSystemResource_Location); + assign_map.emplace("PowerSystemResource.Measurements", &assign_PowerSystemResource_Measurements); } void PowerSystemResource::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void PowerSystemResource::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool PowerSystemResource::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerSystemResource" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemResource::declare() { return BaseClassDefiner(PowerSystemResource::addConstructToMap, PowerSystemResource::addPrimitiveAssignFnsToMap, PowerSystemResource::addClassAssignFnsToMap, PowerSystemResource::debugName); } +std::map PowerSystemResource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemResource_factory() diff --git a/CGMES_2.4.13_18DEC2013/PowerSystemResource.hpp b/CGMES_2.4.13_18DEC2013/PowerSystemResource.hpp index ddf8d2070..4fc04a52d 100644 --- a/CGMES_2.4.13_18DEC2013/PowerSystemResource.hpp +++ b/CGMES_2.4.13_18DEC2013/PowerSystemResource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemResource_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerDynamics.cpp b/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerDynamics.cpp index fb50d8a2e..096271c1f 100644 --- a/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemStabilizerDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemStabilizerDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PowerSystemStabilizerDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemStabilizerDynamics::PowerSystemStabilizerDynamics() : ExcitationSystemDynamics(nullptr) {} PowerSystemStabilizerDynamics::~PowerSystemStabilizerDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemStabilizerDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemStabilizerDynamics::getClassNamespaceUrl() const { - { "cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:PowerSystemStabilizerDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemStabilizerDynamics::getPossibleProfilesForClass() const +const std::string& PowerSystemStabilizerDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes() const +const std::list& PowerSystemStabilizerDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemStabilizerDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemStabilizerDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemStabilizerDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* PowerSystemStabilizerDynamics::debugString() const void PowerSystemStabilizerDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemStabilizerDynamics", &PowerSystemStabilizerDynamics_factory); + factory_map.emplace("PowerSystemStabilizerDynamics", &PowerSystemStabilizerDynamics_factory); } void PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void PowerSystemStabilizerDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &assign_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:PowerSystemStabilizerDynamics.RemoteInputSignal", &assign_PowerSystemStabilizerDynamics_RemoteInputSignal); + assign_map.emplace("PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &assign_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); + assign_map.emplace("PowerSystemStabilizerDynamics.RemoteInputSignal", &assign_PowerSystemStabilizerDynamics_RemoteInputSignal); } void PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &get_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); + get_map.emplace("PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &get_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); } void PowerSystemStabilizerDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void PowerSystemStabilizerDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemStabilizerDynamics::declare() { return BaseClassDefiner(PowerSystemStabilizerDynamics::addConstructToMap, PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap, PowerSystemStabilizerDynamics::addClassAssignFnsToMap, PowerSystemStabilizerDynamics::debugName); } +std::map PowerSystemStabilizerDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemStabilizerDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerDynamics.hpp b/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerDynamics.hpp index 949c55171..99a1a149c 100644 --- a/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemStabilizerDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerUserDefined.cpp b/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerUserDefined.cpp index a444c0d8b..316f0a69f 100644 --- a/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemStabilizerUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PowerSystemStabilizerUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemStabilizerUserDefined::PowerSystemStabilizerUserDefined() {} PowerSystemStabilizerUserDefined::~PowerSystemStabilizerUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemStabilizerUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemStabilizerUserDefined::getClassNamespaceUrl() const { - { "cim:PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PowerSystemStabilizerUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemStabilizerUserDefined::getPossibleProfilesForClass() const +const std::string& PowerSystemStabilizerUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemStabilizerUserDefined::getPossibleProfilesForAttributes() const +const std::list& PowerSystemStabilizerUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemStabilizerUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemStabilizerUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemStabilizerUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PowerSystemStabilizerUserDefined::debugString() const void PowerSystemStabilizerUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemStabilizerUserDefined", &PowerSystemStabilizerUserDefined_factory); + factory_map.emplace("PowerSystemStabilizerUserDefined", &PowerSystemStabilizerUserDefined_factory); } void PowerSystemStabilizerUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerUserDefined.proprietary", &assign_PowerSystemStabilizerUserDefined_proprietary); + assign_map.emplace("PowerSystemStabilizerUserDefined.proprietary", &assign_PowerSystemStabilizerUserDefined_proprietary); } void PowerSystemStabilizerUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", &assign_PowerSystemStabilizerUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", &assign_PowerSystemStabilizerUserDefined_ProprietaryParameterDynamics); } void PowerSystemStabilizerUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerSystemStabilizerUserDefined.proprietary", &get_PowerSystemStabilizerUserDefined_proprietary); + get_map.emplace("PowerSystemStabilizerUserDefined.proprietary", &get_PowerSystemStabilizerUserDefined_proprietary); } void PowerSystemStabilizerUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PowerSystemStabilizerUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemStabilizerUserDefined::declare() { return BaseClassDefiner(PowerSystemStabilizerUserDefined::addConstructToMap, PowerSystemStabilizerUserDefined::addPrimitiveAssignFnsToMap, PowerSystemStabilizerUserDefined::addClassAssignFnsToMap, PowerSystemStabilizerUserDefined::debugName); } +std::map PowerSystemStabilizerUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemStabilizerUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerUserDefined.hpp b/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerUserDefined.hpp index db8af6276..2a7ca42a2 100644 --- a/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/PowerSystemStabilizerUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemStabilizerUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PowerTransformer.cpp b/CGMES_2.4.13_18DEC2013/PowerTransformer.cpp index 80ac17033..16e4fc975 100644 --- a/CGMES_2.4.13_18DEC2013/PowerTransformer.cpp +++ b/CGMES_2.4.13_18DEC2013/PowerTransformer.cpp @@ -12,38 +12,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerTransformer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerTransformer.PowerTransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShCircuitHighestOperatingCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShCircuitHighestOperatingVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShortCircuitAnglePf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.highSideMinOperatingU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.isPartOfGeneratorUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.operationalValuesConsidered", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerTransformer::PowerTransformer() {} PowerTransformer::~PowerTransformer() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerTransformer::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerTransformer::getClassNamespaceUrl() const { - { "cim:PowerTransformer.PowerTransformerEnd", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShortCircuitAnglePf", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.highSideMinOperatingU", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.isPartOfGeneratorUnit", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.operationalValuesConsidered", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerTransformer::getPossibleProfilesForClass() const +const std::string& PowerTransformer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerTransformer::getPossibleProfilesForAttributes() const +const std::list& PowerTransformer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerTransformer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerTransformer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerTransformer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerTransformerEnd_PowerTransformer(BaseClass*, BaseClass*); @@ -246,33 +278,33 @@ const char* PowerTransformer::debugString() const void PowerTransformer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerTransformer", &PowerTransformer_factory); + factory_map.emplace("PowerTransformer", &PowerTransformer_factory); } void PowerTransformer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", &assign_PowerTransformer_beforeShCircuitHighestOperatingCurrent); - assign_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", &assign_PowerTransformer_beforeShCircuitHighestOperatingVoltage); - assign_map.emplace("cim:PowerTransformer.beforeShortCircuitAnglePf", &assign_PowerTransformer_beforeShortCircuitAnglePf); - assign_map.emplace("cim:PowerTransformer.highSideMinOperatingU", &assign_PowerTransformer_highSideMinOperatingU); - assign_map.emplace("cim:PowerTransformer.isPartOfGeneratorUnit", &assign_PowerTransformer_isPartOfGeneratorUnit); - assign_map.emplace("cim:PowerTransformer.operationalValuesConsidered", &assign_PowerTransformer_operationalValuesConsidered); + assign_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingCurrent", &assign_PowerTransformer_beforeShCircuitHighestOperatingCurrent); + assign_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingVoltage", &assign_PowerTransformer_beforeShCircuitHighestOperatingVoltage); + assign_map.emplace("PowerTransformer.beforeShortCircuitAnglePf", &assign_PowerTransformer_beforeShortCircuitAnglePf); + assign_map.emplace("PowerTransformer.highSideMinOperatingU", &assign_PowerTransformer_highSideMinOperatingU); + assign_map.emplace("PowerTransformer.isPartOfGeneratorUnit", &assign_PowerTransformer_isPartOfGeneratorUnit); + assign_map.emplace("PowerTransformer.operationalValuesConsidered", &assign_PowerTransformer_operationalValuesConsidered); } void PowerTransformer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformer.PowerTransformerEnd", &assign_PowerTransformer_PowerTransformerEnd); + assign_map.emplace("PowerTransformer.PowerTransformerEnd", &assign_PowerTransformer_PowerTransformerEnd); } void PowerTransformer::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", &get_PowerTransformer_beforeShCircuitHighestOperatingCurrent); - get_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", &get_PowerTransformer_beforeShCircuitHighestOperatingVoltage); - get_map.emplace("cim:PowerTransformer.beforeShortCircuitAnglePf", &get_PowerTransformer_beforeShortCircuitAnglePf); - get_map.emplace("cim:PowerTransformer.highSideMinOperatingU", &get_PowerTransformer_highSideMinOperatingU); - get_map.emplace("cim:PowerTransformer.isPartOfGeneratorUnit", &get_PowerTransformer_isPartOfGeneratorUnit); - get_map.emplace("cim:PowerTransformer.operationalValuesConsidered", &get_PowerTransformer_operationalValuesConsidered); + get_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingCurrent", &get_PowerTransformer_beforeShCircuitHighestOperatingCurrent); + get_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingVoltage", &get_PowerTransformer_beforeShCircuitHighestOperatingVoltage); + get_map.emplace("PowerTransformer.beforeShortCircuitAnglePf", &get_PowerTransformer_beforeShortCircuitAnglePf); + get_map.emplace("PowerTransformer.highSideMinOperatingU", &get_PowerTransformer_highSideMinOperatingU); + get_map.emplace("PowerTransformer.isPartOfGeneratorUnit", &get_PowerTransformer_isPartOfGeneratorUnit); + get_map.emplace("PowerTransformer.operationalValuesConsidered", &get_PowerTransformer_operationalValuesConsidered); } void PowerTransformer::addClassGetFnsToMap(std::map& get_map) const @@ -285,11 +317,25 @@ void PowerTransformer::addEnumGetFnsToMap(std::map& g ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool PowerTransformer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerTransformer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PowerTransformer::declare() { return BaseClassDefiner(PowerTransformer::addConstructToMap, PowerTransformer::addPrimitiveAssignFnsToMap, PowerTransformer::addClassAssignFnsToMap, PowerTransformer::debugName); } +std::map PowerTransformer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerTransformer_factory() diff --git a/CGMES_2.4.13_18DEC2013/PowerTransformer.hpp b/CGMES_2.4.13_18DEC2013/PowerTransformer.hpp index 0970df0d5..1b1abe544 100644 --- a/CGMES_2.4.13_18DEC2013/PowerTransformer.hpp +++ b/CGMES_2.4.13_18DEC2013/PowerTransformer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerTransformer_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PowerTransformerEnd.cpp b/CGMES_2.4.13_18DEC2013/PowerTransformerEnd.cpp index cb0bb8628..f5267297b 100644 --- a/CGMES_2.4.13_18DEC2013/PowerTransformerEnd.cpp +++ b/CGMES_2.4.13_18DEC2013/PowerTransformerEnd.cpp @@ -12,44 +12,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerTransformerEnd(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerTransformerEnd.PowerTransformer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.connectionKind", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.phaseAngleClock", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.ratedS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.ratedU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerTransformerEnd::PowerTransformerEnd() : PowerTransformer(nullptr) {} PowerTransformerEnd::~PowerTransformerEnd() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerTransformerEnd::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerTransformerEnd::getClassNamespaceUrl() const { - { "cim:PowerTransformerEnd.PowerTransformer", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.b", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.b0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.connectionKind", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.g", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.g0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.phaseAngleClock", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.r", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.r0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.ratedS", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.ratedU", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.x", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerTransformerEnd::getPossibleProfilesForClass() const +const std::string& PowerTransformerEnd::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerTransformerEnd::getPossibleProfilesForAttributes() const +const std::list& PowerTransformerEnd::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TransformerEnd::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerTransformerEnd::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerTransformerEnd::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerTransformerEnd::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerTransformer_PowerTransformerEnd(BaseClass*, BaseClass*); @@ -439,56 +471,62 @@ const char* PowerTransformerEnd::debugString() const void PowerTransformerEnd::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerTransformerEnd", &PowerTransformerEnd_factory); + factory_map.emplace("PowerTransformerEnd", &PowerTransformerEnd_factory); } void PowerTransformerEnd::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformerEnd.b", &assign_PowerTransformerEnd_b); - assign_map.emplace("cim:PowerTransformerEnd.b0", &assign_PowerTransformerEnd_b0); - assign_map.emplace("cim:PowerTransformerEnd.connectionKind", &assign_PowerTransformerEnd_connectionKind); - assign_map.emplace("cim:PowerTransformerEnd.g", &assign_PowerTransformerEnd_g); - assign_map.emplace("cim:PowerTransformerEnd.g0", &assign_PowerTransformerEnd_g0); - assign_map.emplace("cim:PowerTransformerEnd.phaseAngleClock", &assign_PowerTransformerEnd_phaseAngleClock); - assign_map.emplace("cim:PowerTransformerEnd.r", &assign_PowerTransformerEnd_r); - assign_map.emplace("cim:PowerTransformerEnd.r0", &assign_PowerTransformerEnd_r0); - assign_map.emplace("cim:PowerTransformerEnd.ratedS", &assign_PowerTransformerEnd_ratedS); - assign_map.emplace("cim:PowerTransformerEnd.ratedU", &assign_PowerTransformerEnd_ratedU); - assign_map.emplace("cim:PowerTransformerEnd.x", &assign_PowerTransformerEnd_x); - assign_map.emplace("cim:PowerTransformerEnd.x0", &assign_PowerTransformerEnd_x0); + assign_map.emplace("PowerTransformerEnd.b", &assign_PowerTransformerEnd_b); + assign_map.emplace("PowerTransformerEnd.b0", &assign_PowerTransformerEnd_b0); + assign_map.emplace("PowerTransformerEnd.connectionKind", &assign_PowerTransformerEnd_connectionKind); + assign_map.emplace("PowerTransformerEnd.g", &assign_PowerTransformerEnd_g); + assign_map.emplace("PowerTransformerEnd.g0", &assign_PowerTransformerEnd_g0); + assign_map.emplace("PowerTransformerEnd.phaseAngleClock", &assign_PowerTransformerEnd_phaseAngleClock); + assign_map.emplace("PowerTransformerEnd.r", &assign_PowerTransformerEnd_r); + assign_map.emplace("PowerTransformerEnd.r0", &assign_PowerTransformerEnd_r0); + assign_map.emplace("PowerTransformerEnd.ratedS", &assign_PowerTransformerEnd_ratedS); + assign_map.emplace("PowerTransformerEnd.ratedU", &assign_PowerTransformerEnd_ratedU); + assign_map.emplace("PowerTransformerEnd.x", &assign_PowerTransformerEnd_x); + assign_map.emplace("PowerTransformerEnd.x0", &assign_PowerTransformerEnd_x0); } void PowerTransformerEnd::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformerEnd.PowerTransformer", &assign_PowerTransformerEnd_PowerTransformer); + assign_map.emplace("PowerTransformerEnd.PowerTransformer", &assign_PowerTransformerEnd_PowerTransformer); } void PowerTransformerEnd::addPrimitiveGetFnsToMap(std::map& get_map) const { TransformerEnd::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.b", &get_PowerTransformerEnd_b); - get_map.emplace("cim:PowerTransformerEnd.b0", &get_PowerTransformerEnd_b0); - get_map.emplace("cim:PowerTransformerEnd.g", &get_PowerTransformerEnd_g); - get_map.emplace("cim:PowerTransformerEnd.g0", &get_PowerTransformerEnd_g0); - get_map.emplace("cim:PowerTransformerEnd.phaseAngleClock", &get_PowerTransformerEnd_phaseAngleClock); - get_map.emplace("cim:PowerTransformerEnd.r", &get_PowerTransformerEnd_r); - get_map.emplace("cim:PowerTransformerEnd.r0", &get_PowerTransformerEnd_r0); - get_map.emplace("cim:PowerTransformerEnd.ratedS", &get_PowerTransformerEnd_ratedS); - get_map.emplace("cim:PowerTransformerEnd.ratedU", &get_PowerTransformerEnd_ratedU); - get_map.emplace("cim:PowerTransformerEnd.x", &get_PowerTransformerEnd_x); - get_map.emplace("cim:PowerTransformerEnd.x0", &get_PowerTransformerEnd_x0); + get_map.emplace("PowerTransformerEnd.b", &get_PowerTransformerEnd_b); + get_map.emplace("PowerTransformerEnd.b0", &get_PowerTransformerEnd_b0); + get_map.emplace("PowerTransformerEnd.g", &get_PowerTransformerEnd_g); + get_map.emplace("PowerTransformerEnd.g0", &get_PowerTransformerEnd_g0); + get_map.emplace("PowerTransformerEnd.phaseAngleClock", &get_PowerTransformerEnd_phaseAngleClock); + get_map.emplace("PowerTransformerEnd.r", &get_PowerTransformerEnd_r); + get_map.emplace("PowerTransformerEnd.r0", &get_PowerTransformerEnd_r0); + get_map.emplace("PowerTransformerEnd.ratedS", &get_PowerTransformerEnd_ratedS); + get_map.emplace("PowerTransformerEnd.ratedU", &get_PowerTransformerEnd_ratedU); + get_map.emplace("PowerTransformerEnd.x", &get_PowerTransformerEnd_x); + get_map.emplace("PowerTransformerEnd.x0", &get_PowerTransformerEnd_x0); } void PowerTransformerEnd::addClassGetFnsToMap(std::map& get_map) const { TransformerEnd::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.PowerTransformer", &get_PowerTransformerEnd_PowerTransformer); + get_map.emplace("PowerTransformerEnd.PowerTransformer", &get_PowerTransformerEnd_PowerTransformer); } void PowerTransformerEnd::addEnumGetFnsToMap(std::map& get_map) const { TransformerEnd::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.connectionKind", &get_PowerTransformerEnd_connectionKind); + get_map.emplace("PowerTransformerEnd.connectionKind", &get_PowerTransformerEnd_connectionKind); +} + +bool PowerTransformerEnd::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerTransformerEnd" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PowerTransformerEnd::declare() @@ -496,6 +534,14 @@ const BaseClassDefiner PowerTransformerEnd::declare() return BaseClassDefiner(PowerTransformerEnd::addConstructToMap, PowerTransformerEnd::addPrimitiveAssignFnsToMap, PowerTransformerEnd::addClassAssignFnsToMap, PowerTransformerEnd::debugName); } +std::map PowerTransformerEnd::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TransformerEnd::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerTransformerEnd_factory() diff --git a/CGMES_2.4.13_18DEC2013/PowerTransformerEnd.hpp b/CGMES_2.4.13_18DEC2013/PowerTransformerEnd.hpp index b4f4de48e..b4eced55b 100644 --- a/CGMES_2.4.13_18DEC2013/PowerTransformerEnd.hpp +++ b/CGMES_2.4.13_18DEC2013/PowerTransformerEnd.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TransformerEnd.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" #include "Conductance.hpp" #include "Integer.hpp" @@ -75,8 +76,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -84,7 +92,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerTransformerEnd_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ProprietaryParameterDynamics.cpp b/CGMES_2.4.13_18DEC2013/ProprietaryParameterDynamics.cpp index cc1ac6f02..95b79809e 100644 --- a/CGMES_2.4.13_18DEC2013/ProprietaryParameterDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/ProprietaryParameterDynamics.cpp @@ -29,53 +29,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ProprietaryParameterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ProprietaryParameterDynamics.AsynchronousMachineUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.ExcitationSystemUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.LoadUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.MechanicalLoadUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PFVArControllerType1UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PFVArControllerType2UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.SynchronousMachineUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.TurbineGovernorUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VoltageAdjusterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VoltageCompensatorUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindPlantUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindType1or2UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindType3or4UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.booleanParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.floatParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.integerParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.parameterNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ProprietaryParameterDynamics::ProprietaryParameterDynamics() : AsynchronousMachineUserDefined(nullptr), DiscontinuousExcitationControlUserDefined(nullptr), ExcitationSystemUserDefined(nullptr), LoadUserDefined(nullptr), MechanicalLoadUserDefined(nullptr), OverexcitationLimiterUserDefined(nullptr), PFVArControllerType1UserDefined(nullptr), PFVArControllerType2UserDefined(nullptr), PowerSystemStabilizerUserDefined(nullptr), SynchronousMachineUserDefined(nullptr), TurbineGovernorUserDefined(nullptr), TurbineLoadControllerUserDefined(nullptr), UnderexcitationLimiterUserDefined(nullptr), VoltageAdjusterUserDefined(nullptr), VoltageCompensatorUserDefined(nullptr), WindPlantUserDefined(nullptr), WindType1or2UserDefined(nullptr), WindType3or4UserDefined(nullptr) {} ProprietaryParameterDynamics::~ProprietaryParameterDynamics() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.LoadUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindPlantUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindType1or2UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindType3or4UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.booleanParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.floatParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.integerParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.parameterNumber", { CGMESProfile::DY, } }, -}; - -std::list -ProprietaryParameterDynamics::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ProprietaryParameterDynamics::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ProprietaryParameterDynamics::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ProprietaryParameterDynamics::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ProprietaryParameterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ProprietaryParameterDynamics::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ProprietaryParameterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ProprietaryParameterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ProprietaryParameterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics(BaseClass*, BaseClass*); @@ -760,69 +792,69 @@ const char* ProprietaryParameterDynamics::debugString() const void ProprietaryParameterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ProprietaryParameterDynamics", &ProprietaryParameterDynamics_factory); + factory_map.emplace("ProprietaryParameterDynamics", &ProprietaryParameterDynamics_factory); } void ProprietaryParameterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ProprietaryParameterDynamics.booleanParameterValue", &assign_ProprietaryParameterDynamics_booleanParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.floatParameterValue", &assign_ProprietaryParameterDynamics_floatParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.integerParameterValue", &assign_ProprietaryParameterDynamics_integerParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.parameterNumber", &assign_ProprietaryParameterDynamics_parameterNumber); + assign_map.emplace("ProprietaryParameterDynamics.booleanParameterValue", &assign_ProprietaryParameterDynamics_booleanParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.floatParameterValue", &assign_ProprietaryParameterDynamics_floatParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.integerParameterValue", &assign_ProprietaryParameterDynamics_integerParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.parameterNumber", &assign_ProprietaryParameterDynamics_parameterNumber); } void ProprietaryParameterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", &assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.LoadUserDefined", &assign_ProprietaryParameterDynamics_LoadUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", &assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", &assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindPlantUserDefined", &assign_ProprietaryParameterDynamics_WindPlantUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindType1or2UserDefined", &assign_ProprietaryParameterDynamics_WindType1or2UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindType3or4UserDefined", &assign_ProprietaryParameterDynamics_WindType3or4UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.ExcitationSystemUserDefined", &assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.LoadUserDefined", &assign_ProprietaryParameterDynamics_LoadUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.MechanicalLoadUserDefined", &assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.SynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.TurbineGovernorUserDefined", &assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindPlantUserDefined", &assign_ProprietaryParameterDynamics_WindPlantUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindType1or2UserDefined", &assign_ProprietaryParameterDynamics_WindType1or2UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindType3or4UserDefined", &assign_ProprietaryParameterDynamics_WindType3or4UserDefined); } void ProprietaryParameterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ProprietaryParameterDynamics.booleanParameterValue", &get_ProprietaryParameterDynamics_booleanParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.floatParameterValue", &get_ProprietaryParameterDynamics_floatParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.integerParameterValue", &get_ProprietaryParameterDynamics_integerParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.parameterNumber", &get_ProprietaryParameterDynamics_parameterNumber); + get_map.emplace("ProprietaryParameterDynamics.booleanParameterValue", &get_ProprietaryParameterDynamics_booleanParameterValue); + get_map.emplace("ProprietaryParameterDynamics.floatParameterValue", &get_ProprietaryParameterDynamics_floatParameterValue); + get_map.emplace("ProprietaryParameterDynamics.integerParameterValue", &get_ProprietaryParameterDynamics_integerParameterValue); + get_map.emplace("ProprietaryParameterDynamics.parameterNumber", &get_ProprietaryParameterDynamics_parameterNumber); } void ProprietaryParameterDynamics::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &get_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", &get_ProprietaryParameterDynamics_ExcitationSystemUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.LoadUserDefined", &get_ProprietaryParameterDynamics_LoadUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", &get_ProprietaryParameterDynamics_MechanicalLoadUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &get_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_SynchronousMachineUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", &get_ProprietaryParameterDynamics_TurbineGovernorUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &get_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &get_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &get_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindPlantUserDefined", &get_ProprietaryParameterDynamics_WindPlantUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindType1or2UserDefined", &get_ProprietaryParameterDynamics_WindType1or2UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindType3or4UserDefined", &get_ProprietaryParameterDynamics_WindType3or4UserDefined); + get_map.emplace("ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); + get_map.emplace("ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &get_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); + get_map.emplace("ProprietaryParameterDynamics.ExcitationSystemUserDefined", &get_ProprietaryParameterDynamics_ExcitationSystemUserDefined); + get_map.emplace("ProprietaryParameterDynamics.LoadUserDefined", &get_ProprietaryParameterDynamics_LoadUserDefined); + get_map.emplace("ProprietaryParameterDynamics.MechanicalLoadUserDefined", &get_ProprietaryParameterDynamics_MechanicalLoadUserDefined); + get_map.emplace("ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); + get_map.emplace("ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); + get_map.emplace("ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &get_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); + get_map.emplace("ProprietaryParameterDynamics.SynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_SynchronousMachineUserDefined); + get_map.emplace("ProprietaryParameterDynamics.TurbineGovernorUserDefined", &get_ProprietaryParameterDynamics_TurbineGovernorUserDefined); + get_map.emplace("ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &get_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); + get_map.emplace("ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &get_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &get_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindPlantUserDefined", &get_ProprietaryParameterDynamics_WindPlantUserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindType1or2UserDefined", &get_ProprietaryParameterDynamics_WindType1or2UserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindType3or4UserDefined", &get_ProprietaryParameterDynamics_WindType3or4UserDefined); } void ProprietaryParameterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -830,11 +862,25 @@ void ProprietaryParameterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ProprietaryParameterDynamics::declare() { return BaseClassDefiner(ProprietaryParameterDynamics::addConstructToMap, ProprietaryParameterDynamics::addPrimitiveAssignFnsToMap, ProprietaryParameterDynamics::addClassAssignFnsToMap, ProprietaryParameterDynamics::debugName); } +std::map ProprietaryParameterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ProprietaryParameterDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/ProprietaryParameterDynamics.hpp b/CGMES_2.4.13_18DEC2013/ProprietaryParameterDynamics.hpp index 3aa47cdc9..68b680143 100644 --- a/CGMES_2.4.13_18DEC2013/ProprietaryParameterDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/ProprietaryParameterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -114,8 +115,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -123,7 +131,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ProprietaryParameterDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ProtectedSwitch.cpp b/CGMES_2.4.13_18DEC2013/ProtectedSwitch.cpp index 2b6f24097..ee53270e8 100644 --- a/CGMES_2.4.13_18DEC2013/ProtectedSwitch.cpp +++ b/CGMES_2.4.13_18DEC2013/ProtectedSwitch.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ProtectedSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + ProtectedSwitch::ProtectedSwitch() {} ProtectedSwitch::~ProtectedSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& ProtectedSwitch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ProtectedSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ProtectedSwitch::getPossibleProfilesForClass() const +const std::string& ProtectedSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ProtectedSwitch::getPossibleProfilesForAttributes() const +const std::list& ProtectedSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ProtectedSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ProtectedSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ProtectedSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char ProtectedSwitch::debugName[] = "ProtectedSwitch"; @@ -47,7 +79,7 @@ const char* ProtectedSwitch::debugString() const void ProtectedSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ProtectedSwitch", &ProtectedSwitch_factory); + factory_map.emplace("ProtectedSwitch", &ProtectedSwitch_factory); } void ProtectedSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void ProtectedSwitch::addEnumGetFnsToMap(std::map& ge Switch::addEnumGetFnsToMap(get_map); } +bool ProtectedSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ProtectedSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ProtectedSwitch::declare() { return BaseClassDefiner(ProtectedSwitch::addConstructToMap, ProtectedSwitch::addPrimitiveAssignFnsToMap, ProtectedSwitch::addClassAssignFnsToMap, ProtectedSwitch::debugName); } +std::map ProtectedSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ProtectedSwitch_factory() diff --git a/CGMES_2.4.13_18DEC2013/ProtectedSwitch.hpp b/CGMES_2.4.13_18DEC2013/ProtectedSwitch.hpp index e7161aa71..b76b5fc1b 100644 --- a/CGMES_2.4.13_18DEC2013/ProtectedSwitch.hpp +++ b/CGMES_2.4.13_18DEC2013/ProtectedSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ProtectedSwitch_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Pss1.cpp b/CGMES_2.4.13_18DEC2013/Pss1.cpp index a1bc68391..32430e875 100644 --- a/CGMES_2.4.13_18DEC2013/Pss1.cpp +++ b/CGMES_2.4.13_18DEC2013/Pss1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.kpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.kw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vadat", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss1::Pss1() {} Pss1::~Pss1() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss1::getClassNamespaceUrl() const { - { "cim:Pss1.kf", { CGMESProfile::DY, } }, - { "cim:Pss1.kpe", { CGMESProfile::DY, } }, - { "cim:Pss1.ks", { CGMESProfile::DY, } }, - { "cim:Pss1.kw", { CGMESProfile::DY, } }, - { "cim:Pss1.pmin", { CGMESProfile::DY, } }, - { "cim:Pss1.t10", { CGMESProfile::DY, } }, - { "cim:Pss1.t5", { CGMESProfile::DY, } }, - { "cim:Pss1.t6", { CGMESProfile::DY, } }, - { "cim:Pss1.t7", { CGMESProfile::DY, } }, - { "cim:Pss1.t8", { CGMESProfile::DY, } }, - { "cim:Pss1.t9", { CGMESProfile::DY, } }, - { "cim:Pss1.tpe", { CGMESProfile::DY, } }, - { "cim:Pss1.vadat", { CGMESProfile::DY, } }, - { "cim:Pss1.vsmn", { CGMESProfile::DY, } }, - { "cim:Pss1.vsmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss1::getPossibleProfilesForClass() const +const std::string& Pss1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss1::getPossibleProfilesForAttributes() const +const std::list& Pss1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss1_kf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* Pss1::debugString() const void Pss1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss1", &Pss1_factory); + factory_map.emplace("Pss1", &Pss1_factory); } void Pss1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss1.kf", &assign_Pss1_kf); - assign_map.emplace("cim:Pss1.kpe", &assign_Pss1_kpe); - assign_map.emplace("cim:Pss1.ks", &assign_Pss1_ks); - assign_map.emplace("cim:Pss1.kw", &assign_Pss1_kw); - assign_map.emplace("cim:Pss1.pmin", &assign_Pss1_pmin); - assign_map.emplace("cim:Pss1.t10", &assign_Pss1_t10); - assign_map.emplace("cim:Pss1.t5", &assign_Pss1_t5); - assign_map.emplace("cim:Pss1.t6", &assign_Pss1_t6); - assign_map.emplace("cim:Pss1.t7", &assign_Pss1_t7); - assign_map.emplace("cim:Pss1.t8", &assign_Pss1_t8); - assign_map.emplace("cim:Pss1.t9", &assign_Pss1_t9); - assign_map.emplace("cim:Pss1.tpe", &assign_Pss1_tpe); - assign_map.emplace("cim:Pss1.vadat", &assign_Pss1_vadat); - assign_map.emplace("cim:Pss1.vsmn", &assign_Pss1_vsmn); - assign_map.emplace("cim:Pss1.vsmx", &assign_Pss1_vsmx); + assign_map.emplace("Pss1.kf", &assign_Pss1_kf); + assign_map.emplace("Pss1.kpe", &assign_Pss1_kpe); + assign_map.emplace("Pss1.ks", &assign_Pss1_ks); + assign_map.emplace("Pss1.kw", &assign_Pss1_kw); + assign_map.emplace("Pss1.pmin", &assign_Pss1_pmin); + assign_map.emplace("Pss1.t10", &assign_Pss1_t10); + assign_map.emplace("Pss1.t5", &assign_Pss1_t5); + assign_map.emplace("Pss1.t6", &assign_Pss1_t6); + assign_map.emplace("Pss1.t7", &assign_Pss1_t7); + assign_map.emplace("Pss1.t8", &assign_Pss1_t8); + assign_map.emplace("Pss1.t9", &assign_Pss1_t9); + assign_map.emplace("Pss1.tpe", &assign_Pss1_tpe); + assign_map.emplace("Pss1.vadat", &assign_Pss1_vadat); + assign_map.emplace("Pss1.vsmn", &assign_Pss1_vsmn); + assign_map.emplace("Pss1.vsmx", &assign_Pss1_vsmx); } void Pss1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void Pss1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss1.kf", &get_Pss1_kf); - get_map.emplace("cim:Pss1.kpe", &get_Pss1_kpe); - get_map.emplace("cim:Pss1.ks", &get_Pss1_ks); - get_map.emplace("cim:Pss1.kw", &get_Pss1_kw); - get_map.emplace("cim:Pss1.pmin", &get_Pss1_pmin); - get_map.emplace("cim:Pss1.t10", &get_Pss1_t10); - get_map.emplace("cim:Pss1.t5", &get_Pss1_t5); - get_map.emplace("cim:Pss1.t6", &get_Pss1_t6); - get_map.emplace("cim:Pss1.t7", &get_Pss1_t7); - get_map.emplace("cim:Pss1.t8", &get_Pss1_t8); - get_map.emplace("cim:Pss1.t9", &get_Pss1_t9); - get_map.emplace("cim:Pss1.tpe", &get_Pss1_tpe); - get_map.emplace("cim:Pss1.vadat", &get_Pss1_vadat); - get_map.emplace("cim:Pss1.vsmn", &get_Pss1_vsmn); - get_map.emplace("cim:Pss1.vsmx", &get_Pss1_vsmx); + get_map.emplace("Pss1.kf", &get_Pss1_kf); + get_map.emplace("Pss1.kpe", &get_Pss1_kpe); + get_map.emplace("Pss1.ks", &get_Pss1_ks); + get_map.emplace("Pss1.kw", &get_Pss1_kw); + get_map.emplace("Pss1.pmin", &get_Pss1_pmin); + get_map.emplace("Pss1.t10", &get_Pss1_t10); + get_map.emplace("Pss1.t5", &get_Pss1_t5); + get_map.emplace("Pss1.t6", &get_Pss1_t6); + get_map.emplace("Pss1.t7", &get_Pss1_t7); + get_map.emplace("Pss1.t8", &get_Pss1_t8); + get_map.emplace("Pss1.t9", &get_Pss1_t9); + get_map.emplace("Pss1.tpe", &get_Pss1_tpe); + get_map.emplace("Pss1.vadat", &get_Pss1_vadat); + get_map.emplace("Pss1.vsmn", &get_Pss1_vsmn); + get_map.emplace("Pss1.vsmx", &get_Pss1_vsmx); } void Pss1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void Pss1::addEnumGetFnsToMap(std::map& get_map) cons PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss1::declare() { return BaseClassDefiner(Pss1::addConstructToMap, Pss1::addPrimitiveAssignFnsToMap, Pss1::addClassAssignFnsToMap, Pss1::debugName); } +std::map Pss1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss1_factory() diff --git a/CGMES_2.4.13_18DEC2013/Pss1.hpp b/CGMES_2.4.13_18DEC2013/Pss1.hpp index d0b00aadb..d4666f841 100644 --- a/CGMES_2.4.13_18DEC2013/Pss1.hpp +++ b/CGMES_2.4.13_18DEC2013/Pss1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Pss1A.cpp b/CGMES_2.4.13_18DEC2013/Pss1A.cpp index 219c3f935..8470f2e76 100644 --- a/CGMES_2.4.13_18DEC2013/Pss1A.cpp +++ b/CGMES_2.4.13_18DEC2013/Pss1A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss1A.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.inputSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.tdelay", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss1A::Pss1A() {} Pss1A::~Pss1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Pss1A.a1", { CGMESProfile::DY, } }, - { "cim:Pss1A.a2", { CGMESProfile::DY, } }, - { "cim:Pss1A.a3", { CGMESProfile::DY, } }, - { "cim:Pss1A.a4", { CGMESProfile::DY, } }, - { "cim:Pss1A.a5", { CGMESProfile::DY, } }, - { "cim:Pss1A.a6", { CGMESProfile::DY, } }, - { "cim:Pss1A.a7", { CGMESProfile::DY, } }, - { "cim:Pss1A.a8", { CGMESProfile::DY, } }, - { "cim:Pss1A.inputSignalType", { CGMESProfile::DY, } }, - { "cim:Pss1A.kd", { CGMESProfile::DY, } }, - { "cim:Pss1A.ks", { CGMESProfile::DY, } }, - { "cim:Pss1A.t1", { CGMESProfile::DY, } }, - { "cim:Pss1A.t2", { CGMESProfile::DY, } }, - { "cim:Pss1A.t3", { CGMESProfile::DY, } }, - { "cim:Pss1A.t4", { CGMESProfile::DY, } }, - { "cim:Pss1A.t5", { CGMESProfile::DY, } }, - { "cim:Pss1A.t6", { CGMESProfile::DY, } }, - { "cim:Pss1A.tdelay", { CGMESProfile::DY, } }, - { "cim:Pss1A.vcl", { CGMESProfile::DY, } }, - { "cim:Pss1A.vcu", { CGMESProfile::DY, } }, - { "cim:Pss1A.vrmax", { CGMESProfile::DY, } }, - { "cim:Pss1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -Pss1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Pss1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Pss1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Pss1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Pss1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Pss1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss1A_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* Pss1A::debugString() const void Pss1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss1A", &Pss1A_factory); + factory_map.emplace("Pss1A", &Pss1A_factory); } void Pss1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss1A.a1", &assign_Pss1A_a1); - assign_map.emplace("cim:Pss1A.a2", &assign_Pss1A_a2); - assign_map.emplace("cim:Pss1A.a3", &assign_Pss1A_a3); - assign_map.emplace("cim:Pss1A.a4", &assign_Pss1A_a4); - assign_map.emplace("cim:Pss1A.a5", &assign_Pss1A_a5); - assign_map.emplace("cim:Pss1A.a6", &assign_Pss1A_a6); - assign_map.emplace("cim:Pss1A.a7", &assign_Pss1A_a7); - assign_map.emplace("cim:Pss1A.a8", &assign_Pss1A_a8); - assign_map.emplace("cim:Pss1A.inputSignalType", &assign_Pss1A_inputSignalType); - assign_map.emplace("cim:Pss1A.kd", &assign_Pss1A_kd); - assign_map.emplace("cim:Pss1A.ks", &assign_Pss1A_ks); - assign_map.emplace("cim:Pss1A.t1", &assign_Pss1A_t1); - assign_map.emplace("cim:Pss1A.t2", &assign_Pss1A_t2); - assign_map.emplace("cim:Pss1A.t3", &assign_Pss1A_t3); - assign_map.emplace("cim:Pss1A.t4", &assign_Pss1A_t4); - assign_map.emplace("cim:Pss1A.t5", &assign_Pss1A_t5); - assign_map.emplace("cim:Pss1A.t6", &assign_Pss1A_t6); - assign_map.emplace("cim:Pss1A.tdelay", &assign_Pss1A_tdelay); - assign_map.emplace("cim:Pss1A.vcl", &assign_Pss1A_vcl); - assign_map.emplace("cim:Pss1A.vcu", &assign_Pss1A_vcu); - assign_map.emplace("cim:Pss1A.vrmax", &assign_Pss1A_vrmax); - assign_map.emplace("cim:Pss1A.vrmin", &assign_Pss1A_vrmin); + assign_map.emplace("Pss1A.a1", &assign_Pss1A_a1); + assign_map.emplace("Pss1A.a2", &assign_Pss1A_a2); + assign_map.emplace("Pss1A.a3", &assign_Pss1A_a3); + assign_map.emplace("Pss1A.a4", &assign_Pss1A_a4); + assign_map.emplace("Pss1A.a5", &assign_Pss1A_a5); + assign_map.emplace("Pss1A.a6", &assign_Pss1A_a6); + assign_map.emplace("Pss1A.a7", &assign_Pss1A_a7); + assign_map.emplace("Pss1A.a8", &assign_Pss1A_a8); + assign_map.emplace("Pss1A.inputSignalType", &assign_Pss1A_inputSignalType); + assign_map.emplace("Pss1A.kd", &assign_Pss1A_kd); + assign_map.emplace("Pss1A.ks", &assign_Pss1A_ks); + assign_map.emplace("Pss1A.t1", &assign_Pss1A_t1); + assign_map.emplace("Pss1A.t2", &assign_Pss1A_t2); + assign_map.emplace("Pss1A.t3", &assign_Pss1A_t3); + assign_map.emplace("Pss1A.t4", &assign_Pss1A_t4); + assign_map.emplace("Pss1A.t5", &assign_Pss1A_t5); + assign_map.emplace("Pss1A.t6", &assign_Pss1A_t6); + assign_map.emplace("Pss1A.tdelay", &assign_Pss1A_tdelay); + assign_map.emplace("Pss1A.vcl", &assign_Pss1A_vcl); + assign_map.emplace("Pss1A.vcu", &assign_Pss1A_vcu); + assign_map.emplace("Pss1A.vrmax", &assign_Pss1A_vrmax); + assign_map.emplace("Pss1A.vrmin", &assign_Pss1A_vrmin); } void Pss1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,27 +774,27 @@ void Pss1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss1A.a1", &get_Pss1A_a1); - get_map.emplace("cim:Pss1A.a2", &get_Pss1A_a2); - get_map.emplace("cim:Pss1A.a3", &get_Pss1A_a3); - get_map.emplace("cim:Pss1A.a4", &get_Pss1A_a4); - get_map.emplace("cim:Pss1A.a5", &get_Pss1A_a5); - get_map.emplace("cim:Pss1A.a6", &get_Pss1A_a6); - get_map.emplace("cim:Pss1A.a7", &get_Pss1A_a7); - get_map.emplace("cim:Pss1A.a8", &get_Pss1A_a8); - get_map.emplace("cim:Pss1A.kd", &get_Pss1A_kd); - get_map.emplace("cim:Pss1A.ks", &get_Pss1A_ks); - get_map.emplace("cim:Pss1A.t1", &get_Pss1A_t1); - get_map.emplace("cim:Pss1A.t2", &get_Pss1A_t2); - get_map.emplace("cim:Pss1A.t3", &get_Pss1A_t3); - get_map.emplace("cim:Pss1A.t4", &get_Pss1A_t4); - get_map.emplace("cim:Pss1A.t5", &get_Pss1A_t5); - get_map.emplace("cim:Pss1A.t6", &get_Pss1A_t6); - get_map.emplace("cim:Pss1A.tdelay", &get_Pss1A_tdelay); - get_map.emplace("cim:Pss1A.vcl", &get_Pss1A_vcl); - get_map.emplace("cim:Pss1A.vcu", &get_Pss1A_vcu); - get_map.emplace("cim:Pss1A.vrmax", &get_Pss1A_vrmax); - get_map.emplace("cim:Pss1A.vrmin", &get_Pss1A_vrmin); + get_map.emplace("Pss1A.a1", &get_Pss1A_a1); + get_map.emplace("Pss1A.a2", &get_Pss1A_a2); + get_map.emplace("Pss1A.a3", &get_Pss1A_a3); + get_map.emplace("Pss1A.a4", &get_Pss1A_a4); + get_map.emplace("Pss1A.a5", &get_Pss1A_a5); + get_map.emplace("Pss1A.a6", &get_Pss1A_a6); + get_map.emplace("Pss1A.a7", &get_Pss1A_a7); + get_map.emplace("Pss1A.a8", &get_Pss1A_a8); + get_map.emplace("Pss1A.kd", &get_Pss1A_kd); + get_map.emplace("Pss1A.ks", &get_Pss1A_ks); + get_map.emplace("Pss1A.t1", &get_Pss1A_t1); + get_map.emplace("Pss1A.t2", &get_Pss1A_t2); + get_map.emplace("Pss1A.t3", &get_Pss1A_t3); + get_map.emplace("Pss1A.t4", &get_Pss1A_t4); + get_map.emplace("Pss1A.t5", &get_Pss1A_t5); + get_map.emplace("Pss1A.t6", &get_Pss1A_t6); + get_map.emplace("Pss1A.tdelay", &get_Pss1A_tdelay); + get_map.emplace("Pss1A.vcl", &get_Pss1A_vcl); + get_map.emplace("Pss1A.vcu", &get_Pss1A_vcu); + get_map.emplace("Pss1A.vrmax", &get_Pss1A_vrmax); + get_map.emplace("Pss1A.vrmin", &get_Pss1A_vrmin); } void Pss1A::addClassGetFnsToMap(std::map& get_map) const @@ -773,7 +805,13 @@ void Pss1A::addClassGetFnsToMap(std::map& get_m void Pss1A::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss1A.inputSignalType", &get_Pss1A_inputSignalType); + get_map.emplace("Pss1A.inputSignalType", &get_Pss1A_inputSignalType); +} + +bool Pss1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss1A::declare() @@ -781,6 +819,14 @@ const BaseClassDefiner Pss1A::declare() return BaseClassDefiner(Pss1A::addConstructToMap, Pss1A::addPrimitiveAssignFnsToMap, Pss1A::addClassAssignFnsToMap, Pss1A::debugName); } +std::map Pss1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/Pss1A.hpp b/CGMES_2.4.13_18DEC2013/Pss1A.hpp index e1b282d6d..168b59604 100644 --- a/CGMES_2.4.13_18DEC2013/Pss1A.hpp +++ b/CGMES_2.4.13_18DEC2013/Pss1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Pss2B.cpp b/CGMES_2.4.13_18DEC2013/Pss2B.cpp index 71b0429d6..4c06f307d 100644 --- a/CGMES_2.4.13_18DEC2013/Pss2B.cpp +++ b/CGMES_2.4.13_18DEC2013/Pss2B.cpp @@ -11,62 +11,94 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss2B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss2B.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.n", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi1min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi2max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi2min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss2B::Pss2B() {} Pss2B::~Pss2B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Pss2B.a", { CGMESProfile::DY, } }, - { "cim:Pss2B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:Pss2B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks1", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks2", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks3", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks4", { CGMESProfile::DY, } }, - { "cim:Pss2B.m", { CGMESProfile::DY, } }, - { "cim:Pss2B.n", { CGMESProfile::DY, } }, - { "cim:Pss2B.t1", { CGMESProfile::DY, } }, - { "cim:Pss2B.t10", { CGMESProfile::DY, } }, - { "cim:Pss2B.t11", { CGMESProfile::DY, } }, - { "cim:Pss2B.t2", { CGMESProfile::DY, } }, - { "cim:Pss2B.t3", { CGMESProfile::DY, } }, - { "cim:Pss2B.t4", { CGMESProfile::DY, } }, - { "cim:Pss2B.t6", { CGMESProfile::DY, } }, - { "cim:Pss2B.t7", { CGMESProfile::DY, } }, - { "cim:Pss2B.t8", { CGMESProfile::DY, } }, - { "cim:Pss2B.t9", { CGMESProfile::DY, } }, - { "cim:Pss2B.ta", { CGMESProfile::DY, } }, - { "cim:Pss2B.tb", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw1", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw2", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw3", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw4", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi1max", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi1min", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi2max", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi2min", { CGMESProfile::DY, } }, - { "cim:Pss2B.vstmax", { CGMESProfile::DY, } }, - { "cim:Pss2B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -Pss2B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Pss2B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Pss2B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Pss2B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Pss2B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Pss2B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss2B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss2B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss2B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss2B_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -976,42 +1008,42 @@ const char* Pss2B::debugString() const void Pss2B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss2B", &Pss2B_factory); + factory_map.emplace("Pss2B", &Pss2B_factory); } void Pss2B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss2B.a", &assign_Pss2B_a); - assign_map.emplace("cim:Pss2B.inputSignal1Type", &assign_Pss2B_inputSignal1Type); - assign_map.emplace("cim:Pss2B.inputSignal2Type", &assign_Pss2B_inputSignal2Type); - assign_map.emplace("cim:Pss2B.ks1", &assign_Pss2B_ks1); - assign_map.emplace("cim:Pss2B.ks2", &assign_Pss2B_ks2); - assign_map.emplace("cim:Pss2B.ks3", &assign_Pss2B_ks3); - assign_map.emplace("cim:Pss2B.ks4", &assign_Pss2B_ks4); - assign_map.emplace("cim:Pss2B.m", &assign_Pss2B_m); - assign_map.emplace("cim:Pss2B.n", &assign_Pss2B_n); - assign_map.emplace("cim:Pss2B.t1", &assign_Pss2B_t1); - assign_map.emplace("cim:Pss2B.t10", &assign_Pss2B_t10); - assign_map.emplace("cim:Pss2B.t11", &assign_Pss2B_t11); - assign_map.emplace("cim:Pss2B.t2", &assign_Pss2B_t2); - assign_map.emplace("cim:Pss2B.t3", &assign_Pss2B_t3); - assign_map.emplace("cim:Pss2B.t4", &assign_Pss2B_t4); - assign_map.emplace("cim:Pss2B.t6", &assign_Pss2B_t6); - assign_map.emplace("cim:Pss2B.t7", &assign_Pss2B_t7); - assign_map.emplace("cim:Pss2B.t8", &assign_Pss2B_t8); - assign_map.emplace("cim:Pss2B.t9", &assign_Pss2B_t9); - assign_map.emplace("cim:Pss2B.ta", &assign_Pss2B_ta); - assign_map.emplace("cim:Pss2B.tb", &assign_Pss2B_tb); - assign_map.emplace("cim:Pss2B.tw1", &assign_Pss2B_tw1); - assign_map.emplace("cim:Pss2B.tw2", &assign_Pss2B_tw2); - assign_map.emplace("cim:Pss2B.tw3", &assign_Pss2B_tw3); - assign_map.emplace("cim:Pss2B.tw4", &assign_Pss2B_tw4); - assign_map.emplace("cim:Pss2B.vsi1max", &assign_Pss2B_vsi1max); - assign_map.emplace("cim:Pss2B.vsi1min", &assign_Pss2B_vsi1min); - assign_map.emplace("cim:Pss2B.vsi2max", &assign_Pss2B_vsi2max); - assign_map.emplace("cim:Pss2B.vsi2min", &assign_Pss2B_vsi2min); - assign_map.emplace("cim:Pss2B.vstmax", &assign_Pss2B_vstmax); - assign_map.emplace("cim:Pss2B.vstmin", &assign_Pss2B_vstmin); + assign_map.emplace("Pss2B.a", &assign_Pss2B_a); + assign_map.emplace("Pss2B.inputSignal1Type", &assign_Pss2B_inputSignal1Type); + assign_map.emplace("Pss2B.inputSignal2Type", &assign_Pss2B_inputSignal2Type); + assign_map.emplace("Pss2B.ks1", &assign_Pss2B_ks1); + assign_map.emplace("Pss2B.ks2", &assign_Pss2B_ks2); + assign_map.emplace("Pss2B.ks3", &assign_Pss2B_ks3); + assign_map.emplace("Pss2B.ks4", &assign_Pss2B_ks4); + assign_map.emplace("Pss2B.m", &assign_Pss2B_m); + assign_map.emplace("Pss2B.n", &assign_Pss2B_n); + assign_map.emplace("Pss2B.t1", &assign_Pss2B_t1); + assign_map.emplace("Pss2B.t10", &assign_Pss2B_t10); + assign_map.emplace("Pss2B.t11", &assign_Pss2B_t11); + assign_map.emplace("Pss2B.t2", &assign_Pss2B_t2); + assign_map.emplace("Pss2B.t3", &assign_Pss2B_t3); + assign_map.emplace("Pss2B.t4", &assign_Pss2B_t4); + assign_map.emplace("Pss2B.t6", &assign_Pss2B_t6); + assign_map.emplace("Pss2B.t7", &assign_Pss2B_t7); + assign_map.emplace("Pss2B.t8", &assign_Pss2B_t8); + assign_map.emplace("Pss2B.t9", &assign_Pss2B_t9); + assign_map.emplace("Pss2B.ta", &assign_Pss2B_ta); + assign_map.emplace("Pss2B.tb", &assign_Pss2B_tb); + assign_map.emplace("Pss2B.tw1", &assign_Pss2B_tw1); + assign_map.emplace("Pss2B.tw2", &assign_Pss2B_tw2); + assign_map.emplace("Pss2B.tw3", &assign_Pss2B_tw3); + assign_map.emplace("Pss2B.tw4", &assign_Pss2B_tw4); + assign_map.emplace("Pss2B.vsi1max", &assign_Pss2B_vsi1max); + assign_map.emplace("Pss2B.vsi1min", &assign_Pss2B_vsi1min); + assign_map.emplace("Pss2B.vsi2max", &assign_Pss2B_vsi2max); + assign_map.emplace("Pss2B.vsi2min", &assign_Pss2B_vsi2min); + assign_map.emplace("Pss2B.vstmax", &assign_Pss2B_vstmax); + assign_map.emplace("Pss2B.vstmin", &assign_Pss2B_vstmin); } void Pss2B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1021,35 +1053,35 @@ void Pss2B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss2B.a", &get_Pss2B_a); - get_map.emplace("cim:Pss2B.ks1", &get_Pss2B_ks1); - get_map.emplace("cim:Pss2B.ks2", &get_Pss2B_ks2); - get_map.emplace("cim:Pss2B.ks3", &get_Pss2B_ks3); - get_map.emplace("cim:Pss2B.ks4", &get_Pss2B_ks4); - get_map.emplace("cim:Pss2B.m", &get_Pss2B_m); - get_map.emplace("cim:Pss2B.n", &get_Pss2B_n); - get_map.emplace("cim:Pss2B.t1", &get_Pss2B_t1); - get_map.emplace("cim:Pss2B.t10", &get_Pss2B_t10); - get_map.emplace("cim:Pss2B.t11", &get_Pss2B_t11); - get_map.emplace("cim:Pss2B.t2", &get_Pss2B_t2); - get_map.emplace("cim:Pss2B.t3", &get_Pss2B_t3); - get_map.emplace("cim:Pss2B.t4", &get_Pss2B_t4); - get_map.emplace("cim:Pss2B.t6", &get_Pss2B_t6); - get_map.emplace("cim:Pss2B.t7", &get_Pss2B_t7); - get_map.emplace("cim:Pss2B.t8", &get_Pss2B_t8); - get_map.emplace("cim:Pss2B.t9", &get_Pss2B_t9); - get_map.emplace("cim:Pss2B.ta", &get_Pss2B_ta); - get_map.emplace("cim:Pss2B.tb", &get_Pss2B_tb); - get_map.emplace("cim:Pss2B.tw1", &get_Pss2B_tw1); - get_map.emplace("cim:Pss2B.tw2", &get_Pss2B_tw2); - get_map.emplace("cim:Pss2B.tw3", &get_Pss2B_tw3); - get_map.emplace("cim:Pss2B.tw4", &get_Pss2B_tw4); - get_map.emplace("cim:Pss2B.vsi1max", &get_Pss2B_vsi1max); - get_map.emplace("cim:Pss2B.vsi1min", &get_Pss2B_vsi1min); - get_map.emplace("cim:Pss2B.vsi2max", &get_Pss2B_vsi2max); - get_map.emplace("cim:Pss2B.vsi2min", &get_Pss2B_vsi2min); - get_map.emplace("cim:Pss2B.vstmax", &get_Pss2B_vstmax); - get_map.emplace("cim:Pss2B.vstmin", &get_Pss2B_vstmin); + get_map.emplace("Pss2B.a", &get_Pss2B_a); + get_map.emplace("Pss2B.ks1", &get_Pss2B_ks1); + get_map.emplace("Pss2B.ks2", &get_Pss2B_ks2); + get_map.emplace("Pss2B.ks3", &get_Pss2B_ks3); + get_map.emplace("Pss2B.ks4", &get_Pss2B_ks4); + get_map.emplace("Pss2B.m", &get_Pss2B_m); + get_map.emplace("Pss2B.n", &get_Pss2B_n); + get_map.emplace("Pss2B.t1", &get_Pss2B_t1); + get_map.emplace("Pss2B.t10", &get_Pss2B_t10); + get_map.emplace("Pss2B.t11", &get_Pss2B_t11); + get_map.emplace("Pss2B.t2", &get_Pss2B_t2); + get_map.emplace("Pss2B.t3", &get_Pss2B_t3); + get_map.emplace("Pss2B.t4", &get_Pss2B_t4); + get_map.emplace("Pss2B.t6", &get_Pss2B_t6); + get_map.emplace("Pss2B.t7", &get_Pss2B_t7); + get_map.emplace("Pss2B.t8", &get_Pss2B_t8); + get_map.emplace("Pss2B.t9", &get_Pss2B_t9); + get_map.emplace("Pss2B.ta", &get_Pss2B_ta); + get_map.emplace("Pss2B.tb", &get_Pss2B_tb); + get_map.emplace("Pss2B.tw1", &get_Pss2B_tw1); + get_map.emplace("Pss2B.tw2", &get_Pss2B_tw2); + get_map.emplace("Pss2B.tw3", &get_Pss2B_tw3); + get_map.emplace("Pss2B.tw4", &get_Pss2B_tw4); + get_map.emplace("Pss2B.vsi1max", &get_Pss2B_vsi1max); + get_map.emplace("Pss2B.vsi1min", &get_Pss2B_vsi1min); + get_map.emplace("Pss2B.vsi2max", &get_Pss2B_vsi2max); + get_map.emplace("Pss2B.vsi2min", &get_Pss2B_vsi2min); + get_map.emplace("Pss2B.vstmax", &get_Pss2B_vstmax); + get_map.emplace("Pss2B.vstmin", &get_Pss2B_vstmin); } void Pss2B::addClassGetFnsToMap(std::map& get_map) const @@ -1060,8 +1092,14 @@ void Pss2B::addClassGetFnsToMap(std::map& get_m void Pss2B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss2B.inputSignal1Type", &get_Pss2B_inputSignal1Type); - get_map.emplace("cim:Pss2B.inputSignal2Type", &get_Pss2B_inputSignal2Type); + get_map.emplace("Pss2B.inputSignal1Type", &get_Pss2B_inputSignal1Type); + get_map.emplace("Pss2B.inputSignal2Type", &get_Pss2B_inputSignal2Type); +} + +bool Pss2B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss2B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss2B::declare() @@ -1069,6 +1107,14 @@ const BaseClassDefiner Pss2B::declare() return BaseClassDefiner(Pss2B::addConstructToMap, Pss2B::addPrimitiveAssignFnsToMap, Pss2B::addClassAssignFnsToMap, Pss2B::debugName); } +std::map Pss2B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss2B_factory() diff --git a/CGMES_2.4.13_18DEC2013/Pss2B.hpp b/CGMES_2.4.13_18DEC2013/Pss2B.hpp index 90e74ab8e..a31855343 100644 --- a/CGMES_2.4.13_18DEC2013/Pss2B.hpp +++ b/CGMES_2.4.13_18DEC2013/Pss2B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -125,8 +126,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -134,7 +142,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss2B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Pss2ST.cpp b/CGMES_2.4.13_18DEC2013/Pss2ST.cpp index 9a42e067c..330a46ab4 100644 --- a/CGMES_2.4.13_18DEC2013/Pss2ST.cpp +++ b/CGMES_2.4.13_18DEC2013/Pss2ST.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss2ST(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss2ST.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.lsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.lsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss2ST::Pss2ST() {} Pss2ST::~Pss2ST() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss2ST::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss2ST::getClassNamespaceUrl() const { - { "cim:Pss2ST.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:Pss2ST.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:Pss2ST.k1", { CGMESProfile::DY, } }, - { "cim:Pss2ST.k2", { CGMESProfile::DY, } }, - { "cim:Pss2ST.lsmax", { CGMESProfile::DY, } }, - { "cim:Pss2ST.lsmin", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t1", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t10", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t2", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t3", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t4", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t5", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t6", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t7", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t8", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t9", { CGMESProfile::DY, } }, - { "cim:Pss2ST.vcl", { CGMESProfile::DY, } }, - { "cim:Pss2ST.vcu", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss2ST::getPossibleProfilesForClass() const +const std::string& Pss2ST::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss2ST::getPossibleProfilesForAttributes() const +const std::list& Pss2ST::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss2ST::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss2ST::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss2ST::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss2ST_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* Pss2ST::debugString() const void Pss2ST::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss2ST", &Pss2ST_factory); + factory_map.emplace("Pss2ST", &Pss2ST_factory); } void Pss2ST::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss2ST.inputSignal1Type", &assign_Pss2ST_inputSignal1Type); - assign_map.emplace("cim:Pss2ST.inputSignal2Type", &assign_Pss2ST_inputSignal2Type); - assign_map.emplace("cim:Pss2ST.k1", &assign_Pss2ST_k1); - assign_map.emplace("cim:Pss2ST.k2", &assign_Pss2ST_k2); - assign_map.emplace("cim:Pss2ST.lsmax", &assign_Pss2ST_lsmax); - assign_map.emplace("cim:Pss2ST.lsmin", &assign_Pss2ST_lsmin); - assign_map.emplace("cim:Pss2ST.t1", &assign_Pss2ST_t1); - assign_map.emplace("cim:Pss2ST.t10", &assign_Pss2ST_t10); - assign_map.emplace("cim:Pss2ST.t2", &assign_Pss2ST_t2); - assign_map.emplace("cim:Pss2ST.t3", &assign_Pss2ST_t3); - assign_map.emplace("cim:Pss2ST.t4", &assign_Pss2ST_t4); - assign_map.emplace("cim:Pss2ST.t5", &assign_Pss2ST_t5); - assign_map.emplace("cim:Pss2ST.t6", &assign_Pss2ST_t6); - assign_map.emplace("cim:Pss2ST.t7", &assign_Pss2ST_t7); - assign_map.emplace("cim:Pss2ST.t8", &assign_Pss2ST_t8); - assign_map.emplace("cim:Pss2ST.t9", &assign_Pss2ST_t9); - assign_map.emplace("cim:Pss2ST.vcl", &assign_Pss2ST_vcl); - assign_map.emplace("cim:Pss2ST.vcu", &assign_Pss2ST_vcu); + assign_map.emplace("Pss2ST.inputSignal1Type", &assign_Pss2ST_inputSignal1Type); + assign_map.emplace("Pss2ST.inputSignal2Type", &assign_Pss2ST_inputSignal2Type); + assign_map.emplace("Pss2ST.k1", &assign_Pss2ST_k1); + assign_map.emplace("Pss2ST.k2", &assign_Pss2ST_k2); + assign_map.emplace("Pss2ST.lsmax", &assign_Pss2ST_lsmax); + assign_map.emplace("Pss2ST.lsmin", &assign_Pss2ST_lsmin); + assign_map.emplace("Pss2ST.t1", &assign_Pss2ST_t1); + assign_map.emplace("Pss2ST.t10", &assign_Pss2ST_t10); + assign_map.emplace("Pss2ST.t2", &assign_Pss2ST_t2); + assign_map.emplace("Pss2ST.t3", &assign_Pss2ST_t3); + assign_map.emplace("Pss2ST.t4", &assign_Pss2ST_t4); + assign_map.emplace("Pss2ST.t5", &assign_Pss2ST_t5); + assign_map.emplace("Pss2ST.t6", &assign_Pss2ST_t6); + assign_map.emplace("Pss2ST.t7", &assign_Pss2ST_t7); + assign_map.emplace("Pss2ST.t8", &assign_Pss2ST_t8); + assign_map.emplace("Pss2ST.t9", &assign_Pss2ST_t9); + assign_map.emplace("Pss2ST.vcl", &assign_Pss2ST_vcl); + assign_map.emplace("Pss2ST.vcu", &assign_Pss2ST_vcu); } void Pss2ST::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,22 +650,22 @@ void Pss2ST::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss2ST.k1", &get_Pss2ST_k1); - get_map.emplace("cim:Pss2ST.k2", &get_Pss2ST_k2); - get_map.emplace("cim:Pss2ST.lsmax", &get_Pss2ST_lsmax); - get_map.emplace("cim:Pss2ST.lsmin", &get_Pss2ST_lsmin); - get_map.emplace("cim:Pss2ST.t1", &get_Pss2ST_t1); - get_map.emplace("cim:Pss2ST.t10", &get_Pss2ST_t10); - get_map.emplace("cim:Pss2ST.t2", &get_Pss2ST_t2); - get_map.emplace("cim:Pss2ST.t3", &get_Pss2ST_t3); - get_map.emplace("cim:Pss2ST.t4", &get_Pss2ST_t4); - get_map.emplace("cim:Pss2ST.t5", &get_Pss2ST_t5); - get_map.emplace("cim:Pss2ST.t6", &get_Pss2ST_t6); - get_map.emplace("cim:Pss2ST.t7", &get_Pss2ST_t7); - get_map.emplace("cim:Pss2ST.t8", &get_Pss2ST_t8); - get_map.emplace("cim:Pss2ST.t9", &get_Pss2ST_t9); - get_map.emplace("cim:Pss2ST.vcl", &get_Pss2ST_vcl); - get_map.emplace("cim:Pss2ST.vcu", &get_Pss2ST_vcu); + get_map.emplace("Pss2ST.k1", &get_Pss2ST_k1); + get_map.emplace("Pss2ST.k2", &get_Pss2ST_k2); + get_map.emplace("Pss2ST.lsmax", &get_Pss2ST_lsmax); + get_map.emplace("Pss2ST.lsmin", &get_Pss2ST_lsmin); + get_map.emplace("Pss2ST.t1", &get_Pss2ST_t1); + get_map.emplace("Pss2ST.t10", &get_Pss2ST_t10); + get_map.emplace("Pss2ST.t2", &get_Pss2ST_t2); + get_map.emplace("Pss2ST.t3", &get_Pss2ST_t3); + get_map.emplace("Pss2ST.t4", &get_Pss2ST_t4); + get_map.emplace("Pss2ST.t5", &get_Pss2ST_t5); + get_map.emplace("Pss2ST.t6", &get_Pss2ST_t6); + get_map.emplace("Pss2ST.t7", &get_Pss2ST_t7); + get_map.emplace("Pss2ST.t8", &get_Pss2ST_t8); + get_map.emplace("Pss2ST.t9", &get_Pss2ST_t9); + get_map.emplace("Pss2ST.vcl", &get_Pss2ST_vcl); + get_map.emplace("Pss2ST.vcu", &get_Pss2ST_vcu); } void Pss2ST::addClassGetFnsToMap(std::map& get_map) const @@ -644,8 +676,14 @@ void Pss2ST::addClassGetFnsToMap(std::map& get_ void Pss2ST::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss2ST.inputSignal1Type", &get_Pss2ST_inputSignal1Type); - get_map.emplace("cim:Pss2ST.inputSignal2Type", &get_Pss2ST_inputSignal2Type); + get_map.emplace("Pss2ST.inputSignal1Type", &get_Pss2ST_inputSignal1Type); + get_map.emplace("Pss2ST.inputSignal2Type", &get_Pss2ST_inputSignal2Type); +} + +bool Pss2ST::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss2ST" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss2ST::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner Pss2ST::declare() return BaseClassDefiner(Pss2ST::addConstructToMap, Pss2ST::addPrimitiveAssignFnsToMap, Pss2ST::addClassAssignFnsToMap, Pss2ST::debugName); } +std::map Pss2ST::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss2ST_factory() diff --git a/CGMES_2.4.13_18DEC2013/Pss2ST.hpp b/CGMES_2.4.13_18DEC2013/Pss2ST.hpp index abd31dcb0..542d90d64 100644 --- a/CGMES_2.4.13_18DEC2013/Pss2ST.hpp +++ b/CGMES_2.4.13_18DEC2013/Pss2ST.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss2ST_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Pss5.cpp b/CGMES_2.4.13_18DEC2013/Pss5.cpp index 41a4f0631..628fb4ac7 100644 --- a/CGMES_2.4.13_18DEC2013/Pss5.cpp +++ b/CGMES_2.4.13_18DEC2013/Pss5.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss5(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss5.ctw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.deadband", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.isfreq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kpss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.pmm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vadat", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss5::Pss5() {} Pss5::~Pss5() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss5::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss5::getClassNamespaceUrl() const { - { "cim:Pss5.ctw2", { CGMESProfile::DY, } }, - { "cim:Pss5.deadband", { CGMESProfile::DY, } }, - { "cim:Pss5.isfreq", { CGMESProfile::DY, } }, - { "cim:Pss5.kf", { CGMESProfile::DY, } }, - { "cim:Pss5.kpe", { CGMESProfile::DY, } }, - { "cim:Pss5.kpss", { CGMESProfile::DY, } }, - { "cim:Pss5.pmm", { CGMESProfile::DY, } }, - { "cim:Pss5.tl1", { CGMESProfile::DY, } }, - { "cim:Pss5.tl2", { CGMESProfile::DY, } }, - { "cim:Pss5.tl3", { CGMESProfile::DY, } }, - { "cim:Pss5.tl4", { CGMESProfile::DY, } }, - { "cim:Pss5.tpe", { CGMESProfile::DY, } }, - { "cim:Pss5.tw1", { CGMESProfile::DY, } }, - { "cim:Pss5.tw2", { CGMESProfile::DY, } }, - { "cim:Pss5.vadat", { CGMESProfile::DY, } }, - { "cim:Pss5.vsmn", { CGMESProfile::DY, } }, - { "cim:Pss5.vsmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss5::getPossibleProfilesForClass() const +const std::string& Pss5::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss5::getPossibleProfilesForAttributes() const +const std::list& Pss5::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss5::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss5::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss5::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss5_ctw2(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* Pss5::debugString() const void Pss5::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss5", &Pss5_factory); + factory_map.emplace("Pss5", &Pss5_factory); } void Pss5::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss5.ctw2", &assign_Pss5_ctw2); - assign_map.emplace("cim:Pss5.deadband", &assign_Pss5_deadband); - assign_map.emplace("cim:Pss5.isfreq", &assign_Pss5_isfreq); - assign_map.emplace("cim:Pss5.kf", &assign_Pss5_kf); - assign_map.emplace("cim:Pss5.kpe", &assign_Pss5_kpe); - assign_map.emplace("cim:Pss5.kpss", &assign_Pss5_kpss); - assign_map.emplace("cim:Pss5.pmm", &assign_Pss5_pmm); - assign_map.emplace("cim:Pss5.tl1", &assign_Pss5_tl1); - assign_map.emplace("cim:Pss5.tl2", &assign_Pss5_tl2); - assign_map.emplace("cim:Pss5.tl3", &assign_Pss5_tl3); - assign_map.emplace("cim:Pss5.tl4", &assign_Pss5_tl4); - assign_map.emplace("cim:Pss5.tpe", &assign_Pss5_tpe); - assign_map.emplace("cim:Pss5.tw1", &assign_Pss5_tw1); - assign_map.emplace("cim:Pss5.tw2", &assign_Pss5_tw2); - assign_map.emplace("cim:Pss5.vadat", &assign_Pss5_vadat); - assign_map.emplace("cim:Pss5.vsmn", &assign_Pss5_vsmn); - assign_map.emplace("cim:Pss5.vsmx", &assign_Pss5_vsmx); + assign_map.emplace("Pss5.ctw2", &assign_Pss5_ctw2); + assign_map.emplace("Pss5.deadband", &assign_Pss5_deadband); + assign_map.emplace("Pss5.isfreq", &assign_Pss5_isfreq); + assign_map.emplace("Pss5.kf", &assign_Pss5_kf); + assign_map.emplace("Pss5.kpe", &assign_Pss5_kpe); + assign_map.emplace("Pss5.kpss", &assign_Pss5_kpss); + assign_map.emplace("Pss5.pmm", &assign_Pss5_pmm); + assign_map.emplace("Pss5.tl1", &assign_Pss5_tl1); + assign_map.emplace("Pss5.tl2", &assign_Pss5_tl2); + assign_map.emplace("Pss5.tl3", &assign_Pss5_tl3); + assign_map.emplace("Pss5.tl4", &assign_Pss5_tl4); + assign_map.emplace("Pss5.tpe", &assign_Pss5_tpe); + assign_map.emplace("Pss5.tw1", &assign_Pss5_tw1); + assign_map.emplace("Pss5.tw2", &assign_Pss5_tw2); + assign_map.emplace("Pss5.vadat", &assign_Pss5_vadat); + assign_map.emplace("Pss5.vsmn", &assign_Pss5_vsmn); + assign_map.emplace("Pss5.vsmx", &assign_Pss5_vsmx); } void Pss5::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void Pss5::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss5.ctw2", &get_Pss5_ctw2); - get_map.emplace("cim:Pss5.deadband", &get_Pss5_deadband); - get_map.emplace("cim:Pss5.isfreq", &get_Pss5_isfreq); - get_map.emplace("cim:Pss5.kf", &get_Pss5_kf); - get_map.emplace("cim:Pss5.kpe", &get_Pss5_kpe); - get_map.emplace("cim:Pss5.kpss", &get_Pss5_kpss); - get_map.emplace("cim:Pss5.pmm", &get_Pss5_pmm); - get_map.emplace("cim:Pss5.tl1", &get_Pss5_tl1); - get_map.emplace("cim:Pss5.tl2", &get_Pss5_tl2); - get_map.emplace("cim:Pss5.tl3", &get_Pss5_tl3); - get_map.emplace("cim:Pss5.tl4", &get_Pss5_tl4); - get_map.emplace("cim:Pss5.tpe", &get_Pss5_tpe); - get_map.emplace("cim:Pss5.tw1", &get_Pss5_tw1); - get_map.emplace("cim:Pss5.tw2", &get_Pss5_tw2); - get_map.emplace("cim:Pss5.vadat", &get_Pss5_vadat); - get_map.emplace("cim:Pss5.vsmn", &get_Pss5_vsmn); - get_map.emplace("cim:Pss5.vsmx", &get_Pss5_vsmx); + get_map.emplace("Pss5.ctw2", &get_Pss5_ctw2); + get_map.emplace("Pss5.deadband", &get_Pss5_deadband); + get_map.emplace("Pss5.isfreq", &get_Pss5_isfreq); + get_map.emplace("Pss5.kf", &get_Pss5_kf); + get_map.emplace("Pss5.kpe", &get_Pss5_kpe); + get_map.emplace("Pss5.kpss", &get_Pss5_kpss); + get_map.emplace("Pss5.pmm", &get_Pss5_pmm); + get_map.emplace("Pss5.tl1", &get_Pss5_tl1); + get_map.emplace("Pss5.tl2", &get_Pss5_tl2); + get_map.emplace("Pss5.tl3", &get_Pss5_tl3); + get_map.emplace("Pss5.tl4", &get_Pss5_tl4); + get_map.emplace("Pss5.tpe", &get_Pss5_tpe); + get_map.emplace("Pss5.tw1", &get_Pss5_tw1); + get_map.emplace("Pss5.tw2", &get_Pss5_tw2); + get_map.emplace("Pss5.vadat", &get_Pss5_vadat); + get_map.emplace("Pss5.vsmn", &get_Pss5_vsmn); + get_map.emplace("Pss5.vsmx", &get_Pss5_vsmx); } void Pss5::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void Pss5::addEnumGetFnsToMap(std::map& get_map) cons PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss5::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss5" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss5::declare() { return BaseClassDefiner(Pss5::addConstructToMap, Pss5::addPrimitiveAssignFnsToMap, Pss5::addClassAssignFnsToMap, Pss5::debugName); } +std::map Pss5::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss5_factory() diff --git a/CGMES_2.4.13_18DEC2013/Pss5.hpp b/CGMES_2.4.13_18DEC2013/Pss5.hpp index 9855524fa..6f0fdfed6 100644 --- a/CGMES_2.4.13_18DEC2013/Pss5.hpp +++ b/CGMES_2.4.13_18DEC2013/Pss5.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -82,8 +83,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -91,7 +99,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss5_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssELIN2.cpp b/CGMES_2.4.13_18DEC2013/PssELIN2.cpp index 394cf185f..3ac940e75 100644 --- a/CGMES_2.4.13_18DEC2013/PssELIN2.cpp +++ b/CGMES_2.4.13_18DEC2013/PssELIN2.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssELIN2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssELIN2.apss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ppss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.psslim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssELIN2::PssELIN2() {} PssELIN2::~PssELIN2() {} -static const std::list PossibleProfilesForClass = +const std::list& PssELIN2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssELIN2::getClassNamespaceUrl() const { - { "cim:PssELIN2.apss", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ks1", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ks2", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ppss", { CGMESProfile::DY, } }, - { "cim:PssELIN2.psslim", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts1", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts2", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts3", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts4", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts5", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts6", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssELIN2::getPossibleProfilesForClass() const +const std::string& PssELIN2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssELIN2::getPossibleProfilesForAttributes() const +const std::list& PssELIN2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssELIN2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssELIN2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssELIN2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssELIN2_apss(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssELIN2::debugString() const void PssELIN2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssELIN2", &PssELIN2_factory); + factory_map.emplace("PssELIN2", &PssELIN2_factory); } void PssELIN2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssELIN2.apss", &assign_PssELIN2_apss); - assign_map.emplace("cim:PssELIN2.ks1", &assign_PssELIN2_ks1); - assign_map.emplace("cim:PssELIN2.ks2", &assign_PssELIN2_ks2); - assign_map.emplace("cim:PssELIN2.ppss", &assign_PssELIN2_ppss); - assign_map.emplace("cim:PssELIN2.psslim", &assign_PssELIN2_psslim); - assign_map.emplace("cim:PssELIN2.ts1", &assign_PssELIN2_ts1); - assign_map.emplace("cim:PssELIN2.ts2", &assign_PssELIN2_ts2); - assign_map.emplace("cim:PssELIN2.ts3", &assign_PssELIN2_ts3); - assign_map.emplace("cim:PssELIN2.ts4", &assign_PssELIN2_ts4); - assign_map.emplace("cim:PssELIN2.ts5", &assign_PssELIN2_ts5); - assign_map.emplace("cim:PssELIN2.ts6", &assign_PssELIN2_ts6); + assign_map.emplace("PssELIN2.apss", &assign_PssELIN2_apss); + assign_map.emplace("PssELIN2.ks1", &assign_PssELIN2_ks1); + assign_map.emplace("PssELIN2.ks2", &assign_PssELIN2_ks2); + assign_map.emplace("PssELIN2.ppss", &assign_PssELIN2_ppss); + assign_map.emplace("PssELIN2.psslim", &assign_PssELIN2_psslim); + assign_map.emplace("PssELIN2.ts1", &assign_PssELIN2_ts1); + assign_map.emplace("PssELIN2.ts2", &assign_PssELIN2_ts2); + assign_map.emplace("PssELIN2.ts3", &assign_PssELIN2_ts3); + assign_map.emplace("PssELIN2.ts4", &assign_PssELIN2_ts4); + assign_map.emplace("PssELIN2.ts5", &assign_PssELIN2_ts5); + assign_map.emplace("PssELIN2.ts6", &assign_PssELIN2_ts6); } void PssELIN2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssELIN2::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssELIN2.apss", &get_PssELIN2_apss); - get_map.emplace("cim:PssELIN2.ks1", &get_PssELIN2_ks1); - get_map.emplace("cim:PssELIN2.ks2", &get_PssELIN2_ks2); - get_map.emplace("cim:PssELIN2.ppss", &get_PssELIN2_ppss); - get_map.emplace("cim:PssELIN2.psslim", &get_PssELIN2_psslim); - get_map.emplace("cim:PssELIN2.ts1", &get_PssELIN2_ts1); - get_map.emplace("cim:PssELIN2.ts2", &get_PssELIN2_ts2); - get_map.emplace("cim:PssELIN2.ts3", &get_PssELIN2_ts3); - get_map.emplace("cim:PssELIN2.ts4", &get_PssELIN2_ts4); - get_map.emplace("cim:PssELIN2.ts5", &get_PssELIN2_ts5); - get_map.emplace("cim:PssELIN2.ts6", &get_PssELIN2_ts6); + get_map.emplace("PssELIN2.apss", &get_PssELIN2_apss); + get_map.emplace("PssELIN2.ks1", &get_PssELIN2_ks1); + get_map.emplace("PssELIN2.ks2", &get_PssELIN2_ks2); + get_map.emplace("PssELIN2.ppss", &get_PssELIN2_ppss); + get_map.emplace("PssELIN2.psslim", &get_PssELIN2_psslim); + get_map.emplace("PssELIN2.ts1", &get_PssELIN2_ts1); + get_map.emplace("PssELIN2.ts2", &get_PssELIN2_ts2); + get_map.emplace("PssELIN2.ts3", &get_PssELIN2_ts3); + get_map.emplace("PssELIN2.ts4", &get_PssELIN2_ts4); + get_map.emplace("PssELIN2.ts5", &get_PssELIN2_ts5); + get_map.emplace("PssELIN2.ts6", &get_PssELIN2_ts6); } void PssELIN2::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssELIN2::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssELIN2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssELIN2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssELIN2::declare() { return BaseClassDefiner(PssELIN2::addConstructToMap, PssELIN2::addPrimitiveAssignFnsToMap, PssELIN2::addClassAssignFnsToMap, PssELIN2::debugName); } +std::map PssELIN2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssELIN2_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssELIN2.hpp b/CGMES_2.4.13_18DEC2013/PssELIN2.hpp index d5ebed820..1518be45a 100644 --- a/CGMES_2.4.13_18DEC2013/PssELIN2.hpp +++ b/CGMES_2.4.13_18DEC2013/PssELIN2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssELIN2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssIEEE1A.cpp b/CGMES_2.4.13_18DEC2013/PssIEEE1A.cpp index 7387ba08e..4b4e47077 100644 --- a/CGMES_2.4.13_18DEC2013/PssIEEE1A.cpp +++ b/CGMES_2.4.13_18DEC2013/PssIEEE1A.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE1A.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.inputSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE1A::PssIEEE1A() {} PssIEEE1A::~PssIEEE1A() {} -static const std::list PossibleProfilesForClass = +const std::list& PssIEEE1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssIEEE1A::getClassNamespaceUrl() const { - { "cim:PssIEEE1A.a1", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.a2", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.inputSignalType", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.ks", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t3", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t4", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t5", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t6", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.vrmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssIEEE1A::getPossibleProfilesForClass() const +const std::string& PssIEEE1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssIEEE1A::getPossibleProfilesForAttributes() const +const std::list& PssIEEE1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE1A_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* PssIEEE1A::debugString() const void PssIEEE1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE1A", &PssIEEE1A_factory); + factory_map.emplace("PssIEEE1A", &PssIEEE1A_factory); } void PssIEEE1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE1A.a1", &assign_PssIEEE1A_a1); - assign_map.emplace("cim:PssIEEE1A.a2", &assign_PssIEEE1A_a2); - assign_map.emplace("cim:PssIEEE1A.inputSignalType", &assign_PssIEEE1A_inputSignalType); - assign_map.emplace("cim:PssIEEE1A.ks", &assign_PssIEEE1A_ks); - assign_map.emplace("cim:PssIEEE1A.t1", &assign_PssIEEE1A_t1); - assign_map.emplace("cim:PssIEEE1A.t2", &assign_PssIEEE1A_t2); - assign_map.emplace("cim:PssIEEE1A.t3", &assign_PssIEEE1A_t3); - assign_map.emplace("cim:PssIEEE1A.t4", &assign_PssIEEE1A_t4); - assign_map.emplace("cim:PssIEEE1A.t5", &assign_PssIEEE1A_t5); - assign_map.emplace("cim:PssIEEE1A.t6", &assign_PssIEEE1A_t6); - assign_map.emplace("cim:PssIEEE1A.vrmax", &assign_PssIEEE1A_vrmax); - assign_map.emplace("cim:PssIEEE1A.vrmin", &assign_PssIEEE1A_vrmin); + assign_map.emplace("PssIEEE1A.a1", &assign_PssIEEE1A_a1); + assign_map.emplace("PssIEEE1A.a2", &assign_PssIEEE1A_a2); + assign_map.emplace("PssIEEE1A.inputSignalType", &assign_PssIEEE1A_inputSignalType); + assign_map.emplace("PssIEEE1A.ks", &assign_PssIEEE1A_ks); + assign_map.emplace("PssIEEE1A.t1", &assign_PssIEEE1A_t1); + assign_map.emplace("PssIEEE1A.t2", &assign_PssIEEE1A_t2); + assign_map.emplace("PssIEEE1A.t3", &assign_PssIEEE1A_t3); + assign_map.emplace("PssIEEE1A.t4", &assign_PssIEEE1A_t4); + assign_map.emplace("PssIEEE1A.t5", &assign_PssIEEE1A_t5); + assign_map.emplace("PssIEEE1A.t6", &assign_PssIEEE1A_t6); + assign_map.emplace("PssIEEE1A.vrmax", &assign_PssIEEE1A_vrmax); + assign_map.emplace("PssIEEE1A.vrmin", &assign_PssIEEE1A_vrmin); } void PssIEEE1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,17 +464,17 @@ void PssIEEE1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE1A.a1", &get_PssIEEE1A_a1); - get_map.emplace("cim:PssIEEE1A.a2", &get_PssIEEE1A_a2); - get_map.emplace("cim:PssIEEE1A.ks", &get_PssIEEE1A_ks); - get_map.emplace("cim:PssIEEE1A.t1", &get_PssIEEE1A_t1); - get_map.emplace("cim:PssIEEE1A.t2", &get_PssIEEE1A_t2); - get_map.emplace("cim:PssIEEE1A.t3", &get_PssIEEE1A_t3); - get_map.emplace("cim:PssIEEE1A.t4", &get_PssIEEE1A_t4); - get_map.emplace("cim:PssIEEE1A.t5", &get_PssIEEE1A_t5); - get_map.emplace("cim:PssIEEE1A.t6", &get_PssIEEE1A_t6); - get_map.emplace("cim:PssIEEE1A.vrmax", &get_PssIEEE1A_vrmax); - get_map.emplace("cim:PssIEEE1A.vrmin", &get_PssIEEE1A_vrmin); + get_map.emplace("PssIEEE1A.a1", &get_PssIEEE1A_a1); + get_map.emplace("PssIEEE1A.a2", &get_PssIEEE1A_a2); + get_map.emplace("PssIEEE1A.ks", &get_PssIEEE1A_ks); + get_map.emplace("PssIEEE1A.t1", &get_PssIEEE1A_t1); + get_map.emplace("PssIEEE1A.t2", &get_PssIEEE1A_t2); + get_map.emplace("PssIEEE1A.t3", &get_PssIEEE1A_t3); + get_map.emplace("PssIEEE1A.t4", &get_PssIEEE1A_t4); + get_map.emplace("PssIEEE1A.t5", &get_PssIEEE1A_t5); + get_map.emplace("PssIEEE1A.t6", &get_PssIEEE1A_t6); + get_map.emplace("PssIEEE1A.vrmax", &get_PssIEEE1A_vrmax); + get_map.emplace("PssIEEE1A.vrmin", &get_PssIEEE1A_vrmin); } void PssIEEE1A::addClassGetFnsToMap(std::map& get_map) const @@ -453,7 +485,13 @@ void PssIEEE1A::addClassGetFnsToMap(std::map& g void PssIEEE1A::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE1A.inputSignalType", &get_PssIEEE1A_inputSignalType); + get_map.emplace("PssIEEE1A.inputSignalType", &get_PssIEEE1A_inputSignalType); +} + +bool PssIEEE1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE1A::declare() @@ -461,6 +499,14 @@ const BaseClassDefiner PssIEEE1A::declare() return BaseClassDefiner(PssIEEE1A::addConstructToMap, PssIEEE1A::addPrimitiveAssignFnsToMap, PssIEEE1A::addClassAssignFnsToMap, PssIEEE1A::debugName); } +std::map PssIEEE1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE1A_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssIEEE1A.hpp b/CGMES_2.4.13_18DEC2013/PssIEEE1A.hpp index 783b9d15e..37e50f8eb 100644 --- a/CGMES_2.4.13_18DEC2013/PssIEEE1A.hpp +++ b/CGMES_2.4.13_18DEC2013/PssIEEE1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE1A_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssIEEE2B.cpp b/CGMES_2.4.13_18DEC2013/PssIEEE2B.cpp index 7b46362be..830d84764 100644 --- a/CGMES_2.4.13_18DEC2013/PssIEEE2B.cpp +++ b/CGMES_2.4.13_18DEC2013/PssIEEE2B.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE2B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE2B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.n", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi1min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi2max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi2min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE2B::PssIEEE2B() {} PssIEEE2B::~PssIEEE2B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE2B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.m", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.n", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t10", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t11", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t4", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t6", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t7", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t8", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t9", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw4", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi1max", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi1min", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi2max", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi2min", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE2B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE2B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE2B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE2B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE2B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE2B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE2B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE2B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE2B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE2B_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* PssIEEE2B::debugString() const void PssIEEE2B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE2B", &PssIEEE2B_factory); + factory_map.emplace("PssIEEE2B", &PssIEEE2B_factory); } void PssIEEE2B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE2B.inputSignal1Type", &assign_PssIEEE2B_inputSignal1Type); - assign_map.emplace("cim:PssIEEE2B.inputSignal2Type", &assign_PssIEEE2B_inputSignal2Type); - assign_map.emplace("cim:PssIEEE2B.ks1", &assign_PssIEEE2B_ks1); - assign_map.emplace("cim:PssIEEE2B.ks2", &assign_PssIEEE2B_ks2); - assign_map.emplace("cim:PssIEEE2B.ks3", &assign_PssIEEE2B_ks3); - assign_map.emplace("cim:PssIEEE2B.m", &assign_PssIEEE2B_m); - assign_map.emplace("cim:PssIEEE2B.n", &assign_PssIEEE2B_n); - assign_map.emplace("cim:PssIEEE2B.t1", &assign_PssIEEE2B_t1); - assign_map.emplace("cim:PssIEEE2B.t10", &assign_PssIEEE2B_t10); - assign_map.emplace("cim:PssIEEE2B.t11", &assign_PssIEEE2B_t11); - assign_map.emplace("cim:PssIEEE2B.t2", &assign_PssIEEE2B_t2); - assign_map.emplace("cim:PssIEEE2B.t3", &assign_PssIEEE2B_t3); - assign_map.emplace("cim:PssIEEE2B.t4", &assign_PssIEEE2B_t4); - assign_map.emplace("cim:PssIEEE2B.t6", &assign_PssIEEE2B_t6); - assign_map.emplace("cim:PssIEEE2B.t7", &assign_PssIEEE2B_t7); - assign_map.emplace("cim:PssIEEE2B.t8", &assign_PssIEEE2B_t8); - assign_map.emplace("cim:PssIEEE2B.t9", &assign_PssIEEE2B_t9); - assign_map.emplace("cim:PssIEEE2B.tw1", &assign_PssIEEE2B_tw1); - assign_map.emplace("cim:PssIEEE2B.tw2", &assign_PssIEEE2B_tw2); - assign_map.emplace("cim:PssIEEE2B.tw3", &assign_PssIEEE2B_tw3); - assign_map.emplace("cim:PssIEEE2B.tw4", &assign_PssIEEE2B_tw4); - assign_map.emplace("cim:PssIEEE2B.vsi1max", &assign_PssIEEE2B_vsi1max); - assign_map.emplace("cim:PssIEEE2B.vsi1min", &assign_PssIEEE2B_vsi1min); - assign_map.emplace("cim:PssIEEE2B.vsi2max", &assign_PssIEEE2B_vsi2max); - assign_map.emplace("cim:PssIEEE2B.vsi2min", &assign_PssIEEE2B_vsi2min); - assign_map.emplace("cim:PssIEEE2B.vstmax", &assign_PssIEEE2B_vstmax); - assign_map.emplace("cim:PssIEEE2B.vstmin", &assign_PssIEEE2B_vstmin); + assign_map.emplace("PssIEEE2B.inputSignal1Type", &assign_PssIEEE2B_inputSignal1Type); + assign_map.emplace("PssIEEE2B.inputSignal2Type", &assign_PssIEEE2B_inputSignal2Type); + assign_map.emplace("PssIEEE2B.ks1", &assign_PssIEEE2B_ks1); + assign_map.emplace("PssIEEE2B.ks2", &assign_PssIEEE2B_ks2); + assign_map.emplace("PssIEEE2B.ks3", &assign_PssIEEE2B_ks3); + assign_map.emplace("PssIEEE2B.m", &assign_PssIEEE2B_m); + assign_map.emplace("PssIEEE2B.n", &assign_PssIEEE2B_n); + assign_map.emplace("PssIEEE2B.t1", &assign_PssIEEE2B_t1); + assign_map.emplace("PssIEEE2B.t10", &assign_PssIEEE2B_t10); + assign_map.emplace("PssIEEE2B.t11", &assign_PssIEEE2B_t11); + assign_map.emplace("PssIEEE2B.t2", &assign_PssIEEE2B_t2); + assign_map.emplace("PssIEEE2B.t3", &assign_PssIEEE2B_t3); + assign_map.emplace("PssIEEE2B.t4", &assign_PssIEEE2B_t4); + assign_map.emplace("PssIEEE2B.t6", &assign_PssIEEE2B_t6); + assign_map.emplace("PssIEEE2B.t7", &assign_PssIEEE2B_t7); + assign_map.emplace("PssIEEE2B.t8", &assign_PssIEEE2B_t8); + assign_map.emplace("PssIEEE2B.t9", &assign_PssIEEE2B_t9); + assign_map.emplace("PssIEEE2B.tw1", &assign_PssIEEE2B_tw1); + assign_map.emplace("PssIEEE2B.tw2", &assign_PssIEEE2B_tw2); + assign_map.emplace("PssIEEE2B.tw3", &assign_PssIEEE2B_tw3); + assign_map.emplace("PssIEEE2B.tw4", &assign_PssIEEE2B_tw4); + assign_map.emplace("PssIEEE2B.vsi1max", &assign_PssIEEE2B_vsi1max); + assign_map.emplace("PssIEEE2B.vsi1min", &assign_PssIEEE2B_vsi1min); + assign_map.emplace("PssIEEE2B.vsi2max", &assign_PssIEEE2B_vsi2max); + assign_map.emplace("PssIEEE2B.vsi2min", &assign_PssIEEE2B_vsi2min); + assign_map.emplace("PssIEEE2B.vstmax", &assign_PssIEEE2B_vstmax); + assign_map.emplace("PssIEEE2B.vstmin", &assign_PssIEEE2B_vstmin); } void PssIEEE2B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,31 +929,31 @@ void PssIEEE2B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE2B.ks1", &get_PssIEEE2B_ks1); - get_map.emplace("cim:PssIEEE2B.ks2", &get_PssIEEE2B_ks2); - get_map.emplace("cim:PssIEEE2B.ks3", &get_PssIEEE2B_ks3); - get_map.emplace("cim:PssIEEE2B.m", &get_PssIEEE2B_m); - get_map.emplace("cim:PssIEEE2B.n", &get_PssIEEE2B_n); - get_map.emplace("cim:PssIEEE2B.t1", &get_PssIEEE2B_t1); - get_map.emplace("cim:PssIEEE2B.t10", &get_PssIEEE2B_t10); - get_map.emplace("cim:PssIEEE2B.t11", &get_PssIEEE2B_t11); - get_map.emplace("cim:PssIEEE2B.t2", &get_PssIEEE2B_t2); - get_map.emplace("cim:PssIEEE2B.t3", &get_PssIEEE2B_t3); - get_map.emplace("cim:PssIEEE2B.t4", &get_PssIEEE2B_t4); - get_map.emplace("cim:PssIEEE2B.t6", &get_PssIEEE2B_t6); - get_map.emplace("cim:PssIEEE2B.t7", &get_PssIEEE2B_t7); - get_map.emplace("cim:PssIEEE2B.t8", &get_PssIEEE2B_t8); - get_map.emplace("cim:PssIEEE2B.t9", &get_PssIEEE2B_t9); - get_map.emplace("cim:PssIEEE2B.tw1", &get_PssIEEE2B_tw1); - get_map.emplace("cim:PssIEEE2B.tw2", &get_PssIEEE2B_tw2); - get_map.emplace("cim:PssIEEE2B.tw3", &get_PssIEEE2B_tw3); - get_map.emplace("cim:PssIEEE2B.tw4", &get_PssIEEE2B_tw4); - get_map.emplace("cim:PssIEEE2B.vsi1max", &get_PssIEEE2B_vsi1max); - get_map.emplace("cim:PssIEEE2B.vsi1min", &get_PssIEEE2B_vsi1min); - get_map.emplace("cim:PssIEEE2B.vsi2max", &get_PssIEEE2B_vsi2max); - get_map.emplace("cim:PssIEEE2B.vsi2min", &get_PssIEEE2B_vsi2min); - get_map.emplace("cim:PssIEEE2B.vstmax", &get_PssIEEE2B_vstmax); - get_map.emplace("cim:PssIEEE2B.vstmin", &get_PssIEEE2B_vstmin); + get_map.emplace("PssIEEE2B.ks1", &get_PssIEEE2B_ks1); + get_map.emplace("PssIEEE2B.ks2", &get_PssIEEE2B_ks2); + get_map.emplace("PssIEEE2B.ks3", &get_PssIEEE2B_ks3); + get_map.emplace("PssIEEE2B.m", &get_PssIEEE2B_m); + get_map.emplace("PssIEEE2B.n", &get_PssIEEE2B_n); + get_map.emplace("PssIEEE2B.t1", &get_PssIEEE2B_t1); + get_map.emplace("PssIEEE2B.t10", &get_PssIEEE2B_t10); + get_map.emplace("PssIEEE2B.t11", &get_PssIEEE2B_t11); + get_map.emplace("PssIEEE2B.t2", &get_PssIEEE2B_t2); + get_map.emplace("PssIEEE2B.t3", &get_PssIEEE2B_t3); + get_map.emplace("PssIEEE2B.t4", &get_PssIEEE2B_t4); + get_map.emplace("PssIEEE2B.t6", &get_PssIEEE2B_t6); + get_map.emplace("PssIEEE2B.t7", &get_PssIEEE2B_t7); + get_map.emplace("PssIEEE2B.t8", &get_PssIEEE2B_t8); + get_map.emplace("PssIEEE2B.t9", &get_PssIEEE2B_t9); + get_map.emplace("PssIEEE2B.tw1", &get_PssIEEE2B_tw1); + get_map.emplace("PssIEEE2B.tw2", &get_PssIEEE2B_tw2); + get_map.emplace("PssIEEE2B.tw3", &get_PssIEEE2B_tw3); + get_map.emplace("PssIEEE2B.tw4", &get_PssIEEE2B_tw4); + get_map.emplace("PssIEEE2B.vsi1max", &get_PssIEEE2B_vsi1max); + get_map.emplace("PssIEEE2B.vsi1min", &get_PssIEEE2B_vsi1min); + get_map.emplace("PssIEEE2B.vsi2max", &get_PssIEEE2B_vsi2max); + get_map.emplace("PssIEEE2B.vsi2min", &get_PssIEEE2B_vsi2min); + get_map.emplace("PssIEEE2B.vstmax", &get_PssIEEE2B_vstmax); + get_map.emplace("PssIEEE2B.vstmin", &get_PssIEEE2B_vstmin); } void PssIEEE2B::addClassGetFnsToMap(std::map& get_map) const @@ -932,8 +964,14 @@ void PssIEEE2B::addClassGetFnsToMap(std::map& g void PssIEEE2B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE2B.inputSignal1Type", &get_PssIEEE2B_inputSignal1Type); - get_map.emplace("cim:PssIEEE2B.inputSignal2Type", &get_PssIEEE2B_inputSignal2Type); + get_map.emplace("PssIEEE2B.inputSignal1Type", &get_PssIEEE2B_inputSignal1Type); + get_map.emplace("PssIEEE2B.inputSignal2Type", &get_PssIEEE2B_inputSignal2Type); +} + +bool PssIEEE2B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE2B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE2B::declare() @@ -941,6 +979,14 @@ const BaseClassDefiner PssIEEE2B::declare() return BaseClassDefiner(PssIEEE2B::addConstructToMap, PssIEEE2B::addPrimitiveAssignFnsToMap, PssIEEE2B::addClassAssignFnsToMap, PssIEEE2B::debugName); } +std::map PssIEEE2B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE2B_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssIEEE2B.hpp b/CGMES_2.4.13_18DEC2013/PssIEEE2B.hpp index 0a629b803..e00091033 100644 --- a/CGMES_2.4.13_18DEC2013/PssIEEE2B.hpp +++ b/CGMES_2.4.13_18DEC2013/PssIEEE2B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -112,8 +113,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -121,7 +129,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE2B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssIEEE3B.cpp b/CGMES_2.4.13_18DEC2013/PssIEEE3B.cpp index f4cf47980..374ec16c3 100644 --- a/CGMES_2.4.13_18DEC2013/PssIEEE3B.cpp +++ b/CGMES_2.4.13_18DEC2013/PssIEEE3B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE3B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE3B.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE3B::PssIEEE3B() {} PssIEEE3B::~PssIEEE3B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE3B.a1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a3", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a4", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a5", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a6", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a7", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a8", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.ks1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.ks2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw3", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE3B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE3B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE3B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE3B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE3B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE3B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE3B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE3B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE3B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE3B_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* PssIEEE3B::debugString() const void PssIEEE3B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE3B", &PssIEEE3B_factory); + factory_map.emplace("PssIEEE3B", &PssIEEE3B_factory); } void PssIEEE3B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE3B.a1", &assign_PssIEEE3B_a1); - assign_map.emplace("cim:PssIEEE3B.a2", &assign_PssIEEE3B_a2); - assign_map.emplace("cim:PssIEEE3B.a3", &assign_PssIEEE3B_a3); - assign_map.emplace("cim:PssIEEE3B.a4", &assign_PssIEEE3B_a4); - assign_map.emplace("cim:PssIEEE3B.a5", &assign_PssIEEE3B_a5); - assign_map.emplace("cim:PssIEEE3B.a6", &assign_PssIEEE3B_a6); - assign_map.emplace("cim:PssIEEE3B.a7", &assign_PssIEEE3B_a7); - assign_map.emplace("cim:PssIEEE3B.a8", &assign_PssIEEE3B_a8); - assign_map.emplace("cim:PssIEEE3B.inputSignal1Type", &assign_PssIEEE3B_inputSignal1Type); - assign_map.emplace("cim:PssIEEE3B.inputSignal2Type", &assign_PssIEEE3B_inputSignal2Type); - assign_map.emplace("cim:PssIEEE3B.ks1", &assign_PssIEEE3B_ks1); - assign_map.emplace("cim:PssIEEE3B.ks2", &assign_PssIEEE3B_ks2); - assign_map.emplace("cim:PssIEEE3B.t1", &assign_PssIEEE3B_t1); - assign_map.emplace("cim:PssIEEE3B.t2", &assign_PssIEEE3B_t2); - assign_map.emplace("cim:PssIEEE3B.tw1", &assign_PssIEEE3B_tw1); - assign_map.emplace("cim:PssIEEE3B.tw2", &assign_PssIEEE3B_tw2); - assign_map.emplace("cim:PssIEEE3B.tw3", &assign_PssIEEE3B_tw3); - assign_map.emplace("cim:PssIEEE3B.vstmax", &assign_PssIEEE3B_vstmax); - assign_map.emplace("cim:PssIEEE3B.vstmin", &assign_PssIEEE3B_vstmin); + assign_map.emplace("PssIEEE3B.a1", &assign_PssIEEE3B_a1); + assign_map.emplace("PssIEEE3B.a2", &assign_PssIEEE3B_a2); + assign_map.emplace("PssIEEE3B.a3", &assign_PssIEEE3B_a3); + assign_map.emplace("PssIEEE3B.a4", &assign_PssIEEE3B_a4); + assign_map.emplace("PssIEEE3B.a5", &assign_PssIEEE3B_a5); + assign_map.emplace("PssIEEE3B.a6", &assign_PssIEEE3B_a6); + assign_map.emplace("PssIEEE3B.a7", &assign_PssIEEE3B_a7); + assign_map.emplace("PssIEEE3B.a8", &assign_PssIEEE3B_a8); + assign_map.emplace("PssIEEE3B.inputSignal1Type", &assign_PssIEEE3B_inputSignal1Type); + assign_map.emplace("PssIEEE3B.inputSignal2Type", &assign_PssIEEE3B_inputSignal2Type); + assign_map.emplace("PssIEEE3B.ks1", &assign_PssIEEE3B_ks1); + assign_map.emplace("PssIEEE3B.ks2", &assign_PssIEEE3B_ks2); + assign_map.emplace("PssIEEE3B.t1", &assign_PssIEEE3B_t1); + assign_map.emplace("PssIEEE3B.t2", &assign_PssIEEE3B_t2); + assign_map.emplace("PssIEEE3B.tw1", &assign_PssIEEE3B_tw1); + assign_map.emplace("PssIEEE3B.tw2", &assign_PssIEEE3B_tw2); + assign_map.emplace("PssIEEE3B.tw3", &assign_PssIEEE3B_tw3); + assign_map.emplace("PssIEEE3B.vstmax", &assign_PssIEEE3B_vstmax); + assign_map.emplace("PssIEEE3B.vstmin", &assign_PssIEEE3B_vstmin); } void PssIEEE3B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,23 +681,23 @@ void PssIEEE3B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE3B.a1", &get_PssIEEE3B_a1); - get_map.emplace("cim:PssIEEE3B.a2", &get_PssIEEE3B_a2); - get_map.emplace("cim:PssIEEE3B.a3", &get_PssIEEE3B_a3); - get_map.emplace("cim:PssIEEE3B.a4", &get_PssIEEE3B_a4); - get_map.emplace("cim:PssIEEE3B.a5", &get_PssIEEE3B_a5); - get_map.emplace("cim:PssIEEE3B.a6", &get_PssIEEE3B_a6); - get_map.emplace("cim:PssIEEE3B.a7", &get_PssIEEE3B_a7); - get_map.emplace("cim:PssIEEE3B.a8", &get_PssIEEE3B_a8); - get_map.emplace("cim:PssIEEE3B.ks1", &get_PssIEEE3B_ks1); - get_map.emplace("cim:PssIEEE3B.ks2", &get_PssIEEE3B_ks2); - get_map.emplace("cim:PssIEEE3B.t1", &get_PssIEEE3B_t1); - get_map.emplace("cim:PssIEEE3B.t2", &get_PssIEEE3B_t2); - get_map.emplace("cim:PssIEEE3B.tw1", &get_PssIEEE3B_tw1); - get_map.emplace("cim:PssIEEE3B.tw2", &get_PssIEEE3B_tw2); - get_map.emplace("cim:PssIEEE3B.tw3", &get_PssIEEE3B_tw3); - get_map.emplace("cim:PssIEEE3B.vstmax", &get_PssIEEE3B_vstmax); - get_map.emplace("cim:PssIEEE3B.vstmin", &get_PssIEEE3B_vstmin); + get_map.emplace("PssIEEE3B.a1", &get_PssIEEE3B_a1); + get_map.emplace("PssIEEE3B.a2", &get_PssIEEE3B_a2); + get_map.emplace("PssIEEE3B.a3", &get_PssIEEE3B_a3); + get_map.emplace("PssIEEE3B.a4", &get_PssIEEE3B_a4); + get_map.emplace("PssIEEE3B.a5", &get_PssIEEE3B_a5); + get_map.emplace("PssIEEE3B.a6", &get_PssIEEE3B_a6); + get_map.emplace("PssIEEE3B.a7", &get_PssIEEE3B_a7); + get_map.emplace("PssIEEE3B.a8", &get_PssIEEE3B_a8); + get_map.emplace("PssIEEE3B.ks1", &get_PssIEEE3B_ks1); + get_map.emplace("PssIEEE3B.ks2", &get_PssIEEE3B_ks2); + get_map.emplace("PssIEEE3B.t1", &get_PssIEEE3B_t1); + get_map.emplace("PssIEEE3B.t2", &get_PssIEEE3B_t2); + get_map.emplace("PssIEEE3B.tw1", &get_PssIEEE3B_tw1); + get_map.emplace("PssIEEE3B.tw2", &get_PssIEEE3B_tw2); + get_map.emplace("PssIEEE3B.tw3", &get_PssIEEE3B_tw3); + get_map.emplace("PssIEEE3B.vstmax", &get_PssIEEE3B_vstmax); + get_map.emplace("PssIEEE3B.vstmin", &get_PssIEEE3B_vstmin); } void PssIEEE3B::addClassGetFnsToMap(std::map& get_map) const @@ -676,8 +708,14 @@ void PssIEEE3B::addClassGetFnsToMap(std::map& g void PssIEEE3B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE3B.inputSignal1Type", &get_PssIEEE3B_inputSignal1Type); - get_map.emplace("cim:PssIEEE3B.inputSignal2Type", &get_PssIEEE3B_inputSignal2Type); + get_map.emplace("PssIEEE3B.inputSignal1Type", &get_PssIEEE3B_inputSignal1Type); + get_map.emplace("PssIEEE3B.inputSignal2Type", &get_PssIEEE3B_inputSignal2Type); +} + +bool PssIEEE3B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE3B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE3B::declare() @@ -685,6 +723,14 @@ const BaseClassDefiner PssIEEE3B::declare() return BaseClassDefiner(PssIEEE3B::addConstructToMap, PssIEEE3B::addPrimitiveAssignFnsToMap, PssIEEE3B::addClassAssignFnsToMap, PssIEEE3B::debugName); } +std::map PssIEEE3B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE3B_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssIEEE3B.hpp b/CGMES_2.4.13_18DEC2013/PssIEEE3B.hpp index 8f5a867f9..2c7b8b8e0 100644 --- a/CGMES_2.4.13_18DEC2013/PssIEEE3B.hpp +++ b/CGMES_2.4.13_18DEC2013/PssIEEE3B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -87,8 +88,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -96,7 +104,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE3B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssIEEE4B.cpp b/CGMES_2.4.13_18DEC2013/PssIEEE4B.cpp index 34e2cae91..aa9d130d9 100644 --- a/CGMES_2.4.13_18DEC2013/PssIEEE4B.cpp +++ b/CGMES_2.4.13_18DEC2013/PssIEEE4B.cpp @@ -11,92 +11,124 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE4B.bwi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omegani", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vhmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vlmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vlmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE4B::PssIEEE4B() {} PssIEEE4B::~PssIEEE4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE4B.bwi", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omegani", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vhmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vhmin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vimax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vimin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vlmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vlmin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE4B_bwi(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1876,72 +1908,72 @@ const char* PssIEEE4B::debugString() const void PssIEEE4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE4B", &PssIEEE4B_factory); + factory_map.emplace("PssIEEE4B", &PssIEEE4B_factory); } void PssIEEE4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE4B.bwi", &assign_PssIEEE4B_bwi); - assign_map.emplace("cim:PssIEEE4B.kh", &assign_PssIEEE4B_kh); - assign_map.emplace("cim:PssIEEE4B.kh1", &assign_PssIEEE4B_kh1); - assign_map.emplace("cim:PssIEEE4B.kh11", &assign_PssIEEE4B_kh11); - assign_map.emplace("cim:PssIEEE4B.kh17", &assign_PssIEEE4B_kh17); - assign_map.emplace("cim:PssIEEE4B.kh2", &assign_PssIEEE4B_kh2); - assign_map.emplace("cim:PssIEEE4B.ki", &assign_PssIEEE4B_ki); - assign_map.emplace("cim:PssIEEE4B.ki1", &assign_PssIEEE4B_ki1); - assign_map.emplace("cim:PssIEEE4B.ki11", &assign_PssIEEE4B_ki11); - assign_map.emplace("cim:PssIEEE4B.ki17", &assign_PssIEEE4B_ki17); - assign_map.emplace("cim:PssIEEE4B.ki2", &assign_PssIEEE4B_ki2); - assign_map.emplace("cim:PssIEEE4B.kl", &assign_PssIEEE4B_kl); - assign_map.emplace("cim:PssIEEE4B.kl1", &assign_PssIEEE4B_kl1); - assign_map.emplace("cim:PssIEEE4B.kl11", &assign_PssIEEE4B_kl11); - assign_map.emplace("cim:PssIEEE4B.kl17", &assign_PssIEEE4B_kl17); - assign_map.emplace("cim:PssIEEE4B.kl2", &assign_PssIEEE4B_kl2); - assign_map.emplace("cim:PssIEEE4B.omegani", &assign_PssIEEE4B_omegani); - assign_map.emplace("cim:PssIEEE4B.th1", &assign_PssIEEE4B_th1); - assign_map.emplace("cim:PssIEEE4B.th10", &assign_PssIEEE4B_th10); - assign_map.emplace("cim:PssIEEE4B.th11", &assign_PssIEEE4B_th11); - assign_map.emplace("cim:PssIEEE4B.th12", &assign_PssIEEE4B_th12); - assign_map.emplace("cim:PssIEEE4B.th2", &assign_PssIEEE4B_th2); - assign_map.emplace("cim:PssIEEE4B.th3", &assign_PssIEEE4B_th3); - assign_map.emplace("cim:PssIEEE4B.th4", &assign_PssIEEE4B_th4); - assign_map.emplace("cim:PssIEEE4B.th5", &assign_PssIEEE4B_th5); - assign_map.emplace("cim:PssIEEE4B.th6", &assign_PssIEEE4B_th6); - assign_map.emplace("cim:PssIEEE4B.th7", &assign_PssIEEE4B_th7); - assign_map.emplace("cim:PssIEEE4B.th8", &assign_PssIEEE4B_th8); - assign_map.emplace("cim:PssIEEE4B.th9", &assign_PssIEEE4B_th9); - assign_map.emplace("cim:PssIEEE4B.ti1", &assign_PssIEEE4B_ti1); - assign_map.emplace("cim:PssIEEE4B.ti10", &assign_PssIEEE4B_ti10); - assign_map.emplace("cim:PssIEEE4B.ti11", &assign_PssIEEE4B_ti11); - assign_map.emplace("cim:PssIEEE4B.ti12", &assign_PssIEEE4B_ti12); - assign_map.emplace("cim:PssIEEE4B.ti2", &assign_PssIEEE4B_ti2); - assign_map.emplace("cim:PssIEEE4B.ti3", &assign_PssIEEE4B_ti3); - assign_map.emplace("cim:PssIEEE4B.ti4", &assign_PssIEEE4B_ti4); - assign_map.emplace("cim:PssIEEE4B.ti5", &assign_PssIEEE4B_ti5); - assign_map.emplace("cim:PssIEEE4B.ti6", &assign_PssIEEE4B_ti6); - assign_map.emplace("cim:PssIEEE4B.ti7", &assign_PssIEEE4B_ti7); - assign_map.emplace("cim:PssIEEE4B.ti8", &assign_PssIEEE4B_ti8); - assign_map.emplace("cim:PssIEEE4B.ti9", &assign_PssIEEE4B_ti9); - assign_map.emplace("cim:PssIEEE4B.tl1", &assign_PssIEEE4B_tl1); - assign_map.emplace("cim:PssIEEE4B.tl10", &assign_PssIEEE4B_tl10); - assign_map.emplace("cim:PssIEEE4B.tl11", &assign_PssIEEE4B_tl11); - assign_map.emplace("cim:PssIEEE4B.tl12", &assign_PssIEEE4B_tl12); - assign_map.emplace("cim:PssIEEE4B.tl2", &assign_PssIEEE4B_tl2); - assign_map.emplace("cim:PssIEEE4B.tl3", &assign_PssIEEE4B_tl3); - assign_map.emplace("cim:PssIEEE4B.tl4", &assign_PssIEEE4B_tl4); - assign_map.emplace("cim:PssIEEE4B.tl5", &assign_PssIEEE4B_tl5); - assign_map.emplace("cim:PssIEEE4B.tl6", &assign_PssIEEE4B_tl6); - assign_map.emplace("cim:PssIEEE4B.tl7", &assign_PssIEEE4B_tl7); - assign_map.emplace("cim:PssIEEE4B.tl8", &assign_PssIEEE4B_tl8); - assign_map.emplace("cim:PssIEEE4B.tl9", &assign_PssIEEE4B_tl9); - assign_map.emplace("cim:PssIEEE4B.vhmax", &assign_PssIEEE4B_vhmax); - assign_map.emplace("cim:PssIEEE4B.vhmin", &assign_PssIEEE4B_vhmin); - assign_map.emplace("cim:PssIEEE4B.vimax", &assign_PssIEEE4B_vimax); - assign_map.emplace("cim:PssIEEE4B.vimin", &assign_PssIEEE4B_vimin); - assign_map.emplace("cim:PssIEEE4B.vlmax", &assign_PssIEEE4B_vlmax); - assign_map.emplace("cim:PssIEEE4B.vlmin", &assign_PssIEEE4B_vlmin); - assign_map.emplace("cim:PssIEEE4B.vstmax", &assign_PssIEEE4B_vstmax); - assign_map.emplace("cim:PssIEEE4B.vstmin", &assign_PssIEEE4B_vstmin); + assign_map.emplace("PssIEEE4B.bwi", &assign_PssIEEE4B_bwi); + assign_map.emplace("PssIEEE4B.kh", &assign_PssIEEE4B_kh); + assign_map.emplace("PssIEEE4B.kh1", &assign_PssIEEE4B_kh1); + assign_map.emplace("PssIEEE4B.kh11", &assign_PssIEEE4B_kh11); + assign_map.emplace("PssIEEE4B.kh17", &assign_PssIEEE4B_kh17); + assign_map.emplace("PssIEEE4B.kh2", &assign_PssIEEE4B_kh2); + assign_map.emplace("PssIEEE4B.ki", &assign_PssIEEE4B_ki); + assign_map.emplace("PssIEEE4B.ki1", &assign_PssIEEE4B_ki1); + assign_map.emplace("PssIEEE4B.ki11", &assign_PssIEEE4B_ki11); + assign_map.emplace("PssIEEE4B.ki17", &assign_PssIEEE4B_ki17); + assign_map.emplace("PssIEEE4B.ki2", &assign_PssIEEE4B_ki2); + assign_map.emplace("PssIEEE4B.kl", &assign_PssIEEE4B_kl); + assign_map.emplace("PssIEEE4B.kl1", &assign_PssIEEE4B_kl1); + assign_map.emplace("PssIEEE4B.kl11", &assign_PssIEEE4B_kl11); + assign_map.emplace("PssIEEE4B.kl17", &assign_PssIEEE4B_kl17); + assign_map.emplace("PssIEEE4B.kl2", &assign_PssIEEE4B_kl2); + assign_map.emplace("PssIEEE4B.omegani", &assign_PssIEEE4B_omegani); + assign_map.emplace("PssIEEE4B.th1", &assign_PssIEEE4B_th1); + assign_map.emplace("PssIEEE4B.th10", &assign_PssIEEE4B_th10); + assign_map.emplace("PssIEEE4B.th11", &assign_PssIEEE4B_th11); + assign_map.emplace("PssIEEE4B.th12", &assign_PssIEEE4B_th12); + assign_map.emplace("PssIEEE4B.th2", &assign_PssIEEE4B_th2); + assign_map.emplace("PssIEEE4B.th3", &assign_PssIEEE4B_th3); + assign_map.emplace("PssIEEE4B.th4", &assign_PssIEEE4B_th4); + assign_map.emplace("PssIEEE4B.th5", &assign_PssIEEE4B_th5); + assign_map.emplace("PssIEEE4B.th6", &assign_PssIEEE4B_th6); + assign_map.emplace("PssIEEE4B.th7", &assign_PssIEEE4B_th7); + assign_map.emplace("PssIEEE4B.th8", &assign_PssIEEE4B_th8); + assign_map.emplace("PssIEEE4B.th9", &assign_PssIEEE4B_th9); + assign_map.emplace("PssIEEE4B.ti1", &assign_PssIEEE4B_ti1); + assign_map.emplace("PssIEEE4B.ti10", &assign_PssIEEE4B_ti10); + assign_map.emplace("PssIEEE4B.ti11", &assign_PssIEEE4B_ti11); + assign_map.emplace("PssIEEE4B.ti12", &assign_PssIEEE4B_ti12); + assign_map.emplace("PssIEEE4B.ti2", &assign_PssIEEE4B_ti2); + assign_map.emplace("PssIEEE4B.ti3", &assign_PssIEEE4B_ti3); + assign_map.emplace("PssIEEE4B.ti4", &assign_PssIEEE4B_ti4); + assign_map.emplace("PssIEEE4B.ti5", &assign_PssIEEE4B_ti5); + assign_map.emplace("PssIEEE4B.ti6", &assign_PssIEEE4B_ti6); + assign_map.emplace("PssIEEE4B.ti7", &assign_PssIEEE4B_ti7); + assign_map.emplace("PssIEEE4B.ti8", &assign_PssIEEE4B_ti8); + assign_map.emplace("PssIEEE4B.ti9", &assign_PssIEEE4B_ti9); + assign_map.emplace("PssIEEE4B.tl1", &assign_PssIEEE4B_tl1); + assign_map.emplace("PssIEEE4B.tl10", &assign_PssIEEE4B_tl10); + assign_map.emplace("PssIEEE4B.tl11", &assign_PssIEEE4B_tl11); + assign_map.emplace("PssIEEE4B.tl12", &assign_PssIEEE4B_tl12); + assign_map.emplace("PssIEEE4B.tl2", &assign_PssIEEE4B_tl2); + assign_map.emplace("PssIEEE4B.tl3", &assign_PssIEEE4B_tl3); + assign_map.emplace("PssIEEE4B.tl4", &assign_PssIEEE4B_tl4); + assign_map.emplace("PssIEEE4B.tl5", &assign_PssIEEE4B_tl5); + assign_map.emplace("PssIEEE4B.tl6", &assign_PssIEEE4B_tl6); + assign_map.emplace("PssIEEE4B.tl7", &assign_PssIEEE4B_tl7); + assign_map.emplace("PssIEEE4B.tl8", &assign_PssIEEE4B_tl8); + assign_map.emplace("PssIEEE4B.tl9", &assign_PssIEEE4B_tl9); + assign_map.emplace("PssIEEE4B.vhmax", &assign_PssIEEE4B_vhmax); + assign_map.emplace("PssIEEE4B.vhmin", &assign_PssIEEE4B_vhmin); + assign_map.emplace("PssIEEE4B.vimax", &assign_PssIEEE4B_vimax); + assign_map.emplace("PssIEEE4B.vimin", &assign_PssIEEE4B_vimin); + assign_map.emplace("PssIEEE4B.vlmax", &assign_PssIEEE4B_vlmax); + assign_map.emplace("PssIEEE4B.vlmin", &assign_PssIEEE4B_vlmin); + assign_map.emplace("PssIEEE4B.vstmax", &assign_PssIEEE4B_vstmax); + assign_map.emplace("PssIEEE4B.vstmin", &assign_PssIEEE4B_vstmin); } void PssIEEE4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1951,67 +1983,67 @@ void PssIEEE4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE4B.bwi", &get_PssIEEE4B_bwi); - get_map.emplace("cim:PssIEEE4B.kh", &get_PssIEEE4B_kh); - get_map.emplace("cim:PssIEEE4B.kh1", &get_PssIEEE4B_kh1); - get_map.emplace("cim:PssIEEE4B.kh11", &get_PssIEEE4B_kh11); - get_map.emplace("cim:PssIEEE4B.kh17", &get_PssIEEE4B_kh17); - get_map.emplace("cim:PssIEEE4B.kh2", &get_PssIEEE4B_kh2); - get_map.emplace("cim:PssIEEE4B.ki", &get_PssIEEE4B_ki); - get_map.emplace("cim:PssIEEE4B.ki1", &get_PssIEEE4B_ki1); - get_map.emplace("cim:PssIEEE4B.ki11", &get_PssIEEE4B_ki11); - get_map.emplace("cim:PssIEEE4B.ki17", &get_PssIEEE4B_ki17); - get_map.emplace("cim:PssIEEE4B.ki2", &get_PssIEEE4B_ki2); - get_map.emplace("cim:PssIEEE4B.kl", &get_PssIEEE4B_kl); - get_map.emplace("cim:PssIEEE4B.kl1", &get_PssIEEE4B_kl1); - get_map.emplace("cim:PssIEEE4B.kl11", &get_PssIEEE4B_kl11); - get_map.emplace("cim:PssIEEE4B.kl17", &get_PssIEEE4B_kl17); - get_map.emplace("cim:PssIEEE4B.kl2", &get_PssIEEE4B_kl2); - get_map.emplace("cim:PssIEEE4B.omegani", &get_PssIEEE4B_omegani); - get_map.emplace("cim:PssIEEE4B.th1", &get_PssIEEE4B_th1); - get_map.emplace("cim:PssIEEE4B.th10", &get_PssIEEE4B_th10); - get_map.emplace("cim:PssIEEE4B.th11", &get_PssIEEE4B_th11); - get_map.emplace("cim:PssIEEE4B.th12", &get_PssIEEE4B_th12); - get_map.emplace("cim:PssIEEE4B.th2", &get_PssIEEE4B_th2); - get_map.emplace("cim:PssIEEE4B.th3", &get_PssIEEE4B_th3); - get_map.emplace("cim:PssIEEE4B.th4", &get_PssIEEE4B_th4); - get_map.emplace("cim:PssIEEE4B.th5", &get_PssIEEE4B_th5); - get_map.emplace("cim:PssIEEE4B.th6", &get_PssIEEE4B_th6); - get_map.emplace("cim:PssIEEE4B.th7", &get_PssIEEE4B_th7); - get_map.emplace("cim:PssIEEE4B.th8", &get_PssIEEE4B_th8); - get_map.emplace("cim:PssIEEE4B.th9", &get_PssIEEE4B_th9); - get_map.emplace("cim:PssIEEE4B.ti1", &get_PssIEEE4B_ti1); - get_map.emplace("cim:PssIEEE4B.ti10", &get_PssIEEE4B_ti10); - get_map.emplace("cim:PssIEEE4B.ti11", &get_PssIEEE4B_ti11); - get_map.emplace("cim:PssIEEE4B.ti12", &get_PssIEEE4B_ti12); - get_map.emplace("cim:PssIEEE4B.ti2", &get_PssIEEE4B_ti2); - get_map.emplace("cim:PssIEEE4B.ti3", &get_PssIEEE4B_ti3); - get_map.emplace("cim:PssIEEE4B.ti4", &get_PssIEEE4B_ti4); - get_map.emplace("cim:PssIEEE4B.ti5", &get_PssIEEE4B_ti5); - get_map.emplace("cim:PssIEEE4B.ti6", &get_PssIEEE4B_ti6); - get_map.emplace("cim:PssIEEE4B.ti7", &get_PssIEEE4B_ti7); - get_map.emplace("cim:PssIEEE4B.ti8", &get_PssIEEE4B_ti8); - get_map.emplace("cim:PssIEEE4B.ti9", &get_PssIEEE4B_ti9); - get_map.emplace("cim:PssIEEE4B.tl1", &get_PssIEEE4B_tl1); - get_map.emplace("cim:PssIEEE4B.tl10", &get_PssIEEE4B_tl10); - get_map.emplace("cim:PssIEEE4B.tl11", &get_PssIEEE4B_tl11); - get_map.emplace("cim:PssIEEE4B.tl12", &get_PssIEEE4B_tl12); - get_map.emplace("cim:PssIEEE4B.tl2", &get_PssIEEE4B_tl2); - get_map.emplace("cim:PssIEEE4B.tl3", &get_PssIEEE4B_tl3); - get_map.emplace("cim:PssIEEE4B.tl4", &get_PssIEEE4B_tl4); - get_map.emplace("cim:PssIEEE4B.tl5", &get_PssIEEE4B_tl5); - get_map.emplace("cim:PssIEEE4B.tl6", &get_PssIEEE4B_tl6); - get_map.emplace("cim:PssIEEE4B.tl7", &get_PssIEEE4B_tl7); - get_map.emplace("cim:PssIEEE4B.tl8", &get_PssIEEE4B_tl8); - get_map.emplace("cim:PssIEEE4B.tl9", &get_PssIEEE4B_tl9); - get_map.emplace("cim:PssIEEE4B.vhmax", &get_PssIEEE4B_vhmax); - get_map.emplace("cim:PssIEEE4B.vhmin", &get_PssIEEE4B_vhmin); - get_map.emplace("cim:PssIEEE4B.vimax", &get_PssIEEE4B_vimax); - get_map.emplace("cim:PssIEEE4B.vimin", &get_PssIEEE4B_vimin); - get_map.emplace("cim:PssIEEE4B.vlmax", &get_PssIEEE4B_vlmax); - get_map.emplace("cim:PssIEEE4B.vlmin", &get_PssIEEE4B_vlmin); - get_map.emplace("cim:PssIEEE4B.vstmax", &get_PssIEEE4B_vstmax); - get_map.emplace("cim:PssIEEE4B.vstmin", &get_PssIEEE4B_vstmin); + get_map.emplace("PssIEEE4B.bwi", &get_PssIEEE4B_bwi); + get_map.emplace("PssIEEE4B.kh", &get_PssIEEE4B_kh); + get_map.emplace("PssIEEE4B.kh1", &get_PssIEEE4B_kh1); + get_map.emplace("PssIEEE4B.kh11", &get_PssIEEE4B_kh11); + get_map.emplace("PssIEEE4B.kh17", &get_PssIEEE4B_kh17); + get_map.emplace("PssIEEE4B.kh2", &get_PssIEEE4B_kh2); + get_map.emplace("PssIEEE4B.ki", &get_PssIEEE4B_ki); + get_map.emplace("PssIEEE4B.ki1", &get_PssIEEE4B_ki1); + get_map.emplace("PssIEEE4B.ki11", &get_PssIEEE4B_ki11); + get_map.emplace("PssIEEE4B.ki17", &get_PssIEEE4B_ki17); + get_map.emplace("PssIEEE4B.ki2", &get_PssIEEE4B_ki2); + get_map.emplace("PssIEEE4B.kl", &get_PssIEEE4B_kl); + get_map.emplace("PssIEEE4B.kl1", &get_PssIEEE4B_kl1); + get_map.emplace("PssIEEE4B.kl11", &get_PssIEEE4B_kl11); + get_map.emplace("PssIEEE4B.kl17", &get_PssIEEE4B_kl17); + get_map.emplace("PssIEEE4B.kl2", &get_PssIEEE4B_kl2); + get_map.emplace("PssIEEE4B.omegani", &get_PssIEEE4B_omegani); + get_map.emplace("PssIEEE4B.th1", &get_PssIEEE4B_th1); + get_map.emplace("PssIEEE4B.th10", &get_PssIEEE4B_th10); + get_map.emplace("PssIEEE4B.th11", &get_PssIEEE4B_th11); + get_map.emplace("PssIEEE4B.th12", &get_PssIEEE4B_th12); + get_map.emplace("PssIEEE4B.th2", &get_PssIEEE4B_th2); + get_map.emplace("PssIEEE4B.th3", &get_PssIEEE4B_th3); + get_map.emplace("PssIEEE4B.th4", &get_PssIEEE4B_th4); + get_map.emplace("PssIEEE4B.th5", &get_PssIEEE4B_th5); + get_map.emplace("PssIEEE4B.th6", &get_PssIEEE4B_th6); + get_map.emplace("PssIEEE4B.th7", &get_PssIEEE4B_th7); + get_map.emplace("PssIEEE4B.th8", &get_PssIEEE4B_th8); + get_map.emplace("PssIEEE4B.th9", &get_PssIEEE4B_th9); + get_map.emplace("PssIEEE4B.ti1", &get_PssIEEE4B_ti1); + get_map.emplace("PssIEEE4B.ti10", &get_PssIEEE4B_ti10); + get_map.emplace("PssIEEE4B.ti11", &get_PssIEEE4B_ti11); + get_map.emplace("PssIEEE4B.ti12", &get_PssIEEE4B_ti12); + get_map.emplace("PssIEEE4B.ti2", &get_PssIEEE4B_ti2); + get_map.emplace("PssIEEE4B.ti3", &get_PssIEEE4B_ti3); + get_map.emplace("PssIEEE4B.ti4", &get_PssIEEE4B_ti4); + get_map.emplace("PssIEEE4B.ti5", &get_PssIEEE4B_ti5); + get_map.emplace("PssIEEE4B.ti6", &get_PssIEEE4B_ti6); + get_map.emplace("PssIEEE4B.ti7", &get_PssIEEE4B_ti7); + get_map.emplace("PssIEEE4B.ti8", &get_PssIEEE4B_ti8); + get_map.emplace("PssIEEE4B.ti9", &get_PssIEEE4B_ti9); + get_map.emplace("PssIEEE4B.tl1", &get_PssIEEE4B_tl1); + get_map.emplace("PssIEEE4B.tl10", &get_PssIEEE4B_tl10); + get_map.emplace("PssIEEE4B.tl11", &get_PssIEEE4B_tl11); + get_map.emplace("PssIEEE4B.tl12", &get_PssIEEE4B_tl12); + get_map.emplace("PssIEEE4B.tl2", &get_PssIEEE4B_tl2); + get_map.emplace("PssIEEE4B.tl3", &get_PssIEEE4B_tl3); + get_map.emplace("PssIEEE4B.tl4", &get_PssIEEE4B_tl4); + get_map.emplace("PssIEEE4B.tl5", &get_PssIEEE4B_tl5); + get_map.emplace("PssIEEE4B.tl6", &get_PssIEEE4B_tl6); + get_map.emplace("PssIEEE4B.tl7", &get_PssIEEE4B_tl7); + get_map.emplace("PssIEEE4B.tl8", &get_PssIEEE4B_tl8); + get_map.emplace("PssIEEE4B.tl9", &get_PssIEEE4B_tl9); + get_map.emplace("PssIEEE4B.vhmax", &get_PssIEEE4B_vhmax); + get_map.emplace("PssIEEE4B.vhmin", &get_PssIEEE4B_vhmin); + get_map.emplace("PssIEEE4B.vimax", &get_PssIEEE4B_vimax); + get_map.emplace("PssIEEE4B.vimin", &get_PssIEEE4B_vimin); + get_map.emplace("PssIEEE4B.vlmax", &get_PssIEEE4B_vlmax); + get_map.emplace("PssIEEE4B.vlmin", &get_PssIEEE4B_vlmin); + get_map.emplace("PssIEEE4B.vstmax", &get_PssIEEE4B_vstmax); + get_map.emplace("PssIEEE4B.vstmin", &get_PssIEEE4B_vstmin); } void PssIEEE4B::addClassGetFnsToMap(std::map& get_map) const @@ -2024,11 +2056,25 @@ void PssIEEE4B::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssIEEE4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssIEEE4B::declare() { return BaseClassDefiner(PssIEEE4B::addConstructToMap, PssIEEE4B::addPrimitiveAssignFnsToMap, PssIEEE4B::addClassAssignFnsToMap, PssIEEE4B::debugName); } +std::map PssIEEE4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE4B_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssIEEE4B.hpp b/CGMES_2.4.13_18DEC2013/PssIEEE4B.hpp index 7d1b81937..214d1da99 100644 --- a/CGMES_2.4.13_18DEC2013/PssIEEE4B.hpp +++ b/CGMES_2.4.13_18DEC2013/PssIEEE4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -213,8 +214,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -222,7 +230,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE4B_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssPTIST1.cpp b/CGMES_2.4.13_18DEC2013/PssPTIST1.cpp index beea82b09..141b61775 100644 --- a/CGMES_2.4.13_18DEC2013/PssPTIST1.cpp +++ b/CGMES_2.4.13_18DEC2013/PssPTIST1.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssPTIST1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssPTIST1.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.dtf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.dtp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssPTIST1::PssPTIST1() {} PssPTIST1::~PssPTIST1() {} -static const std::list PossibleProfilesForClass = +const std::list& PssPTIST1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssPTIST1::getClassNamespaceUrl() const { - { "cim:PssPTIST1.dtc", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.dtf", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.dtp", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.k", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.m", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t1", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t2", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t3", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t4", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.tf", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.tp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssPTIST1::getPossibleProfilesForClass() const +const std::string& PssPTIST1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssPTIST1::getPossibleProfilesForAttributes() const +const std::list& PssPTIST1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssPTIST1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssPTIST1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssPTIST1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssPTIST1_dtc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssPTIST1::debugString() const void PssPTIST1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssPTIST1", &PssPTIST1_factory); + factory_map.emplace("PssPTIST1", &PssPTIST1_factory); } void PssPTIST1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssPTIST1.dtc", &assign_PssPTIST1_dtc); - assign_map.emplace("cim:PssPTIST1.dtf", &assign_PssPTIST1_dtf); - assign_map.emplace("cim:PssPTIST1.dtp", &assign_PssPTIST1_dtp); - assign_map.emplace("cim:PssPTIST1.k", &assign_PssPTIST1_k); - assign_map.emplace("cim:PssPTIST1.m", &assign_PssPTIST1_m); - assign_map.emplace("cim:PssPTIST1.t1", &assign_PssPTIST1_t1); - assign_map.emplace("cim:PssPTIST1.t2", &assign_PssPTIST1_t2); - assign_map.emplace("cim:PssPTIST1.t3", &assign_PssPTIST1_t3); - assign_map.emplace("cim:PssPTIST1.t4", &assign_PssPTIST1_t4); - assign_map.emplace("cim:PssPTIST1.tf", &assign_PssPTIST1_tf); - assign_map.emplace("cim:PssPTIST1.tp", &assign_PssPTIST1_tp); + assign_map.emplace("PssPTIST1.dtc", &assign_PssPTIST1_dtc); + assign_map.emplace("PssPTIST1.dtf", &assign_PssPTIST1_dtf); + assign_map.emplace("PssPTIST1.dtp", &assign_PssPTIST1_dtp); + assign_map.emplace("PssPTIST1.k", &assign_PssPTIST1_k); + assign_map.emplace("PssPTIST1.m", &assign_PssPTIST1_m); + assign_map.emplace("PssPTIST1.t1", &assign_PssPTIST1_t1); + assign_map.emplace("PssPTIST1.t2", &assign_PssPTIST1_t2); + assign_map.emplace("PssPTIST1.t3", &assign_PssPTIST1_t3); + assign_map.emplace("PssPTIST1.t4", &assign_PssPTIST1_t4); + assign_map.emplace("PssPTIST1.tf", &assign_PssPTIST1_tf); + assign_map.emplace("PssPTIST1.tp", &assign_PssPTIST1_tp); } void PssPTIST1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssPTIST1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssPTIST1.dtc", &get_PssPTIST1_dtc); - get_map.emplace("cim:PssPTIST1.dtf", &get_PssPTIST1_dtf); - get_map.emplace("cim:PssPTIST1.dtp", &get_PssPTIST1_dtp); - get_map.emplace("cim:PssPTIST1.k", &get_PssPTIST1_k); - get_map.emplace("cim:PssPTIST1.m", &get_PssPTIST1_m); - get_map.emplace("cim:PssPTIST1.t1", &get_PssPTIST1_t1); - get_map.emplace("cim:PssPTIST1.t2", &get_PssPTIST1_t2); - get_map.emplace("cim:PssPTIST1.t3", &get_PssPTIST1_t3); - get_map.emplace("cim:PssPTIST1.t4", &get_PssPTIST1_t4); - get_map.emplace("cim:PssPTIST1.tf", &get_PssPTIST1_tf); - get_map.emplace("cim:PssPTIST1.tp", &get_PssPTIST1_tp); + get_map.emplace("PssPTIST1.dtc", &get_PssPTIST1_dtc); + get_map.emplace("PssPTIST1.dtf", &get_PssPTIST1_dtf); + get_map.emplace("PssPTIST1.dtp", &get_PssPTIST1_dtp); + get_map.emplace("PssPTIST1.k", &get_PssPTIST1_k); + get_map.emplace("PssPTIST1.m", &get_PssPTIST1_m); + get_map.emplace("PssPTIST1.t1", &get_PssPTIST1_t1); + get_map.emplace("PssPTIST1.t2", &get_PssPTIST1_t2); + get_map.emplace("PssPTIST1.t3", &get_PssPTIST1_t3); + get_map.emplace("PssPTIST1.t4", &get_PssPTIST1_t4); + get_map.emplace("PssPTIST1.tf", &get_PssPTIST1_tf); + get_map.emplace("PssPTIST1.tp", &get_PssPTIST1_tp); } void PssPTIST1::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssPTIST1::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssPTIST1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssPTIST1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssPTIST1::declare() { return BaseClassDefiner(PssPTIST1::addConstructToMap, PssPTIST1::addPrimitiveAssignFnsToMap, PssPTIST1::addClassAssignFnsToMap, PssPTIST1::debugName); } +std::map PssPTIST1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssPTIST1_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssPTIST1.hpp b/CGMES_2.4.13_18DEC2013/PssPTIST1.hpp index b48716169..34308b1e6 100644 --- a/CGMES_2.4.13_18DEC2013/PssPTIST1.hpp +++ b/CGMES_2.4.13_18DEC2013/PssPTIST1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssPTIST1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssPTIST3.cpp b/CGMES_2.4.13_18DEC2013/PssPTIST3.cpp index 42a3072e3..025073330 100644 --- a/CGMES_2.4.13_18DEC2013/PssPTIST3.cpp +++ b/CGMES_2.4.13_18DEC2013/PssPTIST3.cpp @@ -11,65 +11,97 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssPTIST3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssPTIST3.a0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.al", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.athres", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.isw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.lthres", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.nav", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.ncl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.ncr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssPTIST3::PssPTIST3() {} PssPTIST3::~PssPTIST3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssPTIST3.a0", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.al", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.athres", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b0", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dl", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtc", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtf", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtp", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.isw", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.k", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.lthres", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.m", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.nav", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.ncl", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.ncr", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.pmin", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t6", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.tf", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.tp", { CGMESProfile::DY, } }, -}; - -std::list -PssPTIST3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssPTIST3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssPTIST3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssPTIST3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssPTIST3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssPTIST3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssPTIST3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssPTIST3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssPTIST3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssPTIST3_a0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1066,45 +1098,45 @@ const char* PssPTIST3::debugString() const void PssPTIST3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssPTIST3", &PssPTIST3_factory); + factory_map.emplace("PssPTIST3", &PssPTIST3_factory); } void PssPTIST3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssPTIST3.a0", &assign_PssPTIST3_a0); - assign_map.emplace("cim:PssPTIST3.a1", &assign_PssPTIST3_a1); - assign_map.emplace("cim:PssPTIST3.a2", &assign_PssPTIST3_a2); - assign_map.emplace("cim:PssPTIST3.a3", &assign_PssPTIST3_a3); - assign_map.emplace("cim:PssPTIST3.a4", &assign_PssPTIST3_a4); - assign_map.emplace("cim:PssPTIST3.a5", &assign_PssPTIST3_a5); - assign_map.emplace("cim:PssPTIST3.al", &assign_PssPTIST3_al); - assign_map.emplace("cim:PssPTIST3.athres", &assign_PssPTIST3_athres); - assign_map.emplace("cim:PssPTIST3.b0", &assign_PssPTIST3_b0); - assign_map.emplace("cim:PssPTIST3.b1", &assign_PssPTIST3_b1); - assign_map.emplace("cim:PssPTIST3.b2", &assign_PssPTIST3_b2); - assign_map.emplace("cim:PssPTIST3.b3", &assign_PssPTIST3_b3); - assign_map.emplace("cim:PssPTIST3.b4", &assign_PssPTIST3_b4); - assign_map.emplace("cim:PssPTIST3.b5", &assign_PssPTIST3_b5); - assign_map.emplace("cim:PssPTIST3.dl", &assign_PssPTIST3_dl); - assign_map.emplace("cim:PssPTIST3.dtc", &assign_PssPTIST3_dtc); - assign_map.emplace("cim:PssPTIST3.dtf", &assign_PssPTIST3_dtf); - assign_map.emplace("cim:PssPTIST3.dtp", &assign_PssPTIST3_dtp); - assign_map.emplace("cim:PssPTIST3.isw", &assign_PssPTIST3_isw); - assign_map.emplace("cim:PssPTIST3.k", &assign_PssPTIST3_k); - assign_map.emplace("cim:PssPTIST3.lthres", &assign_PssPTIST3_lthres); - assign_map.emplace("cim:PssPTIST3.m", &assign_PssPTIST3_m); - assign_map.emplace("cim:PssPTIST3.nav", &assign_PssPTIST3_nav); - assign_map.emplace("cim:PssPTIST3.ncl", &assign_PssPTIST3_ncl); - assign_map.emplace("cim:PssPTIST3.ncr", &assign_PssPTIST3_ncr); - assign_map.emplace("cim:PssPTIST3.pmin", &assign_PssPTIST3_pmin); - assign_map.emplace("cim:PssPTIST3.t1", &assign_PssPTIST3_t1); - assign_map.emplace("cim:PssPTIST3.t2", &assign_PssPTIST3_t2); - assign_map.emplace("cim:PssPTIST3.t3", &assign_PssPTIST3_t3); - assign_map.emplace("cim:PssPTIST3.t4", &assign_PssPTIST3_t4); - assign_map.emplace("cim:PssPTIST3.t5", &assign_PssPTIST3_t5); - assign_map.emplace("cim:PssPTIST3.t6", &assign_PssPTIST3_t6); - assign_map.emplace("cim:PssPTIST3.tf", &assign_PssPTIST3_tf); - assign_map.emplace("cim:PssPTIST3.tp", &assign_PssPTIST3_tp); + assign_map.emplace("PssPTIST3.a0", &assign_PssPTIST3_a0); + assign_map.emplace("PssPTIST3.a1", &assign_PssPTIST3_a1); + assign_map.emplace("PssPTIST3.a2", &assign_PssPTIST3_a2); + assign_map.emplace("PssPTIST3.a3", &assign_PssPTIST3_a3); + assign_map.emplace("PssPTIST3.a4", &assign_PssPTIST3_a4); + assign_map.emplace("PssPTIST3.a5", &assign_PssPTIST3_a5); + assign_map.emplace("PssPTIST3.al", &assign_PssPTIST3_al); + assign_map.emplace("PssPTIST3.athres", &assign_PssPTIST3_athres); + assign_map.emplace("PssPTIST3.b0", &assign_PssPTIST3_b0); + assign_map.emplace("PssPTIST3.b1", &assign_PssPTIST3_b1); + assign_map.emplace("PssPTIST3.b2", &assign_PssPTIST3_b2); + assign_map.emplace("PssPTIST3.b3", &assign_PssPTIST3_b3); + assign_map.emplace("PssPTIST3.b4", &assign_PssPTIST3_b4); + assign_map.emplace("PssPTIST3.b5", &assign_PssPTIST3_b5); + assign_map.emplace("PssPTIST3.dl", &assign_PssPTIST3_dl); + assign_map.emplace("PssPTIST3.dtc", &assign_PssPTIST3_dtc); + assign_map.emplace("PssPTIST3.dtf", &assign_PssPTIST3_dtf); + assign_map.emplace("PssPTIST3.dtp", &assign_PssPTIST3_dtp); + assign_map.emplace("PssPTIST3.isw", &assign_PssPTIST3_isw); + assign_map.emplace("PssPTIST3.k", &assign_PssPTIST3_k); + assign_map.emplace("PssPTIST3.lthres", &assign_PssPTIST3_lthres); + assign_map.emplace("PssPTIST3.m", &assign_PssPTIST3_m); + assign_map.emplace("PssPTIST3.nav", &assign_PssPTIST3_nav); + assign_map.emplace("PssPTIST3.ncl", &assign_PssPTIST3_ncl); + assign_map.emplace("PssPTIST3.ncr", &assign_PssPTIST3_ncr); + assign_map.emplace("PssPTIST3.pmin", &assign_PssPTIST3_pmin); + assign_map.emplace("PssPTIST3.t1", &assign_PssPTIST3_t1); + assign_map.emplace("PssPTIST3.t2", &assign_PssPTIST3_t2); + assign_map.emplace("PssPTIST3.t3", &assign_PssPTIST3_t3); + assign_map.emplace("PssPTIST3.t4", &assign_PssPTIST3_t4); + assign_map.emplace("PssPTIST3.t5", &assign_PssPTIST3_t5); + assign_map.emplace("PssPTIST3.t6", &assign_PssPTIST3_t6); + assign_map.emplace("PssPTIST3.tf", &assign_PssPTIST3_tf); + assign_map.emplace("PssPTIST3.tp", &assign_PssPTIST3_tp); } void PssPTIST3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1114,40 +1146,40 @@ void PssPTIST3::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssPTIST3.a0", &get_PssPTIST3_a0); - get_map.emplace("cim:PssPTIST3.a1", &get_PssPTIST3_a1); - get_map.emplace("cim:PssPTIST3.a2", &get_PssPTIST3_a2); - get_map.emplace("cim:PssPTIST3.a3", &get_PssPTIST3_a3); - get_map.emplace("cim:PssPTIST3.a4", &get_PssPTIST3_a4); - get_map.emplace("cim:PssPTIST3.a5", &get_PssPTIST3_a5); - get_map.emplace("cim:PssPTIST3.al", &get_PssPTIST3_al); - get_map.emplace("cim:PssPTIST3.athres", &get_PssPTIST3_athres); - get_map.emplace("cim:PssPTIST3.b0", &get_PssPTIST3_b0); - get_map.emplace("cim:PssPTIST3.b1", &get_PssPTIST3_b1); - get_map.emplace("cim:PssPTIST3.b2", &get_PssPTIST3_b2); - get_map.emplace("cim:PssPTIST3.b3", &get_PssPTIST3_b3); - get_map.emplace("cim:PssPTIST3.b4", &get_PssPTIST3_b4); - get_map.emplace("cim:PssPTIST3.b5", &get_PssPTIST3_b5); - get_map.emplace("cim:PssPTIST3.dl", &get_PssPTIST3_dl); - get_map.emplace("cim:PssPTIST3.dtc", &get_PssPTIST3_dtc); - get_map.emplace("cim:PssPTIST3.dtf", &get_PssPTIST3_dtf); - get_map.emplace("cim:PssPTIST3.dtp", &get_PssPTIST3_dtp); - get_map.emplace("cim:PssPTIST3.isw", &get_PssPTIST3_isw); - get_map.emplace("cim:PssPTIST3.k", &get_PssPTIST3_k); - get_map.emplace("cim:PssPTIST3.lthres", &get_PssPTIST3_lthres); - get_map.emplace("cim:PssPTIST3.m", &get_PssPTIST3_m); - get_map.emplace("cim:PssPTIST3.nav", &get_PssPTIST3_nav); - get_map.emplace("cim:PssPTIST3.ncl", &get_PssPTIST3_ncl); - get_map.emplace("cim:PssPTIST3.ncr", &get_PssPTIST3_ncr); - get_map.emplace("cim:PssPTIST3.pmin", &get_PssPTIST3_pmin); - get_map.emplace("cim:PssPTIST3.t1", &get_PssPTIST3_t1); - get_map.emplace("cim:PssPTIST3.t2", &get_PssPTIST3_t2); - get_map.emplace("cim:PssPTIST3.t3", &get_PssPTIST3_t3); - get_map.emplace("cim:PssPTIST3.t4", &get_PssPTIST3_t4); - get_map.emplace("cim:PssPTIST3.t5", &get_PssPTIST3_t5); - get_map.emplace("cim:PssPTIST3.t6", &get_PssPTIST3_t6); - get_map.emplace("cim:PssPTIST3.tf", &get_PssPTIST3_tf); - get_map.emplace("cim:PssPTIST3.tp", &get_PssPTIST3_tp); + get_map.emplace("PssPTIST3.a0", &get_PssPTIST3_a0); + get_map.emplace("PssPTIST3.a1", &get_PssPTIST3_a1); + get_map.emplace("PssPTIST3.a2", &get_PssPTIST3_a2); + get_map.emplace("PssPTIST3.a3", &get_PssPTIST3_a3); + get_map.emplace("PssPTIST3.a4", &get_PssPTIST3_a4); + get_map.emplace("PssPTIST3.a5", &get_PssPTIST3_a5); + get_map.emplace("PssPTIST3.al", &get_PssPTIST3_al); + get_map.emplace("PssPTIST3.athres", &get_PssPTIST3_athres); + get_map.emplace("PssPTIST3.b0", &get_PssPTIST3_b0); + get_map.emplace("PssPTIST3.b1", &get_PssPTIST3_b1); + get_map.emplace("PssPTIST3.b2", &get_PssPTIST3_b2); + get_map.emplace("PssPTIST3.b3", &get_PssPTIST3_b3); + get_map.emplace("PssPTIST3.b4", &get_PssPTIST3_b4); + get_map.emplace("PssPTIST3.b5", &get_PssPTIST3_b5); + get_map.emplace("PssPTIST3.dl", &get_PssPTIST3_dl); + get_map.emplace("PssPTIST3.dtc", &get_PssPTIST3_dtc); + get_map.emplace("PssPTIST3.dtf", &get_PssPTIST3_dtf); + get_map.emplace("PssPTIST3.dtp", &get_PssPTIST3_dtp); + get_map.emplace("PssPTIST3.isw", &get_PssPTIST3_isw); + get_map.emplace("PssPTIST3.k", &get_PssPTIST3_k); + get_map.emplace("PssPTIST3.lthres", &get_PssPTIST3_lthres); + get_map.emplace("PssPTIST3.m", &get_PssPTIST3_m); + get_map.emplace("PssPTIST3.nav", &get_PssPTIST3_nav); + get_map.emplace("PssPTIST3.ncl", &get_PssPTIST3_ncl); + get_map.emplace("PssPTIST3.ncr", &get_PssPTIST3_ncr); + get_map.emplace("PssPTIST3.pmin", &get_PssPTIST3_pmin); + get_map.emplace("PssPTIST3.t1", &get_PssPTIST3_t1); + get_map.emplace("PssPTIST3.t2", &get_PssPTIST3_t2); + get_map.emplace("PssPTIST3.t3", &get_PssPTIST3_t3); + get_map.emplace("PssPTIST3.t4", &get_PssPTIST3_t4); + get_map.emplace("PssPTIST3.t5", &get_PssPTIST3_t5); + get_map.emplace("PssPTIST3.t6", &get_PssPTIST3_t6); + get_map.emplace("PssPTIST3.tf", &get_PssPTIST3_tf); + get_map.emplace("PssPTIST3.tp", &get_PssPTIST3_tp); } void PssPTIST3::addClassGetFnsToMap(std::map& get_map) const @@ -1160,11 +1192,25 @@ void PssPTIST3::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssPTIST3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssPTIST3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssPTIST3::declare() { return BaseClassDefiner(PssPTIST3::addConstructToMap, PssPTIST3::addPrimitiveAssignFnsToMap, PssPTIST3::addClassAssignFnsToMap, PssPTIST3::debugName); } +std::map PssPTIST3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssPTIST3_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssPTIST3.hpp b/CGMES_2.4.13_18DEC2013/PssPTIST3.hpp index 84ac9463b..7e2500c65 100644 --- a/CGMES_2.4.13_18DEC2013/PssPTIST3.hpp +++ b/CGMES_2.4.13_18DEC2013/PssPTIST3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -133,8 +134,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -142,7 +150,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssPTIST3_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssSB4.cpp b/CGMES_2.4.13_18DEC2013/PssSB4.cpp index ff54c429f..d4b073f9e 100644 --- a/CGMES_2.4.13_18DEC2013/PssSB4.cpp +++ b/CGMES_2.4.13_18DEC2013/PssSB4.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSB4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSB4.kx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tx1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tx2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSB4::PssSB4() {} PssSB4::~PssSB4() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSB4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSB4::getClassNamespaceUrl() const { - { "cim:PssSB4.kx", { CGMESProfile::DY, } }, - { "cim:PssSB4.ta", { CGMESProfile::DY, } }, - { "cim:PssSB4.tb", { CGMESProfile::DY, } }, - { "cim:PssSB4.tc", { CGMESProfile::DY, } }, - { "cim:PssSB4.td", { CGMESProfile::DY, } }, - { "cim:PssSB4.te", { CGMESProfile::DY, } }, - { "cim:PssSB4.tt", { CGMESProfile::DY, } }, - { "cim:PssSB4.tx1", { CGMESProfile::DY, } }, - { "cim:PssSB4.tx2", { CGMESProfile::DY, } }, - { "cim:PssSB4.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSB4.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSB4::getPossibleProfilesForClass() const +const std::string& PssSB4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSB4::getPossibleProfilesForAttributes() const +const std::list& PssSB4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSB4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSB4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSB4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSB4_kx(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssSB4::debugString() const void PssSB4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSB4", &PssSB4_factory); + factory_map.emplace("PssSB4", &PssSB4_factory); } void PssSB4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSB4.kx", &assign_PssSB4_kx); - assign_map.emplace("cim:PssSB4.ta", &assign_PssSB4_ta); - assign_map.emplace("cim:PssSB4.tb", &assign_PssSB4_tb); - assign_map.emplace("cim:PssSB4.tc", &assign_PssSB4_tc); - assign_map.emplace("cim:PssSB4.td", &assign_PssSB4_td); - assign_map.emplace("cim:PssSB4.te", &assign_PssSB4_te); - assign_map.emplace("cim:PssSB4.tt", &assign_PssSB4_tt); - assign_map.emplace("cim:PssSB4.tx1", &assign_PssSB4_tx1); - assign_map.emplace("cim:PssSB4.tx2", &assign_PssSB4_tx2); - assign_map.emplace("cim:PssSB4.vsmax", &assign_PssSB4_vsmax); - assign_map.emplace("cim:PssSB4.vsmin", &assign_PssSB4_vsmin); + assign_map.emplace("PssSB4.kx", &assign_PssSB4_kx); + assign_map.emplace("PssSB4.ta", &assign_PssSB4_ta); + assign_map.emplace("PssSB4.tb", &assign_PssSB4_tb); + assign_map.emplace("PssSB4.tc", &assign_PssSB4_tc); + assign_map.emplace("PssSB4.td", &assign_PssSB4_td); + assign_map.emplace("PssSB4.te", &assign_PssSB4_te); + assign_map.emplace("PssSB4.tt", &assign_PssSB4_tt); + assign_map.emplace("PssSB4.tx1", &assign_PssSB4_tx1); + assign_map.emplace("PssSB4.tx2", &assign_PssSB4_tx2); + assign_map.emplace("PssSB4.vsmax", &assign_PssSB4_vsmax); + assign_map.emplace("PssSB4.vsmin", &assign_PssSB4_vsmin); } void PssSB4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssSB4::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSB4.kx", &get_PssSB4_kx); - get_map.emplace("cim:PssSB4.ta", &get_PssSB4_ta); - get_map.emplace("cim:PssSB4.tb", &get_PssSB4_tb); - get_map.emplace("cim:PssSB4.tc", &get_PssSB4_tc); - get_map.emplace("cim:PssSB4.td", &get_PssSB4_td); - get_map.emplace("cim:PssSB4.te", &get_PssSB4_te); - get_map.emplace("cim:PssSB4.tt", &get_PssSB4_tt); - get_map.emplace("cim:PssSB4.tx1", &get_PssSB4_tx1); - get_map.emplace("cim:PssSB4.tx2", &get_PssSB4_tx2); - get_map.emplace("cim:PssSB4.vsmax", &get_PssSB4_vsmax); - get_map.emplace("cim:PssSB4.vsmin", &get_PssSB4_vsmin); + get_map.emplace("PssSB4.kx", &get_PssSB4_kx); + get_map.emplace("PssSB4.ta", &get_PssSB4_ta); + get_map.emplace("PssSB4.tb", &get_PssSB4_tb); + get_map.emplace("PssSB4.tc", &get_PssSB4_tc); + get_map.emplace("PssSB4.td", &get_PssSB4_td); + get_map.emplace("PssSB4.te", &get_PssSB4_te); + get_map.emplace("PssSB4.tt", &get_PssSB4_tt); + get_map.emplace("PssSB4.tx1", &get_PssSB4_tx1); + get_map.emplace("PssSB4.tx2", &get_PssSB4_tx2); + get_map.emplace("PssSB4.vsmax", &get_PssSB4_vsmax); + get_map.emplace("PssSB4.vsmin", &get_PssSB4_vsmin); } void PssSB4::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssSB4::addEnumGetFnsToMap(std::map& get_map) co PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSB4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSB4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSB4::declare() { return BaseClassDefiner(PssSB4::addConstructToMap, PssSB4::addPrimitiveAssignFnsToMap, PssSB4::addClassAssignFnsToMap, PssSB4::debugName); } +std::map PssSB4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSB4_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssSB4.hpp b/CGMES_2.4.13_18DEC2013/PssSB4.hpp index 4fb9cc24a..7a000fd42 100644 --- a/CGMES_2.4.13_18DEC2013/PssSB4.hpp +++ b/CGMES_2.4.13_18DEC2013/PssSB4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSB4_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssSH.cpp b/CGMES_2.4.13_18DEC2013/PssSH.cpp index 5e06369a1..1bda16622 100644 --- a/CGMES_2.4.13_18DEC2013/PssSH.cpp +++ b/CGMES_2.4.13_18DEC2013/PssSH.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSH(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSH.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSH::PssSH() {} PssSH::~PssSH() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSH::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSH::getClassNamespaceUrl() const { - { "cim:PssSH.k", { CGMESProfile::DY, } }, - { "cim:PssSH.k0", { CGMESProfile::DY, } }, - { "cim:PssSH.k1", { CGMESProfile::DY, } }, - { "cim:PssSH.k2", { CGMESProfile::DY, } }, - { "cim:PssSH.k3", { CGMESProfile::DY, } }, - { "cim:PssSH.k4", { CGMESProfile::DY, } }, - { "cim:PssSH.t1", { CGMESProfile::DY, } }, - { "cim:PssSH.t2", { CGMESProfile::DY, } }, - { "cim:PssSH.t3", { CGMESProfile::DY, } }, - { "cim:PssSH.t4", { CGMESProfile::DY, } }, - { "cim:PssSH.td", { CGMESProfile::DY, } }, - { "cim:PssSH.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSH.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSH::getPossibleProfilesForClass() const +const std::string& PssSH::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSH::getPossibleProfilesForAttributes() const +const std::list& PssSH::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSH::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSH::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSH::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSH_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* PssSH::debugString() const void PssSH::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSH", &PssSH_factory); + factory_map.emplace("PssSH", &PssSH_factory); } void PssSH::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSH.k", &assign_PssSH_k); - assign_map.emplace("cim:PssSH.k0", &assign_PssSH_k0); - assign_map.emplace("cim:PssSH.k1", &assign_PssSH_k1); - assign_map.emplace("cim:PssSH.k2", &assign_PssSH_k2); - assign_map.emplace("cim:PssSH.k3", &assign_PssSH_k3); - assign_map.emplace("cim:PssSH.k4", &assign_PssSH_k4); - assign_map.emplace("cim:PssSH.t1", &assign_PssSH_t1); - assign_map.emplace("cim:PssSH.t2", &assign_PssSH_t2); - assign_map.emplace("cim:PssSH.t3", &assign_PssSH_t3); - assign_map.emplace("cim:PssSH.t4", &assign_PssSH_t4); - assign_map.emplace("cim:PssSH.td", &assign_PssSH_td); - assign_map.emplace("cim:PssSH.vsmax", &assign_PssSH_vsmax); - assign_map.emplace("cim:PssSH.vsmin", &assign_PssSH_vsmin); + assign_map.emplace("PssSH.k", &assign_PssSH_k); + assign_map.emplace("PssSH.k0", &assign_PssSH_k0); + assign_map.emplace("PssSH.k1", &assign_PssSH_k1); + assign_map.emplace("PssSH.k2", &assign_PssSH_k2); + assign_map.emplace("PssSH.k3", &assign_PssSH_k3); + assign_map.emplace("PssSH.k4", &assign_PssSH_k4); + assign_map.emplace("PssSH.t1", &assign_PssSH_t1); + assign_map.emplace("PssSH.t2", &assign_PssSH_t2); + assign_map.emplace("PssSH.t3", &assign_PssSH_t3); + assign_map.emplace("PssSH.t4", &assign_PssSH_t4); + assign_map.emplace("PssSH.td", &assign_PssSH_td); + assign_map.emplace("PssSH.vsmax", &assign_PssSH_vsmax); + assign_map.emplace("PssSH.vsmin", &assign_PssSH_vsmin); } void PssSH::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void PssSH::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSH.k", &get_PssSH_k); - get_map.emplace("cim:PssSH.k0", &get_PssSH_k0); - get_map.emplace("cim:PssSH.k1", &get_PssSH_k1); - get_map.emplace("cim:PssSH.k2", &get_PssSH_k2); - get_map.emplace("cim:PssSH.k3", &get_PssSH_k3); - get_map.emplace("cim:PssSH.k4", &get_PssSH_k4); - get_map.emplace("cim:PssSH.t1", &get_PssSH_t1); - get_map.emplace("cim:PssSH.t2", &get_PssSH_t2); - get_map.emplace("cim:PssSH.t3", &get_PssSH_t3); - get_map.emplace("cim:PssSH.t4", &get_PssSH_t4); - get_map.emplace("cim:PssSH.td", &get_PssSH_td); - get_map.emplace("cim:PssSH.vsmax", &get_PssSH_vsmax); - get_map.emplace("cim:PssSH.vsmin", &get_PssSH_vsmin); + get_map.emplace("PssSH.k", &get_PssSH_k); + get_map.emplace("PssSH.k0", &get_PssSH_k0); + get_map.emplace("PssSH.k1", &get_PssSH_k1); + get_map.emplace("PssSH.k2", &get_PssSH_k2); + get_map.emplace("PssSH.k3", &get_PssSH_k3); + get_map.emplace("PssSH.k4", &get_PssSH_k4); + get_map.emplace("PssSH.t1", &get_PssSH_t1); + get_map.emplace("PssSH.t2", &get_PssSH_t2); + get_map.emplace("PssSH.t3", &get_PssSH_t3); + get_map.emplace("PssSH.t4", &get_PssSH_t4); + get_map.emplace("PssSH.td", &get_PssSH_td); + get_map.emplace("PssSH.vsmax", &get_PssSH_vsmax); + get_map.emplace("PssSH.vsmin", &get_PssSH_vsmin); } void PssSH::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void PssSH::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSH::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSH" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSH::declare() { return BaseClassDefiner(PssSH::addConstructToMap, PssSH::addPrimitiveAssignFnsToMap, PssSH::addClassAssignFnsToMap, PssSH::debugName); } +std::map PssSH::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSH_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssSH.hpp b/CGMES_2.4.13_18DEC2013/PssSH.hpp index f93e0ee7b..38ce015a2 100644 --- a/CGMES_2.4.13_18DEC2013/PssSH.hpp +++ b/CGMES_2.4.13_18DEC2013/PssSH.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -68,8 +69,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -77,7 +85,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSH_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssSK.cpp b/CGMES_2.4.13_18DEC2013/PssSK.cpp index 1c23f5dbd..91d14434d 100644 --- a/CGMES_2.4.13_18DEC2013/PssSK.cpp +++ b/CGMES_2.4.13_18DEC2013/PssSK.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSK(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSK.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSK::PssSK() {} PssSK::~PssSK() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSK::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSK::getClassNamespaceUrl() const { - { "cim:PssSK.k1", { CGMESProfile::DY, } }, - { "cim:PssSK.k2", { CGMESProfile::DY, } }, - { "cim:PssSK.k3", { CGMESProfile::DY, } }, - { "cim:PssSK.t1", { CGMESProfile::DY, } }, - { "cim:PssSK.t2", { CGMESProfile::DY, } }, - { "cim:PssSK.t3", { CGMESProfile::DY, } }, - { "cim:PssSK.t4", { CGMESProfile::DY, } }, - { "cim:PssSK.t5", { CGMESProfile::DY, } }, - { "cim:PssSK.t6", { CGMESProfile::DY, } }, - { "cim:PssSK.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSK.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSK::getPossibleProfilesForClass() const +const std::string& PssSK::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSK::getPossibleProfilesForAttributes() const +const std::list& PssSK::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSK::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSK::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSK::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSK_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssSK::debugString() const void PssSK::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSK", &PssSK_factory); + factory_map.emplace("PssSK", &PssSK_factory); } void PssSK::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSK.k1", &assign_PssSK_k1); - assign_map.emplace("cim:PssSK.k2", &assign_PssSK_k2); - assign_map.emplace("cim:PssSK.k3", &assign_PssSK_k3); - assign_map.emplace("cim:PssSK.t1", &assign_PssSK_t1); - assign_map.emplace("cim:PssSK.t2", &assign_PssSK_t2); - assign_map.emplace("cim:PssSK.t3", &assign_PssSK_t3); - assign_map.emplace("cim:PssSK.t4", &assign_PssSK_t4); - assign_map.emplace("cim:PssSK.t5", &assign_PssSK_t5); - assign_map.emplace("cim:PssSK.t6", &assign_PssSK_t6); - assign_map.emplace("cim:PssSK.vsmax", &assign_PssSK_vsmax); - assign_map.emplace("cim:PssSK.vsmin", &assign_PssSK_vsmin); + assign_map.emplace("PssSK.k1", &assign_PssSK_k1); + assign_map.emplace("PssSK.k2", &assign_PssSK_k2); + assign_map.emplace("PssSK.k3", &assign_PssSK_k3); + assign_map.emplace("PssSK.t1", &assign_PssSK_t1); + assign_map.emplace("PssSK.t2", &assign_PssSK_t2); + assign_map.emplace("PssSK.t3", &assign_PssSK_t3); + assign_map.emplace("PssSK.t4", &assign_PssSK_t4); + assign_map.emplace("PssSK.t5", &assign_PssSK_t5); + assign_map.emplace("PssSK.t6", &assign_PssSK_t6); + assign_map.emplace("PssSK.vsmax", &assign_PssSK_vsmax); + assign_map.emplace("PssSK.vsmin", &assign_PssSK_vsmin); } void PssSK::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssSK::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSK.k1", &get_PssSK_k1); - get_map.emplace("cim:PssSK.k2", &get_PssSK_k2); - get_map.emplace("cim:PssSK.k3", &get_PssSK_k3); - get_map.emplace("cim:PssSK.t1", &get_PssSK_t1); - get_map.emplace("cim:PssSK.t2", &get_PssSK_t2); - get_map.emplace("cim:PssSK.t3", &get_PssSK_t3); - get_map.emplace("cim:PssSK.t4", &get_PssSK_t4); - get_map.emplace("cim:PssSK.t5", &get_PssSK_t5); - get_map.emplace("cim:PssSK.t6", &get_PssSK_t6); - get_map.emplace("cim:PssSK.vsmax", &get_PssSK_vsmax); - get_map.emplace("cim:PssSK.vsmin", &get_PssSK_vsmin); + get_map.emplace("PssSK.k1", &get_PssSK_k1); + get_map.emplace("PssSK.k2", &get_PssSK_k2); + get_map.emplace("PssSK.k3", &get_PssSK_k3); + get_map.emplace("PssSK.t1", &get_PssSK_t1); + get_map.emplace("PssSK.t2", &get_PssSK_t2); + get_map.emplace("PssSK.t3", &get_PssSK_t3); + get_map.emplace("PssSK.t4", &get_PssSK_t4); + get_map.emplace("PssSK.t5", &get_PssSK_t5); + get_map.emplace("PssSK.t6", &get_PssSK_t6); + get_map.emplace("PssSK.vsmax", &get_PssSK_vsmax); + get_map.emplace("PssSK.vsmin", &get_PssSK_vsmin); } void PssSK::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssSK::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSK::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSK" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSK::declare() { return BaseClassDefiner(PssSK::addConstructToMap, PssSK::addPrimitiveAssignFnsToMap, PssSK::addClassAssignFnsToMap, PssSK::debugName); } +std::map PssSK::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSK_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssSK.hpp b/CGMES_2.4.13_18DEC2013/PssSK.hpp index 1af0641d1..0b9b9689d 100644 --- a/CGMES_2.4.13_18DEC2013/PssSK.hpp +++ b/CGMES_2.4.13_18DEC2013/PssSK.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSK_factory(); diff --git a/CGMES_2.4.13_18DEC2013/PssWECC.cpp b/CGMES_2.4.13_18DEC2013/PssWECC.cpp index e3044b133..4ef4d6e65 100644 --- a/CGMES_2.4.13_18DEC2013/PssWECC.cpp +++ b/CGMES_2.4.13_18DEC2013/PssWECC.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssWECC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssWECC.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssWECC::PssWECC() {} PssWECC::~PssWECC() {} -static const std::list PossibleProfilesForClass = +const std::list& PssWECC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssWECC::getClassNamespaceUrl() const { - { "cim:PssWECC.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssWECC.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssWECC.k1", { CGMESProfile::DY, } }, - { "cim:PssWECC.k2", { CGMESProfile::DY, } }, - { "cim:PssWECC.t1", { CGMESProfile::DY, } }, - { "cim:PssWECC.t10", { CGMESProfile::DY, } }, - { "cim:PssWECC.t2", { CGMESProfile::DY, } }, - { "cim:PssWECC.t3", { CGMESProfile::DY, } }, - { "cim:PssWECC.t4", { CGMESProfile::DY, } }, - { "cim:PssWECC.t5", { CGMESProfile::DY, } }, - { "cim:PssWECC.t6", { CGMESProfile::DY, } }, - { "cim:PssWECC.t7", { CGMESProfile::DY, } }, - { "cim:PssWECC.t8", { CGMESProfile::DY, } }, - { "cim:PssWECC.t9", { CGMESProfile::DY, } }, - { "cim:PssWECC.vcl", { CGMESProfile::DY, } }, - { "cim:PssWECC.vcu", { CGMESProfile::DY, } }, - { "cim:PssWECC.vsmax", { CGMESProfile::DY, } }, - { "cim:PssWECC.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssWECC::getPossibleProfilesForClass() const +const std::string& PssWECC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssWECC::getPossibleProfilesForAttributes() const +const std::list& PssWECC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssWECC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssWECC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssWECC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssWECC_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* PssWECC::debugString() const void PssWECC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssWECC", &PssWECC_factory); + factory_map.emplace("PssWECC", &PssWECC_factory); } void PssWECC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssWECC.inputSignal1Type", &assign_PssWECC_inputSignal1Type); - assign_map.emplace("cim:PssWECC.inputSignal2Type", &assign_PssWECC_inputSignal2Type); - assign_map.emplace("cim:PssWECC.k1", &assign_PssWECC_k1); - assign_map.emplace("cim:PssWECC.k2", &assign_PssWECC_k2); - assign_map.emplace("cim:PssWECC.t1", &assign_PssWECC_t1); - assign_map.emplace("cim:PssWECC.t10", &assign_PssWECC_t10); - assign_map.emplace("cim:PssWECC.t2", &assign_PssWECC_t2); - assign_map.emplace("cim:PssWECC.t3", &assign_PssWECC_t3); - assign_map.emplace("cim:PssWECC.t4", &assign_PssWECC_t4); - assign_map.emplace("cim:PssWECC.t5", &assign_PssWECC_t5); - assign_map.emplace("cim:PssWECC.t6", &assign_PssWECC_t6); - assign_map.emplace("cim:PssWECC.t7", &assign_PssWECC_t7); - assign_map.emplace("cim:PssWECC.t8", &assign_PssWECC_t8); - assign_map.emplace("cim:PssWECC.t9", &assign_PssWECC_t9); - assign_map.emplace("cim:PssWECC.vcl", &assign_PssWECC_vcl); - assign_map.emplace("cim:PssWECC.vcu", &assign_PssWECC_vcu); - assign_map.emplace("cim:PssWECC.vsmax", &assign_PssWECC_vsmax); - assign_map.emplace("cim:PssWECC.vsmin", &assign_PssWECC_vsmin); + assign_map.emplace("PssWECC.inputSignal1Type", &assign_PssWECC_inputSignal1Type); + assign_map.emplace("PssWECC.inputSignal2Type", &assign_PssWECC_inputSignal2Type); + assign_map.emplace("PssWECC.k1", &assign_PssWECC_k1); + assign_map.emplace("PssWECC.k2", &assign_PssWECC_k2); + assign_map.emplace("PssWECC.t1", &assign_PssWECC_t1); + assign_map.emplace("PssWECC.t10", &assign_PssWECC_t10); + assign_map.emplace("PssWECC.t2", &assign_PssWECC_t2); + assign_map.emplace("PssWECC.t3", &assign_PssWECC_t3); + assign_map.emplace("PssWECC.t4", &assign_PssWECC_t4); + assign_map.emplace("PssWECC.t5", &assign_PssWECC_t5); + assign_map.emplace("PssWECC.t6", &assign_PssWECC_t6); + assign_map.emplace("PssWECC.t7", &assign_PssWECC_t7); + assign_map.emplace("PssWECC.t8", &assign_PssWECC_t8); + assign_map.emplace("PssWECC.t9", &assign_PssWECC_t9); + assign_map.emplace("PssWECC.vcl", &assign_PssWECC_vcl); + assign_map.emplace("PssWECC.vcu", &assign_PssWECC_vcu); + assign_map.emplace("PssWECC.vsmax", &assign_PssWECC_vsmax); + assign_map.emplace("PssWECC.vsmin", &assign_PssWECC_vsmin); } void PssWECC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,22 +650,22 @@ void PssWECC::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssWECC.k1", &get_PssWECC_k1); - get_map.emplace("cim:PssWECC.k2", &get_PssWECC_k2); - get_map.emplace("cim:PssWECC.t1", &get_PssWECC_t1); - get_map.emplace("cim:PssWECC.t10", &get_PssWECC_t10); - get_map.emplace("cim:PssWECC.t2", &get_PssWECC_t2); - get_map.emplace("cim:PssWECC.t3", &get_PssWECC_t3); - get_map.emplace("cim:PssWECC.t4", &get_PssWECC_t4); - get_map.emplace("cim:PssWECC.t5", &get_PssWECC_t5); - get_map.emplace("cim:PssWECC.t6", &get_PssWECC_t6); - get_map.emplace("cim:PssWECC.t7", &get_PssWECC_t7); - get_map.emplace("cim:PssWECC.t8", &get_PssWECC_t8); - get_map.emplace("cim:PssWECC.t9", &get_PssWECC_t9); - get_map.emplace("cim:PssWECC.vcl", &get_PssWECC_vcl); - get_map.emplace("cim:PssWECC.vcu", &get_PssWECC_vcu); - get_map.emplace("cim:PssWECC.vsmax", &get_PssWECC_vsmax); - get_map.emplace("cim:PssWECC.vsmin", &get_PssWECC_vsmin); + get_map.emplace("PssWECC.k1", &get_PssWECC_k1); + get_map.emplace("PssWECC.k2", &get_PssWECC_k2); + get_map.emplace("PssWECC.t1", &get_PssWECC_t1); + get_map.emplace("PssWECC.t10", &get_PssWECC_t10); + get_map.emplace("PssWECC.t2", &get_PssWECC_t2); + get_map.emplace("PssWECC.t3", &get_PssWECC_t3); + get_map.emplace("PssWECC.t4", &get_PssWECC_t4); + get_map.emplace("PssWECC.t5", &get_PssWECC_t5); + get_map.emplace("PssWECC.t6", &get_PssWECC_t6); + get_map.emplace("PssWECC.t7", &get_PssWECC_t7); + get_map.emplace("PssWECC.t8", &get_PssWECC_t8); + get_map.emplace("PssWECC.t9", &get_PssWECC_t9); + get_map.emplace("PssWECC.vcl", &get_PssWECC_vcl); + get_map.emplace("PssWECC.vcu", &get_PssWECC_vcu); + get_map.emplace("PssWECC.vsmax", &get_PssWECC_vsmax); + get_map.emplace("PssWECC.vsmin", &get_PssWECC_vsmin); } void PssWECC::addClassGetFnsToMap(std::map& get_map) const @@ -644,8 +676,14 @@ void PssWECC::addClassGetFnsToMap(std::map& get void PssWECC::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssWECC.inputSignal1Type", &get_PssWECC_inputSignal1Type); - get_map.emplace("cim:PssWECC.inputSignal2Type", &get_PssWECC_inputSignal2Type); + get_map.emplace("PssWECC.inputSignal1Type", &get_PssWECC_inputSignal1Type); + get_map.emplace("PssWECC.inputSignal2Type", &get_PssWECC_inputSignal2Type); +} + +bool PssWECC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssWECC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssWECC::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner PssWECC::declare() return BaseClassDefiner(PssWECC::addConstructToMap, PssWECC::addPrimitiveAssignFnsToMap, PssWECC::addClassAssignFnsToMap, PssWECC::debugName); } +std::map PssWECC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssWECC_factory() diff --git a/CGMES_2.4.13_18DEC2013/PssWECC.hpp b/CGMES_2.4.13_18DEC2013/PssWECC.hpp index a5bb2c5de..1d6a8455e 100644 --- a/CGMES_2.4.13_18DEC2013/PssWECC.hpp +++ b/CGMES_2.4.13_18DEC2013/PssWECC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssWECC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Quality61850.cpp b/CGMES_2.4.13_18DEC2013/Quality61850.cpp index 99169f619..1300c82c0 100644 --- a/CGMES_2.4.13_18DEC2013/Quality61850.cpp +++ b/CGMES_2.4.13_18DEC2013/Quality61850.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Quality61850(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Quality61850.badReference", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.estimatorReplaced", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.failure", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.oldData", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.operatorBlocked", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.oscillatory", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.outOfRange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.overFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.source", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.suspect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.test", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.validity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Quality61850::Quality61850() {} Quality61850::~Quality61850() {} -static const std::list PossibleProfilesForClass = +const std::list& Quality61850::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Quality61850::getClassNamespaceUrl() const { - { "cim:Quality61850.badReference", { CGMESProfile::EQ, } }, - { "cim:Quality61850.estimatorReplaced", { CGMESProfile::EQ, } }, - { "cim:Quality61850.failure", { CGMESProfile::EQ, } }, - { "cim:Quality61850.oldData", { CGMESProfile::EQ, } }, - { "cim:Quality61850.operatorBlocked", { CGMESProfile::EQ, } }, - { "cim:Quality61850.oscillatory", { CGMESProfile::EQ, } }, - { "cim:Quality61850.outOfRange", { CGMESProfile::EQ, } }, - { "cim:Quality61850.overFlow", { CGMESProfile::EQ, } }, - { "cim:Quality61850.source", { CGMESProfile::EQ, } }, - { "cim:Quality61850.suspect", { CGMESProfile::EQ, } }, - { "cim:Quality61850.test", { CGMESProfile::EQ, } }, - { "cim:Quality61850.validity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Quality61850::getPossibleProfilesForClass() const +const std::string& Quality61850::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Quality61850::getPossibleProfilesForAttributes() const +const std::list& Quality61850::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Quality61850::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Quality61850::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Quality61850::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Quality61850_badReference(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* Quality61850::debugString() const void Quality61850::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Quality61850", &Quality61850_factory); + factory_map.emplace("Quality61850", &Quality61850_factory); } void Quality61850::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Quality61850.badReference", &assign_Quality61850_badReference); - assign_map.emplace("cim:Quality61850.estimatorReplaced", &assign_Quality61850_estimatorReplaced); - assign_map.emplace("cim:Quality61850.failure", &assign_Quality61850_failure); - assign_map.emplace("cim:Quality61850.oldData", &assign_Quality61850_oldData); - assign_map.emplace("cim:Quality61850.operatorBlocked", &assign_Quality61850_operatorBlocked); - assign_map.emplace("cim:Quality61850.oscillatory", &assign_Quality61850_oscillatory); - assign_map.emplace("cim:Quality61850.outOfRange", &assign_Quality61850_outOfRange); - assign_map.emplace("cim:Quality61850.overFlow", &assign_Quality61850_overFlow); - assign_map.emplace("cim:Quality61850.source", &assign_Quality61850_source); - assign_map.emplace("cim:Quality61850.suspect", &assign_Quality61850_suspect); - assign_map.emplace("cim:Quality61850.test", &assign_Quality61850_test); - assign_map.emplace("cim:Quality61850.validity", &assign_Quality61850_validity); + assign_map.emplace("Quality61850.badReference", &assign_Quality61850_badReference); + assign_map.emplace("Quality61850.estimatorReplaced", &assign_Quality61850_estimatorReplaced); + assign_map.emplace("Quality61850.failure", &assign_Quality61850_failure); + assign_map.emplace("Quality61850.oldData", &assign_Quality61850_oldData); + assign_map.emplace("Quality61850.operatorBlocked", &assign_Quality61850_operatorBlocked); + assign_map.emplace("Quality61850.oscillatory", &assign_Quality61850_oscillatory); + assign_map.emplace("Quality61850.outOfRange", &assign_Quality61850_outOfRange); + assign_map.emplace("Quality61850.overFlow", &assign_Quality61850_overFlow); + assign_map.emplace("Quality61850.source", &assign_Quality61850_source); + assign_map.emplace("Quality61850.suspect", &assign_Quality61850_suspect); + assign_map.emplace("Quality61850.test", &assign_Quality61850_test); + assign_map.emplace("Quality61850.validity", &assign_Quality61850_validity); } void Quality61850::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,16 +464,16 @@ void Quality61850::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Quality61850.badReference", &get_Quality61850_badReference); - get_map.emplace("cim:Quality61850.estimatorReplaced", &get_Quality61850_estimatorReplaced); - get_map.emplace("cim:Quality61850.failure", &get_Quality61850_failure); - get_map.emplace("cim:Quality61850.oldData", &get_Quality61850_oldData); - get_map.emplace("cim:Quality61850.operatorBlocked", &get_Quality61850_operatorBlocked); - get_map.emplace("cim:Quality61850.oscillatory", &get_Quality61850_oscillatory); - get_map.emplace("cim:Quality61850.outOfRange", &get_Quality61850_outOfRange); - get_map.emplace("cim:Quality61850.overFlow", &get_Quality61850_overFlow); - get_map.emplace("cim:Quality61850.suspect", &get_Quality61850_suspect); - get_map.emplace("cim:Quality61850.test", &get_Quality61850_test); + get_map.emplace("Quality61850.badReference", &get_Quality61850_badReference); + get_map.emplace("Quality61850.estimatorReplaced", &get_Quality61850_estimatorReplaced); + get_map.emplace("Quality61850.failure", &get_Quality61850_failure); + get_map.emplace("Quality61850.oldData", &get_Quality61850_oldData); + get_map.emplace("Quality61850.operatorBlocked", &get_Quality61850_operatorBlocked); + get_map.emplace("Quality61850.oscillatory", &get_Quality61850_oscillatory); + get_map.emplace("Quality61850.outOfRange", &get_Quality61850_outOfRange); + get_map.emplace("Quality61850.overFlow", &get_Quality61850_overFlow); + get_map.emplace("Quality61850.suspect", &get_Quality61850_suspect); + get_map.emplace("Quality61850.test", &get_Quality61850_test); } void Quality61850::addClassGetFnsToMap(std::map& get_map) const @@ -452,8 +484,14 @@ void Quality61850::addClassGetFnsToMap(std::map void Quality61850::addEnumGetFnsToMap(std::map& get_map) const { BaseClass::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Quality61850.source", &get_Quality61850_source); - get_map.emplace("cim:Quality61850.validity", &get_Quality61850_validity); + get_map.emplace("Quality61850.source", &get_Quality61850_source); + get_map.emplace("Quality61850.validity", &get_Quality61850_validity); +} + +bool Quality61850::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Quality61850" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Quality61850::declare() @@ -461,6 +499,14 @@ const BaseClassDefiner Quality61850::declare() return BaseClassDefiner(Quality61850::addConstructToMap, Quality61850::addPrimitiveAssignFnsToMap, Quality61850::addClassAssignFnsToMap, Quality61850::debugName); } +std::map Quality61850::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Quality61850_factory() diff --git a/CGMES_2.4.13_18DEC2013/Quality61850.hpp b/CGMES_2.4.13_18DEC2013/Quality61850.hpp index 455802f53..8aebdac29 100644 --- a/CGMES_2.4.13_18DEC2013/Quality61850.hpp +++ b/CGMES_2.4.13_18DEC2013/Quality61850.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Source.hpp" #include "Validity.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Quality61850_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RaiseLowerCommand.cpp b/CGMES_2.4.13_18DEC2013/RaiseLowerCommand.cpp index 59622eff6..0047281a2 100644 --- a/CGMES_2.4.13_18DEC2013/RaiseLowerCommand.cpp +++ b/CGMES_2.4.13_18DEC2013/RaiseLowerCommand.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RaiseLowerCommand(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RaiseLowerCommand.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RaiseLowerCommand::RaiseLowerCommand() : ValueAliasSet(nullptr) {} RaiseLowerCommand::~RaiseLowerCommand() {} -static const std::list PossibleProfilesForClass = +const std::list& RaiseLowerCommand::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RaiseLowerCommand::getClassNamespaceUrl() const { - { "cim:RaiseLowerCommand.ValueAliasSet", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RaiseLowerCommand::getPossibleProfilesForClass() const +const std::string& RaiseLowerCommand::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RaiseLowerCommand::getPossibleProfilesForAttributes() const +const std::list& RaiseLowerCommand::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AnalogControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RaiseLowerCommand::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RaiseLowerCommand::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RaiseLowerCommand::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ValueAliasSet_RaiseLowerCommands(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RaiseLowerCommand::debugString() const void RaiseLowerCommand::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RaiseLowerCommand", &RaiseLowerCommand_factory); + factory_map.emplace("RaiseLowerCommand", &RaiseLowerCommand_factory); } void RaiseLowerCommand::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RaiseLowerCommand::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RaiseLowerCommand.ValueAliasSet", &assign_RaiseLowerCommand_ValueAliasSet); + assign_map.emplace("RaiseLowerCommand.ValueAliasSet", &assign_RaiseLowerCommand_ValueAliasSet); } void RaiseLowerCommand::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RaiseLowerCommand::addPrimitiveGetFnsToMap(std::map& get_map) const { AnalogControl::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RaiseLowerCommand.ValueAliasSet", &get_RaiseLowerCommand_ValueAliasSet); + get_map.emplace("RaiseLowerCommand.ValueAliasSet", &get_RaiseLowerCommand_ValueAliasSet); } void RaiseLowerCommand::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RaiseLowerCommand::addEnumGetFnsToMap(std::map& AnalogControl::addEnumGetFnsToMap(get_map); } +bool RaiseLowerCommand::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RaiseLowerCommand" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RaiseLowerCommand::declare() { return BaseClassDefiner(RaiseLowerCommand::addConstructToMap, RaiseLowerCommand::addPrimitiveAssignFnsToMap, RaiseLowerCommand::addClassAssignFnsToMap, RaiseLowerCommand::debugName); } +std::map RaiseLowerCommand::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AnalogControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RaiseLowerCommand_factory() diff --git a/CGMES_2.4.13_18DEC2013/RaiseLowerCommand.hpp b/CGMES_2.4.13_18DEC2013/RaiseLowerCommand.hpp index 97530d3cb..760034bcb 100644 --- a/CGMES_2.4.13_18DEC2013/RaiseLowerCommand.hpp +++ b/CGMES_2.4.13_18DEC2013/RaiseLowerCommand.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AnalogControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RaiseLowerCommand_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RatioTapChanger.cpp b/CGMES_2.4.13_18DEC2013/RatioTapChanger.cpp index caab6003e..9e1bb0270 100644 --- a/CGMES_2.4.13_18DEC2013/RatioTapChanger.cpp +++ b/CGMES_2.4.13_18DEC2013/RatioTapChanger.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChanger.RatioTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.stepVoltageIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.tculControlMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChanger::RatioTapChanger() : RatioTapChangerTable(nullptr), TransformerEnd(nullptr) {} RatioTapChanger::~RatioTapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChanger::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChanger::getClassNamespaceUrl() const { - { "cim:RatioTapChanger.RatioTapChangerTable", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.TransformerEnd", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.stepVoltageIncrement", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.tculControlMode", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChanger::getPossibleProfilesForClass() const +const std::string& RatioTapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChanger::getPossibleProfilesForAttributes() const +const std::list& RatioTapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChangerTable_RatioTapChanger(BaseClass*, BaseClass*); @@ -172,38 +204,44 @@ const char* RatioTapChanger::debugString() const void RatioTapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChanger", &RatioTapChanger_factory); + factory_map.emplace("RatioTapChanger", &RatioTapChanger_factory); } void RatioTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChanger.stepVoltageIncrement", &assign_RatioTapChanger_stepVoltageIncrement); - assign_map.emplace("cim:RatioTapChanger.tculControlMode", &assign_RatioTapChanger_tculControlMode); + assign_map.emplace("RatioTapChanger.stepVoltageIncrement", &assign_RatioTapChanger_stepVoltageIncrement); + assign_map.emplace("RatioTapChanger.tculControlMode", &assign_RatioTapChanger_tculControlMode); } void RatioTapChanger::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChanger.RatioTapChangerTable", &assign_RatioTapChanger_RatioTapChangerTable); - assign_map.emplace("cim:RatioTapChanger.TransformerEnd", &assign_RatioTapChanger_TransformerEnd); + assign_map.emplace("RatioTapChanger.RatioTapChangerTable", &assign_RatioTapChanger_RatioTapChangerTable); + assign_map.emplace("RatioTapChanger.TransformerEnd", &assign_RatioTapChanger_TransformerEnd); } void RatioTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.stepVoltageIncrement", &get_RatioTapChanger_stepVoltageIncrement); + get_map.emplace("RatioTapChanger.stepVoltageIncrement", &get_RatioTapChanger_stepVoltageIncrement); } void RatioTapChanger::addClassGetFnsToMap(std::map& get_map) const { TapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.RatioTapChangerTable", &get_RatioTapChanger_RatioTapChangerTable); - get_map.emplace("cim:RatioTapChanger.TransformerEnd", &get_RatioTapChanger_TransformerEnd); + get_map.emplace("RatioTapChanger.RatioTapChangerTable", &get_RatioTapChanger_RatioTapChangerTable); + get_map.emplace("RatioTapChanger.TransformerEnd", &get_RatioTapChanger_TransformerEnd); } void RatioTapChanger::addEnumGetFnsToMap(std::map& get_map) const { TapChanger::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.tculControlMode", &get_RatioTapChanger_tculControlMode); + get_map.emplace("RatioTapChanger.tculControlMode", &get_RatioTapChanger_tculControlMode); +} + +bool RatioTapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RatioTapChanger" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RatioTapChanger::declare() @@ -211,6 +249,14 @@ const BaseClassDefiner RatioTapChanger::declare() return BaseClassDefiner(RatioTapChanger::addConstructToMap, RatioTapChanger::addPrimitiveAssignFnsToMap, RatioTapChanger::addClassAssignFnsToMap, RatioTapChanger::debugName); } +std::map RatioTapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChanger_factory() diff --git a/CGMES_2.4.13_18DEC2013/RatioTapChanger.hpp b/CGMES_2.4.13_18DEC2013/RatioTapChanger.hpp index fafbcad25..244ea7e1b 100644 --- a/CGMES_2.4.13_18DEC2013/RatioTapChanger.hpp +++ b/CGMES_2.4.13_18DEC2013/RatioTapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PerCent.hpp" #include "TransformerControlMode.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChanger_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RatioTapChangerTable.cpp b/CGMES_2.4.13_18DEC2013/RatioTapChangerTable.cpp index 1c743986f..983eade16 100644 --- a/CGMES_2.4.13_18DEC2013/RatioTapChangerTable.cpp +++ b/CGMES_2.4.13_18DEC2013/RatioTapChangerTable.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChangerTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChangerTable.RatioTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChangerTable.RatioTapChangerTablePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChangerTable::RatioTapChangerTable() {} RatioTapChangerTable::~RatioTapChangerTable() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChangerTable::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChangerTable::getClassNamespaceUrl() const { - { "cim:RatioTapChangerTable.RatioTapChanger", { CGMESProfile::EQ, } }, - { "cim:RatioTapChangerTable.RatioTapChangerTablePoint", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChangerTable::getPossibleProfilesForClass() const +const std::string& RatioTapChangerTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChangerTable::getPossibleProfilesForAttributes() const +const std::list& RatioTapChangerTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChangerTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChangerTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChangerTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChanger_RatioTapChangerTable(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* RatioTapChangerTable::debugString() const void RatioTapChangerTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChangerTable", &RatioTapChangerTable_factory); + factory_map.emplace("RatioTapChangerTable", &RatioTapChangerTable_factory); } void RatioTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void RatioTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChangerTable.RatioTapChanger", &assign_RatioTapChangerTable_RatioTapChanger); - assign_map.emplace("cim:RatioTapChangerTable.RatioTapChangerTablePoint", &assign_RatioTapChangerTable_RatioTapChangerTablePoint); + assign_map.emplace("RatioTapChangerTable.RatioTapChanger", &assign_RatioTapChangerTable_RatioTapChanger); + assign_map.emplace("RatioTapChangerTable.RatioTapChangerTablePoint", &assign_RatioTapChangerTable_RatioTapChangerTablePoint); } void RatioTapChangerTable::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void RatioTapChangerTable::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChangerTable::declare() { return BaseClassDefiner(RatioTapChangerTable::addConstructToMap, RatioTapChangerTable::addPrimitiveAssignFnsToMap, RatioTapChangerTable::addClassAssignFnsToMap, RatioTapChangerTable::debugName); } +std::map RatioTapChangerTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChangerTable_factory() diff --git a/CGMES_2.4.13_18DEC2013/RatioTapChangerTable.hpp b/CGMES_2.4.13_18DEC2013/RatioTapChangerTable.hpp index fdb0e4be4..aab5b4c6c 100644 --- a/CGMES_2.4.13_18DEC2013/RatioTapChangerTable.hpp +++ b/CGMES_2.4.13_18DEC2013/RatioTapChangerTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChangerTable_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RatioTapChangerTablePoint.cpp b/CGMES_2.4.13_18DEC2013/RatioTapChangerTablePoint.cpp index fb837e687..94844c4de 100644 --- a/CGMES_2.4.13_18DEC2013/RatioTapChangerTablePoint.cpp +++ b/CGMES_2.4.13_18DEC2013/RatioTapChangerTablePoint.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChangerTablePoint.RatioTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChangerTablePoint::RatioTapChangerTablePoint() : RatioTapChangerTable(nullptr) {} RatioTapChangerTablePoint::~RatioTapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:RatioTapChangerTablePoint.RatioTapChangerTable", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& RatioTapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& RatioTapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChangerTablePoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChangerTable_RatioTapChangerTablePoint(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RatioTapChangerTablePoint::debugString() const void RatioTapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChangerTablePoint", &RatioTapChangerTablePoint_factory); + factory_map.emplace("RatioTapChangerTablePoint", &RatioTapChangerTablePoint_factory); } void RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChangerTablePoint.RatioTapChangerTable", &assign_RatioTapChangerTablePoint_RatioTapChangerTable); + assign_map.emplace("RatioTapChangerTablePoint.RatioTapChangerTable", &assign_RatioTapChangerTablePoint_RatioTapChangerTable); } void RatioTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RatioTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChangerTablePoint.RatioTapChangerTable", &get_RatioTapChangerTablePoint_RatioTapChangerTable); + get_map.emplace("RatioTapChangerTablePoint.RatioTapChangerTable", &get_RatioTapChangerTablePoint_RatioTapChangerTable); } void RatioTapChangerTablePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RatioTapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChangerTablePoint::declare() { return BaseClassDefiner(RatioTapChangerTablePoint::addConstructToMap, RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap, RatioTapChangerTablePoint::addClassAssignFnsToMap, RatioTapChangerTablePoint::debugName); } +std::map RatioTapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChangerTablePoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChangerTablePoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/RatioTapChangerTablePoint.hpp b/CGMES_2.4.13_18DEC2013/RatioTapChangerTablePoint.hpp index a2a695328..137133055 100644 --- a/CGMES_2.4.13_18DEC2013/RatioTapChangerTablePoint.hpp +++ b/CGMES_2.4.13_18DEC2013/RatioTapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChangerTablePoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChangerTablePoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ReactiveCapabilityCurve.cpp b/CGMES_2.4.13_18DEC2013/ReactiveCapabilityCurve.cpp index 5d3fe1f54..5966386e3 100644 --- a/CGMES_2.4.13_18DEC2013/ReactiveCapabilityCurve.cpp +++ b/CGMES_2.4.13_18DEC2013/ReactiveCapabilityCurve.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ReactiveCapabilityCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ReactiveCapabilityCurve.EquivalentInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ReactiveCapabilityCurve::ReactiveCapabilityCurve() {} ReactiveCapabilityCurve::~ReactiveCapabilityCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& ReactiveCapabilityCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ReactiveCapabilityCurve::getClassNamespaceUrl() const { - { "cim:ReactiveCapabilityCurve.EquivalentInjection", { CGMESProfile::EQ, } }, - { "cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ReactiveCapabilityCurve::getPossibleProfilesForClass() const +const std::string& ReactiveCapabilityCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ReactiveCapabilityCurve::getPossibleProfilesForAttributes() const +const std::list& ReactiveCapabilityCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ReactiveCapabilityCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ReactiveCapabilityCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ReactiveCapabilityCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentInjection_ReactiveCapabilityCurve(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* ReactiveCapabilityCurve::debugString() const void ReactiveCapabilityCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ReactiveCapabilityCurve", &ReactiveCapabilityCurve_factory); + factory_map.emplace("ReactiveCapabilityCurve", &ReactiveCapabilityCurve_factory); } void ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ReactiveCapabilityCurve.EquivalentInjection", &assign_ReactiveCapabilityCurve_EquivalentInjection); - assign_map.emplace("cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", &assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines); + assign_map.emplace("ReactiveCapabilityCurve.EquivalentInjection", &assign_ReactiveCapabilityCurve_EquivalentInjection); + assign_map.emplace("ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", &assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines); } void ReactiveCapabilityCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void ReactiveCapabilityCurve::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ReactiveCapabilityCurve::declare() { return BaseClassDefiner(ReactiveCapabilityCurve::addConstructToMap, ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap, ReactiveCapabilityCurve::addClassAssignFnsToMap, ReactiveCapabilityCurve::debugName); } +std::map ReactiveCapabilityCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ReactiveCapabilityCurve_factory() diff --git a/CGMES_2.4.13_18DEC2013/ReactiveCapabilityCurve.hpp b/CGMES_2.4.13_18DEC2013/ReactiveCapabilityCurve.hpp index e843629e2..45c2c1e08 100644 --- a/CGMES_2.4.13_18DEC2013/ReactiveCapabilityCurve.hpp +++ b/CGMES_2.4.13_18DEC2013/ReactiveCapabilityCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ReactiveCapabilityCurve_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RegularIntervalSchedule.cpp b/CGMES_2.4.13_18DEC2013/RegularIntervalSchedule.cpp index 604197cd4..788e95446 100644 --- a/CGMES_2.4.13_18DEC2013/RegularIntervalSchedule.cpp +++ b/CGMES_2.4.13_18DEC2013/RegularIntervalSchedule.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegularIntervalSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegularIntervalSchedule.TimePoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularIntervalSchedule.endTime", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularIntervalSchedule.timeStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegularIntervalSchedule::RegularIntervalSchedule() {} RegularIntervalSchedule::~RegularIntervalSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& RegularIntervalSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegularIntervalSchedule::getClassNamespaceUrl() const { - { "cim:RegularIntervalSchedule.TimePoints", { CGMESProfile::EQ, } }, - { "cim:RegularIntervalSchedule.endTime", { CGMESProfile::EQ, } }, - { "cim:RegularIntervalSchedule.timeStep", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegularIntervalSchedule::getPossibleProfilesForClass() const +const std::string& RegularIntervalSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegularIntervalSchedule::getPossibleProfilesForAttributes() const +const std::list& RegularIntervalSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BasicIntervalSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegularIntervalSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegularIntervalSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegularIntervalSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegularTimePoint_IntervalSchedule(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* RegularIntervalSchedule::debugString() const void RegularIntervalSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegularIntervalSchedule", &RegularIntervalSchedule_factory); + factory_map.emplace("RegularIntervalSchedule", &RegularIntervalSchedule_factory); } void RegularIntervalSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularIntervalSchedule.endTime", &assign_RegularIntervalSchedule_endTime); - assign_map.emplace("cim:RegularIntervalSchedule.timeStep", &assign_RegularIntervalSchedule_timeStep); + assign_map.emplace("RegularIntervalSchedule.endTime", &assign_RegularIntervalSchedule_endTime); + assign_map.emplace("RegularIntervalSchedule.timeStep", &assign_RegularIntervalSchedule_timeStep); } void RegularIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularIntervalSchedule.TimePoints", &assign_RegularIntervalSchedule_TimePoints); + assign_map.emplace("RegularIntervalSchedule.TimePoints", &assign_RegularIntervalSchedule_TimePoints); } void RegularIntervalSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { BasicIntervalSchedule::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegularIntervalSchedule.endTime", &get_RegularIntervalSchedule_endTime); - get_map.emplace("cim:RegularIntervalSchedule.timeStep", &get_RegularIntervalSchedule_timeStep); + get_map.emplace("RegularIntervalSchedule.endTime", &get_RegularIntervalSchedule_endTime); + get_map.emplace("RegularIntervalSchedule.timeStep", &get_RegularIntervalSchedule_timeStep); } void RegularIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void RegularIntervalSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RegularIntervalSchedule::declare() { return BaseClassDefiner(RegularIntervalSchedule::addConstructToMap, RegularIntervalSchedule::addPrimitiveAssignFnsToMap, RegularIntervalSchedule::addClassAssignFnsToMap, RegularIntervalSchedule::debugName); } +std::map RegularIntervalSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BasicIntervalSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegularIntervalSchedule_factory() diff --git a/CGMES_2.4.13_18DEC2013/RegularIntervalSchedule.hpp b/CGMES_2.4.13_18DEC2013/RegularIntervalSchedule.hpp index d34235f88..cb96c5f83 100644 --- a/CGMES_2.4.13_18DEC2013/RegularIntervalSchedule.hpp +++ b/CGMES_2.4.13_18DEC2013/RegularIntervalSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BasicIntervalSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "Seconds.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegularIntervalSchedule_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RegularTimePoint.cpp b/CGMES_2.4.13_18DEC2013/RegularTimePoint.cpp index 5903ad467..b7b1c62f3 100644 --- a/CGMES_2.4.13_18DEC2013/RegularTimePoint.cpp +++ b/CGMES_2.4.13_18DEC2013/RegularTimePoint.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegularTimePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegularTimePoint.IntervalSchedule", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.value1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.value2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegularTimePoint::RegularTimePoint() : IntervalSchedule(nullptr) {} RegularTimePoint::~RegularTimePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& RegularTimePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegularTimePoint::getClassNamespaceUrl() const { - { "cim:RegularTimePoint.IntervalSchedule", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.sequenceNumber", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.value1", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.value2", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegularTimePoint::getPossibleProfilesForClass() const +const std::string& RegularTimePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegularTimePoint::getPossibleProfilesForAttributes() const +const std::list& RegularTimePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegularTimePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegularTimePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegularTimePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegularIntervalSchedule_TimePoints(BaseClass*, BaseClass*); @@ -169,33 +201,33 @@ const char* RegularTimePoint::debugString() const void RegularTimePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegularTimePoint", &RegularTimePoint_factory); + factory_map.emplace("RegularTimePoint", &RegularTimePoint_factory); } void RegularTimePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularTimePoint.sequenceNumber", &assign_RegularTimePoint_sequenceNumber); - assign_map.emplace("cim:RegularTimePoint.value1", &assign_RegularTimePoint_value1); - assign_map.emplace("cim:RegularTimePoint.value2", &assign_RegularTimePoint_value2); + assign_map.emplace("RegularTimePoint.sequenceNumber", &assign_RegularTimePoint_sequenceNumber); + assign_map.emplace("RegularTimePoint.value1", &assign_RegularTimePoint_value1); + assign_map.emplace("RegularTimePoint.value2", &assign_RegularTimePoint_value2); } void RegularTimePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularTimePoint.IntervalSchedule", &assign_RegularTimePoint_IntervalSchedule); + assign_map.emplace("RegularTimePoint.IntervalSchedule", &assign_RegularTimePoint_IntervalSchedule); } void RegularTimePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegularTimePoint.sequenceNumber", &get_RegularTimePoint_sequenceNumber); - get_map.emplace("cim:RegularTimePoint.value1", &get_RegularTimePoint_value1); - get_map.emplace("cim:RegularTimePoint.value2", &get_RegularTimePoint_value2); + get_map.emplace("RegularTimePoint.sequenceNumber", &get_RegularTimePoint_sequenceNumber); + get_map.emplace("RegularTimePoint.value1", &get_RegularTimePoint_value1); + get_map.emplace("RegularTimePoint.value2", &get_RegularTimePoint_value2); } void RegularTimePoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegularTimePoint.IntervalSchedule", &get_RegularTimePoint_IntervalSchedule); + get_map.emplace("RegularTimePoint.IntervalSchedule", &get_RegularTimePoint_IntervalSchedule); } void RegularTimePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -203,11 +235,25 @@ void RegularTimePoint::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool RegularTimePoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegularTimePoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegularTimePoint::declare() { return BaseClassDefiner(RegularTimePoint::addConstructToMap, RegularTimePoint::addPrimitiveAssignFnsToMap, RegularTimePoint::addClassAssignFnsToMap, RegularTimePoint::debugName); } +std::map RegularTimePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegularTimePoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/RegularTimePoint.hpp b/CGMES_2.4.13_18DEC2013/RegularTimePoint.hpp index 1d84dddda..6de1abd40 100644 --- a/CGMES_2.4.13_18DEC2013/RegularTimePoint.hpp +++ b/CGMES_2.4.13_18DEC2013/RegularTimePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegularTimePoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RegulatingCondEq.cpp b/CGMES_2.4.13_18DEC2013/RegulatingCondEq.cpp index 19a2d09e9..221355dab 100644 --- a/CGMES_2.4.13_18DEC2013/RegulatingCondEq.cpp +++ b/CGMES_2.4.13_18DEC2013/RegulatingCondEq.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulatingCondEq(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulatingCondEq.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingCondEq.controlEnabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + RegulatingCondEq::RegulatingCondEq() : RegulatingControl(nullptr) {} RegulatingCondEq::~RegulatingCondEq() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulatingCondEq::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulatingCondEq::getClassNamespaceUrl() const { - { "cim:RegulatingCondEq.RegulatingControl", { CGMESProfile::EQ, } }, - { "cim:RegulatingCondEq.controlEnabled", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulatingCondEq::getPossibleProfilesForClass() const +const std::string& RegulatingCondEq::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulatingCondEq::getPossibleProfilesForAttributes() const +const std::list& RegulatingCondEq::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulatingCondEq::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulatingCondEq::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulatingCondEq::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingControl_RegulatingCondEq(BaseClass*, BaseClass*); @@ -111,29 +143,29 @@ const char* RegulatingCondEq::debugString() const void RegulatingCondEq::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulatingCondEq", &RegulatingCondEq_factory); + factory_map.emplace("RegulatingCondEq", &RegulatingCondEq_factory); } void RegulatingCondEq::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingCondEq.controlEnabled", &assign_RegulatingCondEq_controlEnabled); + assign_map.emplace("RegulatingCondEq.controlEnabled", &assign_RegulatingCondEq_controlEnabled); } void RegulatingCondEq::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingCondEq.RegulatingControl", &assign_RegulatingCondEq_RegulatingControl); + assign_map.emplace("RegulatingCondEq.RegulatingControl", &assign_RegulatingCondEq_RegulatingControl); } void RegulatingCondEq::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingCondEq.controlEnabled", &get_RegulatingCondEq_controlEnabled); + get_map.emplace("RegulatingCondEq.controlEnabled", &get_RegulatingCondEq_controlEnabled); } void RegulatingCondEq::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingCondEq.RegulatingControl", &get_RegulatingCondEq_RegulatingControl); + get_map.emplace("RegulatingCondEq.RegulatingControl", &get_RegulatingCondEq_RegulatingControl); } void RegulatingCondEq::addEnumGetFnsToMap(std::map& get_map) const @@ -141,11 +173,25 @@ void RegulatingCondEq::addEnumGetFnsToMap(std::map& g ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool RegulatingCondEq::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulatingCondEq" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegulatingCondEq::declare() { return BaseClassDefiner(RegulatingCondEq::addConstructToMap, RegulatingCondEq::addPrimitiveAssignFnsToMap, RegulatingCondEq::addClassAssignFnsToMap, RegulatingCondEq::debugName); } +std::map RegulatingCondEq::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulatingCondEq_factory() diff --git a/CGMES_2.4.13_18DEC2013/RegulatingCondEq.hpp b/CGMES_2.4.13_18DEC2013/RegulatingCondEq.hpp index 9df3386a1..6459405d2 100644 --- a/CGMES_2.4.13_18DEC2013/RegulatingCondEq.hpp +++ b/CGMES_2.4.13_18DEC2013/RegulatingCondEq.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulatingCondEq_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RegulatingControl.cpp b/CGMES_2.4.13_18DEC2013/RegulatingControl.cpp index 7f14bad90..297410404 100644 --- a/CGMES_2.4.13_18DEC2013/RegulatingControl.cpp +++ b/CGMES_2.4.13_18DEC2013/RegulatingControl.cpp @@ -14,41 +14,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulatingControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulatingControl.RegulatingCondEq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.RegulationSchedule", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.discrete", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.enabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.mode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.targetDeadband", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.targetValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.targetValueUnitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + RegulatingControl::RegulatingControl() : Terminal(nullptr) {} RegulatingControl::~RegulatingControl() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulatingControl::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulatingControl::getClassNamespaceUrl() const { - { "cim:RegulatingControl.RegulatingCondEq", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.RegulationSchedule", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.Terminal", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.discrete", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.enabled", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.mode", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.targetDeadband", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.targetValue", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.targetValueUnitMultiplier", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulatingControl::getPossibleProfilesForClass() const +const std::string& RegulatingControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulatingControl::getPossibleProfilesForAttributes() const +const std::list& RegulatingControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulatingControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulatingControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulatingControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingCondEq_RegulatingControl(BaseClass*, BaseClass*); @@ -300,46 +332,52 @@ const char* RegulatingControl::debugString() const void RegulatingControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulatingControl", &RegulatingControl_factory); + factory_map.emplace("RegulatingControl", &RegulatingControl_factory); } void RegulatingControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingControl.discrete", &assign_RegulatingControl_discrete); - assign_map.emplace("cim:RegulatingControl.enabled", &assign_RegulatingControl_enabled); - assign_map.emplace("cim:RegulatingControl.mode", &assign_RegulatingControl_mode); - assign_map.emplace("cim:RegulatingControl.targetDeadband", &assign_RegulatingControl_targetDeadband); - assign_map.emplace("cim:RegulatingControl.targetValue", &assign_RegulatingControl_targetValue); - assign_map.emplace("cim:RegulatingControl.targetValueUnitMultiplier", &assign_RegulatingControl_targetValueUnitMultiplier); + assign_map.emplace("RegulatingControl.discrete", &assign_RegulatingControl_discrete); + assign_map.emplace("RegulatingControl.enabled", &assign_RegulatingControl_enabled); + assign_map.emplace("RegulatingControl.mode", &assign_RegulatingControl_mode); + assign_map.emplace("RegulatingControl.targetDeadband", &assign_RegulatingControl_targetDeadband); + assign_map.emplace("RegulatingControl.targetValue", &assign_RegulatingControl_targetValue); + assign_map.emplace("RegulatingControl.targetValueUnitMultiplier", &assign_RegulatingControl_targetValueUnitMultiplier); } void RegulatingControl::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingControl.RegulatingCondEq", &assign_RegulatingControl_RegulatingCondEq); - assign_map.emplace("cim:RegulatingControl.RegulationSchedule", &assign_RegulatingControl_RegulationSchedule); - assign_map.emplace("cim:RegulatingControl.Terminal", &assign_RegulatingControl_Terminal); + assign_map.emplace("RegulatingControl.RegulatingCondEq", &assign_RegulatingControl_RegulatingCondEq); + assign_map.emplace("RegulatingControl.RegulationSchedule", &assign_RegulatingControl_RegulationSchedule); + assign_map.emplace("RegulatingControl.Terminal", &assign_RegulatingControl_Terminal); } void RegulatingControl::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.discrete", &get_RegulatingControl_discrete); - get_map.emplace("cim:RegulatingControl.enabled", &get_RegulatingControl_enabled); - get_map.emplace("cim:RegulatingControl.targetDeadband", &get_RegulatingControl_targetDeadband); - get_map.emplace("cim:RegulatingControl.targetValue", &get_RegulatingControl_targetValue); + get_map.emplace("RegulatingControl.discrete", &get_RegulatingControl_discrete); + get_map.emplace("RegulatingControl.enabled", &get_RegulatingControl_enabled); + get_map.emplace("RegulatingControl.targetDeadband", &get_RegulatingControl_targetDeadband); + get_map.emplace("RegulatingControl.targetValue", &get_RegulatingControl_targetValue); } void RegulatingControl::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.Terminal", &get_RegulatingControl_Terminal); + get_map.emplace("RegulatingControl.Terminal", &get_RegulatingControl_Terminal); } void RegulatingControl::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.mode", &get_RegulatingControl_mode); - get_map.emplace("cim:RegulatingControl.targetValueUnitMultiplier", &get_RegulatingControl_targetValueUnitMultiplier); + get_map.emplace("RegulatingControl.mode", &get_RegulatingControl_mode); + get_map.emplace("RegulatingControl.targetValueUnitMultiplier", &get_RegulatingControl_targetValueUnitMultiplier); +} + +bool RegulatingControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulatingControl" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RegulatingControl::declare() @@ -347,6 +385,14 @@ const BaseClassDefiner RegulatingControl::declare() return BaseClassDefiner(RegulatingControl::addConstructToMap, RegulatingControl::addPrimitiveAssignFnsToMap, RegulatingControl::addClassAssignFnsToMap, RegulatingControl::debugName); } +std::map RegulatingControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulatingControl_factory() diff --git a/CGMES_2.4.13_18DEC2013/RegulatingControl.hpp b/CGMES_2.4.13_18DEC2013/RegulatingControl.hpp index f6be989fc..48ec796c5 100644 --- a/CGMES_2.4.13_18DEC2013/RegulatingControl.hpp +++ b/CGMES_2.4.13_18DEC2013/RegulatingControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "RegulatingControlModeKind.hpp" #include "Simple_Float.hpp" @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulatingControl_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RegulationSchedule.cpp b/CGMES_2.4.13_18DEC2013/RegulationSchedule.cpp index 8750abb1a..eecf20fd5 100644 --- a/CGMES_2.4.13_18DEC2013/RegulationSchedule.cpp +++ b/CGMES_2.4.13_18DEC2013/RegulationSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulationSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulationSchedule.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegulationSchedule::RegulationSchedule() : RegulatingControl(nullptr) {} RegulationSchedule::~RegulationSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulationSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulationSchedule::getClassNamespaceUrl() const { - { "cim:RegulationSchedule.RegulatingControl", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulationSchedule::getPossibleProfilesForClass() const +const std::string& RegulationSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulationSchedule::getPossibleProfilesForAttributes() const +const std::list& RegulationSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulationSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulationSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulationSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingControl_RegulationSchedule(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RegulationSchedule::debugString() const void RegulationSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulationSchedule", &RegulationSchedule_factory); + factory_map.emplace("RegulationSchedule", &RegulationSchedule_factory); } void RegulationSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RegulationSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulationSchedule.RegulatingControl", &assign_RegulationSchedule_RegulatingControl); + assign_map.emplace("RegulationSchedule.RegulatingControl", &assign_RegulationSchedule_RegulatingControl); } void RegulationSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RegulationSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulationSchedule.RegulatingControl", &get_RegulationSchedule_RegulatingControl); + get_map.emplace("RegulationSchedule.RegulatingControl", &get_RegulationSchedule_RegulatingControl); } void RegulationSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RegulationSchedule::addEnumGetFnsToMap(std::map& SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool RegulationSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulationSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegulationSchedule::declare() { return BaseClassDefiner(RegulationSchedule::addConstructToMap, RegulationSchedule::addPrimitiveAssignFnsToMap, RegulationSchedule::addClassAssignFnsToMap, RegulationSchedule::debugName); } +std::map RegulationSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulationSchedule_factory() diff --git a/CGMES_2.4.13_18DEC2013/RegulationSchedule.hpp b/CGMES_2.4.13_18DEC2013/RegulationSchedule.hpp index 4b0f45cec..1fa0a5a27 100644 --- a/CGMES_2.4.13_18DEC2013/RegulationSchedule.hpp +++ b/CGMES_2.4.13_18DEC2013/RegulationSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulationSchedule_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RemoteInputSignal.cpp b/CGMES_2.4.13_18DEC2013/RemoteInputSignal.cpp index f187b941e..24bcf22b4 100644 --- a/CGMES_2.4.13_18DEC2013/RemoteInputSignal.cpp +++ b/CGMES_2.4.13_18DEC2013/RemoteInputSignal.cpp @@ -20,41 +20,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RemoteInputSignal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RemoteInputSignal.DiscontinuousExcitationControlDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.PowerSystemStabilizerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.UnderexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.VoltageCompensatorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindPlantDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindTurbineType1or2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.remoteSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + RemoteInputSignal::RemoteInputSignal() : DiscontinuousExcitationControlDynamics(nullptr), PFVArControllerType1Dynamics(nullptr), PowerSystemStabilizerDynamics(nullptr), Terminal(nullptr), UnderexcitationLimiterDynamics(nullptr), VoltageCompensatorDynamics(nullptr), WindPlantDynamics(nullptr), WindTurbineType1or2Dynamics(nullptr), WindTurbineType3or4Dynamics(nullptr) {} RemoteInputSignal::~RemoteInputSignal() {} -static const std::list PossibleProfilesForClass = +const std::list& RemoteInputSignal::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RemoteInputSignal::getClassNamespaceUrl() const { - { "cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.PowerSystemStabilizerDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.Terminal", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.UnderexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.VoltageCompensatorDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindPlantDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindTurbineType1or2Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.remoteSignalType", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RemoteInputSignal::getPossibleProfilesForClass() const +const std::string& RemoteInputSignal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RemoteInputSignal::getPossibleProfilesForAttributes() const +const std::list& RemoteInputSignal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RemoteInputSignal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RemoteInputSignal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RemoteInputSignal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal(BaseClass*, BaseClass*); @@ -334,25 +366,25 @@ const char* RemoteInputSignal::debugString() const void RemoteInputSignal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RemoteInputSignal", &RemoteInputSignal_factory); + factory_map.emplace("RemoteInputSignal", &RemoteInputSignal_factory); } void RemoteInputSignal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RemoteInputSignal.remoteSignalType", &assign_RemoteInputSignal_remoteSignalType); + assign_map.emplace("RemoteInputSignal.remoteSignalType", &assign_RemoteInputSignal_remoteSignalType); } void RemoteInputSignal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", &assign_RemoteInputSignal_DiscontinuousExcitationControlDynamics); - assign_map.emplace("cim:RemoteInputSignal.PFVArControllerType1Dynamics", &assign_RemoteInputSignal_PFVArControllerType1Dynamics); - assign_map.emplace("cim:RemoteInputSignal.PowerSystemStabilizerDynamics", &assign_RemoteInputSignal_PowerSystemStabilizerDynamics); - assign_map.emplace("cim:RemoteInputSignal.Terminal", &assign_RemoteInputSignal_Terminal); - assign_map.emplace("cim:RemoteInputSignal.UnderexcitationLimiterDynamics", &assign_RemoteInputSignal_UnderexcitationLimiterDynamics); - assign_map.emplace("cim:RemoteInputSignal.VoltageCompensatorDynamics", &assign_RemoteInputSignal_VoltageCompensatorDynamics); - assign_map.emplace("cim:RemoteInputSignal.WindPlantDynamics", &assign_RemoteInputSignal_WindPlantDynamics); - assign_map.emplace("cim:RemoteInputSignal.WindTurbineType1or2Dynamics", &assign_RemoteInputSignal_WindTurbineType1or2Dynamics); - assign_map.emplace("cim:RemoteInputSignal.WindTurbineType3or4Dynamics", &assign_RemoteInputSignal_WindTurbineType3or4Dynamics); + assign_map.emplace("RemoteInputSignal.DiscontinuousExcitationControlDynamics", &assign_RemoteInputSignal_DiscontinuousExcitationControlDynamics); + assign_map.emplace("RemoteInputSignal.PFVArControllerType1Dynamics", &assign_RemoteInputSignal_PFVArControllerType1Dynamics); + assign_map.emplace("RemoteInputSignal.PowerSystemStabilizerDynamics", &assign_RemoteInputSignal_PowerSystemStabilizerDynamics); + assign_map.emplace("RemoteInputSignal.Terminal", &assign_RemoteInputSignal_Terminal); + assign_map.emplace("RemoteInputSignal.UnderexcitationLimiterDynamics", &assign_RemoteInputSignal_UnderexcitationLimiterDynamics); + assign_map.emplace("RemoteInputSignal.VoltageCompensatorDynamics", &assign_RemoteInputSignal_VoltageCompensatorDynamics); + assign_map.emplace("RemoteInputSignal.WindPlantDynamics", &assign_RemoteInputSignal_WindPlantDynamics); + assign_map.emplace("RemoteInputSignal.WindTurbineType1or2Dynamics", &assign_RemoteInputSignal_WindTurbineType1or2Dynamics); + assign_map.emplace("RemoteInputSignal.WindTurbineType3or4Dynamics", &assign_RemoteInputSignal_WindTurbineType3or4Dynamics); } void RemoteInputSignal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -363,18 +395,24 @@ void RemoteInputSignal::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", &get_RemoteInputSignal_DiscontinuousExcitationControlDynamics); - get_map.emplace("cim:RemoteInputSignal.PFVArControllerType1Dynamics", &get_RemoteInputSignal_PFVArControllerType1Dynamics); - get_map.emplace("cim:RemoteInputSignal.PowerSystemStabilizerDynamics", &get_RemoteInputSignal_PowerSystemStabilizerDynamics); - get_map.emplace("cim:RemoteInputSignal.Terminal", &get_RemoteInputSignal_Terminal); - get_map.emplace("cim:RemoteInputSignal.UnderexcitationLimiterDynamics", &get_RemoteInputSignal_UnderexcitationLimiterDynamics); - get_map.emplace("cim:RemoteInputSignal.VoltageCompensatorDynamics", &get_RemoteInputSignal_VoltageCompensatorDynamics); + get_map.emplace("RemoteInputSignal.DiscontinuousExcitationControlDynamics", &get_RemoteInputSignal_DiscontinuousExcitationControlDynamics); + get_map.emplace("RemoteInputSignal.PFVArControllerType1Dynamics", &get_RemoteInputSignal_PFVArControllerType1Dynamics); + get_map.emplace("RemoteInputSignal.PowerSystemStabilizerDynamics", &get_RemoteInputSignal_PowerSystemStabilizerDynamics); + get_map.emplace("RemoteInputSignal.Terminal", &get_RemoteInputSignal_Terminal); + get_map.emplace("RemoteInputSignal.UnderexcitationLimiterDynamics", &get_RemoteInputSignal_UnderexcitationLimiterDynamics); + get_map.emplace("RemoteInputSignal.VoltageCompensatorDynamics", &get_RemoteInputSignal_VoltageCompensatorDynamics); } void RemoteInputSignal::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RemoteInputSignal.remoteSignalType", &get_RemoteInputSignal_remoteSignalType); + get_map.emplace("RemoteInputSignal.remoteSignalType", &get_RemoteInputSignal_remoteSignalType); +} + +bool RemoteInputSignal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RemoteInputSignal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RemoteInputSignal::declare() @@ -382,6 +420,14 @@ const BaseClassDefiner RemoteInputSignal::declare() return BaseClassDefiner(RemoteInputSignal::addConstructToMap, RemoteInputSignal::addPrimitiveAssignFnsToMap, RemoteInputSignal::addClassAssignFnsToMap, RemoteInputSignal::debugName); } +std::map RemoteInputSignal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RemoteInputSignal_factory() diff --git a/CGMES_2.4.13_18DEC2013/RemoteInputSignal.hpp b/CGMES_2.4.13_18DEC2013/RemoteInputSignal.hpp index f33baab80..ff55f1ed4 100644 --- a/CGMES_2.4.13_18DEC2013/RemoteInputSignal.hpp +++ b/CGMES_2.4.13_18DEC2013/RemoteInputSignal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "RemoteSignalKind.hpp" namespace CIMPP @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RemoteInputSignal_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ReportingGroup.cpp b/CGMES_2.4.13_18DEC2013/ReportingGroup.cpp index 5a8463cce..81ee0ce6b 100644 --- a/CGMES_2.4.13_18DEC2013/ReportingGroup.cpp +++ b/CGMES_2.4.13_18DEC2013/ReportingGroup.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ReportingGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ReportingGroup.BusNameMarker", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ReportingGroup.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ReportingGroup::ReportingGroup() {} ReportingGroup::~ReportingGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& ReportingGroup::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ReportingGroup::getClassNamespaceUrl() const { - { "cim:ReportingGroup.BusNameMarker", { CGMESProfile::EQ, } }, - { "cim:ReportingGroup.TopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ReportingGroup::getPossibleProfilesForClass() const +const std::string& ReportingGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ReportingGroup::getPossibleProfilesForAttributes() const +const std::list& ReportingGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ReportingGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ReportingGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ReportingGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusNameMarker_ReportingGroup(BaseClass*, BaseClass*); @@ -87,7 +119,7 @@ const char* ReportingGroup::debugString() const void ReportingGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ReportingGroup", &ReportingGroup_factory); + factory_map.emplace("ReportingGroup", &ReportingGroup_factory); } void ReportingGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -96,8 +128,8 @@ void ReportingGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ReportingGroup.BusNameMarker", &assign_ReportingGroup_BusNameMarker); - assign_map.emplace("cim:ReportingGroup.TopologicalNode", &assign_ReportingGroup_TopologicalNode); + assign_map.emplace("ReportingGroup.BusNameMarker", &assign_ReportingGroup_BusNameMarker); + assign_map.emplace("ReportingGroup.TopologicalNode", &assign_ReportingGroup_TopologicalNode); } void ReportingGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -115,11 +147,25 @@ void ReportingGroup::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ReportingGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ReportingGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ReportingGroup::declare() { return BaseClassDefiner(ReportingGroup::addConstructToMap, ReportingGroup::addPrimitiveAssignFnsToMap, ReportingGroup::addClassAssignFnsToMap, ReportingGroup::debugName); } +std::map ReportingGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ReportingGroup_factory() diff --git a/CGMES_2.4.13_18DEC2013/ReportingGroup.hpp b/CGMES_2.4.13_18DEC2013/ReportingGroup.hpp index bed31d9d8..94230e4bf 100644 --- a/CGMES_2.4.13_18DEC2013/ReportingGroup.hpp +++ b/CGMES_2.4.13_18DEC2013/ReportingGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ReportingGroup_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RotatingMachine.cpp b/CGMES_2.4.13_18DEC2013/RotatingMachine.cpp index 167772853..d13a6824f 100644 --- a/CGMES_2.4.13_18DEC2013/RotatingMachine.cpp +++ b/CGMES_2.4.13_18DEC2013/RotatingMachine.cpp @@ -13,40 +13,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RotatingMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RotatingMachine.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.HydroPump", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RotatingMachine.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RotatingMachine.ratedPowerFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.ratedS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.ratedU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RotatingMachine::RotatingMachine() : GeneratingUnit(nullptr), HydroPump(nullptr) {} RotatingMachine::~RotatingMachine() {} -static const std::list PossibleProfilesForClass = +const std::list& RotatingMachine::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RotatingMachine::getClassNamespaceUrl() const { - { "cim:RotatingMachine.GeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.HydroPump", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.p", { CGMESProfile::SSH, } }, - { "cim:RotatingMachine.q", { CGMESProfile::SSH, } }, - { "cim:RotatingMachine.ratedPowerFactor", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.ratedS", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.ratedU", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RotatingMachine::getPossibleProfilesForClass() const +const std::string& RotatingMachine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RotatingMachine::getPossibleProfilesForAttributes() const +const std::list& RotatingMachine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RotatingMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RotatingMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RotatingMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeneratingUnit_RotatingMachine(BaseClass*, BaseClass*); @@ -251,38 +283,38 @@ const char* RotatingMachine::debugString() const void RotatingMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RotatingMachine", &RotatingMachine_factory); + factory_map.emplace("RotatingMachine", &RotatingMachine_factory); } void RotatingMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachine.p", &assign_RotatingMachine_p); - assign_map.emplace("cim:RotatingMachine.q", &assign_RotatingMachine_q); - assign_map.emplace("cim:RotatingMachine.ratedPowerFactor", &assign_RotatingMachine_ratedPowerFactor); - assign_map.emplace("cim:RotatingMachine.ratedS", &assign_RotatingMachine_ratedS); - assign_map.emplace("cim:RotatingMachine.ratedU", &assign_RotatingMachine_ratedU); + assign_map.emplace("RotatingMachine.p", &assign_RotatingMachine_p); + assign_map.emplace("RotatingMachine.q", &assign_RotatingMachine_q); + assign_map.emplace("RotatingMachine.ratedPowerFactor", &assign_RotatingMachine_ratedPowerFactor); + assign_map.emplace("RotatingMachine.ratedS", &assign_RotatingMachine_ratedS); + assign_map.emplace("RotatingMachine.ratedU", &assign_RotatingMachine_ratedU); } void RotatingMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachine.GeneratingUnit", &assign_RotatingMachine_GeneratingUnit); - assign_map.emplace("cim:RotatingMachine.HydroPump", &assign_RotatingMachine_HydroPump); + assign_map.emplace("RotatingMachine.GeneratingUnit", &assign_RotatingMachine_GeneratingUnit); + assign_map.emplace("RotatingMachine.HydroPump", &assign_RotatingMachine_HydroPump); } void RotatingMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachine.p", &get_RotatingMachine_p); - get_map.emplace("cim:RotatingMachine.q", &get_RotatingMachine_q); - get_map.emplace("cim:RotatingMachine.ratedPowerFactor", &get_RotatingMachine_ratedPowerFactor); - get_map.emplace("cim:RotatingMachine.ratedS", &get_RotatingMachine_ratedS); - get_map.emplace("cim:RotatingMachine.ratedU", &get_RotatingMachine_ratedU); + get_map.emplace("RotatingMachine.p", &get_RotatingMachine_p); + get_map.emplace("RotatingMachine.q", &get_RotatingMachine_q); + get_map.emplace("RotatingMachine.ratedPowerFactor", &get_RotatingMachine_ratedPowerFactor); + get_map.emplace("RotatingMachine.ratedS", &get_RotatingMachine_ratedS); + get_map.emplace("RotatingMachine.ratedU", &get_RotatingMachine_ratedU); } void RotatingMachine::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachine.GeneratingUnit", &get_RotatingMachine_GeneratingUnit); + get_map.emplace("RotatingMachine.GeneratingUnit", &get_RotatingMachine_GeneratingUnit); } void RotatingMachine::addEnumGetFnsToMap(std::map& get_map) const @@ -290,11 +322,25 @@ void RotatingMachine::addEnumGetFnsToMap(std::map& ge RegulatingCondEq::addEnumGetFnsToMap(get_map); } +bool RotatingMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RotatingMachine" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RotatingMachine::declare() { return BaseClassDefiner(RotatingMachine::addConstructToMap, RotatingMachine::addPrimitiveAssignFnsToMap, RotatingMachine::addClassAssignFnsToMap, RotatingMachine::debugName); } +std::map RotatingMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RotatingMachine_factory() diff --git a/CGMES_2.4.13_18DEC2013/RotatingMachine.hpp b/CGMES_2.4.13_18DEC2013/RotatingMachine.hpp index 94e3078ed..b2df4fa3c 100644 --- a/CGMES_2.4.13_18DEC2013/RotatingMachine.hpp +++ b/CGMES_2.4.13_18DEC2013/RotatingMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ApparentPower.hpp" #include "ReactivePower.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RotatingMachine_factory(); diff --git a/CGMES_2.4.13_18DEC2013/RotatingMachineDynamics.cpp b/CGMES_2.4.13_18DEC2013/RotatingMachineDynamics.cpp index 57dd9d608..cd79785cb 100644 --- a/CGMES_2.4.13_18DEC2013/RotatingMachineDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/RotatingMachineDynamics.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RotatingMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RotatingMachineDynamics.damping", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.inertia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.saturationFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.saturationFactor120", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.statorLeakageReactance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.statorResistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + RotatingMachineDynamics::RotatingMachineDynamics() {} RotatingMachineDynamics::~RotatingMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& RotatingMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RotatingMachineDynamics::getClassNamespaceUrl() const { - { "cim:RotatingMachineDynamics.damping", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.inertia", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.saturationFactor", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.saturationFactor120", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.statorLeakageReactance", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.statorResistance", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RotatingMachineDynamics::getPossibleProfilesForClass() const +const std::string& RotatingMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RotatingMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& RotatingMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RotatingMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RotatingMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RotatingMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RotatingMachineDynamics_damping(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* RotatingMachineDynamics::debugString() const void RotatingMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RotatingMachineDynamics", &RotatingMachineDynamics_factory); + factory_map.emplace("RotatingMachineDynamics", &RotatingMachineDynamics_factory); } void RotatingMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachineDynamics.damping", &assign_RotatingMachineDynamics_damping); - assign_map.emplace("cim:RotatingMachineDynamics.inertia", &assign_RotatingMachineDynamics_inertia); - assign_map.emplace("cim:RotatingMachineDynamics.saturationFactor", &assign_RotatingMachineDynamics_saturationFactor); - assign_map.emplace("cim:RotatingMachineDynamics.saturationFactor120", &assign_RotatingMachineDynamics_saturationFactor120); - assign_map.emplace("cim:RotatingMachineDynamics.statorLeakageReactance", &assign_RotatingMachineDynamics_statorLeakageReactance); - assign_map.emplace("cim:RotatingMachineDynamics.statorResistance", &assign_RotatingMachineDynamics_statorResistance); + assign_map.emplace("RotatingMachineDynamics.damping", &assign_RotatingMachineDynamics_damping); + assign_map.emplace("RotatingMachineDynamics.inertia", &assign_RotatingMachineDynamics_inertia); + assign_map.emplace("RotatingMachineDynamics.saturationFactor", &assign_RotatingMachineDynamics_saturationFactor); + assign_map.emplace("RotatingMachineDynamics.saturationFactor120", &assign_RotatingMachineDynamics_saturationFactor120); + assign_map.emplace("RotatingMachineDynamics.statorLeakageReactance", &assign_RotatingMachineDynamics_statorLeakageReactance); + assign_map.emplace("RotatingMachineDynamics.statorResistance", &assign_RotatingMachineDynamics_statorResistance); } void RotatingMachineDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void RotatingMachineDynamics::addClassAssignFnsToMap(std::unordered_map& get_map) const { DynamicsFunctionBlock::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachineDynamics.damping", &get_RotatingMachineDynamics_damping); - get_map.emplace("cim:RotatingMachineDynamics.inertia", &get_RotatingMachineDynamics_inertia); - get_map.emplace("cim:RotatingMachineDynamics.saturationFactor", &get_RotatingMachineDynamics_saturationFactor); - get_map.emplace("cim:RotatingMachineDynamics.saturationFactor120", &get_RotatingMachineDynamics_saturationFactor120); - get_map.emplace("cim:RotatingMachineDynamics.statorLeakageReactance", &get_RotatingMachineDynamics_statorLeakageReactance); - get_map.emplace("cim:RotatingMachineDynamics.statorResistance", &get_RotatingMachineDynamics_statorResistance); + get_map.emplace("RotatingMachineDynamics.damping", &get_RotatingMachineDynamics_damping); + get_map.emplace("RotatingMachineDynamics.inertia", &get_RotatingMachineDynamics_inertia); + get_map.emplace("RotatingMachineDynamics.saturationFactor", &get_RotatingMachineDynamics_saturationFactor); + get_map.emplace("RotatingMachineDynamics.saturationFactor120", &get_RotatingMachineDynamics_saturationFactor120); + get_map.emplace("RotatingMachineDynamics.statorLeakageReactance", &get_RotatingMachineDynamics_statorLeakageReactance); + get_map.emplace("RotatingMachineDynamics.statorResistance", &get_RotatingMachineDynamics_statorResistance); } void RotatingMachineDynamics::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void RotatingMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RotatingMachineDynamics::declare() { return BaseClassDefiner(RotatingMachineDynamics::addConstructToMap, RotatingMachineDynamics::addPrimitiveAssignFnsToMap, RotatingMachineDynamics::addClassAssignFnsToMap, RotatingMachineDynamics::debugName); } +std::map RotatingMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RotatingMachineDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/RotatingMachineDynamics.hpp b/CGMES_2.4.13_18DEC2013/RotatingMachineDynamics.hpp index 97a2d57c7..269643a8e 100644 --- a/CGMES_2.4.13_18DEC2013/RotatingMachineDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/RotatingMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RotatingMachineDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Season.cpp b/CGMES_2.4.13_18DEC2013/Season.cpp index bd79ad860..2165d9b90 100644 --- a/CGMES_2.4.13_18DEC2013/Season.cpp +++ b/CGMES_2.4.13_18DEC2013/Season.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Season(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Season.SeasonDayTypeSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Season.endDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Season.startDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Season::Season() {} Season::~Season() {} -static const std::list PossibleProfilesForClass = +const std::list& Season::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Season::getClassNamespaceUrl() const { - { "cim:Season.SeasonDayTypeSchedules", { CGMESProfile::EQ, } }, - { "cim:Season.endDate", { CGMESProfile::EQ, } }, - { "cim:Season.startDate", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Season::getPossibleProfilesForClass() const +const std::string& Season::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Season::getPossibleProfilesForAttributes() const +const std::list& Season::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Season::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Season::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Season::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeasonDayTypeSchedule_Season(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* Season::debugString() const void Season::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Season", &Season_factory); + factory_map.emplace("Season", &Season_factory); } void Season::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Season.endDate", &assign_Season_endDate); - assign_map.emplace("cim:Season.startDate", &assign_Season_startDate); + assign_map.emplace("Season.endDate", &assign_Season_endDate); + assign_map.emplace("Season.startDate", &assign_Season_startDate); } void Season::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Season.SeasonDayTypeSchedules", &assign_Season_SeasonDayTypeSchedules); + assign_map.emplace("Season.SeasonDayTypeSchedules", &assign_Season_SeasonDayTypeSchedules); } void Season::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Season.endDate", &get_Season_endDate); - get_map.emplace("cim:Season.startDate", &get_Season_startDate); + get_map.emplace("Season.endDate", &get_Season_endDate); + get_map.emplace("Season.startDate", &get_Season_startDate); } void Season::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void Season::addEnumGetFnsToMap(std::map& get_map) co IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Season::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Season" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Season::declare() { return BaseClassDefiner(Season::addConstructToMap, Season::addPrimitiveAssignFnsToMap, Season::addClassAssignFnsToMap, Season::debugName); } +std::map Season::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Season_factory() diff --git a/CGMES_2.4.13_18DEC2013/Season.hpp b/CGMES_2.4.13_18DEC2013/Season.hpp index 884a07e64..3ec092251 100644 --- a/CGMES_2.4.13_18DEC2013/Season.hpp +++ b/CGMES_2.4.13_18DEC2013/Season.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "MonthDay.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Season_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SeasonDayTypeSchedule.cpp b/CGMES_2.4.13_18DEC2013/SeasonDayTypeSchedule.cpp index dcc36cca0..94301acf8 100644 --- a/CGMES_2.4.13_18DEC2013/SeasonDayTypeSchedule.cpp +++ b/CGMES_2.4.13_18DEC2013/SeasonDayTypeSchedule.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SeasonDayTypeSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SeasonDayTypeSchedule.DayType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeasonDayTypeSchedule.Season", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SeasonDayTypeSchedule::SeasonDayTypeSchedule() : DayType(nullptr), Season(nullptr) {} SeasonDayTypeSchedule::~SeasonDayTypeSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& SeasonDayTypeSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SeasonDayTypeSchedule::getClassNamespaceUrl() const { - { "cim:SeasonDayTypeSchedule.DayType", { CGMESProfile::EQ, } }, - { "cim:SeasonDayTypeSchedule.Season", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SeasonDayTypeSchedule::getPossibleProfilesForClass() const +const std::string& SeasonDayTypeSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SeasonDayTypeSchedule::getPossibleProfilesForAttributes() const +const std::list& SeasonDayTypeSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegularIntervalSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SeasonDayTypeSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SeasonDayTypeSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SeasonDayTypeSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DayType_SeasonDayTypeSchedules(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* SeasonDayTypeSchedule::debugString() const void SeasonDayTypeSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SeasonDayTypeSchedule", &SeasonDayTypeSchedule_factory); + factory_map.emplace("SeasonDayTypeSchedule", &SeasonDayTypeSchedule_factory); } void SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SeasonDayTypeSchedule.DayType", &assign_SeasonDayTypeSchedule_DayType); - assign_map.emplace("cim:SeasonDayTypeSchedule.Season", &assign_SeasonDayTypeSchedule_Season); + assign_map.emplace("SeasonDayTypeSchedule.DayType", &assign_SeasonDayTypeSchedule_DayType); + assign_map.emplace("SeasonDayTypeSchedule.Season", &assign_SeasonDayTypeSchedule_Season); } void SeasonDayTypeSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void SeasonDayTypeSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { RegularIntervalSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SeasonDayTypeSchedule.DayType", &get_SeasonDayTypeSchedule_DayType); - get_map.emplace("cim:SeasonDayTypeSchedule.Season", &get_SeasonDayTypeSchedule_Season); + get_map.emplace("SeasonDayTypeSchedule.DayType", &get_SeasonDayTypeSchedule_DayType); + get_map.emplace("SeasonDayTypeSchedule.Season", &get_SeasonDayTypeSchedule_Season); } void SeasonDayTypeSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void SeasonDayTypeSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SeasonDayTypeSchedule::declare() { return BaseClassDefiner(SeasonDayTypeSchedule::addConstructToMap, SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap, SeasonDayTypeSchedule::addClassAssignFnsToMap, SeasonDayTypeSchedule::debugName); } +std::map SeasonDayTypeSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegularIntervalSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SeasonDayTypeSchedule_factory() diff --git a/CGMES_2.4.13_18DEC2013/SeasonDayTypeSchedule.hpp b/CGMES_2.4.13_18DEC2013/SeasonDayTypeSchedule.hpp index bb3b41a35..42c4c4e94 100644 --- a/CGMES_2.4.13_18DEC2013/SeasonDayTypeSchedule.hpp +++ b/CGMES_2.4.13_18DEC2013/SeasonDayTypeSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegularIntervalSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SeasonDayTypeSchedule_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SeriesCompensator.cpp b/CGMES_2.4.13_18DEC2013/SeriesCompensator.cpp index 291e18404..59ed1c685 100644 --- a/CGMES_2.4.13_18DEC2013/SeriesCompensator.cpp +++ b/CGMES_2.4.13_18DEC2013/SeriesCompensator.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SeriesCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SeriesCompensator.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorPresent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorRatedCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorVoltageThreshold", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SeriesCompensator::SeriesCompensator() {} SeriesCompensator::~SeriesCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& SeriesCompensator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SeriesCompensator::getClassNamespaceUrl() const { - { "cim:SeriesCompensator.r", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.r0", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorPresent", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorRatedCurrent", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorVoltageThreshold", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.x", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SeriesCompensator::getPossibleProfilesForClass() const +const std::string& SeriesCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SeriesCompensator::getPossibleProfilesForAttributes() const +const std::list& SeriesCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SeriesCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SeriesCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SeriesCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeriesCompensator_r(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* SeriesCompensator::debugString() const void SeriesCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SeriesCompensator", &SeriesCompensator_factory); + factory_map.emplace("SeriesCompensator", &SeriesCompensator_factory); } void SeriesCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SeriesCompensator.r", &assign_SeriesCompensator_r); - assign_map.emplace("cim:SeriesCompensator.r0", &assign_SeriesCompensator_r0); - assign_map.emplace("cim:SeriesCompensator.varistorPresent", &assign_SeriesCompensator_varistorPresent); - assign_map.emplace("cim:SeriesCompensator.varistorRatedCurrent", &assign_SeriesCompensator_varistorRatedCurrent); - assign_map.emplace("cim:SeriesCompensator.varistorVoltageThreshold", &assign_SeriesCompensator_varistorVoltageThreshold); - assign_map.emplace("cim:SeriesCompensator.x", &assign_SeriesCompensator_x); - assign_map.emplace("cim:SeriesCompensator.x0", &assign_SeriesCompensator_x0); + assign_map.emplace("SeriesCompensator.r", &assign_SeriesCompensator_r); + assign_map.emplace("SeriesCompensator.r0", &assign_SeriesCompensator_r0); + assign_map.emplace("SeriesCompensator.varistorPresent", &assign_SeriesCompensator_varistorPresent); + assign_map.emplace("SeriesCompensator.varistorRatedCurrent", &assign_SeriesCompensator_varistorRatedCurrent); + assign_map.emplace("SeriesCompensator.varistorVoltageThreshold", &assign_SeriesCompensator_varistorVoltageThreshold); + assign_map.emplace("SeriesCompensator.x", &assign_SeriesCompensator_x); + assign_map.emplace("SeriesCompensator.x0", &assign_SeriesCompensator_x0); } void SeriesCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void SeriesCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SeriesCompensator.r", &get_SeriesCompensator_r); - get_map.emplace("cim:SeriesCompensator.r0", &get_SeriesCompensator_r0); - get_map.emplace("cim:SeriesCompensator.varistorPresent", &get_SeriesCompensator_varistorPresent); - get_map.emplace("cim:SeriesCompensator.varistorRatedCurrent", &get_SeriesCompensator_varistorRatedCurrent); - get_map.emplace("cim:SeriesCompensator.varistorVoltageThreshold", &get_SeriesCompensator_varistorVoltageThreshold); - get_map.emplace("cim:SeriesCompensator.x", &get_SeriesCompensator_x); - get_map.emplace("cim:SeriesCompensator.x0", &get_SeriesCompensator_x0); + get_map.emplace("SeriesCompensator.r", &get_SeriesCompensator_r); + get_map.emplace("SeriesCompensator.r0", &get_SeriesCompensator_r0); + get_map.emplace("SeriesCompensator.varistorPresent", &get_SeriesCompensator_varistorPresent); + get_map.emplace("SeriesCompensator.varistorRatedCurrent", &get_SeriesCompensator_varistorRatedCurrent); + get_map.emplace("SeriesCompensator.varistorVoltageThreshold", &get_SeriesCompensator_varistorVoltageThreshold); + get_map.emplace("SeriesCompensator.x", &get_SeriesCompensator_x); + get_map.emplace("SeriesCompensator.x0", &get_SeriesCompensator_x0); } void SeriesCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void SeriesCompensator::addEnumGetFnsToMap(std::map& ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool SeriesCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SeriesCompensator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SeriesCompensator::declare() { return BaseClassDefiner(SeriesCompensator::addConstructToMap, SeriesCompensator::addPrimitiveAssignFnsToMap, SeriesCompensator::addClassAssignFnsToMap, SeriesCompensator::debugName); } +std::map SeriesCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SeriesCompensator_factory() diff --git a/CGMES_2.4.13_18DEC2013/SeriesCompensator.hpp b/CGMES_2.4.13_18DEC2013/SeriesCompensator.hpp index 8d77b514a..861e5a359 100644 --- a/CGMES_2.4.13_18DEC2013/SeriesCompensator.hpp +++ b/CGMES_2.4.13_18DEC2013/SeriesCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" #include "Reactance.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SeriesCompensator_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SetPoint.cpp b/CGMES_2.4.13_18DEC2013/SetPoint.cpp index 5282827e5..bf0e4e778 100644 --- a/CGMES_2.4.13_18DEC2013/SetPoint.cpp +++ b/CGMES_2.4.13_18DEC2013/SetPoint.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SetPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SetPoint.normalValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SetPoint.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SetPoint::SetPoint() {} SetPoint::~SetPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& SetPoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SetPoint::getClassNamespaceUrl() const { - { "cim:SetPoint.normalValue", { CGMESProfile::EQ, } }, - { "cim:SetPoint.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SetPoint::getPossibleProfilesForClass() const +const std::string& SetPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SetPoint::getPossibleProfilesForAttributes() const +const std::list& SetPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AnalogControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SetPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SetPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SetPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SetPoint_normalValue(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* SetPoint::debugString() const void SetPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SetPoint", &SetPoint_factory); + factory_map.emplace("SetPoint", &SetPoint_factory); } void SetPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SetPoint.normalValue", &assign_SetPoint_normalValue); - assign_map.emplace("cim:SetPoint.value", &assign_SetPoint_value); + assign_map.emplace("SetPoint.normalValue", &assign_SetPoint_normalValue); + assign_map.emplace("SetPoint.value", &assign_SetPoint_value); } void SetPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void SetPoint::addClassAssignFnsToMap(std::unordered_map& get_map) const { AnalogControl::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SetPoint.normalValue", &get_SetPoint_normalValue); - get_map.emplace("cim:SetPoint.value", &get_SetPoint_value); + get_map.emplace("SetPoint.normalValue", &get_SetPoint_normalValue); + get_map.emplace("SetPoint.value", &get_SetPoint_value); } void SetPoint::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void SetPoint::addEnumGetFnsToMap(std::map& get_map) AnalogControl::addEnumGetFnsToMap(get_map); } +bool SetPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SetPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SetPoint::declare() { return BaseClassDefiner(SetPoint::addConstructToMap, SetPoint::addPrimitiveAssignFnsToMap, SetPoint::addClassAssignFnsToMap, SetPoint::debugName); } +std::map SetPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AnalogControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SetPoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/SetPoint.hpp b/CGMES_2.4.13_18DEC2013/SetPoint.hpp index 373731845..30b3a12a0 100644 --- a/CGMES_2.4.13_18DEC2013/SetPoint.hpp +++ b/CGMES_2.4.13_18DEC2013/SetPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AnalogControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SetPoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ShuntCompensator.cpp b/CGMES_2.4.13_18DEC2013/ShuntCompensator.cpp index 53878ebfa..57cca14f2 100644 --- a/CGMES_2.4.13_18DEC2013/ShuntCompensator.cpp +++ b/CGMES_2.4.13_18DEC2013/ShuntCompensator.cpp @@ -12,43 +12,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ShuntCompensator.SvShuntCompensatorSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ShuntCompensator.aVRDelay", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.grounded", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.maximumSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.nomU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.normalSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.sections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ShuntCompensator.switchOnCount", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.switchOnDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.voltageSensitivity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ShuntCompensator::ShuntCompensator() : SvShuntCompensatorSections(nullptr) {} ShuntCompensator::~ShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& ShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ShuntCompensator::getClassNamespaceUrl() const { - { "cim:ShuntCompensator.SvShuntCompensatorSections", { CGMESProfile::SV, } }, - { "cim:ShuntCompensator.aVRDelay", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.grounded", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.maximumSections", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.nomU", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.normalSections", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.sections", { CGMESProfile::SSH, } }, - { "cim:ShuntCompensator.switchOnCount", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.switchOnDate", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.voltageSensitivity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ShuntCompensator::getPossibleProfilesForClass() const +const std::string& ShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& ShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvShuntCompensatorSections_ShuntCompensator(BaseClass*, BaseClass*); @@ -338,39 +370,39 @@ const char* ShuntCompensator::debugString() const void ShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ShuntCompensator", &ShuntCompensator_factory); + factory_map.emplace("ShuntCompensator", &ShuntCompensator_factory); } void ShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ShuntCompensator.aVRDelay", &assign_ShuntCompensator_aVRDelay); - assign_map.emplace("cim:ShuntCompensator.grounded", &assign_ShuntCompensator_grounded); - assign_map.emplace("cim:ShuntCompensator.maximumSections", &assign_ShuntCompensator_maximumSections); - assign_map.emplace("cim:ShuntCompensator.nomU", &assign_ShuntCompensator_nomU); - assign_map.emplace("cim:ShuntCompensator.normalSections", &assign_ShuntCompensator_normalSections); - assign_map.emplace("cim:ShuntCompensator.sections", &assign_ShuntCompensator_sections); - assign_map.emplace("cim:ShuntCompensator.switchOnCount", &assign_ShuntCompensator_switchOnCount); - assign_map.emplace("cim:ShuntCompensator.switchOnDate", &assign_ShuntCompensator_switchOnDate); - assign_map.emplace("cim:ShuntCompensator.voltageSensitivity", &assign_ShuntCompensator_voltageSensitivity); + assign_map.emplace("ShuntCompensator.aVRDelay", &assign_ShuntCompensator_aVRDelay); + assign_map.emplace("ShuntCompensator.grounded", &assign_ShuntCompensator_grounded); + assign_map.emplace("ShuntCompensator.maximumSections", &assign_ShuntCompensator_maximumSections); + assign_map.emplace("ShuntCompensator.nomU", &assign_ShuntCompensator_nomU); + assign_map.emplace("ShuntCompensator.normalSections", &assign_ShuntCompensator_normalSections); + assign_map.emplace("ShuntCompensator.sections", &assign_ShuntCompensator_sections); + assign_map.emplace("ShuntCompensator.switchOnCount", &assign_ShuntCompensator_switchOnCount); + assign_map.emplace("ShuntCompensator.switchOnDate", &assign_ShuntCompensator_switchOnDate); + assign_map.emplace("ShuntCompensator.voltageSensitivity", &assign_ShuntCompensator_voltageSensitivity); } void ShuntCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ShuntCompensator.SvShuntCompensatorSections", &assign_ShuntCompensator_SvShuntCompensatorSections); + assign_map.emplace("ShuntCompensator.SvShuntCompensatorSections", &assign_ShuntCompensator_SvShuntCompensatorSections); } void ShuntCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ShuntCompensator.aVRDelay", &get_ShuntCompensator_aVRDelay); - get_map.emplace("cim:ShuntCompensator.grounded", &get_ShuntCompensator_grounded); - get_map.emplace("cim:ShuntCompensator.maximumSections", &get_ShuntCompensator_maximumSections); - get_map.emplace("cim:ShuntCompensator.nomU", &get_ShuntCompensator_nomU); - get_map.emplace("cim:ShuntCompensator.normalSections", &get_ShuntCompensator_normalSections); - get_map.emplace("cim:ShuntCompensator.sections", &get_ShuntCompensator_sections); - get_map.emplace("cim:ShuntCompensator.switchOnCount", &get_ShuntCompensator_switchOnCount); - get_map.emplace("cim:ShuntCompensator.switchOnDate", &get_ShuntCompensator_switchOnDate); - get_map.emplace("cim:ShuntCompensator.voltageSensitivity", &get_ShuntCompensator_voltageSensitivity); + get_map.emplace("ShuntCompensator.aVRDelay", &get_ShuntCompensator_aVRDelay); + get_map.emplace("ShuntCompensator.grounded", &get_ShuntCompensator_grounded); + get_map.emplace("ShuntCompensator.maximumSections", &get_ShuntCompensator_maximumSections); + get_map.emplace("ShuntCompensator.nomU", &get_ShuntCompensator_nomU); + get_map.emplace("ShuntCompensator.normalSections", &get_ShuntCompensator_normalSections); + get_map.emplace("ShuntCompensator.sections", &get_ShuntCompensator_sections); + get_map.emplace("ShuntCompensator.switchOnCount", &get_ShuntCompensator_switchOnCount); + get_map.emplace("ShuntCompensator.switchOnDate", &get_ShuntCompensator_switchOnDate); + get_map.emplace("ShuntCompensator.voltageSensitivity", &get_ShuntCompensator_voltageSensitivity); } void ShuntCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -383,11 +415,25 @@ void ShuntCompensator::addEnumGetFnsToMap(std::map& g RegulatingCondEq::addEnumGetFnsToMap(get_map); } +bool ShuntCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ShuntCompensator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ShuntCompensator::declare() { return BaseClassDefiner(ShuntCompensator::addConstructToMap, ShuntCompensator::addPrimitiveAssignFnsToMap, ShuntCompensator::addClassAssignFnsToMap, ShuntCompensator::debugName); } +std::map ShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ShuntCompensator_factory() diff --git a/CGMES_2.4.13_18DEC2013/ShuntCompensator.hpp b/CGMES_2.4.13_18DEC2013/ShuntCompensator.hpp index 96927b2f6..80400623c 100644 --- a/CGMES_2.4.13_18DEC2013/ShuntCompensator.hpp +++ b/CGMES_2.4.13_18DEC2013/ShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "DateTime.hpp" #include "Integer.hpp" @@ -65,8 +66,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -74,7 +82,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ShuntCompensator_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SolarGeneratingUnit.cpp b/CGMES_2.4.13_18DEC2013/SolarGeneratingUnit.cpp index 0887d1cbb..4a1e14b5f 100644 --- a/CGMES_2.4.13_18DEC2013/SolarGeneratingUnit.cpp +++ b/CGMES_2.4.13_18DEC2013/SolarGeneratingUnit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SolarGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + SolarGeneratingUnit::SolarGeneratingUnit() {} SolarGeneratingUnit::~SolarGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& SolarGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SolarGeneratingUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SolarGeneratingUnit::getPossibleProfilesForClass() const +const std::string& SolarGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SolarGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& SolarGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SolarGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SolarGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SolarGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char SolarGeneratingUnit::debugName[] = "SolarGeneratingUnit"; @@ -47,7 +79,7 @@ const char* SolarGeneratingUnit::debugString() const void SolarGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SolarGeneratingUnit", &SolarGeneratingUnit_factory); + factory_map.emplace("SolarGeneratingUnit", &SolarGeneratingUnit_factory); } void SolarGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void SolarGeneratingUnit::addEnumGetFnsToMap(std::map GeneratingUnit::addEnumGetFnsToMap(get_map); } +bool SolarGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SolarGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SolarGeneratingUnit::declare() { return BaseClassDefiner(SolarGeneratingUnit::addConstructToMap, SolarGeneratingUnit::addPrimitiveAssignFnsToMap, SolarGeneratingUnit::addClassAssignFnsToMap, SolarGeneratingUnit::debugName); } +std::map SolarGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SolarGeneratingUnit_factory() diff --git a/CGMES_2.4.13_18DEC2013/SolarGeneratingUnit.hpp b/CGMES_2.4.13_18DEC2013/SolarGeneratingUnit.hpp index 30f338f85..3fb135e04 100644 --- a/CGMES_2.4.13_18DEC2013/SolarGeneratingUnit.hpp +++ b/CGMES_2.4.13_18DEC2013/SolarGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SolarGeneratingUnit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/StateVariablesVersion.cpp b/CGMES_2.4.13_18DEC2013/StateVariablesVersion.cpp index f123f86d6..cf235f5a6 100644 --- a/CGMES_2.4.13_18DEC2013/StateVariablesVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/StateVariablesVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StateVariablesVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StateVariablesVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + StateVariablesVersion::StateVariablesVersion() {} StateVariablesVersion::~StateVariablesVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& StateVariablesVersion::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StateVariablesVersion::getClassNamespaceUrl() const { - { "cim:StateVariablesVersion.baseUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.baseURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.date", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.differenceModelURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.entsoeUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.entsoeURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.modelDescriptionURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.namespaceRDF", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.namespaceUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.shortName", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StateVariablesVersion::getPossibleProfilesForClass() const +const std::string& StateVariablesVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StateVariablesVersion::getPossibleProfilesForAttributes() const +const std::list& StateVariablesVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StateVariablesVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StateVariablesVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StateVariablesVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StateVariablesVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* StateVariablesVersion::debugString() const void StateVariablesVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StateVariablesVersion", &StateVariablesVersion_factory); + factory_map.emplace("StateVariablesVersion", &StateVariablesVersion_factory); } void StateVariablesVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StateVariablesVersion.baseUML", &assign_StateVariablesVersion_baseUML); - assign_map.emplace("cim:StateVariablesVersion.baseURI", &assign_StateVariablesVersion_baseURI); - assign_map.emplace("cim:StateVariablesVersion.date", &assign_StateVariablesVersion_date); - assign_map.emplace("cim:StateVariablesVersion.differenceModelURI", &assign_StateVariablesVersion_differenceModelURI); - assign_map.emplace("cim:StateVariablesVersion.entsoeUML", &assign_StateVariablesVersion_entsoeUML); - assign_map.emplace("cim:StateVariablesVersion.entsoeURI", &assign_StateVariablesVersion_entsoeURI); - assign_map.emplace("cim:StateVariablesVersion.modelDescriptionURI", &assign_StateVariablesVersion_modelDescriptionURI); - assign_map.emplace("cim:StateVariablesVersion.namespaceRDF", &assign_StateVariablesVersion_namespaceRDF); - assign_map.emplace("cim:StateVariablesVersion.namespaceUML", &assign_StateVariablesVersion_namespaceUML); - assign_map.emplace("cim:StateVariablesVersion.shortName", &assign_StateVariablesVersion_shortName); + assign_map.emplace("StateVariablesVersion.baseUML", &assign_StateVariablesVersion_baseUML); + assign_map.emplace("StateVariablesVersion.baseURI", &assign_StateVariablesVersion_baseURI); + assign_map.emplace("StateVariablesVersion.date", &assign_StateVariablesVersion_date); + assign_map.emplace("StateVariablesVersion.differenceModelURI", &assign_StateVariablesVersion_differenceModelURI); + assign_map.emplace("StateVariablesVersion.entsoeUML", &assign_StateVariablesVersion_entsoeUML); + assign_map.emplace("StateVariablesVersion.entsoeURI", &assign_StateVariablesVersion_entsoeURI); + assign_map.emplace("StateVariablesVersion.modelDescriptionURI", &assign_StateVariablesVersion_modelDescriptionURI); + assign_map.emplace("StateVariablesVersion.namespaceRDF", &assign_StateVariablesVersion_namespaceRDF); + assign_map.emplace("StateVariablesVersion.namespaceUML", &assign_StateVariablesVersion_namespaceUML); + assign_map.emplace("StateVariablesVersion.shortName", &assign_StateVariablesVersion_shortName); } void StateVariablesVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void StateVariablesVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StateVariablesVersion.baseUML", &get_StateVariablesVersion_baseUML); - get_map.emplace("cim:StateVariablesVersion.baseURI", &get_StateVariablesVersion_baseURI); - get_map.emplace("cim:StateVariablesVersion.date", &get_StateVariablesVersion_date); - get_map.emplace("cim:StateVariablesVersion.differenceModelURI", &get_StateVariablesVersion_differenceModelURI); - get_map.emplace("cim:StateVariablesVersion.entsoeUML", &get_StateVariablesVersion_entsoeUML); - get_map.emplace("cim:StateVariablesVersion.entsoeURI", &get_StateVariablesVersion_entsoeURI); - get_map.emplace("cim:StateVariablesVersion.modelDescriptionURI", &get_StateVariablesVersion_modelDescriptionURI); - get_map.emplace("cim:StateVariablesVersion.namespaceRDF", &get_StateVariablesVersion_namespaceRDF); - get_map.emplace("cim:StateVariablesVersion.namespaceUML", &get_StateVariablesVersion_namespaceUML); - get_map.emplace("cim:StateVariablesVersion.shortName", &get_StateVariablesVersion_shortName); + get_map.emplace("StateVariablesVersion.baseUML", &get_StateVariablesVersion_baseUML); + get_map.emplace("StateVariablesVersion.baseURI", &get_StateVariablesVersion_baseURI); + get_map.emplace("StateVariablesVersion.date", &get_StateVariablesVersion_date); + get_map.emplace("StateVariablesVersion.differenceModelURI", &get_StateVariablesVersion_differenceModelURI); + get_map.emplace("StateVariablesVersion.entsoeUML", &get_StateVariablesVersion_entsoeUML); + get_map.emplace("StateVariablesVersion.entsoeURI", &get_StateVariablesVersion_entsoeURI); + get_map.emplace("StateVariablesVersion.modelDescriptionURI", &get_StateVariablesVersion_modelDescriptionURI); + get_map.emplace("StateVariablesVersion.namespaceRDF", &get_StateVariablesVersion_namespaceRDF); + get_map.emplace("StateVariablesVersion.namespaceUML", &get_StateVariablesVersion_namespaceUML); + get_map.emplace("StateVariablesVersion.shortName", &get_StateVariablesVersion_shortName); } void StateVariablesVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void StateVariablesVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner StateVariablesVersion::declare() { return BaseClassDefiner(StateVariablesVersion::addConstructToMap, StateVariablesVersion::addPrimitiveAssignFnsToMap, StateVariablesVersion::addClassAssignFnsToMap, StateVariablesVersion::debugName); } +std::map StateVariablesVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StateVariablesVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/StateVariablesVersion.hpp b/CGMES_2.4.13_18DEC2013/StateVariablesVersion.hpp index d6263d5d7..b665e46c1 100644 --- a/CGMES_2.4.13_18DEC2013/StateVariablesVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/StateVariablesVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StateVariablesVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/StaticVarCompensator.cpp b/CGMES_2.4.13_18DEC2013/StaticVarCompensator.cpp index ae413174a..7061f39e2 100644 --- a/CGMES_2.4.13_18DEC2013/StaticVarCompensator.cpp +++ b/CGMES_2.4.13_18DEC2013/StaticVarCompensator.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StaticVarCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StaticVarCompensator.capacitiveRating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.inductiveRating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "StaticVarCompensator.sVCControlMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.slope", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.voltageSetPoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StaticVarCompensator::StaticVarCompensator() {} StaticVarCompensator::~StaticVarCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& StaticVarCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StaticVarCompensator::getClassNamespaceUrl() const { - { "cim:StaticVarCompensator.capacitiveRating", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.inductiveRating", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.q", { CGMESProfile::SSH, } }, - { "cim:StaticVarCompensator.sVCControlMode", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.slope", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.voltageSetPoint", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StaticVarCompensator::getPossibleProfilesForClass() const +const std::string& StaticVarCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StaticVarCompensator::getPossibleProfilesForAttributes() const +const std::list& StaticVarCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StaticVarCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StaticVarCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StaticVarCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StaticVarCompensator_capacitiveRating(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -227,17 +259,17 @@ const char* StaticVarCompensator::debugString() const void StaticVarCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StaticVarCompensator", &StaticVarCompensator_factory); + factory_map.emplace("StaticVarCompensator", &StaticVarCompensator_factory); } void StaticVarCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StaticVarCompensator.capacitiveRating", &assign_StaticVarCompensator_capacitiveRating); - assign_map.emplace("cim:StaticVarCompensator.inductiveRating", &assign_StaticVarCompensator_inductiveRating); - assign_map.emplace("cim:StaticVarCompensator.q", &assign_StaticVarCompensator_q); - assign_map.emplace("cim:StaticVarCompensator.sVCControlMode", &assign_StaticVarCompensator_sVCControlMode); - assign_map.emplace("cim:StaticVarCompensator.slope", &assign_StaticVarCompensator_slope); - assign_map.emplace("cim:StaticVarCompensator.voltageSetPoint", &assign_StaticVarCompensator_voltageSetPoint); + assign_map.emplace("StaticVarCompensator.capacitiveRating", &assign_StaticVarCompensator_capacitiveRating); + assign_map.emplace("StaticVarCompensator.inductiveRating", &assign_StaticVarCompensator_inductiveRating); + assign_map.emplace("StaticVarCompensator.q", &assign_StaticVarCompensator_q); + assign_map.emplace("StaticVarCompensator.sVCControlMode", &assign_StaticVarCompensator_sVCControlMode); + assign_map.emplace("StaticVarCompensator.slope", &assign_StaticVarCompensator_slope); + assign_map.emplace("StaticVarCompensator.voltageSetPoint", &assign_StaticVarCompensator_voltageSetPoint); } void StaticVarCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -247,11 +279,11 @@ void StaticVarCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensator.capacitiveRating", &get_StaticVarCompensator_capacitiveRating); - get_map.emplace("cim:StaticVarCompensator.inductiveRating", &get_StaticVarCompensator_inductiveRating); - get_map.emplace("cim:StaticVarCompensator.q", &get_StaticVarCompensator_q); - get_map.emplace("cim:StaticVarCompensator.slope", &get_StaticVarCompensator_slope); - get_map.emplace("cim:StaticVarCompensator.voltageSetPoint", &get_StaticVarCompensator_voltageSetPoint); + get_map.emplace("StaticVarCompensator.capacitiveRating", &get_StaticVarCompensator_capacitiveRating); + get_map.emplace("StaticVarCompensator.inductiveRating", &get_StaticVarCompensator_inductiveRating); + get_map.emplace("StaticVarCompensator.q", &get_StaticVarCompensator_q); + get_map.emplace("StaticVarCompensator.slope", &get_StaticVarCompensator_slope); + get_map.emplace("StaticVarCompensator.voltageSetPoint", &get_StaticVarCompensator_voltageSetPoint); } void StaticVarCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -262,7 +294,13 @@ void StaticVarCompensator::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensator.sVCControlMode", &get_StaticVarCompensator_sVCControlMode); + get_map.emplace("StaticVarCompensator.sVCControlMode", &get_StaticVarCompensator_sVCControlMode); +} + +bool StaticVarCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StaticVarCompensator" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner StaticVarCompensator::declare() @@ -270,6 +308,14 @@ const BaseClassDefiner StaticVarCompensator::declare() return BaseClassDefiner(StaticVarCompensator::addConstructToMap, StaticVarCompensator::addPrimitiveAssignFnsToMap, StaticVarCompensator::addClassAssignFnsToMap, StaticVarCompensator::debugName); } +std::map StaticVarCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StaticVarCompensator_factory() diff --git a/CGMES_2.4.13_18DEC2013/StaticVarCompensator.hpp b/CGMES_2.4.13_18DEC2013/StaticVarCompensator.hpp index b6770d818..5be986cb6 100644 --- a/CGMES_2.4.13_18DEC2013/StaticVarCompensator.hpp +++ b/CGMES_2.4.13_18DEC2013/StaticVarCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" #include "ReactivePower.hpp" #include "SVCControlMode.hpp" @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StaticVarCompensator_factory(); diff --git a/CGMES_2.4.13_18DEC2013/StationSupply.cpp b/CGMES_2.4.13_18DEC2013/StationSupply.cpp index 6a252d26e..7f82e237e 100644 --- a/CGMES_2.4.13_18DEC2013/StationSupply.cpp +++ b/CGMES_2.4.13_18DEC2013/StationSupply.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StationSupply(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + StationSupply::StationSupply() {} StationSupply::~StationSupply() {} -static const std::list PossibleProfilesForClass = +const std::list& StationSupply::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StationSupply::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StationSupply::getPossibleProfilesForClass() const +const std::string& StationSupply::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StationSupply::getPossibleProfilesForAttributes() const +const std::list& StationSupply::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StationSupply::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StationSupply::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StationSupply::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char StationSupply::debugName[] = "StationSupply"; @@ -46,7 +78,7 @@ const char* StationSupply::debugString() const void StationSupply::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StationSupply", &StationSupply_factory); + factory_map.emplace("StationSupply", &StationSupply_factory); } void StationSupply::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void StationSupply::addEnumGetFnsToMap(std::map& get_ EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool StationSupply::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StationSupply" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StationSupply::declare() { return BaseClassDefiner(StationSupply::addConstructToMap, StationSupply::addPrimitiveAssignFnsToMap, StationSupply::addClassAssignFnsToMap, StationSupply::debugName); } +std::map StationSupply::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StationSupply_factory() diff --git a/CGMES_2.4.13_18DEC2013/StationSupply.hpp b/CGMES_2.4.13_18DEC2013/StationSupply.hpp index f95e7ce94..7c688152c 100644 --- a/CGMES_2.4.13_18DEC2013/StationSupply.hpp +++ b/CGMES_2.4.13_18DEC2013/StationSupply.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StationSupply_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SteadyStateHypothesisVersion.cpp b/CGMES_2.4.13_18DEC2013/SteadyStateHypothesisVersion.cpp index 3a521cfe8..cd79b7af1 100644 --- a/CGMES_2.4.13_18DEC2013/SteadyStateHypothesisVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/SteadyStateHypothesisVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SteadyStateHypothesisVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::SSH, + }, + CGMESProfile::SSH + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SteadyStateHypothesisVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + SteadyStateHypothesisVersion::SteadyStateHypothesisVersion() {} SteadyStateHypothesisVersion::~SteadyStateHypothesisVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& SteadyStateHypothesisVersion::getAttributeNames() const { - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SteadyStateHypothesisVersion::getClassNamespaceUrl() const { - { "cim:SteadyStateHypothesisVersion.baseUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.baseURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.date", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.differenceModelURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.entsoeUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.entsoeURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.modelDescriptionURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.namespaceRDF", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.namespaceUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.shortName", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SteadyStateHypothesisVersion::getPossibleProfilesForClass() const +const std::string& SteadyStateHypothesisVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SteadyStateHypothesisVersion::getPossibleProfilesForAttributes() const +const std::list& SteadyStateHypothesisVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SteadyStateHypothesisVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SteadyStateHypothesisVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SteadyStateHypothesisVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SteadyStateHypothesisVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* SteadyStateHypothesisVersion::debugString() const void SteadyStateHypothesisVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SteadyStateHypothesisVersion", &SteadyStateHypothesisVersion_factory); + factory_map.emplace("SteadyStateHypothesisVersion", &SteadyStateHypothesisVersion_factory); } void SteadyStateHypothesisVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SteadyStateHypothesisVersion.baseUML", &assign_SteadyStateHypothesisVersion_baseUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.baseURI", &assign_SteadyStateHypothesisVersion_baseURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.date", &assign_SteadyStateHypothesisVersion_date); - assign_map.emplace("cim:SteadyStateHypothesisVersion.differenceModelURI", &assign_SteadyStateHypothesisVersion_differenceModelURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.entsoeUML", &assign_SteadyStateHypothesisVersion_entsoeUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.entsoeURI", &assign_SteadyStateHypothesisVersion_entsoeURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.modelDescriptionURI", &assign_SteadyStateHypothesisVersion_modelDescriptionURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.namespaceRDF", &assign_SteadyStateHypothesisVersion_namespaceRDF); - assign_map.emplace("cim:SteadyStateHypothesisVersion.namespaceUML", &assign_SteadyStateHypothesisVersion_namespaceUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.shortName", &assign_SteadyStateHypothesisVersion_shortName); + assign_map.emplace("SteadyStateHypothesisVersion.baseUML", &assign_SteadyStateHypothesisVersion_baseUML); + assign_map.emplace("SteadyStateHypothesisVersion.baseURI", &assign_SteadyStateHypothesisVersion_baseURI); + assign_map.emplace("SteadyStateHypothesisVersion.date", &assign_SteadyStateHypothesisVersion_date); + assign_map.emplace("SteadyStateHypothesisVersion.differenceModelURI", &assign_SteadyStateHypothesisVersion_differenceModelURI); + assign_map.emplace("SteadyStateHypothesisVersion.entsoeUML", &assign_SteadyStateHypothesisVersion_entsoeUML); + assign_map.emplace("SteadyStateHypothesisVersion.entsoeURI", &assign_SteadyStateHypothesisVersion_entsoeURI); + assign_map.emplace("SteadyStateHypothesisVersion.modelDescriptionURI", &assign_SteadyStateHypothesisVersion_modelDescriptionURI); + assign_map.emplace("SteadyStateHypothesisVersion.namespaceRDF", &assign_SteadyStateHypothesisVersion_namespaceRDF); + assign_map.emplace("SteadyStateHypothesisVersion.namespaceUML", &assign_SteadyStateHypothesisVersion_namespaceUML); + assign_map.emplace("SteadyStateHypothesisVersion.shortName", &assign_SteadyStateHypothesisVersion_shortName); } void SteadyStateHypothesisVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void SteadyStateHypothesisVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SteadyStateHypothesisVersion.baseUML", &get_SteadyStateHypothesisVersion_baseUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.baseURI", &get_SteadyStateHypothesisVersion_baseURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.date", &get_SteadyStateHypothesisVersion_date); - get_map.emplace("cim:SteadyStateHypothesisVersion.differenceModelURI", &get_SteadyStateHypothesisVersion_differenceModelURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.entsoeUML", &get_SteadyStateHypothesisVersion_entsoeUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.entsoeURI", &get_SteadyStateHypothesisVersion_entsoeURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.modelDescriptionURI", &get_SteadyStateHypothesisVersion_modelDescriptionURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.namespaceRDF", &get_SteadyStateHypothesisVersion_namespaceRDF); - get_map.emplace("cim:SteadyStateHypothesisVersion.namespaceUML", &get_SteadyStateHypothesisVersion_namespaceUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.shortName", &get_SteadyStateHypothesisVersion_shortName); + get_map.emplace("SteadyStateHypothesisVersion.baseUML", &get_SteadyStateHypothesisVersion_baseUML); + get_map.emplace("SteadyStateHypothesisVersion.baseURI", &get_SteadyStateHypothesisVersion_baseURI); + get_map.emplace("SteadyStateHypothesisVersion.date", &get_SteadyStateHypothesisVersion_date); + get_map.emplace("SteadyStateHypothesisVersion.differenceModelURI", &get_SteadyStateHypothesisVersion_differenceModelURI); + get_map.emplace("SteadyStateHypothesisVersion.entsoeUML", &get_SteadyStateHypothesisVersion_entsoeUML); + get_map.emplace("SteadyStateHypothesisVersion.entsoeURI", &get_SteadyStateHypothesisVersion_entsoeURI); + get_map.emplace("SteadyStateHypothesisVersion.modelDescriptionURI", &get_SteadyStateHypothesisVersion_modelDescriptionURI); + get_map.emplace("SteadyStateHypothesisVersion.namespaceRDF", &get_SteadyStateHypothesisVersion_namespaceRDF); + get_map.emplace("SteadyStateHypothesisVersion.namespaceUML", &get_SteadyStateHypothesisVersion_namespaceUML); + get_map.emplace("SteadyStateHypothesisVersion.shortName", &get_SteadyStateHypothesisVersion_shortName); } void SteadyStateHypothesisVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void SteadyStateHypothesisVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SteadyStateHypothesisVersion::declare() { return BaseClassDefiner(SteadyStateHypothesisVersion::addConstructToMap, SteadyStateHypothesisVersion::addPrimitiveAssignFnsToMap, SteadyStateHypothesisVersion::addClassAssignFnsToMap, SteadyStateHypothesisVersion::debugName); } +std::map SteadyStateHypothesisVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SteadyStateHypothesisVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/SteadyStateHypothesisVersion.hpp b/CGMES_2.4.13_18DEC2013/SteadyStateHypothesisVersion.hpp index a856a19e7..3ec922a1b 100644 --- a/CGMES_2.4.13_18DEC2013/SteadyStateHypothesisVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/SteadyStateHypothesisVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SteadyStateHypothesisVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/StringMeasurement.cpp b/CGMES_2.4.13_18DEC2013/StringMeasurement.cpp index ca7025e57..7af90f7c4 100644 --- a/CGMES_2.4.13_18DEC2013/StringMeasurement.cpp +++ b/CGMES_2.4.13_18DEC2013/StringMeasurement.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StringMeasurement(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StringMeasurement.StringMeasurementValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StringMeasurement::StringMeasurement() {} StringMeasurement::~StringMeasurement() {} -static const std::list PossibleProfilesForClass = +const std::list& StringMeasurement::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StringMeasurement::getClassNamespaceUrl() const { - { "cim:StringMeasurement.StringMeasurementValues", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StringMeasurement::getPossibleProfilesForClass() const +const std::string& StringMeasurement::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StringMeasurement::getPossibleProfilesForAttributes() const +const std::list& StringMeasurement::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StringMeasurement::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StringMeasurement::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StringMeasurement::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StringMeasurementValue_StringMeasurement(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* StringMeasurement::debugString() const void StringMeasurement::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StringMeasurement", &StringMeasurement_factory); + factory_map.emplace("StringMeasurement", &StringMeasurement_factory); } void StringMeasurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void StringMeasurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurement.StringMeasurementValues", &assign_StringMeasurement_StringMeasurementValues); + assign_map.emplace("StringMeasurement.StringMeasurementValues", &assign_StringMeasurement_StringMeasurementValues); } void StringMeasurement::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void StringMeasurement::addEnumGetFnsToMap(std::map& Measurement::addEnumGetFnsToMap(get_map); } +bool StringMeasurement::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StringMeasurement" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StringMeasurement::declare() { return BaseClassDefiner(StringMeasurement::addConstructToMap, StringMeasurement::addPrimitiveAssignFnsToMap, StringMeasurement::addClassAssignFnsToMap, StringMeasurement::debugName); } +std::map StringMeasurement::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StringMeasurement_factory() diff --git a/CGMES_2.4.13_18DEC2013/StringMeasurement.hpp b/CGMES_2.4.13_18DEC2013/StringMeasurement.hpp index 21841ff08..baf309b1a 100644 --- a/CGMES_2.4.13_18DEC2013/StringMeasurement.hpp +++ b/CGMES_2.4.13_18DEC2013/StringMeasurement.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StringMeasurement_factory(); diff --git a/CGMES_2.4.13_18DEC2013/StringMeasurementValue.cpp b/CGMES_2.4.13_18DEC2013/StringMeasurementValue.cpp index 217c82c6c..6cd70b363 100644 --- a/CGMES_2.4.13_18DEC2013/StringMeasurementValue.cpp +++ b/CGMES_2.4.13_18DEC2013/StringMeasurementValue.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StringMeasurementValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StringMeasurementValue.StringMeasurement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StringMeasurementValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StringMeasurementValue::StringMeasurementValue() : StringMeasurement(nullptr) {} StringMeasurementValue::~StringMeasurementValue() {} -static const std::list PossibleProfilesForClass = +const std::list& StringMeasurementValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StringMeasurementValue::getClassNamespaceUrl() const { - { "cim:StringMeasurementValue.StringMeasurement", { CGMESProfile::EQ, } }, - { "cim:StringMeasurementValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StringMeasurementValue::getPossibleProfilesForClass() const +const std::string& StringMeasurementValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StringMeasurementValue::getPossibleProfilesForAttributes() const +const std::list& StringMeasurementValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StringMeasurementValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StringMeasurementValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StringMeasurementValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StringMeasurement_StringMeasurementValues(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* StringMeasurementValue::debugString() const void StringMeasurementValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StringMeasurementValue", &StringMeasurementValue_factory); + factory_map.emplace("StringMeasurementValue", &StringMeasurementValue_factory); } void StringMeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurementValue.value", &assign_StringMeasurementValue_value); + assign_map.emplace("StringMeasurementValue.value", &assign_StringMeasurementValue_value); } void StringMeasurementValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurementValue.StringMeasurement", &assign_StringMeasurementValue_StringMeasurement); + assign_map.emplace("StringMeasurementValue.StringMeasurement", &assign_StringMeasurementValue_StringMeasurement); } void StringMeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StringMeasurementValue.value", &get_StringMeasurementValue_value); + get_map.emplace("StringMeasurementValue.value", &get_StringMeasurementValue_value); } void StringMeasurementValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:StringMeasurementValue.StringMeasurement", &get_StringMeasurementValue_StringMeasurement); + get_map.emplace("StringMeasurementValue.StringMeasurement", &get_StringMeasurementValue_StringMeasurement); } void StringMeasurementValue::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void StringMeasurementValue::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner StringMeasurementValue::declare() { return BaseClassDefiner(StringMeasurementValue::addConstructToMap, StringMeasurementValue::addPrimitiveAssignFnsToMap, StringMeasurementValue::addClassAssignFnsToMap, StringMeasurementValue::debugName); } +std::map StringMeasurementValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StringMeasurementValue_factory() diff --git a/CGMES_2.4.13_18DEC2013/StringMeasurementValue.hpp b/CGMES_2.4.13_18DEC2013/StringMeasurementValue.hpp index 1207671b5..ba0cd81e3 100644 --- a/CGMES_2.4.13_18DEC2013/StringMeasurementValue.hpp +++ b/CGMES_2.4.13_18DEC2013/StringMeasurementValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StringMeasurementValue_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SubGeographicalRegion.cpp b/CGMES_2.4.13_18DEC2013/SubGeographicalRegion.cpp index 2bc1a8c1b..0e6392751 100644 --- a/CGMES_2.4.13_18DEC2013/SubGeographicalRegion.cpp +++ b/CGMES_2.4.13_18DEC2013/SubGeographicalRegion.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SubGeographicalRegion(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SubGeographicalRegion.DCLines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Lines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Substations", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SubGeographicalRegion::SubGeographicalRegion() : Region(nullptr) {} SubGeographicalRegion::~SubGeographicalRegion() {} -static const std::list PossibleProfilesForClass = +const std::list& SubGeographicalRegion::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SubGeographicalRegion::getClassNamespaceUrl() const { - { "cim:SubGeographicalRegion.DCLines", { CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Lines", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Region", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Substations", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SubGeographicalRegion::getPossibleProfilesForClass() const +const std::string& SubGeographicalRegion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SubGeographicalRegion::getPossibleProfilesForAttributes() const +const std::list& SubGeographicalRegion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SubGeographicalRegion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SubGeographicalRegion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SubGeographicalRegion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCLine_Region(BaseClass*, BaseClass*); @@ -140,7 +172,7 @@ const char* SubGeographicalRegion::debugString() const void SubGeographicalRegion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SubGeographicalRegion", &SubGeographicalRegion_factory); + factory_map.emplace("SubGeographicalRegion", &SubGeographicalRegion_factory); } void SubGeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -149,10 +181,10 @@ void SubGeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SubGeographicalRegion.DCLines", &assign_SubGeographicalRegion_DCLines); - assign_map.emplace("cim:SubGeographicalRegion.Lines", &assign_SubGeographicalRegion_Lines); - assign_map.emplace("cim:SubGeographicalRegion.Region", &assign_SubGeographicalRegion_Region); - assign_map.emplace("cim:SubGeographicalRegion.Substations", &assign_SubGeographicalRegion_Substations); + assign_map.emplace("SubGeographicalRegion.DCLines", &assign_SubGeographicalRegion_DCLines); + assign_map.emplace("SubGeographicalRegion.Lines", &assign_SubGeographicalRegion_Lines); + assign_map.emplace("SubGeographicalRegion.Region", &assign_SubGeographicalRegion_Region); + assign_map.emplace("SubGeographicalRegion.Substations", &assign_SubGeographicalRegion_Substations); } void SubGeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -163,7 +195,7 @@ void SubGeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SubGeographicalRegion.Region", &get_SubGeographicalRegion_Region); + get_map.emplace("SubGeographicalRegion.Region", &get_SubGeographicalRegion_Region); } void SubGeographicalRegion::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SubGeographicalRegion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SubGeographicalRegion::declare() { return BaseClassDefiner(SubGeographicalRegion::addConstructToMap, SubGeographicalRegion::addPrimitiveAssignFnsToMap, SubGeographicalRegion::addClassAssignFnsToMap, SubGeographicalRegion::debugName); } +std::map SubGeographicalRegion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SubGeographicalRegion_factory() diff --git a/CGMES_2.4.13_18DEC2013/SubGeographicalRegion.hpp b/CGMES_2.4.13_18DEC2013/SubGeographicalRegion.hpp index 27232b895..de32c9260 100644 --- a/CGMES_2.4.13_18DEC2013/SubGeographicalRegion.hpp +++ b/CGMES_2.4.13_18DEC2013/SubGeographicalRegion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SubGeographicalRegion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SubLoadArea.cpp b/CGMES_2.4.13_18DEC2013/SubLoadArea.cpp index b14f7db79..d1dc1d1a5 100644 --- a/CGMES_2.4.13_18DEC2013/SubLoadArea.cpp +++ b/CGMES_2.4.13_18DEC2013/SubLoadArea.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SubLoadArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SubLoadArea.LoadArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SubLoadArea.LoadGroups", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SubLoadArea::SubLoadArea() : LoadArea(nullptr) {} SubLoadArea::~SubLoadArea() {} -static const std::list PossibleProfilesForClass = +const std::list& SubLoadArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SubLoadArea::getClassNamespaceUrl() const { - { "cim:SubLoadArea.LoadArea", { CGMESProfile::EQ, } }, - { "cim:SubLoadArea.LoadGroups", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SubLoadArea::getPossibleProfilesForClass() const +const std::string& SubLoadArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SubLoadArea::getPossibleProfilesForAttributes() const +const std::list& SubLoadArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyArea::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SubLoadArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SubLoadArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SubLoadArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadArea_SubLoadAreas(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* SubLoadArea::debugString() const void SubLoadArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SubLoadArea", &SubLoadArea_factory); + factory_map.emplace("SubLoadArea", &SubLoadArea_factory); } void SubLoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void SubLoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SubLoadArea.LoadArea", &assign_SubLoadArea_LoadArea); - assign_map.emplace("cim:SubLoadArea.LoadGroups", &assign_SubLoadArea_LoadGroups); + assign_map.emplace("SubLoadArea.LoadArea", &assign_SubLoadArea_LoadArea); + assign_map.emplace("SubLoadArea.LoadGroups", &assign_SubLoadArea_LoadGroups); } void SubLoadArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void SubLoadArea::addPrimitiveGetFnsToMap(std::map& g void SubLoadArea::addClassGetFnsToMap(std::map& get_map) const { EnergyArea::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SubLoadArea.LoadArea", &get_SubLoadArea_LoadArea); + get_map.emplace("SubLoadArea.LoadArea", &get_SubLoadArea_LoadArea); } void SubLoadArea::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void SubLoadArea::addEnumGetFnsToMap(std::map& get_ma EnergyArea::addEnumGetFnsToMap(get_map); } +bool SubLoadArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SubLoadArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SubLoadArea::declare() { return BaseClassDefiner(SubLoadArea::addConstructToMap, SubLoadArea::addPrimitiveAssignFnsToMap, SubLoadArea::addClassAssignFnsToMap, SubLoadArea::debugName); } +std::map SubLoadArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyArea::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SubLoadArea_factory() diff --git a/CGMES_2.4.13_18DEC2013/SubLoadArea.hpp b/CGMES_2.4.13_18DEC2013/SubLoadArea.hpp index eb2947510..523b31541 100644 --- a/CGMES_2.4.13_18DEC2013/SubLoadArea.hpp +++ b/CGMES_2.4.13_18DEC2013/SubLoadArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyArea.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SubLoadArea_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Substation.cpp b/CGMES_2.4.13_18DEC2013/Substation.cpp index d0d5471ff..3ea60e191 100644 --- a/CGMES_2.4.13_18DEC2013/Substation.cpp +++ b/CGMES_2.4.13_18DEC2013/Substation.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Substation(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Substation.DCConverterUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Substation.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Substation.VoltageLevels", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Substation::Substation() : Region(nullptr) {} Substation::~Substation() {} -static const std::list PossibleProfilesForClass = +const std::list& Substation::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Substation::getClassNamespaceUrl() const { - { "cim:Substation.DCConverterUnit", { CGMESProfile::EQ, } }, - { "cim:Substation.Region", { CGMESProfile::EQ, } }, - { "cim:Substation.VoltageLevels", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Substation::getPossibleProfilesForClass() const +const std::string& Substation::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Substation::getPossibleProfilesForAttributes() const +const std::list& Substation::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Substation::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Substation::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Substation::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCConverterUnit_Substation(BaseClass*, BaseClass*); @@ -119,7 +151,7 @@ const char* Substation::debugString() const void Substation::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Substation", &Substation_factory); + factory_map.emplace("Substation", &Substation_factory); } void Substation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -128,9 +160,9 @@ void Substation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Substation.DCConverterUnit", &assign_Substation_DCConverterUnit); - assign_map.emplace("cim:Substation.Region", &assign_Substation_Region); - assign_map.emplace("cim:Substation.VoltageLevels", &assign_Substation_VoltageLevels); + assign_map.emplace("Substation.DCConverterUnit", &assign_Substation_DCConverterUnit); + assign_map.emplace("Substation.Region", &assign_Substation_Region); + assign_map.emplace("Substation.VoltageLevels", &assign_Substation_VoltageLevels); } void Substation::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -141,7 +173,7 @@ void Substation::addPrimitiveGetFnsToMap(std::map& ge void Substation::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Substation.Region", &get_Substation_Region); + get_map.emplace("Substation.Region", &get_Substation_Region); } void Substation::addEnumGetFnsToMap(std::map& get_map) const @@ -149,11 +181,25 @@ void Substation::addEnumGetFnsToMap(std::map& get_map EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Substation::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Substation" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Substation::declare() { return BaseClassDefiner(Substation::addConstructToMap, Substation::addPrimitiveAssignFnsToMap, Substation::addClassAssignFnsToMap, Substation::debugName); } +std::map Substation::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Substation_factory() diff --git a/CGMES_2.4.13_18DEC2013/Substation.hpp b/CGMES_2.4.13_18DEC2013/Substation.hpp index 57ef9396c..369df004b 100644 --- a/CGMES_2.4.13_18DEC2013/Substation.hpp +++ b/CGMES_2.4.13_18DEC2013/Substation.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Substation_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SvInjection.cpp b/CGMES_2.4.13_18DEC2013/SvInjection.cpp index 4b2198756..e0c0be0f5 100644 --- a/CGMES_2.4.13_18DEC2013/SvInjection.cpp +++ b/CGMES_2.4.13_18DEC2013/SvInjection.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvInjection.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvInjection.pInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvInjection.qInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvInjection::SvInjection() : TopologicalNode(nullptr) {} SvInjection::~SvInjection() {} -static const std::list PossibleProfilesForClass = +const std::list& SvInjection::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvInjection::getClassNamespaceUrl() const { - { "cim:SvInjection.TopologicalNode", { CGMESProfile::SV, } }, - { "cim:SvInjection.pInjection", { CGMESProfile::SV, } }, - { "cim:SvInjection.qInjection", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvInjection::getPossibleProfilesForClass() const +const std::string& SvInjection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvInjection::getPossibleProfilesForAttributes() const +const std::list& SvInjection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_SvInjection(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvInjection::debugString() const void SvInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvInjection", &SvInjection_factory); + factory_map.emplace("SvInjection", &SvInjection_factory); } void SvInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvInjection.pInjection", &assign_SvInjection_pInjection); - assign_map.emplace("cim:SvInjection.qInjection", &assign_SvInjection_qInjection); + assign_map.emplace("SvInjection.pInjection", &assign_SvInjection_pInjection); + assign_map.emplace("SvInjection.qInjection", &assign_SvInjection_qInjection); } void SvInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvInjection.TopologicalNode", &assign_SvInjection_TopologicalNode); + assign_map.emplace("SvInjection.TopologicalNode", &assign_SvInjection_TopologicalNode); } void SvInjection::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvInjection.pInjection", &get_SvInjection_pInjection); - get_map.emplace("cim:SvInjection.qInjection", &get_SvInjection_qInjection); + get_map.emplace("SvInjection.pInjection", &get_SvInjection_pInjection); + get_map.emplace("SvInjection.qInjection", &get_SvInjection_qInjection); } void SvInjection::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvInjection.TopologicalNode", &get_SvInjection_TopologicalNode); + get_map.emplace("SvInjection.TopologicalNode", &get_SvInjection_TopologicalNode); } void SvInjection::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvInjection::addEnumGetFnsToMap(std::map& get_ma BaseClass::addEnumGetFnsToMap(get_map); } +bool SvInjection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvInjection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvInjection::declare() { return BaseClassDefiner(SvInjection::addConstructToMap, SvInjection::addPrimitiveAssignFnsToMap, SvInjection::addClassAssignFnsToMap, SvInjection::debugName); } +std::map SvInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvInjection_factory() diff --git a/CGMES_2.4.13_18DEC2013/SvInjection.hpp b/CGMES_2.4.13_18DEC2013/SvInjection.hpp index 73b97137a..45176fdc3 100644 --- a/CGMES_2.4.13_18DEC2013/SvInjection.hpp +++ b/CGMES_2.4.13_18DEC2013/SvInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ReactivePower.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvInjection_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SvPowerFlow.cpp b/CGMES_2.4.13_18DEC2013/SvPowerFlow.cpp index dfc4eab2e..91318fcf3 100644 --- a/CGMES_2.4.13_18DEC2013/SvPowerFlow.cpp +++ b/CGMES_2.4.13_18DEC2013/SvPowerFlow.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvPowerFlow(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvPowerFlow.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvPowerFlow.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvPowerFlow.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvPowerFlow::SvPowerFlow() : Terminal(nullptr) {} SvPowerFlow::~SvPowerFlow() {} -static const std::list PossibleProfilesForClass = +const std::list& SvPowerFlow::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvPowerFlow::getClassNamespaceUrl() const { - { "cim:SvPowerFlow.Terminal", { CGMESProfile::SV, } }, - { "cim:SvPowerFlow.p", { CGMESProfile::SV, } }, - { "cim:SvPowerFlow.q", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvPowerFlow::getPossibleProfilesForClass() const +const std::string& SvPowerFlow::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvPowerFlow::getPossibleProfilesForAttributes() const +const std::list& SvPowerFlow::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvPowerFlow::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvPowerFlow::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvPowerFlow::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_SvPowerFlow(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvPowerFlow::debugString() const void SvPowerFlow::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvPowerFlow", &SvPowerFlow_factory); + factory_map.emplace("SvPowerFlow", &SvPowerFlow_factory); } void SvPowerFlow::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvPowerFlow.p", &assign_SvPowerFlow_p); - assign_map.emplace("cim:SvPowerFlow.q", &assign_SvPowerFlow_q); + assign_map.emplace("SvPowerFlow.p", &assign_SvPowerFlow_p); + assign_map.emplace("SvPowerFlow.q", &assign_SvPowerFlow_q); } void SvPowerFlow::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvPowerFlow.Terminal", &assign_SvPowerFlow_Terminal); + assign_map.emplace("SvPowerFlow.Terminal", &assign_SvPowerFlow_Terminal); } void SvPowerFlow::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvPowerFlow.p", &get_SvPowerFlow_p); - get_map.emplace("cim:SvPowerFlow.q", &get_SvPowerFlow_q); + get_map.emplace("SvPowerFlow.p", &get_SvPowerFlow_p); + get_map.emplace("SvPowerFlow.q", &get_SvPowerFlow_q); } void SvPowerFlow::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvPowerFlow.Terminal", &get_SvPowerFlow_Terminal); + get_map.emplace("SvPowerFlow.Terminal", &get_SvPowerFlow_Terminal); } void SvPowerFlow::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvPowerFlow::addEnumGetFnsToMap(std::map& get_ma BaseClass::addEnumGetFnsToMap(get_map); } +bool SvPowerFlow::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvPowerFlow" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvPowerFlow::declare() { return BaseClassDefiner(SvPowerFlow::addConstructToMap, SvPowerFlow::addPrimitiveAssignFnsToMap, SvPowerFlow::addClassAssignFnsToMap, SvPowerFlow::debugName); } +std::map SvPowerFlow::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvPowerFlow_factory() diff --git a/CGMES_2.4.13_18DEC2013/SvPowerFlow.hpp b/CGMES_2.4.13_18DEC2013/SvPowerFlow.hpp index a27cce2a2..77b1b40d0 100644 --- a/CGMES_2.4.13_18DEC2013/SvPowerFlow.hpp +++ b/CGMES_2.4.13_18DEC2013/SvPowerFlow.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ReactivePower.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvPowerFlow_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SvShuntCompensatorSections.cpp b/CGMES_2.4.13_18DEC2013/SvShuntCompensatorSections.cpp index a14be0d1b..c71aaf424 100644 --- a/CGMES_2.4.13_18DEC2013/SvShuntCompensatorSections.cpp +++ b/CGMES_2.4.13_18DEC2013/SvShuntCompensatorSections.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvShuntCompensatorSections(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvShuntCompensatorSections.ShuntCompensator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvShuntCompensatorSections.sections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvShuntCompensatorSections::SvShuntCompensatorSections() : ShuntCompensator(nullptr) {} SvShuntCompensatorSections::~SvShuntCompensatorSections() {} -static const std::list PossibleProfilesForClass = +const std::list& SvShuntCompensatorSections::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvShuntCompensatorSections::getClassNamespaceUrl() const { - { "cim:SvShuntCompensatorSections.ShuntCompensator", { CGMESProfile::SV, } }, - { "cim:SvShuntCompensatorSections.sections", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvShuntCompensatorSections::getPossibleProfilesForClass() const +const std::string& SvShuntCompensatorSections::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvShuntCompensatorSections::getPossibleProfilesForAttributes() const +const std::list& SvShuntCompensatorSections::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvShuntCompensatorSections::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvShuntCompensatorSections::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvShuntCompensatorSections::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ShuntCompensator_SvShuntCompensatorSections(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvShuntCompensatorSections::debugString() const void SvShuntCompensatorSections::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvShuntCompensatorSections", &SvShuntCompensatorSections_factory); + factory_map.emplace("SvShuntCompensatorSections", &SvShuntCompensatorSections_factory); } void SvShuntCompensatorSections::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvShuntCompensatorSections.sections", &assign_SvShuntCompensatorSections_sections); + assign_map.emplace("SvShuntCompensatorSections.sections", &assign_SvShuntCompensatorSections_sections); } void SvShuntCompensatorSections::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvShuntCompensatorSections.ShuntCompensator", &assign_SvShuntCompensatorSections_ShuntCompensator); + assign_map.emplace("SvShuntCompensatorSections.ShuntCompensator", &assign_SvShuntCompensatorSections_ShuntCompensator); } void SvShuntCompensatorSections::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvShuntCompensatorSections.sections", &get_SvShuntCompensatorSections_sections); + get_map.emplace("SvShuntCompensatorSections.sections", &get_SvShuntCompensatorSections_sections); } void SvShuntCompensatorSections::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvShuntCompensatorSections.ShuntCompensator", &get_SvShuntCompensatorSections_ShuntCompensator); + get_map.emplace("SvShuntCompensatorSections.ShuntCompensator", &get_SvShuntCompensatorSections_ShuntCompensator); } void SvShuntCompensatorSections::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvShuntCompensatorSections::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SvShuntCompensatorSections::declare() { return BaseClassDefiner(SvShuntCompensatorSections::addConstructToMap, SvShuntCompensatorSections::addPrimitiveAssignFnsToMap, SvShuntCompensatorSections::addClassAssignFnsToMap, SvShuntCompensatorSections::debugName); } +std::map SvShuntCompensatorSections::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvShuntCompensatorSections_factory() diff --git a/CGMES_2.4.13_18DEC2013/SvShuntCompensatorSections.hpp b/CGMES_2.4.13_18DEC2013/SvShuntCompensatorSections.hpp index 357a98c95..e816118b8 100644 --- a/CGMES_2.4.13_18DEC2013/SvShuntCompensatorSections.hpp +++ b/CGMES_2.4.13_18DEC2013/SvShuntCompensatorSections.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvShuntCompensatorSections_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SvStatus.cpp b/CGMES_2.4.13_18DEC2013/SvStatus.cpp index 17aca7359..f75af6579 100644 --- a/CGMES_2.4.13_18DEC2013/SvStatus.cpp +++ b/CGMES_2.4.13_18DEC2013/SvStatus.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvStatus(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvStatus.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvStatus.inService", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvStatus::SvStatus() : ConductingEquipment(nullptr) {} SvStatus::~SvStatus() {} -static const std::list PossibleProfilesForClass = +const std::list& SvStatus::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvStatus::getClassNamespaceUrl() const { - { "cim:SvStatus.ConductingEquipment", { CGMESProfile::SV, } }, - { "cim:SvStatus.inService", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvStatus::getPossibleProfilesForClass() const +const std::string& SvStatus::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvStatus::getPossibleProfilesForAttributes() const +const std::list& SvStatus::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvStatus::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvStatus::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvStatus::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_SvStatus(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvStatus::debugString() const void SvStatus::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvStatus", &SvStatus_factory); + factory_map.emplace("SvStatus", &SvStatus_factory); } void SvStatus::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvStatus.inService", &assign_SvStatus_inService); + assign_map.emplace("SvStatus.inService", &assign_SvStatus_inService); } void SvStatus::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvStatus.ConductingEquipment", &assign_SvStatus_ConductingEquipment); + assign_map.emplace("SvStatus.ConductingEquipment", &assign_SvStatus_ConductingEquipment); } void SvStatus::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvStatus.inService", &get_SvStatus_inService); + get_map.emplace("SvStatus.inService", &get_SvStatus_inService); } void SvStatus::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvStatus.ConductingEquipment", &get_SvStatus_ConductingEquipment); + get_map.emplace("SvStatus.ConductingEquipment", &get_SvStatus_ConductingEquipment); } void SvStatus::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvStatus::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvStatus::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvStatus" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvStatus::declare() { return BaseClassDefiner(SvStatus::addConstructToMap, SvStatus::addPrimitiveAssignFnsToMap, SvStatus::addClassAssignFnsToMap, SvStatus::debugName); } +std::map SvStatus::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvStatus_factory() diff --git a/CGMES_2.4.13_18DEC2013/SvStatus.hpp b/CGMES_2.4.13_18DEC2013/SvStatus.hpp index e1b7266b5..71352e540 100644 --- a/CGMES_2.4.13_18DEC2013/SvStatus.hpp +++ b/CGMES_2.4.13_18DEC2013/SvStatus.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvStatus_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SvTapStep.cpp b/CGMES_2.4.13_18DEC2013/SvTapStep.cpp index 717c92b1a..f3923a9db 100644 --- a/CGMES_2.4.13_18DEC2013/SvTapStep.cpp +++ b/CGMES_2.4.13_18DEC2013/SvTapStep.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvTapStep(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvTapStep.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvTapStep.position", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvTapStep::SvTapStep() : TapChanger(nullptr) {} SvTapStep::~SvTapStep() {} -static const std::list PossibleProfilesForClass = +const std::list& SvTapStep::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvTapStep::getClassNamespaceUrl() const { - { "cim:SvTapStep.TapChanger", { CGMESProfile::SV, } }, - { "cim:SvTapStep.position", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvTapStep::getPossibleProfilesForClass() const +const std::string& SvTapStep::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvTapStep::getPossibleProfilesForAttributes() const +const std::list& SvTapStep::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvTapStep::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvTapStep::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvTapStep::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_SvTapStep(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvTapStep::debugString() const void SvTapStep::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvTapStep", &SvTapStep_factory); + factory_map.emplace("SvTapStep", &SvTapStep_factory); } void SvTapStep::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvTapStep.position", &assign_SvTapStep_position); + assign_map.emplace("SvTapStep.position", &assign_SvTapStep_position); } void SvTapStep::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvTapStep.TapChanger", &assign_SvTapStep_TapChanger); + assign_map.emplace("SvTapStep.TapChanger", &assign_SvTapStep_TapChanger); } void SvTapStep::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvTapStep.position", &get_SvTapStep_position); + get_map.emplace("SvTapStep.position", &get_SvTapStep_position); } void SvTapStep::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvTapStep.TapChanger", &get_SvTapStep_TapChanger); + get_map.emplace("SvTapStep.TapChanger", &get_SvTapStep_TapChanger); } void SvTapStep::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvTapStep::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvTapStep::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvTapStep" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvTapStep::declare() { return BaseClassDefiner(SvTapStep::addConstructToMap, SvTapStep::addPrimitiveAssignFnsToMap, SvTapStep::addClassAssignFnsToMap, SvTapStep::debugName); } +std::map SvTapStep::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvTapStep_factory() diff --git a/CGMES_2.4.13_18DEC2013/SvTapStep.hpp b/CGMES_2.4.13_18DEC2013/SvTapStep.hpp index 57f08cda1..36b669fa4 100644 --- a/CGMES_2.4.13_18DEC2013/SvTapStep.hpp +++ b/CGMES_2.4.13_18DEC2013/SvTapStep.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvTapStep_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SvVoltage.cpp b/CGMES_2.4.13_18DEC2013/SvVoltage.cpp index 697cd57c5..19a3cb781 100644 --- a/CGMES_2.4.13_18DEC2013/SvVoltage.cpp +++ b/CGMES_2.4.13_18DEC2013/SvVoltage.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvVoltage(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvVoltage.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvVoltage.angle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvVoltage.v", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvVoltage::SvVoltage() : TopologicalNode(nullptr) {} SvVoltage::~SvVoltage() {} -static const std::list PossibleProfilesForClass = +const std::list& SvVoltage::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvVoltage::getClassNamespaceUrl() const { - { "cim:SvVoltage.TopologicalNode", { CGMESProfile::SV, } }, - { "cim:SvVoltage.angle", { CGMESProfile::SV, } }, - { "cim:SvVoltage.v", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvVoltage::getPossibleProfilesForClass() const +const std::string& SvVoltage::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvVoltage::getPossibleProfilesForAttributes() const +const std::list& SvVoltage::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvVoltage::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvVoltage::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvVoltage::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_SvVoltage(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvVoltage::debugString() const void SvVoltage::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvVoltage", &SvVoltage_factory); + factory_map.emplace("SvVoltage", &SvVoltage_factory); } void SvVoltage::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvVoltage.angle", &assign_SvVoltage_angle); - assign_map.emplace("cim:SvVoltage.v", &assign_SvVoltage_v); + assign_map.emplace("SvVoltage.angle", &assign_SvVoltage_angle); + assign_map.emplace("SvVoltage.v", &assign_SvVoltage_v); } void SvVoltage::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvVoltage.TopologicalNode", &assign_SvVoltage_TopologicalNode); + assign_map.emplace("SvVoltage.TopologicalNode", &assign_SvVoltage_TopologicalNode); } void SvVoltage::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvVoltage.angle", &get_SvVoltage_angle); - get_map.emplace("cim:SvVoltage.v", &get_SvVoltage_v); + get_map.emplace("SvVoltage.angle", &get_SvVoltage_angle); + get_map.emplace("SvVoltage.v", &get_SvVoltage_v); } void SvVoltage::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvVoltage.TopologicalNode", &get_SvVoltage_TopologicalNode); + get_map.emplace("SvVoltage.TopologicalNode", &get_SvVoltage_TopologicalNode); } void SvVoltage::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvVoltage::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvVoltage::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvVoltage" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvVoltage::declare() { return BaseClassDefiner(SvVoltage::addConstructToMap, SvVoltage::addPrimitiveAssignFnsToMap, SvVoltage::addClassAssignFnsToMap, SvVoltage::debugName); } +std::map SvVoltage::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvVoltage_factory() diff --git a/CGMES_2.4.13_18DEC2013/SvVoltage.hpp b/CGMES_2.4.13_18DEC2013/SvVoltage.hpp index 04595982a..9e86b5574 100644 --- a/CGMES_2.4.13_18DEC2013/SvVoltage.hpp +++ b/CGMES_2.4.13_18DEC2013/SvVoltage.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvVoltage_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Switch.cpp b/CGMES_2.4.13_18DEC2013/Switch.cpp index 5f84a2d7a..c2a33270a 100644 --- a/CGMES_2.4.13_18DEC2013/Switch.cpp +++ b/CGMES_2.4.13_18DEC2013/Switch.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Switch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Switch.SwitchSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.normalOpen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.open", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "Switch.ratedCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.retained", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Switch::Switch() {} Switch::~Switch() {} -static const std::list PossibleProfilesForClass = +const std::list& Switch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Switch::getClassNamespaceUrl() const { - { "cim:Switch.SwitchSchedules", { CGMESProfile::EQ, } }, - { "cim:Switch.normalOpen", { CGMESProfile::EQ, } }, - { "cim:Switch.open", { CGMESProfile::SSH, } }, - { "cim:Switch.ratedCurrent", { CGMESProfile::EQ, } }, - { "cim:Switch.retained", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Switch::getPossibleProfilesForClass() const +const std::string& Switch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Switch::getPossibleProfilesForAttributes() const +const std::list& Switch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Switch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Switch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Switch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SwitchSchedule_Switch(BaseClass*, BaseClass*); @@ -187,29 +219,29 @@ const char* Switch::debugString() const void Switch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Switch", &Switch_factory); + factory_map.emplace("Switch", &Switch_factory); } void Switch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Switch.normalOpen", &assign_Switch_normalOpen); - assign_map.emplace("cim:Switch.open", &assign_Switch_open); - assign_map.emplace("cim:Switch.ratedCurrent", &assign_Switch_ratedCurrent); - assign_map.emplace("cim:Switch.retained", &assign_Switch_retained); + assign_map.emplace("Switch.normalOpen", &assign_Switch_normalOpen); + assign_map.emplace("Switch.open", &assign_Switch_open); + assign_map.emplace("Switch.ratedCurrent", &assign_Switch_ratedCurrent); + assign_map.emplace("Switch.retained", &assign_Switch_retained); } void Switch::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Switch.SwitchSchedules", &assign_Switch_SwitchSchedules); + assign_map.emplace("Switch.SwitchSchedules", &assign_Switch_SwitchSchedules); } void Switch::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Switch.normalOpen", &get_Switch_normalOpen); - get_map.emplace("cim:Switch.open", &get_Switch_open); - get_map.emplace("cim:Switch.ratedCurrent", &get_Switch_ratedCurrent); - get_map.emplace("cim:Switch.retained", &get_Switch_retained); + get_map.emplace("Switch.normalOpen", &get_Switch_normalOpen); + get_map.emplace("Switch.open", &get_Switch_open); + get_map.emplace("Switch.ratedCurrent", &get_Switch_ratedCurrent); + get_map.emplace("Switch.retained", &get_Switch_retained); } void Switch::addClassGetFnsToMap(std::map& get_map) const @@ -222,11 +254,25 @@ void Switch::addEnumGetFnsToMap(std::map& get_map) co ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Switch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Switch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Switch::declare() { return BaseClassDefiner(Switch::addConstructToMap, Switch::addPrimitiveAssignFnsToMap, Switch::addClassAssignFnsToMap, Switch::debugName); } +std::map Switch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Switch_factory() diff --git a/CGMES_2.4.13_18DEC2013/Switch.hpp b/CGMES_2.4.13_18DEC2013/Switch.hpp index 1b8c13160..4a75f2cee 100644 --- a/CGMES_2.4.13_18DEC2013/Switch.hpp +++ b/CGMES_2.4.13_18DEC2013/Switch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Switch_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SwitchSchedule.cpp b/CGMES_2.4.13_18DEC2013/SwitchSchedule.cpp index 17357887b..fdac545f0 100644 --- a/CGMES_2.4.13_18DEC2013/SwitchSchedule.cpp +++ b/CGMES_2.4.13_18DEC2013/SwitchSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SwitchSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SwitchSchedule.Switch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SwitchSchedule::SwitchSchedule() : Switch(nullptr) {} SwitchSchedule::~SwitchSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& SwitchSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SwitchSchedule::getClassNamespaceUrl() const { - { "cim:SwitchSchedule.Switch", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SwitchSchedule::getPossibleProfilesForClass() const +const std::string& SwitchSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SwitchSchedule::getPossibleProfilesForAttributes() const +const std::list& SwitchSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SwitchSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SwitchSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SwitchSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Switch_SwitchSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* SwitchSchedule::debugString() const void SwitchSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SwitchSchedule", &SwitchSchedule_factory); + factory_map.emplace("SwitchSchedule", &SwitchSchedule_factory); } void SwitchSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void SwitchSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SwitchSchedule.Switch", &assign_SwitchSchedule_Switch); + assign_map.emplace("SwitchSchedule.Switch", &assign_SwitchSchedule_Switch); } void SwitchSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void SwitchSchedule::addPrimitiveGetFnsToMap(std::map void SwitchSchedule::addClassGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SwitchSchedule.Switch", &get_SwitchSchedule_Switch); + get_map.emplace("SwitchSchedule.Switch", &get_SwitchSchedule_Switch); } void SwitchSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void SwitchSchedule::addEnumGetFnsToMap(std::map& get SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool SwitchSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SwitchSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SwitchSchedule::declare() { return BaseClassDefiner(SwitchSchedule::addConstructToMap, SwitchSchedule::addPrimitiveAssignFnsToMap, SwitchSchedule::addClassAssignFnsToMap, SwitchSchedule::debugName); } +std::map SwitchSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SwitchSchedule_factory() diff --git a/CGMES_2.4.13_18DEC2013/SwitchSchedule.hpp b/CGMES_2.4.13_18DEC2013/SwitchSchedule.hpp index 929ce0e77..00c43be39 100644 --- a/CGMES_2.4.13_18DEC2013/SwitchSchedule.hpp +++ b/CGMES_2.4.13_18DEC2013/SwitchSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SwitchSchedule_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachine.cpp b/CGMES_2.4.13_18DEC2013/SynchronousMachine.cpp index 775effb85..26138013c 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachine.cpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachine.cpp @@ -13,56 +13,88 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachine.InitialReactiveCapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachine.earthing", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.earthingStarPointR", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.earthingStarPointX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.ikk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.mu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.operatingMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "SynchronousMachine.qPercent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.referencePriority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.satDirectSubtransX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.satDirectSyncX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.satDirectTransX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.shortCircuitRotorType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.voltageRegulationRange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.x2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachine::SynchronousMachine() : InitialReactiveCapabilityCurve(nullptr), SynchronousMachineDynamics(nullptr) {} SynchronousMachine::~SynchronousMachine() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:SynchronousMachine.InitialReactiveCapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachine.earthing", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.earthingStarPointR", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.earthingStarPointX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.ikk", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.maxQ", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.minQ", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.mu", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.operatingMode", { CGMESProfile::SSH, } }, - { "cim:SynchronousMachine.qPercent", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r0", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r2", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.referencePriority", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.satDirectSubtransX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.satDirectSyncX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.satDirectTransX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.shortCircuitRotorType", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.type", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.voltageRegulationRange", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.x0", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.x2", { CGMESProfile::EQ, } }, -}; - -std::list -SynchronousMachine::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -SynchronousMachine::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachine::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& SynchronousMachine::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& SynchronousMachine::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& SynchronousMachine::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& SynchronousMachine::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines(BaseClass*, BaseClass*); @@ -731,75 +763,81 @@ const char* SynchronousMachine::debugString() const void SynchronousMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachine", &SynchronousMachine_factory); + factory_map.emplace("SynchronousMachine", &SynchronousMachine_factory); } void SynchronousMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachine.earthing", &assign_SynchronousMachine_earthing); - assign_map.emplace("cim:SynchronousMachine.earthingStarPointR", &assign_SynchronousMachine_earthingStarPointR); - assign_map.emplace("cim:SynchronousMachine.earthingStarPointX", &assign_SynchronousMachine_earthingStarPointX); - assign_map.emplace("cim:SynchronousMachine.ikk", &assign_SynchronousMachine_ikk); - assign_map.emplace("cim:SynchronousMachine.maxQ", &assign_SynchronousMachine_maxQ); - assign_map.emplace("cim:SynchronousMachine.minQ", &assign_SynchronousMachine_minQ); - assign_map.emplace("cim:SynchronousMachine.mu", &assign_SynchronousMachine_mu); - assign_map.emplace("cim:SynchronousMachine.operatingMode", &assign_SynchronousMachine_operatingMode); - assign_map.emplace("cim:SynchronousMachine.qPercent", &assign_SynchronousMachine_qPercent); - assign_map.emplace("cim:SynchronousMachine.r", &assign_SynchronousMachine_r); - assign_map.emplace("cim:SynchronousMachine.r0", &assign_SynchronousMachine_r0); - assign_map.emplace("cim:SynchronousMachine.r2", &assign_SynchronousMachine_r2); - assign_map.emplace("cim:SynchronousMachine.referencePriority", &assign_SynchronousMachine_referencePriority); - assign_map.emplace("cim:SynchronousMachine.satDirectSubtransX", &assign_SynchronousMachine_satDirectSubtransX); - assign_map.emplace("cim:SynchronousMachine.satDirectSyncX", &assign_SynchronousMachine_satDirectSyncX); - assign_map.emplace("cim:SynchronousMachine.satDirectTransX", &assign_SynchronousMachine_satDirectTransX); - assign_map.emplace("cim:SynchronousMachine.shortCircuitRotorType", &assign_SynchronousMachine_shortCircuitRotorType); - assign_map.emplace("cim:SynchronousMachine.type", &assign_SynchronousMachine_type); - assign_map.emplace("cim:SynchronousMachine.voltageRegulationRange", &assign_SynchronousMachine_voltageRegulationRange); - assign_map.emplace("cim:SynchronousMachine.x0", &assign_SynchronousMachine_x0); - assign_map.emplace("cim:SynchronousMachine.x2", &assign_SynchronousMachine_x2); + assign_map.emplace("SynchronousMachine.earthing", &assign_SynchronousMachine_earthing); + assign_map.emplace("SynchronousMachine.earthingStarPointR", &assign_SynchronousMachine_earthingStarPointR); + assign_map.emplace("SynchronousMachine.earthingStarPointX", &assign_SynchronousMachine_earthingStarPointX); + assign_map.emplace("SynchronousMachine.ikk", &assign_SynchronousMachine_ikk); + assign_map.emplace("SynchronousMachine.maxQ", &assign_SynchronousMachine_maxQ); + assign_map.emplace("SynchronousMachine.minQ", &assign_SynchronousMachine_minQ); + assign_map.emplace("SynchronousMachine.mu", &assign_SynchronousMachine_mu); + assign_map.emplace("SynchronousMachine.operatingMode", &assign_SynchronousMachine_operatingMode); + assign_map.emplace("SynchronousMachine.qPercent", &assign_SynchronousMachine_qPercent); + assign_map.emplace("SynchronousMachine.r", &assign_SynchronousMachine_r); + assign_map.emplace("SynchronousMachine.r0", &assign_SynchronousMachine_r0); + assign_map.emplace("SynchronousMachine.r2", &assign_SynchronousMachine_r2); + assign_map.emplace("SynchronousMachine.referencePriority", &assign_SynchronousMachine_referencePriority); + assign_map.emplace("SynchronousMachine.satDirectSubtransX", &assign_SynchronousMachine_satDirectSubtransX); + assign_map.emplace("SynchronousMachine.satDirectSyncX", &assign_SynchronousMachine_satDirectSyncX); + assign_map.emplace("SynchronousMachine.satDirectTransX", &assign_SynchronousMachine_satDirectTransX); + assign_map.emplace("SynchronousMachine.shortCircuitRotorType", &assign_SynchronousMachine_shortCircuitRotorType); + assign_map.emplace("SynchronousMachine.type", &assign_SynchronousMachine_type); + assign_map.emplace("SynchronousMachine.voltageRegulationRange", &assign_SynchronousMachine_voltageRegulationRange); + assign_map.emplace("SynchronousMachine.x0", &assign_SynchronousMachine_x0); + assign_map.emplace("SynchronousMachine.x2", &assign_SynchronousMachine_x2); } void SynchronousMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachine.InitialReactiveCapabilityCurve", &assign_SynchronousMachine_InitialReactiveCapabilityCurve); - assign_map.emplace("cim:SynchronousMachine.SynchronousMachineDynamics", &assign_SynchronousMachine_SynchronousMachineDynamics); + assign_map.emplace("SynchronousMachine.InitialReactiveCapabilityCurve", &assign_SynchronousMachine_InitialReactiveCapabilityCurve); + assign_map.emplace("SynchronousMachine.SynchronousMachineDynamics", &assign_SynchronousMachine_SynchronousMachineDynamics); } void SynchronousMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachine::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.earthing", &get_SynchronousMachine_earthing); - get_map.emplace("cim:SynchronousMachine.earthingStarPointR", &get_SynchronousMachine_earthingStarPointR); - get_map.emplace("cim:SynchronousMachine.earthingStarPointX", &get_SynchronousMachine_earthingStarPointX); - get_map.emplace("cim:SynchronousMachine.ikk", &get_SynchronousMachine_ikk); - get_map.emplace("cim:SynchronousMachine.maxQ", &get_SynchronousMachine_maxQ); - get_map.emplace("cim:SynchronousMachine.minQ", &get_SynchronousMachine_minQ); - get_map.emplace("cim:SynchronousMachine.mu", &get_SynchronousMachine_mu); - get_map.emplace("cim:SynchronousMachine.qPercent", &get_SynchronousMachine_qPercent); - get_map.emplace("cim:SynchronousMachine.r", &get_SynchronousMachine_r); - get_map.emplace("cim:SynchronousMachine.r0", &get_SynchronousMachine_r0); - get_map.emplace("cim:SynchronousMachine.r2", &get_SynchronousMachine_r2); - get_map.emplace("cim:SynchronousMachine.referencePriority", &get_SynchronousMachine_referencePriority); - get_map.emplace("cim:SynchronousMachine.satDirectSubtransX", &get_SynchronousMachine_satDirectSubtransX); - get_map.emplace("cim:SynchronousMachine.satDirectSyncX", &get_SynchronousMachine_satDirectSyncX); - get_map.emplace("cim:SynchronousMachine.satDirectTransX", &get_SynchronousMachine_satDirectTransX); - get_map.emplace("cim:SynchronousMachine.voltageRegulationRange", &get_SynchronousMachine_voltageRegulationRange); - get_map.emplace("cim:SynchronousMachine.x0", &get_SynchronousMachine_x0); - get_map.emplace("cim:SynchronousMachine.x2", &get_SynchronousMachine_x2); + get_map.emplace("SynchronousMachine.earthing", &get_SynchronousMachine_earthing); + get_map.emplace("SynchronousMachine.earthingStarPointR", &get_SynchronousMachine_earthingStarPointR); + get_map.emplace("SynchronousMachine.earthingStarPointX", &get_SynchronousMachine_earthingStarPointX); + get_map.emplace("SynchronousMachine.ikk", &get_SynchronousMachine_ikk); + get_map.emplace("SynchronousMachine.maxQ", &get_SynchronousMachine_maxQ); + get_map.emplace("SynchronousMachine.minQ", &get_SynchronousMachine_minQ); + get_map.emplace("SynchronousMachine.mu", &get_SynchronousMachine_mu); + get_map.emplace("SynchronousMachine.qPercent", &get_SynchronousMachine_qPercent); + get_map.emplace("SynchronousMachine.r", &get_SynchronousMachine_r); + get_map.emplace("SynchronousMachine.r0", &get_SynchronousMachine_r0); + get_map.emplace("SynchronousMachine.r2", &get_SynchronousMachine_r2); + get_map.emplace("SynchronousMachine.referencePriority", &get_SynchronousMachine_referencePriority); + get_map.emplace("SynchronousMachine.satDirectSubtransX", &get_SynchronousMachine_satDirectSubtransX); + get_map.emplace("SynchronousMachine.satDirectSyncX", &get_SynchronousMachine_satDirectSyncX); + get_map.emplace("SynchronousMachine.satDirectTransX", &get_SynchronousMachine_satDirectTransX); + get_map.emplace("SynchronousMachine.voltageRegulationRange", &get_SynchronousMachine_voltageRegulationRange); + get_map.emplace("SynchronousMachine.x0", &get_SynchronousMachine_x0); + get_map.emplace("SynchronousMachine.x2", &get_SynchronousMachine_x2); } void SynchronousMachine::addClassGetFnsToMap(std::map& get_map) const { RotatingMachine::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.InitialReactiveCapabilityCurve", &get_SynchronousMachine_InitialReactiveCapabilityCurve); + get_map.emplace("SynchronousMachine.InitialReactiveCapabilityCurve", &get_SynchronousMachine_InitialReactiveCapabilityCurve); } void SynchronousMachine::addEnumGetFnsToMap(std::map& get_map) const { RotatingMachine::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.operatingMode", &get_SynchronousMachine_operatingMode); - get_map.emplace("cim:SynchronousMachine.shortCircuitRotorType", &get_SynchronousMachine_shortCircuitRotorType); - get_map.emplace("cim:SynchronousMachine.type", &get_SynchronousMachine_type); + get_map.emplace("SynchronousMachine.operatingMode", &get_SynchronousMachine_operatingMode); + get_map.emplace("SynchronousMachine.shortCircuitRotorType", &get_SynchronousMachine_shortCircuitRotorType); + get_map.emplace("SynchronousMachine.type", &get_SynchronousMachine_type); +} + +bool SynchronousMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachine" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachine::declare() @@ -807,6 +845,14 @@ const BaseClassDefiner SynchronousMachine::declare() return BaseClassDefiner(SynchronousMachine::addConstructToMap, SynchronousMachine::addPrimitiveAssignFnsToMap, SynchronousMachine::addClassAssignFnsToMap, SynchronousMachine::debugName); } +std::map SynchronousMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachine::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachine_factory() diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachine.hpp b/CGMES_2.4.13_18DEC2013/SynchronousMachine.hpp index 91fe2995e..670ee1e17 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachine.hpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachine.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" #include "Integer.hpp" @@ -110,8 +111,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -119,7 +127,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachine_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineDetailed.cpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineDetailed.cpp index b24f3e4d9..26da5a8cc 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineDetailed.cpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineDetailed.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineDetailed(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineDetailed.efdBaseRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.ifdBaseType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.ifdBaseValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.saturationFactor120QAxis", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.saturationFactorQAxis", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineDetailed::SynchronousMachineDetailed() {} SynchronousMachineDetailed::~SynchronousMachineDetailed() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineDetailed::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineDetailed::getClassNamespaceUrl() const { - { "cim:SynchronousMachineDetailed.efdBaseRatio", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.ifdBaseType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.ifdBaseValue", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.saturationFactor120QAxis", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.saturationFactorQAxis", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineDetailed::getPossibleProfilesForClass() const +const std::string& SynchronousMachineDetailed::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineDetailed::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineDetailed::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineDetailed::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineDetailed::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineDetailed::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDetailed_efdBaseRatio(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* SynchronousMachineDetailed::debugString() const void SynchronousMachineDetailed::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineDetailed", &SynchronousMachineDetailed_factory); + factory_map.emplace("SynchronousMachineDetailed", &SynchronousMachineDetailed_factory); } void SynchronousMachineDetailed::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineDetailed.efdBaseRatio", &assign_SynchronousMachineDetailed_efdBaseRatio); - assign_map.emplace("cim:SynchronousMachineDetailed.ifdBaseType", &assign_SynchronousMachineDetailed_ifdBaseType); - assign_map.emplace("cim:SynchronousMachineDetailed.ifdBaseValue", &assign_SynchronousMachineDetailed_ifdBaseValue); - assign_map.emplace("cim:SynchronousMachineDetailed.saturationFactor120QAxis", &assign_SynchronousMachineDetailed_saturationFactor120QAxis); - assign_map.emplace("cim:SynchronousMachineDetailed.saturationFactorQAxis", &assign_SynchronousMachineDetailed_saturationFactorQAxis); + assign_map.emplace("SynchronousMachineDetailed.efdBaseRatio", &assign_SynchronousMachineDetailed_efdBaseRatio); + assign_map.emplace("SynchronousMachineDetailed.ifdBaseType", &assign_SynchronousMachineDetailed_ifdBaseType); + assign_map.emplace("SynchronousMachineDetailed.ifdBaseValue", &assign_SynchronousMachineDetailed_ifdBaseValue); + assign_map.emplace("SynchronousMachineDetailed.saturationFactor120QAxis", &assign_SynchronousMachineDetailed_saturationFactor120QAxis); + assign_map.emplace("SynchronousMachineDetailed.saturationFactorQAxis", &assign_SynchronousMachineDetailed_saturationFactorQAxis); } void SynchronousMachineDetailed::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,10 +247,10 @@ void SynchronousMachineDetailed::addClassAssignFnsToMap(std::unordered_map& get_map) const { SynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDetailed.efdBaseRatio", &get_SynchronousMachineDetailed_efdBaseRatio); - get_map.emplace("cim:SynchronousMachineDetailed.ifdBaseValue", &get_SynchronousMachineDetailed_ifdBaseValue); - get_map.emplace("cim:SynchronousMachineDetailed.saturationFactor120QAxis", &get_SynchronousMachineDetailed_saturationFactor120QAxis); - get_map.emplace("cim:SynchronousMachineDetailed.saturationFactorQAxis", &get_SynchronousMachineDetailed_saturationFactorQAxis); + get_map.emplace("SynchronousMachineDetailed.efdBaseRatio", &get_SynchronousMachineDetailed_efdBaseRatio); + get_map.emplace("SynchronousMachineDetailed.ifdBaseValue", &get_SynchronousMachineDetailed_ifdBaseValue); + get_map.emplace("SynchronousMachineDetailed.saturationFactor120QAxis", &get_SynchronousMachineDetailed_saturationFactor120QAxis); + get_map.emplace("SynchronousMachineDetailed.saturationFactorQAxis", &get_SynchronousMachineDetailed_saturationFactorQAxis); } void SynchronousMachineDetailed::addClassGetFnsToMap(std::map& get_map) const @@ -229,7 +261,13 @@ void SynchronousMachineDetailed::addClassGetFnsToMap(std::map& get_map) const { SynchronousMachineDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDetailed.ifdBaseType", &get_SynchronousMachineDetailed_ifdBaseType); + get_map.emplace("SynchronousMachineDetailed.ifdBaseType", &get_SynchronousMachineDetailed_ifdBaseType); +} + +bool SynchronousMachineDetailed::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachineDetailed" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachineDetailed::declare() @@ -237,6 +275,14 @@ const BaseClassDefiner SynchronousMachineDetailed::declare() return BaseClassDefiner(SynchronousMachineDetailed::addConstructToMap, SynchronousMachineDetailed::addPrimitiveAssignFnsToMap, SynchronousMachineDetailed::addClassAssignFnsToMap, SynchronousMachineDetailed::debugName); } +std::map SynchronousMachineDetailed::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineDetailed_factory() diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineDetailed.hpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineDetailed.hpp index 877ee12bc..3821d27b7 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineDetailed.hpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineDetailed.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" #include "IfdBaseKind.hpp" #include "Simple_Float.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineDetailed_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineDynamics.cpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineDynamics.cpp index c26909c88..fe2c41adc 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineDynamics.cpp @@ -16,36 +16,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.GenICompensationForGenJ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.MechanicalLoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.SynchronousMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineDynamics::SynchronousMachineDynamics() : ExcitationSystemDynamics(nullptr), MechanicalLoadDynamics(nullptr), SynchronousMachine(nullptr) {} SynchronousMachineDynamics::~SynchronousMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineDynamics::getClassNamespaceUrl() const { - { "cim:SynchronousMachineDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.GenICompensationForGenJ", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.MechanicalLoadDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.SynchronousMachine", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineDynamics::getPossibleProfilesForClass() const +const std::string& SynchronousMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_SynchronousMachineDynamics(BaseClass*, BaseClass*); @@ -159,7 +191,7 @@ const char* SynchronousMachineDynamics::debugString() const void SynchronousMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineDynamics", &SynchronousMachineDynamics_factory); + factory_map.emplace("SynchronousMachineDynamics", &SynchronousMachineDynamics_factory); } void SynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -168,11 +200,11 @@ void SynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineDynamics.ExcitationSystemDynamics", &assign_SynchronousMachineDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.GenICompensationForGenJ", &assign_SynchronousMachineDynamics_GenICompensationForGenJ); - assign_map.emplace("cim:SynchronousMachineDynamics.MechanicalLoadDynamics", &assign_SynchronousMachineDynamics_MechanicalLoadDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.SynchronousMachine", &assign_SynchronousMachineDynamics_SynchronousMachine); - assign_map.emplace("cim:SynchronousMachineDynamics.TurbineGovernorDynamics", &assign_SynchronousMachineDynamics_TurbineGovernorDynamics); + assign_map.emplace("SynchronousMachineDynamics.ExcitationSystemDynamics", &assign_SynchronousMachineDynamics_ExcitationSystemDynamics); + assign_map.emplace("SynchronousMachineDynamics.GenICompensationForGenJ", &assign_SynchronousMachineDynamics_GenICompensationForGenJ); + assign_map.emplace("SynchronousMachineDynamics.MechanicalLoadDynamics", &assign_SynchronousMachineDynamics_MechanicalLoadDynamics); + assign_map.emplace("SynchronousMachineDynamics.SynchronousMachine", &assign_SynchronousMachineDynamics_SynchronousMachine); + assign_map.emplace("SynchronousMachineDynamics.TurbineGovernorDynamics", &assign_SynchronousMachineDynamics_TurbineGovernorDynamics); } void SynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -183,7 +215,7 @@ void SynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachineDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDynamics.SynchronousMachine", &get_SynchronousMachineDynamics_SynchronousMachine); + get_map.emplace("SynchronousMachineDynamics.SynchronousMachine", &get_SynchronousMachineDynamics_SynchronousMachine); } void SynchronousMachineDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -191,11 +223,25 @@ void SynchronousMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineDynamics::declare() { return BaseClassDefiner(SynchronousMachineDynamics::addConstructToMap, SynchronousMachineDynamics::addPrimitiveAssignFnsToMap, SynchronousMachineDynamics::addClassAssignFnsToMap, SynchronousMachineDynamics::debugName); } +std::map SynchronousMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineDynamics.hpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineDynamics.hpp index 77e6df94e..5a7ac9c73 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineEquivalentCircuit.cpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineEquivalentCircuit.cpp index 7ef58f9f7..0c2c01451 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineEquivalentCircuit.cpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineEquivalentCircuit.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineEquivalentCircuit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineEquivalentCircuit.r1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.r1q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.r2q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.rfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x1q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x2q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xad", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xaq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xf1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineEquivalentCircuit::SynchronousMachineEquivalentCircuit() {} SynchronousMachineEquivalentCircuit::~SynchronousMachineEquivalentCircuit() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineEquivalentCircuit::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineEquivalentCircuit::getClassNamespaceUrl() const { - { "cim:SynchronousMachineEquivalentCircuit.r1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.r1q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.r2q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.rfd", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x1q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x2q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xad", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xaq", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xf1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xfd", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineEquivalentCircuit::getPossibleProfilesForClass() const +const std::string& SynchronousMachineEquivalentCircuit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineEquivalentCircuit::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineEquivalentCircuit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDetailed::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineEquivalentCircuit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineEquivalentCircuit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineEquivalentCircuit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineEquivalentCircuit_r1d(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* SynchronousMachineEquivalentCircuit::debugString() const void SynchronousMachineEquivalentCircuit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineEquivalentCircuit", &SynchronousMachineEquivalentCircuit_factory); + factory_map.emplace("SynchronousMachineEquivalentCircuit", &SynchronousMachineEquivalentCircuit_factory); } void SynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1d", &assign_SynchronousMachineEquivalentCircuit_r1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1q", &assign_SynchronousMachineEquivalentCircuit_r1q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r2q", &assign_SynchronousMachineEquivalentCircuit_r2q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.rfd", &assign_SynchronousMachineEquivalentCircuit_rfd); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1d", &assign_SynchronousMachineEquivalentCircuit_x1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1q", &assign_SynchronousMachineEquivalentCircuit_x1q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x2q", &assign_SynchronousMachineEquivalentCircuit_x2q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xad", &assign_SynchronousMachineEquivalentCircuit_xad); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xaq", &assign_SynchronousMachineEquivalentCircuit_xaq); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xf1d", &assign_SynchronousMachineEquivalentCircuit_xf1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xfd", &assign_SynchronousMachineEquivalentCircuit_xfd); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r1d", &assign_SynchronousMachineEquivalentCircuit_r1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r1q", &assign_SynchronousMachineEquivalentCircuit_r1q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r2q", &assign_SynchronousMachineEquivalentCircuit_r2q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.rfd", &assign_SynchronousMachineEquivalentCircuit_rfd); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x1d", &assign_SynchronousMachineEquivalentCircuit_x1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x1q", &assign_SynchronousMachineEquivalentCircuit_x1q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x2q", &assign_SynchronousMachineEquivalentCircuit_x2q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xad", &assign_SynchronousMachineEquivalentCircuit_xad); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xaq", &assign_SynchronousMachineEquivalentCircuit_xaq); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xf1d", &assign_SynchronousMachineEquivalentCircuit_xf1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xfd", &assign_SynchronousMachineEquivalentCircuit_xfd); } void SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_ void SynchronousMachineEquivalentCircuit::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1d", &get_SynchronousMachineEquivalentCircuit_r1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1q", &get_SynchronousMachineEquivalentCircuit_r1q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r2q", &get_SynchronousMachineEquivalentCircuit_r2q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.rfd", &get_SynchronousMachineEquivalentCircuit_rfd); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1d", &get_SynchronousMachineEquivalentCircuit_x1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1q", &get_SynchronousMachineEquivalentCircuit_x1q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x2q", &get_SynchronousMachineEquivalentCircuit_x2q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xad", &get_SynchronousMachineEquivalentCircuit_xad); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xaq", &get_SynchronousMachineEquivalentCircuit_xaq); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xf1d", &get_SynchronousMachineEquivalentCircuit_xf1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xfd", &get_SynchronousMachineEquivalentCircuit_xfd); + get_map.emplace("SynchronousMachineEquivalentCircuit.r1d", &get_SynchronousMachineEquivalentCircuit_r1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.r1q", &get_SynchronousMachineEquivalentCircuit_r1q); + get_map.emplace("SynchronousMachineEquivalentCircuit.r2q", &get_SynchronousMachineEquivalentCircuit_r2q); + get_map.emplace("SynchronousMachineEquivalentCircuit.rfd", &get_SynchronousMachineEquivalentCircuit_rfd); + get_map.emplace("SynchronousMachineEquivalentCircuit.x1d", &get_SynchronousMachineEquivalentCircuit_x1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.x1q", &get_SynchronousMachineEquivalentCircuit_x1q); + get_map.emplace("SynchronousMachineEquivalentCircuit.x2q", &get_SynchronousMachineEquivalentCircuit_x2q); + get_map.emplace("SynchronousMachineEquivalentCircuit.xad", &get_SynchronousMachineEquivalentCircuit_xad); + get_map.emplace("SynchronousMachineEquivalentCircuit.xaq", &get_SynchronousMachineEquivalentCircuit_xaq); + get_map.emplace("SynchronousMachineEquivalentCircuit.xf1d", &get_SynchronousMachineEquivalentCircuit_xf1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.xfd", &get_SynchronousMachineEquivalentCircuit_xfd); } void SynchronousMachineEquivalentCircuit::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void SynchronousMachineEquivalentCircuit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineEquivalentCircuit::declare() { return BaseClassDefiner(SynchronousMachineEquivalentCircuit::addConstructToMap, SynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap, SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap, SynchronousMachineEquivalentCircuit::debugName); } +std::map SynchronousMachineEquivalentCircuit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDetailed::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineEquivalentCircuit_factory() diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineEquivalentCircuit.hpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineEquivalentCircuit.hpp index bc55bc9cd..c9b662081 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineEquivalentCircuit.hpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineEquivalentCircuit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDetailed.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineEquivalentCircuit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineSimplified.cpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineSimplified.cpp index 565a93b19..92f7e9639 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineSimplified.cpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineSimplified.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineSimplified(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + SynchronousMachineSimplified::SynchronousMachineSimplified() {} SynchronousMachineSimplified::~SynchronousMachineSimplified() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineSimplified::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineSimplified::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineSimplified::getPossibleProfilesForClass() const +const std::string& SynchronousMachineSimplified::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineSimplified::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineSimplified::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineSimplified::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineSimplified::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineSimplified::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char SynchronousMachineSimplified::debugName[] = "SynchronousMachineSimplified"; @@ -46,7 +78,7 @@ const char* SynchronousMachineSimplified::debugString() const void SynchronousMachineSimplified::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineSimplified", &SynchronousMachineSimplified_factory); + factory_map.emplace("SynchronousMachineSimplified", &SynchronousMachineSimplified_factory); } void SynchronousMachineSimplified::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void SynchronousMachineSimplified::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineSimplified::declare() { return BaseClassDefiner(SynchronousMachineSimplified::addConstructToMap, SynchronousMachineSimplified::addPrimitiveAssignFnsToMap, SynchronousMachineSimplified::addClassAssignFnsToMap, SynchronousMachineSimplified::debugName); } +std::map SynchronousMachineSimplified::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineSimplified_factory() diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineSimplified.hpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineSimplified.hpp index 0de0ea229..3a5ac4fac 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineSimplified.hpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineSimplified.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineSimplified_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineTimeConstantReactance.cpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineTimeConstantReactance.cpp index 0abb79508..ab9ae715f 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineTimeConstantReactance.cpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineTimeConstantReactance.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineTimeConstantReactance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineTimeConstantReactance.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.modelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.rotorType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tpdo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tppdo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tppqo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tpqo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectSubtrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectSync", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectTrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadSubtrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadSync", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadTrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineTimeConstantReactance::SynchronousMachineTimeConstantReactance() {} SynchronousMachineTimeConstantReactance::~SynchronousMachineTimeConstantReactance() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineTimeConstantReactance::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineTimeConstantReactance::getClassNamespaceUrl() const { - { "cim:SynchronousMachineTimeConstantReactance.ks", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.modelType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.rotorType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tc", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tpdo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tppdo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tppqo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tpqo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectSync", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectTrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadSync", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadTrans", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineTimeConstantReactance::getPossibleProfilesForClass() const +const std::string& SynchronousMachineTimeConstantReactance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineTimeConstantReactance::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineTimeConstantReactance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDetailed::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineTimeConstantReactance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineTimeConstantReactance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineTimeConstantReactance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineTimeConstantReactance_ks(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* SynchronousMachineTimeConstantReactance::debugString() const void SynchronousMachineTimeConstantReactance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineTimeConstantReactance", &SynchronousMachineTimeConstantReactance_factory); + factory_map.emplace("SynchronousMachineTimeConstantReactance", &SynchronousMachineTimeConstantReactance_factory); } void SynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.ks", &assign_SynchronousMachineTimeConstantReactance_ks); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.modelType", &assign_SynchronousMachineTimeConstantReactance_modelType); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.rotorType", &assign_SynchronousMachineTimeConstantReactance_rotorType); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tc", &assign_SynchronousMachineTimeConstantReactance_tc); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpdo", &assign_SynchronousMachineTimeConstantReactance_tpdo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppdo", &assign_SynchronousMachineTimeConstantReactance_tppdo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppqo", &assign_SynchronousMachineTimeConstantReactance_tppqo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpqo", &assign_SynchronousMachineTimeConstantReactance_tpqo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", &assign_SynchronousMachineTimeConstantReactance_xDirectSubtrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSync", &assign_SynchronousMachineTimeConstantReactance_xDirectSync); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectTrans", &assign_SynchronousMachineTimeConstantReactance_xDirectTrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", &assign_SynchronousMachineTimeConstantReactance_xQuadSubtrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSync", &assign_SynchronousMachineTimeConstantReactance_xQuadSync); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadTrans", &assign_SynchronousMachineTimeConstantReactance_xQuadTrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.ks", &assign_SynchronousMachineTimeConstantReactance_ks); + assign_map.emplace("SynchronousMachineTimeConstantReactance.modelType", &assign_SynchronousMachineTimeConstantReactance_modelType); + assign_map.emplace("SynchronousMachineTimeConstantReactance.rotorType", &assign_SynchronousMachineTimeConstantReactance_rotorType); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tc", &assign_SynchronousMachineTimeConstantReactance_tc); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tpdo", &assign_SynchronousMachineTimeConstantReactance_tpdo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tppdo", &assign_SynchronousMachineTimeConstantReactance_tppdo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tppqo", &assign_SynchronousMachineTimeConstantReactance_tppqo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tpqo", &assign_SynchronousMachineTimeConstantReactance_tpqo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSubtrans", &assign_SynchronousMachineTimeConstantReactance_xDirectSubtrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSync", &assign_SynchronousMachineTimeConstantReactance_xDirectSync); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectTrans", &assign_SynchronousMachineTimeConstantReactance_xDirectTrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSubtrans", &assign_SynchronousMachineTimeConstantReactance_xQuadSubtrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSync", &assign_SynchronousMachineTimeConstantReactance_xQuadSync); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadTrans", &assign_SynchronousMachineTimeConstantReactance_xQuadTrans); } void SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,18 +526,18 @@ void SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unorde void SynchronousMachineTimeConstantReactance::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.ks", &get_SynchronousMachineTimeConstantReactance_ks); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tc", &get_SynchronousMachineTimeConstantReactance_tc); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpdo", &get_SynchronousMachineTimeConstantReactance_tpdo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppdo", &get_SynchronousMachineTimeConstantReactance_tppdo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppqo", &get_SynchronousMachineTimeConstantReactance_tppqo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpqo", &get_SynchronousMachineTimeConstantReactance_tpqo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", &get_SynchronousMachineTimeConstantReactance_xDirectSubtrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSync", &get_SynchronousMachineTimeConstantReactance_xDirectSync); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectTrans", &get_SynchronousMachineTimeConstantReactance_xDirectTrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", &get_SynchronousMachineTimeConstantReactance_xQuadSubtrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSync", &get_SynchronousMachineTimeConstantReactance_xQuadSync); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadTrans", &get_SynchronousMachineTimeConstantReactance_xQuadTrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.ks", &get_SynchronousMachineTimeConstantReactance_ks); + get_map.emplace("SynchronousMachineTimeConstantReactance.tc", &get_SynchronousMachineTimeConstantReactance_tc); + get_map.emplace("SynchronousMachineTimeConstantReactance.tpdo", &get_SynchronousMachineTimeConstantReactance_tpdo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tppdo", &get_SynchronousMachineTimeConstantReactance_tppdo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tppqo", &get_SynchronousMachineTimeConstantReactance_tppqo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tpqo", &get_SynchronousMachineTimeConstantReactance_tpqo); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSubtrans", &get_SynchronousMachineTimeConstantReactance_xDirectSubtrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSync", &get_SynchronousMachineTimeConstantReactance_xDirectSync); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectTrans", &get_SynchronousMachineTimeConstantReactance_xDirectTrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSubtrans", &get_SynchronousMachineTimeConstantReactance_xQuadSubtrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSync", &get_SynchronousMachineTimeConstantReactance_xQuadSync); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadTrans", &get_SynchronousMachineTimeConstantReactance_xQuadTrans); } void SynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const @@ -516,8 +548,14 @@ void SynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.modelType", &get_SynchronousMachineTimeConstantReactance_modelType); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.rotorType", &get_SynchronousMachineTimeConstantReactance_rotorType); + get_map.emplace("SynchronousMachineTimeConstantReactance.modelType", &get_SynchronousMachineTimeConstantReactance_modelType); + get_map.emplace("SynchronousMachineTimeConstantReactance.rotorType", &get_SynchronousMachineTimeConstantReactance_rotorType); +} + +bool SynchronousMachineTimeConstantReactance::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachineTimeConstantReactance" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachineTimeConstantReactance::declare() @@ -525,6 +563,14 @@ const BaseClassDefiner SynchronousMachineTimeConstantReactance::declare() return BaseClassDefiner(SynchronousMachineTimeConstantReactance::addConstructToMap, SynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap, SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap, SynchronousMachineTimeConstantReactance::debugName); } +std::map SynchronousMachineTimeConstantReactance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDetailed::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineTimeConstantReactance_factory() diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineTimeConstantReactance.hpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineTimeConstantReactance.hpp index 51a881b24..94290495c 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineTimeConstantReactance.hpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineTimeConstantReactance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDetailed.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "RotorKind.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineTimeConstantReactance_factory(); diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineUserDefined.cpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineUserDefined.cpp index 9bdfab19d..ad7469e11 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineUserDefined::SynchronousMachineUserDefined() {} SynchronousMachineUserDefined::~SynchronousMachineUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineUserDefined::getClassNamespaceUrl() const { - { "cim:SynchronousMachineUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineUserDefined::getPossibleProfilesForClass() const +const std::string& SynchronousMachineUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineUserDefined::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* SynchronousMachineUserDefined::debugString() const void SynchronousMachineUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineUserDefined", &SynchronousMachineUserDefined_factory); + factory_map.emplace("SynchronousMachineUserDefined", &SynchronousMachineUserDefined_factory); } void SynchronousMachineUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineUserDefined.proprietary", &assign_SynchronousMachineUserDefined_proprietary); + assign_map.emplace("SynchronousMachineUserDefined.proprietary", &assign_SynchronousMachineUserDefined_proprietary); } void SynchronousMachineUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_SynchronousMachineUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("SynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_SynchronousMachineUserDefined_ProprietaryParameterDynamics); } void SynchronousMachineUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineUserDefined.proprietary", &get_SynchronousMachineUserDefined_proprietary); + get_map.emplace("SynchronousMachineUserDefined.proprietary", &get_SynchronousMachineUserDefined_proprietary); } void SynchronousMachineUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void SynchronousMachineUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineUserDefined::declare() { return BaseClassDefiner(SynchronousMachineUserDefined::addConstructToMap, SynchronousMachineUserDefined::addPrimitiveAssignFnsToMap, SynchronousMachineUserDefined::addClassAssignFnsToMap, SynchronousMachineUserDefined::debugName); } +std::map SynchronousMachineUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/SynchronousMachineUserDefined.hpp b/CGMES_2.4.13_18DEC2013/SynchronousMachineUserDefined.hpp index 6a9b6c7f7..9ce056aa5 100644 --- a/CGMES_2.4.13_18DEC2013/SynchronousMachineUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/SynchronousMachineUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TapChanger.cpp b/CGMES_2.4.13_18DEC2013/TapChanger.cpp index eeecf62b0..48238a8c2 100644 --- a/CGMES_2.4.13_18DEC2013/TapChanger.cpp +++ b/CGMES_2.4.13_18DEC2013/TapChanger.cpp @@ -14,44 +14,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChanger.SvTapStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TapChanger.TapChangerControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.TapSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.controlEnabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "TapChanger.highStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.lowStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.ltcFlag", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.neutralStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.neutralU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.normalStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.step", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + TapChanger::TapChanger() : SvTapStep(nullptr), TapChangerControl(nullptr) {} TapChanger::~TapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChanger::getClassNamespaceUrl() const { - { "cim:TapChanger.SvTapStep", { CGMESProfile::SV, } }, - { "cim:TapChanger.TapChangerControl", { CGMESProfile::EQ, } }, - { "cim:TapChanger.TapSchedules", { CGMESProfile::EQ, } }, - { "cim:TapChanger.controlEnabled", { CGMESProfile::SSH, } }, - { "cim:TapChanger.highStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.lowStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.ltcFlag", { CGMESProfile::EQ, } }, - { "cim:TapChanger.neutralStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.neutralU", { CGMESProfile::EQ, } }, - { "cim:TapChanger.normalStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.step", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChanger::getPossibleProfilesForClass() const +const std::string& TapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChanger::getPossibleProfilesForAttributes() const +const std::list& TapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvTapStep_TapChanger(BaseClass*, BaseClass*); @@ -361,45 +393,45 @@ const char* TapChanger::debugString() const void TapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChanger", &TapChanger_factory); + factory_map.emplace("TapChanger", &TapChanger_factory); } void TapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChanger.controlEnabled", &assign_TapChanger_controlEnabled); - assign_map.emplace("cim:TapChanger.highStep", &assign_TapChanger_highStep); - assign_map.emplace("cim:TapChanger.lowStep", &assign_TapChanger_lowStep); - assign_map.emplace("cim:TapChanger.ltcFlag", &assign_TapChanger_ltcFlag); - assign_map.emplace("cim:TapChanger.neutralStep", &assign_TapChanger_neutralStep); - assign_map.emplace("cim:TapChanger.neutralU", &assign_TapChanger_neutralU); - assign_map.emplace("cim:TapChanger.normalStep", &assign_TapChanger_normalStep); - assign_map.emplace("cim:TapChanger.step", &assign_TapChanger_step); + assign_map.emplace("TapChanger.controlEnabled", &assign_TapChanger_controlEnabled); + assign_map.emplace("TapChanger.highStep", &assign_TapChanger_highStep); + assign_map.emplace("TapChanger.lowStep", &assign_TapChanger_lowStep); + assign_map.emplace("TapChanger.ltcFlag", &assign_TapChanger_ltcFlag); + assign_map.emplace("TapChanger.neutralStep", &assign_TapChanger_neutralStep); + assign_map.emplace("TapChanger.neutralU", &assign_TapChanger_neutralU); + assign_map.emplace("TapChanger.normalStep", &assign_TapChanger_normalStep); + assign_map.emplace("TapChanger.step", &assign_TapChanger_step); } void TapChanger::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChanger.SvTapStep", &assign_TapChanger_SvTapStep); - assign_map.emplace("cim:TapChanger.TapChangerControl", &assign_TapChanger_TapChangerControl); - assign_map.emplace("cim:TapChanger.TapSchedules", &assign_TapChanger_TapSchedules); + assign_map.emplace("TapChanger.SvTapStep", &assign_TapChanger_SvTapStep); + assign_map.emplace("TapChanger.TapChangerControl", &assign_TapChanger_TapChangerControl); + assign_map.emplace("TapChanger.TapSchedules", &assign_TapChanger_TapSchedules); } void TapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TapChanger.controlEnabled", &get_TapChanger_controlEnabled); - get_map.emplace("cim:TapChanger.highStep", &get_TapChanger_highStep); - get_map.emplace("cim:TapChanger.lowStep", &get_TapChanger_lowStep); - get_map.emplace("cim:TapChanger.ltcFlag", &get_TapChanger_ltcFlag); - get_map.emplace("cim:TapChanger.neutralStep", &get_TapChanger_neutralStep); - get_map.emplace("cim:TapChanger.neutralU", &get_TapChanger_neutralU); - get_map.emplace("cim:TapChanger.normalStep", &get_TapChanger_normalStep); - get_map.emplace("cim:TapChanger.step", &get_TapChanger_step); + get_map.emplace("TapChanger.controlEnabled", &get_TapChanger_controlEnabled); + get_map.emplace("TapChanger.highStep", &get_TapChanger_highStep); + get_map.emplace("TapChanger.lowStep", &get_TapChanger_lowStep); + get_map.emplace("TapChanger.ltcFlag", &get_TapChanger_ltcFlag); + get_map.emplace("TapChanger.neutralStep", &get_TapChanger_neutralStep); + get_map.emplace("TapChanger.neutralU", &get_TapChanger_neutralU); + get_map.emplace("TapChanger.normalStep", &get_TapChanger_normalStep); + get_map.emplace("TapChanger.step", &get_TapChanger_step); } void TapChanger::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TapChanger.TapChangerControl", &get_TapChanger_TapChangerControl); + get_map.emplace("TapChanger.TapChangerControl", &get_TapChanger_TapChangerControl); } void TapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -407,11 +439,25 @@ void TapChanger::addEnumGetFnsToMap(std::map& get_map PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool TapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapChanger::declare() { return BaseClassDefiner(TapChanger::addConstructToMap, TapChanger::addPrimitiveAssignFnsToMap, TapChanger::addClassAssignFnsToMap, TapChanger::debugName); } +std::map TapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChanger_factory() diff --git a/CGMES_2.4.13_18DEC2013/TapChanger.hpp b/CGMES_2.4.13_18DEC2013/TapChanger.hpp index f76517308..5f1807583 100644 --- a/CGMES_2.4.13_18DEC2013/TapChanger.hpp +++ b/CGMES_2.4.13_18DEC2013/TapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChanger_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TapChangerControl.cpp b/CGMES_2.4.13_18DEC2013/TapChangerControl.cpp index 7c6239dff..ebda94889 100644 --- a/CGMES_2.4.13_18DEC2013/TapChangerControl.cpp +++ b/CGMES_2.4.13_18DEC2013/TapChangerControl.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChangerControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChangerControl.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapChangerControl::TapChangerControl() {} TapChangerControl::~TapChangerControl() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChangerControl::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChangerControl::getClassNamespaceUrl() const { - { "cim:TapChangerControl.TapChanger", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChangerControl::getPossibleProfilesForClass() const +const std::string& TapChangerControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChangerControl::getPossibleProfilesForAttributes() const +const std::list& TapChangerControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChangerControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChangerControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChangerControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_TapChangerControl(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* TapChangerControl::debugString() const void TapChangerControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChangerControl", &TapChangerControl_factory); + factory_map.emplace("TapChangerControl", &TapChangerControl_factory); } void TapChangerControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void TapChangerControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChangerControl.TapChanger", &assign_TapChangerControl_TapChanger); + assign_map.emplace("TapChangerControl.TapChanger", &assign_TapChangerControl_TapChanger); } void TapChangerControl::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void TapChangerControl::addEnumGetFnsToMap(std::map& RegulatingControl::addEnumGetFnsToMap(get_map); } +bool TapChangerControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapChangerControl" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapChangerControl::declare() { return BaseClassDefiner(TapChangerControl::addConstructToMap, TapChangerControl::addPrimitiveAssignFnsToMap, TapChangerControl::addClassAssignFnsToMap, TapChangerControl::debugName); } +std::map TapChangerControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChangerControl_factory() diff --git a/CGMES_2.4.13_18DEC2013/TapChangerControl.hpp b/CGMES_2.4.13_18DEC2013/TapChangerControl.hpp index ee70475dc..6d4e53403 100644 --- a/CGMES_2.4.13_18DEC2013/TapChangerControl.hpp +++ b/CGMES_2.4.13_18DEC2013/TapChangerControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChangerControl_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TapChangerTablePoint.cpp b/CGMES_2.4.13_18DEC2013/TapChangerTablePoint.cpp index 2044a9212..89de93074 100644 --- a/CGMES_2.4.13_18DEC2013/TapChangerTablePoint.cpp +++ b/CGMES_2.4.13_18DEC2013/TapChangerTablePoint.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChangerTablePoint.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.step", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapChangerTablePoint::TapChangerTablePoint() {} TapChangerTablePoint::~TapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:TapChangerTablePoint.b", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.g", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.r", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.ratio", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.step", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.x", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& TapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& TapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChangerTablePoint_b(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* TapChangerTablePoint::debugString() const void TapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChangerTablePoint", &TapChangerTablePoint_factory); + factory_map.emplace("TapChangerTablePoint", &TapChangerTablePoint_factory); } void TapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChangerTablePoint.b", &assign_TapChangerTablePoint_b); - assign_map.emplace("cim:TapChangerTablePoint.g", &assign_TapChangerTablePoint_g); - assign_map.emplace("cim:TapChangerTablePoint.r", &assign_TapChangerTablePoint_r); - assign_map.emplace("cim:TapChangerTablePoint.ratio", &assign_TapChangerTablePoint_ratio); - assign_map.emplace("cim:TapChangerTablePoint.step", &assign_TapChangerTablePoint_step); - assign_map.emplace("cim:TapChangerTablePoint.x", &assign_TapChangerTablePoint_x); + assign_map.emplace("TapChangerTablePoint.b", &assign_TapChangerTablePoint_b); + assign_map.emplace("TapChangerTablePoint.g", &assign_TapChangerTablePoint_g); + assign_map.emplace("TapChangerTablePoint.r", &assign_TapChangerTablePoint_r); + assign_map.emplace("TapChangerTablePoint.ratio", &assign_TapChangerTablePoint_ratio); + assign_map.emplace("TapChangerTablePoint.step", &assign_TapChangerTablePoint_step); + assign_map.emplace("TapChangerTablePoint.x", &assign_TapChangerTablePoint_x); } void TapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void TapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TapChangerTablePoint.b", &get_TapChangerTablePoint_b); - get_map.emplace("cim:TapChangerTablePoint.g", &get_TapChangerTablePoint_g); - get_map.emplace("cim:TapChangerTablePoint.r", &get_TapChangerTablePoint_r); - get_map.emplace("cim:TapChangerTablePoint.ratio", &get_TapChangerTablePoint_ratio); - get_map.emplace("cim:TapChangerTablePoint.step", &get_TapChangerTablePoint_step); - get_map.emplace("cim:TapChangerTablePoint.x", &get_TapChangerTablePoint_x); + get_map.emplace("TapChangerTablePoint.b", &get_TapChangerTablePoint_b); + get_map.emplace("TapChangerTablePoint.g", &get_TapChangerTablePoint_g); + get_map.emplace("TapChangerTablePoint.r", &get_TapChangerTablePoint_r); + get_map.emplace("TapChangerTablePoint.ratio", &get_TapChangerTablePoint_ratio); + get_map.emplace("TapChangerTablePoint.step", &get_TapChangerTablePoint_step); + get_map.emplace("TapChangerTablePoint.x", &get_TapChangerTablePoint_x); } void TapChangerTablePoint::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void TapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TapChangerTablePoint::declare() { return BaseClassDefiner(TapChangerTablePoint::addConstructToMap, TapChangerTablePoint::addPrimitiveAssignFnsToMap, TapChangerTablePoint::addClassAssignFnsToMap, TapChangerTablePoint::debugName); } +std::map TapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChangerTablePoint_factory() diff --git a/CGMES_2.4.13_18DEC2013/TapChangerTablePoint.hpp b/CGMES_2.4.13_18DEC2013/TapChangerTablePoint.hpp index aa6327644..5502418a9 100644 --- a/CGMES_2.4.13_18DEC2013/TapChangerTablePoint.hpp +++ b/CGMES_2.4.13_18DEC2013/TapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "PerCent.hpp" #include "Simple_Float.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChangerTablePoint_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TapSchedule.cpp b/CGMES_2.4.13_18DEC2013/TapSchedule.cpp index 039a79967..38ab32889 100644 --- a/CGMES_2.4.13_18DEC2013/TapSchedule.cpp +++ b/CGMES_2.4.13_18DEC2013/TapSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapSchedule.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapSchedule::TapSchedule() : TapChanger(nullptr) {} TapSchedule::~TapSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& TapSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapSchedule::getClassNamespaceUrl() const { - { "cim:TapSchedule.TapChanger", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapSchedule::getPossibleProfilesForClass() const +const std::string& TapSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapSchedule::getPossibleProfilesForAttributes() const +const std::list& TapSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_TapSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* TapSchedule::debugString() const void TapSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapSchedule", &TapSchedule_factory); + factory_map.emplace("TapSchedule", &TapSchedule_factory); } void TapSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void TapSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapSchedule.TapChanger", &assign_TapSchedule_TapChanger); + assign_map.emplace("TapSchedule.TapChanger", &assign_TapSchedule_TapChanger); } void TapSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void TapSchedule::addPrimitiveGetFnsToMap(std::map& g void TapSchedule::addClassGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TapSchedule.TapChanger", &get_TapSchedule_TapChanger); + get_map.emplace("TapSchedule.TapChanger", &get_TapSchedule_TapChanger); } void TapSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void TapSchedule::addEnumGetFnsToMap(std::map& get_ma SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool TapSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapSchedule::declare() { return BaseClassDefiner(TapSchedule::addConstructToMap, TapSchedule::addPrimitiveAssignFnsToMap, TapSchedule::addClassAssignFnsToMap, TapSchedule::debugName); } +std::map TapSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapSchedule_factory() diff --git a/CGMES_2.4.13_18DEC2013/TapSchedule.hpp b/CGMES_2.4.13_18DEC2013/TapSchedule.hpp index 70565884c..9fb6edc8b 100644 --- a/CGMES_2.4.13_18DEC2013/TapSchedule.hpp +++ b/CGMES_2.4.13_18DEC2013/TapSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapSchedule_factory(); diff --git a/CGMES_2.4.13_18DEC2013/Terminal.cpp b/CGMES_2.4.13_18DEC2013/Terminal.cpp index 25d0c3a25..53edba775 100644 --- a/CGMES_2.4.13_18DEC2013/Terminal.cpp +++ b/CGMES_2.4.13_18DEC2013/Terminal.cpp @@ -21,48 +21,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Terminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Terminal.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "Terminal.ConnectivityNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.ConverterDCSides", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.HasFirstMutualCoupling", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.HasSecondMutualCoupling", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Terminal.SvPowerFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "Terminal.TieFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "Terminal.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.phases", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Terminal::Terminal() : ConductingEquipment(nullptr), ConnectivityNode(nullptr), RegulatingControl(nullptr), SvPowerFlow(nullptr), TopologicalNode(nullptr) {} Terminal::~Terminal() {} -static const std::list PossibleProfilesForClass = +const std::list& Terminal::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Terminal::getClassNamespaceUrl() const { - { "cim:Terminal.ConductingEquipment", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:Terminal.ConnectivityNode", { CGMESProfile::EQ, } }, - { "cim:Terminal.ConverterDCSides", { CGMESProfile::EQ, } }, - { "cim:Terminal.HasFirstMutualCoupling", { CGMESProfile::EQ, } }, - { "cim:Terminal.HasSecondMutualCoupling", { CGMESProfile::EQ, } }, - { "cim:Terminal.RegulatingControl", { CGMESProfile::EQ, } }, - { "cim:Terminal.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:Terminal.SvPowerFlow", { CGMESProfile::SV, } }, - { "cim:Terminal.TieFlow", { CGMESProfile::EQ, } }, - { "cim:Terminal.TopologicalNode", { CGMESProfile::TP, } }, - { "cim:Terminal.TransformerEnd", { CGMESProfile::EQ, } }, - { "cim:Terminal.phases", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Terminal::getPossibleProfilesForClass() const +const std::string& Terminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Terminal::getPossibleProfilesForAttributes() const +const std::list& Terminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Terminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Terminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Terminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_Terminals(BaseClass*, BaseClass*); @@ -339,27 +371,27 @@ const char* Terminal::debugString() const void Terminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Terminal", &Terminal_factory); + factory_map.emplace("Terminal", &Terminal_factory); } void Terminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Terminal.phases", &assign_Terminal_phases); + assign_map.emplace("Terminal.phases", &assign_Terminal_phases); } void Terminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Terminal.ConductingEquipment", &assign_Terminal_ConductingEquipment); - assign_map.emplace("cim:Terminal.ConnectivityNode", &assign_Terminal_ConnectivityNode); - assign_map.emplace("cim:Terminal.ConverterDCSides", &assign_Terminal_ConverterDCSides); - assign_map.emplace("cim:Terminal.HasFirstMutualCoupling", &assign_Terminal_HasFirstMutualCoupling); - assign_map.emplace("cim:Terminal.HasSecondMutualCoupling", &assign_Terminal_HasSecondMutualCoupling); - assign_map.emplace("cim:Terminal.RegulatingControl", &assign_Terminal_RegulatingControl); - assign_map.emplace("cim:Terminal.RemoteInputSignal", &assign_Terminal_RemoteInputSignal); - assign_map.emplace("cim:Terminal.SvPowerFlow", &assign_Terminal_SvPowerFlow); - assign_map.emplace("cim:Terminal.TieFlow", &assign_Terminal_TieFlow); - assign_map.emplace("cim:Terminal.TopologicalNode", &assign_Terminal_TopologicalNode); - assign_map.emplace("cim:Terminal.TransformerEnd", &assign_Terminal_TransformerEnd); + assign_map.emplace("Terminal.ConductingEquipment", &assign_Terminal_ConductingEquipment); + assign_map.emplace("Terminal.ConnectivityNode", &assign_Terminal_ConnectivityNode); + assign_map.emplace("Terminal.ConverterDCSides", &assign_Terminal_ConverterDCSides); + assign_map.emplace("Terminal.HasFirstMutualCoupling", &assign_Terminal_HasFirstMutualCoupling); + assign_map.emplace("Terminal.HasSecondMutualCoupling", &assign_Terminal_HasSecondMutualCoupling); + assign_map.emplace("Terminal.RegulatingControl", &assign_Terminal_RegulatingControl); + assign_map.emplace("Terminal.RemoteInputSignal", &assign_Terminal_RemoteInputSignal); + assign_map.emplace("Terminal.SvPowerFlow", &assign_Terminal_SvPowerFlow); + assign_map.emplace("Terminal.TieFlow", &assign_Terminal_TieFlow); + assign_map.emplace("Terminal.TopologicalNode", &assign_Terminal_TopologicalNode); + assign_map.emplace("Terminal.TransformerEnd", &assign_Terminal_TransformerEnd); } void Terminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -370,15 +402,21 @@ void Terminal::addPrimitiveGetFnsToMap(std::map& get_ void Terminal::addClassGetFnsToMap(std::map& get_map) const { ACDCTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Terminal.ConductingEquipment", &get_Terminal_ConductingEquipment); - get_map.emplace("cim:Terminal.ConnectivityNode", &get_Terminal_ConnectivityNode); - get_map.emplace("cim:Terminal.TopologicalNode", &get_Terminal_TopologicalNode); + get_map.emplace("Terminal.ConductingEquipment", &get_Terminal_ConductingEquipment); + get_map.emplace("Terminal.ConnectivityNode", &get_Terminal_ConnectivityNode); + get_map.emplace("Terminal.TopologicalNode", &get_Terminal_TopologicalNode); } void Terminal::addEnumGetFnsToMap(std::map& get_map) const { ACDCTerminal::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Terminal.phases", &get_Terminal_phases); + get_map.emplace("Terminal.phases", &get_Terminal_phases); +} + +bool Terminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Terminal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Terminal::declare() @@ -386,6 +424,14 @@ const BaseClassDefiner Terminal::declare() return BaseClassDefiner(Terminal::addConstructToMap, Terminal::addPrimitiveAssignFnsToMap, Terminal::addClassAssignFnsToMap, Terminal::debugName); } +std::map Terminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Terminal_factory() diff --git a/CGMES_2.4.13_18DEC2013/Terminal.hpp b/CGMES_2.4.13_18DEC2013/Terminal.hpp index 58895e261..d2a2fbc22 100644 --- a/CGMES_2.4.13_18DEC2013/Terminal.hpp +++ b/CGMES_2.4.13_18DEC2013/Terminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PhaseCode.hpp" namespace CIMPP @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Terminal_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TextDiagramObject.cpp b/CGMES_2.4.13_18DEC2013/TextDiagramObject.cpp index 684542b39..e7492c696 100644 --- a/CGMES_2.4.13_18DEC2013/TextDiagramObject.cpp +++ b/CGMES_2.4.13_18DEC2013/TextDiagramObject.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TextDiagramObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TextDiagramObject.text", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + TextDiagramObject::TextDiagramObject() {} TextDiagramObject::~TextDiagramObject() {} -static const std::list PossibleProfilesForClass = +const std::list& TextDiagramObject::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TextDiagramObject::getClassNamespaceUrl() const { - { "cim:TextDiagramObject.text", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TextDiagramObject::getPossibleProfilesForClass() const +const std::string& TextDiagramObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TextDiagramObject::getPossibleProfilesForAttributes() const +const std::list& TextDiagramObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiagramObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TextDiagramObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TextDiagramObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TextDiagramObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TextDiagramObject_text(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* TextDiagramObject::debugString() const void TextDiagramObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TextDiagramObject", &TextDiagramObject_factory); + factory_map.emplace("TextDiagramObject", &TextDiagramObject_factory); } void TextDiagramObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TextDiagramObject.text", &assign_TextDiagramObject_text); + assign_map.emplace("TextDiagramObject.text", &assign_TextDiagramObject_text); } void TextDiagramObject::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void TextDiagramObject::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiagramObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TextDiagramObject.text", &get_TextDiagramObject_text); + get_map.emplace("TextDiagramObject.text", &get_TextDiagramObject_text); } void TextDiagramObject::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void TextDiagramObject::addEnumGetFnsToMap(std::map& DiagramObject::addEnumGetFnsToMap(get_map); } +bool TextDiagramObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TextDiagramObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TextDiagramObject::declare() { return BaseClassDefiner(TextDiagramObject::addConstructToMap, TextDiagramObject::addPrimitiveAssignFnsToMap, TextDiagramObject::addClassAssignFnsToMap, TextDiagramObject::debugName); } +std::map TextDiagramObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiagramObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TextDiagramObject_factory() diff --git a/CGMES_2.4.13_18DEC2013/TextDiagramObject.hpp b/CGMES_2.4.13_18DEC2013/TextDiagramObject.hpp index 188381ff3..c62abdc11 100644 --- a/CGMES_2.4.13_18DEC2013/TextDiagramObject.hpp +++ b/CGMES_2.4.13_18DEC2013/TextDiagramObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiagramObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TextDiagramObject_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ThermalGeneratingUnit.cpp b/CGMES_2.4.13_18DEC2013/ThermalGeneratingUnit.cpp index ee36322aa..833073d42 100644 --- a/CGMES_2.4.13_18DEC2013/ThermalGeneratingUnit.cpp +++ b/CGMES_2.4.13_18DEC2013/ThermalGeneratingUnit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ThermalGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ThermalGeneratingUnit.FossilFuels", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ThermalGeneratingUnit::ThermalGeneratingUnit() {} ThermalGeneratingUnit::~ThermalGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& ThermalGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ThermalGeneratingUnit::getClassNamespaceUrl() const { - { "cim:ThermalGeneratingUnit.FossilFuels", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ThermalGeneratingUnit::getPossibleProfilesForClass() const +const std::string& ThermalGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ThermalGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& ThermalGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ThermalGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ThermalGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ThermalGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_FossilFuel_ThermalGeneratingUnit(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* ThermalGeneratingUnit::debugString() const void ThermalGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ThermalGeneratingUnit", &ThermalGeneratingUnit_factory); + factory_map.emplace("ThermalGeneratingUnit", &ThermalGeneratingUnit_factory); } void ThermalGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void ThermalGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ThermalGeneratingUnit.FossilFuels", &assign_ThermalGeneratingUnit_FossilFuels); + assign_map.emplace("ThermalGeneratingUnit.FossilFuels", &assign_ThermalGeneratingUnit_FossilFuels); } void ThermalGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void ThermalGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ThermalGeneratingUnit::declare() { return BaseClassDefiner(ThermalGeneratingUnit::addConstructToMap, ThermalGeneratingUnit::addPrimitiveAssignFnsToMap, ThermalGeneratingUnit::addClassAssignFnsToMap, ThermalGeneratingUnit::debugName); } +std::map ThermalGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ThermalGeneratingUnit_factory() diff --git a/CGMES_2.4.13_18DEC2013/ThermalGeneratingUnit.hpp b/CGMES_2.4.13_18DEC2013/ThermalGeneratingUnit.hpp index 2bbb34a5f..a53f99495 100644 --- a/CGMES_2.4.13_18DEC2013/ThermalGeneratingUnit.hpp +++ b/CGMES_2.4.13_18DEC2013/ThermalGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ThermalGeneratingUnit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TieFlow.cpp b/CGMES_2.4.13_18DEC2013/TieFlow.cpp index 324dce327..08751bb20 100644 --- a/CGMES_2.4.13_18DEC2013/TieFlow.cpp +++ b/CGMES_2.4.13_18DEC2013/TieFlow.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TieFlow(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TieFlow.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TieFlow.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TieFlow.positiveFlowIn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TieFlow::TieFlow() : ControlArea(nullptr), Terminal(nullptr) {} TieFlow::~TieFlow() {} -static const std::list PossibleProfilesForClass = +const std::list& TieFlow::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TieFlow::getClassNamespaceUrl() const { - { "cim:TieFlow.ControlArea", { CGMESProfile::EQ, } }, - { "cim:TieFlow.Terminal", { CGMESProfile::EQ, } }, - { "cim:TieFlow.positiveFlowIn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TieFlow::getPossibleProfilesForClass() const +const std::string& TieFlow::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TieFlow::getPossibleProfilesForAttributes() const +const std::list& TieFlow::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TieFlow::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TieFlow::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TieFlow::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_TieFlow(BaseClass*, BaseClass*); @@ -142,31 +174,31 @@ const char* TieFlow::debugString() const void TieFlow::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TieFlow", &TieFlow_factory); + factory_map.emplace("TieFlow", &TieFlow_factory); } void TieFlow::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TieFlow.positiveFlowIn", &assign_TieFlow_positiveFlowIn); + assign_map.emplace("TieFlow.positiveFlowIn", &assign_TieFlow_positiveFlowIn); } void TieFlow::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TieFlow.ControlArea", &assign_TieFlow_ControlArea); - assign_map.emplace("cim:TieFlow.Terminal", &assign_TieFlow_Terminal); + assign_map.emplace("TieFlow.ControlArea", &assign_TieFlow_ControlArea); + assign_map.emplace("TieFlow.Terminal", &assign_TieFlow_Terminal); } void TieFlow::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TieFlow.positiveFlowIn", &get_TieFlow_positiveFlowIn); + get_map.emplace("TieFlow.positiveFlowIn", &get_TieFlow_positiveFlowIn); } void TieFlow::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TieFlow.ControlArea", &get_TieFlow_ControlArea); - get_map.emplace("cim:TieFlow.Terminal", &get_TieFlow_Terminal); + get_map.emplace("TieFlow.ControlArea", &get_TieFlow_ControlArea); + get_map.emplace("TieFlow.Terminal", &get_TieFlow_Terminal); } void TieFlow::addEnumGetFnsToMap(std::map& get_map) const @@ -174,11 +206,25 @@ void TieFlow::addEnumGetFnsToMap(std::map& get_map) c BaseClass::addEnumGetFnsToMap(get_map); } +bool TieFlow::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TieFlow" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TieFlow::declare() { return BaseClassDefiner(TieFlow::addConstructToMap, TieFlow::addPrimitiveAssignFnsToMap, TieFlow::addClassAssignFnsToMap, TieFlow::debugName); } +std::map TieFlow::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TieFlow_factory() diff --git a/CGMES_2.4.13_18DEC2013/TieFlow.hpp b/CGMES_2.4.13_18DEC2013/TieFlow.hpp index b25ac939b..60fbe5ced 100644 --- a/CGMES_2.4.13_18DEC2013/TieFlow.hpp +++ b/CGMES_2.4.13_18DEC2013/TieFlow.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TieFlow_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TopologicalIsland.cpp b/CGMES_2.4.13_18DEC2013/TopologicalIsland.cpp index 46b353666..3b19dc682 100644 --- a/CGMES_2.4.13_18DEC2013/TopologicalIsland.cpp +++ b/CGMES_2.4.13_18DEC2013/TopologicalIsland.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologicalIsland(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologicalIsland.AngleRefTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalIsland.TopologicalNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + TopologicalIsland::TopologicalIsland() : AngleRefTopologicalNode(nullptr) {} TopologicalIsland::~TopologicalIsland() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologicalIsland::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologicalIsland::getClassNamespaceUrl() const { - { "cim:TopologicalIsland.AngleRefTopologicalNode", { CGMESProfile::SV, } }, - { "cim:TopologicalIsland.TopologicalNodes", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologicalIsland::getPossibleProfilesForClass() const +const std::string& TopologicalIsland::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologicalIsland::getPossibleProfilesForAttributes() const +const std::list& TopologicalIsland::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologicalIsland::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologicalIsland::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologicalIsland::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_AngleRefTopologicalIsland(BaseClass*, BaseClass*); @@ -108,7 +140,7 @@ const char* TopologicalIsland::debugString() const void TopologicalIsland::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologicalIsland", &TopologicalIsland_factory); + factory_map.emplace("TopologicalIsland", &TopologicalIsland_factory); } void TopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -117,8 +149,8 @@ void TopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalIsland.AngleRefTopologicalNode", &assign_TopologicalIsland_AngleRefTopologicalNode); - assign_map.emplace("cim:TopologicalIsland.TopologicalNodes", &assign_TopologicalIsland_TopologicalNodes); + assign_map.emplace("TopologicalIsland.AngleRefTopologicalNode", &assign_TopologicalIsland_AngleRefTopologicalNode); + assign_map.emplace("TopologicalIsland.TopologicalNodes", &assign_TopologicalIsland_TopologicalNodes); } void TopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -129,8 +161,8 @@ void TopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalIsland.AngleRefTopologicalNode", &get_TopologicalIsland_AngleRefTopologicalNode); - get_map.emplace("cim:TopologicalIsland.TopologicalNodes", &get_TopologicalIsland_TopologicalNodes); + get_map.emplace("TopologicalIsland.AngleRefTopologicalNode", &get_TopologicalIsland_AngleRefTopologicalNode); + get_map.emplace("TopologicalIsland.TopologicalNodes", &get_TopologicalIsland_TopologicalNodes); } void TopologicalIsland::addEnumGetFnsToMap(std::map& get_map) const @@ -138,11 +170,25 @@ void TopologicalIsland::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TopologicalIsland::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologicalIsland" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologicalIsland::declare() { return BaseClassDefiner(TopologicalIsland::addConstructToMap, TopologicalIsland::addPrimitiveAssignFnsToMap, TopologicalIsland::addClassAssignFnsToMap, TopologicalIsland::debugName); } +std::map TopologicalIsland::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologicalIsland_factory() diff --git a/CGMES_2.4.13_18DEC2013/TopologicalIsland.hpp b/CGMES_2.4.13_18DEC2013/TopologicalIsland.hpp index a6c5a898c..312406394 100644 --- a/CGMES_2.4.13_18DEC2013/TopologicalIsland.hpp +++ b/CGMES_2.4.13_18DEC2013/TopologicalIsland.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologicalIsland_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TopologicalNode.cpp b/CGMES_2.4.13_18DEC2013/TopologicalNode.cpp index 962a0d94b..cdaacb4d5 100644 --- a/CGMES_2.4.13_18DEC2013/TopologicalNode.cpp +++ b/CGMES_2.4.13_18DEC2013/TopologicalNode.cpp @@ -19,49 +19,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologicalNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologicalNode.AngleRefTopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ConnectivityNodeContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ConnectivityNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ReportingGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "TopologicalNode.SvInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.SvVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "TopologicalNode.TopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.boundaryPoint", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + }; + return ClassAttrDetailsMap; +} + TopologicalNode::TopologicalNode() : AngleRefTopologicalIsland(nullptr), BaseVoltage(nullptr), ConnectivityNodeContainer(nullptr), ReportingGroup(nullptr), SvInjection(nullptr), SvVoltage(nullptr), TopologicalIsland(nullptr) {} TopologicalNode::~TopologicalNode() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologicalNode::getAttributeNames() const { - CGMESProfile::SV, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologicalNode::getClassNamespaceUrl() const { - { "cim:TopologicalNode.AngleRefTopologicalIsland", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.BaseVoltage", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ConnectivityNodeContainer", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ConnectivityNodes", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ReportingGroup", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.SvInjection", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.SvVoltage", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.Terminal", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.TopologicalIsland", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.boundaryPoint", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndIsoCode", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndName", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndNameTso", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndIsoCode", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndName", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndNameTso", { CGMESProfile::TP_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologicalNode::getPossibleProfilesForClass() const +const std::string& TopologicalNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologicalNode::getPossibleProfilesForAttributes() const +const std::list& TopologicalNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologicalNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologicalNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologicalNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalIsland_AngleRefTopologicalNode(BaseClass*, BaseClass*); @@ -476,51 +508,51 @@ const char* TopologicalNode::debugString() const void TopologicalNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologicalNode", &TopologicalNode_factory); + factory_map.emplace("TopologicalNode", &TopologicalNode_factory); } void TopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalNode.boundaryPoint", &assign_TopologicalNode_boundaryPoint); - assign_map.emplace("cim:TopologicalNode.fromEndIsoCode", &assign_TopologicalNode_fromEndIsoCode); - assign_map.emplace("cim:TopologicalNode.fromEndName", &assign_TopologicalNode_fromEndName); - assign_map.emplace("cim:TopologicalNode.fromEndNameTso", &assign_TopologicalNode_fromEndNameTso); - assign_map.emplace("cim:TopologicalNode.toEndIsoCode", &assign_TopologicalNode_toEndIsoCode); - assign_map.emplace("cim:TopologicalNode.toEndName", &assign_TopologicalNode_toEndName); - assign_map.emplace("cim:TopologicalNode.toEndNameTso", &assign_TopologicalNode_toEndNameTso); + assign_map.emplace("TopologicalNode.boundaryPoint", &assign_TopologicalNode_boundaryPoint); + assign_map.emplace("TopologicalNode.fromEndIsoCode", &assign_TopologicalNode_fromEndIsoCode); + assign_map.emplace("TopologicalNode.fromEndName", &assign_TopologicalNode_fromEndName); + assign_map.emplace("TopologicalNode.fromEndNameTso", &assign_TopologicalNode_fromEndNameTso); + assign_map.emplace("TopologicalNode.toEndIsoCode", &assign_TopologicalNode_toEndIsoCode); + assign_map.emplace("TopologicalNode.toEndName", &assign_TopologicalNode_toEndName); + assign_map.emplace("TopologicalNode.toEndNameTso", &assign_TopologicalNode_toEndNameTso); } void TopologicalNode::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalNode.AngleRefTopologicalIsland", &assign_TopologicalNode_AngleRefTopologicalIsland); - assign_map.emplace("cim:TopologicalNode.BaseVoltage", &assign_TopologicalNode_BaseVoltage); - assign_map.emplace("cim:TopologicalNode.ConnectivityNodeContainer", &assign_TopologicalNode_ConnectivityNodeContainer); - assign_map.emplace("cim:TopologicalNode.ConnectivityNodes", &assign_TopologicalNode_ConnectivityNodes); - assign_map.emplace("cim:TopologicalNode.ReportingGroup", &assign_TopologicalNode_ReportingGroup); - assign_map.emplace("cim:TopologicalNode.SvInjection", &assign_TopologicalNode_SvInjection); - assign_map.emplace("cim:TopologicalNode.SvVoltage", &assign_TopologicalNode_SvVoltage); - assign_map.emplace("cim:TopologicalNode.Terminal", &assign_TopologicalNode_Terminal); - assign_map.emplace("cim:TopologicalNode.TopologicalIsland", &assign_TopologicalNode_TopologicalIsland); + assign_map.emplace("TopologicalNode.AngleRefTopologicalIsland", &assign_TopologicalNode_AngleRefTopologicalIsland); + assign_map.emplace("TopologicalNode.BaseVoltage", &assign_TopologicalNode_BaseVoltage); + assign_map.emplace("TopologicalNode.ConnectivityNodeContainer", &assign_TopologicalNode_ConnectivityNodeContainer); + assign_map.emplace("TopologicalNode.ConnectivityNodes", &assign_TopologicalNode_ConnectivityNodes); + assign_map.emplace("TopologicalNode.ReportingGroup", &assign_TopologicalNode_ReportingGroup); + assign_map.emplace("TopologicalNode.SvInjection", &assign_TopologicalNode_SvInjection); + assign_map.emplace("TopologicalNode.SvVoltage", &assign_TopologicalNode_SvVoltage); + assign_map.emplace("TopologicalNode.Terminal", &assign_TopologicalNode_Terminal); + assign_map.emplace("TopologicalNode.TopologicalIsland", &assign_TopologicalNode_TopologicalIsland); } void TopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalNode.boundaryPoint", &get_TopologicalNode_boundaryPoint); - get_map.emplace("cim:TopologicalNode.fromEndIsoCode", &get_TopologicalNode_fromEndIsoCode); - get_map.emplace("cim:TopologicalNode.fromEndName", &get_TopologicalNode_fromEndName); - get_map.emplace("cim:TopologicalNode.fromEndNameTso", &get_TopologicalNode_fromEndNameTso); - get_map.emplace("cim:TopologicalNode.toEndIsoCode", &get_TopologicalNode_toEndIsoCode); - get_map.emplace("cim:TopologicalNode.toEndName", &get_TopologicalNode_toEndName); - get_map.emplace("cim:TopologicalNode.toEndNameTso", &get_TopologicalNode_toEndNameTso); + get_map.emplace("TopologicalNode.boundaryPoint", &get_TopologicalNode_boundaryPoint); + get_map.emplace("TopologicalNode.fromEndIsoCode", &get_TopologicalNode_fromEndIsoCode); + get_map.emplace("TopologicalNode.fromEndName", &get_TopologicalNode_fromEndName); + get_map.emplace("TopologicalNode.fromEndNameTso", &get_TopologicalNode_fromEndNameTso); + get_map.emplace("TopologicalNode.toEndIsoCode", &get_TopologicalNode_toEndIsoCode); + get_map.emplace("TopologicalNode.toEndName", &get_TopologicalNode_toEndName); + get_map.emplace("TopologicalNode.toEndNameTso", &get_TopologicalNode_toEndNameTso); } void TopologicalNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalNode.BaseVoltage", &get_TopologicalNode_BaseVoltage); - get_map.emplace("cim:TopologicalNode.ConnectivityNodeContainer", &get_TopologicalNode_ConnectivityNodeContainer); - get_map.emplace("cim:TopologicalNode.ReportingGroup", &get_TopologicalNode_ReportingGroup); + get_map.emplace("TopologicalNode.BaseVoltage", &get_TopologicalNode_BaseVoltage); + get_map.emplace("TopologicalNode.ConnectivityNodeContainer", &get_TopologicalNode_ConnectivityNodeContainer); + get_map.emplace("TopologicalNode.ReportingGroup", &get_TopologicalNode_ReportingGroup); } void TopologicalNode::addEnumGetFnsToMap(std::map& get_map) const @@ -528,11 +560,25 @@ void TopologicalNode::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TopologicalNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologicalNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologicalNode::declare() { return BaseClassDefiner(TopologicalNode::addConstructToMap, TopologicalNode::addPrimitiveAssignFnsToMap, TopologicalNode::addClassAssignFnsToMap, TopologicalNode::debugName); } +std::map TopologicalNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologicalNode_factory() diff --git a/CGMES_2.4.13_18DEC2013/TopologicalNode.hpp b/CGMES_2.4.13_18DEC2013/TopologicalNode.hpp index b9eecea3e..361b52e5d 100644 --- a/CGMES_2.4.13_18DEC2013/TopologicalNode.hpp +++ b/CGMES_2.4.13_18DEC2013/TopologicalNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "String.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologicalNode_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TopologyBoundaryVersion.cpp b/CGMES_2.4.13_18DEC2013/TopologyBoundaryVersion.cpp index ca78ca44d..f3f67b1df 100644 --- a/CGMES_2.4.13_18DEC2013/TopologyBoundaryVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/TopologyBoundaryVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologyBoundaryVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::TP_BD, + }, + CGMESProfile::TP_BD + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologyBoundaryVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + }; + return ClassAttrDetailsMap; +} + TopologyBoundaryVersion::TopologyBoundaryVersion() {} TopologyBoundaryVersion::~TopologyBoundaryVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologyBoundaryVersion::getAttributeNames() const { - CGMESProfile::TP_BD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologyBoundaryVersion::getClassNamespaceUrl() const { - { "cim:TopologyBoundaryVersion.baseUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.baseURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.date", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.differenceModelURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.entsoeUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.entsoeURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.modelDescriptionURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.namespaceRDF", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.namespaceUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.shortName", { CGMESProfile::TP_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologyBoundaryVersion::getPossibleProfilesForClass() const +const std::string& TopologyBoundaryVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologyBoundaryVersion::getPossibleProfilesForAttributes() const +const std::list& TopologyBoundaryVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologyBoundaryVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologyBoundaryVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologyBoundaryVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologyBoundaryVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* TopologyBoundaryVersion::debugString() const void TopologyBoundaryVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologyBoundaryVersion", &TopologyBoundaryVersion_factory); + factory_map.emplace("TopologyBoundaryVersion", &TopologyBoundaryVersion_factory); } void TopologyBoundaryVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologyBoundaryVersion.baseUML", &assign_TopologyBoundaryVersion_baseUML); - assign_map.emplace("cim:TopologyBoundaryVersion.baseURI", &assign_TopologyBoundaryVersion_baseURI); - assign_map.emplace("cim:TopologyBoundaryVersion.date", &assign_TopologyBoundaryVersion_date); - assign_map.emplace("cim:TopologyBoundaryVersion.differenceModelURI", &assign_TopologyBoundaryVersion_differenceModelURI); - assign_map.emplace("cim:TopologyBoundaryVersion.entsoeUML", &assign_TopologyBoundaryVersion_entsoeUML); - assign_map.emplace("cim:TopologyBoundaryVersion.entsoeURI", &assign_TopologyBoundaryVersion_entsoeURI); - assign_map.emplace("cim:TopologyBoundaryVersion.modelDescriptionURI", &assign_TopologyBoundaryVersion_modelDescriptionURI); - assign_map.emplace("cim:TopologyBoundaryVersion.namespaceRDF", &assign_TopologyBoundaryVersion_namespaceRDF); - assign_map.emplace("cim:TopologyBoundaryVersion.namespaceUML", &assign_TopologyBoundaryVersion_namespaceUML); - assign_map.emplace("cim:TopologyBoundaryVersion.shortName", &assign_TopologyBoundaryVersion_shortName); + assign_map.emplace("TopologyBoundaryVersion.baseUML", &assign_TopologyBoundaryVersion_baseUML); + assign_map.emplace("TopologyBoundaryVersion.baseURI", &assign_TopologyBoundaryVersion_baseURI); + assign_map.emplace("TopologyBoundaryVersion.date", &assign_TopologyBoundaryVersion_date); + assign_map.emplace("TopologyBoundaryVersion.differenceModelURI", &assign_TopologyBoundaryVersion_differenceModelURI); + assign_map.emplace("TopologyBoundaryVersion.entsoeUML", &assign_TopologyBoundaryVersion_entsoeUML); + assign_map.emplace("TopologyBoundaryVersion.entsoeURI", &assign_TopologyBoundaryVersion_entsoeURI); + assign_map.emplace("TopologyBoundaryVersion.modelDescriptionURI", &assign_TopologyBoundaryVersion_modelDescriptionURI); + assign_map.emplace("TopologyBoundaryVersion.namespaceRDF", &assign_TopologyBoundaryVersion_namespaceRDF); + assign_map.emplace("TopologyBoundaryVersion.namespaceUML", &assign_TopologyBoundaryVersion_namespaceUML); + assign_map.emplace("TopologyBoundaryVersion.shortName", &assign_TopologyBoundaryVersion_shortName); } void TopologyBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void TopologyBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologyBoundaryVersion.baseUML", &get_TopologyBoundaryVersion_baseUML); - get_map.emplace("cim:TopologyBoundaryVersion.baseURI", &get_TopologyBoundaryVersion_baseURI); - get_map.emplace("cim:TopologyBoundaryVersion.date", &get_TopologyBoundaryVersion_date); - get_map.emplace("cim:TopologyBoundaryVersion.differenceModelURI", &get_TopologyBoundaryVersion_differenceModelURI); - get_map.emplace("cim:TopologyBoundaryVersion.entsoeUML", &get_TopologyBoundaryVersion_entsoeUML); - get_map.emplace("cim:TopologyBoundaryVersion.entsoeURI", &get_TopologyBoundaryVersion_entsoeURI); - get_map.emplace("cim:TopologyBoundaryVersion.modelDescriptionURI", &get_TopologyBoundaryVersion_modelDescriptionURI); - get_map.emplace("cim:TopologyBoundaryVersion.namespaceRDF", &get_TopologyBoundaryVersion_namespaceRDF); - get_map.emplace("cim:TopologyBoundaryVersion.namespaceUML", &get_TopologyBoundaryVersion_namespaceUML); - get_map.emplace("cim:TopologyBoundaryVersion.shortName", &get_TopologyBoundaryVersion_shortName); + get_map.emplace("TopologyBoundaryVersion.baseUML", &get_TopologyBoundaryVersion_baseUML); + get_map.emplace("TopologyBoundaryVersion.baseURI", &get_TopologyBoundaryVersion_baseURI); + get_map.emplace("TopologyBoundaryVersion.date", &get_TopologyBoundaryVersion_date); + get_map.emplace("TopologyBoundaryVersion.differenceModelURI", &get_TopologyBoundaryVersion_differenceModelURI); + get_map.emplace("TopologyBoundaryVersion.entsoeUML", &get_TopologyBoundaryVersion_entsoeUML); + get_map.emplace("TopologyBoundaryVersion.entsoeURI", &get_TopologyBoundaryVersion_entsoeURI); + get_map.emplace("TopologyBoundaryVersion.modelDescriptionURI", &get_TopologyBoundaryVersion_modelDescriptionURI); + get_map.emplace("TopologyBoundaryVersion.namespaceRDF", &get_TopologyBoundaryVersion_namespaceRDF); + get_map.emplace("TopologyBoundaryVersion.namespaceUML", &get_TopologyBoundaryVersion_namespaceUML); + get_map.emplace("TopologyBoundaryVersion.shortName", &get_TopologyBoundaryVersion_shortName); } void TopologyBoundaryVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void TopologyBoundaryVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TopologyBoundaryVersion::declare() { return BaseClassDefiner(TopologyBoundaryVersion::addConstructToMap, TopologyBoundaryVersion::addPrimitiveAssignFnsToMap, TopologyBoundaryVersion::addClassAssignFnsToMap, TopologyBoundaryVersion::debugName); } +std::map TopologyBoundaryVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologyBoundaryVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/TopologyBoundaryVersion.hpp b/CGMES_2.4.13_18DEC2013/TopologyBoundaryVersion.hpp index 54e049f56..3ef399d4e 100644 --- a/CGMES_2.4.13_18DEC2013/TopologyBoundaryVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/TopologyBoundaryVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologyBoundaryVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TopologyVersion.cpp b/CGMES_2.4.13_18DEC2013/TopologyVersion.cpp index e54da7674..9f43f1568 100644 --- a/CGMES_2.4.13_18DEC2013/TopologyVersion.cpp +++ b/CGMES_2.4.13_18DEC2013/TopologyVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologyVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologyVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + TopologyVersion::TopologyVersion() {} TopologyVersion::~TopologyVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologyVersion::getAttributeNames() const { - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologyVersion::getClassNamespaceUrl() const { - { "cim:TopologyVersion.baseUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.baseURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.date", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.differenceModelURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.entsoeUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.entsoeURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.modelDescriptionURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.namespaceRDF", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.namespaceUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.shortName", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologyVersion::getPossibleProfilesForClass() const +const std::string& TopologyVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologyVersion::getPossibleProfilesForAttributes() const +const std::list& TopologyVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologyVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologyVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologyVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologyVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* TopologyVersion::debugString() const void TopologyVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologyVersion", &TopologyVersion_factory); + factory_map.emplace("TopologyVersion", &TopologyVersion_factory); } void TopologyVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologyVersion.baseUML", &assign_TopologyVersion_baseUML); - assign_map.emplace("cim:TopologyVersion.baseURI", &assign_TopologyVersion_baseURI); - assign_map.emplace("cim:TopologyVersion.date", &assign_TopologyVersion_date); - assign_map.emplace("cim:TopologyVersion.differenceModelURI", &assign_TopologyVersion_differenceModelURI); - assign_map.emplace("cim:TopologyVersion.entsoeUML", &assign_TopologyVersion_entsoeUML); - assign_map.emplace("cim:TopologyVersion.entsoeURI", &assign_TopologyVersion_entsoeURI); - assign_map.emplace("cim:TopologyVersion.modelDescriptionURI", &assign_TopologyVersion_modelDescriptionURI); - assign_map.emplace("cim:TopologyVersion.namespaceRDF", &assign_TopologyVersion_namespaceRDF); - assign_map.emplace("cim:TopologyVersion.namespaceUML", &assign_TopologyVersion_namespaceUML); - assign_map.emplace("cim:TopologyVersion.shortName", &assign_TopologyVersion_shortName); + assign_map.emplace("TopologyVersion.baseUML", &assign_TopologyVersion_baseUML); + assign_map.emplace("TopologyVersion.baseURI", &assign_TopologyVersion_baseURI); + assign_map.emplace("TopologyVersion.date", &assign_TopologyVersion_date); + assign_map.emplace("TopologyVersion.differenceModelURI", &assign_TopologyVersion_differenceModelURI); + assign_map.emplace("TopologyVersion.entsoeUML", &assign_TopologyVersion_entsoeUML); + assign_map.emplace("TopologyVersion.entsoeURI", &assign_TopologyVersion_entsoeURI); + assign_map.emplace("TopologyVersion.modelDescriptionURI", &assign_TopologyVersion_modelDescriptionURI); + assign_map.emplace("TopologyVersion.namespaceRDF", &assign_TopologyVersion_namespaceRDF); + assign_map.emplace("TopologyVersion.namespaceUML", &assign_TopologyVersion_namespaceUML); + assign_map.emplace("TopologyVersion.shortName", &assign_TopologyVersion_shortName); } void TopologyVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void TopologyVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologyVersion.baseUML", &get_TopologyVersion_baseUML); - get_map.emplace("cim:TopologyVersion.baseURI", &get_TopologyVersion_baseURI); - get_map.emplace("cim:TopologyVersion.date", &get_TopologyVersion_date); - get_map.emplace("cim:TopologyVersion.differenceModelURI", &get_TopologyVersion_differenceModelURI); - get_map.emplace("cim:TopologyVersion.entsoeUML", &get_TopologyVersion_entsoeUML); - get_map.emplace("cim:TopologyVersion.entsoeURI", &get_TopologyVersion_entsoeURI); - get_map.emplace("cim:TopologyVersion.modelDescriptionURI", &get_TopologyVersion_modelDescriptionURI); - get_map.emplace("cim:TopologyVersion.namespaceRDF", &get_TopologyVersion_namespaceRDF); - get_map.emplace("cim:TopologyVersion.namespaceUML", &get_TopologyVersion_namespaceUML); - get_map.emplace("cim:TopologyVersion.shortName", &get_TopologyVersion_shortName); + get_map.emplace("TopologyVersion.baseUML", &get_TopologyVersion_baseUML); + get_map.emplace("TopologyVersion.baseURI", &get_TopologyVersion_baseURI); + get_map.emplace("TopologyVersion.date", &get_TopologyVersion_date); + get_map.emplace("TopologyVersion.differenceModelURI", &get_TopologyVersion_differenceModelURI); + get_map.emplace("TopologyVersion.entsoeUML", &get_TopologyVersion_entsoeUML); + get_map.emplace("TopologyVersion.entsoeURI", &get_TopologyVersion_entsoeURI); + get_map.emplace("TopologyVersion.modelDescriptionURI", &get_TopologyVersion_modelDescriptionURI); + get_map.emplace("TopologyVersion.namespaceRDF", &get_TopologyVersion_namespaceRDF); + get_map.emplace("TopologyVersion.namespaceUML", &get_TopologyVersion_namespaceUML); + get_map.emplace("TopologyVersion.shortName", &get_TopologyVersion_shortName); } void TopologyVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void TopologyVersion::addEnumGetFnsToMap(std::map& ge BaseClass::addEnumGetFnsToMap(get_map); } +bool TopologyVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologyVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologyVersion::declare() { return BaseClassDefiner(TopologyVersion::addConstructToMap, TopologyVersion::addPrimitiveAssignFnsToMap, TopologyVersion::addClassAssignFnsToMap, TopologyVersion::debugName); } +std::map TopologyVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologyVersion_factory() diff --git a/CGMES_2.4.13_18DEC2013/TopologyVersion.hpp b/CGMES_2.4.13_18DEC2013/TopologyVersion.hpp index 5c9119a35..685c05503 100644 --- a/CGMES_2.4.13_18DEC2013/TopologyVersion.hpp +++ b/CGMES_2.4.13_18DEC2013/TopologyVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologyVersion_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TransformerEnd.cpp b/CGMES_2.4.13_18DEC2013/TransformerEnd.cpp index 86e31752c..532d409ed 100644 --- a/CGMES_2.4.13_18DEC2013/TransformerEnd.cpp +++ b/CGMES_2.4.13_18DEC2013/TransformerEnd.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TransformerEnd(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TransformerEnd.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.PhaseTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.RatioTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.endNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.grounded", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.rground", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.xground", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TransformerEnd::TransformerEnd() : BaseVoltage(nullptr), PhaseTapChanger(nullptr), RatioTapChanger(nullptr), Terminal(nullptr) {} TransformerEnd::~TransformerEnd() {} -static const std::list PossibleProfilesForClass = +const std::list& TransformerEnd::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TransformerEnd::getClassNamespaceUrl() const { - { "cim:TransformerEnd.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.PhaseTapChanger", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.RatioTapChanger", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.Terminal", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.endNumber", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.grounded", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.rground", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.xground", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TransformerEnd::getPossibleProfilesForClass() const +const std::string& TransformerEnd::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TransformerEnd::getPossibleProfilesForAttributes() const +const std::list& TransformerEnd::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TransformerEnd::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TransformerEnd::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TransformerEnd::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_TransformerEnds(BaseClass*, BaseClass*); @@ -272,39 +304,39 @@ const char* TransformerEnd::debugString() const void TransformerEnd::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TransformerEnd", &TransformerEnd_factory); + factory_map.emplace("TransformerEnd", &TransformerEnd_factory); } void TransformerEnd::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TransformerEnd.endNumber", &assign_TransformerEnd_endNumber); - assign_map.emplace("cim:TransformerEnd.grounded", &assign_TransformerEnd_grounded); - assign_map.emplace("cim:TransformerEnd.rground", &assign_TransformerEnd_rground); - assign_map.emplace("cim:TransformerEnd.xground", &assign_TransformerEnd_xground); + assign_map.emplace("TransformerEnd.endNumber", &assign_TransformerEnd_endNumber); + assign_map.emplace("TransformerEnd.grounded", &assign_TransformerEnd_grounded); + assign_map.emplace("TransformerEnd.rground", &assign_TransformerEnd_rground); + assign_map.emplace("TransformerEnd.xground", &assign_TransformerEnd_xground); } void TransformerEnd::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TransformerEnd.BaseVoltage", &assign_TransformerEnd_BaseVoltage); - assign_map.emplace("cim:TransformerEnd.PhaseTapChanger", &assign_TransformerEnd_PhaseTapChanger); - assign_map.emplace("cim:TransformerEnd.RatioTapChanger", &assign_TransformerEnd_RatioTapChanger); - assign_map.emplace("cim:TransformerEnd.Terminal", &assign_TransformerEnd_Terminal); + assign_map.emplace("TransformerEnd.BaseVoltage", &assign_TransformerEnd_BaseVoltage); + assign_map.emplace("TransformerEnd.PhaseTapChanger", &assign_TransformerEnd_PhaseTapChanger); + assign_map.emplace("TransformerEnd.RatioTapChanger", &assign_TransformerEnd_RatioTapChanger); + assign_map.emplace("TransformerEnd.Terminal", &assign_TransformerEnd_Terminal); } void TransformerEnd::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TransformerEnd.endNumber", &get_TransformerEnd_endNumber); - get_map.emplace("cim:TransformerEnd.grounded", &get_TransformerEnd_grounded); - get_map.emplace("cim:TransformerEnd.rground", &get_TransformerEnd_rground); - get_map.emplace("cim:TransformerEnd.xground", &get_TransformerEnd_xground); + get_map.emplace("TransformerEnd.endNumber", &get_TransformerEnd_endNumber); + get_map.emplace("TransformerEnd.grounded", &get_TransformerEnd_grounded); + get_map.emplace("TransformerEnd.rground", &get_TransformerEnd_rground); + get_map.emplace("TransformerEnd.xground", &get_TransformerEnd_xground); } void TransformerEnd::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TransformerEnd.BaseVoltage", &get_TransformerEnd_BaseVoltage); - get_map.emplace("cim:TransformerEnd.Terminal", &get_TransformerEnd_Terminal); + get_map.emplace("TransformerEnd.BaseVoltage", &get_TransformerEnd_BaseVoltage); + get_map.emplace("TransformerEnd.Terminal", &get_TransformerEnd_Terminal); } void TransformerEnd::addEnumGetFnsToMap(std::map& get_map) const @@ -312,11 +344,25 @@ void TransformerEnd::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TransformerEnd::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TransformerEnd" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TransformerEnd::declare() { return BaseClassDefiner(TransformerEnd::addConstructToMap, TransformerEnd::addPrimitiveAssignFnsToMap, TransformerEnd::addClassAssignFnsToMap, TransformerEnd::debugName); } +std::map TransformerEnd::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TransformerEnd_factory() diff --git a/CGMES_2.4.13_18DEC2013/TransformerEnd.hpp b/CGMES_2.4.13_18DEC2013/TransformerEnd.hpp index 163603fd7..147a110e7 100644 --- a/CGMES_2.4.13_18DEC2013/TransformerEnd.hpp +++ b/CGMES_2.4.13_18DEC2013/TransformerEnd.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Reactance.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TransformerEnd_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TurbLCFB1.cpp b/CGMES_2.4.13_18DEC2013/TurbLCFB1.cpp index 338c975ef..3d9c3d666 100644 --- a/CGMES_2.4.13_18DEC2013/TurbLCFB1.cpp +++ b/CGMES_2.4.13_18DEC2013/TurbLCFB1.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbLCFB1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbLCFB1.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.fb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.fbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.irmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.pbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.pmwset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.speedReferenceGovernor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbLCFB1::TurbLCFB1() {} TurbLCFB1::~TurbLCFB1() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbLCFB1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbLCFB1::getClassNamespaceUrl() const { - { "cim:TurbLCFB1.db", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.emax", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.fb", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.fbf", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.irmax", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.ki", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.kp", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.mwbase", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.pbf", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.pmwset", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.speedReferenceGovernor", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.tpelec", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbLCFB1::getPossibleProfilesForClass() const +const std::string& TurbLCFB1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbLCFB1::getPossibleProfilesForAttributes() const +const std::list& TurbLCFB1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineLoadControllerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbLCFB1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbLCFB1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbLCFB1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TurbLCFB1_db(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* TurbLCFB1::debugString() const void TurbLCFB1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbLCFB1", &TurbLCFB1_factory); + factory_map.emplace("TurbLCFB1", &TurbLCFB1_factory); } void TurbLCFB1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbLCFB1.db", &assign_TurbLCFB1_db); - assign_map.emplace("cim:TurbLCFB1.emax", &assign_TurbLCFB1_emax); - assign_map.emplace("cim:TurbLCFB1.fb", &assign_TurbLCFB1_fb); - assign_map.emplace("cim:TurbLCFB1.fbf", &assign_TurbLCFB1_fbf); - assign_map.emplace("cim:TurbLCFB1.irmax", &assign_TurbLCFB1_irmax); - assign_map.emplace("cim:TurbLCFB1.ki", &assign_TurbLCFB1_ki); - assign_map.emplace("cim:TurbLCFB1.kp", &assign_TurbLCFB1_kp); - assign_map.emplace("cim:TurbLCFB1.mwbase", &assign_TurbLCFB1_mwbase); - assign_map.emplace("cim:TurbLCFB1.pbf", &assign_TurbLCFB1_pbf); - assign_map.emplace("cim:TurbLCFB1.pmwset", &assign_TurbLCFB1_pmwset); - assign_map.emplace("cim:TurbLCFB1.speedReferenceGovernor", &assign_TurbLCFB1_speedReferenceGovernor); - assign_map.emplace("cim:TurbLCFB1.tpelec", &assign_TurbLCFB1_tpelec); + assign_map.emplace("TurbLCFB1.db", &assign_TurbLCFB1_db); + assign_map.emplace("TurbLCFB1.emax", &assign_TurbLCFB1_emax); + assign_map.emplace("TurbLCFB1.fb", &assign_TurbLCFB1_fb); + assign_map.emplace("TurbLCFB1.fbf", &assign_TurbLCFB1_fbf); + assign_map.emplace("TurbLCFB1.irmax", &assign_TurbLCFB1_irmax); + assign_map.emplace("TurbLCFB1.ki", &assign_TurbLCFB1_ki); + assign_map.emplace("TurbLCFB1.kp", &assign_TurbLCFB1_kp); + assign_map.emplace("TurbLCFB1.mwbase", &assign_TurbLCFB1_mwbase); + assign_map.emplace("TurbLCFB1.pbf", &assign_TurbLCFB1_pbf); + assign_map.emplace("TurbLCFB1.pmwset", &assign_TurbLCFB1_pmwset); + assign_map.emplace("TurbLCFB1.speedReferenceGovernor", &assign_TurbLCFB1_speedReferenceGovernor); + assign_map.emplace("TurbLCFB1.tpelec", &assign_TurbLCFB1_tpelec); } void TurbLCFB1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void TurbLCFB1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbLCFB1.db", &get_TurbLCFB1_db); - get_map.emplace("cim:TurbLCFB1.emax", &get_TurbLCFB1_emax); - get_map.emplace("cim:TurbLCFB1.fb", &get_TurbLCFB1_fb); - get_map.emplace("cim:TurbLCFB1.fbf", &get_TurbLCFB1_fbf); - get_map.emplace("cim:TurbLCFB1.irmax", &get_TurbLCFB1_irmax); - get_map.emplace("cim:TurbLCFB1.ki", &get_TurbLCFB1_ki); - get_map.emplace("cim:TurbLCFB1.kp", &get_TurbLCFB1_kp); - get_map.emplace("cim:TurbLCFB1.mwbase", &get_TurbLCFB1_mwbase); - get_map.emplace("cim:TurbLCFB1.pbf", &get_TurbLCFB1_pbf); - get_map.emplace("cim:TurbLCFB1.pmwset", &get_TurbLCFB1_pmwset); - get_map.emplace("cim:TurbLCFB1.speedReferenceGovernor", &get_TurbLCFB1_speedReferenceGovernor); - get_map.emplace("cim:TurbLCFB1.tpelec", &get_TurbLCFB1_tpelec); + get_map.emplace("TurbLCFB1.db", &get_TurbLCFB1_db); + get_map.emplace("TurbLCFB1.emax", &get_TurbLCFB1_emax); + get_map.emplace("TurbLCFB1.fb", &get_TurbLCFB1_fb); + get_map.emplace("TurbLCFB1.fbf", &get_TurbLCFB1_fbf); + get_map.emplace("TurbLCFB1.irmax", &get_TurbLCFB1_irmax); + get_map.emplace("TurbLCFB1.ki", &get_TurbLCFB1_ki); + get_map.emplace("TurbLCFB1.kp", &get_TurbLCFB1_kp); + get_map.emplace("TurbLCFB1.mwbase", &get_TurbLCFB1_mwbase); + get_map.emplace("TurbLCFB1.pbf", &get_TurbLCFB1_pbf); + get_map.emplace("TurbLCFB1.pmwset", &get_TurbLCFB1_pmwset); + get_map.emplace("TurbLCFB1.speedReferenceGovernor", &get_TurbLCFB1_speedReferenceGovernor); + get_map.emplace("TurbLCFB1.tpelec", &get_TurbLCFB1_tpelec); } void TurbLCFB1::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void TurbLCFB1::addEnumGetFnsToMap(std::map& get_map) TurbineLoadControllerDynamics::addEnumGetFnsToMap(get_map); } +bool TurbLCFB1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TurbLCFB1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TurbLCFB1::declare() { return BaseClassDefiner(TurbLCFB1::addConstructToMap, TurbLCFB1::addPrimitiveAssignFnsToMap, TurbLCFB1::addClassAssignFnsToMap, TurbLCFB1::debugName); } +std::map TurbLCFB1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineLoadControllerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbLCFB1_factory() diff --git a/CGMES_2.4.13_18DEC2013/TurbLCFB1.hpp b/CGMES_2.4.13_18DEC2013/TurbLCFB1.hpp index f45fd978f..38b0d7ec5 100644 --- a/CGMES_2.4.13_18DEC2013/TurbLCFB1.hpp +++ b/CGMES_2.4.13_18DEC2013/TurbLCFB1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineLoadControllerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbLCFB1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TurbineGovernorDynamics.cpp b/CGMES_2.4.13_18DEC2013/TurbineGovernorDynamics.cpp index cebece4b4..a2b509d19 100644 --- a/CGMES_2.4.13_18DEC2013/TurbineGovernorDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/TurbineGovernorDynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineGovernorDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineGovernorDynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorDynamics.TurbineLoadControllerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineGovernorDynamics::TurbineGovernorDynamics() : AsynchronousMachineDynamics(nullptr), TurbineLoadControllerDynamics(nullptr) {} TurbineGovernorDynamics::~TurbineGovernorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineGovernorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineGovernorDynamics::getClassNamespaceUrl() const { - { "cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorDynamics.TurbineLoadControllerDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineGovernorDynamics::getPossibleProfilesForClass() const +const std::string& TurbineGovernorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineGovernorDynamics::getPossibleProfilesForAttributes() const +const std::list& TurbineGovernorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineGovernorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineGovernorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineGovernorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_TurbineGovernorDynamics(BaseClass*, BaseClass*); @@ -129,7 +161,7 @@ const char* TurbineGovernorDynamics::debugString() const void TurbineGovernorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineGovernorDynamics", &TurbineGovernorDynamics_factory); + factory_map.emplace("TurbineGovernorDynamics", &TurbineGovernorDynamics_factory); } void TurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -138,9 +170,9 @@ void TurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", &assign_TurbineGovernorDynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:TurbineGovernorDynamics.SynchronousMachineDynamics", &assign_TurbineGovernorDynamics_SynchronousMachineDynamics); - assign_map.emplace("cim:TurbineGovernorDynamics.TurbineLoadControllerDynamics", &assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics); + assign_map.emplace("TurbineGovernorDynamics.AsynchronousMachineDynamics", &assign_TurbineGovernorDynamics_AsynchronousMachineDynamics); + assign_map.emplace("TurbineGovernorDynamics.SynchronousMachineDynamics", &assign_TurbineGovernorDynamics_SynchronousMachineDynamics); + assign_map.emplace("TurbineGovernorDynamics.TurbineLoadControllerDynamics", &assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics); } void TurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -151,8 +183,8 @@ void TurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", &get_TurbineGovernorDynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:TurbineGovernorDynamics.SynchronousMachineDynamics", &get_TurbineGovernorDynamics_SynchronousMachineDynamics); + get_map.emplace("TurbineGovernorDynamics.AsynchronousMachineDynamics", &get_TurbineGovernorDynamics_AsynchronousMachineDynamics); + get_map.emplace("TurbineGovernorDynamics.SynchronousMachineDynamics", &get_TurbineGovernorDynamics_SynchronousMachineDynamics); } void TurbineGovernorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void TurbineGovernorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineGovernorDynamics::declare() { return BaseClassDefiner(TurbineGovernorDynamics::addConstructToMap, TurbineGovernorDynamics::addPrimitiveAssignFnsToMap, TurbineGovernorDynamics::addClassAssignFnsToMap, TurbineGovernorDynamics::debugName); } +std::map TurbineGovernorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineGovernorDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/TurbineGovernorDynamics.hpp b/CGMES_2.4.13_18DEC2013/TurbineGovernorDynamics.hpp index dda79cfd7..80082c3d2 100644 --- a/CGMES_2.4.13_18DEC2013/TurbineGovernorDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/TurbineGovernorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineGovernorDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TurbineGovernorUserDefined.cpp b/CGMES_2.4.13_18DEC2013/TurbineGovernorUserDefined.cpp index ad7d7ef5f..424d7e661 100644 --- a/CGMES_2.4.13_18DEC2013/TurbineGovernorUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/TurbineGovernorUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineGovernorUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineGovernorUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineGovernorUserDefined::TurbineGovernorUserDefined() {} TurbineGovernorUserDefined::~TurbineGovernorUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineGovernorUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineGovernorUserDefined::getClassNamespaceUrl() const { - { "cim:TurbineGovernorUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineGovernorUserDefined::getPossibleProfilesForClass() const +const std::string& TurbineGovernorUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineGovernorUserDefined::getPossibleProfilesForAttributes() const +const std::list& TurbineGovernorUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineGovernorUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineGovernorUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineGovernorUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* TurbineGovernorUserDefined::debugString() const void TurbineGovernorUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineGovernorUserDefined", &TurbineGovernorUserDefined_factory); + factory_map.emplace("TurbineGovernorUserDefined", &TurbineGovernorUserDefined_factory); } void TurbineGovernorUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorUserDefined.proprietary", &assign_TurbineGovernorUserDefined_proprietary); + assign_map.emplace("TurbineGovernorUserDefined.proprietary", &assign_TurbineGovernorUserDefined_proprietary); } void TurbineGovernorUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorUserDefined.ProprietaryParameterDynamics", &assign_TurbineGovernorUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("TurbineGovernorUserDefined.ProprietaryParameterDynamics", &assign_TurbineGovernorUserDefined_ProprietaryParameterDynamics); } void TurbineGovernorUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbineGovernorUserDefined.proprietary", &get_TurbineGovernorUserDefined_proprietary); + get_map.emplace("TurbineGovernorUserDefined.proprietary", &get_TurbineGovernorUserDefined_proprietary); } void TurbineGovernorUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void TurbineGovernorUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineGovernorUserDefined::declare() { return BaseClassDefiner(TurbineGovernorUserDefined::addConstructToMap, TurbineGovernorUserDefined::addPrimitiveAssignFnsToMap, TurbineGovernorUserDefined::addClassAssignFnsToMap, TurbineGovernorUserDefined::debugName); } +std::map TurbineGovernorUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineGovernorUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/TurbineGovernorUserDefined.hpp b/CGMES_2.4.13_18DEC2013/TurbineGovernorUserDefined.hpp index 47aa48210..22cc9ca41 100644 --- a/CGMES_2.4.13_18DEC2013/TurbineGovernorUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/TurbineGovernorUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineGovernorUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TurbineLoadControllerDynamics.cpp b/CGMES_2.4.13_18DEC2013/TurbineLoadControllerDynamics.cpp index d9ae03d4f..1ff0ad3ec 100644 --- a/CGMES_2.4.13_18DEC2013/TurbineLoadControllerDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/TurbineLoadControllerDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineLoadControllerDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineLoadControllerDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineLoadControllerDynamics::TurbineLoadControllerDynamics() : TurbineGovernorDynamics(nullptr) {} TurbineLoadControllerDynamics::~TurbineLoadControllerDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineLoadControllerDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineLoadControllerDynamics::getClassNamespaceUrl() const { - { "cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineLoadControllerDynamics::getPossibleProfilesForClass() const +const std::string& TurbineLoadControllerDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineLoadControllerDynamics::getPossibleProfilesForAttributes() const +const std::list& TurbineLoadControllerDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineLoadControllerDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineLoadControllerDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineLoadControllerDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* TurbineLoadControllerDynamics::debugString() const void TurbineLoadControllerDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineLoadControllerDynamics", &TurbineLoadControllerDynamics_factory); + factory_map.emplace("TurbineLoadControllerDynamics", &TurbineLoadControllerDynamics_factory); } void TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void TurbineLoadControllerDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", &assign_TurbineLoadControllerDynamics_TurbineGovernorDynamics); + assign_map.emplace("TurbineLoadControllerDynamics.TurbineGovernorDynamics", &assign_TurbineLoadControllerDynamics_TurbineGovernorDynamics); } void TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", &get_TurbineLoadControllerDynamics_TurbineGovernorDynamics); + get_map.emplace("TurbineLoadControllerDynamics.TurbineGovernorDynamics", &get_TurbineLoadControllerDynamics_TurbineGovernorDynamics); } void TurbineLoadControllerDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void TurbineLoadControllerDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineLoadControllerDynamics::declare() { return BaseClassDefiner(TurbineLoadControllerDynamics::addConstructToMap, TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap, TurbineLoadControllerDynamics::addClassAssignFnsToMap, TurbineLoadControllerDynamics::debugName); } +std::map TurbineLoadControllerDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineLoadControllerDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/TurbineLoadControllerDynamics.hpp b/CGMES_2.4.13_18DEC2013/TurbineLoadControllerDynamics.hpp index 12ec05aec..6cf21de3b 100644 --- a/CGMES_2.4.13_18DEC2013/TurbineLoadControllerDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/TurbineLoadControllerDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineLoadControllerDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/TurbineLoadControllerUserDefined.cpp b/CGMES_2.4.13_18DEC2013/TurbineLoadControllerUserDefined.cpp index 842adf4c4..d75df90a9 100644 --- a/CGMES_2.4.13_18DEC2013/TurbineLoadControllerUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/TurbineLoadControllerUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineLoadControllerUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineLoadControllerUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineLoadControllerUserDefined::TurbineLoadControllerUserDefined() {} TurbineLoadControllerUserDefined::~TurbineLoadControllerUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineLoadControllerUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineLoadControllerUserDefined::getClassNamespaceUrl() const { - { "cim:TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineLoadControllerUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineLoadControllerUserDefined::getPossibleProfilesForClass() const +const std::string& TurbineLoadControllerUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineLoadControllerUserDefined::getPossibleProfilesForAttributes() const +const std::list& TurbineLoadControllerUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineLoadControllerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineLoadControllerUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineLoadControllerUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineLoadControllerUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* TurbineLoadControllerUserDefined::debugString() const void TurbineLoadControllerUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineLoadControllerUserDefined", &TurbineLoadControllerUserDefined_factory); + factory_map.emplace("TurbineLoadControllerUserDefined", &TurbineLoadControllerUserDefined_factory); } void TurbineLoadControllerUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerUserDefined.proprietary", &assign_TurbineLoadControllerUserDefined_proprietary); + assign_map.emplace("TurbineLoadControllerUserDefined.proprietary", &assign_TurbineLoadControllerUserDefined_proprietary); } void TurbineLoadControllerUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", &assign_TurbineLoadControllerUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", &assign_TurbineLoadControllerUserDefined_ProprietaryParameterDynamics); } void TurbineLoadControllerUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbineLoadControllerUserDefined.proprietary", &get_TurbineLoadControllerUserDefined_proprietary); + get_map.emplace("TurbineLoadControllerUserDefined.proprietary", &get_TurbineLoadControllerUserDefined_proprietary); } void TurbineLoadControllerUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void TurbineLoadControllerUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineLoadControllerUserDefined::declare() { return BaseClassDefiner(TurbineLoadControllerUserDefined::addConstructToMap, TurbineLoadControllerUserDefined::addPrimitiveAssignFnsToMap, TurbineLoadControllerUserDefined::addClassAssignFnsToMap, TurbineLoadControllerUserDefined::debugName); } +std::map TurbineLoadControllerUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineLoadControllerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineLoadControllerUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/TurbineLoadControllerUserDefined.hpp b/CGMES_2.4.13_18DEC2013/TurbineLoadControllerUserDefined.hpp index ce15803d0..3eea58184 100644 --- a/CGMES_2.4.13_18DEC2013/TurbineLoadControllerUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/TurbineLoadControllerUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineLoadControllerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineLoadControllerUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLim2Simplified.cpp b/CGMES_2.4.13_18DEC2013/UnderexcLim2Simplified.cpp index d3524b97d..4f74c548d 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLim2Simplified.cpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLim2Simplified.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLim2Simplified(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLim2Simplified.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.p0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.q0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.q1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLim2Simplified::UnderexcLim2Simplified() {} UnderexcLim2Simplified::~UnderexcLim2Simplified() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLim2Simplified::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLim2Simplified::getClassNamespaceUrl() const { - { "cim:UnderexcLim2Simplified.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.p0", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.p1", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.q0", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.q1", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.vuimin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLim2Simplified::getPossibleProfilesForClass() const +const std::string& UnderexcLim2Simplified::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLim2Simplified::getPossibleProfilesForAttributes() const +const std::list& UnderexcLim2Simplified::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLim2Simplified::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLim2Simplified::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLim2Simplified::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLim2Simplified_kui(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* UnderexcLim2Simplified::debugString() const void UnderexcLim2Simplified::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLim2Simplified", &UnderexcLim2Simplified_factory); + factory_map.emplace("UnderexcLim2Simplified", &UnderexcLim2Simplified_factory); } void UnderexcLim2Simplified::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLim2Simplified.kui", &assign_UnderexcLim2Simplified_kui); - assign_map.emplace("cim:UnderexcLim2Simplified.p0", &assign_UnderexcLim2Simplified_p0); - assign_map.emplace("cim:UnderexcLim2Simplified.p1", &assign_UnderexcLim2Simplified_p1); - assign_map.emplace("cim:UnderexcLim2Simplified.q0", &assign_UnderexcLim2Simplified_q0); - assign_map.emplace("cim:UnderexcLim2Simplified.q1", &assign_UnderexcLim2Simplified_q1); - assign_map.emplace("cim:UnderexcLim2Simplified.vuimax", &assign_UnderexcLim2Simplified_vuimax); - assign_map.emplace("cim:UnderexcLim2Simplified.vuimin", &assign_UnderexcLim2Simplified_vuimin); + assign_map.emplace("UnderexcLim2Simplified.kui", &assign_UnderexcLim2Simplified_kui); + assign_map.emplace("UnderexcLim2Simplified.p0", &assign_UnderexcLim2Simplified_p0); + assign_map.emplace("UnderexcLim2Simplified.p1", &assign_UnderexcLim2Simplified_p1); + assign_map.emplace("UnderexcLim2Simplified.q0", &assign_UnderexcLim2Simplified_q0); + assign_map.emplace("UnderexcLim2Simplified.q1", &assign_UnderexcLim2Simplified_q1); + assign_map.emplace("UnderexcLim2Simplified.vuimax", &assign_UnderexcLim2Simplified_vuimax); + assign_map.emplace("UnderexcLim2Simplified.vuimin", &assign_UnderexcLim2Simplified_vuimin); } void UnderexcLim2Simplified::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void UnderexcLim2Simplified::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLim2Simplified.kui", &get_UnderexcLim2Simplified_kui); - get_map.emplace("cim:UnderexcLim2Simplified.p0", &get_UnderexcLim2Simplified_p0); - get_map.emplace("cim:UnderexcLim2Simplified.p1", &get_UnderexcLim2Simplified_p1); - get_map.emplace("cim:UnderexcLim2Simplified.q0", &get_UnderexcLim2Simplified_q0); - get_map.emplace("cim:UnderexcLim2Simplified.q1", &get_UnderexcLim2Simplified_q1); - get_map.emplace("cim:UnderexcLim2Simplified.vuimax", &get_UnderexcLim2Simplified_vuimax); - get_map.emplace("cim:UnderexcLim2Simplified.vuimin", &get_UnderexcLim2Simplified_vuimin); + get_map.emplace("UnderexcLim2Simplified.kui", &get_UnderexcLim2Simplified_kui); + get_map.emplace("UnderexcLim2Simplified.p0", &get_UnderexcLim2Simplified_p0); + get_map.emplace("UnderexcLim2Simplified.p1", &get_UnderexcLim2Simplified_p1); + get_map.emplace("UnderexcLim2Simplified.q0", &get_UnderexcLim2Simplified_q0); + get_map.emplace("UnderexcLim2Simplified.q1", &get_UnderexcLim2Simplified_q1); + get_map.emplace("UnderexcLim2Simplified.vuimax", &get_UnderexcLim2Simplified_vuimax); + get_map.emplace("UnderexcLim2Simplified.vuimin", &get_UnderexcLim2Simplified_vuimin); } void UnderexcLim2Simplified::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void UnderexcLim2Simplified::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLim2Simplified::declare() { return BaseClassDefiner(UnderexcLim2Simplified::addConstructToMap, UnderexcLim2Simplified::addPrimitiveAssignFnsToMap, UnderexcLim2Simplified::addClassAssignFnsToMap, UnderexcLim2Simplified::debugName); } +std::map UnderexcLim2Simplified::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLim2Simplified_factory() diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLim2Simplified.hpp b/CGMES_2.4.13_18DEC2013/UnderexcLim2Simplified.hpp index 5c1e361db..b4405a3f4 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLim2Simplified.hpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLim2Simplified.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLim2Simplified_factory(); diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.cpp b/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.cpp index ed960945f..6370e072e 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.cpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimIEEE1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimIEEE1.kuc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kuf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kur", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vucmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vulmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vulmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vurmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimIEEE1::UnderexcLimIEEE1() {} UnderexcLimIEEE1::~UnderexcLimIEEE1() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimIEEE1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimIEEE1::getClassNamespaceUrl() const { - { "cim:UnderexcLimIEEE1.kuc", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kuf", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kur", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vucmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vuimin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vulmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vulmin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vurmax", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimIEEE1::getPossibleProfilesForClass() const +const std::string& UnderexcLimIEEE1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimIEEE1::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimIEEE1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimIEEE1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimIEEE1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimIEEE1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimIEEE1_kuc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* UnderexcLimIEEE1::debugString() const void UnderexcLimIEEE1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimIEEE1", &UnderexcLimIEEE1_factory); + factory_map.emplace("UnderexcLimIEEE1", &UnderexcLimIEEE1_factory); } void UnderexcLimIEEE1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimIEEE1.kuc", &assign_UnderexcLimIEEE1_kuc); - assign_map.emplace("cim:UnderexcLimIEEE1.kuf", &assign_UnderexcLimIEEE1_kuf); - assign_map.emplace("cim:UnderexcLimIEEE1.kui", &assign_UnderexcLimIEEE1_kui); - assign_map.emplace("cim:UnderexcLimIEEE1.kul", &assign_UnderexcLimIEEE1_kul); - assign_map.emplace("cim:UnderexcLimIEEE1.kur", &assign_UnderexcLimIEEE1_kur); - assign_map.emplace("cim:UnderexcLimIEEE1.tu1", &assign_UnderexcLimIEEE1_tu1); - assign_map.emplace("cim:UnderexcLimIEEE1.tu2", &assign_UnderexcLimIEEE1_tu2); - assign_map.emplace("cim:UnderexcLimIEEE1.tu3", &assign_UnderexcLimIEEE1_tu3); - assign_map.emplace("cim:UnderexcLimIEEE1.tu4", &assign_UnderexcLimIEEE1_tu4); - assign_map.emplace("cim:UnderexcLimIEEE1.vucmax", &assign_UnderexcLimIEEE1_vucmax); - assign_map.emplace("cim:UnderexcLimIEEE1.vuimax", &assign_UnderexcLimIEEE1_vuimax); - assign_map.emplace("cim:UnderexcLimIEEE1.vuimin", &assign_UnderexcLimIEEE1_vuimin); - assign_map.emplace("cim:UnderexcLimIEEE1.vulmax", &assign_UnderexcLimIEEE1_vulmax); - assign_map.emplace("cim:UnderexcLimIEEE1.vulmin", &assign_UnderexcLimIEEE1_vulmin); - assign_map.emplace("cim:UnderexcLimIEEE1.vurmax", &assign_UnderexcLimIEEE1_vurmax); + assign_map.emplace("UnderexcLimIEEE1.kuc", &assign_UnderexcLimIEEE1_kuc); + assign_map.emplace("UnderexcLimIEEE1.kuf", &assign_UnderexcLimIEEE1_kuf); + assign_map.emplace("UnderexcLimIEEE1.kui", &assign_UnderexcLimIEEE1_kui); + assign_map.emplace("UnderexcLimIEEE1.kul", &assign_UnderexcLimIEEE1_kul); + assign_map.emplace("UnderexcLimIEEE1.kur", &assign_UnderexcLimIEEE1_kur); + assign_map.emplace("UnderexcLimIEEE1.tu1", &assign_UnderexcLimIEEE1_tu1); + assign_map.emplace("UnderexcLimIEEE1.tu2", &assign_UnderexcLimIEEE1_tu2); + assign_map.emplace("UnderexcLimIEEE1.tu3", &assign_UnderexcLimIEEE1_tu3); + assign_map.emplace("UnderexcLimIEEE1.tu4", &assign_UnderexcLimIEEE1_tu4); + assign_map.emplace("UnderexcLimIEEE1.vucmax", &assign_UnderexcLimIEEE1_vucmax); + assign_map.emplace("UnderexcLimIEEE1.vuimax", &assign_UnderexcLimIEEE1_vuimax); + assign_map.emplace("UnderexcLimIEEE1.vuimin", &assign_UnderexcLimIEEE1_vuimin); + assign_map.emplace("UnderexcLimIEEE1.vulmax", &assign_UnderexcLimIEEE1_vulmax); + assign_map.emplace("UnderexcLimIEEE1.vulmin", &assign_UnderexcLimIEEE1_vulmin); + assign_map.emplace("UnderexcLimIEEE1.vurmax", &assign_UnderexcLimIEEE1_vurmax); } void UnderexcLimIEEE1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void UnderexcLimIEEE1::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimIEEE1.kuc", &get_UnderexcLimIEEE1_kuc); - get_map.emplace("cim:UnderexcLimIEEE1.kuf", &get_UnderexcLimIEEE1_kuf); - get_map.emplace("cim:UnderexcLimIEEE1.kui", &get_UnderexcLimIEEE1_kui); - get_map.emplace("cim:UnderexcLimIEEE1.kul", &get_UnderexcLimIEEE1_kul); - get_map.emplace("cim:UnderexcLimIEEE1.kur", &get_UnderexcLimIEEE1_kur); - get_map.emplace("cim:UnderexcLimIEEE1.tu1", &get_UnderexcLimIEEE1_tu1); - get_map.emplace("cim:UnderexcLimIEEE1.tu2", &get_UnderexcLimIEEE1_tu2); - get_map.emplace("cim:UnderexcLimIEEE1.tu3", &get_UnderexcLimIEEE1_tu3); - get_map.emplace("cim:UnderexcLimIEEE1.tu4", &get_UnderexcLimIEEE1_tu4); - get_map.emplace("cim:UnderexcLimIEEE1.vucmax", &get_UnderexcLimIEEE1_vucmax); - get_map.emplace("cim:UnderexcLimIEEE1.vuimax", &get_UnderexcLimIEEE1_vuimax); - get_map.emplace("cim:UnderexcLimIEEE1.vuimin", &get_UnderexcLimIEEE1_vuimin); - get_map.emplace("cim:UnderexcLimIEEE1.vulmax", &get_UnderexcLimIEEE1_vulmax); - get_map.emplace("cim:UnderexcLimIEEE1.vulmin", &get_UnderexcLimIEEE1_vulmin); - get_map.emplace("cim:UnderexcLimIEEE1.vurmax", &get_UnderexcLimIEEE1_vurmax); + get_map.emplace("UnderexcLimIEEE1.kuc", &get_UnderexcLimIEEE1_kuc); + get_map.emplace("UnderexcLimIEEE1.kuf", &get_UnderexcLimIEEE1_kuf); + get_map.emplace("UnderexcLimIEEE1.kui", &get_UnderexcLimIEEE1_kui); + get_map.emplace("UnderexcLimIEEE1.kul", &get_UnderexcLimIEEE1_kul); + get_map.emplace("UnderexcLimIEEE1.kur", &get_UnderexcLimIEEE1_kur); + get_map.emplace("UnderexcLimIEEE1.tu1", &get_UnderexcLimIEEE1_tu1); + get_map.emplace("UnderexcLimIEEE1.tu2", &get_UnderexcLimIEEE1_tu2); + get_map.emplace("UnderexcLimIEEE1.tu3", &get_UnderexcLimIEEE1_tu3); + get_map.emplace("UnderexcLimIEEE1.tu4", &get_UnderexcLimIEEE1_tu4); + get_map.emplace("UnderexcLimIEEE1.vucmax", &get_UnderexcLimIEEE1_vucmax); + get_map.emplace("UnderexcLimIEEE1.vuimax", &get_UnderexcLimIEEE1_vuimax); + get_map.emplace("UnderexcLimIEEE1.vuimin", &get_UnderexcLimIEEE1_vuimin); + get_map.emplace("UnderexcLimIEEE1.vulmax", &get_UnderexcLimIEEE1_vulmax); + get_map.emplace("UnderexcLimIEEE1.vulmin", &get_UnderexcLimIEEE1_vulmin); + get_map.emplace("UnderexcLimIEEE1.vurmax", &get_UnderexcLimIEEE1_vurmax); } void UnderexcLimIEEE1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void UnderexcLimIEEE1::addEnumGetFnsToMap(std::map& g UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimIEEE1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimIEEE1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimIEEE1::declare() { return BaseClassDefiner(UnderexcLimIEEE1::addConstructToMap, UnderexcLimIEEE1::addPrimitiveAssignFnsToMap, UnderexcLimIEEE1::addClassAssignFnsToMap, UnderexcLimIEEE1::debugName); } +std::map UnderexcLimIEEE1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimIEEE1_factory() diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.hpp b/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.hpp index 7e60e75df..9c613d40a 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.hpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimIEEE1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.cpp b/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.cpp index da9274105..52d906247 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.cpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.cpp @@ -11,71 +11,103 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimIEEE2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimIEEE2.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kfb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kuf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tuq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tuv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vulmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vulmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimIEEE2::UnderexcLimIEEE2() {} UnderexcLimIEEE2::~UnderexcLimIEEE2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:UnderexcLimIEEE2.k1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.k2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kfb", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kuf", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p0", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p10", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p5", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p6", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p7", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p8", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p9", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q0", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q10", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q5", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q6", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q7", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q8", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q9", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tup", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tuq", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tuv", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vuimin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vulmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vulmin", { CGMESProfile::DY, } }, -}; - -std::list -UnderexcLimIEEE2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -UnderexcLimIEEE2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& UnderexcLimIEEE2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& UnderexcLimIEEE2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& UnderexcLimIEEE2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& UnderexcLimIEEE2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimIEEE2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimIEEE2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimIEEE2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimIEEE2_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1246,51 +1278,51 @@ const char* UnderexcLimIEEE2::debugString() const void UnderexcLimIEEE2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimIEEE2", &UnderexcLimIEEE2_factory); + factory_map.emplace("UnderexcLimIEEE2", &UnderexcLimIEEE2_factory); } void UnderexcLimIEEE2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimIEEE2.k1", &assign_UnderexcLimIEEE2_k1); - assign_map.emplace("cim:UnderexcLimIEEE2.k2", &assign_UnderexcLimIEEE2_k2); - assign_map.emplace("cim:UnderexcLimIEEE2.kfb", &assign_UnderexcLimIEEE2_kfb); - assign_map.emplace("cim:UnderexcLimIEEE2.kuf", &assign_UnderexcLimIEEE2_kuf); - assign_map.emplace("cim:UnderexcLimIEEE2.kui", &assign_UnderexcLimIEEE2_kui); - assign_map.emplace("cim:UnderexcLimIEEE2.kul", &assign_UnderexcLimIEEE2_kul); - assign_map.emplace("cim:UnderexcLimIEEE2.p0", &assign_UnderexcLimIEEE2_p0); - assign_map.emplace("cim:UnderexcLimIEEE2.p1", &assign_UnderexcLimIEEE2_p1); - assign_map.emplace("cim:UnderexcLimIEEE2.p10", &assign_UnderexcLimIEEE2_p10); - assign_map.emplace("cim:UnderexcLimIEEE2.p2", &assign_UnderexcLimIEEE2_p2); - assign_map.emplace("cim:UnderexcLimIEEE2.p3", &assign_UnderexcLimIEEE2_p3); - assign_map.emplace("cim:UnderexcLimIEEE2.p4", &assign_UnderexcLimIEEE2_p4); - assign_map.emplace("cim:UnderexcLimIEEE2.p5", &assign_UnderexcLimIEEE2_p5); - assign_map.emplace("cim:UnderexcLimIEEE2.p6", &assign_UnderexcLimIEEE2_p6); - assign_map.emplace("cim:UnderexcLimIEEE2.p7", &assign_UnderexcLimIEEE2_p7); - assign_map.emplace("cim:UnderexcLimIEEE2.p8", &assign_UnderexcLimIEEE2_p8); - assign_map.emplace("cim:UnderexcLimIEEE2.p9", &assign_UnderexcLimIEEE2_p9); - assign_map.emplace("cim:UnderexcLimIEEE2.q0", &assign_UnderexcLimIEEE2_q0); - assign_map.emplace("cim:UnderexcLimIEEE2.q1", &assign_UnderexcLimIEEE2_q1); - assign_map.emplace("cim:UnderexcLimIEEE2.q10", &assign_UnderexcLimIEEE2_q10); - assign_map.emplace("cim:UnderexcLimIEEE2.q2", &assign_UnderexcLimIEEE2_q2); - assign_map.emplace("cim:UnderexcLimIEEE2.q3", &assign_UnderexcLimIEEE2_q3); - assign_map.emplace("cim:UnderexcLimIEEE2.q4", &assign_UnderexcLimIEEE2_q4); - assign_map.emplace("cim:UnderexcLimIEEE2.q5", &assign_UnderexcLimIEEE2_q5); - assign_map.emplace("cim:UnderexcLimIEEE2.q6", &assign_UnderexcLimIEEE2_q6); - assign_map.emplace("cim:UnderexcLimIEEE2.q7", &assign_UnderexcLimIEEE2_q7); - assign_map.emplace("cim:UnderexcLimIEEE2.q8", &assign_UnderexcLimIEEE2_q8); - assign_map.emplace("cim:UnderexcLimIEEE2.q9", &assign_UnderexcLimIEEE2_q9); - assign_map.emplace("cim:UnderexcLimIEEE2.tu1", &assign_UnderexcLimIEEE2_tu1); - assign_map.emplace("cim:UnderexcLimIEEE2.tu2", &assign_UnderexcLimIEEE2_tu2); - assign_map.emplace("cim:UnderexcLimIEEE2.tu3", &assign_UnderexcLimIEEE2_tu3); - assign_map.emplace("cim:UnderexcLimIEEE2.tu4", &assign_UnderexcLimIEEE2_tu4); - assign_map.emplace("cim:UnderexcLimIEEE2.tul", &assign_UnderexcLimIEEE2_tul); - assign_map.emplace("cim:UnderexcLimIEEE2.tup", &assign_UnderexcLimIEEE2_tup); - assign_map.emplace("cim:UnderexcLimIEEE2.tuq", &assign_UnderexcLimIEEE2_tuq); - assign_map.emplace("cim:UnderexcLimIEEE2.tuv", &assign_UnderexcLimIEEE2_tuv); - assign_map.emplace("cim:UnderexcLimIEEE2.vuimax", &assign_UnderexcLimIEEE2_vuimax); - assign_map.emplace("cim:UnderexcLimIEEE2.vuimin", &assign_UnderexcLimIEEE2_vuimin); - assign_map.emplace("cim:UnderexcLimIEEE2.vulmax", &assign_UnderexcLimIEEE2_vulmax); - assign_map.emplace("cim:UnderexcLimIEEE2.vulmin", &assign_UnderexcLimIEEE2_vulmin); + assign_map.emplace("UnderexcLimIEEE2.k1", &assign_UnderexcLimIEEE2_k1); + assign_map.emplace("UnderexcLimIEEE2.k2", &assign_UnderexcLimIEEE2_k2); + assign_map.emplace("UnderexcLimIEEE2.kfb", &assign_UnderexcLimIEEE2_kfb); + assign_map.emplace("UnderexcLimIEEE2.kuf", &assign_UnderexcLimIEEE2_kuf); + assign_map.emplace("UnderexcLimIEEE2.kui", &assign_UnderexcLimIEEE2_kui); + assign_map.emplace("UnderexcLimIEEE2.kul", &assign_UnderexcLimIEEE2_kul); + assign_map.emplace("UnderexcLimIEEE2.p0", &assign_UnderexcLimIEEE2_p0); + assign_map.emplace("UnderexcLimIEEE2.p1", &assign_UnderexcLimIEEE2_p1); + assign_map.emplace("UnderexcLimIEEE2.p10", &assign_UnderexcLimIEEE2_p10); + assign_map.emplace("UnderexcLimIEEE2.p2", &assign_UnderexcLimIEEE2_p2); + assign_map.emplace("UnderexcLimIEEE2.p3", &assign_UnderexcLimIEEE2_p3); + assign_map.emplace("UnderexcLimIEEE2.p4", &assign_UnderexcLimIEEE2_p4); + assign_map.emplace("UnderexcLimIEEE2.p5", &assign_UnderexcLimIEEE2_p5); + assign_map.emplace("UnderexcLimIEEE2.p6", &assign_UnderexcLimIEEE2_p6); + assign_map.emplace("UnderexcLimIEEE2.p7", &assign_UnderexcLimIEEE2_p7); + assign_map.emplace("UnderexcLimIEEE2.p8", &assign_UnderexcLimIEEE2_p8); + assign_map.emplace("UnderexcLimIEEE2.p9", &assign_UnderexcLimIEEE2_p9); + assign_map.emplace("UnderexcLimIEEE2.q0", &assign_UnderexcLimIEEE2_q0); + assign_map.emplace("UnderexcLimIEEE2.q1", &assign_UnderexcLimIEEE2_q1); + assign_map.emplace("UnderexcLimIEEE2.q10", &assign_UnderexcLimIEEE2_q10); + assign_map.emplace("UnderexcLimIEEE2.q2", &assign_UnderexcLimIEEE2_q2); + assign_map.emplace("UnderexcLimIEEE2.q3", &assign_UnderexcLimIEEE2_q3); + assign_map.emplace("UnderexcLimIEEE2.q4", &assign_UnderexcLimIEEE2_q4); + assign_map.emplace("UnderexcLimIEEE2.q5", &assign_UnderexcLimIEEE2_q5); + assign_map.emplace("UnderexcLimIEEE2.q6", &assign_UnderexcLimIEEE2_q6); + assign_map.emplace("UnderexcLimIEEE2.q7", &assign_UnderexcLimIEEE2_q7); + assign_map.emplace("UnderexcLimIEEE2.q8", &assign_UnderexcLimIEEE2_q8); + assign_map.emplace("UnderexcLimIEEE2.q9", &assign_UnderexcLimIEEE2_q9); + assign_map.emplace("UnderexcLimIEEE2.tu1", &assign_UnderexcLimIEEE2_tu1); + assign_map.emplace("UnderexcLimIEEE2.tu2", &assign_UnderexcLimIEEE2_tu2); + assign_map.emplace("UnderexcLimIEEE2.tu3", &assign_UnderexcLimIEEE2_tu3); + assign_map.emplace("UnderexcLimIEEE2.tu4", &assign_UnderexcLimIEEE2_tu4); + assign_map.emplace("UnderexcLimIEEE2.tul", &assign_UnderexcLimIEEE2_tul); + assign_map.emplace("UnderexcLimIEEE2.tup", &assign_UnderexcLimIEEE2_tup); + assign_map.emplace("UnderexcLimIEEE2.tuq", &assign_UnderexcLimIEEE2_tuq); + assign_map.emplace("UnderexcLimIEEE2.tuv", &assign_UnderexcLimIEEE2_tuv); + assign_map.emplace("UnderexcLimIEEE2.vuimax", &assign_UnderexcLimIEEE2_vuimax); + assign_map.emplace("UnderexcLimIEEE2.vuimin", &assign_UnderexcLimIEEE2_vuimin); + assign_map.emplace("UnderexcLimIEEE2.vulmax", &assign_UnderexcLimIEEE2_vulmax); + assign_map.emplace("UnderexcLimIEEE2.vulmin", &assign_UnderexcLimIEEE2_vulmin); } void UnderexcLimIEEE2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1300,46 +1332,46 @@ void UnderexcLimIEEE2::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimIEEE2.k1", &get_UnderexcLimIEEE2_k1); - get_map.emplace("cim:UnderexcLimIEEE2.k2", &get_UnderexcLimIEEE2_k2); - get_map.emplace("cim:UnderexcLimIEEE2.kfb", &get_UnderexcLimIEEE2_kfb); - get_map.emplace("cim:UnderexcLimIEEE2.kuf", &get_UnderexcLimIEEE2_kuf); - get_map.emplace("cim:UnderexcLimIEEE2.kui", &get_UnderexcLimIEEE2_kui); - get_map.emplace("cim:UnderexcLimIEEE2.kul", &get_UnderexcLimIEEE2_kul); - get_map.emplace("cim:UnderexcLimIEEE2.p0", &get_UnderexcLimIEEE2_p0); - get_map.emplace("cim:UnderexcLimIEEE2.p1", &get_UnderexcLimIEEE2_p1); - get_map.emplace("cim:UnderexcLimIEEE2.p10", &get_UnderexcLimIEEE2_p10); - get_map.emplace("cim:UnderexcLimIEEE2.p2", &get_UnderexcLimIEEE2_p2); - get_map.emplace("cim:UnderexcLimIEEE2.p3", &get_UnderexcLimIEEE2_p3); - get_map.emplace("cim:UnderexcLimIEEE2.p4", &get_UnderexcLimIEEE2_p4); - get_map.emplace("cim:UnderexcLimIEEE2.p5", &get_UnderexcLimIEEE2_p5); - get_map.emplace("cim:UnderexcLimIEEE2.p6", &get_UnderexcLimIEEE2_p6); - get_map.emplace("cim:UnderexcLimIEEE2.p7", &get_UnderexcLimIEEE2_p7); - get_map.emplace("cim:UnderexcLimIEEE2.p8", &get_UnderexcLimIEEE2_p8); - get_map.emplace("cim:UnderexcLimIEEE2.p9", &get_UnderexcLimIEEE2_p9); - get_map.emplace("cim:UnderexcLimIEEE2.q0", &get_UnderexcLimIEEE2_q0); - get_map.emplace("cim:UnderexcLimIEEE2.q1", &get_UnderexcLimIEEE2_q1); - get_map.emplace("cim:UnderexcLimIEEE2.q10", &get_UnderexcLimIEEE2_q10); - get_map.emplace("cim:UnderexcLimIEEE2.q2", &get_UnderexcLimIEEE2_q2); - get_map.emplace("cim:UnderexcLimIEEE2.q3", &get_UnderexcLimIEEE2_q3); - get_map.emplace("cim:UnderexcLimIEEE2.q4", &get_UnderexcLimIEEE2_q4); - get_map.emplace("cim:UnderexcLimIEEE2.q5", &get_UnderexcLimIEEE2_q5); - get_map.emplace("cim:UnderexcLimIEEE2.q6", &get_UnderexcLimIEEE2_q6); - get_map.emplace("cim:UnderexcLimIEEE2.q7", &get_UnderexcLimIEEE2_q7); - get_map.emplace("cim:UnderexcLimIEEE2.q8", &get_UnderexcLimIEEE2_q8); - get_map.emplace("cim:UnderexcLimIEEE2.q9", &get_UnderexcLimIEEE2_q9); - get_map.emplace("cim:UnderexcLimIEEE2.tu1", &get_UnderexcLimIEEE2_tu1); - get_map.emplace("cim:UnderexcLimIEEE2.tu2", &get_UnderexcLimIEEE2_tu2); - get_map.emplace("cim:UnderexcLimIEEE2.tu3", &get_UnderexcLimIEEE2_tu3); - get_map.emplace("cim:UnderexcLimIEEE2.tu4", &get_UnderexcLimIEEE2_tu4); - get_map.emplace("cim:UnderexcLimIEEE2.tul", &get_UnderexcLimIEEE2_tul); - get_map.emplace("cim:UnderexcLimIEEE2.tup", &get_UnderexcLimIEEE2_tup); - get_map.emplace("cim:UnderexcLimIEEE2.tuq", &get_UnderexcLimIEEE2_tuq); - get_map.emplace("cim:UnderexcLimIEEE2.tuv", &get_UnderexcLimIEEE2_tuv); - get_map.emplace("cim:UnderexcLimIEEE2.vuimax", &get_UnderexcLimIEEE2_vuimax); - get_map.emplace("cim:UnderexcLimIEEE2.vuimin", &get_UnderexcLimIEEE2_vuimin); - get_map.emplace("cim:UnderexcLimIEEE2.vulmax", &get_UnderexcLimIEEE2_vulmax); - get_map.emplace("cim:UnderexcLimIEEE2.vulmin", &get_UnderexcLimIEEE2_vulmin); + get_map.emplace("UnderexcLimIEEE2.k1", &get_UnderexcLimIEEE2_k1); + get_map.emplace("UnderexcLimIEEE2.k2", &get_UnderexcLimIEEE2_k2); + get_map.emplace("UnderexcLimIEEE2.kfb", &get_UnderexcLimIEEE2_kfb); + get_map.emplace("UnderexcLimIEEE2.kuf", &get_UnderexcLimIEEE2_kuf); + get_map.emplace("UnderexcLimIEEE2.kui", &get_UnderexcLimIEEE2_kui); + get_map.emplace("UnderexcLimIEEE2.kul", &get_UnderexcLimIEEE2_kul); + get_map.emplace("UnderexcLimIEEE2.p0", &get_UnderexcLimIEEE2_p0); + get_map.emplace("UnderexcLimIEEE2.p1", &get_UnderexcLimIEEE2_p1); + get_map.emplace("UnderexcLimIEEE2.p10", &get_UnderexcLimIEEE2_p10); + get_map.emplace("UnderexcLimIEEE2.p2", &get_UnderexcLimIEEE2_p2); + get_map.emplace("UnderexcLimIEEE2.p3", &get_UnderexcLimIEEE2_p3); + get_map.emplace("UnderexcLimIEEE2.p4", &get_UnderexcLimIEEE2_p4); + get_map.emplace("UnderexcLimIEEE2.p5", &get_UnderexcLimIEEE2_p5); + get_map.emplace("UnderexcLimIEEE2.p6", &get_UnderexcLimIEEE2_p6); + get_map.emplace("UnderexcLimIEEE2.p7", &get_UnderexcLimIEEE2_p7); + get_map.emplace("UnderexcLimIEEE2.p8", &get_UnderexcLimIEEE2_p8); + get_map.emplace("UnderexcLimIEEE2.p9", &get_UnderexcLimIEEE2_p9); + get_map.emplace("UnderexcLimIEEE2.q0", &get_UnderexcLimIEEE2_q0); + get_map.emplace("UnderexcLimIEEE2.q1", &get_UnderexcLimIEEE2_q1); + get_map.emplace("UnderexcLimIEEE2.q10", &get_UnderexcLimIEEE2_q10); + get_map.emplace("UnderexcLimIEEE2.q2", &get_UnderexcLimIEEE2_q2); + get_map.emplace("UnderexcLimIEEE2.q3", &get_UnderexcLimIEEE2_q3); + get_map.emplace("UnderexcLimIEEE2.q4", &get_UnderexcLimIEEE2_q4); + get_map.emplace("UnderexcLimIEEE2.q5", &get_UnderexcLimIEEE2_q5); + get_map.emplace("UnderexcLimIEEE2.q6", &get_UnderexcLimIEEE2_q6); + get_map.emplace("UnderexcLimIEEE2.q7", &get_UnderexcLimIEEE2_q7); + get_map.emplace("UnderexcLimIEEE2.q8", &get_UnderexcLimIEEE2_q8); + get_map.emplace("UnderexcLimIEEE2.q9", &get_UnderexcLimIEEE2_q9); + get_map.emplace("UnderexcLimIEEE2.tu1", &get_UnderexcLimIEEE2_tu1); + get_map.emplace("UnderexcLimIEEE2.tu2", &get_UnderexcLimIEEE2_tu2); + get_map.emplace("UnderexcLimIEEE2.tu3", &get_UnderexcLimIEEE2_tu3); + get_map.emplace("UnderexcLimIEEE2.tu4", &get_UnderexcLimIEEE2_tu4); + get_map.emplace("UnderexcLimIEEE2.tul", &get_UnderexcLimIEEE2_tul); + get_map.emplace("UnderexcLimIEEE2.tup", &get_UnderexcLimIEEE2_tup); + get_map.emplace("UnderexcLimIEEE2.tuq", &get_UnderexcLimIEEE2_tuq); + get_map.emplace("UnderexcLimIEEE2.tuv", &get_UnderexcLimIEEE2_tuv); + get_map.emplace("UnderexcLimIEEE2.vuimax", &get_UnderexcLimIEEE2_vuimax); + get_map.emplace("UnderexcLimIEEE2.vuimin", &get_UnderexcLimIEEE2_vuimin); + get_map.emplace("UnderexcLimIEEE2.vulmax", &get_UnderexcLimIEEE2_vulmax); + get_map.emplace("UnderexcLimIEEE2.vulmin", &get_UnderexcLimIEEE2_vulmin); } void UnderexcLimIEEE2::addClassGetFnsToMap(std::map& get_map) const @@ -1352,11 +1384,25 @@ void UnderexcLimIEEE2::addEnumGetFnsToMap(std::map& g UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimIEEE2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimIEEE2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimIEEE2::declare() { return BaseClassDefiner(UnderexcLimIEEE2::addConstructToMap, UnderexcLimIEEE2::addPrimitiveAssignFnsToMap, UnderexcLimIEEE2::addClassAssignFnsToMap, UnderexcLimIEEE2::debugName); } +std::map UnderexcLimIEEE2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimIEEE2_factory() diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.hpp b/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.hpp index 1a95ced19..527543df7 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.hpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLimIEEE2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimIEEE2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLimX1.cpp b/CGMES_2.4.13_18DEC2013/UnderexcLimX1.cpp index a14d1ce69..6f8ef9284 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLimX1.cpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLimX1.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimX1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimX1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.melmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimX1::UnderexcLimX1() {} UnderexcLimX1::~UnderexcLimX1() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimX1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimX1::getClassNamespaceUrl() const { - { "cim:UnderexcLimX1.k", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.kf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.km", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.melmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.tf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.tm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimX1::getPossibleProfilesForClass() const +const std::string& UnderexcLimX1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimX1::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimX1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimX1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimX1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimX1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimX1_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* UnderexcLimX1::debugString() const void UnderexcLimX1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimX1", &UnderexcLimX1_factory); + factory_map.emplace("UnderexcLimX1", &UnderexcLimX1_factory); } void UnderexcLimX1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimX1.k", &assign_UnderexcLimX1_k); - assign_map.emplace("cim:UnderexcLimX1.kf2", &assign_UnderexcLimX1_kf2); - assign_map.emplace("cim:UnderexcLimX1.km", &assign_UnderexcLimX1_km); - assign_map.emplace("cim:UnderexcLimX1.melmax", &assign_UnderexcLimX1_melmax); - assign_map.emplace("cim:UnderexcLimX1.tf2", &assign_UnderexcLimX1_tf2); - assign_map.emplace("cim:UnderexcLimX1.tm", &assign_UnderexcLimX1_tm); + assign_map.emplace("UnderexcLimX1.k", &assign_UnderexcLimX1_k); + assign_map.emplace("UnderexcLimX1.kf2", &assign_UnderexcLimX1_kf2); + assign_map.emplace("UnderexcLimX1.km", &assign_UnderexcLimX1_km); + assign_map.emplace("UnderexcLimX1.melmax", &assign_UnderexcLimX1_melmax); + assign_map.emplace("UnderexcLimX1.tf2", &assign_UnderexcLimX1_tf2); + assign_map.emplace("UnderexcLimX1.tm", &assign_UnderexcLimX1_tm); } void UnderexcLimX1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void UnderexcLimX1::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimX1.k", &get_UnderexcLimX1_k); - get_map.emplace("cim:UnderexcLimX1.kf2", &get_UnderexcLimX1_kf2); - get_map.emplace("cim:UnderexcLimX1.km", &get_UnderexcLimX1_km); - get_map.emplace("cim:UnderexcLimX1.melmax", &get_UnderexcLimX1_melmax); - get_map.emplace("cim:UnderexcLimX1.tf2", &get_UnderexcLimX1_tf2); - get_map.emplace("cim:UnderexcLimX1.tm", &get_UnderexcLimX1_tm); + get_map.emplace("UnderexcLimX1.k", &get_UnderexcLimX1_k); + get_map.emplace("UnderexcLimX1.kf2", &get_UnderexcLimX1_kf2); + get_map.emplace("UnderexcLimX1.km", &get_UnderexcLimX1_km); + get_map.emplace("UnderexcLimX1.melmax", &get_UnderexcLimX1_melmax); + get_map.emplace("UnderexcLimX1.tf2", &get_UnderexcLimX1_tf2); + get_map.emplace("UnderexcLimX1.tm", &get_UnderexcLimX1_tm); } void UnderexcLimX1::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void UnderexcLimX1::addEnumGetFnsToMap(std::map& get_ UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimX1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimX1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimX1::declare() { return BaseClassDefiner(UnderexcLimX1::addConstructToMap, UnderexcLimX1::addPrimitiveAssignFnsToMap, UnderexcLimX1::addClassAssignFnsToMap, UnderexcLimX1::debugName); } +std::map UnderexcLimX1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimX1_factory() diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLimX1.hpp b/CGMES_2.4.13_18DEC2013/UnderexcLimX1.hpp index cd15dda37..306bb56bc 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLimX1.hpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLimX1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimX1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLimX2.cpp b/CGMES_2.4.13_18DEC2013/UnderexcLimX2.cpp index 64bf7f3c5..ea9b015c6 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLimX2.cpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLimX2.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimX2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimX2.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.melmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.qo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimX2::UnderexcLimX2() {} UnderexcLimX2::~UnderexcLimX2() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimX2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimX2::getClassNamespaceUrl() const { - { "cim:UnderexcLimX2.kf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.km", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.melmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.qo", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.r", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.tf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.tm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimX2::getPossibleProfilesForClass() const +const std::string& UnderexcLimX2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimX2::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimX2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimX2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimX2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimX2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimX2_kf2(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* UnderexcLimX2::debugString() const void UnderexcLimX2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimX2", &UnderexcLimX2_factory); + factory_map.emplace("UnderexcLimX2", &UnderexcLimX2_factory); } void UnderexcLimX2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimX2.kf2", &assign_UnderexcLimX2_kf2); - assign_map.emplace("cim:UnderexcLimX2.km", &assign_UnderexcLimX2_km); - assign_map.emplace("cim:UnderexcLimX2.melmax", &assign_UnderexcLimX2_melmax); - assign_map.emplace("cim:UnderexcLimX2.qo", &assign_UnderexcLimX2_qo); - assign_map.emplace("cim:UnderexcLimX2.r", &assign_UnderexcLimX2_r); - assign_map.emplace("cim:UnderexcLimX2.tf2", &assign_UnderexcLimX2_tf2); - assign_map.emplace("cim:UnderexcLimX2.tm", &assign_UnderexcLimX2_tm); + assign_map.emplace("UnderexcLimX2.kf2", &assign_UnderexcLimX2_kf2); + assign_map.emplace("UnderexcLimX2.km", &assign_UnderexcLimX2_km); + assign_map.emplace("UnderexcLimX2.melmax", &assign_UnderexcLimX2_melmax); + assign_map.emplace("UnderexcLimX2.qo", &assign_UnderexcLimX2_qo); + assign_map.emplace("UnderexcLimX2.r", &assign_UnderexcLimX2_r); + assign_map.emplace("UnderexcLimX2.tf2", &assign_UnderexcLimX2_tf2); + assign_map.emplace("UnderexcLimX2.tm", &assign_UnderexcLimX2_tm); } void UnderexcLimX2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void UnderexcLimX2::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimX2.kf2", &get_UnderexcLimX2_kf2); - get_map.emplace("cim:UnderexcLimX2.km", &get_UnderexcLimX2_km); - get_map.emplace("cim:UnderexcLimX2.melmax", &get_UnderexcLimX2_melmax); - get_map.emplace("cim:UnderexcLimX2.qo", &get_UnderexcLimX2_qo); - get_map.emplace("cim:UnderexcLimX2.r", &get_UnderexcLimX2_r); - get_map.emplace("cim:UnderexcLimX2.tf2", &get_UnderexcLimX2_tf2); - get_map.emplace("cim:UnderexcLimX2.tm", &get_UnderexcLimX2_tm); + get_map.emplace("UnderexcLimX2.kf2", &get_UnderexcLimX2_kf2); + get_map.emplace("UnderexcLimX2.km", &get_UnderexcLimX2_km); + get_map.emplace("UnderexcLimX2.melmax", &get_UnderexcLimX2_melmax); + get_map.emplace("UnderexcLimX2.qo", &get_UnderexcLimX2_qo); + get_map.emplace("UnderexcLimX2.r", &get_UnderexcLimX2_r); + get_map.emplace("UnderexcLimX2.tf2", &get_UnderexcLimX2_tf2); + get_map.emplace("UnderexcLimX2.tm", &get_UnderexcLimX2_tm); } void UnderexcLimX2::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void UnderexcLimX2::addEnumGetFnsToMap(std::map& get_ UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimX2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimX2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimX2::declare() { return BaseClassDefiner(UnderexcLimX2::addConstructToMap, UnderexcLimX2::addPrimitiveAssignFnsToMap, UnderexcLimX2::addClassAssignFnsToMap, UnderexcLimX2::debugName); } +std::map UnderexcLimX2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimX2_factory() diff --git a/CGMES_2.4.13_18DEC2013/UnderexcLimX2.hpp b/CGMES_2.4.13_18DEC2013/UnderexcLimX2.hpp index 43f2bfa49..14f9a19a2 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcLimX2.hpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcLimX2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimX2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterDynamics.cpp b/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterDynamics.cpp index 18ef7b3ec..ec64d21b1 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcitationLimiterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcitationLimiterDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcitationLimiterDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcitationLimiterDynamics::UnderexcitationLimiterDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} UnderexcitationLimiterDynamics::~UnderexcitationLimiterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcitationLimiterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcitationLimiterDynamics::getClassNamespaceUrl() const { - { "cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:UnderexcitationLimiterDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcitationLimiterDynamics::getPossibleProfilesForClass() const +const std::string& UnderexcitationLimiterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes() const +const std::list& UnderexcitationLimiterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcitationLimiterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcitationLimiterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcitationLimiterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* UnderexcitationLimiterDynamics::debugString() const void UnderexcitationLimiterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcitationLimiterDynamics", &UnderexcitationLimiterDynamics_factory); + factory_map.emplace("UnderexcitationLimiterDynamics", &UnderexcitationLimiterDynamics_factory); } void UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_m void UnderexcitationLimiterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:UnderexcitationLimiterDynamics.RemoteInputSignal", &assign_UnderexcitationLimiterDynamics_RemoteInputSignal); + assign_map.emplace("UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); + assign_map.emplace("UnderexcitationLimiterDynamics.RemoteInputSignal", &assign_UnderexcitationLimiterDynamics_RemoteInputSignal); } void UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &get_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); + get_map.emplace("UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &get_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); } void UnderexcitationLimiterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void UnderexcitationLimiterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcitationLimiterDynamics::declare() { return BaseClassDefiner(UnderexcitationLimiterDynamics::addConstructToMap, UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap, UnderexcitationLimiterDynamics::addClassAssignFnsToMap, UnderexcitationLimiterDynamics::debugName); } +std::map UnderexcitationLimiterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcitationLimiterDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterDynamics.hpp b/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterDynamics.hpp index 3836bf4cc..630ff3a92 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcitationLimiterDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterUserDefined.cpp b/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterUserDefined.cpp index fb5ad61c2..11c33ca94 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcitationLimiterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcitationLimiterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcitationLimiterUserDefined::UnderexcitationLimiterUserDefined() {} UnderexcitationLimiterUserDefined::~UnderexcitationLimiterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcitationLimiterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcitationLimiterUserDefined::getClassNamespaceUrl() const { - { "cim:UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:UnderexcitationLimiterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcitationLimiterUserDefined::getPossibleProfilesForClass() const +const std::string& UnderexcitationLimiterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcitationLimiterUserDefined::getPossibleProfilesForAttributes() const +const std::list& UnderexcitationLimiterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcitationLimiterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcitationLimiterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcitationLimiterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* UnderexcitationLimiterUserDefined::debugString() const void UnderexcitationLimiterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcitationLimiterUserDefined", &UnderexcitationLimiterUserDefined_factory); + factory_map.emplace("UnderexcitationLimiterUserDefined", &UnderexcitationLimiterUserDefined_factory); } void UnderexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterUserDefined.proprietary", &assign_UnderexcitationLimiterUserDefined_proprietary); + assign_map.emplace("UnderexcitationLimiterUserDefined.proprietary", &assign_UnderexcitationLimiterUserDefined_proprietary); } void UnderexcitationLimiterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_UnderexcitationLimiterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_UnderexcitationLimiterUserDefined_ProprietaryParameterDynamics); } void UnderexcitationLimiterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcitationLimiterUserDefined.proprietary", &get_UnderexcitationLimiterUserDefined_proprietary); + get_map.emplace("UnderexcitationLimiterUserDefined.proprietary", &get_UnderexcitationLimiterUserDefined_proprietary); } void UnderexcitationLimiterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void UnderexcitationLimiterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcitationLimiterUserDefined::declare() { return BaseClassDefiner(UnderexcitationLimiterUserDefined::addConstructToMap, UnderexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap, UnderexcitationLimiterUserDefined::addClassAssignFnsToMap, UnderexcitationLimiterUserDefined::debugName); } +std::map UnderexcitationLimiterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcitationLimiterUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterUserDefined.hpp b/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterUserDefined.hpp index 5971269bc..f96e03a10 100644 --- a/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/UnderexcitationLimiterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcitationLimiterUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VAdjIEEE.cpp b/CGMES_2.4.13_18DEC2013/VAdjIEEE.cpp index f62f88f4f..597fccfdd 100644 --- a/CGMES_2.4.13_18DEC2013/VAdjIEEE.cpp +++ b/CGMES_2.4.13_18DEC2013/VAdjIEEE.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VAdjIEEE(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VAdjIEEE.adjslew", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.taoff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.taon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VAdjIEEE::VAdjIEEE() {} VAdjIEEE::~VAdjIEEE() {} -static const std::list PossibleProfilesForClass = +const std::list& VAdjIEEE::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VAdjIEEE::getClassNamespaceUrl() const { - { "cim:VAdjIEEE.adjslew", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.taoff", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.taon", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjf", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjmax", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VAdjIEEE::getPossibleProfilesForClass() const +const std::string& VAdjIEEE::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VAdjIEEE::getPossibleProfilesForAttributes() const +const std::list& VAdjIEEE::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageAdjusterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VAdjIEEE::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VAdjIEEE::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VAdjIEEE::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VAdjIEEE_adjslew(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* VAdjIEEE::debugString() const void VAdjIEEE::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VAdjIEEE", &VAdjIEEE_factory); + factory_map.emplace("VAdjIEEE", &VAdjIEEE_factory); } void VAdjIEEE::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VAdjIEEE.adjslew", &assign_VAdjIEEE_adjslew); - assign_map.emplace("cim:VAdjIEEE.taoff", &assign_VAdjIEEE_taoff); - assign_map.emplace("cim:VAdjIEEE.taon", &assign_VAdjIEEE_taon); - assign_map.emplace("cim:VAdjIEEE.vadjf", &assign_VAdjIEEE_vadjf); - assign_map.emplace("cim:VAdjIEEE.vadjmax", &assign_VAdjIEEE_vadjmax); - assign_map.emplace("cim:VAdjIEEE.vadjmin", &assign_VAdjIEEE_vadjmin); + assign_map.emplace("VAdjIEEE.adjslew", &assign_VAdjIEEE_adjslew); + assign_map.emplace("VAdjIEEE.taoff", &assign_VAdjIEEE_taoff); + assign_map.emplace("VAdjIEEE.taon", &assign_VAdjIEEE_taon); + assign_map.emplace("VAdjIEEE.vadjf", &assign_VAdjIEEE_vadjf); + assign_map.emplace("VAdjIEEE.vadjmax", &assign_VAdjIEEE_vadjmax); + assign_map.emplace("VAdjIEEE.vadjmin", &assign_VAdjIEEE_vadjmin); } void VAdjIEEE::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void VAdjIEEE::addClassAssignFnsToMap(std::unordered_map& get_map) const { VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VAdjIEEE.adjslew", &get_VAdjIEEE_adjslew); - get_map.emplace("cim:VAdjIEEE.taoff", &get_VAdjIEEE_taoff); - get_map.emplace("cim:VAdjIEEE.taon", &get_VAdjIEEE_taon); - get_map.emplace("cim:VAdjIEEE.vadjf", &get_VAdjIEEE_vadjf); - get_map.emplace("cim:VAdjIEEE.vadjmax", &get_VAdjIEEE_vadjmax); - get_map.emplace("cim:VAdjIEEE.vadjmin", &get_VAdjIEEE_vadjmin); + get_map.emplace("VAdjIEEE.adjslew", &get_VAdjIEEE_adjslew); + get_map.emplace("VAdjIEEE.taoff", &get_VAdjIEEE_taoff); + get_map.emplace("VAdjIEEE.taon", &get_VAdjIEEE_taon); + get_map.emplace("VAdjIEEE.vadjf", &get_VAdjIEEE_vadjf); + get_map.emplace("VAdjIEEE.vadjmax", &get_VAdjIEEE_vadjmax); + get_map.emplace("VAdjIEEE.vadjmin", &get_VAdjIEEE_vadjmin); } void VAdjIEEE::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void VAdjIEEE::addEnumGetFnsToMap(std::map& get_map) VoltageAdjusterDynamics::addEnumGetFnsToMap(get_map); } +bool VAdjIEEE::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VAdjIEEE" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VAdjIEEE::declare() { return BaseClassDefiner(VAdjIEEE::addConstructToMap, VAdjIEEE::addPrimitiveAssignFnsToMap, VAdjIEEE::addClassAssignFnsToMap, VAdjIEEE::debugName); } +std::map VAdjIEEE::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageAdjusterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VAdjIEEE_factory() diff --git a/CGMES_2.4.13_18DEC2013/VAdjIEEE.hpp b/CGMES_2.4.13_18DEC2013/VAdjIEEE.hpp index 8ada8dfb7..30153dbbf 100644 --- a/CGMES_2.4.13_18DEC2013/VAdjIEEE.hpp +++ b/CGMES_2.4.13_18DEC2013/VAdjIEEE.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageAdjusterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VAdjIEEE_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VCompIEEEType1.cpp b/CGMES_2.4.13_18DEC2013/VCompIEEEType1.cpp index 92cbabebb..a87383c71 100644 --- a/CGMES_2.4.13_18DEC2013/VCompIEEEType1.cpp +++ b/CGMES_2.4.13_18DEC2013/VCompIEEEType1.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VCompIEEEType1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VCompIEEEType1.rc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType1.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType1.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VCompIEEEType1::VCompIEEEType1() {} VCompIEEEType1::~VCompIEEEType1() {} -static const std::list PossibleProfilesForClass = +const std::list& VCompIEEEType1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VCompIEEEType1::getClassNamespaceUrl() const { - { "cim:VCompIEEEType1.rc", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType1.tr", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType1.xc", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VCompIEEEType1::getPossibleProfilesForClass() const +const std::string& VCompIEEEType1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VCompIEEEType1::getPossibleProfilesForAttributes() const +const std::list& VCompIEEEType1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VCompIEEEType1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VCompIEEEType1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VCompIEEEType1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VCompIEEEType1_rc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* VCompIEEEType1::debugString() const void VCompIEEEType1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VCompIEEEType1", &VCompIEEEType1_factory); + factory_map.emplace("VCompIEEEType1", &VCompIEEEType1_factory); } void VCompIEEEType1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType1.rc", &assign_VCompIEEEType1_rc); - assign_map.emplace("cim:VCompIEEEType1.tr", &assign_VCompIEEEType1_tr); - assign_map.emplace("cim:VCompIEEEType1.xc", &assign_VCompIEEEType1_xc); + assign_map.emplace("VCompIEEEType1.rc", &assign_VCompIEEEType1_rc); + assign_map.emplace("VCompIEEEType1.tr", &assign_VCompIEEEType1_tr); + assign_map.emplace("VCompIEEEType1.xc", &assign_VCompIEEEType1_xc); } void VCompIEEEType1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void VCompIEEEType1::addClassAssignFnsToMap(std::unordered_map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VCompIEEEType1.rc", &get_VCompIEEEType1_rc); - get_map.emplace("cim:VCompIEEEType1.tr", &get_VCompIEEEType1_tr); - get_map.emplace("cim:VCompIEEEType1.xc", &get_VCompIEEEType1_xc); + get_map.emplace("VCompIEEEType1.rc", &get_VCompIEEEType1_rc); + get_map.emplace("VCompIEEEType1.tr", &get_VCompIEEEType1_tr); + get_map.emplace("VCompIEEEType1.xc", &get_VCompIEEEType1_xc); } void VCompIEEEType1::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void VCompIEEEType1::addEnumGetFnsToMap(std::map& get VoltageCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool VCompIEEEType1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VCompIEEEType1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VCompIEEEType1::declare() { return BaseClassDefiner(VCompIEEEType1::addConstructToMap, VCompIEEEType1::addPrimitiveAssignFnsToMap, VCompIEEEType1::addClassAssignFnsToMap, VCompIEEEType1::debugName); } +std::map VCompIEEEType1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VCompIEEEType1_factory() diff --git a/CGMES_2.4.13_18DEC2013/VCompIEEEType1.hpp b/CGMES_2.4.13_18DEC2013/VCompIEEEType1.hpp index d5232a748..4ecf35e09 100644 --- a/CGMES_2.4.13_18DEC2013/VCompIEEEType1.hpp +++ b/CGMES_2.4.13_18DEC2013/VCompIEEEType1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VCompIEEEType1_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VCompIEEEType2.cpp b/CGMES_2.4.13_18DEC2013/VCompIEEEType2.cpp index 1377d7b30..49cf86194 100644 --- a/CGMES_2.4.13_18DEC2013/VCompIEEEType2.cpp +++ b/CGMES_2.4.13_18DEC2013/VCompIEEEType2.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VCompIEEEType2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VCompIEEEType2.GenICompensationForGenJ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VCompIEEEType2::VCompIEEEType2() {} VCompIEEEType2::~VCompIEEEType2() {} -static const std::list PossibleProfilesForClass = +const std::list& VCompIEEEType2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VCompIEEEType2::getClassNamespaceUrl() const { - { "cim:VCompIEEEType2.GenICompensationForGenJ", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType2.tr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VCompIEEEType2::getPossibleProfilesForClass() const +const std::string& VCompIEEEType2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VCompIEEEType2::getPossibleProfilesForAttributes() const +const std::list& VCompIEEEType2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VCompIEEEType2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VCompIEEEType2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VCompIEEEType2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GenICompensationForGenJ_VcompIEEEType2(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VCompIEEEType2::debugString() const void VCompIEEEType2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VCompIEEEType2", &VCompIEEEType2_factory); + factory_map.emplace("VCompIEEEType2", &VCompIEEEType2_factory); } void VCompIEEEType2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType2.tr", &assign_VCompIEEEType2_tr); + assign_map.emplace("VCompIEEEType2.tr", &assign_VCompIEEEType2_tr); } void VCompIEEEType2::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType2.GenICompensationForGenJ", &assign_VCompIEEEType2_GenICompensationForGenJ); + assign_map.emplace("VCompIEEEType2.GenICompensationForGenJ", &assign_VCompIEEEType2_GenICompensationForGenJ); } void VCompIEEEType2::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VCompIEEEType2.tr", &get_VCompIEEEType2_tr); + get_map.emplace("VCompIEEEType2.tr", &get_VCompIEEEType2_tr); } void VCompIEEEType2::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VCompIEEEType2::addEnumGetFnsToMap(std::map& get VoltageCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool VCompIEEEType2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VCompIEEEType2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VCompIEEEType2::declare() { return BaseClassDefiner(VCompIEEEType2::addConstructToMap, VCompIEEEType2::addPrimitiveAssignFnsToMap, VCompIEEEType2::addClassAssignFnsToMap, VCompIEEEType2::debugName); } +std::map VCompIEEEType2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VCompIEEEType2_factory() diff --git a/CGMES_2.4.13_18DEC2013/VCompIEEEType2.hpp b/CGMES_2.4.13_18DEC2013/VCompIEEEType2.hpp index 67fe38c34..caf63301e 100644 --- a/CGMES_2.4.13_18DEC2013/VCompIEEEType2.hpp +++ b/CGMES_2.4.13_18DEC2013/VCompIEEEType2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Seconds.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VCompIEEEType2_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ValueAliasSet.cpp b/CGMES_2.4.13_18DEC2013/ValueAliasSet.cpp index 1ba46808c..d6718438f 100644 --- a/CGMES_2.4.13_18DEC2013/ValueAliasSet.cpp +++ b/CGMES_2.4.13_18DEC2013/ValueAliasSet.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ValueAliasSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ValueAliasSet.Commands", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.Discretes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.RaiseLowerCommands", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.Values", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ValueAliasSet::ValueAliasSet() {} ValueAliasSet::~ValueAliasSet() {} -static const std::list PossibleProfilesForClass = +const std::list& ValueAliasSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ValueAliasSet::getClassNamespaceUrl() const { - { "cim:ValueAliasSet.Commands", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.Discretes", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.RaiseLowerCommands", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.Values", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ValueAliasSet::getPossibleProfilesForClass() const +const std::string& ValueAliasSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ValueAliasSet::getPossibleProfilesForAttributes() const +const std::list& ValueAliasSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ValueAliasSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ValueAliasSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ValueAliasSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Command_ValueAliasSet(BaseClass*, BaseClass*); @@ -126,7 +158,7 @@ const char* ValueAliasSet::debugString() const void ValueAliasSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ValueAliasSet", &ValueAliasSet_factory); + factory_map.emplace("ValueAliasSet", &ValueAliasSet_factory); } void ValueAliasSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -135,10 +167,10 @@ void ValueAliasSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueAliasSet.Commands", &assign_ValueAliasSet_Commands); - assign_map.emplace("cim:ValueAliasSet.Discretes", &assign_ValueAliasSet_Discretes); - assign_map.emplace("cim:ValueAliasSet.RaiseLowerCommands", &assign_ValueAliasSet_RaiseLowerCommands); - assign_map.emplace("cim:ValueAliasSet.Values", &assign_ValueAliasSet_Values); + assign_map.emplace("ValueAliasSet.Commands", &assign_ValueAliasSet_Commands); + assign_map.emplace("ValueAliasSet.Discretes", &assign_ValueAliasSet_Discretes); + assign_map.emplace("ValueAliasSet.RaiseLowerCommands", &assign_ValueAliasSet_RaiseLowerCommands); + assign_map.emplace("ValueAliasSet.Values", &assign_ValueAliasSet_Values); } void ValueAliasSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -156,11 +188,25 @@ void ValueAliasSet::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ValueAliasSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ValueAliasSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ValueAliasSet::declare() { return BaseClassDefiner(ValueAliasSet::addConstructToMap, ValueAliasSet::addPrimitiveAssignFnsToMap, ValueAliasSet::addClassAssignFnsToMap, ValueAliasSet::debugName); } +std::map ValueAliasSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ValueAliasSet_factory() diff --git a/CGMES_2.4.13_18DEC2013/ValueAliasSet.hpp b/CGMES_2.4.13_18DEC2013/ValueAliasSet.hpp index 80a9bad49..6d764ad5d 100644 --- a/CGMES_2.4.13_18DEC2013/ValueAliasSet.hpp +++ b/CGMES_2.4.13_18DEC2013/ValueAliasSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ValueAliasSet_factory(); diff --git a/CGMES_2.4.13_18DEC2013/ValueToAlias.cpp b/CGMES_2.4.13_18DEC2013/ValueToAlias.cpp index e0b3ae3d9..d48cf648c 100644 --- a/CGMES_2.4.13_18DEC2013/ValueToAlias.cpp +++ b/CGMES_2.4.13_18DEC2013/ValueToAlias.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ValueToAlias(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ValueToAlias.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueToAlias.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ValueToAlias::ValueToAlias() : ValueAliasSet(nullptr) {} ValueToAlias::~ValueToAlias() {} -static const std::list PossibleProfilesForClass = +const std::list& ValueToAlias::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ValueToAlias::getClassNamespaceUrl() const { - { "cim:ValueToAlias.ValueAliasSet", { CGMESProfile::EQ, } }, - { "cim:ValueToAlias.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ValueToAlias::getPossibleProfilesForClass() const +const std::string& ValueToAlias::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ValueToAlias::getPossibleProfilesForAttributes() const +const std::list& ValueToAlias::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ValueToAlias::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ValueToAlias::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ValueToAlias::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ValueAliasSet_Values(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* ValueToAlias::debugString() const void ValueToAlias::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ValueToAlias", &ValueToAlias_factory); + factory_map.emplace("ValueToAlias", &ValueToAlias_factory); } void ValueToAlias::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueToAlias.value", &assign_ValueToAlias_value); + assign_map.emplace("ValueToAlias.value", &assign_ValueToAlias_value); } void ValueToAlias::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueToAlias.ValueAliasSet", &assign_ValueToAlias_ValueAliasSet); + assign_map.emplace("ValueToAlias.ValueAliasSet", &assign_ValueToAlias_ValueAliasSet); } void ValueToAlias::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ValueToAlias.value", &get_ValueToAlias_value); + get_map.emplace("ValueToAlias.value", &get_ValueToAlias_value); } void ValueToAlias::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ValueToAlias.ValueAliasSet", &get_ValueToAlias_ValueAliasSet); + get_map.emplace("ValueToAlias.ValueAliasSet", &get_ValueToAlias_ValueAliasSet); } void ValueToAlias::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void ValueToAlias::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ValueToAlias::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ValueToAlias" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ValueToAlias::declare() { return BaseClassDefiner(ValueToAlias::addConstructToMap, ValueToAlias::addPrimitiveAssignFnsToMap, ValueToAlias::addClassAssignFnsToMap, ValueToAlias::debugName); } +std::map ValueToAlias::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ValueToAlias_factory() diff --git a/CGMES_2.4.13_18DEC2013/ValueToAlias.hpp b/CGMES_2.4.13_18DEC2013/ValueToAlias.hpp index f2faa5f11..534c09e29 100644 --- a/CGMES_2.4.13_18DEC2013/ValueToAlias.hpp +++ b/CGMES_2.4.13_18DEC2013/ValueToAlias.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ValueToAlias_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VisibilityLayer.cpp b/CGMES_2.4.13_18DEC2013/VisibilityLayer.cpp index 342592e16..f0939cc6d 100644 --- a/CGMES_2.4.13_18DEC2013/VisibilityLayer.cpp +++ b/CGMES_2.4.13_18DEC2013/VisibilityLayer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VisibilityLayer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VisibilityLayer.VisibleObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "VisibilityLayer.drawingOrder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + VisibilityLayer::VisibilityLayer() {} VisibilityLayer::~VisibilityLayer() {} -static const std::list PossibleProfilesForClass = +const std::list& VisibilityLayer::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VisibilityLayer::getClassNamespaceUrl() const { - { "cim:VisibilityLayer.VisibleObjects", { CGMESProfile::DL, } }, - { "cim:VisibilityLayer.drawingOrder", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VisibilityLayer::getPossibleProfilesForClass() const +const std::string& VisibilityLayer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VisibilityLayer::getPossibleProfilesForAttributes() const +const std::list& VisibilityLayer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VisibilityLayer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VisibilityLayer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VisibilityLayer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_VisibilityLayers(BaseClass*, BaseClass*); @@ -106,29 +138,29 @@ const char* VisibilityLayer::debugString() const void VisibilityLayer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VisibilityLayer", &VisibilityLayer_factory); + factory_map.emplace("VisibilityLayer", &VisibilityLayer_factory); } void VisibilityLayer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VisibilityLayer.drawingOrder", &assign_VisibilityLayer_drawingOrder); + assign_map.emplace("VisibilityLayer.drawingOrder", &assign_VisibilityLayer_drawingOrder); } void VisibilityLayer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VisibilityLayer.VisibleObjects", &assign_VisibilityLayer_VisibleObjects); + assign_map.emplace("VisibilityLayer.VisibleObjects", &assign_VisibilityLayer_VisibleObjects); } void VisibilityLayer::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VisibilityLayer.drawingOrder", &get_VisibilityLayer_drawingOrder); + get_map.emplace("VisibilityLayer.drawingOrder", &get_VisibilityLayer_drawingOrder); } void VisibilityLayer::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VisibilityLayer.VisibleObjects", &get_VisibilityLayer_VisibleObjects); + get_map.emplace("VisibilityLayer.VisibleObjects", &get_VisibilityLayer_VisibleObjects); } void VisibilityLayer::addEnumGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void VisibilityLayer::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool VisibilityLayer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VisibilityLayer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VisibilityLayer::declare() { return BaseClassDefiner(VisibilityLayer::addConstructToMap, VisibilityLayer::addPrimitiveAssignFnsToMap, VisibilityLayer::addClassAssignFnsToMap, VisibilityLayer::debugName); } +std::map VisibilityLayer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VisibilityLayer_factory() diff --git a/CGMES_2.4.13_18DEC2013/VisibilityLayer.hpp b/CGMES_2.4.13_18DEC2013/VisibilityLayer.hpp index 20a6810e6..2dbedfd90 100644 --- a/CGMES_2.4.13_18DEC2013/VisibilityLayer.hpp +++ b/CGMES_2.4.13_18DEC2013/VisibilityLayer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VisibilityLayer_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VoltageAdjusterDynamics.cpp b/CGMES_2.4.13_18DEC2013/VoltageAdjusterDynamics.cpp index 5ab8b68ac..2b81de1c4 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageAdjusterDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/VoltageAdjusterDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageAdjusterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageAdjusterDynamics.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageAdjusterDynamics::VoltageAdjusterDynamics() : PFVArControllerType1Dynamics(nullptr) {} VoltageAdjusterDynamics::~VoltageAdjusterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageAdjusterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageAdjusterDynamics::getClassNamespaceUrl() const { - { "cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageAdjusterDynamics::getPossibleProfilesForClass() const +const std::string& VoltageAdjusterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageAdjusterDynamics::getPossibleProfilesForAttributes() const +const std::list& VoltageAdjusterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageAdjusterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageAdjusterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageAdjusterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* VoltageAdjusterDynamics::debugString() const void VoltageAdjusterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageAdjusterDynamics", &VoltageAdjusterDynamics_factory); + factory_map.emplace("VoltageAdjusterDynamics", &VoltageAdjusterDynamics_factory); } void VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &assign_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); + assign_map.emplace("VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &assign_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); } void VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &get_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); + get_map.emplace("VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &get_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); } void VoltageAdjusterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void VoltageAdjusterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageAdjusterDynamics::declare() { return BaseClassDefiner(VoltageAdjusterDynamics::addConstructToMap, VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap, VoltageAdjusterDynamics::addClassAssignFnsToMap, VoltageAdjusterDynamics::debugName); } +std::map VoltageAdjusterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageAdjusterDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/VoltageAdjusterDynamics.hpp b/CGMES_2.4.13_18DEC2013/VoltageAdjusterDynamics.hpp index 38c64482e..e59008548 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageAdjusterDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/VoltageAdjusterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageAdjusterDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VoltageAdjusterUserDefined.cpp b/CGMES_2.4.13_18DEC2013/VoltageAdjusterUserDefined.cpp index c89e76a0e..72d0a50ad 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageAdjusterUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/VoltageAdjusterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageAdjusterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageAdjusterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageAdjusterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageAdjusterUserDefined::VoltageAdjusterUserDefined() {} VoltageAdjusterUserDefined::~VoltageAdjusterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageAdjusterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageAdjusterUserDefined::getClassNamespaceUrl() const { - { "cim:VoltageAdjusterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageAdjusterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageAdjusterUserDefined::getPossibleProfilesForClass() const +const std::string& VoltageAdjusterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageAdjusterUserDefined::getPossibleProfilesForAttributes() const +const std::list& VoltageAdjusterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageAdjusterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageAdjusterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageAdjusterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageAdjusterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VoltageAdjusterUserDefined::debugString() const void VoltageAdjusterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageAdjusterUserDefined", &VoltageAdjusterUserDefined_factory); + factory_map.emplace("VoltageAdjusterUserDefined", &VoltageAdjusterUserDefined_factory); } void VoltageAdjusterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterUserDefined.proprietary", &assign_VoltageAdjusterUserDefined_proprietary); + assign_map.emplace("VoltageAdjusterUserDefined.proprietary", &assign_VoltageAdjusterUserDefined_proprietary); } void VoltageAdjusterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterUserDefined.ProprietaryParameterDynamics", &assign_VoltageAdjusterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VoltageAdjusterUserDefined.ProprietaryParameterDynamics", &assign_VoltageAdjusterUserDefined_ProprietaryParameterDynamics); } void VoltageAdjusterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageAdjusterUserDefined.proprietary", &get_VoltageAdjusterUserDefined_proprietary); + get_map.emplace("VoltageAdjusterUserDefined.proprietary", &get_VoltageAdjusterUserDefined_proprietary); } void VoltageAdjusterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VoltageAdjusterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageAdjusterUserDefined::declare() { return BaseClassDefiner(VoltageAdjusterUserDefined::addConstructToMap, VoltageAdjusterUserDefined::addPrimitiveAssignFnsToMap, VoltageAdjusterUserDefined::addClassAssignFnsToMap, VoltageAdjusterUserDefined::debugName); } +std::map VoltageAdjusterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageAdjusterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageAdjusterUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/VoltageAdjusterUserDefined.hpp b/CGMES_2.4.13_18DEC2013/VoltageAdjusterUserDefined.hpp index b1e9da031..bf333519c 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageAdjusterUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/VoltageAdjusterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageAdjusterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageAdjusterUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VoltageCompensatorDynamics.cpp b/CGMES_2.4.13_18DEC2013/VoltageCompensatorDynamics.cpp index b1b3c20fd..bd3180085 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageCompensatorDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/VoltageCompensatorDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageCompensatorDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageCompensatorDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageCompensatorDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageCompensatorDynamics::VoltageCompensatorDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} VoltageCompensatorDynamics::~VoltageCompensatorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageCompensatorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageCompensatorDynamics::getClassNamespaceUrl() const { - { "cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageCompensatorDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageCompensatorDynamics::getPossibleProfilesForClass() const +const std::string& VoltageCompensatorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageCompensatorDynamics::getPossibleProfilesForAttributes() const +const std::list& VoltageCompensatorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageCompensatorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageCompensatorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageCompensatorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_VoltageCompensatorDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* VoltageCompensatorDynamics::debugString() const void VoltageCompensatorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageCompensatorDynamics", &VoltageCompensatorDynamics_factory); + factory_map.emplace("VoltageCompensatorDynamics", &VoltageCompensatorDynamics_factory); } void VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", &assign_VoltageCompensatorDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:VoltageCompensatorDynamics.RemoteInputSignal", &assign_VoltageCompensatorDynamics_RemoteInputSignal); + assign_map.emplace("VoltageCompensatorDynamics.ExcitationSystemDynamics", &assign_VoltageCompensatorDynamics_ExcitationSystemDynamics); + assign_map.emplace("VoltageCompensatorDynamics.RemoteInputSignal", &assign_VoltageCompensatorDynamics_RemoteInputSignal); } void VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", &get_VoltageCompensatorDynamics_ExcitationSystemDynamics); + get_map.emplace("VoltageCompensatorDynamics.ExcitationSystemDynamics", &get_VoltageCompensatorDynamics_ExcitationSystemDynamics); } void VoltageCompensatorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void VoltageCompensatorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageCompensatorDynamics::declare() { return BaseClassDefiner(VoltageCompensatorDynamics::addConstructToMap, VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap, VoltageCompensatorDynamics::addClassAssignFnsToMap, VoltageCompensatorDynamics::debugName); } +std::map VoltageCompensatorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageCompensatorDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/VoltageCompensatorDynamics.hpp b/CGMES_2.4.13_18DEC2013/VoltageCompensatorDynamics.hpp index 858af27b2..96c4ffaab 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageCompensatorDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/VoltageCompensatorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageCompensatorDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VoltageCompensatorUserDefined.cpp b/CGMES_2.4.13_18DEC2013/VoltageCompensatorUserDefined.cpp index dc3b5ff50..09fb2904f 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageCompensatorUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/VoltageCompensatorUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageCompensatorUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageCompensatorUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageCompensatorUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageCompensatorUserDefined::VoltageCompensatorUserDefined() {} VoltageCompensatorUserDefined::~VoltageCompensatorUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageCompensatorUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageCompensatorUserDefined::getClassNamespaceUrl() const { - { "cim:VoltageCompensatorUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageCompensatorUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageCompensatorUserDefined::getPossibleProfilesForClass() const +const std::string& VoltageCompensatorUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageCompensatorUserDefined::getPossibleProfilesForAttributes() const +const std::list& VoltageCompensatorUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageCompensatorUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageCompensatorUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageCompensatorUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VoltageCompensatorUserDefined::debugString() const void VoltageCompensatorUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageCompensatorUserDefined", &VoltageCompensatorUserDefined_factory); + factory_map.emplace("VoltageCompensatorUserDefined", &VoltageCompensatorUserDefined_factory); } void VoltageCompensatorUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorUserDefined.proprietary", &assign_VoltageCompensatorUserDefined_proprietary); + assign_map.emplace("VoltageCompensatorUserDefined.proprietary", &assign_VoltageCompensatorUserDefined_proprietary); } void VoltageCompensatorUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorUserDefined.ProprietaryParameterDynamics", &assign_VoltageCompensatorUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VoltageCompensatorUserDefined.ProprietaryParameterDynamics", &assign_VoltageCompensatorUserDefined_ProprietaryParameterDynamics); } void VoltageCompensatorUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageCompensatorUserDefined.proprietary", &get_VoltageCompensatorUserDefined_proprietary); + get_map.emplace("VoltageCompensatorUserDefined.proprietary", &get_VoltageCompensatorUserDefined_proprietary); } void VoltageCompensatorUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VoltageCompensatorUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageCompensatorUserDefined::declare() { return BaseClassDefiner(VoltageCompensatorUserDefined::addConstructToMap, VoltageCompensatorUserDefined::addPrimitiveAssignFnsToMap, VoltageCompensatorUserDefined::addClassAssignFnsToMap, VoltageCompensatorUserDefined::debugName); } +std::map VoltageCompensatorUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageCompensatorUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/VoltageCompensatorUserDefined.hpp b/CGMES_2.4.13_18DEC2013/VoltageCompensatorUserDefined.hpp index 7f6055be5..62b0ad2f8 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageCompensatorUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/VoltageCompensatorUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageCompensatorUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VoltageLevel.cpp b/CGMES_2.4.13_18DEC2013/VoltageLevel.cpp index 31ba7dc6a..64c9b4093 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageLevel.cpp +++ b/CGMES_2.4.13_18DEC2013/VoltageLevel.cpp @@ -14,36 +14,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageLevel(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageLevel.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.Bays", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.Substation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.highVoltageLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.lowVoltageLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageLevel::VoltageLevel() : BaseVoltage(nullptr), Substation(nullptr) {} VoltageLevel::~VoltageLevel() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageLevel::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageLevel::getClassNamespaceUrl() const { - { "cim:VoltageLevel.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.Bays", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.Substation", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.highVoltageLimit", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.lowVoltageLimit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageLevel::getPossibleProfilesForClass() const +const std::string& VoltageLevel::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageLevel::getPossibleProfilesForAttributes() const +const std::list& VoltageLevel::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageLevel::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageLevel::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageLevel::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_VoltageLevel(BaseClass*, BaseClass*); @@ -192,34 +224,34 @@ const char* VoltageLevel::debugString() const void VoltageLevel::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageLevel", &VoltageLevel_factory); + factory_map.emplace("VoltageLevel", &VoltageLevel_factory); } void VoltageLevel::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLevel.highVoltageLimit", &assign_VoltageLevel_highVoltageLimit); - assign_map.emplace("cim:VoltageLevel.lowVoltageLimit", &assign_VoltageLevel_lowVoltageLimit); + assign_map.emplace("VoltageLevel.highVoltageLimit", &assign_VoltageLevel_highVoltageLimit); + assign_map.emplace("VoltageLevel.lowVoltageLimit", &assign_VoltageLevel_lowVoltageLimit); } void VoltageLevel::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLevel.BaseVoltage", &assign_VoltageLevel_BaseVoltage); - assign_map.emplace("cim:VoltageLevel.Bays", &assign_VoltageLevel_Bays); - assign_map.emplace("cim:VoltageLevel.Substation", &assign_VoltageLevel_Substation); + assign_map.emplace("VoltageLevel.BaseVoltage", &assign_VoltageLevel_BaseVoltage); + assign_map.emplace("VoltageLevel.Bays", &assign_VoltageLevel_Bays); + assign_map.emplace("VoltageLevel.Substation", &assign_VoltageLevel_Substation); } void VoltageLevel::addPrimitiveGetFnsToMap(std::map& get_map) const { EquipmentContainer::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLevel.highVoltageLimit", &get_VoltageLevel_highVoltageLimit); - get_map.emplace("cim:VoltageLevel.lowVoltageLimit", &get_VoltageLevel_lowVoltageLimit); + get_map.emplace("VoltageLevel.highVoltageLimit", &get_VoltageLevel_highVoltageLimit); + get_map.emplace("VoltageLevel.lowVoltageLimit", &get_VoltageLevel_lowVoltageLimit); } void VoltageLevel::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLevel.BaseVoltage", &get_VoltageLevel_BaseVoltage); - get_map.emplace("cim:VoltageLevel.Substation", &get_VoltageLevel_Substation); + get_map.emplace("VoltageLevel.BaseVoltage", &get_VoltageLevel_BaseVoltage); + get_map.emplace("VoltageLevel.Substation", &get_VoltageLevel_Substation); } void VoltageLevel::addEnumGetFnsToMap(std::map& get_map) const @@ -227,11 +259,25 @@ void VoltageLevel::addEnumGetFnsToMap(std::map& get_m EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool VoltageLevel::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VoltageLevel" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VoltageLevel::declare() { return BaseClassDefiner(VoltageLevel::addConstructToMap, VoltageLevel::addPrimitiveAssignFnsToMap, VoltageLevel::addClassAssignFnsToMap, VoltageLevel::debugName); } +std::map VoltageLevel::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageLevel_factory() diff --git a/CGMES_2.4.13_18DEC2013/VoltageLevel.hpp b/CGMES_2.4.13_18DEC2013/VoltageLevel.hpp index 5b32798e6..93897d206 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageLevel.hpp +++ b/CGMES_2.4.13_18DEC2013/VoltageLevel.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageLevel_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VoltageLimit.cpp b/CGMES_2.4.13_18DEC2013/VoltageLimit.cpp index b8a2d59db..6dea63e2c 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageLimit.cpp +++ b/CGMES_2.4.13_18DEC2013/VoltageLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageLimit::VoltageLimit() {} VoltageLimit::~VoltageLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageLimit::getClassNamespaceUrl() const { - { "cim:VoltageLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageLimit::getPossibleProfilesForClass() const +const std::string& VoltageLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageLimit::getPossibleProfilesForAttributes() const +const std::list& VoltageLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VoltageLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* VoltageLimit::debugString() const void VoltageLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageLimit", &VoltageLimit_factory); + factory_map.emplace("VoltageLimit", &VoltageLimit_factory); } void VoltageLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLimit.value", &assign_VoltageLimit_value); + assign_map.emplace("VoltageLimit.value", &assign_VoltageLimit_value); } void VoltageLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void VoltageLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLimit.value", &get_VoltageLimit_value); + get_map.emplace("VoltageLimit.value", &get_VoltageLimit_value); } void VoltageLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void VoltageLimit::addEnumGetFnsToMap(std::map& get_m OperationalLimit::addEnumGetFnsToMap(get_map); } +bool VoltageLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VoltageLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VoltageLimit::declare() { return BaseClassDefiner(VoltageLimit::addConstructToMap, VoltageLimit::addPrimitiveAssignFnsToMap, VoltageLimit::addClassAssignFnsToMap, VoltageLimit::debugName); } +std::map VoltageLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageLimit_factory() diff --git a/CGMES_2.4.13_18DEC2013/VoltageLimit.hpp b/CGMES_2.4.13_18DEC2013/VoltageLimit.hpp index 7f2ddc83a..98ce422f7 100644 --- a/CGMES_2.4.13_18DEC2013/VoltageLimit.hpp +++ b/CGMES_2.4.13_18DEC2013/VoltageLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageLimit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VsCapabilityCurve.cpp b/CGMES_2.4.13_18DEC2013/VsCapabilityCurve.cpp index 5a75f1880..5f7f65088 100644 --- a/CGMES_2.4.13_18DEC2013/VsCapabilityCurve.cpp +++ b/CGMES_2.4.13_18DEC2013/VsCapabilityCurve.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VsCapabilityCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VsCapabilityCurve.VsConverterDCSides", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VsCapabilityCurve::VsCapabilityCurve() {} VsCapabilityCurve::~VsCapabilityCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& VsCapabilityCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VsCapabilityCurve::getClassNamespaceUrl() const { - { "cim:VsCapabilityCurve.VsConverterDCSides", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VsCapabilityCurve::getPossibleProfilesForClass() const +const std::string& VsCapabilityCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VsCapabilityCurve::getPossibleProfilesForAttributes() const +const std::list& VsCapabilityCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VsCapabilityCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VsCapabilityCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VsCapabilityCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsConverter_CapabilityCurve(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* VsCapabilityCurve::debugString() const void VsCapabilityCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VsCapabilityCurve", &VsCapabilityCurve_factory); + factory_map.emplace("VsCapabilityCurve", &VsCapabilityCurve_factory); } void VsCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void VsCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsCapabilityCurve.VsConverterDCSides", &assign_VsCapabilityCurve_VsConverterDCSides); + assign_map.emplace("VsCapabilityCurve.VsConverterDCSides", &assign_VsCapabilityCurve_VsConverterDCSides); } void VsCapabilityCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void VsCapabilityCurve::addEnumGetFnsToMap(std::map& Curve::addEnumGetFnsToMap(get_map); } +bool VsCapabilityCurve::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VsCapabilityCurve" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VsCapabilityCurve::declare() { return BaseClassDefiner(VsCapabilityCurve::addConstructToMap, VsCapabilityCurve::addPrimitiveAssignFnsToMap, VsCapabilityCurve::addClassAssignFnsToMap, VsCapabilityCurve::debugName); } +std::map VsCapabilityCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VsCapabilityCurve_factory() diff --git a/CGMES_2.4.13_18DEC2013/VsCapabilityCurve.hpp b/CGMES_2.4.13_18DEC2013/VsCapabilityCurve.hpp index 9eaa77b41..5d16bdc4d 100644 --- a/CGMES_2.4.13_18DEC2013/VsCapabilityCurve.hpp +++ b/CGMES_2.4.13_18DEC2013/VsCapabilityCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VsCapabilityCurve_factory(); diff --git a/CGMES_2.4.13_18DEC2013/VsConverter.cpp b/CGMES_2.4.13_18DEC2013/VsConverter.cpp index 3cc9a7c0c..2f093f148 100644 --- a/CGMES_2.4.13_18DEC2013/VsConverter.cpp +++ b/CGMES_2.4.13_18DEC2013/VsConverter.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VsConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VsConverter.CapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.delta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "VsConverter.droop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.droopCompensation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.maxModulationIndex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.maxValveCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.pPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.qPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.qShare", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetQpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetUpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.uf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + VsConverter::VsConverter() : CapabilityCurve(nullptr) {} VsConverter::~VsConverter() {} -static const std::list PossibleProfilesForClass = +const std::list& VsConverter::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VsConverter::getClassNamespaceUrl() const { - { "cim:VsConverter.CapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:VsConverter.delta", { CGMESProfile::SV, } }, - { "cim:VsConverter.droop", { CGMESProfile::SSH, } }, - { "cim:VsConverter.droopCompensation", { CGMESProfile::SSH, } }, - { "cim:VsConverter.maxModulationIndex", { CGMESProfile::EQ, } }, - { "cim:VsConverter.maxValveCurrent", { CGMESProfile::EQ, } }, - { "cim:VsConverter.pPccControl", { CGMESProfile::SSH, } }, - { "cim:VsConverter.qPccControl", { CGMESProfile::SSH, } }, - { "cim:VsConverter.qShare", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetQpcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetUpcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.uf", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VsConverter::getPossibleProfilesForClass() const +const std::string& VsConverter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VsConverter::getPossibleProfilesForAttributes() const +const std::list& VsConverter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCConverter::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VsConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VsConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VsConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsCapabilityCurve_VsConverterDCSides(BaseClass*, BaseClass*); @@ -411,54 +443,60 @@ const char* VsConverter::debugString() const void VsConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VsConverter", &VsConverter_factory); + factory_map.emplace("VsConverter", &VsConverter_factory); } void VsConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsConverter.delta", &assign_VsConverter_delta); - assign_map.emplace("cim:VsConverter.droop", &assign_VsConverter_droop); - assign_map.emplace("cim:VsConverter.droopCompensation", &assign_VsConverter_droopCompensation); - assign_map.emplace("cim:VsConverter.maxModulationIndex", &assign_VsConverter_maxModulationIndex); - assign_map.emplace("cim:VsConverter.maxValveCurrent", &assign_VsConverter_maxValveCurrent); - assign_map.emplace("cim:VsConverter.pPccControl", &assign_VsConverter_pPccControl); - assign_map.emplace("cim:VsConverter.qPccControl", &assign_VsConverter_qPccControl); - assign_map.emplace("cim:VsConverter.qShare", &assign_VsConverter_qShare); - assign_map.emplace("cim:VsConverter.targetQpcc", &assign_VsConverter_targetQpcc); - assign_map.emplace("cim:VsConverter.targetUpcc", &assign_VsConverter_targetUpcc); - assign_map.emplace("cim:VsConverter.uf", &assign_VsConverter_uf); + assign_map.emplace("VsConverter.delta", &assign_VsConverter_delta); + assign_map.emplace("VsConverter.droop", &assign_VsConverter_droop); + assign_map.emplace("VsConverter.droopCompensation", &assign_VsConverter_droopCompensation); + assign_map.emplace("VsConverter.maxModulationIndex", &assign_VsConverter_maxModulationIndex); + assign_map.emplace("VsConverter.maxValveCurrent", &assign_VsConverter_maxValveCurrent); + assign_map.emplace("VsConverter.pPccControl", &assign_VsConverter_pPccControl); + assign_map.emplace("VsConverter.qPccControl", &assign_VsConverter_qPccControl); + assign_map.emplace("VsConverter.qShare", &assign_VsConverter_qShare); + assign_map.emplace("VsConverter.targetQpcc", &assign_VsConverter_targetQpcc); + assign_map.emplace("VsConverter.targetUpcc", &assign_VsConverter_targetUpcc); + assign_map.emplace("VsConverter.uf", &assign_VsConverter_uf); } void VsConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsConverter.CapabilityCurve", &assign_VsConverter_CapabilityCurve); + assign_map.emplace("VsConverter.CapabilityCurve", &assign_VsConverter_CapabilityCurve); } void VsConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ACDCConverter::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.delta", &get_VsConverter_delta); - get_map.emplace("cim:VsConverter.droop", &get_VsConverter_droop); - get_map.emplace("cim:VsConverter.droopCompensation", &get_VsConverter_droopCompensation); - get_map.emplace("cim:VsConverter.maxModulationIndex", &get_VsConverter_maxModulationIndex); - get_map.emplace("cim:VsConverter.maxValveCurrent", &get_VsConverter_maxValveCurrent); - get_map.emplace("cim:VsConverter.qShare", &get_VsConverter_qShare); - get_map.emplace("cim:VsConverter.targetQpcc", &get_VsConverter_targetQpcc); - get_map.emplace("cim:VsConverter.targetUpcc", &get_VsConverter_targetUpcc); - get_map.emplace("cim:VsConverter.uf", &get_VsConverter_uf); + get_map.emplace("VsConverter.delta", &get_VsConverter_delta); + get_map.emplace("VsConverter.droop", &get_VsConverter_droop); + get_map.emplace("VsConverter.droopCompensation", &get_VsConverter_droopCompensation); + get_map.emplace("VsConverter.maxModulationIndex", &get_VsConverter_maxModulationIndex); + get_map.emplace("VsConverter.maxValveCurrent", &get_VsConverter_maxValveCurrent); + get_map.emplace("VsConverter.qShare", &get_VsConverter_qShare); + get_map.emplace("VsConverter.targetQpcc", &get_VsConverter_targetQpcc); + get_map.emplace("VsConverter.targetUpcc", &get_VsConverter_targetUpcc); + get_map.emplace("VsConverter.uf", &get_VsConverter_uf); } void VsConverter::addClassGetFnsToMap(std::map& get_map) const { ACDCConverter::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.CapabilityCurve", &get_VsConverter_CapabilityCurve); + get_map.emplace("VsConverter.CapabilityCurve", &get_VsConverter_CapabilityCurve); } void VsConverter::addEnumGetFnsToMap(std::map& get_map) const { ACDCConverter::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.pPccControl", &get_VsConverter_pPccControl); - get_map.emplace("cim:VsConverter.qPccControl", &get_VsConverter_qPccControl); + get_map.emplace("VsConverter.pPccControl", &get_VsConverter_pPccControl); + get_map.emplace("VsConverter.qPccControl", &get_VsConverter_qPccControl); +} + +bool VsConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VsConverter" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner VsConverter::declare() @@ -466,6 +504,14 @@ const BaseClassDefiner VsConverter::declare() return BaseClassDefiner(VsConverter::addConstructToMap, VsConverter::addPrimitiveAssignFnsToMap, VsConverter::addClassAssignFnsToMap, VsConverter::debugName); } +std::map VsConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCConverter::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VsConverter_factory() diff --git a/CGMES_2.4.13_18DEC2013/VsConverter.hpp b/CGMES_2.4.13_18DEC2013/VsConverter.hpp index 046abdfd8..8d1b12e58 100644 --- a/CGMES_2.4.13_18DEC2013/VsConverter.hpp +++ b/CGMES_2.4.13_18DEC2013/VsConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCConverter.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "CurrentFlow.hpp" #include "PU.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VsConverter_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindAeroConstIEC.cpp b/CGMES_2.4.13_18DEC2013/WindAeroConstIEC.cpp index 62ae00aaa..105daeb72 100644 --- a/CGMES_2.4.13_18DEC2013/WindAeroConstIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindAeroConstIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroConstIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroConstIEC.WindGenTurbineType1IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroConstIEC::WindAeroConstIEC() : WindGenTurbineType1IEC(nullptr) {} WindAeroConstIEC::~WindAeroConstIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroConstIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroConstIEC::getClassNamespaceUrl() const { - { "cim:WindAeroConstIEC.WindGenTurbineType1IEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindAeroConstIEC::getPossibleProfilesForClass() const +const std::string& WindAeroConstIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroConstIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroConstIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroConstIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroConstIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroConstIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType1IEC_WindAeroConstIEC(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* WindAeroConstIEC::debugString() const void WindAeroConstIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroConstIEC", &WindAeroConstIEC_factory); + factory_map.emplace("WindAeroConstIEC", &WindAeroConstIEC_factory); } void WindAeroConstIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void WindAeroConstIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroConstIEC.WindGenTurbineType1IEC", &assign_WindAeroConstIEC_WindGenTurbineType1IEC); + assign_map.emplace("WindAeroConstIEC.WindGenTurbineType1IEC", &assign_WindAeroConstIEC_WindGenTurbineType1IEC); } void WindAeroConstIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void WindAeroConstIEC::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroConstIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroConstIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroConstIEC::declare() { return BaseClassDefiner(WindAeroConstIEC::addConstructToMap, WindAeroConstIEC::addPrimitiveAssignFnsToMap, WindAeroConstIEC::addClassAssignFnsToMap, WindAeroConstIEC::debugName); } +std::map WindAeroConstIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroConstIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindAeroConstIEC.hpp b/CGMES_2.4.13_18DEC2013/WindAeroConstIEC.hpp index f6ed16d26..5a8be2770 100644 --- a/CGMES_2.4.13_18DEC2013/WindAeroConstIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindAeroConstIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroConstIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.cpp b/CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.cpp index 9301ffa49..98f5d4a79 100644 --- a/CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroLinearIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroLinearIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.dpomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.dptheta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.omegazero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.pavail", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.thetazero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroLinearIEC::WindAeroLinearIEC() : WindGenTurbineType3IEC(nullptr) {} WindAeroLinearIEC::~WindAeroLinearIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroLinearIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroLinearIEC::getClassNamespaceUrl() const { - { "cim:WindAeroLinearIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.dpomega", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.dptheta", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.omegazero", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.pavail", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.thetazero", { CGMESProfile::DY, } }, -}; - -std::list -WindAeroLinearIEC::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindAeroLinearIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroLinearIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroLinearIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroLinearIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroLinearIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroLinearIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindAeroLinearIEC(BaseClass*, BaseClass*); @@ -216,31 +248,31 @@ const char* WindAeroLinearIEC::debugString() const void WindAeroLinearIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroLinearIEC", &WindAeroLinearIEC_factory); + factory_map.emplace("WindAeroLinearIEC", &WindAeroLinearIEC_factory); } void WindAeroLinearIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroLinearIEC.dpomega", &assign_WindAeroLinearIEC_dpomega); - assign_map.emplace("cim:WindAeroLinearIEC.dptheta", &assign_WindAeroLinearIEC_dptheta); - assign_map.emplace("cim:WindAeroLinearIEC.omegazero", &assign_WindAeroLinearIEC_omegazero); - assign_map.emplace("cim:WindAeroLinearIEC.pavail", &assign_WindAeroLinearIEC_pavail); - assign_map.emplace("cim:WindAeroLinearIEC.thetazero", &assign_WindAeroLinearIEC_thetazero); + assign_map.emplace("WindAeroLinearIEC.dpomega", &assign_WindAeroLinearIEC_dpomega); + assign_map.emplace("WindAeroLinearIEC.dptheta", &assign_WindAeroLinearIEC_dptheta); + assign_map.emplace("WindAeroLinearIEC.omegazero", &assign_WindAeroLinearIEC_omegazero); + assign_map.emplace("WindAeroLinearIEC.pavail", &assign_WindAeroLinearIEC_pavail); + assign_map.emplace("WindAeroLinearIEC.thetazero", &assign_WindAeroLinearIEC_thetazero); } void WindAeroLinearIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroLinearIEC.WindGenTurbineType3IEC", &assign_WindAeroLinearIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindAeroLinearIEC.WindGenTurbineType3IEC", &assign_WindAeroLinearIEC_WindGenTurbineType3IEC); } void WindAeroLinearIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindAeroLinearIEC.dpomega", &get_WindAeroLinearIEC_dpomega); - get_map.emplace("cim:WindAeroLinearIEC.dptheta", &get_WindAeroLinearIEC_dptheta); - get_map.emplace("cim:WindAeroLinearIEC.omegazero", &get_WindAeroLinearIEC_omegazero); - get_map.emplace("cim:WindAeroLinearIEC.pavail", &get_WindAeroLinearIEC_pavail); - get_map.emplace("cim:WindAeroLinearIEC.thetazero", &get_WindAeroLinearIEC_thetazero); + get_map.emplace("WindAeroLinearIEC.dpomega", &get_WindAeroLinearIEC_dpomega); + get_map.emplace("WindAeroLinearIEC.dptheta", &get_WindAeroLinearIEC_dptheta); + get_map.emplace("WindAeroLinearIEC.omegazero", &get_WindAeroLinearIEC_omegazero); + get_map.emplace("WindAeroLinearIEC.pavail", &get_WindAeroLinearIEC_pavail); + get_map.emplace("WindAeroLinearIEC.thetazero", &get_WindAeroLinearIEC_thetazero); } void WindAeroLinearIEC::addClassGetFnsToMap(std::map& get_map) const @@ -253,11 +285,25 @@ void WindAeroLinearIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroLinearIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroLinearIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroLinearIEC::declare() { return BaseClassDefiner(WindAeroLinearIEC::addConstructToMap, WindAeroLinearIEC::addPrimitiveAssignFnsToMap, WindAeroLinearIEC::addClassAssignFnsToMap, WindAeroLinearIEC::debugName); } +std::map WindAeroLinearIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroLinearIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.hpp b/CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.hpp index 0e71d0eb4..b77ffcc00 100644 --- a/CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindAeroLinearIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroLinearIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.cpp b/CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.cpp index 68e2ece08..142a48cbf 100644 --- a/CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.cpp @@ -13,38 +13,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContCurrLimIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContCurrLimIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.imax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.imaxdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.mdfslim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.mqpri", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContCurrLimIEC::WindContCurrLimIEC() : WindTurbineType3or4IEC(nullptr) {} WindContCurrLimIEC::~WindContCurrLimIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContCurrLimIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContCurrLimIEC::getClassNamespaceUrl() const { - { "cim:WindContCurrLimIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.imax", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.imaxdip", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.mdfslim", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.mqpri", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContCurrLimIEC::getPossibleProfilesForClass() const +const std::string& WindContCurrLimIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContCurrLimIEC::getPossibleProfilesForAttributes() const +const std::list& WindContCurrLimIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContCurrLimIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContCurrLimIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContCurrLimIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContCurrLimIEC(BaseClass*, BaseClass*); @@ -236,32 +268,32 @@ const char* WindContCurrLimIEC::debugString() const void WindContCurrLimIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContCurrLimIEC", &WindContCurrLimIEC_factory); + factory_map.emplace("WindContCurrLimIEC", &WindContCurrLimIEC_factory); } void WindContCurrLimIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContCurrLimIEC.imax", &assign_WindContCurrLimIEC_imax); - assign_map.emplace("cim:WindContCurrLimIEC.imaxdip", &assign_WindContCurrLimIEC_imaxdip); - assign_map.emplace("cim:WindContCurrLimIEC.mdfslim", &assign_WindContCurrLimIEC_mdfslim); - assign_map.emplace("cim:WindContCurrLimIEC.mqpri", &assign_WindContCurrLimIEC_mqpri); - assign_map.emplace("cim:WindContCurrLimIEC.tufilt", &assign_WindContCurrLimIEC_tufilt); + assign_map.emplace("WindContCurrLimIEC.imax", &assign_WindContCurrLimIEC_imax); + assign_map.emplace("WindContCurrLimIEC.imaxdip", &assign_WindContCurrLimIEC_imaxdip); + assign_map.emplace("WindContCurrLimIEC.mdfslim", &assign_WindContCurrLimIEC_mdfslim); + assign_map.emplace("WindContCurrLimIEC.mqpri", &assign_WindContCurrLimIEC_mqpri); + assign_map.emplace("WindContCurrLimIEC.tufilt", &assign_WindContCurrLimIEC_tufilt); } void WindContCurrLimIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContCurrLimIEC.WindDynamicsLookupTable", &assign_WindContCurrLimIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContCurrLimIEC.WindTurbineType3or4IEC", &assign_WindContCurrLimIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContCurrLimIEC.WindDynamicsLookupTable", &assign_WindContCurrLimIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContCurrLimIEC.WindTurbineType3or4IEC", &assign_WindContCurrLimIEC_WindTurbineType3or4IEC); } void WindContCurrLimIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContCurrLimIEC.imax", &get_WindContCurrLimIEC_imax); - get_map.emplace("cim:WindContCurrLimIEC.imaxdip", &get_WindContCurrLimIEC_imaxdip); - get_map.emplace("cim:WindContCurrLimIEC.mdfslim", &get_WindContCurrLimIEC_mdfslim); - get_map.emplace("cim:WindContCurrLimIEC.mqpri", &get_WindContCurrLimIEC_mqpri); - get_map.emplace("cim:WindContCurrLimIEC.tufilt", &get_WindContCurrLimIEC_tufilt); + get_map.emplace("WindContCurrLimIEC.imax", &get_WindContCurrLimIEC_imax); + get_map.emplace("WindContCurrLimIEC.imaxdip", &get_WindContCurrLimIEC_imaxdip); + get_map.emplace("WindContCurrLimIEC.mdfslim", &get_WindContCurrLimIEC_mdfslim); + get_map.emplace("WindContCurrLimIEC.mqpri", &get_WindContCurrLimIEC_mqpri); + get_map.emplace("WindContCurrLimIEC.tufilt", &get_WindContCurrLimIEC_tufilt); } void WindContCurrLimIEC::addClassGetFnsToMap(std::map& get_map) const @@ -274,11 +306,25 @@ void WindContCurrLimIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContCurrLimIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContCurrLimIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContCurrLimIEC::declare() { return BaseClassDefiner(WindContCurrLimIEC::addConstructToMap, WindContCurrLimIEC::addPrimitiveAssignFnsToMap, WindContCurrLimIEC::addClassAssignFnsToMap, WindContCurrLimIEC::debugName); } +std::map WindContCurrLimIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContCurrLimIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.hpp b/CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.hpp index eee20358c..4be4be47e 100644 --- a/CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindContCurrLimIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContCurrLimIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindContPType3IEC.cpp b/CGMES_2.4.13_18DEC2013/WindContPType3IEC.cpp index 441be1a61..55af17e37 100644 --- a/CGMES_2.4.13_18DEC2013/WindContPType3IEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindContPType3IEC.cpp @@ -13,54 +13,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType3IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType3IEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dtrisemaxlvrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kdtd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.mplvrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.omegaoffset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.pdtdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.rramp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tdvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.temin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tomegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tuscale", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.twref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.udvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.updip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.wdtd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.zeta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType3IEC::WindContPType3IEC() : WindGenTurbineType3IEC(nullptr) {} WindContPType3IEC::~WindContPType3IEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindContPType3IEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dtrisemaxlvrt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kdtd", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kip", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kpp", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.mplvrt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.omegaoffset", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.pdtdmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.rramp", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tdvs", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.temin", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tomegafilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tpfilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tufilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tuscale", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.twref", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.udvs", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.updip", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.wdtd", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.zeta", { CGMESProfile::DY, } }, -}; - -std::list -WindContPType3IEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindContPType3IEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindContPType3IEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindContPType3IEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindContPType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindContPType3IEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContPType3IEC(BaseClass*, BaseClass*); @@ -716,64 +748,64 @@ const char* WindContPType3IEC::debugString() const void WindContPType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType3IEC", &WindContPType3IEC_factory); + factory_map.emplace("WindContPType3IEC", &WindContPType3IEC_factory); } void WindContPType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType3IEC.dpmax", &assign_WindContPType3IEC_dpmax); - assign_map.emplace("cim:WindContPType3IEC.dtrisemaxlvrt", &assign_WindContPType3IEC_dtrisemaxlvrt); - assign_map.emplace("cim:WindContPType3IEC.kdtd", &assign_WindContPType3IEC_kdtd); - assign_map.emplace("cim:WindContPType3IEC.kip", &assign_WindContPType3IEC_kip); - assign_map.emplace("cim:WindContPType3IEC.kpp", &assign_WindContPType3IEC_kpp); - assign_map.emplace("cim:WindContPType3IEC.mplvrt", &assign_WindContPType3IEC_mplvrt); - assign_map.emplace("cim:WindContPType3IEC.omegaoffset", &assign_WindContPType3IEC_omegaoffset); - assign_map.emplace("cim:WindContPType3IEC.pdtdmax", &assign_WindContPType3IEC_pdtdmax); - assign_map.emplace("cim:WindContPType3IEC.rramp", &assign_WindContPType3IEC_rramp); - assign_map.emplace("cim:WindContPType3IEC.tdvs", &assign_WindContPType3IEC_tdvs); - assign_map.emplace("cim:WindContPType3IEC.temin", &assign_WindContPType3IEC_temin); - assign_map.emplace("cim:WindContPType3IEC.tomegafilt", &assign_WindContPType3IEC_tomegafilt); - assign_map.emplace("cim:WindContPType3IEC.tpfilt", &assign_WindContPType3IEC_tpfilt); - assign_map.emplace("cim:WindContPType3IEC.tpord", &assign_WindContPType3IEC_tpord); - assign_map.emplace("cim:WindContPType3IEC.tufilt", &assign_WindContPType3IEC_tufilt); - assign_map.emplace("cim:WindContPType3IEC.tuscale", &assign_WindContPType3IEC_tuscale); - assign_map.emplace("cim:WindContPType3IEC.twref", &assign_WindContPType3IEC_twref); - assign_map.emplace("cim:WindContPType3IEC.udvs", &assign_WindContPType3IEC_udvs); - assign_map.emplace("cim:WindContPType3IEC.updip", &assign_WindContPType3IEC_updip); - assign_map.emplace("cim:WindContPType3IEC.wdtd", &assign_WindContPType3IEC_wdtd); - assign_map.emplace("cim:WindContPType3IEC.zeta", &assign_WindContPType3IEC_zeta); + assign_map.emplace("WindContPType3IEC.dpmax", &assign_WindContPType3IEC_dpmax); + assign_map.emplace("WindContPType3IEC.dtrisemaxlvrt", &assign_WindContPType3IEC_dtrisemaxlvrt); + assign_map.emplace("WindContPType3IEC.kdtd", &assign_WindContPType3IEC_kdtd); + assign_map.emplace("WindContPType3IEC.kip", &assign_WindContPType3IEC_kip); + assign_map.emplace("WindContPType3IEC.kpp", &assign_WindContPType3IEC_kpp); + assign_map.emplace("WindContPType3IEC.mplvrt", &assign_WindContPType3IEC_mplvrt); + assign_map.emplace("WindContPType3IEC.omegaoffset", &assign_WindContPType3IEC_omegaoffset); + assign_map.emplace("WindContPType3IEC.pdtdmax", &assign_WindContPType3IEC_pdtdmax); + assign_map.emplace("WindContPType3IEC.rramp", &assign_WindContPType3IEC_rramp); + assign_map.emplace("WindContPType3IEC.tdvs", &assign_WindContPType3IEC_tdvs); + assign_map.emplace("WindContPType3IEC.temin", &assign_WindContPType3IEC_temin); + assign_map.emplace("WindContPType3IEC.tomegafilt", &assign_WindContPType3IEC_tomegafilt); + assign_map.emplace("WindContPType3IEC.tpfilt", &assign_WindContPType3IEC_tpfilt); + assign_map.emplace("WindContPType3IEC.tpord", &assign_WindContPType3IEC_tpord); + assign_map.emplace("WindContPType3IEC.tufilt", &assign_WindContPType3IEC_tufilt); + assign_map.emplace("WindContPType3IEC.tuscale", &assign_WindContPType3IEC_tuscale); + assign_map.emplace("WindContPType3IEC.twref", &assign_WindContPType3IEC_twref); + assign_map.emplace("WindContPType3IEC.udvs", &assign_WindContPType3IEC_udvs); + assign_map.emplace("WindContPType3IEC.updip", &assign_WindContPType3IEC_updip); + assign_map.emplace("WindContPType3IEC.wdtd", &assign_WindContPType3IEC_wdtd); + assign_map.emplace("WindContPType3IEC.zeta", &assign_WindContPType3IEC_zeta); } void WindContPType3IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType3IEC.WindDynamicsLookupTable", &assign_WindContPType3IEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContPType3IEC.WindGenTurbineType3IEC", &assign_WindContPType3IEC_WindGenTurbineType3IEC); + assign_map.emplace("WindContPType3IEC.WindDynamicsLookupTable", &assign_WindContPType3IEC_WindDynamicsLookupTable); + assign_map.emplace("WindContPType3IEC.WindGenTurbineType3IEC", &assign_WindContPType3IEC_WindGenTurbineType3IEC); } void WindContPType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType3IEC.dpmax", &get_WindContPType3IEC_dpmax); - get_map.emplace("cim:WindContPType3IEC.dtrisemaxlvrt", &get_WindContPType3IEC_dtrisemaxlvrt); - get_map.emplace("cim:WindContPType3IEC.kdtd", &get_WindContPType3IEC_kdtd); - get_map.emplace("cim:WindContPType3IEC.kip", &get_WindContPType3IEC_kip); - get_map.emplace("cim:WindContPType3IEC.kpp", &get_WindContPType3IEC_kpp); - get_map.emplace("cim:WindContPType3IEC.mplvrt", &get_WindContPType3IEC_mplvrt); - get_map.emplace("cim:WindContPType3IEC.omegaoffset", &get_WindContPType3IEC_omegaoffset); - get_map.emplace("cim:WindContPType3IEC.pdtdmax", &get_WindContPType3IEC_pdtdmax); - get_map.emplace("cim:WindContPType3IEC.rramp", &get_WindContPType3IEC_rramp); - get_map.emplace("cim:WindContPType3IEC.tdvs", &get_WindContPType3IEC_tdvs); - get_map.emplace("cim:WindContPType3IEC.temin", &get_WindContPType3IEC_temin); - get_map.emplace("cim:WindContPType3IEC.tomegafilt", &get_WindContPType3IEC_tomegafilt); - get_map.emplace("cim:WindContPType3IEC.tpfilt", &get_WindContPType3IEC_tpfilt); - get_map.emplace("cim:WindContPType3IEC.tpord", &get_WindContPType3IEC_tpord); - get_map.emplace("cim:WindContPType3IEC.tufilt", &get_WindContPType3IEC_tufilt); - get_map.emplace("cim:WindContPType3IEC.tuscale", &get_WindContPType3IEC_tuscale); - get_map.emplace("cim:WindContPType3IEC.twref", &get_WindContPType3IEC_twref); - get_map.emplace("cim:WindContPType3IEC.udvs", &get_WindContPType3IEC_udvs); - get_map.emplace("cim:WindContPType3IEC.updip", &get_WindContPType3IEC_updip); - get_map.emplace("cim:WindContPType3IEC.wdtd", &get_WindContPType3IEC_wdtd); - get_map.emplace("cim:WindContPType3IEC.zeta", &get_WindContPType3IEC_zeta); + get_map.emplace("WindContPType3IEC.dpmax", &get_WindContPType3IEC_dpmax); + get_map.emplace("WindContPType3IEC.dtrisemaxlvrt", &get_WindContPType3IEC_dtrisemaxlvrt); + get_map.emplace("WindContPType3IEC.kdtd", &get_WindContPType3IEC_kdtd); + get_map.emplace("WindContPType3IEC.kip", &get_WindContPType3IEC_kip); + get_map.emplace("WindContPType3IEC.kpp", &get_WindContPType3IEC_kpp); + get_map.emplace("WindContPType3IEC.mplvrt", &get_WindContPType3IEC_mplvrt); + get_map.emplace("WindContPType3IEC.omegaoffset", &get_WindContPType3IEC_omegaoffset); + get_map.emplace("WindContPType3IEC.pdtdmax", &get_WindContPType3IEC_pdtdmax); + get_map.emplace("WindContPType3IEC.rramp", &get_WindContPType3IEC_rramp); + get_map.emplace("WindContPType3IEC.tdvs", &get_WindContPType3IEC_tdvs); + get_map.emplace("WindContPType3IEC.temin", &get_WindContPType3IEC_temin); + get_map.emplace("WindContPType3IEC.tomegafilt", &get_WindContPType3IEC_tomegafilt); + get_map.emplace("WindContPType3IEC.tpfilt", &get_WindContPType3IEC_tpfilt); + get_map.emplace("WindContPType3IEC.tpord", &get_WindContPType3IEC_tpord); + get_map.emplace("WindContPType3IEC.tufilt", &get_WindContPType3IEC_tufilt); + get_map.emplace("WindContPType3IEC.tuscale", &get_WindContPType3IEC_tuscale); + get_map.emplace("WindContPType3IEC.twref", &get_WindContPType3IEC_twref); + get_map.emplace("WindContPType3IEC.udvs", &get_WindContPType3IEC_udvs); + get_map.emplace("WindContPType3IEC.updip", &get_WindContPType3IEC_updip); + get_map.emplace("WindContPType3IEC.wdtd", &get_WindContPType3IEC_wdtd); + get_map.emplace("WindContPType3IEC.zeta", &get_WindContPType3IEC_zeta); } void WindContPType3IEC::addClassGetFnsToMap(std::map& get_map) const @@ -786,11 +818,25 @@ void WindContPType3IEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType3IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType3IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType3IEC::declare() { return BaseClassDefiner(WindContPType3IEC::addConstructToMap, WindContPType3IEC::addPrimitiveAssignFnsToMap, WindContPType3IEC::addClassAssignFnsToMap, WindContPType3IEC::debugName); } +std::map WindContPType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType3IEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindContPType3IEC.hpp b/CGMES_2.4.13_18DEC2013/WindContPType3IEC.hpp index f73e04869..54e920640 100644 --- a/CGMES_2.4.13_18DEC2013/WindContPType3IEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindContPType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -102,8 +103,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -111,7 +119,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType3IEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindContPType4aIEC.cpp b/CGMES_2.4.13_18DEC2013/WindContPType4aIEC.cpp index 1c26a76c5..fd0e796ca 100644 --- a/CGMES_2.4.13_18DEC2013/WindContPType4aIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindContPType4aIEC.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType4aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType4aIEC.WindTurbineType4aIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType4aIEC::WindContPType4aIEC() : WindTurbineType4aIEC(nullptr) {} WindContPType4aIEC::~WindContPType4aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPType4aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPType4aIEC::getClassNamespaceUrl() const { - { "cim:WindContPType4aIEC.WindTurbineType4aIEC", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPType4aIEC::getPossibleProfilesForClass() const +const std::string& WindContPType4aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPType4aIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPType4aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType4aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType4aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType4aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4aIEC_WindContPType4aIEC(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* WindContPType4aIEC::debugString() const void WindContPType4aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType4aIEC", &WindContPType4aIEC_factory); + factory_map.emplace("WindContPType4aIEC", &WindContPType4aIEC_factory); } void WindContPType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4aIEC.dpmax", &assign_WindContPType4aIEC_dpmax); - assign_map.emplace("cim:WindContPType4aIEC.tpord", &assign_WindContPType4aIEC_tpord); - assign_map.emplace("cim:WindContPType4aIEC.tufilt", &assign_WindContPType4aIEC_tufilt); + assign_map.emplace("WindContPType4aIEC.dpmax", &assign_WindContPType4aIEC_dpmax); + assign_map.emplace("WindContPType4aIEC.tpord", &assign_WindContPType4aIEC_tpord); + assign_map.emplace("WindContPType4aIEC.tufilt", &assign_WindContPType4aIEC_tufilt); } void WindContPType4aIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4aIEC.WindTurbineType4aIEC", &assign_WindContPType4aIEC_WindTurbineType4aIEC); + assign_map.emplace("WindContPType4aIEC.WindTurbineType4aIEC", &assign_WindContPType4aIEC_WindTurbineType4aIEC); } void WindContPType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType4aIEC.dpmax", &get_WindContPType4aIEC_dpmax); - get_map.emplace("cim:WindContPType4aIEC.tpord", &get_WindContPType4aIEC_tpord); - get_map.emplace("cim:WindContPType4aIEC.tufilt", &get_WindContPType4aIEC_tufilt); + get_map.emplace("WindContPType4aIEC.dpmax", &get_WindContPType4aIEC_dpmax); + get_map.emplace("WindContPType4aIEC.tpord", &get_WindContPType4aIEC_tpord); + get_map.emplace("WindContPType4aIEC.tufilt", &get_WindContPType4aIEC_tufilt); } void WindContPType4aIEC::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void WindContPType4aIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType4aIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType4aIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType4aIEC::declare() { return BaseClassDefiner(WindContPType4aIEC::addConstructToMap, WindContPType4aIEC::addPrimitiveAssignFnsToMap, WindContPType4aIEC::addClassAssignFnsToMap, WindContPType4aIEC::debugName); } +std::map WindContPType4aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType4aIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindContPType4aIEC.hpp b/CGMES_2.4.13_18DEC2013/WindContPType4aIEC.hpp index da1dc150e..2b2799ad1 100644 --- a/CGMES_2.4.13_18DEC2013/WindContPType4aIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindContPType4aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType4aIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindContPType4bIEC.cpp b/CGMES_2.4.13_18DEC2013/WindContPType4bIEC.cpp index 63bf79cac..ce1989784 100644 --- a/CGMES_2.4.13_18DEC2013/WindContPType4bIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindContPType4bIEC.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType4bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType4bIEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tpaero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType4bIEC::WindContPType4bIEC() : WindTurbineType4bIEC(nullptr) {} WindContPType4bIEC::~WindContPType4bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPType4bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPType4bIEC::getClassNamespaceUrl() const { - { "cim:WindContPType4bIEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tpaero", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPType4bIEC::getPossibleProfilesForClass() const +const std::string& WindContPType4bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPType4bIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPType4bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType4bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType4bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType4bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4bIEC_WindContPType4bIEC(BaseClass*, BaseClass*); @@ -186,29 +218,29 @@ const char* WindContPType4bIEC::debugString() const void WindContPType4bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType4bIEC", &WindContPType4bIEC_factory); + factory_map.emplace("WindContPType4bIEC", &WindContPType4bIEC_factory); } void WindContPType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4bIEC.dpmax", &assign_WindContPType4bIEC_dpmax); - assign_map.emplace("cim:WindContPType4bIEC.tpaero", &assign_WindContPType4bIEC_tpaero); - assign_map.emplace("cim:WindContPType4bIEC.tpord", &assign_WindContPType4bIEC_tpord); - assign_map.emplace("cim:WindContPType4bIEC.tufilt", &assign_WindContPType4bIEC_tufilt); + assign_map.emplace("WindContPType4bIEC.dpmax", &assign_WindContPType4bIEC_dpmax); + assign_map.emplace("WindContPType4bIEC.tpaero", &assign_WindContPType4bIEC_tpaero); + assign_map.emplace("WindContPType4bIEC.tpord", &assign_WindContPType4bIEC_tpord); + assign_map.emplace("WindContPType4bIEC.tufilt", &assign_WindContPType4bIEC_tufilt); } void WindContPType4bIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4bIEC.WindTurbineType4bIEC", &assign_WindContPType4bIEC_WindTurbineType4bIEC); + assign_map.emplace("WindContPType4bIEC.WindTurbineType4bIEC", &assign_WindContPType4bIEC_WindTurbineType4bIEC); } void WindContPType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType4bIEC.dpmax", &get_WindContPType4bIEC_dpmax); - get_map.emplace("cim:WindContPType4bIEC.tpaero", &get_WindContPType4bIEC_tpaero); - get_map.emplace("cim:WindContPType4bIEC.tpord", &get_WindContPType4bIEC_tpord); - get_map.emplace("cim:WindContPType4bIEC.tufilt", &get_WindContPType4bIEC_tufilt); + get_map.emplace("WindContPType4bIEC.dpmax", &get_WindContPType4bIEC_dpmax); + get_map.emplace("WindContPType4bIEC.tpaero", &get_WindContPType4bIEC_tpaero); + get_map.emplace("WindContPType4bIEC.tpord", &get_WindContPType4bIEC_tpord); + get_map.emplace("WindContPType4bIEC.tufilt", &get_WindContPType4bIEC_tufilt); } void WindContPType4bIEC::addClassGetFnsToMap(std::map& get_map) const @@ -221,11 +253,25 @@ void WindContPType4bIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType4bIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType4bIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType4bIEC::declare() { return BaseClassDefiner(WindContPType4bIEC::addConstructToMap, WindContPType4bIEC::addPrimitiveAssignFnsToMap, WindContPType4bIEC::addClassAssignFnsToMap, WindContPType4bIEC::debugName); } +std::map WindContPType4bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType4bIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindContPType4bIEC.hpp b/CGMES_2.4.13_18DEC2013/WindContPType4bIEC.hpp index 945825f0c..4e1cdbfe0 100644 --- a/CGMES_2.4.13_18DEC2013/WindContPType4bIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindContPType4bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType4bIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindContPitchAngleIEC.cpp b/CGMES_2.4.13_18DEC2013/WindContPitchAngleIEC.cpp index 055ba9674..3671be1e1 100644 --- a/CGMES_2.4.13_18DEC2013/WindContPitchAngleIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindContPitchAngleIEC.cpp @@ -12,42 +12,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPitchAngleIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPitchAngleIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.dthetamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.dthetamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kiomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.thetamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.thetamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.ttheta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPitchAngleIEC::WindContPitchAngleIEC() : WindGenTurbineType3IEC(nullptr) {} WindContPitchAngleIEC::~WindContPitchAngleIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPitchAngleIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPitchAngleIEC::getClassNamespaceUrl() const { - { "cim:WindContPitchAngleIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.dthetamax", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.dthetamin", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kic", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kiomega", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpc", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpomega", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpx", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.thetamax", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.thetamin", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.ttheta", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPitchAngleIEC::getPossibleProfilesForClass() const +const std::string& WindContPitchAngleIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPitchAngleIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPitchAngleIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPitchAngleIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPitchAngleIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPitchAngleIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindContPitchAngleIEC(BaseClass*, BaseClass*); @@ -366,41 +398,41 @@ const char* WindContPitchAngleIEC::debugString() const void WindContPitchAngleIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPitchAngleIEC", &WindContPitchAngleIEC_factory); + factory_map.emplace("WindContPitchAngleIEC", &WindContPitchAngleIEC_factory); } void WindContPitchAngleIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPitchAngleIEC.dthetamax", &assign_WindContPitchAngleIEC_dthetamax); - assign_map.emplace("cim:WindContPitchAngleIEC.dthetamin", &assign_WindContPitchAngleIEC_dthetamin); - assign_map.emplace("cim:WindContPitchAngleIEC.kic", &assign_WindContPitchAngleIEC_kic); - assign_map.emplace("cim:WindContPitchAngleIEC.kiomega", &assign_WindContPitchAngleIEC_kiomega); - assign_map.emplace("cim:WindContPitchAngleIEC.kpc", &assign_WindContPitchAngleIEC_kpc); - assign_map.emplace("cim:WindContPitchAngleIEC.kpomega", &assign_WindContPitchAngleIEC_kpomega); - assign_map.emplace("cim:WindContPitchAngleIEC.kpx", &assign_WindContPitchAngleIEC_kpx); - assign_map.emplace("cim:WindContPitchAngleIEC.thetamax", &assign_WindContPitchAngleIEC_thetamax); - assign_map.emplace("cim:WindContPitchAngleIEC.thetamin", &assign_WindContPitchAngleIEC_thetamin); - assign_map.emplace("cim:WindContPitchAngleIEC.ttheta", &assign_WindContPitchAngleIEC_ttheta); + assign_map.emplace("WindContPitchAngleIEC.dthetamax", &assign_WindContPitchAngleIEC_dthetamax); + assign_map.emplace("WindContPitchAngleIEC.dthetamin", &assign_WindContPitchAngleIEC_dthetamin); + assign_map.emplace("WindContPitchAngleIEC.kic", &assign_WindContPitchAngleIEC_kic); + assign_map.emplace("WindContPitchAngleIEC.kiomega", &assign_WindContPitchAngleIEC_kiomega); + assign_map.emplace("WindContPitchAngleIEC.kpc", &assign_WindContPitchAngleIEC_kpc); + assign_map.emplace("WindContPitchAngleIEC.kpomega", &assign_WindContPitchAngleIEC_kpomega); + assign_map.emplace("WindContPitchAngleIEC.kpx", &assign_WindContPitchAngleIEC_kpx); + assign_map.emplace("WindContPitchAngleIEC.thetamax", &assign_WindContPitchAngleIEC_thetamax); + assign_map.emplace("WindContPitchAngleIEC.thetamin", &assign_WindContPitchAngleIEC_thetamin); + assign_map.emplace("WindContPitchAngleIEC.ttheta", &assign_WindContPitchAngleIEC_ttheta); } void WindContPitchAngleIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPitchAngleIEC.WindGenTurbineType3IEC", &assign_WindContPitchAngleIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindContPitchAngleIEC.WindGenTurbineType3IEC", &assign_WindContPitchAngleIEC_WindGenTurbineType3IEC); } void WindContPitchAngleIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPitchAngleIEC.dthetamax", &get_WindContPitchAngleIEC_dthetamax); - get_map.emplace("cim:WindContPitchAngleIEC.dthetamin", &get_WindContPitchAngleIEC_dthetamin); - get_map.emplace("cim:WindContPitchAngleIEC.kic", &get_WindContPitchAngleIEC_kic); - get_map.emplace("cim:WindContPitchAngleIEC.kiomega", &get_WindContPitchAngleIEC_kiomega); - get_map.emplace("cim:WindContPitchAngleIEC.kpc", &get_WindContPitchAngleIEC_kpc); - get_map.emplace("cim:WindContPitchAngleIEC.kpomega", &get_WindContPitchAngleIEC_kpomega); - get_map.emplace("cim:WindContPitchAngleIEC.kpx", &get_WindContPitchAngleIEC_kpx); - get_map.emplace("cim:WindContPitchAngleIEC.thetamax", &get_WindContPitchAngleIEC_thetamax); - get_map.emplace("cim:WindContPitchAngleIEC.thetamin", &get_WindContPitchAngleIEC_thetamin); - get_map.emplace("cim:WindContPitchAngleIEC.ttheta", &get_WindContPitchAngleIEC_ttheta); + get_map.emplace("WindContPitchAngleIEC.dthetamax", &get_WindContPitchAngleIEC_dthetamax); + get_map.emplace("WindContPitchAngleIEC.dthetamin", &get_WindContPitchAngleIEC_dthetamin); + get_map.emplace("WindContPitchAngleIEC.kic", &get_WindContPitchAngleIEC_kic); + get_map.emplace("WindContPitchAngleIEC.kiomega", &get_WindContPitchAngleIEC_kiomega); + get_map.emplace("WindContPitchAngleIEC.kpc", &get_WindContPitchAngleIEC_kpc); + get_map.emplace("WindContPitchAngleIEC.kpomega", &get_WindContPitchAngleIEC_kpomega); + get_map.emplace("WindContPitchAngleIEC.kpx", &get_WindContPitchAngleIEC_kpx); + get_map.emplace("WindContPitchAngleIEC.thetamax", &get_WindContPitchAngleIEC_thetamax); + get_map.emplace("WindContPitchAngleIEC.thetamin", &get_WindContPitchAngleIEC_thetamin); + get_map.emplace("WindContPitchAngleIEC.ttheta", &get_WindContPitchAngleIEC_ttheta); } void WindContPitchAngleIEC::addClassGetFnsToMap(std::map& get_map) const @@ -413,11 +445,25 @@ void WindContPitchAngleIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindContPitchAngleIEC::declare() { return BaseClassDefiner(WindContPitchAngleIEC::addConstructToMap, WindContPitchAngleIEC::addPrimitiveAssignFnsToMap, WindContPitchAngleIEC::addClassAssignFnsToMap, WindContPitchAngleIEC::debugName); } +std::map WindContPitchAngleIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPitchAngleIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindContPitchAngleIEC.hpp b/CGMES_2.4.13_18DEC2013/WindContPitchAngleIEC.hpp index 57dd765dc..9a17e92bb 100644 --- a/CGMES_2.4.13_18DEC2013/WindContPitchAngleIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindContPitchAngleIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -65,8 +66,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -74,7 +82,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPitchAngleIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindContQIEC.cpp b/CGMES_2.4.13_18DEC2013/WindContQIEC.cpp index 2b20f6ee7..84e8dafcf 100644 --- a/CGMES_2.4.13_18DEC2013/WindContQIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindContQIEC.cpp @@ -12,58 +12,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContQIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContQIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqpost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kiq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kiu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kpq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kqv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.qmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.qmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.rdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tiq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tpost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tqord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.udb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.udb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.umax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.umin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.uqdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.uref0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.windLVRTQcontrolModesType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.windQcontrolModesType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.xdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContQIEC::WindContQIEC() : WindTurbineType3or4IEC(nullptr) {} WindContQIEC::~WindContQIEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindContQIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqh1", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqmax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqmin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqpost", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kiq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kiu", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kpq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kpu", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kqv", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.qmax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.qmin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.rdroop", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tiq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tpfilt", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tpost", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tqord", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tufilt", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.udb1", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.udb2", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.umax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.umin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.uqdip", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.uref0", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.windLVRTQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.windQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.xdroop", { CGMESProfile::DY, } }, -}; - -std::list -WindContQIEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindContQIEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindContQIEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindContQIEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindContQIEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindContQIEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContQIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContQIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContQIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3or4IEC_WIndContQIEC(BaseClass*, BaseClass*); @@ -846,71 +878,71 @@ const char* WindContQIEC::debugString() const void WindContQIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContQIEC", &WindContQIEC_factory); + factory_map.emplace("WindContQIEC", &WindContQIEC_factory); } void WindContQIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQIEC.iqh1", &assign_WindContQIEC_iqh1); - assign_map.emplace("cim:WindContQIEC.iqmax", &assign_WindContQIEC_iqmax); - assign_map.emplace("cim:WindContQIEC.iqmin", &assign_WindContQIEC_iqmin); - assign_map.emplace("cim:WindContQIEC.iqpost", &assign_WindContQIEC_iqpost); - assign_map.emplace("cim:WindContQIEC.kiq", &assign_WindContQIEC_kiq); - assign_map.emplace("cim:WindContQIEC.kiu", &assign_WindContQIEC_kiu); - assign_map.emplace("cim:WindContQIEC.kpq", &assign_WindContQIEC_kpq); - assign_map.emplace("cim:WindContQIEC.kpu", &assign_WindContQIEC_kpu); - assign_map.emplace("cim:WindContQIEC.kqv", &assign_WindContQIEC_kqv); - assign_map.emplace("cim:WindContQIEC.qmax", &assign_WindContQIEC_qmax); - assign_map.emplace("cim:WindContQIEC.qmin", &assign_WindContQIEC_qmin); - assign_map.emplace("cim:WindContQIEC.rdroop", &assign_WindContQIEC_rdroop); - assign_map.emplace("cim:WindContQIEC.tiq", &assign_WindContQIEC_tiq); - assign_map.emplace("cim:WindContQIEC.tpfilt", &assign_WindContQIEC_tpfilt); - assign_map.emplace("cim:WindContQIEC.tpost", &assign_WindContQIEC_tpost); - assign_map.emplace("cim:WindContQIEC.tqord", &assign_WindContQIEC_tqord); - assign_map.emplace("cim:WindContQIEC.tufilt", &assign_WindContQIEC_tufilt); - assign_map.emplace("cim:WindContQIEC.udb1", &assign_WindContQIEC_udb1); - assign_map.emplace("cim:WindContQIEC.udb2", &assign_WindContQIEC_udb2); - assign_map.emplace("cim:WindContQIEC.umax", &assign_WindContQIEC_umax); - assign_map.emplace("cim:WindContQIEC.umin", &assign_WindContQIEC_umin); - assign_map.emplace("cim:WindContQIEC.uqdip", &assign_WindContQIEC_uqdip); - assign_map.emplace("cim:WindContQIEC.uref0", &assign_WindContQIEC_uref0); - assign_map.emplace("cim:WindContQIEC.windLVRTQcontrolModesType", &assign_WindContQIEC_windLVRTQcontrolModesType); - assign_map.emplace("cim:WindContQIEC.windQcontrolModesType", &assign_WindContQIEC_windQcontrolModesType); - assign_map.emplace("cim:WindContQIEC.xdroop", &assign_WindContQIEC_xdroop); + assign_map.emplace("WindContQIEC.iqh1", &assign_WindContQIEC_iqh1); + assign_map.emplace("WindContQIEC.iqmax", &assign_WindContQIEC_iqmax); + assign_map.emplace("WindContQIEC.iqmin", &assign_WindContQIEC_iqmin); + assign_map.emplace("WindContQIEC.iqpost", &assign_WindContQIEC_iqpost); + assign_map.emplace("WindContQIEC.kiq", &assign_WindContQIEC_kiq); + assign_map.emplace("WindContQIEC.kiu", &assign_WindContQIEC_kiu); + assign_map.emplace("WindContQIEC.kpq", &assign_WindContQIEC_kpq); + assign_map.emplace("WindContQIEC.kpu", &assign_WindContQIEC_kpu); + assign_map.emplace("WindContQIEC.kqv", &assign_WindContQIEC_kqv); + assign_map.emplace("WindContQIEC.qmax", &assign_WindContQIEC_qmax); + assign_map.emplace("WindContQIEC.qmin", &assign_WindContQIEC_qmin); + assign_map.emplace("WindContQIEC.rdroop", &assign_WindContQIEC_rdroop); + assign_map.emplace("WindContQIEC.tiq", &assign_WindContQIEC_tiq); + assign_map.emplace("WindContQIEC.tpfilt", &assign_WindContQIEC_tpfilt); + assign_map.emplace("WindContQIEC.tpost", &assign_WindContQIEC_tpost); + assign_map.emplace("WindContQIEC.tqord", &assign_WindContQIEC_tqord); + assign_map.emplace("WindContQIEC.tufilt", &assign_WindContQIEC_tufilt); + assign_map.emplace("WindContQIEC.udb1", &assign_WindContQIEC_udb1); + assign_map.emplace("WindContQIEC.udb2", &assign_WindContQIEC_udb2); + assign_map.emplace("WindContQIEC.umax", &assign_WindContQIEC_umax); + assign_map.emplace("WindContQIEC.umin", &assign_WindContQIEC_umin); + assign_map.emplace("WindContQIEC.uqdip", &assign_WindContQIEC_uqdip); + assign_map.emplace("WindContQIEC.uref0", &assign_WindContQIEC_uref0); + assign_map.emplace("WindContQIEC.windLVRTQcontrolModesType", &assign_WindContQIEC_windLVRTQcontrolModesType); + assign_map.emplace("WindContQIEC.windQcontrolModesType", &assign_WindContQIEC_windQcontrolModesType); + assign_map.emplace("WindContQIEC.xdroop", &assign_WindContQIEC_xdroop); } void WindContQIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQIEC.WindTurbineType3or4IEC", &assign_WindContQIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContQIEC.WindTurbineType3or4IEC", &assign_WindContQIEC_WindTurbineType3or4IEC); } void WindContQIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContQIEC.iqh1", &get_WindContQIEC_iqh1); - get_map.emplace("cim:WindContQIEC.iqmax", &get_WindContQIEC_iqmax); - get_map.emplace("cim:WindContQIEC.iqmin", &get_WindContQIEC_iqmin); - get_map.emplace("cim:WindContQIEC.iqpost", &get_WindContQIEC_iqpost); - get_map.emplace("cim:WindContQIEC.kiq", &get_WindContQIEC_kiq); - get_map.emplace("cim:WindContQIEC.kiu", &get_WindContQIEC_kiu); - get_map.emplace("cim:WindContQIEC.kpq", &get_WindContQIEC_kpq); - get_map.emplace("cim:WindContQIEC.kpu", &get_WindContQIEC_kpu); - get_map.emplace("cim:WindContQIEC.kqv", &get_WindContQIEC_kqv); - get_map.emplace("cim:WindContQIEC.qmax", &get_WindContQIEC_qmax); - get_map.emplace("cim:WindContQIEC.qmin", &get_WindContQIEC_qmin); - get_map.emplace("cim:WindContQIEC.rdroop", &get_WindContQIEC_rdroop); - get_map.emplace("cim:WindContQIEC.tiq", &get_WindContQIEC_tiq); - get_map.emplace("cim:WindContQIEC.tpfilt", &get_WindContQIEC_tpfilt); - get_map.emplace("cim:WindContQIEC.tpost", &get_WindContQIEC_tpost); - get_map.emplace("cim:WindContQIEC.tqord", &get_WindContQIEC_tqord); - get_map.emplace("cim:WindContQIEC.tufilt", &get_WindContQIEC_tufilt); - get_map.emplace("cim:WindContQIEC.udb1", &get_WindContQIEC_udb1); - get_map.emplace("cim:WindContQIEC.udb2", &get_WindContQIEC_udb2); - get_map.emplace("cim:WindContQIEC.umax", &get_WindContQIEC_umax); - get_map.emplace("cim:WindContQIEC.umin", &get_WindContQIEC_umin); - get_map.emplace("cim:WindContQIEC.uqdip", &get_WindContQIEC_uqdip); - get_map.emplace("cim:WindContQIEC.uref0", &get_WindContQIEC_uref0); - get_map.emplace("cim:WindContQIEC.xdroop", &get_WindContQIEC_xdroop); + get_map.emplace("WindContQIEC.iqh1", &get_WindContQIEC_iqh1); + get_map.emplace("WindContQIEC.iqmax", &get_WindContQIEC_iqmax); + get_map.emplace("WindContQIEC.iqmin", &get_WindContQIEC_iqmin); + get_map.emplace("WindContQIEC.iqpost", &get_WindContQIEC_iqpost); + get_map.emplace("WindContQIEC.kiq", &get_WindContQIEC_kiq); + get_map.emplace("WindContQIEC.kiu", &get_WindContQIEC_kiu); + get_map.emplace("WindContQIEC.kpq", &get_WindContQIEC_kpq); + get_map.emplace("WindContQIEC.kpu", &get_WindContQIEC_kpu); + get_map.emplace("WindContQIEC.kqv", &get_WindContQIEC_kqv); + get_map.emplace("WindContQIEC.qmax", &get_WindContQIEC_qmax); + get_map.emplace("WindContQIEC.qmin", &get_WindContQIEC_qmin); + get_map.emplace("WindContQIEC.rdroop", &get_WindContQIEC_rdroop); + get_map.emplace("WindContQIEC.tiq", &get_WindContQIEC_tiq); + get_map.emplace("WindContQIEC.tpfilt", &get_WindContQIEC_tpfilt); + get_map.emplace("WindContQIEC.tpost", &get_WindContQIEC_tpost); + get_map.emplace("WindContQIEC.tqord", &get_WindContQIEC_tqord); + get_map.emplace("WindContQIEC.tufilt", &get_WindContQIEC_tufilt); + get_map.emplace("WindContQIEC.udb1", &get_WindContQIEC_udb1); + get_map.emplace("WindContQIEC.udb2", &get_WindContQIEC_udb2); + get_map.emplace("WindContQIEC.umax", &get_WindContQIEC_umax); + get_map.emplace("WindContQIEC.umin", &get_WindContQIEC_umin); + get_map.emplace("WindContQIEC.uqdip", &get_WindContQIEC_uqdip); + get_map.emplace("WindContQIEC.uref0", &get_WindContQIEC_uref0); + get_map.emplace("WindContQIEC.xdroop", &get_WindContQIEC_xdroop); } void WindContQIEC::addClassGetFnsToMap(std::map& get_map) const @@ -921,8 +953,14 @@ void WindContQIEC::addClassGetFnsToMap(std::map void WindContQIEC::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindContQIEC.windLVRTQcontrolModesType", &get_WindContQIEC_windLVRTQcontrolModesType); - get_map.emplace("cim:WindContQIEC.windQcontrolModesType", &get_WindContQIEC_windQcontrolModesType); + get_map.emplace("WindContQIEC.windLVRTQcontrolModesType", &get_WindContQIEC_windLVRTQcontrolModesType); + get_map.emplace("WindContQIEC.windQcontrolModesType", &get_WindContQIEC_windQcontrolModesType); +} + +bool WindContQIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContQIEC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindContQIEC::declare() @@ -930,6 +968,14 @@ const BaseClassDefiner WindContQIEC::declare() return BaseClassDefiner(WindContQIEC::addConstructToMap, WindContQIEC::addPrimitiveAssignFnsToMap, WindContQIEC::addClassAssignFnsToMap, WindContQIEC::debugName); } +std::map WindContQIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContQIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindContQIEC.hpp b/CGMES_2.4.13_18DEC2013/WindContQIEC.hpp index 024e73ccd..c9bf74258 100644 --- a/CGMES_2.4.13_18DEC2013/WindContQIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindContQIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "WindLVRTQcontrolModesKind.hpp" @@ -113,8 +114,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -122,7 +130,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContQIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindContRotorRIEC.cpp b/CGMES_2.4.13_18DEC2013/WindContRotorRIEC.cpp index 67c95d633..0ab35767e 100644 --- a/CGMES_2.4.13_18DEC2013/WindContRotorRIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindContRotorRIEC.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContRotorRIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContRotorRIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.WindGenTurbineType2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kirr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.komegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kprr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.rmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.rmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.tomegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContRotorRIEC::WindContRotorRIEC() : WindGenTurbineType2IEC(nullptr) {} WindContRotorRIEC::~WindContRotorRIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContRotorRIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContRotorRIEC::getClassNamespaceUrl() const { - { "cim:WindContRotorRIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.WindGenTurbineType2IEC", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kirr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.komegafilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kpfilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kprr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.rmax", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.rmin", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.tomegafilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.tpfilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContRotorRIEC::getPossibleProfilesForClass() const +const std::string& WindContRotorRIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContRotorRIEC::getPossibleProfilesForAttributes() const +const std::list& WindContRotorRIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContRotorRIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContRotorRIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContRotorRIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContRotorRIEC(BaseClass*, BaseClass*); @@ -326,38 +358,38 @@ const char* WindContRotorRIEC::debugString() const void WindContRotorRIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContRotorRIEC", &WindContRotorRIEC_factory); + factory_map.emplace("WindContRotorRIEC", &WindContRotorRIEC_factory); } void WindContRotorRIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContRotorRIEC.kirr", &assign_WindContRotorRIEC_kirr); - assign_map.emplace("cim:WindContRotorRIEC.komegafilt", &assign_WindContRotorRIEC_komegafilt); - assign_map.emplace("cim:WindContRotorRIEC.kpfilt", &assign_WindContRotorRIEC_kpfilt); - assign_map.emplace("cim:WindContRotorRIEC.kprr", &assign_WindContRotorRIEC_kprr); - assign_map.emplace("cim:WindContRotorRIEC.rmax", &assign_WindContRotorRIEC_rmax); - assign_map.emplace("cim:WindContRotorRIEC.rmin", &assign_WindContRotorRIEC_rmin); - assign_map.emplace("cim:WindContRotorRIEC.tomegafilt", &assign_WindContRotorRIEC_tomegafilt); - assign_map.emplace("cim:WindContRotorRIEC.tpfilt", &assign_WindContRotorRIEC_tpfilt); + assign_map.emplace("WindContRotorRIEC.kirr", &assign_WindContRotorRIEC_kirr); + assign_map.emplace("WindContRotorRIEC.komegafilt", &assign_WindContRotorRIEC_komegafilt); + assign_map.emplace("WindContRotorRIEC.kpfilt", &assign_WindContRotorRIEC_kpfilt); + assign_map.emplace("WindContRotorRIEC.kprr", &assign_WindContRotorRIEC_kprr); + assign_map.emplace("WindContRotorRIEC.rmax", &assign_WindContRotorRIEC_rmax); + assign_map.emplace("WindContRotorRIEC.rmin", &assign_WindContRotorRIEC_rmin); + assign_map.emplace("WindContRotorRIEC.tomegafilt", &assign_WindContRotorRIEC_tomegafilt); + assign_map.emplace("WindContRotorRIEC.tpfilt", &assign_WindContRotorRIEC_tpfilt); } void WindContRotorRIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContRotorRIEC.WindDynamicsLookupTable", &assign_WindContRotorRIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContRotorRIEC.WindGenTurbineType2IEC", &assign_WindContRotorRIEC_WindGenTurbineType2IEC); + assign_map.emplace("WindContRotorRIEC.WindDynamicsLookupTable", &assign_WindContRotorRIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContRotorRIEC.WindGenTurbineType2IEC", &assign_WindContRotorRIEC_WindGenTurbineType2IEC); } void WindContRotorRIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContRotorRIEC.kirr", &get_WindContRotorRIEC_kirr); - get_map.emplace("cim:WindContRotorRIEC.komegafilt", &get_WindContRotorRIEC_komegafilt); - get_map.emplace("cim:WindContRotorRIEC.kpfilt", &get_WindContRotorRIEC_kpfilt); - get_map.emplace("cim:WindContRotorRIEC.kprr", &get_WindContRotorRIEC_kprr); - get_map.emplace("cim:WindContRotorRIEC.rmax", &get_WindContRotorRIEC_rmax); - get_map.emplace("cim:WindContRotorRIEC.rmin", &get_WindContRotorRIEC_rmin); - get_map.emplace("cim:WindContRotorRIEC.tomegafilt", &get_WindContRotorRIEC_tomegafilt); - get_map.emplace("cim:WindContRotorRIEC.tpfilt", &get_WindContRotorRIEC_tpfilt); + get_map.emplace("WindContRotorRIEC.kirr", &get_WindContRotorRIEC_kirr); + get_map.emplace("WindContRotorRIEC.komegafilt", &get_WindContRotorRIEC_komegafilt); + get_map.emplace("WindContRotorRIEC.kpfilt", &get_WindContRotorRIEC_kpfilt); + get_map.emplace("WindContRotorRIEC.kprr", &get_WindContRotorRIEC_kprr); + get_map.emplace("WindContRotorRIEC.rmax", &get_WindContRotorRIEC_rmax); + get_map.emplace("WindContRotorRIEC.rmin", &get_WindContRotorRIEC_rmin); + get_map.emplace("WindContRotorRIEC.tomegafilt", &get_WindContRotorRIEC_tomegafilt); + get_map.emplace("WindContRotorRIEC.tpfilt", &get_WindContRotorRIEC_tpfilt); } void WindContRotorRIEC::addClassGetFnsToMap(std::map& get_map) const @@ -370,11 +402,25 @@ void WindContRotorRIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContRotorRIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContRotorRIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContRotorRIEC::declare() { return BaseClassDefiner(WindContRotorRIEC::addConstructToMap, WindContRotorRIEC::addPrimitiveAssignFnsToMap, WindContRotorRIEC::addClassAssignFnsToMap, WindContRotorRIEC::debugName); } +std::map WindContRotorRIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContRotorRIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindContRotorRIEC.hpp b/CGMES_2.4.13_18DEC2013/WindContRotorRIEC.hpp index 50c215acb..f8e2d5159 100644 --- a/CGMES_2.4.13_18DEC2013/WindContRotorRIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindContRotorRIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContRotorRIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindDynamicsLookupTable.cpp b/CGMES_2.4.13_18DEC2013/WindDynamicsLookupTable.cpp index e88345af5..ee3945b8e 100644 --- a/CGMES_2.4.13_18DEC2013/WindDynamicsLookupTable.cpp +++ b/CGMES_2.4.13_18DEC2013/WindDynamicsLookupTable.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindDynamicsLookupTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindDynamicsLookupTable.WindContCurrLimIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContPType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContRotorRIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.input", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.lookupTableFunctionType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.output", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.sequence", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindDynamicsLookupTable::WindDynamicsLookupTable() : WindContCurrLimIEC(nullptr), WindContPType3IEC(nullptr), WindContRotorRIEC(nullptr), WindPlantFreqPcontrolIEC(nullptr) {} WindDynamicsLookupTable::~WindDynamicsLookupTable() {} -static const std::list PossibleProfilesForClass = +const std::list& WindDynamicsLookupTable::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindDynamicsLookupTable::getClassNamespaceUrl() const { - { "cim:WindDynamicsLookupTable.WindContCurrLimIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContPType3IEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContRotorRIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.input", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.lookupTableFunctionType", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.output", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.sequence", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindDynamicsLookupTable::getPossibleProfilesForClass() const +const std::string& WindDynamicsLookupTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindDynamicsLookupTable::getPossibleProfilesForAttributes() const +const std::list& WindDynamicsLookupTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindDynamicsLookupTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindDynamicsLookupTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindDynamicsLookupTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContCurrLimIEC_WindDynamicsLookupTable(BaseClass*, BaseClass*); @@ -298,46 +330,52 @@ const char* WindDynamicsLookupTable::debugString() const void WindDynamicsLookupTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindDynamicsLookupTable", &WindDynamicsLookupTable_factory); + factory_map.emplace("WindDynamicsLookupTable", &WindDynamicsLookupTable_factory); } void WindDynamicsLookupTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindDynamicsLookupTable.input", &assign_WindDynamicsLookupTable_input); - assign_map.emplace("cim:WindDynamicsLookupTable.lookupTableFunctionType", &assign_WindDynamicsLookupTable_lookupTableFunctionType); - assign_map.emplace("cim:WindDynamicsLookupTable.output", &assign_WindDynamicsLookupTable_output); - assign_map.emplace("cim:WindDynamicsLookupTable.sequence", &assign_WindDynamicsLookupTable_sequence); + assign_map.emplace("WindDynamicsLookupTable.input", &assign_WindDynamicsLookupTable_input); + assign_map.emplace("WindDynamicsLookupTable.lookupTableFunctionType", &assign_WindDynamicsLookupTable_lookupTableFunctionType); + assign_map.emplace("WindDynamicsLookupTable.output", &assign_WindDynamicsLookupTable_output); + assign_map.emplace("WindDynamicsLookupTable.sequence", &assign_WindDynamicsLookupTable_sequence); } void WindDynamicsLookupTable::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindDynamicsLookupTable.WindContCurrLimIEC", &assign_WindDynamicsLookupTable_WindContCurrLimIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContPType3IEC", &assign_WindDynamicsLookupTable_WindContPType3IEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContRotorRIEC", &assign_WindDynamicsLookupTable_WindContRotorRIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContCurrLimIEC", &assign_WindDynamicsLookupTable_WindContCurrLimIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContPType3IEC", &assign_WindDynamicsLookupTable_WindContPType3IEC); + assign_map.emplace("WindDynamicsLookupTable.WindContRotorRIEC", &assign_WindDynamicsLookupTable_WindContRotorRIEC); + assign_map.emplace("WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); } void WindDynamicsLookupTable::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.input", &get_WindDynamicsLookupTable_input); - get_map.emplace("cim:WindDynamicsLookupTable.output", &get_WindDynamicsLookupTable_output); - get_map.emplace("cim:WindDynamicsLookupTable.sequence", &get_WindDynamicsLookupTable_sequence); + get_map.emplace("WindDynamicsLookupTable.input", &get_WindDynamicsLookupTable_input); + get_map.emplace("WindDynamicsLookupTable.output", &get_WindDynamicsLookupTable_output); + get_map.emplace("WindDynamicsLookupTable.sequence", &get_WindDynamicsLookupTable_sequence); } void WindDynamicsLookupTable::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.WindContCurrLimIEC", &get_WindDynamicsLookupTable_WindContCurrLimIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContPType3IEC", &get_WindDynamicsLookupTable_WindContPType3IEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContRotorRIEC", &get_WindDynamicsLookupTable_WindContRotorRIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &get_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); + get_map.emplace("WindDynamicsLookupTable.WindContCurrLimIEC", &get_WindDynamicsLookupTable_WindContCurrLimIEC); + get_map.emplace("WindDynamicsLookupTable.WindContPType3IEC", &get_WindDynamicsLookupTable_WindContPType3IEC); + get_map.emplace("WindDynamicsLookupTable.WindContRotorRIEC", &get_WindDynamicsLookupTable_WindContRotorRIEC); + get_map.emplace("WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &get_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); } void WindDynamicsLookupTable::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.lookupTableFunctionType", &get_WindDynamicsLookupTable_lookupTableFunctionType); + get_map.emplace("WindDynamicsLookupTable.lookupTableFunctionType", &get_WindDynamicsLookupTable_lookupTableFunctionType); +} + +bool WindDynamicsLookupTable::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindDynamicsLookupTable" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindDynamicsLookupTable::declare() @@ -345,6 +383,14 @@ const BaseClassDefiner WindDynamicsLookupTable::declare() return BaseClassDefiner(WindDynamicsLookupTable::addConstructToMap, WindDynamicsLookupTable::addPrimitiveAssignFnsToMap, WindDynamicsLookupTable::addClassAssignFnsToMap, WindDynamicsLookupTable::debugName); } +std::map WindDynamicsLookupTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindDynamicsLookupTable_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindDynamicsLookupTable.hpp b/CGMES_2.4.13_18DEC2013/WindDynamicsLookupTable.hpp index 06d99ff11..71230cd72 100644 --- a/CGMES_2.4.13_18DEC2013/WindDynamicsLookupTable.hpp +++ b/CGMES_2.4.13_18DEC2013/WindDynamicsLookupTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" #include "WindLookupTableFunctionKind.hpp" @@ -58,8 +59,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -67,7 +75,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindDynamicsLookupTable_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType1IEC.cpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType1IEC.cpp index 3b78fca73..dde7510e8 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType1IEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType1IEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType1IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType1IEC.WindAeroConstIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType1IEC::WindGenTurbineType1IEC() : WindAeroConstIEC(nullptr) {} WindGenTurbineType1IEC::~WindGenTurbineType1IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType1IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType1IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType1IEC.WindAeroConstIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType1IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType1IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType1IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType1IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType1IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType1IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType1IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindAeroConstIEC_WindGenTurbineType1IEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindGenTurbineType1IEC::debugString() const void WindGenTurbineType1IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType1IEC", &WindGenTurbineType1IEC_factory); + factory_map.emplace("WindGenTurbineType1IEC", &WindGenTurbineType1IEC_factory); } void WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType1IEC.WindAeroConstIEC", &assign_WindGenTurbineType1IEC_WindAeroConstIEC); + assign_map.emplace("WindGenTurbineType1IEC.WindAeroConstIEC", &assign_WindGenTurbineType1IEC_WindAeroConstIEC); } void WindGenTurbineType1IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindGenTurbineType1IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType1IEC.WindAeroConstIEC", &get_WindGenTurbineType1IEC_WindAeroConstIEC); + get_map.emplace("WindGenTurbineType1IEC.WindAeroConstIEC", &get_WindGenTurbineType1IEC_WindAeroConstIEC); } void WindGenTurbineType1IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindGenTurbineType1IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType1IEC::declare() { return BaseClassDefiner(WindGenTurbineType1IEC::addConstructToMap, WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType1IEC::addClassAssignFnsToMap, WindGenTurbineType1IEC::debugName); } +std::map WindGenTurbineType1IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType1IEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType1IEC.hpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType1IEC.hpp index d4e30e4cc..c469ff6f2 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType1IEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType1IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType1IEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType2IEC.cpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType2IEC.cpp index 145486473..f9a53cf20 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType2IEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType2IEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType2IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType2IEC.WindContRotorRIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType2IEC.WindPitchContEmulIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType2IEC::WindGenTurbineType2IEC() : WindContRotorRIEC(nullptr), WindPitchContEmulIEC(nullptr) {} WindGenTurbineType2IEC::~WindGenTurbineType2IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType2IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType2IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType2IEC.WindContRotorRIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType2IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType2IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType2IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType2IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType2IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType2IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType2IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContRotorRIEC_WindGenTurbineType2IEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindGenTurbineType2IEC::debugString() const void WindGenTurbineType2IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType2IEC", &WindGenTurbineType2IEC_factory); + factory_map.emplace("WindGenTurbineType2IEC", &WindGenTurbineType2IEC_factory); } void WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType2IEC.WindContRotorRIEC", &assign_WindGenTurbineType2IEC_WindContRotorRIEC); - assign_map.emplace("cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", &assign_WindGenTurbineType2IEC_WindPitchContEmulIEC); + assign_map.emplace("WindGenTurbineType2IEC.WindContRotorRIEC", &assign_WindGenTurbineType2IEC_WindContRotorRIEC); + assign_map.emplace("WindGenTurbineType2IEC.WindPitchContEmulIEC", &assign_WindGenTurbineType2IEC_WindPitchContEmulIEC); } void WindGenTurbineType2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindGenTurbineType2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType2IEC.WindContRotorRIEC", &get_WindGenTurbineType2IEC_WindContRotorRIEC); - get_map.emplace("cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", &get_WindGenTurbineType2IEC_WindPitchContEmulIEC); + get_map.emplace("WindGenTurbineType2IEC.WindContRotorRIEC", &get_WindGenTurbineType2IEC_WindContRotorRIEC); + get_map.emplace("WindGenTurbineType2IEC.WindPitchContEmulIEC", &get_WindGenTurbineType2IEC_WindPitchContEmulIEC); } void WindGenTurbineType2IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindGenTurbineType2IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType2IEC::declare() { return BaseClassDefiner(WindGenTurbineType2IEC::addConstructToMap, WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType2IEC::addClassAssignFnsToMap, WindGenTurbineType2IEC::debugName); } +std::map WindGenTurbineType2IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType2IEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType2IEC.hpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType2IEC.hpp index 435504800..0a5c2d6ae 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType2IEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType2IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType2IEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3IEC.cpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3IEC.cpp index 06d7e4bf4..da9ae19ad 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3IEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3IEC.cpp @@ -15,37 +15,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3IEC.WindAeroLinearIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindContPType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindContPitchAngleIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.dipmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.diqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3IEC::WindGenTurbineType3IEC() : WindAeroLinearIEC(nullptr), WindContPType3IEC(nullptr), WindContPitchAngleIEC(nullptr), WindMechIEC(nullptr) {} WindGenTurbineType3IEC::~WindGenTurbineType3IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3IEC.WindAeroLinearIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindContPType3IEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindMechIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.dipmax", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.diqmax", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindAeroLinearIEC_WindGenTurbineType3IEC(BaseClass*, BaseClass*); @@ -238,37 +270,37 @@ const char* WindGenTurbineType3IEC::debugString() const void WindGenTurbineType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3IEC", &WindGenTurbineType3IEC_factory); + factory_map.emplace("WindGenTurbineType3IEC", &WindGenTurbineType3IEC_factory); } void WindGenTurbineType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3IEC.dipmax", &assign_WindGenTurbineType3IEC_dipmax); - assign_map.emplace("cim:WindGenTurbineType3IEC.diqmax", &assign_WindGenTurbineType3IEC_diqmax); + assign_map.emplace("WindGenTurbineType3IEC.dipmax", &assign_WindGenTurbineType3IEC_dipmax); + assign_map.emplace("WindGenTurbineType3IEC.diqmax", &assign_WindGenTurbineType3IEC_diqmax); } void WindGenTurbineType3IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3IEC.WindAeroLinearIEC", &assign_WindGenTurbineType3IEC_WindAeroLinearIEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindContPType3IEC", &assign_WindGenTurbineType3IEC_WindContPType3IEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", &assign_WindGenTurbineType3IEC_WindContPitchAngleIEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindMechIEC", &assign_WindGenTurbineType3IEC_WindMechIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindAeroLinearIEC", &assign_WindGenTurbineType3IEC_WindAeroLinearIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindContPType3IEC", &assign_WindGenTurbineType3IEC_WindContPType3IEC); + assign_map.emplace("WindGenTurbineType3IEC.WindContPitchAngleIEC", &assign_WindGenTurbineType3IEC_WindContPitchAngleIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindMechIEC", &assign_WindGenTurbineType3IEC_WindMechIEC); } void WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3IEC.dipmax", &get_WindGenTurbineType3IEC_dipmax); - get_map.emplace("cim:WindGenTurbineType3IEC.diqmax", &get_WindGenTurbineType3IEC_diqmax); + get_map.emplace("WindGenTurbineType3IEC.dipmax", &get_WindGenTurbineType3IEC_dipmax); + get_map.emplace("WindGenTurbineType3IEC.diqmax", &get_WindGenTurbineType3IEC_diqmax); } void WindGenTurbineType3IEC::addClassGetFnsToMap(std::map& get_map) const { WindTurbineType3or4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3IEC.WindAeroLinearIEC", &get_WindGenTurbineType3IEC_WindAeroLinearIEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindContPType3IEC", &get_WindGenTurbineType3IEC_WindContPType3IEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", &get_WindGenTurbineType3IEC_WindContPitchAngleIEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindMechIEC", &get_WindGenTurbineType3IEC_WindMechIEC); + get_map.emplace("WindGenTurbineType3IEC.WindAeroLinearIEC", &get_WindGenTurbineType3IEC_WindAeroLinearIEC); + get_map.emplace("WindGenTurbineType3IEC.WindContPType3IEC", &get_WindGenTurbineType3IEC_WindContPType3IEC); + get_map.emplace("WindGenTurbineType3IEC.WindContPitchAngleIEC", &get_WindGenTurbineType3IEC_WindContPitchAngleIEC); + get_map.emplace("WindGenTurbineType3IEC.WindMechIEC", &get_WindGenTurbineType3IEC_WindMechIEC); } void WindGenTurbineType3IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -276,11 +308,25 @@ void WindGenTurbineType3IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3IEC::declare() { return BaseClassDefiner(WindGenTurbineType3IEC::addConstructToMap, WindGenTurbineType3IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3IEC::addClassAssignFnsToMap, WindGenTurbineType3IEC::debugName); } +std::map WindGenTurbineType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3IEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3IEC.hpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3IEC.hpp index f51005682..d3c7402cb 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3IEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3IEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3aIEC.cpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3aIEC.cpp index e72c76ed4..8056b7497 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3aIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3aIEC.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3aIEC.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3aIEC.tic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3aIEC.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3aIEC::WindGenTurbineType3aIEC() {} WindGenTurbineType3aIEC::~WindGenTurbineType3aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3aIEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3aIEC.kpc", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3aIEC.tic", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3aIEC.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3aIEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3aIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenTurbineType3IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3aIEC_kpc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* WindGenTurbineType3aIEC::debugString() const void WindGenTurbineType3aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3aIEC", &WindGenTurbineType3aIEC_factory); + factory_map.emplace("WindGenTurbineType3aIEC", &WindGenTurbineType3aIEC_factory); } void WindGenTurbineType3aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3aIEC.kpc", &assign_WindGenTurbineType3aIEC_kpc); - assign_map.emplace("cim:WindGenTurbineType3aIEC.tic", &assign_WindGenTurbineType3aIEC_tic); - assign_map.emplace("cim:WindGenTurbineType3aIEC.xs", &assign_WindGenTurbineType3aIEC_xs); + assign_map.emplace("WindGenTurbineType3aIEC.kpc", &assign_WindGenTurbineType3aIEC_kpc); + assign_map.emplace("WindGenTurbineType3aIEC.tic", &assign_WindGenTurbineType3aIEC_tic); + assign_map.emplace("WindGenTurbineType3aIEC.xs", &assign_WindGenTurbineType3aIEC_xs); } void WindGenTurbineType3aIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void WindGenTurbineType3aIEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3aIEC.kpc", &get_WindGenTurbineType3aIEC_kpc); - get_map.emplace("cim:WindGenTurbineType3aIEC.tic", &get_WindGenTurbineType3aIEC_tic); - get_map.emplace("cim:WindGenTurbineType3aIEC.xs", &get_WindGenTurbineType3aIEC_xs); + get_map.emplace("WindGenTurbineType3aIEC.kpc", &get_WindGenTurbineType3aIEC_kpc); + get_map.emplace("WindGenTurbineType3aIEC.tic", &get_WindGenTurbineType3aIEC_tic); + get_map.emplace("WindGenTurbineType3aIEC.xs", &get_WindGenTurbineType3aIEC_xs); } void WindGenTurbineType3aIEC::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void WindGenTurbineType3aIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3aIEC::declare() { return BaseClassDefiner(WindGenTurbineType3aIEC::addConstructToMap, WindGenTurbineType3aIEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3aIEC::addClassAssignFnsToMap, WindGenTurbineType3aIEC::debugName); } +std::map WindGenTurbineType3aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenTurbineType3IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3aIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3aIEC.hpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3aIEC.hpp index 027ac9e1b..328515783 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3aIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenTurbineType3IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3aIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3bIEC.cpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3bIEC.cpp index bd7b7fba3..72cbd0d02 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3bIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3bIEC.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3bIEC.fducw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.mwtcwp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.two", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3bIEC::WindGenTurbineType3bIEC() {} WindGenTurbineType3bIEC::~WindGenTurbineType3bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3bIEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3bIEC.fducw", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.mwtcwp", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.tg", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.two", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3bIEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3bIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenTurbineType3IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3bIEC_fducw(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* WindGenTurbineType3bIEC::debugString() const void WindGenTurbineType3bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3bIEC", &WindGenTurbineType3bIEC_factory); + factory_map.emplace("WindGenTurbineType3bIEC", &WindGenTurbineType3bIEC_factory); } void WindGenTurbineType3bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3bIEC.fducw", &assign_WindGenTurbineType3bIEC_fducw); - assign_map.emplace("cim:WindGenTurbineType3bIEC.mwtcwp", &assign_WindGenTurbineType3bIEC_mwtcwp); - assign_map.emplace("cim:WindGenTurbineType3bIEC.tg", &assign_WindGenTurbineType3bIEC_tg); - assign_map.emplace("cim:WindGenTurbineType3bIEC.two", &assign_WindGenTurbineType3bIEC_two); - assign_map.emplace("cim:WindGenTurbineType3bIEC.xs", &assign_WindGenTurbineType3bIEC_xs); + assign_map.emplace("WindGenTurbineType3bIEC.fducw", &assign_WindGenTurbineType3bIEC_fducw); + assign_map.emplace("WindGenTurbineType3bIEC.mwtcwp", &assign_WindGenTurbineType3bIEC_mwtcwp); + assign_map.emplace("WindGenTurbineType3bIEC.tg", &assign_WindGenTurbineType3bIEC_tg); + assign_map.emplace("WindGenTurbineType3bIEC.two", &assign_WindGenTurbineType3bIEC_two); + assign_map.emplace("WindGenTurbineType3bIEC.xs", &assign_WindGenTurbineType3bIEC_xs); } void WindGenTurbineType3bIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void WindGenTurbineType3bIEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3bIEC.fducw", &get_WindGenTurbineType3bIEC_fducw); - get_map.emplace("cim:WindGenTurbineType3bIEC.mwtcwp", &get_WindGenTurbineType3bIEC_mwtcwp); - get_map.emplace("cim:WindGenTurbineType3bIEC.tg", &get_WindGenTurbineType3bIEC_tg); - get_map.emplace("cim:WindGenTurbineType3bIEC.two", &get_WindGenTurbineType3bIEC_two); - get_map.emplace("cim:WindGenTurbineType3bIEC.xs", &get_WindGenTurbineType3bIEC_xs); + get_map.emplace("WindGenTurbineType3bIEC.fducw", &get_WindGenTurbineType3bIEC_fducw); + get_map.emplace("WindGenTurbineType3bIEC.mwtcwp", &get_WindGenTurbineType3bIEC_mwtcwp); + get_map.emplace("WindGenTurbineType3bIEC.tg", &get_WindGenTurbineType3bIEC_tg); + get_map.emplace("WindGenTurbineType3bIEC.two", &get_WindGenTurbineType3bIEC_two); + get_map.emplace("WindGenTurbineType3bIEC.xs", &get_WindGenTurbineType3bIEC_xs); } void WindGenTurbineType3bIEC::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void WindGenTurbineType3bIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3bIEC::declare() { return BaseClassDefiner(WindGenTurbineType3bIEC::addConstructToMap, WindGenTurbineType3bIEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3bIEC::addClassAssignFnsToMap, WindGenTurbineType3bIEC::debugName); } +std::map WindGenTurbineType3bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenTurbineType3IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3bIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3bIEC.hpp b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3bIEC.hpp index 37a684772..1b188e7bd 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenTurbineType3bIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindGenTurbineType3bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenTurbineType3IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3bIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindGenType4IEC.cpp b/CGMES_2.4.13_18DEC2013/WindGenType4IEC.cpp index 103b066bf..241babd14 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenType4IEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindGenType4IEC.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenType4IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenType4IEC.dipmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.diqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.diqmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenType4IEC::WindGenType4IEC() {} WindGenType4IEC::~WindGenType4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenType4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenType4IEC::getClassNamespaceUrl() const { - { "cim:WindGenType4IEC.dipmax", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.diqmax", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.diqmin", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.tg", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenType4IEC::getPossibleProfilesForClass() const +const std::string& WindGenType4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenType4IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenType4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenType4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenType4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenType4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenType4IEC_dipmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* WindGenType4IEC::debugString() const void WindGenType4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenType4IEC", &WindGenType4IEC_factory); + factory_map.emplace("WindGenType4IEC", &WindGenType4IEC_factory); } void WindGenType4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType4IEC.dipmax", &assign_WindGenType4IEC_dipmax); - assign_map.emplace("cim:WindGenType4IEC.diqmax", &assign_WindGenType4IEC_diqmax); - assign_map.emplace("cim:WindGenType4IEC.diqmin", &assign_WindGenType4IEC_diqmin); - assign_map.emplace("cim:WindGenType4IEC.tg", &assign_WindGenType4IEC_tg); + assign_map.emplace("WindGenType4IEC.dipmax", &assign_WindGenType4IEC_dipmax); + assign_map.emplace("WindGenType4IEC.diqmax", &assign_WindGenType4IEC_diqmax); + assign_map.emplace("WindGenType4IEC.diqmin", &assign_WindGenType4IEC_diqmin); + assign_map.emplace("WindGenType4IEC.tg", &assign_WindGenType4IEC_tg); } void WindGenType4IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void WindGenType4IEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenType4IEC.dipmax", &get_WindGenType4IEC_dipmax); - get_map.emplace("cim:WindGenType4IEC.diqmax", &get_WindGenType4IEC_diqmax); - get_map.emplace("cim:WindGenType4IEC.diqmin", &get_WindGenType4IEC_diqmin); - get_map.emplace("cim:WindGenType4IEC.tg", &get_WindGenType4IEC_tg); + get_map.emplace("WindGenType4IEC.dipmax", &get_WindGenType4IEC_dipmax); + get_map.emplace("WindGenType4IEC.diqmax", &get_WindGenType4IEC_diqmax); + get_map.emplace("WindGenType4IEC.diqmin", &get_WindGenType4IEC_diqmin); + get_map.emplace("WindGenType4IEC.tg", &get_WindGenType4IEC_tg); } void WindGenType4IEC::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void WindGenType4IEC::addEnumGetFnsToMap(std::map& ge WindTurbineType3or4IEC::addEnumGetFnsToMap(get_map); } +bool WindGenType4IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGenType4IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindGenType4IEC::declare() { return BaseClassDefiner(WindGenType4IEC::addConstructToMap, WindGenType4IEC::addPrimitiveAssignFnsToMap, WindGenType4IEC::addClassAssignFnsToMap, WindGenType4IEC::debugName); } +std::map WindGenType4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenType4IEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindGenType4IEC.hpp b/CGMES_2.4.13_18DEC2013/WindGenType4IEC.hpp index f76748389..7692b857f 100644 --- a/CGMES_2.4.13_18DEC2013/WindGenType4IEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindGenType4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenType4IEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindGeneratingUnit.cpp b/CGMES_2.4.13_18DEC2013/WindGeneratingUnit.cpp index d2764afc7..b9e3c8117 100644 --- a/CGMES_2.4.13_18DEC2013/WindGeneratingUnit.cpp +++ b/CGMES_2.4.13_18DEC2013/WindGeneratingUnit.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGeneratingUnit.windGenUnitType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + WindGeneratingUnit::WindGeneratingUnit() {} WindGeneratingUnit::~WindGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGeneratingUnit::getClassNamespaceUrl() const { - { "cim:WindGeneratingUnit.windGenUnitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGeneratingUnit::getPossibleProfilesForClass() const +const std::string& WindGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& WindGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGeneratingUnit_windGenUnitType(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* WindGeneratingUnit::debugString() const void WindGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGeneratingUnit", &WindGeneratingUnit_factory); + factory_map.emplace("WindGeneratingUnit", &WindGeneratingUnit_factory); } void WindGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGeneratingUnit.windGenUnitType", &assign_WindGeneratingUnit_windGenUnitType); + assign_map.emplace("WindGeneratingUnit.windGenUnitType", &assign_WindGeneratingUnit_windGenUnitType); } void WindGeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -102,7 +134,13 @@ void WindGeneratingUnit::addClassGetFnsToMap(std::map& get_map) const { GeneratingUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindGeneratingUnit.windGenUnitType", &get_WindGeneratingUnit_windGenUnitType); + get_map.emplace("WindGeneratingUnit.windGenUnitType", &get_WindGeneratingUnit_windGenUnitType); +} + +bool WindGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindGeneratingUnit::declare() @@ -110,6 +148,14 @@ const BaseClassDefiner WindGeneratingUnit::declare() return BaseClassDefiner(WindGeneratingUnit::addConstructToMap, WindGeneratingUnit::addPrimitiveAssignFnsToMap, WindGeneratingUnit::addClassAssignFnsToMap, WindGeneratingUnit::debugName); } +std::map WindGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGeneratingUnit_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindGeneratingUnit.hpp b/CGMES_2.4.13_18DEC2013/WindGeneratingUnit.hpp index d6f2ffd7f..c69fb48e7 100644 --- a/CGMES_2.4.13_18DEC2013/WindGeneratingUnit.hpp +++ b/CGMES_2.4.13_18DEC2013/WindGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "WindGenUnitKind.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGeneratingUnit_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindMechIEC.cpp b/CGMES_2.4.13_18DEC2013/WindMechIEC.cpp index 358889264..7cf7cdaae 100644 --- a/CGMES_2.4.13_18DEC2013/WindMechIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindMechIEC.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindMechIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindMechIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.WindTurbineType1or2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.cdrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.hgen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.hwtr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.kdrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindMechIEC::WindMechIEC() : WindGenTurbineType3IEC(nullptr), WindTurbineType1or2IEC(nullptr), WindTurbineType4bIEC(nullptr) {} WindMechIEC::~WindMechIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindMechIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindMechIEC::getClassNamespaceUrl() const { - { "cim:WindMechIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.WindTurbineType1or2IEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.cdrt", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.hgen", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.hwtr", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.kdrt", { CGMESProfile::DY, } }, -}; - -std::list -WindMechIEC::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindMechIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindMechIEC::getPossibleProfilesForAttributes() const +const std::list& WindMechIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindMechIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindMechIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindMechIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindMechIEC(BaseClass*, BaseClass*); @@ -226,31 +258,31 @@ const char* WindMechIEC::debugString() const void WindMechIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindMechIEC", &WindMechIEC_factory); + factory_map.emplace("WindMechIEC", &WindMechIEC_factory); } void WindMechIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindMechIEC.cdrt", &assign_WindMechIEC_cdrt); - assign_map.emplace("cim:WindMechIEC.hgen", &assign_WindMechIEC_hgen); - assign_map.emplace("cim:WindMechIEC.hwtr", &assign_WindMechIEC_hwtr); - assign_map.emplace("cim:WindMechIEC.kdrt", &assign_WindMechIEC_kdrt); + assign_map.emplace("WindMechIEC.cdrt", &assign_WindMechIEC_cdrt); + assign_map.emplace("WindMechIEC.hgen", &assign_WindMechIEC_hgen); + assign_map.emplace("WindMechIEC.hwtr", &assign_WindMechIEC_hwtr); + assign_map.emplace("WindMechIEC.kdrt", &assign_WindMechIEC_kdrt); } void WindMechIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindMechIEC.WindGenTurbineType3IEC", &assign_WindMechIEC_WindGenTurbineType3IEC); - assign_map.emplace("cim:WindMechIEC.WindTurbineType1or2IEC", &assign_WindMechIEC_WindTurbineType1or2IEC); - assign_map.emplace("cim:WindMechIEC.WindTurbineType4bIEC", &assign_WindMechIEC_WindTurbineType4bIEC); + assign_map.emplace("WindMechIEC.WindGenTurbineType3IEC", &assign_WindMechIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindMechIEC.WindTurbineType1or2IEC", &assign_WindMechIEC_WindTurbineType1or2IEC); + assign_map.emplace("WindMechIEC.WindTurbineType4bIEC", &assign_WindMechIEC_WindTurbineType4bIEC); } void WindMechIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindMechIEC.cdrt", &get_WindMechIEC_cdrt); - get_map.emplace("cim:WindMechIEC.hgen", &get_WindMechIEC_hgen); - get_map.emplace("cim:WindMechIEC.hwtr", &get_WindMechIEC_hwtr); - get_map.emplace("cim:WindMechIEC.kdrt", &get_WindMechIEC_kdrt); + get_map.emplace("WindMechIEC.cdrt", &get_WindMechIEC_cdrt); + get_map.emplace("WindMechIEC.hgen", &get_WindMechIEC_hgen); + get_map.emplace("WindMechIEC.hwtr", &get_WindMechIEC_hwtr); + get_map.emplace("WindMechIEC.kdrt", &get_WindMechIEC_kdrt); } void WindMechIEC::addClassGetFnsToMap(std::map& get_map) const @@ -263,11 +295,25 @@ void WindMechIEC::addEnumGetFnsToMap(std::map& get_ma IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindMechIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindMechIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindMechIEC::declare() { return BaseClassDefiner(WindMechIEC::addConstructToMap, WindMechIEC::addPrimitiveAssignFnsToMap, WindMechIEC::addClassAssignFnsToMap, WindMechIEC::debugName); } +std::map WindMechIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindMechIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindMechIEC.hpp b/CGMES_2.4.13_18DEC2013/WindMechIEC.hpp index 59019c1ae..5c7e6f3ee 100644 --- a/CGMES_2.4.13_18DEC2013/WindMechIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindMechIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindMechIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindPitchContEmulIEC.cpp b/CGMES_2.4.13_18DEC2013/WindPitchContEmulIEC.cpp index c78632e74..5f607c3fb 100644 --- a/CGMES_2.4.13_18DEC2013/WindPitchContEmulIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindPitchContEmulIEC.cpp @@ -12,42 +12,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPitchContEmulIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPitchContEmulIEC.WindGenTurbineType2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kipce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.komegaaero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kppce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.omegaref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.pimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.pimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPitchContEmulIEC::WindPitchContEmulIEC() : WindGenTurbineType2IEC(nullptr) {} WindPitchContEmulIEC::~WindPitchContEmulIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPitchContEmulIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPitchContEmulIEC::getClassNamespaceUrl() const { - { "cim:WindPitchContEmulIEC.WindGenTurbineType2IEC", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kdroop", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kipce", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.komegaaero", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kppce", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.omegaref", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.pimax", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.pimin", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.t1", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.t2", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.tpe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPitchContEmulIEC::getPossibleProfilesForClass() const +const std::string& WindPitchContEmulIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPitchContEmulIEC::getPossibleProfilesForAttributes() const +const std::list& WindPitchContEmulIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPitchContEmulIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPitchContEmulIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPitchContEmulIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType2IEC_WindPitchContEmulIEC(BaseClass*, BaseClass*); @@ -366,41 +398,41 @@ const char* WindPitchContEmulIEC::debugString() const void WindPitchContEmulIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPitchContEmulIEC", &WindPitchContEmulIEC_factory); + factory_map.emplace("WindPitchContEmulIEC", &WindPitchContEmulIEC_factory); } void WindPitchContEmulIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPitchContEmulIEC.kdroop", &assign_WindPitchContEmulIEC_kdroop); - assign_map.emplace("cim:WindPitchContEmulIEC.kipce", &assign_WindPitchContEmulIEC_kipce); - assign_map.emplace("cim:WindPitchContEmulIEC.komegaaero", &assign_WindPitchContEmulIEC_komegaaero); - assign_map.emplace("cim:WindPitchContEmulIEC.kppce", &assign_WindPitchContEmulIEC_kppce); - assign_map.emplace("cim:WindPitchContEmulIEC.omegaref", &assign_WindPitchContEmulIEC_omegaref); - assign_map.emplace("cim:WindPitchContEmulIEC.pimax", &assign_WindPitchContEmulIEC_pimax); - assign_map.emplace("cim:WindPitchContEmulIEC.pimin", &assign_WindPitchContEmulIEC_pimin); - assign_map.emplace("cim:WindPitchContEmulIEC.t1", &assign_WindPitchContEmulIEC_t1); - assign_map.emplace("cim:WindPitchContEmulIEC.t2", &assign_WindPitchContEmulIEC_t2); - assign_map.emplace("cim:WindPitchContEmulIEC.tpe", &assign_WindPitchContEmulIEC_tpe); + assign_map.emplace("WindPitchContEmulIEC.kdroop", &assign_WindPitchContEmulIEC_kdroop); + assign_map.emplace("WindPitchContEmulIEC.kipce", &assign_WindPitchContEmulIEC_kipce); + assign_map.emplace("WindPitchContEmulIEC.komegaaero", &assign_WindPitchContEmulIEC_komegaaero); + assign_map.emplace("WindPitchContEmulIEC.kppce", &assign_WindPitchContEmulIEC_kppce); + assign_map.emplace("WindPitchContEmulIEC.omegaref", &assign_WindPitchContEmulIEC_omegaref); + assign_map.emplace("WindPitchContEmulIEC.pimax", &assign_WindPitchContEmulIEC_pimax); + assign_map.emplace("WindPitchContEmulIEC.pimin", &assign_WindPitchContEmulIEC_pimin); + assign_map.emplace("WindPitchContEmulIEC.t1", &assign_WindPitchContEmulIEC_t1); + assign_map.emplace("WindPitchContEmulIEC.t2", &assign_WindPitchContEmulIEC_t2); + assign_map.emplace("WindPitchContEmulIEC.tpe", &assign_WindPitchContEmulIEC_tpe); } void WindPitchContEmulIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPitchContEmulIEC.WindGenTurbineType2IEC", &assign_WindPitchContEmulIEC_WindGenTurbineType2IEC); + assign_map.emplace("WindPitchContEmulIEC.WindGenTurbineType2IEC", &assign_WindPitchContEmulIEC_WindGenTurbineType2IEC); } void WindPitchContEmulIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPitchContEmulIEC.kdroop", &get_WindPitchContEmulIEC_kdroop); - get_map.emplace("cim:WindPitchContEmulIEC.kipce", &get_WindPitchContEmulIEC_kipce); - get_map.emplace("cim:WindPitchContEmulIEC.komegaaero", &get_WindPitchContEmulIEC_komegaaero); - get_map.emplace("cim:WindPitchContEmulIEC.kppce", &get_WindPitchContEmulIEC_kppce); - get_map.emplace("cim:WindPitchContEmulIEC.omegaref", &get_WindPitchContEmulIEC_omegaref); - get_map.emplace("cim:WindPitchContEmulIEC.pimax", &get_WindPitchContEmulIEC_pimax); - get_map.emplace("cim:WindPitchContEmulIEC.pimin", &get_WindPitchContEmulIEC_pimin); - get_map.emplace("cim:WindPitchContEmulIEC.t1", &get_WindPitchContEmulIEC_t1); - get_map.emplace("cim:WindPitchContEmulIEC.t2", &get_WindPitchContEmulIEC_t2); - get_map.emplace("cim:WindPitchContEmulIEC.tpe", &get_WindPitchContEmulIEC_tpe); + get_map.emplace("WindPitchContEmulIEC.kdroop", &get_WindPitchContEmulIEC_kdroop); + get_map.emplace("WindPitchContEmulIEC.kipce", &get_WindPitchContEmulIEC_kipce); + get_map.emplace("WindPitchContEmulIEC.komegaaero", &get_WindPitchContEmulIEC_komegaaero); + get_map.emplace("WindPitchContEmulIEC.kppce", &get_WindPitchContEmulIEC_kppce); + get_map.emplace("WindPitchContEmulIEC.omegaref", &get_WindPitchContEmulIEC_omegaref); + get_map.emplace("WindPitchContEmulIEC.pimax", &get_WindPitchContEmulIEC_pimax); + get_map.emplace("WindPitchContEmulIEC.pimin", &get_WindPitchContEmulIEC_pimin); + get_map.emplace("WindPitchContEmulIEC.t1", &get_WindPitchContEmulIEC_t1); + get_map.emplace("WindPitchContEmulIEC.t2", &get_WindPitchContEmulIEC_t2); + get_map.emplace("WindPitchContEmulIEC.tpe", &get_WindPitchContEmulIEC_tpe); } void WindPitchContEmulIEC::addClassGetFnsToMap(std::map& get_map) const @@ -413,11 +445,25 @@ void WindPitchContEmulIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPitchContEmulIEC::declare() { return BaseClassDefiner(WindPitchContEmulIEC::addConstructToMap, WindPitchContEmulIEC::addPrimitiveAssignFnsToMap, WindPitchContEmulIEC::addClassAssignFnsToMap, WindPitchContEmulIEC::debugName); } +std::map WindPitchContEmulIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPitchContEmulIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindPitchContEmulIEC.hpp b/CGMES_2.4.13_18DEC2013/WindPitchContEmulIEC.hpp index dcdefc9bb..a6fccbc9e 100644 --- a/CGMES_2.4.13_18DEC2013/WindPitchContEmulIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindPitchContEmulIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -64,8 +65,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -73,7 +81,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPitchContEmulIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindPlantDynamics.cpp b/CGMES_2.4.13_18DEC2013/WindPlantDynamics.cpp index c89fc1bb8..311a379e3 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantDynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantDynamics.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantDynamics::WindPlantDynamics() : RemoteInputSignal(nullptr) {} WindPlantDynamics::~WindPlantDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantDynamics::getClassNamespaceUrl() const { - { "cim:WindPlantDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:WindPlantDynamics.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantDynamics::getPossibleProfilesForClass() const +const std::string& WindPlantDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantDynamics::getPossibleProfilesForAttributes() const +const std::list& WindPlantDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RemoteInputSignal_WindPlantDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* WindPlantDynamics::debugString() const void WindPlantDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantDynamics", &WindPlantDynamics_factory); + factory_map.emplace("WindPlantDynamics", &WindPlantDynamics_factory); } void WindPlantDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void WindPlantDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantDynamics.RemoteInputSignal", &assign_WindPlantDynamics_RemoteInputSignal); - assign_map.emplace("cim:WindPlantDynamics.WindTurbineType3or4Dynamics", &assign_WindPlantDynamics_WindTurbineType3or4Dynamics); + assign_map.emplace("WindPlantDynamics.RemoteInputSignal", &assign_WindPlantDynamics_RemoteInputSignal); + assign_map.emplace("WindPlantDynamics.WindTurbineType3or4Dynamics", &assign_WindPlantDynamics_WindTurbineType3or4Dynamics); } void WindPlantDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void WindPlantDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantDynamics.RemoteInputSignal", &get_WindPlantDynamics_RemoteInputSignal); + get_map.emplace("WindPlantDynamics.RemoteInputSignal", &get_WindPlantDynamics_RemoteInputSignal); } void WindPlantDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void WindPlantDynamics::addEnumGetFnsToMap(std::map& DynamicsFunctionBlock::addEnumGetFnsToMap(get_map); } +bool WindPlantDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantDynamics::declare() { return BaseClassDefiner(WindPlantDynamics::addConstructToMap, WindPlantDynamics::addPrimitiveAssignFnsToMap, WindPlantDynamics::addClassAssignFnsToMap, WindPlantDynamics::debugName); } +std::map WindPlantDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantDynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindPlantDynamics.hpp b/CGMES_2.4.13_18DEC2013/WindPlantDynamics.hpp index 0b8314fc3..444cfe5c0 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantDynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantDynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindPlantFreqPcontrolIEC.cpp b/CGMES_2.4.13_18DEC2013/WindPlantFreqPcontrolIEC.cpp index f21322dd3..feb127f01 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantFreqPcontrolIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantFreqPcontrolIEC.cpp @@ -13,43 +13,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantFreqPcontrolIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.WindPlantIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dprefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dprefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kiwpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kpwpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.prefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.prefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.tpft", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.tpfv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.twpffilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.twppfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantFreqPcontrolIEC::WindPlantFreqPcontrolIEC() : WindPlantIEC(nullptr) {} WindPlantFreqPcontrolIEC::~WindPlantFreqPcontrolIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantFreqPcontrolIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantFreqPcontrolIEC::getClassNamespaceUrl() const { - { "cim:WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.WindPlantIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dprefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dprefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kiwpp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kpwpp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.prefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.prefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.tpft", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.tpfv", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.twpffilt", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.twppfilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantFreqPcontrolIEC::getPossibleProfilesForClass() const +const std::string& WindPlantFreqPcontrolIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantFreqPcontrolIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantFreqPcontrolIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantFreqPcontrolIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantFreqPcontrolIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantFreqPcontrolIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC(BaseClass*, BaseClass*); @@ -386,42 +418,42 @@ const char* WindPlantFreqPcontrolIEC::debugString() const void WindPlantFreqPcontrolIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantFreqPcontrolIEC", &WindPlantFreqPcontrolIEC_factory); + factory_map.emplace("WindPlantFreqPcontrolIEC", &WindPlantFreqPcontrolIEC_factory); } void WindPlantFreqPcontrolIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmax", &assign_WindPlantFreqPcontrolIEC_dprefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmin", &assign_WindPlantFreqPcontrolIEC_dprefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwpp", &assign_WindPlantFreqPcontrolIEC_kiwpp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kpwpp", &assign_WindPlantFreqPcontrolIEC_kpwpp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmax", &assign_WindPlantFreqPcontrolIEC_prefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmin", &assign_WindPlantFreqPcontrolIEC_prefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.tpft", &assign_WindPlantFreqPcontrolIEC_tpft); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.tpfv", &assign_WindPlantFreqPcontrolIEC_tpfv); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.twpffilt", &assign_WindPlantFreqPcontrolIEC_twpffilt); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.twppfilt", &assign_WindPlantFreqPcontrolIEC_twppfilt); + assign_map.emplace("WindPlantFreqPcontrolIEC.dprefmax", &assign_WindPlantFreqPcontrolIEC_dprefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.dprefmin", &assign_WindPlantFreqPcontrolIEC_dprefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.kiwpp", &assign_WindPlantFreqPcontrolIEC_kiwpp); + assign_map.emplace("WindPlantFreqPcontrolIEC.kpwpp", &assign_WindPlantFreqPcontrolIEC_kpwpp); + assign_map.emplace("WindPlantFreqPcontrolIEC.prefmax", &assign_WindPlantFreqPcontrolIEC_prefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.prefmin", &assign_WindPlantFreqPcontrolIEC_prefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.tpft", &assign_WindPlantFreqPcontrolIEC_tpft); + assign_map.emplace("WindPlantFreqPcontrolIEC.tpfv", &assign_WindPlantFreqPcontrolIEC_tpfv); + assign_map.emplace("WindPlantFreqPcontrolIEC.twpffilt", &assign_WindPlantFreqPcontrolIEC_twpffilt); + assign_map.emplace("WindPlantFreqPcontrolIEC.twppfilt", &assign_WindPlantFreqPcontrolIEC_twppfilt); } void WindPlantFreqPcontrolIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", &assign_WindPlantFreqPcontrolIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.WindPlantIEC", &assign_WindPlantFreqPcontrolIEC_WindPlantIEC); + assign_map.emplace("WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", &assign_WindPlantFreqPcontrolIEC_WindDynamicsLookupTable); + assign_map.emplace("WindPlantFreqPcontrolIEC.WindPlantIEC", &assign_WindPlantFreqPcontrolIEC_WindPlantIEC); } void WindPlantFreqPcontrolIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmax", &get_WindPlantFreqPcontrolIEC_dprefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmin", &get_WindPlantFreqPcontrolIEC_dprefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwpp", &get_WindPlantFreqPcontrolIEC_kiwpp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kpwpp", &get_WindPlantFreqPcontrolIEC_kpwpp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmax", &get_WindPlantFreqPcontrolIEC_prefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmin", &get_WindPlantFreqPcontrolIEC_prefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.tpft", &get_WindPlantFreqPcontrolIEC_tpft); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.tpfv", &get_WindPlantFreqPcontrolIEC_tpfv); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.twpffilt", &get_WindPlantFreqPcontrolIEC_twpffilt); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.twppfilt", &get_WindPlantFreqPcontrolIEC_twppfilt); + get_map.emplace("WindPlantFreqPcontrolIEC.dprefmax", &get_WindPlantFreqPcontrolIEC_dprefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.dprefmin", &get_WindPlantFreqPcontrolIEC_dprefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.kiwpp", &get_WindPlantFreqPcontrolIEC_kiwpp); + get_map.emplace("WindPlantFreqPcontrolIEC.kpwpp", &get_WindPlantFreqPcontrolIEC_kpwpp); + get_map.emplace("WindPlantFreqPcontrolIEC.prefmax", &get_WindPlantFreqPcontrolIEC_prefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.prefmin", &get_WindPlantFreqPcontrolIEC_prefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.tpft", &get_WindPlantFreqPcontrolIEC_tpft); + get_map.emplace("WindPlantFreqPcontrolIEC.tpfv", &get_WindPlantFreqPcontrolIEC_tpfv); + get_map.emplace("WindPlantFreqPcontrolIEC.twpffilt", &get_WindPlantFreqPcontrolIEC_twpffilt); + get_map.emplace("WindPlantFreqPcontrolIEC.twppfilt", &get_WindPlantFreqPcontrolIEC_twppfilt); } void WindPlantFreqPcontrolIEC::addClassGetFnsToMap(std::map& get_map) const @@ -434,11 +466,25 @@ void WindPlantFreqPcontrolIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantFreqPcontrolIEC::declare() { return BaseClassDefiner(WindPlantFreqPcontrolIEC::addConstructToMap, WindPlantFreqPcontrolIEC::addPrimitiveAssignFnsToMap, WindPlantFreqPcontrolIEC::addClassAssignFnsToMap, WindPlantFreqPcontrolIEC::debugName); } +std::map WindPlantFreqPcontrolIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantFreqPcontrolIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindPlantFreqPcontrolIEC.hpp b/CGMES_2.4.13_18DEC2013/WindPlantFreqPcontrolIEC.hpp index 069d958c9..623773754 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantFreqPcontrolIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantFreqPcontrolIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -68,8 +69,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -77,7 +85,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantFreqPcontrolIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindPlantIEC.cpp b/CGMES_2.4.13_18DEC2013/WindPlantIEC.cpp index b455a5284..ad2bfe277 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantIEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantIEC.WindPlantFreqPcontrolIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantIEC.WindPlantReactiveControlIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantIEC::WindPlantIEC() : WindPlantFreqPcontrolIEC(nullptr), WindPlantReactiveControlIEC(nullptr) {} WindPlantIEC::~WindPlantIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantIEC::getClassNamespaceUrl() const { - { "cim:WindPlantIEC.WindPlantFreqPcontrolIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantIEC.WindPlantReactiveControlIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantIEC::getPossibleProfilesForClass() const +const std::string& WindPlantIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindPlantDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPlantFreqPcontrolIEC_WindPlantIEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindPlantIEC::debugString() const void WindPlantIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantIEC", &WindPlantIEC_factory); + factory_map.emplace("WindPlantIEC", &WindPlantIEC_factory); } void WindPlantIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindPlantIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantIEC.WindPlantFreqPcontrolIEC", &assign_WindPlantIEC_WindPlantFreqPcontrolIEC); - assign_map.emplace("cim:WindPlantIEC.WindPlantReactiveControlIEC", &assign_WindPlantIEC_WindPlantReactiveControlIEC); + assign_map.emplace("WindPlantIEC.WindPlantFreqPcontrolIEC", &assign_WindPlantIEC_WindPlantFreqPcontrolIEC); + assign_map.emplace("WindPlantIEC.WindPlantReactiveControlIEC", &assign_WindPlantIEC_WindPlantReactiveControlIEC); } void WindPlantIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindPlantIEC::addPrimitiveGetFnsToMap(std::map& void WindPlantIEC::addClassGetFnsToMap(std::map& get_map) const { WindPlantDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantIEC.WindPlantFreqPcontrolIEC", &get_WindPlantIEC_WindPlantFreqPcontrolIEC); - get_map.emplace("cim:WindPlantIEC.WindPlantReactiveControlIEC", &get_WindPlantIEC_WindPlantReactiveControlIEC); + get_map.emplace("WindPlantIEC.WindPlantFreqPcontrolIEC", &get_WindPlantIEC_WindPlantFreqPcontrolIEC); + get_map.emplace("WindPlantIEC.WindPlantReactiveControlIEC", &get_WindPlantIEC_WindPlantReactiveControlIEC); } void WindPlantIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindPlantIEC::addEnumGetFnsToMap(std::map& get_m WindPlantDynamics::addEnumGetFnsToMap(get_map); } +bool WindPlantIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantIEC::declare() { return BaseClassDefiner(WindPlantIEC::addConstructToMap, WindPlantIEC::addPrimitiveAssignFnsToMap, WindPlantIEC::addClassAssignFnsToMap, WindPlantIEC::debugName); } +std::map WindPlantIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindPlantDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindPlantIEC.hpp b/CGMES_2.4.13_18DEC2013/WindPlantIEC.hpp index 8f277cafa..6809f8d09 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindPlantDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindPlantReactiveControlIEC.cpp b/CGMES_2.4.13_18DEC2013/WindPlantReactiveControlIEC.cpp index 8135d692c..05730f33a 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantReactiveControlIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantReactiveControlIEC.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantReactiveControlIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantReactiveControlIEC.WindPlantIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kiwpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kpwpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kwpqu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.mwppf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.mwpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twppfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twpqfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twpufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.txft", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.txfv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.uwpqdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.xrefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.xrefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantReactiveControlIEC::WindPlantReactiveControlIEC() : WindPlantIEC(nullptr) {} WindPlantReactiveControlIEC::~WindPlantReactiveControlIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantReactiveControlIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantReactiveControlIEC::getClassNamespaceUrl() const { - { "cim:WindPlantReactiveControlIEC.WindPlantIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kiwpx", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kpwpx", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kwpqu", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.mwppf", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.mwpu", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twppfilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twpqfilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twpufilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.txft", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.txfv", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.uwpqdip", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.xrefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.xrefmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantReactiveControlIEC::getPossibleProfilesForClass() const +const std::string& WindPlantReactiveControlIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantReactiveControlIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantReactiveControlIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantReactiveControlIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantReactiveControlIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantReactiveControlIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPlantIEC_WindPlantReactiveControlIEC(BaseClass*, BaseClass*); @@ -456,47 +488,47 @@ const char* WindPlantReactiveControlIEC::debugString() const void WindPlantReactiveControlIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantReactiveControlIEC", &WindPlantReactiveControlIEC_factory); + factory_map.emplace("WindPlantReactiveControlIEC", &WindPlantReactiveControlIEC_factory); } void WindPlantReactiveControlIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantReactiveControlIEC.kiwpx", &assign_WindPlantReactiveControlIEC_kiwpx); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kpwpx", &assign_WindPlantReactiveControlIEC_kpwpx); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kwpqu", &assign_WindPlantReactiveControlIEC_kwpqu); - assign_map.emplace("cim:WindPlantReactiveControlIEC.mwppf", &assign_WindPlantReactiveControlIEC_mwppf); - assign_map.emplace("cim:WindPlantReactiveControlIEC.mwpu", &assign_WindPlantReactiveControlIEC_mwpu); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twppfilt", &assign_WindPlantReactiveControlIEC_twppfilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twpqfilt", &assign_WindPlantReactiveControlIEC_twpqfilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twpufilt", &assign_WindPlantReactiveControlIEC_twpufilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.txft", &assign_WindPlantReactiveControlIEC_txft); - assign_map.emplace("cim:WindPlantReactiveControlIEC.txfv", &assign_WindPlantReactiveControlIEC_txfv); - assign_map.emplace("cim:WindPlantReactiveControlIEC.uwpqdip", &assign_WindPlantReactiveControlIEC_uwpqdip); - assign_map.emplace("cim:WindPlantReactiveControlIEC.xrefmax", &assign_WindPlantReactiveControlIEC_xrefmax); - assign_map.emplace("cim:WindPlantReactiveControlIEC.xrefmin", &assign_WindPlantReactiveControlIEC_xrefmin); + assign_map.emplace("WindPlantReactiveControlIEC.kiwpx", &assign_WindPlantReactiveControlIEC_kiwpx); + assign_map.emplace("WindPlantReactiveControlIEC.kpwpx", &assign_WindPlantReactiveControlIEC_kpwpx); + assign_map.emplace("WindPlantReactiveControlIEC.kwpqu", &assign_WindPlantReactiveControlIEC_kwpqu); + assign_map.emplace("WindPlantReactiveControlIEC.mwppf", &assign_WindPlantReactiveControlIEC_mwppf); + assign_map.emplace("WindPlantReactiveControlIEC.mwpu", &assign_WindPlantReactiveControlIEC_mwpu); + assign_map.emplace("WindPlantReactiveControlIEC.twppfilt", &assign_WindPlantReactiveControlIEC_twppfilt); + assign_map.emplace("WindPlantReactiveControlIEC.twpqfilt", &assign_WindPlantReactiveControlIEC_twpqfilt); + assign_map.emplace("WindPlantReactiveControlIEC.twpufilt", &assign_WindPlantReactiveControlIEC_twpufilt); + assign_map.emplace("WindPlantReactiveControlIEC.txft", &assign_WindPlantReactiveControlIEC_txft); + assign_map.emplace("WindPlantReactiveControlIEC.txfv", &assign_WindPlantReactiveControlIEC_txfv); + assign_map.emplace("WindPlantReactiveControlIEC.uwpqdip", &assign_WindPlantReactiveControlIEC_uwpqdip); + assign_map.emplace("WindPlantReactiveControlIEC.xrefmax", &assign_WindPlantReactiveControlIEC_xrefmax); + assign_map.emplace("WindPlantReactiveControlIEC.xrefmin", &assign_WindPlantReactiveControlIEC_xrefmin); } void WindPlantReactiveControlIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantReactiveControlIEC.WindPlantIEC", &assign_WindPlantReactiveControlIEC_WindPlantIEC); + assign_map.emplace("WindPlantReactiveControlIEC.WindPlantIEC", &assign_WindPlantReactiveControlIEC_WindPlantIEC); } void WindPlantReactiveControlIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantReactiveControlIEC.kiwpx", &get_WindPlantReactiveControlIEC_kiwpx); - get_map.emplace("cim:WindPlantReactiveControlIEC.kpwpx", &get_WindPlantReactiveControlIEC_kpwpx); - get_map.emplace("cim:WindPlantReactiveControlIEC.kwpqu", &get_WindPlantReactiveControlIEC_kwpqu); - get_map.emplace("cim:WindPlantReactiveControlIEC.mwppf", &get_WindPlantReactiveControlIEC_mwppf); - get_map.emplace("cim:WindPlantReactiveControlIEC.mwpu", &get_WindPlantReactiveControlIEC_mwpu); - get_map.emplace("cim:WindPlantReactiveControlIEC.twppfilt", &get_WindPlantReactiveControlIEC_twppfilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.twpqfilt", &get_WindPlantReactiveControlIEC_twpqfilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.twpufilt", &get_WindPlantReactiveControlIEC_twpufilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.txft", &get_WindPlantReactiveControlIEC_txft); - get_map.emplace("cim:WindPlantReactiveControlIEC.txfv", &get_WindPlantReactiveControlIEC_txfv); - get_map.emplace("cim:WindPlantReactiveControlIEC.uwpqdip", &get_WindPlantReactiveControlIEC_uwpqdip); - get_map.emplace("cim:WindPlantReactiveControlIEC.xrefmax", &get_WindPlantReactiveControlIEC_xrefmax); - get_map.emplace("cim:WindPlantReactiveControlIEC.xrefmin", &get_WindPlantReactiveControlIEC_xrefmin); + get_map.emplace("WindPlantReactiveControlIEC.kiwpx", &get_WindPlantReactiveControlIEC_kiwpx); + get_map.emplace("WindPlantReactiveControlIEC.kpwpx", &get_WindPlantReactiveControlIEC_kpwpx); + get_map.emplace("WindPlantReactiveControlIEC.kwpqu", &get_WindPlantReactiveControlIEC_kwpqu); + get_map.emplace("WindPlantReactiveControlIEC.mwppf", &get_WindPlantReactiveControlIEC_mwppf); + get_map.emplace("WindPlantReactiveControlIEC.mwpu", &get_WindPlantReactiveControlIEC_mwpu); + get_map.emplace("WindPlantReactiveControlIEC.twppfilt", &get_WindPlantReactiveControlIEC_twppfilt); + get_map.emplace("WindPlantReactiveControlIEC.twpqfilt", &get_WindPlantReactiveControlIEC_twpqfilt); + get_map.emplace("WindPlantReactiveControlIEC.twpufilt", &get_WindPlantReactiveControlIEC_twpufilt); + get_map.emplace("WindPlantReactiveControlIEC.txft", &get_WindPlantReactiveControlIEC_txft); + get_map.emplace("WindPlantReactiveControlIEC.txfv", &get_WindPlantReactiveControlIEC_txfv); + get_map.emplace("WindPlantReactiveControlIEC.uwpqdip", &get_WindPlantReactiveControlIEC_uwpqdip); + get_map.emplace("WindPlantReactiveControlIEC.xrefmax", &get_WindPlantReactiveControlIEC_xrefmax); + get_map.emplace("WindPlantReactiveControlIEC.xrefmin", &get_WindPlantReactiveControlIEC_xrefmin); } void WindPlantReactiveControlIEC::addClassGetFnsToMap(std::map& get_map) const @@ -509,11 +541,25 @@ void WindPlantReactiveControlIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantReactiveControlIEC::declare() { return BaseClassDefiner(WindPlantReactiveControlIEC::addConstructToMap, WindPlantReactiveControlIEC::addPrimitiveAssignFnsToMap, WindPlantReactiveControlIEC::addClassAssignFnsToMap, WindPlantReactiveControlIEC::debugName); } +std::map WindPlantReactiveControlIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantReactiveControlIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindPlantReactiveControlIEC.hpp b/CGMES_2.4.13_18DEC2013/WindPlantReactiveControlIEC.hpp index fdcfe8416..882f6e8ad 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantReactiveControlIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantReactiveControlIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantReactiveControlIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindPlantUserDefined.cpp b/CGMES_2.4.13_18DEC2013/WindPlantUserDefined.cpp index 549a06449..d1ad6fadf 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantUserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantUserDefined::WindPlantUserDefined() {} WindPlantUserDefined::~WindPlantUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantUserDefined::getClassNamespaceUrl() const { - { "cim:WindPlantUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindPlantUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantUserDefined::getPossibleProfilesForClass() const +const std::string& WindPlantUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantUserDefined::getPossibleProfilesForAttributes() const +const std::list& WindPlantUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindPlantDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindPlantUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindPlantUserDefined::debugString() const void WindPlantUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantUserDefined", &WindPlantUserDefined_factory); + factory_map.emplace("WindPlantUserDefined", &WindPlantUserDefined_factory); } void WindPlantUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantUserDefined.proprietary", &assign_WindPlantUserDefined_proprietary); + assign_map.emplace("WindPlantUserDefined.proprietary", &assign_WindPlantUserDefined_proprietary); } void WindPlantUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantUserDefined.ProprietaryParameterDynamics", &assign_WindPlantUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindPlantUserDefined.ProprietaryParameterDynamics", &assign_WindPlantUserDefined_ProprietaryParameterDynamics); } void WindPlantUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindPlantDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantUserDefined.proprietary", &get_WindPlantUserDefined_proprietary); + get_map.emplace("WindPlantUserDefined.proprietary", &get_WindPlantUserDefined_proprietary); } void WindPlantUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindPlantUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantUserDefined::declare() { return BaseClassDefiner(WindPlantUserDefined::addConstructToMap, WindPlantUserDefined::addPrimitiveAssignFnsToMap, WindPlantUserDefined::addClassAssignFnsToMap, WindPlantUserDefined::debugName); } +std::map WindPlantUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindPlantDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantUserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindPlantUserDefined.hpp b/CGMES_2.4.13_18DEC2013/WindPlantUserDefined.hpp index d64898dfb..bdf208b9e 100644 --- a/CGMES_2.4.13_18DEC2013/WindPlantUserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/WindPlantUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindPlantDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantUserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindProtectionIEC.cpp b/CGMES_2.4.13_18DEC2013/WindProtectionIEC.cpp index b9bcdc44e..e4f39300f 100644 --- a/CGMES_2.4.13_18DEC2013/WindProtectionIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindProtectionIEC.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindProtectionIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindProtectionIEC.WindTurbineType1or2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.fover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.funder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tfover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tfunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tuover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tuunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.uover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.uunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindProtectionIEC::WindProtectionIEC() : WindTurbineType1or2IEC(nullptr), WindTurbineType3or4IEC(nullptr) {} WindProtectionIEC::~WindProtectionIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindProtectionIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindProtectionIEC::getClassNamespaceUrl() const { - { "cim:WindProtectionIEC.WindTurbineType1or2IEC", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.fover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.funder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tfover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tfunder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tuover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tuunder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.uover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.uunder", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindProtectionIEC::getPossibleProfilesForClass() const +const std::string& WindProtectionIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindProtectionIEC::getPossibleProfilesForAttributes() const +const std::list& WindProtectionIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindProtectionIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindProtectionIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindProtectionIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType1or2IEC_WindProtectionIEC(BaseClass*, BaseClass*); @@ -326,38 +358,38 @@ const char* WindProtectionIEC::debugString() const void WindProtectionIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindProtectionIEC", &WindProtectionIEC_factory); + factory_map.emplace("WindProtectionIEC", &WindProtectionIEC_factory); } void WindProtectionIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindProtectionIEC.fover", &assign_WindProtectionIEC_fover); - assign_map.emplace("cim:WindProtectionIEC.funder", &assign_WindProtectionIEC_funder); - assign_map.emplace("cim:WindProtectionIEC.tfover", &assign_WindProtectionIEC_tfover); - assign_map.emplace("cim:WindProtectionIEC.tfunder", &assign_WindProtectionIEC_tfunder); - assign_map.emplace("cim:WindProtectionIEC.tuover", &assign_WindProtectionIEC_tuover); - assign_map.emplace("cim:WindProtectionIEC.tuunder", &assign_WindProtectionIEC_tuunder); - assign_map.emplace("cim:WindProtectionIEC.uover", &assign_WindProtectionIEC_uover); - assign_map.emplace("cim:WindProtectionIEC.uunder", &assign_WindProtectionIEC_uunder); + assign_map.emplace("WindProtectionIEC.fover", &assign_WindProtectionIEC_fover); + assign_map.emplace("WindProtectionIEC.funder", &assign_WindProtectionIEC_funder); + assign_map.emplace("WindProtectionIEC.tfover", &assign_WindProtectionIEC_tfover); + assign_map.emplace("WindProtectionIEC.tfunder", &assign_WindProtectionIEC_tfunder); + assign_map.emplace("WindProtectionIEC.tuover", &assign_WindProtectionIEC_tuover); + assign_map.emplace("WindProtectionIEC.tuunder", &assign_WindProtectionIEC_tuunder); + assign_map.emplace("WindProtectionIEC.uover", &assign_WindProtectionIEC_uover); + assign_map.emplace("WindProtectionIEC.uunder", &assign_WindProtectionIEC_uunder); } void WindProtectionIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindProtectionIEC.WindTurbineType1or2IEC", &assign_WindProtectionIEC_WindTurbineType1or2IEC); - assign_map.emplace("cim:WindProtectionIEC.WindTurbineType3or4IEC", &assign_WindProtectionIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindProtectionIEC.WindTurbineType1or2IEC", &assign_WindProtectionIEC_WindTurbineType1or2IEC); + assign_map.emplace("WindProtectionIEC.WindTurbineType3or4IEC", &assign_WindProtectionIEC_WindTurbineType3or4IEC); } void WindProtectionIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindProtectionIEC.fover", &get_WindProtectionIEC_fover); - get_map.emplace("cim:WindProtectionIEC.funder", &get_WindProtectionIEC_funder); - get_map.emplace("cim:WindProtectionIEC.tfover", &get_WindProtectionIEC_tfover); - get_map.emplace("cim:WindProtectionIEC.tfunder", &get_WindProtectionIEC_tfunder); - get_map.emplace("cim:WindProtectionIEC.tuover", &get_WindProtectionIEC_tuover); - get_map.emplace("cim:WindProtectionIEC.tuunder", &get_WindProtectionIEC_tuunder); - get_map.emplace("cim:WindProtectionIEC.uover", &get_WindProtectionIEC_uover); - get_map.emplace("cim:WindProtectionIEC.uunder", &get_WindProtectionIEC_uunder); + get_map.emplace("WindProtectionIEC.fover", &get_WindProtectionIEC_fover); + get_map.emplace("WindProtectionIEC.funder", &get_WindProtectionIEC_funder); + get_map.emplace("WindProtectionIEC.tfover", &get_WindProtectionIEC_tfover); + get_map.emplace("WindProtectionIEC.tfunder", &get_WindProtectionIEC_tfunder); + get_map.emplace("WindProtectionIEC.tuover", &get_WindProtectionIEC_tuover); + get_map.emplace("WindProtectionIEC.tuunder", &get_WindProtectionIEC_tuunder); + get_map.emplace("WindProtectionIEC.uover", &get_WindProtectionIEC_uover); + get_map.emplace("WindProtectionIEC.uunder", &get_WindProtectionIEC_uunder); } void WindProtectionIEC::addClassGetFnsToMap(std::map& get_map) const @@ -370,11 +402,25 @@ void WindProtectionIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindProtectionIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindProtectionIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindProtectionIEC::declare() { return BaseClassDefiner(WindProtectionIEC::addConstructToMap, WindProtectionIEC::addPrimitiveAssignFnsToMap, WindProtectionIEC::addClassAssignFnsToMap, WindProtectionIEC::debugName); } +std::map WindProtectionIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindProtectionIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindProtectionIEC.hpp b/CGMES_2.4.13_18DEC2013/WindProtectionIEC.hpp index 38c2e8b1a..0a10bbe49 100644 --- a/CGMES_2.4.13_18DEC2013/WindProtectionIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindProtectionIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindProtectionIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType1or2Dynamics.cpp b/CGMES_2.4.13_18DEC2013/WindTurbineType1or2Dynamics.cpp index 2d438018b..289d480e4 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType1or2Dynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType1or2Dynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType1or2Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType1or2Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType1or2Dynamics::WindTurbineType1or2Dynamics() : AsynchronousMachineDynamics(nullptr), RemoteInputSignal(nullptr) {} WindTurbineType1or2Dynamics::~WindTurbineType1or2Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType1or2Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType1or2Dynamics::getClassNamespaceUrl() const { - { "cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:WindTurbineType1or2Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType1or2Dynamics::getPossibleProfilesForClass() const +const std::string& WindTurbineType1or2Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType1or2Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType1or2Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType1or2Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType1or2Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType1or2Dynamics::debugString() const void WindTurbineType1or2Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType1or2Dynamics", &WindTurbineType1or2Dynamics_factory); + factory_map.emplace("WindTurbineType1or2Dynamics", &WindTurbineType1or2Dynamics_factory); } void WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void WindTurbineType1or2Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &assign_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:WindTurbineType1or2Dynamics.RemoteInputSignal", &assign_WindTurbineType1or2Dynamics_RemoteInputSignal); + assign_map.emplace("WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &assign_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); + assign_map.emplace("WindTurbineType1or2Dynamics.RemoteInputSignal", &assign_WindTurbineType1or2Dynamics_RemoteInputSignal); } void WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &get_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:WindTurbineType1or2Dynamics.RemoteInputSignal", &get_WindTurbineType1or2Dynamics_RemoteInputSignal); + get_map.emplace("WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &get_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); + get_map.emplace("WindTurbineType1or2Dynamics.RemoteInputSignal", &get_WindTurbineType1or2Dynamics_RemoteInputSignal); } void WindTurbineType1or2Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType1or2Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType1or2Dynamics::declare() { return BaseClassDefiner(WindTurbineType1or2Dynamics::addConstructToMap, WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap, WindTurbineType1or2Dynamics::addClassAssignFnsToMap, WindTurbineType1or2Dynamics::debugName); } +std::map WindTurbineType1or2Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType1or2Dynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType1or2Dynamics.hpp b/CGMES_2.4.13_18DEC2013/WindTurbineType1or2Dynamics.hpp index 9cd8ce493..993bd2144 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType1or2Dynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType1or2Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType1or2Dynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType1or2IEC.cpp b/CGMES_2.4.13_18DEC2013/WindTurbineType1or2IEC.cpp index 251c07766..450f079b6 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType1or2IEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType1or2IEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType1or2IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType1or2IEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType1or2IEC.WindProtectionIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType1or2IEC::WindTurbineType1or2IEC() : WindMechIEC(nullptr), WindProtectionIEC(nullptr) {} WindTurbineType1or2IEC::~WindTurbineType1or2IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType1or2IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType1or2IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType1or2IEC.WindMechIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType1or2IEC.WindProtectionIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType1or2IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType1or2IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType1or2IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType1or2IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType1or2IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType1or2IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType1or2IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindMechIEC_WindTurbineType1or2IEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType1or2IEC::debugString() const void WindTurbineType1or2IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType1or2IEC", &WindTurbineType1or2IEC_factory); + factory_map.emplace("WindTurbineType1or2IEC", &WindTurbineType1or2IEC_factory); } void WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType1or2IEC.WindMechIEC", &assign_WindTurbineType1or2IEC_WindMechIEC); - assign_map.emplace("cim:WindTurbineType1or2IEC.WindProtectionIEC", &assign_WindTurbineType1or2IEC_WindProtectionIEC); + assign_map.emplace("WindTurbineType1or2IEC.WindMechIEC", &assign_WindTurbineType1or2IEC_WindMechIEC); + assign_map.emplace("WindTurbineType1or2IEC.WindProtectionIEC", &assign_WindTurbineType1or2IEC_WindProtectionIEC); } void WindTurbineType1or2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType1or2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2Dynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType1or2IEC.WindMechIEC", &get_WindTurbineType1or2IEC_WindMechIEC); - get_map.emplace("cim:WindTurbineType1or2IEC.WindProtectionIEC", &get_WindTurbineType1or2IEC_WindProtectionIEC); + get_map.emplace("WindTurbineType1or2IEC.WindMechIEC", &get_WindTurbineType1or2IEC_WindMechIEC); + get_map.emplace("WindTurbineType1or2IEC.WindProtectionIEC", &get_WindTurbineType1or2IEC_WindProtectionIEC); } void WindTurbineType1or2IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType1or2IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType1or2IEC::declare() { return BaseClassDefiner(WindTurbineType1or2IEC::addConstructToMap, WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap, WindTurbineType1or2IEC::addClassAssignFnsToMap, WindTurbineType1or2IEC::debugName); } +std::map WindTurbineType1or2IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType1or2IEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType1or2IEC.hpp b/CGMES_2.4.13_18DEC2013/WindTurbineType1or2IEC.hpp index 909b188a3..3ca0b2b85 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType1or2IEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType1or2IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType1or2IEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType3or4Dynamics.cpp b/CGMES_2.4.13_18DEC2013/WindTurbineType3or4Dynamics.cpp index 921087b71..ca22748d2 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType3or4Dynamics.cpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType3or4Dynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3or4Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3or4Dynamics.EnergySource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4Dynamics.WindPlantDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3or4Dynamics::WindTurbineType3or4Dynamics() : EnergySource(nullptr), RemoteInputSignal(nullptr), WindPlantDynamics(nullptr) {} WindTurbineType3or4Dynamics::~WindTurbineType3or4Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3or4Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3or4Dynamics::getClassNamespaceUrl() const { - { "cim:WindTurbineType3or4Dynamics.EnergySource", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4Dynamics.WindPlantDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3or4Dynamics::getPossibleProfilesForClass() const +const std::string& WindTurbineType3or4Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3or4Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3or4Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3or4Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3or4Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySource_WindTurbineType3or4Dynamics(BaseClass*, BaseClass*); @@ -145,7 +177,7 @@ const char* WindTurbineType3or4Dynamics::debugString() const void WindTurbineType3or4Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3or4Dynamics", &WindTurbineType3or4Dynamics_factory); + factory_map.emplace("WindTurbineType3or4Dynamics", &WindTurbineType3or4Dynamics_factory); } void WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void WindTurbineType3or4Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3or4Dynamics.EnergySource", &assign_WindTurbineType3or4Dynamics_EnergySource); - assign_map.emplace("cim:WindTurbineType3or4Dynamics.RemoteInputSignal", &assign_WindTurbineType3or4Dynamics_RemoteInputSignal); - assign_map.emplace("cim:WindTurbineType3or4Dynamics.WindPlantDynamics", &assign_WindTurbineType3or4Dynamics_WindPlantDynamics); + assign_map.emplace("WindTurbineType3or4Dynamics.EnergySource", &assign_WindTurbineType3or4Dynamics_EnergySource); + assign_map.emplace("WindTurbineType3or4Dynamics.RemoteInputSignal", &assign_WindTurbineType3or4Dynamics_RemoteInputSignal); + assign_map.emplace("WindTurbineType3or4Dynamics.WindPlantDynamics", &assign_WindTurbineType3or4Dynamics_WindPlantDynamics); } void WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -167,9 +199,9 @@ void WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3or4Dynamics.EnergySource", &get_WindTurbineType3or4Dynamics_EnergySource); - get_map.emplace("cim:WindTurbineType3or4Dynamics.RemoteInputSignal", &get_WindTurbineType3or4Dynamics_RemoteInputSignal); - get_map.emplace("cim:WindTurbineType3or4Dynamics.WindPlantDynamics", &get_WindTurbineType3or4Dynamics_WindPlantDynamics); + get_map.emplace("WindTurbineType3or4Dynamics.EnergySource", &get_WindTurbineType3or4Dynamics_EnergySource); + get_map.emplace("WindTurbineType3or4Dynamics.RemoteInputSignal", &get_WindTurbineType3or4Dynamics_RemoteInputSignal); + get_map.emplace("WindTurbineType3or4Dynamics.WindPlantDynamics", &get_WindTurbineType3or4Dynamics_WindPlantDynamics); } void WindTurbineType3or4Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -177,11 +209,25 @@ void WindTurbineType3or4Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3or4Dynamics::declare() { return BaseClassDefiner(WindTurbineType3or4Dynamics::addConstructToMap, WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap, WindTurbineType3or4Dynamics::addClassAssignFnsToMap, WindTurbineType3or4Dynamics::debugName); } +std::map WindTurbineType3or4Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3or4Dynamics_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType3or4Dynamics.hpp b/CGMES_2.4.13_18DEC2013/WindTurbineType3or4Dynamics.hpp index 9c123fe1d..f8ec8e372 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType3or4Dynamics.hpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType3or4Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3or4Dynamics_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType3or4IEC.cpp b/CGMES_2.4.13_18DEC2013/WindTurbineType3or4IEC.cpp index 7dd415768..f3afce157 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType3or4IEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType3or4IEC.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3or4IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3or4IEC.WIndContQIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindContCurrLimIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindProtectionIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3or4IEC::WindTurbineType3or4IEC() : WIndContQIEC(nullptr), WindContCurrLimIEC(nullptr), WindProtectionIEC(nullptr) {} WindTurbineType3or4IEC::~WindTurbineType3or4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3or4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3or4IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType3or4IEC.WIndContQIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindContCurrLimIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindProtectionIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3or4IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType3or4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3or4IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3or4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3or4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3or4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3or4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContQIEC_WindTurbineType3or4IEC(BaseClass*, BaseClass*); @@ -145,7 +177,7 @@ const char* WindTurbineType3or4IEC::debugString() const void WindTurbineType3or4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3or4IEC", &WindTurbineType3or4IEC_factory); + factory_map.emplace("WindTurbineType3or4IEC", &WindTurbineType3or4IEC_factory); } void WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3or4IEC.WIndContQIEC", &assign_WindTurbineType3or4IEC_WIndContQIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindContCurrLimIEC", &assign_WindTurbineType3or4IEC_WindContCurrLimIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindProtectionIEC", &assign_WindTurbineType3or4IEC_WindProtectionIEC); + assign_map.emplace("WindTurbineType3or4IEC.WIndContQIEC", &assign_WindTurbineType3or4IEC_WIndContQIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindContCurrLimIEC", &assign_WindTurbineType3or4IEC_WindContCurrLimIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindProtectionIEC", &assign_WindTurbineType3or4IEC_WindProtectionIEC); } void WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -167,9 +199,9 @@ void WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4Dynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3or4IEC.WIndContQIEC", &get_WindTurbineType3or4IEC_WIndContQIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindContCurrLimIEC", &get_WindTurbineType3or4IEC_WindContCurrLimIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindProtectionIEC", &get_WindTurbineType3or4IEC_WindProtectionIEC); + get_map.emplace("WindTurbineType3or4IEC.WIndContQIEC", &get_WindTurbineType3or4IEC_WIndContQIEC); + get_map.emplace("WindTurbineType3or4IEC.WindContCurrLimIEC", &get_WindTurbineType3or4IEC_WindContCurrLimIEC); + get_map.emplace("WindTurbineType3or4IEC.WindProtectionIEC", &get_WindTurbineType3or4IEC_WindProtectionIEC); } void WindTurbineType3or4IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -177,11 +209,25 @@ void WindTurbineType3or4IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3or4IEC::declare() { return BaseClassDefiner(WindTurbineType3or4IEC::addConstructToMap, WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap, WindTurbineType3or4IEC::addClassAssignFnsToMap, WindTurbineType3or4IEC::debugName); } +std::map WindTurbineType3or4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3or4IEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType3or4IEC.hpp b/CGMES_2.4.13_18DEC2013/WindTurbineType3or4IEC.hpp index 8246ead01..38ece5191 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType3or4IEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType3or4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3or4IEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType4aIEC.cpp b/CGMES_2.4.13_18DEC2013/WindTurbineType4aIEC.cpp index 19a53dd03..9f0e06240 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType4aIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType4aIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4aIEC.WindContPType4aIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4aIEC::WindTurbineType4aIEC() : WindContPType4aIEC(nullptr) {} WindTurbineType4aIEC::~WindTurbineType4aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4aIEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4aIEC.WindContPType4aIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4aIEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4aIEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenType4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContPType4aIEC_WindTurbineType4aIEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindTurbineType4aIEC::debugString() const void WindTurbineType4aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4aIEC", &WindTurbineType4aIEC_factory); + factory_map.emplace("WindTurbineType4aIEC", &WindTurbineType4aIEC_factory); } void WindTurbineType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindTurbineType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4aIEC.WindContPType4aIEC", &assign_WindTurbineType4aIEC_WindContPType4aIEC); + assign_map.emplace("WindTurbineType4aIEC.WindContPType4aIEC", &assign_WindTurbineType4aIEC_WindContPType4aIEC); } void WindTurbineType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindTurbineType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindGenType4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4aIEC.WindContPType4aIEC", &get_WindTurbineType4aIEC_WindContPType4aIEC); + get_map.emplace("WindTurbineType4aIEC.WindContPType4aIEC", &get_WindTurbineType4aIEC_WindContPType4aIEC); } void WindTurbineType4aIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindTurbineType4aIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4aIEC::declare() { return BaseClassDefiner(WindTurbineType4aIEC::addConstructToMap, WindTurbineType4aIEC::addPrimitiveAssignFnsToMap, WindTurbineType4aIEC::addClassAssignFnsToMap, WindTurbineType4aIEC::debugName); } +std::map WindTurbineType4aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenType4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4aIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType4aIEC.hpp b/CGMES_2.4.13_18DEC2013/WindTurbineType4aIEC.hpp index 67bcd203b..86ca66414 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType4aIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType4aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenType4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4aIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType4bIEC.cpp b/CGMES_2.4.13_18DEC2013/WindTurbineType4bIEC.cpp index ad7a668db..51d6e5758 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType4bIEC.cpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType4bIEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4bIEC.WindContPType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType4bIEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4bIEC::WindTurbineType4bIEC() : WindContPType4bIEC(nullptr), WindMechIEC(nullptr) {} WindTurbineType4bIEC::~WindTurbineType4bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4bIEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4bIEC.WindContPType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType4bIEC.WindMechIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4bIEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4bIEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenType4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContPType4bIEC_WindTurbineType4bIEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType4bIEC::debugString() const void WindTurbineType4bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4bIEC", &WindTurbineType4bIEC_factory); + factory_map.emplace("WindTurbineType4bIEC", &WindTurbineType4bIEC_factory); } void WindTurbineType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4bIEC.WindContPType4bIEC", &assign_WindTurbineType4bIEC_WindContPType4bIEC); - assign_map.emplace("cim:WindTurbineType4bIEC.WindMechIEC", &assign_WindTurbineType4bIEC_WindMechIEC); + assign_map.emplace("WindTurbineType4bIEC.WindContPType4bIEC", &assign_WindTurbineType4bIEC_WindContPType4bIEC); + assign_map.emplace("WindTurbineType4bIEC.WindMechIEC", &assign_WindTurbineType4bIEC_WindMechIEC); } void WindTurbineType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindGenType4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4bIEC.WindContPType4bIEC", &get_WindTurbineType4bIEC_WindContPType4bIEC); - get_map.emplace("cim:WindTurbineType4bIEC.WindMechIEC", &get_WindTurbineType4bIEC_WindMechIEC); + get_map.emplace("WindTurbineType4bIEC.WindContPType4bIEC", &get_WindTurbineType4bIEC_WindContPType4bIEC); + get_map.emplace("WindTurbineType4bIEC.WindMechIEC", &get_WindTurbineType4bIEC_WindMechIEC); } void WindTurbineType4bIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType4bIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4bIEC::declare() { return BaseClassDefiner(WindTurbineType4bIEC::addConstructToMap, WindTurbineType4bIEC::addPrimitiveAssignFnsToMap, WindTurbineType4bIEC::addClassAssignFnsToMap, WindTurbineType4bIEC::debugName); } +std::map WindTurbineType4bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenType4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4bIEC_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindTurbineType4bIEC.hpp b/CGMES_2.4.13_18DEC2013/WindTurbineType4bIEC.hpp index 26da27746..5670138a5 100644 --- a/CGMES_2.4.13_18DEC2013/WindTurbineType4bIEC.hpp +++ b/CGMES_2.4.13_18DEC2013/WindTurbineType4bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenType4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4bIEC_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindType1or2UserDefined.cpp b/CGMES_2.4.13_18DEC2013/WindType1or2UserDefined.cpp index be1daa797..07fe6914f 100644 --- a/CGMES_2.4.13_18DEC2013/WindType1or2UserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/WindType1or2UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindType1or2UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindType1or2UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindType1or2UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindType1or2UserDefined::WindType1or2UserDefined() {} WindType1or2UserDefined::~WindType1or2UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindType1or2UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindType1or2UserDefined::getClassNamespaceUrl() const { - { "cim:WindType1or2UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindType1or2UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindType1or2UserDefined::getPossibleProfilesForClass() const +const std::string& WindType1or2UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindType1or2UserDefined::getPossibleProfilesForAttributes() const +const std::list& WindType1or2UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindType1or2UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindType1or2UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindType1or2UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindType1or2UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindType1or2UserDefined::debugString() const void WindType1or2UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindType1or2UserDefined", &WindType1or2UserDefined_factory); + factory_map.emplace("WindType1or2UserDefined", &WindType1or2UserDefined_factory); } void WindType1or2UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType1or2UserDefined.proprietary", &assign_WindType1or2UserDefined_proprietary); + assign_map.emplace("WindType1or2UserDefined.proprietary", &assign_WindType1or2UserDefined_proprietary); } void WindType1or2UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType1or2UserDefined.ProprietaryParameterDynamics", &assign_WindType1or2UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindType1or2UserDefined.ProprietaryParameterDynamics", &assign_WindType1or2UserDefined_ProprietaryParameterDynamics); } void WindType1or2UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindType1or2UserDefined.proprietary", &get_WindType1or2UserDefined_proprietary); + get_map.emplace("WindType1or2UserDefined.proprietary", &get_WindType1or2UserDefined_proprietary); } void WindType1or2UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindType1or2UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindType1or2UserDefined::declare() { return BaseClassDefiner(WindType1or2UserDefined::addConstructToMap, WindType1or2UserDefined::addPrimitiveAssignFnsToMap, WindType1or2UserDefined::addClassAssignFnsToMap, WindType1or2UserDefined::debugName); } +std::map WindType1or2UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindType1or2UserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindType1or2UserDefined.hpp b/CGMES_2.4.13_18DEC2013/WindType1or2UserDefined.hpp index dc0abcc62..58540ba50 100644 --- a/CGMES_2.4.13_18DEC2013/WindType1or2UserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/WindType1or2UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindType1or2UserDefined_factory(); diff --git a/CGMES_2.4.13_18DEC2013/WindType3or4UserDefined.cpp b/CGMES_2.4.13_18DEC2013/WindType3or4UserDefined.cpp index 300908ba4..516e50bfe 100644 --- a/CGMES_2.4.13_18DEC2013/WindType3or4UserDefined.cpp +++ b/CGMES_2.4.13_18DEC2013/WindType3or4UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindType3or4UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindType3or4UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindType3or4UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindType3or4UserDefined::WindType3or4UserDefined() {} WindType3or4UserDefined::~WindType3or4UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindType3or4UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindType3or4UserDefined::getClassNamespaceUrl() const { - { "cim:WindType3or4UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindType3or4UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindType3or4UserDefined::getPossibleProfilesForClass() const +const std::string& WindType3or4UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindType3or4UserDefined::getPossibleProfilesForAttributes() const +const std::list& WindType3or4UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindType3or4UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindType3or4UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindType3or4UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindType3or4UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindType3or4UserDefined::debugString() const void WindType3or4UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindType3or4UserDefined", &WindType3or4UserDefined_factory); + factory_map.emplace("WindType3or4UserDefined", &WindType3or4UserDefined_factory); } void WindType3or4UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType3or4UserDefined.proprietary", &assign_WindType3or4UserDefined_proprietary); + assign_map.emplace("WindType3or4UserDefined.proprietary", &assign_WindType3or4UserDefined_proprietary); } void WindType3or4UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType3or4UserDefined.ProprietaryParameterDynamics", &assign_WindType3or4UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindType3or4UserDefined.ProprietaryParameterDynamics", &assign_WindType3or4UserDefined_ProprietaryParameterDynamics); } void WindType3or4UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindType3or4UserDefined.proprietary", &get_WindType3or4UserDefined_proprietary); + get_map.emplace("WindType3or4UserDefined.proprietary", &get_WindType3or4UserDefined_proprietary); } void WindType3or4UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindType3or4UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindType3or4UserDefined::declare() { return BaseClassDefiner(WindType3or4UserDefined::addConstructToMap, WindType3or4UserDefined::addPrimitiveAssignFnsToMap, WindType3or4UserDefined::addClassAssignFnsToMap, WindType3or4UserDefined::debugName); } +std::map WindType3or4UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindType3or4UserDefined_factory() diff --git a/CGMES_2.4.13_18DEC2013/WindType3or4UserDefined.hpp b/CGMES_2.4.13_18DEC2013/WindType3or4UserDefined.hpp index 5259b5916..c894aab4b 100644 --- a/CGMES_2.4.13_18DEC2013/WindType3or4UserDefined.hpp +++ b/CGMES_2.4.13_18DEC2013/WindType3or4UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindType3or4UserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ACDCConverter.cpp b/CGMES_2.4.15_16FEB2016/ACDCConverter.cpp index 77117a179..d0251298e 100644 --- a/CGMES_2.4.15_16FEB2016/ACDCConverter.cpp +++ b/CGMES_2.4.15_16FEB2016/ACDCConverter.cpp @@ -13,52 +13,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCConverter.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.PccTerminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.baseS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.idc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.idleLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.maxUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.minUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.numberOfValves", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.poleLossP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.resistiveLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.switchingLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.targetPpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.targetUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.udc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.valveU0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCConverter::ACDCConverter() : PccTerminal(nullptr) {} ACDCConverter::~ACDCConverter() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ACDCConverter.DCTerminals", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.PccTerminal", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.baseS", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.idc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.idleLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.maxUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.minUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.numberOfValves", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.p", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.poleLossP", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.q", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.resistiveLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.switchingLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.targetPpcc", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.targetUdc", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.uc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.udc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.valveU0", { CGMESProfile::EQ, } }, -}; - -std::list -ACDCConverter::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ACDCConverter::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ACDCConverter::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ACDCConverter::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ACDCConverter::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ACDCConverter::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACDCConverterDCTerminal_DCConductingEquipment(BaseClass*, BaseClass*); @@ -611,62 +643,62 @@ const char* ACDCConverter::debugString() const void ACDCConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCConverter", &ACDCConverter_factory); + factory_map.emplace("ACDCConverter", &ACDCConverter_factory); } void ACDCConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverter.baseS", &assign_ACDCConverter_baseS); - assign_map.emplace("cim:ACDCConverter.idc", &assign_ACDCConverter_idc); - assign_map.emplace("cim:ACDCConverter.idleLoss", &assign_ACDCConverter_idleLoss); - assign_map.emplace("cim:ACDCConverter.maxUdc", &assign_ACDCConverter_maxUdc); - assign_map.emplace("cim:ACDCConverter.minUdc", &assign_ACDCConverter_minUdc); - assign_map.emplace("cim:ACDCConverter.numberOfValves", &assign_ACDCConverter_numberOfValves); - assign_map.emplace("cim:ACDCConverter.p", &assign_ACDCConverter_p); - assign_map.emplace("cim:ACDCConverter.poleLossP", &assign_ACDCConverter_poleLossP); - assign_map.emplace("cim:ACDCConverter.q", &assign_ACDCConverter_q); - assign_map.emplace("cim:ACDCConverter.ratedUdc", &assign_ACDCConverter_ratedUdc); - assign_map.emplace("cim:ACDCConverter.resistiveLoss", &assign_ACDCConverter_resistiveLoss); - assign_map.emplace("cim:ACDCConverter.switchingLoss", &assign_ACDCConverter_switchingLoss); - assign_map.emplace("cim:ACDCConverter.targetPpcc", &assign_ACDCConverter_targetPpcc); - assign_map.emplace("cim:ACDCConverter.targetUdc", &assign_ACDCConverter_targetUdc); - assign_map.emplace("cim:ACDCConverter.uc", &assign_ACDCConverter_uc); - assign_map.emplace("cim:ACDCConverter.udc", &assign_ACDCConverter_udc); - assign_map.emplace("cim:ACDCConverter.valveU0", &assign_ACDCConverter_valveU0); + assign_map.emplace("ACDCConverter.baseS", &assign_ACDCConverter_baseS); + assign_map.emplace("ACDCConverter.idc", &assign_ACDCConverter_idc); + assign_map.emplace("ACDCConverter.idleLoss", &assign_ACDCConverter_idleLoss); + assign_map.emplace("ACDCConverter.maxUdc", &assign_ACDCConverter_maxUdc); + assign_map.emplace("ACDCConverter.minUdc", &assign_ACDCConverter_minUdc); + assign_map.emplace("ACDCConverter.numberOfValves", &assign_ACDCConverter_numberOfValves); + assign_map.emplace("ACDCConverter.p", &assign_ACDCConverter_p); + assign_map.emplace("ACDCConverter.poleLossP", &assign_ACDCConverter_poleLossP); + assign_map.emplace("ACDCConverter.q", &assign_ACDCConverter_q); + assign_map.emplace("ACDCConverter.ratedUdc", &assign_ACDCConverter_ratedUdc); + assign_map.emplace("ACDCConverter.resistiveLoss", &assign_ACDCConverter_resistiveLoss); + assign_map.emplace("ACDCConverter.switchingLoss", &assign_ACDCConverter_switchingLoss); + assign_map.emplace("ACDCConverter.targetPpcc", &assign_ACDCConverter_targetPpcc); + assign_map.emplace("ACDCConverter.targetUdc", &assign_ACDCConverter_targetUdc); + assign_map.emplace("ACDCConverter.uc", &assign_ACDCConverter_uc); + assign_map.emplace("ACDCConverter.udc", &assign_ACDCConverter_udc); + assign_map.emplace("ACDCConverter.valveU0", &assign_ACDCConverter_valveU0); } void ACDCConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverter.DCTerminals", &assign_ACDCConverter_DCTerminals); - assign_map.emplace("cim:ACDCConverter.PccTerminal", &assign_ACDCConverter_PccTerminal); + assign_map.emplace("ACDCConverter.DCTerminals", &assign_ACDCConverter_DCTerminals); + assign_map.emplace("ACDCConverter.PccTerminal", &assign_ACDCConverter_PccTerminal); } void ACDCConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverter.baseS", &get_ACDCConverter_baseS); - get_map.emplace("cim:ACDCConverter.idc", &get_ACDCConverter_idc); - get_map.emplace("cim:ACDCConverter.idleLoss", &get_ACDCConverter_idleLoss); - get_map.emplace("cim:ACDCConverter.maxUdc", &get_ACDCConverter_maxUdc); - get_map.emplace("cim:ACDCConverter.minUdc", &get_ACDCConverter_minUdc); - get_map.emplace("cim:ACDCConverter.numberOfValves", &get_ACDCConverter_numberOfValves); - get_map.emplace("cim:ACDCConverter.p", &get_ACDCConverter_p); - get_map.emplace("cim:ACDCConverter.poleLossP", &get_ACDCConverter_poleLossP); - get_map.emplace("cim:ACDCConverter.q", &get_ACDCConverter_q); - get_map.emplace("cim:ACDCConverter.ratedUdc", &get_ACDCConverter_ratedUdc); - get_map.emplace("cim:ACDCConverter.resistiveLoss", &get_ACDCConverter_resistiveLoss); - get_map.emplace("cim:ACDCConverter.switchingLoss", &get_ACDCConverter_switchingLoss); - get_map.emplace("cim:ACDCConverter.targetPpcc", &get_ACDCConverter_targetPpcc); - get_map.emplace("cim:ACDCConverter.targetUdc", &get_ACDCConverter_targetUdc); - get_map.emplace("cim:ACDCConverter.uc", &get_ACDCConverter_uc); - get_map.emplace("cim:ACDCConverter.udc", &get_ACDCConverter_udc); - get_map.emplace("cim:ACDCConverter.valveU0", &get_ACDCConverter_valveU0); + get_map.emplace("ACDCConverter.baseS", &get_ACDCConverter_baseS); + get_map.emplace("ACDCConverter.idc", &get_ACDCConverter_idc); + get_map.emplace("ACDCConverter.idleLoss", &get_ACDCConverter_idleLoss); + get_map.emplace("ACDCConverter.maxUdc", &get_ACDCConverter_maxUdc); + get_map.emplace("ACDCConverter.minUdc", &get_ACDCConverter_minUdc); + get_map.emplace("ACDCConverter.numberOfValves", &get_ACDCConverter_numberOfValves); + get_map.emplace("ACDCConverter.p", &get_ACDCConverter_p); + get_map.emplace("ACDCConverter.poleLossP", &get_ACDCConverter_poleLossP); + get_map.emplace("ACDCConverter.q", &get_ACDCConverter_q); + get_map.emplace("ACDCConverter.ratedUdc", &get_ACDCConverter_ratedUdc); + get_map.emplace("ACDCConverter.resistiveLoss", &get_ACDCConverter_resistiveLoss); + get_map.emplace("ACDCConverter.switchingLoss", &get_ACDCConverter_switchingLoss); + get_map.emplace("ACDCConverter.targetPpcc", &get_ACDCConverter_targetPpcc); + get_map.emplace("ACDCConverter.targetUdc", &get_ACDCConverter_targetUdc); + get_map.emplace("ACDCConverter.uc", &get_ACDCConverter_uc); + get_map.emplace("ACDCConverter.udc", &get_ACDCConverter_udc); + get_map.emplace("ACDCConverter.valveU0", &get_ACDCConverter_valveU0); } void ACDCConverter::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverter.PccTerminal", &get_ACDCConverter_PccTerminal); + get_map.emplace("ACDCConverter.PccTerminal", &get_ACDCConverter_PccTerminal); } void ACDCConverter::addEnumGetFnsToMap(std::map& get_map) const @@ -674,11 +706,25 @@ void ACDCConverter::addEnumGetFnsToMap(std::map& get_ ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool ACDCConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCConverter" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACDCConverter::declare() { return BaseClassDefiner(ACDCConverter::addConstructToMap, ACDCConverter::addPrimitiveAssignFnsToMap, ACDCConverter::addClassAssignFnsToMap, ACDCConverter::debugName); } +std::map ACDCConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCConverter_factory() diff --git a/CGMES_2.4.15_16FEB2016/ACDCConverter.hpp b/CGMES_2.4.15_16FEB2016/ACDCConverter.hpp index 1621353d5..2c9df5033 100644 --- a/CGMES_2.4.15_16FEB2016/ACDCConverter.hpp +++ b/CGMES_2.4.15_16FEB2016/ACDCConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ActivePowerPerCurrentFlow.hpp" #include "ApparentPower.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCConverter_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ACDCConverterDCTerminal.cpp b/CGMES_2.4.15_16FEB2016/ACDCConverterDCTerminal.cpp index 1f445f5c1..ab15f2903 100644 --- a/CGMES_2.4.15_16FEB2016/ACDCConverterDCTerminal.cpp +++ b/CGMES_2.4.15_16FEB2016/ACDCConverterDCTerminal.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCConverterDCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCConverterDCTerminal.DCConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverterDCTerminal.polarity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCConverterDCTerminal::ACDCConverterDCTerminal() : DCConductingEquipment(nullptr) {} ACDCConverterDCTerminal::~ACDCConverterDCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& ACDCConverterDCTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACDCConverterDCTerminal::getClassNamespaceUrl() const { - { "cim:ACDCConverterDCTerminal.DCConductingEquipment", { CGMESProfile::EQ, } }, - { "cim:ACDCConverterDCTerminal.polarity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACDCConverterDCTerminal::getPossibleProfilesForClass() const +const std::string& ACDCConverterDCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACDCConverterDCTerminal::getPossibleProfilesForAttributes() const +const std::list& ACDCConverterDCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCBaseTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCConverterDCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCConverterDCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCConverterDCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACDCConverter_DCTerminals(BaseClass*, BaseClass*); @@ -111,17 +143,17 @@ const char* ACDCConverterDCTerminal::debugString() const void ACDCConverterDCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCConverterDCTerminal", &ACDCConverterDCTerminal_factory); + factory_map.emplace("ACDCConverterDCTerminal", &ACDCConverterDCTerminal_factory); } void ACDCConverterDCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverterDCTerminal.polarity", &assign_ACDCConverterDCTerminal_polarity); + assign_map.emplace("ACDCConverterDCTerminal.polarity", &assign_ACDCConverterDCTerminal_polarity); } void ACDCConverterDCTerminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverterDCTerminal.DCConductingEquipment", &assign_ACDCConverterDCTerminal_DCConductingEquipment); + assign_map.emplace("ACDCConverterDCTerminal.DCConductingEquipment", &assign_ACDCConverterDCTerminal_DCConductingEquipment); } void ACDCConverterDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -132,13 +164,19 @@ void ACDCConverterDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverterDCTerminal.DCConductingEquipment", &get_ACDCConverterDCTerminal_DCConductingEquipment); + get_map.emplace("ACDCConverterDCTerminal.DCConductingEquipment", &get_ACDCConverterDCTerminal_DCConductingEquipment); } void ACDCConverterDCTerminal::addEnumGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverterDCTerminal.polarity", &get_ACDCConverterDCTerminal_polarity); + get_map.emplace("ACDCConverterDCTerminal.polarity", &get_ACDCConverterDCTerminal_polarity); +} + +bool ACDCConverterDCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCConverterDCTerminal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ACDCConverterDCTerminal::declare() @@ -146,6 +184,14 @@ const BaseClassDefiner ACDCConverterDCTerminal::declare() return BaseClassDefiner(ACDCConverterDCTerminal::addConstructToMap, ACDCConverterDCTerminal::addPrimitiveAssignFnsToMap, ACDCConverterDCTerminal::addClassAssignFnsToMap, ACDCConverterDCTerminal::debugName); } +std::map ACDCConverterDCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCBaseTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCConverterDCTerminal_factory() diff --git a/CGMES_2.4.15_16FEB2016/ACDCConverterDCTerminal.hpp b/CGMES_2.4.15_16FEB2016/ACDCConverterDCTerminal.hpp index f8cebc33a..1800bd6a4 100644 --- a/CGMES_2.4.15_16FEB2016/ACDCConverterDCTerminal.hpp +++ b/CGMES_2.4.15_16FEB2016/ACDCConverterDCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCBaseTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DCPolarityKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCConverterDCTerminal_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ACDCTerminal.cpp b/CGMES_2.4.15_16FEB2016/ACDCTerminal.cpp index d4cc5c048..4e51e15ed 100644 --- a/CGMES_2.4.15_16FEB2016/ACDCTerminal.cpp +++ b/CGMES_2.4.15_16FEB2016/ACDCTerminal.cpp @@ -14,40 +14,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCTerminal.BusNameMarker", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.connected", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCTerminal.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCTerminal::ACDCTerminal() : BusNameMarker(nullptr) {} ACDCTerminal::~ACDCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& ACDCTerminal::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACDCTerminal::getClassNamespaceUrl() const { - { "cim:ACDCTerminal.BusNameMarker", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.Measurements", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.connected", { CGMESProfile::SSH, } }, - { "cim:ACDCTerminal.sequenceNumber", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACDCTerminal::getPossibleProfilesForClass() const +const std::string& ACDCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACDCTerminal::getPossibleProfilesForAttributes() const +const std::list& ACDCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusNameMarker_Terminal(BaseClass*, BaseClass*); @@ -183,33 +215,33 @@ const char* ACDCTerminal::debugString() const void ACDCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCTerminal", &ACDCTerminal_factory); + factory_map.emplace("ACDCTerminal", &ACDCTerminal_factory); } void ACDCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCTerminal.connected", &assign_ACDCTerminal_connected); - assign_map.emplace("cim:ACDCTerminal.sequenceNumber", &assign_ACDCTerminal_sequenceNumber); + assign_map.emplace("ACDCTerminal.connected", &assign_ACDCTerminal_connected); + assign_map.emplace("ACDCTerminal.sequenceNumber", &assign_ACDCTerminal_sequenceNumber); } void ACDCTerminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCTerminal.BusNameMarker", &assign_ACDCTerminal_BusNameMarker); - assign_map.emplace("cim:ACDCTerminal.Measurements", &assign_ACDCTerminal_Measurements); - assign_map.emplace("cim:ACDCTerminal.OperationalLimitSet", &assign_ACDCTerminal_OperationalLimitSet); + assign_map.emplace("ACDCTerminal.BusNameMarker", &assign_ACDCTerminal_BusNameMarker); + assign_map.emplace("ACDCTerminal.Measurements", &assign_ACDCTerminal_Measurements); + assign_map.emplace("ACDCTerminal.OperationalLimitSet", &assign_ACDCTerminal_OperationalLimitSet); } void ACDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACDCTerminal.connected", &get_ACDCTerminal_connected); - get_map.emplace("cim:ACDCTerminal.sequenceNumber", &get_ACDCTerminal_sequenceNumber); + get_map.emplace("ACDCTerminal.connected", &get_ACDCTerminal_connected); + get_map.emplace("ACDCTerminal.sequenceNumber", &get_ACDCTerminal_sequenceNumber); } void ACDCTerminal::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCTerminal.BusNameMarker", &get_ACDCTerminal_BusNameMarker); + get_map.emplace("ACDCTerminal.BusNameMarker", &get_ACDCTerminal_BusNameMarker); } void ACDCTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -217,11 +249,25 @@ void ACDCTerminal::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ACDCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACDCTerminal::declare() { return BaseClassDefiner(ACDCTerminal::addConstructToMap, ACDCTerminal::addPrimitiveAssignFnsToMap, ACDCTerminal::addClassAssignFnsToMap, ACDCTerminal::debugName); } +std::map ACDCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCTerminal_factory() diff --git a/CGMES_2.4.15_16FEB2016/ACDCTerminal.hpp b/CGMES_2.4.15_16FEB2016/ACDCTerminal.hpp index ed29f46b5..d25cb3674 100644 --- a/CGMES_2.4.15_16FEB2016/ACDCTerminal.hpp +++ b/CGMES_2.4.15_16FEB2016/ACDCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCTerminal_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ACLineSegment.cpp b/CGMES_2.4.15_16FEB2016/ACLineSegment.cpp index baecc7103..850a73416 100644 --- a/CGMES_2.4.15_16FEB2016/ACLineSegment.cpp +++ b/CGMES_2.4.15_16FEB2016/ACLineSegment.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACLineSegment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACLineSegment.b0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.bch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.g0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.gch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.shortCircuitEndTemperature", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACLineSegment::ACLineSegment() {} ACLineSegment::~ACLineSegment() {} -static const std::list PossibleProfilesForClass = +const std::list& ACLineSegment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACLineSegment::getClassNamespaceUrl() const { - { "cim:ACLineSegment.b0ch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.bch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.g0ch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.gch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.r", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.r0", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.shortCircuitEndTemperature", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.x", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACLineSegment::getPossibleProfilesForClass() const +const std::string& ACLineSegment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACLineSegment::getPossibleProfilesForAttributes() const +const std::list& ACLineSegment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Conductor::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACLineSegment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACLineSegment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACLineSegment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACLineSegment_b0ch(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ACLineSegment::debugString() const void ACLineSegment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACLineSegment", &ACLineSegment_factory); + factory_map.emplace("ACLineSegment", &ACLineSegment_factory); } void ACLineSegment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACLineSegment.b0ch", &assign_ACLineSegment_b0ch); - assign_map.emplace("cim:ACLineSegment.bch", &assign_ACLineSegment_bch); - assign_map.emplace("cim:ACLineSegment.g0ch", &assign_ACLineSegment_g0ch); - assign_map.emplace("cim:ACLineSegment.gch", &assign_ACLineSegment_gch); - assign_map.emplace("cim:ACLineSegment.r", &assign_ACLineSegment_r); - assign_map.emplace("cim:ACLineSegment.r0", &assign_ACLineSegment_r0); - assign_map.emplace("cim:ACLineSegment.shortCircuitEndTemperature", &assign_ACLineSegment_shortCircuitEndTemperature); - assign_map.emplace("cim:ACLineSegment.x", &assign_ACLineSegment_x); - assign_map.emplace("cim:ACLineSegment.x0", &assign_ACLineSegment_x0); + assign_map.emplace("ACLineSegment.b0ch", &assign_ACLineSegment_b0ch); + assign_map.emplace("ACLineSegment.bch", &assign_ACLineSegment_bch); + assign_map.emplace("ACLineSegment.g0ch", &assign_ACLineSegment_g0ch); + assign_map.emplace("ACLineSegment.gch", &assign_ACLineSegment_gch); + assign_map.emplace("ACLineSegment.r", &assign_ACLineSegment_r); + assign_map.emplace("ACLineSegment.r0", &assign_ACLineSegment_r0); + assign_map.emplace("ACLineSegment.shortCircuitEndTemperature", &assign_ACLineSegment_shortCircuitEndTemperature); + assign_map.emplace("ACLineSegment.x", &assign_ACLineSegment_x); + assign_map.emplace("ACLineSegment.x0", &assign_ACLineSegment_x0); } void ACLineSegment::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ACLineSegment::addClassAssignFnsToMap(std::unordered_map& get_map) const { Conductor::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACLineSegment.b0ch", &get_ACLineSegment_b0ch); - get_map.emplace("cim:ACLineSegment.bch", &get_ACLineSegment_bch); - get_map.emplace("cim:ACLineSegment.g0ch", &get_ACLineSegment_g0ch); - get_map.emplace("cim:ACLineSegment.gch", &get_ACLineSegment_gch); - get_map.emplace("cim:ACLineSegment.r", &get_ACLineSegment_r); - get_map.emplace("cim:ACLineSegment.r0", &get_ACLineSegment_r0); - get_map.emplace("cim:ACLineSegment.shortCircuitEndTemperature", &get_ACLineSegment_shortCircuitEndTemperature); - get_map.emplace("cim:ACLineSegment.x", &get_ACLineSegment_x); - get_map.emplace("cim:ACLineSegment.x0", &get_ACLineSegment_x0); + get_map.emplace("ACLineSegment.b0ch", &get_ACLineSegment_b0ch); + get_map.emplace("ACLineSegment.bch", &get_ACLineSegment_bch); + get_map.emplace("ACLineSegment.g0ch", &get_ACLineSegment_g0ch); + get_map.emplace("ACLineSegment.gch", &get_ACLineSegment_gch); + get_map.emplace("ACLineSegment.r", &get_ACLineSegment_r); + get_map.emplace("ACLineSegment.r0", &get_ACLineSegment_r0); + get_map.emplace("ACLineSegment.shortCircuitEndTemperature", &get_ACLineSegment_shortCircuitEndTemperature); + get_map.emplace("ACLineSegment.x", &get_ACLineSegment_x); + get_map.emplace("ACLineSegment.x0", &get_ACLineSegment_x0); } void ACLineSegment::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ACLineSegment::addEnumGetFnsToMap(std::map& get_ Conductor::addEnumGetFnsToMap(get_map); } +bool ACLineSegment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACLineSegment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACLineSegment::declare() { return BaseClassDefiner(ACLineSegment::addConstructToMap, ACLineSegment::addPrimitiveAssignFnsToMap, ACLineSegment::addClassAssignFnsToMap, ACLineSegment::debugName); } +std::map ACLineSegment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Conductor::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACLineSegment_factory() diff --git a/CGMES_2.4.15_16FEB2016/ACLineSegment.hpp b/CGMES_2.4.15_16FEB2016/ACLineSegment.hpp index 21be2e6c6..22fe1df59 100644 --- a/CGMES_2.4.15_16FEB2016/ACLineSegment.hpp +++ b/CGMES_2.4.15_16FEB2016/ACLineSegment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Conductor.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Reactance.hpp" #include "Resistance.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACLineSegment_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Accumulator.cpp b/CGMES_2.4.15_16FEB2016/Accumulator.cpp index 0f56cb3a0..dbf2c1230 100644 --- a/CGMES_2.4.15_16FEB2016/Accumulator.cpp +++ b/CGMES_2.4.15_16FEB2016/Accumulator.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Accumulator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Accumulator.AccumulatorValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Accumulator.LimitSets", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Accumulator::Accumulator() {} Accumulator::~Accumulator() {} -static const std::list PossibleProfilesForClass = +const std::list& Accumulator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Accumulator::getClassNamespaceUrl() const { - { "cim:Accumulator.AccumulatorValues", { CGMESProfile::EQ, } }, - { "cim:Accumulator.LimitSets", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Accumulator::getPossibleProfilesForClass() const +const std::string& Accumulator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Accumulator::getPossibleProfilesForAttributes() const +const std::list& Accumulator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Accumulator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Accumulator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Accumulator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorValue_Accumulator(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* Accumulator::debugString() const void Accumulator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Accumulator", &Accumulator_factory); + factory_map.emplace("Accumulator", &Accumulator_factory); } void Accumulator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void Accumulator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Accumulator.AccumulatorValues", &assign_Accumulator_AccumulatorValues); - assign_map.emplace("cim:Accumulator.LimitSets", &assign_Accumulator_LimitSets); + assign_map.emplace("Accumulator.AccumulatorValues", &assign_Accumulator_AccumulatorValues); + assign_map.emplace("Accumulator.LimitSets", &assign_Accumulator_LimitSets); } void Accumulator::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void Accumulator::addEnumGetFnsToMap(std::map& get_ma Measurement::addEnumGetFnsToMap(get_map); } +bool Accumulator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Accumulator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Accumulator::declare() { return BaseClassDefiner(Accumulator::addConstructToMap, Accumulator::addPrimitiveAssignFnsToMap, Accumulator::addClassAssignFnsToMap, Accumulator::debugName); } +std::map Accumulator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Accumulator_factory() diff --git a/CGMES_2.4.15_16FEB2016/Accumulator.hpp b/CGMES_2.4.15_16FEB2016/Accumulator.hpp index 0ea3177cb..e618a77ec 100644 --- a/CGMES_2.4.15_16FEB2016/Accumulator.hpp +++ b/CGMES_2.4.15_16FEB2016/Accumulator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Accumulator_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AccumulatorLimit.cpp b/CGMES_2.4.15_16FEB2016/AccumulatorLimit.cpp index f04f7dc98..79be5abaf 100644 --- a/CGMES_2.4.15_16FEB2016/AccumulatorLimit.cpp +++ b/CGMES_2.4.15_16FEB2016/AccumulatorLimit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorLimit.LimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorLimit::AccumulatorLimit() : LimitSet(nullptr) {} AccumulatorLimit::~AccumulatorLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorLimit::getClassNamespaceUrl() const { - { "cim:AccumulatorLimit.LimitSet", { CGMESProfile::EQ, } }, - { "cim:AccumulatorLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorLimit::getPossibleProfilesForClass() const +const std::string& AccumulatorLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorLimit::getPossibleProfilesForAttributes() const +const std::list& AccumulatorLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Limit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorLimitSet_Limits(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* AccumulatorLimit::debugString() const void AccumulatorLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorLimit", &AccumulatorLimit_factory); + factory_map.emplace("AccumulatorLimit", &AccumulatorLimit_factory); } void AccumulatorLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimit.value", &assign_AccumulatorLimit_value); + assign_map.emplace("AccumulatorLimit.value", &assign_AccumulatorLimit_value); } void AccumulatorLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimit.LimitSet", &assign_AccumulatorLimit_LimitSet); + assign_map.emplace("AccumulatorLimit.LimitSet", &assign_AccumulatorLimit_LimitSet); } void AccumulatorLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { Limit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimit.value", &get_AccumulatorLimit_value); + get_map.emplace("AccumulatorLimit.value", &get_AccumulatorLimit_value); } void AccumulatorLimit::addClassGetFnsToMap(std::map& get_map) const { Limit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimit.LimitSet", &get_AccumulatorLimit_LimitSet); + get_map.emplace("AccumulatorLimit.LimitSet", &get_AccumulatorLimit_LimitSet); } void AccumulatorLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void AccumulatorLimit::addEnumGetFnsToMap(std::map& g Limit::addEnumGetFnsToMap(get_map); } +bool AccumulatorLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorLimit::declare() { return BaseClassDefiner(AccumulatorLimit::addConstructToMap, AccumulatorLimit::addPrimitiveAssignFnsToMap, AccumulatorLimit::addClassAssignFnsToMap, AccumulatorLimit::debugName); } +std::map AccumulatorLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Limit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorLimit_factory() diff --git a/CGMES_2.4.15_16FEB2016/AccumulatorLimit.hpp b/CGMES_2.4.15_16FEB2016/AccumulatorLimit.hpp index e49dffefb..dbf326d27 100644 --- a/CGMES_2.4.15_16FEB2016/AccumulatorLimit.hpp +++ b/CGMES_2.4.15_16FEB2016/AccumulatorLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Limit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorLimit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AccumulatorLimitSet.cpp b/CGMES_2.4.15_16FEB2016/AccumulatorLimitSet.cpp index d67146814..dfa36c92d 100644 --- a/CGMES_2.4.15_16FEB2016/AccumulatorLimitSet.cpp +++ b/CGMES_2.4.15_16FEB2016/AccumulatorLimitSet.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorLimitSet.Limits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorLimitSet.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorLimitSet::AccumulatorLimitSet() {} AccumulatorLimitSet::~AccumulatorLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorLimitSet::getClassNamespaceUrl() const { - { "cim:AccumulatorLimitSet.Limits", { CGMESProfile::EQ, } }, - { "cim:AccumulatorLimitSet.Measurements", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorLimitSet::getPossibleProfilesForClass() const +const std::string& AccumulatorLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorLimitSet::getPossibleProfilesForAttributes() const +const std::list& AccumulatorLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LimitSet::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorLimit_LimitSet(BaseClass*, BaseClass*); @@ -96,7 +128,7 @@ const char* AccumulatorLimitSet::debugString() const void AccumulatorLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorLimitSet", &AccumulatorLimitSet_factory); + factory_map.emplace("AccumulatorLimitSet", &AccumulatorLimitSet_factory); } void AccumulatorLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -105,8 +137,8 @@ void AccumulatorLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimitSet.Limits", &assign_AccumulatorLimitSet_Limits); - assign_map.emplace("cim:AccumulatorLimitSet.Measurements", &assign_AccumulatorLimitSet_Measurements); + assign_map.emplace("AccumulatorLimitSet.Limits", &assign_AccumulatorLimitSet_Limits); + assign_map.emplace("AccumulatorLimitSet.Measurements", &assign_AccumulatorLimitSet_Measurements); } void AccumulatorLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,7 +149,7 @@ void AccumulatorLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { LimitSet::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimitSet.Measurements", &get_AccumulatorLimitSet_Measurements); + get_map.emplace("AccumulatorLimitSet.Measurements", &get_AccumulatorLimitSet_Measurements); } void AccumulatorLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AccumulatorLimitSet::addEnumGetFnsToMap(std::map LimitSet::addEnumGetFnsToMap(get_map); } +bool AccumulatorLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorLimitSet::declare() { return BaseClassDefiner(AccumulatorLimitSet::addConstructToMap, AccumulatorLimitSet::addPrimitiveAssignFnsToMap, AccumulatorLimitSet::addClassAssignFnsToMap, AccumulatorLimitSet::debugName); } +std::map AccumulatorLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LimitSet::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorLimitSet_factory() diff --git a/CGMES_2.4.15_16FEB2016/AccumulatorLimitSet.hpp b/CGMES_2.4.15_16FEB2016/AccumulatorLimitSet.hpp index 3da387ef1..142613424 100644 --- a/CGMES_2.4.15_16FEB2016/AccumulatorLimitSet.hpp +++ b/CGMES_2.4.15_16FEB2016/AccumulatorLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LimitSet.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorLimitSet_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AccumulatorReset.cpp b/CGMES_2.4.15_16FEB2016/AccumulatorReset.cpp index ae3e698db..1cfdba4f7 100644 --- a/CGMES_2.4.15_16FEB2016/AccumulatorReset.cpp +++ b/CGMES_2.4.15_16FEB2016/AccumulatorReset.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorReset(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorReset.AccumulatorValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorReset::AccumulatorReset() : AccumulatorValue(nullptr) {} AccumulatorReset::~AccumulatorReset() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorReset::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorReset::getClassNamespaceUrl() const { - { "cim:AccumulatorReset.AccumulatorValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorReset::getPossibleProfilesForClass() const +const std::string& AccumulatorReset::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorReset::getPossibleProfilesForAttributes() const +const std::list& AccumulatorReset::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorReset::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorReset::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorReset::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorValue_AccumulatorReset(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* AccumulatorReset::debugString() const void AccumulatorReset::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorReset", &AccumulatorReset_factory); + factory_map.emplace("AccumulatorReset", &AccumulatorReset_factory); } void AccumulatorReset::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void AccumulatorReset::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorReset.AccumulatorValue", &assign_AccumulatorReset_AccumulatorValue); + assign_map.emplace("AccumulatorReset.AccumulatorValue", &assign_AccumulatorReset_AccumulatorValue); } void AccumulatorReset::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void AccumulatorReset::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorReset.AccumulatorValue", &get_AccumulatorReset_AccumulatorValue); + get_map.emplace("AccumulatorReset.AccumulatorValue", &get_AccumulatorReset_AccumulatorValue); } void AccumulatorReset::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void AccumulatorReset::addEnumGetFnsToMap(std::map& g Control::addEnumGetFnsToMap(get_map); } +bool AccumulatorReset::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorReset" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorReset::declare() { return BaseClassDefiner(AccumulatorReset::addConstructToMap, AccumulatorReset::addPrimitiveAssignFnsToMap, AccumulatorReset::addClassAssignFnsToMap, AccumulatorReset::debugName); } +std::map AccumulatorReset::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorReset_factory() diff --git a/CGMES_2.4.15_16FEB2016/AccumulatorReset.hpp b/CGMES_2.4.15_16FEB2016/AccumulatorReset.hpp index 8c35f6e44..60642f1ec 100644 --- a/CGMES_2.4.15_16FEB2016/AccumulatorReset.hpp +++ b/CGMES_2.4.15_16FEB2016/AccumulatorReset.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorReset_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AccumulatorValue.cpp b/CGMES_2.4.15_16FEB2016/AccumulatorValue.cpp index 7311c3091..d9c2c4b05 100644 --- a/CGMES_2.4.15_16FEB2016/AccumulatorValue.cpp +++ b/CGMES_2.4.15_16FEB2016/AccumulatorValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorValue.Accumulator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorValue.AccumulatorReset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorValue::AccumulatorValue() : Accumulator(nullptr), AccumulatorReset(nullptr) {} AccumulatorValue::~AccumulatorValue() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorValue::getClassNamespaceUrl() const { - { "cim:AccumulatorValue.Accumulator", { CGMESProfile::EQ, } }, - { "cim:AccumulatorValue.AccumulatorReset", { CGMESProfile::EQ, } }, - { "cim:AccumulatorValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorValue::getPossibleProfilesForClass() const +const std::string& AccumulatorValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorValue::getPossibleProfilesForAttributes() const +const std::list& AccumulatorValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Accumulator_AccumulatorValues(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* AccumulatorValue::debugString() const void AccumulatorValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorValue", &AccumulatorValue_factory); + factory_map.emplace("AccumulatorValue", &AccumulatorValue_factory); } void AccumulatorValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorValue.value", &assign_AccumulatorValue_value); + assign_map.emplace("AccumulatorValue.value", &assign_AccumulatorValue_value); } void AccumulatorValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorValue.Accumulator", &assign_AccumulatorValue_Accumulator); - assign_map.emplace("cim:AccumulatorValue.AccumulatorReset", &assign_AccumulatorValue_AccumulatorReset); + assign_map.emplace("AccumulatorValue.Accumulator", &assign_AccumulatorValue_Accumulator); + assign_map.emplace("AccumulatorValue.AccumulatorReset", &assign_AccumulatorValue_AccumulatorReset); } void AccumulatorValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorValue.value", &get_AccumulatorValue_value); + get_map.emplace("AccumulatorValue.value", &get_AccumulatorValue_value); } void AccumulatorValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorValue.Accumulator", &get_AccumulatorValue_Accumulator); + get_map.emplace("AccumulatorValue.Accumulator", &get_AccumulatorValue_Accumulator); } void AccumulatorValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void AccumulatorValue::addEnumGetFnsToMap(std::map& g MeasurementValue::addEnumGetFnsToMap(get_map); } +bool AccumulatorValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorValue::declare() { return BaseClassDefiner(AccumulatorValue::addConstructToMap, AccumulatorValue::addPrimitiveAssignFnsToMap, AccumulatorValue::addClassAssignFnsToMap, AccumulatorValue::debugName); } +std::map AccumulatorValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorValue_factory() diff --git a/CGMES_2.4.15_16FEB2016/AccumulatorValue.hpp b/CGMES_2.4.15_16FEB2016/AccumulatorValue.hpp index 3a573eb45..9836f908f 100644 --- a/CGMES_2.4.15_16FEB2016/AccumulatorValue.hpp +++ b/CGMES_2.4.15_16FEB2016/AccumulatorValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorValue_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ActivePowerLimit.cpp b/CGMES_2.4.15_16FEB2016/ActivePowerLimit.cpp index d05a279c9..c4a2010d1 100644 --- a/CGMES_2.4.15_16FEB2016/ActivePowerLimit.cpp +++ b/CGMES_2.4.15_16FEB2016/ActivePowerLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ActivePowerLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ActivePowerLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ActivePowerLimit::ActivePowerLimit() {} ActivePowerLimit::~ActivePowerLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& ActivePowerLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ActivePowerLimit::getClassNamespaceUrl() const { - { "cim:ActivePowerLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ActivePowerLimit::getPossibleProfilesForClass() const +const std::string& ActivePowerLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ActivePowerLimit::getPossibleProfilesForAttributes() const +const std::list& ActivePowerLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ActivePowerLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ActivePowerLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ActivePowerLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ActivePowerLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* ActivePowerLimit::debugString() const void ActivePowerLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ActivePowerLimit", &ActivePowerLimit_factory); + factory_map.emplace("ActivePowerLimit", &ActivePowerLimit_factory); } void ActivePowerLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ActivePowerLimit.value", &assign_ActivePowerLimit_value); + assign_map.emplace("ActivePowerLimit.value", &assign_ActivePowerLimit_value); } void ActivePowerLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void ActivePowerLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ActivePowerLimit.value", &get_ActivePowerLimit_value); + get_map.emplace("ActivePowerLimit.value", &get_ActivePowerLimit_value); } void ActivePowerLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void ActivePowerLimit::addEnumGetFnsToMap(std::map& g OperationalLimit::addEnumGetFnsToMap(get_map); } +bool ActivePowerLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ActivePowerLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ActivePowerLimit::declare() { return BaseClassDefiner(ActivePowerLimit::addConstructToMap, ActivePowerLimit::addPrimitiveAssignFnsToMap, ActivePowerLimit::addClassAssignFnsToMap, ActivePowerLimit::debugName); } +std::map ActivePowerLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ActivePowerLimit_factory() diff --git a/CGMES_2.4.15_16FEB2016/ActivePowerLimit.hpp b/CGMES_2.4.15_16FEB2016/ActivePowerLimit.hpp index cdf99235b..ce13f59df 100644 --- a/CGMES_2.4.15_16FEB2016/ActivePowerLimit.hpp +++ b/CGMES_2.4.15_16FEB2016/ActivePowerLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ActivePowerLimit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Analog.cpp b/CGMES_2.4.15_16FEB2016/Analog.cpp index d11d78a05..3d4b3da38 100644 --- a/CGMES_2.4.15_16FEB2016/Analog.cpp +++ b/CGMES_2.4.15_16FEB2016/Analog.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Analog(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Analog.AnalogValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Analog.LimitSets", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Analog.positiveFlowIn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Analog::Analog() {} Analog::~Analog() {} -static const std::list PossibleProfilesForClass = +const std::list& Analog::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Analog::getClassNamespaceUrl() const { - { "cim:Analog.AnalogValues", { CGMESProfile::EQ, } }, - { "cim:Analog.LimitSets", { CGMESProfile::EQ, } }, - { "cim:Analog.positiveFlowIn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Analog::getPossibleProfilesForClass() const +const std::string& Analog::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Analog::getPossibleProfilesForAttributes() const +const std::list& Analog::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Analog::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Analog::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Analog::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogValue_Analog(BaseClass*, BaseClass*); @@ -116,24 +148,24 @@ const char* Analog::debugString() const void Analog::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Analog", &Analog_factory); + factory_map.emplace("Analog", &Analog_factory); } void Analog::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Analog.positiveFlowIn", &assign_Analog_positiveFlowIn); + assign_map.emplace("Analog.positiveFlowIn", &assign_Analog_positiveFlowIn); } void Analog::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Analog.AnalogValues", &assign_Analog_AnalogValues); - assign_map.emplace("cim:Analog.LimitSets", &assign_Analog_LimitSets); + assign_map.emplace("Analog.AnalogValues", &assign_Analog_AnalogValues); + assign_map.emplace("Analog.LimitSets", &assign_Analog_LimitSets); } void Analog::addPrimitiveGetFnsToMap(std::map& get_map) const { Measurement::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Analog.positiveFlowIn", &get_Analog_positiveFlowIn); + get_map.emplace("Analog.positiveFlowIn", &get_Analog_positiveFlowIn); } void Analog::addClassGetFnsToMap(std::map& get_map) const @@ -146,11 +178,25 @@ void Analog::addEnumGetFnsToMap(std::map& get_map) co Measurement::addEnumGetFnsToMap(get_map); } +bool Analog::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Analog" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Analog::declare() { return BaseClassDefiner(Analog::addConstructToMap, Analog::addPrimitiveAssignFnsToMap, Analog::addClassAssignFnsToMap, Analog::debugName); } +std::map Analog::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Analog_factory() diff --git a/CGMES_2.4.15_16FEB2016/Analog.hpp b/CGMES_2.4.15_16FEB2016/Analog.hpp index 38ba38c37..e935c564b 100644 --- a/CGMES_2.4.15_16FEB2016/Analog.hpp +++ b/CGMES_2.4.15_16FEB2016/Analog.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Analog_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AnalogControl.cpp b/CGMES_2.4.15_16FEB2016/AnalogControl.cpp index aba858065..6070983bc 100644 --- a/CGMES_2.4.15_16FEB2016/AnalogControl.cpp +++ b/CGMES_2.4.15_16FEB2016/AnalogControl.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogControl.AnalogValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogControl.maxValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogControl.minValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogControl::AnalogControl() : AnalogValue(nullptr) {} AnalogControl::~AnalogControl() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogControl::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogControl::getClassNamespaceUrl() const { - { "cim:AnalogControl.AnalogValue", { CGMESProfile::EQ, } }, - { "cim:AnalogControl.maxValue", { CGMESProfile::EQ, } }, - { "cim:AnalogControl.minValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogControl::getPossibleProfilesForClass() const +const std::string& AnalogControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogControl::getPossibleProfilesForAttributes() const +const std::list& AnalogControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogValue_AnalogControl(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* AnalogControl::debugString() const void AnalogControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogControl", &AnalogControl_factory); + factory_map.emplace("AnalogControl", &AnalogControl_factory); } void AnalogControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogControl.maxValue", &assign_AnalogControl_maxValue); - assign_map.emplace("cim:AnalogControl.minValue", &assign_AnalogControl_minValue); + assign_map.emplace("AnalogControl.maxValue", &assign_AnalogControl_maxValue); + assign_map.emplace("AnalogControl.minValue", &assign_AnalogControl_minValue); } void AnalogControl::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogControl.AnalogValue", &assign_AnalogControl_AnalogValue); + assign_map.emplace("AnalogControl.AnalogValue", &assign_AnalogControl_AnalogValue); } void AnalogControl::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogControl.maxValue", &get_AnalogControl_maxValue); - get_map.emplace("cim:AnalogControl.minValue", &get_AnalogControl_minValue); + get_map.emplace("AnalogControl.maxValue", &get_AnalogControl_maxValue); + get_map.emplace("AnalogControl.minValue", &get_AnalogControl_minValue); } void AnalogControl::addClassGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogControl.AnalogValue", &get_AnalogControl_AnalogValue); + get_map.emplace("AnalogControl.AnalogValue", &get_AnalogControl_AnalogValue); } void AnalogControl::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void AnalogControl::addEnumGetFnsToMap(std::map& get_ Control::addEnumGetFnsToMap(get_map); } +bool AnalogControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogControl" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogControl::declare() { return BaseClassDefiner(AnalogControl::addConstructToMap, AnalogControl::addPrimitiveAssignFnsToMap, AnalogControl::addClassAssignFnsToMap, AnalogControl::debugName); } +std::map AnalogControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogControl_factory() diff --git a/CGMES_2.4.15_16FEB2016/AnalogControl.hpp b/CGMES_2.4.15_16FEB2016/AnalogControl.hpp index 8185c302e..9f13d988f 100644 --- a/CGMES_2.4.15_16FEB2016/AnalogControl.hpp +++ b/CGMES_2.4.15_16FEB2016/AnalogControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogControl_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AnalogLimit.cpp b/CGMES_2.4.15_16FEB2016/AnalogLimit.cpp index 007d1c5d0..2997f3652 100644 --- a/CGMES_2.4.15_16FEB2016/AnalogLimit.cpp +++ b/CGMES_2.4.15_16FEB2016/AnalogLimit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogLimit.LimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogLimit::AnalogLimit() : LimitSet(nullptr) {} AnalogLimit::~AnalogLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogLimit::getClassNamespaceUrl() const { - { "cim:AnalogLimit.LimitSet", { CGMESProfile::EQ, } }, - { "cim:AnalogLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogLimit::getPossibleProfilesForClass() const +const std::string& AnalogLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogLimit::getPossibleProfilesForAttributes() const +const std::list& AnalogLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Limit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogLimitSet_Limits(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* AnalogLimit::debugString() const void AnalogLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogLimit", &AnalogLimit_factory); + factory_map.emplace("AnalogLimit", &AnalogLimit_factory); } void AnalogLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimit.value", &assign_AnalogLimit_value); + assign_map.emplace("AnalogLimit.value", &assign_AnalogLimit_value); } void AnalogLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimit.LimitSet", &assign_AnalogLimit_LimitSet); + assign_map.emplace("AnalogLimit.LimitSet", &assign_AnalogLimit_LimitSet); } void AnalogLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { Limit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimit.value", &get_AnalogLimit_value); + get_map.emplace("AnalogLimit.value", &get_AnalogLimit_value); } void AnalogLimit::addClassGetFnsToMap(std::map& get_map) const { Limit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimit.LimitSet", &get_AnalogLimit_LimitSet); + get_map.emplace("AnalogLimit.LimitSet", &get_AnalogLimit_LimitSet); } void AnalogLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void AnalogLimit::addEnumGetFnsToMap(std::map& get_ma Limit::addEnumGetFnsToMap(get_map); } +bool AnalogLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogLimit::declare() { return BaseClassDefiner(AnalogLimit::addConstructToMap, AnalogLimit::addPrimitiveAssignFnsToMap, AnalogLimit::addClassAssignFnsToMap, AnalogLimit::debugName); } +std::map AnalogLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Limit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogLimit_factory() diff --git a/CGMES_2.4.15_16FEB2016/AnalogLimit.hpp b/CGMES_2.4.15_16FEB2016/AnalogLimit.hpp index 58ddbd984..4ecac92a7 100644 --- a/CGMES_2.4.15_16FEB2016/AnalogLimit.hpp +++ b/CGMES_2.4.15_16FEB2016/AnalogLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Limit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogLimit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AnalogLimitSet.cpp b/CGMES_2.4.15_16FEB2016/AnalogLimitSet.cpp index ecf5a0e67..9f434be38 100644 --- a/CGMES_2.4.15_16FEB2016/AnalogLimitSet.cpp +++ b/CGMES_2.4.15_16FEB2016/AnalogLimitSet.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogLimitSet.Limits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogLimitSet.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogLimitSet::AnalogLimitSet() {} AnalogLimitSet::~AnalogLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogLimitSet::getClassNamespaceUrl() const { - { "cim:AnalogLimitSet.Limits", { CGMESProfile::EQ, } }, - { "cim:AnalogLimitSet.Measurements", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogLimitSet::getPossibleProfilesForClass() const +const std::string& AnalogLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogLimitSet::getPossibleProfilesForAttributes() const +const std::list& AnalogLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LimitSet::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogLimit_LimitSet(BaseClass*, BaseClass*); @@ -96,7 +128,7 @@ const char* AnalogLimitSet::debugString() const void AnalogLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogLimitSet", &AnalogLimitSet_factory); + factory_map.emplace("AnalogLimitSet", &AnalogLimitSet_factory); } void AnalogLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -105,8 +137,8 @@ void AnalogLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimitSet.Limits", &assign_AnalogLimitSet_Limits); - assign_map.emplace("cim:AnalogLimitSet.Measurements", &assign_AnalogLimitSet_Measurements); + assign_map.emplace("AnalogLimitSet.Limits", &assign_AnalogLimitSet_Limits); + assign_map.emplace("AnalogLimitSet.Measurements", &assign_AnalogLimitSet_Measurements); } void AnalogLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,7 +149,7 @@ void AnalogLimitSet::addPrimitiveGetFnsToMap(std::map void AnalogLimitSet::addClassGetFnsToMap(std::map& get_map) const { LimitSet::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimitSet.Measurements", &get_AnalogLimitSet_Measurements); + get_map.emplace("AnalogLimitSet.Measurements", &get_AnalogLimitSet_Measurements); } void AnalogLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AnalogLimitSet::addEnumGetFnsToMap(std::map& get LimitSet::addEnumGetFnsToMap(get_map); } +bool AnalogLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogLimitSet::declare() { return BaseClassDefiner(AnalogLimitSet::addConstructToMap, AnalogLimitSet::addPrimitiveAssignFnsToMap, AnalogLimitSet::addClassAssignFnsToMap, AnalogLimitSet::debugName); } +std::map AnalogLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LimitSet::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogLimitSet_factory() diff --git a/CGMES_2.4.15_16FEB2016/AnalogLimitSet.hpp b/CGMES_2.4.15_16FEB2016/AnalogLimitSet.hpp index e5ecf9619..abd08b2a0 100644 --- a/CGMES_2.4.15_16FEB2016/AnalogLimitSet.hpp +++ b/CGMES_2.4.15_16FEB2016/AnalogLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LimitSet.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogLimitSet_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AnalogValue.cpp b/CGMES_2.4.15_16FEB2016/AnalogValue.cpp index 2c9ec60f2..fb2b6b3d7 100644 --- a/CGMES_2.4.15_16FEB2016/AnalogValue.cpp +++ b/CGMES_2.4.15_16FEB2016/AnalogValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogValue.Analog", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogValue.AnalogControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogValue::AnalogValue() : Analog(nullptr), AnalogControl(nullptr) {} AnalogValue::~AnalogValue() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogValue::getClassNamespaceUrl() const { - { "cim:AnalogValue.Analog", { CGMESProfile::EQ, } }, - { "cim:AnalogValue.AnalogControl", { CGMESProfile::EQ, } }, - { "cim:AnalogValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogValue::getPossibleProfilesForClass() const +const std::string& AnalogValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogValue::getPossibleProfilesForAttributes() const +const std::list& AnalogValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Analog_AnalogValues(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* AnalogValue::debugString() const void AnalogValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogValue", &AnalogValue_factory); + factory_map.emplace("AnalogValue", &AnalogValue_factory); } void AnalogValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogValue.value", &assign_AnalogValue_value); + assign_map.emplace("AnalogValue.value", &assign_AnalogValue_value); } void AnalogValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogValue.Analog", &assign_AnalogValue_Analog); - assign_map.emplace("cim:AnalogValue.AnalogControl", &assign_AnalogValue_AnalogControl); + assign_map.emplace("AnalogValue.Analog", &assign_AnalogValue_Analog); + assign_map.emplace("AnalogValue.AnalogControl", &assign_AnalogValue_AnalogControl); } void AnalogValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogValue.value", &get_AnalogValue_value); + get_map.emplace("AnalogValue.value", &get_AnalogValue_value); } void AnalogValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogValue.Analog", &get_AnalogValue_Analog); + get_map.emplace("AnalogValue.Analog", &get_AnalogValue_Analog); } void AnalogValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void AnalogValue::addEnumGetFnsToMap(std::map& get_ma MeasurementValue::addEnumGetFnsToMap(get_map); } +bool AnalogValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogValue::declare() { return BaseClassDefiner(AnalogValue::addConstructToMap, AnalogValue::addPrimitiveAssignFnsToMap, AnalogValue::addClassAssignFnsToMap, AnalogValue::debugName); } +std::map AnalogValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogValue_factory() diff --git a/CGMES_2.4.15_16FEB2016/AnalogValue.hpp b/CGMES_2.4.15_16FEB2016/AnalogValue.hpp index 6a1f17faf..09fb0dfb2 100644 --- a/CGMES_2.4.15_16FEB2016/AnalogValue.hpp +++ b/CGMES_2.4.15_16FEB2016/AnalogValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogValue_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ApparentPowerLimit.cpp b/CGMES_2.4.15_16FEB2016/ApparentPowerLimit.cpp index adbb44d3c..11ce5e75e 100644 --- a/CGMES_2.4.15_16FEB2016/ApparentPowerLimit.cpp +++ b/CGMES_2.4.15_16FEB2016/ApparentPowerLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ApparentPowerLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ApparentPowerLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ApparentPowerLimit::ApparentPowerLimit() {} ApparentPowerLimit::~ApparentPowerLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& ApparentPowerLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ApparentPowerLimit::getClassNamespaceUrl() const { - { "cim:ApparentPowerLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ApparentPowerLimit::getPossibleProfilesForClass() const +const std::string& ApparentPowerLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ApparentPowerLimit::getPossibleProfilesForAttributes() const +const std::list& ApparentPowerLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ApparentPowerLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ApparentPowerLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ApparentPowerLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ApparentPowerLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* ApparentPowerLimit::debugString() const void ApparentPowerLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ApparentPowerLimit", &ApparentPowerLimit_factory); + factory_map.emplace("ApparentPowerLimit", &ApparentPowerLimit_factory); } void ApparentPowerLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ApparentPowerLimit.value", &assign_ApparentPowerLimit_value); + assign_map.emplace("ApparentPowerLimit.value", &assign_ApparentPowerLimit_value); } void ApparentPowerLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void ApparentPowerLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ApparentPowerLimit.value", &get_ApparentPowerLimit_value); + get_map.emplace("ApparentPowerLimit.value", &get_ApparentPowerLimit_value); } void ApparentPowerLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void ApparentPowerLimit::addEnumGetFnsToMap(std::map& OperationalLimit::addEnumGetFnsToMap(get_map); } +bool ApparentPowerLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ApparentPowerLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ApparentPowerLimit::declare() { return BaseClassDefiner(ApparentPowerLimit::addConstructToMap, ApparentPowerLimit::addPrimitiveAssignFnsToMap, ApparentPowerLimit::addClassAssignFnsToMap, ApparentPowerLimit::debugName); } +std::map ApparentPowerLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ApparentPowerLimit_factory() diff --git a/CGMES_2.4.15_16FEB2016/ApparentPowerLimit.hpp b/CGMES_2.4.15_16FEB2016/ApparentPowerLimit.hpp index c9bf47334..b740e4d26 100644 --- a/CGMES_2.4.15_16FEB2016/ApparentPowerLimit.hpp +++ b/CGMES_2.4.15_16FEB2016/ApparentPowerLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ApparentPowerLimit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachine.cpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachine.cpp index 934692393..20db0142b 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachine.cpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachine.cpp @@ -12,44 +12,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachine.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachine.asynchronousMachineType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "AsynchronousMachine.converterFedDrive", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.efficiency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.iaIrRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.nominalFrequency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.nominalSpeed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.polePairNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.ratedMechanicalPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.reversible", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.rxLockedRotorRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachine::AsynchronousMachine() : AsynchronousMachineDynamics(nullptr) {} AsynchronousMachine::~AsynchronousMachine() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachine::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachine::getClassNamespaceUrl() const { - { "cim:AsynchronousMachine.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachine.asynchronousMachineType", { CGMESProfile::SSH, } }, - { "cim:AsynchronousMachine.converterFedDrive", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.efficiency", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.iaIrRatio", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.nominalFrequency", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.nominalSpeed", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.polePairNumber", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.ratedMechanicalPower", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.reversible", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.rxLockedRotorRatio", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachine::getPossibleProfilesForClass() const +const std::string& AsynchronousMachine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachine::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachine::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_AsynchronousMachine(BaseClass*, BaseClass*); @@ -368,40 +400,40 @@ const char* AsynchronousMachine::debugString() const void AsynchronousMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachine", &AsynchronousMachine_factory); + factory_map.emplace("AsynchronousMachine", &AsynchronousMachine_factory); } void AsynchronousMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachine.asynchronousMachineType", &assign_AsynchronousMachine_asynchronousMachineType); - assign_map.emplace("cim:AsynchronousMachine.converterFedDrive", &assign_AsynchronousMachine_converterFedDrive); - assign_map.emplace("cim:AsynchronousMachine.efficiency", &assign_AsynchronousMachine_efficiency); - assign_map.emplace("cim:AsynchronousMachine.iaIrRatio", &assign_AsynchronousMachine_iaIrRatio); - assign_map.emplace("cim:AsynchronousMachine.nominalFrequency", &assign_AsynchronousMachine_nominalFrequency); - assign_map.emplace("cim:AsynchronousMachine.nominalSpeed", &assign_AsynchronousMachine_nominalSpeed); - assign_map.emplace("cim:AsynchronousMachine.polePairNumber", &assign_AsynchronousMachine_polePairNumber); - assign_map.emplace("cim:AsynchronousMachine.ratedMechanicalPower", &assign_AsynchronousMachine_ratedMechanicalPower); - assign_map.emplace("cim:AsynchronousMachine.reversible", &assign_AsynchronousMachine_reversible); - assign_map.emplace("cim:AsynchronousMachine.rxLockedRotorRatio", &assign_AsynchronousMachine_rxLockedRotorRatio); + assign_map.emplace("AsynchronousMachine.asynchronousMachineType", &assign_AsynchronousMachine_asynchronousMachineType); + assign_map.emplace("AsynchronousMachine.converterFedDrive", &assign_AsynchronousMachine_converterFedDrive); + assign_map.emplace("AsynchronousMachine.efficiency", &assign_AsynchronousMachine_efficiency); + assign_map.emplace("AsynchronousMachine.iaIrRatio", &assign_AsynchronousMachine_iaIrRatio); + assign_map.emplace("AsynchronousMachine.nominalFrequency", &assign_AsynchronousMachine_nominalFrequency); + assign_map.emplace("AsynchronousMachine.nominalSpeed", &assign_AsynchronousMachine_nominalSpeed); + assign_map.emplace("AsynchronousMachine.polePairNumber", &assign_AsynchronousMachine_polePairNumber); + assign_map.emplace("AsynchronousMachine.ratedMechanicalPower", &assign_AsynchronousMachine_ratedMechanicalPower); + assign_map.emplace("AsynchronousMachine.reversible", &assign_AsynchronousMachine_reversible); + assign_map.emplace("AsynchronousMachine.rxLockedRotorRatio", &assign_AsynchronousMachine_rxLockedRotorRatio); } void AsynchronousMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachine.AsynchronousMachineDynamics", &assign_AsynchronousMachine_AsynchronousMachineDynamics); + assign_map.emplace("AsynchronousMachine.AsynchronousMachineDynamics", &assign_AsynchronousMachine_AsynchronousMachineDynamics); } void AsynchronousMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachine::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachine.converterFedDrive", &get_AsynchronousMachine_converterFedDrive); - get_map.emplace("cim:AsynchronousMachine.efficiency", &get_AsynchronousMachine_efficiency); - get_map.emplace("cim:AsynchronousMachine.iaIrRatio", &get_AsynchronousMachine_iaIrRatio); - get_map.emplace("cim:AsynchronousMachine.nominalFrequency", &get_AsynchronousMachine_nominalFrequency); - get_map.emplace("cim:AsynchronousMachine.nominalSpeed", &get_AsynchronousMachine_nominalSpeed); - get_map.emplace("cim:AsynchronousMachine.polePairNumber", &get_AsynchronousMachine_polePairNumber); - get_map.emplace("cim:AsynchronousMachine.ratedMechanicalPower", &get_AsynchronousMachine_ratedMechanicalPower); - get_map.emplace("cim:AsynchronousMachine.reversible", &get_AsynchronousMachine_reversible); - get_map.emplace("cim:AsynchronousMachine.rxLockedRotorRatio", &get_AsynchronousMachine_rxLockedRotorRatio); + get_map.emplace("AsynchronousMachine.converterFedDrive", &get_AsynchronousMachine_converterFedDrive); + get_map.emplace("AsynchronousMachine.efficiency", &get_AsynchronousMachine_efficiency); + get_map.emplace("AsynchronousMachine.iaIrRatio", &get_AsynchronousMachine_iaIrRatio); + get_map.emplace("AsynchronousMachine.nominalFrequency", &get_AsynchronousMachine_nominalFrequency); + get_map.emplace("AsynchronousMachine.nominalSpeed", &get_AsynchronousMachine_nominalSpeed); + get_map.emplace("AsynchronousMachine.polePairNumber", &get_AsynchronousMachine_polePairNumber); + get_map.emplace("AsynchronousMachine.ratedMechanicalPower", &get_AsynchronousMachine_ratedMechanicalPower); + get_map.emplace("AsynchronousMachine.reversible", &get_AsynchronousMachine_reversible); + get_map.emplace("AsynchronousMachine.rxLockedRotorRatio", &get_AsynchronousMachine_rxLockedRotorRatio); } void AsynchronousMachine::addClassGetFnsToMap(std::map& get_map) const @@ -412,7 +444,13 @@ void AsynchronousMachine::addClassGetFnsToMap(std::map& get_map) const { RotatingMachine::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachine.asynchronousMachineType", &get_AsynchronousMachine_asynchronousMachineType); + get_map.emplace("AsynchronousMachine.asynchronousMachineType", &get_AsynchronousMachine_asynchronousMachineType); +} + +bool AsynchronousMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AsynchronousMachine" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner AsynchronousMachine::declare() @@ -420,6 +458,14 @@ const BaseClassDefiner AsynchronousMachine::declare() return BaseClassDefiner(AsynchronousMachine::addConstructToMap, AsynchronousMachine::addPrimitiveAssignFnsToMap, AsynchronousMachine::addClassAssignFnsToMap, AsynchronousMachine::debugName); } +std::map AsynchronousMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachine::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachine_factory() diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachine.hpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachine.hpp index 9808c783d..90b7082fa 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachine.hpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachine.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "AsynchronousMachineKind.hpp" #include "Boolean.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachine_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachineDynamics.cpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachineDynamics.cpp index a7e89471f..2ae33600b 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachineDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachineDynamics.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineDynamics.AsynchronousMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.MechanicalLoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineDynamics::AsynchronousMachineDynamics() : AsynchronousMachine(nullptr), MechanicalLoadDynamics(nullptr), TurbineGovernorDynamics(nullptr), WindTurbineType1or2Dynamics(nullptr) {} AsynchronousMachineDynamics::~AsynchronousMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineDynamics::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineDynamics.AsynchronousMachine", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.MechanicalLoadDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineDynamics::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachine_AsynchronousMachineDynamics(BaseClass*, BaseClass*); @@ -139,7 +171,7 @@ const char* AsynchronousMachineDynamics::debugString() const void AsynchronousMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineDynamics", &AsynchronousMachineDynamics_factory); + factory_map.emplace("AsynchronousMachineDynamics", &AsynchronousMachineDynamics_factory); } void AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -148,10 +180,10 @@ void AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void AsynchronousMachineDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineDynamics.AsynchronousMachine", &assign_AsynchronousMachineDynamics_AsynchronousMachine); - assign_map.emplace("cim:AsynchronousMachineDynamics.MechanicalLoadDynamics", &assign_AsynchronousMachineDynamics_MechanicalLoadDynamics); - assign_map.emplace("cim:AsynchronousMachineDynamics.TurbineGovernorDynamics", &assign_AsynchronousMachineDynamics_TurbineGovernorDynamics); - assign_map.emplace("cim:AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", &assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics); + assign_map.emplace("AsynchronousMachineDynamics.AsynchronousMachine", &assign_AsynchronousMachineDynamics_AsynchronousMachine); + assign_map.emplace("AsynchronousMachineDynamics.MechanicalLoadDynamics", &assign_AsynchronousMachineDynamics_MechanicalLoadDynamics); + assign_map.emplace("AsynchronousMachineDynamics.TurbineGovernorDynamics", &assign_AsynchronousMachineDynamics_TurbineGovernorDynamics); + assign_map.emplace("AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", &assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics); } void AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -162,7 +194,7 @@ void AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachineDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineDynamics.AsynchronousMachine", &get_AsynchronousMachineDynamics_AsynchronousMachine); + get_map.emplace("AsynchronousMachineDynamics.AsynchronousMachine", &get_AsynchronousMachineDynamics_AsynchronousMachine); } void AsynchronousMachineDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -170,11 +202,25 @@ void AsynchronousMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineDynamics::declare() { return BaseClassDefiner(AsynchronousMachineDynamics::addConstructToMap, AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap, AsynchronousMachineDynamics::addClassAssignFnsToMap, AsynchronousMachineDynamics::debugName); } +std::map AsynchronousMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachineDynamics.hpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachineDynamics.hpp index bc0e2a13d..47bcafe5e 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachineDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachineEquivalentCircuit.cpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachineEquivalentCircuit.cpp index 5ed52c82d..69d074daa 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachineEquivalentCircuit.cpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachineEquivalentCircuit.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineEquivalentCircuit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineEquivalentCircuit.rr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.rr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xlr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xlr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineEquivalentCircuit::AsynchronousMachineEquivalentCircuit() {} AsynchronousMachineEquivalentCircuit::~AsynchronousMachineEquivalentCircuit() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineEquivalentCircuit::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineEquivalentCircuit::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineEquivalentCircuit.rr1", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.rr2", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xlr1", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xlr2", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineEquivalentCircuit::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineEquivalentCircuit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineEquivalentCircuit::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineEquivalentCircuit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineEquivalentCircuit_rr1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* AsynchronousMachineEquivalentCircuit::debugString() const void AsynchronousMachineEquivalentCircuit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineEquivalentCircuit", &AsynchronousMachineEquivalentCircuit_factory); + factory_map.emplace("AsynchronousMachineEquivalentCircuit", &AsynchronousMachineEquivalentCircuit_factory); } void AsynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr1", &assign_AsynchronousMachineEquivalentCircuit_rr1); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr2", &assign_AsynchronousMachineEquivalentCircuit_rr2); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr1", &assign_AsynchronousMachineEquivalentCircuit_xlr1); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr2", &assign_AsynchronousMachineEquivalentCircuit_xlr2); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xm", &assign_AsynchronousMachineEquivalentCircuit_xm); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.rr1", &assign_AsynchronousMachineEquivalentCircuit_rr1); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.rr2", &assign_AsynchronousMachineEquivalentCircuit_rr2); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xlr1", &assign_AsynchronousMachineEquivalentCircuit_xlr1); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xlr2", &assign_AsynchronousMachineEquivalentCircuit_xlr2); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xm", &assign_AsynchronousMachineEquivalentCircuit_xm); } void AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered void AsynchronousMachineEquivalentCircuit::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr1", &get_AsynchronousMachineEquivalentCircuit_rr1); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr2", &get_AsynchronousMachineEquivalentCircuit_rr2); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr1", &get_AsynchronousMachineEquivalentCircuit_xlr1); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr2", &get_AsynchronousMachineEquivalentCircuit_xlr2); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xm", &get_AsynchronousMachineEquivalentCircuit_xm); + get_map.emplace("AsynchronousMachineEquivalentCircuit.rr1", &get_AsynchronousMachineEquivalentCircuit_rr1); + get_map.emplace("AsynchronousMachineEquivalentCircuit.rr2", &get_AsynchronousMachineEquivalentCircuit_rr2); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xlr1", &get_AsynchronousMachineEquivalentCircuit_xlr1); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xlr2", &get_AsynchronousMachineEquivalentCircuit_xlr2); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xm", &get_AsynchronousMachineEquivalentCircuit_xm); } void AsynchronousMachineEquivalentCircuit::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void AsynchronousMachineEquivalentCircuit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineEquivalentCircuit::declare() { return BaseClassDefiner(AsynchronousMachineEquivalentCircuit::addConstructToMap, AsynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap, AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap, AsynchronousMachineEquivalentCircuit::debugName); } +std::map AsynchronousMachineEquivalentCircuit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineEquivalentCircuit_factory() diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachineEquivalentCircuit.hpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachineEquivalentCircuit.hpp index 0280d8e3e..f1d8915cf 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachineEquivalentCircuit.hpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachineEquivalentCircuit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineEquivalentCircuit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachineTimeConstantReactance.cpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachineTimeConstantReactance.cpp index 4f8d1492d..28a9cbfaa 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachineTimeConstantReactance.cpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachineTimeConstantReactance.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineTimeConstantReactance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineTimeConstantReactance.tpo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.tppo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineTimeConstantReactance::AsynchronousMachineTimeConstantReactance() {} AsynchronousMachineTimeConstantReactance::~AsynchronousMachineTimeConstantReactance() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineTimeConstantReactance::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineTimeConstantReactance::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineTimeConstantReactance.tpo", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.tppo", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xp", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xpp", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineTimeConstantReactance::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineTimeConstantReactance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineTimeConstantReactance::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineTimeConstantReactance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineTimeConstantReactance_tpo(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* AsynchronousMachineTimeConstantReactance::debugString() const void AsynchronousMachineTimeConstantReactance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineTimeConstantReactance", &AsynchronousMachineTimeConstantReactance_factory); + factory_map.emplace("AsynchronousMachineTimeConstantReactance", &AsynchronousMachineTimeConstantReactance_factory); } void AsynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tpo", &assign_AsynchronousMachineTimeConstantReactance_tpo); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tppo", &assign_AsynchronousMachineTimeConstantReactance_tppo); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xp", &assign_AsynchronousMachineTimeConstantReactance_xp); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xpp", &assign_AsynchronousMachineTimeConstantReactance_xpp); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xs", &assign_AsynchronousMachineTimeConstantReactance_xs); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.tpo", &assign_AsynchronousMachineTimeConstantReactance_tpo); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.tppo", &assign_AsynchronousMachineTimeConstantReactance_tppo); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xp", &assign_AsynchronousMachineTimeConstantReactance_xp); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xpp", &assign_AsynchronousMachineTimeConstantReactance_xpp); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xs", &assign_AsynchronousMachineTimeConstantReactance_xs); } void AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unord void AsynchronousMachineTimeConstantReactance::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tpo", &get_AsynchronousMachineTimeConstantReactance_tpo); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tppo", &get_AsynchronousMachineTimeConstantReactance_tppo); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xp", &get_AsynchronousMachineTimeConstantReactance_xp); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xpp", &get_AsynchronousMachineTimeConstantReactance_xpp); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xs", &get_AsynchronousMachineTimeConstantReactance_xs); + get_map.emplace("AsynchronousMachineTimeConstantReactance.tpo", &get_AsynchronousMachineTimeConstantReactance_tpo); + get_map.emplace("AsynchronousMachineTimeConstantReactance.tppo", &get_AsynchronousMachineTimeConstantReactance_tppo); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xp", &get_AsynchronousMachineTimeConstantReactance_xp); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xpp", &get_AsynchronousMachineTimeConstantReactance_xpp); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xs", &get_AsynchronousMachineTimeConstantReactance_xs); } void AsynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void AsynchronousMachineTimeConstantReactance::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineTimeConstantReactance::declare() { return BaseClassDefiner(AsynchronousMachineTimeConstantReactance::addConstructToMap, AsynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap, AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap, AsynchronousMachineTimeConstantReactance::debugName); } +std::map AsynchronousMachineTimeConstantReactance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineTimeConstantReactance_factory() diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachineTimeConstantReactance.hpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachineTimeConstantReactance.hpp index 8c5a0b3f6..3ff208eda 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachineTimeConstantReactance.hpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachineTimeConstantReactance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineTimeConstantReactance_factory(); diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachineUserDefined.cpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachineUserDefined.cpp index df2454abf..bd6bfa976 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachineUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachineUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineUserDefined::AsynchronousMachineUserDefined() {} AsynchronousMachineUserDefined::~AsynchronousMachineUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineUserDefined::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineUserDefined::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineUserDefined::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* AsynchronousMachineUserDefined::debugString() const void AsynchronousMachineUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineUserDefined", &AsynchronousMachineUserDefined_factory); + factory_map.emplace("AsynchronousMachineUserDefined", &AsynchronousMachineUserDefined_factory); } void AsynchronousMachineUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineUserDefined.proprietary", &assign_AsynchronousMachineUserDefined_proprietary); + assign_map.emplace("AsynchronousMachineUserDefined.proprietary", &assign_AsynchronousMachineUserDefined_proprietary); } void AsynchronousMachineUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("AsynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics); } void AsynchronousMachineUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineUserDefined.proprietary", &get_AsynchronousMachineUserDefined_proprietary); + get_map.emplace("AsynchronousMachineUserDefined.proprietary", &get_AsynchronousMachineUserDefined_proprietary); } void AsynchronousMachineUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AsynchronousMachineUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineUserDefined::declare() { return BaseClassDefiner(AsynchronousMachineUserDefined::addConstructToMap, AsynchronousMachineUserDefined::addPrimitiveAssignFnsToMap, AsynchronousMachineUserDefined::addClassAssignFnsToMap, AsynchronousMachineUserDefined::debugName); } +std::map AsynchronousMachineUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/AsynchronousMachineUserDefined.hpp b/CGMES_2.4.15_16FEB2016/AsynchronousMachineUserDefined.hpp index 76f2416f2..f9dc049e3 100644 --- a/CGMES_2.4.15_16FEB2016/AsynchronousMachineUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/AsynchronousMachineUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/BaseVoltage.cpp b/CGMES_2.4.15_16FEB2016/BaseVoltage.cpp index b4ba1e5da..a0c59ef18 100644 --- a/CGMES_2.4.15_16FEB2016/BaseVoltage.cpp +++ b/CGMES_2.4.15_16FEB2016/BaseVoltage.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BaseVoltage(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BaseVoltage.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "BaseVoltage.TransformerEnds", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.VoltageLevel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.nominalVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BaseVoltage::BaseVoltage() {} BaseVoltage::~BaseVoltage() {} -static const std::list PossibleProfilesForClass = +const std::list& BaseVoltage::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BaseVoltage::getClassNamespaceUrl() const { - { "cim:BaseVoltage.ConductingEquipment", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:BaseVoltage.TransformerEnds", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.VoltageLevel", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.nominalVoltage", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BaseVoltage::getPossibleProfilesForClass() const +const std::string& BaseVoltage::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BaseVoltage::getPossibleProfilesForAttributes() const +const std::list& BaseVoltage::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BaseVoltage::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BaseVoltage::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BaseVoltage::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_BaseVoltage(BaseClass*, BaseClass*); @@ -159,26 +191,26 @@ const char* BaseVoltage::debugString() const void BaseVoltage::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BaseVoltage", &BaseVoltage_factory); + factory_map.emplace("BaseVoltage", &BaseVoltage_factory); } void BaseVoltage::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BaseVoltage.nominalVoltage", &assign_BaseVoltage_nominalVoltage); + assign_map.emplace("BaseVoltage.nominalVoltage", &assign_BaseVoltage_nominalVoltage); } void BaseVoltage::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BaseVoltage.ConductingEquipment", &assign_BaseVoltage_ConductingEquipment); - assign_map.emplace("cim:BaseVoltage.TopologicalNode", &assign_BaseVoltage_TopologicalNode); - assign_map.emplace("cim:BaseVoltage.TransformerEnds", &assign_BaseVoltage_TransformerEnds); - assign_map.emplace("cim:BaseVoltage.VoltageLevel", &assign_BaseVoltage_VoltageLevel); + assign_map.emplace("BaseVoltage.ConductingEquipment", &assign_BaseVoltage_ConductingEquipment); + assign_map.emplace("BaseVoltage.TopologicalNode", &assign_BaseVoltage_TopologicalNode); + assign_map.emplace("BaseVoltage.TransformerEnds", &assign_BaseVoltage_TransformerEnds); + assign_map.emplace("BaseVoltage.VoltageLevel", &assign_BaseVoltage_VoltageLevel); } void BaseVoltage::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BaseVoltage.nominalVoltage", &get_BaseVoltage_nominalVoltage); + get_map.emplace("BaseVoltage.nominalVoltage", &get_BaseVoltage_nominalVoltage); } void BaseVoltage::addClassGetFnsToMap(std::map& get_map) const @@ -191,11 +223,25 @@ void BaseVoltage::addEnumGetFnsToMap(std::map& get_ma IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool BaseVoltage::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BaseVoltage" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BaseVoltage::declare() { return BaseClassDefiner(BaseVoltage::addConstructToMap, BaseVoltage::addPrimitiveAssignFnsToMap, BaseVoltage::addClassAssignFnsToMap, BaseVoltage::debugName); } +std::map BaseVoltage::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BaseVoltage_factory() diff --git a/CGMES_2.4.15_16FEB2016/BaseVoltage.hpp b/CGMES_2.4.15_16FEB2016/BaseVoltage.hpp index 5e04e5f8a..72d1ad2f2 100644 --- a/CGMES_2.4.15_16FEB2016/BaseVoltage.hpp +++ b/CGMES_2.4.15_16FEB2016/BaseVoltage.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BaseVoltage_factory(); diff --git a/CGMES_2.4.15_16FEB2016/BasicIntervalSchedule.cpp b/CGMES_2.4.15_16FEB2016/BasicIntervalSchedule.cpp index 2daa4c674..86dfa504e 100644 --- a/CGMES_2.4.15_16FEB2016/BasicIntervalSchedule.cpp +++ b/CGMES_2.4.15_16FEB2016/BasicIntervalSchedule.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BasicIntervalSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BasicIntervalSchedule.startTime", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BasicIntervalSchedule.value1Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BasicIntervalSchedule.value2Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BasicIntervalSchedule::BasicIntervalSchedule() {} BasicIntervalSchedule::~BasicIntervalSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& BasicIntervalSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BasicIntervalSchedule::getClassNamespaceUrl() const { - { "cim:BasicIntervalSchedule.startTime", { CGMESProfile::EQ, } }, - { "cim:BasicIntervalSchedule.value1Unit", { CGMESProfile::EQ, } }, - { "cim:BasicIntervalSchedule.value2Unit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BasicIntervalSchedule::getPossibleProfilesForClass() const +const std::string& BasicIntervalSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BasicIntervalSchedule::getPossibleProfilesForAttributes() const +const std::list& BasicIntervalSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BasicIntervalSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BasicIntervalSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BasicIntervalSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BasicIntervalSchedule_startTime(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* BasicIntervalSchedule::debugString() const void BasicIntervalSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BasicIntervalSchedule", &BasicIntervalSchedule_factory); + factory_map.emplace("BasicIntervalSchedule", &BasicIntervalSchedule_factory); } void BasicIntervalSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BasicIntervalSchedule.startTime", &assign_BasicIntervalSchedule_startTime); - assign_map.emplace("cim:BasicIntervalSchedule.value1Unit", &assign_BasicIntervalSchedule_value1Unit); - assign_map.emplace("cim:BasicIntervalSchedule.value2Unit", &assign_BasicIntervalSchedule_value2Unit); + assign_map.emplace("BasicIntervalSchedule.startTime", &assign_BasicIntervalSchedule_startTime); + assign_map.emplace("BasicIntervalSchedule.value1Unit", &assign_BasicIntervalSchedule_value1Unit); + assign_map.emplace("BasicIntervalSchedule.value2Unit", &assign_BasicIntervalSchedule_value2Unit); } void BasicIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,7 +185,7 @@ void BasicIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BasicIntervalSchedule.startTime", &get_BasicIntervalSchedule_startTime); + get_map.emplace("BasicIntervalSchedule.startTime", &get_BasicIntervalSchedule_startTime); } void BasicIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const @@ -164,8 +196,14 @@ void BasicIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:BasicIntervalSchedule.value1Unit", &get_BasicIntervalSchedule_value1Unit); - get_map.emplace("cim:BasicIntervalSchedule.value2Unit", &get_BasicIntervalSchedule_value2Unit); + get_map.emplace("BasicIntervalSchedule.value1Unit", &get_BasicIntervalSchedule_value1Unit); + get_map.emplace("BasicIntervalSchedule.value2Unit", &get_BasicIntervalSchedule_value2Unit); +} + +bool BasicIntervalSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BasicIntervalSchedule" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner BasicIntervalSchedule::declare() @@ -173,6 +211,14 @@ const BaseClassDefiner BasicIntervalSchedule::declare() return BaseClassDefiner(BasicIntervalSchedule::addConstructToMap, BasicIntervalSchedule::addPrimitiveAssignFnsToMap, BasicIntervalSchedule::addClassAssignFnsToMap, BasicIntervalSchedule::debugName); } +std::map BasicIntervalSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BasicIntervalSchedule_factory() diff --git a/CGMES_2.4.15_16FEB2016/BasicIntervalSchedule.hpp b/CGMES_2.4.15_16FEB2016/BasicIntervalSchedule.hpp index 610f2e7d6..cd7deb84a 100644 --- a/CGMES_2.4.15_16FEB2016/BasicIntervalSchedule.hpp +++ b/CGMES_2.4.15_16FEB2016/BasicIntervalSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "UnitSymbol.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BasicIntervalSchedule_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Bay.cpp b/CGMES_2.4.15_16FEB2016/Bay.cpp index bf629aae8..4102a120f 100644 --- a/CGMES_2.4.15_16FEB2016/Bay.cpp +++ b/CGMES_2.4.15_16FEB2016/Bay.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Bay(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Bay.VoltageLevel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Bay::Bay() : VoltageLevel(nullptr) {} Bay::~Bay() {} -static const std::list PossibleProfilesForClass = +const std::list& Bay::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Bay::getClassNamespaceUrl() const { - { "cim:Bay.VoltageLevel", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Bay::getPossibleProfilesForClass() const +const std::string& Bay::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Bay::getPossibleProfilesForAttributes() const +const std::list& Bay::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Bay::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Bay::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Bay::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VoltageLevel_Bays(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* Bay::debugString() const void Bay::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Bay", &Bay_factory); + factory_map.emplace("Bay", &Bay_factory); } void Bay::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void Bay::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Bay.VoltageLevel", &assign_Bay_VoltageLevel); + assign_map.emplace("Bay.VoltageLevel", &assign_Bay_VoltageLevel); } void Bay::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void Bay::addPrimitiveGetFnsToMap(std::map& get_map) void Bay::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Bay.VoltageLevel", &get_Bay_VoltageLevel); + get_map.emplace("Bay.VoltageLevel", &get_Bay_VoltageLevel); } void Bay::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void Bay::addEnumGetFnsToMap(std::map& get_map) const EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Bay::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Bay" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Bay::declare() { return BaseClassDefiner(Bay::addConstructToMap, Bay::addPrimitiveAssignFnsToMap, Bay::addClassAssignFnsToMap, Bay::debugName); } +std::map Bay::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Bay_factory() diff --git a/CGMES_2.4.15_16FEB2016/Bay.hpp b/CGMES_2.4.15_16FEB2016/Bay.hpp index 7d30425e4..2ec947982 100644 --- a/CGMES_2.4.15_16FEB2016/Bay.hpp +++ b/CGMES_2.4.15_16FEB2016/Bay.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Bay_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Breaker.cpp b/CGMES_2.4.15_16FEB2016/Breaker.cpp index 034b1ee93..09c0e6df6 100644 --- a/CGMES_2.4.15_16FEB2016/Breaker.cpp +++ b/CGMES_2.4.15_16FEB2016/Breaker.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Breaker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Breaker::Breaker() {} Breaker::~Breaker() {} -static const std::list PossibleProfilesForClass = +const std::list& Breaker::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Breaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Breaker::getPossibleProfilesForClass() const +const std::string& Breaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Breaker::getPossibleProfilesForAttributes() const +const std::list& Breaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ProtectedSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Breaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Breaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Breaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Breaker::debugName[] = "Breaker"; @@ -47,7 +79,7 @@ const char* Breaker::debugString() const void Breaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Breaker", &Breaker_factory); + factory_map.emplace("Breaker", &Breaker_factory); } void Breaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Breaker::addEnumGetFnsToMap(std::map& get_map) c ProtectedSwitch::addEnumGetFnsToMap(get_map); } +bool Breaker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Breaker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Breaker::declare() { return BaseClassDefiner(Breaker::addConstructToMap, Breaker::addPrimitiveAssignFnsToMap, Breaker::addClassAssignFnsToMap, Breaker::debugName); } +std::map Breaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ProtectedSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Breaker_factory() diff --git a/CGMES_2.4.15_16FEB2016/Breaker.hpp b/CGMES_2.4.15_16FEB2016/Breaker.hpp index 812da0f56..f50099984 100644 --- a/CGMES_2.4.15_16FEB2016/Breaker.hpp +++ b/CGMES_2.4.15_16FEB2016/Breaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ProtectedSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Breaker_factory(); diff --git a/CGMES_2.4.15_16FEB2016/BusNameMarker.cpp b/CGMES_2.4.15_16FEB2016/BusNameMarker.cpp index 24a10645f..42ca46832 100644 --- a/CGMES_2.4.15_16FEB2016/BusNameMarker.cpp +++ b/CGMES_2.4.15_16FEB2016/BusNameMarker.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BusNameMarker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BusNameMarker.ReportingGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BusNameMarker.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BusNameMarker.priority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BusNameMarker::BusNameMarker() : ReportingGroup(nullptr) {} BusNameMarker::~BusNameMarker() {} -static const std::list PossibleProfilesForClass = +const std::list& BusNameMarker::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BusNameMarker::getClassNamespaceUrl() const { - { "cim:BusNameMarker.ReportingGroup", { CGMESProfile::EQ, } }, - { "cim:BusNameMarker.Terminal", { CGMESProfile::EQ, } }, - { "cim:BusNameMarker.priority", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BusNameMarker::getPossibleProfilesForClass() const +const std::string& BusNameMarker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BusNameMarker::getPossibleProfilesForAttributes() const +const std::list& BusNameMarker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BusNameMarker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BusNameMarker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BusNameMarker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReportingGroup_BusNameMarker(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* BusNameMarker::debugString() const void BusNameMarker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BusNameMarker", &BusNameMarker_factory); + factory_map.emplace("BusNameMarker", &BusNameMarker_factory); } void BusNameMarker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusNameMarker.priority", &assign_BusNameMarker_priority); + assign_map.emplace("BusNameMarker.priority", &assign_BusNameMarker_priority); } void BusNameMarker::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusNameMarker.ReportingGroup", &assign_BusNameMarker_ReportingGroup); - assign_map.emplace("cim:BusNameMarker.Terminal", &assign_BusNameMarker_Terminal); + assign_map.emplace("BusNameMarker.ReportingGroup", &assign_BusNameMarker_ReportingGroup); + assign_map.emplace("BusNameMarker.Terminal", &assign_BusNameMarker_Terminal); } void BusNameMarker::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BusNameMarker.priority", &get_BusNameMarker_priority); + get_map.emplace("BusNameMarker.priority", &get_BusNameMarker_priority); } void BusNameMarker::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:BusNameMarker.ReportingGroup", &get_BusNameMarker_ReportingGroup); + get_map.emplace("BusNameMarker.ReportingGroup", &get_BusNameMarker_ReportingGroup); } void BusNameMarker::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void BusNameMarker::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool BusNameMarker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BusNameMarker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BusNameMarker::declare() { return BaseClassDefiner(BusNameMarker::addConstructToMap, BusNameMarker::addPrimitiveAssignFnsToMap, BusNameMarker::addClassAssignFnsToMap, BusNameMarker::debugName); } +std::map BusNameMarker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BusNameMarker_factory() diff --git a/CGMES_2.4.15_16FEB2016/BusNameMarker.hpp b/CGMES_2.4.15_16FEB2016/BusNameMarker.hpp index 7aa5a6d42..fcb3906d1 100644 --- a/CGMES_2.4.15_16FEB2016/BusNameMarker.hpp +++ b/CGMES_2.4.15_16FEB2016/BusNameMarker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BusNameMarker_factory(); diff --git a/CGMES_2.4.15_16FEB2016/BusbarSection.cpp b/CGMES_2.4.15_16FEB2016/BusbarSection.cpp index 2b6048953..29a5e8b28 100644 --- a/CGMES_2.4.15_16FEB2016/BusbarSection.cpp +++ b/CGMES_2.4.15_16FEB2016/BusbarSection.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BusbarSection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BusbarSection.ipMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BusbarSection::BusbarSection() {} BusbarSection::~BusbarSection() {} -static const std::list PossibleProfilesForClass = +const std::list& BusbarSection::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BusbarSection::getClassNamespaceUrl() const { - { "cim:BusbarSection.ipMax", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BusbarSection::getPossibleProfilesForClass() const +const std::string& BusbarSection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BusbarSection::getPossibleProfilesForAttributes() const +const std::list& BusbarSection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Connector::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BusbarSection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BusbarSection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BusbarSection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusbarSection_ipMax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* BusbarSection::debugString() const void BusbarSection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BusbarSection", &BusbarSection_factory); + factory_map.emplace("BusbarSection", &BusbarSection_factory); } void BusbarSection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusbarSection.ipMax", &assign_BusbarSection_ipMax); + assign_map.emplace("BusbarSection.ipMax", &assign_BusbarSection_ipMax); } void BusbarSection::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void BusbarSection::addClassAssignFnsToMap(std::unordered_map& get_map) const { Connector::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BusbarSection.ipMax", &get_BusbarSection_ipMax); + get_map.emplace("BusbarSection.ipMax", &get_BusbarSection_ipMax); } void BusbarSection::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void BusbarSection::addEnumGetFnsToMap(std::map& get_ Connector::addEnumGetFnsToMap(get_map); } +bool BusbarSection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BusbarSection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BusbarSection::declare() { return BaseClassDefiner(BusbarSection::addConstructToMap, BusbarSection::addPrimitiveAssignFnsToMap, BusbarSection::addClassAssignFnsToMap, BusbarSection::debugName); } +std::map BusbarSection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Connector::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BusbarSection_factory() diff --git a/CGMES_2.4.15_16FEB2016/BusbarSection.hpp b/CGMES_2.4.15_16FEB2016/BusbarSection.hpp index 1fa53d221..43d80e3f0 100644 --- a/CGMES_2.4.15_16FEB2016/BusbarSection.hpp +++ b/CGMES_2.4.15_16FEB2016/BusbarSection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Connector.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BusbarSection_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Command.cpp b/CGMES_2.4.15_16FEB2016/Command.cpp index 7a02eb36a..509d9ffa9 100644 --- a/CGMES_2.4.15_16FEB2016/Command.cpp +++ b/CGMES_2.4.15_16FEB2016/Command.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Command(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Command.DiscreteValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.normalValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Command::Command() : DiscreteValue(nullptr), ValueAliasSet(nullptr) {} Command::~Command() {} -static const std::list PossibleProfilesForClass = +const std::list& Command::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Command::getClassNamespaceUrl() const { - { "cim:Command.DiscreteValue", { CGMESProfile::EQ, } }, - { "cim:Command.ValueAliasSet", { CGMESProfile::EQ, } }, - { "cim:Command.normalValue", { CGMESProfile::EQ, } }, - { "cim:Command.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Command::getPossibleProfilesForClass() const +const std::string& Command::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Command::getPossibleProfilesForAttributes() const +const std::list& Command::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Command::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Command::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Command::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscreteValue_Command(BaseClass*, BaseClass*); @@ -172,33 +204,33 @@ const char* Command::debugString() const void Command::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Command", &Command_factory); + factory_map.emplace("Command", &Command_factory); } void Command::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Command.normalValue", &assign_Command_normalValue); - assign_map.emplace("cim:Command.value", &assign_Command_value); + assign_map.emplace("Command.normalValue", &assign_Command_normalValue); + assign_map.emplace("Command.value", &assign_Command_value); } void Command::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Command.DiscreteValue", &assign_Command_DiscreteValue); - assign_map.emplace("cim:Command.ValueAliasSet", &assign_Command_ValueAliasSet); + assign_map.emplace("Command.DiscreteValue", &assign_Command_DiscreteValue); + assign_map.emplace("Command.ValueAliasSet", &assign_Command_ValueAliasSet); } void Command::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Command.normalValue", &get_Command_normalValue); - get_map.emplace("cim:Command.value", &get_Command_value); + get_map.emplace("Command.normalValue", &get_Command_normalValue); + get_map.emplace("Command.value", &get_Command_value); } void Command::addClassGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Command.DiscreteValue", &get_Command_DiscreteValue); - get_map.emplace("cim:Command.ValueAliasSet", &get_Command_ValueAliasSet); + get_map.emplace("Command.DiscreteValue", &get_Command_DiscreteValue); + get_map.emplace("Command.ValueAliasSet", &get_Command_ValueAliasSet); } void Command::addEnumGetFnsToMap(std::map& get_map) const @@ -206,11 +238,25 @@ void Command::addEnumGetFnsToMap(std::map& get_map) c Control::addEnumGetFnsToMap(get_map); } +bool Command::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Command" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Command::declare() { return BaseClassDefiner(Command::addConstructToMap, Command::addPrimitiveAssignFnsToMap, Command::addClassAssignFnsToMap, Command::debugName); } +std::map Command::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Command_factory() diff --git a/CGMES_2.4.15_16FEB2016/Command.hpp b/CGMES_2.4.15_16FEB2016/Command.hpp index e91f39202..5ea7c2d05 100644 --- a/CGMES_2.4.15_16FEB2016/Command.hpp +++ b/CGMES_2.4.15_16FEB2016/Command.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Command_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ConductingEquipment.cpp b/CGMES_2.4.15_16FEB2016/ConductingEquipment.cpp index 77cbe0b92..1d2ce9281 100644 --- a/CGMES_2.4.15_16FEB2016/ConductingEquipment.cpp +++ b/CGMES_2.4.15_16FEB2016/ConductingEquipment.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConductingEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConductingEquipment.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConductingEquipment.SvStatus", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ConductingEquipment.Terminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConductingEquipment::ConductingEquipment() : BaseVoltage(nullptr), SvStatus(nullptr) {} ConductingEquipment::~ConductingEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& ConductingEquipment::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConductingEquipment::getClassNamespaceUrl() const { - { "cim:ConductingEquipment.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:ConductingEquipment.SvStatus", { CGMESProfile::SV, } }, - { "cim:ConductingEquipment.Terminals", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConductingEquipment::getPossibleProfilesForClass() const +const std::string& ConductingEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConductingEquipment::getPossibleProfilesForAttributes() const +const std::list& ConductingEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConductingEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConductingEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConductingEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_ConductingEquipment(BaseClass*, BaseClass*); @@ -123,7 +155,7 @@ const char* ConductingEquipment::debugString() const void ConductingEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConductingEquipment", &ConductingEquipment_factory); + factory_map.emplace("ConductingEquipment", &ConductingEquipment_factory); } void ConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -132,9 +164,9 @@ void ConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConductingEquipment.BaseVoltage", &assign_ConductingEquipment_BaseVoltage); - assign_map.emplace("cim:ConductingEquipment.SvStatus", &assign_ConductingEquipment_SvStatus); - assign_map.emplace("cim:ConductingEquipment.Terminals", &assign_ConductingEquipment_Terminals); + assign_map.emplace("ConductingEquipment.BaseVoltage", &assign_ConductingEquipment_BaseVoltage); + assign_map.emplace("ConductingEquipment.SvStatus", &assign_ConductingEquipment_SvStatus); + assign_map.emplace("ConductingEquipment.Terminals", &assign_ConductingEquipment_Terminals); } void ConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -145,7 +177,7 @@ void ConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConductingEquipment.BaseVoltage", &get_ConductingEquipment_BaseVoltage); + get_map.emplace("ConductingEquipment.BaseVoltage", &get_ConductingEquipment_BaseVoltage); } void ConductingEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -153,11 +185,25 @@ void ConductingEquipment::addEnumGetFnsToMap(std::map Equipment::addEnumGetFnsToMap(get_map); } +bool ConductingEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConductingEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConductingEquipment::declare() { return BaseClassDefiner(ConductingEquipment::addConstructToMap, ConductingEquipment::addPrimitiveAssignFnsToMap, ConductingEquipment::addClassAssignFnsToMap, ConductingEquipment::debugName); } +std::map ConductingEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConductingEquipment_factory() diff --git a/CGMES_2.4.15_16FEB2016/ConductingEquipment.hpp b/CGMES_2.4.15_16FEB2016/ConductingEquipment.hpp index 633a41871..6c8426a9c 100644 --- a/CGMES_2.4.15_16FEB2016/ConductingEquipment.hpp +++ b/CGMES_2.4.15_16FEB2016/ConductingEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConductingEquipment_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Conductor.cpp b/CGMES_2.4.15_16FEB2016/Conductor.cpp index c3579e253..91e37ed92 100644 --- a/CGMES_2.4.15_16FEB2016/Conductor.cpp +++ b/CGMES_2.4.15_16FEB2016/Conductor.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Conductor(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Conductor.length", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Conductor::Conductor() {} Conductor::~Conductor() {} -static const std::list PossibleProfilesForClass = +const std::list& Conductor::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Conductor::getClassNamespaceUrl() const { - { "cim:Conductor.length", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Conductor::getPossibleProfilesForClass() const +const std::string& Conductor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Conductor::getPossibleProfilesForAttributes() const +const std::list& Conductor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Conductor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Conductor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Conductor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Conductor_length(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* Conductor::debugString() const void Conductor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Conductor", &Conductor_factory); + factory_map.emplace("Conductor", &Conductor_factory); } void Conductor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Conductor.length", &assign_Conductor_length); + assign_map.emplace("Conductor.length", &assign_Conductor_length); } void Conductor::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void Conductor::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Conductor.length", &get_Conductor_length); + get_map.emplace("Conductor.length", &get_Conductor_length); } void Conductor::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void Conductor::addEnumGetFnsToMap(std::map& get_map) ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Conductor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Conductor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Conductor::declare() { return BaseClassDefiner(Conductor::addConstructToMap, Conductor::addPrimitiveAssignFnsToMap, Conductor::addClassAssignFnsToMap, Conductor::debugName); } +std::map Conductor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Conductor_factory() diff --git a/CGMES_2.4.15_16FEB2016/Conductor.hpp b/CGMES_2.4.15_16FEB2016/Conductor.hpp index cb84bd42d..2982c6862 100644 --- a/CGMES_2.4.15_16FEB2016/Conductor.hpp +++ b/CGMES_2.4.15_16FEB2016/Conductor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Length.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Conductor_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ConformLoad.cpp b/CGMES_2.4.15_16FEB2016/ConformLoad.cpp index ab5e59f20..2881e350f 100644 --- a/CGMES_2.4.15_16FEB2016/ConformLoad.cpp +++ b/CGMES_2.4.15_16FEB2016/ConformLoad.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoad(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoad.LoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoad::ConformLoad() : LoadGroup(nullptr) {} ConformLoad::~ConformLoad() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoad::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoad::getClassNamespaceUrl() const { - { "cim:ConformLoad.LoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoad::getPossibleProfilesForClass() const +const std::string& ConformLoad::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoad::getPossibleProfilesForAttributes() const +const std::list& ConformLoad::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoad::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoad::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoad::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadGroup_EnergyConsumers(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* ConformLoad::debugString() const void ConformLoad::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoad", &ConformLoad_factory); + factory_map.emplace("ConformLoad", &ConformLoad_factory); } void ConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void ConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoad.LoadGroup", &assign_ConformLoad_LoadGroup); + assign_map.emplace("ConformLoad.LoadGroup", &assign_ConformLoad_LoadGroup); } void ConformLoad::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void ConformLoad::addPrimitiveGetFnsToMap(std::map& g void ConformLoad::addClassGetFnsToMap(std::map& get_map) const { EnergyConsumer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConformLoad.LoadGroup", &get_ConformLoad_LoadGroup); + get_map.emplace("ConformLoad.LoadGroup", &get_ConformLoad_LoadGroup); } void ConformLoad::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void ConformLoad::addEnumGetFnsToMap(std::map& get_ma EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool ConformLoad::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoad" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoad::declare() { return BaseClassDefiner(ConformLoad::addConstructToMap, ConformLoad::addPrimitiveAssignFnsToMap, ConformLoad::addClassAssignFnsToMap, ConformLoad::debugName); } +std::map ConformLoad::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoad_factory() diff --git a/CGMES_2.4.15_16FEB2016/ConformLoad.hpp b/CGMES_2.4.15_16FEB2016/ConformLoad.hpp index 0448c6f96..7a3c55f03 100644 --- a/CGMES_2.4.15_16FEB2016/ConformLoad.hpp +++ b/CGMES_2.4.15_16FEB2016/ConformLoad.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoad_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ConformLoadGroup.cpp b/CGMES_2.4.15_16FEB2016/ConformLoadGroup.cpp index c8d5c15fa..2518ece15 100644 --- a/CGMES_2.4.15_16FEB2016/ConformLoadGroup.cpp +++ b/CGMES_2.4.15_16FEB2016/ConformLoadGroup.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoadGroup.ConformLoadSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConformLoadGroup.EnergyConsumers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoadGroup::ConformLoadGroup() {} ConformLoadGroup::~ConformLoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoadGroup::getClassNamespaceUrl() const { - { "cim:ConformLoadGroup.ConformLoadSchedules", { CGMESProfile::EQ, } }, - { "cim:ConformLoadGroup.EnergyConsumers", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoadGroup::getPossibleProfilesForClass() const +const std::string& ConformLoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoadGroup::getPossibleProfilesForAttributes() const +const std::list& ConformLoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadGroup::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadSchedule_ConformLoadGroup(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* ConformLoadGroup::debugString() const void ConformLoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoadGroup", &ConformLoadGroup_factory); + factory_map.emplace("ConformLoadGroup", &ConformLoadGroup_factory); } void ConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void ConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoadGroup.ConformLoadSchedules", &assign_ConformLoadGroup_ConformLoadSchedules); - assign_map.emplace("cim:ConformLoadGroup.EnergyConsumers", &assign_ConformLoadGroup_EnergyConsumers); + assign_map.emplace("ConformLoadGroup.ConformLoadSchedules", &assign_ConformLoadGroup_ConformLoadSchedules); + assign_map.emplace("ConformLoadGroup.EnergyConsumers", &assign_ConformLoadGroup_EnergyConsumers); } void ConformLoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void ConformLoadGroup::addEnumGetFnsToMap(std::map& g LoadGroup::addEnumGetFnsToMap(get_map); } +bool ConformLoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoadGroup::declare() { return BaseClassDefiner(ConformLoadGroup::addConstructToMap, ConformLoadGroup::addPrimitiveAssignFnsToMap, ConformLoadGroup::addClassAssignFnsToMap, ConformLoadGroup::debugName); } +std::map ConformLoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadGroup::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoadGroup_factory() diff --git a/CGMES_2.4.15_16FEB2016/ConformLoadGroup.hpp b/CGMES_2.4.15_16FEB2016/ConformLoadGroup.hpp index 5e59426da..7a1f564e0 100644 --- a/CGMES_2.4.15_16FEB2016/ConformLoadGroup.hpp +++ b/CGMES_2.4.15_16FEB2016/ConformLoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadGroup.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoadGroup_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ConformLoadSchedule.cpp b/CGMES_2.4.15_16FEB2016/ConformLoadSchedule.cpp index 51bb1e07b..bfcf56e0e 100644 --- a/CGMES_2.4.15_16FEB2016/ConformLoadSchedule.cpp +++ b/CGMES_2.4.15_16FEB2016/ConformLoadSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoadSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoadSchedule.ConformLoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoadSchedule::ConformLoadSchedule() : ConformLoadGroup(nullptr) {} ConformLoadSchedule::~ConformLoadSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoadSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoadSchedule::getClassNamespaceUrl() const { - { "cim:ConformLoadSchedule.ConformLoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoadSchedule::getPossibleProfilesForClass() const +const std::string& ConformLoadSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoadSchedule::getPossibleProfilesForAttributes() const +const std::list& ConformLoadSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoadSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoadSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoadSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadGroup_ConformLoadSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* ConformLoadSchedule::debugString() const void ConformLoadSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoadSchedule", &ConformLoadSchedule_factory); + factory_map.emplace("ConformLoadSchedule", &ConformLoadSchedule_factory); } void ConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void ConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoadSchedule.ConformLoadGroup", &assign_ConformLoadSchedule_ConformLoadGroup); + assign_map.emplace("ConformLoadSchedule.ConformLoadGroup", &assign_ConformLoadSchedule_ConformLoadGroup); } void ConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void ConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConformLoadSchedule.ConformLoadGroup", &get_ConformLoadSchedule_ConformLoadGroup); + get_map.emplace("ConformLoadSchedule.ConformLoadGroup", &get_ConformLoadSchedule_ConformLoadGroup); } void ConformLoadSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void ConformLoadSchedule::addEnumGetFnsToMap(std::map SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool ConformLoadSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoadSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoadSchedule::declare() { return BaseClassDefiner(ConformLoadSchedule::addConstructToMap, ConformLoadSchedule::addPrimitiveAssignFnsToMap, ConformLoadSchedule::addClassAssignFnsToMap, ConformLoadSchedule::debugName); } +std::map ConformLoadSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoadSchedule_factory() diff --git a/CGMES_2.4.15_16FEB2016/ConformLoadSchedule.hpp b/CGMES_2.4.15_16FEB2016/ConformLoadSchedule.hpp index 72fd6f6af..a4b404d3f 100644 --- a/CGMES_2.4.15_16FEB2016/ConformLoadSchedule.hpp +++ b/CGMES_2.4.15_16FEB2016/ConformLoadSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoadSchedule_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ConnectivityNode.cpp b/CGMES_2.4.15_16FEB2016/ConnectivityNode.cpp index a387855d6..f62ddd512 100644 --- a/CGMES_2.4.15_16FEB2016/ConnectivityNode.cpp +++ b/CGMES_2.4.15_16FEB2016/ConnectivityNode.cpp @@ -14,44 +14,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConnectivityNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConnectivityNode.ConnectivityNodeContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "ConnectivityNode.Terminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConnectivityNode.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "ConnectivityNode.boundaryPoint", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + }; + return ClassAttrDetailsMap; +} + ConnectivityNode::ConnectivityNode() : ConnectivityNodeContainer(nullptr), TopologicalNode(nullptr) {} ConnectivityNode::~ConnectivityNode() {} -static const std::list PossibleProfilesForClass = +const std::list& ConnectivityNode::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConnectivityNode::getClassNamespaceUrl() const { - { "cim:ConnectivityNode.ConnectivityNodeContainer", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:ConnectivityNode.Terminals", { CGMESProfile::EQ, } }, - { "cim:ConnectivityNode.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:ConnectivityNode.boundaryPoint", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndIsoCode", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndName", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndNameTso", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndIsoCode", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndName", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndNameTso", { CGMESProfile::EQ_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConnectivityNode::getPossibleProfilesForClass() const +const std::string& ConnectivityNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConnectivityNode::getPossibleProfilesForAttributes() const +const std::list& ConnectivityNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConnectivityNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConnectivityNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConnectivityNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConnectivityNodeContainer_ConnectivityNodes(BaseClass*, BaseClass*); @@ -345,44 +377,44 @@ const char* ConnectivityNode::debugString() const void ConnectivityNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConnectivityNode", &ConnectivityNode_factory); + factory_map.emplace("ConnectivityNode", &ConnectivityNode_factory); } void ConnectivityNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNode.boundaryPoint", &assign_ConnectivityNode_boundaryPoint); - assign_map.emplace("cim:ConnectivityNode.fromEndIsoCode", &assign_ConnectivityNode_fromEndIsoCode); - assign_map.emplace("cim:ConnectivityNode.fromEndName", &assign_ConnectivityNode_fromEndName); - assign_map.emplace("cim:ConnectivityNode.fromEndNameTso", &assign_ConnectivityNode_fromEndNameTso); - assign_map.emplace("cim:ConnectivityNode.toEndIsoCode", &assign_ConnectivityNode_toEndIsoCode); - assign_map.emplace("cim:ConnectivityNode.toEndName", &assign_ConnectivityNode_toEndName); - assign_map.emplace("cim:ConnectivityNode.toEndNameTso", &assign_ConnectivityNode_toEndNameTso); + assign_map.emplace("ConnectivityNode.boundaryPoint", &assign_ConnectivityNode_boundaryPoint); + assign_map.emplace("ConnectivityNode.fromEndIsoCode", &assign_ConnectivityNode_fromEndIsoCode); + assign_map.emplace("ConnectivityNode.fromEndName", &assign_ConnectivityNode_fromEndName); + assign_map.emplace("ConnectivityNode.fromEndNameTso", &assign_ConnectivityNode_fromEndNameTso); + assign_map.emplace("ConnectivityNode.toEndIsoCode", &assign_ConnectivityNode_toEndIsoCode); + assign_map.emplace("ConnectivityNode.toEndName", &assign_ConnectivityNode_toEndName); + assign_map.emplace("ConnectivityNode.toEndNameTso", &assign_ConnectivityNode_toEndNameTso); } void ConnectivityNode::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNode.ConnectivityNodeContainer", &assign_ConnectivityNode_ConnectivityNodeContainer); - assign_map.emplace("cim:ConnectivityNode.Terminals", &assign_ConnectivityNode_Terminals); - assign_map.emplace("cim:ConnectivityNode.TopologicalNode", &assign_ConnectivityNode_TopologicalNode); + assign_map.emplace("ConnectivityNode.ConnectivityNodeContainer", &assign_ConnectivityNode_ConnectivityNodeContainer); + assign_map.emplace("ConnectivityNode.Terminals", &assign_ConnectivityNode_Terminals); + assign_map.emplace("ConnectivityNode.TopologicalNode", &assign_ConnectivityNode_TopologicalNode); } void ConnectivityNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ConnectivityNode.boundaryPoint", &get_ConnectivityNode_boundaryPoint); - get_map.emplace("cim:ConnectivityNode.fromEndIsoCode", &get_ConnectivityNode_fromEndIsoCode); - get_map.emplace("cim:ConnectivityNode.fromEndName", &get_ConnectivityNode_fromEndName); - get_map.emplace("cim:ConnectivityNode.fromEndNameTso", &get_ConnectivityNode_fromEndNameTso); - get_map.emplace("cim:ConnectivityNode.toEndIsoCode", &get_ConnectivityNode_toEndIsoCode); - get_map.emplace("cim:ConnectivityNode.toEndName", &get_ConnectivityNode_toEndName); - get_map.emplace("cim:ConnectivityNode.toEndNameTso", &get_ConnectivityNode_toEndNameTso); + get_map.emplace("ConnectivityNode.boundaryPoint", &get_ConnectivityNode_boundaryPoint); + get_map.emplace("ConnectivityNode.fromEndIsoCode", &get_ConnectivityNode_fromEndIsoCode); + get_map.emplace("ConnectivityNode.fromEndName", &get_ConnectivityNode_fromEndName); + get_map.emplace("ConnectivityNode.fromEndNameTso", &get_ConnectivityNode_fromEndNameTso); + get_map.emplace("ConnectivityNode.toEndIsoCode", &get_ConnectivityNode_toEndIsoCode); + get_map.emplace("ConnectivityNode.toEndName", &get_ConnectivityNode_toEndName); + get_map.emplace("ConnectivityNode.toEndNameTso", &get_ConnectivityNode_toEndNameTso); } void ConnectivityNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConnectivityNode.ConnectivityNodeContainer", &get_ConnectivityNode_ConnectivityNodeContainer); - get_map.emplace("cim:ConnectivityNode.TopologicalNode", &get_ConnectivityNode_TopologicalNode); + get_map.emplace("ConnectivityNode.ConnectivityNodeContainer", &get_ConnectivityNode_ConnectivityNodeContainer); + get_map.emplace("ConnectivityNode.TopologicalNode", &get_ConnectivityNode_TopologicalNode); } void ConnectivityNode::addEnumGetFnsToMap(std::map& get_map) const @@ -390,11 +422,25 @@ void ConnectivityNode::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ConnectivityNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConnectivityNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConnectivityNode::declare() { return BaseClassDefiner(ConnectivityNode::addConstructToMap, ConnectivityNode::addPrimitiveAssignFnsToMap, ConnectivityNode::addClassAssignFnsToMap, ConnectivityNode::debugName); } +std::map ConnectivityNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConnectivityNode_factory() diff --git a/CGMES_2.4.15_16FEB2016/ConnectivityNode.hpp b/CGMES_2.4.15_16FEB2016/ConnectivityNode.hpp index d6b9bed98..34241bcbb 100644 --- a/CGMES_2.4.15_16FEB2016/ConnectivityNode.hpp +++ b/CGMES_2.4.15_16FEB2016/ConnectivityNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "String.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConnectivityNode_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ConnectivityNodeContainer.cpp b/CGMES_2.4.15_16FEB2016/ConnectivityNodeContainer.cpp index 6e3459df3..be24be472 100644 --- a/CGMES_2.4.15_16FEB2016/ConnectivityNodeContainer.cpp +++ b/CGMES_2.4.15_16FEB2016/ConnectivityNodeContainer.cpp @@ -13,36 +13,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConnectivityNodeContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConnectivityNodeContainer.ConnectivityNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "ConnectivityNodeContainer.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ConnectivityNodeContainer::ConnectivityNodeContainer() {} ConnectivityNodeContainer::~ConnectivityNodeContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& ConnectivityNodeContainer::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConnectivityNodeContainer::getClassNamespaceUrl() const { - { "cim:ConnectivityNodeContainer.ConnectivityNodes", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:ConnectivityNodeContainer.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConnectivityNodeContainer::getPossibleProfilesForClass() const +const std::string& ConnectivityNodeContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConnectivityNodeContainer::getPossibleProfilesForAttributes() const +const std::list& ConnectivityNodeContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConnectivityNodeContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConnectivityNodeContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConnectivityNodeContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConnectivityNode_ConnectivityNodeContainer(BaseClass*, BaseClass*); @@ -89,7 +121,7 @@ const char* ConnectivityNodeContainer::debugString() const void ConnectivityNodeContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConnectivityNodeContainer", &ConnectivityNodeContainer_factory); + factory_map.emplace("ConnectivityNodeContainer", &ConnectivityNodeContainer_factory); } void ConnectivityNodeContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -98,8 +130,8 @@ void ConnectivityNodeContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNodeContainer.ConnectivityNodes", &assign_ConnectivityNodeContainer_ConnectivityNodes); - assign_map.emplace("cim:ConnectivityNodeContainer.TopologicalNode", &assign_ConnectivityNodeContainer_TopologicalNode); + assign_map.emplace("ConnectivityNodeContainer.ConnectivityNodes", &assign_ConnectivityNodeContainer_ConnectivityNodes); + assign_map.emplace("ConnectivityNodeContainer.TopologicalNode", &assign_ConnectivityNodeContainer_TopologicalNode); } void ConnectivityNodeContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,11 +149,25 @@ void ConnectivityNodeContainer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ConnectivityNodeContainer::declare() { return BaseClassDefiner(ConnectivityNodeContainer::addConstructToMap, ConnectivityNodeContainer::addPrimitiveAssignFnsToMap, ConnectivityNodeContainer::addClassAssignFnsToMap, ConnectivityNodeContainer::debugName); } +std::map ConnectivityNodeContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConnectivityNodeContainer_factory() diff --git a/CGMES_2.4.15_16FEB2016/ConnectivityNodeContainer.hpp b/CGMES_2.4.15_16FEB2016/ConnectivityNodeContainer.hpp index 4ab1c963f..da93c0b70 100644 --- a/CGMES_2.4.15_16FEB2016/ConnectivityNodeContainer.hpp +++ b/CGMES_2.4.15_16FEB2016/ConnectivityNodeContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConnectivityNodeContainer_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Connector.cpp b/CGMES_2.4.15_16FEB2016/Connector.cpp index 207f85553..a5af87a13 100644 --- a/CGMES_2.4.15_16FEB2016/Connector.cpp +++ b/CGMES_2.4.15_16FEB2016/Connector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Connector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Connector::Connector() {} Connector::~Connector() {} -static const std::list PossibleProfilesForClass = +const std::list& Connector::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Connector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Connector::getPossibleProfilesForClass() const +const std::string& Connector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Connector::getPossibleProfilesForAttributes() const +const std::list& Connector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Connector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Connector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Connector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Connector::debugName[] = "Connector"; @@ -47,7 +79,7 @@ const char* Connector::debugString() const void Connector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Connector", &Connector_factory); + factory_map.emplace("Connector", &Connector_factory); } void Connector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Connector::addEnumGetFnsToMap(std::map& get_map) ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Connector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Connector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Connector::declare() { return BaseClassDefiner(Connector::addConstructToMap, Connector::addPrimitiveAssignFnsToMap, Connector::addClassAssignFnsToMap, Connector::debugName); } +std::map Connector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Connector_factory() diff --git a/CGMES_2.4.15_16FEB2016/Connector.hpp b/CGMES_2.4.15_16FEB2016/Connector.hpp index 0c319c834..086ce0513 100644 --- a/CGMES_2.4.15_16FEB2016/Connector.hpp +++ b/CGMES_2.4.15_16FEB2016/Connector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Connector_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Control.cpp b/CGMES_2.4.15_16FEB2016/Control.cpp index 9e90ef372..f8558e3f5 100644 --- a/CGMES_2.4.15_16FEB2016/Control.cpp +++ b/CGMES_2.4.15_16FEB2016/Control.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Control(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Control.PowerSystemResource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.controlType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.operationInProgress", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.timeStamp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.unitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.unitSymbol", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Control::Control() : PowerSystemResource(nullptr) {} Control::~Control() {} -static const std::list PossibleProfilesForClass = +const std::list& Control::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Control::getClassNamespaceUrl() const { - { "cim:Control.PowerSystemResource", { CGMESProfile::EQ, } }, - { "cim:Control.controlType", { CGMESProfile::EQ, } }, - { "cim:Control.operationInProgress", { CGMESProfile::EQ, } }, - { "cim:Control.timeStamp", { CGMESProfile::EQ, } }, - { "cim:Control.unitMultiplier", { CGMESProfile::EQ, } }, - { "cim:Control.unitSymbol", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Control::getPossibleProfilesForClass() const +const std::string& Control::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Control::getPossibleProfilesForAttributes() const +const std::list& Control::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Control::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Control::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Control::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerSystemResource_Controls(BaseClass*, BaseClass*); @@ -229,42 +261,48 @@ const char* Control::debugString() const void Control::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Control", &Control_factory); + factory_map.emplace("Control", &Control_factory); } void Control::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Control.controlType", &assign_Control_controlType); - assign_map.emplace("cim:Control.operationInProgress", &assign_Control_operationInProgress); - assign_map.emplace("cim:Control.timeStamp", &assign_Control_timeStamp); - assign_map.emplace("cim:Control.unitMultiplier", &assign_Control_unitMultiplier); - assign_map.emplace("cim:Control.unitSymbol", &assign_Control_unitSymbol); + assign_map.emplace("Control.controlType", &assign_Control_controlType); + assign_map.emplace("Control.operationInProgress", &assign_Control_operationInProgress); + assign_map.emplace("Control.timeStamp", &assign_Control_timeStamp); + assign_map.emplace("Control.unitMultiplier", &assign_Control_unitMultiplier); + assign_map.emplace("Control.unitSymbol", &assign_Control_unitSymbol); } void Control::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Control.PowerSystemResource", &assign_Control_PowerSystemResource); + assign_map.emplace("Control.PowerSystemResource", &assign_Control_PowerSystemResource); } void Control::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Control.controlType", &get_Control_controlType); - get_map.emplace("cim:Control.operationInProgress", &get_Control_operationInProgress); - get_map.emplace("cim:Control.timeStamp", &get_Control_timeStamp); + get_map.emplace("Control.controlType", &get_Control_controlType); + get_map.emplace("Control.operationInProgress", &get_Control_operationInProgress); + get_map.emplace("Control.timeStamp", &get_Control_timeStamp); } void Control::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Control.PowerSystemResource", &get_Control_PowerSystemResource); + get_map.emplace("Control.PowerSystemResource", &get_Control_PowerSystemResource); } void Control::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Control.unitMultiplier", &get_Control_unitMultiplier); - get_map.emplace("cim:Control.unitSymbol", &get_Control_unitSymbol); + get_map.emplace("Control.unitMultiplier", &get_Control_unitMultiplier); + get_map.emplace("Control.unitSymbol", &get_Control_unitSymbol); +} + +bool Control::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Control" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Control::declare() @@ -272,6 +310,14 @@ const BaseClassDefiner Control::declare() return BaseClassDefiner(Control::addConstructToMap, Control::addPrimitiveAssignFnsToMap, Control::addClassAssignFnsToMap, Control::debugName); } +std::map Control::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Control_factory() diff --git a/CGMES_2.4.15_16FEB2016/Control.hpp b/CGMES_2.4.15_16FEB2016/Control.hpp index f0072bfae..ae6bf23df 100644 --- a/CGMES_2.4.15_16FEB2016/Control.hpp +++ b/CGMES_2.4.15_16FEB2016/Control.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "DateTime.hpp" #include "String.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Control_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ControlArea.cpp b/CGMES_2.4.15_16FEB2016/ControlArea.cpp index 21c90385d..3771a6376 100644 --- a/CGMES_2.4.15_16FEB2016/ControlArea.cpp +++ b/CGMES_2.4.15_16FEB2016/ControlArea.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ControlArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ControlArea.ControlAreaGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.EnergyArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.TieFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.netInterchange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ControlArea.pTolerance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ControlArea.type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ControlArea::ControlArea() : EnergyArea(nullptr) {} ControlArea::~ControlArea() {} -static const std::list PossibleProfilesForClass = +const std::list& ControlArea::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ControlArea::getClassNamespaceUrl() const { - { "cim:ControlArea.ControlAreaGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:ControlArea.EnergyArea", { CGMESProfile::EQ, } }, - { "cim:ControlArea.TieFlow", { CGMESProfile::EQ, } }, - { "cim:ControlArea.netInterchange", { CGMESProfile::SSH, } }, - { "cim:ControlArea.pTolerance", { CGMESProfile::SSH, } }, - { "cim:ControlArea.type", { CGMESProfile::EQ, } }, -}; - -std::list -ControlArea::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& ControlArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ControlArea::getPossibleProfilesForAttributes() const +const std::list& ControlArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ControlArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ControlArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ControlArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlAreaGeneratingUnit_ControlArea(BaseClass*, BaseClass*); @@ -210,40 +242,46 @@ const char* ControlArea::debugString() const void ControlArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ControlArea", &ControlArea_factory); + factory_map.emplace("ControlArea", &ControlArea_factory); } void ControlArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlArea.netInterchange", &assign_ControlArea_netInterchange); - assign_map.emplace("cim:ControlArea.pTolerance", &assign_ControlArea_pTolerance); - assign_map.emplace("cim:ControlArea.type", &assign_ControlArea_type); + assign_map.emplace("ControlArea.netInterchange", &assign_ControlArea_netInterchange); + assign_map.emplace("ControlArea.pTolerance", &assign_ControlArea_pTolerance); + assign_map.emplace("ControlArea.type", &assign_ControlArea_type); } void ControlArea::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlArea.ControlAreaGeneratingUnit", &assign_ControlArea_ControlAreaGeneratingUnit); - assign_map.emplace("cim:ControlArea.EnergyArea", &assign_ControlArea_EnergyArea); - assign_map.emplace("cim:ControlArea.TieFlow", &assign_ControlArea_TieFlow); + assign_map.emplace("ControlArea.ControlAreaGeneratingUnit", &assign_ControlArea_ControlAreaGeneratingUnit); + assign_map.emplace("ControlArea.EnergyArea", &assign_ControlArea_EnergyArea); + assign_map.emplace("ControlArea.TieFlow", &assign_ControlArea_TieFlow); } void ControlArea::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.netInterchange", &get_ControlArea_netInterchange); - get_map.emplace("cim:ControlArea.pTolerance", &get_ControlArea_pTolerance); + get_map.emplace("ControlArea.netInterchange", &get_ControlArea_netInterchange); + get_map.emplace("ControlArea.pTolerance", &get_ControlArea_pTolerance); } void ControlArea::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.EnergyArea", &get_ControlArea_EnergyArea); + get_map.emplace("ControlArea.EnergyArea", &get_ControlArea_EnergyArea); } void ControlArea::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.type", &get_ControlArea_type); + get_map.emplace("ControlArea.type", &get_ControlArea_type); +} + +bool ControlArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ControlArea" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ControlArea::declare() @@ -251,6 +289,14 @@ const BaseClassDefiner ControlArea::declare() return BaseClassDefiner(ControlArea::addConstructToMap, ControlArea::addPrimitiveAssignFnsToMap, ControlArea::addClassAssignFnsToMap, ControlArea::debugName); } +std::map ControlArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ControlArea_factory() diff --git a/CGMES_2.4.15_16FEB2016/ControlArea.hpp b/CGMES_2.4.15_16FEB2016/ControlArea.hpp index cb9d727e4..3d14ff9d3 100644 --- a/CGMES_2.4.15_16FEB2016/ControlArea.hpp +++ b/CGMES_2.4.15_16FEB2016/ControlArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ControlAreaTypeKind.hpp" @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ControlArea_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ControlAreaGeneratingUnit.cpp b/CGMES_2.4.15_16FEB2016/ControlAreaGeneratingUnit.cpp index 907553a54..5bc33cacb 100644 --- a/CGMES_2.4.15_16FEB2016/ControlAreaGeneratingUnit.cpp +++ b/CGMES_2.4.15_16FEB2016/ControlAreaGeneratingUnit.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ControlAreaGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ControlAreaGeneratingUnit.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlAreaGeneratingUnit.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ControlAreaGeneratingUnit::ControlAreaGeneratingUnit() : ControlArea(nullptr), GeneratingUnit(nullptr) {} ControlAreaGeneratingUnit::~ControlAreaGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& ControlAreaGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ControlAreaGeneratingUnit::getClassNamespaceUrl() const { - { "cim:ControlAreaGeneratingUnit.ControlArea", { CGMESProfile::EQ, } }, - { "cim:ControlAreaGeneratingUnit.GeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ControlAreaGeneratingUnit::getPossibleProfilesForClass() const +const std::string& ControlAreaGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ControlAreaGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& ControlAreaGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ControlAreaGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ControlAreaGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ControlAreaGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_ControlAreaGeneratingUnit(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* ControlAreaGeneratingUnit::debugString() const void ControlAreaGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ControlAreaGeneratingUnit", &ControlAreaGeneratingUnit_factory); + factory_map.emplace("ControlAreaGeneratingUnit", &ControlAreaGeneratingUnit_factory); } void ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlAreaGeneratingUnit.ControlArea", &assign_ControlAreaGeneratingUnit_ControlArea); - assign_map.emplace("cim:ControlAreaGeneratingUnit.GeneratingUnit", &assign_ControlAreaGeneratingUnit_GeneratingUnit); + assign_map.emplace("ControlAreaGeneratingUnit.ControlArea", &assign_ControlAreaGeneratingUnit_ControlArea); + assign_map.emplace("ControlAreaGeneratingUnit.GeneratingUnit", &assign_ControlAreaGeneratingUnit_GeneratingUnit); } void ControlAreaGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void ControlAreaGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ControlAreaGeneratingUnit.ControlArea", &get_ControlAreaGeneratingUnit_ControlArea); - get_map.emplace("cim:ControlAreaGeneratingUnit.GeneratingUnit", &get_ControlAreaGeneratingUnit_GeneratingUnit); + get_map.emplace("ControlAreaGeneratingUnit.ControlArea", &get_ControlAreaGeneratingUnit_ControlArea); + get_map.emplace("ControlAreaGeneratingUnit.GeneratingUnit", &get_ControlAreaGeneratingUnit_GeneratingUnit); } void ControlAreaGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void ControlAreaGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ControlAreaGeneratingUnit::declare() { return BaseClassDefiner(ControlAreaGeneratingUnit::addConstructToMap, ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap, ControlAreaGeneratingUnit::addClassAssignFnsToMap, ControlAreaGeneratingUnit::debugName); } +std::map ControlAreaGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ControlAreaGeneratingUnit_factory() diff --git a/CGMES_2.4.15_16FEB2016/ControlAreaGeneratingUnit.hpp b/CGMES_2.4.15_16FEB2016/ControlAreaGeneratingUnit.hpp index 5dea42c34..cf20122dd 100644 --- a/CGMES_2.4.15_16FEB2016/ControlAreaGeneratingUnit.hpp +++ b/CGMES_2.4.15_16FEB2016/ControlAreaGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ControlAreaGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/CoordinateSystem.cpp b/CGMES_2.4.15_16FEB2016/CoordinateSystem.cpp index 56ef9a8b4..888bdb68f 100644 --- a/CGMES_2.4.15_16FEB2016/CoordinateSystem.cpp +++ b/CGMES_2.4.15_16FEB2016/CoordinateSystem.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CoordinateSystem(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CoordinateSystem.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "CoordinateSystem.crsUrn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + CoordinateSystem::CoordinateSystem() {} CoordinateSystem::~CoordinateSystem() {} -static const std::list PossibleProfilesForClass = +const std::list& CoordinateSystem::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CoordinateSystem::getClassNamespaceUrl() const { - { "cim:CoordinateSystem.Location", { CGMESProfile::GL, } }, - { "cim:CoordinateSystem.crsUrn", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CoordinateSystem::getPossibleProfilesForClass() const +const std::string& CoordinateSystem::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CoordinateSystem::getPossibleProfilesForAttributes() const +const std::list& CoordinateSystem::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CoordinateSystem::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CoordinateSystem::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CoordinateSystem::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Location_CoordinateSystem(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* CoordinateSystem::debugString() const void CoordinateSystem::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CoordinateSystem", &CoordinateSystem_factory); + factory_map.emplace("CoordinateSystem", &CoordinateSystem_factory); } void CoordinateSystem::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CoordinateSystem.crsUrn", &assign_CoordinateSystem_crsUrn); + assign_map.emplace("CoordinateSystem.crsUrn", &assign_CoordinateSystem_crsUrn); } void CoordinateSystem::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CoordinateSystem.Location", &assign_CoordinateSystem_Location); + assign_map.emplace("CoordinateSystem.Location", &assign_CoordinateSystem_Location); } void CoordinateSystem::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CoordinateSystem.crsUrn", &get_CoordinateSystem_crsUrn); + get_map.emplace("CoordinateSystem.crsUrn", &get_CoordinateSystem_crsUrn); } void CoordinateSystem::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void CoordinateSystem::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool CoordinateSystem::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CoordinateSystem" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CoordinateSystem::declare() { return BaseClassDefiner(CoordinateSystem::addConstructToMap, CoordinateSystem::addPrimitiveAssignFnsToMap, CoordinateSystem::addClassAssignFnsToMap, CoordinateSystem::debugName); } +std::map CoordinateSystem::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CoordinateSystem_factory() diff --git a/CGMES_2.4.15_16FEB2016/CoordinateSystem.hpp b/CGMES_2.4.15_16FEB2016/CoordinateSystem.hpp index 46172486a..0cbe149f6 100644 --- a/CGMES_2.4.15_16FEB2016/CoordinateSystem.hpp +++ b/CGMES_2.4.15_16FEB2016/CoordinateSystem.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CoordinateSystem_factory(); diff --git a/CGMES_2.4.15_16FEB2016/CsConverter.cpp b/CGMES_2.4.15_16FEB2016/CsConverter.cpp index 32000a24e..b1113045a 100644 --- a/CGMES_2.4.15_16FEB2016/CsConverter.cpp +++ b/CGMES_2.4.15_16FEB2016/CsConverter.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CsConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CsConverter.alpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "CsConverter.gamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "CsConverter.maxAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.maxGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.maxIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.operatingMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.pPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.ratedIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.targetAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.targetGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.targetIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + CsConverter::CsConverter() {} CsConverter::~CsConverter() {} -static const std::list PossibleProfilesForClass = +const std::list& CsConverter::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CsConverter::getClassNamespaceUrl() const { - { "cim:CsConverter.alpha", { CGMESProfile::SV, } }, - { "cim:CsConverter.gamma", { CGMESProfile::SV, } }, - { "cim:CsConverter.maxAlpha", { CGMESProfile::EQ, } }, - { "cim:CsConverter.maxGamma", { CGMESProfile::EQ, } }, - { "cim:CsConverter.maxIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minAlpha", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minGamma", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.operatingMode", { CGMESProfile::SSH, } }, - { "cim:CsConverter.pPccControl", { CGMESProfile::SSH, } }, - { "cim:CsConverter.ratedIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.targetAlpha", { CGMESProfile::SSH, } }, - { "cim:CsConverter.targetGamma", { CGMESProfile::SSH, } }, - { "cim:CsConverter.targetIdc", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CsConverter::getPossibleProfilesForClass() const +const std::string& CsConverter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CsConverter::getPossibleProfilesForAttributes() const +const std::list& CsConverter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCConverter::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CsConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CsConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CsConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CsConverter_alpha(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -468,25 +500,25 @@ const char* CsConverter::debugString() const void CsConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CsConverter", &CsConverter_factory); + factory_map.emplace("CsConverter", &CsConverter_factory); } void CsConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CsConverter.alpha", &assign_CsConverter_alpha); - assign_map.emplace("cim:CsConverter.gamma", &assign_CsConverter_gamma); - assign_map.emplace("cim:CsConverter.maxAlpha", &assign_CsConverter_maxAlpha); - assign_map.emplace("cim:CsConverter.maxGamma", &assign_CsConverter_maxGamma); - assign_map.emplace("cim:CsConverter.maxIdc", &assign_CsConverter_maxIdc); - assign_map.emplace("cim:CsConverter.minAlpha", &assign_CsConverter_minAlpha); - assign_map.emplace("cim:CsConverter.minGamma", &assign_CsConverter_minGamma); - assign_map.emplace("cim:CsConverter.minIdc", &assign_CsConverter_minIdc); - assign_map.emplace("cim:CsConverter.operatingMode", &assign_CsConverter_operatingMode); - assign_map.emplace("cim:CsConverter.pPccControl", &assign_CsConverter_pPccControl); - assign_map.emplace("cim:CsConverter.ratedIdc", &assign_CsConverter_ratedIdc); - assign_map.emplace("cim:CsConverter.targetAlpha", &assign_CsConverter_targetAlpha); - assign_map.emplace("cim:CsConverter.targetGamma", &assign_CsConverter_targetGamma); - assign_map.emplace("cim:CsConverter.targetIdc", &assign_CsConverter_targetIdc); + assign_map.emplace("CsConverter.alpha", &assign_CsConverter_alpha); + assign_map.emplace("CsConverter.gamma", &assign_CsConverter_gamma); + assign_map.emplace("CsConverter.maxAlpha", &assign_CsConverter_maxAlpha); + assign_map.emplace("CsConverter.maxGamma", &assign_CsConverter_maxGamma); + assign_map.emplace("CsConverter.maxIdc", &assign_CsConverter_maxIdc); + assign_map.emplace("CsConverter.minAlpha", &assign_CsConverter_minAlpha); + assign_map.emplace("CsConverter.minGamma", &assign_CsConverter_minGamma); + assign_map.emplace("CsConverter.minIdc", &assign_CsConverter_minIdc); + assign_map.emplace("CsConverter.operatingMode", &assign_CsConverter_operatingMode); + assign_map.emplace("CsConverter.pPccControl", &assign_CsConverter_pPccControl); + assign_map.emplace("CsConverter.ratedIdc", &assign_CsConverter_ratedIdc); + assign_map.emplace("CsConverter.targetAlpha", &assign_CsConverter_targetAlpha); + assign_map.emplace("CsConverter.targetGamma", &assign_CsConverter_targetGamma); + assign_map.emplace("CsConverter.targetIdc", &assign_CsConverter_targetIdc); } void CsConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -496,18 +528,18 @@ void CsConverter::addClassAssignFnsToMap(std::unordered_map& get_map) const { ACDCConverter::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CsConverter.alpha", &get_CsConverter_alpha); - get_map.emplace("cim:CsConverter.gamma", &get_CsConverter_gamma); - get_map.emplace("cim:CsConverter.maxAlpha", &get_CsConverter_maxAlpha); - get_map.emplace("cim:CsConverter.maxGamma", &get_CsConverter_maxGamma); - get_map.emplace("cim:CsConverter.maxIdc", &get_CsConverter_maxIdc); - get_map.emplace("cim:CsConverter.minAlpha", &get_CsConverter_minAlpha); - get_map.emplace("cim:CsConverter.minGamma", &get_CsConverter_minGamma); - get_map.emplace("cim:CsConverter.minIdc", &get_CsConverter_minIdc); - get_map.emplace("cim:CsConverter.ratedIdc", &get_CsConverter_ratedIdc); - get_map.emplace("cim:CsConverter.targetAlpha", &get_CsConverter_targetAlpha); - get_map.emplace("cim:CsConverter.targetGamma", &get_CsConverter_targetGamma); - get_map.emplace("cim:CsConverter.targetIdc", &get_CsConverter_targetIdc); + get_map.emplace("CsConverter.alpha", &get_CsConverter_alpha); + get_map.emplace("CsConverter.gamma", &get_CsConverter_gamma); + get_map.emplace("CsConverter.maxAlpha", &get_CsConverter_maxAlpha); + get_map.emplace("CsConverter.maxGamma", &get_CsConverter_maxGamma); + get_map.emplace("CsConverter.maxIdc", &get_CsConverter_maxIdc); + get_map.emplace("CsConverter.minAlpha", &get_CsConverter_minAlpha); + get_map.emplace("CsConverter.minGamma", &get_CsConverter_minGamma); + get_map.emplace("CsConverter.minIdc", &get_CsConverter_minIdc); + get_map.emplace("CsConverter.ratedIdc", &get_CsConverter_ratedIdc); + get_map.emplace("CsConverter.targetAlpha", &get_CsConverter_targetAlpha); + get_map.emplace("CsConverter.targetGamma", &get_CsConverter_targetGamma); + get_map.emplace("CsConverter.targetIdc", &get_CsConverter_targetIdc); } void CsConverter::addClassGetFnsToMap(std::map& get_map) const @@ -518,8 +550,14 @@ void CsConverter::addClassGetFnsToMap(std::map& void CsConverter::addEnumGetFnsToMap(std::map& get_map) const { ACDCConverter::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:CsConverter.operatingMode", &get_CsConverter_operatingMode); - get_map.emplace("cim:CsConverter.pPccControl", &get_CsConverter_pPccControl); + get_map.emplace("CsConverter.operatingMode", &get_CsConverter_operatingMode); + get_map.emplace("CsConverter.pPccControl", &get_CsConverter_pPccControl); +} + +bool CsConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CsConverter" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner CsConverter::declare() @@ -527,6 +565,14 @@ const BaseClassDefiner CsConverter::declare() return BaseClassDefiner(CsConverter::addConstructToMap, CsConverter::addPrimitiveAssignFnsToMap, CsConverter::addClassAssignFnsToMap, CsConverter::debugName); } +std::map CsConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCConverter::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CsConverter_factory() diff --git a/CGMES_2.4.15_16FEB2016/CsConverter.hpp b/CGMES_2.4.15_16FEB2016/CsConverter.hpp index 4d14a5460..fd3d2f8c1 100644 --- a/CGMES_2.4.15_16FEB2016/CsConverter.hpp +++ b/CGMES_2.4.15_16FEB2016/CsConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCConverter.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "CsOperatingModeKind.hpp" #include "CsPpccControlKind.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CsConverter_factory(); diff --git a/CGMES_2.4.15_16FEB2016/CurrentLimit.cpp b/CGMES_2.4.15_16FEB2016/CurrentLimit.cpp index 6b79e39d4..6629945e6 100644 --- a/CGMES_2.4.15_16FEB2016/CurrentLimit.cpp +++ b/CGMES_2.4.15_16FEB2016/CurrentLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurrentLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CurrentLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CurrentLimit::CurrentLimit() {} CurrentLimit::~CurrentLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& CurrentLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurrentLimit::getClassNamespaceUrl() const { - { "cim:CurrentLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurrentLimit::getPossibleProfilesForClass() const +const std::string& CurrentLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurrentLimit::getPossibleProfilesForAttributes() const +const std::list& CurrentLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurrentLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurrentLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurrentLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CurrentLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* CurrentLimit::debugString() const void CurrentLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurrentLimit", &CurrentLimit_factory); + factory_map.emplace("CurrentLimit", &CurrentLimit_factory); } void CurrentLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurrentLimit.value", &assign_CurrentLimit_value); + assign_map.emplace("CurrentLimit.value", &assign_CurrentLimit_value); } void CurrentLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void CurrentLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CurrentLimit.value", &get_CurrentLimit_value); + get_map.emplace("CurrentLimit.value", &get_CurrentLimit_value); } void CurrentLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void CurrentLimit::addEnumGetFnsToMap(std::map& get_m OperationalLimit::addEnumGetFnsToMap(get_map); } +bool CurrentLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurrentLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurrentLimit::declare() { return BaseClassDefiner(CurrentLimit::addConstructToMap, CurrentLimit::addPrimitiveAssignFnsToMap, CurrentLimit::addClassAssignFnsToMap, CurrentLimit::debugName); } +std::map CurrentLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurrentLimit_factory() diff --git a/CGMES_2.4.15_16FEB2016/CurrentLimit.hpp b/CGMES_2.4.15_16FEB2016/CurrentLimit.hpp index b670b6c54..23516417c 100644 --- a/CGMES_2.4.15_16FEB2016/CurrentLimit.hpp +++ b/CGMES_2.4.15_16FEB2016/CurrentLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurrentLimit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Curve.cpp b/CGMES_2.4.15_16FEB2016/Curve.cpp index 776e5c46d..c8f91ebbd 100644 --- a/CGMES_2.4.15_16FEB2016/Curve.cpp +++ b/CGMES_2.4.15_16FEB2016/Curve.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Curve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Curve.CurveDatas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.curveStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.xUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.y1Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.y2Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Curve::Curve() {} Curve::~Curve() {} -static const std::list PossibleProfilesForClass = +const std::list& Curve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Curve::getClassNamespaceUrl() const { - { "cim:Curve.CurveDatas", { CGMESProfile::EQ, } }, - { "cim:Curve.curveStyle", { CGMESProfile::EQ, } }, - { "cim:Curve.xUnit", { CGMESProfile::EQ, } }, - { "cim:Curve.y1Unit", { CGMESProfile::EQ, } }, - { "cim:Curve.y2Unit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Curve::getPossibleProfilesForClass() const +const std::string& Curve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Curve::getPossibleProfilesForAttributes() const +const std::list& Curve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Curve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Curve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Curve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CurveData_Curve(BaseClass*, BaseClass*); @@ -186,20 +218,20 @@ const char* Curve::debugString() const void Curve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Curve", &Curve_factory); + factory_map.emplace("Curve", &Curve_factory); } void Curve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Curve.curveStyle", &assign_Curve_curveStyle); - assign_map.emplace("cim:Curve.xUnit", &assign_Curve_xUnit); - assign_map.emplace("cim:Curve.y1Unit", &assign_Curve_y1Unit); - assign_map.emplace("cim:Curve.y2Unit", &assign_Curve_y2Unit); + assign_map.emplace("Curve.curveStyle", &assign_Curve_curveStyle); + assign_map.emplace("Curve.xUnit", &assign_Curve_xUnit); + assign_map.emplace("Curve.y1Unit", &assign_Curve_y1Unit); + assign_map.emplace("Curve.y2Unit", &assign_Curve_y2Unit); } void Curve::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Curve.CurveDatas", &assign_Curve_CurveDatas); + assign_map.emplace("Curve.CurveDatas", &assign_Curve_CurveDatas); } void Curve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -215,10 +247,16 @@ void Curve::addClassGetFnsToMap(std::map& get_m void Curve::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Curve.curveStyle", &get_Curve_curveStyle); - get_map.emplace("cim:Curve.xUnit", &get_Curve_xUnit); - get_map.emplace("cim:Curve.y1Unit", &get_Curve_y1Unit); - get_map.emplace("cim:Curve.y2Unit", &get_Curve_y2Unit); + get_map.emplace("Curve.curveStyle", &get_Curve_curveStyle); + get_map.emplace("Curve.xUnit", &get_Curve_xUnit); + get_map.emplace("Curve.y1Unit", &get_Curve_y1Unit); + get_map.emplace("Curve.y2Unit", &get_Curve_y2Unit); +} + +bool Curve::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Curve" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Curve::declare() @@ -226,6 +264,14 @@ const BaseClassDefiner Curve::declare() return BaseClassDefiner(Curve::addConstructToMap, Curve::addPrimitiveAssignFnsToMap, Curve::addClassAssignFnsToMap, Curve::debugName); } +std::map Curve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Curve_factory() diff --git a/CGMES_2.4.15_16FEB2016/Curve.hpp b/CGMES_2.4.15_16FEB2016/Curve.hpp index bb10f8a2b..3764326ee 100644 --- a/CGMES_2.4.15_16FEB2016/Curve.hpp +++ b/CGMES_2.4.15_16FEB2016/Curve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurveStyle.hpp" #include "UnitSymbol.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Curve_factory(); diff --git a/CGMES_2.4.15_16FEB2016/CurveData.cpp b/CGMES_2.4.15_16FEB2016/CurveData.cpp index f2d46bf44..b87a7241b 100644 --- a/CGMES_2.4.15_16FEB2016/CurveData.cpp +++ b/CGMES_2.4.15_16FEB2016/CurveData.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurveData(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CurveData.Curve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.xvalue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.y1value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.y2value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CurveData::CurveData() : Curve(nullptr) {} CurveData::~CurveData() {} -static const std::list PossibleProfilesForClass = +const std::list& CurveData::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurveData::getClassNamespaceUrl() const { - { "cim:CurveData.Curve", { CGMESProfile::EQ, } }, - { "cim:CurveData.xvalue", { CGMESProfile::EQ, } }, - { "cim:CurveData.y1value", { CGMESProfile::EQ, } }, - { "cim:CurveData.y2value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurveData::getPossibleProfilesForClass() const +const std::string& CurveData::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurveData::getPossibleProfilesForAttributes() const +const std::list& CurveData::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurveData::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurveData::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurveData::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Curve_CurveDatas(BaseClass*, BaseClass*); @@ -169,33 +201,33 @@ const char* CurveData::debugString() const void CurveData::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurveData", &CurveData_factory); + factory_map.emplace("CurveData", &CurveData_factory); } void CurveData::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurveData.xvalue", &assign_CurveData_xvalue); - assign_map.emplace("cim:CurveData.y1value", &assign_CurveData_y1value); - assign_map.emplace("cim:CurveData.y2value", &assign_CurveData_y2value); + assign_map.emplace("CurveData.xvalue", &assign_CurveData_xvalue); + assign_map.emplace("CurveData.y1value", &assign_CurveData_y1value); + assign_map.emplace("CurveData.y2value", &assign_CurveData_y2value); } void CurveData::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurveData.Curve", &assign_CurveData_Curve); + assign_map.emplace("CurveData.Curve", &assign_CurveData_Curve); } void CurveData::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CurveData.xvalue", &get_CurveData_xvalue); - get_map.emplace("cim:CurveData.y1value", &get_CurveData_y1value); - get_map.emplace("cim:CurveData.y2value", &get_CurveData_y2value); + get_map.emplace("CurveData.xvalue", &get_CurveData_xvalue); + get_map.emplace("CurveData.y1value", &get_CurveData_y1value); + get_map.emplace("CurveData.y2value", &get_CurveData_y2value); } void CurveData::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:CurveData.Curve", &get_CurveData_Curve); + get_map.emplace("CurveData.Curve", &get_CurveData_Curve); } void CurveData::addEnumGetFnsToMap(std::map& get_map) const @@ -203,11 +235,25 @@ void CurveData::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool CurveData::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurveData" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurveData::declare() { return BaseClassDefiner(CurveData::addConstructToMap, CurveData::addPrimitiveAssignFnsToMap, CurveData::addClassAssignFnsToMap, CurveData::debugName); } +std::map CurveData::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurveData_factory() diff --git a/CGMES_2.4.15_16FEB2016/CurveData.hpp b/CGMES_2.4.15_16FEB2016/CurveData.hpp index 3bbd6ba03..c7b6b6620 100644 --- a/CGMES_2.4.15_16FEB2016/CurveData.hpp +++ b/CGMES_2.4.15_16FEB2016/CurveData.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurveData_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCBaseTerminal.cpp b/CGMES_2.4.15_16FEB2016/DCBaseTerminal.cpp index e7814b878..d78d4d3e7 100644 --- a/CGMES_2.4.15_16FEB2016/DCBaseTerminal.cpp +++ b/CGMES_2.4.15_16FEB2016/DCBaseTerminal.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBaseTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCBaseTerminal.DCNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCBaseTerminal.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCBaseTerminal::DCBaseTerminal() : DCNode(nullptr), DCTopologicalNode(nullptr) {} DCBaseTerminal::~DCBaseTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBaseTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBaseTerminal::getClassNamespaceUrl() const { - { "cim:DCBaseTerminal.DCNode", { CGMESProfile::EQ, } }, - { "cim:DCBaseTerminal.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBaseTerminal::getPossibleProfilesForClass() const +const std::string& DCBaseTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBaseTerminal::getPossibleProfilesForAttributes() const +const std::list& DCBaseTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBaseTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBaseTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBaseTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCNode_DCTerminals(BaseClass*, BaseClass*); @@ -114,7 +146,7 @@ const char* DCBaseTerminal::debugString() const void DCBaseTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBaseTerminal", &DCBaseTerminal_factory); + factory_map.emplace("DCBaseTerminal", &DCBaseTerminal_factory); } void DCBaseTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -123,8 +155,8 @@ void DCBaseTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCBaseTerminal.DCNode", &assign_DCBaseTerminal_DCNode); - assign_map.emplace("cim:DCBaseTerminal.DCTopologicalNode", &assign_DCBaseTerminal_DCTopologicalNode); + assign_map.emplace("DCBaseTerminal.DCNode", &assign_DCBaseTerminal_DCNode); + assign_map.emplace("DCBaseTerminal.DCTopologicalNode", &assign_DCBaseTerminal_DCTopologicalNode); } void DCBaseTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -135,8 +167,8 @@ void DCBaseTerminal::addPrimitiveGetFnsToMap(std::map void DCBaseTerminal::addClassGetFnsToMap(std::map& get_map) const { ACDCTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCBaseTerminal.DCNode", &get_DCBaseTerminal_DCNode); - get_map.emplace("cim:DCBaseTerminal.DCTopologicalNode", &get_DCBaseTerminal_DCTopologicalNode); + get_map.emplace("DCBaseTerminal.DCNode", &get_DCBaseTerminal_DCNode); + get_map.emplace("DCBaseTerminal.DCTopologicalNode", &get_DCBaseTerminal_DCTopologicalNode); } void DCBaseTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -144,11 +176,25 @@ void DCBaseTerminal::addEnumGetFnsToMap(std::map& get ACDCTerminal::addEnumGetFnsToMap(get_map); } +bool DCBaseTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBaseTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBaseTerminal::declare() { return BaseClassDefiner(DCBaseTerminal::addConstructToMap, DCBaseTerminal::addPrimitiveAssignFnsToMap, DCBaseTerminal::addClassAssignFnsToMap, DCBaseTerminal::debugName); } +std::map DCBaseTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBaseTerminal_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCBaseTerminal.hpp b/CGMES_2.4.15_16FEB2016/DCBaseTerminal.hpp index 8c0b90332..8ca087e97 100644 --- a/CGMES_2.4.15_16FEB2016/DCBaseTerminal.hpp +++ b/CGMES_2.4.15_16FEB2016/DCBaseTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBaseTerminal_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCBreaker.cpp b/CGMES_2.4.15_16FEB2016/DCBreaker.cpp index 721524d6e..e2fa3f87e 100644 --- a/CGMES_2.4.15_16FEB2016/DCBreaker.cpp +++ b/CGMES_2.4.15_16FEB2016/DCBreaker.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBreaker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCBreaker::DCBreaker() {} DCBreaker::~DCBreaker() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBreaker::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBreaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBreaker::getPossibleProfilesForClass() const +const std::string& DCBreaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBreaker::getPossibleProfilesForAttributes() const +const std::list& DCBreaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBreaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBreaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBreaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCBreaker::debugName[] = "DCBreaker"; @@ -46,7 +78,7 @@ const char* DCBreaker::debugString() const void DCBreaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBreaker", &DCBreaker_factory); + factory_map.emplace("DCBreaker", &DCBreaker_factory); } void DCBreaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCBreaker::addEnumGetFnsToMap(std::map& get_map) DCSwitch::addEnumGetFnsToMap(get_map); } +bool DCBreaker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBreaker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBreaker::declare() { return BaseClassDefiner(DCBreaker::addConstructToMap, DCBreaker::addPrimitiveAssignFnsToMap, DCBreaker::addClassAssignFnsToMap, DCBreaker::debugName); } +std::map DCBreaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBreaker_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCBreaker.hpp b/CGMES_2.4.15_16FEB2016/DCBreaker.hpp index 51ebd5f70..c73ba330c 100644 --- a/CGMES_2.4.15_16FEB2016/DCBreaker.hpp +++ b/CGMES_2.4.15_16FEB2016/DCBreaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBreaker_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCBusbar.cpp b/CGMES_2.4.15_16FEB2016/DCBusbar.cpp index 1ecf0f6fa..c59efd727 100644 --- a/CGMES_2.4.15_16FEB2016/DCBusbar.cpp +++ b/CGMES_2.4.15_16FEB2016/DCBusbar.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBusbar(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCBusbar::DCBusbar() {} DCBusbar::~DCBusbar() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBusbar::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBusbar::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBusbar::getPossibleProfilesForClass() const +const std::string& DCBusbar::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBusbar::getPossibleProfilesForAttributes() const +const std::list& DCBusbar::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBusbar::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBusbar::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBusbar::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCBusbar::debugName[] = "DCBusbar"; @@ -46,7 +78,7 @@ const char* DCBusbar::debugString() const void DCBusbar::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBusbar", &DCBusbar_factory); + factory_map.emplace("DCBusbar", &DCBusbar_factory); } void DCBusbar::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCBusbar::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCBusbar::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBusbar" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBusbar::declare() { return BaseClassDefiner(DCBusbar::addConstructToMap, DCBusbar::addPrimitiveAssignFnsToMap, DCBusbar::addClassAssignFnsToMap, DCBusbar::debugName); } +std::map DCBusbar::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBusbar_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCBusbar.hpp b/CGMES_2.4.15_16FEB2016/DCBusbar.hpp index 443ea1142..25382b74b 100644 --- a/CGMES_2.4.15_16FEB2016/DCBusbar.hpp +++ b/CGMES_2.4.15_16FEB2016/DCBusbar.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBusbar_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCChopper.cpp b/CGMES_2.4.15_16FEB2016/DCChopper.cpp index 74dd30f11..76932c261 100644 --- a/CGMES_2.4.15_16FEB2016/DCChopper.cpp +++ b/CGMES_2.4.15_16FEB2016/DCChopper.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCChopper(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCChopper::DCChopper() {} DCChopper::~DCChopper() {} -static const std::list PossibleProfilesForClass = +const std::list& DCChopper::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCChopper::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCChopper::getPossibleProfilesForClass() const +const std::string& DCChopper::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCChopper::getPossibleProfilesForAttributes() const +const std::list& DCChopper::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCChopper::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCChopper::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCChopper::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCChopper::debugName[] = "DCChopper"; @@ -46,7 +78,7 @@ const char* DCChopper::debugString() const void DCChopper::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCChopper", &DCChopper_factory); + factory_map.emplace("DCChopper", &DCChopper_factory); } void DCChopper::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCChopper::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCChopper::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCChopper" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCChopper::declare() { return BaseClassDefiner(DCChopper::addConstructToMap, DCChopper::addPrimitiveAssignFnsToMap, DCChopper::addClassAssignFnsToMap, DCChopper::debugName); } +std::map DCChopper::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCChopper_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCChopper.hpp b/CGMES_2.4.15_16FEB2016/DCChopper.hpp index 69669fe03..79f28e42f 100644 --- a/CGMES_2.4.15_16FEB2016/DCChopper.hpp +++ b/CGMES_2.4.15_16FEB2016/DCChopper.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCChopper_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCConductingEquipment.cpp b/CGMES_2.4.15_16FEB2016/DCConductingEquipment.cpp index dbf6d1e77..3f6ec6cfd 100644 --- a/CGMES_2.4.15_16FEB2016/DCConductingEquipment.cpp +++ b/CGMES_2.4.15_16FEB2016/DCConductingEquipment.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCConductingEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCConductingEquipment.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCConductingEquipment::DCConductingEquipment() {} DCConductingEquipment::~DCConductingEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& DCConductingEquipment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCConductingEquipment::getClassNamespaceUrl() const { - { "cim:DCConductingEquipment.DCTerminals", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCConductingEquipment::getPossibleProfilesForClass() const +const std::string& DCConductingEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCConductingEquipment::getPossibleProfilesForAttributes() const +const std::list& DCConductingEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCConductingEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCConductingEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCConductingEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTerminal_DCConductingEquipment(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DCConductingEquipment::debugString() const void DCConductingEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCConductingEquipment", &DCConductingEquipment_factory); + factory_map.emplace("DCConductingEquipment", &DCConductingEquipment_factory); } void DCConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DCConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConductingEquipment.DCTerminals", &assign_DCConductingEquipment_DCTerminals); + assign_map.emplace("DCConductingEquipment.DCTerminals", &assign_DCConductingEquipment_DCTerminals); } void DCConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DCConductingEquipment::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DCConductingEquipment::declare() { return BaseClassDefiner(DCConductingEquipment::addConstructToMap, DCConductingEquipment::addPrimitiveAssignFnsToMap, DCConductingEquipment::addClassAssignFnsToMap, DCConductingEquipment::debugName); } +std::map DCConductingEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCConductingEquipment_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCConductingEquipment.hpp b/CGMES_2.4.15_16FEB2016/DCConductingEquipment.hpp index 7ef261fec..1b096dc2f 100644 --- a/CGMES_2.4.15_16FEB2016/DCConductingEquipment.hpp +++ b/CGMES_2.4.15_16FEB2016/DCConductingEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCConductingEquipment_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCConverterUnit.cpp b/CGMES_2.4.15_16FEB2016/DCConverterUnit.cpp index 2d1090ab2..a508ef2d0 100644 --- a/CGMES_2.4.15_16FEB2016/DCConverterUnit.cpp +++ b/CGMES_2.4.15_16FEB2016/DCConverterUnit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCConverterUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCConverterUnit.Substation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCConverterUnit.operationMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCConverterUnit::DCConverterUnit() : Substation(nullptr) {} DCConverterUnit::~DCConverterUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& DCConverterUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCConverterUnit::getClassNamespaceUrl() const { - { "cim:DCConverterUnit.Substation", { CGMESProfile::EQ, } }, - { "cim:DCConverterUnit.operationMode", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCConverterUnit::getPossibleProfilesForClass() const +const std::string& DCConverterUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCConverterUnit::getPossibleProfilesForAttributes() const +const std::list& DCConverterUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCEquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCConverterUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCConverterUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCConverterUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Substation_DCConverterUnit(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* DCConverterUnit::debugString() const void DCConverterUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCConverterUnit", &DCConverterUnit_factory); + factory_map.emplace("DCConverterUnit", &DCConverterUnit_factory); } void DCConverterUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConverterUnit.operationMode", &assign_DCConverterUnit_operationMode); + assign_map.emplace("DCConverterUnit.operationMode", &assign_DCConverterUnit_operationMode); } void DCConverterUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConverterUnit.Substation", &assign_DCConverterUnit_Substation); + assign_map.emplace("DCConverterUnit.Substation", &assign_DCConverterUnit_Substation); } void DCConverterUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void DCConverterUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCConverterUnit.Substation", &get_DCConverterUnit_Substation); + get_map.emplace("DCConverterUnit.Substation", &get_DCConverterUnit_Substation); } void DCConverterUnit::addEnumGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:DCConverterUnit.operationMode", &get_DCConverterUnit_operationMode); + get_map.emplace("DCConverterUnit.operationMode", &get_DCConverterUnit_operationMode); +} + +bool DCConverterUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCConverterUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner DCConverterUnit::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner DCConverterUnit::declare() return BaseClassDefiner(DCConverterUnit::addConstructToMap, DCConverterUnit::addPrimitiveAssignFnsToMap, DCConverterUnit::addClassAssignFnsToMap, DCConverterUnit::debugName); } +std::map DCConverterUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCEquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCConverterUnit_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCConverterUnit.hpp b/CGMES_2.4.15_16FEB2016/DCConverterUnit.hpp index 0ceada939..3f545ab57 100644 --- a/CGMES_2.4.15_16FEB2016/DCConverterUnit.hpp +++ b/CGMES_2.4.15_16FEB2016/DCConverterUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCEquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DCConverterOperatingModeKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCConverterUnit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCDisconnector.cpp b/CGMES_2.4.15_16FEB2016/DCDisconnector.cpp index fe93c5903..506442ba0 100644 --- a/CGMES_2.4.15_16FEB2016/DCDisconnector.cpp +++ b/CGMES_2.4.15_16FEB2016/DCDisconnector.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCDisconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCDisconnector::DCDisconnector() {} DCDisconnector::~DCDisconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& DCDisconnector::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCDisconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCDisconnector::getPossibleProfilesForClass() const +const std::string& DCDisconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCDisconnector::getPossibleProfilesForAttributes() const +const std::list& DCDisconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCDisconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCDisconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCDisconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCDisconnector::debugName[] = "DCDisconnector"; @@ -46,7 +78,7 @@ const char* DCDisconnector::debugString() const void DCDisconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCDisconnector", &DCDisconnector_factory); + factory_map.emplace("DCDisconnector", &DCDisconnector_factory); } void DCDisconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCDisconnector::addEnumGetFnsToMap(std::map& get DCSwitch::addEnumGetFnsToMap(get_map); } +bool DCDisconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCDisconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCDisconnector::declare() { return BaseClassDefiner(DCDisconnector::addConstructToMap, DCDisconnector::addPrimitiveAssignFnsToMap, DCDisconnector::addClassAssignFnsToMap, DCDisconnector::debugName); } +std::map DCDisconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCDisconnector_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCDisconnector.hpp b/CGMES_2.4.15_16FEB2016/DCDisconnector.hpp index 9000b268e..081bad109 100644 --- a/CGMES_2.4.15_16FEB2016/DCDisconnector.hpp +++ b/CGMES_2.4.15_16FEB2016/DCDisconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCDisconnector_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCEquipmentContainer.cpp b/CGMES_2.4.15_16FEB2016/DCEquipmentContainer.cpp index 63f808f42..da7d6345c 100644 --- a/CGMES_2.4.15_16FEB2016/DCEquipmentContainer.cpp +++ b/CGMES_2.4.15_16FEB2016/DCEquipmentContainer.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCEquipmentContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCEquipmentContainer.DCNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCEquipmentContainer.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCEquipmentContainer::DCEquipmentContainer() {} DCEquipmentContainer::~DCEquipmentContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& DCEquipmentContainer::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCEquipmentContainer::getClassNamespaceUrl() const { - { "cim:DCEquipmentContainer.DCNodes", { CGMESProfile::EQ, } }, - { "cim:DCEquipmentContainer.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCEquipmentContainer::getPossibleProfilesForClass() const +const std::string& DCEquipmentContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCEquipmentContainer::getPossibleProfilesForAttributes() const +const std::list& DCEquipmentContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCEquipmentContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCEquipmentContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCEquipmentContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCNode_DCEquipmentContainer(BaseClass*, BaseClass*); @@ -87,7 +119,7 @@ const char* DCEquipmentContainer::debugString() const void DCEquipmentContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCEquipmentContainer", &DCEquipmentContainer_factory); + factory_map.emplace("DCEquipmentContainer", &DCEquipmentContainer_factory); } void DCEquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -96,8 +128,8 @@ void DCEquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCEquipmentContainer.DCNodes", &assign_DCEquipmentContainer_DCNodes); - assign_map.emplace("cim:DCEquipmentContainer.DCTopologicalNode", &assign_DCEquipmentContainer_DCTopologicalNode); + assign_map.emplace("DCEquipmentContainer.DCNodes", &assign_DCEquipmentContainer_DCNodes); + assign_map.emplace("DCEquipmentContainer.DCTopologicalNode", &assign_DCEquipmentContainer_DCTopologicalNode); } void DCEquipmentContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -115,11 +147,25 @@ void DCEquipmentContainer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DCEquipmentContainer::declare() { return BaseClassDefiner(DCEquipmentContainer::addConstructToMap, DCEquipmentContainer::addPrimitiveAssignFnsToMap, DCEquipmentContainer::addClassAssignFnsToMap, DCEquipmentContainer::debugName); } +std::map DCEquipmentContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCEquipmentContainer_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCEquipmentContainer.hpp b/CGMES_2.4.15_16FEB2016/DCEquipmentContainer.hpp index 6defc5761..67f5ccb05 100644 --- a/CGMES_2.4.15_16FEB2016/DCEquipmentContainer.hpp +++ b/CGMES_2.4.15_16FEB2016/DCEquipmentContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCEquipmentContainer_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCGround.cpp b/CGMES_2.4.15_16FEB2016/DCGround.cpp index 07d7f35f7..ed59442f2 100644 --- a/CGMES_2.4.15_16FEB2016/DCGround.cpp +++ b/CGMES_2.4.15_16FEB2016/DCGround.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCGround(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCGround.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCGround.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCGround::DCGround() {} DCGround::~DCGround() {} -static const std::list PossibleProfilesForClass = +const std::list& DCGround::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCGround::getClassNamespaceUrl() const { - { "cim:DCGround.inductance", { CGMESProfile::EQ, } }, - { "cim:DCGround.r", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCGround::getPossibleProfilesForClass() const +const std::string& DCGround::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCGround::getPossibleProfilesForAttributes() const +const std::list& DCGround::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCGround::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCGround::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCGround::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCGround_inductance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DCGround::debugString() const void DCGround::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCGround", &DCGround_factory); + factory_map.emplace("DCGround", &DCGround_factory); } void DCGround::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCGround.inductance", &assign_DCGround_inductance); - assign_map.emplace("cim:DCGround.r", &assign_DCGround_r); + assign_map.emplace("DCGround.inductance", &assign_DCGround_inductance); + assign_map.emplace("DCGround.r", &assign_DCGround_r); } void DCGround::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DCGround::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCGround.inductance", &get_DCGround_inductance); - get_map.emplace("cim:DCGround.r", &get_DCGround_r); + get_map.emplace("DCGround.inductance", &get_DCGround_inductance); + get_map.emplace("DCGround.r", &get_DCGround_r); } void DCGround::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DCGround::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCGround::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCGround" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCGround::declare() { return BaseClassDefiner(DCGround::addConstructToMap, DCGround::addPrimitiveAssignFnsToMap, DCGround::addClassAssignFnsToMap, DCGround::debugName); } +std::map DCGround::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCGround_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCGround.hpp b/CGMES_2.4.15_16FEB2016/DCGround.hpp index 5321d8f49..647a6a202 100644 --- a/CGMES_2.4.15_16FEB2016/DCGround.hpp +++ b/CGMES_2.4.15_16FEB2016/DCGround.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Inductance.hpp" #include "Resistance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCGround_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCLine.cpp b/CGMES_2.4.15_16FEB2016/DCLine.cpp index 15f9c9331..6185f1acb 100644 --- a/CGMES_2.4.15_16FEB2016/DCLine.cpp +++ b/CGMES_2.4.15_16FEB2016/DCLine.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCLine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCLine.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCLine::DCLine() : Region(nullptr) {} DCLine::~DCLine() {} -static const std::list PossibleProfilesForClass = +const std::list& DCLine::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCLine::getClassNamespaceUrl() const { - { "cim:DCLine.Region", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCLine::getPossibleProfilesForClass() const +const std::string& DCLine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCLine::getPossibleProfilesForAttributes() const +const std::list& DCLine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCEquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCLine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCLine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCLine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_DCLines(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* DCLine::debugString() const void DCLine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCLine", &DCLine_factory); + factory_map.emplace("DCLine", &DCLine_factory); } void DCLine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void DCLine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLine.Region", &assign_DCLine_Region); + assign_map.emplace("DCLine.Region", &assign_DCLine_Region); } void DCLine::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void DCLine::addPrimitiveGetFnsToMap(std::map& get_ma void DCLine::addClassGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCLine.Region", &get_DCLine_Region); + get_map.emplace("DCLine.Region", &get_DCLine_Region); } void DCLine::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void DCLine::addEnumGetFnsToMap(std::map& get_map) co DCEquipmentContainer::addEnumGetFnsToMap(get_map); } +bool DCLine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCLine" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCLine::declare() { return BaseClassDefiner(DCLine::addConstructToMap, DCLine::addPrimitiveAssignFnsToMap, DCLine::addClassAssignFnsToMap, DCLine::debugName); } +std::map DCLine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCEquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCLine_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCLine.hpp b/CGMES_2.4.15_16FEB2016/DCLine.hpp index 91657a003..697d58ca4 100644 --- a/CGMES_2.4.15_16FEB2016/DCLine.hpp +++ b/CGMES_2.4.15_16FEB2016/DCLine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCEquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCLine_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCLineSegment.cpp b/CGMES_2.4.15_16FEB2016/DCLineSegment.cpp index 3b5b3a411..f3dbcaff4 100644 --- a/CGMES_2.4.15_16FEB2016/DCLineSegment.cpp +++ b/CGMES_2.4.15_16FEB2016/DCLineSegment.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCLineSegment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCLineSegment.PerLengthParameter", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.length", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCLineSegment::DCLineSegment() : PerLengthParameter(nullptr) {} DCLineSegment::~DCLineSegment() {} -static const std::list PossibleProfilesForClass = +const std::list& DCLineSegment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCLineSegment::getClassNamespaceUrl() const { - { "cim:DCLineSegment.PerLengthParameter", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.capacitance", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.inductance", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.length", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCLineSegment::getPossibleProfilesForClass() const +const std::string& DCLineSegment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCLineSegment::getPossibleProfilesForAttributes() const +const std::list& DCLineSegment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCLineSegment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCLineSegment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCLineSegment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PerLengthDCLineParameter_DCLineSegments(BaseClass*, BaseClass*); @@ -199,35 +231,35 @@ const char* DCLineSegment::debugString() const void DCLineSegment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCLineSegment", &DCLineSegment_factory); + factory_map.emplace("DCLineSegment", &DCLineSegment_factory); } void DCLineSegment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLineSegment.capacitance", &assign_DCLineSegment_capacitance); - assign_map.emplace("cim:DCLineSegment.inductance", &assign_DCLineSegment_inductance); - assign_map.emplace("cim:DCLineSegment.length", &assign_DCLineSegment_length); - assign_map.emplace("cim:DCLineSegment.resistance", &assign_DCLineSegment_resistance); + assign_map.emplace("DCLineSegment.capacitance", &assign_DCLineSegment_capacitance); + assign_map.emplace("DCLineSegment.inductance", &assign_DCLineSegment_inductance); + assign_map.emplace("DCLineSegment.length", &assign_DCLineSegment_length); + assign_map.emplace("DCLineSegment.resistance", &assign_DCLineSegment_resistance); } void DCLineSegment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLineSegment.PerLengthParameter", &assign_DCLineSegment_PerLengthParameter); + assign_map.emplace("DCLineSegment.PerLengthParameter", &assign_DCLineSegment_PerLengthParameter); } void DCLineSegment::addPrimitiveGetFnsToMap(std::map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCLineSegment.capacitance", &get_DCLineSegment_capacitance); - get_map.emplace("cim:DCLineSegment.inductance", &get_DCLineSegment_inductance); - get_map.emplace("cim:DCLineSegment.length", &get_DCLineSegment_length); - get_map.emplace("cim:DCLineSegment.resistance", &get_DCLineSegment_resistance); + get_map.emplace("DCLineSegment.capacitance", &get_DCLineSegment_capacitance); + get_map.emplace("DCLineSegment.inductance", &get_DCLineSegment_inductance); + get_map.emplace("DCLineSegment.length", &get_DCLineSegment_length); + get_map.emplace("DCLineSegment.resistance", &get_DCLineSegment_resistance); } void DCLineSegment::addClassGetFnsToMap(std::map& get_map) const { DCConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCLineSegment.PerLengthParameter", &get_DCLineSegment_PerLengthParameter); + get_map.emplace("DCLineSegment.PerLengthParameter", &get_DCLineSegment_PerLengthParameter); } void DCLineSegment::addEnumGetFnsToMap(std::map& get_map) const @@ -235,11 +267,25 @@ void DCLineSegment::addEnumGetFnsToMap(std::map& get_ DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCLineSegment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCLineSegment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCLineSegment::declare() { return BaseClassDefiner(DCLineSegment::addConstructToMap, DCLineSegment::addPrimitiveAssignFnsToMap, DCLineSegment::addClassAssignFnsToMap, DCLineSegment::debugName); } +std::map DCLineSegment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCLineSegment_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCLineSegment.hpp b/CGMES_2.4.15_16FEB2016/DCLineSegment.hpp index 58c280fe1..930398dcd 100644 --- a/CGMES_2.4.15_16FEB2016/DCLineSegment.hpp +++ b/CGMES_2.4.15_16FEB2016/DCLineSegment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Capacitance.hpp" #include "Inductance.hpp" #include "Length.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCLineSegment_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCNode.cpp b/CGMES_2.4.15_16FEB2016/DCNode.cpp index 8fd69d983..c76642351 100644 --- a/CGMES_2.4.15_16FEB2016/DCNode.cpp +++ b/CGMES_2.4.15_16FEB2016/DCNode.cpp @@ -14,35 +14,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCNode.DCEquipmentContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCNode.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCNode.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCNode::DCNode() : DCEquipmentContainer(nullptr), DCTopologicalNode(nullptr) {} DCNode::~DCNode() {} -static const std::list PossibleProfilesForClass = +const std::list& DCNode::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCNode::getClassNamespaceUrl() const { - { "cim:DCNode.DCEquipmentContainer", { CGMESProfile::EQ, } }, - { "cim:DCNode.DCTerminals", { CGMESProfile::EQ, } }, - { "cim:DCNode.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCNode::getPossibleProfilesForClass() const +const std::string& DCNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCNode::getPossibleProfilesForAttributes() const +const std::list& DCNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCEquipmentContainer_DCNodes(BaseClass*, BaseClass*); @@ -133,7 +165,7 @@ const char* DCNode::debugString() const void DCNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCNode", &DCNode_factory); + factory_map.emplace("DCNode", &DCNode_factory); } void DCNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -142,9 +174,9 @@ void DCNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCNode.DCEquipmentContainer", &assign_DCNode_DCEquipmentContainer); - assign_map.emplace("cim:DCNode.DCTerminals", &assign_DCNode_DCTerminals); - assign_map.emplace("cim:DCNode.DCTopologicalNode", &assign_DCNode_DCTopologicalNode); + assign_map.emplace("DCNode.DCEquipmentContainer", &assign_DCNode_DCEquipmentContainer); + assign_map.emplace("DCNode.DCTerminals", &assign_DCNode_DCTerminals); + assign_map.emplace("DCNode.DCTopologicalNode", &assign_DCNode_DCTopologicalNode); } void DCNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -155,8 +187,8 @@ void DCNode::addPrimitiveGetFnsToMap(std::map& get_ma void DCNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCNode.DCEquipmentContainer", &get_DCNode_DCEquipmentContainer); - get_map.emplace("cim:DCNode.DCTopologicalNode", &get_DCNode_DCTopologicalNode); + get_map.emplace("DCNode.DCEquipmentContainer", &get_DCNode_DCEquipmentContainer); + get_map.emplace("DCNode.DCTopologicalNode", &get_DCNode_DCTopologicalNode); } void DCNode::addEnumGetFnsToMap(std::map& get_map) const @@ -164,11 +196,25 @@ void DCNode::addEnumGetFnsToMap(std::map& get_map) co IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCNode::declare() { return BaseClassDefiner(DCNode::addConstructToMap, DCNode::addPrimitiveAssignFnsToMap, DCNode::addClassAssignFnsToMap, DCNode::debugName); } +std::map DCNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCNode_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCNode.hpp b/CGMES_2.4.15_16FEB2016/DCNode.hpp index 9fdbe0a20..b935481a6 100644 --- a/CGMES_2.4.15_16FEB2016/DCNode.hpp +++ b/CGMES_2.4.15_16FEB2016/DCNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCNode_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCSeriesDevice.cpp b/CGMES_2.4.15_16FEB2016/DCSeriesDevice.cpp index 4f042583c..4fe371522 100644 --- a/CGMES_2.4.15_16FEB2016/DCSeriesDevice.cpp +++ b/CGMES_2.4.15_16FEB2016/DCSeriesDevice.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCSeriesDevice(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCSeriesDevice.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCSeriesDevice.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCSeriesDevice.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCSeriesDevice::DCSeriesDevice() {} DCSeriesDevice::~DCSeriesDevice() {} -static const std::list PossibleProfilesForClass = +const std::list& DCSeriesDevice::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCSeriesDevice::getClassNamespaceUrl() const { - { "cim:DCSeriesDevice.inductance", { CGMESProfile::EQ, } }, - { "cim:DCSeriesDevice.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:DCSeriesDevice.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCSeriesDevice::getPossibleProfilesForClass() const +const std::string& DCSeriesDevice::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCSeriesDevice::getPossibleProfilesForAttributes() const +const std::list& DCSeriesDevice::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCSeriesDevice::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCSeriesDevice::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCSeriesDevice::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCSeriesDevice_inductance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* DCSeriesDevice::debugString() const void DCSeriesDevice::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCSeriesDevice", &DCSeriesDevice_factory); + factory_map.emplace("DCSeriesDevice", &DCSeriesDevice_factory); } void DCSeriesDevice::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCSeriesDevice.inductance", &assign_DCSeriesDevice_inductance); - assign_map.emplace("cim:DCSeriesDevice.ratedUdc", &assign_DCSeriesDevice_ratedUdc); - assign_map.emplace("cim:DCSeriesDevice.resistance", &assign_DCSeriesDevice_resistance); + assign_map.emplace("DCSeriesDevice.inductance", &assign_DCSeriesDevice_inductance); + assign_map.emplace("DCSeriesDevice.ratedUdc", &assign_DCSeriesDevice_ratedUdc); + assign_map.emplace("DCSeriesDevice.resistance", &assign_DCSeriesDevice_resistance); } void DCSeriesDevice::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void DCSeriesDevice::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCSeriesDevice.inductance", &get_DCSeriesDevice_inductance); - get_map.emplace("cim:DCSeriesDevice.ratedUdc", &get_DCSeriesDevice_ratedUdc); - get_map.emplace("cim:DCSeriesDevice.resistance", &get_DCSeriesDevice_resistance); + get_map.emplace("DCSeriesDevice.inductance", &get_DCSeriesDevice_inductance); + get_map.emplace("DCSeriesDevice.ratedUdc", &get_DCSeriesDevice_ratedUdc); + get_map.emplace("DCSeriesDevice.resistance", &get_DCSeriesDevice_resistance); } void DCSeriesDevice::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void DCSeriesDevice::addEnumGetFnsToMap(std::map& get DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCSeriesDevice::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCSeriesDevice" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCSeriesDevice::declare() { return BaseClassDefiner(DCSeriesDevice::addConstructToMap, DCSeriesDevice::addPrimitiveAssignFnsToMap, DCSeriesDevice::addClassAssignFnsToMap, DCSeriesDevice::debugName); } +std::map DCSeriesDevice::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCSeriesDevice_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCSeriesDevice.hpp b/CGMES_2.4.15_16FEB2016/DCSeriesDevice.hpp index 73436d451..c07252d1c 100644 --- a/CGMES_2.4.15_16FEB2016/DCSeriesDevice.hpp +++ b/CGMES_2.4.15_16FEB2016/DCSeriesDevice.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Inductance.hpp" #include "Resistance.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCSeriesDevice_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCShunt.cpp b/CGMES_2.4.15_16FEB2016/DCShunt.cpp index 35992c09b..d89c28051 100644 --- a/CGMES_2.4.15_16FEB2016/DCShunt.cpp +++ b/CGMES_2.4.15_16FEB2016/DCShunt.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCShunt(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCShunt.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCShunt.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCShunt.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCShunt::DCShunt() {} DCShunt::~DCShunt() {} -static const std::list PossibleProfilesForClass = +const std::list& DCShunt::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCShunt::getClassNamespaceUrl() const { - { "cim:DCShunt.capacitance", { CGMESProfile::EQ, } }, - { "cim:DCShunt.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:DCShunt.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCShunt::getPossibleProfilesForClass() const +const std::string& DCShunt::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCShunt::getPossibleProfilesForAttributes() const +const std::list& DCShunt::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCShunt::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCShunt::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCShunt::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCShunt_capacitance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* DCShunt::debugString() const void DCShunt::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCShunt", &DCShunt_factory); + factory_map.emplace("DCShunt", &DCShunt_factory); } void DCShunt::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCShunt.capacitance", &assign_DCShunt_capacitance); - assign_map.emplace("cim:DCShunt.ratedUdc", &assign_DCShunt_ratedUdc); - assign_map.emplace("cim:DCShunt.resistance", &assign_DCShunt_resistance); + assign_map.emplace("DCShunt.capacitance", &assign_DCShunt_capacitance); + assign_map.emplace("DCShunt.ratedUdc", &assign_DCShunt_ratedUdc); + assign_map.emplace("DCShunt.resistance", &assign_DCShunt_resistance); } void DCShunt::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void DCShunt::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCShunt.capacitance", &get_DCShunt_capacitance); - get_map.emplace("cim:DCShunt.ratedUdc", &get_DCShunt_ratedUdc); - get_map.emplace("cim:DCShunt.resistance", &get_DCShunt_resistance); + get_map.emplace("DCShunt.capacitance", &get_DCShunt_capacitance); + get_map.emplace("DCShunt.ratedUdc", &get_DCShunt_ratedUdc); + get_map.emplace("DCShunt.resistance", &get_DCShunt_resistance); } void DCShunt::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void DCShunt::addEnumGetFnsToMap(std::map& get_map) c DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCShunt::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCShunt" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCShunt::declare() { return BaseClassDefiner(DCShunt::addConstructToMap, DCShunt::addPrimitiveAssignFnsToMap, DCShunt::addClassAssignFnsToMap, DCShunt::debugName); } +std::map DCShunt::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCShunt_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCShunt.hpp b/CGMES_2.4.15_16FEB2016/DCShunt.hpp index 401c9d74e..001e9495e 100644 --- a/CGMES_2.4.15_16FEB2016/DCShunt.hpp +++ b/CGMES_2.4.15_16FEB2016/DCShunt.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Capacitance.hpp" #include "Resistance.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCShunt_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCSwitch.cpp b/CGMES_2.4.15_16FEB2016/DCSwitch.cpp index 2183c59a5..1b23f0ac4 100644 --- a/CGMES_2.4.15_16FEB2016/DCSwitch.cpp +++ b/CGMES_2.4.15_16FEB2016/DCSwitch.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCSwitch::DCSwitch() {} DCSwitch::~DCSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& DCSwitch::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCSwitch::getPossibleProfilesForClass() const +const std::string& DCSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCSwitch::getPossibleProfilesForAttributes() const +const std::list& DCSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCSwitch::debugName[] = "DCSwitch"; @@ -46,7 +78,7 @@ const char* DCSwitch::debugString() const void DCSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCSwitch", &DCSwitch_factory); + factory_map.emplace("DCSwitch", &DCSwitch_factory); } void DCSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCSwitch::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCSwitch::declare() { return BaseClassDefiner(DCSwitch::addConstructToMap, DCSwitch::addPrimitiveAssignFnsToMap, DCSwitch::addClassAssignFnsToMap, DCSwitch::debugName); } +std::map DCSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCSwitch_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCSwitch.hpp b/CGMES_2.4.15_16FEB2016/DCSwitch.hpp index 2512b3a78..52d24bba8 100644 --- a/CGMES_2.4.15_16FEB2016/DCSwitch.hpp +++ b/CGMES_2.4.15_16FEB2016/DCSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCSwitch_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCTerminal.cpp b/CGMES_2.4.15_16FEB2016/DCTerminal.cpp index b33606f5f..1b037756e 100644 --- a/CGMES_2.4.15_16FEB2016/DCTerminal.cpp +++ b/CGMES_2.4.15_16FEB2016/DCTerminal.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTerminal.DCConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCTerminal::DCTerminal() : DCConductingEquipment(nullptr) {} DCTerminal::~DCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTerminal::getClassNamespaceUrl() const { - { "cim:DCTerminal.DCConductingEquipment", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTerminal::getPossibleProfilesForClass() const +const std::string& DCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTerminal::getPossibleProfilesForAttributes() const +const std::list& DCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCBaseTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCConductingEquipment_DCTerminals(BaseClass*, BaseClass*); @@ -81,7 +113,7 @@ const char* DCTerminal::debugString() const void DCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTerminal", &DCTerminal_factory); + factory_map.emplace("DCTerminal", &DCTerminal_factory); } void DCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -90,7 +122,7 @@ void DCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTerminal.DCConductingEquipment", &assign_DCTerminal_DCConductingEquipment); + assign_map.emplace("DCTerminal.DCConductingEquipment", &assign_DCTerminal_DCConductingEquipment); } void DCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -101,7 +133,7 @@ void DCTerminal::addPrimitiveGetFnsToMap(std::map& ge void DCTerminal::addClassGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTerminal.DCConductingEquipment", &get_DCTerminal_DCConductingEquipment); + get_map.emplace("DCTerminal.DCConductingEquipment", &get_DCTerminal_DCConductingEquipment); } void DCTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -109,11 +141,25 @@ void DCTerminal::addEnumGetFnsToMap(std::map& get_map DCBaseTerminal::addEnumGetFnsToMap(get_map); } +bool DCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTerminal::declare() { return BaseClassDefiner(DCTerminal::addConstructToMap, DCTerminal::addPrimitiveAssignFnsToMap, DCTerminal::addClassAssignFnsToMap, DCTerminal::debugName); } +std::map DCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCBaseTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTerminal_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCTerminal.hpp b/CGMES_2.4.15_16FEB2016/DCTerminal.hpp index 46a315342..8bb9085b2 100644 --- a/CGMES_2.4.15_16FEB2016/DCTerminal.hpp +++ b/CGMES_2.4.15_16FEB2016/DCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCBaseTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTerminal_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCTopologicalIsland.cpp b/CGMES_2.4.15_16FEB2016/DCTopologicalIsland.cpp index 1e7a83ea2..a9be60040 100644 --- a/CGMES_2.4.15_16FEB2016/DCTopologicalIsland.cpp +++ b/CGMES_2.4.15_16FEB2016/DCTopologicalIsland.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTopologicalIsland(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTopologicalIsland.DCTopologicalNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + DCTopologicalIsland::DCTopologicalIsland() {} DCTopologicalIsland::~DCTopologicalIsland() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTopologicalIsland::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTopologicalIsland::getClassNamespaceUrl() const { - { "cim:DCTopologicalIsland.DCTopologicalNodes", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTopologicalIsland::getPossibleProfilesForClass() const +const std::string& DCTopologicalIsland::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTopologicalIsland::getPossibleProfilesForAttributes() const +const std::list& DCTopologicalIsland::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTopologicalIsland::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTopologicalIsland::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTopologicalIsland::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTopologicalNode_DCTopologicalIsland(BaseClass*, BaseClass*); @@ -76,7 +108,7 @@ const char* DCTopologicalIsland::debugString() const void DCTopologicalIsland::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTopologicalIsland", &DCTopologicalIsland_factory); + factory_map.emplace("DCTopologicalIsland", &DCTopologicalIsland_factory); } void DCTopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -85,7 +117,7 @@ void DCTopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTopologicalIsland.DCTopologicalNodes", &assign_DCTopologicalIsland_DCTopologicalNodes); + assign_map.emplace("DCTopologicalIsland.DCTopologicalNodes", &assign_DCTopologicalIsland_DCTopologicalNodes); } void DCTopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -96,7 +128,7 @@ void DCTopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTopologicalIsland.DCTopologicalNodes", &get_DCTopologicalIsland_DCTopologicalNodes); + get_map.emplace("DCTopologicalIsland.DCTopologicalNodes", &get_DCTopologicalIsland_DCTopologicalNodes); } void DCTopologicalIsland::addEnumGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void DCTopologicalIsland::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCTopologicalIsland::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTopologicalIsland" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTopologicalIsland::declare() { return BaseClassDefiner(DCTopologicalIsland::addConstructToMap, DCTopologicalIsland::addPrimitiveAssignFnsToMap, DCTopologicalIsland::addClassAssignFnsToMap, DCTopologicalIsland::debugName); } +std::map DCTopologicalIsland::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTopologicalIsland_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCTopologicalIsland.hpp b/CGMES_2.4.15_16FEB2016/DCTopologicalIsland.hpp index 35384ea69..d920deeb3 100644 --- a/CGMES_2.4.15_16FEB2016/DCTopologicalIsland.hpp +++ b/CGMES_2.4.15_16FEB2016/DCTopologicalIsland.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTopologicalIsland_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DCTopologicalNode.cpp b/CGMES_2.4.15_16FEB2016/DCTopologicalNode.cpp index 86481b2ec..c792e9a3f 100644 --- a/CGMES_2.4.15_16FEB2016/DCTopologicalNode.cpp +++ b/CGMES_2.4.15_16FEB2016/DCTopologicalNode.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTopologicalNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTopologicalNode.DCEquipmentContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCTopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + DCTopologicalNode::DCTopologicalNode() : DCEquipmentContainer(nullptr), DCTopologicalIsland(nullptr) {} DCTopologicalNode::~DCTopologicalNode() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTopologicalNode::getAttributeNames() const { - CGMESProfile::SV, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTopologicalNode::getClassNamespaceUrl() const { - { "cim:DCTopologicalNode.DCEquipmentContainer", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCNodes", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCTerminals", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCTopologicalIsland", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTopologicalNode::getPossibleProfilesForClass() const +const std::string& DCTopologicalNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTopologicalNode::getPossibleProfilesForAttributes() const +const std::list& DCTopologicalNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTopologicalNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTopologicalNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTopologicalNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCEquipmentContainer_DCTopologicalNode(BaseClass*, BaseClass*); @@ -140,7 +172,7 @@ const char* DCTopologicalNode::debugString() const void DCTopologicalNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTopologicalNode", &DCTopologicalNode_factory); + factory_map.emplace("DCTopologicalNode", &DCTopologicalNode_factory); } void DCTopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -149,10 +181,10 @@ void DCTopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTopologicalNode.DCEquipmentContainer", &assign_DCTopologicalNode_DCEquipmentContainer); - assign_map.emplace("cim:DCTopologicalNode.DCNodes", &assign_DCTopologicalNode_DCNodes); - assign_map.emplace("cim:DCTopologicalNode.DCTerminals", &assign_DCTopologicalNode_DCTerminals); - assign_map.emplace("cim:DCTopologicalNode.DCTopologicalIsland", &assign_DCTopologicalNode_DCTopologicalIsland); + assign_map.emplace("DCTopologicalNode.DCEquipmentContainer", &assign_DCTopologicalNode_DCEquipmentContainer); + assign_map.emplace("DCTopologicalNode.DCNodes", &assign_DCTopologicalNode_DCNodes); + assign_map.emplace("DCTopologicalNode.DCTerminals", &assign_DCTopologicalNode_DCTerminals); + assign_map.emplace("DCTopologicalNode.DCTopologicalIsland", &assign_DCTopologicalNode_DCTopologicalIsland); } void DCTopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -163,7 +195,7 @@ void DCTopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTopologicalNode.DCEquipmentContainer", &get_DCTopologicalNode_DCEquipmentContainer); + get_map.emplace("DCTopologicalNode.DCEquipmentContainer", &get_DCTopologicalNode_DCEquipmentContainer); } void DCTopologicalNode::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void DCTopologicalNode::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCTopologicalNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTopologicalNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTopologicalNode::declare() { return BaseClassDefiner(DCTopologicalNode::addConstructToMap, DCTopologicalNode::addPrimitiveAssignFnsToMap, DCTopologicalNode::addClassAssignFnsToMap, DCTopologicalNode::debugName); } +std::map DCTopologicalNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTopologicalNode_factory() diff --git a/CGMES_2.4.15_16FEB2016/DCTopologicalNode.hpp b/CGMES_2.4.15_16FEB2016/DCTopologicalNode.hpp index 893680baa..e7e56c08c 100644 --- a/CGMES_2.4.15_16FEB2016/DCTopologicalNode.hpp +++ b/CGMES_2.4.15_16FEB2016/DCTopologicalNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTopologicalNode_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DayType.cpp b/CGMES_2.4.15_16FEB2016/DayType.cpp index 3783d542a..827ae166a 100644 --- a/CGMES_2.4.15_16FEB2016/DayType.cpp +++ b/CGMES_2.4.15_16FEB2016/DayType.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DayType(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DayType.SeasonDayTypeSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DayType::DayType() {} DayType::~DayType() {} -static const std::list PossibleProfilesForClass = +const std::list& DayType::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DayType::getClassNamespaceUrl() const { - { "cim:DayType.SeasonDayTypeSchedules", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DayType::getPossibleProfilesForClass() const +const std::string& DayType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DayType::getPossibleProfilesForAttributes() const +const std::list& DayType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DayType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DayType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DayType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeasonDayTypeSchedule_DayType(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DayType::debugString() const void DayType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DayType", &DayType_factory); + factory_map.emplace("DayType", &DayType_factory); } void DayType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DayType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DayType.SeasonDayTypeSchedules", &assign_DayType_SeasonDayTypeSchedules); + assign_map.emplace("DayType.SeasonDayTypeSchedules", &assign_DayType_SeasonDayTypeSchedules); } void DayType::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DayType::addEnumGetFnsToMap(std::map& get_map) c IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DayType::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DayType" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DayType::declare() { return BaseClassDefiner(DayType::addConstructToMap, DayType::addPrimitiveAssignFnsToMap, DayType::addClassAssignFnsToMap, DayType::debugName); } +std::map DayType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DayType_factory() diff --git a/CGMES_2.4.15_16FEB2016/DayType.hpp b/CGMES_2.4.15_16FEB2016/DayType.hpp index 71436c000..92906d300 100644 --- a/CGMES_2.4.15_16FEB2016/DayType.hpp +++ b/CGMES_2.4.15_16FEB2016/DayType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DayType_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Diagram.cpp b/CGMES_2.4.15_16FEB2016/Diagram.cpp index 20da79106..d76030e85 100644 --- a/CGMES_2.4.15_16FEB2016/Diagram.cpp +++ b/CGMES_2.4.15_16FEB2016/Diagram.cpp @@ -13,38 +13,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Diagram(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Diagram.DiagramElements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.DiagramStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.orientation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.x1InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.x2InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.y1InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.y2InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + Diagram::Diagram() : DiagramStyle(nullptr) {} Diagram::~Diagram() {} -static const std::list PossibleProfilesForClass = +const std::list& Diagram::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Diagram::getClassNamespaceUrl() const { - { "cim:Diagram.DiagramElements", { CGMESProfile::DL, } }, - { "cim:Diagram.DiagramStyle", { CGMESProfile::DL, } }, - { "cim:Diagram.orientation", { CGMESProfile::DL, } }, - { "cim:Diagram.x1InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.x2InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.y1InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.y2InitialView", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Diagram::getPossibleProfilesForClass() const +const std::string& Diagram::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Diagram::getPossibleProfilesForAttributes() const +const std::list& Diagram::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Diagram::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Diagram::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Diagram::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_Diagram(BaseClass*, BaseClass*); @@ -249,43 +281,49 @@ const char* Diagram::debugString() const void Diagram::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Diagram", &Diagram_factory); + factory_map.emplace("Diagram", &Diagram_factory); } void Diagram::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Diagram.orientation", &assign_Diagram_orientation); - assign_map.emplace("cim:Diagram.x1InitialView", &assign_Diagram_x1InitialView); - assign_map.emplace("cim:Diagram.x2InitialView", &assign_Diagram_x2InitialView); - assign_map.emplace("cim:Diagram.y1InitialView", &assign_Diagram_y1InitialView); - assign_map.emplace("cim:Diagram.y2InitialView", &assign_Diagram_y2InitialView); + assign_map.emplace("Diagram.orientation", &assign_Diagram_orientation); + assign_map.emplace("Diagram.x1InitialView", &assign_Diagram_x1InitialView); + assign_map.emplace("Diagram.x2InitialView", &assign_Diagram_x2InitialView); + assign_map.emplace("Diagram.y1InitialView", &assign_Diagram_y1InitialView); + assign_map.emplace("Diagram.y2InitialView", &assign_Diagram_y2InitialView); } void Diagram::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Diagram.DiagramElements", &assign_Diagram_DiagramElements); - assign_map.emplace("cim:Diagram.DiagramStyle", &assign_Diagram_DiagramStyle); + assign_map.emplace("Diagram.DiagramElements", &assign_Diagram_DiagramElements); + assign_map.emplace("Diagram.DiagramStyle", &assign_Diagram_DiagramStyle); } void Diagram::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.x1InitialView", &get_Diagram_x1InitialView); - get_map.emplace("cim:Diagram.x2InitialView", &get_Diagram_x2InitialView); - get_map.emplace("cim:Diagram.y1InitialView", &get_Diagram_y1InitialView); - get_map.emplace("cim:Diagram.y2InitialView", &get_Diagram_y2InitialView); + get_map.emplace("Diagram.x1InitialView", &get_Diagram_x1InitialView); + get_map.emplace("Diagram.x2InitialView", &get_Diagram_x2InitialView); + get_map.emplace("Diagram.y1InitialView", &get_Diagram_y1InitialView); + get_map.emplace("Diagram.y2InitialView", &get_Diagram_y2InitialView); } void Diagram::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.DiagramStyle", &get_Diagram_DiagramStyle); + get_map.emplace("Diagram.DiagramStyle", &get_Diagram_DiagramStyle); } void Diagram::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.orientation", &get_Diagram_orientation); + get_map.emplace("Diagram.orientation", &get_Diagram_orientation); +} + +bool Diagram::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Diagram" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Diagram::declare() @@ -293,6 +331,14 @@ const BaseClassDefiner Diagram::declare() return BaseClassDefiner(Diagram::addConstructToMap, Diagram::addPrimitiveAssignFnsToMap, Diagram::addClassAssignFnsToMap, Diagram::debugName); } +std::map Diagram::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Diagram_factory() diff --git a/CGMES_2.4.15_16FEB2016/Diagram.hpp b/CGMES_2.4.15_16FEB2016/Diagram.hpp index f8820ae2f..dab6f1138 100644 --- a/CGMES_2.4.15_16FEB2016/Diagram.hpp +++ b/CGMES_2.4.15_16FEB2016/Diagram.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "OrientationKind.hpp" #include "Simple_Float.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Diagram_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiagramLayoutVersion.cpp b/CGMES_2.4.15_16FEB2016/DiagramLayoutVersion.cpp index 55ea4f1cf..e8e0808d7 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramLayoutVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/DiagramLayoutVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramLayoutVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramLayoutVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramLayoutVersion::DiagramLayoutVersion() {} DiagramLayoutVersion::~DiagramLayoutVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramLayoutVersion::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramLayoutVersion::getClassNamespaceUrl() const { - { "cim:DiagramLayoutVersion.baseUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.baseURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.date", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.differenceModelURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.entsoeUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.entsoeURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.modelDescriptionURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.namespaceRDF", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.namespaceUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.shortName", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramLayoutVersion::getPossibleProfilesForClass() const +const std::string& DiagramLayoutVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramLayoutVersion::getPossibleProfilesForAttributes() const +const std::list& DiagramLayoutVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramLayoutVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramLayoutVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramLayoutVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramLayoutVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* DiagramLayoutVersion::debugString() const void DiagramLayoutVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramLayoutVersion", &DiagramLayoutVersion_factory); + factory_map.emplace("DiagramLayoutVersion", &DiagramLayoutVersion_factory); } void DiagramLayoutVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramLayoutVersion.baseUML", &assign_DiagramLayoutVersion_baseUML); - assign_map.emplace("cim:DiagramLayoutVersion.baseURI", &assign_DiagramLayoutVersion_baseURI); - assign_map.emplace("cim:DiagramLayoutVersion.date", &assign_DiagramLayoutVersion_date); - assign_map.emplace("cim:DiagramLayoutVersion.differenceModelURI", &assign_DiagramLayoutVersion_differenceModelURI); - assign_map.emplace("cim:DiagramLayoutVersion.entsoeUML", &assign_DiagramLayoutVersion_entsoeUML); - assign_map.emplace("cim:DiagramLayoutVersion.entsoeURI", &assign_DiagramLayoutVersion_entsoeURI); - assign_map.emplace("cim:DiagramLayoutVersion.modelDescriptionURI", &assign_DiagramLayoutVersion_modelDescriptionURI); - assign_map.emplace("cim:DiagramLayoutVersion.namespaceRDF", &assign_DiagramLayoutVersion_namespaceRDF); - assign_map.emplace("cim:DiagramLayoutVersion.namespaceUML", &assign_DiagramLayoutVersion_namespaceUML); - assign_map.emplace("cim:DiagramLayoutVersion.shortName", &assign_DiagramLayoutVersion_shortName); + assign_map.emplace("DiagramLayoutVersion.baseUML", &assign_DiagramLayoutVersion_baseUML); + assign_map.emplace("DiagramLayoutVersion.baseURI", &assign_DiagramLayoutVersion_baseURI); + assign_map.emplace("DiagramLayoutVersion.date", &assign_DiagramLayoutVersion_date); + assign_map.emplace("DiagramLayoutVersion.differenceModelURI", &assign_DiagramLayoutVersion_differenceModelURI); + assign_map.emplace("DiagramLayoutVersion.entsoeUML", &assign_DiagramLayoutVersion_entsoeUML); + assign_map.emplace("DiagramLayoutVersion.entsoeURI", &assign_DiagramLayoutVersion_entsoeURI); + assign_map.emplace("DiagramLayoutVersion.modelDescriptionURI", &assign_DiagramLayoutVersion_modelDescriptionURI); + assign_map.emplace("DiagramLayoutVersion.namespaceRDF", &assign_DiagramLayoutVersion_namespaceRDF); + assign_map.emplace("DiagramLayoutVersion.namespaceUML", &assign_DiagramLayoutVersion_namespaceUML); + assign_map.emplace("DiagramLayoutVersion.shortName", &assign_DiagramLayoutVersion_shortName); } void DiagramLayoutVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void DiagramLayoutVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramLayoutVersion.baseUML", &get_DiagramLayoutVersion_baseUML); - get_map.emplace("cim:DiagramLayoutVersion.baseURI", &get_DiagramLayoutVersion_baseURI); - get_map.emplace("cim:DiagramLayoutVersion.date", &get_DiagramLayoutVersion_date); - get_map.emplace("cim:DiagramLayoutVersion.differenceModelURI", &get_DiagramLayoutVersion_differenceModelURI); - get_map.emplace("cim:DiagramLayoutVersion.entsoeUML", &get_DiagramLayoutVersion_entsoeUML); - get_map.emplace("cim:DiagramLayoutVersion.entsoeURI", &get_DiagramLayoutVersion_entsoeURI); - get_map.emplace("cim:DiagramLayoutVersion.modelDescriptionURI", &get_DiagramLayoutVersion_modelDescriptionURI); - get_map.emplace("cim:DiagramLayoutVersion.namespaceRDF", &get_DiagramLayoutVersion_namespaceRDF); - get_map.emplace("cim:DiagramLayoutVersion.namespaceUML", &get_DiagramLayoutVersion_namespaceUML); - get_map.emplace("cim:DiagramLayoutVersion.shortName", &get_DiagramLayoutVersion_shortName); + get_map.emplace("DiagramLayoutVersion.baseUML", &get_DiagramLayoutVersion_baseUML); + get_map.emplace("DiagramLayoutVersion.baseURI", &get_DiagramLayoutVersion_baseURI); + get_map.emplace("DiagramLayoutVersion.date", &get_DiagramLayoutVersion_date); + get_map.emplace("DiagramLayoutVersion.differenceModelURI", &get_DiagramLayoutVersion_differenceModelURI); + get_map.emplace("DiagramLayoutVersion.entsoeUML", &get_DiagramLayoutVersion_entsoeUML); + get_map.emplace("DiagramLayoutVersion.entsoeURI", &get_DiagramLayoutVersion_entsoeURI); + get_map.emplace("DiagramLayoutVersion.modelDescriptionURI", &get_DiagramLayoutVersion_modelDescriptionURI); + get_map.emplace("DiagramLayoutVersion.namespaceRDF", &get_DiagramLayoutVersion_namespaceRDF); + get_map.emplace("DiagramLayoutVersion.namespaceUML", &get_DiagramLayoutVersion_namespaceUML); + get_map.emplace("DiagramLayoutVersion.shortName", &get_DiagramLayoutVersion_shortName); } void DiagramLayoutVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void DiagramLayoutVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiagramLayoutVersion::declare() { return BaseClassDefiner(DiagramLayoutVersion::addConstructToMap, DiagramLayoutVersion::addPrimitiveAssignFnsToMap, DiagramLayoutVersion::addClassAssignFnsToMap, DiagramLayoutVersion::debugName); } +std::map DiagramLayoutVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramLayoutVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiagramLayoutVersion.hpp b/CGMES_2.4.15_16FEB2016/DiagramLayoutVersion.hpp index e260f2faf..abc23a584 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramLayoutVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/DiagramLayoutVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramLayoutVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiagramObject.cpp b/CGMES_2.4.15_16FEB2016/DiagramObject.cpp index b85c6e596..98650069e 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramObject.cpp +++ b/CGMES_2.4.15_16FEB2016/DiagramObject.cpp @@ -16,41 +16,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObject.Diagram", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.DiagramObjectPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.DiagramObjectStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.IdentifiedObject", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.VisibilityLayers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.drawingOrder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.isPolygon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.offsetX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.offsetY", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.rotation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObject::DiagramObject() : Diagram(nullptr), DiagramObjectStyle(nullptr), IdentifiedObject(nullptr) {} DiagramObject::~DiagramObject() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObject::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObject::getClassNamespaceUrl() const { - { "cim:DiagramObject.Diagram", { CGMESProfile::DL, } }, - { "cim:DiagramObject.DiagramObjectPoints", { CGMESProfile::DL, } }, - { "cim:DiagramObject.DiagramObjectStyle", { CGMESProfile::DL, } }, - { "cim:DiagramObject.IdentifiedObject", { CGMESProfile::DL, } }, - { "cim:DiagramObject.VisibilityLayers", { CGMESProfile::DL, } }, - { "cim:DiagramObject.drawingOrder", { CGMESProfile::DL, } }, - { "cim:DiagramObject.isPolygon", { CGMESProfile::DL, } }, - { "cim:DiagramObject.offsetX", { CGMESProfile::DL, } }, - { "cim:DiagramObject.offsetY", { CGMESProfile::DL, } }, - { "cim:DiagramObject.rotation", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObject::getPossibleProfilesForClass() const +const std::string& DiagramObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObject::getPossibleProfilesForAttributes() const +const std::list& DiagramObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Diagram_DiagramElements(BaseClass*, BaseClass*); @@ -335,43 +367,43 @@ const char* DiagramObject::debugString() const void DiagramObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObject", &DiagramObject_factory); + factory_map.emplace("DiagramObject", &DiagramObject_factory); } void DiagramObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObject.drawingOrder", &assign_DiagramObject_drawingOrder); - assign_map.emplace("cim:DiagramObject.isPolygon", &assign_DiagramObject_isPolygon); - assign_map.emplace("cim:DiagramObject.offsetX", &assign_DiagramObject_offsetX); - assign_map.emplace("cim:DiagramObject.offsetY", &assign_DiagramObject_offsetY); - assign_map.emplace("cim:DiagramObject.rotation", &assign_DiagramObject_rotation); + assign_map.emplace("DiagramObject.drawingOrder", &assign_DiagramObject_drawingOrder); + assign_map.emplace("DiagramObject.isPolygon", &assign_DiagramObject_isPolygon); + assign_map.emplace("DiagramObject.offsetX", &assign_DiagramObject_offsetX); + assign_map.emplace("DiagramObject.offsetY", &assign_DiagramObject_offsetY); + assign_map.emplace("DiagramObject.rotation", &assign_DiagramObject_rotation); } void DiagramObject::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObject.Diagram", &assign_DiagramObject_Diagram); - assign_map.emplace("cim:DiagramObject.DiagramObjectPoints", &assign_DiagramObject_DiagramObjectPoints); - assign_map.emplace("cim:DiagramObject.DiagramObjectStyle", &assign_DiagramObject_DiagramObjectStyle); - assign_map.emplace("cim:DiagramObject.IdentifiedObject", &assign_DiagramObject_IdentifiedObject); - assign_map.emplace("cim:DiagramObject.VisibilityLayers", &assign_DiagramObject_VisibilityLayers); + assign_map.emplace("DiagramObject.Diagram", &assign_DiagramObject_Diagram); + assign_map.emplace("DiagramObject.DiagramObjectPoints", &assign_DiagramObject_DiagramObjectPoints); + assign_map.emplace("DiagramObject.DiagramObjectStyle", &assign_DiagramObject_DiagramObjectStyle); + assign_map.emplace("DiagramObject.IdentifiedObject", &assign_DiagramObject_IdentifiedObject); + assign_map.emplace("DiagramObject.VisibilityLayers", &assign_DiagramObject_VisibilityLayers); } void DiagramObject::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObject.drawingOrder", &get_DiagramObject_drawingOrder); - get_map.emplace("cim:DiagramObject.isPolygon", &get_DiagramObject_isPolygon); - get_map.emplace("cim:DiagramObject.offsetX", &get_DiagramObject_offsetX); - get_map.emplace("cim:DiagramObject.offsetY", &get_DiagramObject_offsetY); - get_map.emplace("cim:DiagramObject.rotation", &get_DiagramObject_rotation); + get_map.emplace("DiagramObject.drawingOrder", &get_DiagramObject_drawingOrder); + get_map.emplace("DiagramObject.isPolygon", &get_DiagramObject_isPolygon); + get_map.emplace("DiagramObject.offsetX", &get_DiagramObject_offsetX); + get_map.emplace("DiagramObject.offsetY", &get_DiagramObject_offsetY); + get_map.emplace("DiagramObject.rotation", &get_DiagramObject_rotation); } void DiagramObject::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObject.Diagram", &get_DiagramObject_Diagram); - get_map.emplace("cim:DiagramObject.DiagramObjectStyle", &get_DiagramObject_DiagramObjectStyle); - get_map.emplace("cim:DiagramObject.IdentifiedObject", &get_DiagramObject_IdentifiedObject); + get_map.emplace("DiagramObject.Diagram", &get_DiagramObject_Diagram); + get_map.emplace("DiagramObject.DiagramObjectStyle", &get_DiagramObject_DiagramObjectStyle); + get_map.emplace("DiagramObject.IdentifiedObject", &get_DiagramObject_IdentifiedObject); } void DiagramObject::addEnumGetFnsToMap(std::map& get_map) const @@ -379,11 +411,25 @@ void DiagramObject::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObject::declare() { return BaseClassDefiner(DiagramObject::addConstructToMap, DiagramObject::addPrimitiveAssignFnsToMap, DiagramObject::addClassAssignFnsToMap, DiagramObject::debugName); } +std::map DiagramObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObject_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiagramObject.hpp b/CGMES_2.4.15_16FEB2016/DiagramObject.hpp index 0c1745a1f..07b95633c 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramObject.hpp +++ b/CGMES_2.4.15_16FEB2016/DiagramObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "Integer.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObject_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiagramObjectGluePoint.cpp b/CGMES_2.4.15_16FEB2016/DiagramObjectGluePoint.cpp index eea8918f9..43406562a 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramObjectGluePoint.cpp +++ b/CGMES_2.4.15_16FEB2016/DiagramObjectGluePoint.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectGluePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectGluePoint.DiagramObjectPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectGluePoint::DiagramObjectGluePoint() {} DiagramObjectGluePoint::~DiagramObjectGluePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectGluePoint::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectGluePoint::getClassNamespaceUrl() const { - { "cim:DiagramObjectGluePoint.DiagramObjectPoints", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectGluePoint::getPossibleProfilesForClass() const +const std::string& DiagramObjectGluePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectGluePoint::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectGluePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectGluePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectGluePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectGluePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObjectPoint_DiagramObjectGluePoint(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramObjectGluePoint::debugString() const void DiagramObjectGluePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectGluePoint", &DiagramObjectGluePoint_factory); + factory_map.emplace("DiagramObjectGluePoint", &DiagramObjectGluePoint_factory); } void DiagramObjectGluePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramObjectGluePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectGluePoint.DiagramObjectPoints", &assign_DiagramObjectGluePoint_DiagramObjectPoints); + assign_map.emplace("DiagramObjectGluePoint.DiagramObjectPoints", &assign_DiagramObjectGluePoint_DiagramObjectPoints); } void DiagramObjectGluePoint::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramObjectGluePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectGluePoint::declare() { return BaseClassDefiner(DiagramObjectGluePoint::addConstructToMap, DiagramObjectGluePoint::addPrimitiveAssignFnsToMap, DiagramObjectGluePoint::addClassAssignFnsToMap, DiagramObjectGluePoint::debugName); } +std::map DiagramObjectGluePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectGluePoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiagramObjectGluePoint.hpp b/CGMES_2.4.15_16FEB2016/DiagramObjectGluePoint.hpp index fec9f8e23..e99190a4f 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramObjectGluePoint.hpp +++ b/CGMES_2.4.15_16FEB2016/DiagramObjectGluePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectGluePoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiagramObjectPoint.cpp b/CGMES_2.4.15_16FEB2016/DiagramObjectPoint.cpp index 4afd45f45..a422e8c03 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramObjectPoint.cpp +++ b/CGMES_2.4.15_16FEB2016/DiagramObjectPoint.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectPoint.DiagramObject", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.DiagramObjectGluePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.xPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.yPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.zPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectPoint::DiagramObjectPoint() : DiagramObject(nullptr), DiagramObjectGluePoint(nullptr) {} DiagramObjectPoint::~DiagramObjectPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectPoint::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectPoint::getClassNamespaceUrl() const { - { "cim:DiagramObjectPoint.DiagramObject", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.DiagramObjectGluePoint", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.sequenceNumber", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.xPosition", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.yPosition", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.zPosition", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectPoint::getPossibleProfilesForClass() const +const std::string& DiagramObjectPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectPoint::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_DiagramObjectPoints(BaseClass*, BaseClass*); @@ -232,37 +264,37 @@ const char* DiagramObjectPoint::debugString() const void DiagramObjectPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectPoint", &DiagramObjectPoint_factory); + factory_map.emplace("DiagramObjectPoint", &DiagramObjectPoint_factory); } void DiagramObjectPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectPoint.sequenceNumber", &assign_DiagramObjectPoint_sequenceNumber); - assign_map.emplace("cim:DiagramObjectPoint.xPosition", &assign_DiagramObjectPoint_xPosition); - assign_map.emplace("cim:DiagramObjectPoint.yPosition", &assign_DiagramObjectPoint_yPosition); - assign_map.emplace("cim:DiagramObjectPoint.zPosition", &assign_DiagramObjectPoint_zPosition); + assign_map.emplace("DiagramObjectPoint.sequenceNumber", &assign_DiagramObjectPoint_sequenceNumber); + assign_map.emplace("DiagramObjectPoint.xPosition", &assign_DiagramObjectPoint_xPosition); + assign_map.emplace("DiagramObjectPoint.yPosition", &assign_DiagramObjectPoint_yPosition); + assign_map.emplace("DiagramObjectPoint.zPosition", &assign_DiagramObjectPoint_zPosition); } void DiagramObjectPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectPoint.DiagramObject", &assign_DiagramObjectPoint_DiagramObject); - assign_map.emplace("cim:DiagramObjectPoint.DiagramObjectGluePoint", &assign_DiagramObjectPoint_DiagramObjectGluePoint); + assign_map.emplace("DiagramObjectPoint.DiagramObject", &assign_DiagramObjectPoint_DiagramObject); + assign_map.emplace("DiagramObjectPoint.DiagramObjectGluePoint", &assign_DiagramObjectPoint_DiagramObjectGluePoint); } void DiagramObjectPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObjectPoint.sequenceNumber", &get_DiagramObjectPoint_sequenceNumber); - get_map.emplace("cim:DiagramObjectPoint.xPosition", &get_DiagramObjectPoint_xPosition); - get_map.emplace("cim:DiagramObjectPoint.yPosition", &get_DiagramObjectPoint_yPosition); - get_map.emplace("cim:DiagramObjectPoint.zPosition", &get_DiagramObjectPoint_zPosition); + get_map.emplace("DiagramObjectPoint.sequenceNumber", &get_DiagramObjectPoint_sequenceNumber); + get_map.emplace("DiagramObjectPoint.xPosition", &get_DiagramObjectPoint_xPosition); + get_map.emplace("DiagramObjectPoint.yPosition", &get_DiagramObjectPoint_yPosition); + get_map.emplace("DiagramObjectPoint.zPosition", &get_DiagramObjectPoint_zPosition); } void DiagramObjectPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObjectPoint.DiagramObject", &get_DiagramObjectPoint_DiagramObject); - get_map.emplace("cim:DiagramObjectPoint.DiagramObjectGluePoint", &get_DiagramObjectPoint_DiagramObjectGluePoint); + get_map.emplace("DiagramObjectPoint.DiagramObject", &get_DiagramObjectPoint_DiagramObject); + get_map.emplace("DiagramObjectPoint.DiagramObjectGluePoint", &get_DiagramObjectPoint_DiagramObjectGluePoint); } void DiagramObjectPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -270,11 +302,25 @@ void DiagramObjectPoint::addEnumGetFnsToMap(std::map& BaseClass::addEnumGetFnsToMap(get_map); } +bool DiagramObjectPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObjectPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectPoint::declare() { return BaseClassDefiner(DiagramObjectPoint::addConstructToMap, DiagramObjectPoint::addPrimitiveAssignFnsToMap, DiagramObjectPoint::addClassAssignFnsToMap, DiagramObjectPoint::debugName); } +std::map DiagramObjectPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectPoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiagramObjectPoint.hpp b/CGMES_2.4.15_16FEB2016/DiagramObjectPoint.hpp index ed1f2dcc5..714be009e 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramObjectPoint.hpp +++ b/CGMES_2.4.15_16FEB2016/DiagramObjectPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectPoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiagramObjectStyle.cpp b/CGMES_2.4.15_16FEB2016/DiagramObjectStyle.cpp index db870f870..a2439ade4 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramObjectStyle.cpp +++ b/CGMES_2.4.15_16FEB2016/DiagramObjectStyle.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectStyle(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectStyle.StyledObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectStyle::DiagramObjectStyle() {} DiagramObjectStyle::~DiagramObjectStyle() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectStyle::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectStyle::getClassNamespaceUrl() const { - { "cim:DiagramObjectStyle.StyledObjects", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectStyle::getPossibleProfilesForClass() const +const std::string& DiagramObjectStyle::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectStyle::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectStyle::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectStyle::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectStyle::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectStyle::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_DiagramObjectStyle(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramObjectStyle::debugString() const void DiagramObjectStyle::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectStyle", &DiagramObjectStyle_factory); + factory_map.emplace("DiagramObjectStyle", &DiagramObjectStyle_factory); } void DiagramObjectStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramObjectStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectStyle.StyledObjects", &assign_DiagramObjectStyle_StyledObjects); + assign_map.emplace("DiagramObjectStyle.StyledObjects", &assign_DiagramObjectStyle_StyledObjects); } void DiagramObjectStyle::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramObjectStyle::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramObjectStyle::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObjectStyle" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectStyle::declare() { return BaseClassDefiner(DiagramObjectStyle::addConstructToMap, DiagramObjectStyle::addPrimitiveAssignFnsToMap, DiagramObjectStyle::addClassAssignFnsToMap, DiagramObjectStyle::debugName); } +std::map DiagramObjectStyle::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectStyle_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiagramObjectStyle.hpp b/CGMES_2.4.15_16FEB2016/DiagramObjectStyle.hpp index a2dc55692..492f12573 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramObjectStyle.hpp +++ b/CGMES_2.4.15_16FEB2016/DiagramObjectStyle.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectStyle_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiagramStyle.cpp b/CGMES_2.4.15_16FEB2016/DiagramStyle.cpp index dd98ebef0..0cb05ba20 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramStyle.cpp +++ b/CGMES_2.4.15_16FEB2016/DiagramStyle.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramStyle(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramStyle.Diagram", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramStyle::DiagramStyle() {} DiagramStyle::~DiagramStyle() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramStyle::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramStyle::getClassNamespaceUrl() const { - { "cim:DiagramStyle.Diagram", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramStyle::getPossibleProfilesForClass() const +const std::string& DiagramStyle::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramStyle::getPossibleProfilesForAttributes() const +const std::list& DiagramStyle::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramStyle::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramStyle::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramStyle::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Diagram_DiagramStyle(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramStyle::debugString() const void DiagramStyle::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramStyle", &DiagramStyle_factory); + factory_map.emplace("DiagramStyle", &DiagramStyle_factory); } void DiagramStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramStyle.Diagram", &assign_DiagramStyle_Diagram); + assign_map.emplace("DiagramStyle.Diagram", &assign_DiagramStyle_Diagram); } void DiagramStyle::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramStyle::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramStyle::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramStyle" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramStyle::declare() { return BaseClassDefiner(DiagramStyle::addConstructToMap, DiagramStyle::addPrimitiveAssignFnsToMap, DiagramStyle::addClassAssignFnsToMap, DiagramStyle::debugName); } +std::map DiagramStyle::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramStyle_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiagramStyle.hpp b/CGMES_2.4.15_16FEB2016/DiagramStyle.hpp index 76311dfe7..e816715cf 100644 --- a/CGMES_2.4.15_16FEB2016/DiagramStyle.hpp +++ b/CGMES_2.4.15_16FEB2016/DiagramStyle.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramStyle_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC1A.cpp b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC1A.cpp index 590aabc67..29aef6281 100644 --- a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC1A.cpp +++ b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC1A.esc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.kan", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.ketl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tan", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tw5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.val", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vanmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vomax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vomin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtlmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC1A::DiscExcContIEEEDEC1A() {} DiscExcContIEEEDEC1A::~DiscExcContIEEEDEC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC1A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC1A.esc", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.kan", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.ketl", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tan", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.td", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tl1", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tl2", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tw5", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.val", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vanmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vomax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vomin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vsmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vsmin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtc", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtlmt", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtm", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtn", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC1A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC1A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC1A_esc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* DiscExcContIEEEDEC1A::debugString() const void DiscExcContIEEEDEC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC1A", &DiscExcContIEEEDEC1A_factory); + factory_map.emplace("DiscExcContIEEEDEC1A", &DiscExcContIEEEDEC1A_factory); } void DiscExcContIEEEDEC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC1A.esc", &assign_DiscExcContIEEEDEC1A_esc); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.kan", &assign_DiscExcContIEEEDEC1A_kan); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.ketl", &assign_DiscExcContIEEEDEC1A_ketl); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tan", &assign_DiscExcContIEEEDEC1A_tan); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.td", &assign_DiscExcContIEEEDEC1A_td); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tl1", &assign_DiscExcContIEEEDEC1A_tl1); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tl2", &assign_DiscExcContIEEEDEC1A_tl2); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tw5", &assign_DiscExcContIEEEDEC1A_tw5); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.val", &assign_DiscExcContIEEEDEC1A_val); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vanmax", &assign_DiscExcContIEEEDEC1A_vanmax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vomax", &assign_DiscExcContIEEEDEC1A_vomax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vomin", &assign_DiscExcContIEEEDEC1A_vomin); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vsmax", &assign_DiscExcContIEEEDEC1A_vsmax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vsmin", &assign_DiscExcContIEEEDEC1A_vsmin); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtc", &assign_DiscExcContIEEEDEC1A_vtc); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtlmt", &assign_DiscExcContIEEEDEC1A_vtlmt); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtm", &assign_DiscExcContIEEEDEC1A_vtm); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtn", &assign_DiscExcContIEEEDEC1A_vtn); + assign_map.emplace("DiscExcContIEEEDEC1A.esc", &assign_DiscExcContIEEEDEC1A_esc); + assign_map.emplace("DiscExcContIEEEDEC1A.kan", &assign_DiscExcContIEEEDEC1A_kan); + assign_map.emplace("DiscExcContIEEEDEC1A.ketl", &assign_DiscExcContIEEEDEC1A_ketl); + assign_map.emplace("DiscExcContIEEEDEC1A.tan", &assign_DiscExcContIEEEDEC1A_tan); + assign_map.emplace("DiscExcContIEEEDEC1A.td", &assign_DiscExcContIEEEDEC1A_td); + assign_map.emplace("DiscExcContIEEEDEC1A.tl1", &assign_DiscExcContIEEEDEC1A_tl1); + assign_map.emplace("DiscExcContIEEEDEC1A.tl2", &assign_DiscExcContIEEEDEC1A_tl2); + assign_map.emplace("DiscExcContIEEEDEC1A.tw5", &assign_DiscExcContIEEEDEC1A_tw5); + assign_map.emplace("DiscExcContIEEEDEC1A.val", &assign_DiscExcContIEEEDEC1A_val); + assign_map.emplace("DiscExcContIEEEDEC1A.vanmax", &assign_DiscExcContIEEEDEC1A_vanmax); + assign_map.emplace("DiscExcContIEEEDEC1A.vomax", &assign_DiscExcContIEEEDEC1A_vomax); + assign_map.emplace("DiscExcContIEEEDEC1A.vomin", &assign_DiscExcContIEEEDEC1A_vomin); + assign_map.emplace("DiscExcContIEEEDEC1A.vsmax", &assign_DiscExcContIEEEDEC1A_vsmax); + assign_map.emplace("DiscExcContIEEEDEC1A.vsmin", &assign_DiscExcContIEEEDEC1A_vsmin); + assign_map.emplace("DiscExcContIEEEDEC1A.vtc", &assign_DiscExcContIEEEDEC1A_vtc); + assign_map.emplace("DiscExcContIEEEDEC1A.vtlmt", &assign_DiscExcContIEEEDEC1A_vtlmt); + assign_map.emplace("DiscExcContIEEEDEC1A.vtm", &assign_DiscExcContIEEEDEC1A_vtm); + assign_map.emplace("DiscExcContIEEEDEC1A.vtn", &assign_DiscExcContIEEEDEC1A_vtn); } void DiscExcContIEEEDEC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void DiscExcContIEEEDEC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC1A.esc", &get_DiscExcContIEEEDEC1A_esc); - get_map.emplace("cim:DiscExcContIEEEDEC1A.kan", &get_DiscExcContIEEEDEC1A_kan); - get_map.emplace("cim:DiscExcContIEEEDEC1A.ketl", &get_DiscExcContIEEEDEC1A_ketl); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tan", &get_DiscExcContIEEEDEC1A_tan); - get_map.emplace("cim:DiscExcContIEEEDEC1A.td", &get_DiscExcContIEEEDEC1A_td); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tl1", &get_DiscExcContIEEEDEC1A_tl1); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tl2", &get_DiscExcContIEEEDEC1A_tl2); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tw5", &get_DiscExcContIEEEDEC1A_tw5); - get_map.emplace("cim:DiscExcContIEEEDEC1A.val", &get_DiscExcContIEEEDEC1A_val); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vanmax", &get_DiscExcContIEEEDEC1A_vanmax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vomax", &get_DiscExcContIEEEDEC1A_vomax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vomin", &get_DiscExcContIEEEDEC1A_vomin); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vsmax", &get_DiscExcContIEEEDEC1A_vsmax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vsmin", &get_DiscExcContIEEEDEC1A_vsmin); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtc", &get_DiscExcContIEEEDEC1A_vtc); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtlmt", &get_DiscExcContIEEEDEC1A_vtlmt); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtm", &get_DiscExcContIEEEDEC1A_vtm); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtn", &get_DiscExcContIEEEDEC1A_vtn); + get_map.emplace("DiscExcContIEEEDEC1A.esc", &get_DiscExcContIEEEDEC1A_esc); + get_map.emplace("DiscExcContIEEEDEC1A.kan", &get_DiscExcContIEEEDEC1A_kan); + get_map.emplace("DiscExcContIEEEDEC1A.ketl", &get_DiscExcContIEEEDEC1A_ketl); + get_map.emplace("DiscExcContIEEEDEC1A.tan", &get_DiscExcContIEEEDEC1A_tan); + get_map.emplace("DiscExcContIEEEDEC1A.td", &get_DiscExcContIEEEDEC1A_td); + get_map.emplace("DiscExcContIEEEDEC1A.tl1", &get_DiscExcContIEEEDEC1A_tl1); + get_map.emplace("DiscExcContIEEEDEC1A.tl2", &get_DiscExcContIEEEDEC1A_tl2); + get_map.emplace("DiscExcContIEEEDEC1A.tw5", &get_DiscExcContIEEEDEC1A_tw5); + get_map.emplace("DiscExcContIEEEDEC1A.val", &get_DiscExcContIEEEDEC1A_val); + get_map.emplace("DiscExcContIEEEDEC1A.vanmax", &get_DiscExcContIEEEDEC1A_vanmax); + get_map.emplace("DiscExcContIEEEDEC1A.vomax", &get_DiscExcContIEEEDEC1A_vomax); + get_map.emplace("DiscExcContIEEEDEC1A.vomin", &get_DiscExcContIEEEDEC1A_vomin); + get_map.emplace("DiscExcContIEEEDEC1A.vsmax", &get_DiscExcContIEEEDEC1A_vsmax); + get_map.emplace("DiscExcContIEEEDEC1A.vsmin", &get_DiscExcContIEEEDEC1A_vsmin); + get_map.emplace("DiscExcContIEEEDEC1A.vtc", &get_DiscExcContIEEEDEC1A_vtc); + get_map.emplace("DiscExcContIEEEDEC1A.vtlmt", &get_DiscExcContIEEEDEC1A_vtlmt); + get_map.emplace("DiscExcContIEEEDEC1A.vtm", &get_DiscExcContIEEEDEC1A_vtm); + get_map.emplace("DiscExcContIEEEDEC1A.vtn", &get_DiscExcContIEEEDEC1A_vtn); } void DiscExcContIEEEDEC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void DiscExcContIEEEDEC1A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC1A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC1A::addConstructToMap, DiscExcContIEEEDEC1A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC1A::addClassAssignFnsToMap, DiscExcContIEEEDEC1A::debugName); } +std::map DiscExcContIEEEDEC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC1A.hpp b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC1A.hpp index d401f3ce2..bbda6b2dd 100644 --- a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC1A.hpp +++ b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC2A.cpp b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC2A.cpp index dc94e52c0..d7f69c3db 100644 --- a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC2A.cpp +++ b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC2A.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC2A.td1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.td2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC2A::DiscExcContIEEEDEC2A() {} DiscExcContIEEEDEC2A::~DiscExcContIEEEDEC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC2A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC2A.td1", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.td2", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vdmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vdmin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vk", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC2A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC2A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC2A_td1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* DiscExcContIEEEDEC2A::debugString() const void DiscExcContIEEEDEC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC2A", &DiscExcContIEEEDEC2A_factory); + factory_map.emplace("DiscExcContIEEEDEC2A", &DiscExcContIEEEDEC2A_factory); } void DiscExcContIEEEDEC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC2A.td1", &assign_DiscExcContIEEEDEC2A_td1); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.td2", &assign_DiscExcContIEEEDEC2A_td2); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vdmax", &assign_DiscExcContIEEEDEC2A_vdmax); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vdmin", &assign_DiscExcContIEEEDEC2A_vdmin); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vk", &assign_DiscExcContIEEEDEC2A_vk); + assign_map.emplace("DiscExcContIEEEDEC2A.td1", &assign_DiscExcContIEEEDEC2A_td1); + assign_map.emplace("DiscExcContIEEEDEC2A.td2", &assign_DiscExcContIEEEDEC2A_td2); + assign_map.emplace("DiscExcContIEEEDEC2A.vdmax", &assign_DiscExcContIEEEDEC2A_vdmax); + assign_map.emplace("DiscExcContIEEEDEC2A.vdmin", &assign_DiscExcContIEEEDEC2A_vdmin); + assign_map.emplace("DiscExcContIEEEDEC2A.vk", &assign_DiscExcContIEEEDEC2A_vk); } void DiscExcContIEEEDEC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void DiscExcContIEEEDEC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC2A.td1", &get_DiscExcContIEEEDEC2A_td1); - get_map.emplace("cim:DiscExcContIEEEDEC2A.td2", &get_DiscExcContIEEEDEC2A_td2); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vdmax", &get_DiscExcContIEEEDEC2A_vdmax); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vdmin", &get_DiscExcContIEEEDEC2A_vdmin); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vk", &get_DiscExcContIEEEDEC2A_vk); + get_map.emplace("DiscExcContIEEEDEC2A.td1", &get_DiscExcContIEEEDEC2A_td1); + get_map.emplace("DiscExcContIEEEDEC2A.td2", &get_DiscExcContIEEEDEC2A_td2); + get_map.emplace("DiscExcContIEEEDEC2A.vdmax", &get_DiscExcContIEEEDEC2A_vdmax); + get_map.emplace("DiscExcContIEEEDEC2A.vdmin", &get_DiscExcContIEEEDEC2A_vdmin); + get_map.emplace("DiscExcContIEEEDEC2A.vk", &get_DiscExcContIEEEDEC2A_vk); } void DiscExcContIEEEDEC2A::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void DiscExcContIEEEDEC2A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC2A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC2A::addConstructToMap, DiscExcContIEEEDEC2A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC2A::addClassAssignFnsToMap, DiscExcContIEEEDEC2A::debugName); } +std::map DiscExcContIEEEDEC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC2A_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC2A.hpp b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC2A.hpp index 0e8a5a1bd..bf9f135a4 100644 --- a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC2A.hpp +++ b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC2A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC3A.cpp b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC3A.cpp index 67dd91242..ba0c94f9b 100644 --- a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC3A.cpp +++ b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC3A.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC3A.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC3A.vtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC3A::DiscExcContIEEEDEC3A() {} DiscExcContIEEEDEC3A::~DiscExcContIEEEDEC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC3A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC3A.tdr", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC3A.vtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC3A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC3A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC3A_tdr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DiscExcContIEEEDEC3A::debugString() const void DiscExcContIEEEDEC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC3A", &DiscExcContIEEEDEC3A_factory); + factory_map.emplace("DiscExcContIEEEDEC3A", &DiscExcContIEEEDEC3A_factory); } void DiscExcContIEEEDEC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC3A.tdr", &assign_DiscExcContIEEEDEC3A_tdr); - assign_map.emplace("cim:DiscExcContIEEEDEC3A.vtmin", &assign_DiscExcContIEEEDEC3A_vtmin); + assign_map.emplace("DiscExcContIEEEDEC3A.tdr", &assign_DiscExcContIEEEDEC3A_tdr); + assign_map.emplace("DiscExcContIEEEDEC3A.vtmin", &assign_DiscExcContIEEEDEC3A_vtmin); } void DiscExcContIEEEDEC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DiscExcContIEEEDEC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC3A.tdr", &get_DiscExcContIEEEDEC3A_tdr); - get_map.emplace("cim:DiscExcContIEEEDEC3A.vtmin", &get_DiscExcContIEEEDEC3A_vtmin); + get_map.emplace("DiscExcContIEEEDEC3A.tdr", &get_DiscExcContIEEEDEC3A_tdr); + get_map.emplace("DiscExcContIEEEDEC3A.vtmin", &get_DiscExcContIEEEDEC3A_vtmin); } void DiscExcContIEEEDEC3A::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DiscExcContIEEEDEC3A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC3A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC3A::addConstructToMap, DiscExcContIEEEDEC3A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC3A::addClassAssignFnsToMap, DiscExcContIEEEDEC3A::debugName); } +std::map DiscExcContIEEEDEC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC3A_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC3A.hpp b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC3A.hpp index 24ceb2f88..4c5aa480d 100644 --- a/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC3A.hpp +++ b/CGMES_2.4.15_16FEB2016/DiscExcContIEEEDEC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC3A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Disconnector.cpp b/CGMES_2.4.15_16FEB2016/Disconnector.cpp index e64c24d80..0d9016d8f 100644 --- a/CGMES_2.4.15_16FEB2016/Disconnector.cpp +++ b/CGMES_2.4.15_16FEB2016/Disconnector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Disconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Disconnector::Disconnector() {} Disconnector::~Disconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& Disconnector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Disconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Disconnector::getPossibleProfilesForClass() const +const std::string& Disconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Disconnector::getPossibleProfilesForAttributes() const +const std::list& Disconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Disconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Disconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Disconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Disconnector::debugName[] = "Disconnector"; @@ -47,7 +79,7 @@ const char* Disconnector::debugString() const void Disconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Disconnector", &Disconnector_factory); + factory_map.emplace("Disconnector", &Disconnector_factory); } void Disconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Disconnector::addEnumGetFnsToMap(std::map& get_m Switch::addEnumGetFnsToMap(get_map); } +bool Disconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Disconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Disconnector::declare() { return BaseClassDefiner(Disconnector::addConstructToMap, Disconnector::addPrimitiveAssignFnsToMap, Disconnector::addClassAssignFnsToMap, Disconnector::debugName); } +std::map Disconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Disconnector_factory() diff --git a/CGMES_2.4.15_16FEB2016/Disconnector.hpp b/CGMES_2.4.15_16FEB2016/Disconnector.hpp index 844173634..ee167a6d1 100644 --- a/CGMES_2.4.15_16FEB2016/Disconnector.hpp +++ b/CGMES_2.4.15_16FEB2016/Disconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Disconnector_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlDynamics.cpp b/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlDynamics.cpp index 1e6569ea1..9073c219f 100644 --- a/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscontinuousExcitationControlDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscontinuousExcitationControlDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscontinuousExcitationControlDynamics::DiscontinuousExcitationControlDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} DiscontinuousExcitationControlDynamics::~DiscontinuousExcitationControlDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscontinuousExcitationControlDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscontinuousExcitationControlDynamics::getClassNamespaceUrl() const { - { "cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:DiscontinuousExcitationControlDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscontinuousExcitationControlDynamics::getPossibleProfilesForClass() const +const std::string& DiscontinuousExcitationControlDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes() const +const std::list& DiscontinuousExcitationControlDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscontinuousExcitationControlDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscontinuousExcitationControlDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscontinuousExcitationControlDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* DiscontinuousExcitationControlDynamics::debugString() const void DiscontinuousExcitationControlDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscontinuousExcitationControlDynamics", &DiscontinuousExcitationControlDynamics_factory); + factory_map.emplace("DiscontinuousExcitationControlDynamics", &DiscontinuousExcitationControlDynamics_factory); } void DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap(std::uno void DiscontinuousExcitationControlDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:DiscontinuousExcitationControlDynamics.RemoteInputSignal", &assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal); + assign_map.emplace("DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); + assign_map.emplace("DiscontinuousExcitationControlDynamics.RemoteInputSignal", &assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal); } void DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &get_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); + get_map.emplace("DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &get_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); } void DiscontinuousExcitationControlDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void DiscontinuousExcitationControlDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscontinuousExcitationControlDynamics::declare() { return BaseClassDefiner(DiscontinuousExcitationControlDynamics::addConstructToMap, DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap, DiscontinuousExcitationControlDynamics::addClassAssignFnsToMap, DiscontinuousExcitationControlDynamics::debugName); } +std::map DiscontinuousExcitationControlDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscontinuousExcitationControlDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlDynamics.hpp b/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlDynamics.hpp index e0a40c245..a674d954c 100644 --- a/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscontinuousExcitationControlDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlUserDefined.cpp b/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlUserDefined.cpp index f2154bd03..654660541 100644 --- a/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscontinuousExcitationControlUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscontinuousExcitationControlUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscontinuousExcitationControlUserDefined::DiscontinuousExcitationControlUserDefined() {} DiscontinuousExcitationControlUserDefined::~DiscontinuousExcitationControlUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscontinuousExcitationControlUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscontinuousExcitationControlUserDefined::getClassNamespaceUrl() const { - { "cim:DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:DiscontinuousExcitationControlUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscontinuousExcitationControlUserDefined::getPossibleProfilesForClass() const +const std::string& DiscontinuousExcitationControlUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscontinuousExcitationControlUserDefined::getPossibleProfilesForAttributes() const +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscontinuousExcitationControlUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* DiscontinuousExcitationControlUserDefined::debugString() const void DiscontinuousExcitationControlUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscontinuousExcitationControlUserDefined", &DiscontinuousExcitationControlUserDefined_factory); + factory_map.emplace("DiscontinuousExcitationControlUserDefined", &DiscontinuousExcitationControlUserDefined_factory); } void DiscontinuousExcitationControlUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlUserDefined.proprietary", &assign_DiscontinuousExcitationControlUserDefined_proprietary); + assign_map.emplace("DiscontinuousExcitationControlUserDefined.proprietary", &assign_DiscontinuousExcitationControlUserDefined_proprietary); } void DiscontinuousExcitationControlUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", &assign_DiscontinuousExcitationControlUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", &assign_DiscontinuousExcitationControlUserDefined_ProprietaryParameterDynamics); } void DiscontinuousExcitationControlUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscontinuousExcitationControlUserDefined.proprietary", &get_DiscontinuousExcitationControlUserDefined_proprietary); + get_map.emplace("DiscontinuousExcitationControlUserDefined.proprietary", &get_DiscontinuousExcitationControlUserDefined_proprietary); } void DiscontinuousExcitationControlUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void DiscontinuousExcitationControlUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscontinuousExcitationControlUserDefined::declare() { return BaseClassDefiner(DiscontinuousExcitationControlUserDefined::addConstructToMap, DiscontinuousExcitationControlUserDefined::addPrimitiveAssignFnsToMap, DiscontinuousExcitationControlUserDefined::addClassAssignFnsToMap, DiscontinuousExcitationControlUserDefined::debugName); } +std::map DiscontinuousExcitationControlUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscontinuousExcitationControlUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlUserDefined.hpp b/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlUserDefined.hpp index 051d1a48d..d5f249b1b 100644 --- a/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/DiscontinuousExcitationControlUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscontinuousExcitationControlUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Discrete.cpp b/CGMES_2.4.15_16FEB2016/Discrete.cpp index bed7e18ab..1bd375816 100644 --- a/CGMES_2.4.15_16FEB2016/Discrete.cpp +++ b/CGMES_2.4.15_16FEB2016/Discrete.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Discrete(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Discrete.DiscreteValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Discrete.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Discrete::Discrete() : ValueAliasSet(nullptr) {} Discrete::~Discrete() {} -static const std::list PossibleProfilesForClass = +const std::list& Discrete::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Discrete::getClassNamespaceUrl() const { - { "cim:Discrete.DiscreteValues", { CGMESProfile::EQ, } }, - { "cim:Discrete.ValueAliasSet", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Discrete::getPossibleProfilesForClass() const +const std::string& Discrete::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Discrete::getPossibleProfilesForAttributes() const +const std::list& Discrete::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Discrete::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Discrete::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Discrete::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscreteValue_Discrete(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* Discrete::debugString() const void Discrete::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Discrete", &Discrete_factory); + factory_map.emplace("Discrete", &Discrete_factory); } void Discrete::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void Discrete::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Discrete.DiscreteValues", &assign_Discrete_DiscreteValues); - assign_map.emplace("cim:Discrete.ValueAliasSet", &assign_Discrete_ValueAliasSet); + assign_map.emplace("Discrete.DiscreteValues", &assign_Discrete_DiscreteValues); + assign_map.emplace("Discrete.ValueAliasSet", &assign_Discrete_ValueAliasSet); } void Discrete::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void Discrete::addPrimitiveGetFnsToMap(std::map& get_ void Discrete::addClassGetFnsToMap(std::map& get_map) const { Measurement::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Discrete.ValueAliasSet", &get_Discrete_ValueAliasSet); + get_map.emplace("Discrete.ValueAliasSet", &get_Discrete_ValueAliasSet); } void Discrete::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void Discrete::addEnumGetFnsToMap(std::map& get_map) Measurement::addEnumGetFnsToMap(get_map); } +bool Discrete::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Discrete" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Discrete::declare() { return BaseClassDefiner(Discrete::addConstructToMap, Discrete::addPrimitiveAssignFnsToMap, Discrete::addClassAssignFnsToMap, Discrete::debugName); } +std::map Discrete::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Discrete_factory() diff --git a/CGMES_2.4.15_16FEB2016/Discrete.hpp b/CGMES_2.4.15_16FEB2016/Discrete.hpp index 2672d040b..aaf8edce0 100644 --- a/CGMES_2.4.15_16FEB2016/Discrete.hpp +++ b/CGMES_2.4.15_16FEB2016/Discrete.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Discrete_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DiscreteValue.cpp b/CGMES_2.4.15_16FEB2016/DiscreteValue.cpp index a990c7895..0e11b18cd 100644 --- a/CGMES_2.4.15_16FEB2016/DiscreteValue.cpp +++ b/CGMES_2.4.15_16FEB2016/DiscreteValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscreteValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscreteValue.Command", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DiscreteValue.Discrete", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DiscreteValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DiscreteValue::DiscreteValue() : Command(nullptr), Discrete(nullptr) {} DiscreteValue::~DiscreteValue() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscreteValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscreteValue::getClassNamespaceUrl() const { - { "cim:DiscreteValue.Command", { CGMESProfile::EQ, } }, - { "cim:DiscreteValue.Discrete", { CGMESProfile::EQ, } }, - { "cim:DiscreteValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscreteValue::getPossibleProfilesForClass() const +const std::string& DiscreteValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscreteValue::getPossibleProfilesForAttributes() const +const std::list& DiscreteValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscreteValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscreteValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscreteValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Command_DiscreteValue(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* DiscreteValue::debugString() const void DiscreteValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscreteValue", &DiscreteValue_factory); + factory_map.emplace("DiscreteValue", &DiscreteValue_factory); } void DiscreteValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscreteValue.value", &assign_DiscreteValue_value); + assign_map.emplace("DiscreteValue.value", &assign_DiscreteValue_value); } void DiscreteValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscreteValue.Command", &assign_DiscreteValue_Command); - assign_map.emplace("cim:DiscreteValue.Discrete", &assign_DiscreteValue_Discrete); + assign_map.emplace("DiscreteValue.Command", &assign_DiscreteValue_Command); + assign_map.emplace("DiscreteValue.Discrete", &assign_DiscreteValue_Discrete); } void DiscreteValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscreteValue.value", &get_DiscreteValue_value); + get_map.emplace("DiscreteValue.value", &get_DiscreteValue_value); } void DiscreteValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiscreteValue.Discrete", &get_DiscreteValue_Discrete); + get_map.emplace("DiscreteValue.Discrete", &get_DiscreteValue_Discrete); } void DiscreteValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void DiscreteValue::addEnumGetFnsToMap(std::map& get_ MeasurementValue::addEnumGetFnsToMap(get_map); } +bool DiscreteValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiscreteValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiscreteValue::declare() { return BaseClassDefiner(DiscreteValue::addConstructToMap, DiscreteValue::addPrimitiveAssignFnsToMap, DiscreteValue::addClassAssignFnsToMap, DiscreteValue::debugName); } +std::map DiscreteValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscreteValue_factory() diff --git a/CGMES_2.4.15_16FEB2016/DiscreteValue.hpp b/CGMES_2.4.15_16FEB2016/DiscreteValue.hpp index 1fbc352c7..250331f6f 100644 --- a/CGMES_2.4.15_16FEB2016/DiscreteValue.hpp +++ b/CGMES_2.4.15_16FEB2016/DiscreteValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscreteValue_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DynamicsFunctionBlock.cpp b/CGMES_2.4.15_16FEB2016/DynamicsFunctionBlock.cpp index 3ed474991..3e79182d2 100644 --- a/CGMES_2.4.15_16FEB2016/DynamicsFunctionBlock.cpp +++ b/CGMES_2.4.15_16FEB2016/DynamicsFunctionBlock.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DynamicsFunctionBlock(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DynamicsFunctionBlock.enabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DynamicsFunctionBlock::DynamicsFunctionBlock() {} DynamicsFunctionBlock::~DynamicsFunctionBlock() {} -static const std::list PossibleProfilesForClass = +const std::list& DynamicsFunctionBlock::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DynamicsFunctionBlock::getClassNamespaceUrl() const { - { "cim:DynamicsFunctionBlock.enabled", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DynamicsFunctionBlock::getPossibleProfilesForClass() const +const std::string& DynamicsFunctionBlock::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DynamicsFunctionBlock::getPossibleProfilesForAttributes() const +const std::list& DynamicsFunctionBlock::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DynamicsFunctionBlock::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DynamicsFunctionBlock::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DynamicsFunctionBlock::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DynamicsFunctionBlock_enabled(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* DynamicsFunctionBlock::debugString() const void DynamicsFunctionBlock::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DynamicsFunctionBlock", &DynamicsFunctionBlock_factory); + factory_map.emplace("DynamicsFunctionBlock", &DynamicsFunctionBlock_factory); } void DynamicsFunctionBlock::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DynamicsFunctionBlock.enabled", &assign_DynamicsFunctionBlock_enabled); + assign_map.emplace("DynamicsFunctionBlock.enabled", &assign_DynamicsFunctionBlock_enabled); } void DynamicsFunctionBlock::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void DynamicsFunctionBlock::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DynamicsFunctionBlock.enabled", &get_DynamicsFunctionBlock_enabled); + get_map.emplace("DynamicsFunctionBlock.enabled", &get_DynamicsFunctionBlock_enabled); } void DynamicsFunctionBlock::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void DynamicsFunctionBlock::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DynamicsFunctionBlock::declare() { return BaseClassDefiner(DynamicsFunctionBlock::addConstructToMap, DynamicsFunctionBlock::addPrimitiveAssignFnsToMap, DynamicsFunctionBlock::addClassAssignFnsToMap, DynamicsFunctionBlock::debugName); } +std::map DynamicsFunctionBlock::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DynamicsFunctionBlock_factory() diff --git a/CGMES_2.4.15_16FEB2016/DynamicsFunctionBlock.hpp b/CGMES_2.4.15_16FEB2016/DynamicsFunctionBlock.hpp index cfce2f68e..f7a130c52 100644 --- a/CGMES_2.4.15_16FEB2016/DynamicsFunctionBlock.hpp +++ b/CGMES_2.4.15_16FEB2016/DynamicsFunctionBlock.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DynamicsFunctionBlock_factory(); diff --git a/CGMES_2.4.15_16FEB2016/DynamicsVersion.cpp b/CGMES_2.4.15_16FEB2016/DynamicsVersion.cpp index 4a2ca6829..3738aedf3 100644 --- a/CGMES_2.4.15_16FEB2016/DynamicsVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/DynamicsVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DynamicsVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DynamicsVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DynamicsVersion::DynamicsVersion() {} DynamicsVersion::~DynamicsVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& DynamicsVersion::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DynamicsVersion::getClassNamespaceUrl() const { - { "cim:DynamicsVersion.baseUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.baseURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.date", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.differenceModelURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.entsoeUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.entsoeURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.modelDescriptionURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.namespaceRDF", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.namespaceUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.shortName", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DynamicsVersion::getPossibleProfilesForClass() const +const std::string& DynamicsVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DynamicsVersion::getPossibleProfilesForAttributes() const +const std::list& DynamicsVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DynamicsVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DynamicsVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DynamicsVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DynamicsVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* DynamicsVersion::debugString() const void DynamicsVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DynamicsVersion", &DynamicsVersion_factory); + factory_map.emplace("DynamicsVersion", &DynamicsVersion_factory); } void DynamicsVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DynamicsVersion.baseUML", &assign_DynamicsVersion_baseUML); - assign_map.emplace("cim:DynamicsVersion.baseURI", &assign_DynamicsVersion_baseURI); - assign_map.emplace("cim:DynamicsVersion.date", &assign_DynamicsVersion_date); - assign_map.emplace("cim:DynamicsVersion.differenceModelURI", &assign_DynamicsVersion_differenceModelURI); - assign_map.emplace("cim:DynamicsVersion.entsoeUML", &assign_DynamicsVersion_entsoeUML); - assign_map.emplace("cim:DynamicsVersion.entsoeURI", &assign_DynamicsVersion_entsoeURI); - assign_map.emplace("cim:DynamicsVersion.modelDescriptionURI", &assign_DynamicsVersion_modelDescriptionURI); - assign_map.emplace("cim:DynamicsVersion.namespaceRDF", &assign_DynamicsVersion_namespaceRDF); - assign_map.emplace("cim:DynamicsVersion.namespaceUML", &assign_DynamicsVersion_namespaceUML); - assign_map.emplace("cim:DynamicsVersion.shortName", &assign_DynamicsVersion_shortName); + assign_map.emplace("DynamicsVersion.baseUML", &assign_DynamicsVersion_baseUML); + assign_map.emplace("DynamicsVersion.baseURI", &assign_DynamicsVersion_baseURI); + assign_map.emplace("DynamicsVersion.date", &assign_DynamicsVersion_date); + assign_map.emplace("DynamicsVersion.differenceModelURI", &assign_DynamicsVersion_differenceModelURI); + assign_map.emplace("DynamicsVersion.entsoeUML", &assign_DynamicsVersion_entsoeUML); + assign_map.emplace("DynamicsVersion.entsoeURI", &assign_DynamicsVersion_entsoeURI); + assign_map.emplace("DynamicsVersion.modelDescriptionURI", &assign_DynamicsVersion_modelDescriptionURI); + assign_map.emplace("DynamicsVersion.namespaceRDF", &assign_DynamicsVersion_namespaceRDF); + assign_map.emplace("DynamicsVersion.namespaceUML", &assign_DynamicsVersion_namespaceUML); + assign_map.emplace("DynamicsVersion.shortName", &assign_DynamicsVersion_shortName); } void DynamicsVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void DynamicsVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DynamicsVersion.baseUML", &get_DynamicsVersion_baseUML); - get_map.emplace("cim:DynamicsVersion.baseURI", &get_DynamicsVersion_baseURI); - get_map.emplace("cim:DynamicsVersion.date", &get_DynamicsVersion_date); - get_map.emplace("cim:DynamicsVersion.differenceModelURI", &get_DynamicsVersion_differenceModelURI); - get_map.emplace("cim:DynamicsVersion.entsoeUML", &get_DynamicsVersion_entsoeUML); - get_map.emplace("cim:DynamicsVersion.entsoeURI", &get_DynamicsVersion_entsoeURI); - get_map.emplace("cim:DynamicsVersion.modelDescriptionURI", &get_DynamicsVersion_modelDescriptionURI); - get_map.emplace("cim:DynamicsVersion.namespaceRDF", &get_DynamicsVersion_namespaceRDF); - get_map.emplace("cim:DynamicsVersion.namespaceUML", &get_DynamicsVersion_namespaceUML); - get_map.emplace("cim:DynamicsVersion.shortName", &get_DynamicsVersion_shortName); + get_map.emplace("DynamicsVersion.baseUML", &get_DynamicsVersion_baseUML); + get_map.emplace("DynamicsVersion.baseURI", &get_DynamicsVersion_baseURI); + get_map.emplace("DynamicsVersion.date", &get_DynamicsVersion_date); + get_map.emplace("DynamicsVersion.differenceModelURI", &get_DynamicsVersion_differenceModelURI); + get_map.emplace("DynamicsVersion.entsoeUML", &get_DynamicsVersion_entsoeUML); + get_map.emplace("DynamicsVersion.entsoeURI", &get_DynamicsVersion_entsoeURI); + get_map.emplace("DynamicsVersion.modelDescriptionURI", &get_DynamicsVersion_modelDescriptionURI); + get_map.emplace("DynamicsVersion.namespaceRDF", &get_DynamicsVersion_namespaceRDF); + get_map.emplace("DynamicsVersion.namespaceUML", &get_DynamicsVersion_namespaceUML); + get_map.emplace("DynamicsVersion.shortName", &get_DynamicsVersion_shortName); } void DynamicsVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void DynamicsVersion::addEnumGetFnsToMap(std::map& ge BaseClass::addEnumGetFnsToMap(get_map); } +bool DynamicsVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DynamicsVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DynamicsVersion::declare() { return BaseClassDefiner(DynamicsVersion::addConstructToMap, DynamicsVersion::addPrimitiveAssignFnsToMap, DynamicsVersion::addClassAssignFnsToMap, DynamicsVersion::debugName); } +std::map DynamicsVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DynamicsVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/DynamicsVersion.hpp b/CGMES_2.4.15_16FEB2016/DynamicsVersion.hpp index 67ae2df75..ee55e7ffc 100644 --- a/CGMES_2.4.15_16FEB2016/DynamicsVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/DynamicsVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DynamicsVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EarthFaultCompensator.cpp b/CGMES_2.4.15_16FEB2016/EarthFaultCompensator.cpp index f5411585b..45f8ed6b4 100644 --- a/CGMES_2.4.15_16FEB2016/EarthFaultCompensator.cpp +++ b/CGMES_2.4.15_16FEB2016/EarthFaultCompensator.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EarthFaultCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EarthFaultCompensator.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EarthFaultCompensator::EarthFaultCompensator() {} EarthFaultCompensator::~EarthFaultCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& EarthFaultCompensator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EarthFaultCompensator::getClassNamespaceUrl() const { - { "cim:EarthFaultCompensator.r", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EarthFaultCompensator::getPossibleProfilesForClass() const +const std::string& EarthFaultCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EarthFaultCompensator::getPossibleProfilesForAttributes() const +const std::list& EarthFaultCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EarthFaultCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EarthFaultCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EarthFaultCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EarthFaultCompensator_r(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* EarthFaultCompensator::debugString() const void EarthFaultCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EarthFaultCompensator", &EarthFaultCompensator_factory); + factory_map.emplace("EarthFaultCompensator", &EarthFaultCompensator_factory); } void EarthFaultCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EarthFaultCompensator.r", &assign_EarthFaultCompensator_r); + assign_map.emplace("EarthFaultCompensator.r", &assign_EarthFaultCompensator_r); } void EarthFaultCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void EarthFaultCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EarthFaultCompensator.r", &get_EarthFaultCompensator_r); + get_map.emplace("EarthFaultCompensator.r", &get_EarthFaultCompensator_r); } void EarthFaultCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void EarthFaultCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EarthFaultCompensator::declare() { return BaseClassDefiner(EarthFaultCompensator::addConstructToMap, EarthFaultCompensator::addPrimitiveAssignFnsToMap, EarthFaultCompensator::addClassAssignFnsToMap, EarthFaultCompensator::debugName); } +std::map EarthFaultCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EarthFaultCompensator_factory() diff --git a/CGMES_2.4.15_16FEB2016/EarthFaultCompensator.hpp b/CGMES_2.4.15_16FEB2016/EarthFaultCompensator.hpp index 5f16c7ac2..29c74418f 100644 --- a/CGMES_2.4.15_16FEB2016/EarthFaultCompensator.hpp +++ b/CGMES_2.4.15_16FEB2016/EarthFaultCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Resistance.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EarthFaultCompensator_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EnergyArea.cpp b/CGMES_2.4.15_16FEB2016/EnergyArea.cpp index 0df0b19c1..ff709dd55 100644 --- a/CGMES_2.4.15_16FEB2016/EnergyArea.cpp +++ b/CGMES_2.4.15_16FEB2016/EnergyArea.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergyArea.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergyArea::EnergyArea() : ControlArea(nullptr) {} EnergyArea::~EnergyArea() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyArea::getClassNamespaceUrl() const { - { "cim:EnergyArea.ControlArea", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyArea::getPossibleProfilesForClass() const +const std::string& EnergyArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyArea::getPossibleProfilesForAttributes() const +const std::list& EnergyArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_EnergyArea(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* EnergyArea::debugString() const void EnergyArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyArea", &EnergyArea_factory); + factory_map.emplace("EnergyArea", &EnergyArea_factory); } void EnergyArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void EnergyArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyArea.ControlArea", &assign_EnergyArea_ControlArea); + assign_map.emplace("EnergyArea.ControlArea", &assign_EnergyArea_ControlArea); } void EnergyArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void EnergyArea::addEnumGetFnsToMap(std::map& get_map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool EnergyArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyArea::declare() { return BaseClassDefiner(EnergyArea::addConstructToMap, EnergyArea::addPrimitiveAssignFnsToMap, EnergyArea::addClassAssignFnsToMap, EnergyArea::debugName); } +std::map EnergyArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyArea_factory() diff --git a/CGMES_2.4.15_16FEB2016/EnergyArea.hpp b/CGMES_2.4.15_16FEB2016/EnergyArea.hpp index 7d58dfca7..1b0f57c45 100644 --- a/CGMES_2.4.15_16FEB2016/EnergyArea.hpp +++ b/CGMES_2.4.15_16FEB2016/EnergyArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyArea_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EnergyConsumer.cpp b/CGMES_2.4.15_16FEB2016/EnergyConsumer.cpp index b95cded7e..49fdbc76b 100644 --- a/CGMES_2.4.15_16FEB2016/EnergyConsumer.cpp +++ b/CGMES_2.4.15_16FEB2016/EnergyConsumer.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyConsumer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergyConsumer.LoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "EnergyConsumer.LoadResponse", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergyConsumer.pfixed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.pfixedPct", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergyConsumer.qfixed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.qfixedPct", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergyConsumer::EnergyConsumer() : LoadDynamics(nullptr), LoadResponse(nullptr) {} EnergyConsumer::~EnergyConsumer() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyConsumer::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyConsumer::getClassNamespaceUrl() const { - { "cim:EnergyConsumer.LoadDynamics", { CGMESProfile::DY, } }, - { "cim:EnergyConsumer.LoadResponse", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.p", { CGMESProfile::SSH, } }, - { "cim:EnergyConsumer.pfixed", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.pfixedPct", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.q", { CGMESProfile::SSH, } }, - { "cim:EnergyConsumer.qfixed", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.qfixedPct", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyConsumer::getPossibleProfilesForClass() const +const std::string& EnergyConsumer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyConsumer::getPossibleProfilesForAttributes() const +const std::list& EnergyConsumer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyConsumer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyConsumer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyConsumer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadDynamics_EnergyConsumer(BaseClass*, BaseClass*); @@ -294,41 +326,41 @@ const char* EnergyConsumer::debugString() const void EnergyConsumer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyConsumer", &EnergyConsumer_factory); + factory_map.emplace("EnergyConsumer", &EnergyConsumer_factory); } void EnergyConsumer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyConsumer.p", &assign_EnergyConsumer_p); - assign_map.emplace("cim:EnergyConsumer.pfixed", &assign_EnergyConsumer_pfixed); - assign_map.emplace("cim:EnergyConsumer.pfixedPct", &assign_EnergyConsumer_pfixedPct); - assign_map.emplace("cim:EnergyConsumer.q", &assign_EnergyConsumer_q); - assign_map.emplace("cim:EnergyConsumer.qfixed", &assign_EnergyConsumer_qfixed); - assign_map.emplace("cim:EnergyConsumer.qfixedPct", &assign_EnergyConsumer_qfixedPct); + assign_map.emplace("EnergyConsumer.p", &assign_EnergyConsumer_p); + assign_map.emplace("EnergyConsumer.pfixed", &assign_EnergyConsumer_pfixed); + assign_map.emplace("EnergyConsumer.pfixedPct", &assign_EnergyConsumer_pfixedPct); + assign_map.emplace("EnergyConsumer.q", &assign_EnergyConsumer_q); + assign_map.emplace("EnergyConsumer.qfixed", &assign_EnergyConsumer_qfixed); + assign_map.emplace("EnergyConsumer.qfixedPct", &assign_EnergyConsumer_qfixedPct); } void EnergyConsumer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyConsumer.LoadDynamics", &assign_EnergyConsumer_LoadDynamics); - assign_map.emplace("cim:EnergyConsumer.LoadResponse", &assign_EnergyConsumer_LoadResponse); + assign_map.emplace("EnergyConsumer.LoadDynamics", &assign_EnergyConsumer_LoadDynamics); + assign_map.emplace("EnergyConsumer.LoadResponse", &assign_EnergyConsumer_LoadResponse); } void EnergyConsumer::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EnergyConsumer.p", &get_EnergyConsumer_p); - get_map.emplace("cim:EnergyConsumer.pfixed", &get_EnergyConsumer_pfixed); - get_map.emplace("cim:EnergyConsumer.pfixedPct", &get_EnergyConsumer_pfixedPct); - get_map.emplace("cim:EnergyConsumer.q", &get_EnergyConsumer_q); - get_map.emplace("cim:EnergyConsumer.qfixed", &get_EnergyConsumer_qfixed); - get_map.emplace("cim:EnergyConsumer.qfixedPct", &get_EnergyConsumer_qfixedPct); + get_map.emplace("EnergyConsumer.p", &get_EnergyConsumer_p); + get_map.emplace("EnergyConsumer.pfixed", &get_EnergyConsumer_pfixed); + get_map.emplace("EnergyConsumer.pfixedPct", &get_EnergyConsumer_pfixedPct); + get_map.emplace("EnergyConsumer.q", &get_EnergyConsumer_q); + get_map.emplace("EnergyConsumer.qfixed", &get_EnergyConsumer_qfixed); + get_map.emplace("EnergyConsumer.qfixedPct", &get_EnergyConsumer_qfixedPct); } void EnergyConsumer::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EnergyConsumer.LoadDynamics", &get_EnergyConsumer_LoadDynamics); - get_map.emplace("cim:EnergyConsumer.LoadResponse", &get_EnergyConsumer_LoadResponse); + get_map.emplace("EnergyConsumer.LoadDynamics", &get_EnergyConsumer_LoadDynamics); + get_map.emplace("EnergyConsumer.LoadResponse", &get_EnergyConsumer_LoadResponse); } void EnergyConsumer::addEnumGetFnsToMap(std::map& get_map) const @@ -336,11 +368,25 @@ void EnergyConsumer::addEnumGetFnsToMap(std::map& get ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EnergyConsumer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyConsumer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyConsumer::declare() { return BaseClassDefiner(EnergyConsumer::addConstructToMap, EnergyConsumer::addPrimitiveAssignFnsToMap, EnergyConsumer::addClassAssignFnsToMap, EnergyConsumer::debugName); } +std::map EnergyConsumer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyConsumer_factory() diff --git a/CGMES_2.4.15_16FEB2016/EnergyConsumer.hpp b/CGMES_2.4.15_16FEB2016/EnergyConsumer.hpp index 54d03c283..a50a7bce0 100644 --- a/CGMES_2.4.15_16FEB2016/EnergyConsumer.hpp +++ b/CGMES_2.4.15_16FEB2016/EnergyConsumer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PerCent.hpp" #include "ReactivePower.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyConsumer_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EnergySchedulingType.cpp b/CGMES_2.4.15_16FEB2016/EnergySchedulingType.cpp index a0f451af9..3697ecdd0 100644 --- a/CGMES_2.4.15_16FEB2016/EnergySchedulingType.cpp +++ b/CGMES_2.4.15_16FEB2016/EnergySchedulingType.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergySchedulingType(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergySchedulingType.EnergySource", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergySchedulingType::EnergySchedulingType() {} EnergySchedulingType::~EnergySchedulingType() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergySchedulingType::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergySchedulingType::getClassNamespaceUrl() const { - { "cim:EnergySchedulingType.EnergySource", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergySchedulingType::getPossibleProfilesForClass() const +const std::string& EnergySchedulingType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergySchedulingType::getPossibleProfilesForAttributes() const +const std::list& EnergySchedulingType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergySchedulingType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergySchedulingType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergySchedulingType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySource_EnergySchedulingType(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* EnergySchedulingType::debugString() const void EnergySchedulingType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergySchedulingType", &EnergySchedulingType_factory); + factory_map.emplace("EnergySchedulingType", &EnergySchedulingType_factory); } void EnergySchedulingType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void EnergySchedulingType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySchedulingType.EnergySource", &assign_EnergySchedulingType_EnergySource); + assign_map.emplace("EnergySchedulingType.EnergySource", &assign_EnergySchedulingType_EnergySource); } void EnergySchedulingType::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void EnergySchedulingType::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EnergySchedulingType::declare() { return BaseClassDefiner(EnergySchedulingType::addConstructToMap, EnergySchedulingType::addPrimitiveAssignFnsToMap, EnergySchedulingType::addClassAssignFnsToMap, EnergySchedulingType::debugName); } +std::map EnergySchedulingType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergySchedulingType_factory() diff --git a/CGMES_2.4.15_16FEB2016/EnergySchedulingType.hpp b/CGMES_2.4.15_16FEB2016/EnergySchedulingType.hpp index eac7cbf2c..e148b5efa 100644 --- a/CGMES_2.4.15_16FEB2016/EnergySchedulingType.hpp +++ b/CGMES_2.4.15_16FEB2016/EnergySchedulingType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergySchedulingType_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EnergySource.cpp b/CGMES_2.4.15_16FEB2016/EnergySource.cpp index e4cedfe4b..15406ca75 100644 --- a/CGMES_2.4.15_16FEB2016/EnergySource.cpp +++ b/CGMES_2.4.15_16FEB2016/EnergySource.cpp @@ -13,47 +13,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergySource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergySource.EnergySchedulingType", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "EnergySource.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "EnergySource.activePower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergySource.nominalVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.reactivePower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergySource.rn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.voltageAngle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.voltageMagnitude", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.xn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergySource::EnergySource() : EnergySchedulingType(nullptr), WindTurbineType3or4Dynamics(nullptr) {} EnergySource::~EnergySource() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergySource::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergySource::getClassNamespaceUrl() const { - { "cim:EnergySource.EnergySchedulingType", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:EnergySource.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, - { "cim:EnergySource.activePower", { CGMESProfile::SSH, } }, - { "cim:EnergySource.nominalVoltage", { CGMESProfile::EQ, } }, - { "cim:EnergySource.r", { CGMESProfile::EQ, } }, - { "cim:EnergySource.r0", { CGMESProfile::EQ, } }, - { "cim:EnergySource.reactivePower", { CGMESProfile::SSH, } }, - { "cim:EnergySource.rn", { CGMESProfile::EQ, } }, - { "cim:EnergySource.voltageAngle", { CGMESProfile::EQ, } }, - { "cim:EnergySource.voltageMagnitude", { CGMESProfile::EQ, } }, - { "cim:EnergySource.x", { CGMESProfile::EQ, } }, - { "cim:EnergySource.x0", { CGMESProfile::EQ, } }, - { "cim:EnergySource.xn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergySource::getPossibleProfilesForClass() const +const std::string& EnergySource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergySource::getPossibleProfilesForAttributes() const +const std::list& EnergySource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergySource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergySource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergySource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySchedulingType_EnergySource(BaseClass*, BaseClass*); @@ -432,50 +464,50 @@ const char* EnergySource::debugString() const void EnergySource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergySource", &EnergySource_factory); + factory_map.emplace("EnergySource", &EnergySource_factory); } void EnergySource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySource.activePower", &assign_EnergySource_activePower); - assign_map.emplace("cim:EnergySource.nominalVoltage", &assign_EnergySource_nominalVoltage); - assign_map.emplace("cim:EnergySource.r", &assign_EnergySource_r); - assign_map.emplace("cim:EnergySource.r0", &assign_EnergySource_r0); - assign_map.emplace("cim:EnergySource.reactivePower", &assign_EnergySource_reactivePower); - assign_map.emplace("cim:EnergySource.rn", &assign_EnergySource_rn); - assign_map.emplace("cim:EnergySource.voltageAngle", &assign_EnergySource_voltageAngle); - assign_map.emplace("cim:EnergySource.voltageMagnitude", &assign_EnergySource_voltageMagnitude); - assign_map.emplace("cim:EnergySource.x", &assign_EnergySource_x); - assign_map.emplace("cim:EnergySource.x0", &assign_EnergySource_x0); - assign_map.emplace("cim:EnergySource.xn", &assign_EnergySource_xn); + assign_map.emplace("EnergySource.activePower", &assign_EnergySource_activePower); + assign_map.emplace("EnergySource.nominalVoltage", &assign_EnergySource_nominalVoltage); + assign_map.emplace("EnergySource.r", &assign_EnergySource_r); + assign_map.emplace("EnergySource.r0", &assign_EnergySource_r0); + assign_map.emplace("EnergySource.reactivePower", &assign_EnergySource_reactivePower); + assign_map.emplace("EnergySource.rn", &assign_EnergySource_rn); + assign_map.emplace("EnergySource.voltageAngle", &assign_EnergySource_voltageAngle); + assign_map.emplace("EnergySource.voltageMagnitude", &assign_EnergySource_voltageMagnitude); + assign_map.emplace("EnergySource.x", &assign_EnergySource_x); + assign_map.emplace("EnergySource.x0", &assign_EnergySource_x0); + assign_map.emplace("EnergySource.xn", &assign_EnergySource_xn); } void EnergySource::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySource.EnergySchedulingType", &assign_EnergySource_EnergySchedulingType); - assign_map.emplace("cim:EnergySource.WindTurbineType3or4Dynamics", &assign_EnergySource_WindTurbineType3or4Dynamics); + assign_map.emplace("EnergySource.EnergySchedulingType", &assign_EnergySource_EnergySchedulingType); + assign_map.emplace("EnergySource.WindTurbineType3or4Dynamics", &assign_EnergySource_WindTurbineType3or4Dynamics); } void EnergySource::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EnergySource.activePower", &get_EnergySource_activePower); - get_map.emplace("cim:EnergySource.nominalVoltage", &get_EnergySource_nominalVoltage); - get_map.emplace("cim:EnergySource.r", &get_EnergySource_r); - get_map.emplace("cim:EnergySource.r0", &get_EnergySource_r0); - get_map.emplace("cim:EnergySource.reactivePower", &get_EnergySource_reactivePower); - get_map.emplace("cim:EnergySource.rn", &get_EnergySource_rn); - get_map.emplace("cim:EnergySource.voltageAngle", &get_EnergySource_voltageAngle); - get_map.emplace("cim:EnergySource.voltageMagnitude", &get_EnergySource_voltageMagnitude); - get_map.emplace("cim:EnergySource.x", &get_EnergySource_x); - get_map.emplace("cim:EnergySource.x0", &get_EnergySource_x0); - get_map.emplace("cim:EnergySource.xn", &get_EnergySource_xn); + get_map.emplace("EnergySource.activePower", &get_EnergySource_activePower); + get_map.emplace("EnergySource.nominalVoltage", &get_EnergySource_nominalVoltage); + get_map.emplace("EnergySource.r", &get_EnergySource_r); + get_map.emplace("EnergySource.r0", &get_EnergySource_r0); + get_map.emplace("EnergySource.reactivePower", &get_EnergySource_reactivePower); + get_map.emplace("EnergySource.rn", &get_EnergySource_rn); + get_map.emplace("EnergySource.voltageAngle", &get_EnergySource_voltageAngle); + get_map.emplace("EnergySource.voltageMagnitude", &get_EnergySource_voltageMagnitude); + get_map.emplace("EnergySource.x", &get_EnergySource_x); + get_map.emplace("EnergySource.x0", &get_EnergySource_x0); + get_map.emplace("EnergySource.xn", &get_EnergySource_xn); } void EnergySource::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EnergySource.EnergySchedulingType", &get_EnergySource_EnergySchedulingType); + get_map.emplace("EnergySource.EnergySchedulingType", &get_EnergySource_EnergySchedulingType); } void EnergySource::addEnumGetFnsToMap(std::map& get_map) const @@ -483,11 +515,25 @@ void EnergySource::addEnumGetFnsToMap(std::map& get_m ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EnergySource::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergySource" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergySource::declare() { return BaseClassDefiner(EnergySource::addConstructToMap, EnergySource::addPrimitiveAssignFnsToMap, EnergySource::addClassAssignFnsToMap, EnergySource::debugName); } +std::map EnergySource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergySource_factory() diff --git a/CGMES_2.4.15_16FEB2016/EnergySource.hpp b/CGMES_2.4.15_16FEB2016/EnergySource.hpp index 44dc8214a..54b0e24eb 100644 --- a/CGMES_2.4.15_16FEB2016/EnergySource.hpp +++ b/CGMES_2.4.15_16FEB2016/EnergySource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "AngleRadians.hpp" #include "Reactance.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergySource_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Equipment.cpp b/CGMES_2.4.15_16FEB2016/Equipment.cpp index eb6382a63..80b5f56ab 100644 --- a/CGMES_2.4.15_16FEB2016/Equipment.cpp +++ b/CGMES_2.4.15_16FEB2016/Equipment.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Equipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Equipment.EquipmentContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "Equipment.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Equipment.aggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Equipment::Equipment() : EquipmentContainer(nullptr) {} Equipment::~Equipment() {} -static const std::list PossibleProfilesForClass = +const std::list& Equipment::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Equipment::getClassNamespaceUrl() const { - { "cim:Equipment.EquipmentContainer", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:Equipment.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:Equipment.aggregate", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Equipment::getPossibleProfilesForClass() const +const std::string& Equipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Equipment::getPossibleProfilesForAttributes() const +const std::list& Equipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Equipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Equipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Equipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentContainer_Equipments(BaseClass*, BaseClass*); @@ -132,30 +164,30 @@ const char* Equipment::debugString() const void Equipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Equipment", &Equipment_factory); + factory_map.emplace("Equipment", &Equipment_factory); } void Equipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Equipment.aggregate", &assign_Equipment_aggregate); + assign_map.emplace("Equipment.aggregate", &assign_Equipment_aggregate); } void Equipment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Equipment.EquipmentContainer", &assign_Equipment_EquipmentContainer); - assign_map.emplace("cim:Equipment.OperationalLimitSet", &assign_Equipment_OperationalLimitSet); + assign_map.emplace("Equipment.EquipmentContainer", &assign_Equipment_EquipmentContainer); + assign_map.emplace("Equipment.OperationalLimitSet", &assign_Equipment_OperationalLimitSet); } void Equipment::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Equipment.aggregate", &get_Equipment_aggregate); + get_map.emplace("Equipment.aggregate", &get_Equipment_aggregate); } void Equipment::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Equipment.EquipmentContainer", &get_Equipment_EquipmentContainer); + get_map.emplace("Equipment.EquipmentContainer", &get_Equipment_EquipmentContainer); } void Equipment::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void Equipment::addEnumGetFnsToMap(std::map& get_map) PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool Equipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Equipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Equipment::declare() { return BaseClassDefiner(Equipment::addConstructToMap, Equipment::addPrimitiveAssignFnsToMap, Equipment::addClassAssignFnsToMap, Equipment::debugName); } +std::map Equipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Equipment_factory() diff --git a/CGMES_2.4.15_16FEB2016/Equipment.hpp b/CGMES_2.4.15_16FEB2016/Equipment.hpp index 7a818843f..107251fd3 100644 --- a/CGMES_2.4.15_16FEB2016/Equipment.hpp +++ b/CGMES_2.4.15_16FEB2016/Equipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Equipment_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EquipmentBoundaryVersion.cpp b/CGMES_2.4.15_16FEB2016/EquipmentBoundaryVersion.cpp index 93b5017ab..38c0549ee 100644 --- a/CGMES_2.4.15_16FEB2016/EquipmentBoundaryVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/EquipmentBoundaryVersion.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentBoundaryVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::EQ_BD, + }, + CGMESProfile::EQ_BD + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentBoundaryVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentBoundaryVersion::EquipmentBoundaryVersion() {} EquipmentBoundaryVersion::~EquipmentBoundaryVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentBoundaryVersion::getAttributeNames() const { - CGMESProfile::EQ_BD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentBoundaryVersion::getClassNamespaceUrl() const { - { "cim:EquipmentBoundaryVersion.baseUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.baseURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.date", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.differenceModelURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeURIcore", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeURIoperation", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.modelDescriptionURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.namespaceRDF", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.namespaceUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.shortName", { CGMESProfile::EQ_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentBoundaryVersion::getPossibleProfilesForClass() const +const std::string& EquipmentBoundaryVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentBoundaryVersion::getPossibleProfilesForAttributes() const +const std::list& EquipmentBoundaryVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentBoundaryVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentBoundaryVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentBoundaryVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentBoundaryVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* EquipmentBoundaryVersion::debugString() const void EquipmentBoundaryVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentBoundaryVersion", &EquipmentBoundaryVersion_factory); + factory_map.emplace("EquipmentBoundaryVersion", &EquipmentBoundaryVersion_factory); } void EquipmentBoundaryVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentBoundaryVersion.baseUML", &assign_EquipmentBoundaryVersion_baseUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.baseURI", &assign_EquipmentBoundaryVersion_baseURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.date", &assign_EquipmentBoundaryVersion_date); - assign_map.emplace("cim:EquipmentBoundaryVersion.differenceModelURI", &assign_EquipmentBoundaryVersion_differenceModelURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeUML", &assign_EquipmentBoundaryVersion_entsoeUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIcore", &assign_EquipmentBoundaryVersion_entsoeURIcore); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIoperation", &assign_EquipmentBoundaryVersion_entsoeURIoperation); - assign_map.emplace("cim:EquipmentBoundaryVersion.modelDescriptionURI", &assign_EquipmentBoundaryVersion_modelDescriptionURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.namespaceRDF", &assign_EquipmentBoundaryVersion_namespaceRDF); - assign_map.emplace("cim:EquipmentBoundaryVersion.namespaceUML", &assign_EquipmentBoundaryVersion_namespaceUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.shortName", &assign_EquipmentBoundaryVersion_shortName); + assign_map.emplace("EquipmentBoundaryVersion.baseUML", &assign_EquipmentBoundaryVersion_baseUML); + assign_map.emplace("EquipmentBoundaryVersion.baseURI", &assign_EquipmentBoundaryVersion_baseURI); + assign_map.emplace("EquipmentBoundaryVersion.date", &assign_EquipmentBoundaryVersion_date); + assign_map.emplace("EquipmentBoundaryVersion.differenceModelURI", &assign_EquipmentBoundaryVersion_differenceModelURI); + assign_map.emplace("EquipmentBoundaryVersion.entsoeUML", &assign_EquipmentBoundaryVersion_entsoeUML); + assign_map.emplace("EquipmentBoundaryVersion.entsoeURIcore", &assign_EquipmentBoundaryVersion_entsoeURIcore); + assign_map.emplace("EquipmentBoundaryVersion.entsoeURIoperation", &assign_EquipmentBoundaryVersion_entsoeURIoperation); + assign_map.emplace("EquipmentBoundaryVersion.modelDescriptionURI", &assign_EquipmentBoundaryVersion_modelDescriptionURI); + assign_map.emplace("EquipmentBoundaryVersion.namespaceRDF", &assign_EquipmentBoundaryVersion_namespaceRDF); + assign_map.emplace("EquipmentBoundaryVersion.namespaceUML", &assign_EquipmentBoundaryVersion_namespaceUML); + assign_map.emplace("EquipmentBoundaryVersion.shortName", &assign_EquipmentBoundaryVersion_shortName); } void EquipmentBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void EquipmentBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquipmentBoundaryVersion.baseUML", &get_EquipmentBoundaryVersion_baseUML); - get_map.emplace("cim:EquipmentBoundaryVersion.baseURI", &get_EquipmentBoundaryVersion_baseURI); - get_map.emplace("cim:EquipmentBoundaryVersion.date", &get_EquipmentBoundaryVersion_date); - get_map.emplace("cim:EquipmentBoundaryVersion.differenceModelURI", &get_EquipmentBoundaryVersion_differenceModelURI); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeUML", &get_EquipmentBoundaryVersion_entsoeUML); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIcore", &get_EquipmentBoundaryVersion_entsoeURIcore); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIoperation", &get_EquipmentBoundaryVersion_entsoeURIoperation); - get_map.emplace("cim:EquipmentBoundaryVersion.modelDescriptionURI", &get_EquipmentBoundaryVersion_modelDescriptionURI); - get_map.emplace("cim:EquipmentBoundaryVersion.namespaceRDF", &get_EquipmentBoundaryVersion_namespaceRDF); - get_map.emplace("cim:EquipmentBoundaryVersion.namespaceUML", &get_EquipmentBoundaryVersion_namespaceUML); - get_map.emplace("cim:EquipmentBoundaryVersion.shortName", &get_EquipmentBoundaryVersion_shortName); + get_map.emplace("EquipmentBoundaryVersion.baseUML", &get_EquipmentBoundaryVersion_baseUML); + get_map.emplace("EquipmentBoundaryVersion.baseURI", &get_EquipmentBoundaryVersion_baseURI); + get_map.emplace("EquipmentBoundaryVersion.date", &get_EquipmentBoundaryVersion_date); + get_map.emplace("EquipmentBoundaryVersion.differenceModelURI", &get_EquipmentBoundaryVersion_differenceModelURI); + get_map.emplace("EquipmentBoundaryVersion.entsoeUML", &get_EquipmentBoundaryVersion_entsoeUML); + get_map.emplace("EquipmentBoundaryVersion.entsoeURIcore", &get_EquipmentBoundaryVersion_entsoeURIcore); + get_map.emplace("EquipmentBoundaryVersion.entsoeURIoperation", &get_EquipmentBoundaryVersion_entsoeURIoperation); + get_map.emplace("EquipmentBoundaryVersion.modelDescriptionURI", &get_EquipmentBoundaryVersion_modelDescriptionURI); + get_map.emplace("EquipmentBoundaryVersion.namespaceRDF", &get_EquipmentBoundaryVersion_namespaceRDF); + get_map.emplace("EquipmentBoundaryVersion.namespaceUML", &get_EquipmentBoundaryVersion_namespaceUML); + get_map.emplace("EquipmentBoundaryVersion.shortName", &get_EquipmentBoundaryVersion_shortName); } void EquipmentBoundaryVersion::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void EquipmentBoundaryVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentBoundaryVersion::declare() { return BaseClassDefiner(EquipmentBoundaryVersion::addConstructToMap, EquipmentBoundaryVersion::addPrimitiveAssignFnsToMap, EquipmentBoundaryVersion::addClassAssignFnsToMap, EquipmentBoundaryVersion::debugName); } +std::map EquipmentBoundaryVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentBoundaryVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/EquipmentBoundaryVersion.hpp b/CGMES_2.4.15_16FEB2016/EquipmentBoundaryVersion.hpp index 7dce745e6..6ee6a6480 100644 --- a/CGMES_2.4.15_16FEB2016/EquipmentBoundaryVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/EquipmentBoundaryVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentBoundaryVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EquipmentContainer.cpp b/CGMES_2.4.15_16FEB2016/EquipmentContainer.cpp index d7b51080d..66aa0ca3f 100644 --- a/CGMES_2.4.15_16FEB2016/EquipmentContainer.cpp +++ b/CGMES_2.4.15_16FEB2016/EquipmentContainer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentContainer.Equipments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentContainer::EquipmentContainer() {} EquipmentContainer::~EquipmentContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentContainer::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentContainer::getClassNamespaceUrl() const { - { "cim:EquipmentContainer.Equipments", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentContainer::getPossibleProfilesForClass() const +const std::string& EquipmentContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentContainer::getPossibleProfilesForAttributes() const +const std::list& EquipmentContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConnectivityNodeContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Equipment_EquipmentContainer(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* EquipmentContainer::debugString() const void EquipmentContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentContainer", &EquipmentContainer_factory); + factory_map.emplace("EquipmentContainer", &EquipmentContainer_factory); } void EquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void EquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentContainer.Equipments", &assign_EquipmentContainer_Equipments); + assign_map.emplace("EquipmentContainer.Equipments", &assign_EquipmentContainer_Equipments); } void EquipmentContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void EquipmentContainer::addEnumGetFnsToMap(std::map& ConnectivityNodeContainer::addEnumGetFnsToMap(get_map); } +bool EquipmentContainer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquipmentContainer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentContainer::declare() { return BaseClassDefiner(EquipmentContainer::addConstructToMap, EquipmentContainer::addPrimitiveAssignFnsToMap, EquipmentContainer::addClassAssignFnsToMap, EquipmentContainer::debugName); } +std::map EquipmentContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConnectivityNodeContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentContainer_factory() diff --git a/CGMES_2.4.15_16FEB2016/EquipmentContainer.hpp b/CGMES_2.4.15_16FEB2016/EquipmentContainer.hpp index 5a76e1707..a12a72452 100644 --- a/CGMES_2.4.15_16FEB2016/EquipmentContainer.hpp +++ b/CGMES_2.4.15_16FEB2016/EquipmentContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConnectivityNodeContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentContainer_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EquipmentVersion.cpp b/CGMES_2.4.15_16FEB2016/EquipmentVersion.cpp index e02b7f229..6ea5b0089 100644 --- a/CGMES_2.4.15_16FEB2016/EquipmentVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/EquipmentVersion.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIshortCircuit", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIshortCircuit", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentVersion::EquipmentVersion() {} EquipmentVersion::~EquipmentVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentVersion::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentVersion::getClassNamespaceUrl() const { - { "cim:EquipmentVersion.baseUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIcore", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIoperation", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIshortCircuit", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.date", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.differenceModelURI", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIcore", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIoperation", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIshortCircuit", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.modelDescriptionURI", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.namespaceRDF", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.namespaceUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.shortName", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentVersion::getPossibleProfilesForClass() const +const std::string& EquipmentVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentVersion::getPossibleProfilesForAttributes() const +const std::list& EquipmentVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* EquipmentVersion::debugString() const void EquipmentVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentVersion", &EquipmentVersion_factory); + factory_map.emplace("EquipmentVersion", &EquipmentVersion_factory); } void EquipmentVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentVersion.baseUML", &assign_EquipmentVersion_baseUML); - assign_map.emplace("cim:EquipmentVersion.baseURIcore", &assign_EquipmentVersion_baseURIcore); - assign_map.emplace("cim:EquipmentVersion.baseURIoperation", &assign_EquipmentVersion_baseURIoperation); - assign_map.emplace("cim:EquipmentVersion.baseURIshortCircuit", &assign_EquipmentVersion_baseURIshortCircuit); - assign_map.emplace("cim:EquipmentVersion.date", &assign_EquipmentVersion_date); - assign_map.emplace("cim:EquipmentVersion.differenceModelURI", &assign_EquipmentVersion_differenceModelURI); - assign_map.emplace("cim:EquipmentVersion.entsoeUML", &assign_EquipmentVersion_entsoeUML); - assign_map.emplace("cim:EquipmentVersion.entsoeURIcore", &assign_EquipmentVersion_entsoeURIcore); - assign_map.emplace("cim:EquipmentVersion.entsoeURIoperation", &assign_EquipmentVersion_entsoeURIoperation); - assign_map.emplace("cim:EquipmentVersion.entsoeURIshortCircuit", &assign_EquipmentVersion_entsoeURIshortCircuit); - assign_map.emplace("cim:EquipmentVersion.modelDescriptionURI", &assign_EquipmentVersion_modelDescriptionURI); - assign_map.emplace("cim:EquipmentVersion.namespaceRDF", &assign_EquipmentVersion_namespaceRDF); - assign_map.emplace("cim:EquipmentVersion.namespaceUML", &assign_EquipmentVersion_namespaceUML); - assign_map.emplace("cim:EquipmentVersion.shortName", &assign_EquipmentVersion_shortName); + assign_map.emplace("EquipmentVersion.baseUML", &assign_EquipmentVersion_baseUML); + assign_map.emplace("EquipmentVersion.baseURIcore", &assign_EquipmentVersion_baseURIcore); + assign_map.emplace("EquipmentVersion.baseURIoperation", &assign_EquipmentVersion_baseURIoperation); + assign_map.emplace("EquipmentVersion.baseURIshortCircuit", &assign_EquipmentVersion_baseURIshortCircuit); + assign_map.emplace("EquipmentVersion.date", &assign_EquipmentVersion_date); + assign_map.emplace("EquipmentVersion.differenceModelURI", &assign_EquipmentVersion_differenceModelURI); + assign_map.emplace("EquipmentVersion.entsoeUML", &assign_EquipmentVersion_entsoeUML); + assign_map.emplace("EquipmentVersion.entsoeURIcore", &assign_EquipmentVersion_entsoeURIcore); + assign_map.emplace("EquipmentVersion.entsoeURIoperation", &assign_EquipmentVersion_entsoeURIoperation); + assign_map.emplace("EquipmentVersion.entsoeURIshortCircuit", &assign_EquipmentVersion_entsoeURIshortCircuit); + assign_map.emplace("EquipmentVersion.modelDescriptionURI", &assign_EquipmentVersion_modelDescriptionURI); + assign_map.emplace("EquipmentVersion.namespaceRDF", &assign_EquipmentVersion_namespaceRDF); + assign_map.emplace("EquipmentVersion.namespaceUML", &assign_EquipmentVersion_namespaceUML); + assign_map.emplace("EquipmentVersion.shortName", &assign_EquipmentVersion_shortName); } void EquipmentVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void EquipmentVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquipmentVersion.baseUML", &get_EquipmentVersion_baseUML); - get_map.emplace("cim:EquipmentVersion.baseURIcore", &get_EquipmentVersion_baseURIcore); - get_map.emplace("cim:EquipmentVersion.baseURIoperation", &get_EquipmentVersion_baseURIoperation); - get_map.emplace("cim:EquipmentVersion.baseURIshortCircuit", &get_EquipmentVersion_baseURIshortCircuit); - get_map.emplace("cim:EquipmentVersion.date", &get_EquipmentVersion_date); - get_map.emplace("cim:EquipmentVersion.differenceModelURI", &get_EquipmentVersion_differenceModelURI); - get_map.emplace("cim:EquipmentVersion.entsoeUML", &get_EquipmentVersion_entsoeUML); - get_map.emplace("cim:EquipmentVersion.entsoeURIcore", &get_EquipmentVersion_entsoeURIcore); - get_map.emplace("cim:EquipmentVersion.entsoeURIoperation", &get_EquipmentVersion_entsoeURIoperation); - get_map.emplace("cim:EquipmentVersion.entsoeURIshortCircuit", &get_EquipmentVersion_entsoeURIshortCircuit); - get_map.emplace("cim:EquipmentVersion.modelDescriptionURI", &get_EquipmentVersion_modelDescriptionURI); - get_map.emplace("cim:EquipmentVersion.namespaceRDF", &get_EquipmentVersion_namespaceRDF); - get_map.emplace("cim:EquipmentVersion.namespaceUML", &get_EquipmentVersion_namespaceUML); - get_map.emplace("cim:EquipmentVersion.shortName", &get_EquipmentVersion_shortName); + get_map.emplace("EquipmentVersion.baseUML", &get_EquipmentVersion_baseUML); + get_map.emplace("EquipmentVersion.baseURIcore", &get_EquipmentVersion_baseURIcore); + get_map.emplace("EquipmentVersion.baseURIoperation", &get_EquipmentVersion_baseURIoperation); + get_map.emplace("EquipmentVersion.baseURIshortCircuit", &get_EquipmentVersion_baseURIshortCircuit); + get_map.emplace("EquipmentVersion.date", &get_EquipmentVersion_date); + get_map.emplace("EquipmentVersion.differenceModelURI", &get_EquipmentVersion_differenceModelURI); + get_map.emplace("EquipmentVersion.entsoeUML", &get_EquipmentVersion_entsoeUML); + get_map.emplace("EquipmentVersion.entsoeURIcore", &get_EquipmentVersion_entsoeURIcore); + get_map.emplace("EquipmentVersion.entsoeURIoperation", &get_EquipmentVersion_entsoeURIoperation); + get_map.emplace("EquipmentVersion.entsoeURIshortCircuit", &get_EquipmentVersion_entsoeURIshortCircuit); + get_map.emplace("EquipmentVersion.modelDescriptionURI", &get_EquipmentVersion_modelDescriptionURI); + get_map.emplace("EquipmentVersion.namespaceRDF", &get_EquipmentVersion_namespaceRDF); + get_map.emplace("EquipmentVersion.namespaceUML", &get_EquipmentVersion_namespaceUML); + get_map.emplace("EquipmentVersion.shortName", &get_EquipmentVersion_shortName); } void EquipmentVersion::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void EquipmentVersion::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool EquipmentVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquipmentVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentVersion::declare() { return BaseClassDefiner(EquipmentVersion::addConstructToMap, EquipmentVersion::addPrimitiveAssignFnsToMap, EquipmentVersion::addClassAssignFnsToMap, EquipmentVersion::debugName); } +std::map EquipmentVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/EquipmentVersion.hpp b/CGMES_2.4.15_16FEB2016/EquipmentVersion.hpp index 3de80068d..1db7a92df 100644 --- a/CGMES_2.4.15_16FEB2016/EquipmentVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/EquipmentVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -71,8 +72,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -80,7 +88,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EquivalentBranch.cpp b/CGMES_2.4.15_16FEB2016/EquivalentBranch.cpp index 466b35022..6d41858ee 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentBranch.cpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentBranch.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentBranch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentBranch.negativeR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.r21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.x21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentBranch::EquivalentBranch() {} EquivalentBranch::~EquivalentBranch() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentBranch::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentBranch::getClassNamespaceUrl() const { - { "cim:EquivalentBranch.negativeR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeX21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveX21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.r", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.r21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.x", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.x21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroX21", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentBranch::getPossibleProfilesForClass() const +const std::string& EquivalentBranch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentBranch::getPossibleProfilesForAttributes() const +const std::list& EquivalentBranch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentBranch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentBranch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentBranch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentBranch_negativeR12(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* EquivalentBranch::debugString() const void EquivalentBranch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentBranch", &EquivalentBranch_factory); + factory_map.emplace("EquivalentBranch", &EquivalentBranch_factory); } void EquivalentBranch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentBranch.negativeR12", &assign_EquivalentBranch_negativeR12); - assign_map.emplace("cim:EquivalentBranch.negativeR21", &assign_EquivalentBranch_negativeR21); - assign_map.emplace("cim:EquivalentBranch.negativeX12", &assign_EquivalentBranch_negativeX12); - assign_map.emplace("cim:EquivalentBranch.negativeX21", &assign_EquivalentBranch_negativeX21); - assign_map.emplace("cim:EquivalentBranch.positiveR12", &assign_EquivalentBranch_positiveR12); - assign_map.emplace("cim:EquivalentBranch.positiveR21", &assign_EquivalentBranch_positiveR21); - assign_map.emplace("cim:EquivalentBranch.positiveX12", &assign_EquivalentBranch_positiveX12); - assign_map.emplace("cim:EquivalentBranch.positiveX21", &assign_EquivalentBranch_positiveX21); - assign_map.emplace("cim:EquivalentBranch.r", &assign_EquivalentBranch_r); - assign_map.emplace("cim:EquivalentBranch.r21", &assign_EquivalentBranch_r21); - assign_map.emplace("cim:EquivalentBranch.x", &assign_EquivalentBranch_x); - assign_map.emplace("cim:EquivalentBranch.x21", &assign_EquivalentBranch_x21); - assign_map.emplace("cim:EquivalentBranch.zeroR12", &assign_EquivalentBranch_zeroR12); - assign_map.emplace("cim:EquivalentBranch.zeroR21", &assign_EquivalentBranch_zeroR21); - assign_map.emplace("cim:EquivalentBranch.zeroX12", &assign_EquivalentBranch_zeroX12); - assign_map.emplace("cim:EquivalentBranch.zeroX21", &assign_EquivalentBranch_zeroX21); + assign_map.emplace("EquivalentBranch.negativeR12", &assign_EquivalentBranch_negativeR12); + assign_map.emplace("EquivalentBranch.negativeR21", &assign_EquivalentBranch_negativeR21); + assign_map.emplace("EquivalentBranch.negativeX12", &assign_EquivalentBranch_negativeX12); + assign_map.emplace("EquivalentBranch.negativeX21", &assign_EquivalentBranch_negativeX21); + assign_map.emplace("EquivalentBranch.positiveR12", &assign_EquivalentBranch_positiveR12); + assign_map.emplace("EquivalentBranch.positiveR21", &assign_EquivalentBranch_positiveR21); + assign_map.emplace("EquivalentBranch.positiveX12", &assign_EquivalentBranch_positiveX12); + assign_map.emplace("EquivalentBranch.positiveX21", &assign_EquivalentBranch_positiveX21); + assign_map.emplace("EquivalentBranch.r", &assign_EquivalentBranch_r); + assign_map.emplace("EquivalentBranch.r21", &assign_EquivalentBranch_r21); + assign_map.emplace("EquivalentBranch.x", &assign_EquivalentBranch_x); + assign_map.emplace("EquivalentBranch.x21", &assign_EquivalentBranch_x21); + assign_map.emplace("EquivalentBranch.zeroR12", &assign_EquivalentBranch_zeroR12); + assign_map.emplace("EquivalentBranch.zeroR21", &assign_EquivalentBranch_zeroR21); + assign_map.emplace("EquivalentBranch.zeroX12", &assign_EquivalentBranch_zeroX12); + assign_map.emplace("EquivalentBranch.zeroX21", &assign_EquivalentBranch_zeroX21); } void EquivalentBranch::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void EquivalentBranch::addClassAssignFnsToMap(std::unordered_map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentBranch.negativeR12", &get_EquivalentBranch_negativeR12); - get_map.emplace("cim:EquivalentBranch.negativeR21", &get_EquivalentBranch_negativeR21); - get_map.emplace("cim:EquivalentBranch.negativeX12", &get_EquivalentBranch_negativeX12); - get_map.emplace("cim:EquivalentBranch.negativeX21", &get_EquivalentBranch_negativeX21); - get_map.emplace("cim:EquivalentBranch.positiveR12", &get_EquivalentBranch_positiveR12); - get_map.emplace("cim:EquivalentBranch.positiveR21", &get_EquivalentBranch_positiveR21); - get_map.emplace("cim:EquivalentBranch.positiveX12", &get_EquivalentBranch_positiveX12); - get_map.emplace("cim:EquivalentBranch.positiveX21", &get_EquivalentBranch_positiveX21); - get_map.emplace("cim:EquivalentBranch.r", &get_EquivalentBranch_r); - get_map.emplace("cim:EquivalentBranch.r21", &get_EquivalentBranch_r21); - get_map.emplace("cim:EquivalentBranch.x", &get_EquivalentBranch_x); - get_map.emplace("cim:EquivalentBranch.x21", &get_EquivalentBranch_x21); - get_map.emplace("cim:EquivalentBranch.zeroR12", &get_EquivalentBranch_zeroR12); - get_map.emplace("cim:EquivalentBranch.zeroR21", &get_EquivalentBranch_zeroR21); - get_map.emplace("cim:EquivalentBranch.zeroX12", &get_EquivalentBranch_zeroX12); - get_map.emplace("cim:EquivalentBranch.zeroX21", &get_EquivalentBranch_zeroX21); + get_map.emplace("EquivalentBranch.negativeR12", &get_EquivalentBranch_negativeR12); + get_map.emplace("EquivalentBranch.negativeR21", &get_EquivalentBranch_negativeR21); + get_map.emplace("EquivalentBranch.negativeX12", &get_EquivalentBranch_negativeX12); + get_map.emplace("EquivalentBranch.negativeX21", &get_EquivalentBranch_negativeX21); + get_map.emplace("EquivalentBranch.positiveR12", &get_EquivalentBranch_positiveR12); + get_map.emplace("EquivalentBranch.positiveR21", &get_EquivalentBranch_positiveR21); + get_map.emplace("EquivalentBranch.positiveX12", &get_EquivalentBranch_positiveX12); + get_map.emplace("EquivalentBranch.positiveX21", &get_EquivalentBranch_positiveX21); + get_map.emplace("EquivalentBranch.r", &get_EquivalentBranch_r); + get_map.emplace("EquivalentBranch.r21", &get_EquivalentBranch_r21); + get_map.emplace("EquivalentBranch.x", &get_EquivalentBranch_x); + get_map.emplace("EquivalentBranch.x21", &get_EquivalentBranch_x21); + get_map.emplace("EquivalentBranch.zeroR12", &get_EquivalentBranch_zeroR12); + get_map.emplace("EquivalentBranch.zeroR21", &get_EquivalentBranch_zeroR21); + get_map.emplace("EquivalentBranch.zeroX12", &get_EquivalentBranch_zeroX12); + get_map.emplace("EquivalentBranch.zeroX21", &get_EquivalentBranch_zeroX21); } void EquivalentBranch::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void EquivalentBranch::addEnumGetFnsToMap(std::map& g EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentBranch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentBranch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentBranch::declare() { return BaseClassDefiner(EquivalentBranch::addConstructToMap, EquivalentBranch::addPrimitiveAssignFnsToMap, EquivalentBranch::addClassAssignFnsToMap, EquivalentBranch::debugName); } +std::map EquivalentBranch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentBranch_factory() diff --git a/CGMES_2.4.15_16FEB2016/EquivalentBranch.hpp b/CGMES_2.4.15_16FEB2016/EquivalentBranch.hpp index 5147c3fd5..b609020fe 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentBranch.hpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentBranch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" #include "Resistance.hpp" @@ -77,8 +78,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -86,7 +94,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentBranch_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EquivalentEquipment.cpp b/CGMES_2.4.15_16FEB2016/EquivalentEquipment.cpp index a0b317564..ba3a054f0 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentEquipment.cpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentEquipment.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentEquipment.EquivalentNetwork", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentEquipment::EquivalentEquipment() : EquivalentNetwork(nullptr) {} EquivalentEquipment::~EquivalentEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentEquipment::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentEquipment::getClassNamespaceUrl() const { - { "cim:EquivalentEquipment.EquivalentNetwork", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentEquipment::getPossibleProfilesForClass() const +const std::string& EquivalentEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentEquipment::getPossibleProfilesForAttributes() const +const std::list& EquivalentEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentNetwork_EquivalentEquipments(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* EquivalentEquipment::debugString() const void EquivalentEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentEquipment", &EquivalentEquipment_factory); + factory_map.emplace("EquivalentEquipment", &EquivalentEquipment_factory); } void EquivalentEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void EquivalentEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentEquipment.EquivalentNetwork", &assign_EquivalentEquipment_EquivalentNetwork); + assign_map.emplace("EquivalentEquipment.EquivalentNetwork", &assign_EquivalentEquipment_EquivalentNetwork); } void EquivalentEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void EquivalentEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentEquipment.EquivalentNetwork", &get_EquivalentEquipment_EquivalentNetwork); + get_map.emplace("EquivalentEquipment.EquivalentNetwork", &get_EquivalentEquipment_EquivalentNetwork); } void EquivalentEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void EquivalentEquipment::addEnumGetFnsToMap(std::map ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentEquipment::declare() { return BaseClassDefiner(EquivalentEquipment::addConstructToMap, EquivalentEquipment::addPrimitiveAssignFnsToMap, EquivalentEquipment::addClassAssignFnsToMap, EquivalentEquipment::debugName); } +std::map EquivalentEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentEquipment_factory() diff --git a/CGMES_2.4.15_16FEB2016/EquivalentEquipment.hpp b/CGMES_2.4.15_16FEB2016/EquivalentEquipment.hpp index 3e375293f..781c85161 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentEquipment.hpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentEquipment_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EquivalentInjection.cpp b/CGMES_2.4.15_16FEB2016/EquivalentInjection.cpp index 5b0b543b1..c16a7d103 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentInjection.cpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentInjection.cpp @@ -12,48 +12,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentInjection.ReactiveCapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.maxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.minP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.r2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.regulationCapability", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.regulationStatus", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.regulationTarget", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.x2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentInjection::EquivalentInjection() : ReactiveCapabilityCurve(nullptr) {} EquivalentInjection::~EquivalentInjection() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentInjection::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentInjection::getClassNamespaceUrl() const { - { "cim:EquivalentInjection.ReactiveCapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.maxP", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.maxQ", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.minP", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.minQ", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.p", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.q", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.r", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.r0", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.r2", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.regulationCapability", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.regulationStatus", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.regulationTarget", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.x", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.x0", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.x2", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentInjection::getPossibleProfilesForClass() const +const std::string& EquivalentInjection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentInjection::getPossibleProfilesForAttributes() const +const std::list& EquivalentInjection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReactiveCapabilityCurve_EquivalentInjection(BaseClass*, BaseClass*); @@ -530,57 +562,57 @@ const char* EquivalentInjection::debugString() const void EquivalentInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentInjection", &EquivalentInjection_factory); + factory_map.emplace("EquivalentInjection", &EquivalentInjection_factory); } void EquivalentInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentInjection.maxP", &assign_EquivalentInjection_maxP); - assign_map.emplace("cim:EquivalentInjection.maxQ", &assign_EquivalentInjection_maxQ); - assign_map.emplace("cim:EquivalentInjection.minP", &assign_EquivalentInjection_minP); - assign_map.emplace("cim:EquivalentInjection.minQ", &assign_EquivalentInjection_minQ); - assign_map.emplace("cim:EquivalentInjection.p", &assign_EquivalentInjection_p); - assign_map.emplace("cim:EquivalentInjection.q", &assign_EquivalentInjection_q); - assign_map.emplace("cim:EquivalentInjection.r", &assign_EquivalentInjection_r); - assign_map.emplace("cim:EquivalentInjection.r0", &assign_EquivalentInjection_r0); - assign_map.emplace("cim:EquivalentInjection.r2", &assign_EquivalentInjection_r2); - assign_map.emplace("cim:EquivalentInjection.regulationCapability", &assign_EquivalentInjection_regulationCapability); - assign_map.emplace("cim:EquivalentInjection.regulationStatus", &assign_EquivalentInjection_regulationStatus); - assign_map.emplace("cim:EquivalentInjection.regulationTarget", &assign_EquivalentInjection_regulationTarget); - assign_map.emplace("cim:EquivalentInjection.x", &assign_EquivalentInjection_x); - assign_map.emplace("cim:EquivalentInjection.x0", &assign_EquivalentInjection_x0); - assign_map.emplace("cim:EquivalentInjection.x2", &assign_EquivalentInjection_x2); + assign_map.emplace("EquivalentInjection.maxP", &assign_EquivalentInjection_maxP); + assign_map.emplace("EquivalentInjection.maxQ", &assign_EquivalentInjection_maxQ); + assign_map.emplace("EquivalentInjection.minP", &assign_EquivalentInjection_minP); + assign_map.emplace("EquivalentInjection.minQ", &assign_EquivalentInjection_minQ); + assign_map.emplace("EquivalentInjection.p", &assign_EquivalentInjection_p); + assign_map.emplace("EquivalentInjection.q", &assign_EquivalentInjection_q); + assign_map.emplace("EquivalentInjection.r", &assign_EquivalentInjection_r); + assign_map.emplace("EquivalentInjection.r0", &assign_EquivalentInjection_r0); + assign_map.emplace("EquivalentInjection.r2", &assign_EquivalentInjection_r2); + assign_map.emplace("EquivalentInjection.regulationCapability", &assign_EquivalentInjection_regulationCapability); + assign_map.emplace("EquivalentInjection.regulationStatus", &assign_EquivalentInjection_regulationStatus); + assign_map.emplace("EquivalentInjection.regulationTarget", &assign_EquivalentInjection_regulationTarget); + assign_map.emplace("EquivalentInjection.x", &assign_EquivalentInjection_x); + assign_map.emplace("EquivalentInjection.x0", &assign_EquivalentInjection_x0); + assign_map.emplace("EquivalentInjection.x2", &assign_EquivalentInjection_x2); } void EquivalentInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentInjection.ReactiveCapabilityCurve", &assign_EquivalentInjection_ReactiveCapabilityCurve); + assign_map.emplace("EquivalentInjection.ReactiveCapabilityCurve", &assign_EquivalentInjection_ReactiveCapabilityCurve); } void EquivalentInjection::addPrimitiveGetFnsToMap(std::map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentInjection.maxP", &get_EquivalentInjection_maxP); - get_map.emplace("cim:EquivalentInjection.maxQ", &get_EquivalentInjection_maxQ); - get_map.emplace("cim:EquivalentInjection.minP", &get_EquivalentInjection_minP); - get_map.emplace("cim:EquivalentInjection.minQ", &get_EquivalentInjection_minQ); - get_map.emplace("cim:EquivalentInjection.p", &get_EquivalentInjection_p); - get_map.emplace("cim:EquivalentInjection.q", &get_EquivalentInjection_q); - get_map.emplace("cim:EquivalentInjection.r", &get_EquivalentInjection_r); - get_map.emplace("cim:EquivalentInjection.r0", &get_EquivalentInjection_r0); - get_map.emplace("cim:EquivalentInjection.r2", &get_EquivalentInjection_r2); - get_map.emplace("cim:EquivalentInjection.regulationCapability", &get_EquivalentInjection_regulationCapability); - get_map.emplace("cim:EquivalentInjection.regulationStatus", &get_EquivalentInjection_regulationStatus); - get_map.emplace("cim:EquivalentInjection.regulationTarget", &get_EquivalentInjection_regulationTarget); - get_map.emplace("cim:EquivalentInjection.x", &get_EquivalentInjection_x); - get_map.emplace("cim:EquivalentInjection.x0", &get_EquivalentInjection_x0); - get_map.emplace("cim:EquivalentInjection.x2", &get_EquivalentInjection_x2); + get_map.emplace("EquivalentInjection.maxP", &get_EquivalentInjection_maxP); + get_map.emplace("EquivalentInjection.maxQ", &get_EquivalentInjection_maxQ); + get_map.emplace("EquivalentInjection.minP", &get_EquivalentInjection_minP); + get_map.emplace("EquivalentInjection.minQ", &get_EquivalentInjection_minQ); + get_map.emplace("EquivalentInjection.p", &get_EquivalentInjection_p); + get_map.emplace("EquivalentInjection.q", &get_EquivalentInjection_q); + get_map.emplace("EquivalentInjection.r", &get_EquivalentInjection_r); + get_map.emplace("EquivalentInjection.r0", &get_EquivalentInjection_r0); + get_map.emplace("EquivalentInjection.r2", &get_EquivalentInjection_r2); + get_map.emplace("EquivalentInjection.regulationCapability", &get_EquivalentInjection_regulationCapability); + get_map.emplace("EquivalentInjection.regulationStatus", &get_EquivalentInjection_regulationStatus); + get_map.emplace("EquivalentInjection.regulationTarget", &get_EquivalentInjection_regulationTarget); + get_map.emplace("EquivalentInjection.x", &get_EquivalentInjection_x); + get_map.emplace("EquivalentInjection.x0", &get_EquivalentInjection_x0); + get_map.emplace("EquivalentInjection.x2", &get_EquivalentInjection_x2); } void EquivalentInjection::addClassGetFnsToMap(std::map& get_map) const { EquivalentEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentInjection.ReactiveCapabilityCurve", &get_EquivalentInjection_ReactiveCapabilityCurve); + get_map.emplace("EquivalentInjection.ReactiveCapabilityCurve", &get_EquivalentInjection_ReactiveCapabilityCurve); } void EquivalentInjection::addEnumGetFnsToMap(std::map& get_map) const @@ -588,11 +620,25 @@ void EquivalentInjection::addEnumGetFnsToMap(std::map EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentInjection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentInjection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentInjection::declare() { return BaseClassDefiner(EquivalentInjection::addConstructToMap, EquivalentInjection::addPrimitiveAssignFnsToMap, EquivalentInjection::addClassAssignFnsToMap, EquivalentInjection::debugName); } +std::map EquivalentInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentInjection_factory() diff --git a/CGMES_2.4.15_16FEB2016/EquivalentInjection.hpp b/CGMES_2.4.15_16FEB2016/EquivalentInjection.hpp index 52d59c58c..a81ac2937 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentInjection.hpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Reactance.hpp" @@ -82,8 +83,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -91,7 +99,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentInjection_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EquivalentNetwork.cpp b/CGMES_2.4.15_16FEB2016/EquivalentNetwork.cpp index 81b5286cd..a732cb018 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentNetwork.cpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentNetwork.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentNetwork(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentNetwork.EquivalentEquipments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentNetwork::EquivalentNetwork() {} EquivalentNetwork::~EquivalentNetwork() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentNetwork::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentNetwork::getClassNamespaceUrl() const { - { "cim:EquivalentNetwork.EquivalentEquipments", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentNetwork::getPossibleProfilesForClass() const +const std::string& EquivalentNetwork::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentNetwork::getPossibleProfilesForAttributes() const +const std::list& EquivalentNetwork::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConnectivityNodeContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentNetwork::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentNetwork::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentNetwork::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentEquipment_EquivalentNetwork(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* EquivalentNetwork::debugString() const void EquivalentNetwork::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentNetwork", &EquivalentNetwork_factory); + factory_map.emplace("EquivalentNetwork", &EquivalentNetwork_factory); } void EquivalentNetwork::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void EquivalentNetwork::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentNetwork.EquivalentEquipments", &assign_EquivalentNetwork_EquivalentEquipments); + assign_map.emplace("EquivalentNetwork.EquivalentEquipments", &assign_EquivalentNetwork_EquivalentEquipments); } void EquivalentNetwork::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void EquivalentNetwork::addEnumGetFnsToMap(std::map& ConnectivityNodeContainer::addEnumGetFnsToMap(get_map); } +bool EquivalentNetwork::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentNetwork" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentNetwork::declare() { return BaseClassDefiner(EquivalentNetwork::addConstructToMap, EquivalentNetwork::addPrimitiveAssignFnsToMap, EquivalentNetwork::addClassAssignFnsToMap, EquivalentNetwork::debugName); } +std::map EquivalentNetwork::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConnectivityNodeContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentNetwork_factory() diff --git a/CGMES_2.4.15_16FEB2016/EquivalentNetwork.hpp b/CGMES_2.4.15_16FEB2016/EquivalentNetwork.hpp index 280054dc0..4edef9914 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentNetwork.hpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentNetwork.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConnectivityNodeContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentNetwork_factory(); diff --git a/CGMES_2.4.15_16FEB2016/EquivalentShunt.cpp b/CGMES_2.4.15_16FEB2016/EquivalentShunt.cpp index 3bee41ffb..38a014766 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentShunt.cpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentShunt.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentShunt(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentShunt.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentShunt.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentShunt::EquivalentShunt() {} EquivalentShunt::~EquivalentShunt() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentShunt::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentShunt::getClassNamespaceUrl() const { - { "cim:EquivalentShunt.b", { CGMESProfile::EQ, } }, - { "cim:EquivalentShunt.g", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentShunt::getPossibleProfilesForClass() const +const std::string& EquivalentShunt::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentShunt::getPossibleProfilesForAttributes() const +const std::list& EquivalentShunt::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentShunt::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentShunt::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentShunt::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentShunt_b(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* EquivalentShunt::debugString() const void EquivalentShunt::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentShunt", &EquivalentShunt_factory); + factory_map.emplace("EquivalentShunt", &EquivalentShunt_factory); } void EquivalentShunt::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentShunt.b", &assign_EquivalentShunt_b); - assign_map.emplace("cim:EquivalentShunt.g", &assign_EquivalentShunt_g); + assign_map.emplace("EquivalentShunt.b", &assign_EquivalentShunt_b); + assign_map.emplace("EquivalentShunt.g", &assign_EquivalentShunt_g); } void EquivalentShunt::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void EquivalentShunt::addClassAssignFnsToMap(std::unordered_map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentShunt.b", &get_EquivalentShunt_b); - get_map.emplace("cim:EquivalentShunt.g", &get_EquivalentShunt_g); + get_map.emplace("EquivalentShunt.b", &get_EquivalentShunt_b); + get_map.emplace("EquivalentShunt.g", &get_EquivalentShunt_g); } void EquivalentShunt::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void EquivalentShunt::addEnumGetFnsToMap(std::map& ge EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentShunt::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentShunt" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentShunt::declare() { return BaseClassDefiner(EquivalentShunt::addConstructToMap, EquivalentShunt::addPrimitiveAssignFnsToMap, EquivalentShunt::addClassAssignFnsToMap, EquivalentShunt::debugName); } +std::map EquivalentShunt::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentShunt_factory() diff --git a/CGMES_2.4.15_16FEB2016/EquivalentShunt.hpp b/CGMES_2.4.15_16FEB2016/EquivalentShunt.hpp index 4cd995dcf..8f645b0fc 100644 --- a/CGMES_2.4.15_16FEB2016/EquivalentShunt.hpp +++ b/CGMES_2.4.15_16FEB2016/EquivalentShunt.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Susceptance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentShunt_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAC1A.cpp b/CGMES_2.4.15_16FEB2016/ExcAC1A.cpp index d5bbdc7a5..c870922e9 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC1A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC1A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC1A.hvlvgates", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC1A::ExcAC1A() {} ExcAC1A::~ExcAC1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC1A.hvlvgates", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC1A_hvlvgates(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* ExcAC1A::debugString() const void ExcAC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC1A", &ExcAC1A_factory); + factory_map.emplace("ExcAC1A", &ExcAC1A_factory); } void ExcAC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC1A.hvlvgates", &assign_ExcAC1A_hvlvgates); - assign_map.emplace("cim:ExcAC1A.ka", &assign_ExcAC1A_ka); - assign_map.emplace("cim:ExcAC1A.kc", &assign_ExcAC1A_kc); - assign_map.emplace("cim:ExcAC1A.kd", &assign_ExcAC1A_kd); - assign_map.emplace("cim:ExcAC1A.ke", &assign_ExcAC1A_ke); - assign_map.emplace("cim:ExcAC1A.kf", &assign_ExcAC1A_kf); - assign_map.emplace("cim:ExcAC1A.kf1", &assign_ExcAC1A_kf1); - assign_map.emplace("cim:ExcAC1A.kf2", &assign_ExcAC1A_kf2); - assign_map.emplace("cim:ExcAC1A.ks", &assign_ExcAC1A_ks); - assign_map.emplace("cim:ExcAC1A.seve1", &assign_ExcAC1A_seve1); - assign_map.emplace("cim:ExcAC1A.seve2", &assign_ExcAC1A_seve2); - assign_map.emplace("cim:ExcAC1A.ta", &assign_ExcAC1A_ta); - assign_map.emplace("cim:ExcAC1A.tb", &assign_ExcAC1A_tb); - assign_map.emplace("cim:ExcAC1A.tc", &assign_ExcAC1A_tc); - assign_map.emplace("cim:ExcAC1A.te", &assign_ExcAC1A_te); - assign_map.emplace("cim:ExcAC1A.tf", &assign_ExcAC1A_tf); - assign_map.emplace("cim:ExcAC1A.vamax", &assign_ExcAC1A_vamax); - assign_map.emplace("cim:ExcAC1A.vamin", &assign_ExcAC1A_vamin); - assign_map.emplace("cim:ExcAC1A.ve1", &assign_ExcAC1A_ve1); - assign_map.emplace("cim:ExcAC1A.ve2", &assign_ExcAC1A_ve2); - assign_map.emplace("cim:ExcAC1A.vrmax", &assign_ExcAC1A_vrmax); - assign_map.emplace("cim:ExcAC1A.vrmin", &assign_ExcAC1A_vrmin); + assign_map.emplace("ExcAC1A.hvlvgates", &assign_ExcAC1A_hvlvgates); + assign_map.emplace("ExcAC1A.ka", &assign_ExcAC1A_ka); + assign_map.emplace("ExcAC1A.kc", &assign_ExcAC1A_kc); + assign_map.emplace("ExcAC1A.kd", &assign_ExcAC1A_kd); + assign_map.emplace("ExcAC1A.ke", &assign_ExcAC1A_ke); + assign_map.emplace("ExcAC1A.kf", &assign_ExcAC1A_kf); + assign_map.emplace("ExcAC1A.kf1", &assign_ExcAC1A_kf1); + assign_map.emplace("ExcAC1A.kf2", &assign_ExcAC1A_kf2); + assign_map.emplace("ExcAC1A.ks", &assign_ExcAC1A_ks); + assign_map.emplace("ExcAC1A.seve1", &assign_ExcAC1A_seve1); + assign_map.emplace("ExcAC1A.seve2", &assign_ExcAC1A_seve2); + assign_map.emplace("ExcAC1A.ta", &assign_ExcAC1A_ta); + assign_map.emplace("ExcAC1A.tb", &assign_ExcAC1A_tb); + assign_map.emplace("ExcAC1A.tc", &assign_ExcAC1A_tc); + assign_map.emplace("ExcAC1A.te", &assign_ExcAC1A_te); + assign_map.emplace("ExcAC1A.tf", &assign_ExcAC1A_tf); + assign_map.emplace("ExcAC1A.vamax", &assign_ExcAC1A_vamax); + assign_map.emplace("ExcAC1A.vamin", &assign_ExcAC1A_vamin); + assign_map.emplace("ExcAC1A.ve1", &assign_ExcAC1A_ve1); + assign_map.emplace("ExcAC1A.ve2", &assign_ExcAC1A_ve2); + assign_map.emplace("ExcAC1A.vrmax", &assign_ExcAC1A_vrmax); + assign_map.emplace("ExcAC1A.vrmin", &assign_ExcAC1A_vrmin); } void ExcAC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void ExcAC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC1A.hvlvgates", &get_ExcAC1A_hvlvgates); - get_map.emplace("cim:ExcAC1A.ka", &get_ExcAC1A_ka); - get_map.emplace("cim:ExcAC1A.kc", &get_ExcAC1A_kc); - get_map.emplace("cim:ExcAC1A.kd", &get_ExcAC1A_kd); - get_map.emplace("cim:ExcAC1A.ke", &get_ExcAC1A_ke); - get_map.emplace("cim:ExcAC1A.kf", &get_ExcAC1A_kf); - get_map.emplace("cim:ExcAC1A.kf1", &get_ExcAC1A_kf1); - get_map.emplace("cim:ExcAC1A.kf2", &get_ExcAC1A_kf2); - get_map.emplace("cim:ExcAC1A.ks", &get_ExcAC1A_ks); - get_map.emplace("cim:ExcAC1A.seve1", &get_ExcAC1A_seve1); - get_map.emplace("cim:ExcAC1A.seve2", &get_ExcAC1A_seve2); - get_map.emplace("cim:ExcAC1A.ta", &get_ExcAC1A_ta); - get_map.emplace("cim:ExcAC1A.tb", &get_ExcAC1A_tb); - get_map.emplace("cim:ExcAC1A.tc", &get_ExcAC1A_tc); - get_map.emplace("cim:ExcAC1A.te", &get_ExcAC1A_te); - get_map.emplace("cim:ExcAC1A.tf", &get_ExcAC1A_tf); - get_map.emplace("cim:ExcAC1A.vamax", &get_ExcAC1A_vamax); - get_map.emplace("cim:ExcAC1A.vamin", &get_ExcAC1A_vamin); - get_map.emplace("cim:ExcAC1A.ve1", &get_ExcAC1A_ve1); - get_map.emplace("cim:ExcAC1A.ve2", &get_ExcAC1A_ve2); - get_map.emplace("cim:ExcAC1A.vrmax", &get_ExcAC1A_vrmax); - get_map.emplace("cim:ExcAC1A.vrmin", &get_ExcAC1A_vrmin); + get_map.emplace("ExcAC1A.hvlvgates", &get_ExcAC1A_hvlvgates); + get_map.emplace("ExcAC1A.ka", &get_ExcAC1A_ka); + get_map.emplace("ExcAC1A.kc", &get_ExcAC1A_kc); + get_map.emplace("ExcAC1A.kd", &get_ExcAC1A_kd); + get_map.emplace("ExcAC1A.ke", &get_ExcAC1A_ke); + get_map.emplace("ExcAC1A.kf", &get_ExcAC1A_kf); + get_map.emplace("ExcAC1A.kf1", &get_ExcAC1A_kf1); + get_map.emplace("ExcAC1A.kf2", &get_ExcAC1A_kf2); + get_map.emplace("ExcAC1A.ks", &get_ExcAC1A_ks); + get_map.emplace("ExcAC1A.seve1", &get_ExcAC1A_seve1); + get_map.emplace("ExcAC1A.seve2", &get_ExcAC1A_seve2); + get_map.emplace("ExcAC1A.ta", &get_ExcAC1A_ta); + get_map.emplace("ExcAC1A.tb", &get_ExcAC1A_tb); + get_map.emplace("ExcAC1A.tc", &get_ExcAC1A_tc); + get_map.emplace("ExcAC1A.te", &get_ExcAC1A_te); + get_map.emplace("ExcAC1A.tf", &get_ExcAC1A_tf); + get_map.emplace("ExcAC1A.vamax", &get_ExcAC1A_vamax); + get_map.emplace("ExcAC1A.vamin", &get_ExcAC1A_vamin); + get_map.emplace("ExcAC1A.ve1", &get_ExcAC1A_ve1); + get_map.emplace("ExcAC1A.ve2", &get_ExcAC1A_ve2); + get_map.emplace("ExcAC1A.vrmax", &get_ExcAC1A_vrmax); + get_map.emplace("ExcAC1A.vrmin", &get_ExcAC1A_vrmin); } void ExcAC1A::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void ExcAC1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC1A::declare() { return BaseClassDefiner(ExcAC1A::addConstructToMap, ExcAC1A::addPrimitiveAssignFnsToMap, ExcAC1A::addClassAssignFnsToMap, ExcAC1A::debugName); } +std::map ExcAC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAC1A.hpp b/CGMES_2.4.15_16FEB2016/ExcAC1A.hpp index 3a0fca2c2..625ead518 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC1A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAC2A.cpp b/CGMES_2.4.15_16FEB2016/ExcAC2A.cpp index 733be71b2..2120ee02c 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC2A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC2A.cpp @@ -11,59 +11,91 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC2A.hvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.lvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vlr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC2A::ExcAC2A() {} ExcAC2A::~ExcAC2A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC2A.hvgate", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kb", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kb1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kh", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kl", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kl1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.lvgate", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vlr", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC2A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC2A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC2A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC2A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC2A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC2A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC2A_hvgate(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -886,39 +918,39 @@ const char* ExcAC2A::debugString() const void ExcAC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC2A", &ExcAC2A_factory); + factory_map.emplace("ExcAC2A", &ExcAC2A_factory); } void ExcAC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC2A.hvgate", &assign_ExcAC2A_hvgate); - assign_map.emplace("cim:ExcAC2A.ka", &assign_ExcAC2A_ka); - assign_map.emplace("cim:ExcAC2A.kb", &assign_ExcAC2A_kb); - assign_map.emplace("cim:ExcAC2A.kb1", &assign_ExcAC2A_kb1); - assign_map.emplace("cim:ExcAC2A.kc", &assign_ExcAC2A_kc); - assign_map.emplace("cim:ExcAC2A.kd", &assign_ExcAC2A_kd); - assign_map.emplace("cim:ExcAC2A.ke", &assign_ExcAC2A_ke); - assign_map.emplace("cim:ExcAC2A.kf", &assign_ExcAC2A_kf); - assign_map.emplace("cim:ExcAC2A.kh", &assign_ExcAC2A_kh); - assign_map.emplace("cim:ExcAC2A.kl", &assign_ExcAC2A_kl); - assign_map.emplace("cim:ExcAC2A.kl1", &assign_ExcAC2A_kl1); - assign_map.emplace("cim:ExcAC2A.ks", &assign_ExcAC2A_ks); - assign_map.emplace("cim:ExcAC2A.lvgate", &assign_ExcAC2A_lvgate); - assign_map.emplace("cim:ExcAC2A.seve1", &assign_ExcAC2A_seve1); - assign_map.emplace("cim:ExcAC2A.seve2", &assign_ExcAC2A_seve2); - assign_map.emplace("cim:ExcAC2A.ta", &assign_ExcAC2A_ta); - assign_map.emplace("cim:ExcAC2A.tb", &assign_ExcAC2A_tb); - assign_map.emplace("cim:ExcAC2A.tc", &assign_ExcAC2A_tc); - assign_map.emplace("cim:ExcAC2A.te", &assign_ExcAC2A_te); - assign_map.emplace("cim:ExcAC2A.tf", &assign_ExcAC2A_tf); - assign_map.emplace("cim:ExcAC2A.vamax", &assign_ExcAC2A_vamax); - assign_map.emplace("cim:ExcAC2A.vamin", &assign_ExcAC2A_vamin); - assign_map.emplace("cim:ExcAC2A.ve1", &assign_ExcAC2A_ve1); - assign_map.emplace("cim:ExcAC2A.ve2", &assign_ExcAC2A_ve2); - assign_map.emplace("cim:ExcAC2A.vfemax", &assign_ExcAC2A_vfemax); - assign_map.emplace("cim:ExcAC2A.vlr", &assign_ExcAC2A_vlr); - assign_map.emplace("cim:ExcAC2A.vrmax", &assign_ExcAC2A_vrmax); - assign_map.emplace("cim:ExcAC2A.vrmin", &assign_ExcAC2A_vrmin); + assign_map.emplace("ExcAC2A.hvgate", &assign_ExcAC2A_hvgate); + assign_map.emplace("ExcAC2A.ka", &assign_ExcAC2A_ka); + assign_map.emplace("ExcAC2A.kb", &assign_ExcAC2A_kb); + assign_map.emplace("ExcAC2A.kb1", &assign_ExcAC2A_kb1); + assign_map.emplace("ExcAC2A.kc", &assign_ExcAC2A_kc); + assign_map.emplace("ExcAC2A.kd", &assign_ExcAC2A_kd); + assign_map.emplace("ExcAC2A.ke", &assign_ExcAC2A_ke); + assign_map.emplace("ExcAC2A.kf", &assign_ExcAC2A_kf); + assign_map.emplace("ExcAC2A.kh", &assign_ExcAC2A_kh); + assign_map.emplace("ExcAC2A.kl", &assign_ExcAC2A_kl); + assign_map.emplace("ExcAC2A.kl1", &assign_ExcAC2A_kl1); + assign_map.emplace("ExcAC2A.ks", &assign_ExcAC2A_ks); + assign_map.emplace("ExcAC2A.lvgate", &assign_ExcAC2A_lvgate); + assign_map.emplace("ExcAC2A.seve1", &assign_ExcAC2A_seve1); + assign_map.emplace("ExcAC2A.seve2", &assign_ExcAC2A_seve2); + assign_map.emplace("ExcAC2A.ta", &assign_ExcAC2A_ta); + assign_map.emplace("ExcAC2A.tb", &assign_ExcAC2A_tb); + assign_map.emplace("ExcAC2A.tc", &assign_ExcAC2A_tc); + assign_map.emplace("ExcAC2A.te", &assign_ExcAC2A_te); + assign_map.emplace("ExcAC2A.tf", &assign_ExcAC2A_tf); + assign_map.emplace("ExcAC2A.vamax", &assign_ExcAC2A_vamax); + assign_map.emplace("ExcAC2A.vamin", &assign_ExcAC2A_vamin); + assign_map.emplace("ExcAC2A.ve1", &assign_ExcAC2A_ve1); + assign_map.emplace("ExcAC2A.ve2", &assign_ExcAC2A_ve2); + assign_map.emplace("ExcAC2A.vfemax", &assign_ExcAC2A_vfemax); + assign_map.emplace("ExcAC2A.vlr", &assign_ExcAC2A_vlr); + assign_map.emplace("ExcAC2A.vrmax", &assign_ExcAC2A_vrmax); + assign_map.emplace("ExcAC2A.vrmin", &assign_ExcAC2A_vrmin); } void ExcAC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -928,34 +960,34 @@ void ExcAC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC2A.hvgate", &get_ExcAC2A_hvgate); - get_map.emplace("cim:ExcAC2A.ka", &get_ExcAC2A_ka); - get_map.emplace("cim:ExcAC2A.kb", &get_ExcAC2A_kb); - get_map.emplace("cim:ExcAC2A.kb1", &get_ExcAC2A_kb1); - get_map.emplace("cim:ExcAC2A.kc", &get_ExcAC2A_kc); - get_map.emplace("cim:ExcAC2A.kd", &get_ExcAC2A_kd); - get_map.emplace("cim:ExcAC2A.ke", &get_ExcAC2A_ke); - get_map.emplace("cim:ExcAC2A.kf", &get_ExcAC2A_kf); - get_map.emplace("cim:ExcAC2A.kh", &get_ExcAC2A_kh); - get_map.emplace("cim:ExcAC2A.kl", &get_ExcAC2A_kl); - get_map.emplace("cim:ExcAC2A.kl1", &get_ExcAC2A_kl1); - get_map.emplace("cim:ExcAC2A.ks", &get_ExcAC2A_ks); - get_map.emplace("cim:ExcAC2A.lvgate", &get_ExcAC2A_lvgate); - get_map.emplace("cim:ExcAC2A.seve1", &get_ExcAC2A_seve1); - get_map.emplace("cim:ExcAC2A.seve2", &get_ExcAC2A_seve2); - get_map.emplace("cim:ExcAC2A.ta", &get_ExcAC2A_ta); - get_map.emplace("cim:ExcAC2A.tb", &get_ExcAC2A_tb); - get_map.emplace("cim:ExcAC2A.tc", &get_ExcAC2A_tc); - get_map.emplace("cim:ExcAC2A.te", &get_ExcAC2A_te); - get_map.emplace("cim:ExcAC2A.tf", &get_ExcAC2A_tf); - get_map.emplace("cim:ExcAC2A.vamax", &get_ExcAC2A_vamax); - get_map.emplace("cim:ExcAC2A.vamin", &get_ExcAC2A_vamin); - get_map.emplace("cim:ExcAC2A.ve1", &get_ExcAC2A_ve1); - get_map.emplace("cim:ExcAC2A.ve2", &get_ExcAC2A_ve2); - get_map.emplace("cim:ExcAC2A.vfemax", &get_ExcAC2A_vfemax); - get_map.emplace("cim:ExcAC2A.vlr", &get_ExcAC2A_vlr); - get_map.emplace("cim:ExcAC2A.vrmax", &get_ExcAC2A_vrmax); - get_map.emplace("cim:ExcAC2A.vrmin", &get_ExcAC2A_vrmin); + get_map.emplace("ExcAC2A.hvgate", &get_ExcAC2A_hvgate); + get_map.emplace("ExcAC2A.ka", &get_ExcAC2A_ka); + get_map.emplace("ExcAC2A.kb", &get_ExcAC2A_kb); + get_map.emplace("ExcAC2A.kb1", &get_ExcAC2A_kb1); + get_map.emplace("ExcAC2A.kc", &get_ExcAC2A_kc); + get_map.emplace("ExcAC2A.kd", &get_ExcAC2A_kd); + get_map.emplace("ExcAC2A.ke", &get_ExcAC2A_ke); + get_map.emplace("ExcAC2A.kf", &get_ExcAC2A_kf); + get_map.emplace("ExcAC2A.kh", &get_ExcAC2A_kh); + get_map.emplace("ExcAC2A.kl", &get_ExcAC2A_kl); + get_map.emplace("ExcAC2A.kl1", &get_ExcAC2A_kl1); + get_map.emplace("ExcAC2A.ks", &get_ExcAC2A_ks); + get_map.emplace("ExcAC2A.lvgate", &get_ExcAC2A_lvgate); + get_map.emplace("ExcAC2A.seve1", &get_ExcAC2A_seve1); + get_map.emplace("ExcAC2A.seve2", &get_ExcAC2A_seve2); + get_map.emplace("ExcAC2A.ta", &get_ExcAC2A_ta); + get_map.emplace("ExcAC2A.tb", &get_ExcAC2A_tb); + get_map.emplace("ExcAC2A.tc", &get_ExcAC2A_tc); + get_map.emplace("ExcAC2A.te", &get_ExcAC2A_te); + get_map.emplace("ExcAC2A.tf", &get_ExcAC2A_tf); + get_map.emplace("ExcAC2A.vamax", &get_ExcAC2A_vamax); + get_map.emplace("ExcAC2A.vamin", &get_ExcAC2A_vamin); + get_map.emplace("ExcAC2A.ve1", &get_ExcAC2A_ve1); + get_map.emplace("ExcAC2A.ve2", &get_ExcAC2A_ve2); + get_map.emplace("ExcAC2A.vfemax", &get_ExcAC2A_vfemax); + get_map.emplace("ExcAC2A.vlr", &get_ExcAC2A_vlr); + get_map.emplace("ExcAC2A.vrmax", &get_ExcAC2A_vrmax); + get_map.emplace("ExcAC2A.vrmin", &get_ExcAC2A_vrmin); } void ExcAC2A::addClassGetFnsToMap(std::map& get_map) const @@ -968,11 +1000,25 @@ void ExcAC2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC2A::declare() { return BaseClassDefiner(ExcAC2A::addConstructToMap, ExcAC2A::addPrimitiveAssignFnsToMap, ExcAC2A::addClassAssignFnsToMap, ExcAC2A::debugName); } +std::map ExcAC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC2A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAC2A.hpp b/CGMES_2.4.15_16FEB2016/ExcAC2A.hpp index 902938d79..c2b57c443 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC2A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -115,8 +116,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -124,7 +132,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC2A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAC3A.cpp b/CGMES_2.4.15_16FEB2016/ExcAC3A.cpp index 254577cfa..cb098c0b4 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC3A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC3A.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC3A.efdn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.klv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vlv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC3A::ExcAC3A() {} ExcAC3A::~ExcAC3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC3A.efdn", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.klv", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kn", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vemin", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vlv", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC3A_efdn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* ExcAC3A::debugString() const void ExcAC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC3A", &ExcAC3A_factory); + factory_map.emplace("ExcAC3A", &ExcAC3A_factory); } void ExcAC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC3A.efdn", &assign_ExcAC3A_efdn); - assign_map.emplace("cim:ExcAC3A.ka", &assign_ExcAC3A_ka); - assign_map.emplace("cim:ExcAC3A.kc", &assign_ExcAC3A_kc); - assign_map.emplace("cim:ExcAC3A.kd", &assign_ExcAC3A_kd); - assign_map.emplace("cim:ExcAC3A.ke", &assign_ExcAC3A_ke); - assign_map.emplace("cim:ExcAC3A.kf", &assign_ExcAC3A_kf); - assign_map.emplace("cim:ExcAC3A.kf1", &assign_ExcAC3A_kf1); - assign_map.emplace("cim:ExcAC3A.kf2", &assign_ExcAC3A_kf2); - assign_map.emplace("cim:ExcAC3A.klv", &assign_ExcAC3A_klv); - assign_map.emplace("cim:ExcAC3A.kn", &assign_ExcAC3A_kn); - assign_map.emplace("cim:ExcAC3A.kr", &assign_ExcAC3A_kr); - assign_map.emplace("cim:ExcAC3A.ks", &assign_ExcAC3A_ks); - assign_map.emplace("cim:ExcAC3A.seve1", &assign_ExcAC3A_seve1); - assign_map.emplace("cim:ExcAC3A.seve2", &assign_ExcAC3A_seve2); - assign_map.emplace("cim:ExcAC3A.ta", &assign_ExcAC3A_ta); - assign_map.emplace("cim:ExcAC3A.tb", &assign_ExcAC3A_tb); - assign_map.emplace("cim:ExcAC3A.tc", &assign_ExcAC3A_tc); - assign_map.emplace("cim:ExcAC3A.te", &assign_ExcAC3A_te); - assign_map.emplace("cim:ExcAC3A.tf", &assign_ExcAC3A_tf); - assign_map.emplace("cim:ExcAC3A.vamax", &assign_ExcAC3A_vamax); - assign_map.emplace("cim:ExcAC3A.vamin", &assign_ExcAC3A_vamin); - assign_map.emplace("cim:ExcAC3A.ve1", &assign_ExcAC3A_ve1); - assign_map.emplace("cim:ExcAC3A.ve2", &assign_ExcAC3A_ve2); - assign_map.emplace("cim:ExcAC3A.vemin", &assign_ExcAC3A_vemin); - assign_map.emplace("cim:ExcAC3A.vfemax", &assign_ExcAC3A_vfemax); - assign_map.emplace("cim:ExcAC3A.vlv", &assign_ExcAC3A_vlv); + assign_map.emplace("ExcAC3A.efdn", &assign_ExcAC3A_efdn); + assign_map.emplace("ExcAC3A.ka", &assign_ExcAC3A_ka); + assign_map.emplace("ExcAC3A.kc", &assign_ExcAC3A_kc); + assign_map.emplace("ExcAC3A.kd", &assign_ExcAC3A_kd); + assign_map.emplace("ExcAC3A.ke", &assign_ExcAC3A_ke); + assign_map.emplace("ExcAC3A.kf", &assign_ExcAC3A_kf); + assign_map.emplace("ExcAC3A.kf1", &assign_ExcAC3A_kf1); + assign_map.emplace("ExcAC3A.kf2", &assign_ExcAC3A_kf2); + assign_map.emplace("ExcAC3A.klv", &assign_ExcAC3A_klv); + assign_map.emplace("ExcAC3A.kn", &assign_ExcAC3A_kn); + assign_map.emplace("ExcAC3A.kr", &assign_ExcAC3A_kr); + assign_map.emplace("ExcAC3A.ks", &assign_ExcAC3A_ks); + assign_map.emplace("ExcAC3A.seve1", &assign_ExcAC3A_seve1); + assign_map.emplace("ExcAC3A.seve2", &assign_ExcAC3A_seve2); + assign_map.emplace("ExcAC3A.ta", &assign_ExcAC3A_ta); + assign_map.emplace("ExcAC3A.tb", &assign_ExcAC3A_tb); + assign_map.emplace("ExcAC3A.tc", &assign_ExcAC3A_tc); + assign_map.emplace("ExcAC3A.te", &assign_ExcAC3A_te); + assign_map.emplace("ExcAC3A.tf", &assign_ExcAC3A_tf); + assign_map.emplace("ExcAC3A.vamax", &assign_ExcAC3A_vamax); + assign_map.emplace("ExcAC3A.vamin", &assign_ExcAC3A_vamin); + assign_map.emplace("ExcAC3A.ve1", &assign_ExcAC3A_ve1); + assign_map.emplace("ExcAC3A.ve2", &assign_ExcAC3A_ve2); + assign_map.emplace("ExcAC3A.vemin", &assign_ExcAC3A_vemin); + assign_map.emplace("ExcAC3A.vfemax", &assign_ExcAC3A_vfemax); + assign_map.emplace("ExcAC3A.vlv", &assign_ExcAC3A_vlv); } void ExcAC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void ExcAC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC3A.efdn", &get_ExcAC3A_efdn); - get_map.emplace("cim:ExcAC3A.ka", &get_ExcAC3A_ka); - get_map.emplace("cim:ExcAC3A.kc", &get_ExcAC3A_kc); - get_map.emplace("cim:ExcAC3A.kd", &get_ExcAC3A_kd); - get_map.emplace("cim:ExcAC3A.ke", &get_ExcAC3A_ke); - get_map.emplace("cim:ExcAC3A.kf", &get_ExcAC3A_kf); - get_map.emplace("cim:ExcAC3A.kf1", &get_ExcAC3A_kf1); - get_map.emplace("cim:ExcAC3A.kf2", &get_ExcAC3A_kf2); - get_map.emplace("cim:ExcAC3A.klv", &get_ExcAC3A_klv); - get_map.emplace("cim:ExcAC3A.kn", &get_ExcAC3A_kn); - get_map.emplace("cim:ExcAC3A.kr", &get_ExcAC3A_kr); - get_map.emplace("cim:ExcAC3A.ks", &get_ExcAC3A_ks); - get_map.emplace("cim:ExcAC3A.seve1", &get_ExcAC3A_seve1); - get_map.emplace("cim:ExcAC3A.seve2", &get_ExcAC3A_seve2); - get_map.emplace("cim:ExcAC3A.ta", &get_ExcAC3A_ta); - get_map.emplace("cim:ExcAC3A.tb", &get_ExcAC3A_tb); - get_map.emplace("cim:ExcAC3A.tc", &get_ExcAC3A_tc); - get_map.emplace("cim:ExcAC3A.te", &get_ExcAC3A_te); - get_map.emplace("cim:ExcAC3A.tf", &get_ExcAC3A_tf); - get_map.emplace("cim:ExcAC3A.vamax", &get_ExcAC3A_vamax); - get_map.emplace("cim:ExcAC3A.vamin", &get_ExcAC3A_vamin); - get_map.emplace("cim:ExcAC3A.ve1", &get_ExcAC3A_ve1); - get_map.emplace("cim:ExcAC3A.ve2", &get_ExcAC3A_ve2); - get_map.emplace("cim:ExcAC3A.vemin", &get_ExcAC3A_vemin); - get_map.emplace("cim:ExcAC3A.vfemax", &get_ExcAC3A_vfemax); - get_map.emplace("cim:ExcAC3A.vlv", &get_ExcAC3A_vlv); + get_map.emplace("ExcAC3A.efdn", &get_ExcAC3A_efdn); + get_map.emplace("ExcAC3A.ka", &get_ExcAC3A_ka); + get_map.emplace("ExcAC3A.kc", &get_ExcAC3A_kc); + get_map.emplace("ExcAC3A.kd", &get_ExcAC3A_kd); + get_map.emplace("ExcAC3A.ke", &get_ExcAC3A_ke); + get_map.emplace("ExcAC3A.kf", &get_ExcAC3A_kf); + get_map.emplace("ExcAC3A.kf1", &get_ExcAC3A_kf1); + get_map.emplace("ExcAC3A.kf2", &get_ExcAC3A_kf2); + get_map.emplace("ExcAC3A.klv", &get_ExcAC3A_klv); + get_map.emplace("ExcAC3A.kn", &get_ExcAC3A_kn); + get_map.emplace("ExcAC3A.kr", &get_ExcAC3A_kr); + get_map.emplace("ExcAC3A.ks", &get_ExcAC3A_ks); + get_map.emplace("ExcAC3A.seve1", &get_ExcAC3A_seve1); + get_map.emplace("ExcAC3A.seve2", &get_ExcAC3A_seve2); + get_map.emplace("ExcAC3A.ta", &get_ExcAC3A_ta); + get_map.emplace("ExcAC3A.tb", &get_ExcAC3A_tb); + get_map.emplace("ExcAC3A.tc", &get_ExcAC3A_tc); + get_map.emplace("ExcAC3A.te", &get_ExcAC3A_te); + get_map.emplace("ExcAC3A.tf", &get_ExcAC3A_tf); + get_map.emplace("ExcAC3A.vamax", &get_ExcAC3A_vamax); + get_map.emplace("ExcAC3A.vamin", &get_ExcAC3A_vamin); + get_map.emplace("ExcAC3A.ve1", &get_ExcAC3A_ve1); + get_map.emplace("ExcAC3A.ve2", &get_ExcAC3A_ve2); + get_map.emplace("ExcAC3A.vemin", &get_ExcAC3A_vemin); + get_map.emplace("ExcAC3A.vfemax", &get_ExcAC3A_vfemax); + get_map.emplace("ExcAC3A.vlv", &get_ExcAC3A_vlv); } void ExcAC3A::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void ExcAC3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC3A::declare() { return BaseClassDefiner(ExcAC3A::addConstructToMap, ExcAC3A::addPrimitiveAssignFnsToMap, ExcAC3A::addClassAssignFnsToMap, ExcAC3A::debugName); } +std::map ExcAC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC3A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAC3A.hpp b/CGMES_2.4.15_16FEB2016/ExcAC3A.hpp index 430ee5d27..ab770529e 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC3A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC3A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAC4A.cpp b/CGMES_2.4.15_16FEB2016/ExcAC4A.cpp index ee9a03733..fb9830e44 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC4A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC4A.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC4A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC4A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC4A::ExcAC4A() {} ExcAC4A::~ExcAC4A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAC4A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAC4A::getClassNamespaceUrl() const { - { "cim:ExcAC4A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAC4A::getPossibleProfilesForClass() const +const std::string& ExcAC4A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAC4A::getPossibleProfilesForAttributes() const +const std::list& ExcAC4A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC4A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC4A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC4A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC4A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ExcAC4A::debugString() const void ExcAC4A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC4A", &ExcAC4A_factory); + factory_map.emplace("ExcAC4A", &ExcAC4A_factory); } void ExcAC4A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC4A.ka", &assign_ExcAC4A_ka); - assign_map.emplace("cim:ExcAC4A.kc", &assign_ExcAC4A_kc); - assign_map.emplace("cim:ExcAC4A.ta", &assign_ExcAC4A_ta); - assign_map.emplace("cim:ExcAC4A.tb", &assign_ExcAC4A_tb); - assign_map.emplace("cim:ExcAC4A.tc", &assign_ExcAC4A_tc); - assign_map.emplace("cim:ExcAC4A.vimax", &assign_ExcAC4A_vimax); - assign_map.emplace("cim:ExcAC4A.vimin", &assign_ExcAC4A_vimin); - assign_map.emplace("cim:ExcAC4A.vrmax", &assign_ExcAC4A_vrmax); - assign_map.emplace("cim:ExcAC4A.vrmin", &assign_ExcAC4A_vrmin); + assign_map.emplace("ExcAC4A.ka", &assign_ExcAC4A_ka); + assign_map.emplace("ExcAC4A.kc", &assign_ExcAC4A_kc); + assign_map.emplace("ExcAC4A.ta", &assign_ExcAC4A_ta); + assign_map.emplace("ExcAC4A.tb", &assign_ExcAC4A_tb); + assign_map.emplace("ExcAC4A.tc", &assign_ExcAC4A_tc); + assign_map.emplace("ExcAC4A.vimax", &assign_ExcAC4A_vimax); + assign_map.emplace("ExcAC4A.vimin", &assign_ExcAC4A_vimin); + assign_map.emplace("ExcAC4A.vrmax", &assign_ExcAC4A_vrmax); + assign_map.emplace("ExcAC4A.vrmin", &assign_ExcAC4A_vrmin); } void ExcAC4A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ExcAC4A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC4A.ka", &get_ExcAC4A_ka); - get_map.emplace("cim:ExcAC4A.kc", &get_ExcAC4A_kc); - get_map.emplace("cim:ExcAC4A.ta", &get_ExcAC4A_ta); - get_map.emplace("cim:ExcAC4A.tb", &get_ExcAC4A_tb); - get_map.emplace("cim:ExcAC4A.tc", &get_ExcAC4A_tc); - get_map.emplace("cim:ExcAC4A.vimax", &get_ExcAC4A_vimax); - get_map.emplace("cim:ExcAC4A.vimin", &get_ExcAC4A_vimin); - get_map.emplace("cim:ExcAC4A.vrmax", &get_ExcAC4A_vrmax); - get_map.emplace("cim:ExcAC4A.vrmin", &get_ExcAC4A_vrmin); + get_map.emplace("ExcAC4A.ka", &get_ExcAC4A_ka); + get_map.emplace("ExcAC4A.kc", &get_ExcAC4A_kc); + get_map.emplace("ExcAC4A.ta", &get_ExcAC4A_ta); + get_map.emplace("ExcAC4A.tb", &get_ExcAC4A_tb); + get_map.emplace("ExcAC4A.tc", &get_ExcAC4A_tc); + get_map.emplace("ExcAC4A.vimax", &get_ExcAC4A_vimax); + get_map.emplace("ExcAC4A.vimin", &get_ExcAC4A_vimin); + get_map.emplace("ExcAC4A.vrmax", &get_ExcAC4A_vrmax); + get_map.emplace("ExcAC4A.vrmin", &get_ExcAC4A_vrmin); } void ExcAC4A::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ExcAC4A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC4A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC4A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC4A::declare() { return BaseClassDefiner(ExcAC4A::addConstructToMap, ExcAC4A::addPrimitiveAssignFnsToMap, ExcAC4A::addClassAssignFnsToMap, ExcAC4A::debugName); } +std::map ExcAC4A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC4A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAC4A.hpp b/CGMES_2.4.15_16FEB2016/ExcAC4A.hpp index d0fc847a7..56da05fe8 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC4A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC4A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC4A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAC5A.cpp b/CGMES_2.4.15_16FEB2016/ExcAC5A.cpp index c0836badb..6e755d270 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC5A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC5A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC5A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC5A.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC5A::ExcAC5A() {} ExcAC5A::~ExcAC5A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAC5A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAC5A::getClassNamespaceUrl() const { - { "cim:ExcAC5A.a", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf3", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAC5A::getPossibleProfilesForClass() const +const std::string& ExcAC5A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAC5A::getPossibleProfilesForAttributes() const +const std::list& ExcAC5A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC5A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC5A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC5A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC5A_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcAC5A::debugString() const void ExcAC5A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC5A", &ExcAC5A_factory); + factory_map.emplace("ExcAC5A", &ExcAC5A_factory); } void ExcAC5A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC5A.a", &assign_ExcAC5A_a); - assign_map.emplace("cim:ExcAC5A.efd1", &assign_ExcAC5A_efd1); - assign_map.emplace("cim:ExcAC5A.efd2", &assign_ExcAC5A_efd2); - assign_map.emplace("cim:ExcAC5A.ka", &assign_ExcAC5A_ka); - assign_map.emplace("cim:ExcAC5A.ke", &assign_ExcAC5A_ke); - assign_map.emplace("cim:ExcAC5A.kf", &assign_ExcAC5A_kf); - assign_map.emplace("cim:ExcAC5A.ks", &assign_ExcAC5A_ks); - assign_map.emplace("cim:ExcAC5A.seefd1", &assign_ExcAC5A_seefd1); - assign_map.emplace("cim:ExcAC5A.seefd2", &assign_ExcAC5A_seefd2); - assign_map.emplace("cim:ExcAC5A.ta", &assign_ExcAC5A_ta); - assign_map.emplace("cim:ExcAC5A.tb", &assign_ExcAC5A_tb); - assign_map.emplace("cim:ExcAC5A.tc", &assign_ExcAC5A_tc); - assign_map.emplace("cim:ExcAC5A.te", &assign_ExcAC5A_te); - assign_map.emplace("cim:ExcAC5A.tf1", &assign_ExcAC5A_tf1); - assign_map.emplace("cim:ExcAC5A.tf2", &assign_ExcAC5A_tf2); - assign_map.emplace("cim:ExcAC5A.tf3", &assign_ExcAC5A_tf3); - assign_map.emplace("cim:ExcAC5A.vrmax", &assign_ExcAC5A_vrmax); - assign_map.emplace("cim:ExcAC5A.vrmin", &assign_ExcAC5A_vrmin); + assign_map.emplace("ExcAC5A.a", &assign_ExcAC5A_a); + assign_map.emplace("ExcAC5A.efd1", &assign_ExcAC5A_efd1); + assign_map.emplace("ExcAC5A.efd2", &assign_ExcAC5A_efd2); + assign_map.emplace("ExcAC5A.ka", &assign_ExcAC5A_ka); + assign_map.emplace("ExcAC5A.ke", &assign_ExcAC5A_ke); + assign_map.emplace("ExcAC5A.kf", &assign_ExcAC5A_kf); + assign_map.emplace("ExcAC5A.ks", &assign_ExcAC5A_ks); + assign_map.emplace("ExcAC5A.seefd1", &assign_ExcAC5A_seefd1); + assign_map.emplace("ExcAC5A.seefd2", &assign_ExcAC5A_seefd2); + assign_map.emplace("ExcAC5A.ta", &assign_ExcAC5A_ta); + assign_map.emplace("ExcAC5A.tb", &assign_ExcAC5A_tb); + assign_map.emplace("ExcAC5A.tc", &assign_ExcAC5A_tc); + assign_map.emplace("ExcAC5A.te", &assign_ExcAC5A_te); + assign_map.emplace("ExcAC5A.tf1", &assign_ExcAC5A_tf1); + assign_map.emplace("ExcAC5A.tf2", &assign_ExcAC5A_tf2); + assign_map.emplace("ExcAC5A.tf3", &assign_ExcAC5A_tf3); + assign_map.emplace("ExcAC5A.vrmax", &assign_ExcAC5A_vrmax); + assign_map.emplace("ExcAC5A.vrmin", &assign_ExcAC5A_vrmin); } void ExcAC5A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcAC5A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC5A.a", &get_ExcAC5A_a); - get_map.emplace("cim:ExcAC5A.efd1", &get_ExcAC5A_efd1); - get_map.emplace("cim:ExcAC5A.efd2", &get_ExcAC5A_efd2); - get_map.emplace("cim:ExcAC5A.ka", &get_ExcAC5A_ka); - get_map.emplace("cim:ExcAC5A.ke", &get_ExcAC5A_ke); - get_map.emplace("cim:ExcAC5A.kf", &get_ExcAC5A_kf); - get_map.emplace("cim:ExcAC5A.ks", &get_ExcAC5A_ks); - get_map.emplace("cim:ExcAC5A.seefd1", &get_ExcAC5A_seefd1); - get_map.emplace("cim:ExcAC5A.seefd2", &get_ExcAC5A_seefd2); - get_map.emplace("cim:ExcAC5A.ta", &get_ExcAC5A_ta); - get_map.emplace("cim:ExcAC5A.tb", &get_ExcAC5A_tb); - get_map.emplace("cim:ExcAC5A.tc", &get_ExcAC5A_tc); - get_map.emplace("cim:ExcAC5A.te", &get_ExcAC5A_te); - get_map.emplace("cim:ExcAC5A.tf1", &get_ExcAC5A_tf1); - get_map.emplace("cim:ExcAC5A.tf2", &get_ExcAC5A_tf2); - get_map.emplace("cim:ExcAC5A.tf3", &get_ExcAC5A_tf3); - get_map.emplace("cim:ExcAC5A.vrmax", &get_ExcAC5A_vrmax); - get_map.emplace("cim:ExcAC5A.vrmin", &get_ExcAC5A_vrmin); + get_map.emplace("ExcAC5A.a", &get_ExcAC5A_a); + get_map.emplace("ExcAC5A.efd1", &get_ExcAC5A_efd1); + get_map.emplace("ExcAC5A.efd2", &get_ExcAC5A_efd2); + get_map.emplace("ExcAC5A.ka", &get_ExcAC5A_ka); + get_map.emplace("ExcAC5A.ke", &get_ExcAC5A_ke); + get_map.emplace("ExcAC5A.kf", &get_ExcAC5A_kf); + get_map.emplace("ExcAC5A.ks", &get_ExcAC5A_ks); + get_map.emplace("ExcAC5A.seefd1", &get_ExcAC5A_seefd1); + get_map.emplace("ExcAC5A.seefd2", &get_ExcAC5A_seefd2); + get_map.emplace("ExcAC5A.ta", &get_ExcAC5A_ta); + get_map.emplace("ExcAC5A.tb", &get_ExcAC5A_tb); + get_map.emplace("ExcAC5A.tc", &get_ExcAC5A_tc); + get_map.emplace("ExcAC5A.te", &get_ExcAC5A_te); + get_map.emplace("ExcAC5A.tf1", &get_ExcAC5A_tf1); + get_map.emplace("ExcAC5A.tf2", &get_ExcAC5A_tf2); + get_map.emplace("ExcAC5A.tf3", &get_ExcAC5A_tf3); + get_map.emplace("ExcAC5A.vrmax", &get_ExcAC5A_vrmax); + get_map.emplace("ExcAC5A.vrmin", &get_ExcAC5A_vrmin); } void ExcAC5A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcAC5A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC5A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC5A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC5A::declare() { return BaseClassDefiner(ExcAC5A::addConstructToMap, ExcAC5A::addPrimitiveAssignFnsToMap, ExcAC5A::addClassAssignFnsToMap, ExcAC5A::debugName); } +std::map ExcAC5A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC5A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAC5A.hpp b/CGMES_2.4.15_16FEB2016/ExcAC5A.hpp index 17c61ea36..009ae6ba3 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC5A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC5A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC5A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAC6A.cpp b/CGMES_2.4.15_16FEB2016/ExcAC6A.cpp index bcdd5fdcd..ff05d5aa7 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC6A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC6A.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC6A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC6A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.th", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vfelim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC6A::ExcAC6A() {} ExcAC6A::~ExcAC6A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC6A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kh", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.th", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tj", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tk", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vfelim", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vhmax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC6A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC6A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC6A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC6A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC6A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC6A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC6A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC6A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC6A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC6A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcAC6A::debugString() const void ExcAC6A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC6A", &ExcAC6A_factory); + factory_map.emplace("ExcAC6A", &ExcAC6A_factory); } void ExcAC6A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC6A.ka", &assign_ExcAC6A_ka); - assign_map.emplace("cim:ExcAC6A.kc", &assign_ExcAC6A_kc); - assign_map.emplace("cim:ExcAC6A.kd", &assign_ExcAC6A_kd); - assign_map.emplace("cim:ExcAC6A.ke", &assign_ExcAC6A_ke); - assign_map.emplace("cim:ExcAC6A.kh", &assign_ExcAC6A_kh); - assign_map.emplace("cim:ExcAC6A.ks", &assign_ExcAC6A_ks); - assign_map.emplace("cim:ExcAC6A.seve1", &assign_ExcAC6A_seve1); - assign_map.emplace("cim:ExcAC6A.seve2", &assign_ExcAC6A_seve2); - assign_map.emplace("cim:ExcAC6A.ta", &assign_ExcAC6A_ta); - assign_map.emplace("cim:ExcAC6A.tb", &assign_ExcAC6A_tb); - assign_map.emplace("cim:ExcAC6A.tc", &assign_ExcAC6A_tc); - assign_map.emplace("cim:ExcAC6A.te", &assign_ExcAC6A_te); - assign_map.emplace("cim:ExcAC6A.th", &assign_ExcAC6A_th); - assign_map.emplace("cim:ExcAC6A.tj", &assign_ExcAC6A_tj); - assign_map.emplace("cim:ExcAC6A.tk", &assign_ExcAC6A_tk); - assign_map.emplace("cim:ExcAC6A.vamax", &assign_ExcAC6A_vamax); - assign_map.emplace("cim:ExcAC6A.vamin", &assign_ExcAC6A_vamin); - assign_map.emplace("cim:ExcAC6A.ve1", &assign_ExcAC6A_ve1); - assign_map.emplace("cim:ExcAC6A.ve2", &assign_ExcAC6A_ve2); - assign_map.emplace("cim:ExcAC6A.vfelim", &assign_ExcAC6A_vfelim); - assign_map.emplace("cim:ExcAC6A.vhmax", &assign_ExcAC6A_vhmax); - assign_map.emplace("cim:ExcAC6A.vrmax", &assign_ExcAC6A_vrmax); - assign_map.emplace("cim:ExcAC6A.vrmin", &assign_ExcAC6A_vrmin); + assign_map.emplace("ExcAC6A.ka", &assign_ExcAC6A_ka); + assign_map.emplace("ExcAC6A.kc", &assign_ExcAC6A_kc); + assign_map.emplace("ExcAC6A.kd", &assign_ExcAC6A_kd); + assign_map.emplace("ExcAC6A.ke", &assign_ExcAC6A_ke); + assign_map.emplace("ExcAC6A.kh", &assign_ExcAC6A_kh); + assign_map.emplace("ExcAC6A.ks", &assign_ExcAC6A_ks); + assign_map.emplace("ExcAC6A.seve1", &assign_ExcAC6A_seve1); + assign_map.emplace("ExcAC6A.seve2", &assign_ExcAC6A_seve2); + assign_map.emplace("ExcAC6A.ta", &assign_ExcAC6A_ta); + assign_map.emplace("ExcAC6A.tb", &assign_ExcAC6A_tb); + assign_map.emplace("ExcAC6A.tc", &assign_ExcAC6A_tc); + assign_map.emplace("ExcAC6A.te", &assign_ExcAC6A_te); + assign_map.emplace("ExcAC6A.th", &assign_ExcAC6A_th); + assign_map.emplace("ExcAC6A.tj", &assign_ExcAC6A_tj); + assign_map.emplace("ExcAC6A.tk", &assign_ExcAC6A_tk); + assign_map.emplace("ExcAC6A.vamax", &assign_ExcAC6A_vamax); + assign_map.emplace("ExcAC6A.vamin", &assign_ExcAC6A_vamin); + assign_map.emplace("ExcAC6A.ve1", &assign_ExcAC6A_ve1); + assign_map.emplace("ExcAC6A.ve2", &assign_ExcAC6A_ve2); + assign_map.emplace("ExcAC6A.vfelim", &assign_ExcAC6A_vfelim); + assign_map.emplace("ExcAC6A.vhmax", &assign_ExcAC6A_vhmax); + assign_map.emplace("ExcAC6A.vrmax", &assign_ExcAC6A_vrmax); + assign_map.emplace("ExcAC6A.vrmin", &assign_ExcAC6A_vrmin); } void ExcAC6A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcAC6A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC6A.ka", &get_ExcAC6A_ka); - get_map.emplace("cim:ExcAC6A.kc", &get_ExcAC6A_kc); - get_map.emplace("cim:ExcAC6A.kd", &get_ExcAC6A_kd); - get_map.emplace("cim:ExcAC6A.ke", &get_ExcAC6A_ke); - get_map.emplace("cim:ExcAC6A.kh", &get_ExcAC6A_kh); - get_map.emplace("cim:ExcAC6A.ks", &get_ExcAC6A_ks); - get_map.emplace("cim:ExcAC6A.seve1", &get_ExcAC6A_seve1); - get_map.emplace("cim:ExcAC6A.seve2", &get_ExcAC6A_seve2); - get_map.emplace("cim:ExcAC6A.ta", &get_ExcAC6A_ta); - get_map.emplace("cim:ExcAC6A.tb", &get_ExcAC6A_tb); - get_map.emplace("cim:ExcAC6A.tc", &get_ExcAC6A_tc); - get_map.emplace("cim:ExcAC6A.te", &get_ExcAC6A_te); - get_map.emplace("cim:ExcAC6A.th", &get_ExcAC6A_th); - get_map.emplace("cim:ExcAC6A.tj", &get_ExcAC6A_tj); - get_map.emplace("cim:ExcAC6A.tk", &get_ExcAC6A_tk); - get_map.emplace("cim:ExcAC6A.vamax", &get_ExcAC6A_vamax); - get_map.emplace("cim:ExcAC6A.vamin", &get_ExcAC6A_vamin); - get_map.emplace("cim:ExcAC6A.ve1", &get_ExcAC6A_ve1); - get_map.emplace("cim:ExcAC6A.ve2", &get_ExcAC6A_ve2); - get_map.emplace("cim:ExcAC6A.vfelim", &get_ExcAC6A_vfelim); - get_map.emplace("cim:ExcAC6A.vhmax", &get_ExcAC6A_vhmax); - get_map.emplace("cim:ExcAC6A.vrmax", &get_ExcAC6A_vrmax); - get_map.emplace("cim:ExcAC6A.vrmin", &get_ExcAC6A_vrmin); + get_map.emplace("ExcAC6A.ka", &get_ExcAC6A_ka); + get_map.emplace("ExcAC6A.kc", &get_ExcAC6A_kc); + get_map.emplace("ExcAC6A.kd", &get_ExcAC6A_kd); + get_map.emplace("ExcAC6A.ke", &get_ExcAC6A_ke); + get_map.emplace("ExcAC6A.kh", &get_ExcAC6A_kh); + get_map.emplace("ExcAC6A.ks", &get_ExcAC6A_ks); + get_map.emplace("ExcAC6A.seve1", &get_ExcAC6A_seve1); + get_map.emplace("ExcAC6A.seve2", &get_ExcAC6A_seve2); + get_map.emplace("ExcAC6A.ta", &get_ExcAC6A_ta); + get_map.emplace("ExcAC6A.tb", &get_ExcAC6A_tb); + get_map.emplace("ExcAC6A.tc", &get_ExcAC6A_tc); + get_map.emplace("ExcAC6A.te", &get_ExcAC6A_te); + get_map.emplace("ExcAC6A.th", &get_ExcAC6A_th); + get_map.emplace("ExcAC6A.tj", &get_ExcAC6A_tj); + get_map.emplace("ExcAC6A.tk", &get_ExcAC6A_tk); + get_map.emplace("ExcAC6A.vamax", &get_ExcAC6A_vamax); + get_map.emplace("ExcAC6A.vamin", &get_ExcAC6A_vamin); + get_map.emplace("ExcAC6A.ve1", &get_ExcAC6A_ve1); + get_map.emplace("ExcAC6A.ve2", &get_ExcAC6A_ve2); + get_map.emplace("ExcAC6A.vfelim", &get_ExcAC6A_vfelim); + get_map.emplace("ExcAC6A.vhmax", &get_ExcAC6A_vhmax); + get_map.emplace("ExcAC6A.vrmax", &get_ExcAC6A_vrmax); + get_map.emplace("ExcAC6A.vrmin", &get_ExcAC6A_vrmin); } void ExcAC6A::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcAC6A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC6A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC6A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC6A::declare() { return BaseClassDefiner(ExcAC6A::addConstructToMap, ExcAC6A::addPrimitiveAssignFnsToMap, ExcAC6A::addClassAssignFnsToMap, ExcAC6A::debugName); } +std::map ExcAC6A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC6A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAC6A.hpp b/CGMES_2.4.15_16FEB2016/ExcAC6A.hpp index 9bc679ac4..43fed9636 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC6A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC6A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -99,8 +100,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -108,7 +116,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC6A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAC8B.cpp b/CGMES_2.4.15_16FEB2016/ExcAC8B.cpp index d43497172..9cd4d5e27 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC8B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC8B.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC8B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC8B.inlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.pidlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.telim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vpidmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vpidmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vtmult", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC8B::ExcAC8B() {} ExcAC8B::~ExcAC8B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC8B.inlim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kir", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.pidlim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.te", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.telim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vimax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vimin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vpidmax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vpidmin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vtmult", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC8B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC8B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC8B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC8B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC8B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC8B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC8B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC8B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC8B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC8B_inlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* ExcAC8B::debugString() const void ExcAC8B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC8B", &ExcAC8B_factory); + factory_map.emplace("ExcAC8B", &ExcAC8B_factory); } void ExcAC8B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC8B.inlim", &assign_ExcAC8B_inlim); - assign_map.emplace("cim:ExcAC8B.ka", &assign_ExcAC8B_ka); - assign_map.emplace("cim:ExcAC8B.kc", &assign_ExcAC8B_kc); - assign_map.emplace("cim:ExcAC8B.kd", &assign_ExcAC8B_kd); - assign_map.emplace("cim:ExcAC8B.kdr", &assign_ExcAC8B_kdr); - assign_map.emplace("cim:ExcAC8B.ke", &assign_ExcAC8B_ke); - assign_map.emplace("cim:ExcAC8B.kir", &assign_ExcAC8B_kir); - assign_map.emplace("cim:ExcAC8B.kpr", &assign_ExcAC8B_kpr); - assign_map.emplace("cim:ExcAC8B.ks", &assign_ExcAC8B_ks); - assign_map.emplace("cim:ExcAC8B.pidlim", &assign_ExcAC8B_pidlim); - assign_map.emplace("cim:ExcAC8B.seve1", &assign_ExcAC8B_seve1); - assign_map.emplace("cim:ExcAC8B.seve2", &assign_ExcAC8B_seve2); - assign_map.emplace("cim:ExcAC8B.ta", &assign_ExcAC8B_ta); - assign_map.emplace("cim:ExcAC8B.tdr", &assign_ExcAC8B_tdr); - assign_map.emplace("cim:ExcAC8B.te", &assign_ExcAC8B_te); - assign_map.emplace("cim:ExcAC8B.telim", &assign_ExcAC8B_telim); - assign_map.emplace("cim:ExcAC8B.ve1", &assign_ExcAC8B_ve1); - assign_map.emplace("cim:ExcAC8B.ve2", &assign_ExcAC8B_ve2); - assign_map.emplace("cim:ExcAC8B.vemin", &assign_ExcAC8B_vemin); - assign_map.emplace("cim:ExcAC8B.vfemax", &assign_ExcAC8B_vfemax); - assign_map.emplace("cim:ExcAC8B.vimax", &assign_ExcAC8B_vimax); - assign_map.emplace("cim:ExcAC8B.vimin", &assign_ExcAC8B_vimin); - assign_map.emplace("cim:ExcAC8B.vpidmax", &assign_ExcAC8B_vpidmax); - assign_map.emplace("cim:ExcAC8B.vpidmin", &assign_ExcAC8B_vpidmin); - assign_map.emplace("cim:ExcAC8B.vrmax", &assign_ExcAC8B_vrmax); - assign_map.emplace("cim:ExcAC8B.vrmin", &assign_ExcAC8B_vrmin); - assign_map.emplace("cim:ExcAC8B.vtmult", &assign_ExcAC8B_vtmult); + assign_map.emplace("ExcAC8B.inlim", &assign_ExcAC8B_inlim); + assign_map.emplace("ExcAC8B.ka", &assign_ExcAC8B_ka); + assign_map.emplace("ExcAC8B.kc", &assign_ExcAC8B_kc); + assign_map.emplace("ExcAC8B.kd", &assign_ExcAC8B_kd); + assign_map.emplace("ExcAC8B.kdr", &assign_ExcAC8B_kdr); + assign_map.emplace("ExcAC8B.ke", &assign_ExcAC8B_ke); + assign_map.emplace("ExcAC8B.kir", &assign_ExcAC8B_kir); + assign_map.emplace("ExcAC8B.kpr", &assign_ExcAC8B_kpr); + assign_map.emplace("ExcAC8B.ks", &assign_ExcAC8B_ks); + assign_map.emplace("ExcAC8B.pidlim", &assign_ExcAC8B_pidlim); + assign_map.emplace("ExcAC8B.seve1", &assign_ExcAC8B_seve1); + assign_map.emplace("ExcAC8B.seve2", &assign_ExcAC8B_seve2); + assign_map.emplace("ExcAC8B.ta", &assign_ExcAC8B_ta); + assign_map.emplace("ExcAC8B.tdr", &assign_ExcAC8B_tdr); + assign_map.emplace("ExcAC8B.te", &assign_ExcAC8B_te); + assign_map.emplace("ExcAC8B.telim", &assign_ExcAC8B_telim); + assign_map.emplace("ExcAC8B.ve1", &assign_ExcAC8B_ve1); + assign_map.emplace("ExcAC8B.ve2", &assign_ExcAC8B_ve2); + assign_map.emplace("ExcAC8B.vemin", &assign_ExcAC8B_vemin); + assign_map.emplace("ExcAC8B.vfemax", &assign_ExcAC8B_vfemax); + assign_map.emplace("ExcAC8B.vimax", &assign_ExcAC8B_vimax); + assign_map.emplace("ExcAC8B.vimin", &assign_ExcAC8B_vimin); + assign_map.emplace("ExcAC8B.vpidmax", &assign_ExcAC8B_vpidmax); + assign_map.emplace("ExcAC8B.vpidmin", &assign_ExcAC8B_vpidmin); + assign_map.emplace("ExcAC8B.vrmax", &assign_ExcAC8B_vrmax); + assign_map.emplace("ExcAC8B.vrmin", &assign_ExcAC8B_vrmin); + assign_map.emplace("ExcAC8B.vtmult", &assign_ExcAC8B_vtmult); } void ExcAC8B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,33 +929,33 @@ void ExcAC8B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC8B.inlim", &get_ExcAC8B_inlim); - get_map.emplace("cim:ExcAC8B.ka", &get_ExcAC8B_ka); - get_map.emplace("cim:ExcAC8B.kc", &get_ExcAC8B_kc); - get_map.emplace("cim:ExcAC8B.kd", &get_ExcAC8B_kd); - get_map.emplace("cim:ExcAC8B.kdr", &get_ExcAC8B_kdr); - get_map.emplace("cim:ExcAC8B.ke", &get_ExcAC8B_ke); - get_map.emplace("cim:ExcAC8B.kir", &get_ExcAC8B_kir); - get_map.emplace("cim:ExcAC8B.kpr", &get_ExcAC8B_kpr); - get_map.emplace("cim:ExcAC8B.ks", &get_ExcAC8B_ks); - get_map.emplace("cim:ExcAC8B.pidlim", &get_ExcAC8B_pidlim); - get_map.emplace("cim:ExcAC8B.seve1", &get_ExcAC8B_seve1); - get_map.emplace("cim:ExcAC8B.seve2", &get_ExcAC8B_seve2); - get_map.emplace("cim:ExcAC8B.ta", &get_ExcAC8B_ta); - get_map.emplace("cim:ExcAC8B.tdr", &get_ExcAC8B_tdr); - get_map.emplace("cim:ExcAC8B.te", &get_ExcAC8B_te); - get_map.emplace("cim:ExcAC8B.telim", &get_ExcAC8B_telim); - get_map.emplace("cim:ExcAC8B.ve1", &get_ExcAC8B_ve1); - get_map.emplace("cim:ExcAC8B.ve2", &get_ExcAC8B_ve2); - get_map.emplace("cim:ExcAC8B.vemin", &get_ExcAC8B_vemin); - get_map.emplace("cim:ExcAC8B.vfemax", &get_ExcAC8B_vfemax); - get_map.emplace("cim:ExcAC8B.vimax", &get_ExcAC8B_vimax); - get_map.emplace("cim:ExcAC8B.vimin", &get_ExcAC8B_vimin); - get_map.emplace("cim:ExcAC8B.vpidmax", &get_ExcAC8B_vpidmax); - get_map.emplace("cim:ExcAC8B.vpidmin", &get_ExcAC8B_vpidmin); - get_map.emplace("cim:ExcAC8B.vrmax", &get_ExcAC8B_vrmax); - get_map.emplace("cim:ExcAC8B.vrmin", &get_ExcAC8B_vrmin); - get_map.emplace("cim:ExcAC8B.vtmult", &get_ExcAC8B_vtmult); + get_map.emplace("ExcAC8B.inlim", &get_ExcAC8B_inlim); + get_map.emplace("ExcAC8B.ka", &get_ExcAC8B_ka); + get_map.emplace("ExcAC8B.kc", &get_ExcAC8B_kc); + get_map.emplace("ExcAC8B.kd", &get_ExcAC8B_kd); + get_map.emplace("ExcAC8B.kdr", &get_ExcAC8B_kdr); + get_map.emplace("ExcAC8B.ke", &get_ExcAC8B_ke); + get_map.emplace("ExcAC8B.kir", &get_ExcAC8B_kir); + get_map.emplace("ExcAC8B.kpr", &get_ExcAC8B_kpr); + get_map.emplace("ExcAC8B.ks", &get_ExcAC8B_ks); + get_map.emplace("ExcAC8B.pidlim", &get_ExcAC8B_pidlim); + get_map.emplace("ExcAC8B.seve1", &get_ExcAC8B_seve1); + get_map.emplace("ExcAC8B.seve2", &get_ExcAC8B_seve2); + get_map.emplace("ExcAC8B.ta", &get_ExcAC8B_ta); + get_map.emplace("ExcAC8B.tdr", &get_ExcAC8B_tdr); + get_map.emplace("ExcAC8B.te", &get_ExcAC8B_te); + get_map.emplace("ExcAC8B.telim", &get_ExcAC8B_telim); + get_map.emplace("ExcAC8B.ve1", &get_ExcAC8B_ve1); + get_map.emplace("ExcAC8B.ve2", &get_ExcAC8B_ve2); + get_map.emplace("ExcAC8B.vemin", &get_ExcAC8B_vemin); + get_map.emplace("ExcAC8B.vfemax", &get_ExcAC8B_vfemax); + get_map.emplace("ExcAC8B.vimax", &get_ExcAC8B_vimax); + get_map.emplace("ExcAC8B.vimin", &get_ExcAC8B_vimin); + get_map.emplace("ExcAC8B.vpidmax", &get_ExcAC8B_vpidmax); + get_map.emplace("ExcAC8B.vpidmin", &get_ExcAC8B_vpidmin); + get_map.emplace("ExcAC8B.vrmax", &get_ExcAC8B_vrmax); + get_map.emplace("ExcAC8B.vrmin", &get_ExcAC8B_vrmin); + get_map.emplace("ExcAC8B.vtmult", &get_ExcAC8B_vtmult); } void ExcAC8B::addClassGetFnsToMap(std::map& get_map) const @@ -936,11 +968,25 @@ void ExcAC8B::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC8B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC8B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC8B::declare() { return BaseClassDefiner(ExcAC8B::addConstructToMap, ExcAC8B::addPrimitiveAssignFnsToMap, ExcAC8B::addClassAssignFnsToMap, ExcAC8B::debugName); } +std::map ExcAC8B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC8B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAC8B.hpp b/CGMES_2.4.15_16FEB2016/ExcAC8B.hpp index 578b1a281..b9311f3bc 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAC8B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAC8B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -112,8 +113,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -121,7 +129,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC8B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcANS.cpp b/CGMES_2.4.15_16FEB2016/ExcANS.cpp index afc2cb7d6..d8d18d591 100644 --- a/CGMES_2.4.15_16FEB2016/ExcANS.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcANS.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcANS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcANS.blint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.ifmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.ifmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.kce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.krvecc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.kvfif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcANS::ExcANS() {} ExcANS::~ExcANS() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcANS::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcANS::getClassNamespaceUrl() const { - { "cim:ExcANS.blint", { CGMESProfile::DY, } }, - { "cim:ExcANS.ifmn", { CGMESProfile::DY, } }, - { "cim:ExcANS.ifmx", { CGMESProfile::DY, } }, - { "cim:ExcANS.k2", { CGMESProfile::DY, } }, - { "cim:ExcANS.k3", { CGMESProfile::DY, } }, - { "cim:ExcANS.kce", { CGMESProfile::DY, } }, - { "cim:ExcANS.krvecc", { CGMESProfile::DY, } }, - { "cim:ExcANS.kvfif", { CGMESProfile::DY, } }, - { "cim:ExcANS.t1", { CGMESProfile::DY, } }, - { "cim:ExcANS.t2", { CGMESProfile::DY, } }, - { "cim:ExcANS.t3", { CGMESProfile::DY, } }, - { "cim:ExcANS.tb", { CGMESProfile::DY, } }, - { "cim:ExcANS.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcANS.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcANS::getPossibleProfilesForClass() const +const std::string& ExcANS::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcANS::getPossibleProfilesForAttributes() const +const std::list& ExcANS::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcANS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcANS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcANS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcANS_blint(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcANS::debugString() const void ExcANS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcANS", &ExcANS_factory); + factory_map.emplace("ExcANS", &ExcANS_factory); } void ExcANS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcANS.blint", &assign_ExcANS_blint); - assign_map.emplace("cim:ExcANS.ifmn", &assign_ExcANS_ifmn); - assign_map.emplace("cim:ExcANS.ifmx", &assign_ExcANS_ifmx); - assign_map.emplace("cim:ExcANS.k2", &assign_ExcANS_k2); - assign_map.emplace("cim:ExcANS.k3", &assign_ExcANS_k3); - assign_map.emplace("cim:ExcANS.kce", &assign_ExcANS_kce); - assign_map.emplace("cim:ExcANS.krvecc", &assign_ExcANS_krvecc); - assign_map.emplace("cim:ExcANS.kvfif", &assign_ExcANS_kvfif); - assign_map.emplace("cim:ExcANS.t1", &assign_ExcANS_t1); - assign_map.emplace("cim:ExcANS.t2", &assign_ExcANS_t2); - assign_map.emplace("cim:ExcANS.t3", &assign_ExcANS_t3); - assign_map.emplace("cim:ExcANS.tb", &assign_ExcANS_tb); - assign_map.emplace("cim:ExcANS.vrmn", &assign_ExcANS_vrmn); - assign_map.emplace("cim:ExcANS.vrmx", &assign_ExcANS_vrmx); + assign_map.emplace("ExcANS.blint", &assign_ExcANS_blint); + assign_map.emplace("ExcANS.ifmn", &assign_ExcANS_ifmn); + assign_map.emplace("ExcANS.ifmx", &assign_ExcANS_ifmx); + assign_map.emplace("ExcANS.k2", &assign_ExcANS_k2); + assign_map.emplace("ExcANS.k3", &assign_ExcANS_k3); + assign_map.emplace("ExcANS.kce", &assign_ExcANS_kce); + assign_map.emplace("ExcANS.krvecc", &assign_ExcANS_krvecc); + assign_map.emplace("ExcANS.kvfif", &assign_ExcANS_kvfif); + assign_map.emplace("ExcANS.t1", &assign_ExcANS_t1); + assign_map.emplace("ExcANS.t2", &assign_ExcANS_t2); + assign_map.emplace("ExcANS.t3", &assign_ExcANS_t3); + assign_map.emplace("ExcANS.tb", &assign_ExcANS_tb); + assign_map.emplace("ExcANS.vrmn", &assign_ExcANS_vrmn); + assign_map.emplace("ExcANS.vrmx", &assign_ExcANS_vrmx); } void ExcANS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcANS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcANS.blint", &get_ExcANS_blint); - get_map.emplace("cim:ExcANS.ifmn", &get_ExcANS_ifmn); - get_map.emplace("cim:ExcANS.ifmx", &get_ExcANS_ifmx); - get_map.emplace("cim:ExcANS.k2", &get_ExcANS_k2); - get_map.emplace("cim:ExcANS.k3", &get_ExcANS_k3); - get_map.emplace("cim:ExcANS.kce", &get_ExcANS_kce); - get_map.emplace("cim:ExcANS.krvecc", &get_ExcANS_krvecc); - get_map.emplace("cim:ExcANS.kvfif", &get_ExcANS_kvfif); - get_map.emplace("cim:ExcANS.t1", &get_ExcANS_t1); - get_map.emplace("cim:ExcANS.t2", &get_ExcANS_t2); - get_map.emplace("cim:ExcANS.t3", &get_ExcANS_t3); - get_map.emplace("cim:ExcANS.tb", &get_ExcANS_tb); - get_map.emplace("cim:ExcANS.vrmn", &get_ExcANS_vrmn); - get_map.emplace("cim:ExcANS.vrmx", &get_ExcANS_vrmx); + get_map.emplace("ExcANS.blint", &get_ExcANS_blint); + get_map.emplace("ExcANS.ifmn", &get_ExcANS_ifmn); + get_map.emplace("ExcANS.ifmx", &get_ExcANS_ifmx); + get_map.emplace("ExcANS.k2", &get_ExcANS_k2); + get_map.emplace("ExcANS.k3", &get_ExcANS_k3); + get_map.emplace("ExcANS.kce", &get_ExcANS_kce); + get_map.emplace("ExcANS.krvecc", &get_ExcANS_krvecc); + get_map.emplace("ExcANS.kvfif", &get_ExcANS_kvfif); + get_map.emplace("ExcANS.t1", &get_ExcANS_t1); + get_map.emplace("ExcANS.t2", &get_ExcANS_t2); + get_map.emplace("ExcANS.t3", &get_ExcANS_t3); + get_map.emplace("ExcANS.tb", &get_ExcANS_tb); + get_map.emplace("ExcANS.vrmn", &get_ExcANS_vrmn); + get_map.emplace("ExcANS.vrmx", &get_ExcANS_vrmx); } void ExcANS::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcANS::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcANS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcANS" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcANS::declare() { return BaseClassDefiner(ExcANS::addConstructToMap, ExcANS::addPrimitiveAssignFnsToMap, ExcANS::addClassAssignFnsToMap, ExcANS::debugName); } +std::map ExcANS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcANS_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcANS.hpp b/CGMES_2.4.15_16FEB2016/ExcANS.hpp index b1ba9b1be..df1375aef 100644 --- a/CGMES_2.4.15_16FEB2016/ExcANS.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcANS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcANS_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR1.cpp b/CGMES_2.4.15_16FEB2016/ExcAVR1.cpp index 3daf41454..cba9b8143 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR1.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR1.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR1.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR1::ExcAVR1() {} ExcAVR1::~ExcAVR1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR1::getClassNamespaceUrl() const { - { "cim:ExcAVR1.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.kf", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.ta", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.tb", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.tf", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR1::getPossibleProfilesForClass() const +const std::string& ExcAVR1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR1::getPossibleProfilesForAttributes() const +const std::list& ExcAVR1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR1_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcAVR1::debugString() const void ExcAVR1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR1", &ExcAVR1_factory); + factory_map.emplace("ExcAVR1", &ExcAVR1_factory); } void ExcAVR1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR1.e1", &assign_ExcAVR1_e1); - assign_map.emplace("cim:ExcAVR1.e2", &assign_ExcAVR1_e2); - assign_map.emplace("cim:ExcAVR1.ka", &assign_ExcAVR1_ka); - assign_map.emplace("cim:ExcAVR1.kf", &assign_ExcAVR1_kf); - assign_map.emplace("cim:ExcAVR1.se1", &assign_ExcAVR1_se1); - assign_map.emplace("cim:ExcAVR1.se2", &assign_ExcAVR1_se2); - assign_map.emplace("cim:ExcAVR1.ta", &assign_ExcAVR1_ta); - assign_map.emplace("cim:ExcAVR1.tb", &assign_ExcAVR1_tb); - assign_map.emplace("cim:ExcAVR1.te", &assign_ExcAVR1_te); - assign_map.emplace("cim:ExcAVR1.tf", &assign_ExcAVR1_tf); - assign_map.emplace("cim:ExcAVR1.vrmn", &assign_ExcAVR1_vrmn); - assign_map.emplace("cim:ExcAVR1.vrmx", &assign_ExcAVR1_vrmx); + assign_map.emplace("ExcAVR1.e1", &assign_ExcAVR1_e1); + assign_map.emplace("ExcAVR1.e2", &assign_ExcAVR1_e2); + assign_map.emplace("ExcAVR1.ka", &assign_ExcAVR1_ka); + assign_map.emplace("ExcAVR1.kf", &assign_ExcAVR1_kf); + assign_map.emplace("ExcAVR1.se1", &assign_ExcAVR1_se1); + assign_map.emplace("ExcAVR1.se2", &assign_ExcAVR1_se2); + assign_map.emplace("ExcAVR1.ta", &assign_ExcAVR1_ta); + assign_map.emplace("ExcAVR1.tb", &assign_ExcAVR1_tb); + assign_map.emplace("ExcAVR1.te", &assign_ExcAVR1_te); + assign_map.emplace("ExcAVR1.tf", &assign_ExcAVR1_tf); + assign_map.emplace("ExcAVR1.vrmn", &assign_ExcAVR1_vrmn); + assign_map.emplace("ExcAVR1.vrmx", &assign_ExcAVR1_vrmx); } void ExcAVR1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcAVR1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR1.e1", &get_ExcAVR1_e1); - get_map.emplace("cim:ExcAVR1.e2", &get_ExcAVR1_e2); - get_map.emplace("cim:ExcAVR1.ka", &get_ExcAVR1_ka); - get_map.emplace("cim:ExcAVR1.kf", &get_ExcAVR1_kf); - get_map.emplace("cim:ExcAVR1.se1", &get_ExcAVR1_se1); - get_map.emplace("cim:ExcAVR1.se2", &get_ExcAVR1_se2); - get_map.emplace("cim:ExcAVR1.ta", &get_ExcAVR1_ta); - get_map.emplace("cim:ExcAVR1.tb", &get_ExcAVR1_tb); - get_map.emplace("cim:ExcAVR1.te", &get_ExcAVR1_te); - get_map.emplace("cim:ExcAVR1.tf", &get_ExcAVR1_tf); - get_map.emplace("cim:ExcAVR1.vrmn", &get_ExcAVR1_vrmn); - get_map.emplace("cim:ExcAVR1.vrmx", &get_ExcAVR1_vrmx); + get_map.emplace("ExcAVR1.e1", &get_ExcAVR1_e1); + get_map.emplace("ExcAVR1.e2", &get_ExcAVR1_e2); + get_map.emplace("ExcAVR1.ka", &get_ExcAVR1_ka); + get_map.emplace("ExcAVR1.kf", &get_ExcAVR1_kf); + get_map.emplace("ExcAVR1.se1", &get_ExcAVR1_se1); + get_map.emplace("ExcAVR1.se2", &get_ExcAVR1_se2); + get_map.emplace("ExcAVR1.ta", &get_ExcAVR1_ta); + get_map.emplace("ExcAVR1.tb", &get_ExcAVR1_tb); + get_map.emplace("ExcAVR1.te", &get_ExcAVR1_te); + get_map.emplace("ExcAVR1.tf", &get_ExcAVR1_tf); + get_map.emplace("ExcAVR1.vrmn", &get_ExcAVR1_vrmn); + get_map.emplace("ExcAVR1.vrmx", &get_ExcAVR1_vrmx); } void ExcAVR1::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcAVR1::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR1::declare() { return BaseClassDefiner(ExcAVR1::addConstructToMap, ExcAVR1::addPrimitiveAssignFnsToMap, ExcAVR1::addClassAssignFnsToMap, ExcAVR1::debugName); } +std::map ExcAVR1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR1_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR1.hpp b/CGMES_2.4.15_16FEB2016/ExcAVR1.hpp index 867d7920d..7045fa1ea 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR1.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR2.cpp b/CGMES_2.4.15_16FEB2016/ExcAVR2.cpp index c9f8d13de..b0031b608 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR2.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR2.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR2.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR2::ExcAVR2() {} ExcAVR2::~ExcAVR2() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR2::getClassNamespaceUrl() const { - { "cim:ExcAVR2.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.kf", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.ta", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tb", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tf1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tf2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR2::getPossibleProfilesForClass() const +const std::string& ExcAVR2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR2::getPossibleProfilesForAttributes() const +const std::list& ExcAVR2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR2_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcAVR2::debugString() const void ExcAVR2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR2", &ExcAVR2_factory); + factory_map.emplace("ExcAVR2", &ExcAVR2_factory); } void ExcAVR2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR2.e1", &assign_ExcAVR2_e1); - assign_map.emplace("cim:ExcAVR2.e2", &assign_ExcAVR2_e2); - assign_map.emplace("cim:ExcAVR2.ka", &assign_ExcAVR2_ka); - assign_map.emplace("cim:ExcAVR2.kf", &assign_ExcAVR2_kf); - assign_map.emplace("cim:ExcAVR2.se1", &assign_ExcAVR2_se1); - assign_map.emplace("cim:ExcAVR2.se2", &assign_ExcAVR2_se2); - assign_map.emplace("cim:ExcAVR2.ta", &assign_ExcAVR2_ta); - assign_map.emplace("cim:ExcAVR2.tb", &assign_ExcAVR2_tb); - assign_map.emplace("cim:ExcAVR2.te", &assign_ExcAVR2_te); - assign_map.emplace("cim:ExcAVR2.tf1", &assign_ExcAVR2_tf1); - assign_map.emplace("cim:ExcAVR2.tf2", &assign_ExcAVR2_tf2); - assign_map.emplace("cim:ExcAVR2.vrmn", &assign_ExcAVR2_vrmn); - assign_map.emplace("cim:ExcAVR2.vrmx", &assign_ExcAVR2_vrmx); + assign_map.emplace("ExcAVR2.e1", &assign_ExcAVR2_e1); + assign_map.emplace("ExcAVR2.e2", &assign_ExcAVR2_e2); + assign_map.emplace("ExcAVR2.ka", &assign_ExcAVR2_ka); + assign_map.emplace("ExcAVR2.kf", &assign_ExcAVR2_kf); + assign_map.emplace("ExcAVR2.se1", &assign_ExcAVR2_se1); + assign_map.emplace("ExcAVR2.se2", &assign_ExcAVR2_se2); + assign_map.emplace("ExcAVR2.ta", &assign_ExcAVR2_ta); + assign_map.emplace("ExcAVR2.tb", &assign_ExcAVR2_tb); + assign_map.emplace("ExcAVR2.te", &assign_ExcAVR2_te); + assign_map.emplace("ExcAVR2.tf1", &assign_ExcAVR2_tf1); + assign_map.emplace("ExcAVR2.tf2", &assign_ExcAVR2_tf2); + assign_map.emplace("ExcAVR2.vrmn", &assign_ExcAVR2_vrmn); + assign_map.emplace("ExcAVR2.vrmx", &assign_ExcAVR2_vrmx); } void ExcAVR2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcAVR2::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR2.e1", &get_ExcAVR2_e1); - get_map.emplace("cim:ExcAVR2.e2", &get_ExcAVR2_e2); - get_map.emplace("cim:ExcAVR2.ka", &get_ExcAVR2_ka); - get_map.emplace("cim:ExcAVR2.kf", &get_ExcAVR2_kf); - get_map.emplace("cim:ExcAVR2.se1", &get_ExcAVR2_se1); - get_map.emplace("cim:ExcAVR2.se2", &get_ExcAVR2_se2); - get_map.emplace("cim:ExcAVR2.ta", &get_ExcAVR2_ta); - get_map.emplace("cim:ExcAVR2.tb", &get_ExcAVR2_tb); - get_map.emplace("cim:ExcAVR2.te", &get_ExcAVR2_te); - get_map.emplace("cim:ExcAVR2.tf1", &get_ExcAVR2_tf1); - get_map.emplace("cim:ExcAVR2.tf2", &get_ExcAVR2_tf2); - get_map.emplace("cim:ExcAVR2.vrmn", &get_ExcAVR2_vrmn); - get_map.emplace("cim:ExcAVR2.vrmx", &get_ExcAVR2_vrmx); + get_map.emplace("ExcAVR2.e1", &get_ExcAVR2_e1); + get_map.emplace("ExcAVR2.e2", &get_ExcAVR2_e2); + get_map.emplace("ExcAVR2.ka", &get_ExcAVR2_ka); + get_map.emplace("ExcAVR2.kf", &get_ExcAVR2_kf); + get_map.emplace("ExcAVR2.se1", &get_ExcAVR2_se1); + get_map.emplace("ExcAVR2.se2", &get_ExcAVR2_se2); + get_map.emplace("ExcAVR2.ta", &get_ExcAVR2_ta); + get_map.emplace("ExcAVR2.tb", &get_ExcAVR2_tb); + get_map.emplace("ExcAVR2.te", &get_ExcAVR2_te); + get_map.emplace("ExcAVR2.tf1", &get_ExcAVR2_tf1); + get_map.emplace("ExcAVR2.tf2", &get_ExcAVR2_tf2); + get_map.emplace("ExcAVR2.vrmn", &get_ExcAVR2_vrmn); + get_map.emplace("ExcAVR2.vrmx", &get_ExcAVR2_vrmx); } void ExcAVR2::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcAVR2::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR2::declare() { return BaseClassDefiner(ExcAVR2::addConstructToMap, ExcAVR2::addPrimitiveAssignFnsToMap, ExcAVR2::addClassAssignFnsToMap, ExcAVR2::debugName); } +std::map ExcAVR2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR2_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR2.hpp b/CGMES_2.4.15_16FEB2016/ExcAVR2.hpp index 4ef10bee6..e490f3c29 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR2.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR3.cpp b/CGMES_2.4.15_16FEB2016/ExcAVR3.cpp index a58bdda7d..90713cbce 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR3.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR3.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR3.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR3::ExcAVR3() {} ExcAVR3::~ExcAVR3() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR3::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR3::getClassNamespaceUrl() const { - { "cim:ExcAVR3.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR3::getPossibleProfilesForClass() const +const std::string& ExcAVR3::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR3::getPossibleProfilesForAttributes() const +const std::list& ExcAVR3::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR3_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcAVR3::debugString() const void ExcAVR3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR3", &ExcAVR3_factory); + factory_map.emplace("ExcAVR3", &ExcAVR3_factory); } void ExcAVR3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR3.e1", &assign_ExcAVR3_e1); - assign_map.emplace("cim:ExcAVR3.e2", &assign_ExcAVR3_e2); - assign_map.emplace("cim:ExcAVR3.ka", &assign_ExcAVR3_ka); - assign_map.emplace("cim:ExcAVR3.se1", &assign_ExcAVR3_se1); - assign_map.emplace("cim:ExcAVR3.se2", &assign_ExcAVR3_se2); - assign_map.emplace("cim:ExcAVR3.t1", &assign_ExcAVR3_t1); - assign_map.emplace("cim:ExcAVR3.t2", &assign_ExcAVR3_t2); - assign_map.emplace("cim:ExcAVR3.t3", &assign_ExcAVR3_t3); - assign_map.emplace("cim:ExcAVR3.t4", &assign_ExcAVR3_t4); - assign_map.emplace("cim:ExcAVR3.te", &assign_ExcAVR3_te); - assign_map.emplace("cim:ExcAVR3.vrmn", &assign_ExcAVR3_vrmn); - assign_map.emplace("cim:ExcAVR3.vrmx", &assign_ExcAVR3_vrmx); + assign_map.emplace("ExcAVR3.e1", &assign_ExcAVR3_e1); + assign_map.emplace("ExcAVR3.e2", &assign_ExcAVR3_e2); + assign_map.emplace("ExcAVR3.ka", &assign_ExcAVR3_ka); + assign_map.emplace("ExcAVR3.se1", &assign_ExcAVR3_se1); + assign_map.emplace("ExcAVR3.se2", &assign_ExcAVR3_se2); + assign_map.emplace("ExcAVR3.t1", &assign_ExcAVR3_t1); + assign_map.emplace("ExcAVR3.t2", &assign_ExcAVR3_t2); + assign_map.emplace("ExcAVR3.t3", &assign_ExcAVR3_t3); + assign_map.emplace("ExcAVR3.t4", &assign_ExcAVR3_t4); + assign_map.emplace("ExcAVR3.te", &assign_ExcAVR3_te); + assign_map.emplace("ExcAVR3.vrmn", &assign_ExcAVR3_vrmn); + assign_map.emplace("ExcAVR3.vrmx", &assign_ExcAVR3_vrmx); } void ExcAVR3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcAVR3::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR3.e1", &get_ExcAVR3_e1); - get_map.emplace("cim:ExcAVR3.e2", &get_ExcAVR3_e2); - get_map.emplace("cim:ExcAVR3.ka", &get_ExcAVR3_ka); - get_map.emplace("cim:ExcAVR3.se1", &get_ExcAVR3_se1); - get_map.emplace("cim:ExcAVR3.se2", &get_ExcAVR3_se2); - get_map.emplace("cim:ExcAVR3.t1", &get_ExcAVR3_t1); - get_map.emplace("cim:ExcAVR3.t2", &get_ExcAVR3_t2); - get_map.emplace("cim:ExcAVR3.t3", &get_ExcAVR3_t3); - get_map.emplace("cim:ExcAVR3.t4", &get_ExcAVR3_t4); - get_map.emplace("cim:ExcAVR3.te", &get_ExcAVR3_te); - get_map.emplace("cim:ExcAVR3.vrmn", &get_ExcAVR3_vrmn); - get_map.emplace("cim:ExcAVR3.vrmx", &get_ExcAVR3_vrmx); + get_map.emplace("ExcAVR3.e1", &get_ExcAVR3_e1); + get_map.emplace("ExcAVR3.e2", &get_ExcAVR3_e2); + get_map.emplace("ExcAVR3.ka", &get_ExcAVR3_ka); + get_map.emplace("ExcAVR3.se1", &get_ExcAVR3_se1); + get_map.emplace("ExcAVR3.se2", &get_ExcAVR3_se2); + get_map.emplace("ExcAVR3.t1", &get_ExcAVR3_t1); + get_map.emplace("ExcAVR3.t2", &get_ExcAVR3_t2); + get_map.emplace("ExcAVR3.t3", &get_ExcAVR3_t3); + get_map.emplace("ExcAVR3.t4", &get_ExcAVR3_t4); + get_map.emplace("ExcAVR3.te", &get_ExcAVR3_te); + get_map.emplace("ExcAVR3.vrmn", &get_ExcAVR3_vrmn); + get_map.emplace("ExcAVR3.vrmx", &get_ExcAVR3_vrmx); } void ExcAVR3::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcAVR3::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR3::declare() { return BaseClassDefiner(ExcAVR3::addConstructToMap, ExcAVR3::addPrimitiveAssignFnsToMap, ExcAVR3::addClassAssignFnsToMap, ExcAVR3::debugName); } +std::map ExcAVR3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR3_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR3.hpp b/CGMES_2.4.15_16FEB2016/ExcAVR3.hpp index 9e24fc4b5..b1b804aab 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR3.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR3_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR4.cpp b/CGMES_2.4.15_16FEB2016/ExcAVR4.cpp index 52fd9e5cd..ad4e7a618 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR4.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR4.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR4.imul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.kif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t1if", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.tif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vfmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vfmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR4::ExcAVR4() {} ExcAVR4::~ExcAVR4() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR4::getClassNamespaceUrl() const { - { "cim:ExcAVR4.imul", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.ke", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.kif", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t1if", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.tif", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vfmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vfmx", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR4::getPossibleProfilesForClass() const +const std::string& ExcAVR4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR4::getPossibleProfilesForAttributes() const +const std::list& ExcAVR4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR4_imul(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcAVR4::debugString() const void ExcAVR4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR4", &ExcAVR4_factory); + factory_map.emplace("ExcAVR4", &ExcAVR4_factory); } void ExcAVR4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR4.imul", &assign_ExcAVR4_imul); - assign_map.emplace("cim:ExcAVR4.ka", &assign_ExcAVR4_ka); - assign_map.emplace("cim:ExcAVR4.ke", &assign_ExcAVR4_ke); - assign_map.emplace("cim:ExcAVR4.kif", &assign_ExcAVR4_kif); - assign_map.emplace("cim:ExcAVR4.t1", &assign_ExcAVR4_t1); - assign_map.emplace("cim:ExcAVR4.t1if", &assign_ExcAVR4_t1if); - assign_map.emplace("cim:ExcAVR4.t2", &assign_ExcAVR4_t2); - assign_map.emplace("cim:ExcAVR4.t3", &assign_ExcAVR4_t3); - assign_map.emplace("cim:ExcAVR4.t4", &assign_ExcAVR4_t4); - assign_map.emplace("cim:ExcAVR4.tif", &assign_ExcAVR4_tif); - assign_map.emplace("cim:ExcAVR4.vfmn", &assign_ExcAVR4_vfmn); - assign_map.emplace("cim:ExcAVR4.vfmx", &assign_ExcAVR4_vfmx); - assign_map.emplace("cim:ExcAVR4.vrmn", &assign_ExcAVR4_vrmn); - assign_map.emplace("cim:ExcAVR4.vrmx", &assign_ExcAVR4_vrmx); + assign_map.emplace("ExcAVR4.imul", &assign_ExcAVR4_imul); + assign_map.emplace("ExcAVR4.ka", &assign_ExcAVR4_ka); + assign_map.emplace("ExcAVR4.ke", &assign_ExcAVR4_ke); + assign_map.emplace("ExcAVR4.kif", &assign_ExcAVR4_kif); + assign_map.emplace("ExcAVR4.t1", &assign_ExcAVR4_t1); + assign_map.emplace("ExcAVR4.t1if", &assign_ExcAVR4_t1if); + assign_map.emplace("ExcAVR4.t2", &assign_ExcAVR4_t2); + assign_map.emplace("ExcAVR4.t3", &assign_ExcAVR4_t3); + assign_map.emplace("ExcAVR4.t4", &assign_ExcAVR4_t4); + assign_map.emplace("ExcAVR4.tif", &assign_ExcAVR4_tif); + assign_map.emplace("ExcAVR4.vfmn", &assign_ExcAVR4_vfmn); + assign_map.emplace("ExcAVR4.vfmx", &assign_ExcAVR4_vfmx); + assign_map.emplace("ExcAVR4.vrmn", &assign_ExcAVR4_vrmn); + assign_map.emplace("ExcAVR4.vrmx", &assign_ExcAVR4_vrmx); } void ExcAVR4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcAVR4::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR4.imul", &get_ExcAVR4_imul); - get_map.emplace("cim:ExcAVR4.ka", &get_ExcAVR4_ka); - get_map.emplace("cim:ExcAVR4.ke", &get_ExcAVR4_ke); - get_map.emplace("cim:ExcAVR4.kif", &get_ExcAVR4_kif); - get_map.emplace("cim:ExcAVR4.t1", &get_ExcAVR4_t1); - get_map.emplace("cim:ExcAVR4.t1if", &get_ExcAVR4_t1if); - get_map.emplace("cim:ExcAVR4.t2", &get_ExcAVR4_t2); - get_map.emplace("cim:ExcAVR4.t3", &get_ExcAVR4_t3); - get_map.emplace("cim:ExcAVR4.t4", &get_ExcAVR4_t4); - get_map.emplace("cim:ExcAVR4.tif", &get_ExcAVR4_tif); - get_map.emplace("cim:ExcAVR4.vfmn", &get_ExcAVR4_vfmn); - get_map.emplace("cim:ExcAVR4.vfmx", &get_ExcAVR4_vfmx); - get_map.emplace("cim:ExcAVR4.vrmn", &get_ExcAVR4_vrmn); - get_map.emplace("cim:ExcAVR4.vrmx", &get_ExcAVR4_vrmx); + get_map.emplace("ExcAVR4.imul", &get_ExcAVR4_imul); + get_map.emplace("ExcAVR4.ka", &get_ExcAVR4_ka); + get_map.emplace("ExcAVR4.ke", &get_ExcAVR4_ke); + get_map.emplace("ExcAVR4.kif", &get_ExcAVR4_kif); + get_map.emplace("ExcAVR4.t1", &get_ExcAVR4_t1); + get_map.emplace("ExcAVR4.t1if", &get_ExcAVR4_t1if); + get_map.emplace("ExcAVR4.t2", &get_ExcAVR4_t2); + get_map.emplace("ExcAVR4.t3", &get_ExcAVR4_t3); + get_map.emplace("ExcAVR4.t4", &get_ExcAVR4_t4); + get_map.emplace("ExcAVR4.tif", &get_ExcAVR4_tif); + get_map.emplace("ExcAVR4.vfmn", &get_ExcAVR4_vfmn); + get_map.emplace("ExcAVR4.vfmx", &get_ExcAVR4_vfmx); + get_map.emplace("ExcAVR4.vrmn", &get_ExcAVR4_vrmn); + get_map.emplace("ExcAVR4.vrmx", &get_ExcAVR4_vrmx); } void ExcAVR4::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcAVR4::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR4::declare() { return BaseClassDefiner(ExcAVR4::addConstructToMap, ExcAVR4::addPrimitiveAssignFnsToMap, ExcAVR4::addClassAssignFnsToMap, ExcAVR4::debugName); } +std::map ExcAVR4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR4_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR4.hpp b/CGMES_2.4.15_16FEB2016/ExcAVR4.hpp index f77d11a15..59a3b3ff1 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR4.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR4_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR5.cpp b/CGMES_2.4.15_16FEB2016/ExcAVR5.cpp index 3f6eb23fe..73598394a 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR5.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR5.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR5(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR5.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR5.rex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR5.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR5::ExcAVR5() {} ExcAVR5::~ExcAVR5() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR5::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR5::getClassNamespaceUrl() const { - { "cim:ExcAVR5.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR5.rex", { CGMESProfile::DY, } }, - { "cim:ExcAVR5.ta", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR5::getPossibleProfilesForClass() const +const std::string& ExcAVR5::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR5::getPossibleProfilesForAttributes() const +const std::list& ExcAVR5::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR5::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR5::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR5::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR5_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* ExcAVR5::debugString() const void ExcAVR5::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR5", &ExcAVR5_factory); + factory_map.emplace("ExcAVR5", &ExcAVR5_factory); } void ExcAVR5::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR5.ka", &assign_ExcAVR5_ka); - assign_map.emplace("cim:ExcAVR5.rex", &assign_ExcAVR5_rex); - assign_map.emplace("cim:ExcAVR5.ta", &assign_ExcAVR5_ta); + assign_map.emplace("ExcAVR5.ka", &assign_ExcAVR5_ka); + assign_map.emplace("ExcAVR5.rex", &assign_ExcAVR5_rex); + assign_map.emplace("ExcAVR5.ta", &assign_ExcAVR5_ta); } void ExcAVR5::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void ExcAVR5::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR5.ka", &get_ExcAVR5_ka); - get_map.emplace("cim:ExcAVR5.rex", &get_ExcAVR5_rex); - get_map.emplace("cim:ExcAVR5.ta", &get_ExcAVR5_ta); + get_map.emplace("ExcAVR5.ka", &get_ExcAVR5_ka); + get_map.emplace("ExcAVR5.rex", &get_ExcAVR5_rex); + get_map.emplace("ExcAVR5.ta", &get_ExcAVR5_ta); } void ExcAVR5::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void ExcAVR5::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR5::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR5" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR5::declare() { return BaseClassDefiner(ExcAVR5::addConstructToMap, ExcAVR5::addPrimitiveAssignFnsToMap, ExcAVR5::addClassAssignFnsToMap, ExcAVR5::debugName); } +std::map ExcAVR5::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR5_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR5.hpp b/CGMES_2.4.15_16FEB2016/ExcAVR5.hpp index ddd53d379..09af2c69c 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR5.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR5.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR5_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR7.cpp b/CGMES_2.4.15_16FEB2016/ExcAVR7.cpp index 3568b24b1..2361023c9 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR7.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR7.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR7(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR7.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR7::ExcAVR7() {} ExcAVR7::~ExcAVR7() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAVR7.a1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a2", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a4", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a6", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t6", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin5", { CGMESProfile::DY, } }, -}; - -std::list -ExcAVR7::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAVR7::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAVR7::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAVR7::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAVR7::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAVR7::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR7::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR7::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR7::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR7_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcAVR7::debugString() const void ExcAVR7::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR7", &ExcAVR7_factory); + factory_map.emplace("ExcAVR7", &ExcAVR7_factory); } void ExcAVR7::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR7.a1", &assign_ExcAVR7_a1); - assign_map.emplace("cim:ExcAVR7.a2", &assign_ExcAVR7_a2); - assign_map.emplace("cim:ExcAVR7.a3", &assign_ExcAVR7_a3); - assign_map.emplace("cim:ExcAVR7.a4", &assign_ExcAVR7_a4); - assign_map.emplace("cim:ExcAVR7.a5", &assign_ExcAVR7_a5); - assign_map.emplace("cim:ExcAVR7.a6", &assign_ExcAVR7_a6); - assign_map.emplace("cim:ExcAVR7.k1", &assign_ExcAVR7_k1); - assign_map.emplace("cim:ExcAVR7.k3", &assign_ExcAVR7_k3); - assign_map.emplace("cim:ExcAVR7.k5", &assign_ExcAVR7_k5); - assign_map.emplace("cim:ExcAVR7.t1", &assign_ExcAVR7_t1); - assign_map.emplace("cim:ExcAVR7.t2", &assign_ExcAVR7_t2); - assign_map.emplace("cim:ExcAVR7.t3", &assign_ExcAVR7_t3); - assign_map.emplace("cim:ExcAVR7.t4", &assign_ExcAVR7_t4); - assign_map.emplace("cim:ExcAVR7.t5", &assign_ExcAVR7_t5); - assign_map.emplace("cim:ExcAVR7.t6", &assign_ExcAVR7_t6); - assign_map.emplace("cim:ExcAVR7.vmax1", &assign_ExcAVR7_vmax1); - assign_map.emplace("cim:ExcAVR7.vmax3", &assign_ExcAVR7_vmax3); - assign_map.emplace("cim:ExcAVR7.vmax5", &assign_ExcAVR7_vmax5); - assign_map.emplace("cim:ExcAVR7.vmin1", &assign_ExcAVR7_vmin1); - assign_map.emplace("cim:ExcAVR7.vmin3", &assign_ExcAVR7_vmin3); - assign_map.emplace("cim:ExcAVR7.vmin5", &assign_ExcAVR7_vmin5); + assign_map.emplace("ExcAVR7.a1", &assign_ExcAVR7_a1); + assign_map.emplace("ExcAVR7.a2", &assign_ExcAVR7_a2); + assign_map.emplace("ExcAVR7.a3", &assign_ExcAVR7_a3); + assign_map.emplace("ExcAVR7.a4", &assign_ExcAVR7_a4); + assign_map.emplace("ExcAVR7.a5", &assign_ExcAVR7_a5); + assign_map.emplace("ExcAVR7.a6", &assign_ExcAVR7_a6); + assign_map.emplace("ExcAVR7.k1", &assign_ExcAVR7_k1); + assign_map.emplace("ExcAVR7.k3", &assign_ExcAVR7_k3); + assign_map.emplace("ExcAVR7.k5", &assign_ExcAVR7_k5); + assign_map.emplace("ExcAVR7.t1", &assign_ExcAVR7_t1); + assign_map.emplace("ExcAVR7.t2", &assign_ExcAVR7_t2); + assign_map.emplace("ExcAVR7.t3", &assign_ExcAVR7_t3); + assign_map.emplace("ExcAVR7.t4", &assign_ExcAVR7_t4); + assign_map.emplace("ExcAVR7.t5", &assign_ExcAVR7_t5); + assign_map.emplace("ExcAVR7.t6", &assign_ExcAVR7_t6); + assign_map.emplace("ExcAVR7.vmax1", &assign_ExcAVR7_vmax1); + assign_map.emplace("ExcAVR7.vmax3", &assign_ExcAVR7_vmax3); + assign_map.emplace("ExcAVR7.vmax5", &assign_ExcAVR7_vmax5); + assign_map.emplace("ExcAVR7.vmin1", &assign_ExcAVR7_vmin1); + assign_map.emplace("ExcAVR7.vmin3", &assign_ExcAVR7_vmin3); + assign_map.emplace("ExcAVR7.vmin5", &assign_ExcAVR7_vmin5); } void ExcAVR7::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcAVR7::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR7.a1", &get_ExcAVR7_a1); - get_map.emplace("cim:ExcAVR7.a2", &get_ExcAVR7_a2); - get_map.emplace("cim:ExcAVR7.a3", &get_ExcAVR7_a3); - get_map.emplace("cim:ExcAVR7.a4", &get_ExcAVR7_a4); - get_map.emplace("cim:ExcAVR7.a5", &get_ExcAVR7_a5); - get_map.emplace("cim:ExcAVR7.a6", &get_ExcAVR7_a6); - get_map.emplace("cim:ExcAVR7.k1", &get_ExcAVR7_k1); - get_map.emplace("cim:ExcAVR7.k3", &get_ExcAVR7_k3); - get_map.emplace("cim:ExcAVR7.k5", &get_ExcAVR7_k5); - get_map.emplace("cim:ExcAVR7.t1", &get_ExcAVR7_t1); - get_map.emplace("cim:ExcAVR7.t2", &get_ExcAVR7_t2); - get_map.emplace("cim:ExcAVR7.t3", &get_ExcAVR7_t3); - get_map.emplace("cim:ExcAVR7.t4", &get_ExcAVR7_t4); - get_map.emplace("cim:ExcAVR7.t5", &get_ExcAVR7_t5); - get_map.emplace("cim:ExcAVR7.t6", &get_ExcAVR7_t6); - get_map.emplace("cim:ExcAVR7.vmax1", &get_ExcAVR7_vmax1); - get_map.emplace("cim:ExcAVR7.vmax3", &get_ExcAVR7_vmax3); - get_map.emplace("cim:ExcAVR7.vmax5", &get_ExcAVR7_vmax5); - get_map.emplace("cim:ExcAVR7.vmin1", &get_ExcAVR7_vmin1); - get_map.emplace("cim:ExcAVR7.vmin3", &get_ExcAVR7_vmin3); - get_map.emplace("cim:ExcAVR7.vmin5", &get_ExcAVR7_vmin5); + get_map.emplace("ExcAVR7.a1", &get_ExcAVR7_a1); + get_map.emplace("ExcAVR7.a2", &get_ExcAVR7_a2); + get_map.emplace("ExcAVR7.a3", &get_ExcAVR7_a3); + get_map.emplace("ExcAVR7.a4", &get_ExcAVR7_a4); + get_map.emplace("ExcAVR7.a5", &get_ExcAVR7_a5); + get_map.emplace("ExcAVR7.a6", &get_ExcAVR7_a6); + get_map.emplace("ExcAVR7.k1", &get_ExcAVR7_k1); + get_map.emplace("ExcAVR7.k3", &get_ExcAVR7_k3); + get_map.emplace("ExcAVR7.k5", &get_ExcAVR7_k5); + get_map.emplace("ExcAVR7.t1", &get_ExcAVR7_t1); + get_map.emplace("ExcAVR7.t2", &get_ExcAVR7_t2); + get_map.emplace("ExcAVR7.t3", &get_ExcAVR7_t3); + get_map.emplace("ExcAVR7.t4", &get_ExcAVR7_t4); + get_map.emplace("ExcAVR7.t5", &get_ExcAVR7_t5); + get_map.emplace("ExcAVR7.t6", &get_ExcAVR7_t6); + get_map.emplace("ExcAVR7.vmax1", &get_ExcAVR7_vmax1); + get_map.emplace("ExcAVR7.vmax3", &get_ExcAVR7_vmax3); + get_map.emplace("ExcAVR7.vmax5", &get_ExcAVR7_vmax5); + get_map.emplace("ExcAVR7.vmin1", &get_ExcAVR7_vmin1); + get_map.emplace("ExcAVR7.vmin3", &get_ExcAVR7_vmin3); + get_map.emplace("ExcAVR7.vmin5", &get_ExcAVR7_vmin5); } void ExcAVR7::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcAVR7::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR7::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR7" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR7::declare() { return BaseClassDefiner(ExcAVR7::addConstructToMap, ExcAVR7::addPrimitiveAssignFnsToMap, ExcAVR7::addClassAssignFnsToMap, ExcAVR7::debugName); } +std::map ExcAVR7::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR7_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcAVR7.hpp b/CGMES_2.4.15_16FEB2016/ExcAVR7.hpp index 5bd945535..e618d90e9 100644 --- a/CGMES_2.4.15_16FEB2016/ExcAVR7.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcAVR7.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -92,8 +93,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -101,7 +109,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR7_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcBBC.cpp b/CGMES_2.4.15_16FEB2016/ExcBBC.cpp index 5ed4908bf..beaa25586 100644 --- a/CGMES_2.4.15_16FEB2016/ExcBBC.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcBBC.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcBBC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcBBC.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.switch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcBBC::ExcBBC() {} ExcBBC::~ExcBBC() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcBBC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcBBC::getClassNamespaceUrl() const { - { "cim:ExcBBC.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcBBC.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcBBC.k", { CGMESProfile::DY, } }, - { "cim:ExcBBC.switch", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t1", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t2", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t3", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t4", { CGMESProfile::DY, } }, - { "cim:ExcBBC.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcBBC.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcBBC.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcBBC::getPossibleProfilesForClass() const +const std::string& ExcBBC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcBBC::getPossibleProfilesForAttributes() const +const std::list& ExcBBC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcBBC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcBBC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcBBC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcBBC_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* ExcBBC::debugString() const void ExcBBC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcBBC", &ExcBBC_factory); + factory_map.emplace("ExcBBC", &ExcBBC_factory); } void ExcBBC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcBBC.efdmax", &assign_ExcBBC_efdmax); - assign_map.emplace("cim:ExcBBC.efdmin", &assign_ExcBBC_efdmin); - assign_map.emplace("cim:ExcBBC.k", &assign_ExcBBC_k); - assign_map.emplace("cim:ExcBBC.switch", &assign_ExcBBC_switch); - assign_map.emplace("cim:ExcBBC.t1", &assign_ExcBBC_t1); - assign_map.emplace("cim:ExcBBC.t2", &assign_ExcBBC_t2); - assign_map.emplace("cim:ExcBBC.t3", &assign_ExcBBC_t3); - assign_map.emplace("cim:ExcBBC.t4", &assign_ExcBBC_t4); - assign_map.emplace("cim:ExcBBC.vrmax", &assign_ExcBBC_vrmax); - assign_map.emplace("cim:ExcBBC.vrmin", &assign_ExcBBC_vrmin); - assign_map.emplace("cim:ExcBBC.xe", &assign_ExcBBC_xe); + assign_map.emplace("ExcBBC.efdmax", &assign_ExcBBC_efdmax); + assign_map.emplace("ExcBBC.efdmin", &assign_ExcBBC_efdmin); + assign_map.emplace("ExcBBC.k", &assign_ExcBBC_k); + assign_map.emplace("ExcBBC.switch", &assign_ExcBBC_switch); + assign_map.emplace("ExcBBC.t1", &assign_ExcBBC_t1); + assign_map.emplace("ExcBBC.t2", &assign_ExcBBC_t2); + assign_map.emplace("ExcBBC.t3", &assign_ExcBBC_t3); + assign_map.emplace("ExcBBC.t4", &assign_ExcBBC_t4); + assign_map.emplace("ExcBBC.vrmax", &assign_ExcBBC_vrmax); + assign_map.emplace("ExcBBC.vrmin", &assign_ExcBBC_vrmin); + assign_map.emplace("ExcBBC.xe", &assign_ExcBBC_xe); } void ExcBBC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void ExcBBC::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcBBC.efdmax", &get_ExcBBC_efdmax); - get_map.emplace("cim:ExcBBC.efdmin", &get_ExcBBC_efdmin); - get_map.emplace("cim:ExcBBC.k", &get_ExcBBC_k); - get_map.emplace("cim:ExcBBC.switch", &get_ExcBBC_switch); - get_map.emplace("cim:ExcBBC.t1", &get_ExcBBC_t1); - get_map.emplace("cim:ExcBBC.t2", &get_ExcBBC_t2); - get_map.emplace("cim:ExcBBC.t3", &get_ExcBBC_t3); - get_map.emplace("cim:ExcBBC.t4", &get_ExcBBC_t4); - get_map.emplace("cim:ExcBBC.vrmax", &get_ExcBBC_vrmax); - get_map.emplace("cim:ExcBBC.vrmin", &get_ExcBBC_vrmin); - get_map.emplace("cim:ExcBBC.xe", &get_ExcBBC_xe); + get_map.emplace("ExcBBC.efdmax", &get_ExcBBC_efdmax); + get_map.emplace("ExcBBC.efdmin", &get_ExcBBC_efdmin); + get_map.emplace("ExcBBC.k", &get_ExcBBC_k); + get_map.emplace("ExcBBC.switch", &get_ExcBBC_switch); + get_map.emplace("ExcBBC.t1", &get_ExcBBC_t1); + get_map.emplace("ExcBBC.t2", &get_ExcBBC_t2); + get_map.emplace("ExcBBC.t3", &get_ExcBBC_t3); + get_map.emplace("ExcBBC.t4", &get_ExcBBC_t4); + get_map.emplace("ExcBBC.vrmax", &get_ExcBBC_vrmax); + get_map.emplace("ExcBBC.vrmin", &get_ExcBBC_vrmin); + get_map.emplace("ExcBBC.xe", &get_ExcBBC_xe); } void ExcBBC::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void ExcBBC::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcBBC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcBBC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcBBC::declare() { return BaseClassDefiner(ExcBBC::addConstructToMap, ExcBBC::addPrimitiveAssignFnsToMap, ExcBBC::addClassAssignFnsToMap, ExcBBC::debugName); } +std::map ExcBBC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcBBC_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcBBC.hpp b/CGMES_2.4.15_16FEB2016/ExcBBC.hpp index 069831f27..2f9341949 100644 --- a/CGMES_2.4.15_16FEB2016/ExcBBC.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcBBC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcBBC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcCZ.cpp b/CGMES_2.4.15_16FEB2016/ExcCZ.cpp index 836b963d1..9d06d006c 100644 --- a/CGMES_2.4.15_16FEB2016/ExcCZ.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcCZ.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcCZ(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcCZ.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcCZ::ExcCZ() {} ExcCZ::~ExcCZ() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcCZ::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcCZ::getClassNamespaceUrl() const { - { "cim:ExcCZ.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcCZ.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ka", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ke", { CGMESProfile::DY, } }, - { "cim:ExcCZ.kp", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ta", { CGMESProfile::DY, } }, - { "cim:ExcCZ.tc", { CGMESProfile::DY, } }, - { "cim:ExcCZ.te", { CGMESProfile::DY, } }, - { "cim:ExcCZ.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcCZ.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcCZ::getPossibleProfilesForClass() const +const std::string& ExcCZ::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcCZ::getPossibleProfilesForAttributes() const +const std::list& ExcCZ::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcCZ::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcCZ::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcCZ::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcCZ_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcCZ::debugString() const void ExcCZ::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcCZ", &ExcCZ_factory); + factory_map.emplace("ExcCZ", &ExcCZ_factory); } void ExcCZ::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcCZ.efdmax", &assign_ExcCZ_efdmax); - assign_map.emplace("cim:ExcCZ.efdmin", &assign_ExcCZ_efdmin); - assign_map.emplace("cim:ExcCZ.ka", &assign_ExcCZ_ka); - assign_map.emplace("cim:ExcCZ.ke", &assign_ExcCZ_ke); - assign_map.emplace("cim:ExcCZ.kp", &assign_ExcCZ_kp); - assign_map.emplace("cim:ExcCZ.ta", &assign_ExcCZ_ta); - assign_map.emplace("cim:ExcCZ.tc", &assign_ExcCZ_tc); - assign_map.emplace("cim:ExcCZ.te", &assign_ExcCZ_te); - assign_map.emplace("cim:ExcCZ.vrmax", &assign_ExcCZ_vrmax); - assign_map.emplace("cim:ExcCZ.vrmin", &assign_ExcCZ_vrmin); + assign_map.emplace("ExcCZ.efdmax", &assign_ExcCZ_efdmax); + assign_map.emplace("ExcCZ.efdmin", &assign_ExcCZ_efdmin); + assign_map.emplace("ExcCZ.ka", &assign_ExcCZ_ka); + assign_map.emplace("ExcCZ.ke", &assign_ExcCZ_ke); + assign_map.emplace("ExcCZ.kp", &assign_ExcCZ_kp); + assign_map.emplace("ExcCZ.ta", &assign_ExcCZ_ta); + assign_map.emplace("ExcCZ.tc", &assign_ExcCZ_tc); + assign_map.emplace("ExcCZ.te", &assign_ExcCZ_te); + assign_map.emplace("ExcCZ.vrmax", &assign_ExcCZ_vrmax); + assign_map.emplace("ExcCZ.vrmin", &assign_ExcCZ_vrmin); } void ExcCZ::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcCZ::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcCZ.efdmax", &get_ExcCZ_efdmax); - get_map.emplace("cim:ExcCZ.efdmin", &get_ExcCZ_efdmin); - get_map.emplace("cim:ExcCZ.ka", &get_ExcCZ_ka); - get_map.emplace("cim:ExcCZ.ke", &get_ExcCZ_ke); - get_map.emplace("cim:ExcCZ.kp", &get_ExcCZ_kp); - get_map.emplace("cim:ExcCZ.ta", &get_ExcCZ_ta); - get_map.emplace("cim:ExcCZ.tc", &get_ExcCZ_tc); - get_map.emplace("cim:ExcCZ.te", &get_ExcCZ_te); - get_map.emplace("cim:ExcCZ.vrmax", &get_ExcCZ_vrmax); - get_map.emplace("cim:ExcCZ.vrmin", &get_ExcCZ_vrmin); + get_map.emplace("ExcCZ.efdmax", &get_ExcCZ_efdmax); + get_map.emplace("ExcCZ.efdmin", &get_ExcCZ_efdmin); + get_map.emplace("ExcCZ.ka", &get_ExcCZ_ka); + get_map.emplace("ExcCZ.ke", &get_ExcCZ_ke); + get_map.emplace("ExcCZ.kp", &get_ExcCZ_kp); + get_map.emplace("ExcCZ.ta", &get_ExcCZ_ta); + get_map.emplace("ExcCZ.tc", &get_ExcCZ_tc); + get_map.emplace("ExcCZ.te", &get_ExcCZ_te); + get_map.emplace("ExcCZ.vrmax", &get_ExcCZ_vrmax); + get_map.emplace("ExcCZ.vrmin", &get_ExcCZ_vrmin); } void ExcCZ::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcCZ::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcCZ::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcCZ" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcCZ::declare() { return BaseClassDefiner(ExcCZ::addConstructToMap, ExcCZ::addPrimitiveAssignFnsToMap, ExcCZ::addClassAssignFnsToMap, ExcCZ::debugName); } +std::map ExcCZ::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcCZ_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcCZ.hpp b/CGMES_2.4.15_16FEB2016/ExcCZ.hpp index 535e79794..315621089 100644 --- a/CGMES_2.4.15_16FEB2016/ExcCZ.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcCZ.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcCZ_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcDC1A.cpp b/CGMES_2.4.15_16FEB2016/ExcDC1A.cpp index 66f08bb53..4a2d815c9 100644 --- a/CGMES_2.4.15_16FEB2016/ExcDC1A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcDC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC1A.edfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC1A::ExcDC1A() {} ExcDC1A::~ExcDC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC1A::getClassNamespaceUrl() const { - { "cim:ExcDC1A.edfmax", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC1A::getPossibleProfilesForClass() const +const std::string& ExcDC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC1A::getPossibleProfilesForAttributes() const +const std::list& ExcDC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC1A_edfmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcDC1A::debugString() const void ExcDC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC1A", &ExcDC1A_factory); + factory_map.emplace("ExcDC1A", &ExcDC1A_factory); } void ExcDC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC1A.edfmax", &assign_ExcDC1A_edfmax); - assign_map.emplace("cim:ExcDC1A.efd1", &assign_ExcDC1A_efd1); - assign_map.emplace("cim:ExcDC1A.efd2", &assign_ExcDC1A_efd2); - assign_map.emplace("cim:ExcDC1A.efdmin", &assign_ExcDC1A_efdmin); - assign_map.emplace("cim:ExcDC1A.exclim", &assign_ExcDC1A_exclim); - assign_map.emplace("cim:ExcDC1A.ka", &assign_ExcDC1A_ka); - assign_map.emplace("cim:ExcDC1A.ke", &assign_ExcDC1A_ke); - assign_map.emplace("cim:ExcDC1A.kf", &assign_ExcDC1A_kf); - assign_map.emplace("cim:ExcDC1A.ks", &assign_ExcDC1A_ks); - assign_map.emplace("cim:ExcDC1A.seefd1", &assign_ExcDC1A_seefd1); - assign_map.emplace("cim:ExcDC1A.seefd2", &assign_ExcDC1A_seefd2); - assign_map.emplace("cim:ExcDC1A.ta", &assign_ExcDC1A_ta); - assign_map.emplace("cim:ExcDC1A.tb", &assign_ExcDC1A_tb); - assign_map.emplace("cim:ExcDC1A.tc", &assign_ExcDC1A_tc); - assign_map.emplace("cim:ExcDC1A.te", &assign_ExcDC1A_te); - assign_map.emplace("cim:ExcDC1A.tf", &assign_ExcDC1A_tf); - assign_map.emplace("cim:ExcDC1A.vrmax", &assign_ExcDC1A_vrmax); - assign_map.emplace("cim:ExcDC1A.vrmin", &assign_ExcDC1A_vrmin); + assign_map.emplace("ExcDC1A.edfmax", &assign_ExcDC1A_edfmax); + assign_map.emplace("ExcDC1A.efd1", &assign_ExcDC1A_efd1); + assign_map.emplace("ExcDC1A.efd2", &assign_ExcDC1A_efd2); + assign_map.emplace("ExcDC1A.efdmin", &assign_ExcDC1A_efdmin); + assign_map.emplace("ExcDC1A.exclim", &assign_ExcDC1A_exclim); + assign_map.emplace("ExcDC1A.ka", &assign_ExcDC1A_ka); + assign_map.emplace("ExcDC1A.ke", &assign_ExcDC1A_ke); + assign_map.emplace("ExcDC1A.kf", &assign_ExcDC1A_kf); + assign_map.emplace("ExcDC1A.ks", &assign_ExcDC1A_ks); + assign_map.emplace("ExcDC1A.seefd1", &assign_ExcDC1A_seefd1); + assign_map.emplace("ExcDC1A.seefd2", &assign_ExcDC1A_seefd2); + assign_map.emplace("ExcDC1A.ta", &assign_ExcDC1A_ta); + assign_map.emplace("ExcDC1A.tb", &assign_ExcDC1A_tb); + assign_map.emplace("ExcDC1A.tc", &assign_ExcDC1A_tc); + assign_map.emplace("ExcDC1A.te", &assign_ExcDC1A_te); + assign_map.emplace("ExcDC1A.tf", &assign_ExcDC1A_tf); + assign_map.emplace("ExcDC1A.vrmax", &assign_ExcDC1A_vrmax); + assign_map.emplace("ExcDC1A.vrmin", &assign_ExcDC1A_vrmin); } void ExcDC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcDC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC1A.edfmax", &get_ExcDC1A_edfmax); - get_map.emplace("cim:ExcDC1A.efd1", &get_ExcDC1A_efd1); - get_map.emplace("cim:ExcDC1A.efd2", &get_ExcDC1A_efd2); - get_map.emplace("cim:ExcDC1A.efdmin", &get_ExcDC1A_efdmin); - get_map.emplace("cim:ExcDC1A.exclim", &get_ExcDC1A_exclim); - get_map.emplace("cim:ExcDC1A.ka", &get_ExcDC1A_ka); - get_map.emplace("cim:ExcDC1A.ke", &get_ExcDC1A_ke); - get_map.emplace("cim:ExcDC1A.kf", &get_ExcDC1A_kf); - get_map.emplace("cim:ExcDC1A.ks", &get_ExcDC1A_ks); - get_map.emplace("cim:ExcDC1A.seefd1", &get_ExcDC1A_seefd1); - get_map.emplace("cim:ExcDC1A.seefd2", &get_ExcDC1A_seefd2); - get_map.emplace("cim:ExcDC1A.ta", &get_ExcDC1A_ta); - get_map.emplace("cim:ExcDC1A.tb", &get_ExcDC1A_tb); - get_map.emplace("cim:ExcDC1A.tc", &get_ExcDC1A_tc); - get_map.emplace("cim:ExcDC1A.te", &get_ExcDC1A_te); - get_map.emplace("cim:ExcDC1A.tf", &get_ExcDC1A_tf); - get_map.emplace("cim:ExcDC1A.vrmax", &get_ExcDC1A_vrmax); - get_map.emplace("cim:ExcDC1A.vrmin", &get_ExcDC1A_vrmin); + get_map.emplace("ExcDC1A.edfmax", &get_ExcDC1A_edfmax); + get_map.emplace("ExcDC1A.efd1", &get_ExcDC1A_efd1); + get_map.emplace("ExcDC1A.efd2", &get_ExcDC1A_efd2); + get_map.emplace("ExcDC1A.efdmin", &get_ExcDC1A_efdmin); + get_map.emplace("ExcDC1A.exclim", &get_ExcDC1A_exclim); + get_map.emplace("ExcDC1A.ka", &get_ExcDC1A_ka); + get_map.emplace("ExcDC1A.ke", &get_ExcDC1A_ke); + get_map.emplace("ExcDC1A.kf", &get_ExcDC1A_kf); + get_map.emplace("ExcDC1A.ks", &get_ExcDC1A_ks); + get_map.emplace("ExcDC1A.seefd1", &get_ExcDC1A_seefd1); + get_map.emplace("ExcDC1A.seefd2", &get_ExcDC1A_seefd2); + get_map.emplace("ExcDC1A.ta", &get_ExcDC1A_ta); + get_map.emplace("ExcDC1A.tb", &get_ExcDC1A_tb); + get_map.emplace("ExcDC1A.tc", &get_ExcDC1A_tc); + get_map.emplace("ExcDC1A.te", &get_ExcDC1A_te); + get_map.emplace("ExcDC1A.tf", &get_ExcDC1A_tf); + get_map.emplace("ExcDC1A.vrmax", &get_ExcDC1A_vrmax); + get_map.emplace("ExcDC1A.vrmin", &get_ExcDC1A_vrmin); } void ExcDC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcDC1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC1A::declare() { return BaseClassDefiner(ExcDC1A::addConstructToMap, ExcDC1A::addPrimitiveAssignFnsToMap, ExcDC1A::addClassAssignFnsToMap, ExcDC1A::debugName); } +std::map ExcDC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcDC1A.hpp b/CGMES_2.4.15_16FEB2016/ExcDC1A.hpp index 5cff88d2f..0fbae4e76 100644 --- a/CGMES_2.4.15_16FEB2016/ExcDC1A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcDC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcDC2A.cpp b/CGMES_2.4.15_16FEB2016/ExcDC2A.cpp index 79a98e618..0c4832f36 100644 --- a/CGMES_2.4.15_16FEB2016/ExcDC2A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcDC2A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC2A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vtlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC2A::ExcDC2A() {} ExcDC2A::~ExcDC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC2A::getClassNamespaceUrl() const { - { "cim:ExcDC2A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vtlim", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC2A::getPossibleProfilesForClass() const +const std::string& ExcDC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC2A::getPossibleProfilesForAttributes() const +const std::list& ExcDC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC2A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcDC2A::debugString() const void ExcDC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC2A", &ExcDC2A_factory); + factory_map.emplace("ExcDC2A", &ExcDC2A_factory); } void ExcDC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC2A.efd1", &assign_ExcDC2A_efd1); - assign_map.emplace("cim:ExcDC2A.efd2", &assign_ExcDC2A_efd2); - assign_map.emplace("cim:ExcDC2A.exclim", &assign_ExcDC2A_exclim); - assign_map.emplace("cim:ExcDC2A.ka", &assign_ExcDC2A_ka); - assign_map.emplace("cim:ExcDC2A.ke", &assign_ExcDC2A_ke); - assign_map.emplace("cim:ExcDC2A.kf", &assign_ExcDC2A_kf); - assign_map.emplace("cim:ExcDC2A.ks", &assign_ExcDC2A_ks); - assign_map.emplace("cim:ExcDC2A.seefd1", &assign_ExcDC2A_seefd1); - assign_map.emplace("cim:ExcDC2A.seefd2", &assign_ExcDC2A_seefd2); - assign_map.emplace("cim:ExcDC2A.ta", &assign_ExcDC2A_ta); - assign_map.emplace("cim:ExcDC2A.tb", &assign_ExcDC2A_tb); - assign_map.emplace("cim:ExcDC2A.tc", &assign_ExcDC2A_tc); - assign_map.emplace("cim:ExcDC2A.te", &assign_ExcDC2A_te); - assign_map.emplace("cim:ExcDC2A.tf", &assign_ExcDC2A_tf); - assign_map.emplace("cim:ExcDC2A.tf1", &assign_ExcDC2A_tf1); - assign_map.emplace("cim:ExcDC2A.vrmax", &assign_ExcDC2A_vrmax); - assign_map.emplace("cim:ExcDC2A.vrmin", &assign_ExcDC2A_vrmin); - assign_map.emplace("cim:ExcDC2A.vtlim", &assign_ExcDC2A_vtlim); + assign_map.emplace("ExcDC2A.efd1", &assign_ExcDC2A_efd1); + assign_map.emplace("ExcDC2A.efd2", &assign_ExcDC2A_efd2); + assign_map.emplace("ExcDC2A.exclim", &assign_ExcDC2A_exclim); + assign_map.emplace("ExcDC2A.ka", &assign_ExcDC2A_ka); + assign_map.emplace("ExcDC2A.ke", &assign_ExcDC2A_ke); + assign_map.emplace("ExcDC2A.kf", &assign_ExcDC2A_kf); + assign_map.emplace("ExcDC2A.ks", &assign_ExcDC2A_ks); + assign_map.emplace("ExcDC2A.seefd1", &assign_ExcDC2A_seefd1); + assign_map.emplace("ExcDC2A.seefd2", &assign_ExcDC2A_seefd2); + assign_map.emplace("ExcDC2A.ta", &assign_ExcDC2A_ta); + assign_map.emplace("ExcDC2A.tb", &assign_ExcDC2A_tb); + assign_map.emplace("ExcDC2A.tc", &assign_ExcDC2A_tc); + assign_map.emplace("ExcDC2A.te", &assign_ExcDC2A_te); + assign_map.emplace("ExcDC2A.tf", &assign_ExcDC2A_tf); + assign_map.emplace("ExcDC2A.tf1", &assign_ExcDC2A_tf1); + assign_map.emplace("ExcDC2A.vrmax", &assign_ExcDC2A_vrmax); + assign_map.emplace("ExcDC2A.vrmin", &assign_ExcDC2A_vrmin); + assign_map.emplace("ExcDC2A.vtlim", &assign_ExcDC2A_vtlim); } void ExcDC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcDC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC2A.efd1", &get_ExcDC2A_efd1); - get_map.emplace("cim:ExcDC2A.efd2", &get_ExcDC2A_efd2); - get_map.emplace("cim:ExcDC2A.exclim", &get_ExcDC2A_exclim); - get_map.emplace("cim:ExcDC2A.ka", &get_ExcDC2A_ka); - get_map.emplace("cim:ExcDC2A.ke", &get_ExcDC2A_ke); - get_map.emplace("cim:ExcDC2A.kf", &get_ExcDC2A_kf); - get_map.emplace("cim:ExcDC2A.ks", &get_ExcDC2A_ks); - get_map.emplace("cim:ExcDC2A.seefd1", &get_ExcDC2A_seefd1); - get_map.emplace("cim:ExcDC2A.seefd2", &get_ExcDC2A_seefd2); - get_map.emplace("cim:ExcDC2A.ta", &get_ExcDC2A_ta); - get_map.emplace("cim:ExcDC2A.tb", &get_ExcDC2A_tb); - get_map.emplace("cim:ExcDC2A.tc", &get_ExcDC2A_tc); - get_map.emplace("cim:ExcDC2A.te", &get_ExcDC2A_te); - get_map.emplace("cim:ExcDC2A.tf", &get_ExcDC2A_tf); - get_map.emplace("cim:ExcDC2A.tf1", &get_ExcDC2A_tf1); - get_map.emplace("cim:ExcDC2A.vrmax", &get_ExcDC2A_vrmax); - get_map.emplace("cim:ExcDC2A.vrmin", &get_ExcDC2A_vrmin); - get_map.emplace("cim:ExcDC2A.vtlim", &get_ExcDC2A_vtlim); + get_map.emplace("ExcDC2A.efd1", &get_ExcDC2A_efd1); + get_map.emplace("ExcDC2A.efd2", &get_ExcDC2A_efd2); + get_map.emplace("ExcDC2A.exclim", &get_ExcDC2A_exclim); + get_map.emplace("ExcDC2A.ka", &get_ExcDC2A_ka); + get_map.emplace("ExcDC2A.ke", &get_ExcDC2A_ke); + get_map.emplace("ExcDC2A.kf", &get_ExcDC2A_kf); + get_map.emplace("ExcDC2A.ks", &get_ExcDC2A_ks); + get_map.emplace("ExcDC2A.seefd1", &get_ExcDC2A_seefd1); + get_map.emplace("ExcDC2A.seefd2", &get_ExcDC2A_seefd2); + get_map.emplace("ExcDC2A.ta", &get_ExcDC2A_ta); + get_map.emplace("ExcDC2A.tb", &get_ExcDC2A_tb); + get_map.emplace("ExcDC2A.tc", &get_ExcDC2A_tc); + get_map.emplace("ExcDC2A.te", &get_ExcDC2A_te); + get_map.emplace("ExcDC2A.tf", &get_ExcDC2A_tf); + get_map.emplace("ExcDC2A.tf1", &get_ExcDC2A_tf1); + get_map.emplace("ExcDC2A.vrmax", &get_ExcDC2A_vrmax); + get_map.emplace("ExcDC2A.vrmin", &get_ExcDC2A_vrmin); + get_map.emplace("ExcDC2A.vtlim", &get_ExcDC2A_vtlim); } void ExcDC2A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcDC2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC2A::declare() { return BaseClassDefiner(ExcDC2A::addConstructToMap, ExcDC2A::addPrimitiveAssignFnsToMap, ExcDC2A::addClassAssignFnsToMap, ExcDC2A::debugName); } +std::map ExcDC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC2A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcDC2A.hpp b/CGMES_2.4.15_16FEB2016/ExcDC2A.hpp index e317a7ea0..a8516ce30 100644 --- a/CGMES_2.4.15_16FEB2016/ExcDC2A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcDC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC2A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcDC3A.cpp b/CGMES_2.4.15_16FEB2016/ExcDC3A.cpp index 71b995f87..26a084b8c 100644 --- a/CGMES_2.4.15_16FEB2016/ExcDC3A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcDC3A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC3A.edfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.kv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC3A::ExcDC3A() {} ExcDC3A::~ExcDC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC3A::getClassNamespaceUrl() const { - { "cim:ExcDC3A.edfmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdlim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.kv", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.trh", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC3A::getPossibleProfilesForClass() const +const std::string& ExcDC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC3A::getPossibleProfilesForAttributes() const +const std::list& ExcDC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC3A_edfmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcDC3A::debugString() const void ExcDC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC3A", &ExcDC3A_factory); + factory_map.emplace("ExcDC3A", &ExcDC3A_factory); } void ExcDC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC3A.edfmax", &assign_ExcDC3A_edfmax); - assign_map.emplace("cim:ExcDC3A.efd1", &assign_ExcDC3A_efd1); - assign_map.emplace("cim:ExcDC3A.efd2", &assign_ExcDC3A_efd2); - assign_map.emplace("cim:ExcDC3A.efdlim", &assign_ExcDC3A_efdlim); - assign_map.emplace("cim:ExcDC3A.efdmin", &assign_ExcDC3A_efdmin); - assign_map.emplace("cim:ExcDC3A.exclim", &assign_ExcDC3A_exclim); - assign_map.emplace("cim:ExcDC3A.ke", &assign_ExcDC3A_ke); - assign_map.emplace("cim:ExcDC3A.kr", &assign_ExcDC3A_kr); - assign_map.emplace("cim:ExcDC3A.ks", &assign_ExcDC3A_ks); - assign_map.emplace("cim:ExcDC3A.kv", &assign_ExcDC3A_kv); - assign_map.emplace("cim:ExcDC3A.seefd1", &assign_ExcDC3A_seefd1); - assign_map.emplace("cim:ExcDC3A.seefd2", &assign_ExcDC3A_seefd2); - assign_map.emplace("cim:ExcDC3A.te", &assign_ExcDC3A_te); - assign_map.emplace("cim:ExcDC3A.trh", &assign_ExcDC3A_trh); - assign_map.emplace("cim:ExcDC3A.vrmax", &assign_ExcDC3A_vrmax); - assign_map.emplace("cim:ExcDC3A.vrmin", &assign_ExcDC3A_vrmin); + assign_map.emplace("ExcDC3A.edfmax", &assign_ExcDC3A_edfmax); + assign_map.emplace("ExcDC3A.efd1", &assign_ExcDC3A_efd1); + assign_map.emplace("ExcDC3A.efd2", &assign_ExcDC3A_efd2); + assign_map.emplace("ExcDC3A.efdlim", &assign_ExcDC3A_efdlim); + assign_map.emplace("ExcDC3A.efdmin", &assign_ExcDC3A_efdmin); + assign_map.emplace("ExcDC3A.exclim", &assign_ExcDC3A_exclim); + assign_map.emplace("ExcDC3A.ke", &assign_ExcDC3A_ke); + assign_map.emplace("ExcDC3A.kr", &assign_ExcDC3A_kr); + assign_map.emplace("ExcDC3A.ks", &assign_ExcDC3A_ks); + assign_map.emplace("ExcDC3A.kv", &assign_ExcDC3A_kv); + assign_map.emplace("ExcDC3A.seefd1", &assign_ExcDC3A_seefd1); + assign_map.emplace("ExcDC3A.seefd2", &assign_ExcDC3A_seefd2); + assign_map.emplace("ExcDC3A.te", &assign_ExcDC3A_te); + assign_map.emplace("ExcDC3A.trh", &assign_ExcDC3A_trh); + assign_map.emplace("ExcDC3A.vrmax", &assign_ExcDC3A_vrmax); + assign_map.emplace("ExcDC3A.vrmin", &assign_ExcDC3A_vrmin); } void ExcDC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcDC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC3A.edfmax", &get_ExcDC3A_edfmax); - get_map.emplace("cim:ExcDC3A.efd1", &get_ExcDC3A_efd1); - get_map.emplace("cim:ExcDC3A.efd2", &get_ExcDC3A_efd2); - get_map.emplace("cim:ExcDC3A.efdlim", &get_ExcDC3A_efdlim); - get_map.emplace("cim:ExcDC3A.efdmin", &get_ExcDC3A_efdmin); - get_map.emplace("cim:ExcDC3A.exclim", &get_ExcDC3A_exclim); - get_map.emplace("cim:ExcDC3A.ke", &get_ExcDC3A_ke); - get_map.emplace("cim:ExcDC3A.kr", &get_ExcDC3A_kr); - get_map.emplace("cim:ExcDC3A.ks", &get_ExcDC3A_ks); - get_map.emplace("cim:ExcDC3A.kv", &get_ExcDC3A_kv); - get_map.emplace("cim:ExcDC3A.seefd1", &get_ExcDC3A_seefd1); - get_map.emplace("cim:ExcDC3A.seefd2", &get_ExcDC3A_seefd2); - get_map.emplace("cim:ExcDC3A.te", &get_ExcDC3A_te); - get_map.emplace("cim:ExcDC3A.trh", &get_ExcDC3A_trh); - get_map.emplace("cim:ExcDC3A.vrmax", &get_ExcDC3A_vrmax); - get_map.emplace("cim:ExcDC3A.vrmin", &get_ExcDC3A_vrmin); + get_map.emplace("ExcDC3A.edfmax", &get_ExcDC3A_edfmax); + get_map.emplace("ExcDC3A.efd1", &get_ExcDC3A_efd1); + get_map.emplace("ExcDC3A.efd2", &get_ExcDC3A_efd2); + get_map.emplace("ExcDC3A.efdlim", &get_ExcDC3A_efdlim); + get_map.emplace("ExcDC3A.efdmin", &get_ExcDC3A_efdmin); + get_map.emplace("ExcDC3A.exclim", &get_ExcDC3A_exclim); + get_map.emplace("ExcDC3A.ke", &get_ExcDC3A_ke); + get_map.emplace("ExcDC3A.kr", &get_ExcDC3A_kr); + get_map.emplace("ExcDC3A.ks", &get_ExcDC3A_ks); + get_map.emplace("ExcDC3A.kv", &get_ExcDC3A_kv); + get_map.emplace("ExcDC3A.seefd1", &get_ExcDC3A_seefd1); + get_map.emplace("ExcDC3A.seefd2", &get_ExcDC3A_seefd2); + get_map.emplace("ExcDC3A.te", &get_ExcDC3A_te); + get_map.emplace("ExcDC3A.trh", &get_ExcDC3A_trh); + get_map.emplace("ExcDC3A.vrmax", &get_ExcDC3A_vrmax); + get_map.emplace("ExcDC3A.vrmin", &get_ExcDC3A_vrmin); } void ExcDC3A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcDC3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC3A::declare() { return BaseClassDefiner(ExcDC3A::addConstructToMap, ExcDC3A::addPrimitiveAssignFnsToMap, ExcDC3A::addClassAssignFnsToMap, ExcDC3A::debugName); } +std::map ExcDC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC3A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcDC3A.hpp b/CGMES_2.4.15_16FEB2016/ExcDC3A.hpp index 53e5af5f0..944ed867e 100644 --- a/CGMES_2.4.15_16FEB2016/ExcDC3A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcDC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC3A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcDC3A1.cpp b/CGMES_2.4.15_16FEB2016/ExcDC3A1.cpp index 4d46a92b7..c81645b51 100644 --- a/CGMES_2.4.15_16FEB2016/ExcDC3A1.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcDC3A1.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC3A1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC3A1.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vb1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vblim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC3A1::ExcDC3A1() {} ExcDC3A1::~ExcDC3A1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC3A1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC3A1::getClassNamespaceUrl() const { - { "cim:ExcDC3A1.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ki", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.kp", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.te", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vb1max", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vblim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC3A1::getPossibleProfilesForClass() const +const std::string& ExcDC3A1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC3A1::getPossibleProfilesForAttributes() const +const std::list& ExcDC3A1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC3A1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC3A1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC3A1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC3A1_exclim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcDC3A1::debugString() const void ExcDC3A1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC3A1", &ExcDC3A1_factory); + factory_map.emplace("ExcDC3A1", &ExcDC3A1_factory); } void ExcDC3A1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC3A1.exclim", &assign_ExcDC3A1_exclim); - assign_map.emplace("cim:ExcDC3A1.ka", &assign_ExcDC3A1_ka); - assign_map.emplace("cim:ExcDC3A1.ke", &assign_ExcDC3A1_ke); - assign_map.emplace("cim:ExcDC3A1.kf", &assign_ExcDC3A1_kf); - assign_map.emplace("cim:ExcDC3A1.ki", &assign_ExcDC3A1_ki); - assign_map.emplace("cim:ExcDC3A1.kp", &assign_ExcDC3A1_kp); - assign_map.emplace("cim:ExcDC3A1.ta", &assign_ExcDC3A1_ta); - assign_map.emplace("cim:ExcDC3A1.te", &assign_ExcDC3A1_te); - assign_map.emplace("cim:ExcDC3A1.tf", &assign_ExcDC3A1_tf); - assign_map.emplace("cim:ExcDC3A1.vb1max", &assign_ExcDC3A1_vb1max); - assign_map.emplace("cim:ExcDC3A1.vblim", &assign_ExcDC3A1_vblim); - assign_map.emplace("cim:ExcDC3A1.vbmax", &assign_ExcDC3A1_vbmax); - assign_map.emplace("cim:ExcDC3A1.vrmax", &assign_ExcDC3A1_vrmax); - assign_map.emplace("cim:ExcDC3A1.vrmin", &assign_ExcDC3A1_vrmin); + assign_map.emplace("ExcDC3A1.exclim", &assign_ExcDC3A1_exclim); + assign_map.emplace("ExcDC3A1.ka", &assign_ExcDC3A1_ka); + assign_map.emplace("ExcDC3A1.ke", &assign_ExcDC3A1_ke); + assign_map.emplace("ExcDC3A1.kf", &assign_ExcDC3A1_kf); + assign_map.emplace("ExcDC3A1.ki", &assign_ExcDC3A1_ki); + assign_map.emplace("ExcDC3A1.kp", &assign_ExcDC3A1_kp); + assign_map.emplace("ExcDC3A1.ta", &assign_ExcDC3A1_ta); + assign_map.emplace("ExcDC3A1.te", &assign_ExcDC3A1_te); + assign_map.emplace("ExcDC3A1.tf", &assign_ExcDC3A1_tf); + assign_map.emplace("ExcDC3A1.vb1max", &assign_ExcDC3A1_vb1max); + assign_map.emplace("ExcDC3A1.vblim", &assign_ExcDC3A1_vblim); + assign_map.emplace("ExcDC3A1.vbmax", &assign_ExcDC3A1_vbmax); + assign_map.emplace("ExcDC3A1.vrmax", &assign_ExcDC3A1_vrmax); + assign_map.emplace("ExcDC3A1.vrmin", &assign_ExcDC3A1_vrmin); } void ExcDC3A1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcDC3A1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC3A1.exclim", &get_ExcDC3A1_exclim); - get_map.emplace("cim:ExcDC3A1.ka", &get_ExcDC3A1_ka); - get_map.emplace("cim:ExcDC3A1.ke", &get_ExcDC3A1_ke); - get_map.emplace("cim:ExcDC3A1.kf", &get_ExcDC3A1_kf); - get_map.emplace("cim:ExcDC3A1.ki", &get_ExcDC3A1_ki); - get_map.emplace("cim:ExcDC3A1.kp", &get_ExcDC3A1_kp); - get_map.emplace("cim:ExcDC3A1.ta", &get_ExcDC3A1_ta); - get_map.emplace("cim:ExcDC3A1.te", &get_ExcDC3A1_te); - get_map.emplace("cim:ExcDC3A1.tf", &get_ExcDC3A1_tf); - get_map.emplace("cim:ExcDC3A1.vb1max", &get_ExcDC3A1_vb1max); - get_map.emplace("cim:ExcDC3A1.vblim", &get_ExcDC3A1_vblim); - get_map.emplace("cim:ExcDC3A1.vbmax", &get_ExcDC3A1_vbmax); - get_map.emplace("cim:ExcDC3A1.vrmax", &get_ExcDC3A1_vrmax); - get_map.emplace("cim:ExcDC3A1.vrmin", &get_ExcDC3A1_vrmin); + get_map.emplace("ExcDC3A1.exclim", &get_ExcDC3A1_exclim); + get_map.emplace("ExcDC3A1.ka", &get_ExcDC3A1_ka); + get_map.emplace("ExcDC3A1.ke", &get_ExcDC3A1_ke); + get_map.emplace("ExcDC3A1.kf", &get_ExcDC3A1_kf); + get_map.emplace("ExcDC3A1.ki", &get_ExcDC3A1_ki); + get_map.emplace("ExcDC3A1.kp", &get_ExcDC3A1_kp); + get_map.emplace("ExcDC3A1.ta", &get_ExcDC3A1_ta); + get_map.emplace("ExcDC3A1.te", &get_ExcDC3A1_te); + get_map.emplace("ExcDC3A1.tf", &get_ExcDC3A1_tf); + get_map.emplace("ExcDC3A1.vb1max", &get_ExcDC3A1_vb1max); + get_map.emplace("ExcDC3A1.vblim", &get_ExcDC3A1_vblim); + get_map.emplace("ExcDC3A1.vbmax", &get_ExcDC3A1_vbmax); + get_map.emplace("ExcDC3A1.vrmax", &get_ExcDC3A1_vrmax); + get_map.emplace("ExcDC3A1.vrmin", &get_ExcDC3A1_vrmin); } void ExcDC3A1::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcDC3A1::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC3A1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC3A1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC3A1::declare() { return BaseClassDefiner(ExcDC3A1::addConstructToMap, ExcDC3A1::addPrimitiveAssignFnsToMap, ExcDC3A1::addClassAssignFnsToMap, ExcDC3A1::debugName); } +std::map ExcDC3A1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC3A1_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcDC3A1.hpp b/CGMES_2.4.15_16FEB2016/ExcDC3A1.hpp index e58f7643f..8b5d08474 100644 --- a/CGMES_2.4.15_16FEB2016/ExcDC3A1.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcDC3A1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC3A1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcELIN1.cpp b/CGMES_2.4.15_16FEB2016/ExcELIN1.cpp index 449d03fd8..288b8daee 100644 --- a/CGMES_2.4.15_16FEB2016/ExcELIN1.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcELIN1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcELIN1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcELIN1.dpnf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.efmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.efmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.smax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tfi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tnu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ts1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ts2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tsw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpnf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcELIN1::ExcELIN1() {} ExcELIN1::~ExcELIN1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcELIN1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcELIN1::getClassNamespaceUrl() const { - { "cim:ExcELIN1.dpnf", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.efmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.efmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ks1", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ks2", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.smax", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tfi", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tnu", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ts1", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ts2", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tsw", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpi", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpnf", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpu", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcELIN1::getPossibleProfilesForClass() const +const std::string& ExcELIN1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcELIN1::getPossibleProfilesForAttributes() const +const std::list& ExcELIN1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcELIN1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcELIN1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcELIN1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcELIN1_dpnf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcELIN1::debugString() const void ExcELIN1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcELIN1", &ExcELIN1_factory); + factory_map.emplace("ExcELIN1", &ExcELIN1_factory); } void ExcELIN1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcELIN1.dpnf", &assign_ExcELIN1_dpnf); - assign_map.emplace("cim:ExcELIN1.efmax", &assign_ExcELIN1_efmax); - assign_map.emplace("cim:ExcELIN1.efmin", &assign_ExcELIN1_efmin); - assign_map.emplace("cim:ExcELIN1.ks1", &assign_ExcELIN1_ks1); - assign_map.emplace("cim:ExcELIN1.ks2", &assign_ExcELIN1_ks2); - assign_map.emplace("cim:ExcELIN1.smax", &assign_ExcELIN1_smax); - assign_map.emplace("cim:ExcELIN1.tfi", &assign_ExcELIN1_tfi); - assign_map.emplace("cim:ExcELIN1.tnu", &assign_ExcELIN1_tnu); - assign_map.emplace("cim:ExcELIN1.ts1", &assign_ExcELIN1_ts1); - assign_map.emplace("cim:ExcELIN1.ts2", &assign_ExcELIN1_ts2); - assign_map.emplace("cim:ExcELIN1.tsw", &assign_ExcELIN1_tsw); - assign_map.emplace("cim:ExcELIN1.vpi", &assign_ExcELIN1_vpi); - assign_map.emplace("cim:ExcELIN1.vpnf", &assign_ExcELIN1_vpnf); - assign_map.emplace("cim:ExcELIN1.vpu", &assign_ExcELIN1_vpu); - assign_map.emplace("cim:ExcELIN1.xe", &assign_ExcELIN1_xe); + assign_map.emplace("ExcELIN1.dpnf", &assign_ExcELIN1_dpnf); + assign_map.emplace("ExcELIN1.efmax", &assign_ExcELIN1_efmax); + assign_map.emplace("ExcELIN1.efmin", &assign_ExcELIN1_efmin); + assign_map.emplace("ExcELIN1.ks1", &assign_ExcELIN1_ks1); + assign_map.emplace("ExcELIN1.ks2", &assign_ExcELIN1_ks2); + assign_map.emplace("ExcELIN1.smax", &assign_ExcELIN1_smax); + assign_map.emplace("ExcELIN1.tfi", &assign_ExcELIN1_tfi); + assign_map.emplace("ExcELIN1.tnu", &assign_ExcELIN1_tnu); + assign_map.emplace("ExcELIN1.ts1", &assign_ExcELIN1_ts1); + assign_map.emplace("ExcELIN1.ts2", &assign_ExcELIN1_ts2); + assign_map.emplace("ExcELIN1.tsw", &assign_ExcELIN1_tsw); + assign_map.emplace("ExcELIN1.vpi", &assign_ExcELIN1_vpi); + assign_map.emplace("ExcELIN1.vpnf", &assign_ExcELIN1_vpnf); + assign_map.emplace("ExcELIN1.vpu", &assign_ExcELIN1_vpu); + assign_map.emplace("ExcELIN1.xe", &assign_ExcELIN1_xe); } void ExcELIN1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void ExcELIN1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcELIN1.dpnf", &get_ExcELIN1_dpnf); - get_map.emplace("cim:ExcELIN1.efmax", &get_ExcELIN1_efmax); - get_map.emplace("cim:ExcELIN1.efmin", &get_ExcELIN1_efmin); - get_map.emplace("cim:ExcELIN1.ks1", &get_ExcELIN1_ks1); - get_map.emplace("cim:ExcELIN1.ks2", &get_ExcELIN1_ks2); - get_map.emplace("cim:ExcELIN1.smax", &get_ExcELIN1_smax); - get_map.emplace("cim:ExcELIN1.tfi", &get_ExcELIN1_tfi); - get_map.emplace("cim:ExcELIN1.tnu", &get_ExcELIN1_tnu); - get_map.emplace("cim:ExcELIN1.ts1", &get_ExcELIN1_ts1); - get_map.emplace("cim:ExcELIN1.ts2", &get_ExcELIN1_ts2); - get_map.emplace("cim:ExcELIN1.tsw", &get_ExcELIN1_tsw); - get_map.emplace("cim:ExcELIN1.vpi", &get_ExcELIN1_vpi); - get_map.emplace("cim:ExcELIN1.vpnf", &get_ExcELIN1_vpnf); - get_map.emplace("cim:ExcELIN1.vpu", &get_ExcELIN1_vpu); - get_map.emplace("cim:ExcELIN1.xe", &get_ExcELIN1_xe); + get_map.emplace("ExcELIN1.dpnf", &get_ExcELIN1_dpnf); + get_map.emplace("ExcELIN1.efmax", &get_ExcELIN1_efmax); + get_map.emplace("ExcELIN1.efmin", &get_ExcELIN1_efmin); + get_map.emplace("ExcELIN1.ks1", &get_ExcELIN1_ks1); + get_map.emplace("ExcELIN1.ks2", &get_ExcELIN1_ks2); + get_map.emplace("ExcELIN1.smax", &get_ExcELIN1_smax); + get_map.emplace("ExcELIN1.tfi", &get_ExcELIN1_tfi); + get_map.emplace("ExcELIN1.tnu", &get_ExcELIN1_tnu); + get_map.emplace("ExcELIN1.ts1", &get_ExcELIN1_ts1); + get_map.emplace("ExcELIN1.ts2", &get_ExcELIN1_ts2); + get_map.emplace("ExcELIN1.tsw", &get_ExcELIN1_tsw); + get_map.emplace("ExcELIN1.vpi", &get_ExcELIN1_vpi); + get_map.emplace("ExcELIN1.vpnf", &get_ExcELIN1_vpnf); + get_map.emplace("ExcELIN1.vpu", &get_ExcELIN1_vpu); + get_map.emplace("ExcELIN1.xe", &get_ExcELIN1_xe); } void ExcELIN1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void ExcELIN1::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcELIN1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcELIN1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcELIN1::declare() { return BaseClassDefiner(ExcELIN1::addConstructToMap, ExcELIN1::addPrimitiveAssignFnsToMap, ExcELIN1::addClassAssignFnsToMap, ExcELIN1::debugName); } +std::map ExcELIN1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcELIN1_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcELIN1.hpp b/CGMES_2.4.15_16FEB2016/ExcELIN1.hpp index 91e784ce6..83c524da0 100644 --- a/CGMES_2.4.15_16FEB2016/ExcELIN1.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcELIN1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcELIN1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcELIN2.cpp b/CGMES_2.4.15_16FEB2016/ExcELIN2.cpp index afd309820..27fe9469b 100644 --- a/CGMES_2.4.15_16FEB2016/ExcELIN2.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcELIN2.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcELIN2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcELIN2.efdbas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmax2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k1ec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.kd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ke2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ketb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.pid1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.te2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.tr4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.upmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.upmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.xp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcELIN2::ExcELIN2() {} ExcELIN2::~ExcELIN2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcELIN2.efdbas", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmax2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k1ec", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k3", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.kd1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ke2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ketb", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.pid1max", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.seve1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.seve2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.tb1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.te", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.te2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti3", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.tr4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.upmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.upmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ve1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ve2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.xp", { CGMESProfile::DY, } }, -}; - -std::list -ExcELIN2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcELIN2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcELIN2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcELIN2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcELIN2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcELIN2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcELIN2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcELIN2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcELIN2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcELIN2_efdbas(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* ExcELIN2::debugString() const void ExcELIN2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcELIN2", &ExcELIN2_factory); + factory_map.emplace("ExcELIN2", &ExcELIN2_factory); } void ExcELIN2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcELIN2.efdbas", &assign_ExcELIN2_efdbas); - assign_map.emplace("cim:ExcELIN2.iefmax", &assign_ExcELIN2_iefmax); - assign_map.emplace("cim:ExcELIN2.iefmax2", &assign_ExcELIN2_iefmax2); - assign_map.emplace("cim:ExcELIN2.iefmin", &assign_ExcELIN2_iefmin); - assign_map.emplace("cim:ExcELIN2.k1", &assign_ExcELIN2_k1); - assign_map.emplace("cim:ExcELIN2.k1ec", &assign_ExcELIN2_k1ec); - assign_map.emplace("cim:ExcELIN2.k2", &assign_ExcELIN2_k2); - assign_map.emplace("cim:ExcELIN2.k3", &assign_ExcELIN2_k3); - assign_map.emplace("cim:ExcELIN2.k4", &assign_ExcELIN2_k4); - assign_map.emplace("cim:ExcELIN2.kd1", &assign_ExcELIN2_kd1); - assign_map.emplace("cim:ExcELIN2.ke2", &assign_ExcELIN2_ke2); - assign_map.emplace("cim:ExcELIN2.ketb", &assign_ExcELIN2_ketb); - assign_map.emplace("cim:ExcELIN2.pid1max", &assign_ExcELIN2_pid1max); - assign_map.emplace("cim:ExcELIN2.seve1", &assign_ExcELIN2_seve1); - assign_map.emplace("cim:ExcELIN2.seve2", &assign_ExcELIN2_seve2); - assign_map.emplace("cim:ExcELIN2.tb1", &assign_ExcELIN2_tb1); - assign_map.emplace("cim:ExcELIN2.te", &assign_ExcELIN2_te); - assign_map.emplace("cim:ExcELIN2.te2", &assign_ExcELIN2_te2); - assign_map.emplace("cim:ExcELIN2.ti1", &assign_ExcELIN2_ti1); - assign_map.emplace("cim:ExcELIN2.ti3", &assign_ExcELIN2_ti3); - assign_map.emplace("cim:ExcELIN2.ti4", &assign_ExcELIN2_ti4); - assign_map.emplace("cim:ExcELIN2.tr4", &assign_ExcELIN2_tr4); - assign_map.emplace("cim:ExcELIN2.upmax", &assign_ExcELIN2_upmax); - assign_map.emplace("cim:ExcELIN2.upmin", &assign_ExcELIN2_upmin); - assign_map.emplace("cim:ExcELIN2.ve1", &assign_ExcELIN2_ve1); - assign_map.emplace("cim:ExcELIN2.ve2", &assign_ExcELIN2_ve2); - assign_map.emplace("cim:ExcELIN2.xp", &assign_ExcELIN2_xp); + assign_map.emplace("ExcELIN2.efdbas", &assign_ExcELIN2_efdbas); + assign_map.emplace("ExcELIN2.iefmax", &assign_ExcELIN2_iefmax); + assign_map.emplace("ExcELIN2.iefmax2", &assign_ExcELIN2_iefmax2); + assign_map.emplace("ExcELIN2.iefmin", &assign_ExcELIN2_iefmin); + assign_map.emplace("ExcELIN2.k1", &assign_ExcELIN2_k1); + assign_map.emplace("ExcELIN2.k1ec", &assign_ExcELIN2_k1ec); + assign_map.emplace("ExcELIN2.k2", &assign_ExcELIN2_k2); + assign_map.emplace("ExcELIN2.k3", &assign_ExcELIN2_k3); + assign_map.emplace("ExcELIN2.k4", &assign_ExcELIN2_k4); + assign_map.emplace("ExcELIN2.kd1", &assign_ExcELIN2_kd1); + assign_map.emplace("ExcELIN2.ke2", &assign_ExcELIN2_ke2); + assign_map.emplace("ExcELIN2.ketb", &assign_ExcELIN2_ketb); + assign_map.emplace("ExcELIN2.pid1max", &assign_ExcELIN2_pid1max); + assign_map.emplace("ExcELIN2.seve1", &assign_ExcELIN2_seve1); + assign_map.emplace("ExcELIN2.seve2", &assign_ExcELIN2_seve2); + assign_map.emplace("ExcELIN2.tb1", &assign_ExcELIN2_tb1); + assign_map.emplace("ExcELIN2.te", &assign_ExcELIN2_te); + assign_map.emplace("ExcELIN2.te2", &assign_ExcELIN2_te2); + assign_map.emplace("ExcELIN2.ti1", &assign_ExcELIN2_ti1); + assign_map.emplace("ExcELIN2.ti3", &assign_ExcELIN2_ti3); + assign_map.emplace("ExcELIN2.ti4", &assign_ExcELIN2_ti4); + assign_map.emplace("ExcELIN2.tr4", &assign_ExcELIN2_tr4); + assign_map.emplace("ExcELIN2.upmax", &assign_ExcELIN2_upmax); + assign_map.emplace("ExcELIN2.upmin", &assign_ExcELIN2_upmin); + assign_map.emplace("ExcELIN2.ve1", &assign_ExcELIN2_ve1); + assign_map.emplace("ExcELIN2.ve2", &assign_ExcELIN2_ve2); + assign_map.emplace("ExcELIN2.xp", &assign_ExcELIN2_xp); } void ExcELIN2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,33 +929,33 @@ void ExcELIN2::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcELIN2.efdbas", &get_ExcELIN2_efdbas); - get_map.emplace("cim:ExcELIN2.iefmax", &get_ExcELIN2_iefmax); - get_map.emplace("cim:ExcELIN2.iefmax2", &get_ExcELIN2_iefmax2); - get_map.emplace("cim:ExcELIN2.iefmin", &get_ExcELIN2_iefmin); - get_map.emplace("cim:ExcELIN2.k1", &get_ExcELIN2_k1); - get_map.emplace("cim:ExcELIN2.k1ec", &get_ExcELIN2_k1ec); - get_map.emplace("cim:ExcELIN2.k2", &get_ExcELIN2_k2); - get_map.emplace("cim:ExcELIN2.k3", &get_ExcELIN2_k3); - get_map.emplace("cim:ExcELIN2.k4", &get_ExcELIN2_k4); - get_map.emplace("cim:ExcELIN2.kd1", &get_ExcELIN2_kd1); - get_map.emplace("cim:ExcELIN2.ke2", &get_ExcELIN2_ke2); - get_map.emplace("cim:ExcELIN2.ketb", &get_ExcELIN2_ketb); - get_map.emplace("cim:ExcELIN2.pid1max", &get_ExcELIN2_pid1max); - get_map.emplace("cim:ExcELIN2.seve1", &get_ExcELIN2_seve1); - get_map.emplace("cim:ExcELIN2.seve2", &get_ExcELIN2_seve2); - get_map.emplace("cim:ExcELIN2.tb1", &get_ExcELIN2_tb1); - get_map.emplace("cim:ExcELIN2.te", &get_ExcELIN2_te); - get_map.emplace("cim:ExcELIN2.te2", &get_ExcELIN2_te2); - get_map.emplace("cim:ExcELIN2.ti1", &get_ExcELIN2_ti1); - get_map.emplace("cim:ExcELIN2.ti3", &get_ExcELIN2_ti3); - get_map.emplace("cim:ExcELIN2.ti4", &get_ExcELIN2_ti4); - get_map.emplace("cim:ExcELIN2.tr4", &get_ExcELIN2_tr4); - get_map.emplace("cim:ExcELIN2.upmax", &get_ExcELIN2_upmax); - get_map.emplace("cim:ExcELIN2.upmin", &get_ExcELIN2_upmin); - get_map.emplace("cim:ExcELIN2.ve1", &get_ExcELIN2_ve1); - get_map.emplace("cim:ExcELIN2.ve2", &get_ExcELIN2_ve2); - get_map.emplace("cim:ExcELIN2.xp", &get_ExcELIN2_xp); + get_map.emplace("ExcELIN2.efdbas", &get_ExcELIN2_efdbas); + get_map.emplace("ExcELIN2.iefmax", &get_ExcELIN2_iefmax); + get_map.emplace("ExcELIN2.iefmax2", &get_ExcELIN2_iefmax2); + get_map.emplace("ExcELIN2.iefmin", &get_ExcELIN2_iefmin); + get_map.emplace("ExcELIN2.k1", &get_ExcELIN2_k1); + get_map.emplace("ExcELIN2.k1ec", &get_ExcELIN2_k1ec); + get_map.emplace("ExcELIN2.k2", &get_ExcELIN2_k2); + get_map.emplace("ExcELIN2.k3", &get_ExcELIN2_k3); + get_map.emplace("ExcELIN2.k4", &get_ExcELIN2_k4); + get_map.emplace("ExcELIN2.kd1", &get_ExcELIN2_kd1); + get_map.emplace("ExcELIN2.ke2", &get_ExcELIN2_ke2); + get_map.emplace("ExcELIN2.ketb", &get_ExcELIN2_ketb); + get_map.emplace("ExcELIN2.pid1max", &get_ExcELIN2_pid1max); + get_map.emplace("ExcELIN2.seve1", &get_ExcELIN2_seve1); + get_map.emplace("ExcELIN2.seve2", &get_ExcELIN2_seve2); + get_map.emplace("ExcELIN2.tb1", &get_ExcELIN2_tb1); + get_map.emplace("ExcELIN2.te", &get_ExcELIN2_te); + get_map.emplace("ExcELIN2.te2", &get_ExcELIN2_te2); + get_map.emplace("ExcELIN2.ti1", &get_ExcELIN2_ti1); + get_map.emplace("ExcELIN2.ti3", &get_ExcELIN2_ti3); + get_map.emplace("ExcELIN2.ti4", &get_ExcELIN2_ti4); + get_map.emplace("ExcELIN2.tr4", &get_ExcELIN2_tr4); + get_map.emplace("ExcELIN2.upmax", &get_ExcELIN2_upmax); + get_map.emplace("ExcELIN2.upmin", &get_ExcELIN2_upmin); + get_map.emplace("ExcELIN2.ve1", &get_ExcELIN2_ve1); + get_map.emplace("ExcELIN2.ve2", &get_ExcELIN2_ve2); + get_map.emplace("ExcELIN2.xp", &get_ExcELIN2_xp); } void ExcELIN2::addClassGetFnsToMap(std::map& get_map) const @@ -936,11 +968,25 @@ void ExcELIN2::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcELIN2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcELIN2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcELIN2::declare() { return BaseClassDefiner(ExcELIN2::addConstructToMap, ExcELIN2::addPrimitiveAssignFnsToMap, ExcELIN2::addClassAssignFnsToMap, ExcELIN2::debugName); } +std::map ExcELIN2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcELIN2_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcELIN2.hpp b/CGMES_2.4.15_16FEB2016/ExcELIN2.hpp index b68685963..91d08a67e 100644 --- a/CGMES_2.4.15_16FEB2016/ExcELIN2.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcELIN2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -110,8 +111,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -119,7 +127,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcELIN2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcHU.cpp b/CGMES_2.4.15_16FEB2016/ExcHU.cpp index d00bf89d8..00ef6e590 100644 --- a/CGMES_2.4.15_16FEB2016/ExcHU.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcHU.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcHU(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcHU.ae", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ai", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.atr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.imax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.imin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcHU::ExcHU() {} ExcHU::~ExcHU() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcHU::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcHU::getClassNamespaceUrl() const { - { "cim:ExcHU.ae", { CGMESProfile::DY, } }, - { "cim:ExcHU.ai", { CGMESProfile::DY, } }, - { "cim:ExcHU.atr", { CGMESProfile::DY, } }, - { "cim:ExcHU.emax", { CGMESProfile::DY, } }, - { "cim:ExcHU.emin", { CGMESProfile::DY, } }, - { "cim:ExcHU.imax", { CGMESProfile::DY, } }, - { "cim:ExcHU.imin", { CGMESProfile::DY, } }, - { "cim:ExcHU.ke", { CGMESProfile::DY, } }, - { "cim:ExcHU.ki", { CGMESProfile::DY, } }, - { "cim:ExcHU.te", { CGMESProfile::DY, } }, - { "cim:ExcHU.ti", { CGMESProfile::DY, } }, - { "cim:ExcHU.tr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcHU::getPossibleProfilesForClass() const +const std::string& ExcHU::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcHU::getPossibleProfilesForAttributes() const +const std::list& ExcHU::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcHU::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcHU::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcHU::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcHU_ae(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcHU::debugString() const void ExcHU::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcHU", &ExcHU_factory); + factory_map.emplace("ExcHU", &ExcHU_factory); } void ExcHU::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcHU.ae", &assign_ExcHU_ae); - assign_map.emplace("cim:ExcHU.ai", &assign_ExcHU_ai); - assign_map.emplace("cim:ExcHU.atr", &assign_ExcHU_atr); - assign_map.emplace("cim:ExcHU.emax", &assign_ExcHU_emax); - assign_map.emplace("cim:ExcHU.emin", &assign_ExcHU_emin); - assign_map.emplace("cim:ExcHU.imax", &assign_ExcHU_imax); - assign_map.emplace("cim:ExcHU.imin", &assign_ExcHU_imin); - assign_map.emplace("cim:ExcHU.ke", &assign_ExcHU_ke); - assign_map.emplace("cim:ExcHU.ki", &assign_ExcHU_ki); - assign_map.emplace("cim:ExcHU.te", &assign_ExcHU_te); - assign_map.emplace("cim:ExcHU.ti", &assign_ExcHU_ti); - assign_map.emplace("cim:ExcHU.tr", &assign_ExcHU_tr); + assign_map.emplace("ExcHU.ae", &assign_ExcHU_ae); + assign_map.emplace("ExcHU.ai", &assign_ExcHU_ai); + assign_map.emplace("ExcHU.atr", &assign_ExcHU_atr); + assign_map.emplace("ExcHU.emax", &assign_ExcHU_emax); + assign_map.emplace("ExcHU.emin", &assign_ExcHU_emin); + assign_map.emplace("ExcHU.imax", &assign_ExcHU_imax); + assign_map.emplace("ExcHU.imin", &assign_ExcHU_imin); + assign_map.emplace("ExcHU.ke", &assign_ExcHU_ke); + assign_map.emplace("ExcHU.ki", &assign_ExcHU_ki); + assign_map.emplace("ExcHU.te", &assign_ExcHU_te); + assign_map.emplace("ExcHU.ti", &assign_ExcHU_ti); + assign_map.emplace("ExcHU.tr", &assign_ExcHU_tr); } void ExcHU::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcHU::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcHU.ae", &get_ExcHU_ae); - get_map.emplace("cim:ExcHU.ai", &get_ExcHU_ai); - get_map.emplace("cim:ExcHU.atr", &get_ExcHU_atr); - get_map.emplace("cim:ExcHU.emax", &get_ExcHU_emax); - get_map.emplace("cim:ExcHU.emin", &get_ExcHU_emin); - get_map.emplace("cim:ExcHU.imax", &get_ExcHU_imax); - get_map.emplace("cim:ExcHU.imin", &get_ExcHU_imin); - get_map.emplace("cim:ExcHU.ke", &get_ExcHU_ke); - get_map.emplace("cim:ExcHU.ki", &get_ExcHU_ki); - get_map.emplace("cim:ExcHU.te", &get_ExcHU_te); - get_map.emplace("cim:ExcHU.ti", &get_ExcHU_ti); - get_map.emplace("cim:ExcHU.tr", &get_ExcHU_tr); + get_map.emplace("ExcHU.ae", &get_ExcHU_ae); + get_map.emplace("ExcHU.ai", &get_ExcHU_ai); + get_map.emplace("ExcHU.atr", &get_ExcHU_atr); + get_map.emplace("ExcHU.emax", &get_ExcHU_emax); + get_map.emplace("ExcHU.emin", &get_ExcHU_emin); + get_map.emplace("ExcHU.imax", &get_ExcHU_imax); + get_map.emplace("ExcHU.imin", &get_ExcHU_imin); + get_map.emplace("ExcHU.ke", &get_ExcHU_ke); + get_map.emplace("ExcHU.ki", &get_ExcHU_ki); + get_map.emplace("ExcHU.te", &get_ExcHU_te); + get_map.emplace("ExcHU.ti", &get_ExcHU_ti); + get_map.emplace("ExcHU.tr", &get_ExcHU_tr); } void ExcHU::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcHU::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcHU::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcHU" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcHU::declare() { return BaseClassDefiner(ExcHU::addConstructToMap, ExcHU::addPrimitiveAssignFnsToMap, ExcHU::addClassAssignFnsToMap, ExcHU::debugName); } +std::map ExcHU::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcHU_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcHU.hpp b/CGMES_2.4.15_16FEB2016/ExcHU.hpp index 6e31eb84e..4f79f01b5 100644 --- a/CGMES_2.4.15_16FEB2016/ExcHU.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcHU.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcHU_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.cpp index 9b4889e3d..84179ef44 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC1A::ExcIEEEAC1A() {} ExcIEEEAC1A::~ExcIEEEAC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC1A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC1A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC1A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC1A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcIEEEAC1A::debugString() const void ExcIEEEAC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC1A", &ExcIEEEAC1A_factory); + factory_map.emplace("ExcIEEEAC1A", &ExcIEEEAC1A_factory); } void ExcIEEEAC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC1A.ka", &assign_ExcIEEEAC1A_ka); - assign_map.emplace("cim:ExcIEEEAC1A.kc", &assign_ExcIEEEAC1A_kc); - assign_map.emplace("cim:ExcIEEEAC1A.kd", &assign_ExcIEEEAC1A_kd); - assign_map.emplace("cim:ExcIEEEAC1A.ke", &assign_ExcIEEEAC1A_ke); - assign_map.emplace("cim:ExcIEEEAC1A.kf", &assign_ExcIEEEAC1A_kf); - assign_map.emplace("cim:ExcIEEEAC1A.seve1", &assign_ExcIEEEAC1A_seve1); - assign_map.emplace("cim:ExcIEEEAC1A.seve2", &assign_ExcIEEEAC1A_seve2); - assign_map.emplace("cim:ExcIEEEAC1A.ta", &assign_ExcIEEEAC1A_ta); - assign_map.emplace("cim:ExcIEEEAC1A.tb", &assign_ExcIEEEAC1A_tb); - assign_map.emplace("cim:ExcIEEEAC1A.tc", &assign_ExcIEEEAC1A_tc); - assign_map.emplace("cim:ExcIEEEAC1A.te", &assign_ExcIEEEAC1A_te); - assign_map.emplace("cim:ExcIEEEAC1A.tf", &assign_ExcIEEEAC1A_tf); - assign_map.emplace("cim:ExcIEEEAC1A.vamax", &assign_ExcIEEEAC1A_vamax); - assign_map.emplace("cim:ExcIEEEAC1A.vamin", &assign_ExcIEEEAC1A_vamin); - assign_map.emplace("cim:ExcIEEEAC1A.ve1", &assign_ExcIEEEAC1A_ve1); - assign_map.emplace("cim:ExcIEEEAC1A.ve2", &assign_ExcIEEEAC1A_ve2); - assign_map.emplace("cim:ExcIEEEAC1A.vrmax", &assign_ExcIEEEAC1A_vrmax); - assign_map.emplace("cim:ExcIEEEAC1A.vrmin", &assign_ExcIEEEAC1A_vrmin); + assign_map.emplace("ExcIEEEAC1A.ka", &assign_ExcIEEEAC1A_ka); + assign_map.emplace("ExcIEEEAC1A.kc", &assign_ExcIEEEAC1A_kc); + assign_map.emplace("ExcIEEEAC1A.kd", &assign_ExcIEEEAC1A_kd); + assign_map.emplace("ExcIEEEAC1A.ke", &assign_ExcIEEEAC1A_ke); + assign_map.emplace("ExcIEEEAC1A.kf", &assign_ExcIEEEAC1A_kf); + assign_map.emplace("ExcIEEEAC1A.seve1", &assign_ExcIEEEAC1A_seve1); + assign_map.emplace("ExcIEEEAC1A.seve2", &assign_ExcIEEEAC1A_seve2); + assign_map.emplace("ExcIEEEAC1A.ta", &assign_ExcIEEEAC1A_ta); + assign_map.emplace("ExcIEEEAC1A.tb", &assign_ExcIEEEAC1A_tb); + assign_map.emplace("ExcIEEEAC1A.tc", &assign_ExcIEEEAC1A_tc); + assign_map.emplace("ExcIEEEAC1A.te", &assign_ExcIEEEAC1A_te); + assign_map.emplace("ExcIEEEAC1A.tf", &assign_ExcIEEEAC1A_tf); + assign_map.emplace("ExcIEEEAC1A.vamax", &assign_ExcIEEEAC1A_vamax); + assign_map.emplace("ExcIEEEAC1A.vamin", &assign_ExcIEEEAC1A_vamin); + assign_map.emplace("ExcIEEEAC1A.ve1", &assign_ExcIEEEAC1A_ve1); + assign_map.emplace("ExcIEEEAC1A.ve2", &assign_ExcIEEEAC1A_ve2); + assign_map.emplace("ExcIEEEAC1A.vrmax", &assign_ExcIEEEAC1A_vrmax); + assign_map.emplace("ExcIEEEAC1A.vrmin", &assign_ExcIEEEAC1A_vrmin); } void ExcIEEEAC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcIEEEAC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC1A.ka", &get_ExcIEEEAC1A_ka); - get_map.emplace("cim:ExcIEEEAC1A.kc", &get_ExcIEEEAC1A_kc); - get_map.emplace("cim:ExcIEEEAC1A.kd", &get_ExcIEEEAC1A_kd); - get_map.emplace("cim:ExcIEEEAC1A.ke", &get_ExcIEEEAC1A_ke); - get_map.emplace("cim:ExcIEEEAC1A.kf", &get_ExcIEEEAC1A_kf); - get_map.emplace("cim:ExcIEEEAC1A.seve1", &get_ExcIEEEAC1A_seve1); - get_map.emplace("cim:ExcIEEEAC1A.seve2", &get_ExcIEEEAC1A_seve2); - get_map.emplace("cim:ExcIEEEAC1A.ta", &get_ExcIEEEAC1A_ta); - get_map.emplace("cim:ExcIEEEAC1A.tb", &get_ExcIEEEAC1A_tb); - get_map.emplace("cim:ExcIEEEAC1A.tc", &get_ExcIEEEAC1A_tc); - get_map.emplace("cim:ExcIEEEAC1A.te", &get_ExcIEEEAC1A_te); - get_map.emplace("cim:ExcIEEEAC1A.tf", &get_ExcIEEEAC1A_tf); - get_map.emplace("cim:ExcIEEEAC1A.vamax", &get_ExcIEEEAC1A_vamax); - get_map.emplace("cim:ExcIEEEAC1A.vamin", &get_ExcIEEEAC1A_vamin); - get_map.emplace("cim:ExcIEEEAC1A.ve1", &get_ExcIEEEAC1A_ve1); - get_map.emplace("cim:ExcIEEEAC1A.ve2", &get_ExcIEEEAC1A_ve2); - get_map.emplace("cim:ExcIEEEAC1A.vrmax", &get_ExcIEEEAC1A_vrmax); - get_map.emplace("cim:ExcIEEEAC1A.vrmin", &get_ExcIEEEAC1A_vrmin); + get_map.emplace("ExcIEEEAC1A.ka", &get_ExcIEEEAC1A_ka); + get_map.emplace("ExcIEEEAC1A.kc", &get_ExcIEEEAC1A_kc); + get_map.emplace("ExcIEEEAC1A.kd", &get_ExcIEEEAC1A_kd); + get_map.emplace("ExcIEEEAC1A.ke", &get_ExcIEEEAC1A_ke); + get_map.emplace("ExcIEEEAC1A.kf", &get_ExcIEEEAC1A_kf); + get_map.emplace("ExcIEEEAC1A.seve1", &get_ExcIEEEAC1A_seve1); + get_map.emplace("ExcIEEEAC1A.seve2", &get_ExcIEEEAC1A_seve2); + get_map.emplace("ExcIEEEAC1A.ta", &get_ExcIEEEAC1A_ta); + get_map.emplace("ExcIEEEAC1A.tb", &get_ExcIEEEAC1A_tb); + get_map.emplace("ExcIEEEAC1A.tc", &get_ExcIEEEAC1A_tc); + get_map.emplace("ExcIEEEAC1A.te", &get_ExcIEEEAC1A_te); + get_map.emplace("ExcIEEEAC1A.tf", &get_ExcIEEEAC1A_tf); + get_map.emplace("ExcIEEEAC1A.vamax", &get_ExcIEEEAC1A_vamax); + get_map.emplace("ExcIEEEAC1A.vamin", &get_ExcIEEEAC1A_vamin); + get_map.emplace("ExcIEEEAC1A.ve1", &get_ExcIEEEAC1A_ve1); + get_map.emplace("ExcIEEEAC1A.ve2", &get_ExcIEEEAC1A_ve2); + get_map.emplace("ExcIEEEAC1A.vrmax", &get_ExcIEEEAC1A_vrmax); + get_map.emplace("ExcIEEEAC1A.vrmin", &get_ExcIEEEAC1A_vrmin); } void ExcIEEEAC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcIEEEAC1A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC1A::declare() { return BaseClassDefiner(ExcIEEEAC1A::addConstructToMap, ExcIEEEAC1A::addPrimitiveAssignFnsToMap, ExcIEEEAC1A::addClassAssignFnsToMap, ExcIEEEAC1A::debugName); } +std::map ExcIEEEAC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.hpp index a3d32c72f..029fa51b8 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.cpp index a6f4da576..5531f988c 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC2A::ExcIEEEAC2A() {} ExcIEEEAC2A::~ExcIEEEAC2A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC2A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC2A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC2A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC2A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC2A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC2A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC2A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcIEEEAC2A::debugString() const void ExcIEEEAC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC2A", &ExcIEEEAC2A_factory); + factory_map.emplace("ExcIEEEAC2A", &ExcIEEEAC2A_factory); } void ExcIEEEAC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC2A.ka", &assign_ExcIEEEAC2A_ka); - assign_map.emplace("cim:ExcIEEEAC2A.kb", &assign_ExcIEEEAC2A_kb); - assign_map.emplace("cim:ExcIEEEAC2A.kc", &assign_ExcIEEEAC2A_kc); - assign_map.emplace("cim:ExcIEEEAC2A.kd", &assign_ExcIEEEAC2A_kd); - assign_map.emplace("cim:ExcIEEEAC2A.ke", &assign_ExcIEEEAC2A_ke); - assign_map.emplace("cim:ExcIEEEAC2A.kf", &assign_ExcIEEEAC2A_kf); - assign_map.emplace("cim:ExcIEEEAC2A.kh", &assign_ExcIEEEAC2A_kh); - assign_map.emplace("cim:ExcIEEEAC2A.seve1", &assign_ExcIEEEAC2A_seve1); - assign_map.emplace("cim:ExcIEEEAC2A.seve2", &assign_ExcIEEEAC2A_seve2); - assign_map.emplace("cim:ExcIEEEAC2A.ta", &assign_ExcIEEEAC2A_ta); - assign_map.emplace("cim:ExcIEEEAC2A.tb", &assign_ExcIEEEAC2A_tb); - assign_map.emplace("cim:ExcIEEEAC2A.tc", &assign_ExcIEEEAC2A_tc); - assign_map.emplace("cim:ExcIEEEAC2A.te", &assign_ExcIEEEAC2A_te); - assign_map.emplace("cim:ExcIEEEAC2A.tf", &assign_ExcIEEEAC2A_tf); - assign_map.emplace("cim:ExcIEEEAC2A.vamax", &assign_ExcIEEEAC2A_vamax); - assign_map.emplace("cim:ExcIEEEAC2A.vamin", &assign_ExcIEEEAC2A_vamin); - assign_map.emplace("cim:ExcIEEEAC2A.ve1", &assign_ExcIEEEAC2A_ve1); - assign_map.emplace("cim:ExcIEEEAC2A.ve2", &assign_ExcIEEEAC2A_ve2); - assign_map.emplace("cim:ExcIEEEAC2A.vfemax", &assign_ExcIEEEAC2A_vfemax); - assign_map.emplace("cim:ExcIEEEAC2A.vrmax", &assign_ExcIEEEAC2A_vrmax); - assign_map.emplace("cim:ExcIEEEAC2A.vrmin", &assign_ExcIEEEAC2A_vrmin); + assign_map.emplace("ExcIEEEAC2A.ka", &assign_ExcIEEEAC2A_ka); + assign_map.emplace("ExcIEEEAC2A.kb", &assign_ExcIEEEAC2A_kb); + assign_map.emplace("ExcIEEEAC2A.kc", &assign_ExcIEEEAC2A_kc); + assign_map.emplace("ExcIEEEAC2A.kd", &assign_ExcIEEEAC2A_kd); + assign_map.emplace("ExcIEEEAC2A.ke", &assign_ExcIEEEAC2A_ke); + assign_map.emplace("ExcIEEEAC2A.kf", &assign_ExcIEEEAC2A_kf); + assign_map.emplace("ExcIEEEAC2A.kh", &assign_ExcIEEEAC2A_kh); + assign_map.emplace("ExcIEEEAC2A.seve1", &assign_ExcIEEEAC2A_seve1); + assign_map.emplace("ExcIEEEAC2A.seve2", &assign_ExcIEEEAC2A_seve2); + assign_map.emplace("ExcIEEEAC2A.ta", &assign_ExcIEEEAC2A_ta); + assign_map.emplace("ExcIEEEAC2A.tb", &assign_ExcIEEEAC2A_tb); + assign_map.emplace("ExcIEEEAC2A.tc", &assign_ExcIEEEAC2A_tc); + assign_map.emplace("ExcIEEEAC2A.te", &assign_ExcIEEEAC2A_te); + assign_map.emplace("ExcIEEEAC2A.tf", &assign_ExcIEEEAC2A_tf); + assign_map.emplace("ExcIEEEAC2A.vamax", &assign_ExcIEEEAC2A_vamax); + assign_map.emplace("ExcIEEEAC2A.vamin", &assign_ExcIEEEAC2A_vamin); + assign_map.emplace("ExcIEEEAC2A.ve1", &assign_ExcIEEEAC2A_ve1); + assign_map.emplace("ExcIEEEAC2A.ve2", &assign_ExcIEEEAC2A_ve2); + assign_map.emplace("ExcIEEEAC2A.vfemax", &assign_ExcIEEEAC2A_vfemax); + assign_map.emplace("ExcIEEEAC2A.vrmax", &assign_ExcIEEEAC2A_vrmax); + assign_map.emplace("ExcIEEEAC2A.vrmin", &assign_ExcIEEEAC2A_vrmin); } void ExcIEEEAC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcIEEEAC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC2A.ka", &get_ExcIEEEAC2A_ka); - get_map.emplace("cim:ExcIEEEAC2A.kb", &get_ExcIEEEAC2A_kb); - get_map.emplace("cim:ExcIEEEAC2A.kc", &get_ExcIEEEAC2A_kc); - get_map.emplace("cim:ExcIEEEAC2A.kd", &get_ExcIEEEAC2A_kd); - get_map.emplace("cim:ExcIEEEAC2A.ke", &get_ExcIEEEAC2A_ke); - get_map.emplace("cim:ExcIEEEAC2A.kf", &get_ExcIEEEAC2A_kf); - get_map.emplace("cim:ExcIEEEAC2A.kh", &get_ExcIEEEAC2A_kh); - get_map.emplace("cim:ExcIEEEAC2A.seve1", &get_ExcIEEEAC2A_seve1); - get_map.emplace("cim:ExcIEEEAC2A.seve2", &get_ExcIEEEAC2A_seve2); - get_map.emplace("cim:ExcIEEEAC2A.ta", &get_ExcIEEEAC2A_ta); - get_map.emplace("cim:ExcIEEEAC2A.tb", &get_ExcIEEEAC2A_tb); - get_map.emplace("cim:ExcIEEEAC2A.tc", &get_ExcIEEEAC2A_tc); - get_map.emplace("cim:ExcIEEEAC2A.te", &get_ExcIEEEAC2A_te); - get_map.emplace("cim:ExcIEEEAC2A.tf", &get_ExcIEEEAC2A_tf); - get_map.emplace("cim:ExcIEEEAC2A.vamax", &get_ExcIEEEAC2A_vamax); - get_map.emplace("cim:ExcIEEEAC2A.vamin", &get_ExcIEEEAC2A_vamin); - get_map.emplace("cim:ExcIEEEAC2A.ve1", &get_ExcIEEEAC2A_ve1); - get_map.emplace("cim:ExcIEEEAC2A.ve2", &get_ExcIEEEAC2A_ve2); - get_map.emplace("cim:ExcIEEEAC2A.vfemax", &get_ExcIEEEAC2A_vfemax); - get_map.emplace("cim:ExcIEEEAC2A.vrmax", &get_ExcIEEEAC2A_vrmax); - get_map.emplace("cim:ExcIEEEAC2A.vrmin", &get_ExcIEEEAC2A_vrmin); + get_map.emplace("ExcIEEEAC2A.ka", &get_ExcIEEEAC2A_ka); + get_map.emplace("ExcIEEEAC2A.kb", &get_ExcIEEEAC2A_kb); + get_map.emplace("ExcIEEEAC2A.kc", &get_ExcIEEEAC2A_kc); + get_map.emplace("ExcIEEEAC2A.kd", &get_ExcIEEEAC2A_kd); + get_map.emplace("ExcIEEEAC2A.ke", &get_ExcIEEEAC2A_ke); + get_map.emplace("ExcIEEEAC2A.kf", &get_ExcIEEEAC2A_kf); + get_map.emplace("ExcIEEEAC2A.kh", &get_ExcIEEEAC2A_kh); + get_map.emplace("ExcIEEEAC2A.seve1", &get_ExcIEEEAC2A_seve1); + get_map.emplace("ExcIEEEAC2A.seve2", &get_ExcIEEEAC2A_seve2); + get_map.emplace("ExcIEEEAC2A.ta", &get_ExcIEEEAC2A_ta); + get_map.emplace("ExcIEEEAC2A.tb", &get_ExcIEEEAC2A_tb); + get_map.emplace("ExcIEEEAC2A.tc", &get_ExcIEEEAC2A_tc); + get_map.emplace("ExcIEEEAC2A.te", &get_ExcIEEEAC2A_te); + get_map.emplace("ExcIEEEAC2A.tf", &get_ExcIEEEAC2A_tf); + get_map.emplace("ExcIEEEAC2A.vamax", &get_ExcIEEEAC2A_vamax); + get_map.emplace("ExcIEEEAC2A.vamin", &get_ExcIEEEAC2A_vamin); + get_map.emplace("ExcIEEEAC2A.ve1", &get_ExcIEEEAC2A_ve1); + get_map.emplace("ExcIEEEAC2A.ve2", &get_ExcIEEEAC2A_ve2); + get_map.emplace("ExcIEEEAC2A.vfemax", &get_ExcIEEEAC2A_vfemax); + get_map.emplace("ExcIEEEAC2A.vrmax", &get_ExcIEEEAC2A_vrmax); + get_map.emplace("ExcIEEEAC2A.vrmin", &get_ExcIEEEAC2A_vrmin); } void ExcIEEEAC2A::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcIEEEAC2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC2A::declare() { return BaseClassDefiner(ExcIEEEAC2A::addConstructToMap, ExcIEEEAC2A::addPrimitiveAssignFnsToMap, ExcIEEEAC2A::addClassAssignFnsToMap, ExcIEEEAC2A::debugName); } +std::map ExcIEEEAC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC2A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.hpp index 77dc89d3e..a0ba000b4 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC2A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.cpp index a75fa053b..1f2b4e5c8 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC3A.efdn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC3A::ExcIEEEAC3A() {} ExcIEEEAC3A::~ExcIEEEAC3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC3A.efdn", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kn", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vfemax", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC3A_efdn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcIEEEAC3A::debugString() const void ExcIEEEAC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC3A", &ExcIEEEAC3A_factory); + factory_map.emplace("ExcIEEEAC3A", &ExcIEEEAC3A_factory); } void ExcIEEEAC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC3A.efdn", &assign_ExcIEEEAC3A_efdn); - assign_map.emplace("cim:ExcIEEEAC3A.ka", &assign_ExcIEEEAC3A_ka); - assign_map.emplace("cim:ExcIEEEAC3A.kc", &assign_ExcIEEEAC3A_kc); - assign_map.emplace("cim:ExcIEEEAC3A.kd", &assign_ExcIEEEAC3A_kd); - assign_map.emplace("cim:ExcIEEEAC3A.ke", &assign_ExcIEEEAC3A_ke); - assign_map.emplace("cim:ExcIEEEAC3A.kf", &assign_ExcIEEEAC3A_kf); - assign_map.emplace("cim:ExcIEEEAC3A.kn", &assign_ExcIEEEAC3A_kn); - assign_map.emplace("cim:ExcIEEEAC3A.kr", &assign_ExcIEEEAC3A_kr); - assign_map.emplace("cim:ExcIEEEAC3A.seve1", &assign_ExcIEEEAC3A_seve1); - assign_map.emplace("cim:ExcIEEEAC3A.seve2", &assign_ExcIEEEAC3A_seve2); - assign_map.emplace("cim:ExcIEEEAC3A.ta", &assign_ExcIEEEAC3A_ta); - assign_map.emplace("cim:ExcIEEEAC3A.tb", &assign_ExcIEEEAC3A_tb); - assign_map.emplace("cim:ExcIEEEAC3A.tc", &assign_ExcIEEEAC3A_tc); - assign_map.emplace("cim:ExcIEEEAC3A.te", &assign_ExcIEEEAC3A_te); - assign_map.emplace("cim:ExcIEEEAC3A.tf", &assign_ExcIEEEAC3A_tf); - assign_map.emplace("cim:ExcIEEEAC3A.vamax", &assign_ExcIEEEAC3A_vamax); - assign_map.emplace("cim:ExcIEEEAC3A.vamin", &assign_ExcIEEEAC3A_vamin); - assign_map.emplace("cim:ExcIEEEAC3A.ve1", &assign_ExcIEEEAC3A_ve1); - assign_map.emplace("cim:ExcIEEEAC3A.ve2", &assign_ExcIEEEAC3A_ve2); - assign_map.emplace("cim:ExcIEEEAC3A.vemin", &assign_ExcIEEEAC3A_vemin); - assign_map.emplace("cim:ExcIEEEAC3A.vfemax", &assign_ExcIEEEAC3A_vfemax); + assign_map.emplace("ExcIEEEAC3A.efdn", &assign_ExcIEEEAC3A_efdn); + assign_map.emplace("ExcIEEEAC3A.ka", &assign_ExcIEEEAC3A_ka); + assign_map.emplace("ExcIEEEAC3A.kc", &assign_ExcIEEEAC3A_kc); + assign_map.emplace("ExcIEEEAC3A.kd", &assign_ExcIEEEAC3A_kd); + assign_map.emplace("ExcIEEEAC3A.ke", &assign_ExcIEEEAC3A_ke); + assign_map.emplace("ExcIEEEAC3A.kf", &assign_ExcIEEEAC3A_kf); + assign_map.emplace("ExcIEEEAC3A.kn", &assign_ExcIEEEAC3A_kn); + assign_map.emplace("ExcIEEEAC3A.kr", &assign_ExcIEEEAC3A_kr); + assign_map.emplace("ExcIEEEAC3A.seve1", &assign_ExcIEEEAC3A_seve1); + assign_map.emplace("ExcIEEEAC3A.seve2", &assign_ExcIEEEAC3A_seve2); + assign_map.emplace("ExcIEEEAC3A.ta", &assign_ExcIEEEAC3A_ta); + assign_map.emplace("ExcIEEEAC3A.tb", &assign_ExcIEEEAC3A_tb); + assign_map.emplace("ExcIEEEAC3A.tc", &assign_ExcIEEEAC3A_tc); + assign_map.emplace("ExcIEEEAC3A.te", &assign_ExcIEEEAC3A_te); + assign_map.emplace("ExcIEEEAC3A.tf", &assign_ExcIEEEAC3A_tf); + assign_map.emplace("ExcIEEEAC3A.vamax", &assign_ExcIEEEAC3A_vamax); + assign_map.emplace("ExcIEEEAC3A.vamin", &assign_ExcIEEEAC3A_vamin); + assign_map.emplace("ExcIEEEAC3A.ve1", &assign_ExcIEEEAC3A_ve1); + assign_map.emplace("ExcIEEEAC3A.ve2", &assign_ExcIEEEAC3A_ve2); + assign_map.emplace("ExcIEEEAC3A.vemin", &assign_ExcIEEEAC3A_vemin); + assign_map.emplace("ExcIEEEAC3A.vfemax", &assign_ExcIEEEAC3A_vfemax); } void ExcIEEEAC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcIEEEAC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC3A.efdn", &get_ExcIEEEAC3A_efdn); - get_map.emplace("cim:ExcIEEEAC3A.ka", &get_ExcIEEEAC3A_ka); - get_map.emplace("cim:ExcIEEEAC3A.kc", &get_ExcIEEEAC3A_kc); - get_map.emplace("cim:ExcIEEEAC3A.kd", &get_ExcIEEEAC3A_kd); - get_map.emplace("cim:ExcIEEEAC3A.ke", &get_ExcIEEEAC3A_ke); - get_map.emplace("cim:ExcIEEEAC3A.kf", &get_ExcIEEEAC3A_kf); - get_map.emplace("cim:ExcIEEEAC3A.kn", &get_ExcIEEEAC3A_kn); - get_map.emplace("cim:ExcIEEEAC3A.kr", &get_ExcIEEEAC3A_kr); - get_map.emplace("cim:ExcIEEEAC3A.seve1", &get_ExcIEEEAC3A_seve1); - get_map.emplace("cim:ExcIEEEAC3A.seve2", &get_ExcIEEEAC3A_seve2); - get_map.emplace("cim:ExcIEEEAC3A.ta", &get_ExcIEEEAC3A_ta); - get_map.emplace("cim:ExcIEEEAC3A.tb", &get_ExcIEEEAC3A_tb); - get_map.emplace("cim:ExcIEEEAC3A.tc", &get_ExcIEEEAC3A_tc); - get_map.emplace("cim:ExcIEEEAC3A.te", &get_ExcIEEEAC3A_te); - get_map.emplace("cim:ExcIEEEAC3A.tf", &get_ExcIEEEAC3A_tf); - get_map.emplace("cim:ExcIEEEAC3A.vamax", &get_ExcIEEEAC3A_vamax); - get_map.emplace("cim:ExcIEEEAC3A.vamin", &get_ExcIEEEAC3A_vamin); - get_map.emplace("cim:ExcIEEEAC3A.ve1", &get_ExcIEEEAC3A_ve1); - get_map.emplace("cim:ExcIEEEAC3A.ve2", &get_ExcIEEEAC3A_ve2); - get_map.emplace("cim:ExcIEEEAC3A.vemin", &get_ExcIEEEAC3A_vemin); - get_map.emplace("cim:ExcIEEEAC3A.vfemax", &get_ExcIEEEAC3A_vfemax); + get_map.emplace("ExcIEEEAC3A.efdn", &get_ExcIEEEAC3A_efdn); + get_map.emplace("ExcIEEEAC3A.ka", &get_ExcIEEEAC3A_ka); + get_map.emplace("ExcIEEEAC3A.kc", &get_ExcIEEEAC3A_kc); + get_map.emplace("ExcIEEEAC3A.kd", &get_ExcIEEEAC3A_kd); + get_map.emplace("ExcIEEEAC3A.ke", &get_ExcIEEEAC3A_ke); + get_map.emplace("ExcIEEEAC3A.kf", &get_ExcIEEEAC3A_kf); + get_map.emplace("ExcIEEEAC3A.kn", &get_ExcIEEEAC3A_kn); + get_map.emplace("ExcIEEEAC3A.kr", &get_ExcIEEEAC3A_kr); + get_map.emplace("ExcIEEEAC3A.seve1", &get_ExcIEEEAC3A_seve1); + get_map.emplace("ExcIEEEAC3A.seve2", &get_ExcIEEEAC3A_seve2); + get_map.emplace("ExcIEEEAC3A.ta", &get_ExcIEEEAC3A_ta); + get_map.emplace("ExcIEEEAC3A.tb", &get_ExcIEEEAC3A_tb); + get_map.emplace("ExcIEEEAC3A.tc", &get_ExcIEEEAC3A_tc); + get_map.emplace("ExcIEEEAC3A.te", &get_ExcIEEEAC3A_te); + get_map.emplace("ExcIEEEAC3A.tf", &get_ExcIEEEAC3A_tf); + get_map.emplace("ExcIEEEAC3A.vamax", &get_ExcIEEEAC3A_vamax); + get_map.emplace("ExcIEEEAC3A.vamin", &get_ExcIEEEAC3A_vamin); + get_map.emplace("ExcIEEEAC3A.ve1", &get_ExcIEEEAC3A_ve1); + get_map.emplace("ExcIEEEAC3A.ve2", &get_ExcIEEEAC3A_ve2); + get_map.emplace("ExcIEEEAC3A.vemin", &get_ExcIEEEAC3A_vemin); + get_map.emplace("ExcIEEEAC3A.vfemax", &get_ExcIEEEAC3A_vfemax); } void ExcIEEEAC3A::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcIEEEAC3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC3A::declare() { return BaseClassDefiner(ExcIEEEAC3A::addConstructToMap, ExcIEEEAC3A::addPrimitiveAssignFnsToMap, ExcIEEEAC3A::addClassAssignFnsToMap, ExcIEEEAC3A::debugName); } +std::map ExcIEEEAC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC3A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.hpp index 569f22c12..dac608284 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC3A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.cpp index e1510a699..2e727b4c8 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC4A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC4A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC4A::ExcIEEEAC4A() {} ExcIEEEAC4A::~ExcIEEEAC4A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC4A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC4A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC4A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC4A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC4A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC4A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC4A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC4A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC4A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC4A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC4A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ExcIEEEAC4A::debugString() const void ExcIEEEAC4A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC4A", &ExcIEEEAC4A_factory); + factory_map.emplace("ExcIEEEAC4A", &ExcIEEEAC4A_factory); } void ExcIEEEAC4A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC4A.ka", &assign_ExcIEEEAC4A_ka); - assign_map.emplace("cim:ExcIEEEAC4A.kc", &assign_ExcIEEEAC4A_kc); - assign_map.emplace("cim:ExcIEEEAC4A.ta", &assign_ExcIEEEAC4A_ta); - assign_map.emplace("cim:ExcIEEEAC4A.tb", &assign_ExcIEEEAC4A_tb); - assign_map.emplace("cim:ExcIEEEAC4A.tc", &assign_ExcIEEEAC4A_tc); - assign_map.emplace("cim:ExcIEEEAC4A.vimax", &assign_ExcIEEEAC4A_vimax); - assign_map.emplace("cim:ExcIEEEAC4A.vimin", &assign_ExcIEEEAC4A_vimin); - assign_map.emplace("cim:ExcIEEEAC4A.vrmax", &assign_ExcIEEEAC4A_vrmax); - assign_map.emplace("cim:ExcIEEEAC4A.vrmin", &assign_ExcIEEEAC4A_vrmin); + assign_map.emplace("ExcIEEEAC4A.ka", &assign_ExcIEEEAC4A_ka); + assign_map.emplace("ExcIEEEAC4A.kc", &assign_ExcIEEEAC4A_kc); + assign_map.emplace("ExcIEEEAC4A.ta", &assign_ExcIEEEAC4A_ta); + assign_map.emplace("ExcIEEEAC4A.tb", &assign_ExcIEEEAC4A_tb); + assign_map.emplace("ExcIEEEAC4A.tc", &assign_ExcIEEEAC4A_tc); + assign_map.emplace("ExcIEEEAC4A.vimax", &assign_ExcIEEEAC4A_vimax); + assign_map.emplace("ExcIEEEAC4A.vimin", &assign_ExcIEEEAC4A_vimin); + assign_map.emplace("ExcIEEEAC4A.vrmax", &assign_ExcIEEEAC4A_vrmax); + assign_map.emplace("ExcIEEEAC4A.vrmin", &assign_ExcIEEEAC4A_vrmin); } void ExcIEEEAC4A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ExcIEEEAC4A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC4A.ka", &get_ExcIEEEAC4A_ka); - get_map.emplace("cim:ExcIEEEAC4A.kc", &get_ExcIEEEAC4A_kc); - get_map.emplace("cim:ExcIEEEAC4A.ta", &get_ExcIEEEAC4A_ta); - get_map.emplace("cim:ExcIEEEAC4A.tb", &get_ExcIEEEAC4A_tb); - get_map.emplace("cim:ExcIEEEAC4A.tc", &get_ExcIEEEAC4A_tc); - get_map.emplace("cim:ExcIEEEAC4A.vimax", &get_ExcIEEEAC4A_vimax); - get_map.emplace("cim:ExcIEEEAC4A.vimin", &get_ExcIEEEAC4A_vimin); - get_map.emplace("cim:ExcIEEEAC4A.vrmax", &get_ExcIEEEAC4A_vrmax); - get_map.emplace("cim:ExcIEEEAC4A.vrmin", &get_ExcIEEEAC4A_vrmin); + get_map.emplace("ExcIEEEAC4A.ka", &get_ExcIEEEAC4A_ka); + get_map.emplace("ExcIEEEAC4A.kc", &get_ExcIEEEAC4A_kc); + get_map.emplace("ExcIEEEAC4A.ta", &get_ExcIEEEAC4A_ta); + get_map.emplace("ExcIEEEAC4A.tb", &get_ExcIEEEAC4A_tb); + get_map.emplace("ExcIEEEAC4A.tc", &get_ExcIEEEAC4A_tc); + get_map.emplace("ExcIEEEAC4A.vimax", &get_ExcIEEEAC4A_vimax); + get_map.emplace("ExcIEEEAC4A.vimin", &get_ExcIEEEAC4A_vimin); + get_map.emplace("ExcIEEEAC4A.vrmax", &get_ExcIEEEAC4A_vrmax); + get_map.emplace("ExcIEEEAC4A.vrmin", &get_ExcIEEEAC4A_vrmin); } void ExcIEEEAC4A::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ExcIEEEAC4A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC4A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC4A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC4A::declare() { return BaseClassDefiner(ExcIEEEAC4A::addConstructToMap, ExcIEEEAC4A::addPrimitiveAssignFnsToMap, ExcIEEEAC4A::addClassAssignFnsToMap, ExcIEEEAC4A::debugName); } +std::map ExcIEEEAC4A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC4A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.hpp index afdfb2fe2..0c7b02701 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC4A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC4A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.cpp index 8187407bd..7a19c674b 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC5A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC5A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC5A::ExcIEEEAC5A() {} ExcIEEEAC5A::~ExcIEEEAC5A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC5A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC5A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC5A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf3", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC5A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC5A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC5A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC5A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC5A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC5A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC5A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC5A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcIEEEAC5A::debugString() const void ExcIEEEAC5A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC5A", &ExcIEEEAC5A_factory); + factory_map.emplace("ExcIEEEAC5A", &ExcIEEEAC5A_factory); } void ExcIEEEAC5A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC5A.efd1", &assign_ExcIEEEAC5A_efd1); - assign_map.emplace("cim:ExcIEEEAC5A.efd2", &assign_ExcIEEEAC5A_efd2); - assign_map.emplace("cim:ExcIEEEAC5A.ka", &assign_ExcIEEEAC5A_ka); - assign_map.emplace("cim:ExcIEEEAC5A.ke", &assign_ExcIEEEAC5A_ke); - assign_map.emplace("cim:ExcIEEEAC5A.kf", &assign_ExcIEEEAC5A_kf); - assign_map.emplace("cim:ExcIEEEAC5A.seefd1", &assign_ExcIEEEAC5A_seefd1); - assign_map.emplace("cim:ExcIEEEAC5A.seefd2", &assign_ExcIEEEAC5A_seefd2); - assign_map.emplace("cim:ExcIEEEAC5A.ta", &assign_ExcIEEEAC5A_ta); - assign_map.emplace("cim:ExcIEEEAC5A.te", &assign_ExcIEEEAC5A_te); - assign_map.emplace("cim:ExcIEEEAC5A.tf1", &assign_ExcIEEEAC5A_tf1); - assign_map.emplace("cim:ExcIEEEAC5A.tf2", &assign_ExcIEEEAC5A_tf2); - assign_map.emplace("cim:ExcIEEEAC5A.tf3", &assign_ExcIEEEAC5A_tf3); - assign_map.emplace("cim:ExcIEEEAC5A.vrmax", &assign_ExcIEEEAC5A_vrmax); - assign_map.emplace("cim:ExcIEEEAC5A.vrmin", &assign_ExcIEEEAC5A_vrmin); + assign_map.emplace("ExcIEEEAC5A.efd1", &assign_ExcIEEEAC5A_efd1); + assign_map.emplace("ExcIEEEAC5A.efd2", &assign_ExcIEEEAC5A_efd2); + assign_map.emplace("ExcIEEEAC5A.ka", &assign_ExcIEEEAC5A_ka); + assign_map.emplace("ExcIEEEAC5A.ke", &assign_ExcIEEEAC5A_ke); + assign_map.emplace("ExcIEEEAC5A.kf", &assign_ExcIEEEAC5A_kf); + assign_map.emplace("ExcIEEEAC5A.seefd1", &assign_ExcIEEEAC5A_seefd1); + assign_map.emplace("ExcIEEEAC5A.seefd2", &assign_ExcIEEEAC5A_seefd2); + assign_map.emplace("ExcIEEEAC5A.ta", &assign_ExcIEEEAC5A_ta); + assign_map.emplace("ExcIEEEAC5A.te", &assign_ExcIEEEAC5A_te); + assign_map.emplace("ExcIEEEAC5A.tf1", &assign_ExcIEEEAC5A_tf1); + assign_map.emplace("ExcIEEEAC5A.tf2", &assign_ExcIEEEAC5A_tf2); + assign_map.emplace("ExcIEEEAC5A.tf3", &assign_ExcIEEEAC5A_tf3); + assign_map.emplace("ExcIEEEAC5A.vrmax", &assign_ExcIEEEAC5A_vrmax); + assign_map.emplace("ExcIEEEAC5A.vrmin", &assign_ExcIEEEAC5A_vrmin); } void ExcIEEEAC5A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcIEEEAC5A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC5A.efd1", &get_ExcIEEEAC5A_efd1); - get_map.emplace("cim:ExcIEEEAC5A.efd2", &get_ExcIEEEAC5A_efd2); - get_map.emplace("cim:ExcIEEEAC5A.ka", &get_ExcIEEEAC5A_ka); - get_map.emplace("cim:ExcIEEEAC5A.ke", &get_ExcIEEEAC5A_ke); - get_map.emplace("cim:ExcIEEEAC5A.kf", &get_ExcIEEEAC5A_kf); - get_map.emplace("cim:ExcIEEEAC5A.seefd1", &get_ExcIEEEAC5A_seefd1); - get_map.emplace("cim:ExcIEEEAC5A.seefd2", &get_ExcIEEEAC5A_seefd2); - get_map.emplace("cim:ExcIEEEAC5A.ta", &get_ExcIEEEAC5A_ta); - get_map.emplace("cim:ExcIEEEAC5A.te", &get_ExcIEEEAC5A_te); - get_map.emplace("cim:ExcIEEEAC5A.tf1", &get_ExcIEEEAC5A_tf1); - get_map.emplace("cim:ExcIEEEAC5A.tf2", &get_ExcIEEEAC5A_tf2); - get_map.emplace("cim:ExcIEEEAC5A.tf3", &get_ExcIEEEAC5A_tf3); - get_map.emplace("cim:ExcIEEEAC5A.vrmax", &get_ExcIEEEAC5A_vrmax); - get_map.emplace("cim:ExcIEEEAC5A.vrmin", &get_ExcIEEEAC5A_vrmin); + get_map.emplace("ExcIEEEAC5A.efd1", &get_ExcIEEEAC5A_efd1); + get_map.emplace("ExcIEEEAC5A.efd2", &get_ExcIEEEAC5A_efd2); + get_map.emplace("ExcIEEEAC5A.ka", &get_ExcIEEEAC5A_ka); + get_map.emplace("ExcIEEEAC5A.ke", &get_ExcIEEEAC5A_ke); + get_map.emplace("ExcIEEEAC5A.kf", &get_ExcIEEEAC5A_kf); + get_map.emplace("ExcIEEEAC5A.seefd1", &get_ExcIEEEAC5A_seefd1); + get_map.emplace("ExcIEEEAC5A.seefd2", &get_ExcIEEEAC5A_seefd2); + get_map.emplace("ExcIEEEAC5A.ta", &get_ExcIEEEAC5A_ta); + get_map.emplace("ExcIEEEAC5A.te", &get_ExcIEEEAC5A_te); + get_map.emplace("ExcIEEEAC5A.tf1", &get_ExcIEEEAC5A_tf1); + get_map.emplace("ExcIEEEAC5A.tf2", &get_ExcIEEEAC5A_tf2); + get_map.emplace("ExcIEEEAC5A.tf3", &get_ExcIEEEAC5A_tf3); + get_map.emplace("ExcIEEEAC5A.vrmax", &get_ExcIEEEAC5A_vrmax); + get_map.emplace("ExcIEEEAC5A.vrmin", &get_ExcIEEEAC5A_vrmin); } void ExcIEEEAC5A::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcIEEEAC5A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC5A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC5A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC5A::declare() { return BaseClassDefiner(ExcIEEEAC5A::addConstructToMap, ExcIEEEAC5A::addPrimitiveAssignFnsToMap, ExcIEEEAC5A::addClassAssignFnsToMap, ExcIEEEAC5A::debugName); } +std::map ExcIEEEAC5A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC5A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.hpp index 53b26311c..d1827ea37 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC5A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC5A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.cpp index cf956daff..987fb3595 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC6A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC6A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.th", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vfelim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC6A::ExcIEEEAC6A() {} ExcIEEEAC6A::~ExcIEEEAC6A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC6A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.th", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tj", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tk", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vfelim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vhmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC6A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC6A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC6A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC6A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC6A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC6A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC6A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC6A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC6A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC6A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* ExcIEEEAC6A::debugString() const void ExcIEEEAC6A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC6A", &ExcIEEEAC6A_factory); + factory_map.emplace("ExcIEEEAC6A", &ExcIEEEAC6A_factory); } void ExcIEEEAC6A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC6A.ka", &assign_ExcIEEEAC6A_ka); - assign_map.emplace("cim:ExcIEEEAC6A.kc", &assign_ExcIEEEAC6A_kc); - assign_map.emplace("cim:ExcIEEEAC6A.kd", &assign_ExcIEEEAC6A_kd); - assign_map.emplace("cim:ExcIEEEAC6A.ke", &assign_ExcIEEEAC6A_ke); - assign_map.emplace("cim:ExcIEEEAC6A.kh", &assign_ExcIEEEAC6A_kh); - assign_map.emplace("cim:ExcIEEEAC6A.seve1", &assign_ExcIEEEAC6A_seve1); - assign_map.emplace("cim:ExcIEEEAC6A.seve2", &assign_ExcIEEEAC6A_seve2); - assign_map.emplace("cim:ExcIEEEAC6A.ta", &assign_ExcIEEEAC6A_ta); - assign_map.emplace("cim:ExcIEEEAC6A.tb", &assign_ExcIEEEAC6A_tb); - assign_map.emplace("cim:ExcIEEEAC6A.tc", &assign_ExcIEEEAC6A_tc); - assign_map.emplace("cim:ExcIEEEAC6A.te", &assign_ExcIEEEAC6A_te); - assign_map.emplace("cim:ExcIEEEAC6A.th", &assign_ExcIEEEAC6A_th); - assign_map.emplace("cim:ExcIEEEAC6A.tj", &assign_ExcIEEEAC6A_tj); - assign_map.emplace("cim:ExcIEEEAC6A.tk", &assign_ExcIEEEAC6A_tk); - assign_map.emplace("cim:ExcIEEEAC6A.vamax", &assign_ExcIEEEAC6A_vamax); - assign_map.emplace("cim:ExcIEEEAC6A.vamin", &assign_ExcIEEEAC6A_vamin); - assign_map.emplace("cim:ExcIEEEAC6A.ve1", &assign_ExcIEEEAC6A_ve1); - assign_map.emplace("cim:ExcIEEEAC6A.ve2", &assign_ExcIEEEAC6A_ve2); - assign_map.emplace("cim:ExcIEEEAC6A.vfelim", &assign_ExcIEEEAC6A_vfelim); - assign_map.emplace("cim:ExcIEEEAC6A.vhmax", &assign_ExcIEEEAC6A_vhmax); - assign_map.emplace("cim:ExcIEEEAC6A.vrmax", &assign_ExcIEEEAC6A_vrmax); - assign_map.emplace("cim:ExcIEEEAC6A.vrmin", &assign_ExcIEEEAC6A_vrmin); + assign_map.emplace("ExcIEEEAC6A.ka", &assign_ExcIEEEAC6A_ka); + assign_map.emplace("ExcIEEEAC6A.kc", &assign_ExcIEEEAC6A_kc); + assign_map.emplace("ExcIEEEAC6A.kd", &assign_ExcIEEEAC6A_kd); + assign_map.emplace("ExcIEEEAC6A.ke", &assign_ExcIEEEAC6A_ke); + assign_map.emplace("ExcIEEEAC6A.kh", &assign_ExcIEEEAC6A_kh); + assign_map.emplace("ExcIEEEAC6A.seve1", &assign_ExcIEEEAC6A_seve1); + assign_map.emplace("ExcIEEEAC6A.seve2", &assign_ExcIEEEAC6A_seve2); + assign_map.emplace("ExcIEEEAC6A.ta", &assign_ExcIEEEAC6A_ta); + assign_map.emplace("ExcIEEEAC6A.tb", &assign_ExcIEEEAC6A_tb); + assign_map.emplace("ExcIEEEAC6A.tc", &assign_ExcIEEEAC6A_tc); + assign_map.emplace("ExcIEEEAC6A.te", &assign_ExcIEEEAC6A_te); + assign_map.emplace("ExcIEEEAC6A.th", &assign_ExcIEEEAC6A_th); + assign_map.emplace("ExcIEEEAC6A.tj", &assign_ExcIEEEAC6A_tj); + assign_map.emplace("ExcIEEEAC6A.tk", &assign_ExcIEEEAC6A_tk); + assign_map.emplace("ExcIEEEAC6A.vamax", &assign_ExcIEEEAC6A_vamax); + assign_map.emplace("ExcIEEEAC6A.vamin", &assign_ExcIEEEAC6A_vamin); + assign_map.emplace("ExcIEEEAC6A.ve1", &assign_ExcIEEEAC6A_ve1); + assign_map.emplace("ExcIEEEAC6A.ve2", &assign_ExcIEEEAC6A_ve2); + assign_map.emplace("ExcIEEEAC6A.vfelim", &assign_ExcIEEEAC6A_vfelim); + assign_map.emplace("ExcIEEEAC6A.vhmax", &assign_ExcIEEEAC6A_vhmax); + assign_map.emplace("ExcIEEEAC6A.vrmax", &assign_ExcIEEEAC6A_vrmax); + assign_map.emplace("ExcIEEEAC6A.vrmin", &assign_ExcIEEEAC6A_vrmin); } void ExcIEEEAC6A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void ExcIEEEAC6A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC6A.ka", &get_ExcIEEEAC6A_ka); - get_map.emplace("cim:ExcIEEEAC6A.kc", &get_ExcIEEEAC6A_kc); - get_map.emplace("cim:ExcIEEEAC6A.kd", &get_ExcIEEEAC6A_kd); - get_map.emplace("cim:ExcIEEEAC6A.ke", &get_ExcIEEEAC6A_ke); - get_map.emplace("cim:ExcIEEEAC6A.kh", &get_ExcIEEEAC6A_kh); - get_map.emplace("cim:ExcIEEEAC6A.seve1", &get_ExcIEEEAC6A_seve1); - get_map.emplace("cim:ExcIEEEAC6A.seve2", &get_ExcIEEEAC6A_seve2); - get_map.emplace("cim:ExcIEEEAC6A.ta", &get_ExcIEEEAC6A_ta); - get_map.emplace("cim:ExcIEEEAC6A.tb", &get_ExcIEEEAC6A_tb); - get_map.emplace("cim:ExcIEEEAC6A.tc", &get_ExcIEEEAC6A_tc); - get_map.emplace("cim:ExcIEEEAC6A.te", &get_ExcIEEEAC6A_te); - get_map.emplace("cim:ExcIEEEAC6A.th", &get_ExcIEEEAC6A_th); - get_map.emplace("cim:ExcIEEEAC6A.tj", &get_ExcIEEEAC6A_tj); - get_map.emplace("cim:ExcIEEEAC6A.tk", &get_ExcIEEEAC6A_tk); - get_map.emplace("cim:ExcIEEEAC6A.vamax", &get_ExcIEEEAC6A_vamax); - get_map.emplace("cim:ExcIEEEAC6A.vamin", &get_ExcIEEEAC6A_vamin); - get_map.emplace("cim:ExcIEEEAC6A.ve1", &get_ExcIEEEAC6A_ve1); - get_map.emplace("cim:ExcIEEEAC6A.ve2", &get_ExcIEEEAC6A_ve2); - get_map.emplace("cim:ExcIEEEAC6A.vfelim", &get_ExcIEEEAC6A_vfelim); - get_map.emplace("cim:ExcIEEEAC6A.vhmax", &get_ExcIEEEAC6A_vhmax); - get_map.emplace("cim:ExcIEEEAC6A.vrmax", &get_ExcIEEEAC6A_vrmax); - get_map.emplace("cim:ExcIEEEAC6A.vrmin", &get_ExcIEEEAC6A_vrmin); + get_map.emplace("ExcIEEEAC6A.ka", &get_ExcIEEEAC6A_ka); + get_map.emplace("ExcIEEEAC6A.kc", &get_ExcIEEEAC6A_kc); + get_map.emplace("ExcIEEEAC6A.kd", &get_ExcIEEEAC6A_kd); + get_map.emplace("ExcIEEEAC6A.ke", &get_ExcIEEEAC6A_ke); + get_map.emplace("ExcIEEEAC6A.kh", &get_ExcIEEEAC6A_kh); + get_map.emplace("ExcIEEEAC6A.seve1", &get_ExcIEEEAC6A_seve1); + get_map.emplace("ExcIEEEAC6A.seve2", &get_ExcIEEEAC6A_seve2); + get_map.emplace("ExcIEEEAC6A.ta", &get_ExcIEEEAC6A_ta); + get_map.emplace("ExcIEEEAC6A.tb", &get_ExcIEEEAC6A_tb); + get_map.emplace("ExcIEEEAC6A.tc", &get_ExcIEEEAC6A_tc); + get_map.emplace("ExcIEEEAC6A.te", &get_ExcIEEEAC6A_te); + get_map.emplace("ExcIEEEAC6A.th", &get_ExcIEEEAC6A_th); + get_map.emplace("ExcIEEEAC6A.tj", &get_ExcIEEEAC6A_tj); + get_map.emplace("ExcIEEEAC6A.tk", &get_ExcIEEEAC6A_tk); + get_map.emplace("ExcIEEEAC6A.vamax", &get_ExcIEEEAC6A_vamax); + get_map.emplace("ExcIEEEAC6A.vamin", &get_ExcIEEEAC6A_vamin); + get_map.emplace("ExcIEEEAC6A.ve1", &get_ExcIEEEAC6A_ve1); + get_map.emplace("ExcIEEEAC6A.ve2", &get_ExcIEEEAC6A_ve2); + get_map.emplace("ExcIEEEAC6A.vfelim", &get_ExcIEEEAC6A_vfelim); + get_map.emplace("ExcIEEEAC6A.vhmax", &get_ExcIEEEAC6A_vhmax); + get_map.emplace("ExcIEEEAC6A.vrmax", &get_ExcIEEEAC6A_vrmax); + get_map.emplace("ExcIEEEAC6A.vrmin", &get_ExcIEEEAC6A_vrmin); } void ExcIEEEAC6A::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void ExcIEEEAC6A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC6A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC6A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC6A::declare() { return BaseClassDefiner(ExcIEEEAC6A::addConstructToMap, ExcIEEEAC6A::addPrimitiveAssignFnsToMap, ExcIEEEAC6A::addClassAssignFnsToMap, ExcIEEEAC6A::debugName); } +std::map ExcIEEEAC6A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC6A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.hpp index b32c16c38..ae30e5138 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC6A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -96,8 +97,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -105,7 +113,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC6A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.cpp index 92658ed8f..1ae6d689e 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC7B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC7B::ExcIEEEAC7B() {} ExcIEEEAC7B::~ExcIEEEAC7B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC7B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf3", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC7B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC7B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC7B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC7B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC7B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC7B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC7B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* ExcIEEEAC7B::debugString() const void ExcIEEEAC7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC7B", &ExcIEEEAC7B_factory); + factory_map.emplace("ExcIEEEAC7B", &ExcIEEEAC7B_factory); } void ExcIEEEAC7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC7B.kc", &assign_ExcIEEEAC7B_kc); - assign_map.emplace("cim:ExcIEEEAC7B.kd", &assign_ExcIEEEAC7B_kd); - assign_map.emplace("cim:ExcIEEEAC7B.kdr", &assign_ExcIEEEAC7B_kdr); - assign_map.emplace("cim:ExcIEEEAC7B.ke", &assign_ExcIEEEAC7B_ke); - assign_map.emplace("cim:ExcIEEEAC7B.kf1", &assign_ExcIEEEAC7B_kf1); - assign_map.emplace("cim:ExcIEEEAC7B.kf2", &assign_ExcIEEEAC7B_kf2); - assign_map.emplace("cim:ExcIEEEAC7B.kf3", &assign_ExcIEEEAC7B_kf3); - assign_map.emplace("cim:ExcIEEEAC7B.kia", &assign_ExcIEEEAC7B_kia); - assign_map.emplace("cim:ExcIEEEAC7B.kir", &assign_ExcIEEEAC7B_kir); - assign_map.emplace("cim:ExcIEEEAC7B.kl", &assign_ExcIEEEAC7B_kl); - assign_map.emplace("cim:ExcIEEEAC7B.kp", &assign_ExcIEEEAC7B_kp); - assign_map.emplace("cim:ExcIEEEAC7B.kpa", &assign_ExcIEEEAC7B_kpa); - assign_map.emplace("cim:ExcIEEEAC7B.kpr", &assign_ExcIEEEAC7B_kpr); - assign_map.emplace("cim:ExcIEEEAC7B.seve1", &assign_ExcIEEEAC7B_seve1); - assign_map.emplace("cim:ExcIEEEAC7B.seve2", &assign_ExcIEEEAC7B_seve2); - assign_map.emplace("cim:ExcIEEEAC7B.tdr", &assign_ExcIEEEAC7B_tdr); - assign_map.emplace("cim:ExcIEEEAC7B.te", &assign_ExcIEEEAC7B_te); - assign_map.emplace("cim:ExcIEEEAC7B.tf", &assign_ExcIEEEAC7B_tf); - assign_map.emplace("cim:ExcIEEEAC7B.vamax", &assign_ExcIEEEAC7B_vamax); - assign_map.emplace("cim:ExcIEEEAC7B.vamin", &assign_ExcIEEEAC7B_vamin); - assign_map.emplace("cim:ExcIEEEAC7B.ve1", &assign_ExcIEEEAC7B_ve1); - assign_map.emplace("cim:ExcIEEEAC7B.ve2", &assign_ExcIEEEAC7B_ve2); - assign_map.emplace("cim:ExcIEEEAC7B.vemin", &assign_ExcIEEEAC7B_vemin); - assign_map.emplace("cim:ExcIEEEAC7B.vfemax", &assign_ExcIEEEAC7B_vfemax); - assign_map.emplace("cim:ExcIEEEAC7B.vrmax", &assign_ExcIEEEAC7B_vrmax); - assign_map.emplace("cim:ExcIEEEAC7B.vrmin", &assign_ExcIEEEAC7B_vrmin); + assign_map.emplace("ExcIEEEAC7B.kc", &assign_ExcIEEEAC7B_kc); + assign_map.emplace("ExcIEEEAC7B.kd", &assign_ExcIEEEAC7B_kd); + assign_map.emplace("ExcIEEEAC7B.kdr", &assign_ExcIEEEAC7B_kdr); + assign_map.emplace("ExcIEEEAC7B.ke", &assign_ExcIEEEAC7B_ke); + assign_map.emplace("ExcIEEEAC7B.kf1", &assign_ExcIEEEAC7B_kf1); + assign_map.emplace("ExcIEEEAC7B.kf2", &assign_ExcIEEEAC7B_kf2); + assign_map.emplace("ExcIEEEAC7B.kf3", &assign_ExcIEEEAC7B_kf3); + assign_map.emplace("ExcIEEEAC7B.kia", &assign_ExcIEEEAC7B_kia); + assign_map.emplace("ExcIEEEAC7B.kir", &assign_ExcIEEEAC7B_kir); + assign_map.emplace("ExcIEEEAC7B.kl", &assign_ExcIEEEAC7B_kl); + assign_map.emplace("ExcIEEEAC7B.kp", &assign_ExcIEEEAC7B_kp); + assign_map.emplace("ExcIEEEAC7B.kpa", &assign_ExcIEEEAC7B_kpa); + assign_map.emplace("ExcIEEEAC7B.kpr", &assign_ExcIEEEAC7B_kpr); + assign_map.emplace("ExcIEEEAC7B.seve1", &assign_ExcIEEEAC7B_seve1); + assign_map.emplace("ExcIEEEAC7B.seve2", &assign_ExcIEEEAC7B_seve2); + assign_map.emplace("ExcIEEEAC7B.tdr", &assign_ExcIEEEAC7B_tdr); + assign_map.emplace("ExcIEEEAC7B.te", &assign_ExcIEEEAC7B_te); + assign_map.emplace("ExcIEEEAC7B.tf", &assign_ExcIEEEAC7B_tf); + assign_map.emplace("ExcIEEEAC7B.vamax", &assign_ExcIEEEAC7B_vamax); + assign_map.emplace("ExcIEEEAC7B.vamin", &assign_ExcIEEEAC7B_vamin); + assign_map.emplace("ExcIEEEAC7B.ve1", &assign_ExcIEEEAC7B_ve1); + assign_map.emplace("ExcIEEEAC7B.ve2", &assign_ExcIEEEAC7B_ve2); + assign_map.emplace("ExcIEEEAC7B.vemin", &assign_ExcIEEEAC7B_vemin); + assign_map.emplace("ExcIEEEAC7B.vfemax", &assign_ExcIEEEAC7B_vfemax); + assign_map.emplace("ExcIEEEAC7B.vrmax", &assign_ExcIEEEAC7B_vrmax); + assign_map.emplace("ExcIEEEAC7B.vrmin", &assign_ExcIEEEAC7B_vrmin); } void ExcIEEEAC7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void ExcIEEEAC7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC7B.kc", &get_ExcIEEEAC7B_kc); - get_map.emplace("cim:ExcIEEEAC7B.kd", &get_ExcIEEEAC7B_kd); - get_map.emplace("cim:ExcIEEEAC7B.kdr", &get_ExcIEEEAC7B_kdr); - get_map.emplace("cim:ExcIEEEAC7B.ke", &get_ExcIEEEAC7B_ke); - get_map.emplace("cim:ExcIEEEAC7B.kf1", &get_ExcIEEEAC7B_kf1); - get_map.emplace("cim:ExcIEEEAC7B.kf2", &get_ExcIEEEAC7B_kf2); - get_map.emplace("cim:ExcIEEEAC7B.kf3", &get_ExcIEEEAC7B_kf3); - get_map.emplace("cim:ExcIEEEAC7B.kia", &get_ExcIEEEAC7B_kia); - get_map.emplace("cim:ExcIEEEAC7B.kir", &get_ExcIEEEAC7B_kir); - get_map.emplace("cim:ExcIEEEAC7B.kl", &get_ExcIEEEAC7B_kl); - get_map.emplace("cim:ExcIEEEAC7B.kp", &get_ExcIEEEAC7B_kp); - get_map.emplace("cim:ExcIEEEAC7B.kpa", &get_ExcIEEEAC7B_kpa); - get_map.emplace("cim:ExcIEEEAC7B.kpr", &get_ExcIEEEAC7B_kpr); - get_map.emplace("cim:ExcIEEEAC7B.seve1", &get_ExcIEEEAC7B_seve1); - get_map.emplace("cim:ExcIEEEAC7B.seve2", &get_ExcIEEEAC7B_seve2); - get_map.emplace("cim:ExcIEEEAC7B.tdr", &get_ExcIEEEAC7B_tdr); - get_map.emplace("cim:ExcIEEEAC7B.te", &get_ExcIEEEAC7B_te); - get_map.emplace("cim:ExcIEEEAC7B.tf", &get_ExcIEEEAC7B_tf); - get_map.emplace("cim:ExcIEEEAC7B.vamax", &get_ExcIEEEAC7B_vamax); - get_map.emplace("cim:ExcIEEEAC7B.vamin", &get_ExcIEEEAC7B_vamin); - get_map.emplace("cim:ExcIEEEAC7B.ve1", &get_ExcIEEEAC7B_ve1); - get_map.emplace("cim:ExcIEEEAC7B.ve2", &get_ExcIEEEAC7B_ve2); - get_map.emplace("cim:ExcIEEEAC7B.vemin", &get_ExcIEEEAC7B_vemin); - get_map.emplace("cim:ExcIEEEAC7B.vfemax", &get_ExcIEEEAC7B_vfemax); - get_map.emplace("cim:ExcIEEEAC7B.vrmax", &get_ExcIEEEAC7B_vrmax); - get_map.emplace("cim:ExcIEEEAC7B.vrmin", &get_ExcIEEEAC7B_vrmin); + get_map.emplace("ExcIEEEAC7B.kc", &get_ExcIEEEAC7B_kc); + get_map.emplace("ExcIEEEAC7B.kd", &get_ExcIEEEAC7B_kd); + get_map.emplace("ExcIEEEAC7B.kdr", &get_ExcIEEEAC7B_kdr); + get_map.emplace("ExcIEEEAC7B.ke", &get_ExcIEEEAC7B_ke); + get_map.emplace("ExcIEEEAC7B.kf1", &get_ExcIEEEAC7B_kf1); + get_map.emplace("ExcIEEEAC7B.kf2", &get_ExcIEEEAC7B_kf2); + get_map.emplace("ExcIEEEAC7B.kf3", &get_ExcIEEEAC7B_kf3); + get_map.emplace("ExcIEEEAC7B.kia", &get_ExcIEEEAC7B_kia); + get_map.emplace("ExcIEEEAC7B.kir", &get_ExcIEEEAC7B_kir); + get_map.emplace("ExcIEEEAC7B.kl", &get_ExcIEEEAC7B_kl); + get_map.emplace("ExcIEEEAC7B.kp", &get_ExcIEEEAC7B_kp); + get_map.emplace("ExcIEEEAC7B.kpa", &get_ExcIEEEAC7B_kpa); + get_map.emplace("ExcIEEEAC7B.kpr", &get_ExcIEEEAC7B_kpr); + get_map.emplace("ExcIEEEAC7B.seve1", &get_ExcIEEEAC7B_seve1); + get_map.emplace("ExcIEEEAC7B.seve2", &get_ExcIEEEAC7B_seve2); + get_map.emplace("ExcIEEEAC7B.tdr", &get_ExcIEEEAC7B_tdr); + get_map.emplace("ExcIEEEAC7B.te", &get_ExcIEEEAC7B_te); + get_map.emplace("ExcIEEEAC7B.tf", &get_ExcIEEEAC7B_tf); + get_map.emplace("ExcIEEEAC7B.vamax", &get_ExcIEEEAC7B_vamax); + get_map.emplace("ExcIEEEAC7B.vamin", &get_ExcIEEEAC7B_vamin); + get_map.emplace("ExcIEEEAC7B.ve1", &get_ExcIEEEAC7B_ve1); + get_map.emplace("ExcIEEEAC7B.ve2", &get_ExcIEEEAC7B_ve2); + get_map.emplace("ExcIEEEAC7B.vemin", &get_ExcIEEEAC7B_vemin); + get_map.emplace("ExcIEEEAC7B.vfemax", &get_ExcIEEEAC7B_vfemax); + get_map.emplace("ExcIEEEAC7B.vrmax", &get_ExcIEEEAC7B_vrmax); + get_map.emplace("ExcIEEEAC7B.vrmin", &get_ExcIEEEAC7B_vrmin); } void ExcIEEEAC7B::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void ExcIEEEAC7B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC7B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC7B::declare() { return BaseClassDefiner(ExcIEEEAC7B::addConstructToMap, ExcIEEEAC7B::addPrimitiveAssignFnsToMap, ExcIEEEAC7B::addClassAssignFnsToMap, ExcIEEEAC7B::debugName); } +std::map ExcIEEEAC7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC7B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.hpp index 8e6afa3e6..92e4d374b 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC7B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.cpp index ebf326092..a11134d4a 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC8B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC8B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC8B::ExcIEEEAC8B() {} ExcIEEEAC8B::~ExcIEEEAC8B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC8B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC8B::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC8B.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC8B::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC8B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC8B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC8B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC8B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC8B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC8B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC8B_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcIEEEAC8B::debugString() const void ExcIEEEAC8B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC8B", &ExcIEEEAC8B_factory); + factory_map.emplace("ExcIEEEAC8B", &ExcIEEEAC8B_factory); } void ExcIEEEAC8B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC8B.ka", &assign_ExcIEEEAC8B_ka); - assign_map.emplace("cim:ExcIEEEAC8B.kc", &assign_ExcIEEEAC8B_kc); - assign_map.emplace("cim:ExcIEEEAC8B.kd", &assign_ExcIEEEAC8B_kd); - assign_map.emplace("cim:ExcIEEEAC8B.kdr", &assign_ExcIEEEAC8B_kdr); - assign_map.emplace("cim:ExcIEEEAC8B.ke", &assign_ExcIEEEAC8B_ke); - assign_map.emplace("cim:ExcIEEEAC8B.kir", &assign_ExcIEEEAC8B_kir); - assign_map.emplace("cim:ExcIEEEAC8B.kpr", &assign_ExcIEEEAC8B_kpr); - assign_map.emplace("cim:ExcIEEEAC8B.seve1", &assign_ExcIEEEAC8B_seve1); - assign_map.emplace("cim:ExcIEEEAC8B.seve2", &assign_ExcIEEEAC8B_seve2); - assign_map.emplace("cim:ExcIEEEAC8B.ta", &assign_ExcIEEEAC8B_ta); - assign_map.emplace("cim:ExcIEEEAC8B.tdr", &assign_ExcIEEEAC8B_tdr); - assign_map.emplace("cim:ExcIEEEAC8B.te", &assign_ExcIEEEAC8B_te); - assign_map.emplace("cim:ExcIEEEAC8B.ve1", &assign_ExcIEEEAC8B_ve1); - assign_map.emplace("cim:ExcIEEEAC8B.ve2", &assign_ExcIEEEAC8B_ve2); - assign_map.emplace("cim:ExcIEEEAC8B.vemin", &assign_ExcIEEEAC8B_vemin); - assign_map.emplace("cim:ExcIEEEAC8B.vfemax", &assign_ExcIEEEAC8B_vfemax); - assign_map.emplace("cim:ExcIEEEAC8B.vrmax", &assign_ExcIEEEAC8B_vrmax); - assign_map.emplace("cim:ExcIEEEAC8B.vrmin", &assign_ExcIEEEAC8B_vrmin); + assign_map.emplace("ExcIEEEAC8B.ka", &assign_ExcIEEEAC8B_ka); + assign_map.emplace("ExcIEEEAC8B.kc", &assign_ExcIEEEAC8B_kc); + assign_map.emplace("ExcIEEEAC8B.kd", &assign_ExcIEEEAC8B_kd); + assign_map.emplace("ExcIEEEAC8B.kdr", &assign_ExcIEEEAC8B_kdr); + assign_map.emplace("ExcIEEEAC8B.ke", &assign_ExcIEEEAC8B_ke); + assign_map.emplace("ExcIEEEAC8B.kir", &assign_ExcIEEEAC8B_kir); + assign_map.emplace("ExcIEEEAC8B.kpr", &assign_ExcIEEEAC8B_kpr); + assign_map.emplace("ExcIEEEAC8B.seve1", &assign_ExcIEEEAC8B_seve1); + assign_map.emplace("ExcIEEEAC8B.seve2", &assign_ExcIEEEAC8B_seve2); + assign_map.emplace("ExcIEEEAC8B.ta", &assign_ExcIEEEAC8B_ta); + assign_map.emplace("ExcIEEEAC8B.tdr", &assign_ExcIEEEAC8B_tdr); + assign_map.emplace("ExcIEEEAC8B.te", &assign_ExcIEEEAC8B_te); + assign_map.emplace("ExcIEEEAC8B.ve1", &assign_ExcIEEEAC8B_ve1); + assign_map.emplace("ExcIEEEAC8B.ve2", &assign_ExcIEEEAC8B_ve2); + assign_map.emplace("ExcIEEEAC8B.vemin", &assign_ExcIEEEAC8B_vemin); + assign_map.emplace("ExcIEEEAC8B.vfemax", &assign_ExcIEEEAC8B_vfemax); + assign_map.emplace("ExcIEEEAC8B.vrmax", &assign_ExcIEEEAC8B_vrmax); + assign_map.emplace("ExcIEEEAC8B.vrmin", &assign_ExcIEEEAC8B_vrmin); } void ExcIEEEAC8B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcIEEEAC8B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC8B.ka", &get_ExcIEEEAC8B_ka); - get_map.emplace("cim:ExcIEEEAC8B.kc", &get_ExcIEEEAC8B_kc); - get_map.emplace("cim:ExcIEEEAC8B.kd", &get_ExcIEEEAC8B_kd); - get_map.emplace("cim:ExcIEEEAC8B.kdr", &get_ExcIEEEAC8B_kdr); - get_map.emplace("cim:ExcIEEEAC8B.ke", &get_ExcIEEEAC8B_ke); - get_map.emplace("cim:ExcIEEEAC8B.kir", &get_ExcIEEEAC8B_kir); - get_map.emplace("cim:ExcIEEEAC8B.kpr", &get_ExcIEEEAC8B_kpr); - get_map.emplace("cim:ExcIEEEAC8B.seve1", &get_ExcIEEEAC8B_seve1); - get_map.emplace("cim:ExcIEEEAC8B.seve2", &get_ExcIEEEAC8B_seve2); - get_map.emplace("cim:ExcIEEEAC8B.ta", &get_ExcIEEEAC8B_ta); - get_map.emplace("cim:ExcIEEEAC8B.tdr", &get_ExcIEEEAC8B_tdr); - get_map.emplace("cim:ExcIEEEAC8B.te", &get_ExcIEEEAC8B_te); - get_map.emplace("cim:ExcIEEEAC8B.ve1", &get_ExcIEEEAC8B_ve1); - get_map.emplace("cim:ExcIEEEAC8B.ve2", &get_ExcIEEEAC8B_ve2); - get_map.emplace("cim:ExcIEEEAC8B.vemin", &get_ExcIEEEAC8B_vemin); - get_map.emplace("cim:ExcIEEEAC8B.vfemax", &get_ExcIEEEAC8B_vfemax); - get_map.emplace("cim:ExcIEEEAC8B.vrmax", &get_ExcIEEEAC8B_vrmax); - get_map.emplace("cim:ExcIEEEAC8B.vrmin", &get_ExcIEEEAC8B_vrmin); + get_map.emplace("ExcIEEEAC8B.ka", &get_ExcIEEEAC8B_ka); + get_map.emplace("ExcIEEEAC8B.kc", &get_ExcIEEEAC8B_kc); + get_map.emplace("ExcIEEEAC8B.kd", &get_ExcIEEEAC8B_kd); + get_map.emplace("ExcIEEEAC8B.kdr", &get_ExcIEEEAC8B_kdr); + get_map.emplace("ExcIEEEAC8B.ke", &get_ExcIEEEAC8B_ke); + get_map.emplace("ExcIEEEAC8B.kir", &get_ExcIEEEAC8B_kir); + get_map.emplace("ExcIEEEAC8B.kpr", &get_ExcIEEEAC8B_kpr); + get_map.emplace("ExcIEEEAC8B.seve1", &get_ExcIEEEAC8B_seve1); + get_map.emplace("ExcIEEEAC8B.seve2", &get_ExcIEEEAC8B_seve2); + get_map.emplace("ExcIEEEAC8B.ta", &get_ExcIEEEAC8B_ta); + get_map.emplace("ExcIEEEAC8B.tdr", &get_ExcIEEEAC8B_tdr); + get_map.emplace("ExcIEEEAC8B.te", &get_ExcIEEEAC8B_te); + get_map.emplace("ExcIEEEAC8B.ve1", &get_ExcIEEEAC8B_ve1); + get_map.emplace("ExcIEEEAC8B.ve2", &get_ExcIEEEAC8B_ve2); + get_map.emplace("ExcIEEEAC8B.vemin", &get_ExcIEEEAC8B_vemin); + get_map.emplace("ExcIEEEAC8B.vfemax", &get_ExcIEEEAC8B_vfemax); + get_map.emplace("ExcIEEEAC8B.vrmax", &get_ExcIEEEAC8B_vrmax); + get_map.emplace("ExcIEEEAC8B.vrmin", &get_ExcIEEEAC8B_vrmin); } void ExcIEEEAC8B::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcIEEEAC8B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC8B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC8B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC8B::declare() { return BaseClassDefiner(ExcIEEEAC8B::addConstructToMap, ExcIEEEAC8B::addPrimitiveAssignFnsToMap, ExcIEEEAC8B::addClassAssignFnsToMap, ExcIEEEAC8B::debugName); } +std::map ExcIEEEAC8B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC8B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.hpp index c9ca37813..4e6105a59 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEAC8B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC8B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.cpp index 51102e7b5..544db3f00 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC1A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC1A::ExcIEEEDC1A() {} ExcIEEEDC1A::~ExcIEEEDC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC1A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC1A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC1A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC1A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC1A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEDC1A::debugString() const void ExcIEEEDC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC1A", &ExcIEEEDC1A_factory); + factory_map.emplace("ExcIEEEDC1A", &ExcIEEEDC1A_factory); } void ExcIEEEDC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC1A.efd1", &assign_ExcIEEEDC1A_efd1); - assign_map.emplace("cim:ExcIEEEDC1A.efd2", &assign_ExcIEEEDC1A_efd2); - assign_map.emplace("cim:ExcIEEEDC1A.exclim", &assign_ExcIEEEDC1A_exclim); - assign_map.emplace("cim:ExcIEEEDC1A.ka", &assign_ExcIEEEDC1A_ka); - assign_map.emplace("cim:ExcIEEEDC1A.ke", &assign_ExcIEEEDC1A_ke); - assign_map.emplace("cim:ExcIEEEDC1A.kf", &assign_ExcIEEEDC1A_kf); - assign_map.emplace("cim:ExcIEEEDC1A.seefd1", &assign_ExcIEEEDC1A_seefd1); - assign_map.emplace("cim:ExcIEEEDC1A.seefd2", &assign_ExcIEEEDC1A_seefd2); - assign_map.emplace("cim:ExcIEEEDC1A.ta", &assign_ExcIEEEDC1A_ta); - assign_map.emplace("cim:ExcIEEEDC1A.tb", &assign_ExcIEEEDC1A_tb); - assign_map.emplace("cim:ExcIEEEDC1A.tc", &assign_ExcIEEEDC1A_tc); - assign_map.emplace("cim:ExcIEEEDC1A.te", &assign_ExcIEEEDC1A_te); - assign_map.emplace("cim:ExcIEEEDC1A.tf", &assign_ExcIEEEDC1A_tf); - assign_map.emplace("cim:ExcIEEEDC1A.uelin", &assign_ExcIEEEDC1A_uelin); - assign_map.emplace("cim:ExcIEEEDC1A.vrmax", &assign_ExcIEEEDC1A_vrmax); - assign_map.emplace("cim:ExcIEEEDC1A.vrmin", &assign_ExcIEEEDC1A_vrmin); + assign_map.emplace("ExcIEEEDC1A.efd1", &assign_ExcIEEEDC1A_efd1); + assign_map.emplace("ExcIEEEDC1A.efd2", &assign_ExcIEEEDC1A_efd2); + assign_map.emplace("ExcIEEEDC1A.exclim", &assign_ExcIEEEDC1A_exclim); + assign_map.emplace("ExcIEEEDC1A.ka", &assign_ExcIEEEDC1A_ka); + assign_map.emplace("ExcIEEEDC1A.ke", &assign_ExcIEEEDC1A_ke); + assign_map.emplace("ExcIEEEDC1A.kf", &assign_ExcIEEEDC1A_kf); + assign_map.emplace("ExcIEEEDC1A.seefd1", &assign_ExcIEEEDC1A_seefd1); + assign_map.emplace("ExcIEEEDC1A.seefd2", &assign_ExcIEEEDC1A_seefd2); + assign_map.emplace("ExcIEEEDC1A.ta", &assign_ExcIEEEDC1A_ta); + assign_map.emplace("ExcIEEEDC1A.tb", &assign_ExcIEEEDC1A_tb); + assign_map.emplace("ExcIEEEDC1A.tc", &assign_ExcIEEEDC1A_tc); + assign_map.emplace("ExcIEEEDC1A.te", &assign_ExcIEEEDC1A_te); + assign_map.emplace("ExcIEEEDC1A.tf", &assign_ExcIEEEDC1A_tf); + assign_map.emplace("ExcIEEEDC1A.uelin", &assign_ExcIEEEDC1A_uelin); + assign_map.emplace("ExcIEEEDC1A.vrmax", &assign_ExcIEEEDC1A_vrmax); + assign_map.emplace("ExcIEEEDC1A.vrmin", &assign_ExcIEEEDC1A_vrmin); } void ExcIEEEDC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEDC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC1A.efd1", &get_ExcIEEEDC1A_efd1); - get_map.emplace("cim:ExcIEEEDC1A.efd2", &get_ExcIEEEDC1A_efd2); - get_map.emplace("cim:ExcIEEEDC1A.exclim", &get_ExcIEEEDC1A_exclim); - get_map.emplace("cim:ExcIEEEDC1A.ka", &get_ExcIEEEDC1A_ka); - get_map.emplace("cim:ExcIEEEDC1A.ke", &get_ExcIEEEDC1A_ke); - get_map.emplace("cim:ExcIEEEDC1A.kf", &get_ExcIEEEDC1A_kf); - get_map.emplace("cim:ExcIEEEDC1A.seefd1", &get_ExcIEEEDC1A_seefd1); - get_map.emplace("cim:ExcIEEEDC1A.seefd2", &get_ExcIEEEDC1A_seefd2); - get_map.emplace("cim:ExcIEEEDC1A.ta", &get_ExcIEEEDC1A_ta); - get_map.emplace("cim:ExcIEEEDC1A.tb", &get_ExcIEEEDC1A_tb); - get_map.emplace("cim:ExcIEEEDC1A.tc", &get_ExcIEEEDC1A_tc); - get_map.emplace("cim:ExcIEEEDC1A.te", &get_ExcIEEEDC1A_te); - get_map.emplace("cim:ExcIEEEDC1A.tf", &get_ExcIEEEDC1A_tf); - get_map.emplace("cim:ExcIEEEDC1A.uelin", &get_ExcIEEEDC1A_uelin); - get_map.emplace("cim:ExcIEEEDC1A.vrmax", &get_ExcIEEEDC1A_vrmax); - get_map.emplace("cim:ExcIEEEDC1A.vrmin", &get_ExcIEEEDC1A_vrmin); + get_map.emplace("ExcIEEEDC1A.efd1", &get_ExcIEEEDC1A_efd1); + get_map.emplace("ExcIEEEDC1A.efd2", &get_ExcIEEEDC1A_efd2); + get_map.emplace("ExcIEEEDC1A.exclim", &get_ExcIEEEDC1A_exclim); + get_map.emplace("ExcIEEEDC1A.ka", &get_ExcIEEEDC1A_ka); + get_map.emplace("ExcIEEEDC1A.ke", &get_ExcIEEEDC1A_ke); + get_map.emplace("ExcIEEEDC1A.kf", &get_ExcIEEEDC1A_kf); + get_map.emplace("ExcIEEEDC1A.seefd1", &get_ExcIEEEDC1A_seefd1); + get_map.emplace("ExcIEEEDC1A.seefd2", &get_ExcIEEEDC1A_seefd2); + get_map.emplace("ExcIEEEDC1A.ta", &get_ExcIEEEDC1A_ta); + get_map.emplace("ExcIEEEDC1A.tb", &get_ExcIEEEDC1A_tb); + get_map.emplace("ExcIEEEDC1A.tc", &get_ExcIEEEDC1A_tc); + get_map.emplace("ExcIEEEDC1A.te", &get_ExcIEEEDC1A_te); + get_map.emplace("ExcIEEEDC1A.tf", &get_ExcIEEEDC1A_tf); + get_map.emplace("ExcIEEEDC1A.uelin", &get_ExcIEEEDC1A_uelin); + get_map.emplace("ExcIEEEDC1A.vrmax", &get_ExcIEEEDC1A_vrmax); + get_map.emplace("ExcIEEEDC1A.vrmin", &get_ExcIEEEDC1A_vrmin); } void ExcIEEEDC1A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEDC1A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC1A::declare() { return BaseClassDefiner(ExcIEEEDC1A::addConstructToMap, ExcIEEEDC1A::addPrimitiveAssignFnsToMap, ExcIEEEDC1A::addClassAssignFnsToMap, ExcIEEEDC1A::debugName); } +std::map ExcIEEEDC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.hpp index b3f403da2..b3951b32d 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEDC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.cpp index da3ebc726..14e9393e8 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC2A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC2A::ExcIEEEDC2A() {} ExcIEEEDC2A::~ExcIEEEDC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC2A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC2A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC2A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC2A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC2A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEDC2A::debugString() const void ExcIEEEDC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC2A", &ExcIEEEDC2A_factory); + factory_map.emplace("ExcIEEEDC2A", &ExcIEEEDC2A_factory); } void ExcIEEEDC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC2A.efd1", &assign_ExcIEEEDC2A_efd1); - assign_map.emplace("cim:ExcIEEEDC2A.efd2", &assign_ExcIEEEDC2A_efd2); - assign_map.emplace("cim:ExcIEEEDC2A.exclim", &assign_ExcIEEEDC2A_exclim); - assign_map.emplace("cim:ExcIEEEDC2A.ka", &assign_ExcIEEEDC2A_ka); - assign_map.emplace("cim:ExcIEEEDC2A.ke", &assign_ExcIEEEDC2A_ke); - assign_map.emplace("cim:ExcIEEEDC2A.kf", &assign_ExcIEEEDC2A_kf); - assign_map.emplace("cim:ExcIEEEDC2A.seefd1", &assign_ExcIEEEDC2A_seefd1); - assign_map.emplace("cim:ExcIEEEDC2A.seefd2", &assign_ExcIEEEDC2A_seefd2); - assign_map.emplace("cim:ExcIEEEDC2A.ta", &assign_ExcIEEEDC2A_ta); - assign_map.emplace("cim:ExcIEEEDC2A.tb", &assign_ExcIEEEDC2A_tb); - assign_map.emplace("cim:ExcIEEEDC2A.tc", &assign_ExcIEEEDC2A_tc); - assign_map.emplace("cim:ExcIEEEDC2A.te", &assign_ExcIEEEDC2A_te); - assign_map.emplace("cim:ExcIEEEDC2A.tf", &assign_ExcIEEEDC2A_tf); - assign_map.emplace("cim:ExcIEEEDC2A.uelin", &assign_ExcIEEEDC2A_uelin); - assign_map.emplace("cim:ExcIEEEDC2A.vrmax", &assign_ExcIEEEDC2A_vrmax); - assign_map.emplace("cim:ExcIEEEDC2A.vrmin", &assign_ExcIEEEDC2A_vrmin); + assign_map.emplace("ExcIEEEDC2A.efd1", &assign_ExcIEEEDC2A_efd1); + assign_map.emplace("ExcIEEEDC2A.efd2", &assign_ExcIEEEDC2A_efd2); + assign_map.emplace("ExcIEEEDC2A.exclim", &assign_ExcIEEEDC2A_exclim); + assign_map.emplace("ExcIEEEDC2A.ka", &assign_ExcIEEEDC2A_ka); + assign_map.emplace("ExcIEEEDC2A.ke", &assign_ExcIEEEDC2A_ke); + assign_map.emplace("ExcIEEEDC2A.kf", &assign_ExcIEEEDC2A_kf); + assign_map.emplace("ExcIEEEDC2A.seefd1", &assign_ExcIEEEDC2A_seefd1); + assign_map.emplace("ExcIEEEDC2A.seefd2", &assign_ExcIEEEDC2A_seefd2); + assign_map.emplace("ExcIEEEDC2A.ta", &assign_ExcIEEEDC2A_ta); + assign_map.emplace("ExcIEEEDC2A.tb", &assign_ExcIEEEDC2A_tb); + assign_map.emplace("ExcIEEEDC2A.tc", &assign_ExcIEEEDC2A_tc); + assign_map.emplace("ExcIEEEDC2A.te", &assign_ExcIEEEDC2A_te); + assign_map.emplace("ExcIEEEDC2A.tf", &assign_ExcIEEEDC2A_tf); + assign_map.emplace("ExcIEEEDC2A.uelin", &assign_ExcIEEEDC2A_uelin); + assign_map.emplace("ExcIEEEDC2A.vrmax", &assign_ExcIEEEDC2A_vrmax); + assign_map.emplace("ExcIEEEDC2A.vrmin", &assign_ExcIEEEDC2A_vrmin); } void ExcIEEEDC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEDC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC2A.efd1", &get_ExcIEEEDC2A_efd1); - get_map.emplace("cim:ExcIEEEDC2A.efd2", &get_ExcIEEEDC2A_efd2); - get_map.emplace("cim:ExcIEEEDC2A.exclim", &get_ExcIEEEDC2A_exclim); - get_map.emplace("cim:ExcIEEEDC2A.ka", &get_ExcIEEEDC2A_ka); - get_map.emplace("cim:ExcIEEEDC2A.ke", &get_ExcIEEEDC2A_ke); - get_map.emplace("cim:ExcIEEEDC2A.kf", &get_ExcIEEEDC2A_kf); - get_map.emplace("cim:ExcIEEEDC2A.seefd1", &get_ExcIEEEDC2A_seefd1); - get_map.emplace("cim:ExcIEEEDC2A.seefd2", &get_ExcIEEEDC2A_seefd2); - get_map.emplace("cim:ExcIEEEDC2A.ta", &get_ExcIEEEDC2A_ta); - get_map.emplace("cim:ExcIEEEDC2A.tb", &get_ExcIEEEDC2A_tb); - get_map.emplace("cim:ExcIEEEDC2A.tc", &get_ExcIEEEDC2A_tc); - get_map.emplace("cim:ExcIEEEDC2A.te", &get_ExcIEEEDC2A_te); - get_map.emplace("cim:ExcIEEEDC2A.tf", &get_ExcIEEEDC2A_tf); - get_map.emplace("cim:ExcIEEEDC2A.uelin", &get_ExcIEEEDC2A_uelin); - get_map.emplace("cim:ExcIEEEDC2A.vrmax", &get_ExcIEEEDC2A_vrmax); - get_map.emplace("cim:ExcIEEEDC2A.vrmin", &get_ExcIEEEDC2A_vrmin); + get_map.emplace("ExcIEEEDC2A.efd1", &get_ExcIEEEDC2A_efd1); + get_map.emplace("ExcIEEEDC2A.efd2", &get_ExcIEEEDC2A_efd2); + get_map.emplace("ExcIEEEDC2A.exclim", &get_ExcIEEEDC2A_exclim); + get_map.emplace("ExcIEEEDC2A.ka", &get_ExcIEEEDC2A_ka); + get_map.emplace("ExcIEEEDC2A.ke", &get_ExcIEEEDC2A_ke); + get_map.emplace("ExcIEEEDC2A.kf", &get_ExcIEEEDC2A_kf); + get_map.emplace("ExcIEEEDC2A.seefd1", &get_ExcIEEEDC2A_seefd1); + get_map.emplace("ExcIEEEDC2A.seefd2", &get_ExcIEEEDC2A_seefd2); + get_map.emplace("ExcIEEEDC2A.ta", &get_ExcIEEEDC2A_ta); + get_map.emplace("ExcIEEEDC2A.tb", &get_ExcIEEEDC2A_tb); + get_map.emplace("ExcIEEEDC2A.tc", &get_ExcIEEEDC2A_tc); + get_map.emplace("ExcIEEEDC2A.te", &get_ExcIEEEDC2A_te); + get_map.emplace("ExcIEEEDC2A.tf", &get_ExcIEEEDC2A_tf); + get_map.emplace("ExcIEEEDC2A.uelin", &get_ExcIEEEDC2A_uelin); + get_map.emplace("ExcIEEEDC2A.vrmax", &get_ExcIEEEDC2A_vrmax); + get_map.emplace("ExcIEEEDC2A.vrmin", &get_ExcIEEEDC2A_vrmin); } void ExcIEEEDC2A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEDC2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC2A::declare() { return BaseClassDefiner(ExcIEEEDC2A::addConstructToMap, ExcIEEEDC2A::addPrimitiveAssignFnsToMap, ExcIEEEDC2A::addClassAssignFnsToMap, ExcIEEEDC2A::debugName); } +std::map ExcIEEEDC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC2A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.hpp index 522fb8410..2f6149392 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEDC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC2A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.cpp index 0a3177ee8..767d339f8 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC3A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.kv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC3A::ExcIEEEDC3A() {} ExcIEEEDC3A::~ExcIEEEDC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC3A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC3A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.kv", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.trh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC3A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC3A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC3A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* ExcIEEEDC3A::debugString() const void ExcIEEEDC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC3A", &ExcIEEEDC3A_factory); + factory_map.emplace("ExcIEEEDC3A", &ExcIEEEDC3A_factory); } void ExcIEEEDC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC3A.efd1", &assign_ExcIEEEDC3A_efd1); - assign_map.emplace("cim:ExcIEEEDC3A.efd2", &assign_ExcIEEEDC3A_efd2); - assign_map.emplace("cim:ExcIEEEDC3A.exclim", &assign_ExcIEEEDC3A_exclim); - assign_map.emplace("cim:ExcIEEEDC3A.ke", &assign_ExcIEEEDC3A_ke); - assign_map.emplace("cim:ExcIEEEDC3A.kv", &assign_ExcIEEEDC3A_kv); - assign_map.emplace("cim:ExcIEEEDC3A.seefd1", &assign_ExcIEEEDC3A_seefd1); - assign_map.emplace("cim:ExcIEEEDC3A.seefd2", &assign_ExcIEEEDC3A_seefd2); - assign_map.emplace("cim:ExcIEEEDC3A.te", &assign_ExcIEEEDC3A_te); - assign_map.emplace("cim:ExcIEEEDC3A.trh", &assign_ExcIEEEDC3A_trh); - assign_map.emplace("cim:ExcIEEEDC3A.vrmax", &assign_ExcIEEEDC3A_vrmax); - assign_map.emplace("cim:ExcIEEEDC3A.vrmin", &assign_ExcIEEEDC3A_vrmin); + assign_map.emplace("ExcIEEEDC3A.efd1", &assign_ExcIEEEDC3A_efd1); + assign_map.emplace("ExcIEEEDC3A.efd2", &assign_ExcIEEEDC3A_efd2); + assign_map.emplace("ExcIEEEDC3A.exclim", &assign_ExcIEEEDC3A_exclim); + assign_map.emplace("ExcIEEEDC3A.ke", &assign_ExcIEEEDC3A_ke); + assign_map.emplace("ExcIEEEDC3A.kv", &assign_ExcIEEEDC3A_kv); + assign_map.emplace("ExcIEEEDC3A.seefd1", &assign_ExcIEEEDC3A_seefd1); + assign_map.emplace("ExcIEEEDC3A.seefd2", &assign_ExcIEEEDC3A_seefd2); + assign_map.emplace("ExcIEEEDC3A.te", &assign_ExcIEEEDC3A_te); + assign_map.emplace("ExcIEEEDC3A.trh", &assign_ExcIEEEDC3A_trh); + assign_map.emplace("ExcIEEEDC3A.vrmax", &assign_ExcIEEEDC3A_vrmax); + assign_map.emplace("ExcIEEEDC3A.vrmin", &assign_ExcIEEEDC3A_vrmin); } void ExcIEEEDC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void ExcIEEEDC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC3A.efd1", &get_ExcIEEEDC3A_efd1); - get_map.emplace("cim:ExcIEEEDC3A.efd2", &get_ExcIEEEDC3A_efd2); - get_map.emplace("cim:ExcIEEEDC3A.exclim", &get_ExcIEEEDC3A_exclim); - get_map.emplace("cim:ExcIEEEDC3A.ke", &get_ExcIEEEDC3A_ke); - get_map.emplace("cim:ExcIEEEDC3A.kv", &get_ExcIEEEDC3A_kv); - get_map.emplace("cim:ExcIEEEDC3A.seefd1", &get_ExcIEEEDC3A_seefd1); - get_map.emplace("cim:ExcIEEEDC3A.seefd2", &get_ExcIEEEDC3A_seefd2); - get_map.emplace("cim:ExcIEEEDC3A.te", &get_ExcIEEEDC3A_te); - get_map.emplace("cim:ExcIEEEDC3A.trh", &get_ExcIEEEDC3A_trh); - get_map.emplace("cim:ExcIEEEDC3A.vrmax", &get_ExcIEEEDC3A_vrmax); - get_map.emplace("cim:ExcIEEEDC3A.vrmin", &get_ExcIEEEDC3A_vrmin); + get_map.emplace("ExcIEEEDC3A.efd1", &get_ExcIEEEDC3A_efd1); + get_map.emplace("ExcIEEEDC3A.efd2", &get_ExcIEEEDC3A_efd2); + get_map.emplace("ExcIEEEDC3A.exclim", &get_ExcIEEEDC3A_exclim); + get_map.emplace("ExcIEEEDC3A.ke", &get_ExcIEEEDC3A_ke); + get_map.emplace("ExcIEEEDC3A.kv", &get_ExcIEEEDC3A_kv); + get_map.emplace("ExcIEEEDC3A.seefd1", &get_ExcIEEEDC3A_seefd1); + get_map.emplace("ExcIEEEDC3A.seefd2", &get_ExcIEEEDC3A_seefd2); + get_map.emplace("ExcIEEEDC3A.te", &get_ExcIEEEDC3A_te); + get_map.emplace("ExcIEEEDC3A.trh", &get_ExcIEEEDC3A_trh); + get_map.emplace("ExcIEEEDC3A.vrmax", &get_ExcIEEEDC3A_vrmax); + get_map.emplace("ExcIEEEDC3A.vrmin", &get_ExcIEEEDC3A_vrmin); } void ExcIEEEDC3A::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void ExcIEEEDC3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC3A::declare() { return BaseClassDefiner(ExcIEEEDC3A::addConstructToMap, ExcIEEEDC3A::addPrimitiveAssignFnsToMap, ExcIEEEDC3A::addClassAssignFnsToMap, ExcIEEEDC3A::debugName); } +std::map ExcIEEEDC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC3A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.hpp index 7c97b2656..aaff85bc4 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEDC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -64,8 +65,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -73,7 +81,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC3A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.cpp index 7f3838589..6943a6d89 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC4B.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC4B::ExcIEEEDC4B() {} ExcIEEEDC4B::~ExcIEEEDC4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEDC4B.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.td", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEDC4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEDC4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEDC4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEDC4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEDC4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEDC4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC4B_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcIEEEDC4B::debugString() const void ExcIEEEDC4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC4B", &ExcIEEEDC4B_factory); + factory_map.emplace("ExcIEEEDC4B", &ExcIEEEDC4B_factory); } void ExcIEEEDC4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC4B.efd1", &assign_ExcIEEEDC4B_efd1); - assign_map.emplace("cim:ExcIEEEDC4B.efd2", &assign_ExcIEEEDC4B_efd2); - assign_map.emplace("cim:ExcIEEEDC4B.ka", &assign_ExcIEEEDC4B_ka); - assign_map.emplace("cim:ExcIEEEDC4B.kd", &assign_ExcIEEEDC4B_kd); - assign_map.emplace("cim:ExcIEEEDC4B.ke", &assign_ExcIEEEDC4B_ke); - assign_map.emplace("cim:ExcIEEEDC4B.kf", &assign_ExcIEEEDC4B_kf); - assign_map.emplace("cim:ExcIEEEDC4B.ki", &assign_ExcIEEEDC4B_ki); - assign_map.emplace("cim:ExcIEEEDC4B.kp", &assign_ExcIEEEDC4B_kp); - assign_map.emplace("cim:ExcIEEEDC4B.oelin", &assign_ExcIEEEDC4B_oelin); - assign_map.emplace("cim:ExcIEEEDC4B.seefd1", &assign_ExcIEEEDC4B_seefd1); - assign_map.emplace("cim:ExcIEEEDC4B.seefd2", &assign_ExcIEEEDC4B_seefd2); - assign_map.emplace("cim:ExcIEEEDC4B.ta", &assign_ExcIEEEDC4B_ta); - assign_map.emplace("cim:ExcIEEEDC4B.td", &assign_ExcIEEEDC4B_td); - assign_map.emplace("cim:ExcIEEEDC4B.te", &assign_ExcIEEEDC4B_te); - assign_map.emplace("cim:ExcIEEEDC4B.tf", &assign_ExcIEEEDC4B_tf); - assign_map.emplace("cim:ExcIEEEDC4B.uelin", &assign_ExcIEEEDC4B_uelin); - assign_map.emplace("cim:ExcIEEEDC4B.vemin", &assign_ExcIEEEDC4B_vemin); - assign_map.emplace("cim:ExcIEEEDC4B.vrmax", &assign_ExcIEEEDC4B_vrmax); - assign_map.emplace("cim:ExcIEEEDC4B.vrmin", &assign_ExcIEEEDC4B_vrmin); + assign_map.emplace("ExcIEEEDC4B.efd1", &assign_ExcIEEEDC4B_efd1); + assign_map.emplace("ExcIEEEDC4B.efd2", &assign_ExcIEEEDC4B_efd2); + assign_map.emplace("ExcIEEEDC4B.ka", &assign_ExcIEEEDC4B_ka); + assign_map.emplace("ExcIEEEDC4B.kd", &assign_ExcIEEEDC4B_kd); + assign_map.emplace("ExcIEEEDC4B.ke", &assign_ExcIEEEDC4B_ke); + assign_map.emplace("ExcIEEEDC4B.kf", &assign_ExcIEEEDC4B_kf); + assign_map.emplace("ExcIEEEDC4B.ki", &assign_ExcIEEEDC4B_ki); + assign_map.emplace("ExcIEEEDC4B.kp", &assign_ExcIEEEDC4B_kp); + assign_map.emplace("ExcIEEEDC4B.oelin", &assign_ExcIEEEDC4B_oelin); + assign_map.emplace("ExcIEEEDC4B.seefd1", &assign_ExcIEEEDC4B_seefd1); + assign_map.emplace("ExcIEEEDC4B.seefd2", &assign_ExcIEEEDC4B_seefd2); + assign_map.emplace("ExcIEEEDC4B.ta", &assign_ExcIEEEDC4B_ta); + assign_map.emplace("ExcIEEEDC4B.td", &assign_ExcIEEEDC4B_td); + assign_map.emplace("ExcIEEEDC4B.te", &assign_ExcIEEEDC4B_te); + assign_map.emplace("ExcIEEEDC4B.tf", &assign_ExcIEEEDC4B_tf); + assign_map.emplace("ExcIEEEDC4B.uelin", &assign_ExcIEEEDC4B_uelin); + assign_map.emplace("ExcIEEEDC4B.vemin", &assign_ExcIEEEDC4B_vemin); + assign_map.emplace("ExcIEEEDC4B.vrmax", &assign_ExcIEEEDC4B_vrmax); + assign_map.emplace("ExcIEEEDC4B.vrmin", &assign_ExcIEEEDC4B_vrmin); } void ExcIEEEDC4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcIEEEDC4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC4B.efd1", &get_ExcIEEEDC4B_efd1); - get_map.emplace("cim:ExcIEEEDC4B.efd2", &get_ExcIEEEDC4B_efd2); - get_map.emplace("cim:ExcIEEEDC4B.ka", &get_ExcIEEEDC4B_ka); - get_map.emplace("cim:ExcIEEEDC4B.kd", &get_ExcIEEEDC4B_kd); - get_map.emplace("cim:ExcIEEEDC4B.ke", &get_ExcIEEEDC4B_ke); - get_map.emplace("cim:ExcIEEEDC4B.kf", &get_ExcIEEEDC4B_kf); - get_map.emplace("cim:ExcIEEEDC4B.ki", &get_ExcIEEEDC4B_ki); - get_map.emplace("cim:ExcIEEEDC4B.kp", &get_ExcIEEEDC4B_kp); - get_map.emplace("cim:ExcIEEEDC4B.oelin", &get_ExcIEEEDC4B_oelin); - get_map.emplace("cim:ExcIEEEDC4B.seefd1", &get_ExcIEEEDC4B_seefd1); - get_map.emplace("cim:ExcIEEEDC4B.seefd2", &get_ExcIEEEDC4B_seefd2); - get_map.emplace("cim:ExcIEEEDC4B.ta", &get_ExcIEEEDC4B_ta); - get_map.emplace("cim:ExcIEEEDC4B.td", &get_ExcIEEEDC4B_td); - get_map.emplace("cim:ExcIEEEDC4B.te", &get_ExcIEEEDC4B_te); - get_map.emplace("cim:ExcIEEEDC4B.tf", &get_ExcIEEEDC4B_tf); - get_map.emplace("cim:ExcIEEEDC4B.uelin", &get_ExcIEEEDC4B_uelin); - get_map.emplace("cim:ExcIEEEDC4B.vemin", &get_ExcIEEEDC4B_vemin); - get_map.emplace("cim:ExcIEEEDC4B.vrmax", &get_ExcIEEEDC4B_vrmax); - get_map.emplace("cim:ExcIEEEDC4B.vrmin", &get_ExcIEEEDC4B_vrmin); + get_map.emplace("ExcIEEEDC4B.efd1", &get_ExcIEEEDC4B_efd1); + get_map.emplace("ExcIEEEDC4B.efd2", &get_ExcIEEEDC4B_efd2); + get_map.emplace("ExcIEEEDC4B.ka", &get_ExcIEEEDC4B_ka); + get_map.emplace("ExcIEEEDC4B.kd", &get_ExcIEEEDC4B_kd); + get_map.emplace("ExcIEEEDC4B.ke", &get_ExcIEEEDC4B_ke); + get_map.emplace("ExcIEEEDC4B.kf", &get_ExcIEEEDC4B_kf); + get_map.emplace("ExcIEEEDC4B.ki", &get_ExcIEEEDC4B_ki); + get_map.emplace("ExcIEEEDC4B.kp", &get_ExcIEEEDC4B_kp); + get_map.emplace("ExcIEEEDC4B.oelin", &get_ExcIEEEDC4B_oelin); + get_map.emplace("ExcIEEEDC4B.seefd1", &get_ExcIEEEDC4B_seefd1); + get_map.emplace("ExcIEEEDC4B.seefd2", &get_ExcIEEEDC4B_seefd2); + get_map.emplace("ExcIEEEDC4B.ta", &get_ExcIEEEDC4B_ta); + get_map.emplace("ExcIEEEDC4B.td", &get_ExcIEEEDC4B_td); + get_map.emplace("ExcIEEEDC4B.te", &get_ExcIEEEDC4B_te); + get_map.emplace("ExcIEEEDC4B.tf", &get_ExcIEEEDC4B_tf); + get_map.emplace("ExcIEEEDC4B.uelin", &get_ExcIEEEDC4B_uelin); + get_map.emplace("ExcIEEEDC4B.vemin", &get_ExcIEEEDC4B_vemin); + get_map.emplace("ExcIEEEDC4B.vrmax", &get_ExcIEEEDC4B_vrmax); + get_map.emplace("ExcIEEEDC4B.vrmin", &get_ExcIEEEDC4B_vrmin); } void ExcIEEEDC4B::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcIEEEDC4B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC4B::declare() { return BaseClassDefiner(ExcIEEEDC4B::addConstructToMap, ExcIEEEDC4B::addPrimitiveAssignFnsToMap, ExcIEEEDC4B::addClassAssignFnsToMap, ExcIEEEDC4B::debugName); } +std::map ExcIEEEDC4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC4B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.hpp index b26843190..296cb5429 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEDC4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC4B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST1A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST1A.cpp index 17ef6c50f..279ec8bda 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST1A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST1A.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST1A.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.pssin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST1A::ExcIEEEST1A() {} ExcIEEEST1A::~ExcIEEEST1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEST1A.ilr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.klr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.pssin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tb1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEST1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEST1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEST1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEST1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEST1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEST1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST1A_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcIEEEST1A::debugString() const void ExcIEEEST1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST1A", &ExcIEEEST1A_factory); + factory_map.emplace("ExcIEEEST1A", &ExcIEEEST1A_factory); } void ExcIEEEST1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST1A.ilr", &assign_ExcIEEEST1A_ilr); - assign_map.emplace("cim:ExcIEEEST1A.ka", &assign_ExcIEEEST1A_ka); - assign_map.emplace("cim:ExcIEEEST1A.kc", &assign_ExcIEEEST1A_kc); - assign_map.emplace("cim:ExcIEEEST1A.kf", &assign_ExcIEEEST1A_kf); - assign_map.emplace("cim:ExcIEEEST1A.klr", &assign_ExcIEEEST1A_klr); - assign_map.emplace("cim:ExcIEEEST1A.pssin", &assign_ExcIEEEST1A_pssin); - assign_map.emplace("cim:ExcIEEEST1A.ta", &assign_ExcIEEEST1A_ta); - assign_map.emplace("cim:ExcIEEEST1A.tb", &assign_ExcIEEEST1A_tb); - assign_map.emplace("cim:ExcIEEEST1A.tb1", &assign_ExcIEEEST1A_tb1); - assign_map.emplace("cim:ExcIEEEST1A.tc", &assign_ExcIEEEST1A_tc); - assign_map.emplace("cim:ExcIEEEST1A.tc1", &assign_ExcIEEEST1A_tc1); - assign_map.emplace("cim:ExcIEEEST1A.tf", &assign_ExcIEEEST1A_tf); - assign_map.emplace("cim:ExcIEEEST1A.uelin", &assign_ExcIEEEST1A_uelin); - assign_map.emplace("cim:ExcIEEEST1A.vamax", &assign_ExcIEEEST1A_vamax); - assign_map.emplace("cim:ExcIEEEST1A.vamin", &assign_ExcIEEEST1A_vamin); - assign_map.emplace("cim:ExcIEEEST1A.vimax", &assign_ExcIEEEST1A_vimax); - assign_map.emplace("cim:ExcIEEEST1A.vimin", &assign_ExcIEEEST1A_vimin); - assign_map.emplace("cim:ExcIEEEST1A.vrmax", &assign_ExcIEEEST1A_vrmax); - assign_map.emplace("cim:ExcIEEEST1A.vrmin", &assign_ExcIEEEST1A_vrmin); + assign_map.emplace("ExcIEEEST1A.ilr", &assign_ExcIEEEST1A_ilr); + assign_map.emplace("ExcIEEEST1A.ka", &assign_ExcIEEEST1A_ka); + assign_map.emplace("ExcIEEEST1A.kc", &assign_ExcIEEEST1A_kc); + assign_map.emplace("ExcIEEEST1A.kf", &assign_ExcIEEEST1A_kf); + assign_map.emplace("ExcIEEEST1A.klr", &assign_ExcIEEEST1A_klr); + assign_map.emplace("ExcIEEEST1A.pssin", &assign_ExcIEEEST1A_pssin); + assign_map.emplace("ExcIEEEST1A.ta", &assign_ExcIEEEST1A_ta); + assign_map.emplace("ExcIEEEST1A.tb", &assign_ExcIEEEST1A_tb); + assign_map.emplace("ExcIEEEST1A.tb1", &assign_ExcIEEEST1A_tb1); + assign_map.emplace("ExcIEEEST1A.tc", &assign_ExcIEEEST1A_tc); + assign_map.emplace("ExcIEEEST1A.tc1", &assign_ExcIEEEST1A_tc1); + assign_map.emplace("ExcIEEEST1A.tf", &assign_ExcIEEEST1A_tf); + assign_map.emplace("ExcIEEEST1A.uelin", &assign_ExcIEEEST1A_uelin); + assign_map.emplace("ExcIEEEST1A.vamax", &assign_ExcIEEEST1A_vamax); + assign_map.emplace("ExcIEEEST1A.vamin", &assign_ExcIEEEST1A_vamin); + assign_map.emplace("ExcIEEEST1A.vimax", &assign_ExcIEEEST1A_vimax); + assign_map.emplace("ExcIEEEST1A.vimin", &assign_ExcIEEEST1A_vimin); + assign_map.emplace("ExcIEEEST1A.vrmax", &assign_ExcIEEEST1A_vrmax); + assign_map.emplace("ExcIEEEST1A.vrmin", &assign_ExcIEEEST1A_vrmin); } void ExcIEEEST1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,24 +681,24 @@ void ExcIEEEST1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST1A.ilr", &get_ExcIEEEST1A_ilr); - get_map.emplace("cim:ExcIEEEST1A.ka", &get_ExcIEEEST1A_ka); - get_map.emplace("cim:ExcIEEEST1A.kc", &get_ExcIEEEST1A_kc); - get_map.emplace("cim:ExcIEEEST1A.kf", &get_ExcIEEEST1A_kf); - get_map.emplace("cim:ExcIEEEST1A.klr", &get_ExcIEEEST1A_klr); - get_map.emplace("cim:ExcIEEEST1A.pssin", &get_ExcIEEEST1A_pssin); - get_map.emplace("cim:ExcIEEEST1A.ta", &get_ExcIEEEST1A_ta); - get_map.emplace("cim:ExcIEEEST1A.tb", &get_ExcIEEEST1A_tb); - get_map.emplace("cim:ExcIEEEST1A.tb1", &get_ExcIEEEST1A_tb1); - get_map.emplace("cim:ExcIEEEST1A.tc", &get_ExcIEEEST1A_tc); - get_map.emplace("cim:ExcIEEEST1A.tc1", &get_ExcIEEEST1A_tc1); - get_map.emplace("cim:ExcIEEEST1A.tf", &get_ExcIEEEST1A_tf); - get_map.emplace("cim:ExcIEEEST1A.vamax", &get_ExcIEEEST1A_vamax); - get_map.emplace("cim:ExcIEEEST1A.vamin", &get_ExcIEEEST1A_vamin); - get_map.emplace("cim:ExcIEEEST1A.vimax", &get_ExcIEEEST1A_vimax); - get_map.emplace("cim:ExcIEEEST1A.vimin", &get_ExcIEEEST1A_vimin); - get_map.emplace("cim:ExcIEEEST1A.vrmax", &get_ExcIEEEST1A_vrmax); - get_map.emplace("cim:ExcIEEEST1A.vrmin", &get_ExcIEEEST1A_vrmin); + get_map.emplace("ExcIEEEST1A.ilr", &get_ExcIEEEST1A_ilr); + get_map.emplace("ExcIEEEST1A.ka", &get_ExcIEEEST1A_ka); + get_map.emplace("ExcIEEEST1A.kc", &get_ExcIEEEST1A_kc); + get_map.emplace("ExcIEEEST1A.kf", &get_ExcIEEEST1A_kf); + get_map.emplace("ExcIEEEST1A.klr", &get_ExcIEEEST1A_klr); + get_map.emplace("ExcIEEEST1A.pssin", &get_ExcIEEEST1A_pssin); + get_map.emplace("ExcIEEEST1A.ta", &get_ExcIEEEST1A_ta); + get_map.emplace("ExcIEEEST1A.tb", &get_ExcIEEEST1A_tb); + get_map.emplace("ExcIEEEST1A.tb1", &get_ExcIEEEST1A_tb1); + get_map.emplace("ExcIEEEST1A.tc", &get_ExcIEEEST1A_tc); + get_map.emplace("ExcIEEEST1A.tc1", &get_ExcIEEEST1A_tc1); + get_map.emplace("ExcIEEEST1A.tf", &get_ExcIEEEST1A_tf); + get_map.emplace("ExcIEEEST1A.vamax", &get_ExcIEEEST1A_vamax); + get_map.emplace("ExcIEEEST1A.vamin", &get_ExcIEEEST1A_vamin); + get_map.emplace("ExcIEEEST1A.vimax", &get_ExcIEEEST1A_vimax); + get_map.emplace("ExcIEEEST1A.vimin", &get_ExcIEEEST1A_vimin); + get_map.emplace("ExcIEEEST1A.vrmax", &get_ExcIEEEST1A_vrmax); + get_map.emplace("ExcIEEEST1A.vrmin", &get_ExcIEEEST1A_vrmin); } void ExcIEEEST1A::addClassGetFnsToMap(std::map& get_map) const @@ -677,7 +709,13 @@ void ExcIEEEST1A::addClassGetFnsToMap(std::map& void ExcIEEEST1A::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST1A.uelin", &get_ExcIEEEST1A_uelin); + get_map.emplace("ExcIEEEST1A.uelin", &get_ExcIEEEST1A_uelin); +} + +bool ExcIEEEST1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST1A::declare() @@ -685,6 +723,14 @@ const BaseClassDefiner ExcIEEEST1A::declare() return BaseClassDefiner(ExcIEEEST1A::addConstructToMap, ExcIEEEST1A::addPrimitiveAssignFnsToMap, ExcIEEEST1A::addClassAssignFnsToMap, ExcIEEEST1A::debugName); } +std::map ExcIEEEST1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST1A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST1A.hpp index 66d916386..b8f697a20 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST1A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "ExcIEEEST1AUELselectorKind.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST2A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST2A.cpp index 0d80e5ac3..b07844550 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST2A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST2A.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST2A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST2A::ExcIEEEST2A() {} ExcIEEEST2A::~ExcIEEEST2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST2A::getClassNamespaceUrl() const { - { "cim:ExcIEEEST2A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST2A::getPossibleProfilesForClass() const +const std::string& ExcIEEEST2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST2A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST2A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcIEEEST2A::debugString() const void ExcIEEEST2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST2A", &ExcIEEEST2A_factory); + factory_map.emplace("ExcIEEEST2A", &ExcIEEEST2A_factory); } void ExcIEEEST2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST2A.efdmax", &assign_ExcIEEEST2A_efdmax); - assign_map.emplace("cim:ExcIEEEST2A.ka", &assign_ExcIEEEST2A_ka); - assign_map.emplace("cim:ExcIEEEST2A.kc", &assign_ExcIEEEST2A_kc); - assign_map.emplace("cim:ExcIEEEST2A.ke", &assign_ExcIEEEST2A_ke); - assign_map.emplace("cim:ExcIEEEST2A.kf", &assign_ExcIEEEST2A_kf); - assign_map.emplace("cim:ExcIEEEST2A.ki", &assign_ExcIEEEST2A_ki); - assign_map.emplace("cim:ExcIEEEST2A.kp", &assign_ExcIEEEST2A_kp); - assign_map.emplace("cim:ExcIEEEST2A.ta", &assign_ExcIEEEST2A_ta); - assign_map.emplace("cim:ExcIEEEST2A.te", &assign_ExcIEEEST2A_te); - assign_map.emplace("cim:ExcIEEEST2A.tf", &assign_ExcIEEEST2A_tf); - assign_map.emplace("cim:ExcIEEEST2A.uelin", &assign_ExcIEEEST2A_uelin); - assign_map.emplace("cim:ExcIEEEST2A.vrmax", &assign_ExcIEEEST2A_vrmax); - assign_map.emplace("cim:ExcIEEEST2A.vrmin", &assign_ExcIEEEST2A_vrmin); + assign_map.emplace("ExcIEEEST2A.efdmax", &assign_ExcIEEEST2A_efdmax); + assign_map.emplace("ExcIEEEST2A.ka", &assign_ExcIEEEST2A_ka); + assign_map.emplace("ExcIEEEST2A.kc", &assign_ExcIEEEST2A_kc); + assign_map.emplace("ExcIEEEST2A.ke", &assign_ExcIEEEST2A_ke); + assign_map.emplace("ExcIEEEST2A.kf", &assign_ExcIEEEST2A_kf); + assign_map.emplace("ExcIEEEST2A.ki", &assign_ExcIEEEST2A_ki); + assign_map.emplace("ExcIEEEST2A.kp", &assign_ExcIEEEST2A_kp); + assign_map.emplace("ExcIEEEST2A.ta", &assign_ExcIEEEST2A_ta); + assign_map.emplace("ExcIEEEST2A.te", &assign_ExcIEEEST2A_te); + assign_map.emplace("ExcIEEEST2A.tf", &assign_ExcIEEEST2A_tf); + assign_map.emplace("ExcIEEEST2A.uelin", &assign_ExcIEEEST2A_uelin); + assign_map.emplace("ExcIEEEST2A.vrmax", &assign_ExcIEEEST2A_vrmax); + assign_map.emplace("ExcIEEEST2A.vrmin", &assign_ExcIEEEST2A_vrmin); } void ExcIEEEST2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcIEEEST2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST2A.efdmax", &get_ExcIEEEST2A_efdmax); - get_map.emplace("cim:ExcIEEEST2A.ka", &get_ExcIEEEST2A_ka); - get_map.emplace("cim:ExcIEEEST2A.kc", &get_ExcIEEEST2A_kc); - get_map.emplace("cim:ExcIEEEST2A.ke", &get_ExcIEEEST2A_ke); - get_map.emplace("cim:ExcIEEEST2A.kf", &get_ExcIEEEST2A_kf); - get_map.emplace("cim:ExcIEEEST2A.ki", &get_ExcIEEEST2A_ki); - get_map.emplace("cim:ExcIEEEST2A.kp", &get_ExcIEEEST2A_kp); - get_map.emplace("cim:ExcIEEEST2A.ta", &get_ExcIEEEST2A_ta); - get_map.emplace("cim:ExcIEEEST2A.te", &get_ExcIEEEST2A_te); - get_map.emplace("cim:ExcIEEEST2A.tf", &get_ExcIEEEST2A_tf); - get_map.emplace("cim:ExcIEEEST2A.uelin", &get_ExcIEEEST2A_uelin); - get_map.emplace("cim:ExcIEEEST2A.vrmax", &get_ExcIEEEST2A_vrmax); - get_map.emplace("cim:ExcIEEEST2A.vrmin", &get_ExcIEEEST2A_vrmin); + get_map.emplace("ExcIEEEST2A.efdmax", &get_ExcIEEEST2A_efdmax); + get_map.emplace("ExcIEEEST2A.ka", &get_ExcIEEEST2A_ka); + get_map.emplace("ExcIEEEST2A.kc", &get_ExcIEEEST2A_kc); + get_map.emplace("ExcIEEEST2A.ke", &get_ExcIEEEST2A_ke); + get_map.emplace("ExcIEEEST2A.kf", &get_ExcIEEEST2A_kf); + get_map.emplace("ExcIEEEST2A.ki", &get_ExcIEEEST2A_ki); + get_map.emplace("ExcIEEEST2A.kp", &get_ExcIEEEST2A_kp); + get_map.emplace("ExcIEEEST2A.ta", &get_ExcIEEEST2A_ta); + get_map.emplace("ExcIEEEST2A.te", &get_ExcIEEEST2A_te); + get_map.emplace("ExcIEEEST2A.tf", &get_ExcIEEEST2A_tf); + get_map.emplace("ExcIEEEST2A.uelin", &get_ExcIEEEST2A_uelin); + get_map.emplace("ExcIEEEST2A.vrmax", &get_ExcIEEEST2A_vrmax); + get_map.emplace("ExcIEEEST2A.vrmin", &get_ExcIEEEST2A_vrmin); } void ExcIEEEST2A::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcIEEEST2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST2A::declare() { return BaseClassDefiner(ExcIEEEST2A::addConstructToMap, ExcIEEEST2A::addPrimitiveAssignFnsToMap, ExcIEEEST2A::addClassAssignFnsToMap, ExcIEEEST2A::debugName); } +std::map ExcIEEEST2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST2A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST2A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST2A.hpp index 14b7fc4ac..d61ade0b8 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST2A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST2A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST3A.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST3A.cpp index 143a70444..43ca93460 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST3A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST3A.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST3A::ExcIEEEST3A() {} ExcIEEEST3A::~ExcIEEEST3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEST3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.km", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.thetap", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tm", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEST3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEST3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEST3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEST3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEST3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEST3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST3A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -646,31 +678,31 @@ const char* ExcIEEEST3A::debugString() const void ExcIEEEST3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST3A", &ExcIEEEST3A_factory); + factory_map.emplace("ExcIEEEST3A", &ExcIEEEST3A_factory); } void ExcIEEEST3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST3A.ka", &assign_ExcIEEEST3A_ka); - assign_map.emplace("cim:ExcIEEEST3A.kc", &assign_ExcIEEEST3A_kc); - assign_map.emplace("cim:ExcIEEEST3A.kg", &assign_ExcIEEEST3A_kg); - assign_map.emplace("cim:ExcIEEEST3A.ki", &assign_ExcIEEEST3A_ki); - assign_map.emplace("cim:ExcIEEEST3A.km", &assign_ExcIEEEST3A_km); - assign_map.emplace("cim:ExcIEEEST3A.kp", &assign_ExcIEEEST3A_kp); - assign_map.emplace("cim:ExcIEEEST3A.ta", &assign_ExcIEEEST3A_ta); - assign_map.emplace("cim:ExcIEEEST3A.tb", &assign_ExcIEEEST3A_tb); - assign_map.emplace("cim:ExcIEEEST3A.tc", &assign_ExcIEEEST3A_tc); - assign_map.emplace("cim:ExcIEEEST3A.thetap", &assign_ExcIEEEST3A_thetap); - assign_map.emplace("cim:ExcIEEEST3A.tm", &assign_ExcIEEEST3A_tm); - assign_map.emplace("cim:ExcIEEEST3A.vbmax", &assign_ExcIEEEST3A_vbmax); - assign_map.emplace("cim:ExcIEEEST3A.vgmax", &assign_ExcIEEEST3A_vgmax); - assign_map.emplace("cim:ExcIEEEST3A.vimax", &assign_ExcIEEEST3A_vimax); - assign_map.emplace("cim:ExcIEEEST3A.vimin", &assign_ExcIEEEST3A_vimin); - assign_map.emplace("cim:ExcIEEEST3A.vmmax", &assign_ExcIEEEST3A_vmmax); - assign_map.emplace("cim:ExcIEEEST3A.vmmin", &assign_ExcIEEEST3A_vmmin); - assign_map.emplace("cim:ExcIEEEST3A.vrmax", &assign_ExcIEEEST3A_vrmax); - assign_map.emplace("cim:ExcIEEEST3A.vrmin", &assign_ExcIEEEST3A_vrmin); - assign_map.emplace("cim:ExcIEEEST3A.xl", &assign_ExcIEEEST3A_xl); + assign_map.emplace("ExcIEEEST3A.ka", &assign_ExcIEEEST3A_ka); + assign_map.emplace("ExcIEEEST3A.kc", &assign_ExcIEEEST3A_kc); + assign_map.emplace("ExcIEEEST3A.kg", &assign_ExcIEEEST3A_kg); + assign_map.emplace("ExcIEEEST3A.ki", &assign_ExcIEEEST3A_ki); + assign_map.emplace("ExcIEEEST3A.km", &assign_ExcIEEEST3A_km); + assign_map.emplace("ExcIEEEST3A.kp", &assign_ExcIEEEST3A_kp); + assign_map.emplace("ExcIEEEST3A.ta", &assign_ExcIEEEST3A_ta); + assign_map.emplace("ExcIEEEST3A.tb", &assign_ExcIEEEST3A_tb); + assign_map.emplace("ExcIEEEST3A.tc", &assign_ExcIEEEST3A_tc); + assign_map.emplace("ExcIEEEST3A.thetap", &assign_ExcIEEEST3A_thetap); + assign_map.emplace("ExcIEEEST3A.tm", &assign_ExcIEEEST3A_tm); + assign_map.emplace("ExcIEEEST3A.vbmax", &assign_ExcIEEEST3A_vbmax); + assign_map.emplace("ExcIEEEST3A.vgmax", &assign_ExcIEEEST3A_vgmax); + assign_map.emplace("ExcIEEEST3A.vimax", &assign_ExcIEEEST3A_vimax); + assign_map.emplace("ExcIEEEST3A.vimin", &assign_ExcIEEEST3A_vimin); + assign_map.emplace("ExcIEEEST3A.vmmax", &assign_ExcIEEEST3A_vmmax); + assign_map.emplace("ExcIEEEST3A.vmmin", &assign_ExcIEEEST3A_vmmin); + assign_map.emplace("ExcIEEEST3A.vrmax", &assign_ExcIEEEST3A_vrmax); + assign_map.emplace("ExcIEEEST3A.vrmin", &assign_ExcIEEEST3A_vrmin); + assign_map.emplace("ExcIEEEST3A.xl", &assign_ExcIEEEST3A_xl); } void ExcIEEEST3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -680,26 +712,26 @@ void ExcIEEEST3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST3A.ka", &get_ExcIEEEST3A_ka); - get_map.emplace("cim:ExcIEEEST3A.kc", &get_ExcIEEEST3A_kc); - get_map.emplace("cim:ExcIEEEST3A.kg", &get_ExcIEEEST3A_kg); - get_map.emplace("cim:ExcIEEEST3A.ki", &get_ExcIEEEST3A_ki); - get_map.emplace("cim:ExcIEEEST3A.km", &get_ExcIEEEST3A_km); - get_map.emplace("cim:ExcIEEEST3A.kp", &get_ExcIEEEST3A_kp); - get_map.emplace("cim:ExcIEEEST3A.ta", &get_ExcIEEEST3A_ta); - get_map.emplace("cim:ExcIEEEST3A.tb", &get_ExcIEEEST3A_tb); - get_map.emplace("cim:ExcIEEEST3A.tc", &get_ExcIEEEST3A_tc); - get_map.emplace("cim:ExcIEEEST3A.thetap", &get_ExcIEEEST3A_thetap); - get_map.emplace("cim:ExcIEEEST3A.tm", &get_ExcIEEEST3A_tm); - get_map.emplace("cim:ExcIEEEST3A.vbmax", &get_ExcIEEEST3A_vbmax); - get_map.emplace("cim:ExcIEEEST3A.vgmax", &get_ExcIEEEST3A_vgmax); - get_map.emplace("cim:ExcIEEEST3A.vimax", &get_ExcIEEEST3A_vimax); - get_map.emplace("cim:ExcIEEEST3A.vimin", &get_ExcIEEEST3A_vimin); - get_map.emplace("cim:ExcIEEEST3A.vmmax", &get_ExcIEEEST3A_vmmax); - get_map.emplace("cim:ExcIEEEST3A.vmmin", &get_ExcIEEEST3A_vmmin); - get_map.emplace("cim:ExcIEEEST3A.vrmax", &get_ExcIEEEST3A_vrmax); - get_map.emplace("cim:ExcIEEEST3A.vrmin", &get_ExcIEEEST3A_vrmin); - get_map.emplace("cim:ExcIEEEST3A.xl", &get_ExcIEEEST3A_xl); + get_map.emplace("ExcIEEEST3A.ka", &get_ExcIEEEST3A_ka); + get_map.emplace("ExcIEEEST3A.kc", &get_ExcIEEEST3A_kc); + get_map.emplace("ExcIEEEST3A.kg", &get_ExcIEEEST3A_kg); + get_map.emplace("ExcIEEEST3A.ki", &get_ExcIEEEST3A_ki); + get_map.emplace("ExcIEEEST3A.km", &get_ExcIEEEST3A_km); + get_map.emplace("ExcIEEEST3A.kp", &get_ExcIEEEST3A_kp); + get_map.emplace("ExcIEEEST3A.ta", &get_ExcIEEEST3A_ta); + get_map.emplace("ExcIEEEST3A.tb", &get_ExcIEEEST3A_tb); + get_map.emplace("ExcIEEEST3A.tc", &get_ExcIEEEST3A_tc); + get_map.emplace("ExcIEEEST3A.thetap", &get_ExcIEEEST3A_thetap); + get_map.emplace("ExcIEEEST3A.tm", &get_ExcIEEEST3A_tm); + get_map.emplace("ExcIEEEST3A.vbmax", &get_ExcIEEEST3A_vbmax); + get_map.emplace("ExcIEEEST3A.vgmax", &get_ExcIEEEST3A_vgmax); + get_map.emplace("ExcIEEEST3A.vimax", &get_ExcIEEEST3A_vimax); + get_map.emplace("ExcIEEEST3A.vimin", &get_ExcIEEEST3A_vimin); + get_map.emplace("ExcIEEEST3A.vmmax", &get_ExcIEEEST3A_vmmax); + get_map.emplace("ExcIEEEST3A.vmmin", &get_ExcIEEEST3A_vmmin); + get_map.emplace("ExcIEEEST3A.vrmax", &get_ExcIEEEST3A_vrmax); + get_map.emplace("ExcIEEEST3A.vrmin", &get_ExcIEEEST3A_vrmin); + get_map.emplace("ExcIEEEST3A.xl", &get_ExcIEEEST3A_xl); } void ExcIEEEST3A::addClassGetFnsToMap(std::map& get_map) const @@ -712,11 +744,25 @@ void ExcIEEEST3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST3A::declare() { return BaseClassDefiner(ExcIEEEST3A::addConstructToMap, ExcIEEEST3A::addPrimitiveAssignFnsToMap, ExcIEEEST3A::addClassAssignFnsToMap, ExcIEEEST3A::debugName); } +std::map ExcIEEEST3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST3A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST3A.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST3A.hpp index e2f7c6f05..e58fac5eb 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST3A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -90,8 +91,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -99,7 +107,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST3A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST4B.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST4B.cpp index 9912a54a6..6ffbf67f4 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST4B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST4B.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST4B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kpm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST4B::ExcIEEEST4B() {} ExcIEEEST4B::~ExcIEEEST4B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST4B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST4B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST4B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kpm", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.thetap", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.xl", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST4B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST4B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST4B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST4B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST4B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEST4B::debugString() const void ExcIEEEST4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST4B", &ExcIEEEST4B_factory); + factory_map.emplace("ExcIEEEST4B", &ExcIEEEST4B_factory); } void ExcIEEEST4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST4B.kc", &assign_ExcIEEEST4B_kc); - assign_map.emplace("cim:ExcIEEEST4B.kg", &assign_ExcIEEEST4B_kg); - assign_map.emplace("cim:ExcIEEEST4B.ki", &assign_ExcIEEEST4B_ki); - assign_map.emplace("cim:ExcIEEEST4B.kim", &assign_ExcIEEEST4B_kim); - assign_map.emplace("cim:ExcIEEEST4B.kir", &assign_ExcIEEEST4B_kir); - assign_map.emplace("cim:ExcIEEEST4B.kp", &assign_ExcIEEEST4B_kp); - assign_map.emplace("cim:ExcIEEEST4B.kpm", &assign_ExcIEEEST4B_kpm); - assign_map.emplace("cim:ExcIEEEST4B.kpr", &assign_ExcIEEEST4B_kpr); - assign_map.emplace("cim:ExcIEEEST4B.ta", &assign_ExcIEEEST4B_ta); - assign_map.emplace("cim:ExcIEEEST4B.thetap", &assign_ExcIEEEST4B_thetap); - assign_map.emplace("cim:ExcIEEEST4B.vbmax", &assign_ExcIEEEST4B_vbmax); - assign_map.emplace("cim:ExcIEEEST4B.vmmax", &assign_ExcIEEEST4B_vmmax); - assign_map.emplace("cim:ExcIEEEST4B.vmmin", &assign_ExcIEEEST4B_vmmin); - assign_map.emplace("cim:ExcIEEEST4B.vrmax", &assign_ExcIEEEST4B_vrmax); - assign_map.emplace("cim:ExcIEEEST4B.vrmin", &assign_ExcIEEEST4B_vrmin); - assign_map.emplace("cim:ExcIEEEST4B.xl", &assign_ExcIEEEST4B_xl); + assign_map.emplace("ExcIEEEST4B.kc", &assign_ExcIEEEST4B_kc); + assign_map.emplace("ExcIEEEST4B.kg", &assign_ExcIEEEST4B_kg); + assign_map.emplace("ExcIEEEST4B.ki", &assign_ExcIEEEST4B_ki); + assign_map.emplace("ExcIEEEST4B.kim", &assign_ExcIEEEST4B_kim); + assign_map.emplace("ExcIEEEST4B.kir", &assign_ExcIEEEST4B_kir); + assign_map.emplace("ExcIEEEST4B.kp", &assign_ExcIEEEST4B_kp); + assign_map.emplace("ExcIEEEST4B.kpm", &assign_ExcIEEEST4B_kpm); + assign_map.emplace("ExcIEEEST4B.kpr", &assign_ExcIEEEST4B_kpr); + assign_map.emplace("ExcIEEEST4B.ta", &assign_ExcIEEEST4B_ta); + assign_map.emplace("ExcIEEEST4B.thetap", &assign_ExcIEEEST4B_thetap); + assign_map.emplace("ExcIEEEST4B.vbmax", &assign_ExcIEEEST4B_vbmax); + assign_map.emplace("ExcIEEEST4B.vmmax", &assign_ExcIEEEST4B_vmmax); + assign_map.emplace("ExcIEEEST4B.vmmin", &assign_ExcIEEEST4B_vmmin); + assign_map.emplace("ExcIEEEST4B.vrmax", &assign_ExcIEEEST4B_vrmax); + assign_map.emplace("ExcIEEEST4B.vrmin", &assign_ExcIEEEST4B_vrmin); + assign_map.emplace("ExcIEEEST4B.xl", &assign_ExcIEEEST4B_xl); } void ExcIEEEST4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEST4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST4B.kc", &get_ExcIEEEST4B_kc); - get_map.emplace("cim:ExcIEEEST4B.kg", &get_ExcIEEEST4B_kg); - get_map.emplace("cim:ExcIEEEST4B.ki", &get_ExcIEEEST4B_ki); - get_map.emplace("cim:ExcIEEEST4B.kim", &get_ExcIEEEST4B_kim); - get_map.emplace("cim:ExcIEEEST4B.kir", &get_ExcIEEEST4B_kir); - get_map.emplace("cim:ExcIEEEST4B.kp", &get_ExcIEEEST4B_kp); - get_map.emplace("cim:ExcIEEEST4B.kpm", &get_ExcIEEEST4B_kpm); - get_map.emplace("cim:ExcIEEEST4B.kpr", &get_ExcIEEEST4B_kpr); - get_map.emplace("cim:ExcIEEEST4B.ta", &get_ExcIEEEST4B_ta); - get_map.emplace("cim:ExcIEEEST4B.thetap", &get_ExcIEEEST4B_thetap); - get_map.emplace("cim:ExcIEEEST4B.vbmax", &get_ExcIEEEST4B_vbmax); - get_map.emplace("cim:ExcIEEEST4B.vmmax", &get_ExcIEEEST4B_vmmax); - get_map.emplace("cim:ExcIEEEST4B.vmmin", &get_ExcIEEEST4B_vmmin); - get_map.emplace("cim:ExcIEEEST4B.vrmax", &get_ExcIEEEST4B_vrmax); - get_map.emplace("cim:ExcIEEEST4B.vrmin", &get_ExcIEEEST4B_vrmin); - get_map.emplace("cim:ExcIEEEST4B.xl", &get_ExcIEEEST4B_xl); + get_map.emplace("ExcIEEEST4B.kc", &get_ExcIEEEST4B_kc); + get_map.emplace("ExcIEEEST4B.kg", &get_ExcIEEEST4B_kg); + get_map.emplace("ExcIEEEST4B.ki", &get_ExcIEEEST4B_ki); + get_map.emplace("ExcIEEEST4B.kim", &get_ExcIEEEST4B_kim); + get_map.emplace("ExcIEEEST4B.kir", &get_ExcIEEEST4B_kir); + get_map.emplace("ExcIEEEST4B.kp", &get_ExcIEEEST4B_kp); + get_map.emplace("ExcIEEEST4B.kpm", &get_ExcIEEEST4B_kpm); + get_map.emplace("ExcIEEEST4B.kpr", &get_ExcIEEEST4B_kpr); + get_map.emplace("ExcIEEEST4B.ta", &get_ExcIEEEST4B_ta); + get_map.emplace("ExcIEEEST4B.thetap", &get_ExcIEEEST4B_thetap); + get_map.emplace("ExcIEEEST4B.vbmax", &get_ExcIEEEST4B_vbmax); + get_map.emplace("ExcIEEEST4B.vmmax", &get_ExcIEEEST4B_vmmax); + get_map.emplace("ExcIEEEST4B.vmmin", &get_ExcIEEEST4B_vmmin); + get_map.emplace("ExcIEEEST4B.vrmax", &get_ExcIEEEST4B_vrmax); + get_map.emplace("ExcIEEEST4B.vrmin", &get_ExcIEEEST4B_vrmin); + get_map.emplace("ExcIEEEST4B.xl", &get_ExcIEEEST4B_xl); } void ExcIEEEST4B::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEST4B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST4B::declare() { return BaseClassDefiner(ExcIEEEST4B::addConstructToMap, ExcIEEEST4B::addPrimitiveAssignFnsToMap, ExcIEEEST4B::addClassAssignFnsToMap, ExcIEEEST4B::debugName); } +std::map ExcIEEEST4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST4B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST4B.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST4B.hpp index b3ac3afe3..dab765741 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST4B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -78,8 +79,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -87,7 +95,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST4B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST5B.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST5B.cpp index 49f99553d..0f1a05d5e 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST5B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST5B.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST5B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST5B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tob1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tob2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.toc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.toc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tub1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tub2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tuc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tuc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST5B::ExcIEEEST5B() {} ExcIEEEST5B::~ExcIEEEST5B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST5B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST5B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST5B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.kr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.t1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tb1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tb2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tob1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tob2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.toc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.toc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tub1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tub2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tuc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tuc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST5B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST5B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST5B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST5B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST5B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST5B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST5B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST5B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* ExcIEEEST5B::debugString() const void ExcIEEEST5B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST5B", &ExcIEEEST5B_factory); + factory_map.emplace("ExcIEEEST5B", &ExcIEEEST5B_factory); } void ExcIEEEST5B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST5B.kc", &assign_ExcIEEEST5B_kc); - assign_map.emplace("cim:ExcIEEEST5B.kr", &assign_ExcIEEEST5B_kr); - assign_map.emplace("cim:ExcIEEEST5B.t1", &assign_ExcIEEEST5B_t1); - assign_map.emplace("cim:ExcIEEEST5B.tb1", &assign_ExcIEEEST5B_tb1); - assign_map.emplace("cim:ExcIEEEST5B.tb2", &assign_ExcIEEEST5B_tb2); - assign_map.emplace("cim:ExcIEEEST5B.tc1", &assign_ExcIEEEST5B_tc1); - assign_map.emplace("cim:ExcIEEEST5B.tc2", &assign_ExcIEEEST5B_tc2); - assign_map.emplace("cim:ExcIEEEST5B.tob1", &assign_ExcIEEEST5B_tob1); - assign_map.emplace("cim:ExcIEEEST5B.tob2", &assign_ExcIEEEST5B_tob2); - assign_map.emplace("cim:ExcIEEEST5B.toc1", &assign_ExcIEEEST5B_toc1); - assign_map.emplace("cim:ExcIEEEST5B.toc2", &assign_ExcIEEEST5B_toc2); - assign_map.emplace("cim:ExcIEEEST5B.tub1", &assign_ExcIEEEST5B_tub1); - assign_map.emplace("cim:ExcIEEEST5B.tub2", &assign_ExcIEEEST5B_tub2); - assign_map.emplace("cim:ExcIEEEST5B.tuc1", &assign_ExcIEEEST5B_tuc1); - assign_map.emplace("cim:ExcIEEEST5B.tuc2", &assign_ExcIEEEST5B_tuc2); - assign_map.emplace("cim:ExcIEEEST5B.vrmax", &assign_ExcIEEEST5B_vrmax); - assign_map.emplace("cim:ExcIEEEST5B.vrmin", &assign_ExcIEEEST5B_vrmin); + assign_map.emplace("ExcIEEEST5B.kc", &assign_ExcIEEEST5B_kc); + assign_map.emplace("ExcIEEEST5B.kr", &assign_ExcIEEEST5B_kr); + assign_map.emplace("ExcIEEEST5B.t1", &assign_ExcIEEEST5B_t1); + assign_map.emplace("ExcIEEEST5B.tb1", &assign_ExcIEEEST5B_tb1); + assign_map.emplace("ExcIEEEST5B.tb2", &assign_ExcIEEEST5B_tb2); + assign_map.emplace("ExcIEEEST5B.tc1", &assign_ExcIEEEST5B_tc1); + assign_map.emplace("ExcIEEEST5B.tc2", &assign_ExcIEEEST5B_tc2); + assign_map.emplace("ExcIEEEST5B.tob1", &assign_ExcIEEEST5B_tob1); + assign_map.emplace("ExcIEEEST5B.tob2", &assign_ExcIEEEST5B_tob2); + assign_map.emplace("ExcIEEEST5B.toc1", &assign_ExcIEEEST5B_toc1); + assign_map.emplace("ExcIEEEST5B.toc2", &assign_ExcIEEEST5B_toc2); + assign_map.emplace("ExcIEEEST5B.tub1", &assign_ExcIEEEST5B_tub1); + assign_map.emplace("ExcIEEEST5B.tub2", &assign_ExcIEEEST5B_tub2); + assign_map.emplace("ExcIEEEST5B.tuc1", &assign_ExcIEEEST5B_tuc1); + assign_map.emplace("ExcIEEEST5B.tuc2", &assign_ExcIEEEST5B_tuc2); + assign_map.emplace("ExcIEEEST5B.vrmax", &assign_ExcIEEEST5B_vrmax); + assign_map.emplace("ExcIEEEST5B.vrmin", &assign_ExcIEEEST5B_vrmin); } void ExcIEEEST5B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void ExcIEEEST5B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST5B.kc", &get_ExcIEEEST5B_kc); - get_map.emplace("cim:ExcIEEEST5B.kr", &get_ExcIEEEST5B_kr); - get_map.emplace("cim:ExcIEEEST5B.t1", &get_ExcIEEEST5B_t1); - get_map.emplace("cim:ExcIEEEST5B.tb1", &get_ExcIEEEST5B_tb1); - get_map.emplace("cim:ExcIEEEST5B.tb2", &get_ExcIEEEST5B_tb2); - get_map.emplace("cim:ExcIEEEST5B.tc1", &get_ExcIEEEST5B_tc1); - get_map.emplace("cim:ExcIEEEST5B.tc2", &get_ExcIEEEST5B_tc2); - get_map.emplace("cim:ExcIEEEST5B.tob1", &get_ExcIEEEST5B_tob1); - get_map.emplace("cim:ExcIEEEST5B.tob2", &get_ExcIEEEST5B_tob2); - get_map.emplace("cim:ExcIEEEST5B.toc1", &get_ExcIEEEST5B_toc1); - get_map.emplace("cim:ExcIEEEST5B.toc2", &get_ExcIEEEST5B_toc2); - get_map.emplace("cim:ExcIEEEST5B.tub1", &get_ExcIEEEST5B_tub1); - get_map.emplace("cim:ExcIEEEST5B.tub2", &get_ExcIEEEST5B_tub2); - get_map.emplace("cim:ExcIEEEST5B.tuc1", &get_ExcIEEEST5B_tuc1); - get_map.emplace("cim:ExcIEEEST5B.tuc2", &get_ExcIEEEST5B_tuc2); - get_map.emplace("cim:ExcIEEEST5B.vrmax", &get_ExcIEEEST5B_vrmax); - get_map.emplace("cim:ExcIEEEST5B.vrmin", &get_ExcIEEEST5B_vrmin); + get_map.emplace("ExcIEEEST5B.kc", &get_ExcIEEEST5B_kc); + get_map.emplace("ExcIEEEST5B.kr", &get_ExcIEEEST5B_kr); + get_map.emplace("ExcIEEEST5B.t1", &get_ExcIEEEST5B_t1); + get_map.emplace("ExcIEEEST5B.tb1", &get_ExcIEEEST5B_tb1); + get_map.emplace("ExcIEEEST5B.tb2", &get_ExcIEEEST5B_tb2); + get_map.emplace("ExcIEEEST5B.tc1", &get_ExcIEEEST5B_tc1); + get_map.emplace("ExcIEEEST5B.tc2", &get_ExcIEEEST5B_tc2); + get_map.emplace("ExcIEEEST5B.tob1", &get_ExcIEEEST5B_tob1); + get_map.emplace("ExcIEEEST5B.tob2", &get_ExcIEEEST5B_tob2); + get_map.emplace("ExcIEEEST5B.toc1", &get_ExcIEEEST5B_toc1); + get_map.emplace("ExcIEEEST5B.toc2", &get_ExcIEEEST5B_toc2); + get_map.emplace("ExcIEEEST5B.tub1", &get_ExcIEEEST5B_tub1); + get_map.emplace("ExcIEEEST5B.tub2", &get_ExcIEEEST5B_tub2); + get_map.emplace("ExcIEEEST5B.tuc1", &get_ExcIEEEST5B_tuc1); + get_map.emplace("ExcIEEEST5B.tuc2", &get_ExcIEEEST5B_tuc2); + get_map.emplace("ExcIEEEST5B.vrmax", &get_ExcIEEEST5B_vrmax); + get_map.emplace("ExcIEEEST5B.vrmin", &get_ExcIEEEST5B_vrmin); } void ExcIEEEST5B::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void ExcIEEEST5B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST5B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST5B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST5B::declare() { return BaseClassDefiner(ExcIEEEST5B::addConstructToMap, ExcIEEEST5B::addPrimitiveAssignFnsToMap, ExcIEEEST5B::addClassAssignFnsToMap, ExcIEEEST5B::debugName); } +std::map ExcIEEEST5B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST5B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST5B.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST5B.hpp index c099e151a..36fdfe650 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST5B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST5B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -80,8 +81,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -89,7 +97,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST5B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST6B.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST6B.cpp index 46aac194f..bd3a7fea5 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST6B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST6B.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST6B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST6B.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kci", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST6B::ExcIEEEST6B() {} ExcIEEEST6B::~ExcIEEEST6B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST6B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST6B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST6B.ilr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kci", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kff", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.klr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.km", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.tg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST6B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST6B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST6B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST6B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST6B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST6B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST6B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST6B_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcIEEEST6B::debugString() const void ExcIEEEST6B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST6B", &ExcIEEEST6B_factory); + factory_map.emplace("ExcIEEEST6B", &ExcIEEEST6B_factory); } void ExcIEEEST6B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST6B.ilr", &assign_ExcIEEEST6B_ilr); - assign_map.emplace("cim:ExcIEEEST6B.kci", &assign_ExcIEEEST6B_kci); - assign_map.emplace("cim:ExcIEEEST6B.kff", &assign_ExcIEEEST6B_kff); - assign_map.emplace("cim:ExcIEEEST6B.kg", &assign_ExcIEEEST6B_kg); - assign_map.emplace("cim:ExcIEEEST6B.kia", &assign_ExcIEEEST6B_kia); - assign_map.emplace("cim:ExcIEEEST6B.klr", &assign_ExcIEEEST6B_klr); - assign_map.emplace("cim:ExcIEEEST6B.km", &assign_ExcIEEEST6B_km); - assign_map.emplace("cim:ExcIEEEST6B.kpa", &assign_ExcIEEEST6B_kpa); - assign_map.emplace("cim:ExcIEEEST6B.oelin", &assign_ExcIEEEST6B_oelin); - assign_map.emplace("cim:ExcIEEEST6B.tg", &assign_ExcIEEEST6B_tg); - assign_map.emplace("cim:ExcIEEEST6B.vamax", &assign_ExcIEEEST6B_vamax); - assign_map.emplace("cim:ExcIEEEST6B.vamin", &assign_ExcIEEEST6B_vamin); - assign_map.emplace("cim:ExcIEEEST6B.vrmax", &assign_ExcIEEEST6B_vrmax); - assign_map.emplace("cim:ExcIEEEST6B.vrmin", &assign_ExcIEEEST6B_vrmin); + assign_map.emplace("ExcIEEEST6B.ilr", &assign_ExcIEEEST6B_ilr); + assign_map.emplace("ExcIEEEST6B.kci", &assign_ExcIEEEST6B_kci); + assign_map.emplace("ExcIEEEST6B.kff", &assign_ExcIEEEST6B_kff); + assign_map.emplace("ExcIEEEST6B.kg", &assign_ExcIEEEST6B_kg); + assign_map.emplace("ExcIEEEST6B.kia", &assign_ExcIEEEST6B_kia); + assign_map.emplace("ExcIEEEST6B.klr", &assign_ExcIEEEST6B_klr); + assign_map.emplace("ExcIEEEST6B.km", &assign_ExcIEEEST6B_km); + assign_map.emplace("ExcIEEEST6B.kpa", &assign_ExcIEEEST6B_kpa); + assign_map.emplace("ExcIEEEST6B.oelin", &assign_ExcIEEEST6B_oelin); + assign_map.emplace("ExcIEEEST6B.tg", &assign_ExcIEEEST6B_tg); + assign_map.emplace("ExcIEEEST6B.vamax", &assign_ExcIEEEST6B_vamax); + assign_map.emplace("ExcIEEEST6B.vamin", &assign_ExcIEEEST6B_vamin); + assign_map.emplace("ExcIEEEST6B.vrmax", &assign_ExcIEEEST6B_vrmax); + assign_map.emplace("ExcIEEEST6B.vrmin", &assign_ExcIEEEST6B_vrmin); } void ExcIEEEST6B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,19 +526,19 @@ void ExcIEEEST6B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST6B.ilr", &get_ExcIEEEST6B_ilr); - get_map.emplace("cim:ExcIEEEST6B.kci", &get_ExcIEEEST6B_kci); - get_map.emplace("cim:ExcIEEEST6B.kff", &get_ExcIEEEST6B_kff); - get_map.emplace("cim:ExcIEEEST6B.kg", &get_ExcIEEEST6B_kg); - get_map.emplace("cim:ExcIEEEST6B.kia", &get_ExcIEEEST6B_kia); - get_map.emplace("cim:ExcIEEEST6B.klr", &get_ExcIEEEST6B_klr); - get_map.emplace("cim:ExcIEEEST6B.km", &get_ExcIEEEST6B_km); - get_map.emplace("cim:ExcIEEEST6B.kpa", &get_ExcIEEEST6B_kpa); - get_map.emplace("cim:ExcIEEEST6B.tg", &get_ExcIEEEST6B_tg); - get_map.emplace("cim:ExcIEEEST6B.vamax", &get_ExcIEEEST6B_vamax); - get_map.emplace("cim:ExcIEEEST6B.vamin", &get_ExcIEEEST6B_vamin); - get_map.emplace("cim:ExcIEEEST6B.vrmax", &get_ExcIEEEST6B_vrmax); - get_map.emplace("cim:ExcIEEEST6B.vrmin", &get_ExcIEEEST6B_vrmin); + get_map.emplace("ExcIEEEST6B.ilr", &get_ExcIEEEST6B_ilr); + get_map.emplace("ExcIEEEST6B.kci", &get_ExcIEEEST6B_kci); + get_map.emplace("ExcIEEEST6B.kff", &get_ExcIEEEST6B_kff); + get_map.emplace("ExcIEEEST6B.kg", &get_ExcIEEEST6B_kg); + get_map.emplace("ExcIEEEST6B.kia", &get_ExcIEEEST6B_kia); + get_map.emplace("ExcIEEEST6B.klr", &get_ExcIEEEST6B_klr); + get_map.emplace("ExcIEEEST6B.km", &get_ExcIEEEST6B_km); + get_map.emplace("ExcIEEEST6B.kpa", &get_ExcIEEEST6B_kpa); + get_map.emplace("ExcIEEEST6B.tg", &get_ExcIEEEST6B_tg); + get_map.emplace("ExcIEEEST6B.vamax", &get_ExcIEEEST6B_vamax); + get_map.emplace("ExcIEEEST6B.vamin", &get_ExcIEEEST6B_vamin); + get_map.emplace("ExcIEEEST6B.vrmax", &get_ExcIEEEST6B_vrmax); + get_map.emplace("ExcIEEEST6B.vrmin", &get_ExcIEEEST6B_vrmin); } void ExcIEEEST6B::addClassGetFnsToMap(std::map& get_map) const @@ -517,7 +549,13 @@ void ExcIEEEST6B::addClassGetFnsToMap(std::map& void ExcIEEEST6B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST6B.oelin", &get_ExcIEEEST6B_oelin); + get_map.emplace("ExcIEEEST6B.oelin", &get_ExcIEEEST6B_oelin); +} + +bool ExcIEEEST6B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST6B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST6B::declare() @@ -525,6 +563,14 @@ const BaseClassDefiner ExcIEEEST6B::declare() return BaseClassDefiner(ExcIEEEST6B::addConstructToMap, ExcIEEEST6B::addPrimitiveAssignFnsToMap, ExcIEEEST6B::addClassAssignFnsToMap, ExcIEEEST6B::debugName); } +std::map ExcIEEEST6B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST6B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST6B.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST6B.hpp index 554b6609b..5c11dbc49 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST6B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST6B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST6BOELselectorKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST6B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST7B.cpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST7B.cpp index 20513a7f9..76d8c6b8a 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST7B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST7B.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST7B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST7B::ExcIEEEST7B() {} ExcIEEEST7B::~ExcIEEEST7B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST7B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST7B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST7B.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST7B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST7B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST7B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST7B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST7B_kh(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcIEEEST7B::debugString() const void ExcIEEEST7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST7B", &ExcIEEEST7B_factory); + factory_map.emplace("ExcIEEEST7B", &ExcIEEEST7B_factory); } void ExcIEEEST7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST7B.kh", &assign_ExcIEEEST7B_kh); - assign_map.emplace("cim:ExcIEEEST7B.kia", &assign_ExcIEEEST7B_kia); - assign_map.emplace("cim:ExcIEEEST7B.kl", &assign_ExcIEEEST7B_kl); - assign_map.emplace("cim:ExcIEEEST7B.kpa", &assign_ExcIEEEST7B_kpa); - assign_map.emplace("cim:ExcIEEEST7B.oelin", &assign_ExcIEEEST7B_oelin); - assign_map.emplace("cim:ExcIEEEST7B.tb", &assign_ExcIEEEST7B_tb); - assign_map.emplace("cim:ExcIEEEST7B.tc", &assign_ExcIEEEST7B_tc); - assign_map.emplace("cim:ExcIEEEST7B.tf", &assign_ExcIEEEST7B_tf); - assign_map.emplace("cim:ExcIEEEST7B.tg", &assign_ExcIEEEST7B_tg); - assign_map.emplace("cim:ExcIEEEST7B.tia", &assign_ExcIEEEST7B_tia); - assign_map.emplace("cim:ExcIEEEST7B.uelin", &assign_ExcIEEEST7B_uelin); - assign_map.emplace("cim:ExcIEEEST7B.vmax", &assign_ExcIEEEST7B_vmax); - assign_map.emplace("cim:ExcIEEEST7B.vmin", &assign_ExcIEEEST7B_vmin); - assign_map.emplace("cim:ExcIEEEST7B.vrmax", &assign_ExcIEEEST7B_vrmax); - assign_map.emplace("cim:ExcIEEEST7B.vrmin", &assign_ExcIEEEST7B_vrmin); + assign_map.emplace("ExcIEEEST7B.kh", &assign_ExcIEEEST7B_kh); + assign_map.emplace("ExcIEEEST7B.kia", &assign_ExcIEEEST7B_kia); + assign_map.emplace("ExcIEEEST7B.kl", &assign_ExcIEEEST7B_kl); + assign_map.emplace("ExcIEEEST7B.kpa", &assign_ExcIEEEST7B_kpa); + assign_map.emplace("ExcIEEEST7B.oelin", &assign_ExcIEEEST7B_oelin); + assign_map.emplace("ExcIEEEST7B.tb", &assign_ExcIEEEST7B_tb); + assign_map.emplace("ExcIEEEST7B.tc", &assign_ExcIEEEST7B_tc); + assign_map.emplace("ExcIEEEST7B.tf", &assign_ExcIEEEST7B_tf); + assign_map.emplace("ExcIEEEST7B.tg", &assign_ExcIEEEST7B_tg); + assign_map.emplace("ExcIEEEST7B.tia", &assign_ExcIEEEST7B_tia); + assign_map.emplace("ExcIEEEST7B.uelin", &assign_ExcIEEEST7B_uelin); + assign_map.emplace("ExcIEEEST7B.vmax", &assign_ExcIEEEST7B_vmax); + assign_map.emplace("ExcIEEEST7B.vmin", &assign_ExcIEEEST7B_vmin); + assign_map.emplace("ExcIEEEST7B.vrmax", &assign_ExcIEEEST7B_vrmax); + assign_map.emplace("ExcIEEEST7B.vrmin", &assign_ExcIEEEST7B_vrmin); } void ExcIEEEST7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,19 +557,19 @@ void ExcIEEEST7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST7B.kh", &get_ExcIEEEST7B_kh); - get_map.emplace("cim:ExcIEEEST7B.kia", &get_ExcIEEEST7B_kia); - get_map.emplace("cim:ExcIEEEST7B.kl", &get_ExcIEEEST7B_kl); - get_map.emplace("cim:ExcIEEEST7B.kpa", &get_ExcIEEEST7B_kpa); - get_map.emplace("cim:ExcIEEEST7B.tb", &get_ExcIEEEST7B_tb); - get_map.emplace("cim:ExcIEEEST7B.tc", &get_ExcIEEEST7B_tc); - get_map.emplace("cim:ExcIEEEST7B.tf", &get_ExcIEEEST7B_tf); - get_map.emplace("cim:ExcIEEEST7B.tg", &get_ExcIEEEST7B_tg); - get_map.emplace("cim:ExcIEEEST7B.tia", &get_ExcIEEEST7B_tia); - get_map.emplace("cim:ExcIEEEST7B.vmax", &get_ExcIEEEST7B_vmax); - get_map.emplace("cim:ExcIEEEST7B.vmin", &get_ExcIEEEST7B_vmin); - get_map.emplace("cim:ExcIEEEST7B.vrmax", &get_ExcIEEEST7B_vrmax); - get_map.emplace("cim:ExcIEEEST7B.vrmin", &get_ExcIEEEST7B_vrmin); + get_map.emplace("ExcIEEEST7B.kh", &get_ExcIEEEST7B_kh); + get_map.emplace("ExcIEEEST7B.kia", &get_ExcIEEEST7B_kia); + get_map.emplace("ExcIEEEST7B.kl", &get_ExcIEEEST7B_kl); + get_map.emplace("ExcIEEEST7B.kpa", &get_ExcIEEEST7B_kpa); + get_map.emplace("ExcIEEEST7B.tb", &get_ExcIEEEST7B_tb); + get_map.emplace("ExcIEEEST7B.tc", &get_ExcIEEEST7B_tc); + get_map.emplace("ExcIEEEST7B.tf", &get_ExcIEEEST7B_tf); + get_map.emplace("ExcIEEEST7B.tg", &get_ExcIEEEST7B_tg); + get_map.emplace("ExcIEEEST7B.tia", &get_ExcIEEEST7B_tia); + get_map.emplace("ExcIEEEST7B.vmax", &get_ExcIEEEST7B_vmax); + get_map.emplace("ExcIEEEST7B.vmin", &get_ExcIEEEST7B_vmin); + get_map.emplace("ExcIEEEST7B.vrmax", &get_ExcIEEEST7B_vrmax); + get_map.emplace("ExcIEEEST7B.vrmin", &get_ExcIEEEST7B_vrmin); } void ExcIEEEST7B::addClassGetFnsToMap(std::map& get_map) const @@ -548,8 +580,14 @@ void ExcIEEEST7B::addClassGetFnsToMap(std::map& void ExcIEEEST7B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST7B.oelin", &get_ExcIEEEST7B_oelin); - get_map.emplace("cim:ExcIEEEST7B.uelin", &get_ExcIEEEST7B_uelin); + get_map.emplace("ExcIEEEST7B.oelin", &get_ExcIEEEST7B_oelin); + get_map.emplace("ExcIEEEST7B.uelin", &get_ExcIEEEST7B_uelin); +} + +bool ExcIEEEST7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST7B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST7B::declare() @@ -557,6 +595,14 @@ const BaseClassDefiner ExcIEEEST7B::declare() return BaseClassDefiner(ExcIEEEST7B::addConstructToMap, ExcIEEEST7B::addPrimitiveAssignFnsToMap, ExcIEEEST7B::addClassAssignFnsToMap, ExcIEEEST7B::debugName); } +std::map ExcIEEEST7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST7B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcIEEEST7B.hpp b/CGMES_2.4.15_16FEB2016/ExcIEEEST7B.hpp index d1428a0fe..fa841cf57 100644 --- a/CGMES_2.4.15_16FEB2016/ExcIEEEST7B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcIEEEST7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST7BOELselectorKind.hpp" #include "ExcST7BUELselectorKind.hpp" #include "PU.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST7B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcOEX3T.cpp b/CGMES_2.4.15_16FEB2016/ExcOEX3T.cpp index 3fc422d40..d9723b03a 100644 --- a/CGMES_2.4.15_16FEB2016/ExcOEX3T.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcOEX3T.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcOEX3T(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcOEX3T.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.see1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.see2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcOEX3T::ExcOEX3T() {} ExcOEX3T::~ExcOEX3T() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcOEX3T.e1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.e2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.ka", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kc", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kd", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.ke", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kf", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.see1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.see2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t3", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t4", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t5", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t6", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.te", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.tf", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcOEX3T::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcOEX3T::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcOEX3T::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcOEX3T::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcOEX3T::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcOEX3T::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcOEX3T::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcOEX3T::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcOEX3T::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcOEX3T_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcOEX3T::debugString() const void ExcOEX3T::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcOEX3T", &ExcOEX3T_factory); + factory_map.emplace("ExcOEX3T", &ExcOEX3T_factory); } void ExcOEX3T::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcOEX3T.e1", &assign_ExcOEX3T_e1); - assign_map.emplace("cim:ExcOEX3T.e2", &assign_ExcOEX3T_e2); - assign_map.emplace("cim:ExcOEX3T.ka", &assign_ExcOEX3T_ka); - assign_map.emplace("cim:ExcOEX3T.kc", &assign_ExcOEX3T_kc); - assign_map.emplace("cim:ExcOEX3T.kd", &assign_ExcOEX3T_kd); - assign_map.emplace("cim:ExcOEX3T.ke", &assign_ExcOEX3T_ke); - assign_map.emplace("cim:ExcOEX3T.kf", &assign_ExcOEX3T_kf); - assign_map.emplace("cim:ExcOEX3T.see1", &assign_ExcOEX3T_see1); - assign_map.emplace("cim:ExcOEX3T.see2", &assign_ExcOEX3T_see2); - assign_map.emplace("cim:ExcOEX3T.t1", &assign_ExcOEX3T_t1); - assign_map.emplace("cim:ExcOEX3T.t2", &assign_ExcOEX3T_t2); - assign_map.emplace("cim:ExcOEX3T.t3", &assign_ExcOEX3T_t3); - assign_map.emplace("cim:ExcOEX3T.t4", &assign_ExcOEX3T_t4); - assign_map.emplace("cim:ExcOEX3T.t5", &assign_ExcOEX3T_t5); - assign_map.emplace("cim:ExcOEX3T.t6", &assign_ExcOEX3T_t6); - assign_map.emplace("cim:ExcOEX3T.te", &assign_ExcOEX3T_te); - assign_map.emplace("cim:ExcOEX3T.tf", &assign_ExcOEX3T_tf); - assign_map.emplace("cim:ExcOEX3T.vrmax", &assign_ExcOEX3T_vrmax); - assign_map.emplace("cim:ExcOEX3T.vrmin", &assign_ExcOEX3T_vrmin); + assign_map.emplace("ExcOEX3T.e1", &assign_ExcOEX3T_e1); + assign_map.emplace("ExcOEX3T.e2", &assign_ExcOEX3T_e2); + assign_map.emplace("ExcOEX3T.ka", &assign_ExcOEX3T_ka); + assign_map.emplace("ExcOEX3T.kc", &assign_ExcOEX3T_kc); + assign_map.emplace("ExcOEX3T.kd", &assign_ExcOEX3T_kd); + assign_map.emplace("ExcOEX3T.ke", &assign_ExcOEX3T_ke); + assign_map.emplace("ExcOEX3T.kf", &assign_ExcOEX3T_kf); + assign_map.emplace("ExcOEX3T.see1", &assign_ExcOEX3T_see1); + assign_map.emplace("ExcOEX3T.see2", &assign_ExcOEX3T_see2); + assign_map.emplace("ExcOEX3T.t1", &assign_ExcOEX3T_t1); + assign_map.emplace("ExcOEX3T.t2", &assign_ExcOEX3T_t2); + assign_map.emplace("ExcOEX3T.t3", &assign_ExcOEX3T_t3); + assign_map.emplace("ExcOEX3T.t4", &assign_ExcOEX3T_t4); + assign_map.emplace("ExcOEX3T.t5", &assign_ExcOEX3T_t5); + assign_map.emplace("ExcOEX3T.t6", &assign_ExcOEX3T_t6); + assign_map.emplace("ExcOEX3T.te", &assign_ExcOEX3T_te); + assign_map.emplace("ExcOEX3T.tf", &assign_ExcOEX3T_tf); + assign_map.emplace("ExcOEX3T.vrmax", &assign_ExcOEX3T_vrmax); + assign_map.emplace("ExcOEX3T.vrmin", &assign_ExcOEX3T_vrmin); } void ExcOEX3T::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcOEX3T::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcOEX3T.e1", &get_ExcOEX3T_e1); - get_map.emplace("cim:ExcOEX3T.e2", &get_ExcOEX3T_e2); - get_map.emplace("cim:ExcOEX3T.ka", &get_ExcOEX3T_ka); - get_map.emplace("cim:ExcOEX3T.kc", &get_ExcOEX3T_kc); - get_map.emplace("cim:ExcOEX3T.kd", &get_ExcOEX3T_kd); - get_map.emplace("cim:ExcOEX3T.ke", &get_ExcOEX3T_ke); - get_map.emplace("cim:ExcOEX3T.kf", &get_ExcOEX3T_kf); - get_map.emplace("cim:ExcOEX3T.see1", &get_ExcOEX3T_see1); - get_map.emplace("cim:ExcOEX3T.see2", &get_ExcOEX3T_see2); - get_map.emplace("cim:ExcOEX3T.t1", &get_ExcOEX3T_t1); - get_map.emplace("cim:ExcOEX3T.t2", &get_ExcOEX3T_t2); - get_map.emplace("cim:ExcOEX3T.t3", &get_ExcOEX3T_t3); - get_map.emplace("cim:ExcOEX3T.t4", &get_ExcOEX3T_t4); - get_map.emplace("cim:ExcOEX3T.t5", &get_ExcOEX3T_t5); - get_map.emplace("cim:ExcOEX3T.t6", &get_ExcOEX3T_t6); - get_map.emplace("cim:ExcOEX3T.te", &get_ExcOEX3T_te); - get_map.emplace("cim:ExcOEX3T.tf", &get_ExcOEX3T_tf); - get_map.emplace("cim:ExcOEX3T.vrmax", &get_ExcOEX3T_vrmax); - get_map.emplace("cim:ExcOEX3T.vrmin", &get_ExcOEX3T_vrmin); + get_map.emplace("ExcOEX3T.e1", &get_ExcOEX3T_e1); + get_map.emplace("ExcOEX3T.e2", &get_ExcOEX3T_e2); + get_map.emplace("ExcOEX3T.ka", &get_ExcOEX3T_ka); + get_map.emplace("ExcOEX3T.kc", &get_ExcOEX3T_kc); + get_map.emplace("ExcOEX3T.kd", &get_ExcOEX3T_kd); + get_map.emplace("ExcOEX3T.ke", &get_ExcOEX3T_ke); + get_map.emplace("ExcOEX3T.kf", &get_ExcOEX3T_kf); + get_map.emplace("ExcOEX3T.see1", &get_ExcOEX3T_see1); + get_map.emplace("ExcOEX3T.see2", &get_ExcOEX3T_see2); + get_map.emplace("ExcOEX3T.t1", &get_ExcOEX3T_t1); + get_map.emplace("ExcOEX3T.t2", &get_ExcOEX3T_t2); + get_map.emplace("ExcOEX3T.t3", &get_ExcOEX3T_t3); + get_map.emplace("ExcOEX3T.t4", &get_ExcOEX3T_t4); + get_map.emplace("ExcOEX3T.t5", &get_ExcOEX3T_t5); + get_map.emplace("ExcOEX3T.t6", &get_ExcOEX3T_t6); + get_map.emplace("ExcOEX3T.te", &get_ExcOEX3T_te); + get_map.emplace("ExcOEX3T.tf", &get_ExcOEX3T_tf); + get_map.emplace("ExcOEX3T.vrmax", &get_ExcOEX3T_vrmax); + get_map.emplace("ExcOEX3T.vrmin", &get_ExcOEX3T_vrmin); } void ExcOEX3T::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcOEX3T::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcOEX3T::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcOEX3T" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcOEX3T::declare() { return BaseClassDefiner(ExcOEX3T::addConstructToMap, ExcOEX3T::addPrimitiveAssignFnsToMap, ExcOEX3T::addClassAssignFnsToMap, ExcOEX3T::debugName); } +std::map ExcOEX3T::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcOEX3T_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcOEX3T.hpp b/CGMES_2.4.15_16FEB2016/ExcOEX3T.hpp index da7bc97eb..98f4229d5 100644 --- a/CGMES_2.4.15_16FEB2016/ExcOEX3T.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcOEX3T.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -86,8 +87,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -95,7 +103,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcOEX3T_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcPIC.cpp b/CGMES_2.4.15_16FEB2016/ExcPIC.cpp index dbace3479..3cc7cd35b 100644 --- a/CGMES_2.4.15_16FEB2016/ExcPIC.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcPIC.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcPIC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcPIC.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcPIC::ExcPIC() {} ExcPIC::~ExcPIC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcPIC.e1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.e2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcPIC.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ka", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kc", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ke", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kf", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ki", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kp", { CGMESProfile::DY, } }, - { "cim:ExcPIC.se1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.se2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta3", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta4", { CGMESProfile::DY, } }, - { "cim:ExcPIC.te", { CGMESProfile::DY, } }, - { "cim:ExcPIC.tf1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.tf2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vr1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vr2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcPIC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcPIC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcPIC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcPIC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcPIC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcPIC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcPIC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcPIC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcPIC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcPIC_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcPIC::debugString() const void ExcPIC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcPIC", &ExcPIC_factory); + factory_map.emplace("ExcPIC", &ExcPIC_factory); } void ExcPIC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcPIC.e1", &assign_ExcPIC_e1); - assign_map.emplace("cim:ExcPIC.e2", &assign_ExcPIC_e2); - assign_map.emplace("cim:ExcPIC.efdmax", &assign_ExcPIC_efdmax); - assign_map.emplace("cim:ExcPIC.efdmin", &assign_ExcPIC_efdmin); - assign_map.emplace("cim:ExcPIC.ka", &assign_ExcPIC_ka); - assign_map.emplace("cim:ExcPIC.kc", &assign_ExcPIC_kc); - assign_map.emplace("cim:ExcPIC.ke", &assign_ExcPIC_ke); - assign_map.emplace("cim:ExcPIC.kf", &assign_ExcPIC_kf); - assign_map.emplace("cim:ExcPIC.ki", &assign_ExcPIC_ki); - assign_map.emplace("cim:ExcPIC.kp", &assign_ExcPIC_kp); - assign_map.emplace("cim:ExcPIC.se1", &assign_ExcPIC_se1); - assign_map.emplace("cim:ExcPIC.se2", &assign_ExcPIC_se2); - assign_map.emplace("cim:ExcPIC.ta1", &assign_ExcPIC_ta1); - assign_map.emplace("cim:ExcPIC.ta2", &assign_ExcPIC_ta2); - assign_map.emplace("cim:ExcPIC.ta3", &assign_ExcPIC_ta3); - assign_map.emplace("cim:ExcPIC.ta4", &assign_ExcPIC_ta4); - assign_map.emplace("cim:ExcPIC.te", &assign_ExcPIC_te); - assign_map.emplace("cim:ExcPIC.tf1", &assign_ExcPIC_tf1); - assign_map.emplace("cim:ExcPIC.tf2", &assign_ExcPIC_tf2); - assign_map.emplace("cim:ExcPIC.vr1", &assign_ExcPIC_vr1); - assign_map.emplace("cim:ExcPIC.vr2", &assign_ExcPIC_vr2); - assign_map.emplace("cim:ExcPIC.vrmax", &assign_ExcPIC_vrmax); - assign_map.emplace("cim:ExcPIC.vrmin", &assign_ExcPIC_vrmin); + assign_map.emplace("ExcPIC.e1", &assign_ExcPIC_e1); + assign_map.emplace("ExcPIC.e2", &assign_ExcPIC_e2); + assign_map.emplace("ExcPIC.efdmax", &assign_ExcPIC_efdmax); + assign_map.emplace("ExcPIC.efdmin", &assign_ExcPIC_efdmin); + assign_map.emplace("ExcPIC.ka", &assign_ExcPIC_ka); + assign_map.emplace("ExcPIC.kc", &assign_ExcPIC_kc); + assign_map.emplace("ExcPIC.ke", &assign_ExcPIC_ke); + assign_map.emplace("ExcPIC.kf", &assign_ExcPIC_kf); + assign_map.emplace("ExcPIC.ki", &assign_ExcPIC_ki); + assign_map.emplace("ExcPIC.kp", &assign_ExcPIC_kp); + assign_map.emplace("ExcPIC.se1", &assign_ExcPIC_se1); + assign_map.emplace("ExcPIC.se2", &assign_ExcPIC_se2); + assign_map.emplace("ExcPIC.ta1", &assign_ExcPIC_ta1); + assign_map.emplace("ExcPIC.ta2", &assign_ExcPIC_ta2); + assign_map.emplace("ExcPIC.ta3", &assign_ExcPIC_ta3); + assign_map.emplace("ExcPIC.ta4", &assign_ExcPIC_ta4); + assign_map.emplace("ExcPIC.te", &assign_ExcPIC_te); + assign_map.emplace("ExcPIC.tf1", &assign_ExcPIC_tf1); + assign_map.emplace("ExcPIC.tf2", &assign_ExcPIC_tf2); + assign_map.emplace("ExcPIC.vr1", &assign_ExcPIC_vr1); + assign_map.emplace("ExcPIC.vr2", &assign_ExcPIC_vr2); + assign_map.emplace("ExcPIC.vrmax", &assign_ExcPIC_vrmax); + assign_map.emplace("ExcPIC.vrmin", &assign_ExcPIC_vrmin); } void ExcPIC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcPIC::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcPIC.e1", &get_ExcPIC_e1); - get_map.emplace("cim:ExcPIC.e2", &get_ExcPIC_e2); - get_map.emplace("cim:ExcPIC.efdmax", &get_ExcPIC_efdmax); - get_map.emplace("cim:ExcPIC.efdmin", &get_ExcPIC_efdmin); - get_map.emplace("cim:ExcPIC.ka", &get_ExcPIC_ka); - get_map.emplace("cim:ExcPIC.kc", &get_ExcPIC_kc); - get_map.emplace("cim:ExcPIC.ke", &get_ExcPIC_ke); - get_map.emplace("cim:ExcPIC.kf", &get_ExcPIC_kf); - get_map.emplace("cim:ExcPIC.ki", &get_ExcPIC_ki); - get_map.emplace("cim:ExcPIC.kp", &get_ExcPIC_kp); - get_map.emplace("cim:ExcPIC.se1", &get_ExcPIC_se1); - get_map.emplace("cim:ExcPIC.se2", &get_ExcPIC_se2); - get_map.emplace("cim:ExcPIC.ta1", &get_ExcPIC_ta1); - get_map.emplace("cim:ExcPIC.ta2", &get_ExcPIC_ta2); - get_map.emplace("cim:ExcPIC.ta3", &get_ExcPIC_ta3); - get_map.emplace("cim:ExcPIC.ta4", &get_ExcPIC_ta4); - get_map.emplace("cim:ExcPIC.te", &get_ExcPIC_te); - get_map.emplace("cim:ExcPIC.tf1", &get_ExcPIC_tf1); - get_map.emplace("cim:ExcPIC.tf2", &get_ExcPIC_tf2); - get_map.emplace("cim:ExcPIC.vr1", &get_ExcPIC_vr1); - get_map.emplace("cim:ExcPIC.vr2", &get_ExcPIC_vr2); - get_map.emplace("cim:ExcPIC.vrmax", &get_ExcPIC_vrmax); - get_map.emplace("cim:ExcPIC.vrmin", &get_ExcPIC_vrmin); + get_map.emplace("ExcPIC.e1", &get_ExcPIC_e1); + get_map.emplace("ExcPIC.e2", &get_ExcPIC_e2); + get_map.emplace("ExcPIC.efdmax", &get_ExcPIC_efdmax); + get_map.emplace("ExcPIC.efdmin", &get_ExcPIC_efdmin); + get_map.emplace("ExcPIC.ka", &get_ExcPIC_ka); + get_map.emplace("ExcPIC.kc", &get_ExcPIC_kc); + get_map.emplace("ExcPIC.ke", &get_ExcPIC_ke); + get_map.emplace("ExcPIC.kf", &get_ExcPIC_kf); + get_map.emplace("ExcPIC.ki", &get_ExcPIC_ki); + get_map.emplace("ExcPIC.kp", &get_ExcPIC_kp); + get_map.emplace("ExcPIC.se1", &get_ExcPIC_se1); + get_map.emplace("ExcPIC.se2", &get_ExcPIC_se2); + get_map.emplace("ExcPIC.ta1", &get_ExcPIC_ta1); + get_map.emplace("ExcPIC.ta2", &get_ExcPIC_ta2); + get_map.emplace("ExcPIC.ta3", &get_ExcPIC_ta3); + get_map.emplace("ExcPIC.ta4", &get_ExcPIC_ta4); + get_map.emplace("ExcPIC.te", &get_ExcPIC_te); + get_map.emplace("ExcPIC.tf1", &get_ExcPIC_tf1); + get_map.emplace("ExcPIC.tf2", &get_ExcPIC_tf2); + get_map.emplace("ExcPIC.vr1", &get_ExcPIC_vr1); + get_map.emplace("ExcPIC.vr2", &get_ExcPIC_vr2); + get_map.emplace("ExcPIC.vrmax", &get_ExcPIC_vrmax); + get_map.emplace("ExcPIC.vrmin", &get_ExcPIC_vrmin); } void ExcPIC::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcPIC::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcPIC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcPIC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcPIC::declare() { return BaseClassDefiner(ExcPIC::addConstructToMap, ExcPIC::addPrimitiveAssignFnsToMap, ExcPIC::addClassAssignFnsToMap, ExcPIC::debugName); } +std::map ExcPIC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcPIC_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcPIC.hpp b/CGMES_2.4.15_16FEB2016/ExcPIC.hpp index 152d86aa7..6d119f178 100644 --- a/CGMES_2.4.15_16FEB2016/ExcPIC.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcPIC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -98,8 +99,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -107,7 +115,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcPIC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcREXS.cpp b/CGMES_2.4.15_16FEB2016/ExcREXS.cpp index 7c198209c..caeb500dd 100644 --- a/CGMES_2.4.15_16FEB2016/ExcREXS.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcREXS.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcREXS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcREXS.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.fbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.flimf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kefd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kii", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvphz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.nvphz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vcmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vfmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcREXS::ExcREXS() {} ExcREXS::~ExcREXS() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcREXS.e1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.e2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.fbf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.flimf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kc", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kd", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ke", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kefd", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kh", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kii", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kip", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ks", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvi", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvp", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvphz", { CGMESProfile::DY, } }, - { "cim:ExcREXS.nvphz", { CGMESProfile::DY, } }, - { "cim:ExcREXS.se1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.se2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ta", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tb1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tb2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tc1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tc2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.te", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tp", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vcmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vfmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vfmin", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vimax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcREXS.xc", { CGMESProfile::DY, } }, -}; - -std::list -ExcREXS::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcREXS::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcREXS::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcREXS::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcREXS::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcREXS::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcREXS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcREXS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcREXS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcREXS_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* ExcREXS::debugString() const void ExcREXS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcREXS", &ExcREXS_factory); + factory_map.emplace("ExcREXS", &ExcREXS_factory); } void ExcREXS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcREXS.e1", &assign_ExcREXS_e1); - assign_map.emplace("cim:ExcREXS.e2", &assign_ExcREXS_e2); - assign_map.emplace("cim:ExcREXS.fbf", &assign_ExcREXS_fbf); - assign_map.emplace("cim:ExcREXS.flimf", &assign_ExcREXS_flimf); - assign_map.emplace("cim:ExcREXS.kc", &assign_ExcREXS_kc); - assign_map.emplace("cim:ExcREXS.kd", &assign_ExcREXS_kd); - assign_map.emplace("cim:ExcREXS.ke", &assign_ExcREXS_ke); - assign_map.emplace("cim:ExcREXS.kefd", &assign_ExcREXS_kefd); - assign_map.emplace("cim:ExcREXS.kf", &assign_ExcREXS_kf); - assign_map.emplace("cim:ExcREXS.kh", &assign_ExcREXS_kh); - assign_map.emplace("cim:ExcREXS.kii", &assign_ExcREXS_kii); - assign_map.emplace("cim:ExcREXS.kip", &assign_ExcREXS_kip); - assign_map.emplace("cim:ExcREXS.ks", &assign_ExcREXS_ks); - assign_map.emplace("cim:ExcREXS.kvi", &assign_ExcREXS_kvi); - assign_map.emplace("cim:ExcREXS.kvp", &assign_ExcREXS_kvp); - assign_map.emplace("cim:ExcREXS.kvphz", &assign_ExcREXS_kvphz); - assign_map.emplace("cim:ExcREXS.nvphz", &assign_ExcREXS_nvphz); - assign_map.emplace("cim:ExcREXS.se1", &assign_ExcREXS_se1); - assign_map.emplace("cim:ExcREXS.se2", &assign_ExcREXS_se2); - assign_map.emplace("cim:ExcREXS.ta", &assign_ExcREXS_ta); - assign_map.emplace("cim:ExcREXS.tb1", &assign_ExcREXS_tb1); - assign_map.emplace("cim:ExcREXS.tb2", &assign_ExcREXS_tb2); - assign_map.emplace("cim:ExcREXS.tc1", &assign_ExcREXS_tc1); - assign_map.emplace("cim:ExcREXS.tc2", &assign_ExcREXS_tc2); - assign_map.emplace("cim:ExcREXS.te", &assign_ExcREXS_te); - assign_map.emplace("cim:ExcREXS.tf", &assign_ExcREXS_tf); - assign_map.emplace("cim:ExcREXS.tf1", &assign_ExcREXS_tf1); - assign_map.emplace("cim:ExcREXS.tf2", &assign_ExcREXS_tf2); - assign_map.emplace("cim:ExcREXS.tp", &assign_ExcREXS_tp); - assign_map.emplace("cim:ExcREXS.vcmax", &assign_ExcREXS_vcmax); - assign_map.emplace("cim:ExcREXS.vfmax", &assign_ExcREXS_vfmax); - assign_map.emplace("cim:ExcREXS.vfmin", &assign_ExcREXS_vfmin); - assign_map.emplace("cim:ExcREXS.vimax", &assign_ExcREXS_vimax); - assign_map.emplace("cim:ExcREXS.vrmax", &assign_ExcREXS_vrmax); - assign_map.emplace("cim:ExcREXS.vrmin", &assign_ExcREXS_vrmin); - assign_map.emplace("cim:ExcREXS.xc", &assign_ExcREXS_xc); + assign_map.emplace("ExcREXS.e1", &assign_ExcREXS_e1); + assign_map.emplace("ExcREXS.e2", &assign_ExcREXS_e2); + assign_map.emplace("ExcREXS.fbf", &assign_ExcREXS_fbf); + assign_map.emplace("ExcREXS.flimf", &assign_ExcREXS_flimf); + assign_map.emplace("ExcREXS.kc", &assign_ExcREXS_kc); + assign_map.emplace("ExcREXS.kd", &assign_ExcREXS_kd); + assign_map.emplace("ExcREXS.ke", &assign_ExcREXS_ke); + assign_map.emplace("ExcREXS.kefd", &assign_ExcREXS_kefd); + assign_map.emplace("ExcREXS.kf", &assign_ExcREXS_kf); + assign_map.emplace("ExcREXS.kh", &assign_ExcREXS_kh); + assign_map.emplace("ExcREXS.kii", &assign_ExcREXS_kii); + assign_map.emplace("ExcREXS.kip", &assign_ExcREXS_kip); + assign_map.emplace("ExcREXS.ks", &assign_ExcREXS_ks); + assign_map.emplace("ExcREXS.kvi", &assign_ExcREXS_kvi); + assign_map.emplace("ExcREXS.kvp", &assign_ExcREXS_kvp); + assign_map.emplace("ExcREXS.kvphz", &assign_ExcREXS_kvphz); + assign_map.emplace("ExcREXS.nvphz", &assign_ExcREXS_nvphz); + assign_map.emplace("ExcREXS.se1", &assign_ExcREXS_se1); + assign_map.emplace("ExcREXS.se2", &assign_ExcREXS_se2); + assign_map.emplace("ExcREXS.ta", &assign_ExcREXS_ta); + assign_map.emplace("ExcREXS.tb1", &assign_ExcREXS_tb1); + assign_map.emplace("ExcREXS.tb2", &assign_ExcREXS_tb2); + assign_map.emplace("ExcREXS.tc1", &assign_ExcREXS_tc1); + assign_map.emplace("ExcREXS.tc2", &assign_ExcREXS_tc2); + assign_map.emplace("ExcREXS.te", &assign_ExcREXS_te); + assign_map.emplace("ExcREXS.tf", &assign_ExcREXS_tf); + assign_map.emplace("ExcREXS.tf1", &assign_ExcREXS_tf1); + assign_map.emplace("ExcREXS.tf2", &assign_ExcREXS_tf2); + assign_map.emplace("ExcREXS.tp", &assign_ExcREXS_tp); + assign_map.emplace("ExcREXS.vcmax", &assign_ExcREXS_vcmax); + assign_map.emplace("ExcREXS.vfmax", &assign_ExcREXS_vfmax); + assign_map.emplace("ExcREXS.vfmin", &assign_ExcREXS_vfmin); + assign_map.emplace("ExcREXS.vimax", &assign_ExcREXS_vimax); + assign_map.emplace("ExcREXS.vrmax", &assign_ExcREXS_vrmax); + assign_map.emplace("ExcREXS.vrmin", &assign_ExcREXS_vrmin); + assign_map.emplace("ExcREXS.xc", &assign_ExcREXS_xc); } void ExcREXS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,41 +1208,41 @@ void ExcREXS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcREXS.e1", &get_ExcREXS_e1); - get_map.emplace("cim:ExcREXS.e2", &get_ExcREXS_e2); - get_map.emplace("cim:ExcREXS.flimf", &get_ExcREXS_flimf); - get_map.emplace("cim:ExcREXS.kc", &get_ExcREXS_kc); - get_map.emplace("cim:ExcREXS.kd", &get_ExcREXS_kd); - get_map.emplace("cim:ExcREXS.ke", &get_ExcREXS_ke); - get_map.emplace("cim:ExcREXS.kefd", &get_ExcREXS_kefd); - get_map.emplace("cim:ExcREXS.kf", &get_ExcREXS_kf); - get_map.emplace("cim:ExcREXS.kh", &get_ExcREXS_kh); - get_map.emplace("cim:ExcREXS.kii", &get_ExcREXS_kii); - get_map.emplace("cim:ExcREXS.kip", &get_ExcREXS_kip); - get_map.emplace("cim:ExcREXS.ks", &get_ExcREXS_ks); - get_map.emplace("cim:ExcREXS.kvi", &get_ExcREXS_kvi); - get_map.emplace("cim:ExcREXS.kvp", &get_ExcREXS_kvp); - get_map.emplace("cim:ExcREXS.kvphz", &get_ExcREXS_kvphz); - get_map.emplace("cim:ExcREXS.nvphz", &get_ExcREXS_nvphz); - get_map.emplace("cim:ExcREXS.se1", &get_ExcREXS_se1); - get_map.emplace("cim:ExcREXS.se2", &get_ExcREXS_se2); - get_map.emplace("cim:ExcREXS.ta", &get_ExcREXS_ta); - get_map.emplace("cim:ExcREXS.tb1", &get_ExcREXS_tb1); - get_map.emplace("cim:ExcREXS.tb2", &get_ExcREXS_tb2); - get_map.emplace("cim:ExcREXS.tc1", &get_ExcREXS_tc1); - get_map.emplace("cim:ExcREXS.tc2", &get_ExcREXS_tc2); - get_map.emplace("cim:ExcREXS.te", &get_ExcREXS_te); - get_map.emplace("cim:ExcREXS.tf", &get_ExcREXS_tf); - get_map.emplace("cim:ExcREXS.tf1", &get_ExcREXS_tf1); - get_map.emplace("cim:ExcREXS.tf2", &get_ExcREXS_tf2); - get_map.emplace("cim:ExcREXS.tp", &get_ExcREXS_tp); - get_map.emplace("cim:ExcREXS.vcmax", &get_ExcREXS_vcmax); - get_map.emplace("cim:ExcREXS.vfmax", &get_ExcREXS_vfmax); - get_map.emplace("cim:ExcREXS.vfmin", &get_ExcREXS_vfmin); - get_map.emplace("cim:ExcREXS.vimax", &get_ExcREXS_vimax); - get_map.emplace("cim:ExcREXS.vrmax", &get_ExcREXS_vrmax); - get_map.emplace("cim:ExcREXS.vrmin", &get_ExcREXS_vrmin); - get_map.emplace("cim:ExcREXS.xc", &get_ExcREXS_xc); + get_map.emplace("ExcREXS.e1", &get_ExcREXS_e1); + get_map.emplace("ExcREXS.e2", &get_ExcREXS_e2); + get_map.emplace("ExcREXS.flimf", &get_ExcREXS_flimf); + get_map.emplace("ExcREXS.kc", &get_ExcREXS_kc); + get_map.emplace("ExcREXS.kd", &get_ExcREXS_kd); + get_map.emplace("ExcREXS.ke", &get_ExcREXS_ke); + get_map.emplace("ExcREXS.kefd", &get_ExcREXS_kefd); + get_map.emplace("ExcREXS.kf", &get_ExcREXS_kf); + get_map.emplace("ExcREXS.kh", &get_ExcREXS_kh); + get_map.emplace("ExcREXS.kii", &get_ExcREXS_kii); + get_map.emplace("ExcREXS.kip", &get_ExcREXS_kip); + get_map.emplace("ExcREXS.ks", &get_ExcREXS_ks); + get_map.emplace("ExcREXS.kvi", &get_ExcREXS_kvi); + get_map.emplace("ExcREXS.kvp", &get_ExcREXS_kvp); + get_map.emplace("ExcREXS.kvphz", &get_ExcREXS_kvphz); + get_map.emplace("ExcREXS.nvphz", &get_ExcREXS_nvphz); + get_map.emplace("ExcREXS.se1", &get_ExcREXS_se1); + get_map.emplace("ExcREXS.se2", &get_ExcREXS_se2); + get_map.emplace("ExcREXS.ta", &get_ExcREXS_ta); + get_map.emplace("ExcREXS.tb1", &get_ExcREXS_tb1); + get_map.emplace("ExcREXS.tb2", &get_ExcREXS_tb2); + get_map.emplace("ExcREXS.tc1", &get_ExcREXS_tc1); + get_map.emplace("ExcREXS.tc2", &get_ExcREXS_tc2); + get_map.emplace("ExcREXS.te", &get_ExcREXS_te); + get_map.emplace("ExcREXS.tf", &get_ExcREXS_tf); + get_map.emplace("ExcREXS.tf1", &get_ExcREXS_tf1); + get_map.emplace("ExcREXS.tf2", &get_ExcREXS_tf2); + get_map.emplace("ExcREXS.tp", &get_ExcREXS_tp); + get_map.emplace("ExcREXS.vcmax", &get_ExcREXS_vcmax); + get_map.emplace("ExcREXS.vfmax", &get_ExcREXS_vfmax); + get_map.emplace("ExcREXS.vfmin", &get_ExcREXS_vfmin); + get_map.emplace("ExcREXS.vimax", &get_ExcREXS_vimax); + get_map.emplace("ExcREXS.vrmax", &get_ExcREXS_vrmax); + get_map.emplace("ExcREXS.vrmin", &get_ExcREXS_vrmin); + get_map.emplace("ExcREXS.xc", &get_ExcREXS_xc); } void ExcREXS::addClassGetFnsToMap(std::map& get_map) const @@ -1221,7 +1253,13 @@ void ExcREXS::addClassGetFnsToMap(std::map& get void ExcREXS::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcREXS.fbf", &get_ExcREXS_fbf); + get_map.emplace("ExcREXS.fbf", &get_ExcREXS_fbf); +} + +bool ExcREXS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcREXS" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcREXS::declare() @@ -1229,6 +1267,14 @@ const BaseClassDefiner ExcREXS::declare() return BaseClassDefiner(ExcREXS::addConstructToMap, ExcREXS::addPrimitiveAssignFnsToMap, ExcREXS::addClassAssignFnsToMap, ExcREXS::debugName); } +std::map ExcREXS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcREXS_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcREXS.hpp b/CGMES_2.4.15_16FEB2016/ExcREXS.hpp index 18cd27ace..d513fe42b 100644 --- a/CGMES_2.4.15_16FEB2016/ExcREXS.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcREXS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcREXSFeedbackSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcREXS_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcSCRX.cpp b/CGMES_2.4.15_16FEB2016/ExcSCRX.cpp index be7b304c3..90e0114c7 100644 --- a/CGMES_2.4.15_16FEB2016/ExcSCRX.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcSCRX.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSCRX(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSCRX.cswitch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.rcrfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.tatb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSCRX::ExcSCRX() {} ExcSCRX::~ExcSCRX() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcSCRX::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcSCRX::getClassNamespaceUrl() const { - { "cim:ExcSCRX.cswitch", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.emax", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.emin", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.k", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.rcrfd", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.tatb", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.tb", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.te", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcSCRX::getPossibleProfilesForClass() const +const std::string& ExcSCRX::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcSCRX::getPossibleProfilesForAttributes() const +const std::list& ExcSCRX::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSCRX::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSCRX::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSCRX::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSCRX_cswitch(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* ExcSCRX::debugString() const void ExcSCRX::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSCRX", &ExcSCRX_factory); + factory_map.emplace("ExcSCRX", &ExcSCRX_factory); } void ExcSCRX::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSCRX.cswitch", &assign_ExcSCRX_cswitch); - assign_map.emplace("cim:ExcSCRX.emax", &assign_ExcSCRX_emax); - assign_map.emplace("cim:ExcSCRX.emin", &assign_ExcSCRX_emin); - assign_map.emplace("cim:ExcSCRX.k", &assign_ExcSCRX_k); - assign_map.emplace("cim:ExcSCRX.rcrfd", &assign_ExcSCRX_rcrfd); - assign_map.emplace("cim:ExcSCRX.tatb", &assign_ExcSCRX_tatb); - assign_map.emplace("cim:ExcSCRX.tb", &assign_ExcSCRX_tb); - assign_map.emplace("cim:ExcSCRX.te", &assign_ExcSCRX_te); + assign_map.emplace("ExcSCRX.cswitch", &assign_ExcSCRX_cswitch); + assign_map.emplace("ExcSCRX.emax", &assign_ExcSCRX_emax); + assign_map.emplace("ExcSCRX.emin", &assign_ExcSCRX_emin); + assign_map.emplace("ExcSCRX.k", &assign_ExcSCRX_k); + assign_map.emplace("ExcSCRX.rcrfd", &assign_ExcSCRX_rcrfd); + assign_map.emplace("ExcSCRX.tatb", &assign_ExcSCRX_tatb); + assign_map.emplace("ExcSCRX.tb", &assign_ExcSCRX_tb); + assign_map.emplace("ExcSCRX.te", &assign_ExcSCRX_te); } void ExcSCRX::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void ExcSCRX::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSCRX.cswitch", &get_ExcSCRX_cswitch); - get_map.emplace("cim:ExcSCRX.emax", &get_ExcSCRX_emax); - get_map.emplace("cim:ExcSCRX.emin", &get_ExcSCRX_emin); - get_map.emplace("cim:ExcSCRX.k", &get_ExcSCRX_k); - get_map.emplace("cim:ExcSCRX.rcrfd", &get_ExcSCRX_rcrfd); - get_map.emplace("cim:ExcSCRX.tatb", &get_ExcSCRX_tatb); - get_map.emplace("cim:ExcSCRX.tb", &get_ExcSCRX_tb); - get_map.emplace("cim:ExcSCRX.te", &get_ExcSCRX_te); + get_map.emplace("ExcSCRX.cswitch", &get_ExcSCRX_cswitch); + get_map.emplace("ExcSCRX.emax", &get_ExcSCRX_emax); + get_map.emplace("ExcSCRX.emin", &get_ExcSCRX_emin); + get_map.emplace("ExcSCRX.k", &get_ExcSCRX_k); + get_map.emplace("ExcSCRX.rcrfd", &get_ExcSCRX_rcrfd); + get_map.emplace("ExcSCRX.tatb", &get_ExcSCRX_tatb); + get_map.emplace("ExcSCRX.tb", &get_ExcSCRX_tb); + get_map.emplace("ExcSCRX.te", &get_ExcSCRX_te); } void ExcSCRX::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void ExcSCRX::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSCRX::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSCRX" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSCRX::declare() { return BaseClassDefiner(ExcSCRX::addConstructToMap, ExcSCRX::addPrimitiveAssignFnsToMap, ExcSCRX::addClassAssignFnsToMap, ExcSCRX::debugName); } +std::map ExcSCRX::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSCRX_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcSCRX.hpp b/CGMES_2.4.15_16FEB2016/ExcSCRX.hpp index 5bf3e69b6..a3ed4f0c6 100644 --- a/CGMES_2.4.15_16FEB2016/ExcSCRX.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcSCRX.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSCRX_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcSEXS.cpp b/CGMES_2.4.15_16FEB2016/ExcSEXS.cpp index e78222ab6..00fedb674 100644 --- a/CGMES_2.4.15_16FEB2016/ExcSEXS.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcSEXS.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSEXS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSEXS.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tatb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSEXS::ExcSEXS() {} ExcSEXS::~ExcSEXS() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcSEXS::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcSEXS::getClassNamespaceUrl() const { - { "cim:ExcSEXS.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.emax", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.emin", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.k", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.kc", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tatb", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tb", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tc", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.te", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcSEXS::getPossibleProfilesForClass() const +const std::string& ExcSEXS::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcSEXS::getPossibleProfilesForAttributes() const +const std::list& ExcSEXS::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSEXS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSEXS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSEXS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSEXS_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcSEXS::debugString() const void ExcSEXS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSEXS", &ExcSEXS_factory); + factory_map.emplace("ExcSEXS", &ExcSEXS_factory); } void ExcSEXS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSEXS.efdmax", &assign_ExcSEXS_efdmax); - assign_map.emplace("cim:ExcSEXS.efdmin", &assign_ExcSEXS_efdmin); - assign_map.emplace("cim:ExcSEXS.emax", &assign_ExcSEXS_emax); - assign_map.emplace("cim:ExcSEXS.emin", &assign_ExcSEXS_emin); - assign_map.emplace("cim:ExcSEXS.k", &assign_ExcSEXS_k); - assign_map.emplace("cim:ExcSEXS.kc", &assign_ExcSEXS_kc); - assign_map.emplace("cim:ExcSEXS.tatb", &assign_ExcSEXS_tatb); - assign_map.emplace("cim:ExcSEXS.tb", &assign_ExcSEXS_tb); - assign_map.emplace("cim:ExcSEXS.tc", &assign_ExcSEXS_tc); - assign_map.emplace("cim:ExcSEXS.te", &assign_ExcSEXS_te); + assign_map.emplace("ExcSEXS.efdmax", &assign_ExcSEXS_efdmax); + assign_map.emplace("ExcSEXS.efdmin", &assign_ExcSEXS_efdmin); + assign_map.emplace("ExcSEXS.emax", &assign_ExcSEXS_emax); + assign_map.emplace("ExcSEXS.emin", &assign_ExcSEXS_emin); + assign_map.emplace("ExcSEXS.k", &assign_ExcSEXS_k); + assign_map.emplace("ExcSEXS.kc", &assign_ExcSEXS_kc); + assign_map.emplace("ExcSEXS.tatb", &assign_ExcSEXS_tatb); + assign_map.emplace("ExcSEXS.tb", &assign_ExcSEXS_tb); + assign_map.emplace("ExcSEXS.tc", &assign_ExcSEXS_tc); + assign_map.emplace("ExcSEXS.te", &assign_ExcSEXS_te); } void ExcSEXS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcSEXS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSEXS.efdmax", &get_ExcSEXS_efdmax); - get_map.emplace("cim:ExcSEXS.efdmin", &get_ExcSEXS_efdmin); - get_map.emplace("cim:ExcSEXS.emax", &get_ExcSEXS_emax); - get_map.emplace("cim:ExcSEXS.emin", &get_ExcSEXS_emin); - get_map.emplace("cim:ExcSEXS.k", &get_ExcSEXS_k); - get_map.emplace("cim:ExcSEXS.kc", &get_ExcSEXS_kc); - get_map.emplace("cim:ExcSEXS.tatb", &get_ExcSEXS_tatb); - get_map.emplace("cim:ExcSEXS.tb", &get_ExcSEXS_tb); - get_map.emplace("cim:ExcSEXS.tc", &get_ExcSEXS_tc); - get_map.emplace("cim:ExcSEXS.te", &get_ExcSEXS_te); + get_map.emplace("ExcSEXS.efdmax", &get_ExcSEXS_efdmax); + get_map.emplace("ExcSEXS.efdmin", &get_ExcSEXS_efdmin); + get_map.emplace("ExcSEXS.emax", &get_ExcSEXS_emax); + get_map.emplace("ExcSEXS.emin", &get_ExcSEXS_emin); + get_map.emplace("ExcSEXS.k", &get_ExcSEXS_k); + get_map.emplace("ExcSEXS.kc", &get_ExcSEXS_kc); + get_map.emplace("ExcSEXS.tatb", &get_ExcSEXS_tatb); + get_map.emplace("ExcSEXS.tb", &get_ExcSEXS_tb); + get_map.emplace("ExcSEXS.tc", &get_ExcSEXS_tc); + get_map.emplace("ExcSEXS.te", &get_ExcSEXS_te); } void ExcSEXS::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcSEXS::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSEXS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSEXS" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSEXS::declare() { return BaseClassDefiner(ExcSEXS::addConstructToMap, ExcSEXS::addPrimitiveAssignFnsToMap, ExcSEXS::addClassAssignFnsToMap, ExcSEXS::debugName); } +std::map ExcSEXS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSEXS_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcSEXS.hpp b/CGMES_2.4.15_16FEB2016/ExcSEXS.hpp index 2b957eb4e..d9bfb2a09 100644 --- a/CGMES_2.4.15_16FEB2016/ExcSEXS.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcSEXS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSEXS_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcSK.cpp b/CGMES_2.4.15_16FEB2016/ExcSK.cpp index 0c8d97812..7b1c04326 100644 --- a/CGMES_2.4.15_16FEB2016/ExcSK.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcSK.cpp @@ -11,63 +11,95 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSK(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSK.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kgob", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqob", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.nq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.qconoff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.qz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.remote", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.sbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.uimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.uimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.urmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.urmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.vtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.vtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.yp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSK::ExcSK() {} ExcSK::~ExcSK() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcSK.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.emax", { CGMESProfile::DY, } }, - { "cim:ExcSK.emin", { CGMESProfile::DY, } }, - { "cim:ExcSK.k", { CGMESProfile::DY, } }, - { "cim:ExcSK.k1", { CGMESProfile::DY, } }, - { "cim:ExcSK.k2", { CGMESProfile::DY, } }, - { "cim:ExcSK.kc", { CGMESProfile::DY, } }, - { "cim:ExcSK.kce", { CGMESProfile::DY, } }, - { "cim:ExcSK.kd", { CGMESProfile::DY, } }, - { "cim:ExcSK.kgob", { CGMESProfile::DY, } }, - { "cim:ExcSK.kp", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqi", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqob", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqp", { CGMESProfile::DY, } }, - { "cim:ExcSK.nq", { CGMESProfile::DY, } }, - { "cim:ExcSK.qconoff", { CGMESProfile::DY, } }, - { "cim:ExcSK.qz", { CGMESProfile::DY, } }, - { "cim:ExcSK.remote", { CGMESProfile::DY, } }, - { "cim:ExcSK.sbase", { CGMESProfile::DY, } }, - { "cim:ExcSK.tc", { CGMESProfile::DY, } }, - { "cim:ExcSK.te", { CGMESProfile::DY, } }, - { "cim:ExcSK.ti", { CGMESProfile::DY, } }, - { "cim:ExcSK.tp", { CGMESProfile::DY, } }, - { "cim:ExcSK.tr", { CGMESProfile::DY, } }, - { "cim:ExcSK.uimax", { CGMESProfile::DY, } }, - { "cim:ExcSK.uimin", { CGMESProfile::DY, } }, - { "cim:ExcSK.urmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.urmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.vtmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.vtmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.yp", { CGMESProfile::DY, } }, -}; - -std::list -ExcSK::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcSK::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcSK::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcSK::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcSK::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcSK::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSK::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSK::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSK::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSK_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1006,43 +1038,43 @@ const char* ExcSK::debugString() const void ExcSK::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSK", &ExcSK_factory); + factory_map.emplace("ExcSK", &ExcSK_factory); } void ExcSK::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSK.efdmax", &assign_ExcSK_efdmax); - assign_map.emplace("cim:ExcSK.efdmin", &assign_ExcSK_efdmin); - assign_map.emplace("cim:ExcSK.emax", &assign_ExcSK_emax); - assign_map.emplace("cim:ExcSK.emin", &assign_ExcSK_emin); - assign_map.emplace("cim:ExcSK.k", &assign_ExcSK_k); - assign_map.emplace("cim:ExcSK.k1", &assign_ExcSK_k1); - assign_map.emplace("cim:ExcSK.k2", &assign_ExcSK_k2); - assign_map.emplace("cim:ExcSK.kc", &assign_ExcSK_kc); - assign_map.emplace("cim:ExcSK.kce", &assign_ExcSK_kce); - assign_map.emplace("cim:ExcSK.kd", &assign_ExcSK_kd); - assign_map.emplace("cim:ExcSK.kgob", &assign_ExcSK_kgob); - assign_map.emplace("cim:ExcSK.kp", &assign_ExcSK_kp); - assign_map.emplace("cim:ExcSK.kqi", &assign_ExcSK_kqi); - assign_map.emplace("cim:ExcSK.kqob", &assign_ExcSK_kqob); - assign_map.emplace("cim:ExcSK.kqp", &assign_ExcSK_kqp); - assign_map.emplace("cim:ExcSK.nq", &assign_ExcSK_nq); - assign_map.emplace("cim:ExcSK.qconoff", &assign_ExcSK_qconoff); - assign_map.emplace("cim:ExcSK.qz", &assign_ExcSK_qz); - assign_map.emplace("cim:ExcSK.remote", &assign_ExcSK_remote); - assign_map.emplace("cim:ExcSK.sbase", &assign_ExcSK_sbase); - assign_map.emplace("cim:ExcSK.tc", &assign_ExcSK_tc); - assign_map.emplace("cim:ExcSK.te", &assign_ExcSK_te); - assign_map.emplace("cim:ExcSK.ti", &assign_ExcSK_ti); - assign_map.emplace("cim:ExcSK.tp", &assign_ExcSK_tp); - assign_map.emplace("cim:ExcSK.tr", &assign_ExcSK_tr); - assign_map.emplace("cim:ExcSK.uimax", &assign_ExcSK_uimax); - assign_map.emplace("cim:ExcSK.uimin", &assign_ExcSK_uimin); - assign_map.emplace("cim:ExcSK.urmax", &assign_ExcSK_urmax); - assign_map.emplace("cim:ExcSK.urmin", &assign_ExcSK_urmin); - assign_map.emplace("cim:ExcSK.vtmax", &assign_ExcSK_vtmax); - assign_map.emplace("cim:ExcSK.vtmin", &assign_ExcSK_vtmin); - assign_map.emplace("cim:ExcSK.yp", &assign_ExcSK_yp); + assign_map.emplace("ExcSK.efdmax", &assign_ExcSK_efdmax); + assign_map.emplace("ExcSK.efdmin", &assign_ExcSK_efdmin); + assign_map.emplace("ExcSK.emax", &assign_ExcSK_emax); + assign_map.emplace("ExcSK.emin", &assign_ExcSK_emin); + assign_map.emplace("ExcSK.k", &assign_ExcSK_k); + assign_map.emplace("ExcSK.k1", &assign_ExcSK_k1); + assign_map.emplace("ExcSK.k2", &assign_ExcSK_k2); + assign_map.emplace("ExcSK.kc", &assign_ExcSK_kc); + assign_map.emplace("ExcSK.kce", &assign_ExcSK_kce); + assign_map.emplace("ExcSK.kd", &assign_ExcSK_kd); + assign_map.emplace("ExcSK.kgob", &assign_ExcSK_kgob); + assign_map.emplace("ExcSK.kp", &assign_ExcSK_kp); + assign_map.emplace("ExcSK.kqi", &assign_ExcSK_kqi); + assign_map.emplace("ExcSK.kqob", &assign_ExcSK_kqob); + assign_map.emplace("ExcSK.kqp", &assign_ExcSK_kqp); + assign_map.emplace("ExcSK.nq", &assign_ExcSK_nq); + assign_map.emplace("ExcSK.qconoff", &assign_ExcSK_qconoff); + assign_map.emplace("ExcSK.qz", &assign_ExcSK_qz); + assign_map.emplace("ExcSK.remote", &assign_ExcSK_remote); + assign_map.emplace("ExcSK.sbase", &assign_ExcSK_sbase); + assign_map.emplace("ExcSK.tc", &assign_ExcSK_tc); + assign_map.emplace("ExcSK.te", &assign_ExcSK_te); + assign_map.emplace("ExcSK.ti", &assign_ExcSK_ti); + assign_map.emplace("ExcSK.tp", &assign_ExcSK_tp); + assign_map.emplace("ExcSK.tr", &assign_ExcSK_tr); + assign_map.emplace("ExcSK.uimax", &assign_ExcSK_uimax); + assign_map.emplace("ExcSK.uimin", &assign_ExcSK_uimin); + assign_map.emplace("ExcSK.urmax", &assign_ExcSK_urmax); + assign_map.emplace("ExcSK.urmin", &assign_ExcSK_urmin); + assign_map.emplace("ExcSK.vtmax", &assign_ExcSK_vtmax); + assign_map.emplace("ExcSK.vtmin", &assign_ExcSK_vtmin); + assign_map.emplace("ExcSK.yp", &assign_ExcSK_yp); } void ExcSK::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1052,38 +1084,38 @@ void ExcSK::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSK.efdmax", &get_ExcSK_efdmax); - get_map.emplace("cim:ExcSK.efdmin", &get_ExcSK_efdmin); - get_map.emplace("cim:ExcSK.emax", &get_ExcSK_emax); - get_map.emplace("cim:ExcSK.emin", &get_ExcSK_emin); - get_map.emplace("cim:ExcSK.k", &get_ExcSK_k); - get_map.emplace("cim:ExcSK.k1", &get_ExcSK_k1); - get_map.emplace("cim:ExcSK.k2", &get_ExcSK_k2); - get_map.emplace("cim:ExcSK.kc", &get_ExcSK_kc); - get_map.emplace("cim:ExcSK.kce", &get_ExcSK_kce); - get_map.emplace("cim:ExcSK.kd", &get_ExcSK_kd); - get_map.emplace("cim:ExcSK.kgob", &get_ExcSK_kgob); - get_map.emplace("cim:ExcSK.kp", &get_ExcSK_kp); - get_map.emplace("cim:ExcSK.kqi", &get_ExcSK_kqi); - get_map.emplace("cim:ExcSK.kqob", &get_ExcSK_kqob); - get_map.emplace("cim:ExcSK.kqp", &get_ExcSK_kqp); - get_map.emplace("cim:ExcSK.nq", &get_ExcSK_nq); - get_map.emplace("cim:ExcSK.qconoff", &get_ExcSK_qconoff); - get_map.emplace("cim:ExcSK.qz", &get_ExcSK_qz); - get_map.emplace("cim:ExcSK.remote", &get_ExcSK_remote); - get_map.emplace("cim:ExcSK.sbase", &get_ExcSK_sbase); - get_map.emplace("cim:ExcSK.tc", &get_ExcSK_tc); - get_map.emplace("cim:ExcSK.te", &get_ExcSK_te); - get_map.emplace("cim:ExcSK.ti", &get_ExcSK_ti); - get_map.emplace("cim:ExcSK.tp", &get_ExcSK_tp); - get_map.emplace("cim:ExcSK.tr", &get_ExcSK_tr); - get_map.emplace("cim:ExcSK.uimax", &get_ExcSK_uimax); - get_map.emplace("cim:ExcSK.uimin", &get_ExcSK_uimin); - get_map.emplace("cim:ExcSK.urmax", &get_ExcSK_urmax); - get_map.emplace("cim:ExcSK.urmin", &get_ExcSK_urmin); - get_map.emplace("cim:ExcSK.vtmax", &get_ExcSK_vtmax); - get_map.emplace("cim:ExcSK.vtmin", &get_ExcSK_vtmin); - get_map.emplace("cim:ExcSK.yp", &get_ExcSK_yp); + get_map.emplace("ExcSK.efdmax", &get_ExcSK_efdmax); + get_map.emplace("ExcSK.efdmin", &get_ExcSK_efdmin); + get_map.emplace("ExcSK.emax", &get_ExcSK_emax); + get_map.emplace("ExcSK.emin", &get_ExcSK_emin); + get_map.emplace("ExcSK.k", &get_ExcSK_k); + get_map.emplace("ExcSK.k1", &get_ExcSK_k1); + get_map.emplace("ExcSK.k2", &get_ExcSK_k2); + get_map.emplace("ExcSK.kc", &get_ExcSK_kc); + get_map.emplace("ExcSK.kce", &get_ExcSK_kce); + get_map.emplace("ExcSK.kd", &get_ExcSK_kd); + get_map.emplace("ExcSK.kgob", &get_ExcSK_kgob); + get_map.emplace("ExcSK.kp", &get_ExcSK_kp); + get_map.emplace("ExcSK.kqi", &get_ExcSK_kqi); + get_map.emplace("ExcSK.kqob", &get_ExcSK_kqob); + get_map.emplace("ExcSK.kqp", &get_ExcSK_kqp); + get_map.emplace("ExcSK.nq", &get_ExcSK_nq); + get_map.emplace("ExcSK.qconoff", &get_ExcSK_qconoff); + get_map.emplace("ExcSK.qz", &get_ExcSK_qz); + get_map.emplace("ExcSK.remote", &get_ExcSK_remote); + get_map.emplace("ExcSK.sbase", &get_ExcSK_sbase); + get_map.emplace("ExcSK.tc", &get_ExcSK_tc); + get_map.emplace("ExcSK.te", &get_ExcSK_te); + get_map.emplace("ExcSK.ti", &get_ExcSK_ti); + get_map.emplace("ExcSK.tp", &get_ExcSK_tp); + get_map.emplace("ExcSK.tr", &get_ExcSK_tr); + get_map.emplace("ExcSK.uimax", &get_ExcSK_uimax); + get_map.emplace("ExcSK.uimin", &get_ExcSK_uimin); + get_map.emplace("ExcSK.urmax", &get_ExcSK_urmax); + get_map.emplace("ExcSK.urmin", &get_ExcSK_urmin); + get_map.emplace("ExcSK.vtmax", &get_ExcSK_vtmax); + get_map.emplace("ExcSK.vtmin", &get_ExcSK_vtmin); + get_map.emplace("ExcSK.yp", &get_ExcSK_yp); } void ExcSK::addClassGetFnsToMap(std::map& get_map) const @@ -1096,11 +1128,25 @@ void ExcSK::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSK::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSK" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSK::declare() { return BaseClassDefiner(ExcSK::addConstructToMap, ExcSK::addPrimitiveAssignFnsToMap, ExcSK::addClassAssignFnsToMap, ExcSK::debugName); } +std::map ExcSK::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSK_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcSK.hpp b/CGMES_2.4.15_16FEB2016/ExcSK.hpp index 3d724e1da..669f37a1e 100644 --- a/CGMES_2.4.15_16FEB2016/ExcSK.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcSK.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -127,8 +128,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -136,7 +144,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSK_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcST1A.cpp b/CGMES_2.4.15_16FEB2016/ExcST1A.cpp index f96434060..45febb804 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST1A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcST1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST1A.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST1A::ExcST1A() {} ExcST1A::~ExcST1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST1A::getClassNamespaceUrl() const { - { "cim:ExcST1A.ilr", { CGMESProfile::DY, } }, - { "cim:ExcST1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcST1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcST1A.klr", { CGMESProfile::DY, } }, - { "cim:ExcST1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tb1", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tc1", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST1A::getPossibleProfilesForClass() const +const std::string& ExcST1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST1A::getPossibleProfilesForAttributes() const +const std::list& ExcST1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST1A_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcST1A::debugString() const void ExcST1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST1A", &ExcST1A_factory); + factory_map.emplace("ExcST1A", &ExcST1A_factory); } void ExcST1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST1A.ilr", &assign_ExcST1A_ilr); - assign_map.emplace("cim:ExcST1A.ka", &assign_ExcST1A_ka); - assign_map.emplace("cim:ExcST1A.kc", &assign_ExcST1A_kc); - assign_map.emplace("cim:ExcST1A.kf", &assign_ExcST1A_kf); - assign_map.emplace("cim:ExcST1A.klr", &assign_ExcST1A_klr); - assign_map.emplace("cim:ExcST1A.ta", &assign_ExcST1A_ta); - assign_map.emplace("cim:ExcST1A.tb", &assign_ExcST1A_tb); - assign_map.emplace("cim:ExcST1A.tb1", &assign_ExcST1A_tb1); - assign_map.emplace("cim:ExcST1A.tc", &assign_ExcST1A_tc); - assign_map.emplace("cim:ExcST1A.tc1", &assign_ExcST1A_tc1); - assign_map.emplace("cim:ExcST1A.tf", &assign_ExcST1A_tf); - assign_map.emplace("cim:ExcST1A.vamax", &assign_ExcST1A_vamax); - assign_map.emplace("cim:ExcST1A.vamin", &assign_ExcST1A_vamin); - assign_map.emplace("cim:ExcST1A.vimax", &assign_ExcST1A_vimax); - assign_map.emplace("cim:ExcST1A.vimin", &assign_ExcST1A_vimin); - assign_map.emplace("cim:ExcST1A.vrmax", &assign_ExcST1A_vrmax); - assign_map.emplace("cim:ExcST1A.vrmin", &assign_ExcST1A_vrmin); - assign_map.emplace("cim:ExcST1A.xe", &assign_ExcST1A_xe); + assign_map.emplace("ExcST1A.ilr", &assign_ExcST1A_ilr); + assign_map.emplace("ExcST1A.ka", &assign_ExcST1A_ka); + assign_map.emplace("ExcST1A.kc", &assign_ExcST1A_kc); + assign_map.emplace("ExcST1A.kf", &assign_ExcST1A_kf); + assign_map.emplace("ExcST1A.klr", &assign_ExcST1A_klr); + assign_map.emplace("ExcST1A.ta", &assign_ExcST1A_ta); + assign_map.emplace("ExcST1A.tb", &assign_ExcST1A_tb); + assign_map.emplace("ExcST1A.tb1", &assign_ExcST1A_tb1); + assign_map.emplace("ExcST1A.tc", &assign_ExcST1A_tc); + assign_map.emplace("ExcST1A.tc1", &assign_ExcST1A_tc1); + assign_map.emplace("ExcST1A.tf", &assign_ExcST1A_tf); + assign_map.emplace("ExcST1A.vamax", &assign_ExcST1A_vamax); + assign_map.emplace("ExcST1A.vamin", &assign_ExcST1A_vamin); + assign_map.emplace("ExcST1A.vimax", &assign_ExcST1A_vimax); + assign_map.emplace("ExcST1A.vimin", &assign_ExcST1A_vimin); + assign_map.emplace("ExcST1A.vrmax", &assign_ExcST1A_vrmax); + assign_map.emplace("ExcST1A.vrmin", &assign_ExcST1A_vrmin); + assign_map.emplace("ExcST1A.xe", &assign_ExcST1A_xe); } void ExcST1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcST1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST1A.ilr", &get_ExcST1A_ilr); - get_map.emplace("cim:ExcST1A.ka", &get_ExcST1A_ka); - get_map.emplace("cim:ExcST1A.kc", &get_ExcST1A_kc); - get_map.emplace("cim:ExcST1A.kf", &get_ExcST1A_kf); - get_map.emplace("cim:ExcST1A.klr", &get_ExcST1A_klr); - get_map.emplace("cim:ExcST1A.ta", &get_ExcST1A_ta); - get_map.emplace("cim:ExcST1A.tb", &get_ExcST1A_tb); - get_map.emplace("cim:ExcST1A.tb1", &get_ExcST1A_tb1); - get_map.emplace("cim:ExcST1A.tc", &get_ExcST1A_tc); - get_map.emplace("cim:ExcST1A.tc1", &get_ExcST1A_tc1); - get_map.emplace("cim:ExcST1A.tf", &get_ExcST1A_tf); - get_map.emplace("cim:ExcST1A.vamax", &get_ExcST1A_vamax); - get_map.emplace("cim:ExcST1A.vamin", &get_ExcST1A_vamin); - get_map.emplace("cim:ExcST1A.vimax", &get_ExcST1A_vimax); - get_map.emplace("cim:ExcST1A.vimin", &get_ExcST1A_vimin); - get_map.emplace("cim:ExcST1A.vrmax", &get_ExcST1A_vrmax); - get_map.emplace("cim:ExcST1A.vrmin", &get_ExcST1A_vrmin); - get_map.emplace("cim:ExcST1A.xe", &get_ExcST1A_xe); + get_map.emplace("ExcST1A.ilr", &get_ExcST1A_ilr); + get_map.emplace("ExcST1A.ka", &get_ExcST1A_ka); + get_map.emplace("ExcST1A.kc", &get_ExcST1A_kc); + get_map.emplace("ExcST1A.kf", &get_ExcST1A_kf); + get_map.emplace("ExcST1A.klr", &get_ExcST1A_klr); + get_map.emplace("ExcST1A.ta", &get_ExcST1A_ta); + get_map.emplace("ExcST1A.tb", &get_ExcST1A_tb); + get_map.emplace("ExcST1A.tb1", &get_ExcST1A_tb1); + get_map.emplace("ExcST1A.tc", &get_ExcST1A_tc); + get_map.emplace("ExcST1A.tc1", &get_ExcST1A_tc1); + get_map.emplace("ExcST1A.tf", &get_ExcST1A_tf); + get_map.emplace("ExcST1A.vamax", &get_ExcST1A_vamax); + get_map.emplace("ExcST1A.vamin", &get_ExcST1A_vamin); + get_map.emplace("ExcST1A.vimax", &get_ExcST1A_vimax); + get_map.emplace("ExcST1A.vimin", &get_ExcST1A_vimin); + get_map.emplace("ExcST1A.vrmax", &get_ExcST1A_vrmax); + get_map.emplace("ExcST1A.vrmin", &get_ExcST1A_vrmin); + get_map.emplace("ExcST1A.xe", &get_ExcST1A_xe); } void ExcST1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcST1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST1A::declare() { return BaseClassDefiner(ExcST1A::addConstructToMap, ExcST1A::addPrimitiveAssignFnsToMap, ExcST1A::addClassAssignFnsToMap, ExcST1A::debugName); } +std::map ExcST1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcST1A.hpp b/CGMES_2.4.15_16FEB2016/ExcST1A.hpp index 2c1805a46..3c3094d0d 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST1A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcST1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcST2A.cpp b/CGMES_2.4.15_16FEB2016/ExcST2A.cpp index afa9e20ff..a0eba51e0 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST2A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcST2A.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST2A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST2A::ExcST2A() {} ExcST2A::~ExcST2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST2A::getClassNamespaceUrl() const { - { "cim:ExcST2A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ki", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kp", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST2A.te", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcST2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcST2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST2A::getPossibleProfilesForClass() const +const std::string& ExcST2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST2A::getPossibleProfilesForAttributes() const +const std::list& ExcST2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST2A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcST2A::debugString() const void ExcST2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST2A", &ExcST2A_factory); + factory_map.emplace("ExcST2A", &ExcST2A_factory); } void ExcST2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST2A.efdmax", &assign_ExcST2A_efdmax); - assign_map.emplace("cim:ExcST2A.ka", &assign_ExcST2A_ka); - assign_map.emplace("cim:ExcST2A.kc", &assign_ExcST2A_kc); - assign_map.emplace("cim:ExcST2A.ke", &assign_ExcST2A_ke); - assign_map.emplace("cim:ExcST2A.kf", &assign_ExcST2A_kf); - assign_map.emplace("cim:ExcST2A.ki", &assign_ExcST2A_ki); - assign_map.emplace("cim:ExcST2A.kp", &assign_ExcST2A_kp); - assign_map.emplace("cim:ExcST2A.ta", &assign_ExcST2A_ta); - assign_map.emplace("cim:ExcST2A.tb", &assign_ExcST2A_tb); - assign_map.emplace("cim:ExcST2A.tc", &assign_ExcST2A_tc); - assign_map.emplace("cim:ExcST2A.te", &assign_ExcST2A_te); - assign_map.emplace("cim:ExcST2A.tf", &assign_ExcST2A_tf); - assign_map.emplace("cim:ExcST2A.uelin", &assign_ExcST2A_uelin); - assign_map.emplace("cim:ExcST2A.vrmax", &assign_ExcST2A_vrmax); - assign_map.emplace("cim:ExcST2A.vrmin", &assign_ExcST2A_vrmin); + assign_map.emplace("ExcST2A.efdmax", &assign_ExcST2A_efdmax); + assign_map.emplace("ExcST2A.ka", &assign_ExcST2A_ka); + assign_map.emplace("ExcST2A.kc", &assign_ExcST2A_kc); + assign_map.emplace("ExcST2A.ke", &assign_ExcST2A_ke); + assign_map.emplace("ExcST2A.kf", &assign_ExcST2A_kf); + assign_map.emplace("ExcST2A.ki", &assign_ExcST2A_ki); + assign_map.emplace("ExcST2A.kp", &assign_ExcST2A_kp); + assign_map.emplace("ExcST2A.ta", &assign_ExcST2A_ta); + assign_map.emplace("ExcST2A.tb", &assign_ExcST2A_tb); + assign_map.emplace("ExcST2A.tc", &assign_ExcST2A_tc); + assign_map.emplace("ExcST2A.te", &assign_ExcST2A_te); + assign_map.emplace("ExcST2A.tf", &assign_ExcST2A_tf); + assign_map.emplace("ExcST2A.uelin", &assign_ExcST2A_uelin); + assign_map.emplace("ExcST2A.vrmax", &assign_ExcST2A_vrmax); + assign_map.emplace("ExcST2A.vrmin", &assign_ExcST2A_vrmin); } void ExcST2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void ExcST2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST2A.efdmax", &get_ExcST2A_efdmax); - get_map.emplace("cim:ExcST2A.ka", &get_ExcST2A_ka); - get_map.emplace("cim:ExcST2A.kc", &get_ExcST2A_kc); - get_map.emplace("cim:ExcST2A.ke", &get_ExcST2A_ke); - get_map.emplace("cim:ExcST2A.kf", &get_ExcST2A_kf); - get_map.emplace("cim:ExcST2A.ki", &get_ExcST2A_ki); - get_map.emplace("cim:ExcST2A.kp", &get_ExcST2A_kp); - get_map.emplace("cim:ExcST2A.ta", &get_ExcST2A_ta); - get_map.emplace("cim:ExcST2A.tb", &get_ExcST2A_tb); - get_map.emplace("cim:ExcST2A.tc", &get_ExcST2A_tc); - get_map.emplace("cim:ExcST2A.te", &get_ExcST2A_te); - get_map.emplace("cim:ExcST2A.tf", &get_ExcST2A_tf); - get_map.emplace("cim:ExcST2A.uelin", &get_ExcST2A_uelin); - get_map.emplace("cim:ExcST2A.vrmax", &get_ExcST2A_vrmax); - get_map.emplace("cim:ExcST2A.vrmin", &get_ExcST2A_vrmin); + get_map.emplace("ExcST2A.efdmax", &get_ExcST2A_efdmax); + get_map.emplace("ExcST2A.ka", &get_ExcST2A_ka); + get_map.emplace("ExcST2A.kc", &get_ExcST2A_kc); + get_map.emplace("ExcST2A.ke", &get_ExcST2A_ke); + get_map.emplace("ExcST2A.kf", &get_ExcST2A_kf); + get_map.emplace("ExcST2A.ki", &get_ExcST2A_ki); + get_map.emplace("ExcST2A.kp", &get_ExcST2A_kp); + get_map.emplace("ExcST2A.ta", &get_ExcST2A_ta); + get_map.emplace("ExcST2A.tb", &get_ExcST2A_tb); + get_map.emplace("ExcST2A.tc", &get_ExcST2A_tc); + get_map.emplace("ExcST2A.te", &get_ExcST2A_te); + get_map.emplace("ExcST2A.tf", &get_ExcST2A_tf); + get_map.emplace("ExcST2A.uelin", &get_ExcST2A_uelin); + get_map.emplace("ExcST2A.vrmax", &get_ExcST2A_vrmax); + get_map.emplace("ExcST2A.vrmin", &get_ExcST2A_vrmin); } void ExcST2A::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void ExcST2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST2A::declare() { return BaseClassDefiner(ExcST2A::addConstructToMap, ExcST2A::addPrimitiveAssignFnsToMap, ExcST2A::addClassAssignFnsToMap, ExcST2A::debugName); } +std::map ExcST2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST2A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcST2A.hpp b/CGMES_2.4.15_16FEB2016/ExcST2A.hpp index 1da9826e1..ad4dbd002 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST2A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcST2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -75,8 +76,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -84,7 +92,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST2A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcST3A.cpp b/CGMES_2.4.15_16FEB2016/ExcST3A.cpp index e31c2b37c..30bc2661a 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST3A.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcST3A.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST3A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST3A::ExcST3A() {} ExcST3A::~ExcST3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST3A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kg", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ki", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kj", { CGMESProfile::DY, } }, - { "cim:ExcST3A.km", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kp", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ks1", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST3A.thetap", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tm", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST3A.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcST3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST3A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -646,31 +678,31 @@ const char* ExcST3A::debugString() const void ExcST3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST3A", &ExcST3A_factory); + factory_map.emplace("ExcST3A", &ExcST3A_factory); } void ExcST3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST3A.efdmax", &assign_ExcST3A_efdmax); - assign_map.emplace("cim:ExcST3A.kc", &assign_ExcST3A_kc); - assign_map.emplace("cim:ExcST3A.kg", &assign_ExcST3A_kg); - assign_map.emplace("cim:ExcST3A.ki", &assign_ExcST3A_ki); - assign_map.emplace("cim:ExcST3A.kj", &assign_ExcST3A_kj); - assign_map.emplace("cim:ExcST3A.km", &assign_ExcST3A_km); - assign_map.emplace("cim:ExcST3A.kp", &assign_ExcST3A_kp); - assign_map.emplace("cim:ExcST3A.ks", &assign_ExcST3A_ks); - assign_map.emplace("cim:ExcST3A.ks1", &assign_ExcST3A_ks1); - assign_map.emplace("cim:ExcST3A.tb", &assign_ExcST3A_tb); - assign_map.emplace("cim:ExcST3A.tc", &assign_ExcST3A_tc); - assign_map.emplace("cim:ExcST3A.thetap", &assign_ExcST3A_thetap); - assign_map.emplace("cim:ExcST3A.tm", &assign_ExcST3A_tm); - assign_map.emplace("cim:ExcST3A.vbmax", &assign_ExcST3A_vbmax); - assign_map.emplace("cim:ExcST3A.vgmax", &assign_ExcST3A_vgmax); - assign_map.emplace("cim:ExcST3A.vimax", &assign_ExcST3A_vimax); - assign_map.emplace("cim:ExcST3A.vimin", &assign_ExcST3A_vimin); - assign_map.emplace("cim:ExcST3A.vrmax", &assign_ExcST3A_vrmax); - assign_map.emplace("cim:ExcST3A.vrmin", &assign_ExcST3A_vrmin); - assign_map.emplace("cim:ExcST3A.xl", &assign_ExcST3A_xl); + assign_map.emplace("ExcST3A.efdmax", &assign_ExcST3A_efdmax); + assign_map.emplace("ExcST3A.kc", &assign_ExcST3A_kc); + assign_map.emplace("ExcST3A.kg", &assign_ExcST3A_kg); + assign_map.emplace("ExcST3A.ki", &assign_ExcST3A_ki); + assign_map.emplace("ExcST3A.kj", &assign_ExcST3A_kj); + assign_map.emplace("ExcST3A.km", &assign_ExcST3A_km); + assign_map.emplace("ExcST3A.kp", &assign_ExcST3A_kp); + assign_map.emplace("ExcST3A.ks", &assign_ExcST3A_ks); + assign_map.emplace("ExcST3A.ks1", &assign_ExcST3A_ks1); + assign_map.emplace("ExcST3A.tb", &assign_ExcST3A_tb); + assign_map.emplace("ExcST3A.tc", &assign_ExcST3A_tc); + assign_map.emplace("ExcST3A.thetap", &assign_ExcST3A_thetap); + assign_map.emplace("ExcST3A.tm", &assign_ExcST3A_tm); + assign_map.emplace("ExcST3A.vbmax", &assign_ExcST3A_vbmax); + assign_map.emplace("ExcST3A.vgmax", &assign_ExcST3A_vgmax); + assign_map.emplace("ExcST3A.vimax", &assign_ExcST3A_vimax); + assign_map.emplace("ExcST3A.vimin", &assign_ExcST3A_vimin); + assign_map.emplace("ExcST3A.vrmax", &assign_ExcST3A_vrmax); + assign_map.emplace("ExcST3A.vrmin", &assign_ExcST3A_vrmin); + assign_map.emplace("ExcST3A.xl", &assign_ExcST3A_xl); } void ExcST3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -680,26 +712,26 @@ void ExcST3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST3A.efdmax", &get_ExcST3A_efdmax); - get_map.emplace("cim:ExcST3A.kc", &get_ExcST3A_kc); - get_map.emplace("cim:ExcST3A.kg", &get_ExcST3A_kg); - get_map.emplace("cim:ExcST3A.ki", &get_ExcST3A_ki); - get_map.emplace("cim:ExcST3A.kj", &get_ExcST3A_kj); - get_map.emplace("cim:ExcST3A.km", &get_ExcST3A_km); - get_map.emplace("cim:ExcST3A.kp", &get_ExcST3A_kp); - get_map.emplace("cim:ExcST3A.ks", &get_ExcST3A_ks); - get_map.emplace("cim:ExcST3A.ks1", &get_ExcST3A_ks1); - get_map.emplace("cim:ExcST3A.tb", &get_ExcST3A_tb); - get_map.emplace("cim:ExcST3A.tc", &get_ExcST3A_tc); - get_map.emplace("cim:ExcST3A.thetap", &get_ExcST3A_thetap); - get_map.emplace("cim:ExcST3A.tm", &get_ExcST3A_tm); - get_map.emplace("cim:ExcST3A.vbmax", &get_ExcST3A_vbmax); - get_map.emplace("cim:ExcST3A.vgmax", &get_ExcST3A_vgmax); - get_map.emplace("cim:ExcST3A.vimax", &get_ExcST3A_vimax); - get_map.emplace("cim:ExcST3A.vimin", &get_ExcST3A_vimin); - get_map.emplace("cim:ExcST3A.vrmax", &get_ExcST3A_vrmax); - get_map.emplace("cim:ExcST3A.vrmin", &get_ExcST3A_vrmin); - get_map.emplace("cim:ExcST3A.xl", &get_ExcST3A_xl); + get_map.emplace("ExcST3A.efdmax", &get_ExcST3A_efdmax); + get_map.emplace("ExcST3A.kc", &get_ExcST3A_kc); + get_map.emplace("ExcST3A.kg", &get_ExcST3A_kg); + get_map.emplace("ExcST3A.ki", &get_ExcST3A_ki); + get_map.emplace("ExcST3A.kj", &get_ExcST3A_kj); + get_map.emplace("ExcST3A.km", &get_ExcST3A_km); + get_map.emplace("ExcST3A.kp", &get_ExcST3A_kp); + get_map.emplace("ExcST3A.ks", &get_ExcST3A_ks); + get_map.emplace("ExcST3A.ks1", &get_ExcST3A_ks1); + get_map.emplace("ExcST3A.tb", &get_ExcST3A_tb); + get_map.emplace("ExcST3A.tc", &get_ExcST3A_tc); + get_map.emplace("ExcST3A.thetap", &get_ExcST3A_thetap); + get_map.emplace("ExcST3A.tm", &get_ExcST3A_tm); + get_map.emplace("ExcST3A.vbmax", &get_ExcST3A_vbmax); + get_map.emplace("ExcST3A.vgmax", &get_ExcST3A_vgmax); + get_map.emplace("ExcST3A.vimax", &get_ExcST3A_vimax); + get_map.emplace("ExcST3A.vimin", &get_ExcST3A_vimin); + get_map.emplace("ExcST3A.vrmax", &get_ExcST3A_vrmax); + get_map.emplace("ExcST3A.vrmin", &get_ExcST3A_vrmin); + get_map.emplace("ExcST3A.xl", &get_ExcST3A_xl); } void ExcST3A::addClassGetFnsToMap(std::map& get_map) const @@ -712,11 +744,25 @@ void ExcST3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST3A::declare() { return BaseClassDefiner(ExcST3A::addConstructToMap, ExcST3A::addPrimitiveAssignFnsToMap, ExcST3A::addClassAssignFnsToMap, ExcST3A::debugName); } +std::map ExcST3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST3A_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcST3A.hpp b/CGMES_2.4.15_16FEB2016/ExcST3A.hpp index 522bb2633..750b93987 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST3A.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcST3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -90,8 +91,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -99,7 +107,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST3A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcST4B.cpp b/CGMES_2.4.15_16FEB2016/ExcST4B.cpp index b09570552..bb7ae0dc9 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST4B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcST4B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST4B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kpm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.lvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.uel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST4B::ExcST4B() {} ExcST4B::~ExcST4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST4B.kc", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kg", { CGMESProfile::DY, } }, - { "cim:ExcST4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kim", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kir", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kpm", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcST4B.lvgate", { CGMESProfile::DY, } }, - { "cim:ExcST4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcST4B.thetap", { CGMESProfile::DY, } }, - { "cim:ExcST4B.uel", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST4B.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcST4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST4B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcST4B::debugString() const void ExcST4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST4B", &ExcST4B_factory); + factory_map.emplace("ExcST4B", &ExcST4B_factory); } void ExcST4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST4B.kc", &assign_ExcST4B_kc); - assign_map.emplace("cim:ExcST4B.kg", &assign_ExcST4B_kg); - assign_map.emplace("cim:ExcST4B.ki", &assign_ExcST4B_ki); - assign_map.emplace("cim:ExcST4B.kim", &assign_ExcST4B_kim); - assign_map.emplace("cim:ExcST4B.kir", &assign_ExcST4B_kir); - assign_map.emplace("cim:ExcST4B.kp", &assign_ExcST4B_kp); - assign_map.emplace("cim:ExcST4B.kpm", &assign_ExcST4B_kpm); - assign_map.emplace("cim:ExcST4B.kpr", &assign_ExcST4B_kpr); - assign_map.emplace("cim:ExcST4B.lvgate", &assign_ExcST4B_lvgate); - assign_map.emplace("cim:ExcST4B.ta", &assign_ExcST4B_ta); - assign_map.emplace("cim:ExcST4B.thetap", &assign_ExcST4B_thetap); - assign_map.emplace("cim:ExcST4B.uel", &assign_ExcST4B_uel); - assign_map.emplace("cim:ExcST4B.vbmax", &assign_ExcST4B_vbmax); - assign_map.emplace("cim:ExcST4B.vgmax", &assign_ExcST4B_vgmax); - assign_map.emplace("cim:ExcST4B.vmmax", &assign_ExcST4B_vmmax); - assign_map.emplace("cim:ExcST4B.vmmin", &assign_ExcST4B_vmmin); - assign_map.emplace("cim:ExcST4B.vrmax", &assign_ExcST4B_vrmax); - assign_map.emplace("cim:ExcST4B.vrmin", &assign_ExcST4B_vrmin); - assign_map.emplace("cim:ExcST4B.xl", &assign_ExcST4B_xl); + assign_map.emplace("ExcST4B.kc", &assign_ExcST4B_kc); + assign_map.emplace("ExcST4B.kg", &assign_ExcST4B_kg); + assign_map.emplace("ExcST4B.ki", &assign_ExcST4B_ki); + assign_map.emplace("ExcST4B.kim", &assign_ExcST4B_kim); + assign_map.emplace("ExcST4B.kir", &assign_ExcST4B_kir); + assign_map.emplace("ExcST4B.kp", &assign_ExcST4B_kp); + assign_map.emplace("ExcST4B.kpm", &assign_ExcST4B_kpm); + assign_map.emplace("ExcST4B.kpr", &assign_ExcST4B_kpr); + assign_map.emplace("ExcST4B.lvgate", &assign_ExcST4B_lvgate); + assign_map.emplace("ExcST4B.ta", &assign_ExcST4B_ta); + assign_map.emplace("ExcST4B.thetap", &assign_ExcST4B_thetap); + assign_map.emplace("ExcST4B.uel", &assign_ExcST4B_uel); + assign_map.emplace("ExcST4B.vbmax", &assign_ExcST4B_vbmax); + assign_map.emplace("ExcST4B.vgmax", &assign_ExcST4B_vgmax); + assign_map.emplace("ExcST4B.vmmax", &assign_ExcST4B_vmmax); + assign_map.emplace("ExcST4B.vmmin", &assign_ExcST4B_vmmin); + assign_map.emplace("ExcST4B.vrmax", &assign_ExcST4B_vrmax); + assign_map.emplace("ExcST4B.vrmin", &assign_ExcST4B_vrmin); + assign_map.emplace("ExcST4B.xl", &assign_ExcST4B_xl); } void ExcST4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcST4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST4B.kc", &get_ExcST4B_kc); - get_map.emplace("cim:ExcST4B.kg", &get_ExcST4B_kg); - get_map.emplace("cim:ExcST4B.ki", &get_ExcST4B_ki); - get_map.emplace("cim:ExcST4B.kim", &get_ExcST4B_kim); - get_map.emplace("cim:ExcST4B.kir", &get_ExcST4B_kir); - get_map.emplace("cim:ExcST4B.kp", &get_ExcST4B_kp); - get_map.emplace("cim:ExcST4B.kpm", &get_ExcST4B_kpm); - get_map.emplace("cim:ExcST4B.kpr", &get_ExcST4B_kpr); - get_map.emplace("cim:ExcST4B.lvgate", &get_ExcST4B_lvgate); - get_map.emplace("cim:ExcST4B.ta", &get_ExcST4B_ta); - get_map.emplace("cim:ExcST4B.thetap", &get_ExcST4B_thetap); - get_map.emplace("cim:ExcST4B.uel", &get_ExcST4B_uel); - get_map.emplace("cim:ExcST4B.vbmax", &get_ExcST4B_vbmax); - get_map.emplace("cim:ExcST4B.vgmax", &get_ExcST4B_vgmax); - get_map.emplace("cim:ExcST4B.vmmax", &get_ExcST4B_vmmax); - get_map.emplace("cim:ExcST4B.vmmin", &get_ExcST4B_vmmin); - get_map.emplace("cim:ExcST4B.vrmax", &get_ExcST4B_vrmax); - get_map.emplace("cim:ExcST4B.vrmin", &get_ExcST4B_vrmin); - get_map.emplace("cim:ExcST4B.xl", &get_ExcST4B_xl); + get_map.emplace("ExcST4B.kc", &get_ExcST4B_kc); + get_map.emplace("ExcST4B.kg", &get_ExcST4B_kg); + get_map.emplace("ExcST4B.ki", &get_ExcST4B_ki); + get_map.emplace("ExcST4B.kim", &get_ExcST4B_kim); + get_map.emplace("ExcST4B.kir", &get_ExcST4B_kir); + get_map.emplace("ExcST4B.kp", &get_ExcST4B_kp); + get_map.emplace("ExcST4B.kpm", &get_ExcST4B_kpm); + get_map.emplace("ExcST4B.kpr", &get_ExcST4B_kpr); + get_map.emplace("ExcST4B.lvgate", &get_ExcST4B_lvgate); + get_map.emplace("ExcST4B.ta", &get_ExcST4B_ta); + get_map.emplace("ExcST4B.thetap", &get_ExcST4B_thetap); + get_map.emplace("ExcST4B.uel", &get_ExcST4B_uel); + get_map.emplace("ExcST4B.vbmax", &get_ExcST4B_vbmax); + get_map.emplace("ExcST4B.vgmax", &get_ExcST4B_vgmax); + get_map.emplace("ExcST4B.vmmax", &get_ExcST4B_vmmax); + get_map.emplace("ExcST4B.vmmin", &get_ExcST4B_vmmin); + get_map.emplace("ExcST4B.vrmax", &get_ExcST4B_vrmax); + get_map.emplace("ExcST4B.vrmin", &get_ExcST4B_vrmin); + get_map.emplace("ExcST4B.xl", &get_ExcST4B_xl); } void ExcST4B::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcST4B::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST4B::declare() { return BaseClassDefiner(ExcST4B::addConstructToMap, ExcST4B::addPrimitiveAssignFnsToMap, ExcST4B::addClassAssignFnsToMap, ExcST4B::debugName); } +std::map ExcST4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST4B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcST4B.hpp b/CGMES_2.4.15_16FEB2016/ExcST4B.hpp index 5aa265787..f769e715a 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST4B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcST4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST4B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcST6B.cpp b/CGMES_2.4.15_16FEB2016/ExcST6B.cpp index 9942e0b7a..1eb2154cf 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST6B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcST6B.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST6B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST6B.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.tvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vilim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vmult", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST6B::ExcST6B() {} ExcST6B::~ExcST6B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST6B.ilr", { CGMESProfile::DY, } }, - { "cim:ExcST6B.k1", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kcl", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kff", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kg", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kia", { CGMESProfile::DY, } }, - { "cim:ExcST6B.klr", { CGMESProfile::DY, } }, - { "cim:ExcST6B.km", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kvd", { CGMESProfile::DY, } }, - { "cim:ExcST6B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.tg", { CGMESProfile::DY, } }, - { "cim:ExcST6B.ts", { CGMESProfile::DY, } }, - { "cim:ExcST6B.tvd", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vilim", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vmult", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.xc", { CGMESProfile::DY, } }, -}; - -std::list -ExcST6B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST6B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST6B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST6B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST6B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST6B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST6B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST6B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST6B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST6B_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcST6B::debugString() const void ExcST6B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST6B", &ExcST6B_factory); + factory_map.emplace("ExcST6B", &ExcST6B_factory); } void ExcST6B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST6B.ilr", &assign_ExcST6B_ilr); - assign_map.emplace("cim:ExcST6B.k1", &assign_ExcST6B_k1); - assign_map.emplace("cim:ExcST6B.kcl", &assign_ExcST6B_kcl); - assign_map.emplace("cim:ExcST6B.kff", &assign_ExcST6B_kff); - assign_map.emplace("cim:ExcST6B.kg", &assign_ExcST6B_kg); - assign_map.emplace("cim:ExcST6B.kia", &assign_ExcST6B_kia); - assign_map.emplace("cim:ExcST6B.klr", &assign_ExcST6B_klr); - assign_map.emplace("cim:ExcST6B.km", &assign_ExcST6B_km); - assign_map.emplace("cim:ExcST6B.kpa", &assign_ExcST6B_kpa); - assign_map.emplace("cim:ExcST6B.kvd", &assign_ExcST6B_kvd); - assign_map.emplace("cim:ExcST6B.oelin", &assign_ExcST6B_oelin); - assign_map.emplace("cim:ExcST6B.tg", &assign_ExcST6B_tg); - assign_map.emplace("cim:ExcST6B.ts", &assign_ExcST6B_ts); - assign_map.emplace("cim:ExcST6B.tvd", &assign_ExcST6B_tvd); - assign_map.emplace("cim:ExcST6B.vamax", &assign_ExcST6B_vamax); - assign_map.emplace("cim:ExcST6B.vamin", &assign_ExcST6B_vamin); - assign_map.emplace("cim:ExcST6B.vilim", &assign_ExcST6B_vilim); - assign_map.emplace("cim:ExcST6B.vimax", &assign_ExcST6B_vimax); - assign_map.emplace("cim:ExcST6B.vimin", &assign_ExcST6B_vimin); - assign_map.emplace("cim:ExcST6B.vmult", &assign_ExcST6B_vmult); - assign_map.emplace("cim:ExcST6B.vrmax", &assign_ExcST6B_vrmax); - assign_map.emplace("cim:ExcST6B.vrmin", &assign_ExcST6B_vrmin); - assign_map.emplace("cim:ExcST6B.xc", &assign_ExcST6B_xc); + assign_map.emplace("ExcST6B.ilr", &assign_ExcST6B_ilr); + assign_map.emplace("ExcST6B.k1", &assign_ExcST6B_k1); + assign_map.emplace("ExcST6B.kcl", &assign_ExcST6B_kcl); + assign_map.emplace("ExcST6B.kff", &assign_ExcST6B_kff); + assign_map.emplace("ExcST6B.kg", &assign_ExcST6B_kg); + assign_map.emplace("ExcST6B.kia", &assign_ExcST6B_kia); + assign_map.emplace("ExcST6B.klr", &assign_ExcST6B_klr); + assign_map.emplace("ExcST6B.km", &assign_ExcST6B_km); + assign_map.emplace("ExcST6B.kpa", &assign_ExcST6B_kpa); + assign_map.emplace("ExcST6B.kvd", &assign_ExcST6B_kvd); + assign_map.emplace("ExcST6B.oelin", &assign_ExcST6B_oelin); + assign_map.emplace("ExcST6B.tg", &assign_ExcST6B_tg); + assign_map.emplace("ExcST6B.ts", &assign_ExcST6B_ts); + assign_map.emplace("ExcST6B.tvd", &assign_ExcST6B_tvd); + assign_map.emplace("ExcST6B.vamax", &assign_ExcST6B_vamax); + assign_map.emplace("ExcST6B.vamin", &assign_ExcST6B_vamin); + assign_map.emplace("ExcST6B.vilim", &assign_ExcST6B_vilim); + assign_map.emplace("ExcST6B.vimax", &assign_ExcST6B_vimax); + assign_map.emplace("ExcST6B.vimin", &assign_ExcST6B_vimin); + assign_map.emplace("ExcST6B.vmult", &assign_ExcST6B_vmult); + assign_map.emplace("ExcST6B.vrmax", &assign_ExcST6B_vrmax); + assign_map.emplace("ExcST6B.vrmin", &assign_ExcST6B_vrmin); + assign_map.emplace("ExcST6B.xc", &assign_ExcST6B_xc); } void ExcST6B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,28 +805,28 @@ void ExcST6B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST6B.ilr", &get_ExcST6B_ilr); - get_map.emplace("cim:ExcST6B.k1", &get_ExcST6B_k1); - get_map.emplace("cim:ExcST6B.kcl", &get_ExcST6B_kcl); - get_map.emplace("cim:ExcST6B.kff", &get_ExcST6B_kff); - get_map.emplace("cim:ExcST6B.kg", &get_ExcST6B_kg); - get_map.emplace("cim:ExcST6B.kia", &get_ExcST6B_kia); - get_map.emplace("cim:ExcST6B.klr", &get_ExcST6B_klr); - get_map.emplace("cim:ExcST6B.km", &get_ExcST6B_km); - get_map.emplace("cim:ExcST6B.kpa", &get_ExcST6B_kpa); - get_map.emplace("cim:ExcST6B.kvd", &get_ExcST6B_kvd); - get_map.emplace("cim:ExcST6B.tg", &get_ExcST6B_tg); - get_map.emplace("cim:ExcST6B.ts", &get_ExcST6B_ts); - get_map.emplace("cim:ExcST6B.tvd", &get_ExcST6B_tvd); - get_map.emplace("cim:ExcST6B.vamax", &get_ExcST6B_vamax); - get_map.emplace("cim:ExcST6B.vamin", &get_ExcST6B_vamin); - get_map.emplace("cim:ExcST6B.vilim", &get_ExcST6B_vilim); - get_map.emplace("cim:ExcST6B.vimax", &get_ExcST6B_vimax); - get_map.emplace("cim:ExcST6B.vimin", &get_ExcST6B_vimin); - get_map.emplace("cim:ExcST6B.vmult", &get_ExcST6B_vmult); - get_map.emplace("cim:ExcST6B.vrmax", &get_ExcST6B_vrmax); - get_map.emplace("cim:ExcST6B.vrmin", &get_ExcST6B_vrmin); - get_map.emplace("cim:ExcST6B.xc", &get_ExcST6B_xc); + get_map.emplace("ExcST6B.ilr", &get_ExcST6B_ilr); + get_map.emplace("ExcST6B.k1", &get_ExcST6B_k1); + get_map.emplace("ExcST6B.kcl", &get_ExcST6B_kcl); + get_map.emplace("ExcST6B.kff", &get_ExcST6B_kff); + get_map.emplace("ExcST6B.kg", &get_ExcST6B_kg); + get_map.emplace("ExcST6B.kia", &get_ExcST6B_kia); + get_map.emplace("ExcST6B.klr", &get_ExcST6B_klr); + get_map.emplace("ExcST6B.km", &get_ExcST6B_km); + get_map.emplace("ExcST6B.kpa", &get_ExcST6B_kpa); + get_map.emplace("ExcST6B.kvd", &get_ExcST6B_kvd); + get_map.emplace("ExcST6B.tg", &get_ExcST6B_tg); + get_map.emplace("ExcST6B.ts", &get_ExcST6B_ts); + get_map.emplace("ExcST6B.tvd", &get_ExcST6B_tvd); + get_map.emplace("ExcST6B.vamax", &get_ExcST6B_vamax); + get_map.emplace("ExcST6B.vamin", &get_ExcST6B_vamin); + get_map.emplace("ExcST6B.vilim", &get_ExcST6B_vilim); + get_map.emplace("ExcST6B.vimax", &get_ExcST6B_vimax); + get_map.emplace("ExcST6B.vimin", &get_ExcST6B_vimin); + get_map.emplace("ExcST6B.vmult", &get_ExcST6B_vmult); + get_map.emplace("ExcST6B.vrmax", &get_ExcST6B_vrmax); + get_map.emplace("ExcST6B.vrmin", &get_ExcST6B_vrmin); + get_map.emplace("ExcST6B.xc", &get_ExcST6B_xc); } void ExcST6B::addClassGetFnsToMap(std::map& get_map) const @@ -805,7 +837,13 @@ void ExcST6B::addClassGetFnsToMap(std::map& get void ExcST6B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcST6B.oelin", &get_ExcST6B_oelin); + get_map.emplace("ExcST6B.oelin", &get_ExcST6B_oelin); +} + +bool ExcST6B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST6B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcST6B::declare() @@ -813,6 +851,14 @@ const BaseClassDefiner ExcST6B::declare() return BaseClassDefiner(ExcST6B::addConstructToMap, ExcST6B::addPrimitiveAssignFnsToMap, ExcST6B::addClassAssignFnsToMap, ExcST6B::debugName); } +std::map ExcST6B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST6B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcST6B.hpp b/CGMES_2.4.15_16FEB2016/ExcST6B.hpp index 5b79ac602..9a5dc81bd 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST6B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcST6B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "ExcST6BOELselectorKind.hpp" #include "PU.hpp" @@ -100,8 +101,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -109,7 +117,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST6B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcST7B.cpp b/CGMES_2.4.15_16FEB2016/ExcST7B.cpp index b353d3afa..d4ab87ebf 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST7B.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcST7B.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST7B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST7B::ExcST7B() {} ExcST7B::~ExcST7B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST7B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST7B::getClassNamespaceUrl() const { - { "cim:ExcST7B.kh", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcST7B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tb", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tc", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tg", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tia", { CGMESProfile::DY, } }, - { "cim:ExcST7B.ts", { CGMESProfile::DY, } }, - { "cim:ExcST7B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vmax", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vmin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST7B::getPossibleProfilesForClass() const +const std::string& ExcST7B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST7B::getPossibleProfilesForAttributes() const +const std::list& ExcST7B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST7B_kh(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcST7B::debugString() const void ExcST7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST7B", &ExcST7B_factory); + factory_map.emplace("ExcST7B", &ExcST7B_factory); } void ExcST7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST7B.kh", &assign_ExcST7B_kh); - assign_map.emplace("cim:ExcST7B.kia", &assign_ExcST7B_kia); - assign_map.emplace("cim:ExcST7B.kl", &assign_ExcST7B_kl); - assign_map.emplace("cim:ExcST7B.kpa", &assign_ExcST7B_kpa); - assign_map.emplace("cim:ExcST7B.oelin", &assign_ExcST7B_oelin); - assign_map.emplace("cim:ExcST7B.tb", &assign_ExcST7B_tb); - assign_map.emplace("cim:ExcST7B.tc", &assign_ExcST7B_tc); - assign_map.emplace("cim:ExcST7B.tf", &assign_ExcST7B_tf); - assign_map.emplace("cim:ExcST7B.tg", &assign_ExcST7B_tg); - assign_map.emplace("cim:ExcST7B.tia", &assign_ExcST7B_tia); - assign_map.emplace("cim:ExcST7B.ts", &assign_ExcST7B_ts); - assign_map.emplace("cim:ExcST7B.uelin", &assign_ExcST7B_uelin); - assign_map.emplace("cim:ExcST7B.vmax", &assign_ExcST7B_vmax); - assign_map.emplace("cim:ExcST7B.vmin", &assign_ExcST7B_vmin); - assign_map.emplace("cim:ExcST7B.vrmax", &assign_ExcST7B_vrmax); - assign_map.emplace("cim:ExcST7B.vrmin", &assign_ExcST7B_vrmin); + assign_map.emplace("ExcST7B.kh", &assign_ExcST7B_kh); + assign_map.emplace("ExcST7B.kia", &assign_ExcST7B_kia); + assign_map.emplace("ExcST7B.kl", &assign_ExcST7B_kl); + assign_map.emplace("ExcST7B.kpa", &assign_ExcST7B_kpa); + assign_map.emplace("ExcST7B.oelin", &assign_ExcST7B_oelin); + assign_map.emplace("ExcST7B.tb", &assign_ExcST7B_tb); + assign_map.emplace("ExcST7B.tc", &assign_ExcST7B_tc); + assign_map.emplace("ExcST7B.tf", &assign_ExcST7B_tf); + assign_map.emplace("ExcST7B.tg", &assign_ExcST7B_tg); + assign_map.emplace("ExcST7B.tia", &assign_ExcST7B_tia); + assign_map.emplace("ExcST7B.ts", &assign_ExcST7B_ts); + assign_map.emplace("ExcST7B.uelin", &assign_ExcST7B_uelin); + assign_map.emplace("ExcST7B.vmax", &assign_ExcST7B_vmax); + assign_map.emplace("ExcST7B.vmin", &assign_ExcST7B_vmin); + assign_map.emplace("ExcST7B.vrmax", &assign_ExcST7B_vrmax); + assign_map.emplace("ExcST7B.vrmin", &assign_ExcST7B_vrmin); } void ExcST7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,20 +588,20 @@ void ExcST7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST7B.kh", &get_ExcST7B_kh); - get_map.emplace("cim:ExcST7B.kia", &get_ExcST7B_kia); - get_map.emplace("cim:ExcST7B.kl", &get_ExcST7B_kl); - get_map.emplace("cim:ExcST7B.kpa", &get_ExcST7B_kpa); - get_map.emplace("cim:ExcST7B.tb", &get_ExcST7B_tb); - get_map.emplace("cim:ExcST7B.tc", &get_ExcST7B_tc); - get_map.emplace("cim:ExcST7B.tf", &get_ExcST7B_tf); - get_map.emplace("cim:ExcST7B.tg", &get_ExcST7B_tg); - get_map.emplace("cim:ExcST7B.tia", &get_ExcST7B_tia); - get_map.emplace("cim:ExcST7B.ts", &get_ExcST7B_ts); - get_map.emplace("cim:ExcST7B.vmax", &get_ExcST7B_vmax); - get_map.emplace("cim:ExcST7B.vmin", &get_ExcST7B_vmin); - get_map.emplace("cim:ExcST7B.vrmax", &get_ExcST7B_vrmax); - get_map.emplace("cim:ExcST7B.vrmin", &get_ExcST7B_vrmin); + get_map.emplace("ExcST7B.kh", &get_ExcST7B_kh); + get_map.emplace("ExcST7B.kia", &get_ExcST7B_kia); + get_map.emplace("ExcST7B.kl", &get_ExcST7B_kl); + get_map.emplace("ExcST7B.kpa", &get_ExcST7B_kpa); + get_map.emplace("ExcST7B.tb", &get_ExcST7B_tb); + get_map.emplace("ExcST7B.tc", &get_ExcST7B_tc); + get_map.emplace("ExcST7B.tf", &get_ExcST7B_tf); + get_map.emplace("ExcST7B.tg", &get_ExcST7B_tg); + get_map.emplace("ExcST7B.tia", &get_ExcST7B_tia); + get_map.emplace("ExcST7B.ts", &get_ExcST7B_ts); + get_map.emplace("ExcST7B.vmax", &get_ExcST7B_vmax); + get_map.emplace("ExcST7B.vmin", &get_ExcST7B_vmin); + get_map.emplace("ExcST7B.vrmax", &get_ExcST7B_vrmax); + get_map.emplace("ExcST7B.vrmin", &get_ExcST7B_vrmin); } void ExcST7B::addClassGetFnsToMap(std::map& get_map) const @@ -580,8 +612,14 @@ void ExcST7B::addClassGetFnsToMap(std::map& get void ExcST7B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcST7B.oelin", &get_ExcST7B_oelin); - get_map.emplace("cim:ExcST7B.uelin", &get_ExcST7B_uelin); + get_map.emplace("ExcST7B.oelin", &get_ExcST7B_oelin); + get_map.emplace("ExcST7B.uelin", &get_ExcST7B_uelin); +} + +bool ExcST7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST7B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcST7B::declare() @@ -589,6 +627,14 @@ const BaseClassDefiner ExcST7B::declare() return BaseClassDefiner(ExcST7B::addConstructToMap, ExcST7B::addPrimitiveAssignFnsToMap, ExcST7B::addClassAssignFnsToMap, ExcST7B::debugName); } +std::map ExcST7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST7B_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcST7B.hpp b/CGMES_2.4.15_16FEB2016/ExcST7B.hpp index 3a015ea97..b7d7b756c 100644 --- a/CGMES_2.4.15_16FEB2016/ExcST7B.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcST7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST7BOELselectorKind.hpp" #include "ExcST7BUELselectorKind.hpp" #include "PU.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST7B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcitationSystemDynamics.cpp b/CGMES_2.4.15_16FEB2016/ExcitationSystemDynamics.cpp index 540af8c6a..f278015d3 100644 --- a/CGMES_2.4.15_16FEB2016/ExcitationSystemDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcitationSystemDynamics.cpp @@ -19,39 +19,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcitationSystemDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.OverexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PFVArControllerType2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PowerSystemStabilizerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.UnderexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.VoltageCompensatorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcitationSystemDynamics::ExcitationSystemDynamics() : DiscontinuousExcitationControlDynamics(nullptr), OverexcitationLimiterDynamics(nullptr), PFVArControllerType1Dynamics(nullptr), PFVArControllerType2Dynamics(nullptr), PowerSystemStabilizerDynamics(nullptr), SynchronousMachineDynamics(nullptr), UnderexcitationLimiterDynamics(nullptr), VoltageCompensatorDynamics(nullptr) {} ExcitationSystemDynamics::~ExcitationSystemDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcitationSystemDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcitationSystemDynamics::getClassNamespaceUrl() const { - { "cim:ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.OverexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PFVArControllerType2Dynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PowerSystemStabilizerDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.UnderexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.VoltageCompensatorDynamics", { CGMESProfile::DY, } }, -}; - -std::list -ExcitationSystemDynamics::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcitationSystemDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcitationSystemDynamics::getPossibleProfilesForAttributes() const +const std::list& ExcitationSystemDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcitationSystemDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcitationSystemDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcitationSystemDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics(BaseClass*, BaseClass*); @@ -219,7 +251,7 @@ const char* ExcitationSystemDynamics::debugString() const void ExcitationSystemDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcitationSystemDynamics", &ExcitationSystemDynamics_factory); + factory_map.emplace("ExcitationSystemDynamics", &ExcitationSystemDynamics_factory); } void ExcitationSystemDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -228,14 +260,14 @@ void ExcitationSystemDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", &assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.OverexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PFVArControllerType1Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PFVArControllerType2Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PowerSystemStabilizerDynamics", &assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.SynchronousMachineDynamics", &assign_ExcitationSystemDynamics_SynchronousMachineDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.UnderexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.VoltageCompensatorDynamics", &assign_ExcitationSystemDynamics_VoltageCompensatorDynamics); + assign_map.emplace("ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", &assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics); + assign_map.emplace("ExcitationSystemDynamics.OverexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics); + assign_map.emplace("ExcitationSystemDynamics.PFVArControllerType1Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics); + assign_map.emplace("ExcitationSystemDynamics.PFVArControllerType2Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics); + assign_map.emplace("ExcitationSystemDynamics.PowerSystemStabilizerDynamics", &assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics); + assign_map.emplace("ExcitationSystemDynamics.SynchronousMachineDynamics", &assign_ExcitationSystemDynamics_SynchronousMachineDynamics); + assign_map.emplace("ExcitationSystemDynamics.UnderexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics); + assign_map.emplace("ExcitationSystemDynamics.VoltageCompensatorDynamics", &assign_ExcitationSystemDynamics_VoltageCompensatorDynamics); } void ExcitationSystemDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -246,7 +278,7 @@ void ExcitationSystemDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ExcitationSystemDynamics.SynchronousMachineDynamics", &get_ExcitationSystemDynamics_SynchronousMachineDynamics); + get_map.emplace("ExcitationSystemDynamics.SynchronousMachineDynamics", &get_ExcitationSystemDynamics_SynchronousMachineDynamics); } void ExcitationSystemDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -254,11 +286,25 @@ void ExcitationSystemDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExcitationSystemDynamics::declare() { return BaseClassDefiner(ExcitationSystemDynamics::addConstructToMap, ExcitationSystemDynamics::addPrimitiveAssignFnsToMap, ExcitationSystemDynamics::addClassAssignFnsToMap, ExcitationSystemDynamics::debugName); } +std::map ExcitationSystemDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcitationSystemDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcitationSystemDynamics.hpp b/CGMES_2.4.15_16FEB2016/ExcitationSystemDynamics.hpp index eb20de209..5904db177 100644 --- a/CGMES_2.4.15_16FEB2016/ExcitationSystemDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcitationSystemDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcitationSystemDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExcitationSystemUserDefined.cpp b/CGMES_2.4.15_16FEB2016/ExcitationSystemUserDefined.cpp index 362ef357e..926f5b95a 100644 --- a/CGMES_2.4.15_16FEB2016/ExcitationSystemUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/ExcitationSystemUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcitationSystemUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcitationSystemUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcitationSystemUserDefined::ExcitationSystemUserDefined() {} ExcitationSystemUserDefined::~ExcitationSystemUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcitationSystemUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcitationSystemUserDefined::getClassNamespaceUrl() const { - { "cim:ExcitationSystemUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcitationSystemUserDefined::getPossibleProfilesForClass() const +const std::string& ExcitationSystemUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcitationSystemUserDefined::getPossibleProfilesForAttributes() const +const std::list& ExcitationSystemUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcitationSystemUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcitationSystemUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcitationSystemUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* ExcitationSystemUserDefined::debugString() const void ExcitationSystemUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcitationSystemUserDefined", &ExcitationSystemUserDefined_factory); + factory_map.emplace("ExcitationSystemUserDefined", &ExcitationSystemUserDefined_factory); } void ExcitationSystemUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemUserDefined.proprietary", &assign_ExcitationSystemUserDefined_proprietary); + assign_map.emplace("ExcitationSystemUserDefined.proprietary", &assign_ExcitationSystemUserDefined_proprietary); } void ExcitationSystemUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemUserDefined.ProprietaryParameterDynamics", &assign_ExcitationSystemUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("ExcitationSystemUserDefined.ProprietaryParameterDynamics", &assign_ExcitationSystemUserDefined_ProprietaryParameterDynamics); } void ExcitationSystemUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcitationSystemUserDefined.proprietary", &get_ExcitationSystemUserDefined_proprietary); + get_map.emplace("ExcitationSystemUserDefined.proprietary", &get_ExcitationSystemUserDefined_proprietary); } void ExcitationSystemUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void ExcitationSystemUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExcitationSystemUserDefined::declare() { return BaseClassDefiner(ExcitationSystemUserDefined::addConstructToMap, ExcitationSystemUserDefined::addPrimitiveAssignFnsToMap, ExcitationSystemUserDefined::addClassAssignFnsToMap, ExcitationSystemUserDefined::debugName); } +std::map ExcitationSystemUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcitationSystemUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExcitationSystemUserDefined.hpp b/CGMES_2.4.15_16FEB2016/ExcitationSystemUserDefined.hpp index 02b86bd95..a1b3c317d 100644 --- a/CGMES_2.4.15_16FEB2016/ExcitationSystemUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/ExcitationSystemUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcitationSystemUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ExternalNetworkInjection.cpp b/CGMES_2.4.15_16FEB2016/ExternalNetworkInjection.cpp index 134627b99..ce5150369 100644 --- a/CGMES_2.4.15_16FEB2016/ExternalNetworkInjection.cpp +++ b/CGMES_2.4.15_16FEB2016/ExternalNetworkInjection.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExternalNetworkInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExternalNetworkInjection.governorSCD", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.ikSecond", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxInitialSymShCCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxR0ToX0Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxR1ToX1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxZ0ToZ1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minInitialSymShCCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minR0ToX0Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minR1ToX1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minZ0ToZ1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.referencePriority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.voltageFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ExternalNetworkInjection::ExternalNetworkInjection() {} ExternalNetworkInjection::~ExternalNetworkInjection() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExternalNetworkInjection.governorSCD", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.ikSecond", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxInitialSymShCCurrent", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxP", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxQ", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxR0ToX0Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxR1ToX1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minInitialSymShCCurrent", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minP", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minQ", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minR0ToX0Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minR1ToX1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minZ0ToZ1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.p", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.q", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.referencePriority", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.voltageFactor", { CGMESProfile::EQ, } }, -}; - -std::list -ExternalNetworkInjection::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExternalNetworkInjection::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExternalNetworkInjection::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExternalNetworkInjection::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExternalNetworkInjection::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExternalNetworkInjection::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExternalNetworkInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExternalNetworkInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExternalNetworkInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExternalNetworkInjection_governorSCD(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -587,29 +619,29 @@ const char* ExternalNetworkInjection::debugString() const void ExternalNetworkInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExternalNetworkInjection", &ExternalNetworkInjection_factory); + factory_map.emplace("ExternalNetworkInjection", &ExternalNetworkInjection_factory); } void ExternalNetworkInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExternalNetworkInjection.governorSCD", &assign_ExternalNetworkInjection_governorSCD); - assign_map.emplace("cim:ExternalNetworkInjection.ikSecond", &assign_ExternalNetworkInjection_ikSecond); - assign_map.emplace("cim:ExternalNetworkInjection.maxInitialSymShCCurrent", &assign_ExternalNetworkInjection_maxInitialSymShCCurrent); - assign_map.emplace("cim:ExternalNetworkInjection.maxP", &assign_ExternalNetworkInjection_maxP); - assign_map.emplace("cim:ExternalNetworkInjection.maxQ", &assign_ExternalNetworkInjection_maxQ); - assign_map.emplace("cim:ExternalNetworkInjection.maxR0ToX0Ratio", &assign_ExternalNetworkInjection_maxR0ToX0Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.maxR1ToX1Ratio", &assign_ExternalNetworkInjection_maxR1ToX1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", &assign_ExternalNetworkInjection_maxZ0ToZ1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minInitialSymShCCurrent", &assign_ExternalNetworkInjection_minInitialSymShCCurrent); - assign_map.emplace("cim:ExternalNetworkInjection.minP", &assign_ExternalNetworkInjection_minP); - assign_map.emplace("cim:ExternalNetworkInjection.minQ", &assign_ExternalNetworkInjection_minQ); - assign_map.emplace("cim:ExternalNetworkInjection.minR0ToX0Ratio", &assign_ExternalNetworkInjection_minR0ToX0Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minR1ToX1Ratio", &assign_ExternalNetworkInjection_minR1ToX1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minZ0ToZ1Ratio", &assign_ExternalNetworkInjection_minZ0ToZ1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.p", &assign_ExternalNetworkInjection_p); - assign_map.emplace("cim:ExternalNetworkInjection.q", &assign_ExternalNetworkInjection_q); - assign_map.emplace("cim:ExternalNetworkInjection.referencePriority", &assign_ExternalNetworkInjection_referencePriority); - assign_map.emplace("cim:ExternalNetworkInjection.voltageFactor", &assign_ExternalNetworkInjection_voltageFactor); + assign_map.emplace("ExternalNetworkInjection.governorSCD", &assign_ExternalNetworkInjection_governorSCD); + assign_map.emplace("ExternalNetworkInjection.ikSecond", &assign_ExternalNetworkInjection_ikSecond); + assign_map.emplace("ExternalNetworkInjection.maxInitialSymShCCurrent", &assign_ExternalNetworkInjection_maxInitialSymShCCurrent); + assign_map.emplace("ExternalNetworkInjection.maxP", &assign_ExternalNetworkInjection_maxP); + assign_map.emplace("ExternalNetworkInjection.maxQ", &assign_ExternalNetworkInjection_maxQ); + assign_map.emplace("ExternalNetworkInjection.maxR0ToX0Ratio", &assign_ExternalNetworkInjection_maxR0ToX0Ratio); + assign_map.emplace("ExternalNetworkInjection.maxR1ToX1Ratio", &assign_ExternalNetworkInjection_maxR1ToX1Ratio); + assign_map.emplace("ExternalNetworkInjection.maxZ0ToZ1Ratio", &assign_ExternalNetworkInjection_maxZ0ToZ1Ratio); + assign_map.emplace("ExternalNetworkInjection.minInitialSymShCCurrent", &assign_ExternalNetworkInjection_minInitialSymShCCurrent); + assign_map.emplace("ExternalNetworkInjection.minP", &assign_ExternalNetworkInjection_minP); + assign_map.emplace("ExternalNetworkInjection.minQ", &assign_ExternalNetworkInjection_minQ); + assign_map.emplace("ExternalNetworkInjection.minR0ToX0Ratio", &assign_ExternalNetworkInjection_minR0ToX0Ratio); + assign_map.emplace("ExternalNetworkInjection.minR1ToX1Ratio", &assign_ExternalNetworkInjection_minR1ToX1Ratio); + assign_map.emplace("ExternalNetworkInjection.minZ0ToZ1Ratio", &assign_ExternalNetworkInjection_minZ0ToZ1Ratio); + assign_map.emplace("ExternalNetworkInjection.p", &assign_ExternalNetworkInjection_p); + assign_map.emplace("ExternalNetworkInjection.q", &assign_ExternalNetworkInjection_q); + assign_map.emplace("ExternalNetworkInjection.referencePriority", &assign_ExternalNetworkInjection_referencePriority); + assign_map.emplace("ExternalNetworkInjection.voltageFactor", &assign_ExternalNetworkInjection_voltageFactor); } void ExternalNetworkInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -619,24 +651,24 @@ void ExternalNetworkInjection::addClassAssignFnsToMap(std::unordered_map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExternalNetworkInjection.governorSCD", &get_ExternalNetworkInjection_governorSCD); - get_map.emplace("cim:ExternalNetworkInjection.ikSecond", &get_ExternalNetworkInjection_ikSecond); - get_map.emplace("cim:ExternalNetworkInjection.maxInitialSymShCCurrent", &get_ExternalNetworkInjection_maxInitialSymShCCurrent); - get_map.emplace("cim:ExternalNetworkInjection.maxP", &get_ExternalNetworkInjection_maxP); - get_map.emplace("cim:ExternalNetworkInjection.maxQ", &get_ExternalNetworkInjection_maxQ); - get_map.emplace("cim:ExternalNetworkInjection.maxR0ToX0Ratio", &get_ExternalNetworkInjection_maxR0ToX0Ratio); - get_map.emplace("cim:ExternalNetworkInjection.maxR1ToX1Ratio", &get_ExternalNetworkInjection_maxR1ToX1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", &get_ExternalNetworkInjection_maxZ0ToZ1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minInitialSymShCCurrent", &get_ExternalNetworkInjection_minInitialSymShCCurrent); - get_map.emplace("cim:ExternalNetworkInjection.minP", &get_ExternalNetworkInjection_minP); - get_map.emplace("cim:ExternalNetworkInjection.minQ", &get_ExternalNetworkInjection_minQ); - get_map.emplace("cim:ExternalNetworkInjection.minR0ToX0Ratio", &get_ExternalNetworkInjection_minR0ToX0Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minR1ToX1Ratio", &get_ExternalNetworkInjection_minR1ToX1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minZ0ToZ1Ratio", &get_ExternalNetworkInjection_minZ0ToZ1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.p", &get_ExternalNetworkInjection_p); - get_map.emplace("cim:ExternalNetworkInjection.q", &get_ExternalNetworkInjection_q); - get_map.emplace("cim:ExternalNetworkInjection.referencePriority", &get_ExternalNetworkInjection_referencePriority); - get_map.emplace("cim:ExternalNetworkInjection.voltageFactor", &get_ExternalNetworkInjection_voltageFactor); + get_map.emplace("ExternalNetworkInjection.governorSCD", &get_ExternalNetworkInjection_governorSCD); + get_map.emplace("ExternalNetworkInjection.ikSecond", &get_ExternalNetworkInjection_ikSecond); + get_map.emplace("ExternalNetworkInjection.maxInitialSymShCCurrent", &get_ExternalNetworkInjection_maxInitialSymShCCurrent); + get_map.emplace("ExternalNetworkInjection.maxP", &get_ExternalNetworkInjection_maxP); + get_map.emplace("ExternalNetworkInjection.maxQ", &get_ExternalNetworkInjection_maxQ); + get_map.emplace("ExternalNetworkInjection.maxR0ToX0Ratio", &get_ExternalNetworkInjection_maxR0ToX0Ratio); + get_map.emplace("ExternalNetworkInjection.maxR1ToX1Ratio", &get_ExternalNetworkInjection_maxR1ToX1Ratio); + get_map.emplace("ExternalNetworkInjection.maxZ0ToZ1Ratio", &get_ExternalNetworkInjection_maxZ0ToZ1Ratio); + get_map.emplace("ExternalNetworkInjection.minInitialSymShCCurrent", &get_ExternalNetworkInjection_minInitialSymShCCurrent); + get_map.emplace("ExternalNetworkInjection.minP", &get_ExternalNetworkInjection_minP); + get_map.emplace("ExternalNetworkInjection.minQ", &get_ExternalNetworkInjection_minQ); + get_map.emplace("ExternalNetworkInjection.minR0ToX0Ratio", &get_ExternalNetworkInjection_minR0ToX0Ratio); + get_map.emplace("ExternalNetworkInjection.minR1ToX1Ratio", &get_ExternalNetworkInjection_minR1ToX1Ratio); + get_map.emplace("ExternalNetworkInjection.minZ0ToZ1Ratio", &get_ExternalNetworkInjection_minZ0ToZ1Ratio); + get_map.emplace("ExternalNetworkInjection.p", &get_ExternalNetworkInjection_p); + get_map.emplace("ExternalNetworkInjection.q", &get_ExternalNetworkInjection_q); + get_map.emplace("ExternalNetworkInjection.referencePriority", &get_ExternalNetworkInjection_referencePriority); + get_map.emplace("ExternalNetworkInjection.voltageFactor", &get_ExternalNetworkInjection_voltageFactor); } void ExternalNetworkInjection::addClassGetFnsToMap(std::map& get_map) const @@ -649,11 +681,25 @@ void ExternalNetworkInjection::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExternalNetworkInjection::declare() { return BaseClassDefiner(ExternalNetworkInjection::addConstructToMap, ExternalNetworkInjection::addPrimitiveAssignFnsToMap, ExternalNetworkInjection::addClassAssignFnsToMap, ExternalNetworkInjection::debugName); } +std::map ExternalNetworkInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExternalNetworkInjection_factory() diff --git a/CGMES_2.4.15_16FEB2016/ExternalNetworkInjection.hpp b/CGMES_2.4.15_16FEB2016/ExternalNetworkInjection.hpp index e4e61c828..32343cc80 100644 --- a/CGMES_2.4.15_16FEB2016/ExternalNetworkInjection.hpp +++ b/CGMES_2.4.15_16FEB2016/ExternalNetworkInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ActivePowerPerFrequency.hpp" #include "Boolean.hpp" @@ -89,8 +90,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -98,7 +106,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExternalNetworkInjection_factory(); diff --git a/CGMES_2.4.15_16FEB2016/FossilFuel.cpp b/CGMES_2.4.15_16FEB2016/FossilFuel.cpp index d8564bf4d..2c4dfb3f0 100644 --- a/CGMES_2.4.15_16FEB2016/FossilFuel.cpp +++ b/CGMES_2.4.15_16FEB2016/FossilFuel.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + FossilFuel(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "FossilFuel.ThermalGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "FossilFuel.fossilFuelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + FossilFuel::FossilFuel() : ThermalGeneratingUnit(nullptr) {} FossilFuel::~FossilFuel() {} -static const std::list PossibleProfilesForClass = +const std::list& FossilFuel::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& FossilFuel::getClassNamespaceUrl() const { - { "cim:FossilFuel.ThermalGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:FossilFuel.fossilFuelType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -FossilFuel::getPossibleProfilesForClass() const +const std::string& FossilFuel::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -FossilFuel::getPossibleProfilesForAttributes() const +const std::list& FossilFuel::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& FossilFuel::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& FossilFuel::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& FossilFuel::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ThermalGeneratingUnit_FossilFuels(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* FossilFuel::debugString() const void FossilFuel::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:FossilFuel", &FossilFuel_factory); + factory_map.emplace("FossilFuel", &FossilFuel_factory); } void FossilFuel::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:FossilFuel.fossilFuelType", &assign_FossilFuel_fossilFuelType); + assign_map.emplace("FossilFuel.fossilFuelType", &assign_FossilFuel_fossilFuelType); } void FossilFuel::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:FossilFuel.ThermalGeneratingUnit", &assign_FossilFuel_ThermalGeneratingUnit); + assign_map.emplace("FossilFuel.ThermalGeneratingUnit", &assign_FossilFuel_ThermalGeneratingUnit); } void FossilFuel::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void FossilFuel::addPrimitiveGetFnsToMap(std::map& ge void FossilFuel::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:FossilFuel.ThermalGeneratingUnit", &get_FossilFuel_ThermalGeneratingUnit); + get_map.emplace("FossilFuel.ThermalGeneratingUnit", &get_FossilFuel_ThermalGeneratingUnit); } void FossilFuel::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:FossilFuel.fossilFuelType", &get_FossilFuel_fossilFuelType); + get_map.emplace("FossilFuel.fossilFuelType", &get_FossilFuel_fossilFuelType); +} + +bool FossilFuel::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "FossilFuel" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner FossilFuel::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner FossilFuel::declare() return BaseClassDefiner(FossilFuel::addConstructToMap, FossilFuel::addPrimitiveAssignFnsToMap, FossilFuel::addClassAssignFnsToMap, FossilFuel::debugName); } +std::map FossilFuel::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* FossilFuel_factory() diff --git a/CGMES_2.4.15_16FEB2016/FossilFuel.hpp b/CGMES_2.4.15_16FEB2016/FossilFuel.hpp index 8b402a908..d691f6007 100644 --- a/CGMES_2.4.15_16FEB2016/FossilFuel.hpp +++ b/CGMES_2.4.15_16FEB2016/FossilFuel.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "FuelType.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* FossilFuel_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GenICompensationForGenJ.cpp b/CGMES_2.4.15_16FEB2016/GenICompensationForGenJ.cpp index ade258b3c..6f0a817c2 100644 --- a/CGMES_2.4.15_16FEB2016/GenICompensationForGenJ.cpp +++ b/CGMES_2.4.15_16FEB2016/GenICompensationForGenJ.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GenICompensationForGenJ(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GenICompensationForGenJ.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.VcompIEEEType2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.rcij", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.xcij", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GenICompensationForGenJ::GenICompensationForGenJ() : SynchronousMachineDynamics(nullptr), VcompIEEEType2(nullptr) {} GenICompensationForGenJ::~GenICompensationForGenJ() {} -static const std::list PossibleProfilesForClass = +const std::list& GenICompensationForGenJ::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GenICompensationForGenJ::getClassNamespaceUrl() const { - { "cim:GenICompensationForGenJ.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.VcompIEEEType2", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.rcij", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.xcij", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GenICompensationForGenJ::getPossibleProfilesForClass() const +const std::string& GenICompensationForGenJ::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GenICompensationForGenJ::getPossibleProfilesForAttributes() const +const std::list& GenICompensationForGenJ::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GenICompensationForGenJ::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GenICompensationForGenJ::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GenICompensationForGenJ::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDynamics_GenICompensationForGenJ(BaseClass*, BaseClass*); @@ -172,33 +204,33 @@ const char* GenICompensationForGenJ::debugString() const void GenICompensationForGenJ::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GenICompensationForGenJ", &GenICompensationForGenJ_factory); + factory_map.emplace("GenICompensationForGenJ", &GenICompensationForGenJ_factory); } void GenICompensationForGenJ::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GenICompensationForGenJ.rcij", &assign_GenICompensationForGenJ_rcij); - assign_map.emplace("cim:GenICompensationForGenJ.xcij", &assign_GenICompensationForGenJ_xcij); + assign_map.emplace("GenICompensationForGenJ.rcij", &assign_GenICompensationForGenJ_rcij); + assign_map.emplace("GenICompensationForGenJ.xcij", &assign_GenICompensationForGenJ_xcij); } void GenICompensationForGenJ::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GenICompensationForGenJ.SynchronousMachineDynamics", &assign_GenICompensationForGenJ_SynchronousMachineDynamics); - assign_map.emplace("cim:GenICompensationForGenJ.VcompIEEEType2", &assign_GenICompensationForGenJ_VcompIEEEType2); + assign_map.emplace("GenICompensationForGenJ.SynchronousMachineDynamics", &assign_GenICompensationForGenJ_SynchronousMachineDynamics); + assign_map.emplace("GenICompensationForGenJ.VcompIEEEType2", &assign_GenICompensationForGenJ_VcompIEEEType2); } void GenICompensationForGenJ::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GenICompensationForGenJ.rcij", &get_GenICompensationForGenJ_rcij); - get_map.emplace("cim:GenICompensationForGenJ.xcij", &get_GenICompensationForGenJ_xcij); + get_map.emplace("GenICompensationForGenJ.rcij", &get_GenICompensationForGenJ_rcij); + get_map.emplace("GenICompensationForGenJ.xcij", &get_GenICompensationForGenJ_xcij); } void GenICompensationForGenJ::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:GenICompensationForGenJ.SynchronousMachineDynamics", &get_GenICompensationForGenJ_SynchronousMachineDynamics); - get_map.emplace("cim:GenICompensationForGenJ.VcompIEEEType2", &get_GenICompensationForGenJ_VcompIEEEType2); + get_map.emplace("GenICompensationForGenJ.SynchronousMachineDynamics", &get_GenICompensationForGenJ_SynchronousMachineDynamics); + get_map.emplace("GenICompensationForGenJ.VcompIEEEType2", &get_GenICompensationForGenJ_VcompIEEEType2); } void GenICompensationForGenJ::addEnumGetFnsToMap(std::map& get_map) const @@ -206,11 +238,25 @@ void GenICompensationForGenJ::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GenICompensationForGenJ::declare() { return BaseClassDefiner(GenICompensationForGenJ::addConstructToMap, GenICompensationForGenJ::addPrimitiveAssignFnsToMap, GenICompensationForGenJ::addClassAssignFnsToMap, GenICompensationForGenJ::debugName); } +std::map GenICompensationForGenJ::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GenICompensationForGenJ_factory() diff --git a/CGMES_2.4.15_16FEB2016/GenICompensationForGenJ.hpp b/CGMES_2.4.15_16FEB2016/GenICompensationForGenJ.hpp index 01a042d67..e3879d78d 100644 --- a/CGMES_2.4.15_16FEB2016/GenICompensationForGenJ.hpp +++ b/CGMES_2.4.15_16FEB2016/GenICompensationForGenJ.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GenICompensationForGenJ_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GeneratingUnit.cpp b/CGMES_2.4.15_16FEB2016/GeneratingUnit.cpp index 247f593eb..e1e929ee4 100644 --- a/CGMES_2.4.15_16FEB2016/GeneratingUnit.cpp +++ b/CGMES_2.4.15_16FEB2016/GeneratingUnit.cpp @@ -14,51 +14,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeneratingUnit.ControlAreaGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.GrossToNetActivePowerCurves", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.RotatingMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.genControlSource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.governorSCD", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.initialP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.longPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.maxOperatingP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.maximumAllowableSpinningReserve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.minOperatingP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.nominalP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.normalPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "GeneratingUnit.ratedGrossMaxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.ratedGrossMinP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.ratedNetMaxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.shortPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.startupCost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.totalEfficiency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.variableCost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GeneratingUnit::GeneratingUnit() {} GeneratingUnit::~GeneratingUnit() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GeneratingUnit.ControlAreaGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.GrossToNetActivePowerCurves", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.RotatingMachine", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.genControlSource", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.governorSCD", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.initialP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.longPF", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.maxOperatingP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.maximumAllowableSpinningReserve", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.minOperatingP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.nominalP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.normalPF", { CGMESProfile::SSH, } }, - { "cim:GeneratingUnit.ratedGrossMaxP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.ratedGrossMinP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.ratedNetMaxP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.shortPF", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.startupCost", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.totalEfficiency", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.variableCost", { CGMESProfile::EQ, } }, -}; - -std::list -GeneratingUnit::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GeneratingUnit::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GeneratingUnit::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GeneratingUnit::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GeneratingUnit::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlAreaGeneratingUnit_GeneratingUnit(BaseClass*, BaseClass*); @@ -587,54 +619,54 @@ const char* GeneratingUnit::debugString() const void GeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeneratingUnit", &GeneratingUnit_factory); + factory_map.emplace("GeneratingUnit", &GeneratingUnit_factory); } void GeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeneratingUnit.genControlSource", &assign_GeneratingUnit_genControlSource); - assign_map.emplace("cim:GeneratingUnit.governorSCD", &assign_GeneratingUnit_governorSCD); - assign_map.emplace("cim:GeneratingUnit.initialP", &assign_GeneratingUnit_initialP); - assign_map.emplace("cim:GeneratingUnit.longPF", &assign_GeneratingUnit_longPF); - assign_map.emplace("cim:GeneratingUnit.maxOperatingP", &assign_GeneratingUnit_maxOperatingP); - assign_map.emplace("cim:GeneratingUnit.maximumAllowableSpinningReserve", &assign_GeneratingUnit_maximumAllowableSpinningReserve); - assign_map.emplace("cim:GeneratingUnit.minOperatingP", &assign_GeneratingUnit_minOperatingP); - assign_map.emplace("cim:GeneratingUnit.nominalP", &assign_GeneratingUnit_nominalP); - assign_map.emplace("cim:GeneratingUnit.normalPF", &assign_GeneratingUnit_normalPF); - assign_map.emplace("cim:GeneratingUnit.ratedGrossMaxP", &assign_GeneratingUnit_ratedGrossMaxP); - assign_map.emplace("cim:GeneratingUnit.ratedGrossMinP", &assign_GeneratingUnit_ratedGrossMinP); - assign_map.emplace("cim:GeneratingUnit.ratedNetMaxP", &assign_GeneratingUnit_ratedNetMaxP); - assign_map.emplace("cim:GeneratingUnit.shortPF", &assign_GeneratingUnit_shortPF); - assign_map.emplace("cim:GeneratingUnit.startupCost", &assign_GeneratingUnit_startupCost); - assign_map.emplace("cim:GeneratingUnit.totalEfficiency", &assign_GeneratingUnit_totalEfficiency); - assign_map.emplace("cim:GeneratingUnit.variableCost", &assign_GeneratingUnit_variableCost); + assign_map.emplace("GeneratingUnit.genControlSource", &assign_GeneratingUnit_genControlSource); + assign_map.emplace("GeneratingUnit.governorSCD", &assign_GeneratingUnit_governorSCD); + assign_map.emplace("GeneratingUnit.initialP", &assign_GeneratingUnit_initialP); + assign_map.emplace("GeneratingUnit.longPF", &assign_GeneratingUnit_longPF); + assign_map.emplace("GeneratingUnit.maxOperatingP", &assign_GeneratingUnit_maxOperatingP); + assign_map.emplace("GeneratingUnit.maximumAllowableSpinningReserve", &assign_GeneratingUnit_maximumAllowableSpinningReserve); + assign_map.emplace("GeneratingUnit.minOperatingP", &assign_GeneratingUnit_minOperatingP); + assign_map.emplace("GeneratingUnit.nominalP", &assign_GeneratingUnit_nominalP); + assign_map.emplace("GeneratingUnit.normalPF", &assign_GeneratingUnit_normalPF); + assign_map.emplace("GeneratingUnit.ratedGrossMaxP", &assign_GeneratingUnit_ratedGrossMaxP); + assign_map.emplace("GeneratingUnit.ratedGrossMinP", &assign_GeneratingUnit_ratedGrossMinP); + assign_map.emplace("GeneratingUnit.ratedNetMaxP", &assign_GeneratingUnit_ratedNetMaxP); + assign_map.emplace("GeneratingUnit.shortPF", &assign_GeneratingUnit_shortPF); + assign_map.emplace("GeneratingUnit.startupCost", &assign_GeneratingUnit_startupCost); + assign_map.emplace("GeneratingUnit.totalEfficiency", &assign_GeneratingUnit_totalEfficiency); + assign_map.emplace("GeneratingUnit.variableCost", &assign_GeneratingUnit_variableCost); } void GeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeneratingUnit.ControlAreaGeneratingUnit", &assign_GeneratingUnit_ControlAreaGeneratingUnit); - assign_map.emplace("cim:GeneratingUnit.GrossToNetActivePowerCurves", &assign_GeneratingUnit_GrossToNetActivePowerCurves); - assign_map.emplace("cim:GeneratingUnit.RotatingMachine", &assign_GeneratingUnit_RotatingMachine); + assign_map.emplace("GeneratingUnit.ControlAreaGeneratingUnit", &assign_GeneratingUnit_ControlAreaGeneratingUnit); + assign_map.emplace("GeneratingUnit.GrossToNetActivePowerCurves", &assign_GeneratingUnit_GrossToNetActivePowerCurves); + assign_map.emplace("GeneratingUnit.RotatingMachine", &assign_GeneratingUnit_RotatingMachine); } void GeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GeneratingUnit.governorSCD", &get_GeneratingUnit_governorSCD); - get_map.emplace("cim:GeneratingUnit.initialP", &get_GeneratingUnit_initialP); - get_map.emplace("cim:GeneratingUnit.longPF", &get_GeneratingUnit_longPF); - get_map.emplace("cim:GeneratingUnit.maxOperatingP", &get_GeneratingUnit_maxOperatingP); - get_map.emplace("cim:GeneratingUnit.maximumAllowableSpinningReserve", &get_GeneratingUnit_maximumAllowableSpinningReserve); - get_map.emplace("cim:GeneratingUnit.minOperatingP", &get_GeneratingUnit_minOperatingP); - get_map.emplace("cim:GeneratingUnit.nominalP", &get_GeneratingUnit_nominalP); - get_map.emplace("cim:GeneratingUnit.normalPF", &get_GeneratingUnit_normalPF); - get_map.emplace("cim:GeneratingUnit.ratedGrossMaxP", &get_GeneratingUnit_ratedGrossMaxP); - get_map.emplace("cim:GeneratingUnit.ratedGrossMinP", &get_GeneratingUnit_ratedGrossMinP); - get_map.emplace("cim:GeneratingUnit.ratedNetMaxP", &get_GeneratingUnit_ratedNetMaxP); - get_map.emplace("cim:GeneratingUnit.shortPF", &get_GeneratingUnit_shortPF); - get_map.emplace("cim:GeneratingUnit.startupCost", &get_GeneratingUnit_startupCost); - get_map.emplace("cim:GeneratingUnit.totalEfficiency", &get_GeneratingUnit_totalEfficiency); - get_map.emplace("cim:GeneratingUnit.variableCost", &get_GeneratingUnit_variableCost); + get_map.emplace("GeneratingUnit.governorSCD", &get_GeneratingUnit_governorSCD); + get_map.emplace("GeneratingUnit.initialP", &get_GeneratingUnit_initialP); + get_map.emplace("GeneratingUnit.longPF", &get_GeneratingUnit_longPF); + get_map.emplace("GeneratingUnit.maxOperatingP", &get_GeneratingUnit_maxOperatingP); + get_map.emplace("GeneratingUnit.maximumAllowableSpinningReserve", &get_GeneratingUnit_maximumAllowableSpinningReserve); + get_map.emplace("GeneratingUnit.minOperatingP", &get_GeneratingUnit_minOperatingP); + get_map.emplace("GeneratingUnit.nominalP", &get_GeneratingUnit_nominalP); + get_map.emplace("GeneratingUnit.normalPF", &get_GeneratingUnit_normalPF); + get_map.emplace("GeneratingUnit.ratedGrossMaxP", &get_GeneratingUnit_ratedGrossMaxP); + get_map.emplace("GeneratingUnit.ratedGrossMinP", &get_GeneratingUnit_ratedGrossMinP); + get_map.emplace("GeneratingUnit.ratedNetMaxP", &get_GeneratingUnit_ratedNetMaxP); + get_map.emplace("GeneratingUnit.shortPF", &get_GeneratingUnit_shortPF); + get_map.emplace("GeneratingUnit.startupCost", &get_GeneratingUnit_startupCost); + get_map.emplace("GeneratingUnit.totalEfficiency", &get_GeneratingUnit_totalEfficiency); + get_map.emplace("GeneratingUnit.variableCost", &get_GeneratingUnit_variableCost); } void GeneratingUnit::addClassGetFnsToMap(std::map& get_map) const @@ -645,7 +677,13 @@ void GeneratingUnit::addClassGetFnsToMap(std::map& get_map) const { Equipment::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GeneratingUnit.genControlSource", &get_GeneratingUnit_genControlSource); + get_map.emplace("GeneratingUnit.genControlSource", &get_GeneratingUnit_genControlSource); +} + +bool GeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GeneratingUnit::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner GeneratingUnit::declare() return BaseClassDefiner(GeneratingUnit::addConstructToMap, GeneratingUnit::addPrimitiveAssignFnsToMap, GeneratingUnit::addClassAssignFnsToMap, GeneratingUnit::debugName); } +std::map GeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeneratingUnit_factory() diff --git a/CGMES_2.4.15_16FEB2016/GeneratingUnit.hpp b/CGMES_2.4.15_16FEB2016/GeneratingUnit.hpp index 6261629bb..1ebeda406 100644 --- a/CGMES_2.4.15_16FEB2016/GeneratingUnit.hpp +++ b/CGMES_2.4.15_16FEB2016/GeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "GeneratorControlSource.hpp" #include "Money.hpp" @@ -92,8 +93,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -101,7 +109,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeneratingUnit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GeographicalLocationVersion.cpp b/CGMES_2.4.15_16FEB2016/GeographicalLocationVersion.cpp index f7622e2dc..b6121cd23 100644 --- a/CGMES_2.4.15_16FEB2016/GeographicalLocationVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/GeographicalLocationVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeographicalLocationVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeographicalLocationVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + GeographicalLocationVersion::GeographicalLocationVersion() {} GeographicalLocationVersion::~GeographicalLocationVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& GeographicalLocationVersion::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GeographicalLocationVersion::getClassNamespaceUrl() const { - { "cim:GeographicalLocationVersion.baseUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.baseURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.date", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.differenceModelURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.entsoeUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.entsoeURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.modelDescriptionURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.namespaceRDF", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.namespaceUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.shortName", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GeographicalLocationVersion::getPossibleProfilesForClass() const +const std::string& GeographicalLocationVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GeographicalLocationVersion::getPossibleProfilesForAttributes() const +const std::list& GeographicalLocationVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeographicalLocationVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeographicalLocationVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeographicalLocationVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeographicalLocationVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* GeographicalLocationVersion::debugString() const void GeographicalLocationVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeographicalLocationVersion", &GeographicalLocationVersion_factory); + factory_map.emplace("GeographicalLocationVersion", &GeographicalLocationVersion_factory); } void GeographicalLocationVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeographicalLocationVersion.baseUML", &assign_GeographicalLocationVersion_baseUML); - assign_map.emplace("cim:GeographicalLocationVersion.baseURI", &assign_GeographicalLocationVersion_baseURI); - assign_map.emplace("cim:GeographicalLocationVersion.date", &assign_GeographicalLocationVersion_date); - assign_map.emplace("cim:GeographicalLocationVersion.differenceModelURI", &assign_GeographicalLocationVersion_differenceModelURI); - assign_map.emplace("cim:GeographicalLocationVersion.entsoeUML", &assign_GeographicalLocationVersion_entsoeUML); - assign_map.emplace("cim:GeographicalLocationVersion.entsoeURI", &assign_GeographicalLocationVersion_entsoeURI); - assign_map.emplace("cim:GeographicalLocationVersion.modelDescriptionURI", &assign_GeographicalLocationVersion_modelDescriptionURI); - assign_map.emplace("cim:GeographicalLocationVersion.namespaceRDF", &assign_GeographicalLocationVersion_namespaceRDF); - assign_map.emplace("cim:GeographicalLocationVersion.namespaceUML", &assign_GeographicalLocationVersion_namespaceUML); - assign_map.emplace("cim:GeographicalLocationVersion.shortName", &assign_GeographicalLocationVersion_shortName); + assign_map.emplace("GeographicalLocationVersion.baseUML", &assign_GeographicalLocationVersion_baseUML); + assign_map.emplace("GeographicalLocationVersion.baseURI", &assign_GeographicalLocationVersion_baseURI); + assign_map.emplace("GeographicalLocationVersion.date", &assign_GeographicalLocationVersion_date); + assign_map.emplace("GeographicalLocationVersion.differenceModelURI", &assign_GeographicalLocationVersion_differenceModelURI); + assign_map.emplace("GeographicalLocationVersion.entsoeUML", &assign_GeographicalLocationVersion_entsoeUML); + assign_map.emplace("GeographicalLocationVersion.entsoeURI", &assign_GeographicalLocationVersion_entsoeURI); + assign_map.emplace("GeographicalLocationVersion.modelDescriptionURI", &assign_GeographicalLocationVersion_modelDescriptionURI); + assign_map.emplace("GeographicalLocationVersion.namespaceRDF", &assign_GeographicalLocationVersion_namespaceRDF); + assign_map.emplace("GeographicalLocationVersion.namespaceUML", &assign_GeographicalLocationVersion_namespaceUML); + assign_map.emplace("GeographicalLocationVersion.shortName", &assign_GeographicalLocationVersion_shortName); } void GeographicalLocationVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void GeographicalLocationVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GeographicalLocationVersion.baseUML", &get_GeographicalLocationVersion_baseUML); - get_map.emplace("cim:GeographicalLocationVersion.baseURI", &get_GeographicalLocationVersion_baseURI); - get_map.emplace("cim:GeographicalLocationVersion.date", &get_GeographicalLocationVersion_date); - get_map.emplace("cim:GeographicalLocationVersion.differenceModelURI", &get_GeographicalLocationVersion_differenceModelURI); - get_map.emplace("cim:GeographicalLocationVersion.entsoeUML", &get_GeographicalLocationVersion_entsoeUML); - get_map.emplace("cim:GeographicalLocationVersion.entsoeURI", &get_GeographicalLocationVersion_entsoeURI); - get_map.emplace("cim:GeographicalLocationVersion.modelDescriptionURI", &get_GeographicalLocationVersion_modelDescriptionURI); - get_map.emplace("cim:GeographicalLocationVersion.namespaceRDF", &get_GeographicalLocationVersion_namespaceRDF); - get_map.emplace("cim:GeographicalLocationVersion.namespaceUML", &get_GeographicalLocationVersion_namespaceUML); - get_map.emplace("cim:GeographicalLocationVersion.shortName", &get_GeographicalLocationVersion_shortName); + get_map.emplace("GeographicalLocationVersion.baseUML", &get_GeographicalLocationVersion_baseUML); + get_map.emplace("GeographicalLocationVersion.baseURI", &get_GeographicalLocationVersion_baseURI); + get_map.emplace("GeographicalLocationVersion.date", &get_GeographicalLocationVersion_date); + get_map.emplace("GeographicalLocationVersion.differenceModelURI", &get_GeographicalLocationVersion_differenceModelURI); + get_map.emplace("GeographicalLocationVersion.entsoeUML", &get_GeographicalLocationVersion_entsoeUML); + get_map.emplace("GeographicalLocationVersion.entsoeURI", &get_GeographicalLocationVersion_entsoeURI); + get_map.emplace("GeographicalLocationVersion.modelDescriptionURI", &get_GeographicalLocationVersion_modelDescriptionURI); + get_map.emplace("GeographicalLocationVersion.namespaceRDF", &get_GeographicalLocationVersion_namespaceRDF); + get_map.emplace("GeographicalLocationVersion.namespaceUML", &get_GeographicalLocationVersion_namespaceUML); + get_map.emplace("GeographicalLocationVersion.shortName", &get_GeographicalLocationVersion_shortName); } void GeographicalLocationVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void GeographicalLocationVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GeographicalLocationVersion::declare() { return BaseClassDefiner(GeographicalLocationVersion::addConstructToMap, GeographicalLocationVersion::addPrimitiveAssignFnsToMap, GeographicalLocationVersion::addClassAssignFnsToMap, GeographicalLocationVersion::debugName); } +std::map GeographicalLocationVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeographicalLocationVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/GeographicalLocationVersion.hpp b/CGMES_2.4.15_16FEB2016/GeographicalLocationVersion.hpp index b8b3523b3..ed4010efc 100644 --- a/CGMES_2.4.15_16FEB2016/GeographicalLocationVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/GeographicalLocationVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeographicalLocationVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GeographicalRegion.cpp b/CGMES_2.4.15_16FEB2016/GeographicalRegion.cpp index 229df2030..803b01afc 100644 --- a/CGMES_2.4.15_16FEB2016/GeographicalRegion.cpp +++ b/CGMES_2.4.15_16FEB2016/GeographicalRegion.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeographicalRegion(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeographicalRegion.Regions", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GeographicalRegion::GeographicalRegion() {} GeographicalRegion::~GeographicalRegion() {} -static const std::list PossibleProfilesForClass = +const std::list& GeographicalRegion::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GeographicalRegion::getClassNamespaceUrl() const { - { "cim:GeographicalRegion.Regions", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GeographicalRegion::getPossibleProfilesForClass() const +const std::string& GeographicalRegion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GeographicalRegion::getPossibleProfilesForAttributes() const +const std::list& GeographicalRegion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeographicalRegion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeographicalRegion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeographicalRegion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_Region(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* GeographicalRegion::debugString() const void GeographicalRegion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeographicalRegion", &GeographicalRegion_factory); + factory_map.emplace("GeographicalRegion", &GeographicalRegion_factory); } void GeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void GeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeographicalRegion.Regions", &assign_GeographicalRegion_Regions); + assign_map.emplace("GeographicalRegion.Regions", &assign_GeographicalRegion_Regions); } void GeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void GeographicalRegion::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool GeographicalRegion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GeographicalRegion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GeographicalRegion::declare() { return BaseClassDefiner(GeographicalRegion::addConstructToMap, GeographicalRegion::addPrimitiveAssignFnsToMap, GeographicalRegion::addClassAssignFnsToMap, GeographicalRegion::debugName); } +std::map GeographicalRegion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeographicalRegion_factory() diff --git a/CGMES_2.4.15_16FEB2016/GeographicalRegion.hpp b/CGMES_2.4.15_16FEB2016/GeographicalRegion.hpp index 8e23a3694..09772a2aa 100644 --- a/CGMES_2.4.15_16FEB2016/GeographicalRegion.hpp +++ b/CGMES_2.4.15_16FEB2016/GeographicalRegion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeographicalRegion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovCT1.cpp b/CGMES_2.4.15_16FEB2016/GovCT1.cpp index c8ede5eab..14a07a1aa 100644 --- a/CGMES_2.4.15_16FEB2016/GovCT1.cpp +++ b/CGMES_2.4.15_16FEB2016/GovCT1.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovCT1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovCT1.aset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.dm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kigov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kiload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kimw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kpgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kpload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ldref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.maxerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.minerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rclose", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rdown", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ropen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rselect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tact", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.teng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tfload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tsa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tsb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.wfnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.wfspd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovCT1::GovCT1() {} GovCT1::~GovCT1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovCT1.aset", { CGMESProfile::DY, } }, - { "cim:GovCT1.db", { CGMESProfile::DY, } }, - { "cim:GovCT1.dm", { CGMESProfile::DY, } }, - { "cim:GovCT1.ka", { CGMESProfile::DY, } }, - { "cim:GovCT1.kdgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kigov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kiload", { CGMESProfile::DY, } }, - { "cim:GovCT1.kimw", { CGMESProfile::DY, } }, - { "cim:GovCT1.kpgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kpload", { CGMESProfile::DY, } }, - { "cim:GovCT1.kturb", { CGMESProfile::DY, } }, - { "cim:GovCT1.ldref", { CGMESProfile::DY, } }, - { "cim:GovCT1.maxerr", { CGMESProfile::DY, } }, - { "cim:GovCT1.minerr", { CGMESProfile::DY, } }, - { "cim:GovCT1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovCT1.r", { CGMESProfile::DY, } }, - { "cim:GovCT1.rclose", { CGMESProfile::DY, } }, - { "cim:GovCT1.rdown", { CGMESProfile::DY, } }, - { "cim:GovCT1.ropen", { CGMESProfile::DY, } }, - { "cim:GovCT1.rselect", { CGMESProfile::DY, } }, - { "cim:GovCT1.rup", { CGMESProfile::DY, } }, - { "cim:GovCT1.ta", { CGMESProfile::DY, } }, - { "cim:GovCT1.tact", { CGMESProfile::DY, } }, - { "cim:GovCT1.tb", { CGMESProfile::DY, } }, - { "cim:GovCT1.tc", { CGMESProfile::DY, } }, - { "cim:GovCT1.tdgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.teng", { CGMESProfile::DY, } }, - { "cim:GovCT1.tfload", { CGMESProfile::DY, } }, - { "cim:GovCT1.tpelec", { CGMESProfile::DY, } }, - { "cim:GovCT1.tsa", { CGMESProfile::DY, } }, - { "cim:GovCT1.tsb", { CGMESProfile::DY, } }, - { "cim:GovCT1.vmax", { CGMESProfile::DY, } }, - { "cim:GovCT1.vmin", { CGMESProfile::DY, } }, - { "cim:GovCT1.wfnl", { CGMESProfile::DY, } }, - { "cim:GovCT1.wfspd", { CGMESProfile::DY, } }, -}; - -std::list -GovCT1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovCT1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovCT1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovCT1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovCT1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovCT1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovCT1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovCT1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovCT1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovCT1_aset(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovCT1::debugString() const void GovCT1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovCT1", &GovCT1_factory); + factory_map.emplace("GovCT1", &GovCT1_factory); } void GovCT1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovCT1.aset", &assign_GovCT1_aset); - assign_map.emplace("cim:GovCT1.db", &assign_GovCT1_db); - assign_map.emplace("cim:GovCT1.dm", &assign_GovCT1_dm); - assign_map.emplace("cim:GovCT1.ka", &assign_GovCT1_ka); - assign_map.emplace("cim:GovCT1.kdgov", &assign_GovCT1_kdgov); - assign_map.emplace("cim:GovCT1.kigov", &assign_GovCT1_kigov); - assign_map.emplace("cim:GovCT1.kiload", &assign_GovCT1_kiload); - assign_map.emplace("cim:GovCT1.kimw", &assign_GovCT1_kimw); - assign_map.emplace("cim:GovCT1.kpgov", &assign_GovCT1_kpgov); - assign_map.emplace("cim:GovCT1.kpload", &assign_GovCT1_kpload); - assign_map.emplace("cim:GovCT1.kturb", &assign_GovCT1_kturb); - assign_map.emplace("cim:GovCT1.ldref", &assign_GovCT1_ldref); - assign_map.emplace("cim:GovCT1.maxerr", &assign_GovCT1_maxerr); - assign_map.emplace("cim:GovCT1.minerr", &assign_GovCT1_minerr); - assign_map.emplace("cim:GovCT1.mwbase", &assign_GovCT1_mwbase); - assign_map.emplace("cim:GovCT1.r", &assign_GovCT1_r); - assign_map.emplace("cim:GovCT1.rclose", &assign_GovCT1_rclose); - assign_map.emplace("cim:GovCT1.rdown", &assign_GovCT1_rdown); - assign_map.emplace("cim:GovCT1.ropen", &assign_GovCT1_ropen); - assign_map.emplace("cim:GovCT1.rselect", &assign_GovCT1_rselect); - assign_map.emplace("cim:GovCT1.rup", &assign_GovCT1_rup); - assign_map.emplace("cim:GovCT1.ta", &assign_GovCT1_ta); - assign_map.emplace("cim:GovCT1.tact", &assign_GovCT1_tact); - assign_map.emplace("cim:GovCT1.tb", &assign_GovCT1_tb); - assign_map.emplace("cim:GovCT1.tc", &assign_GovCT1_tc); - assign_map.emplace("cim:GovCT1.tdgov", &assign_GovCT1_tdgov); - assign_map.emplace("cim:GovCT1.teng", &assign_GovCT1_teng); - assign_map.emplace("cim:GovCT1.tfload", &assign_GovCT1_tfload); - assign_map.emplace("cim:GovCT1.tpelec", &assign_GovCT1_tpelec); - assign_map.emplace("cim:GovCT1.tsa", &assign_GovCT1_tsa); - assign_map.emplace("cim:GovCT1.tsb", &assign_GovCT1_tsb); - assign_map.emplace("cim:GovCT1.vmax", &assign_GovCT1_vmax); - assign_map.emplace("cim:GovCT1.vmin", &assign_GovCT1_vmin); - assign_map.emplace("cim:GovCT1.wfnl", &assign_GovCT1_wfnl); - assign_map.emplace("cim:GovCT1.wfspd", &assign_GovCT1_wfspd); + assign_map.emplace("GovCT1.aset", &assign_GovCT1_aset); + assign_map.emplace("GovCT1.db", &assign_GovCT1_db); + assign_map.emplace("GovCT1.dm", &assign_GovCT1_dm); + assign_map.emplace("GovCT1.ka", &assign_GovCT1_ka); + assign_map.emplace("GovCT1.kdgov", &assign_GovCT1_kdgov); + assign_map.emplace("GovCT1.kigov", &assign_GovCT1_kigov); + assign_map.emplace("GovCT1.kiload", &assign_GovCT1_kiload); + assign_map.emplace("GovCT1.kimw", &assign_GovCT1_kimw); + assign_map.emplace("GovCT1.kpgov", &assign_GovCT1_kpgov); + assign_map.emplace("GovCT1.kpload", &assign_GovCT1_kpload); + assign_map.emplace("GovCT1.kturb", &assign_GovCT1_kturb); + assign_map.emplace("GovCT1.ldref", &assign_GovCT1_ldref); + assign_map.emplace("GovCT1.maxerr", &assign_GovCT1_maxerr); + assign_map.emplace("GovCT1.minerr", &assign_GovCT1_minerr); + assign_map.emplace("GovCT1.mwbase", &assign_GovCT1_mwbase); + assign_map.emplace("GovCT1.r", &assign_GovCT1_r); + assign_map.emplace("GovCT1.rclose", &assign_GovCT1_rclose); + assign_map.emplace("GovCT1.rdown", &assign_GovCT1_rdown); + assign_map.emplace("GovCT1.ropen", &assign_GovCT1_ropen); + assign_map.emplace("GovCT1.rselect", &assign_GovCT1_rselect); + assign_map.emplace("GovCT1.rup", &assign_GovCT1_rup); + assign_map.emplace("GovCT1.ta", &assign_GovCT1_ta); + assign_map.emplace("GovCT1.tact", &assign_GovCT1_tact); + assign_map.emplace("GovCT1.tb", &assign_GovCT1_tb); + assign_map.emplace("GovCT1.tc", &assign_GovCT1_tc); + assign_map.emplace("GovCT1.tdgov", &assign_GovCT1_tdgov); + assign_map.emplace("GovCT1.teng", &assign_GovCT1_teng); + assign_map.emplace("GovCT1.tfload", &assign_GovCT1_tfload); + assign_map.emplace("GovCT1.tpelec", &assign_GovCT1_tpelec); + assign_map.emplace("GovCT1.tsa", &assign_GovCT1_tsa); + assign_map.emplace("GovCT1.tsb", &assign_GovCT1_tsb); + assign_map.emplace("GovCT1.vmax", &assign_GovCT1_vmax); + assign_map.emplace("GovCT1.vmin", &assign_GovCT1_vmin); + assign_map.emplace("GovCT1.wfnl", &assign_GovCT1_wfnl); + assign_map.emplace("GovCT1.wfspd", &assign_GovCT1_wfspd); } void GovCT1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,40 +1177,40 @@ void GovCT1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovCT1.aset", &get_GovCT1_aset); - get_map.emplace("cim:GovCT1.db", &get_GovCT1_db); - get_map.emplace("cim:GovCT1.dm", &get_GovCT1_dm); - get_map.emplace("cim:GovCT1.ka", &get_GovCT1_ka); - get_map.emplace("cim:GovCT1.kdgov", &get_GovCT1_kdgov); - get_map.emplace("cim:GovCT1.kigov", &get_GovCT1_kigov); - get_map.emplace("cim:GovCT1.kiload", &get_GovCT1_kiload); - get_map.emplace("cim:GovCT1.kimw", &get_GovCT1_kimw); - get_map.emplace("cim:GovCT1.kpgov", &get_GovCT1_kpgov); - get_map.emplace("cim:GovCT1.kpload", &get_GovCT1_kpload); - get_map.emplace("cim:GovCT1.kturb", &get_GovCT1_kturb); - get_map.emplace("cim:GovCT1.ldref", &get_GovCT1_ldref); - get_map.emplace("cim:GovCT1.maxerr", &get_GovCT1_maxerr); - get_map.emplace("cim:GovCT1.minerr", &get_GovCT1_minerr); - get_map.emplace("cim:GovCT1.mwbase", &get_GovCT1_mwbase); - get_map.emplace("cim:GovCT1.r", &get_GovCT1_r); - get_map.emplace("cim:GovCT1.rclose", &get_GovCT1_rclose); - get_map.emplace("cim:GovCT1.rdown", &get_GovCT1_rdown); - get_map.emplace("cim:GovCT1.ropen", &get_GovCT1_ropen); - get_map.emplace("cim:GovCT1.rup", &get_GovCT1_rup); - get_map.emplace("cim:GovCT1.ta", &get_GovCT1_ta); - get_map.emplace("cim:GovCT1.tact", &get_GovCT1_tact); - get_map.emplace("cim:GovCT1.tb", &get_GovCT1_tb); - get_map.emplace("cim:GovCT1.tc", &get_GovCT1_tc); - get_map.emplace("cim:GovCT1.tdgov", &get_GovCT1_tdgov); - get_map.emplace("cim:GovCT1.teng", &get_GovCT1_teng); - get_map.emplace("cim:GovCT1.tfload", &get_GovCT1_tfload); - get_map.emplace("cim:GovCT1.tpelec", &get_GovCT1_tpelec); - get_map.emplace("cim:GovCT1.tsa", &get_GovCT1_tsa); - get_map.emplace("cim:GovCT1.tsb", &get_GovCT1_tsb); - get_map.emplace("cim:GovCT1.vmax", &get_GovCT1_vmax); - get_map.emplace("cim:GovCT1.vmin", &get_GovCT1_vmin); - get_map.emplace("cim:GovCT1.wfnl", &get_GovCT1_wfnl); - get_map.emplace("cim:GovCT1.wfspd", &get_GovCT1_wfspd); + get_map.emplace("GovCT1.aset", &get_GovCT1_aset); + get_map.emplace("GovCT1.db", &get_GovCT1_db); + get_map.emplace("GovCT1.dm", &get_GovCT1_dm); + get_map.emplace("GovCT1.ka", &get_GovCT1_ka); + get_map.emplace("GovCT1.kdgov", &get_GovCT1_kdgov); + get_map.emplace("GovCT1.kigov", &get_GovCT1_kigov); + get_map.emplace("GovCT1.kiload", &get_GovCT1_kiload); + get_map.emplace("GovCT1.kimw", &get_GovCT1_kimw); + get_map.emplace("GovCT1.kpgov", &get_GovCT1_kpgov); + get_map.emplace("GovCT1.kpload", &get_GovCT1_kpload); + get_map.emplace("GovCT1.kturb", &get_GovCT1_kturb); + get_map.emplace("GovCT1.ldref", &get_GovCT1_ldref); + get_map.emplace("GovCT1.maxerr", &get_GovCT1_maxerr); + get_map.emplace("GovCT1.minerr", &get_GovCT1_minerr); + get_map.emplace("GovCT1.mwbase", &get_GovCT1_mwbase); + get_map.emplace("GovCT1.r", &get_GovCT1_r); + get_map.emplace("GovCT1.rclose", &get_GovCT1_rclose); + get_map.emplace("GovCT1.rdown", &get_GovCT1_rdown); + get_map.emplace("GovCT1.ropen", &get_GovCT1_ropen); + get_map.emplace("GovCT1.rup", &get_GovCT1_rup); + get_map.emplace("GovCT1.ta", &get_GovCT1_ta); + get_map.emplace("GovCT1.tact", &get_GovCT1_tact); + get_map.emplace("GovCT1.tb", &get_GovCT1_tb); + get_map.emplace("GovCT1.tc", &get_GovCT1_tc); + get_map.emplace("GovCT1.tdgov", &get_GovCT1_tdgov); + get_map.emplace("GovCT1.teng", &get_GovCT1_teng); + get_map.emplace("GovCT1.tfload", &get_GovCT1_tfload); + get_map.emplace("GovCT1.tpelec", &get_GovCT1_tpelec); + get_map.emplace("GovCT1.tsa", &get_GovCT1_tsa); + get_map.emplace("GovCT1.tsb", &get_GovCT1_tsb); + get_map.emplace("GovCT1.vmax", &get_GovCT1_vmax); + get_map.emplace("GovCT1.vmin", &get_GovCT1_vmin); + get_map.emplace("GovCT1.wfnl", &get_GovCT1_wfnl); + get_map.emplace("GovCT1.wfspd", &get_GovCT1_wfspd); } void GovCT1::addClassGetFnsToMap(std::map& get_map) const @@ -1189,7 +1221,13 @@ void GovCT1::addClassGetFnsToMap(std::map& get_ void GovCT1::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovCT1.rselect", &get_GovCT1_rselect); + get_map.emplace("GovCT1.rselect", &get_GovCT1_rselect); +} + +bool GovCT1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovCT1" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovCT1::declare() @@ -1197,6 +1235,14 @@ const BaseClassDefiner GovCT1::declare() return BaseClassDefiner(GovCT1::addConstructToMap, GovCT1::addPrimitiveAssignFnsToMap, GovCT1::addClassAssignFnsToMap, GovCT1::debugName); } +std::map GovCT1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovCT1_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovCT1.hpp b/CGMES_2.4.15_16FEB2016/GovCT1.hpp index 4bcbc8131..fbb6bc2ac 100644 --- a/CGMES_2.4.15_16FEB2016/GovCT1.hpp +++ b/CGMES_2.4.15_16FEB2016/GovCT1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "DroopSignalFeedbackKind.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovCT1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovCT2.cpp b/CGMES_2.4.15_16FEB2016/GovCT2.cpp index 482a2691f..be77c902d 100644 --- a/CGMES_2.4.15_16FEB2016/GovCT2.cpp +++ b/CGMES_2.4.15_16FEB2016/GovCT2.cpp @@ -11,87 +11,119 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovCT2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovCT2.aset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.dm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kigov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kiload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kimw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kpgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kpload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ldref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.maxerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.minerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.prate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rclose", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rdown", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ropen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rselect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tact", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.teng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tfload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tsa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tsb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.wfnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.wfspd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovCT2::GovCT2() {} GovCT2::~GovCT2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovCT2.aset", { CGMESProfile::DY, } }, - { "cim:GovCT2.db", { CGMESProfile::DY, } }, - { "cim:GovCT2.dm", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim1", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim10", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim2", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim3", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim4", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim5", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim6", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim7", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim8", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim9", { CGMESProfile::DY, } }, - { "cim:GovCT2.ka", { CGMESProfile::DY, } }, - { "cim:GovCT2.kdgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kigov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kiload", { CGMESProfile::DY, } }, - { "cim:GovCT2.kimw", { CGMESProfile::DY, } }, - { "cim:GovCT2.kpgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kpload", { CGMESProfile::DY, } }, - { "cim:GovCT2.kturb", { CGMESProfile::DY, } }, - { "cim:GovCT2.ldref", { CGMESProfile::DY, } }, - { "cim:GovCT2.maxerr", { CGMESProfile::DY, } }, - { "cim:GovCT2.minerr", { CGMESProfile::DY, } }, - { "cim:GovCT2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim1", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim10", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim2", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim3", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim4", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim5", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim6", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim7", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim8", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim9", { CGMESProfile::DY, } }, - { "cim:GovCT2.prate", { CGMESProfile::DY, } }, - { "cim:GovCT2.r", { CGMESProfile::DY, } }, - { "cim:GovCT2.rclose", { CGMESProfile::DY, } }, - { "cim:GovCT2.rdown", { CGMESProfile::DY, } }, - { "cim:GovCT2.ropen", { CGMESProfile::DY, } }, - { "cim:GovCT2.rselect", { CGMESProfile::DY, } }, - { "cim:GovCT2.rup", { CGMESProfile::DY, } }, - { "cim:GovCT2.ta", { CGMESProfile::DY, } }, - { "cim:GovCT2.tact", { CGMESProfile::DY, } }, - { "cim:GovCT2.tb", { CGMESProfile::DY, } }, - { "cim:GovCT2.tc", { CGMESProfile::DY, } }, - { "cim:GovCT2.tdgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.teng", { CGMESProfile::DY, } }, - { "cim:GovCT2.tfload", { CGMESProfile::DY, } }, - { "cim:GovCT2.tpelec", { CGMESProfile::DY, } }, - { "cim:GovCT2.tsa", { CGMESProfile::DY, } }, - { "cim:GovCT2.tsb", { CGMESProfile::DY, } }, - { "cim:GovCT2.vmax", { CGMESProfile::DY, } }, - { "cim:GovCT2.vmin", { CGMESProfile::DY, } }, - { "cim:GovCT2.wfnl", { CGMESProfile::DY, } }, - { "cim:GovCT2.wfspd", { CGMESProfile::DY, } }, -}; - -std::list -GovCT2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovCT2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovCT2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovCT2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovCT2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovCT2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovCT2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovCT2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovCT2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovCT2_aset(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1726,67 +1758,67 @@ const char* GovCT2::debugString() const void GovCT2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovCT2", &GovCT2_factory); + factory_map.emplace("GovCT2", &GovCT2_factory); } void GovCT2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovCT2.aset", &assign_GovCT2_aset); - assign_map.emplace("cim:GovCT2.db", &assign_GovCT2_db); - assign_map.emplace("cim:GovCT2.dm", &assign_GovCT2_dm); - assign_map.emplace("cim:GovCT2.flim1", &assign_GovCT2_flim1); - assign_map.emplace("cim:GovCT2.flim10", &assign_GovCT2_flim10); - assign_map.emplace("cim:GovCT2.flim2", &assign_GovCT2_flim2); - assign_map.emplace("cim:GovCT2.flim3", &assign_GovCT2_flim3); - assign_map.emplace("cim:GovCT2.flim4", &assign_GovCT2_flim4); - assign_map.emplace("cim:GovCT2.flim5", &assign_GovCT2_flim5); - assign_map.emplace("cim:GovCT2.flim6", &assign_GovCT2_flim6); - assign_map.emplace("cim:GovCT2.flim7", &assign_GovCT2_flim7); - assign_map.emplace("cim:GovCT2.flim8", &assign_GovCT2_flim8); - assign_map.emplace("cim:GovCT2.flim9", &assign_GovCT2_flim9); - assign_map.emplace("cim:GovCT2.ka", &assign_GovCT2_ka); - assign_map.emplace("cim:GovCT2.kdgov", &assign_GovCT2_kdgov); - assign_map.emplace("cim:GovCT2.kigov", &assign_GovCT2_kigov); - assign_map.emplace("cim:GovCT2.kiload", &assign_GovCT2_kiload); - assign_map.emplace("cim:GovCT2.kimw", &assign_GovCT2_kimw); - assign_map.emplace("cim:GovCT2.kpgov", &assign_GovCT2_kpgov); - assign_map.emplace("cim:GovCT2.kpload", &assign_GovCT2_kpload); - assign_map.emplace("cim:GovCT2.kturb", &assign_GovCT2_kturb); - assign_map.emplace("cim:GovCT2.ldref", &assign_GovCT2_ldref); - assign_map.emplace("cim:GovCT2.maxerr", &assign_GovCT2_maxerr); - assign_map.emplace("cim:GovCT2.minerr", &assign_GovCT2_minerr); - assign_map.emplace("cim:GovCT2.mwbase", &assign_GovCT2_mwbase); - assign_map.emplace("cim:GovCT2.plim1", &assign_GovCT2_plim1); - assign_map.emplace("cim:GovCT2.plim10", &assign_GovCT2_plim10); - assign_map.emplace("cim:GovCT2.plim2", &assign_GovCT2_plim2); - assign_map.emplace("cim:GovCT2.plim3", &assign_GovCT2_plim3); - assign_map.emplace("cim:GovCT2.plim4", &assign_GovCT2_plim4); - assign_map.emplace("cim:GovCT2.plim5", &assign_GovCT2_plim5); - assign_map.emplace("cim:GovCT2.plim6", &assign_GovCT2_plim6); - assign_map.emplace("cim:GovCT2.plim7", &assign_GovCT2_plim7); - assign_map.emplace("cim:GovCT2.plim8", &assign_GovCT2_plim8); - assign_map.emplace("cim:GovCT2.plim9", &assign_GovCT2_plim9); - assign_map.emplace("cim:GovCT2.prate", &assign_GovCT2_prate); - assign_map.emplace("cim:GovCT2.r", &assign_GovCT2_r); - assign_map.emplace("cim:GovCT2.rclose", &assign_GovCT2_rclose); - assign_map.emplace("cim:GovCT2.rdown", &assign_GovCT2_rdown); - assign_map.emplace("cim:GovCT2.ropen", &assign_GovCT2_ropen); - assign_map.emplace("cim:GovCT2.rselect", &assign_GovCT2_rselect); - assign_map.emplace("cim:GovCT2.rup", &assign_GovCT2_rup); - assign_map.emplace("cim:GovCT2.ta", &assign_GovCT2_ta); - assign_map.emplace("cim:GovCT2.tact", &assign_GovCT2_tact); - assign_map.emplace("cim:GovCT2.tb", &assign_GovCT2_tb); - assign_map.emplace("cim:GovCT2.tc", &assign_GovCT2_tc); - assign_map.emplace("cim:GovCT2.tdgov", &assign_GovCT2_tdgov); - assign_map.emplace("cim:GovCT2.teng", &assign_GovCT2_teng); - assign_map.emplace("cim:GovCT2.tfload", &assign_GovCT2_tfload); - assign_map.emplace("cim:GovCT2.tpelec", &assign_GovCT2_tpelec); - assign_map.emplace("cim:GovCT2.tsa", &assign_GovCT2_tsa); - assign_map.emplace("cim:GovCT2.tsb", &assign_GovCT2_tsb); - assign_map.emplace("cim:GovCT2.vmax", &assign_GovCT2_vmax); - assign_map.emplace("cim:GovCT2.vmin", &assign_GovCT2_vmin); - assign_map.emplace("cim:GovCT2.wfnl", &assign_GovCT2_wfnl); - assign_map.emplace("cim:GovCT2.wfspd", &assign_GovCT2_wfspd); + assign_map.emplace("GovCT2.aset", &assign_GovCT2_aset); + assign_map.emplace("GovCT2.db", &assign_GovCT2_db); + assign_map.emplace("GovCT2.dm", &assign_GovCT2_dm); + assign_map.emplace("GovCT2.flim1", &assign_GovCT2_flim1); + assign_map.emplace("GovCT2.flim10", &assign_GovCT2_flim10); + assign_map.emplace("GovCT2.flim2", &assign_GovCT2_flim2); + assign_map.emplace("GovCT2.flim3", &assign_GovCT2_flim3); + assign_map.emplace("GovCT2.flim4", &assign_GovCT2_flim4); + assign_map.emplace("GovCT2.flim5", &assign_GovCT2_flim5); + assign_map.emplace("GovCT2.flim6", &assign_GovCT2_flim6); + assign_map.emplace("GovCT2.flim7", &assign_GovCT2_flim7); + assign_map.emplace("GovCT2.flim8", &assign_GovCT2_flim8); + assign_map.emplace("GovCT2.flim9", &assign_GovCT2_flim9); + assign_map.emplace("GovCT2.ka", &assign_GovCT2_ka); + assign_map.emplace("GovCT2.kdgov", &assign_GovCT2_kdgov); + assign_map.emplace("GovCT2.kigov", &assign_GovCT2_kigov); + assign_map.emplace("GovCT2.kiload", &assign_GovCT2_kiload); + assign_map.emplace("GovCT2.kimw", &assign_GovCT2_kimw); + assign_map.emplace("GovCT2.kpgov", &assign_GovCT2_kpgov); + assign_map.emplace("GovCT2.kpload", &assign_GovCT2_kpload); + assign_map.emplace("GovCT2.kturb", &assign_GovCT2_kturb); + assign_map.emplace("GovCT2.ldref", &assign_GovCT2_ldref); + assign_map.emplace("GovCT2.maxerr", &assign_GovCT2_maxerr); + assign_map.emplace("GovCT2.minerr", &assign_GovCT2_minerr); + assign_map.emplace("GovCT2.mwbase", &assign_GovCT2_mwbase); + assign_map.emplace("GovCT2.plim1", &assign_GovCT2_plim1); + assign_map.emplace("GovCT2.plim10", &assign_GovCT2_plim10); + assign_map.emplace("GovCT2.plim2", &assign_GovCT2_plim2); + assign_map.emplace("GovCT2.plim3", &assign_GovCT2_plim3); + assign_map.emplace("GovCT2.plim4", &assign_GovCT2_plim4); + assign_map.emplace("GovCT2.plim5", &assign_GovCT2_plim5); + assign_map.emplace("GovCT2.plim6", &assign_GovCT2_plim6); + assign_map.emplace("GovCT2.plim7", &assign_GovCT2_plim7); + assign_map.emplace("GovCT2.plim8", &assign_GovCT2_plim8); + assign_map.emplace("GovCT2.plim9", &assign_GovCT2_plim9); + assign_map.emplace("GovCT2.prate", &assign_GovCT2_prate); + assign_map.emplace("GovCT2.r", &assign_GovCT2_r); + assign_map.emplace("GovCT2.rclose", &assign_GovCT2_rclose); + assign_map.emplace("GovCT2.rdown", &assign_GovCT2_rdown); + assign_map.emplace("GovCT2.ropen", &assign_GovCT2_ropen); + assign_map.emplace("GovCT2.rselect", &assign_GovCT2_rselect); + assign_map.emplace("GovCT2.rup", &assign_GovCT2_rup); + assign_map.emplace("GovCT2.ta", &assign_GovCT2_ta); + assign_map.emplace("GovCT2.tact", &assign_GovCT2_tact); + assign_map.emplace("GovCT2.tb", &assign_GovCT2_tb); + assign_map.emplace("GovCT2.tc", &assign_GovCT2_tc); + assign_map.emplace("GovCT2.tdgov", &assign_GovCT2_tdgov); + assign_map.emplace("GovCT2.teng", &assign_GovCT2_teng); + assign_map.emplace("GovCT2.tfload", &assign_GovCT2_tfload); + assign_map.emplace("GovCT2.tpelec", &assign_GovCT2_tpelec); + assign_map.emplace("GovCT2.tsa", &assign_GovCT2_tsa); + assign_map.emplace("GovCT2.tsb", &assign_GovCT2_tsb); + assign_map.emplace("GovCT2.vmax", &assign_GovCT2_vmax); + assign_map.emplace("GovCT2.vmin", &assign_GovCT2_vmin); + assign_map.emplace("GovCT2.wfnl", &assign_GovCT2_wfnl); + assign_map.emplace("GovCT2.wfspd", &assign_GovCT2_wfspd); } void GovCT2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1796,61 +1828,61 @@ void GovCT2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovCT2.aset", &get_GovCT2_aset); - get_map.emplace("cim:GovCT2.db", &get_GovCT2_db); - get_map.emplace("cim:GovCT2.dm", &get_GovCT2_dm); - get_map.emplace("cim:GovCT2.flim1", &get_GovCT2_flim1); - get_map.emplace("cim:GovCT2.flim10", &get_GovCT2_flim10); - get_map.emplace("cim:GovCT2.flim2", &get_GovCT2_flim2); - get_map.emplace("cim:GovCT2.flim3", &get_GovCT2_flim3); - get_map.emplace("cim:GovCT2.flim4", &get_GovCT2_flim4); - get_map.emplace("cim:GovCT2.flim5", &get_GovCT2_flim5); - get_map.emplace("cim:GovCT2.flim6", &get_GovCT2_flim6); - get_map.emplace("cim:GovCT2.flim7", &get_GovCT2_flim7); - get_map.emplace("cim:GovCT2.flim8", &get_GovCT2_flim8); - get_map.emplace("cim:GovCT2.flim9", &get_GovCT2_flim9); - get_map.emplace("cim:GovCT2.ka", &get_GovCT2_ka); - get_map.emplace("cim:GovCT2.kdgov", &get_GovCT2_kdgov); - get_map.emplace("cim:GovCT2.kigov", &get_GovCT2_kigov); - get_map.emplace("cim:GovCT2.kiload", &get_GovCT2_kiload); - get_map.emplace("cim:GovCT2.kimw", &get_GovCT2_kimw); - get_map.emplace("cim:GovCT2.kpgov", &get_GovCT2_kpgov); - get_map.emplace("cim:GovCT2.kpload", &get_GovCT2_kpload); - get_map.emplace("cim:GovCT2.kturb", &get_GovCT2_kturb); - get_map.emplace("cim:GovCT2.ldref", &get_GovCT2_ldref); - get_map.emplace("cim:GovCT2.maxerr", &get_GovCT2_maxerr); - get_map.emplace("cim:GovCT2.minerr", &get_GovCT2_minerr); - get_map.emplace("cim:GovCT2.mwbase", &get_GovCT2_mwbase); - get_map.emplace("cim:GovCT2.plim1", &get_GovCT2_plim1); - get_map.emplace("cim:GovCT2.plim10", &get_GovCT2_plim10); - get_map.emplace("cim:GovCT2.plim2", &get_GovCT2_plim2); - get_map.emplace("cim:GovCT2.plim3", &get_GovCT2_plim3); - get_map.emplace("cim:GovCT2.plim4", &get_GovCT2_plim4); - get_map.emplace("cim:GovCT2.plim5", &get_GovCT2_plim5); - get_map.emplace("cim:GovCT2.plim6", &get_GovCT2_plim6); - get_map.emplace("cim:GovCT2.plim7", &get_GovCT2_plim7); - get_map.emplace("cim:GovCT2.plim8", &get_GovCT2_plim8); - get_map.emplace("cim:GovCT2.plim9", &get_GovCT2_plim9); - get_map.emplace("cim:GovCT2.prate", &get_GovCT2_prate); - get_map.emplace("cim:GovCT2.r", &get_GovCT2_r); - get_map.emplace("cim:GovCT2.rclose", &get_GovCT2_rclose); - get_map.emplace("cim:GovCT2.rdown", &get_GovCT2_rdown); - get_map.emplace("cim:GovCT2.ropen", &get_GovCT2_ropen); - get_map.emplace("cim:GovCT2.rup", &get_GovCT2_rup); - get_map.emplace("cim:GovCT2.ta", &get_GovCT2_ta); - get_map.emplace("cim:GovCT2.tact", &get_GovCT2_tact); - get_map.emplace("cim:GovCT2.tb", &get_GovCT2_tb); - get_map.emplace("cim:GovCT2.tc", &get_GovCT2_tc); - get_map.emplace("cim:GovCT2.tdgov", &get_GovCT2_tdgov); - get_map.emplace("cim:GovCT2.teng", &get_GovCT2_teng); - get_map.emplace("cim:GovCT2.tfload", &get_GovCT2_tfload); - get_map.emplace("cim:GovCT2.tpelec", &get_GovCT2_tpelec); - get_map.emplace("cim:GovCT2.tsa", &get_GovCT2_tsa); - get_map.emplace("cim:GovCT2.tsb", &get_GovCT2_tsb); - get_map.emplace("cim:GovCT2.vmax", &get_GovCT2_vmax); - get_map.emplace("cim:GovCT2.vmin", &get_GovCT2_vmin); - get_map.emplace("cim:GovCT2.wfnl", &get_GovCT2_wfnl); - get_map.emplace("cim:GovCT2.wfspd", &get_GovCT2_wfspd); + get_map.emplace("GovCT2.aset", &get_GovCT2_aset); + get_map.emplace("GovCT2.db", &get_GovCT2_db); + get_map.emplace("GovCT2.dm", &get_GovCT2_dm); + get_map.emplace("GovCT2.flim1", &get_GovCT2_flim1); + get_map.emplace("GovCT2.flim10", &get_GovCT2_flim10); + get_map.emplace("GovCT2.flim2", &get_GovCT2_flim2); + get_map.emplace("GovCT2.flim3", &get_GovCT2_flim3); + get_map.emplace("GovCT2.flim4", &get_GovCT2_flim4); + get_map.emplace("GovCT2.flim5", &get_GovCT2_flim5); + get_map.emplace("GovCT2.flim6", &get_GovCT2_flim6); + get_map.emplace("GovCT2.flim7", &get_GovCT2_flim7); + get_map.emplace("GovCT2.flim8", &get_GovCT2_flim8); + get_map.emplace("GovCT2.flim9", &get_GovCT2_flim9); + get_map.emplace("GovCT2.ka", &get_GovCT2_ka); + get_map.emplace("GovCT2.kdgov", &get_GovCT2_kdgov); + get_map.emplace("GovCT2.kigov", &get_GovCT2_kigov); + get_map.emplace("GovCT2.kiload", &get_GovCT2_kiload); + get_map.emplace("GovCT2.kimw", &get_GovCT2_kimw); + get_map.emplace("GovCT2.kpgov", &get_GovCT2_kpgov); + get_map.emplace("GovCT2.kpload", &get_GovCT2_kpload); + get_map.emplace("GovCT2.kturb", &get_GovCT2_kturb); + get_map.emplace("GovCT2.ldref", &get_GovCT2_ldref); + get_map.emplace("GovCT2.maxerr", &get_GovCT2_maxerr); + get_map.emplace("GovCT2.minerr", &get_GovCT2_minerr); + get_map.emplace("GovCT2.mwbase", &get_GovCT2_mwbase); + get_map.emplace("GovCT2.plim1", &get_GovCT2_plim1); + get_map.emplace("GovCT2.plim10", &get_GovCT2_plim10); + get_map.emplace("GovCT2.plim2", &get_GovCT2_plim2); + get_map.emplace("GovCT2.plim3", &get_GovCT2_plim3); + get_map.emplace("GovCT2.plim4", &get_GovCT2_plim4); + get_map.emplace("GovCT2.plim5", &get_GovCT2_plim5); + get_map.emplace("GovCT2.plim6", &get_GovCT2_plim6); + get_map.emplace("GovCT2.plim7", &get_GovCT2_plim7); + get_map.emplace("GovCT2.plim8", &get_GovCT2_plim8); + get_map.emplace("GovCT2.plim9", &get_GovCT2_plim9); + get_map.emplace("GovCT2.prate", &get_GovCT2_prate); + get_map.emplace("GovCT2.r", &get_GovCT2_r); + get_map.emplace("GovCT2.rclose", &get_GovCT2_rclose); + get_map.emplace("GovCT2.rdown", &get_GovCT2_rdown); + get_map.emplace("GovCT2.ropen", &get_GovCT2_ropen); + get_map.emplace("GovCT2.rup", &get_GovCT2_rup); + get_map.emplace("GovCT2.ta", &get_GovCT2_ta); + get_map.emplace("GovCT2.tact", &get_GovCT2_tact); + get_map.emplace("GovCT2.tb", &get_GovCT2_tb); + get_map.emplace("GovCT2.tc", &get_GovCT2_tc); + get_map.emplace("GovCT2.tdgov", &get_GovCT2_tdgov); + get_map.emplace("GovCT2.teng", &get_GovCT2_teng); + get_map.emplace("GovCT2.tfload", &get_GovCT2_tfload); + get_map.emplace("GovCT2.tpelec", &get_GovCT2_tpelec); + get_map.emplace("GovCT2.tsa", &get_GovCT2_tsa); + get_map.emplace("GovCT2.tsb", &get_GovCT2_tsb); + get_map.emplace("GovCT2.vmax", &get_GovCT2_vmax); + get_map.emplace("GovCT2.vmin", &get_GovCT2_vmin); + get_map.emplace("GovCT2.wfnl", &get_GovCT2_wfnl); + get_map.emplace("GovCT2.wfspd", &get_GovCT2_wfspd); } void GovCT2::addClassGetFnsToMap(std::map& get_map) const @@ -1861,7 +1893,13 @@ void GovCT2::addClassGetFnsToMap(std::map& get_ void GovCT2::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovCT2.rselect", &get_GovCT2_rselect); + get_map.emplace("GovCT2.rselect", &get_GovCT2_rselect); +} + +bool GovCT2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovCT2" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovCT2::declare() @@ -1869,6 +1907,14 @@ const BaseClassDefiner GovCT2::declare() return BaseClassDefiner(GovCT2::addConstructToMap, GovCT2::addPrimitiveAssignFnsToMap, GovCT2::addClassAssignFnsToMap, GovCT2::debugName); } +std::map GovCT2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovCT2_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovCT2.hpp b/CGMES_2.4.15_16FEB2016/GovCT2.hpp index bb33e770d..9bbc487b3 100644 --- a/CGMES_2.4.15_16FEB2016/GovCT2.hpp +++ b/CGMES_2.4.15_16FEB2016/GovCT2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "DroopSignalFeedbackKind.hpp" @@ -202,8 +203,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -211,7 +219,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovCT2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovGAST.cpp b/CGMES_2.4.15_16FEB2016/GovGAST.cpp index cc94e78ad..e25540aed 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST.cpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST::GovGAST() {} GovGAST::~GovGAST() {} -static const std::list PossibleProfilesForClass = +const std::list& GovGAST::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovGAST::getClassNamespaceUrl() const { - { "cim:GovGAST.at", { CGMESProfile::DY, } }, - { "cim:GovGAST.dturb", { CGMESProfile::DY, } }, - { "cim:GovGAST.kt", { CGMESProfile::DY, } }, - { "cim:GovGAST.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST.r", { CGMESProfile::DY, } }, - { "cim:GovGAST.t1", { CGMESProfile::DY, } }, - { "cim:GovGAST.t2", { CGMESProfile::DY, } }, - { "cim:GovGAST.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST.vmax", { CGMESProfile::DY, } }, - { "cim:GovGAST.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovGAST::getPossibleProfilesForClass() const +const std::string& GovGAST::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovGAST::getPossibleProfilesForAttributes() const +const std::list& GovGAST::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* GovGAST::debugString() const void GovGAST::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST", &GovGAST_factory); + factory_map.emplace("GovGAST", &GovGAST_factory); } void GovGAST::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST.at", &assign_GovGAST_at); - assign_map.emplace("cim:GovGAST.dturb", &assign_GovGAST_dturb); - assign_map.emplace("cim:GovGAST.kt", &assign_GovGAST_kt); - assign_map.emplace("cim:GovGAST.mwbase", &assign_GovGAST_mwbase); - assign_map.emplace("cim:GovGAST.r", &assign_GovGAST_r); - assign_map.emplace("cim:GovGAST.t1", &assign_GovGAST_t1); - assign_map.emplace("cim:GovGAST.t2", &assign_GovGAST_t2); - assign_map.emplace("cim:GovGAST.t3", &assign_GovGAST_t3); - assign_map.emplace("cim:GovGAST.vmax", &assign_GovGAST_vmax); - assign_map.emplace("cim:GovGAST.vmin", &assign_GovGAST_vmin); + assign_map.emplace("GovGAST.at", &assign_GovGAST_at); + assign_map.emplace("GovGAST.dturb", &assign_GovGAST_dturb); + assign_map.emplace("GovGAST.kt", &assign_GovGAST_kt); + assign_map.emplace("GovGAST.mwbase", &assign_GovGAST_mwbase); + assign_map.emplace("GovGAST.r", &assign_GovGAST_r); + assign_map.emplace("GovGAST.t1", &assign_GovGAST_t1); + assign_map.emplace("GovGAST.t2", &assign_GovGAST_t2); + assign_map.emplace("GovGAST.t3", &assign_GovGAST_t3); + assign_map.emplace("GovGAST.vmax", &assign_GovGAST_vmax); + assign_map.emplace("GovGAST.vmin", &assign_GovGAST_vmin); } void GovGAST::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void GovGAST::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST.at", &get_GovGAST_at); - get_map.emplace("cim:GovGAST.dturb", &get_GovGAST_dturb); - get_map.emplace("cim:GovGAST.kt", &get_GovGAST_kt); - get_map.emplace("cim:GovGAST.mwbase", &get_GovGAST_mwbase); - get_map.emplace("cim:GovGAST.r", &get_GovGAST_r); - get_map.emplace("cim:GovGAST.t1", &get_GovGAST_t1); - get_map.emplace("cim:GovGAST.t2", &get_GovGAST_t2); - get_map.emplace("cim:GovGAST.t3", &get_GovGAST_t3); - get_map.emplace("cim:GovGAST.vmax", &get_GovGAST_vmax); - get_map.emplace("cim:GovGAST.vmin", &get_GovGAST_vmin); + get_map.emplace("GovGAST.at", &get_GovGAST_at); + get_map.emplace("GovGAST.dturb", &get_GovGAST_dturb); + get_map.emplace("GovGAST.kt", &get_GovGAST_kt); + get_map.emplace("GovGAST.mwbase", &get_GovGAST_mwbase); + get_map.emplace("GovGAST.r", &get_GovGAST_r); + get_map.emplace("GovGAST.t1", &get_GovGAST_t1); + get_map.emplace("GovGAST.t2", &get_GovGAST_t2); + get_map.emplace("GovGAST.t3", &get_GovGAST_t3); + get_map.emplace("GovGAST.vmax", &get_GovGAST_vmax); + get_map.emplace("GovGAST.vmin", &get_GovGAST_vmin); } void GovGAST::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void GovGAST::addEnumGetFnsToMap(std::map& get_map) c TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST::declare() { return BaseClassDefiner(GovGAST::addConstructToMap, GovGAST::addPrimitiveAssignFnsToMap, GovGAST::addClassAssignFnsToMap, GovGAST::debugName); } +std::map GovGAST::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovGAST.hpp b/CGMES_2.4.15_16FEB2016/GovGAST.hpp index 497af8aa8..4c5e7e723 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST.hpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovGAST1.cpp b/CGMES_2.4.15_16FEB2016/GovGAST1.cpp index 4acaed7db..72360cb09 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST1.cpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST1.cpp @@ -11,65 +11,97 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST1.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.fidle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.lmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.loadinc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.ltrate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.rmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.tltr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST1::GovGAST1() {} GovGAST1::~GovGAST1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST1.a", { CGMESProfile::DY, } }, - { "cim:GovGAST1.b", { CGMESProfile::DY, } }, - { "cim:GovGAST1.db1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.db2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.eps", { CGMESProfile::DY, } }, - { "cim:GovGAST1.fidle", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv6", { CGMESProfile::DY, } }, - { "cim:GovGAST1.ka", { CGMESProfile::DY, } }, - { "cim:GovGAST1.kt", { CGMESProfile::DY, } }, - { "cim:GovGAST1.lmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.loadinc", { CGMESProfile::DY, } }, - { "cim:GovGAST1.ltrate", { CGMESProfile::DY, } }, - { "cim:GovGAST1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv6", { CGMESProfile::DY, } }, - { "cim:GovGAST1.r", { CGMESProfile::DY, } }, - { "cim:GovGAST1.rmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.tltr", { CGMESProfile::DY, } }, - { "cim:GovGAST1.vmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.vmin", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST1_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1066,45 +1098,45 @@ const char* GovGAST1::debugString() const void GovGAST1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST1", &GovGAST1_factory); + factory_map.emplace("GovGAST1", &GovGAST1_factory); } void GovGAST1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST1.a", &assign_GovGAST1_a); - assign_map.emplace("cim:GovGAST1.b", &assign_GovGAST1_b); - assign_map.emplace("cim:GovGAST1.db1", &assign_GovGAST1_db1); - assign_map.emplace("cim:GovGAST1.db2", &assign_GovGAST1_db2); - assign_map.emplace("cim:GovGAST1.eps", &assign_GovGAST1_eps); - assign_map.emplace("cim:GovGAST1.fidle", &assign_GovGAST1_fidle); - assign_map.emplace("cim:GovGAST1.gv1", &assign_GovGAST1_gv1); - assign_map.emplace("cim:GovGAST1.gv2", &assign_GovGAST1_gv2); - assign_map.emplace("cim:GovGAST1.gv3", &assign_GovGAST1_gv3); - assign_map.emplace("cim:GovGAST1.gv4", &assign_GovGAST1_gv4); - assign_map.emplace("cim:GovGAST1.gv5", &assign_GovGAST1_gv5); - assign_map.emplace("cim:GovGAST1.gv6", &assign_GovGAST1_gv6); - assign_map.emplace("cim:GovGAST1.ka", &assign_GovGAST1_ka); - assign_map.emplace("cim:GovGAST1.kt", &assign_GovGAST1_kt); - assign_map.emplace("cim:GovGAST1.lmax", &assign_GovGAST1_lmax); - assign_map.emplace("cim:GovGAST1.loadinc", &assign_GovGAST1_loadinc); - assign_map.emplace("cim:GovGAST1.ltrate", &assign_GovGAST1_ltrate); - assign_map.emplace("cim:GovGAST1.mwbase", &assign_GovGAST1_mwbase); - assign_map.emplace("cim:GovGAST1.pgv1", &assign_GovGAST1_pgv1); - assign_map.emplace("cim:GovGAST1.pgv2", &assign_GovGAST1_pgv2); - assign_map.emplace("cim:GovGAST1.pgv3", &assign_GovGAST1_pgv3); - assign_map.emplace("cim:GovGAST1.pgv4", &assign_GovGAST1_pgv4); - assign_map.emplace("cim:GovGAST1.pgv5", &assign_GovGAST1_pgv5); - assign_map.emplace("cim:GovGAST1.pgv6", &assign_GovGAST1_pgv6); - assign_map.emplace("cim:GovGAST1.r", &assign_GovGAST1_r); - assign_map.emplace("cim:GovGAST1.rmax", &assign_GovGAST1_rmax); - assign_map.emplace("cim:GovGAST1.t1", &assign_GovGAST1_t1); - assign_map.emplace("cim:GovGAST1.t2", &assign_GovGAST1_t2); - assign_map.emplace("cim:GovGAST1.t3", &assign_GovGAST1_t3); - assign_map.emplace("cim:GovGAST1.t4", &assign_GovGAST1_t4); - assign_map.emplace("cim:GovGAST1.t5", &assign_GovGAST1_t5); - assign_map.emplace("cim:GovGAST1.tltr", &assign_GovGAST1_tltr); - assign_map.emplace("cim:GovGAST1.vmax", &assign_GovGAST1_vmax); - assign_map.emplace("cim:GovGAST1.vmin", &assign_GovGAST1_vmin); + assign_map.emplace("GovGAST1.a", &assign_GovGAST1_a); + assign_map.emplace("GovGAST1.b", &assign_GovGAST1_b); + assign_map.emplace("GovGAST1.db1", &assign_GovGAST1_db1); + assign_map.emplace("GovGAST1.db2", &assign_GovGAST1_db2); + assign_map.emplace("GovGAST1.eps", &assign_GovGAST1_eps); + assign_map.emplace("GovGAST1.fidle", &assign_GovGAST1_fidle); + assign_map.emplace("GovGAST1.gv1", &assign_GovGAST1_gv1); + assign_map.emplace("GovGAST1.gv2", &assign_GovGAST1_gv2); + assign_map.emplace("GovGAST1.gv3", &assign_GovGAST1_gv3); + assign_map.emplace("GovGAST1.gv4", &assign_GovGAST1_gv4); + assign_map.emplace("GovGAST1.gv5", &assign_GovGAST1_gv5); + assign_map.emplace("GovGAST1.gv6", &assign_GovGAST1_gv6); + assign_map.emplace("GovGAST1.ka", &assign_GovGAST1_ka); + assign_map.emplace("GovGAST1.kt", &assign_GovGAST1_kt); + assign_map.emplace("GovGAST1.lmax", &assign_GovGAST1_lmax); + assign_map.emplace("GovGAST1.loadinc", &assign_GovGAST1_loadinc); + assign_map.emplace("GovGAST1.ltrate", &assign_GovGAST1_ltrate); + assign_map.emplace("GovGAST1.mwbase", &assign_GovGAST1_mwbase); + assign_map.emplace("GovGAST1.pgv1", &assign_GovGAST1_pgv1); + assign_map.emplace("GovGAST1.pgv2", &assign_GovGAST1_pgv2); + assign_map.emplace("GovGAST1.pgv3", &assign_GovGAST1_pgv3); + assign_map.emplace("GovGAST1.pgv4", &assign_GovGAST1_pgv4); + assign_map.emplace("GovGAST1.pgv5", &assign_GovGAST1_pgv5); + assign_map.emplace("GovGAST1.pgv6", &assign_GovGAST1_pgv6); + assign_map.emplace("GovGAST1.r", &assign_GovGAST1_r); + assign_map.emplace("GovGAST1.rmax", &assign_GovGAST1_rmax); + assign_map.emplace("GovGAST1.t1", &assign_GovGAST1_t1); + assign_map.emplace("GovGAST1.t2", &assign_GovGAST1_t2); + assign_map.emplace("GovGAST1.t3", &assign_GovGAST1_t3); + assign_map.emplace("GovGAST1.t4", &assign_GovGAST1_t4); + assign_map.emplace("GovGAST1.t5", &assign_GovGAST1_t5); + assign_map.emplace("GovGAST1.tltr", &assign_GovGAST1_tltr); + assign_map.emplace("GovGAST1.vmax", &assign_GovGAST1_vmax); + assign_map.emplace("GovGAST1.vmin", &assign_GovGAST1_vmin); } void GovGAST1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1114,40 +1146,40 @@ void GovGAST1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST1.a", &get_GovGAST1_a); - get_map.emplace("cim:GovGAST1.b", &get_GovGAST1_b); - get_map.emplace("cim:GovGAST1.db1", &get_GovGAST1_db1); - get_map.emplace("cim:GovGAST1.db2", &get_GovGAST1_db2); - get_map.emplace("cim:GovGAST1.eps", &get_GovGAST1_eps); - get_map.emplace("cim:GovGAST1.fidle", &get_GovGAST1_fidle); - get_map.emplace("cim:GovGAST1.gv1", &get_GovGAST1_gv1); - get_map.emplace("cim:GovGAST1.gv2", &get_GovGAST1_gv2); - get_map.emplace("cim:GovGAST1.gv3", &get_GovGAST1_gv3); - get_map.emplace("cim:GovGAST1.gv4", &get_GovGAST1_gv4); - get_map.emplace("cim:GovGAST1.gv5", &get_GovGAST1_gv5); - get_map.emplace("cim:GovGAST1.gv6", &get_GovGAST1_gv6); - get_map.emplace("cim:GovGAST1.ka", &get_GovGAST1_ka); - get_map.emplace("cim:GovGAST1.kt", &get_GovGAST1_kt); - get_map.emplace("cim:GovGAST1.lmax", &get_GovGAST1_lmax); - get_map.emplace("cim:GovGAST1.loadinc", &get_GovGAST1_loadinc); - get_map.emplace("cim:GovGAST1.ltrate", &get_GovGAST1_ltrate); - get_map.emplace("cim:GovGAST1.mwbase", &get_GovGAST1_mwbase); - get_map.emplace("cim:GovGAST1.pgv1", &get_GovGAST1_pgv1); - get_map.emplace("cim:GovGAST1.pgv2", &get_GovGAST1_pgv2); - get_map.emplace("cim:GovGAST1.pgv3", &get_GovGAST1_pgv3); - get_map.emplace("cim:GovGAST1.pgv4", &get_GovGAST1_pgv4); - get_map.emplace("cim:GovGAST1.pgv5", &get_GovGAST1_pgv5); - get_map.emplace("cim:GovGAST1.pgv6", &get_GovGAST1_pgv6); - get_map.emplace("cim:GovGAST1.r", &get_GovGAST1_r); - get_map.emplace("cim:GovGAST1.rmax", &get_GovGAST1_rmax); - get_map.emplace("cim:GovGAST1.t1", &get_GovGAST1_t1); - get_map.emplace("cim:GovGAST1.t2", &get_GovGAST1_t2); - get_map.emplace("cim:GovGAST1.t3", &get_GovGAST1_t3); - get_map.emplace("cim:GovGAST1.t4", &get_GovGAST1_t4); - get_map.emplace("cim:GovGAST1.t5", &get_GovGAST1_t5); - get_map.emplace("cim:GovGAST1.tltr", &get_GovGAST1_tltr); - get_map.emplace("cim:GovGAST1.vmax", &get_GovGAST1_vmax); - get_map.emplace("cim:GovGAST1.vmin", &get_GovGAST1_vmin); + get_map.emplace("GovGAST1.a", &get_GovGAST1_a); + get_map.emplace("GovGAST1.b", &get_GovGAST1_b); + get_map.emplace("GovGAST1.db1", &get_GovGAST1_db1); + get_map.emplace("GovGAST1.db2", &get_GovGAST1_db2); + get_map.emplace("GovGAST1.eps", &get_GovGAST1_eps); + get_map.emplace("GovGAST1.fidle", &get_GovGAST1_fidle); + get_map.emplace("GovGAST1.gv1", &get_GovGAST1_gv1); + get_map.emplace("GovGAST1.gv2", &get_GovGAST1_gv2); + get_map.emplace("GovGAST1.gv3", &get_GovGAST1_gv3); + get_map.emplace("GovGAST1.gv4", &get_GovGAST1_gv4); + get_map.emplace("GovGAST1.gv5", &get_GovGAST1_gv5); + get_map.emplace("GovGAST1.gv6", &get_GovGAST1_gv6); + get_map.emplace("GovGAST1.ka", &get_GovGAST1_ka); + get_map.emplace("GovGAST1.kt", &get_GovGAST1_kt); + get_map.emplace("GovGAST1.lmax", &get_GovGAST1_lmax); + get_map.emplace("GovGAST1.loadinc", &get_GovGAST1_loadinc); + get_map.emplace("GovGAST1.ltrate", &get_GovGAST1_ltrate); + get_map.emplace("GovGAST1.mwbase", &get_GovGAST1_mwbase); + get_map.emplace("GovGAST1.pgv1", &get_GovGAST1_pgv1); + get_map.emplace("GovGAST1.pgv2", &get_GovGAST1_pgv2); + get_map.emplace("GovGAST1.pgv3", &get_GovGAST1_pgv3); + get_map.emplace("GovGAST1.pgv4", &get_GovGAST1_pgv4); + get_map.emplace("GovGAST1.pgv5", &get_GovGAST1_pgv5); + get_map.emplace("GovGAST1.pgv6", &get_GovGAST1_pgv6); + get_map.emplace("GovGAST1.r", &get_GovGAST1_r); + get_map.emplace("GovGAST1.rmax", &get_GovGAST1_rmax); + get_map.emplace("GovGAST1.t1", &get_GovGAST1_t1); + get_map.emplace("GovGAST1.t2", &get_GovGAST1_t2); + get_map.emplace("GovGAST1.t3", &get_GovGAST1_t3); + get_map.emplace("GovGAST1.t4", &get_GovGAST1_t4); + get_map.emplace("GovGAST1.t5", &get_GovGAST1_t5); + get_map.emplace("GovGAST1.tltr", &get_GovGAST1_tltr); + get_map.emplace("GovGAST1.vmax", &get_GovGAST1_vmax); + get_map.emplace("GovGAST1.vmin", &get_GovGAST1_vmin); } void GovGAST1::addClassGetFnsToMap(std::map& get_map) const @@ -1160,11 +1192,25 @@ void GovGAST1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST1::declare() { return BaseClassDefiner(GovGAST1::addConstructToMap, GovGAST1::addPrimitiveAssignFnsToMap, GovGAST1::addClassAssignFnsToMap, GovGAST1::debugName); } +std::map GovGAST1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST1_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovGAST1.hpp b/CGMES_2.4.15_16FEB2016/GovGAST1.hpp index 2eaf845e2..a1fd4bfcc 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST1.hpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -134,8 +135,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -143,7 +151,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovGAST2.cpp b/CGMES_2.4.15_16FEB2016/GovGAST2.cpp index c78ffe45c..b2adfaa1e 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST2.cpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST2.cpp @@ -11,63 +11,95 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST2.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.af1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.af2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.bf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.bf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.c", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.cf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.ecr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.etd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.trate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.w", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.y", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.z", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST2::GovGAST2() {} GovGAST2::~GovGAST2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST2.a", { CGMESProfile::DY, } }, - { "cim:GovGAST2.af1", { CGMESProfile::DY, } }, - { "cim:GovGAST2.af2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.b", { CGMESProfile::DY, } }, - { "cim:GovGAST2.bf1", { CGMESProfile::DY, } }, - { "cim:GovGAST2.bf2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.c", { CGMESProfile::DY, } }, - { "cim:GovGAST2.cf2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.ecr", { CGMESProfile::DY, } }, - { "cim:GovGAST2.etd", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k3", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k4", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k5", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k6", { CGMESProfile::DY, } }, - { "cim:GovGAST2.kf", { CGMESProfile::DY, } }, - { "cim:GovGAST2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t4", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t5", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tcd", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tf", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tmax", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tmin", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tr", { CGMESProfile::DY, } }, - { "cim:GovGAST2.trate", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tt", { CGMESProfile::DY, } }, - { "cim:GovGAST2.w", { CGMESProfile::DY, } }, - { "cim:GovGAST2.x", { CGMESProfile::DY, } }, - { "cim:GovGAST2.y", { CGMESProfile::DY, } }, - { "cim:GovGAST2.z", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST2_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1006,43 +1038,43 @@ const char* GovGAST2::debugString() const void GovGAST2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST2", &GovGAST2_factory); + factory_map.emplace("GovGAST2", &GovGAST2_factory); } void GovGAST2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST2.a", &assign_GovGAST2_a); - assign_map.emplace("cim:GovGAST2.af1", &assign_GovGAST2_af1); - assign_map.emplace("cim:GovGAST2.af2", &assign_GovGAST2_af2); - assign_map.emplace("cim:GovGAST2.b", &assign_GovGAST2_b); - assign_map.emplace("cim:GovGAST2.bf1", &assign_GovGAST2_bf1); - assign_map.emplace("cim:GovGAST2.bf2", &assign_GovGAST2_bf2); - assign_map.emplace("cim:GovGAST2.c", &assign_GovGAST2_c); - assign_map.emplace("cim:GovGAST2.cf2", &assign_GovGAST2_cf2); - assign_map.emplace("cim:GovGAST2.ecr", &assign_GovGAST2_ecr); - assign_map.emplace("cim:GovGAST2.etd", &assign_GovGAST2_etd); - assign_map.emplace("cim:GovGAST2.k3", &assign_GovGAST2_k3); - assign_map.emplace("cim:GovGAST2.k4", &assign_GovGAST2_k4); - assign_map.emplace("cim:GovGAST2.k5", &assign_GovGAST2_k5); - assign_map.emplace("cim:GovGAST2.k6", &assign_GovGAST2_k6); - assign_map.emplace("cim:GovGAST2.kf", &assign_GovGAST2_kf); - assign_map.emplace("cim:GovGAST2.mwbase", &assign_GovGAST2_mwbase); - assign_map.emplace("cim:GovGAST2.t", &assign_GovGAST2_t); - assign_map.emplace("cim:GovGAST2.t3", &assign_GovGAST2_t3); - assign_map.emplace("cim:GovGAST2.t4", &assign_GovGAST2_t4); - assign_map.emplace("cim:GovGAST2.t5", &assign_GovGAST2_t5); - assign_map.emplace("cim:GovGAST2.tc", &assign_GovGAST2_tc); - assign_map.emplace("cim:GovGAST2.tcd", &assign_GovGAST2_tcd); - assign_map.emplace("cim:GovGAST2.tf", &assign_GovGAST2_tf); - assign_map.emplace("cim:GovGAST2.tmax", &assign_GovGAST2_tmax); - assign_map.emplace("cim:GovGAST2.tmin", &assign_GovGAST2_tmin); - assign_map.emplace("cim:GovGAST2.tr", &assign_GovGAST2_tr); - assign_map.emplace("cim:GovGAST2.trate", &assign_GovGAST2_trate); - assign_map.emplace("cim:GovGAST2.tt", &assign_GovGAST2_tt); - assign_map.emplace("cim:GovGAST2.w", &assign_GovGAST2_w); - assign_map.emplace("cim:GovGAST2.x", &assign_GovGAST2_x); - assign_map.emplace("cim:GovGAST2.y", &assign_GovGAST2_y); - assign_map.emplace("cim:GovGAST2.z", &assign_GovGAST2_z); + assign_map.emplace("GovGAST2.a", &assign_GovGAST2_a); + assign_map.emplace("GovGAST2.af1", &assign_GovGAST2_af1); + assign_map.emplace("GovGAST2.af2", &assign_GovGAST2_af2); + assign_map.emplace("GovGAST2.b", &assign_GovGAST2_b); + assign_map.emplace("GovGAST2.bf1", &assign_GovGAST2_bf1); + assign_map.emplace("GovGAST2.bf2", &assign_GovGAST2_bf2); + assign_map.emplace("GovGAST2.c", &assign_GovGAST2_c); + assign_map.emplace("GovGAST2.cf2", &assign_GovGAST2_cf2); + assign_map.emplace("GovGAST2.ecr", &assign_GovGAST2_ecr); + assign_map.emplace("GovGAST2.etd", &assign_GovGAST2_etd); + assign_map.emplace("GovGAST2.k3", &assign_GovGAST2_k3); + assign_map.emplace("GovGAST2.k4", &assign_GovGAST2_k4); + assign_map.emplace("GovGAST2.k5", &assign_GovGAST2_k5); + assign_map.emplace("GovGAST2.k6", &assign_GovGAST2_k6); + assign_map.emplace("GovGAST2.kf", &assign_GovGAST2_kf); + assign_map.emplace("GovGAST2.mwbase", &assign_GovGAST2_mwbase); + assign_map.emplace("GovGAST2.t", &assign_GovGAST2_t); + assign_map.emplace("GovGAST2.t3", &assign_GovGAST2_t3); + assign_map.emplace("GovGAST2.t4", &assign_GovGAST2_t4); + assign_map.emplace("GovGAST2.t5", &assign_GovGAST2_t5); + assign_map.emplace("GovGAST2.tc", &assign_GovGAST2_tc); + assign_map.emplace("GovGAST2.tcd", &assign_GovGAST2_tcd); + assign_map.emplace("GovGAST2.tf", &assign_GovGAST2_tf); + assign_map.emplace("GovGAST2.tmax", &assign_GovGAST2_tmax); + assign_map.emplace("GovGAST2.tmin", &assign_GovGAST2_tmin); + assign_map.emplace("GovGAST2.tr", &assign_GovGAST2_tr); + assign_map.emplace("GovGAST2.trate", &assign_GovGAST2_trate); + assign_map.emplace("GovGAST2.tt", &assign_GovGAST2_tt); + assign_map.emplace("GovGAST2.w", &assign_GovGAST2_w); + assign_map.emplace("GovGAST2.x", &assign_GovGAST2_x); + assign_map.emplace("GovGAST2.y", &assign_GovGAST2_y); + assign_map.emplace("GovGAST2.z", &assign_GovGAST2_z); } void GovGAST2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1052,38 +1084,38 @@ void GovGAST2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST2.a", &get_GovGAST2_a); - get_map.emplace("cim:GovGAST2.af1", &get_GovGAST2_af1); - get_map.emplace("cim:GovGAST2.af2", &get_GovGAST2_af2); - get_map.emplace("cim:GovGAST2.b", &get_GovGAST2_b); - get_map.emplace("cim:GovGAST2.bf1", &get_GovGAST2_bf1); - get_map.emplace("cim:GovGAST2.bf2", &get_GovGAST2_bf2); - get_map.emplace("cim:GovGAST2.c", &get_GovGAST2_c); - get_map.emplace("cim:GovGAST2.cf2", &get_GovGAST2_cf2); - get_map.emplace("cim:GovGAST2.ecr", &get_GovGAST2_ecr); - get_map.emplace("cim:GovGAST2.etd", &get_GovGAST2_etd); - get_map.emplace("cim:GovGAST2.k3", &get_GovGAST2_k3); - get_map.emplace("cim:GovGAST2.k4", &get_GovGAST2_k4); - get_map.emplace("cim:GovGAST2.k5", &get_GovGAST2_k5); - get_map.emplace("cim:GovGAST2.k6", &get_GovGAST2_k6); - get_map.emplace("cim:GovGAST2.kf", &get_GovGAST2_kf); - get_map.emplace("cim:GovGAST2.mwbase", &get_GovGAST2_mwbase); - get_map.emplace("cim:GovGAST2.t", &get_GovGAST2_t); - get_map.emplace("cim:GovGAST2.t3", &get_GovGAST2_t3); - get_map.emplace("cim:GovGAST2.t4", &get_GovGAST2_t4); - get_map.emplace("cim:GovGAST2.t5", &get_GovGAST2_t5); - get_map.emplace("cim:GovGAST2.tc", &get_GovGAST2_tc); - get_map.emplace("cim:GovGAST2.tcd", &get_GovGAST2_tcd); - get_map.emplace("cim:GovGAST2.tf", &get_GovGAST2_tf); - get_map.emplace("cim:GovGAST2.tmax", &get_GovGAST2_tmax); - get_map.emplace("cim:GovGAST2.tmin", &get_GovGAST2_tmin); - get_map.emplace("cim:GovGAST2.tr", &get_GovGAST2_tr); - get_map.emplace("cim:GovGAST2.trate", &get_GovGAST2_trate); - get_map.emplace("cim:GovGAST2.tt", &get_GovGAST2_tt); - get_map.emplace("cim:GovGAST2.w", &get_GovGAST2_w); - get_map.emplace("cim:GovGAST2.x", &get_GovGAST2_x); - get_map.emplace("cim:GovGAST2.y", &get_GovGAST2_y); - get_map.emplace("cim:GovGAST2.z", &get_GovGAST2_z); + get_map.emplace("GovGAST2.a", &get_GovGAST2_a); + get_map.emplace("GovGAST2.af1", &get_GovGAST2_af1); + get_map.emplace("GovGAST2.af2", &get_GovGAST2_af2); + get_map.emplace("GovGAST2.b", &get_GovGAST2_b); + get_map.emplace("GovGAST2.bf1", &get_GovGAST2_bf1); + get_map.emplace("GovGAST2.bf2", &get_GovGAST2_bf2); + get_map.emplace("GovGAST2.c", &get_GovGAST2_c); + get_map.emplace("GovGAST2.cf2", &get_GovGAST2_cf2); + get_map.emplace("GovGAST2.ecr", &get_GovGAST2_ecr); + get_map.emplace("GovGAST2.etd", &get_GovGAST2_etd); + get_map.emplace("GovGAST2.k3", &get_GovGAST2_k3); + get_map.emplace("GovGAST2.k4", &get_GovGAST2_k4); + get_map.emplace("GovGAST2.k5", &get_GovGAST2_k5); + get_map.emplace("GovGAST2.k6", &get_GovGAST2_k6); + get_map.emplace("GovGAST2.kf", &get_GovGAST2_kf); + get_map.emplace("GovGAST2.mwbase", &get_GovGAST2_mwbase); + get_map.emplace("GovGAST2.t", &get_GovGAST2_t); + get_map.emplace("GovGAST2.t3", &get_GovGAST2_t3); + get_map.emplace("GovGAST2.t4", &get_GovGAST2_t4); + get_map.emplace("GovGAST2.t5", &get_GovGAST2_t5); + get_map.emplace("GovGAST2.tc", &get_GovGAST2_tc); + get_map.emplace("GovGAST2.tcd", &get_GovGAST2_tcd); + get_map.emplace("GovGAST2.tf", &get_GovGAST2_tf); + get_map.emplace("GovGAST2.tmax", &get_GovGAST2_tmax); + get_map.emplace("GovGAST2.tmin", &get_GovGAST2_tmin); + get_map.emplace("GovGAST2.tr", &get_GovGAST2_tr); + get_map.emplace("GovGAST2.trate", &get_GovGAST2_trate); + get_map.emplace("GovGAST2.tt", &get_GovGAST2_tt); + get_map.emplace("GovGAST2.w", &get_GovGAST2_w); + get_map.emplace("GovGAST2.x", &get_GovGAST2_x); + get_map.emplace("GovGAST2.y", &get_GovGAST2_y); + get_map.emplace("GovGAST2.z", &get_GovGAST2_z); } void GovGAST2::addClassGetFnsToMap(std::map& get_map) const @@ -1096,11 +1128,25 @@ void GovGAST2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST2::declare() { return BaseClassDefiner(GovGAST2::addConstructToMap, GovGAST2::addPrimitiveAssignFnsToMap, GovGAST2::addClassAssignFnsToMap, GovGAST2::debugName); } +std::map GovGAST2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST2_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovGAST2.hpp b/CGMES_2.4.15_16FEB2016/GovGAST2.hpp index 37de9cf50..3e30ecfa1 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST2.hpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -129,8 +130,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -138,7 +146,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovGAST3.cpp b/CGMES_2.4.15_16FEB2016/GovGAST3.cpp index d80998b75..dfe7a19cf 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST3.cpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST3.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST3.bca", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.kac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.kca", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ksi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ky", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.rcmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.rcmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tfen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tsi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ttc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ty", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST3::GovGAST3() {} GovGAST3::~GovGAST3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST3.bca", { CGMESProfile::DY, } }, - { "cim:GovGAST3.bp", { CGMESProfile::DY, } }, - { "cim:GovGAST3.dtc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ka", { CGMESProfile::DY, } }, - { "cim:GovGAST3.kac", { CGMESProfile::DY, } }, - { "cim:GovGAST3.kca", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ksi", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ky", { CGMESProfile::DY, } }, - { "cim:GovGAST3.mnef", { CGMESProfile::DY, } }, - { "cim:GovGAST3.mxef", { CGMESProfile::DY, } }, - { "cim:GovGAST3.rcmn", { CGMESProfile::DY, } }, - { "cim:GovGAST3.rcmx", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tac", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.td", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tfen", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tg", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tsi", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tt", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ttc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ty", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST3_bca(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* GovGAST3::debugString() const void GovGAST3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST3", &GovGAST3_factory); + factory_map.emplace("GovGAST3", &GovGAST3_factory); } void GovGAST3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST3.bca", &assign_GovGAST3_bca); - assign_map.emplace("cim:GovGAST3.bp", &assign_GovGAST3_bp); - assign_map.emplace("cim:GovGAST3.dtc", &assign_GovGAST3_dtc); - assign_map.emplace("cim:GovGAST3.ka", &assign_GovGAST3_ka); - assign_map.emplace("cim:GovGAST3.kac", &assign_GovGAST3_kac); - assign_map.emplace("cim:GovGAST3.kca", &assign_GovGAST3_kca); - assign_map.emplace("cim:GovGAST3.ksi", &assign_GovGAST3_ksi); - assign_map.emplace("cim:GovGAST3.ky", &assign_GovGAST3_ky); - assign_map.emplace("cim:GovGAST3.mnef", &assign_GovGAST3_mnef); - assign_map.emplace("cim:GovGAST3.mxef", &assign_GovGAST3_mxef); - assign_map.emplace("cim:GovGAST3.rcmn", &assign_GovGAST3_rcmn); - assign_map.emplace("cim:GovGAST3.rcmx", &assign_GovGAST3_rcmx); - assign_map.emplace("cim:GovGAST3.tac", &assign_GovGAST3_tac); - assign_map.emplace("cim:GovGAST3.tc", &assign_GovGAST3_tc); - assign_map.emplace("cim:GovGAST3.td", &assign_GovGAST3_td); - assign_map.emplace("cim:GovGAST3.tfen", &assign_GovGAST3_tfen); - assign_map.emplace("cim:GovGAST3.tg", &assign_GovGAST3_tg); - assign_map.emplace("cim:GovGAST3.tsi", &assign_GovGAST3_tsi); - assign_map.emplace("cim:GovGAST3.tt", &assign_GovGAST3_tt); - assign_map.emplace("cim:GovGAST3.ttc", &assign_GovGAST3_ttc); - assign_map.emplace("cim:GovGAST3.ty", &assign_GovGAST3_ty); + assign_map.emplace("GovGAST3.bca", &assign_GovGAST3_bca); + assign_map.emplace("GovGAST3.bp", &assign_GovGAST3_bp); + assign_map.emplace("GovGAST3.dtc", &assign_GovGAST3_dtc); + assign_map.emplace("GovGAST3.ka", &assign_GovGAST3_ka); + assign_map.emplace("GovGAST3.kac", &assign_GovGAST3_kac); + assign_map.emplace("GovGAST3.kca", &assign_GovGAST3_kca); + assign_map.emplace("GovGAST3.ksi", &assign_GovGAST3_ksi); + assign_map.emplace("GovGAST3.ky", &assign_GovGAST3_ky); + assign_map.emplace("GovGAST3.mnef", &assign_GovGAST3_mnef); + assign_map.emplace("GovGAST3.mxef", &assign_GovGAST3_mxef); + assign_map.emplace("GovGAST3.rcmn", &assign_GovGAST3_rcmn); + assign_map.emplace("GovGAST3.rcmx", &assign_GovGAST3_rcmx); + assign_map.emplace("GovGAST3.tac", &assign_GovGAST3_tac); + assign_map.emplace("GovGAST3.tc", &assign_GovGAST3_tc); + assign_map.emplace("GovGAST3.td", &assign_GovGAST3_td); + assign_map.emplace("GovGAST3.tfen", &assign_GovGAST3_tfen); + assign_map.emplace("GovGAST3.tg", &assign_GovGAST3_tg); + assign_map.emplace("GovGAST3.tsi", &assign_GovGAST3_tsi); + assign_map.emplace("GovGAST3.tt", &assign_GovGAST3_tt); + assign_map.emplace("GovGAST3.ttc", &assign_GovGAST3_ttc); + assign_map.emplace("GovGAST3.ty", &assign_GovGAST3_ty); } void GovGAST3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void GovGAST3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST3.bca", &get_GovGAST3_bca); - get_map.emplace("cim:GovGAST3.bp", &get_GovGAST3_bp); - get_map.emplace("cim:GovGAST3.dtc", &get_GovGAST3_dtc); - get_map.emplace("cim:GovGAST3.ka", &get_GovGAST3_ka); - get_map.emplace("cim:GovGAST3.kac", &get_GovGAST3_kac); - get_map.emplace("cim:GovGAST3.kca", &get_GovGAST3_kca); - get_map.emplace("cim:GovGAST3.ksi", &get_GovGAST3_ksi); - get_map.emplace("cim:GovGAST3.ky", &get_GovGAST3_ky); - get_map.emplace("cim:GovGAST3.mnef", &get_GovGAST3_mnef); - get_map.emplace("cim:GovGAST3.mxef", &get_GovGAST3_mxef); - get_map.emplace("cim:GovGAST3.rcmn", &get_GovGAST3_rcmn); - get_map.emplace("cim:GovGAST3.rcmx", &get_GovGAST3_rcmx); - get_map.emplace("cim:GovGAST3.tac", &get_GovGAST3_tac); - get_map.emplace("cim:GovGAST3.tc", &get_GovGAST3_tc); - get_map.emplace("cim:GovGAST3.td", &get_GovGAST3_td); - get_map.emplace("cim:GovGAST3.tfen", &get_GovGAST3_tfen); - get_map.emplace("cim:GovGAST3.tg", &get_GovGAST3_tg); - get_map.emplace("cim:GovGAST3.tsi", &get_GovGAST3_tsi); - get_map.emplace("cim:GovGAST3.tt", &get_GovGAST3_tt); - get_map.emplace("cim:GovGAST3.ttc", &get_GovGAST3_ttc); - get_map.emplace("cim:GovGAST3.ty", &get_GovGAST3_ty); + get_map.emplace("GovGAST3.bca", &get_GovGAST3_bca); + get_map.emplace("GovGAST3.bp", &get_GovGAST3_bp); + get_map.emplace("GovGAST3.dtc", &get_GovGAST3_dtc); + get_map.emplace("GovGAST3.ka", &get_GovGAST3_ka); + get_map.emplace("GovGAST3.kac", &get_GovGAST3_kac); + get_map.emplace("GovGAST3.kca", &get_GovGAST3_kca); + get_map.emplace("GovGAST3.ksi", &get_GovGAST3_ksi); + get_map.emplace("GovGAST3.ky", &get_GovGAST3_ky); + get_map.emplace("GovGAST3.mnef", &get_GovGAST3_mnef); + get_map.emplace("GovGAST3.mxef", &get_GovGAST3_mxef); + get_map.emplace("GovGAST3.rcmn", &get_GovGAST3_rcmn); + get_map.emplace("GovGAST3.rcmx", &get_GovGAST3_rcmx); + get_map.emplace("GovGAST3.tac", &get_GovGAST3_tac); + get_map.emplace("GovGAST3.tc", &get_GovGAST3_tc); + get_map.emplace("GovGAST3.td", &get_GovGAST3_td); + get_map.emplace("GovGAST3.tfen", &get_GovGAST3_tfen); + get_map.emplace("GovGAST3.tg", &get_GovGAST3_tg); + get_map.emplace("GovGAST3.tsi", &get_GovGAST3_tsi); + get_map.emplace("GovGAST3.tt", &get_GovGAST3_tt); + get_map.emplace("GovGAST3.ttc", &get_GovGAST3_ttc); + get_map.emplace("GovGAST3.ty", &get_GovGAST3_ty); } void GovGAST3::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void GovGAST3::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST3::declare() { return BaseClassDefiner(GovGAST3::addConstructToMap, GovGAST3::addPrimitiveAssignFnsToMap, GovGAST3::addClassAssignFnsToMap, GovGAST3::debugName); } +std::map GovGAST3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST3_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovGAST3.hpp b/CGMES_2.4.15_16FEB2016/GovGAST3.hpp index 8d460f127..1c25e73ed 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST3.hpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST3_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovGAST4.cpp b/CGMES_2.4.15_16FEB2016/GovGAST4.cpp index 43052f31f..92206c256 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST4.cpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST4.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST4.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.ktm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.rymn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.rymx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tcm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST4::GovGAST4() {} GovGAST4::~GovGAST4() {} -static const std::list PossibleProfilesForClass = +const std::list& GovGAST4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovGAST4::getClassNamespaceUrl() const { - { "cim:GovGAST4.bp", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ktm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.mnef", { CGMESProfile::DY, } }, - { "cim:GovGAST4.mxef", { CGMESProfile::DY, } }, - { "cim:GovGAST4.rymn", { CGMESProfile::DY, } }, - { "cim:GovGAST4.rymx", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ta", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tcm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tv", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovGAST4::getPossibleProfilesForClass() const +const std::string& GovGAST4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovGAST4::getPossibleProfilesForAttributes() const +const std::list& GovGAST4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST4_bp(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* GovGAST4::debugString() const void GovGAST4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST4", &GovGAST4_factory); + factory_map.emplace("GovGAST4", &GovGAST4_factory); } void GovGAST4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST4.bp", &assign_GovGAST4_bp); - assign_map.emplace("cim:GovGAST4.ktm", &assign_GovGAST4_ktm); - assign_map.emplace("cim:GovGAST4.mnef", &assign_GovGAST4_mnef); - assign_map.emplace("cim:GovGAST4.mxef", &assign_GovGAST4_mxef); - assign_map.emplace("cim:GovGAST4.rymn", &assign_GovGAST4_rymn); - assign_map.emplace("cim:GovGAST4.rymx", &assign_GovGAST4_rymx); - assign_map.emplace("cim:GovGAST4.ta", &assign_GovGAST4_ta); - assign_map.emplace("cim:GovGAST4.tc", &assign_GovGAST4_tc); - assign_map.emplace("cim:GovGAST4.tcm", &assign_GovGAST4_tcm); - assign_map.emplace("cim:GovGAST4.tm", &assign_GovGAST4_tm); - assign_map.emplace("cim:GovGAST4.tv", &assign_GovGAST4_tv); + assign_map.emplace("GovGAST4.bp", &assign_GovGAST4_bp); + assign_map.emplace("GovGAST4.ktm", &assign_GovGAST4_ktm); + assign_map.emplace("GovGAST4.mnef", &assign_GovGAST4_mnef); + assign_map.emplace("GovGAST4.mxef", &assign_GovGAST4_mxef); + assign_map.emplace("GovGAST4.rymn", &assign_GovGAST4_rymn); + assign_map.emplace("GovGAST4.rymx", &assign_GovGAST4_rymx); + assign_map.emplace("GovGAST4.ta", &assign_GovGAST4_ta); + assign_map.emplace("GovGAST4.tc", &assign_GovGAST4_tc); + assign_map.emplace("GovGAST4.tcm", &assign_GovGAST4_tcm); + assign_map.emplace("GovGAST4.tm", &assign_GovGAST4_tm); + assign_map.emplace("GovGAST4.tv", &assign_GovGAST4_tv); } void GovGAST4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void GovGAST4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST4.bp", &get_GovGAST4_bp); - get_map.emplace("cim:GovGAST4.ktm", &get_GovGAST4_ktm); - get_map.emplace("cim:GovGAST4.mnef", &get_GovGAST4_mnef); - get_map.emplace("cim:GovGAST4.mxef", &get_GovGAST4_mxef); - get_map.emplace("cim:GovGAST4.rymn", &get_GovGAST4_rymn); - get_map.emplace("cim:GovGAST4.rymx", &get_GovGAST4_rymx); - get_map.emplace("cim:GovGAST4.ta", &get_GovGAST4_ta); - get_map.emplace("cim:GovGAST4.tc", &get_GovGAST4_tc); - get_map.emplace("cim:GovGAST4.tcm", &get_GovGAST4_tcm); - get_map.emplace("cim:GovGAST4.tm", &get_GovGAST4_tm); - get_map.emplace("cim:GovGAST4.tv", &get_GovGAST4_tv); + get_map.emplace("GovGAST4.bp", &get_GovGAST4_bp); + get_map.emplace("GovGAST4.ktm", &get_GovGAST4_ktm); + get_map.emplace("GovGAST4.mnef", &get_GovGAST4_mnef); + get_map.emplace("GovGAST4.mxef", &get_GovGAST4_mxef); + get_map.emplace("GovGAST4.rymn", &get_GovGAST4_rymn); + get_map.emplace("GovGAST4.rymx", &get_GovGAST4_rymx); + get_map.emplace("GovGAST4.ta", &get_GovGAST4_ta); + get_map.emplace("GovGAST4.tc", &get_GovGAST4_tc); + get_map.emplace("GovGAST4.tcm", &get_GovGAST4_tcm); + get_map.emplace("GovGAST4.tm", &get_GovGAST4_tm); + get_map.emplace("GovGAST4.tv", &get_GovGAST4_tv); } void GovGAST4::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void GovGAST4::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST4::declare() { return BaseClassDefiner(GovGAST4::addConstructToMap, GovGAST4::addPrimitiveAssignFnsToMap, GovGAST4::addClassAssignFnsToMap, GovGAST4::debugName); } +std::map GovGAST4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST4_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovGAST4.hpp b/CGMES_2.4.15_16FEB2016/GovGAST4.hpp index aa017e229..4be5d773e 100644 --- a/CGMES_2.4.15_16FEB2016/GovGAST4.hpp +++ b/CGMES_2.4.15_16FEB2016/GovGAST4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST4_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovGASTWD.cpp b/CGMES_2.4.15_16FEB2016/GovGASTWD.cpp index 06560d02d..808163e83 100644 --- a/CGMES_2.4.15_16FEB2016/GovGASTWD.cpp +++ b/CGMES_2.4.15_16FEB2016/GovGASTWD.cpp @@ -11,64 +11,96 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGASTWD(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGASTWD.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.af1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.af2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.bf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.bf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.c", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.cf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.ecr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.etd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.trate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGASTWD::GovGASTWD() {} GovGASTWD::~GovGASTWD() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGASTWD.a", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.af1", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.af2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.b", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.bf1", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.bf2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.c", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.cf2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.ecr", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.etd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k3", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k4", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k5", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k6", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kdroop", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kf", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.ki", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kp", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t3", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t4", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t5", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tc", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tcd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.td", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tf", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tmax", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tmin", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tr", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.trate", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tt", { CGMESProfile::DY, } }, -}; - -std::list -GovGASTWD::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGASTWD::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGASTWD::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGASTWD::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGASTWD::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGASTWD::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGASTWD::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGASTWD::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGASTWD::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGASTWD_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1036,44 +1068,44 @@ const char* GovGASTWD::debugString() const void GovGASTWD::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGASTWD", &GovGASTWD_factory); + factory_map.emplace("GovGASTWD", &GovGASTWD_factory); } void GovGASTWD::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGASTWD.a", &assign_GovGASTWD_a); - assign_map.emplace("cim:GovGASTWD.af1", &assign_GovGASTWD_af1); - assign_map.emplace("cim:GovGASTWD.af2", &assign_GovGASTWD_af2); - assign_map.emplace("cim:GovGASTWD.b", &assign_GovGASTWD_b); - assign_map.emplace("cim:GovGASTWD.bf1", &assign_GovGASTWD_bf1); - assign_map.emplace("cim:GovGASTWD.bf2", &assign_GovGASTWD_bf2); - assign_map.emplace("cim:GovGASTWD.c", &assign_GovGASTWD_c); - assign_map.emplace("cim:GovGASTWD.cf2", &assign_GovGASTWD_cf2); - assign_map.emplace("cim:GovGASTWD.ecr", &assign_GovGASTWD_ecr); - assign_map.emplace("cim:GovGASTWD.etd", &assign_GovGASTWD_etd); - assign_map.emplace("cim:GovGASTWD.k3", &assign_GovGASTWD_k3); - assign_map.emplace("cim:GovGASTWD.k4", &assign_GovGASTWD_k4); - assign_map.emplace("cim:GovGASTWD.k5", &assign_GovGASTWD_k5); - assign_map.emplace("cim:GovGASTWD.k6", &assign_GovGASTWD_k6); - assign_map.emplace("cim:GovGASTWD.kd", &assign_GovGASTWD_kd); - assign_map.emplace("cim:GovGASTWD.kdroop", &assign_GovGASTWD_kdroop); - assign_map.emplace("cim:GovGASTWD.kf", &assign_GovGASTWD_kf); - assign_map.emplace("cim:GovGASTWD.ki", &assign_GovGASTWD_ki); - assign_map.emplace("cim:GovGASTWD.kp", &assign_GovGASTWD_kp); - assign_map.emplace("cim:GovGASTWD.mwbase", &assign_GovGASTWD_mwbase); - assign_map.emplace("cim:GovGASTWD.t", &assign_GovGASTWD_t); - assign_map.emplace("cim:GovGASTWD.t3", &assign_GovGASTWD_t3); - assign_map.emplace("cim:GovGASTWD.t4", &assign_GovGASTWD_t4); - assign_map.emplace("cim:GovGASTWD.t5", &assign_GovGASTWD_t5); - assign_map.emplace("cim:GovGASTWD.tc", &assign_GovGASTWD_tc); - assign_map.emplace("cim:GovGASTWD.tcd", &assign_GovGASTWD_tcd); - assign_map.emplace("cim:GovGASTWD.td", &assign_GovGASTWD_td); - assign_map.emplace("cim:GovGASTWD.tf", &assign_GovGASTWD_tf); - assign_map.emplace("cim:GovGASTWD.tmax", &assign_GovGASTWD_tmax); - assign_map.emplace("cim:GovGASTWD.tmin", &assign_GovGASTWD_tmin); - assign_map.emplace("cim:GovGASTWD.tr", &assign_GovGASTWD_tr); - assign_map.emplace("cim:GovGASTWD.trate", &assign_GovGASTWD_trate); - assign_map.emplace("cim:GovGASTWD.tt", &assign_GovGASTWD_tt); + assign_map.emplace("GovGASTWD.a", &assign_GovGASTWD_a); + assign_map.emplace("GovGASTWD.af1", &assign_GovGASTWD_af1); + assign_map.emplace("GovGASTWD.af2", &assign_GovGASTWD_af2); + assign_map.emplace("GovGASTWD.b", &assign_GovGASTWD_b); + assign_map.emplace("GovGASTWD.bf1", &assign_GovGASTWD_bf1); + assign_map.emplace("GovGASTWD.bf2", &assign_GovGASTWD_bf2); + assign_map.emplace("GovGASTWD.c", &assign_GovGASTWD_c); + assign_map.emplace("GovGASTWD.cf2", &assign_GovGASTWD_cf2); + assign_map.emplace("GovGASTWD.ecr", &assign_GovGASTWD_ecr); + assign_map.emplace("GovGASTWD.etd", &assign_GovGASTWD_etd); + assign_map.emplace("GovGASTWD.k3", &assign_GovGASTWD_k3); + assign_map.emplace("GovGASTWD.k4", &assign_GovGASTWD_k4); + assign_map.emplace("GovGASTWD.k5", &assign_GovGASTWD_k5); + assign_map.emplace("GovGASTWD.k6", &assign_GovGASTWD_k6); + assign_map.emplace("GovGASTWD.kd", &assign_GovGASTWD_kd); + assign_map.emplace("GovGASTWD.kdroop", &assign_GovGASTWD_kdroop); + assign_map.emplace("GovGASTWD.kf", &assign_GovGASTWD_kf); + assign_map.emplace("GovGASTWD.ki", &assign_GovGASTWD_ki); + assign_map.emplace("GovGASTWD.kp", &assign_GovGASTWD_kp); + assign_map.emplace("GovGASTWD.mwbase", &assign_GovGASTWD_mwbase); + assign_map.emplace("GovGASTWD.t", &assign_GovGASTWD_t); + assign_map.emplace("GovGASTWD.t3", &assign_GovGASTWD_t3); + assign_map.emplace("GovGASTWD.t4", &assign_GovGASTWD_t4); + assign_map.emplace("GovGASTWD.t5", &assign_GovGASTWD_t5); + assign_map.emplace("GovGASTWD.tc", &assign_GovGASTWD_tc); + assign_map.emplace("GovGASTWD.tcd", &assign_GovGASTWD_tcd); + assign_map.emplace("GovGASTWD.td", &assign_GovGASTWD_td); + assign_map.emplace("GovGASTWD.tf", &assign_GovGASTWD_tf); + assign_map.emplace("GovGASTWD.tmax", &assign_GovGASTWD_tmax); + assign_map.emplace("GovGASTWD.tmin", &assign_GovGASTWD_tmin); + assign_map.emplace("GovGASTWD.tr", &assign_GovGASTWD_tr); + assign_map.emplace("GovGASTWD.trate", &assign_GovGASTWD_trate); + assign_map.emplace("GovGASTWD.tt", &assign_GovGASTWD_tt); } void GovGASTWD::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1083,39 +1115,39 @@ void GovGASTWD::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGASTWD.a", &get_GovGASTWD_a); - get_map.emplace("cim:GovGASTWD.af1", &get_GovGASTWD_af1); - get_map.emplace("cim:GovGASTWD.af2", &get_GovGASTWD_af2); - get_map.emplace("cim:GovGASTWD.b", &get_GovGASTWD_b); - get_map.emplace("cim:GovGASTWD.bf1", &get_GovGASTWD_bf1); - get_map.emplace("cim:GovGASTWD.bf2", &get_GovGASTWD_bf2); - get_map.emplace("cim:GovGASTWD.c", &get_GovGASTWD_c); - get_map.emplace("cim:GovGASTWD.cf2", &get_GovGASTWD_cf2); - get_map.emplace("cim:GovGASTWD.ecr", &get_GovGASTWD_ecr); - get_map.emplace("cim:GovGASTWD.etd", &get_GovGASTWD_etd); - get_map.emplace("cim:GovGASTWD.k3", &get_GovGASTWD_k3); - get_map.emplace("cim:GovGASTWD.k4", &get_GovGASTWD_k4); - get_map.emplace("cim:GovGASTWD.k5", &get_GovGASTWD_k5); - get_map.emplace("cim:GovGASTWD.k6", &get_GovGASTWD_k6); - get_map.emplace("cim:GovGASTWD.kd", &get_GovGASTWD_kd); - get_map.emplace("cim:GovGASTWD.kdroop", &get_GovGASTWD_kdroop); - get_map.emplace("cim:GovGASTWD.kf", &get_GovGASTWD_kf); - get_map.emplace("cim:GovGASTWD.ki", &get_GovGASTWD_ki); - get_map.emplace("cim:GovGASTWD.kp", &get_GovGASTWD_kp); - get_map.emplace("cim:GovGASTWD.mwbase", &get_GovGASTWD_mwbase); - get_map.emplace("cim:GovGASTWD.t", &get_GovGASTWD_t); - get_map.emplace("cim:GovGASTWD.t3", &get_GovGASTWD_t3); - get_map.emplace("cim:GovGASTWD.t4", &get_GovGASTWD_t4); - get_map.emplace("cim:GovGASTWD.t5", &get_GovGASTWD_t5); - get_map.emplace("cim:GovGASTWD.tc", &get_GovGASTWD_tc); - get_map.emplace("cim:GovGASTWD.tcd", &get_GovGASTWD_tcd); - get_map.emplace("cim:GovGASTWD.td", &get_GovGASTWD_td); - get_map.emplace("cim:GovGASTWD.tf", &get_GovGASTWD_tf); - get_map.emplace("cim:GovGASTWD.tmax", &get_GovGASTWD_tmax); - get_map.emplace("cim:GovGASTWD.tmin", &get_GovGASTWD_tmin); - get_map.emplace("cim:GovGASTWD.tr", &get_GovGASTWD_tr); - get_map.emplace("cim:GovGASTWD.trate", &get_GovGASTWD_trate); - get_map.emplace("cim:GovGASTWD.tt", &get_GovGASTWD_tt); + get_map.emplace("GovGASTWD.a", &get_GovGASTWD_a); + get_map.emplace("GovGASTWD.af1", &get_GovGASTWD_af1); + get_map.emplace("GovGASTWD.af2", &get_GovGASTWD_af2); + get_map.emplace("GovGASTWD.b", &get_GovGASTWD_b); + get_map.emplace("GovGASTWD.bf1", &get_GovGASTWD_bf1); + get_map.emplace("GovGASTWD.bf2", &get_GovGASTWD_bf2); + get_map.emplace("GovGASTWD.c", &get_GovGASTWD_c); + get_map.emplace("GovGASTWD.cf2", &get_GovGASTWD_cf2); + get_map.emplace("GovGASTWD.ecr", &get_GovGASTWD_ecr); + get_map.emplace("GovGASTWD.etd", &get_GovGASTWD_etd); + get_map.emplace("GovGASTWD.k3", &get_GovGASTWD_k3); + get_map.emplace("GovGASTWD.k4", &get_GovGASTWD_k4); + get_map.emplace("GovGASTWD.k5", &get_GovGASTWD_k5); + get_map.emplace("GovGASTWD.k6", &get_GovGASTWD_k6); + get_map.emplace("GovGASTWD.kd", &get_GovGASTWD_kd); + get_map.emplace("GovGASTWD.kdroop", &get_GovGASTWD_kdroop); + get_map.emplace("GovGASTWD.kf", &get_GovGASTWD_kf); + get_map.emplace("GovGASTWD.ki", &get_GovGASTWD_ki); + get_map.emplace("GovGASTWD.kp", &get_GovGASTWD_kp); + get_map.emplace("GovGASTWD.mwbase", &get_GovGASTWD_mwbase); + get_map.emplace("GovGASTWD.t", &get_GovGASTWD_t); + get_map.emplace("GovGASTWD.t3", &get_GovGASTWD_t3); + get_map.emplace("GovGASTWD.t4", &get_GovGASTWD_t4); + get_map.emplace("GovGASTWD.t5", &get_GovGASTWD_t5); + get_map.emplace("GovGASTWD.tc", &get_GovGASTWD_tc); + get_map.emplace("GovGASTWD.tcd", &get_GovGASTWD_tcd); + get_map.emplace("GovGASTWD.td", &get_GovGASTWD_td); + get_map.emplace("GovGASTWD.tf", &get_GovGASTWD_tf); + get_map.emplace("GovGASTWD.tmax", &get_GovGASTWD_tmax); + get_map.emplace("GovGASTWD.tmin", &get_GovGASTWD_tmin); + get_map.emplace("GovGASTWD.tr", &get_GovGASTWD_tr); + get_map.emplace("GovGASTWD.trate", &get_GovGASTWD_trate); + get_map.emplace("GovGASTWD.tt", &get_GovGASTWD_tt); } void GovGASTWD::addClassGetFnsToMap(std::map& get_map) const @@ -1128,11 +1160,25 @@ void GovGASTWD::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGASTWD::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGASTWD" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGASTWD::declare() { return BaseClassDefiner(GovGASTWD::addConstructToMap, GovGASTWD::addPrimitiveAssignFnsToMap, GovGASTWD::addClassAssignFnsToMap, GovGASTWD::debugName); } +std::map GovGASTWD::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGASTWD_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovGASTWD.hpp b/CGMES_2.4.15_16FEB2016/GovGASTWD.hpp index 8623cf082..746525532 100644 --- a/CGMES_2.4.15_16FEB2016/GovGASTWD.hpp +++ b/CGMES_2.4.15_16FEB2016/GovGASTWD.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -131,8 +132,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -140,7 +148,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGASTWD_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydro1.cpp b/CGMES_2.4.15_16FEB2016/GovHydro1.cpp index ba0d33f7d..97b741f32 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydro1.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydro1.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro1.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.hdam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.velm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro1::GovHydro1() {} GovHydro1::~GovHydro1() {} -static const std::list PossibleProfilesForClass = +const std::list& GovHydro1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovHydro1::getClassNamespaceUrl() const { - { "cim:GovHydro1.at", { CGMESProfile::DY, } }, - { "cim:GovHydro1.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro1.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydro1.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydro1.hdam", { CGMESProfile::DY, } }, - { "cim:GovHydro1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro1.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro1.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro1.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tf", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro1.velm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovHydro1::getPossibleProfilesForClass() const +const std::string& GovHydro1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovHydro1::getPossibleProfilesForAttributes() const +const std::list& GovHydro1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro1_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* GovHydro1::debugString() const void GovHydro1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro1", &GovHydro1_factory); + factory_map.emplace("GovHydro1", &GovHydro1_factory); } void GovHydro1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro1.at", &assign_GovHydro1_at); - assign_map.emplace("cim:GovHydro1.dturb", &assign_GovHydro1_dturb); - assign_map.emplace("cim:GovHydro1.gmax", &assign_GovHydro1_gmax); - assign_map.emplace("cim:GovHydro1.gmin", &assign_GovHydro1_gmin); - assign_map.emplace("cim:GovHydro1.hdam", &assign_GovHydro1_hdam); - assign_map.emplace("cim:GovHydro1.mwbase", &assign_GovHydro1_mwbase); - assign_map.emplace("cim:GovHydro1.qnl", &assign_GovHydro1_qnl); - assign_map.emplace("cim:GovHydro1.rperm", &assign_GovHydro1_rperm); - assign_map.emplace("cim:GovHydro1.rtemp", &assign_GovHydro1_rtemp); - assign_map.emplace("cim:GovHydro1.tf", &assign_GovHydro1_tf); - assign_map.emplace("cim:GovHydro1.tg", &assign_GovHydro1_tg); - assign_map.emplace("cim:GovHydro1.tr", &assign_GovHydro1_tr); - assign_map.emplace("cim:GovHydro1.tw", &assign_GovHydro1_tw); - assign_map.emplace("cim:GovHydro1.velm", &assign_GovHydro1_velm); + assign_map.emplace("GovHydro1.at", &assign_GovHydro1_at); + assign_map.emplace("GovHydro1.dturb", &assign_GovHydro1_dturb); + assign_map.emplace("GovHydro1.gmax", &assign_GovHydro1_gmax); + assign_map.emplace("GovHydro1.gmin", &assign_GovHydro1_gmin); + assign_map.emplace("GovHydro1.hdam", &assign_GovHydro1_hdam); + assign_map.emplace("GovHydro1.mwbase", &assign_GovHydro1_mwbase); + assign_map.emplace("GovHydro1.qnl", &assign_GovHydro1_qnl); + assign_map.emplace("GovHydro1.rperm", &assign_GovHydro1_rperm); + assign_map.emplace("GovHydro1.rtemp", &assign_GovHydro1_rtemp); + assign_map.emplace("GovHydro1.tf", &assign_GovHydro1_tf); + assign_map.emplace("GovHydro1.tg", &assign_GovHydro1_tg); + assign_map.emplace("GovHydro1.tr", &assign_GovHydro1_tr); + assign_map.emplace("GovHydro1.tw", &assign_GovHydro1_tw); + assign_map.emplace("GovHydro1.velm", &assign_GovHydro1_velm); } void GovHydro1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void GovHydro1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro1.at", &get_GovHydro1_at); - get_map.emplace("cim:GovHydro1.dturb", &get_GovHydro1_dturb); - get_map.emplace("cim:GovHydro1.gmax", &get_GovHydro1_gmax); - get_map.emplace("cim:GovHydro1.gmin", &get_GovHydro1_gmin); - get_map.emplace("cim:GovHydro1.hdam", &get_GovHydro1_hdam); - get_map.emplace("cim:GovHydro1.mwbase", &get_GovHydro1_mwbase); - get_map.emplace("cim:GovHydro1.qnl", &get_GovHydro1_qnl); - get_map.emplace("cim:GovHydro1.rperm", &get_GovHydro1_rperm); - get_map.emplace("cim:GovHydro1.rtemp", &get_GovHydro1_rtemp); - get_map.emplace("cim:GovHydro1.tf", &get_GovHydro1_tf); - get_map.emplace("cim:GovHydro1.tg", &get_GovHydro1_tg); - get_map.emplace("cim:GovHydro1.tr", &get_GovHydro1_tr); - get_map.emplace("cim:GovHydro1.tw", &get_GovHydro1_tw); - get_map.emplace("cim:GovHydro1.velm", &get_GovHydro1_velm); + get_map.emplace("GovHydro1.at", &get_GovHydro1_at); + get_map.emplace("GovHydro1.dturb", &get_GovHydro1_dturb); + get_map.emplace("GovHydro1.gmax", &get_GovHydro1_gmax); + get_map.emplace("GovHydro1.gmin", &get_GovHydro1_gmin); + get_map.emplace("GovHydro1.hdam", &get_GovHydro1_hdam); + get_map.emplace("GovHydro1.mwbase", &get_GovHydro1_mwbase); + get_map.emplace("GovHydro1.qnl", &get_GovHydro1_qnl); + get_map.emplace("GovHydro1.rperm", &get_GovHydro1_rperm); + get_map.emplace("GovHydro1.rtemp", &get_GovHydro1_rtemp); + get_map.emplace("GovHydro1.tf", &get_GovHydro1_tf); + get_map.emplace("GovHydro1.tg", &get_GovHydro1_tg); + get_map.emplace("GovHydro1.tr", &get_GovHydro1_tr); + get_map.emplace("GovHydro1.tw", &get_GovHydro1_tw); + get_map.emplace("GovHydro1.velm", &get_GovHydro1_velm); } void GovHydro1::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void GovHydro1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro1::declare() { return BaseClassDefiner(GovHydro1::addConstructToMap, GovHydro1::addPrimitiveAssignFnsToMap, GovHydro1::addClassAssignFnsToMap, GovHydro1::debugName); } +std::map GovHydro1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro1_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydro1.hpp b/CGMES_2.4.15_16FEB2016/GovHydro1.hpp index f0f99628b..e608726c8 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydro1.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydro1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydro2.cpp b/CGMES_2.4.15_16FEB2016/GovHydro2.cpp index 83cb2dbf7..f3d6a9b96 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydro2.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydro2.cpp @@ -11,60 +11,92 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro2.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro2::GovHydro2() {} GovHydro2::~GovHydro2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro2.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydro2.kturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydro2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro2.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro2.uc", { CGMESProfile::DY, } }, - { "cim:GovHydro2.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro2_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -916,40 +948,40 @@ const char* GovHydro2::debugString() const void GovHydro2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro2", &GovHydro2_factory); + factory_map.emplace("GovHydro2", &GovHydro2_factory); } void GovHydro2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro2.aturb", &assign_GovHydro2_aturb); - assign_map.emplace("cim:GovHydro2.bturb", &assign_GovHydro2_bturb); - assign_map.emplace("cim:GovHydro2.db1", &assign_GovHydro2_db1); - assign_map.emplace("cim:GovHydro2.db2", &assign_GovHydro2_db2); - assign_map.emplace("cim:GovHydro2.eps", &assign_GovHydro2_eps); - assign_map.emplace("cim:GovHydro2.gv1", &assign_GovHydro2_gv1); - assign_map.emplace("cim:GovHydro2.gv2", &assign_GovHydro2_gv2); - assign_map.emplace("cim:GovHydro2.gv3", &assign_GovHydro2_gv3); - assign_map.emplace("cim:GovHydro2.gv4", &assign_GovHydro2_gv4); - assign_map.emplace("cim:GovHydro2.gv5", &assign_GovHydro2_gv5); - assign_map.emplace("cim:GovHydro2.gv6", &assign_GovHydro2_gv6); - assign_map.emplace("cim:GovHydro2.kturb", &assign_GovHydro2_kturb); - assign_map.emplace("cim:GovHydro2.mwbase", &assign_GovHydro2_mwbase); - assign_map.emplace("cim:GovHydro2.pgv1", &assign_GovHydro2_pgv1); - assign_map.emplace("cim:GovHydro2.pgv2", &assign_GovHydro2_pgv2); - assign_map.emplace("cim:GovHydro2.pgv3", &assign_GovHydro2_pgv3); - assign_map.emplace("cim:GovHydro2.pgv4", &assign_GovHydro2_pgv4); - assign_map.emplace("cim:GovHydro2.pgv5", &assign_GovHydro2_pgv5); - assign_map.emplace("cim:GovHydro2.pgv6", &assign_GovHydro2_pgv6); - assign_map.emplace("cim:GovHydro2.pmax", &assign_GovHydro2_pmax); - assign_map.emplace("cim:GovHydro2.pmin", &assign_GovHydro2_pmin); - assign_map.emplace("cim:GovHydro2.rperm", &assign_GovHydro2_rperm); - assign_map.emplace("cim:GovHydro2.rtemp", &assign_GovHydro2_rtemp); - assign_map.emplace("cim:GovHydro2.tg", &assign_GovHydro2_tg); - assign_map.emplace("cim:GovHydro2.tp", &assign_GovHydro2_tp); - assign_map.emplace("cim:GovHydro2.tr", &assign_GovHydro2_tr); - assign_map.emplace("cim:GovHydro2.tw", &assign_GovHydro2_tw); - assign_map.emplace("cim:GovHydro2.uc", &assign_GovHydro2_uc); - assign_map.emplace("cim:GovHydro2.uo", &assign_GovHydro2_uo); + assign_map.emplace("GovHydro2.aturb", &assign_GovHydro2_aturb); + assign_map.emplace("GovHydro2.bturb", &assign_GovHydro2_bturb); + assign_map.emplace("GovHydro2.db1", &assign_GovHydro2_db1); + assign_map.emplace("GovHydro2.db2", &assign_GovHydro2_db2); + assign_map.emplace("GovHydro2.eps", &assign_GovHydro2_eps); + assign_map.emplace("GovHydro2.gv1", &assign_GovHydro2_gv1); + assign_map.emplace("GovHydro2.gv2", &assign_GovHydro2_gv2); + assign_map.emplace("GovHydro2.gv3", &assign_GovHydro2_gv3); + assign_map.emplace("GovHydro2.gv4", &assign_GovHydro2_gv4); + assign_map.emplace("GovHydro2.gv5", &assign_GovHydro2_gv5); + assign_map.emplace("GovHydro2.gv6", &assign_GovHydro2_gv6); + assign_map.emplace("GovHydro2.kturb", &assign_GovHydro2_kturb); + assign_map.emplace("GovHydro2.mwbase", &assign_GovHydro2_mwbase); + assign_map.emplace("GovHydro2.pgv1", &assign_GovHydro2_pgv1); + assign_map.emplace("GovHydro2.pgv2", &assign_GovHydro2_pgv2); + assign_map.emplace("GovHydro2.pgv3", &assign_GovHydro2_pgv3); + assign_map.emplace("GovHydro2.pgv4", &assign_GovHydro2_pgv4); + assign_map.emplace("GovHydro2.pgv5", &assign_GovHydro2_pgv5); + assign_map.emplace("GovHydro2.pgv6", &assign_GovHydro2_pgv6); + assign_map.emplace("GovHydro2.pmax", &assign_GovHydro2_pmax); + assign_map.emplace("GovHydro2.pmin", &assign_GovHydro2_pmin); + assign_map.emplace("GovHydro2.rperm", &assign_GovHydro2_rperm); + assign_map.emplace("GovHydro2.rtemp", &assign_GovHydro2_rtemp); + assign_map.emplace("GovHydro2.tg", &assign_GovHydro2_tg); + assign_map.emplace("GovHydro2.tp", &assign_GovHydro2_tp); + assign_map.emplace("GovHydro2.tr", &assign_GovHydro2_tr); + assign_map.emplace("GovHydro2.tw", &assign_GovHydro2_tw); + assign_map.emplace("GovHydro2.uc", &assign_GovHydro2_uc); + assign_map.emplace("GovHydro2.uo", &assign_GovHydro2_uo); } void GovHydro2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -959,35 +991,35 @@ void GovHydro2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro2.aturb", &get_GovHydro2_aturb); - get_map.emplace("cim:GovHydro2.bturb", &get_GovHydro2_bturb); - get_map.emplace("cim:GovHydro2.db1", &get_GovHydro2_db1); - get_map.emplace("cim:GovHydro2.db2", &get_GovHydro2_db2); - get_map.emplace("cim:GovHydro2.eps", &get_GovHydro2_eps); - get_map.emplace("cim:GovHydro2.gv1", &get_GovHydro2_gv1); - get_map.emplace("cim:GovHydro2.gv2", &get_GovHydro2_gv2); - get_map.emplace("cim:GovHydro2.gv3", &get_GovHydro2_gv3); - get_map.emplace("cim:GovHydro2.gv4", &get_GovHydro2_gv4); - get_map.emplace("cim:GovHydro2.gv5", &get_GovHydro2_gv5); - get_map.emplace("cim:GovHydro2.gv6", &get_GovHydro2_gv6); - get_map.emplace("cim:GovHydro2.kturb", &get_GovHydro2_kturb); - get_map.emplace("cim:GovHydro2.mwbase", &get_GovHydro2_mwbase); - get_map.emplace("cim:GovHydro2.pgv1", &get_GovHydro2_pgv1); - get_map.emplace("cim:GovHydro2.pgv2", &get_GovHydro2_pgv2); - get_map.emplace("cim:GovHydro2.pgv3", &get_GovHydro2_pgv3); - get_map.emplace("cim:GovHydro2.pgv4", &get_GovHydro2_pgv4); - get_map.emplace("cim:GovHydro2.pgv5", &get_GovHydro2_pgv5); - get_map.emplace("cim:GovHydro2.pgv6", &get_GovHydro2_pgv6); - get_map.emplace("cim:GovHydro2.pmax", &get_GovHydro2_pmax); - get_map.emplace("cim:GovHydro2.pmin", &get_GovHydro2_pmin); - get_map.emplace("cim:GovHydro2.rperm", &get_GovHydro2_rperm); - get_map.emplace("cim:GovHydro2.rtemp", &get_GovHydro2_rtemp); - get_map.emplace("cim:GovHydro2.tg", &get_GovHydro2_tg); - get_map.emplace("cim:GovHydro2.tp", &get_GovHydro2_tp); - get_map.emplace("cim:GovHydro2.tr", &get_GovHydro2_tr); - get_map.emplace("cim:GovHydro2.tw", &get_GovHydro2_tw); - get_map.emplace("cim:GovHydro2.uc", &get_GovHydro2_uc); - get_map.emplace("cim:GovHydro2.uo", &get_GovHydro2_uo); + get_map.emplace("GovHydro2.aturb", &get_GovHydro2_aturb); + get_map.emplace("GovHydro2.bturb", &get_GovHydro2_bturb); + get_map.emplace("GovHydro2.db1", &get_GovHydro2_db1); + get_map.emplace("GovHydro2.db2", &get_GovHydro2_db2); + get_map.emplace("GovHydro2.eps", &get_GovHydro2_eps); + get_map.emplace("GovHydro2.gv1", &get_GovHydro2_gv1); + get_map.emplace("GovHydro2.gv2", &get_GovHydro2_gv2); + get_map.emplace("GovHydro2.gv3", &get_GovHydro2_gv3); + get_map.emplace("GovHydro2.gv4", &get_GovHydro2_gv4); + get_map.emplace("GovHydro2.gv5", &get_GovHydro2_gv5); + get_map.emplace("GovHydro2.gv6", &get_GovHydro2_gv6); + get_map.emplace("GovHydro2.kturb", &get_GovHydro2_kturb); + get_map.emplace("GovHydro2.mwbase", &get_GovHydro2_mwbase); + get_map.emplace("GovHydro2.pgv1", &get_GovHydro2_pgv1); + get_map.emplace("GovHydro2.pgv2", &get_GovHydro2_pgv2); + get_map.emplace("GovHydro2.pgv3", &get_GovHydro2_pgv3); + get_map.emplace("GovHydro2.pgv4", &get_GovHydro2_pgv4); + get_map.emplace("GovHydro2.pgv5", &get_GovHydro2_pgv5); + get_map.emplace("GovHydro2.pgv6", &get_GovHydro2_pgv6); + get_map.emplace("GovHydro2.pmax", &get_GovHydro2_pmax); + get_map.emplace("GovHydro2.pmin", &get_GovHydro2_pmin); + get_map.emplace("GovHydro2.rperm", &get_GovHydro2_rperm); + get_map.emplace("GovHydro2.rtemp", &get_GovHydro2_rtemp); + get_map.emplace("GovHydro2.tg", &get_GovHydro2_tg); + get_map.emplace("GovHydro2.tp", &get_GovHydro2_tp); + get_map.emplace("GovHydro2.tr", &get_GovHydro2_tr); + get_map.emplace("GovHydro2.tw", &get_GovHydro2_tw); + get_map.emplace("GovHydro2.uc", &get_GovHydro2_uc); + get_map.emplace("GovHydro2.uo", &get_GovHydro2_uo); } void GovHydro2::addClassGetFnsToMap(std::map& get_map) const @@ -1000,11 +1032,25 @@ void GovHydro2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro2::declare() { return BaseClassDefiner(GovHydro2::addConstructToMap, GovHydro2::addPrimitiveAssignFnsToMap, GovHydro2::addClassAssignFnsToMap, GovHydro2::debugName); } +std::map GovHydro2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro2_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydro2.hpp b/CGMES_2.4.15_16FEB2016/GovHydro2.hpp index 3919c3e7b..7ec8c11d5 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydro2.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydro2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -119,8 +120,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -128,7 +136,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydro3.cpp b/CGMES_2.4.15_16FEB2016/GovHydro3.cpp index e942b6ea1..1a78b8e6f 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydro3.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydro3.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro3.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.governorControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.h0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.relec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.rgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro3::GovHydro3() {} GovHydro3::~GovHydro3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro3.at", { CGMESProfile::DY, } }, - { "cim:GovHydro3.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro3.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro3.governorControl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydro3.h0", { CGMESProfile::DY, } }, - { "cim:GovHydro3.k1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.k2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.kg", { CGMESProfile::DY, } }, - { "cim:GovHydro3.ki", { CGMESProfile::DY, } }, - { "cim:GovHydro3.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydro3.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.relec", { CGMESProfile::DY, } }, - { "cim:GovHydro3.rgate", { CGMESProfile::DY, } }, - { "cim:GovHydro3.td", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tf", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tt", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro3.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro3_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* GovHydro3::debugString() const void GovHydro3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro3", &GovHydro3_factory); + factory_map.emplace("GovHydro3", &GovHydro3_factory); } void GovHydro3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro3.at", &assign_GovHydro3_at); - assign_map.emplace("cim:GovHydro3.db1", &assign_GovHydro3_db1); - assign_map.emplace("cim:GovHydro3.db2", &assign_GovHydro3_db2); - assign_map.emplace("cim:GovHydro3.dturb", &assign_GovHydro3_dturb); - assign_map.emplace("cim:GovHydro3.eps", &assign_GovHydro3_eps); - assign_map.emplace("cim:GovHydro3.governorControl", &assign_GovHydro3_governorControl); - assign_map.emplace("cim:GovHydro3.gv1", &assign_GovHydro3_gv1); - assign_map.emplace("cim:GovHydro3.gv2", &assign_GovHydro3_gv2); - assign_map.emplace("cim:GovHydro3.gv3", &assign_GovHydro3_gv3); - assign_map.emplace("cim:GovHydro3.gv4", &assign_GovHydro3_gv4); - assign_map.emplace("cim:GovHydro3.gv5", &assign_GovHydro3_gv5); - assign_map.emplace("cim:GovHydro3.gv6", &assign_GovHydro3_gv6); - assign_map.emplace("cim:GovHydro3.h0", &assign_GovHydro3_h0); - assign_map.emplace("cim:GovHydro3.k1", &assign_GovHydro3_k1); - assign_map.emplace("cim:GovHydro3.k2", &assign_GovHydro3_k2); - assign_map.emplace("cim:GovHydro3.kg", &assign_GovHydro3_kg); - assign_map.emplace("cim:GovHydro3.ki", &assign_GovHydro3_ki); - assign_map.emplace("cim:GovHydro3.mwbase", &assign_GovHydro3_mwbase); - assign_map.emplace("cim:GovHydro3.pgv1", &assign_GovHydro3_pgv1); - assign_map.emplace("cim:GovHydro3.pgv2", &assign_GovHydro3_pgv2); - assign_map.emplace("cim:GovHydro3.pgv3", &assign_GovHydro3_pgv3); - assign_map.emplace("cim:GovHydro3.pgv4", &assign_GovHydro3_pgv4); - assign_map.emplace("cim:GovHydro3.pgv5", &assign_GovHydro3_pgv5); - assign_map.emplace("cim:GovHydro3.pgv6", &assign_GovHydro3_pgv6); - assign_map.emplace("cim:GovHydro3.pmax", &assign_GovHydro3_pmax); - assign_map.emplace("cim:GovHydro3.pmin", &assign_GovHydro3_pmin); - assign_map.emplace("cim:GovHydro3.qnl", &assign_GovHydro3_qnl); - assign_map.emplace("cim:GovHydro3.relec", &assign_GovHydro3_relec); - assign_map.emplace("cim:GovHydro3.rgate", &assign_GovHydro3_rgate); - assign_map.emplace("cim:GovHydro3.td", &assign_GovHydro3_td); - assign_map.emplace("cim:GovHydro3.tf", &assign_GovHydro3_tf); - assign_map.emplace("cim:GovHydro3.tp", &assign_GovHydro3_tp); - assign_map.emplace("cim:GovHydro3.tt", &assign_GovHydro3_tt); - assign_map.emplace("cim:GovHydro3.tw", &assign_GovHydro3_tw); - assign_map.emplace("cim:GovHydro3.velcl", &assign_GovHydro3_velcl); - assign_map.emplace("cim:GovHydro3.velop", &assign_GovHydro3_velop); + assign_map.emplace("GovHydro3.at", &assign_GovHydro3_at); + assign_map.emplace("GovHydro3.db1", &assign_GovHydro3_db1); + assign_map.emplace("GovHydro3.db2", &assign_GovHydro3_db2); + assign_map.emplace("GovHydro3.dturb", &assign_GovHydro3_dturb); + assign_map.emplace("GovHydro3.eps", &assign_GovHydro3_eps); + assign_map.emplace("GovHydro3.governorControl", &assign_GovHydro3_governorControl); + assign_map.emplace("GovHydro3.gv1", &assign_GovHydro3_gv1); + assign_map.emplace("GovHydro3.gv2", &assign_GovHydro3_gv2); + assign_map.emplace("GovHydro3.gv3", &assign_GovHydro3_gv3); + assign_map.emplace("GovHydro3.gv4", &assign_GovHydro3_gv4); + assign_map.emplace("GovHydro3.gv5", &assign_GovHydro3_gv5); + assign_map.emplace("GovHydro3.gv6", &assign_GovHydro3_gv6); + assign_map.emplace("GovHydro3.h0", &assign_GovHydro3_h0); + assign_map.emplace("GovHydro3.k1", &assign_GovHydro3_k1); + assign_map.emplace("GovHydro3.k2", &assign_GovHydro3_k2); + assign_map.emplace("GovHydro3.kg", &assign_GovHydro3_kg); + assign_map.emplace("GovHydro3.ki", &assign_GovHydro3_ki); + assign_map.emplace("GovHydro3.mwbase", &assign_GovHydro3_mwbase); + assign_map.emplace("GovHydro3.pgv1", &assign_GovHydro3_pgv1); + assign_map.emplace("GovHydro3.pgv2", &assign_GovHydro3_pgv2); + assign_map.emplace("GovHydro3.pgv3", &assign_GovHydro3_pgv3); + assign_map.emplace("GovHydro3.pgv4", &assign_GovHydro3_pgv4); + assign_map.emplace("GovHydro3.pgv5", &assign_GovHydro3_pgv5); + assign_map.emplace("GovHydro3.pgv6", &assign_GovHydro3_pgv6); + assign_map.emplace("GovHydro3.pmax", &assign_GovHydro3_pmax); + assign_map.emplace("GovHydro3.pmin", &assign_GovHydro3_pmin); + assign_map.emplace("GovHydro3.qnl", &assign_GovHydro3_qnl); + assign_map.emplace("GovHydro3.relec", &assign_GovHydro3_relec); + assign_map.emplace("GovHydro3.rgate", &assign_GovHydro3_rgate); + assign_map.emplace("GovHydro3.td", &assign_GovHydro3_td); + assign_map.emplace("GovHydro3.tf", &assign_GovHydro3_tf); + assign_map.emplace("GovHydro3.tp", &assign_GovHydro3_tp); + assign_map.emplace("GovHydro3.tt", &assign_GovHydro3_tt); + assign_map.emplace("GovHydro3.tw", &assign_GovHydro3_tw); + assign_map.emplace("GovHydro3.velcl", &assign_GovHydro3_velcl); + assign_map.emplace("GovHydro3.velop", &assign_GovHydro3_velop); } void GovHydro3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,42 +1208,42 @@ void GovHydro3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro3.at", &get_GovHydro3_at); - get_map.emplace("cim:GovHydro3.db1", &get_GovHydro3_db1); - get_map.emplace("cim:GovHydro3.db2", &get_GovHydro3_db2); - get_map.emplace("cim:GovHydro3.dturb", &get_GovHydro3_dturb); - get_map.emplace("cim:GovHydro3.eps", &get_GovHydro3_eps); - get_map.emplace("cim:GovHydro3.governorControl", &get_GovHydro3_governorControl); - get_map.emplace("cim:GovHydro3.gv1", &get_GovHydro3_gv1); - get_map.emplace("cim:GovHydro3.gv2", &get_GovHydro3_gv2); - get_map.emplace("cim:GovHydro3.gv3", &get_GovHydro3_gv3); - get_map.emplace("cim:GovHydro3.gv4", &get_GovHydro3_gv4); - get_map.emplace("cim:GovHydro3.gv5", &get_GovHydro3_gv5); - get_map.emplace("cim:GovHydro3.gv6", &get_GovHydro3_gv6); - get_map.emplace("cim:GovHydro3.h0", &get_GovHydro3_h0); - get_map.emplace("cim:GovHydro3.k1", &get_GovHydro3_k1); - get_map.emplace("cim:GovHydro3.k2", &get_GovHydro3_k2); - get_map.emplace("cim:GovHydro3.kg", &get_GovHydro3_kg); - get_map.emplace("cim:GovHydro3.ki", &get_GovHydro3_ki); - get_map.emplace("cim:GovHydro3.mwbase", &get_GovHydro3_mwbase); - get_map.emplace("cim:GovHydro3.pgv1", &get_GovHydro3_pgv1); - get_map.emplace("cim:GovHydro3.pgv2", &get_GovHydro3_pgv2); - get_map.emplace("cim:GovHydro3.pgv3", &get_GovHydro3_pgv3); - get_map.emplace("cim:GovHydro3.pgv4", &get_GovHydro3_pgv4); - get_map.emplace("cim:GovHydro3.pgv5", &get_GovHydro3_pgv5); - get_map.emplace("cim:GovHydro3.pgv6", &get_GovHydro3_pgv6); - get_map.emplace("cim:GovHydro3.pmax", &get_GovHydro3_pmax); - get_map.emplace("cim:GovHydro3.pmin", &get_GovHydro3_pmin); - get_map.emplace("cim:GovHydro3.qnl", &get_GovHydro3_qnl); - get_map.emplace("cim:GovHydro3.relec", &get_GovHydro3_relec); - get_map.emplace("cim:GovHydro3.rgate", &get_GovHydro3_rgate); - get_map.emplace("cim:GovHydro3.td", &get_GovHydro3_td); - get_map.emplace("cim:GovHydro3.tf", &get_GovHydro3_tf); - get_map.emplace("cim:GovHydro3.tp", &get_GovHydro3_tp); - get_map.emplace("cim:GovHydro3.tt", &get_GovHydro3_tt); - get_map.emplace("cim:GovHydro3.tw", &get_GovHydro3_tw); - get_map.emplace("cim:GovHydro3.velcl", &get_GovHydro3_velcl); - get_map.emplace("cim:GovHydro3.velop", &get_GovHydro3_velop); + get_map.emplace("GovHydro3.at", &get_GovHydro3_at); + get_map.emplace("GovHydro3.db1", &get_GovHydro3_db1); + get_map.emplace("GovHydro3.db2", &get_GovHydro3_db2); + get_map.emplace("GovHydro3.dturb", &get_GovHydro3_dturb); + get_map.emplace("GovHydro3.eps", &get_GovHydro3_eps); + get_map.emplace("GovHydro3.governorControl", &get_GovHydro3_governorControl); + get_map.emplace("GovHydro3.gv1", &get_GovHydro3_gv1); + get_map.emplace("GovHydro3.gv2", &get_GovHydro3_gv2); + get_map.emplace("GovHydro3.gv3", &get_GovHydro3_gv3); + get_map.emplace("GovHydro3.gv4", &get_GovHydro3_gv4); + get_map.emplace("GovHydro3.gv5", &get_GovHydro3_gv5); + get_map.emplace("GovHydro3.gv6", &get_GovHydro3_gv6); + get_map.emplace("GovHydro3.h0", &get_GovHydro3_h0); + get_map.emplace("GovHydro3.k1", &get_GovHydro3_k1); + get_map.emplace("GovHydro3.k2", &get_GovHydro3_k2); + get_map.emplace("GovHydro3.kg", &get_GovHydro3_kg); + get_map.emplace("GovHydro3.ki", &get_GovHydro3_ki); + get_map.emplace("GovHydro3.mwbase", &get_GovHydro3_mwbase); + get_map.emplace("GovHydro3.pgv1", &get_GovHydro3_pgv1); + get_map.emplace("GovHydro3.pgv2", &get_GovHydro3_pgv2); + get_map.emplace("GovHydro3.pgv3", &get_GovHydro3_pgv3); + get_map.emplace("GovHydro3.pgv4", &get_GovHydro3_pgv4); + get_map.emplace("GovHydro3.pgv5", &get_GovHydro3_pgv5); + get_map.emplace("GovHydro3.pgv6", &get_GovHydro3_pgv6); + get_map.emplace("GovHydro3.pmax", &get_GovHydro3_pmax); + get_map.emplace("GovHydro3.pmin", &get_GovHydro3_pmin); + get_map.emplace("GovHydro3.qnl", &get_GovHydro3_qnl); + get_map.emplace("GovHydro3.relec", &get_GovHydro3_relec); + get_map.emplace("GovHydro3.rgate", &get_GovHydro3_rgate); + get_map.emplace("GovHydro3.td", &get_GovHydro3_td); + get_map.emplace("GovHydro3.tf", &get_GovHydro3_tf); + get_map.emplace("GovHydro3.tp", &get_GovHydro3_tp); + get_map.emplace("GovHydro3.tt", &get_GovHydro3_tt); + get_map.emplace("GovHydro3.tw", &get_GovHydro3_tw); + get_map.emplace("GovHydro3.velcl", &get_GovHydro3_velcl); + get_map.emplace("GovHydro3.velop", &get_GovHydro3_velop); } void GovHydro3::addClassGetFnsToMap(std::map& get_map) const @@ -1224,11 +1256,25 @@ void GovHydro3::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro3::declare() { return BaseClassDefiner(GovHydro3::addConstructToMap, GovHydro3::addPrimitiveAssignFnsToMap, GovHydro3::addClassAssignFnsToMap, GovHydro3::debugName); } +std::map GovHydro3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro3_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydro3.hpp b/CGMES_2.4.15_16FEB2016/GovHydro3.hpp index d3e458631..ce2158f11 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydro3.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydro3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -141,8 +142,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -150,7 +158,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro3_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydro4.cpp b/CGMES_2.4.15_16FEB2016/GovHydro4.cpp index 4a841df9c..d2689abe8 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydro4.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydro4.cpp @@ -11,69 +11,101 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro4.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.hdam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.qn1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tblade", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro4::GovHydro4() {} GovHydro4::~GovHydro4() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro4.at", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bmax", { CGMESProfile::DY, } }, - { "cim:GovHydro4.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro4.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.hdam", { CGMESProfile::DY, } }, - { "cim:GovHydro4.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.qn1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro4.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tblade", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro4.uc", { CGMESProfile::DY, } }, - { "cim:GovHydro4.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro4::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro4::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro4::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro4::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro4::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro4::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro4_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1186,49 +1218,49 @@ const char* GovHydro4::debugString() const void GovHydro4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro4", &GovHydro4_factory); + factory_map.emplace("GovHydro4", &GovHydro4_factory); } void GovHydro4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro4.at", &assign_GovHydro4_at); - assign_map.emplace("cim:GovHydro4.bgv0", &assign_GovHydro4_bgv0); - assign_map.emplace("cim:GovHydro4.bgv1", &assign_GovHydro4_bgv1); - assign_map.emplace("cim:GovHydro4.bgv2", &assign_GovHydro4_bgv2); - assign_map.emplace("cim:GovHydro4.bgv3", &assign_GovHydro4_bgv3); - assign_map.emplace("cim:GovHydro4.bgv4", &assign_GovHydro4_bgv4); - assign_map.emplace("cim:GovHydro4.bgv5", &assign_GovHydro4_bgv5); - assign_map.emplace("cim:GovHydro4.bmax", &assign_GovHydro4_bmax); - assign_map.emplace("cim:GovHydro4.db1", &assign_GovHydro4_db1); - assign_map.emplace("cim:GovHydro4.db2", &assign_GovHydro4_db2); - assign_map.emplace("cim:GovHydro4.dturb", &assign_GovHydro4_dturb); - assign_map.emplace("cim:GovHydro4.eps", &assign_GovHydro4_eps); - assign_map.emplace("cim:GovHydro4.gmax", &assign_GovHydro4_gmax); - assign_map.emplace("cim:GovHydro4.gmin", &assign_GovHydro4_gmin); - assign_map.emplace("cim:GovHydro4.gv0", &assign_GovHydro4_gv0); - assign_map.emplace("cim:GovHydro4.gv1", &assign_GovHydro4_gv1); - assign_map.emplace("cim:GovHydro4.gv2", &assign_GovHydro4_gv2); - assign_map.emplace("cim:GovHydro4.gv3", &assign_GovHydro4_gv3); - assign_map.emplace("cim:GovHydro4.gv4", &assign_GovHydro4_gv4); - assign_map.emplace("cim:GovHydro4.gv5", &assign_GovHydro4_gv5); - assign_map.emplace("cim:GovHydro4.hdam", &assign_GovHydro4_hdam); - assign_map.emplace("cim:GovHydro4.mwbase", &assign_GovHydro4_mwbase); - assign_map.emplace("cim:GovHydro4.pgv0", &assign_GovHydro4_pgv0); - assign_map.emplace("cim:GovHydro4.pgv1", &assign_GovHydro4_pgv1); - assign_map.emplace("cim:GovHydro4.pgv2", &assign_GovHydro4_pgv2); - assign_map.emplace("cim:GovHydro4.pgv3", &assign_GovHydro4_pgv3); - assign_map.emplace("cim:GovHydro4.pgv4", &assign_GovHydro4_pgv4); - assign_map.emplace("cim:GovHydro4.pgv5", &assign_GovHydro4_pgv5); - assign_map.emplace("cim:GovHydro4.qn1", &assign_GovHydro4_qn1); - assign_map.emplace("cim:GovHydro4.rperm", &assign_GovHydro4_rperm); - assign_map.emplace("cim:GovHydro4.rtemp", &assign_GovHydro4_rtemp); - assign_map.emplace("cim:GovHydro4.tblade", &assign_GovHydro4_tblade); - assign_map.emplace("cim:GovHydro4.tg", &assign_GovHydro4_tg); - assign_map.emplace("cim:GovHydro4.tp", &assign_GovHydro4_tp); - assign_map.emplace("cim:GovHydro4.tr", &assign_GovHydro4_tr); - assign_map.emplace("cim:GovHydro4.tw", &assign_GovHydro4_tw); - assign_map.emplace("cim:GovHydro4.uc", &assign_GovHydro4_uc); - assign_map.emplace("cim:GovHydro4.uo", &assign_GovHydro4_uo); + assign_map.emplace("GovHydro4.at", &assign_GovHydro4_at); + assign_map.emplace("GovHydro4.bgv0", &assign_GovHydro4_bgv0); + assign_map.emplace("GovHydro4.bgv1", &assign_GovHydro4_bgv1); + assign_map.emplace("GovHydro4.bgv2", &assign_GovHydro4_bgv2); + assign_map.emplace("GovHydro4.bgv3", &assign_GovHydro4_bgv3); + assign_map.emplace("GovHydro4.bgv4", &assign_GovHydro4_bgv4); + assign_map.emplace("GovHydro4.bgv5", &assign_GovHydro4_bgv5); + assign_map.emplace("GovHydro4.bmax", &assign_GovHydro4_bmax); + assign_map.emplace("GovHydro4.db1", &assign_GovHydro4_db1); + assign_map.emplace("GovHydro4.db2", &assign_GovHydro4_db2); + assign_map.emplace("GovHydro4.dturb", &assign_GovHydro4_dturb); + assign_map.emplace("GovHydro4.eps", &assign_GovHydro4_eps); + assign_map.emplace("GovHydro4.gmax", &assign_GovHydro4_gmax); + assign_map.emplace("GovHydro4.gmin", &assign_GovHydro4_gmin); + assign_map.emplace("GovHydro4.gv0", &assign_GovHydro4_gv0); + assign_map.emplace("GovHydro4.gv1", &assign_GovHydro4_gv1); + assign_map.emplace("GovHydro4.gv2", &assign_GovHydro4_gv2); + assign_map.emplace("GovHydro4.gv3", &assign_GovHydro4_gv3); + assign_map.emplace("GovHydro4.gv4", &assign_GovHydro4_gv4); + assign_map.emplace("GovHydro4.gv5", &assign_GovHydro4_gv5); + assign_map.emplace("GovHydro4.hdam", &assign_GovHydro4_hdam); + assign_map.emplace("GovHydro4.mwbase", &assign_GovHydro4_mwbase); + assign_map.emplace("GovHydro4.pgv0", &assign_GovHydro4_pgv0); + assign_map.emplace("GovHydro4.pgv1", &assign_GovHydro4_pgv1); + assign_map.emplace("GovHydro4.pgv2", &assign_GovHydro4_pgv2); + assign_map.emplace("GovHydro4.pgv3", &assign_GovHydro4_pgv3); + assign_map.emplace("GovHydro4.pgv4", &assign_GovHydro4_pgv4); + assign_map.emplace("GovHydro4.pgv5", &assign_GovHydro4_pgv5); + assign_map.emplace("GovHydro4.qn1", &assign_GovHydro4_qn1); + assign_map.emplace("GovHydro4.rperm", &assign_GovHydro4_rperm); + assign_map.emplace("GovHydro4.rtemp", &assign_GovHydro4_rtemp); + assign_map.emplace("GovHydro4.tblade", &assign_GovHydro4_tblade); + assign_map.emplace("GovHydro4.tg", &assign_GovHydro4_tg); + assign_map.emplace("GovHydro4.tp", &assign_GovHydro4_tp); + assign_map.emplace("GovHydro4.tr", &assign_GovHydro4_tr); + assign_map.emplace("GovHydro4.tw", &assign_GovHydro4_tw); + assign_map.emplace("GovHydro4.uc", &assign_GovHydro4_uc); + assign_map.emplace("GovHydro4.uo", &assign_GovHydro4_uo); } void GovHydro4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1238,44 +1270,44 @@ void GovHydro4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro4.at", &get_GovHydro4_at); - get_map.emplace("cim:GovHydro4.bgv0", &get_GovHydro4_bgv0); - get_map.emplace("cim:GovHydro4.bgv1", &get_GovHydro4_bgv1); - get_map.emplace("cim:GovHydro4.bgv2", &get_GovHydro4_bgv2); - get_map.emplace("cim:GovHydro4.bgv3", &get_GovHydro4_bgv3); - get_map.emplace("cim:GovHydro4.bgv4", &get_GovHydro4_bgv4); - get_map.emplace("cim:GovHydro4.bgv5", &get_GovHydro4_bgv5); - get_map.emplace("cim:GovHydro4.bmax", &get_GovHydro4_bmax); - get_map.emplace("cim:GovHydro4.db1", &get_GovHydro4_db1); - get_map.emplace("cim:GovHydro4.db2", &get_GovHydro4_db2); - get_map.emplace("cim:GovHydro4.dturb", &get_GovHydro4_dturb); - get_map.emplace("cim:GovHydro4.eps", &get_GovHydro4_eps); - get_map.emplace("cim:GovHydro4.gmax", &get_GovHydro4_gmax); - get_map.emplace("cim:GovHydro4.gmin", &get_GovHydro4_gmin); - get_map.emplace("cim:GovHydro4.gv0", &get_GovHydro4_gv0); - get_map.emplace("cim:GovHydro4.gv1", &get_GovHydro4_gv1); - get_map.emplace("cim:GovHydro4.gv2", &get_GovHydro4_gv2); - get_map.emplace("cim:GovHydro4.gv3", &get_GovHydro4_gv3); - get_map.emplace("cim:GovHydro4.gv4", &get_GovHydro4_gv4); - get_map.emplace("cim:GovHydro4.gv5", &get_GovHydro4_gv5); - get_map.emplace("cim:GovHydro4.hdam", &get_GovHydro4_hdam); - get_map.emplace("cim:GovHydro4.mwbase", &get_GovHydro4_mwbase); - get_map.emplace("cim:GovHydro4.pgv0", &get_GovHydro4_pgv0); - get_map.emplace("cim:GovHydro4.pgv1", &get_GovHydro4_pgv1); - get_map.emplace("cim:GovHydro4.pgv2", &get_GovHydro4_pgv2); - get_map.emplace("cim:GovHydro4.pgv3", &get_GovHydro4_pgv3); - get_map.emplace("cim:GovHydro4.pgv4", &get_GovHydro4_pgv4); - get_map.emplace("cim:GovHydro4.pgv5", &get_GovHydro4_pgv5); - get_map.emplace("cim:GovHydro4.qn1", &get_GovHydro4_qn1); - get_map.emplace("cim:GovHydro4.rperm", &get_GovHydro4_rperm); - get_map.emplace("cim:GovHydro4.rtemp", &get_GovHydro4_rtemp); - get_map.emplace("cim:GovHydro4.tblade", &get_GovHydro4_tblade); - get_map.emplace("cim:GovHydro4.tg", &get_GovHydro4_tg); - get_map.emplace("cim:GovHydro4.tp", &get_GovHydro4_tp); - get_map.emplace("cim:GovHydro4.tr", &get_GovHydro4_tr); - get_map.emplace("cim:GovHydro4.tw", &get_GovHydro4_tw); - get_map.emplace("cim:GovHydro4.uc", &get_GovHydro4_uc); - get_map.emplace("cim:GovHydro4.uo", &get_GovHydro4_uo); + get_map.emplace("GovHydro4.at", &get_GovHydro4_at); + get_map.emplace("GovHydro4.bgv0", &get_GovHydro4_bgv0); + get_map.emplace("GovHydro4.bgv1", &get_GovHydro4_bgv1); + get_map.emplace("GovHydro4.bgv2", &get_GovHydro4_bgv2); + get_map.emplace("GovHydro4.bgv3", &get_GovHydro4_bgv3); + get_map.emplace("GovHydro4.bgv4", &get_GovHydro4_bgv4); + get_map.emplace("GovHydro4.bgv5", &get_GovHydro4_bgv5); + get_map.emplace("GovHydro4.bmax", &get_GovHydro4_bmax); + get_map.emplace("GovHydro4.db1", &get_GovHydro4_db1); + get_map.emplace("GovHydro4.db2", &get_GovHydro4_db2); + get_map.emplace("GovHydro4.dturb", &get_GovHydro4_dturb); + get_map.emplace("GovHydro4.eps", &get_GovHydro4_eps); + get_map.emplace("GovHydro4.gmax", &get_GovHydro4_gmax); + get_map.emplace("GovHydro4.gmin", &get_GovHydro4_gmin); + get_map.emplace("GovHydro4.gv0", &get_GovHydro4_gv0); + get_map.emplace("GovHydro4.gv1", &get_GovHydro4_gv1); + get_map.emplace("GovHydro4.gv2", &get_GovHydro4_gv2); + get_map.emplace("GovHydro4.gv3", &get_GovHydro4_gv3); + get_map.emplace("GovHydro4.gv4", &get_GovHydro4_gv4); + get_map.emplace("GovHydro4.gv5", &get_GovHydro4_gv5); + get_map.emplace("GovHydro4.hdam", &get_GovHydro4_hdam); + get_map.emplace("GovHydro4.mwbase", &get_GovHydro4_mwbase); + get_map.emplace("GovHydro4.pgv0", &get_GovHydro4_pgv0); + get_map.emplace("GovHydro4.pgv1", &get_GovHydro4_pgv1); + get_map.emplace("GovHydro4.pgv2", &get_GovHydro4_pgv2); + get_map.emplace("GovHydro4.pgv3", &get_GovHydro4_pgv3); + get_map.emplace("GovHydro4.pgv4", &get_GovHydro4_pgv4); + get_map.emplace("GovHydro4.pgv5", &get_GovHydro4_pgv5); + get_map.emplace("GovHydro4.qn1", &get_GovHydro4_qn1); + get_map.emplace("GovHydro4.rperm", &get_GovHydro4_rperm); + get_map.emplace("GovHydro4.rtemp", &get_GovHydro4_rtemp); + get_map.emplace("GovHydro4.tblade", &get_GovHydro4_tblade); + get_map.emplace("GovHydro4.tg", &get_GovHydro4_tg); + get_map.emplace("GovHydro4.tp", &get_GovHydro4_tp); + get_map.emplace("GovHydro4.tr", &get_GovHydro4_tr); + get_map.emplace("GovHydro4.tw", &get_GovHydro4_tw); + get_map.emplace("GovHydro4.uc", &get_GovHydro4_uc); + get_map.emplace("GovHydro4.uo", &get_GovHydro4_uo); } void GovHydro4::addClassGetFnsToMap(std::map& get_map) const @@ -1288,11 +1320,25 @@ void GovHydro4::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro4::declare() { return BaseClassDefiner(GovHydro4::addConstructToMap, GovHydro4::addPrimitiveAssignFnsToMap, GovHydro4::addClassAssignFnsToMap, GovHydro4::debugName); } +std::map GovHydro4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro4_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydro4.hpp b/CGMES_2.4.15_16FEB2016/GovHydro4.hpp index f5165645e..42ec8a76a 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydro4.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydro4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -146,8 +147,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -155,7 +163,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro4_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroDD.cpp b/CGMES_2.4.15_16FEB2016/GovHydroDD.cpp index c7efe476c..765ab78e4 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroDD.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroDD.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroDD(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroDD.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroDD::GovHydroDD() {} GovHydroDD::~GovHydroDD() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroDD.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.k1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.k2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.r", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.td", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tf", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroDD::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroDD::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroDD::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroDD::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroDD::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroDD::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroDD::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroDD::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroDD::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroDD_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovHydroDD::debugString() const void GovHydroDD::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroDD", &GovHydroDD_factory); + factory_map.emplace("GovHydroDD", &GovHydroDD_factory); } void GovHydroDD::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroDD.aturb", &assign_GovHydroDD_aturb); - assign_map.emplace("cim:GovHydroDD.bturb", &assign_GovHydroDD_bturb); - assign_map.emplace("cim:GovHydroDD.db1", &assign_GovHydroDD_db1); - assign_map.emplace("cim:GovHydroDD.db2", &assign_GovHydroDD_db2); - assign_map.emplace("cim:GovHydroDD.eps", &assign_GovHydroDD_eps); - assign_map.emplace("cim:GovHydroDD.gmax", &assign_GovHydroDD_gmax); - assign_map.emplace("cim:GovHydroDD.gmin", &assign_GovHydroDD_gmin); - assign_map.emplace("cim:GovHydroDD.gv1", &assign_GovHydroDD_gv1); - assign_map.emplace("cim:GovHydroDD.gv2", &assign_GovHydroDD_gv2); - assign_map.emplace("cim:GovHydroDD.gv3", &assign_GovHydroDD_gv3); - assign_map.emplace("cim:GovHydroDD.gv4", &assign_GovHydroDD_gv4); - assign_map.emplace("cim:GovHydroDD.gv5", &assign_GovHydroDD_gv5); - assign_map.emplace("cim:GovHydroDD.gv6", &assign_GovHydroDD_gv6); - assign_map.emplace("cim:GovHydroDD.inputSignal", &assign_GovHydroDD_inputSignal); - assign_map.emplace("cim:GovHydroDD.k1", &assign_GovHydroDD_k1); - assign_map.emplace("cim:GovHydroDD.k2", &assign_GovHydroDD_k2); - assign_map.emplace("cim:GovHydroDD.kg", &assign_GovHydroDD_kg); - assign_map.emplace("cim:GovHydroDD.ki", &assign_GovHydroDD_ki); - assign_map.emplace("cim:GovHydroDD.mwbase", &assign_GovHydroDD_mwbase); - assign_map.emplace("cim:GovHydroDD.pgv1", &assign_GovHydroDD_pgv1); - assign_map.emplace("cim:GovHydroDD.pgv2", &assign_GovHydroDD_pgv2); - assign_map.emplace("cim:GovHydroDD.pgv3", &assign_GovHydroDD_pgv3); - assign_map.emplace("cim:GovHydroDD.pgv4", &assign_GovHydroDD_pgv4); - assign_map.emplace("cim:GovHydroDD.pgv5", &assign_GovHydroDD_pgv5); - assign_map.emplace("cim:GovHydroDD.pgv6", &assign_GovHydroDD_pgv6); - assign_map.emplace("cim:GovHydroDD.pmax", &assign_GovHydroDD_pmax); - assign_map.emplace("cim:GovHydroDD.pmin", &assign_GovHydroDD_pmin); - assign_map.emplace("cim:GovHydroDD.r", &assign_GovHydroDD_r); - assign_map.emplace("cim:GovHydroDD.td", &assign_GovHydroDD_td); - assign_map.emplace("cim:GovHydroDD.tf", &assign_GovHydroDD_tf); - assign_map.emplace("cim:GovHydroDD.tp", &assign_GovHydroDD_tp); - assign_map.emplace("cim:GovHydroDD.tt", &assign_GovHydroDD_tt); - assign_map.emplace("cim:GovHydroDD.tturb", &assign_GovHydroDD_tturb); - assign_map.emplace("cim:GovHydroDD.velcl", &assign_GovHydroDD_velcl); - assign_map.emplace("cim:GovHydroDD.velop", &assign_GovHydroDD_velop); + assign_map.emplace("GovHydroDD.aturb", &assign_GovHydroDD_aturb); + assign_map.emplace("GovHydroDD.bturb", &assign_GovHydroDD_bturb); + assign_map.emplace("GovHydroDD.db1", &assign_GovHydroDD_db1); + assign_map.emplace("GovHydroDD.db2", &assign_GovHydroDD_db2); + assign_map.emplace("GovHydroDD.eps", &assign_GovHydroDD_eps); + assign_map.emplace("GovHydroDD.gmax", &assign_GovHydroDD_gmax); + assign_map.emplace("GovHydroDD.gmin", &assign_GovHydroDD_gmin); + assign_map.emplace("GovHydroDD.gv1", &assign_GovHydroDD_gv1); + assign_map.emplace("GovHydroDD.gv2", &assign_GovHydroDD_gv2); + assign_map.emplace("GovHydroDD.gv3", &assign_GovHydroDD_gv3); + assign_map.emplace("GovHydroDD.gv4", &assign_GovHydroDD_gv4); + assign_map.emplace("GovHydroDD.gv5", &assign_GovHydroDD_gv5); + assign_map.emplace("GovHydroDD.gv6", &assign_GovHydroDD_gv6); + assign_map.emplace("GovHydroDD.inputSignal", &assign_GovHydroDD_inputSignal); + assign_map.emplace("GovHydroDD.k1", &assign_GovHydroDD_k1); + assign_map.emplace("GovHydroDD.k2", &assign_GovHydroDD_k2); + assign_map.emplace("GovHydroDD.kg", &assign_GovHydroDD_kg); + assign_map.emplace("GovHydroDD.ki", &assign_GovHydroDD_ki); + assign_map.emplace("GovHydroDD.mwbase", &assign_GovHydroDD_mwbase); + assign_map.emplace("GovHydroDD.pgv1", &assign_GovHydroDD_pgv1); + assign_map.emplace("GovHydroDD.pgv2", &assign_GovHydroDD_pgv2); + assign_map.emplace("GovHydroDD.pgv3", &assign_GovHydroDD_pgv3); + assign_map.emplace("GovHydroDD.pgv4", &assign_GovHydroDD_pgv4); + assign_map.emplace("GovHydroDD.pgv5", &assign_GovHydroDD_pgv5); + assign_map.emplace("GovHydroDD.pgv6", &assign_GovHydroDD_pgv6); + assign_map.emplace("GovHydroDD.pmax", &assign_GovHydroDD_pmax); + assign_map.emplace("GovHydroDD.pmin", &assign_GovHydroDD_pmin); + assign_map.emplace("GovHydroDD.r", &assign_GovHydroDD_r); + assign_map.emplace("GovHydroDD.td", &assign_GovHydroDD_td); + assign_map.emplace("GovHydroDD.tf", &assign_GovHydroDD_tf); + assign_map.emplace("GovHydroDD.tp", &assign_GovHydroDD_tp); + assign_map.emplace("GovHydroDD.tt", &assign_GovHydroDD_tt); + assign_map.emplace("GovHydroDD.tturb", &assign_GovHydroDD_tturb); + assign_map.emplace("GovHydroDD.velcl", &assign_GovHydroDD_velcl); + assign_map.emplace("GovHydroDD.velop", &assign_GovHydroDD_velop); } void GovHydroDD::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,41 +1177,41 @@ void GovHydroDD::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroDD.aturb", &get_GovHydroDD_aturb); - get_map.emplace("cim:GovHydroDD.bturb", &get_GovHydroDD_bturb); - get_map.emplace("cim:GovHydroDD.db1", &get_GovHydroDD_db1); - get_map.emplace("cim:GovHydroDD.db2", &get_GovHydroDD_db2); - get_map.emplace("cim:GovHydroDD.eps", &get_GovHydroDD_eps); - get_map.emplace("cim:GovHydroDD.gmax", &get_GovHydroDD_gmax); - get_map.emplace("cim:GovHydroDD.gmin", &get_GovHydroDD_gmin); - get_map.emplace("cim:GovHydroDD.gv1", &get_GovHydroDD_gv1); - get_map.emplace("cim:GovHydroDD.gv2", &get_GovHydroDD_gv2); - get_map.emplace("cim:GovHydroDD.gv3", &get_GovHydroDD_gv3); - get_map.emplace("cim:GovHydroDD.gv4", &get_GovHydroDD_gv4); - get_map.emplace("cim:GovHydroDD.gv5", &get_GovHydroDD_gv5); - get_map.emplace("cim:GovHydroDD.gv6", &get_GovHydroDD_gv6); - get_map.emplace("cim:GovHydroDD.inputSignal", &get_GovHydroDD_inputSignal); - get_map.emplace("cim:GovHydroDD.k1", &get_GovHydroDD_k1); - get_map.emplace("cim:GovHydroDD.k2", &get_GovHydroDD_k2); - get_map.emplace("cim:GovHydroDD.kg", &get_GovHydroDD_kg); - get_map.emplace("cim:GovHydroDD.ki", &get_GovHydroDD_ki); - get_map.emplace("cim:GovHydroDD.mwbase", &get_GovHydroDD_mwbase); - get_map.emplace("cim:GovHydroDD.pgv1", &get_GovHydroDD_pgv1); - get_map.emplace("cim:GovHydroDD.pgv2", &get_GovHydroDD_pgv2); - get_map.emplace("cim:GovHydroDD.pgv3", &get_GovHydroDD_pgv3); - get_map.emplace("cim:GovHydroDD.pgv4", &get_GovHydroDD_pgv4); - get_map.emplace("cim:GovHydroDD.pgv5", &get_GovHydroDD_pgv5); - get_map.emplace("cim:GovHydroDD.pgv6", &get_GovHydroDD_pgv6); - get_map.emplace("cim:GovHydroDD.pmax", &get_GovHydroDD_pmax); - get_map.emplace("cim:GovHydroDD.pmin", &get_GovHydroDD_pmin); - get_map.emplace("cim:GovHydroDD.r", &get_GovHydroDD_r); - get_map.emplace("cim:GovHydroDD.td", &get_GovHydroDD_td); - get_map.emplace("cim:GovHydroDD.tf", &get_GovHydroDD_tf); - get_map.emplace("cim:GovHydroDD.tp", &get_GovHydroDD_tp); - get_map.emplace("cim:GovHydroDD.tt", &get_GovHydroDD_tt); - get_map.emplace("cim:GovHydroDD.tturb", &get_GovHydroDD_tturb); - get_map.emplace("cim:GovHydroDD.velcl", &get_GovHydroDD_velcl); - get_map.emplace("cim:GovHydroDD.velop", &get_GovHydroDD_velop); + get_map.emplace("GovHydroDD.aturb", &get_GovHydroDD_aturb); + get_map.emplace("GovHydroDD.bturb", &get_GovHydroDD_bturb); + get_map.emplace("GovHydroDD.db1", &get_GovHydroDD_db1); + get_map.emplace("GovHydroDD.db2", &get_GovHydroDD_db2); + get_map.emplace("GovHydroDD.eps", &get_GovHydroDD_eps); + get_map.emplace("GovHydroDD.gmax", &get_GovHydroDD_gmax); + get_map.emplace("GovHydroDD.gmin", &get_GovHydroDD_gmin); + get_map.emplace("GovHydroDD.gv1", &get_GovHydroDD_gv1); + get_map.emplace("GovHydroDD.gv2", &get_GovHydroDD_gv2); + get_map.emplace("GovHydroDD.gv3", &get_GovHydroDD_gv3); + get_map.emplace("GovHydroDD.gv4", &get_GovHydroDD_gv4); + get_map.emplace("GovHydroDD.gv5", &get_GovHydroDD_gv5); + get_map.emplace("GovHydroDD.gv6", &get_GovHydroDD_gv6); + get_map.emplace("GovHydroDD.inputSignal", &get_GovHydroDD_inputSignal); + get_map.emplace("GovHydroDD.k1", &get_GovHydroDD_k1); + get_map.emplace("GovHydroDD.k2", &get_GovHydroDD_k2); + get_map.emplace("GovHydroDD.kg", &get_GovHydroDD_kg); + get_map.emplace("GovHydroDD.ki", &get_GovHydroDD_ki); + get_map.emplace("GovHydroDD.mwbase", &get_GovHydroDD_mwbase); + get_map.emplace("GovHydroDD.pgv1", &get_GovHydroDD_pgv1); + get_map.emplace("GovHydroDD.pgv2", &get_GovHydroDD_pgv2); + get_map.emplace("GovHydroDD.pgv3", &get_GovHydroDD_pgv3); + get_map.emplace("GovHydroDD.pgv4", &get_GovHydroDD_pgv4); + get_map.emplace("GovHydroDD.pgv5", &get_GovHydroDD_pgv5); + get_map.emplace("GovHydroDD.pgv6", &get_GovHydroDD_pgv6); + get_map.emplace("GovHydroDD.pmax", &get_GovHydroDD_pmax); + get_map.emplace("GovHydroDD.pmin", &get_GovHydroDD_pmin); + get_map.emplace("GovHydroDD.r", &get_GovHydroDD_r); + get_map.emplace("GovHydroDD.td", &get_GovHydroDD_td); + get_map.emplace("GovHydroDD.tf", &get_GovHydroDD_tf); + get_map.emplace("GovHydroDD.tp", &get_GovHydroDD_tp); + get_map.emplace("GovHydroDD.tt", &get_GovHydroDD_tt); + get_map.emplace("GovHydroDD.tturb", &get_GovHydroDD_tturb); + get_map.emplace("GovHydroDD.velcl", &get_GovHydroDD_velcl); + get_map.emplace("GovHydroDD.velop", &get_GovHydroDD_velop); } void GovHydroDD::addClassGetFnsToMap(std::map& get_map) const @@ -1192,11 +1224,25 @@ void GovHydroDD::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroDD::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroDD" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroDD::declare() { return BaseClassDefiner(GovHydroDD::addConstructToMap, GovHydroDD::addPrimitiveAssignFnsToMap, GovHydroDD::addClassAssignFnsToMap, GovHydroDD::debugName); } +std::map GovHydroDD::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroDD_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroDD.hpp b/CGMES_2.4.15_16FEB2016/GovHydroDD.hpp index cca2ca2c0..f6430b09b 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroDD.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroDD.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroDD_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroFrancis.cpp b/CGMES_2.4.15_16FEB2016/GovHydroFrancis.cpp index 92cca504b..88a2c3c72 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroFrancis.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroFrancis.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroFrancis(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroFrancis.am", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.av0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.av1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.etamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.governorControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.h1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.h2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.hn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.qc0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.qn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.twnc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.twng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.tx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.va", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.valvmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.valvmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.vc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.waterTunnelSurgeChamberSimulation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.zsfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroFrancis::GovHydroFrancis() {} GovHydroFrancis::~GovHydroFrancis() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroFrancis.am", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.av0", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.av1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.bp", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.etamax", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.governorControl", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.h1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.h2", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.hn", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kt", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.qc0", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.qn", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.td", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.ts", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.twnc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.twng", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.tx", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.va", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.valvmax", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.valvmin", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.vc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.zsfc", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroFrancis::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroFrancis::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroFrancis::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroFrancis::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroFrancis::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroFrancis::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroFrancis::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroFrancis::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroFrancis::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroFrancis_am(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* GovHydroFrancis::debugString() const void GovHydroFrancis::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroFrancis", &GovHydroFrancis_factory); + factory_map.emplace("GovHydroFrancis", &GovHydroFrancis_factory); } void GovHydroFrancis::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroFrancis.am", &assign_GovHydroFrancis_am); - assign_map.emplace("cim:GovHydroFrancis.av0", &assign_GovHydroFrancis_av0); - assign_map.emplace("cim:GovHydroFrancis.av1", &assign_GovHydroFrancis_av1); - assign_map.emplace("cim:GovHydroFrancis.bp", &assign_GovHydroFrancis_bp); - assign_map.emplace("cim:GovHydroFrancis.db1", &assign_GovHydroFrancis_db1); - assign_map.emplace("cim:GovHydroFrancis.etamax", &assign_GovHydroFrancis_etamax); - assign_map.emplace("cim:GovHydroFrancis.governorControl", &assign_GovHydroFrancis_governorControl); - assign_map.emplace("cim:GovHydroFrancis.h1", &assign_GovHydroFrancis_h1); - assign_map.emplace("cim:GovHydroFrancis.h2", &assign_GovHydroFrancis_h2); - assign_map.emplace("cim:GovHydroFrancis.hn", &assign_GovHydroFrancis_hn); - assign_map.emplace("cim:GovHydroFrancis.kc", &assign_GovHydroFrancis_kc); - assign_map.emplace("cim:GovHydroFrancis.kg", &assign_GovHydroFrancis_kg); - assign_map.emplace("cim:GovHydroFrancis.kt", &assign_GovHydroFrancis_kt); - assign_map.emplace("cim:GovHydroFrancis.qc0", &assign_GovHydroFrancis_qc0); - assign_map.emplace("cim:GovHydroFrancis.qn", &assign_GovHydroFrancis_qn); - assign_map.emplace("cim:GovHydroFrancis.ta", &assign_GovHydroFrancis_ta); - assign_map.emplace("cim:GovHydroFrancis.td", &assign_GovHydroFrancis_td); - assign_map.emplace("cim:GovHydroFrancis.ts", &assign_GovHydroFrancis_ts); - assign_map.emplace("cim:GovHydroFrancis.twnc", &assign_GovHydroFrancis_twnc); - assign_map.emplace("cim:GovHydroFrancis.twng", &assign_GovHydroFrancis_twng); - assign_map.emplace("cim:GovHydroFrancis.tx", &assign_GovHydroFrancis_tx); - assign_map.emplace("cim:GovHydroFrancis.va", &assign_GovHydroFrancis_va); - assign_map.emplace("cim:GovHydroFrancis.valvmax", &assign_GovHydroFrancis_valvmax); - assign_map.emplace("cim:GovHydroFrancis.valvmin", &assign_GovHydroFrancis_valvmin); - assign_map.emplace("cim:GovHydroFrancis.vc", &assign_GovHydroFrancis_vc); - assign_map.emplace("cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", &assign_GovHydroFrancis_waterTunnelSurgeChamberSimulation); - assign_map.emplace("cim:GovHydroFrancis.zsfc", &assign_GovHydroFrancis_zsfc); + assign_map.emplace("GovHydroFrancis.am", &assign_GovHydroFrancis_am); + assign_map.emplace("GovHydroFrancis.av0", &assign_GovHydroFrancis_av0); + assign_map.emplace("GovHydroFrancis.av1", &assign_GovHydroFrancis_av1); + assign_map.emplace("GovHydroFrancis.bp", &assign_GovHydroFrancis_bp); + assign_map.emplace("GovHydroFrancis.db1", &assign_GovHydroFrancis_db1); + assign_map.emplace("GovHydroFrancis.etamax", &assign_GovHydroFrancis_etamax); + assign_map.emplace("GovHydroFrancis.governorControl", &assign_GovHydroFrancis_governorControl); + assign_map.emplace("GovHydroFrancis.h1", &assign_GovHydroFrancis_h1); + assign_map.emplace("GovHydroFrancis.h2", &assign_GovHydroFrancis_h2); + assign_map.emplace("GovHydroFrancis.hn", &assign_GovHydroFrancis_hn); + assign_map.emplace("GovHydroFrancis.kc", &assign_GovHydroFrancis_kc); + assign_map.emplace("GovHydroFrancis.kg", &assign_GovHydroFrancis_kg); + assign_map.emplace("GovHydroFrancis.kt", &assign_GovHydroFrancis_kt); + assign_map.emplace("GovHydroFrancis.qc0", &assign_GovHydroFrancis_qc0); + assign_map.emplace("GovHydroFrancis.qn", &assign_GovHydroFrancis_qn); + assign_map.emplace("GovHydroFrancis.ta", &assign_GovHydroFrancis_ta); + assign_map.emplace("GovHydroFrancis.td", &assign_GovHydroFrancis_td); + assign_map.emplace("GovHydroFrancis.ts", &assign_GovHydroFrancis_ts); + assign_map.emplace("GovHydroFrancis.twnc", &assign_GovHydroFrancis_twnc); + assign_map.emplace("GovHydroFrancis.twng", &assign_GovHydroFrancis_twng); + assign_map.emplace("GovHydroFrancis.tx", &assign_GovHydroFrancis_tx); + assign_map.emplace("GovHydroFrancis.va", &assign_GovHydroFrancis_va); + assign_map.emplace("GovHydroFrancis.valvmax", &assign_GovHydroFrancis_valvmax); + assign_map.emplace("GovHydroFrancis.valvmin", &assign_GovHydroFrancis_valvmin); + assign_map.emplace("GovHydroFrancis.vc", &assign_GovHydroFrancis_vc); + assign_map.emplace("GovHydroFrancis.waterTunnelSurgeChamberSimulation", &assign_GovHydroFrancis_waterTunnelSurgeChamberSimulation); + assign_map.emplace("GovHydroFrancis.zsfc", &assign_GovHydroFrancis_zsfc); } void GovHydroFrancis::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,32 +929,32 @@ void GovHydroFrancis::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroFrancis.am", &get_GovHydroFrancis_am); - get_map.emplace("cim:GovHydroFrancis.av0", &get_GovHydroFrancis_av0); - get_map.emplace("cim:GovHydroFrancis.av1", &get_GovHydroFrancis_av1); - get_map.emplace("cim:GovHydroFrancis.bp", &get_GovHydroFrancis_bp); - get_map.emplace("cim:GovHydroFrancis.db1", &get_GovHydroFrancis_db1); - get_map.emplace("cim:GovHydroFrancis.etamax", &get_GovHydroFrancis_etamax); - get_map.emplace("cim:GovHydroFrancis.h1", &get_GovHydroFrancis_h1); - get_map.emplace("cim:GovHydroFrancis.h2", &get_GovHydroFrancis_h2); - get_map.emplace("cim:GovHydroFrancis.hn", &get_GovHydroFrancis_hn); - get_map.emplace("cim:GovHydroFrancis.kc", &get_GovHydroFrancis_kc); - get_map.emplace("cim:GovHydroFrancis.kg", &get_GovHydroFrancis_kg); - get_map.emplace("cim:GovHydroFrancis.kt", &get_GovHydroFrancis_kt); - get_map.emplace("cim:GovHydroFrancis.qc0", &get_GovHydroFrancis_qc0); - get_map.emplace("cim:GovHydroFrancis.qn", &get_GovHydroFrancis_qn); - get_map.emplace("cim:GovHydroFrancis.ta", &get_GovHydroFrancis_ta); - get_map.emplace("cim:GovHydroFrancis.td", &get_GovHydroFrancis_td); - get_map.emplace("cim:GovHydroFrancis.ts", &get_GovHydroFrancis_ts); - get_map.emplace("cim:GovHydroFrancis.twnc", &get_GovHydroFrancis_twnc); - get_map.emplace("cim:GovHydroFrancis.twng", &get_GovHydroFrancis_twng); - get_map.emplace("cim:GovHydroFrancis.tx", &get_GovHydroFrancis_tx); - get_map.emplace("cim:GovHydroFrancis.va", &get_GovHydroFrancis_va); - get_map.emplace("cim:GovHydroFrancis.valvmax", &get_GovHydroFrancis_valvmax); - get_map.emplace("cim:GovHydroFrancis.valvmin", &get_GovHydroFrancis_valvmin); - get_map.emplace("cim:GovHydroFrancis.vc", &get_GovHydroFrancis_vc); - get_map.emplace("cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", &get_GovHydroFrancis_waterTunnelSurgeChamberSimulation); - get_map.emplace("cim:GovHydroFrancis.zsfc", &get_GovHydroFrancis_zsfc); + get_map.emplace("GovHydroFrancis.am", &get_GovHydroFrancis_am); + get_map.emplace("GovHydroFrancis.av0", &get_GovHydroFrancis_av0); + get_map.emplace("GovHydroFrancis.av1", &get_GovHydroFrancis_av1); + get_map.emplace("GovHydroFrancis.bp", &get_GovHydroFrancis_bp); + get_map.emplace("GovHydroFrancis.db1", &get_GovHydroFrancis_db1); + get_map.emplace("GovHydroFrancis.etamax", &get_GovHydroFrancis_etamax); + get_map.emplace("GovHydroFrancis.h1", &get_GovHydroFrancis_h1); + get_map.emplace("GovHydroFrancis.h2", &get_GovHydroFrancis_h2); + get_map.emplace("GovHydroFrancis.hn", &get_GovHydroFrancis_hn); + get_map.emplace("GovHydroFrancis.kc", &get_GovHydroFrancis_kc); + get_map.emplace("GovHydroFrancis.kg", &get_GovHydroFrancis_kg); + get_map.emplace("GovHydroFrancis.kt", &get_GovHydroFrancis_kt); + get_map.emplace("GovHydroFrancis.qc0", &get_GovHydroFrancis_qc0); + get_map.emplace("GovHydroFrancis.qn", &get_GovHydroFrancis_qn); + get_map.emplace("GovHydroFrancis.ta", &get_GovHydroFrancis_ta); + get_map.emplace("GovHydroFrancis.td", &get_GovHydroFrancis_td); + get_map.emplace("GovHydroFrancis.ts", &get_GovHydroFrancis_ts); + get_map.emplace("GovHydroFrancis.twnc", &get_GovHydroFrancis_twnc); + get_map.emplace("GovHydroFrancis.twng", &get_GovHydroFrancis_twng); + get_map.emplace("GovHydroFrancis.tx", &get_GovHydroFrancis_tx); + get_map.emplace("GovHydroFrancis.va", &get_GovHydroFrancis_va); + get_map.emplace("GovHydroFrancis.valvmax", &get_GovHydroFrancis_valvmax); + get_map.emplace("GovHydroFrancis.valvmin", &get_GovHydroFrancis_valvmin); + get_map.emplace("GovHydroFrancis.vc", &get_GovHydroFrancis_vc); + get_map.emplace("GovHydroFrancis.waterTunnelSurgeChamberSimulation", &get_GovHydroFrancis_waterTunnelSurgeChamberSimulation); + get_map.emplace("GovHydroFrancis.zsfc", &get_GovHydroFrancis_zsfc); } void GovHydroFrancis::addClassGetFnsToMap(std::map& get_map) const @@ -933,7 +965,13 @@ void GovHydroFrancis::addClassGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroFrancis.governorControl", &get_GovHydroFrancis_governorControl); + get_map.emplace("GovHydroFrancis.governorControl", &get_GovHydroFrancis_governorControl); +} + +bool GovHydroFrancis::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroFrancis" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovHydroFrancis::declare() @@ -941,6 +979,14 @@ const BaseClassDefiner GovHydroFrancis::declare() return BaseClassDefiner(GovHydroFrancis::addConstructToMap, GovHydroFrancis::addPrimitiveAssignFnsToMap, GovHydroFrancis::addClassAssignFnsToMap, GovHydroFrancis::debugName); } +std::map GovHydroFrancis::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroFrancis_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroFrancis.hpp b/CGMES_2.4.15_16FEB2016/GovHydroFrancis.hpp index a69654b37..172b7074c 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroFrancis.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroFrancis.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Area.hpp" #include "Boolean.hpp" #include "FrancisGovernorControlKind.hpp" @@ -117,8 +118,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -126,7 +134,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroFrancis_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroIEEE0.cpp b/CGMES_2.4.15_16FEB2016/GovHydroIEEE0.cpp index 7038d0233..193ee5e58 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroIEEE0.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroIEEE0.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroIEEE0(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroIEEE0.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroIEEE0::GovHydroIEEE0() {} GovHydroIEEE0::~GovHydroIEEE0() {} -static const std::list PossibleProfilesForClass = +const std::list& GovHydroIEEE0::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovHydroIEEE0::getClassNamespaceUrl() const { - { "cim:GovHydroIEEE0.k", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t4", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovHydroIEEE0::getPossibleProfilesForClass() const +const std::string& GovHydroIEEE0::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovHydroIEEE0::getPossibleProfilesForAttributes() const +const std::list& GovHydroIEEE0::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroIEEE0::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroIEEE0::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroIEEE0::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroIEEE0_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovHydroIEEE0::debugString() const void GovHydroIEEE0::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroIEEE0", &GovHydroIEEE0_factory); + factory_map.emplace("GovHydroIEEE0", &GovHydroIEEE0_factory); } void GovHydroIEEE0::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroIEEE0.k", &assign_GovHydroIEEE0_k); - assign_map.emplace("cim:GovHydroIEEE0.mwbase", &assign_GovHydroIEEE0_mwbase); - assign_map.emplace("cim:GovHydroIEEE0.pmax", &assign_GovHydroIEEE0_pmax); - assign_map.emplace("cim:GovHydroIEEE0.pmin", &assign_GovHydroIEEE0_pmin); - assign_map.emplace("cim:GovHydroIEEE0.t1", &assign_GovHydroIEEE0_t1); - assign_map.emplace("cim:GovHydroIEEE0.t2", &assign_GovHydroIEEE0_t2); - assign_map.emplace("cim:GovHydroIEEE0.t3", &assign_GovHydroIEEE0_t3); - assign_map.emplace("cim:GovHydroIEEE0.t4", &assign_GovHydroIEEE0_t4); + assign_map.emplace("GovHydroIEEE0.k", &assign_GovHydroIEEE0_k); + assign_map.emplace("GovHydroIEEE0.mwbase", &assign_GovHydroIEEE0_mwbase); + assign_map.emplace("GovHydroIEEE0.pmax", &assign_GovHydroIEEE0_pmax); + assign_map.emplace("GovHydroIEEE0.pmin", &assign_GovHydroIEEE0_pmin); + assign_map.emplace("GovHydroIEEE0.t1", &assign_GovHydroIEEE0_t1); + assign_map.emplace("GovHydroIEEE0.t2", &assign_GovHydroIEEE0_t2); + assign_map.emplace("GovHydroIEEE0.t3", &assign_GovHydroIEEE0_t3); + assign_map.emplace("GovHydroIEEE0.t4", &assign_GovHydroIEEE0_t4); } void GovHydroIEEE0::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovHydroIEEE0::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroIEEE0.k", &get_GovHydroIEEE0_k); - get_map.emplace("cim:GovHydroIEEE0.mwbase", &get_GovHydroIEEE0_mwbase); - get_map.emplace("cim:GovHydroIEEE0.pmax", &get_GovHydroIEEE0_pmax); - get_map.emplace("cim:GovHydroIEEE0.pmin", &get_GovHydroIEEE0_pmin); - get_map.emplace("cim:GovHydroIEEE0.t1", &get_GovHydroIEEE0_t1); - get_map.emplace("cim:GovHydroIEEE0.t2", &get_GovHydroIEEE0_t2); - get_map.emplace("cim:GovHydroIEEE0.t3", &get_GovHydroIEEE0_t3); - get_map.emplace("cim:GovHydroIEEE0.t4", &get_GovHydroIEEE0_t4); + get_map.emplace("GovHydroIEEE0.k", &get_GovHydroIEEE0_k); + get_map.emplace("GovHydroIEEE0.mwbase", &get_GovHydroIEEE0_mwbase); + get_map.emplace("GovHydroIEEE0.pmax", &get_GovHydroIEEE0_pmax); + get_map.emplace("GovHydroIEEE0.pmin", &get_GovHydroIEEE0_pmin); + get_map.emplace("GovHydroIEEE0.t1", &get_GovHydroIEEE0_t1); + get_map.emplace("GovHydroIEEE0.t2", &get_GovHydroIEEE0_t2); + get_map.emplace("GovHydroIEEE0.t3", &get_GovHydroIEEE0_t3); + get_map.emplace("GovHydroIEEE0.t4", &get_GovHydroIEEE0_t4); } void GovHydroIEEE0::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovHydroIEEE0::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroIEEE0::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroIEEE0" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroIEEE0::declare() { return BaseClassDefiner(GovHydroIEEE0::addConstructToMap, GovHydroIEEE0::addPrimitiveAssignFnsToMap, GovHydroIEEE0::addClassAssignFnsToMap, GovHydroIEEE0::debugName); } +std::map GovHydroIEEE0::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroIEEE0_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroIEEE0.hpp b/CGMES_2.4.15_16FEB2016/GovHydroIEEE0.hpp index 715982cd2..b2c0448f3 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroIEEE0.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroIEEE0.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroIEEE0_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroIEEE2.cpp b/CGMES_2.4.15_16FEB2016/GovHydroIEEE2.cpp index abbf5cf5e..1929d73d1 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroIEEE2.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroIEEE2.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroIEEE2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroIEEE2.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroIEEE2::GovHydroIEEE2() {} GovHydroIEEE2::~GovHydroIEEE2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroIEEE2.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.kturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tg", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tr", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.uc", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroIEEE2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroIEEE2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroIEEE2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroIEEE2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroIEEE2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroIEEE2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroIEEE2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroIEEE2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroIEEE2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroIEEE2_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* GovHydroIEEE2::debugString() const void GovHydroIEEE2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroIEEE2", &GovHydroIEEE2_factory); + factory_map.emplace("GovHydroIEEE2", &GovHydroIEEE2_factory); } void GovHydroIEEE2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroIEEE2.aturb", &assign_GovHydroIEEE2_aturb); - assign_map.emplace("cim:GovHydroIEEE2.bturb", &assign_GovHydroIEEE2_bturb); - assign_map.emplace("cim:GovHydroIEEE2.gv1", &assign_GovHydroIEEE2_gv1); - assign_map.emplace("cim:GovHydroIEEE2.gv2", &assign_GovHydroIEEE2_gv2); - assign_map.emplace("cim:GovHydroIEEE2.gv3", &assign_GovHydroIEEE2_gv3); - assign_map.emplace("cim:GovHydroIEEE2.gv4", &assign_GovHydroIEEE2_gv4); - assign_map.emplace("cim:GovHydroIEEE2.gv5", &assign_GovHydroIEEE2_gv5); - assign_map.emplace("cim:GovHydroIEEE2.gv6", &assign_GovHydroIEEE2_gv6); - assign_map.emplace("cim:GovHydroIEEE2.kturb", &assign_GovHydroIEEE2_kturb); - assign_map.emplace("cim:GovHydroIEEE2.mwbase", &assign_GovHydroIEEE2_mwbase); - assign_map.emplace("cim:GovHydroIEEE2.pgv1", &assign_GovHydroIEEE2_pgv1); - assign_map.emplace("cim:GovHydroIEEE2.pgv2", &assign_GovHydroIEEE2_pgv2); - assign_map.emplace("cim:GovHydroIEEE2.pgv3", &assign_GovHydroIEEE2_pgv3); - assign_map.emplace("cim:GovHydroIEEE2.pgv4", &assign_GovHydroIEEE2_pgv4); - assign_map.emplace("cim:GovHydroIEEE2.pgv5", &assign_GovHydroIEEE2_pgv5); - assign_map.emplace("cim:GovHydroIEEE2.pgv6", &assign_GovHydroIEEE2_pgv6); - assign_map.emplace("cim:GovHydroIEEE2.pmax", &assign_GovHydroIEEE2_pmax); - assign_map.emplace("cim:GovHydroIEEE2.pmin", &assign_GovHydroIEEE2_pmin); - assign_map.emplace("cim:GovHydroIEEE2.rperm", &assign_GovHydroIEEE2_rperm); - assign_map.emplace("cim:GovHydroIEEE2.rtemp", &assign_GovHydroIEEE2_rtemp); - assign_map.emplace("cim:GovHydroIEEE2.tg", &assign_GovHydroIEEE2_tg); - assign_map.emplace("cim:GovHydroIEEE2.tp", &assign_GovHydroIEEE2_tp); - assign_map.emplace("cim:GovHydroIEEE2.tr", &assign_GovHydroIEEE2_tr); - assign_map.emplace("cim:GovHydroIEEE2.tw", &assign_GovHydroIEEE2_tw); - assign_map.emplace("cim:GovHydroIEEE2.uc", &assign_GovHydroIEEE2_uc); - assign_map.emplace("cim:GovHydroIEEE2.uo", &assign_GovHydroIEEE2_uo); + assign_map.emplace("GovHydroIEEE2.aturb", &assign_GovHydroIEEE2_aturb); + assign_map.emplace("GovHydroIEEE2.bturb", &assign_GovHydroIEEE2_bturb); + assign_map.emplace("GovHydroIEEE2.gv1", &assign_GovHydroIEEE2_gv1); + assign_map.emplace("GovHydroIEEE2.gv2", &assign_GovHydroIEEE2_gv2); + assign_map.emplace("GovHydroIEEE2.gv3", &assign_GovHydroIEEE2_gv3); + assign_map.emplace("GovHydroIEEE2.gv4", &assign_GovHydroIEEE2_gv4); + assign_map.emplace("GovHydroIEEE2.gv5", &assign_GovHydroIEEE2_gv5); + assign_map.emplace("GovHydroIEEE2.gv6", &assign_GovHydroIEEE2_gv6); + assign_map.emplace("GovHydroIEEE2.kturb", &assign_GovHydroIEEE2_kturb); + assign_map.emplace("GovHydroIEEE2.mwbase", &assign_GovHydroIEEE2_mwbase); + assign_map.emplace("GovHydroIEEE2.pgv1", &assign_GovHydroIEEE2_pgv1); + assign_map.emplace("GovHydroIEEE2.pgv2", &assign_GovHydroIEEE2_pgv2); + assign_map.emplace("GovHydroIEEE2.pgv3", &assign_GovHydroIEEE2_pgv3); + assign_map.emplace("GovHydroIEEE2.pgv4", &assign_GovHydroIEEE2_pgv4); + assign_map.emplace("GovHydroIEEE2.pgv5", &assign_GovHydroIEEE2_pgv5); + assign_map.emplace("GovHydroIEEE2.pgv6", &assign_GovHydroIEEE2_pgv6); + assign_map.emplace("GovHydroIEEE2.pmax", &assign_GovHydroIEEE2_pmax); + assign_map.emplace("GovHydroIEEE2.pmin", &assign_GovHydroIEEE2_pmin); + assign_map.emplace("GovHydroIEEE2.rperm", &assign_GovHydroIEEE2_rperm); + assign_map.emplace("GovHydroIEEE2.rtemp", &assign_GovHydroIEEE2_rtemp); + assign_map.emplace("GovHydroIEEE2.tg", &assign_GovHydroIEEE2_tg); + assign_map.emplace("GovHydroIEEE2.tp", &assign_GovHydroIEEE2_tp); + assign_map.emplace("GovHydroIEEE2.tr", &assign_GovHydroIEEE2_tr); + assign_map.emplace("GovHydroIEEE2.tw", &assign_GovHydroIEEE2_tw); + assign_map.emplace("GovHydroIEEE2.uc", &assign_GovHydroIEEE2_uc); + assign_map.emplace("GovHydroIEEE2.uo", &assign_GovHydroIEEE2_uo); } void GovHydroIEEE2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void GovHydroIEEE2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroIEEE2.aturb", &get_GovHydroIEEE2_aturb); - get_map.emplace("cim:GovHydroIEEE2.bturb", &get_GovHydroIEEE2_bturb); - get_map.emplace("cim:GovHydroIEEE2.gv1", &get_GovHydroIEEE2_gv1); - get_map.emplace("cim:GovHydroIEEE2.gv2", &get_GovHydroIEEE2_gv2); - get_map.emplace("cim:GovHydroIEEE2.gv3", &get_GovHydroIEEE2_gv3); - get_map.emplace("cim:GovHydroIEEE2.gv4", &get_GovHydroIEEE2_gv4); - get_map.emplace("cim:GovHydroIEEE2.gv5", &get_GovHydroIEEE2_gv5); - get_map.emplace("cim:GovHydroIEEE2.gv6", &get_GovHydroIEEE2_gv6); - get_map.emplace("cim:GovHydroIEEE2.kturb", &get_GovHydroIEEE2_kturb); - get_map.emplace("cim:GovHydroIEEE2.mwbase", &get_GovHydroIEEE2_mwbase); - get_map.emplace("cim:GovHydroIEEE2.pgv1", &get_GovHydroIEEE2_pgv1); - get_map.emplace("cim:GovHydroIEEE2.pgv2", &get_GovHydroIEEE2_pgv2); - get_map.emplace("cim:GovHydroIEEE2.pgv3", &get_GovHydroIEEE2_pgv3); - get_map.emplace("cim:GovHydroIEEE2.pgv4", &get_GovHydroIEEE2_pgv4); - get_map.emplace("cim:GovHydroIEEE2.pgv5", &get_GovHydroIEEE2_pgv5); - get_map.emplace("cim:GovHydroIEEE2.pgv6", &get_GovHydroIEEE2_pgv6); - get_map.emplace("cim:GovHydroIEEE2.pmax", &get_GovHydroIEEE2_pmax); - get_map.emplace("cim:GovHydroIEEE2.pmin", &get_GovHydroIEEE2_pmin); - get_map.emplace("cim:GovHydroIEEE2.rperm", &get_GovHydroIEEE2_rperm); - get_map.emplace("cim:GovHydroIEEE2.rtemp", &get_GovHydroIEEE2_rtemp); - get_map.emplace("cim:GovHydroIEEE2.tg", &get_GovHydroIEEE2_tg); - get_map.emplace("cim:GovHydroIEEE2.tp", &get_GovHydroIEEE2_tp); - get_map.emplace("cim:GovHydroIEEE2.tr", &get_GovHydroIEEE2_tr); - get_map.emplace("cim:GovHydroIEEE2.tw", &get_GovHydroIEEE2_tw); - get_map.emplace("cim:GovHydroIEEE2.uc", &get_GovHydroIEEE2_uc); - get_map.emplace("cim:GovHydroIEEE2.uo", &get_GovHydroIEEE2_uo); + get_map.emplace("GovHydroIEEE2.aturb", &get_GovHydroIEEE2_aturb); + get_map.emplace("GovHydroIEEE2.bturb", &get_GovHydroIEEE2_bturb); + get_map.emplace("GovHydroIEEE2.gv1", &get_GovHydroIEEE2_gv1); + get_map.emplace("GovHydroIEEE2.gv2", &get_GovHydroIEEE2_gv2); + get_map.emplace("GovHydroIEEE2.gv3", &get_GovHydroIEEE2_gv3); + get_map.emplace("GovHydroIEEE2.gv4", &get_GovHydroIEEE2_gv4); + get_map.emplace("GovHydroIEEE2.gv5", &get_GovHydroIEEE2_gv5); + get_map.emplace("GovHydroIEEE2.gv6", &get_GovHydroIEEE2_gv6); + get_map.emplace("GovHydroIEEE2.kturb", &get_GovHydroIEEE2_kturb); + get_map.emplace("GovHydroIEEE2.mwbase", &get_GovHydroIEEE2_mwbase); + get_map.emplace("GovHydroIEEE2.pgv1", &get_GovHydroIEEE2_pgv1); + get_map.emplace("GovHydroIEEE2.pgv2", &get_GovHydroIEEE2_pgv2); + get_map.emplace("GovHydroIEEE2.pgv3", &get_GovHydroIEEE2_pgv3); + get_map.emplace("GovHydroIEEE2.pgv4", &get_GovHydroIEEE2_pgv4); + get_map.emplace("GovHydroIEEE2.pgv5", &get_GovHydroIEEE2_pgv5); + get_map.emplace("GovHydroIEEE2.pgv6", &get_GovHydroIEEE2_pgv6); + get_map.emplace("GovHydroIEEE2.pmax", &get_GovHydroIEEE2_pmax); + get_map.emplace("GovHydroIEEE2.pmin", &get_GovHydroIEEE2_pmin); + get_map.emplace("GovHydroIEEE2.rperm", &get_GovHydroIEEE2_rperm); + get_map.emplace("GovHydroIEEE2.rtemp", &get_GovHydroIEEE2_rtemp); + get_map.emplace("GovHydroIEEE2.tg", &get_GovHydroIEEE2_tg); + get_map.emplace("GovHydroIEEE2.tp", &get_GovHydroIEEE2_tp); + get_map.emplace("GovHydroIEEE2.tr", &get_GovHydroIEEE2_tr); + get_map.emplace("GovHydroIEEE2.tw", &get_GovHydroIEEE2_tw); + get_map.emplace("GovHydroIEEE2.uc", &get_GovHydroIEEE2_uc); + get_map.emplace("GovHydroIEEE2.uo", &get_GovHydroIEEE2_uo); } void GovHydroIEEE2::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void GovHydroIEEE2::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroIEEE2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroIEEE2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroIEEE2::declare() { return BaseClassDefiner(GovHydroIEEE2::addConstructToMap, GovHydroIEEE2::addPrimitiveAssignFnsToMap, GovHydroIEEE2::addClassAssignFnsToMap, GovHydroIEEE2::debugName); } +std::map GovHydroIEEE2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroIEEE2_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroIEEE2.hpp b/CGMES_2.4.15_16FEB2016/GovHydroIEEE2.hpp index 33d231831..c12de5be8 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroIEEE2.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroIEEE2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -109,8 +110,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -118,7 +126,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroIEEE2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroPID.cpp b/CGMES_2.4.15_16FEB2016/GovHydroPID.cpp index 45136a44f..3631e2d9b 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroPID.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroPID.cpp @@ -11,64 +11,96 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPID(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPID.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPID::GovHydroPID() {} GovHydroPID::~GovHydroPID() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPID.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.r", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.td", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tf", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPID::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPID::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPID::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPID::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPID::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPID::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPID::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPID::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPID::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPID_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1036,44 +1068,44 @@ const char* GovHydroPID::debugString() const void GovHydroPID::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPID", &GovHydroPID_factory); + factory_map.emplace("GovHydroPID", &GovHydroPID_factory); } void GovHydroPID::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPID.aturb", &assign_GovHydroPID_aturb); - assign_map.emplace("cim:GovHydroPID.bturb", &assign_GovHydroPID_bturb); - assign_map.emplace("cim:GovHydroPID.db1", &assign_GovHydroPID_db1); - assign_map.emplace("cim:GovHydroPID.db2", &assign_GovHydroPID_db2); - assign_map.emplace("cim:GovHydroPID.eps", &assign_GovHydroPID_eps); - assign_map.emplace("cim:GovHydroPID.gv1", &assign_GovHydroPID_gv1); - assign_map.emplace("cim:GovHydroPID.gv2", &assign_GovHydroPID_gv2); - assign_map.emplace("cim:GovHydroPID.gv3", &assign_GovHydroPID_gv3); - assign_map.emplace("cim:GovHydroPID.gv4", &assign_GovHydroPID_gv4); - assign_map.emplace("cim:GovHydroPID.gv5", &assign_GovHydroPID_gv5); - assign_map.emplace("cim:GovHydroPID.gv6", &assign_GovHydroPID_gv6); - assign_map.emplace("cim:GovHydroPID.inputSignal", &assign_GovHydroPID_inputSignal); - assign_map.emplace("cim:GovHydroPID.kd", &assign_GovHydroPID_kd); - assign_map.emplace("cim:GovHydroPID.kg", &assign_GovHydroPID_kg); - assign_map.emplace("cim:GovHydroPID.ki", &assign_GovHydroPID_ki); - assign_map.emplace("cim:GovHydroPID.kp", &assign_GovHydroPID_kp); - assign_map.emplace("cim:GovHydroPID.mwbase", &assign_GovHydroPID_mwbase); - assign_map.emplace("cim:GovHydroPID.pgv1", &assign_GovHydroPID_pgv1); - assign_map.emplace("cim:GovHydroPID.pgv2", &assign_GovHydroPID_pgv2); - assign_map.emplace("cim:GovHydroPID.pgv3", &assign_GovHydroPID_pgv3); - assign_map.emplace("cim:GovHydroPID.pgv4", &assign_GovHydroPID_pgv4); - assign_map.emplace("cim:GovHydroPID.pgv5", &assign_GovHydroPID_pgv5); - assign_map.emplace("cim:GovHydroPID.pgv6", &assign_GovHydroPID_pgv6); - assign_map.emplace("cim:GovHydroPID.pmax", &assign_GovHydroPID_pmax); - assign_map.emplace("cim:GovHydroPID.pmin", &assign_GovHydroPID_pmin); - assign_map.emplace("cim:GovHydroPID.r", &assign_GovHydroPID_r); - assign_map.emplace("cim:GovHydroPID.td", &assign_GovHydroPID_td); - assign_map.emplace("cim:GovHydroPID.tf", &assign_GovHydroPID_tf); - assign_map.emplace("cim:GovHydroPID.tp", &assign_GovHydroPID_tp); - assign_map.emplace("cim:GovHydroPID.tt", &assign_GovHydroPID_tt); - assign_map.emplace("cim:GovHydroPID.tturb", &assign_GovHydroPID_tturb); - assign_map.emplace("cim:GovHydroPID.velcl", &assign_GovHydroPID_velcl); - assign_map.emplace("cim:GovHydroPID.velop", &assign_GovHydroPID_velop); + assign_map.emplace("GovHydroPID.aturb", &assign_GovHydroPID_aturb); + assign_map.emplace("GovHydroPID.bturb", &assign_GovHydroPID_bturb); + assign_map.emplace("GovHydroPID.db1", &assign_GovHydroPID_db1); + assign_map.emplace("GovHydroPID.db2", &assign_GovHydroPID_db2); + assign_map.emplace("GovHydroPID.eps", &assign_GovHydroPID_eps); + assign_map.emplace("GovHydroPID.gv1", &assign_GovHydroPID_gv1); + assign_map.emplace("GovHydroPID.gv2", &assign_GovHydroPID_gv2); + assign_map.emplace("GovHydroPID.gv3", &assign_GovHydroPID_gv3); + assign_map.emplace("GovHydroPID.gv4", &assign_GovHydroPID_gv4); + assign_map.emplace("GovHydroPID.gv5", &assign_GovHydroPID_gv5); + assign_map.emplace("GovHydroPID.gv6", &assign_GovHydroPID_gv6); + assign_map.emplace("GovHydroPID.inputSignal", &assign_GovHydroPID_inputSignal); + assign_map.emplace("GovHydroPID.kd", &assign_GovHydroPID_kd); + assign_map.emplace("GovHydroPID.kg", &assign_GovHydroPID_kg); + assign_map.emplace("GovHydroPID.ki", &assign_GovHydroPID_ki); + assign_map.emplace("GovHydroPID.kp", &assign_GovHydroPID_kp); + assign_map.emplace("GovHydroPID.mwbase", &assign_GovHydroPID_mwbase); + assign_map.emplace("GovHydroPID.pgv1", &assign_GovHydroPID_pgv1); + assign_map.emplace("GovHydroPID.pgv2", &assign_GovHydroPID_pgv2); + assign_map.emplace("GovHydroPID.pgv3", &assign_GovHydroPID_pgv3); + assign_map.emplace("GovHydroPID.pgv4", &assign_GovHydroPID_pgv4); + assign_map.emplace("GovHydroPID.pgv5", &assign_GovHydroPID_pgv5); + assign_map.emplace("GovHydroPID.pgv6", &assign_GovHydroPID_pgv6); + assign_map.emplace("GovHydroPID.pmax", &assign_GovHydroPID_pmax); + assign_map.emplace("GovHydroPID.pmin", &assign_GovHydroPID_pmin); + assign_map.emplace("GovHydroPID.r", &assign_GovHydroPID_r); + assign_map.emplace("GovHydroPID.td", &assign_GovHydroPID_td); + assign_map.emplace("GovHydroPID.tf", &assign_GovHydroPID_tf); + assign_map.emplace("GovHydroPID.tp", &assign_GovHydroPID_tp); + assign_map.emplace("GovHydroPID.tt", &assign_GovHydroPID_tt); + assign_map.emplace("GovHydroPID.tturb", &assign_GovHydroPID_tturb); + assign_map.emplace("GovHydroPID.velcl", &assign_GovHydroPID_velcl); + assign_map.emplace("GovHydroPID.velop", &assign_GovHydroPID_velop); } void GovHydroPID::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1083,39 +1115,39 @@ void GovHydroPID::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPID.aturb", &get_GovHydroPID_aturb); - get_map.emplace("cim:GovHydroPID.bturb", &get_GovHydroPID_bturb); - get_map.emplace("cim:GovHydroPID.db1", &get_GovHydroPID_db1); - get_map.emplace("cim:GovHydroPID.db2", &get_GovHydroPID_db2); - get_map.emplace("cim:GovHydroPID.eps", &get_GovHydroPID_eps); - get_map.emplace("cim:GovHydroPID.gv1", &get_GovHydroPID_gv1); - get_map.emplace("cim:GovHydroPID.gv2", &get_GovHydroPID_gv2); - get_map.emplace("cim:GovHydroPID.gv3", &get_GovHydroPID_gv3); - get_map.emplace("cim:GovHydroPID.gv4", &get_GovHydroPID_gv4); - get_map.emplace("cim:GovHydroPID.gv5", &get_GovHydroPID_gv5); - get_map.emplace("cim:GovHydroPID.gv6", &get_GovHydroPID_gv6); - get_map.emplace("cim:GovHydroPID.inputSignal", &get_GovHydroPID_inputSignal); - get_map.emplace("cim:GovHydroPID.kd", &get_GovHydroPID_kd); - get_map.emplace("cim:GovHydroPID.kg", &get_GovHydroPID_kg); - get_map.emplace("cim:GovHydroPID.ki", &get_GovHydroPID_ki); - get_map.emplace("cim:GovHydroPID.kp", &get_GovHydroPID_kp); - get_map.emplace("cim:GovHydroPID.mwbase", &get_GovHydroPID_mwbase); - get_map.emplace("cim:GovHydroPID.pgv1", &get_GovHydroPID_pgv1); - get_map.emplace("cim:GovHydroPID.pgv2", &get_GovHydroPID_pgv2); - get_map.emplace("cim:GovHydroPID.pgv3", &get_GovHydroPID_pgv3); - get_map.emplace("cim:GovHydroPID.pgv4", &get_GovHydroPID_pgv4); - get_map.emplace("cim:GovHydroPID.pgv5", &get_GovHydroPID_pgv5); - get_map.emplace("cim:GovHydroPID.pgv6", &get_GovHydroPID_pgv6); - get_map.emplace("cim:GovHydroPID.pmax", &get_GovHydroPID_pmax); - get_map.emplace("cim:GovHydroPID.pmin", &get_GovHydroPID_pmin); - get_map.emplace("cim:GovHydroPID.r", &get_GovHydroPID_r); - get_map.emplace("cim:GovHydroPID.td", &get_GovHydroPID_td); - get_map.emplace("cim:GovHydroPID.tf", &get_GovHydroPID_tf); - get_map.emplace("cim:GovHydroPID.tp", &get_GovHydroPID_tp); - get_map.emplace("cim:GovHydroPID.tt", &get_GovHydroPID_tt); - get_map.emplace("cim:GovHydroPID.tturb", &get_GovHydroPID_tturb); - get_map.emplace("cim:GovHydroPID.velcl", &get_GovHydroPID_velcl); - get_map.emplace("cim:GovHydroPID.velop", &get_GovHydroPID_velop); + get_map.emplace("GovHydroPID.aturb", &get_GovHydroPID_aturb); + get_map.emplace("GovHydroPID.bturb", &get_GovHydroPID_bturb); + get_map.emplace("GovHydroPID.db1", &get_GovHydroPID_db1); + get_map.emplace("GovHydroPID.db2", &get_GovHydroPID_db2); + get_map.emplace("GovHydroPID.eps", &get_GovHydroPID_eps); + get_map.emplace("GovHydroPID.gv1", &get_GovHydroPID_gv1); + get_map.emplace("GovHydroPID.gv2", &get_GovHydroPID_gv2); + get_map.emplace("GovHydroPID.gv3", &get_GovHydroPID_gv3); + get_map.emplace("GovHydroPID.gv4", &get_GovHydroPID_gv4); + get_map.emplace("GovHydroPID.gv5", &get_GovHydroPID_gv5); + get_map.emplace("GovHydroPID.gv6", &get_GovHydroPID_gv6); + get_map.emplace("GovHydroPID.inputSignal", &get_GovHydroPID_inputSignal); + get_map.emplace("GovHydroPID.kd", &get_GovHydroPID_kd); + get_map.emplace("GovHydroPID.kg", &get_GovHydroPID_kg); + get_map.emplace("GovHydroPID.ki", &get_GovHydroPID_ki); + get_map.emplace("GovHydroPID.kp", &get_GovHydroPID_kp); + get_map.emplace("GovHydroPID.mwbase", &get_GovHydroPID_mwbase); + get_map.emplace("GovHydroPID.pgv1", &get_GovHydroPID_pgv1); + get_map.emplace("GovHydroPID.pgv2", &get_GovHydroPID_pgv2); + get_map.emplace("GovHydroPID.pgv3", &get_GovHydroPID_pgv3); + get_map.emplace("GovHydroPID.pgv4", &get_GovHydroPID_pgv4); + get_map.emplace("GovHydroPID.pgv5", &get_GovHydroPID_pgv5); + get_map.emplace("GovHydroPID.pgv6", &get_GovHydroPID_pgv6); + get_map.emplace("GovHydroPID.pmax", &get_GovHydroPID_pmax); + get_map.emplace("GovHydroPID.pmin", &get_GovHydroPID_pmin); + get_map.emplace("GovHydroPID.r", &get_GovHydroPID_r); + get_map.emplace("GovHydroPID.td", &get_GovHydroPID_td); + get_map.emplace("GovHydroPID.tf", &get_GovHydroPID_tf); + get_map.emplace("GovHydroPID.tp", &get_GovHydroPID_tp); + get_map.emplace("GovHydroPID.tt", &get_GovHydroPID_tt); + get_map.emplace("GovHydroPID.tturb", &get_GovHydroPID_tturb); + get_map.emplace("GovHydroPID.velcl", &get_GovHydroPID_velcl); + get_map.emplace("GovHydroPID.velop", &get_GovHydroPID_velop); } void GovHydroPID::addClassGetFnsToMap(std::map& get_map) const @@ -1128,11 +1160,25 @@ void GovHydroPID::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPID::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPID" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPID::declare() { return BaseClassDefiner(GovHydroPID::addConstructToMap, GovHydroPID::addPrimitiveAssignFnsToMap, GovHydroPID::addClassAssignFnsToMap, GovHydroPID::debugName); } +std::map GovHydroPID::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPID_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroPID.hpp b/CGMES_2.4.15_16FEB2016/GovHydroPID.hpp index 2d69e696b..e21b35713 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroPID.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroPID.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -132,8 +133,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -141,7 +149,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPID_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroPID2.cpp b/CGMES_2.4.15_16FEB2016/GovHydroPID2.cpp index 59654db7b..a7f59b9b2 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroPID2.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroPID2.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPID2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPID2.atw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.feedbackSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.treg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.velmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.velmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPID2::GovHydroPID2() {} GovHydroPID2::~GovHydroPID2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPID2.atw", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.d", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.feedbackSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g0", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.tb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.treg", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.velmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.velmin", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPID2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPID2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPID2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPID2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPID2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPID2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPID2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPID2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPID2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPID2_atw(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* GovHydroPID2::debugString() const void GovHydroPID2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPID2", &GovHydroPID2_factory); + factory_map.emplace("GovHydroPID2", &GovHydroPID2_factory); } void GovHydroPID2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPID2.atw", &assign_GovHydroPID2_atw); - assign_map.emplace("cim:GovHydroPID2.d", &assign_GovHydroPID2_d); - assign_map.emplace("cim:GovHydroPID2.feedbackSignal", &assign_GovHydroPID2_feedbackSignal); - assign_map.emplace("cim:GovHydroPID2.g0", &assign_GovHydroPID2_g0); - assign_map.emplace("cim:GovHydroPID2.g1", &assign_GovHydroPID2_g1); - assign_map.emplace("cim:GovHydroPID2.g2", &assign_GovHydroPID2_g2); - assign_map.emplace("cim:GovHydroPID2.gmax", &assign_GovHydroPID2_gmax); - assign_map.emplace("cim:GovHydroPID2.gmin", &assign_GovHydroPID2_gmin); - assign_map.emplace("cim:GovHydroPID2.kd", &assign_GovHydroPID2_kd); - assign_map.emplace("cim:GovHydroPID2.ki", &assign_GovHydroPID2_ki); - assign_map.emplace("cim:GovHydroPID2.kp", &assign_GovHydroPID2_kp); - assign_map.emplace("cim:GovHydroPID2.mwbase", &assign_GovHydroPID2_mwbase); - assign_map.emplace("cim:GovHydroPID2.p1", &assign_GovHydroPID2_p1); - assign_map.emplace("cim:GovHydroPID2.p2", &assign_GovHydroPID2_p2); - assign_map.emplace("cim:GovHydroPID2.p3", &assign_GovHydroPID2_p3); - assign_map.emplace("cim:GovHydroPID2.rperm", &assign_GovHydroPID2_rperm); - assign_map.emplace("cim:GovHydroPID2.ta", &assign_GovHydroPID2_ta); - assign_map.emplace("cim:GovHydroPID2.tb", &assign_GovHydroPID2_tb); - assign_map.emplace("cim:GovHydroPID2.treg", &assign_GovHydroPID2_treg); - assign_map.emplace("cim:GovHydroPID2.tw", &assign_GovHydroPID2_tw); - assign_map.emplace("cim:GovHydroPID2.velmax", &assign_GovHydroPID2_velmax); - assign_map.emplace("cim:GovHydroPID2.velmin", &assign_GovHydroPID2_velmin); + assign_map.emplace("GovHydroPID2.atw", &assign_GovHydroPID2_atw); + assign_map.emplace("GovHydroPID2.d", &assign_GovHydroPID2_d); + assign_map.emplace("GovHydroPID2.feedbackSignal", &assign_GovHydroPID2_feedbackSignal); + assign_map.emplace("GovHydroPID2.g0", &assign_GovHydroPID2_g0); + assign_map.emplace("GovHydroPID2.g1", &assign_GovHydroPID2_g1); + assign_map.emplace("GovHydroPID2.g2", &assign_GovHydroPID2_g2); + assign_map.emplace("GovHydroPID2.gmax", &assign_GovHydroPID2_gmax); + assign_map.emplace("GovHydroPID2.gmin", &assign_GovHydroPID2_gmin); + assign_map.emplace("GovHydroPID2.kd", &assign_GovHydroPID2_kd); + assign_map.emplace("GovHydroPID2.ki", &assign_GovHydroPID2_ki); + assign_map.emplace("GovHydroPID2.kp", &assign_GovHydroPID2_kp); + assign_map.emplace("GovHydroPID2.mwbase", &assign_GovHydroPID2_mwbase); + assign_map.emplace("GovHydroPID2.p1", &assign_GovHydroPID2_p1); + assign_map.emplace("GovHydroPID2.p2", &assign_GovHydroPID2_p2); + assign_map.emplace("GovHydroPID2.p3", &assign_GovHydroPID2_p3); + assign_map.emplace("GovHydroPID2.rperm", &assign_GovHydroPID2_rperm); + assign_map.emplace("GovHydroPID2.ta", &assign_GovHydroPID2_ta); + assign_map.emplace("GovHydroPID2.tb", &assign_GovHydroPID2_tb); + assign_map.emplace("GovHydroPID2.treg", &assign_GovHydroPID2_treg); + assign_map.emplace("GovHydroPID2.tw", &assign_GovHydroPID2_tw); + assign_map.emplace("GovHydroPID2.velmax", &assign_GovHydroPID2_velmax); + assign_map.emplace("GovHydroPID2.velmin", &assign_GovHydroPID2_velmin); } void GovHydroPID2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void GovHydroPID2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPID2.atw", &get_GovHydroPID2_atw); - get_map.emplace("cim:GovHydroPID2.d", &get_GovHydroPID2_d); - get_map.emplace("cim:GovHydroPID2.feedbackSignal", &get_GovHydroPID2_feedbackSignal); - get_map.emplace("cim:GovHydroPID2.g0", &get_GovHydroPID2_g0); - get_map.emplace("cim:GovHydroPID2.g1", &get_GovHydroPID2_g1); - get_map.emplace("cim:GovHydroPID2.g2", &get_GovHydroPID2_g2); - get_map.emplace("cim:GovHydroPID2.gmax", &get_GovHydroPID2_gmax); - get_map.emplace("cim:GovHydroPID2.gmin", &get_GovHydroPID2_gmin); - get_map.emplace("cim:GovHydroPID2.kd", &get_GovHydroPID2_kd); - get_map.emplace("cim:GovHydroPID2.ki", &get_GovHydroPID2_ki); - get_map.emplace("cim:GovHydroPID2.kp", &get_GovHydroPID2_kp); - get_map.emplace("cim:GovHydroPID2.mwbase", &get_GovHydroPID2_mwbase); - get_map.emplace("cim:GovHydroPID2.p1", &get_GovHydroPID2_p1); - get_map.emplace("cim:GovHydroPID2.p2", &get_GovHydroPID2_p2); - get_map.emplace("cim:GovHydroPID2.p3", &get_GovHydroPID2_p3); - get_map.emplace("cim:GovHydroPID2.rperm", &get_GovHydroPID2_rperm); - get_map.emplace("cim:GovHydroPID2.ta", &get_GovHydroPID2_ta); - get_map.emplace("cim:GovHydroPID2.tb", &get_GovHydroPID2_tb); - get_map.emplace("cim:GovHydroPID2.treg", &get_GovHydroPID2_treg); - get_map.emplace("cim:GovHydroPID2.tw", &get_GovHydroPID2_tw); - get_map.emplace("cim:GovHydroPID2.velmax", &get_GovHydroPID2_velmax); - get_map.emplace("cim:GovHydroPID2.velmin", &get_GovHydroPID2_velmin); + get_map.emplace("GovHydroPID2.atw", &get_GovHydroPID2_atw); + get_map.emplace("GovHydroPID2.d", &get_GovHydroPID2_d); + get_map.emplace("GovHydroPID2.feedbackSignal", &get_GovHydroPID2_feedbackSignal); + get_map.emplace("GovHydroPID2.g0", &get_GovHydroPID2_g0); + get_map.emplace("GovHydroPID2.g1", &get_GovHydroPID2_g1); + get_map.emplace("GovHydroPID2.g2", &get_GovHydroPID2_g2); + get_map.emplace("GovHydroPID2.gmax", &get_GovHydroPID2_gmax); + get_map.emplace("GovHydroPID2.gmin", &get_GovHydroPID2_gmin); + get_map.emplace("GovHydroPID2.kd", &get_GovHydroPID2_kd); + get_map.emplace("GovHydroPID2.ki", &get_GovHydroPID2_ki); + get_map.emplace("GovHydroPID2.kp", &get_GovHydroPID2_kp); + get_map.emplace("GovHydroPID2.mwbase", &get_GovHydroPID2_mwbase); + get_map.emplace("GovHydroPID2.p1", &get_GovHydroPID2_p1); + get_map.emplace("GovHydroPID2.p2", &get_GovHydroPID2_p2); + get_map.emplace("GovHydroPID2.p3", &get_GovHydroPID2_p3); + get_map.emplace("GovHydroPID2.rperm", &get_GovHydroPID2_rperm); + get_map.emplace("GovHydroPID2.ta", &get_GovHydroPID2_ta); + get_map.emplace("GovHydroPID2.tb", &get_GovHydroPID2_tb); + get_map.emplace("GovHydroPID2.treg", &get_GovHydroPID2_treg); + get_map.emplace("GovHydroPID2.tw", &get_GovHydroPID2_tw); + get_map.emplace("GovHydroPID2.velmax", &get_GovHydroPID2_velmax); + get_map.emplace("GovHydroPID2.velmin", &get_GovHydroPID2_velmin); } void GovHydroPID2::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void GovHydroPID2::addEnumGetFnsToMap(std::map& get_m TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPID2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPID2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPID2::declare() { return BaseClassDefiner(GovHydroPID2::addConstructToMap, GovHydroPID2::addPrimitiveAssignFnsToMap, GovHydroPID2::addClassAssignFnsToMap, GovHydroPID2::debugName); } +std::map GovHydroPID2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPID2_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroPID2.hpp b/CGMES_2.4.15_16FEB2016/GovHydroPID2.hpp index 3bbeb694e..3fb6cde1e 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroPID2.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroPID2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -98,8 +99,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -107,7 +115,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPID2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroPelton.cpp b/CGMES_2.4.15_16FEB2016/GovHydroPelton.cpp index 1f8f2bbfe..495ce5f7f 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroPelton.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroPelton.cpp @@ -11,59 +11,91 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPelton(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPelton.av0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.av1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.h1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.h2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.hn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.qc0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.qn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.simplifiedPelton", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.staticCompensating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.twnc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.twng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.tx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.va", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.valvmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.valvmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vav", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vcv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.waterTunnelSurgeChamberSimulation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.zsfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPelton::GovHydroPelton() {} GovHydroPelton::~GovHydroPelton() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPelton.av0", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.av1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.bp", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.h1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.h2", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.hn", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.kc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.qc0", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.qn", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.simplifiedPelton", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.staticCompensating", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.ts", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.tv", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.twnc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.twng", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.tx", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.va", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.valvmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.valvmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vav", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vcv", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.zsfc", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPelton::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPelton::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPelton::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPelton::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPelton::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPelton::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPelton::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPelton::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPelton::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPelton_av0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -886,39 +918,39 @@ const char* GovHydroPelton::debugString() const void GovHydroPelton::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPelton", &GovHydroPelton_factory); + factory_map.emplace("GovHydroPelton", &GovHydroPelton_factory); } void GovHydroPelton::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPelton.av0", &assign_GovHydroPelton_av0); - assign_map.emplace("cim:GovHydroPelton.av1", &assign_GovHydroPelton_av1); - assign_map.emplace("cim:GovHydroPelton.bp", &assign_GovHydroPelton_bp); - assign_map.emplace("cim:GovHydroPelton.db1", &assign_GovHydroPelton_db1); - assign_map.emplace("cim:GovHydroPelton.db2", &assign_GovHydroPelton_db2); - assign_map.emplace("cim:GovHydroPelton.h1", &assign_GovHydroPelton_h1); - assign_map.emplace("cim:GovHydroPelton.h2", &assign_GovHydroPelton_h2); - assign_map.emplace("cim:GovHydroPelton.hn", &assign_GovHydroPelton_hn); - assign_map.emplace("cim:GovHydroPelton.kc", &assign_GovHydroPelton_kc); - assign_map.emplace("cim:GovHydroPelton.kg", &assign_GovHydroPelton_kg); - assign_map.emplace("cim:GovHydroPelton.qc0", &assign_GovHydroPelton_qc0); - assign_map.emplace("cim:GovHydroPelton.qn", &assign_GovHydroPelton_qn); - assign_map.emplace("cim:GovHydroPelton.simplifiedPelton", &assign_GovHydroPelton_simplifiedPelton); - assign_map.emplace("cim:GovHydroPelton.staticCompensating", &assign_GovHydroPelton_staticCompensating); - assign_map.emplace("cim:GovHydroPelton.ta", &assign_GovHydroPelton_ta); - assign_map.emplace("cim:GovHydroPelton.ts", &assign_GovHydroPelton_ts); - assign_map.emplace("cim:GovHydroPelton.tv", &assign_GovHydroPelton_tv); - assign_map.emplace("cim:GovHydroPelton.twnc", &assign_GovHydroPelton_twnc); - assign_map.emplace("cim:GovHydroPelton.twng", &assign_GovHydroPelton_twng); - assign_map.emplace("cim:GovHydroPelton.tx", &assign_GovHydroPelton_tx); - assign_map.emplace("cim:GovHydroPelton.va", &assign_GovHydroPelton_va); - assign_map.emplace("cim:GovHydroPelton.valvmax", &assign_GovHydroPelton_valvmax); - assign_map.emplace("cim:GovHydroPelton.valvmin", &assign_GovHydroPelton_valvmin); - assign_map.emplace("cim:GovHydroPelton.vav", &assign_GovHydroPelton_vav); - assign_map.emplace("cim:GovHydroPelton.vc", &assign_GovHydroPelton_vc); - assign_map.emplace("cim:GovHydroPelton.vcv", &assign_GovHydroPelton_vcv); - assign_map.emplace("cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", &assign_GovHydroPelton_waterTunnelSurgeChamberSimulation); - assign_map.emplace("cim:GovHydroPelton.zsfc", &assign_GovHydroPelton_zsfc); + assign_map.emplace("GovHydroPelton.av0", &assign_GovHydroPelton_av0); + assign_map.emplace("GovHydroPelton.av1", &assign_GovHydroPelton_av1); + assign_map.emplace("GovHydroPelton.bp", &assign_GovHydroPelton_bp); + assign_map.emplace("GovHydroPelton.db1", &assign_GovHydroPelton_db1); + assign_map.emplace("GovHydroPelton.db2", &assign_GovHydroPelton_db2); + assign_map.emplace("GovHydroPelton.h1", &assign_GovHydroPelton_h1); + assign_map.emplace("GovHydroPelton.h2", &assign_GovHydroPelton_h2); + assign_map.emplace("GovHydroPelton.hn", &assign_GovHydroPelton_hn); + assign_map.emplace("GovHydroPelton.kc", &assign_GovHydroPelton_kc); + assign_map.emplace("GovHydroPelton.kg", &assign_GovHydroPelton_kg); + assign_map.emplace("GovHydroPelton.qc0", &assign_GovHydroPelton_qc0); + assign_map.emplace("GovHydroPelton.qn", &assign_GovHydroPelton_qn); + assign_map.emplace("GovHydroPelton.simplifiedPelton", &assign_GovHydroPelton_simplifiedPelton); + assign_map.emplace("GovHydroPelton.staticCompensating", &assign_GovHydroPelton_staticCompensating); + assign_map.emplace("GovHydroPelton.ta", &assign_GovHydroPelton_ta); + assign_map.emplace("GovHydroPelton.ts", &assign_GovHydroPelton_ts); + assign_map.emplace("GovHydroPelton.tv", &assign_GovHydroPelton_tv); + assign_map.emplace("GovHydroPelton.twnc", &assign_GovHydroPelton_twnc); + assign_map.emplace("GovHydroPelton.twng", &assign_GovHydroPelton_twng); + assign_map.emplace("GovHydroPelton.tx", &assign_GovHydroPelton_tx); + assign_map.emplace("GovHydroPelton.va", &assign_GovHydroPelton_va); + assign_map.emplace("GovHydroPelton.valvmax", &assign_GovHydroPelton_valvmax); + assign_map.emplace("GovHydroPelton.valvmin", &assign_GovHydroPelton_valvmin); + assign_map.emplace("GovHydroPelton.vav", &assign_GovHydroPelton_vav); + assign_map.emplace("GovHydroPelton.vc", &assign_GovHydroPelton_vc); + assign_map.emplace("GovHydroPelton.vcv", &assign_GovHydroPelton_vcv); + assign_map.emplace("GovHydroPelton.waterTunnelSurgeChamberSimulation", &assign_GovHydroPelton_waterTunnelSurgeChamberSimulation); + assign_map.emplace("GovHydroPelton.zsfc", &assign_GovHydroPelton_zsfc); } void GovHydroPelton::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -928,34 +960,34 @@ void GovHydroPelton::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPelton.av0", &get_GovHydroPelton_av0); - get_map.emplace("cim:GovHydroPelton.av1", &get_GovHydroPelton_av1); - get_map.emplace("cim:GovHydroPelton.bp", &get_GovHydroPelton_bp); - get_map.emplace("cim:GovHydroPelton.db1", &get_GovHydroPelton_db1); - get_map.emplace("cim:GovHydroPelton.db2", &get_GovHydroPelton_db2); - get_map.emplace("cim:GovHydroPelton.h1", &get_GovHydroPelton_h1); - get_map.emplace("cim:GovHydroPelton.h2", &get_GovHydroPelton_h2); - get_map.emplace("cim:GovHydroPelton.hn", &get_GovHydroPelton_hn); - get_map.emplace("cim:GovHydroPelton.kc", &get_GovHydroPelton_kc); - get_map.emplace("cim:GovHydroPelton.kg", &get_GovHydroPelton_kg); - get_map.emplace("cim:GovHydroPelton.qc0", &get_GovHydroPelton_qc0); - get_map.emplace("cim:GovHydroPelton.qn", &get_GovHydroPelton_qn); - get_map.emplace("cim:GovHydroPelton.simplifiedPelton", &get_GovHydroPelton_simplifiedPelton); - get_map.emplace("cim:GovHydroPelton.staticCompensating", &get_GovHydroPelton_staticCompensating); - get_map.emplace("cim:GovHydroPelton.ta", &get_GovHydroPelton_ta); - get_map.emplace("cim:GovHydroPelton.ts", &get_GovHydroPelton_ts); - get_map.emplace("cim:GovHydroPelton.tv", &get_GovHydroPelton_tv); - get_map.emplace("cim:GovHydroPelton.twnc", &get_GovHydroPelton_twnc); - get_map.emplace("cim:GovHydroPelton.twng", &get_GovHydroPelton_twng); - get_map.emplace("cim:GovHydroPelton.tx", &get_GovHydroPelton_tx); - get_map.emplace("cim:GovHydroPelton.va", &get_GovHydroPelton_va); - get_map.emplace("cim:GovHydroPelton.valvmax", &get_GovHydroPelton_valvmax); - get_map.emplace("cim:GovHydroPelton.valvmin", &get_GovHydroPelton_valvmin); - get_map.emplace("cim:GovHydroPelton.vav", &get_GovHydroPelton_vav); - get_map.emplace("cim:GovHydroPelton.vc", &get_GovHydroPelton_vc); - get_map.emplace("cim:GovHydroPelton.vcv", &get_GovHydroPelton_vcv); - get_map.emplace("cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", &get_GovHydroPelton_waterTunnelSurgeChamberSimulation); - get_map.emplace("cim:GovHydroPelton.zsfc", &get_GovHydroPelton_zsfc); + get_map.emplace("GovHydroPelton.av0", &get_GovHydroPelton_av0); + get_map.emplace("GovHydroPelton.av1", &get_GovHydroPelton_av1); + get_map.emplace("GovHydroPelton.bp", &get_GovHydroPelton_bp); + get_map.emplace("GovHydroPelton.db1", &get_GovHydroPelton_db1); + get_map.emplace("GovHydroPelton.db2", &get_GovHydroPelton_db2); + get_map.emplace("GovHydroPelton.h1", &get_GovHydroPelton_h1); + get_map.emplace("GovHydroPelton.h2", &get_GovHydroPelton_h2); + get_map.emplace("GovHydroPelton.hn", &get_GovHydroPelton_hn); + get_map.emplace("GovHydroPelton.kc", &get_GovHydroPelton_kc); + get_map.emplace("GovHydroPelton.kg", &get_GovHydroPelton_kg); + get_map.emplace("GovHydroPelton.qc0", &get_GovHydroPelton_qc0); + get_map.emplace("GovHydroPelton.qn", &get_GovHydroPelton_qn); + get_map.emplace("GovHydroPelton.simplifiedPelton", &get_GovHydroPelton_simplifiedPelton); + get_map.emplace("GovHydroPelton.staticCompensating", &get_GovHydroPelton_staticCompensating); + get_map.emplace("GovHydroPelton.ta", &get_GovHydroPelton_ta); + get_map.emplace("GovHydroPelton.ts", &get_GovHydroPelton_ts); + get_map.emplace("GovHydroPelton.tv", &get_GovHydroPelton_tv); + get_map.emplace("GovHydroPelton.twnc", &get_GovHydroPelton_twnc); + get_map.emplace("GovHydroPelton.twng", &get_GovHydroPelton_twng); + get_map.emplace("GovHydroPelton.tx", &get_GovHydroPelton_tx); + get_map.emplace("GovHydroPelton.va", &get_GovHydroPelton_va); + get_map.emplace("GovHydroPelton.valvmax", &get_GovHydroPelton_valvmax); + get_map.emplace("GovHydroPelton.valvmin", &get_GovHydroPelton_valvmin); + get_map.emplace("GovHydroPelton.vav", &get_GovHydroPelton_vav); + get_map.emplace("GovHydroPelton.vc", &get_GovHydroPelton_vc); + get_map.emplace("GovHydroPelton.vcv", &get_GovHydroPelton_vcv); + get_map.emplace("GovHydroPelton.waterTunnelSurgeChamberSimulation", &get_GovHydroPelton_waterTunnelSurgeChamberSimulation); + get_map.emplace("GovHydroPelton.zsfc", &get_GovHydroPelton_zsfc); } void GovHydroPelton::addClassGetFnsToMap(std::map& get_map) const @@ -968,11 +1000,25 @@ void GovHydroPelton::addEnumGetFnsToMap(std::map& get TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPelton::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPelton" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPelton::declare() { return BaseClassDefiner(GovHydroPelton::addConstructToMap, GovHydroPelton::addPrimitiveAssignFnsToMap, GovHydroPelton::addClassAssignFnsToMap, GovHydroPelton::debugName); } +std::map GovHydroPelton::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPelton_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroPelton.hpp b/CGMES_2.4.15_16FEB2016/GovHydroPelton.hpp index 8536bb331..1e3880ca5 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroPelton.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroPelton.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Area.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -119,8 +120,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -128,7 +136,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPelton_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroR.cpp b/CGMES_2.4.15_16FEB2016/GovHydroR.cpp index b98e8cfc6..5d7193936 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroR.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroR.cpp @@ -11,73 +11,105 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroR(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroR.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.h0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroR::GovHydroR() {} GovHydroR::~GovHydroR() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroR.at", { CGMESProfile::DY, } }, - { "cim:GovHydroR.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydroR.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.h0", { CGMESProfile::DY, } }, - { "cim:GovHydroR.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroR.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroR.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroR.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroR.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydroR.r", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t7", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t8", { CGMESProfile::DY, } }, - { "cim:GovHydroR.td", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroR.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroR.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroR::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroR::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroR::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroR::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroR::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroR::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroR::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroR::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroR::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroR_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1306,53 +1338,53 @@ const char* GovHydroR::debugString() const void GovHydroR::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroR", &GovHydroR_factory); + factory_map.emplace("GovHydroR", &GovHydroR_factory); } void GovHydroR::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroR.at", &assign_GovHydroR_at); - assign_map.emplace("cim:GovHydroR.db1", &assign_GovHydroR_db1); - assign_map.emplace("cim:GovHydroR.db2", &assign_GovHydroR_db2); - assign_map.emplace("cim:GovHydroR.dturb", &assign_GovHydroR_dturb); - assign_map.emplace("cim:GovHydroR.eps", &assign_GovHydroR_eps); - assign_map.emplace("cim:GovHydroR.gmax", &assign_GovHydroR_gmax); - assign_map.emplace("cim:GovHydroR.gmin", &assign_GovHydroR_gmin); - assign_map.emplace("cim:GovHydroR.gv1", &assign_GovHydroR_gv1); - assign_map.emplace("cim:GovHydroR.gv2", &assign_GovHydroR_gv2); - assign_map.emplace("cim:GovHydroR.gv3", &assign_GovHydroR_gv3); - assign_map.emplace("cim:GovHydroR.gv4", &assign_GovHydroR_gv4); - assign_map.emplace("cim:GovHydroR.gv5", &assign_GovHydroR_gv5); - assign_map.emplace("cim:GovHydroR.gv6", &assign_GovHydroR_gv6); - assign_map.emplace("cim:GovHydroR.h0", &assign_GovHydroR_h0); - assign_map.emplace("cim:GovHydroR.inputSignal", &assign_GovHydroR_inputSignal); - assign_map.emplace("cim:GovHydroR.kg", &assign_GovHydroR_kg); - assign_map.emplace("cim:GovHydroR.ki", &assign_GovHydroR_ki); - assign_map.emplace("cim:GovHydroR.mwbase", &assign_GovHydroR_mwbase); - assign_map.emplace("cim:GovHydroR.pgv1", &assign_GovHydroR_pgv1); - assign_map.emplace("cim:GovHydroR.pgv2", &assign_GovHydroR_pgv2); - assign_map.emplace("cim:GovHydroR.pgv3", &assign_GovHydroR_pgv3); - assign_map.emplace("cim:GovHydroR.pgv4", &assign_GovHydroR_pgv4); - assign_map.emplace("cim:GovHydroR.pgv5", &assign_GovHydroR_pgv5); - assign_map.emplace("cim:GovHydroR.pgv6", &assign_GovHydroR_pgv6); - assign_map.emplace("cim:GovHydroR.pmax", &assign_GovHydroR_pmax); - assign_map.emplace("cim:GovHydroR.pmin", &assign_GovHydroR_pmin); - assign_map.emplace("cim:GovHydroR.qnl", &assign_GovHydroR_qnl); - assign_map.emplace("cim:GovHydroR.r", &assign_GovHydroR_r); - assign_map.emplace("cim:GovHydroR.t1", &assign_GovHydroR_t1); - assign_map.emplace("cim:GovHydroR.t2", &assign_GovHydroR_t2); - assign_map.emplace("cim:GovHydroR.t3", &assign_GovHydroR_t3); - assign_map.emplace("cim:GovHydroR.t4", &assign_GovHydroR_t4); - assign_map.emplace("cim:GovHydroR.t5", &assign_GovHydroR_t5); - assign_map.emplace("cim:GovHydroR.t6", &assign_GovHydroR_t6); - assign_map.emplace("cim:GovHydroR.t7", &assign_GovHydroR_t7); - assign_map.emplace("cim:GovHydroR.t8", &assign_GovHydroR_t8); - assign_map.emplace("cim:GovHydroR.td", &assign_GovHydroR_td); - assign_map.emplace("cim:GovHydroR.tp", &assign_GovHydroR_tp); - assign_map.emplace("cim:GovHydroR.tt", &assign_GovHydroR_tt); - assign_map.emplace("cim:GovHydroR.tw", &assign_GovHydroR_tw); - assign_map.emplace("cim:GovHydroR.velcl", &assign_GovHydroR_velcl); - assign_map.emplace("cim:GovHydroR.velop", &assign_GovHydroR_velop); + assign_map.emplace("GovHydroR.at", &assign_GovHydroR_at); + assign_map.emplace("GovHydroR.db1", &assign_GovHydroR_db1); + assign_map.emplace("GovHydroR.db2", &assign_GovHydroR_db2); + assign_map.emplace("GovHydroR.dturb", &assign_GovHydroR_dturb); + assign_map.emplace("GovHydroR.eps", &assign_GovHydroR_eps); + assign_map.emplace("GovHydroR.gmax", &assign_GovHydroR_gmax); + assign_map.emplace("GovHydroR.gmin", &assign_GovHydroR_gmin); + assign_map.emplace("GovHydroR.gv1", &assign_GovHydroR_gv1); + assign_map.emplace("GovHydroR.gv2", &assign_GovHydroR_gv2); + assign_map.emplace("GovHydroR.gv3", &assign_GovHydroR_gv3); + assign_map.emplace("GovHydroR.gv4", &assign_GovHydroR_gv4); + assign_map.emplace("GovHydroR.gv5", &assign_GovHydroR_gv5); + assign_map.emplace("GovHydroR.gv6", &assign_GovHydroR_gv6); + assign_map.emplace("GovHydroR.h0", &assign_GovHydroR_h0); + assign_map.emplace("GovHydroR.inputSignal", &assign_GovHydroR_inputSignal); + assign_map.emplace("GovHydroR.kg", &assign_GovHydroR_kg); + assign_map.emplace("GovHydroR.ki", &assign_GovHydroR_ki); + assign_map.emplace("GovHydroR.mwbase", &assign_GovHydroR_mwbase); + assign_map.emplace("GovHydroR.pgv1", &assign_GovHydroR_pgv1); + assign_map.emplace("GovHydroR.pgv2", &assign_GovHydroR_pgv2); + assign_map.emplace("GovHydroR.pgv3", &assign_GovHydroR_pgv3); + assign_map.emplace("GovHydroR.pgv4", &assign_GovHydroR_pgv4); + assign_map.emplace("GovHydroR.pgv5", &assign_GovHydroR_pgv5); + assign_map.emplace("GovHydroR.pgv6", &assign_GovHydroR_pgv6); + assign_map.emplace("GovHydroR.pmax", &assign_GovHydroR_pmax); + assign_map.emplace("GovHydroR.pmin", &assign_GovHydroR_pmin); + assign_map.emplace("GovHydroR.qnl", &assign_GovHydroR_qnl); + assign_map.emplace("GovHydroR.r", &assign_GovHydroR_r); + assign_map.emplace("GovHydroR.t1", &assign_GovHydroR_t1); + assign_map.emplace("GovHydroR.t2", &assign_GovHydroR_t2); + assign_map.emplace("GovHydroR.t3", &assign_GovHydroR_t3); + assign_map.emplace("GovHydroR.t4", &assign_GovHydroR_t4); + assign_map.emplace("GovHydroR.t5", &assign_GovHydroR_t5); + assign_map.emplace("GovHydroR.t6", &assign_GovHydroR_t6); + assign_map.emplace("GovHydroR.t7", &assign_GovHydroR_t7); + assign_map.emplace("GovHydroR.t8", &assign_GovHydroR_t8); + assign_map.emplace("GovHydroR.td", &assign_GovHydroR_td); + assign_map.emplace("GovHydroR.tp", &assign_GovHydroR_tp); + assign_map.emplace("GovHydroR.tt", &assign_GovHydroR_tt); + assign_map.emplace("GovHydroR.tw", &assign_GovHydroR_tw); + assign_map.emplace("GovHydroR.velcl", &assign_GovHydroR_velcl); + assign_map.emplace("GovHydroR.velop", &assign_GovHydroR_velop); } void GovHydroR::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1362,48 +1394,48 @@ void GovHydroR::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroR.at", &get_GovHydroR_at); - get_map.emplace("cim:GovHydroR.db1", &get_GovHydroR_db1); - get_map.emplace("cim:GovHydroR.db2", &get_GovHydroR_db2); - get_map.emplace("cim:GovHydroR.dturb", &get_GovHydroR_dturb); - get_map.emplace("cim:GovHydroR.eps", &get_GovHydroR_eps); - get_map.emplace("cim:GovHydroR.gmax", &get_GovHydroR_gmax); - get_map.emplace("cim:GovHydroR.gmin", &get_GovHydroR_gmin); - get_map.emplace("cim:GovHydroR.gv1", &get_GovHydroR_gv1); - get_map.emplace("cim:GovHydroR.gv2", &get_GovHydroR_gv2); - get_map.emplace("cim:GovHydroR.gv3", &get_GovHydroR_gv3); - get_map.emplace("cim:GovHydroR.gv4", &get_GovHydroR_gv4); - get_map.emplace("cim:GovHydroR.gv5", &get_GovHydroR_gv5); - get_map.emplace("cim:GovHydroR.gv6", &get_GovHydroR_gv6); - get_map.emplace("cim:GovHydroR.h0", &get_GovHydroR_h0); - get_map.emplace("cim:GovHydroR.inputSignal", &get_GovHydroR_inputSignal); - get_map.emplace("cim:GovHydroR.kg", &get_GovHydroR_kg); - get_map.emplace("cim:GovHydroR.ki", &get_GovHydroR_ki); - get_map.emplace("cim:GovHydroR.mwbase", &get_GovHydroR_mwbase); - get_map.emplace("cim:GovHydroR.pgv1", &get_GovHydroR_pgv1); - get_map.emplace("cim:GovHydroR.pgv2", &get_GovHydroR_pgv2); - get_map.emplace("cim:GovHydroR.pgv3", &get_GovHydroR_pgv3); - get_map.emplace("cim:GovHydroR.pgv4", &get_GovHydroR_pgv4); - get_map.emplace("cim:GovHydroR.pgv5", &get_GovHydroR_pgv5); - get_map.emplace("cim:GovHydroR.pgv6", &get_GovHydroR_pgv6); - get_map.emplace("cim:GovHydroR.pmax", &get_GovHydroR_pmax); - get_map.emplace("cim:GovHydroR.pmin", &get_GovHydroR_pmin); - get_map.emplace("cim:GovHydroR.qnl", &get_GovHydroR_qnl); - get_map.emplace("cim:GovHydroR.r", &get_GovHydroR_r); - get_map.emplace("cim:GovHydroR.t1", &get_GovHydroR_t1); - get_map.emplace("cim:GovHydroR.t2", &get_GovHydroR_t2); - get_map.emplace("cim:GovHydroR.t3", &get_GovHydroR_t3); - get_map.emplace("cim:GovHydroR.t4", &get_GovHydroR_t4); - get_map.emplace("cim:GovHydroR.t5", &get_GovHydroR_t5); - get_map.emplace("cim:GovHydroR.t6", &get_GovHydroR_t6); - get_map.emplace("cim:GovHydroR.t7", &get_GovHydroR_t7); - get_map.emplace("cim:GovHydroR.t8", &get_GovHydroR_t8); - get_map.emplace("cim:GovHydroR.td", &get_GovHydroR_td); - get_map.emplace("cim:GovHydroR.tp", &get_GovHydroR_tp); - get_map.emplace("cim:GovHydroR.tt", &get_GovHydroR_tt); - get_map.emplace("cim:GovHydroR.tw", &get_GovHydroR_tw); - get_map.emplace("cim:GovHydroR.velcl", &get_GovHydroR_velcl); - get_map.emplace("cim:GovHydroR.velop", &get_GovHydroR_velop); + get_map.emplace("GovHydroR.at", &get_GovHydroR_at); + get_map.emplace("GovHydroR.db1", &get_GovHydroR_db1); + get_map.emplace("GovHydroR.db2", &get_GovHydroR_db2); + get_map.emplace("GovHydroR.dturb", &get_GovHydroR_dturb); + get_map.emplace("GovHydroR.eps", &get_GovHydroR_eps); + get_map.emplace("GovHydroR.gmax", &get_GovHydroR_gmax); + get_map.emplace("GovHydroR.gmin", &get_GovHydroR_gmin); + get_map.emplace("GovHydroR.gv1", &get_GovHydroR_gv1); + get_map.emplace("GovHydroR.gv2", &get_GovHydroR_gv2); + get_map.emplace("GovHydroR.gv3", &get_GovHydroR_gv3); + get_map.emplace("GovHydroR.gv4", &get_GovHydroR_gv4); + get_map.emplace("GovHydroR.gv5", &get_GovHydroR_gv5); + get_map.emplace("GovHydroR.gv6", &get_GovHydroR_gv6); + get_map.emplace("GovHydroR.h0", &get_GovHydroR_h0); + get_map.emplace("GovHydroR.inputSignal", &get_GovHydroR_inputSignal); + get_map.emplace("GovHydroR.kg", &get_GovHydroR_kg); + get_map.emplace("GovHydroR.ki", &get_GovHydroR_ki); + get_map.emplace("GovHydroR.mwbase", &get_GovHydroR_mwbase); + get_map.emplace("GovHydroR.pgv1", &get_GovHydroR_pgv1); + get_map.emplace("GovHydroR.pgv2", &get_GovHydroR_pgv2); + get_map.emplace("GovHydroR.pgv3", &get_GovHydroR_pgv3); + get_map.emplace("GovHydroR.pgv4", &get_GovHydroR_pgv4); + get_map.emplace("GovHydroR.pgv5", &get_GovHydroR_pgv5); + get_map.emplace("GovHydroR.pgv6", &get_GovHydroR_pgv6); + get_map.emplace("GovHydroR.pmax", &get_GovHydroR_pmax); + get_map.emplace("GovHydroR.pmin", &get_GovHydroR_pmin); + get_map.emplace("GovHydroR.qnl", &get_GovHydroR_qnl); + get_map.emplace("GovHydroR.r", &get_GovHydroR_r); + get_map.emplace("GovHydroR.t1", &get_GovHydroR_t1); + get_map.emplace("GovHydroR.t2", &get_GovHydroR_t2); + get_map.emplace("GovHydroR.t3", &get_GovHydroR_t3); + get_map.emplace("GovHydroR.t4", &get_GovHydroR_t4); + get_map.emplace("GovHydroR.t5", &get_GovHydroR_t5); + get_map.emplace("GovHydroR.t6", &get_GovHydroR_t6); + get_map.emplace("GovHydroR.t7", &get_GovHydroR_t7); + get_map.emplace("GovHydroR.t8", &get_GovHydroR_t8); + get_map.emplace("GovHydroR.td", &get_GovHydroR_td); + get_map.emplace("GovHydroR.tp", &get_GovHydroR_tp); + get_map.emplace("GovHydroR.tt", &get_GovHydroR_tt); + get_map.emplace("GovHydroR.tw", &get_GovHydroR_tw); + get_map.emplace("GovHydroR.velcl", &get_GovHydroR_velcl); + get_map.emplace("GovHydroR.velop", &get_GovHydroR_velop); } void GovHydroR::addClassGetFnsToMap(std::map& get_map) const @@ -1416,11 +1448,25 @@ void GovHydroR::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroR::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroR" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroR::declare() { return BaseClassDefiner(GovHydroR::addConstructToMap, GovHydroR::addPrimitiveAssignFnsToMap, GovHydroR::addClassAssignFnsToMap, GovHydroR::debugName); } +std::map GovHydroR::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroR_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroR.hpp b/CGMES_2.4.15_16FEB2016/GovHydroR.hpp index a14a39e56..584c41f87 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroR.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroR.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -159,8 +160,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -168,7 +176,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroR_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroWEH.cpp b/CGMES_2.4.15_16FEB2016/GovHydroWEH.cpp index a59096688..c237f3167 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroWEH.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroWEH.cpp @@ -11,82 +11,114 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroWEH(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroWEH.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dicn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dpv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.feedbackSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gtmxcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gtmxop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.rpg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.rpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tdv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroWEH::GovHydroWEH() {} GovHydroWEH::~GovHydroWEH() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroWEH.db", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dicn", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dpv", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.feedbackSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp10", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp6", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp7", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp8", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp9", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gtmxcl", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gtmxop", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss10", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss6", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss7", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss8", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss9", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.rpg", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.rpp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.td", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tdv", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tg", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tpe", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tw", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroWEH::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroWEH::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroWEH::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroWEH::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroWEH::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroWEH::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroWEH::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroWEH::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroWEH::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroWEH_db(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1576,62 +1608,62 @@ const char* GovHydroWEH::debugString() const void GovHydroWEH::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroWEH", &GovHydroWEH_factory); + factory_map.emplace("GovHydroWEH", &GovHydroWEH_factory); } void GovHydroWEH::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroWEH.db", &assign_GovHydroWEH_db); - assign_map.emplace("cim:GovHydroWEH.dicn", &assign_GovHydroWEH_dicn); - assign_map.emplace("cim:GovHydroWEH.dpv", &assign_GovHydroWEH_dpv); - assign_map.emplace("cim:GovHydroWEH.dturb", &assign_GovHydroWEH_dturb); - assign_map.emplace("cim:GovHydroWEH.feedbackSignal", &assign_GovHydroWEH_feedbackSignal); - assign_map.emplace("cim:GovHydroWEH.fl1", &assign_GovHydroWEH_fl1); - assign_map.emplace("cim:GovHydroWEH.fl2", &assign_GovHydroWEH_fl2); - assign_map.emplace("cim:GovHydroWEH.fl3", &assign_GovHydroWEH_fl3); - assign_map.emplace("cim:GovHydroWEH.fl4", &assign_GovHydroWEH_fl4); - assign_map.emplace("cim:GovHydroWEH.fl5", &assign_GovHydroWEH_fl5); - assign_map.emplace("cim:GovHydroWEH.fp1", &assign_GovHydroWEH_fp1); - assign_map.emplace("cim:GovHydroWEH.fp10", &assign_GovHydroWEH_fp10); - assign_map.emplace("cim:GovHydroWEH.fp2", &assign_GovHydroWEH_fp2); - assign_map.emplace("cim:GovHydroWEH.fp3", &assign_GovHydroWEH_fp3); - assign_map.emplace("cim:GovHydroWEH.fp4", &assign_GovHydroWEH_fp4); - assign_map.emplace("cim:GovHydroWEH.fp5", &assign_GovHydroWEH_fp5); - assign_map.emplace("cim:GovHydroWEH.fp6", &assign_GovHydroWEH_fp6); - assign_map.emplace("cim:GovHydroWEH.fp7", &assign_GovHydroWEH_fp7); - assign_map.emplace("cim:GovHydroWEH.fp8", &assign_GovHydroWEH_fp8); - assign_map.emplace("cim:GovHydroWEH.fp9", &assign_GovHydroWEH_fp9); - assign_map.emplace("cim:GovHydroWEH.gmax", &assign_GovHydroWEH_gmax); - assign_map.emplace("cim:GovHydroWEH.gmin", &assign_GovHydroWEH_gmin); - assign_map.emplace("cim:GovHydroWEH.gtmxcl", &assign_GovHydroWEH_gtmxcl); - assign_map.emplace("cim:GovHydroWEH.gtmxop", &assign_GovHydroWEH_gtmxop); - assign_map.emplace("cim:GovHydroWEH.gv1", &assign_GovHydroWEH_gv1); - assign_map.emplace("cim:GovHydroWEH.gv2", &assign_GovHydroWEH_gv2); - assign_map.emplace("cim:GovHydroWEH.gv3", &assign_GovHydroWEH_gv3); - assign_map.emplace("cim:GovHydroWEH.gv4", &assign_GovHydroWEH_gv4); - assign_map.emplace("cim:GovHydroWEH.gv5", &assign_GovHydroWEH_gv5); - assign_map.emplace("cim:GovHydroWEH.kd", &assign_GovHydroWEH_kd); - assign_map.emplace("cim:GovHydroWEH.ki", &assign_GovHydroWEH_ki); - assign_map.emplace("cim:GovHydroWEH.kp", &assign_GovHydroWEH_kp); - assign_map.emplace("cim:GovHydroWEH.mwbase", &assign_GovHydroWEH_mwbase); - assign_map.emplace("cim:GovHydroWEH.pmss1", &assign_GovHydroWEH_pmss1); - assign_map.emplace("cim:GovHydroWEH.pmss10", &assign_GovHydroWEH_pmss10); - assign_map.emplace("cim:GovHydroWEH.pmss2", &assign_GovHydroWEH_pmss2); - assign_map.emplace("cim:GovHydroWEH.pmss3", &assign_GovHydroWEH_pmss3); - assign_map.emplace("cim:GovHydroWEH.pmss4", &assign_GovHydroWEH_pmss4); - assign_map.emplace("cim:GovHydroWEH.pmss5", &assign_GovHydroWEH_pmss5); - assign_map.emplace("cim:GovHydroWEH.pmss6", &assign_GovHydroWEH_pmss6); - assign_map.emplace("cim:GovHydroWEH.pmss7", &assign_GovHydroWEH_pmss7); - assign_map.emplace("cim:GovHydroWEH.pmss8", &assign_GovHydroWEH_pmss8); - assign_map.emplace("cim:GovHydroWEH.pmss9", &assign_GovHydroWEH_pmss9); - assign_map.emplace("cim:GovHydroWEH.rpg", &assign_GovHydroWEH_rpg); - assign_map.emplace("cim:GovHydroWEH.rpp", &assign_GovHydroWEH_rpp); - assign_map.emplace("cim:GovHydroWEH.td", &assign_GovHydroWEH_td); - assign_map.emplace("cim:GovHydroWEH.tdv", &assign_GovHydroWEH_tdv); - assign_map.emplace("cim:GovHydroWEH.tg", &assign_GovHydroWEH_tg); - assign_map.emplace("cim:GovHydroWEH.tp", &assign_GovHydroWEH_tp); - assign_map.emplace("cim:GovHydroWEH.tpe", &assign_GovHydroWEH_tpe); - assign_map.emplace("cim:GovHydroWEH.tw", &assign_GovHydroWEH_tw); + assign_map.emplace("GovHydroWEH.db", &assign_GovHydroWEH_db); + assign_map.emplace("GovHydroWEH.dicn", &assign_GovHydroWEH_dicn); + assign_map.emplace("GovHydroWEH.dpv", &assign_GovHydroWEH_dpv); + assign_map.emplace("GovHydroWEH.dturb", &assign_GovHydroWEH_dturb); + assign_map.emplace("GovHydroWEH.feedbackSignal", &assign_GovHydroWEH_feedbackSignal); + assign_map.emplace("GovHydroWEH.fl1", &assign_GovHydroWEH_fl1); + assign_map.emplace("GovHydroWEH.fl2", &assign_GovHydroWEH_fl2); + assign_map.emplace("GovHydroWEH.fl3", &assign_GovHydroWEH_fl3); + assign_map.emplace("GovHydroWEH.fl4", &assign_GovHydroWEH_fl4); + assign_map.emplace("GovHydroWEH.fl5", &assign_GovHydroWEH_fl5); + assign_map.emplace("GovHydroWEH.fp1", &assign_GovHydroWEH_fp1); + assign_map.emplace("GovHydroWEH.fp10", &assign_GovHydroWEH_fp10); + assign_map.emplace("GovHydroWEH.fp2", &assign_GovHydroWEH_fp2); + assign_map.emplace("GovHydroWEH.fp3", &assign_GovHydroWEH_fp3); + assign_map.emplace("GovHydroWEH.fp4", &assign_GovHydroWEH_fp4); + assign_map.emplace("GovHydroWEH.fp5", &assign_GovHydroWEH_fp5); + assign_map.emplace("GovHydroWEH.fp6", &assign_GovHydroWEH_fp6); + assign_map.emplace("GovHydroWEH.fp7", &assign_GovHydroWEH_fp7); + assign_map.emplace("GovHydroWEH.fp8", &assign_GovHydroWEH_fp8); + assign_map.emplace("GovHydroWEH.fp9", &assign_GovHydroWEH_fp9); + assign_map.emplace("GovHydroWEH.gmax", &assign_GovHydroWEH_gmax); + assign_map.emplace("GovHydroWEH.gmin", &assign_GovHydroWEH_gmin); + assign_map.emplace("GovHydroWEH.gtmxcl", &assign_GovHydroWEH_gtmxcl); + assign_map.emplace("GovHydroWEH.gtmxop", &assign_GovHydroWEH_gtmxop); + assign_map.emplace("GovHydroWEH.gv1", &assign_GovHydroWEH_gv1); + assign_map.emplace("GovHydroWEH.gv2", &assign_GovHydroWEH_gv2); + assign_map.emplace("GovHydroWEH.gv3", &assign_GovHydroWEH_gv3); + assign_map.emplace("GovHydroWEH.gv4", &assign_GovHydroWEH_gv4); + assign_map.emplace("GovHydroWEH.gv5", &assign_GovHydroWEH_gv5); + assign_map.emplace("GovHydroWEH.kd", &assign_GovHydroWEH_kd); + assign_map.emplace("GovHydroWEH.ki", &assign_GovHydroWEH_ki); + assign_map.emplace("GovHydroWEH.kp", &assign_GovHydroWEH_kp); + assign_map.emplace("GovHydroWEH.mwbase", &assign_GovHydroWEH_mwbase); + assign_map.emplace("GovHydroWEH.pmss1", &assign_GovHydroWEH_pmss1); + assign_map.emplace("GovHydroWEH.pmss10", &assign_GovHydroWEH_pmss10); + assign_map.emplace("GovHydroWEH.pmss2", &assign_GovHydroWEH_pmss2); + assign_map.emplace("GovHydroWEH.pmss3", &assign_GovHydroWEH_pmss3); + assign_map.emplace("GovHydroWEH.pmss4", &assign_GovHydroWEH_pmss4); + assign_map.emplace("GovHydroWEH.pmss5", &assign_GovHydroWEH_pmss5); + assign_map.emplace("GovHydroWEH.pmss6", &assign_GovHydroWEH_pmss6); + assign_map.emplace("GovHydroWEH.pmss7", &assign_GovHydroWEH_pmss7); + assign_map.emplace("GovHydroWEH.pmss8", &assign_GovHydroWEH_pmss8); + assign_map.emplace("GovHydroWEH.pmss9", &assign_GovHydroWEH_pmss9); + assign_map.emplace("GovHydroWEH.rpg", &assign_GovHydroWEH_rpg); + assign_map.emplace("GovHydroWEH.rpp", &assign_GovHydroWEH_rpp); + assign_map.emplace("GovHydroWEH.td", &assign_GovHydroWEH_td); + assign_map.emplace("GovHydroWEH.tdv", &assign_GovHydroWEH_tdv); + assign_map.emplace("GovHydroWEH.tg", &assign_GovHydroWEH_tg); + assign_map.emplace("GovHydroWEH.tp", &assign_GovHydroWEH_tp); + assign_map.emplace("GovHydroWEH.tpe", &assign_GovHydroWEH_tpe); + assign_map.emplace("GovHydroWEH.tw", &assign_GovHydroWEH_tw); } void GovHydroWEH::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1641,57 +1673,57 @@ void GovHydroWEH::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroWEH.db", &get_GovHydroWEH_db); - get_map.emplace("cim:GovHydroWEH.dicn", &get_GovHydroWEH_dicn); - get_map.emplace("cim:GovHydroWEH.dpv", &get_GovHydroWEH_dpv); - get_map.emplace("cim:GovHydroWEH.dturb", &get_GovHydroWEH_dturb); - get_map.emplace("cim:GovHydroWEH.feedbackSignal", &get_GovHydroWEH_feedbackSignal); - get_map.emplace("cim:GovHydroWEH.fl1", &get_GovHydroWEH_fl1); - get_map.emplace("cim:GovHydroWEH.fl2", &get_GovHydroWEH_fl2); - get_map.emplace("cim:GovHydroWEH.fl3", &get_GovHydroWEH_fl3); - get_map.emplace("cim:GovHydroWEH.fl4", &get_GovHydroWEH_fl4); - get_map.emplace("cim:GovHydroWEH.fl5", &get_GovHydroWEH_fl5); - get_map.emplace("cim:GovHydroWEH.fp1", &get_GovHydroWEH_fp1); - get_map.emplace("cim:GovHydroWEH.fp10", &get_GovHydroWEH_fp10); - get_map.emplace("cim:GovHydroWEH.fp2", &get_GovHydroWEH_fp2); - get_map.emplace("cim:GovHydroWEH.fp3", &get_GovHydroWEH_fp3); - get_map.emplace("cim:GovHydroWEH.fp4", &get_GovHydroWEH_fp4); - get_map.emplace("cim:GovHydroWEH.fp5", &get_GovHydroWEH_fp5); - get_map.emplace("cim:GovHydroWEH.fp6", &get_GovHydroWEH_fp6); - get_map.emplace("cim:GovHydroWEH.fp7", &get_GovHydroWEH_fp7); - get_map.emplace("cim:GovHydroWEH.fp8", &get_GovHydroWEH_fp8); - get_map.emplace("cim:GovHydroWEH.fp9", &get_GovHydroWEH_fp9); - get_map.emplace("cim:GovHydroWEH.gmax", &get_GovHydroWEH_gmax); - get_map.emplace("cim:GovHydroWEH.gmin", &get_GovHydroWEH_gmin); - get_map.emplace("cim:GovHydroWEH.gtmxcl", &get_GovHydroWEH_gtmxcl); - get_map.emplace("cim:GovHydroWEH.gtmxop", &get_GovHydroWEH_gtmxop); - get_map.emplace("cim:GovHydroWEH.gv1", &get_GovHydroWEH_gv1); - get_map.emplace("cim:GovHydroWEH.gv2", &get_GovHydroWEH_gv2); - get_map.emplace("cim:GovHydroWEH.gv3", &get_GovHydroWEH_gv3); - get_map.emplace("cim:GovHydroWEH.gv4", &get_GovHydroWEH_gv4); - get_map.emplace("cim:GovHydroWEH.gv5", &get_GovHydroWEH_gv5); - get_map.emplace("cim:GovHydroWEH.kd", &get_GovHydroWEH_kd); - get_map.emplace("cim:GovHydroWEH.ki", &get_GovHydroWEH_ki); - get_map.emplace("cim:GovHydroWEH.kp", &get_GovHydroWEH_kp); - get_map.emplace("cim:GovHydroWEH.mwbase", &get_GovHydroWEH_mwbase); - get_map.emplace("cim:GovHydroWEH.pmss1", &get_GovHydroWEH_pmss1); - get_map.emplace("cim:GovHydroWEH.pmss10", &get_GovHydroWEH_pmss10); - get_map.emplace("cim:GovHydroWEH.pmss2", &get_GovHydroWEH_pmss2); - get_map.emplace("cim:GovHydroWEH.pmss3", &get_GovHydroWEH_pmss3); - get_map.emplace("cim:GovHydroWEH.pmss4", &get_GovHydroWEH_pmss4); - get_map.emplace("cim:GovHydroWEH.pmss5", &get_GovHydroWEH_pmss5); - get_map.emplace("cim:GovHydroWEH.pmss6", &get_GovHydroWEH_pmss6); - get_map.emplace("cim:GovHydroWEH.pmss7", &get_GovHydroWEH_pmss7); - get_map.emplace("cim:GovHydroWEH.pmss8", &get_GovHydroWEH_pmss8); - get_map.emplace("cim:GovHydroWEH.pmss9", &get_GovHydroWEH_pmss9); - get_map.emplace("cim:GovHydroWEH.rpg", &get_GovHydroWEH_rpg); - get_map.emplace("cim:GovHydroWEH.rpp", &get_GovHydroWEH_rpp); - get_map.emplace("cim:GovHydroWEH.td", &get_GovHydroWEH_td); - get_map.emplace("cim:GovHydroWEH.tdv", &get_GovHydroWEH_tdv); - get_map.emplace("cim:GovHydroWEH.tg", &get_GovHydroWEH_tg); - get_map.emplace("cim:GovHydroWEH.tp", &get_GovHydroWEH_tp); - get_map.emplace("cim:GovHydroWEH.tpe", &get_GovHydroWEH_tpe); - get_map.emplace("cim:GovHydroWEH.tw", &get_GovHydroWEH_tw); + get_map.emplace("GovHydroWEH.db", &get_GovHydroWEH_db); + get_map.emplace("GovHydroWEH.dicn", &get_GovHydroWEH_dicn); + get_map.emplace("GovHydroWEH.dpv", &get_GovHydroWEH_dpv); + get_map.emplace("GovHydroWEH.dturb", &get_GovHydroWEH_dturb); + get_map.emplace("GovHydroWEH.feedbackSignal", &get_GovHydroWEH_feedbackSignal); + get_map.emplace("GovHydroWEH.fl1", &get_GovHydroWEH_fl1); + get_map.emplace("GovHydroWEH.fl2", &get_GovHydroWEH_fl2); + get_map.emplace("GovHydroWEH.fl3", &get_GovHydroWEH_fl3); + get_map.emplace("GovHydroWEH.fl4", &get_GovHydroWEH_fl4); + get_map.emplace("GovHydroWEH.fl5", &get_GovHydroWEH_fl5); + get_map.emplace("GovHydroWEH.fp1", &get_GovHydroWEH_fp1); + get_map.emplace("GovHydroWEH.fp10", &get_GovHydroWEH_fp10); + get_map.emplace("GovHydroWEH.fp2", &get_GovHydroWEH_fp2); + get_map.emplace("GovHydroWEH.fp3", &get_GovHydroWEH_fp3); + get_map.emplace("GovHydroWEH.fp4", &get_GovHydroWEH_fp4); + get_map.emplace("GovHydroWEH.fp5", &get_GovHydroWEH_fp5); + get_map.emplace("GovHydroWEH.fp6", &get_GovHydroWEH_fp6); + get_map.emplace("GovHydroWEH.fp7", &get_GovHydroWEH_fp7); + get_map.emplace("GovHydroWEH.fp8", &get_GovHydroWEH_fp8); + get_map.emplace("GovHydroWEH.fp9", &get_GovHydroWEH_fp9); + get_map.emplace("GovHydroWEH.gmax", &get_GovHydroWEH_gmax); + get_map.emplace("GovHydroWEH.gmin", &get_GovHydroWEH_gmin); + get_map.emplace("GovHydroWEH.gtmxcl", &get_GovHydroWEH_gtmxcl); + get_map.emplace("GovHydroWEH.gtmxop", &get_GovHydroWEH_gtmxop); + get_map.emplace("GovHydroWEH.gv1", &get_GovHydroWEH_gv1); + get_map.emplace("GovHydroWEH.gv2", &get_GovHydroWEH_gv2); + get_map.emplace("GovHydroWEH.gv3", &get_GovHydroWEH_gv3); + get_map.emplace("GovHydroWEH.gv4", &get_GovHydroWEH_gv4); + get_map.emplace("GovHydroWEH.gv5", &get_GovHydroWEH_gv5); + get_map.emplace("GovHydroWEH.kd", &get_GovHydroWEH_kd); + get_map.emplace("GovHydroWEH.ki", &get_GovHydroWEH_ki); + get_map.emplace("GovHydroWEH.kp", &get_GovHydroWEH_kp); + get_map.emplace("GovHydroWEH.mwbase", &get_GovHydroWEH_mwbase); + get_map.emplace("GovHydroWEH.pmss1", &get_GovHydroWEH_pmss1); + get_map.emplace("GovHydroWEH.pmss10", &get_GovHydroWEH_pmss10); + get_map.emplace("GovHydroWEH.pmss2", &get_GovHydroWEH_pmss2); + get_map.emplace("GovHydroWEH.pmss3", &get_GovHydroWEH_pmss3); + get_map.emplace("GovHydroWEH.pmss4", &get_GovHydroWEH_pmss4); + get_map.emplace("GovHydroWEH.pmss5", &get_GovHydroWEH_pmss5); + get_map.emplace("GovHydroWEH.pmss6", &get_GovHydroWEH_pmss6); + get_map.emplace("GovHydroWEH.pmss7", &get_GovHydroWEH_pmss7); + get_map.emplace("GovHydroWEH.pmss8", &get_GovHydroWEH_pmss8); + get_map.emplace("GovHydroWEH.pmss9", &get_GovHydroWEH_pmss9); + get_map.emplace("GovHydroWEH.rpg", &get_GovHydroWEH_rpg); + get_map.emplace("GovHydroWEH.rpp", &get_GovHydroWEH_rpp); + get_map.emplace("GovHydroWEH.td", &get_GovHydroWEH_td); + get_map.emplace("GovHydroWEH.tdv", &get_GovHydroWEH_tdv); + get_map.emplace("GovHydroWEH.tg", &get_GovHydroWEH_tg); + get_map.emplace("GovHydroWEH.tp", &get_GovHydroWEH_tp); + get_map.emplace("GovHydroWEH.tpe", &get_GovHydroWEH_tpe); + get_map.emplace("GovHydroWEH.tw", &get_GovHydroWEH_tw); } void GovHydroWEH::addClassGetFnsToMap(std::map& get_map) const @@ -1704,11 +1736,25 @@ void GovHydroWEH::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroWEH::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroWEH" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroWEH::declare() { return BaseClassDefiner(GovHydroWEH::addConstructToMap, GovHydroWEH::addPrimitiveAssignFnsToMap, GovHydroWEH::addClassAssignFnsToMap, GovHydroWEH::debugName); } +std::map GovHydroWEH::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroWEH_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroWEH.hpp b/CGMES_2.4.15_16FEB2016/GovHydroWEH.hpp index 8417378d5..8c260f25e 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroWEH.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroWEH.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -185,8 +186,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -194,7 +202,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroWEH_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovHydroWPID.cpp b/CGMES_2.4.15_16FEB2016/GovHydroWPID.cpp index 52c605514..d4cd92336 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroWPID.cpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroWPID.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroWPID(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroWPID.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gatmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gatmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.reg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.treg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.velmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.velmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroWPID::GovHydroWPID() {} GovHydroWPID::~GovHydroWPID() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroWPID.d", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gatmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gatmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.reg", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.tb", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.treg", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.velmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.velmin", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroWPID::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroWPID::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroWPID::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroWPID::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroWPID::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroWPID::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroWPID::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroWPID::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroWPID::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroWPID_d(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* GovHydroWPID::debugString() const void GovHydroWPID::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroWPID", &GovHydroWPID_factory); + factory_map.emplace("GovHydroWPID", &GovHydroWPID_factory); } void GovHydroWPID::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroWPID.d", &assign_GovHydroWPID_d); - assign_map.emplace("cim:GovHydroWPID.gatmax", &assign_GovHydroWPID_gatmax); - assign_map.emplace("cim:GovHydroWPID.gatmin", &assign_GovHydroWPID_gatmin); - assign_map.emplace("cim:GovHydroWPID.gv1", &assign_GovHydroWPID_gv1); - assign_map.emplace("cim:GovHydroWPID.gv2", &assign_GovHydroWPID_gv2); - assign_map.emplace("cim:GovHydroWPID.gv3", &assign_GovHydroWPID_gv3); - assign_map.emplace("cim:GovHydroWPID.kd", &assign_GovHydroWPID_kd); - assign_map.emplace("cim:GovHydroWPID.ki", &assign_GovHydroWPID_ki); - assign_map.emplace("cim:GovHydroWPID.kp", &assign_GovHydroWPID_kp); - assign_map.emplace("cim:GovHydroWPID.mwbase", &assign_GovHydroWPID_mwbase); - assign_map.emplace("cim:GovHydroWPID.pgv1", &assign_GovHydroWPID_pgv1); - assign_map.emplace("cim:GovHydroWPID.pgv2", &assign_GovHydroWPID_pgv2); - assign_map.emplace("cim:GovHydroWPID.pgv3", &assign_GovHydroWPID_pgv3); - assign_map.emplace("cim:GovHydroWPID.pmax", &assign_GovHydroWPID_pmax); - assign_map.emplace("cim:GovHydroWPID.pmin", &assign_GovHydroWPID_pmin); - assign_map.emplace("cim:GovHydroWPID.reg", &assign_GovHydroWPID_reg); - assign_map.emplace("cim:GovHydroWPID.ta", &assign_GovHydroWPID_ta); - assign_map.emplace("cim:GovHydroWPID.tb", &assign_GovHydroWPID_tb); - assign_map.emplace("cim:GovHydroWPID.treg", &assign_GovHydroWPID_treg); - assign_map.emplace("cim:GovHydroWPID.tw", &assign_GovHydroWPID_tw); - assign_map.emplace("cim:GovHydroWPID.velmax", &assign_GovHydroWPID_velmax); - assign_map.emplace("cim:GovHydroWPID.velmin", &assign_GovHydroWPID_velmin); + assign_map.emplace("GovHydroWPID.d", &assign_GovHydroWPID_d); + assign_map.emplace("GovHydroWPID.gatmax", &assign_GovHydroWPID_gatmax); + assign_map.emplace("GovHydroWPID.gatmin", &assign_GovHydroWPID_gatmin); + assign_map.emplace("GovHydroWPID.gv1", &assign_GovHydroWPID_gv1); + assign_map.emplace("GovHydroWPID.gv2", &assign_GovHydroWPID_gv2); + assign_map.emplace("GovHydroWPID.gv3", &assign_GovHydroWPID_gv3); + assign_map.emplace("GovHydroWPID.kd", &assign_GovHydroWPID_kd); + assign_map.emplace("GovHydroWPID.ki", &assign_GovHydroWPID_ki); + assign_map.emplace("GovHydroWPID.kp", &assign_GovHydroWPID_kp); + assign_map.emplace("GovHydroWPID.mwbase", &assign_GovHydroWPID_mwbase); + assign_map.emplace("GovHydroWPID.pgv1", &assign_GovHydroWPID_pgv1); + assign_map.emplace("GovHydroWPID.pgv2", &assign_GovHydroWPID_pgv2); + assign_map.emplace("GovHydroWPID.pgv3", &assign_GovHydroWPID_pgv3); + assign_map.emplace("GovHydroWPID.pmax", &assign_GovHydroWPID_pmax); + assign_map.emplace("GovHydroWPID.pmin", &assign_GovHydroWPID_pmin); + assign_map.emplace("GovHydroWPID.reg", &assign_GovHydroWPID_reg); + assign_map.emplace("GovHydroWPID.ta", &assign_GovHydroWPID_ta); + assign_map.emplace("GovHydroWPID.tb", &assign_GovHydroWPID_tb); + assign_map.emplace("GovHydroWPID.treg", &assign_GovHydroWPID_treg); + assign_map.emplace("GovHydroWPID.tw", &assign_GovHydroWPID_tw); + assign_map.emplace("GovHydroWPID.velmax", &assign_GovHydroWPID_velmax); + assign_map.emplace("GovHydroWPID.velmin", &assign_GovHydroWPID_velmin); } void GovHydroWPID::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void GovHydroWPID::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroWPID.d", &get_GovHydroWPID_d); - get_map.emplace("cim:GovHydroWPID.gatmax", &get_GovHydroWPID_gatmax); - get_map.emplace("cim:GovHydroWPID.gatmin", &get_GovHydroWPID_gatmin); - get_map.emplace("cim:GovHydroWPID.gv1", &get_GovHydroWPID_gv1); - get_map.emplace("cim:GovHydroWPID.gv2", &get_GovHydroWPID_gv2); - get_map.emplace("cim:GovHydroWPID.gv3", &get_GovHydroWPID_gv3); - get_map.emplace("cim:GovHydroWPID.kd", &get_GovHydroWPID_kd); - get_map.emplace("cim:GovHydroWPID.ki", &get_GovHydroWPID_ki); - get_map.emplace("cim:GovHydroWPID.kp", &get_GovHydroWPID_kp); - get_map.emplace("cim:GovHydroWPID.mwbase", &get_GovHydroWPID_mwbase); - get_map.emplace("cim:GovHydroWPID.pgv1", &get_GovHydroWPID_pgv1); - get_map.emplace("cim:GovHydroWPID.pgv2", &get_GovHydroWPID_pgv2); - get_map.emplace("cim:GovHydroWPID.pgv3", &get_GovHydroWPID_pgv3); - get_map.emplace("cim:GovHydroWPID.pmax", &get_GovHydroWPID_pmax); - get_map.emplace("cim:GovHydroWPID.pmin", &get_GovHydroWPID_pmin); - get_map.emplace("cim:GovHydroWPID.reg", &get_GovHydroWPID_reg); - get_map.emplace("cim:GovHydroWPID.ta", &get_GovHydroWPID_ta); - get_map.emplace("cim:GovHydroWPID.tb", &get_GovHydroWPID_tb); - get_map.emplace("cim:GovHydroWPID.treg", &get_GovHydroWPID_treg); - get_map.emplace("cim:GovHydroWPID.tw", &get_GovHydroWPID_tw); - get_map.emplace("cim:GovHydroWPID.velmax", &get_GovHydroWPID_velmax); - get_map.emplace("cim:GovHydroWPID.velmin", &get_GovHydroWPID_velmin); + get_map.emplace("GovHydroWPID.d", &get_GovHydroWPID_d); + get_map.emplace("GovHydroWPID.gatmax", &get_GovHydroWPID_gatmax); + get_map.emplace("GovHydroWPID.gatmin", &get_GovHydroWPID_gatmin); + get_map.emplace("GovHydroWPID.gv1", &get_GovHydroWPID_gv1); + get_map.emplace("GovHydroWPID.gv2", &get_GovHydroWPID_gv2); + get_map.emplace("GovHydroWPID.gv3", &get_GovHydroWPID_gv3); + get_map.emplace("GovHydroWPID.kd", &get_GovHydroWPID_kd); + get_map.emplace("GovHydroWPID.ki", &get_GovHydroWPID_ki); + get_map.emplace("GovHydroWPID.kp", &get_GovHydroWPID_kp); + get_map.emplace("GovHydroWPID.mwbase", &get_GovHydroWPID_mwbase); + get_map.emplace("GovHydroWPID.pgv1", &get_GovHydroWPID_pgv1); + get_map.emplace("GovHydroWPID.pgv2", &get_GovHydroWPID_pgv2); + get_map.emplace("GovHydroWPID.pgv3", &get_GovHydroWPID_pgv3); + get_map.emplace("GovHydroWPID.pmax", &get_GovHydroWPID_pmax); + get_map.emplace("GovHydroWPID.pmin", &get_GovHydroWPID_pmin); + get_map.emplace("GovHydroWPID.reg", &get_GovHydroWPID_reg); + get_map.emplace("GovHydroWPID.ta", &get_GovHydroWPID_ta); + get_map.emplace("GovHydroWPID.tb", &get_GovHydroWPID_tb); + get_map.emplace("GovHydroWPID.treg", &get_GovHydroWPID_treg); + get_map.emplace("GovHydroWPID.tw", &get_GovHydroWPID_tw); + get_map.emplace("GovHydroWPID.velmax", &get_GovHydroWPID_velmax); + get_map.emplace("GovHydroWPID.velmin", &get_GovHydroWPID_velmin); } void GovHydroWPID::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void GovHydroWPID::addEnumGetFnsToMap(std::map& get_m TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroWPID::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroWPID" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroWPID::declare() { return BaseClassDefiner(GovHydroWPID::addConstructToMap, GovHydroWPID::addPrimitiveAssignFnsToMap, GovHydroWPID::addClassAssignFnsToMap, GovHydroWPID::debugName); } +std::map GovHydroWPID::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroWPID_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovHydroWPID.hpp b/CGMES_2.4.15_16FEB2016/GovHydroWPID.hpp index 7c5d870fa..c3f3dfb58 100644 --- a/CGMES_2.4.15_16FEB2016/GovHydroWPID.hpp +++ b/CGMES_2.4.15_16FEB2016/GovHydroWPID.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -96,8 +97,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -105,7 +113,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroWPID_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteam0.cpp b/CGMES_2.4.15_16FEB2016/GovSteam0.cpp index cc1c74f62..dfefb61c1 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteam0.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteam0.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam0(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam0.dt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam0::GovSteam0() {} GovSteam0::~GovSteam0() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteam0::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteam0::getClassNamespaceUrl() const { - { "cim:GovSteam0.dt", { CGMESProfile::DY, } }, - { "cim:GovSteam0.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteam0.r", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t2", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t3", { CGMESProfile::DY, } }, - { "cim:GovSteam0.vmax", { CGMESProfile::DY, } }, - { "cim:GovSteam0.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteam0::getPossibleProfilesForClass() const +const std::string& GovSteam0::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteam0::getPossibleProfilesForAttributes() const +const std::list& GovSteam0::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam0::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam0::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam0::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam0_dt(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovSteam0::debugString() const void GovSteam0::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam0", &GovSteam0_factory); + factory_map.emplace("GovSteam0", &GovSteam0_factory); } void GovSteam0::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam0.dt", &assign_GovSteam0_dt); - assign_map.emplace("cim:GovSteam0.mwbase", &assign_GovSteam0_mwbase); - assign_map.emplace("cim:GovSteam0.r", &assign_GovSteam0_r); - assign_map.emplace("cim:GovSteam0.t1", &assign_GovSteam0_t1); - assign_map.emplace("cim:GovSteam0.t2", &assign_GovSteam0_t2); - assign_map.emplace("cim:GovSteam0.t3", &assign_GovSteam0_t3); - assign_map.emplace("cim:GovSteam0.vmax", &assign_GovSteam0_vmax); - assign_map.emplace("cim:GovSteam0.vmin", &assign_GovSteam0_vmin); + assign_map.emplace("GovSteam0.dt", &assign_GovSteam0_dt); + assign_map.emplace("GovSteam0.mwbase", &assign_GovSteam0_mwbase); + assign_map.emplace("GovSteam0.r", &assign_GovSteam0_r); + assign_map.emplace("GovSteam0.t1", &assign_GovSteam0_t1); + assign_map.emplace("GovSteam0.t2", &assign_GovSteam0_t2); + assign_map.emplace("GovSteam0.t3", &assign_GovSteam0_t3); + assign_map.emplace("GovSteam0.vmax", &assign_GovSteam0_vmax); + assign_map.emplace("GovSteam0.vmin", &assign_GovSteam0_vmin); } void GovSteam0::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovSteam0::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam0.dt", &get_GovSteam0_dt); - get_map.emplace("cim:GovSteam0.mwbase", &get_GovSteam0_mwbase); - get_map.emplace("cim:GovSteam0.r", &get_GovSteam0_r); - get_map.emplace("cim:GovSteam0.t1", &get_GovSteam0_t1); - get_map.emplace("cim:GovSteam0.t2", &get_GovSteam0_t2); - get_map.emplace("cim:GovSteam0.t3", &get_GovSteam0_t3); - get_map.emplace("cim:GovSteam0.vmax", &get_GovSteam0_vmax); - get_map.emplace("cim:GovSteam0.vmin", &get_GovSteam0_vmin); + get_map.emplace("GovSteam0.dt", &get_GovSteam0_dt); + get_map.emplace("GovSteam0.mwbase", &get_GovSteam0_mwbase); + get_map.emplace("GovSteam0.r", &get_GovSteam0_r); + get_map.emplace("GovSteam0.t1", &get_GovSteam0_t1); + get_map.emplace("GovSteam0.t2", &get_GovSteam0_t2); + get_map.emplace("GovSteam0.t3", &get_GovSteam0_t3); + get_map.emplace("GovSteam0.vmax", &get_GovSteam0_vmax); + get_map.emplace("GovSteam0.vmin", &get_GovSteam0_vmin); } void GovSteam0::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovSteam0::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam0::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam0" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam0::declare() { return BaseClassDefiner(GovSteam0::addConstructToMap, GovSteam0::addPrimitiveAssignFnsToMap, GovSteam0::addClassAssignFnsToMap, GovSteam0::debugName); } +std::map GovSteam0::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam0_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteam0.hpp b/CGMES_2.4.15_16FEB2016/GovSteam0.hpp index 9929fe7ad..115d2321b 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteam0.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteam0.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam0_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteam1.cpp b/CGMES_2.4.15_16FEB2016/GovSteam1.cpp index 9f3c107a5..b2e9a8ee0 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteam1.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteam1.cpp @@ -11,70 +11,102 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam1.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.sdb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.sdb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.valve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam1::GovSteam1() {} GovSteam1::~GovSteam1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteam1.db1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.db2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.eps", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k7", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k8", { CGMESProfile::DY, } }, - { "cim:GovSteam1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteam1.sdb1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.sdb2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t7", { CGMESProfile::DY, } }, - { "cim:GovSteam1.uc", { CGMESProfile::DY, } }, - { "cim:GovSteam1.uo", { CGMESProfile::DY, } }, - { "cim:GovSteam1.valve", { CGMESProfile::DY, } }, -}; - -std::list -GovSteam1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteam1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteam1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteam1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteam1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteam1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam1_db1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1216,50 +1248,50 @@ const char* GovSteam1::debugString() const void GovSteam1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam1", &GovSteam1_factory); + factory_map.emplace("GovSteam1", &GovSteam1_factory); } void GovSteam1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam1.db1", &assign_GovSteam1_db1); - assign_map.emplace("cim:GovSteam1.db2", &assign_GovSteam1_db2); - assign_map.emplace("cim:GovSteam1.eps", &assign_GovSteam1_eps); - assign_map.emplace("cim:GovSteam1.gv1", &assign_GovSteam1_gv1); - assign_map.emplace("cim:GovSteam1.gv2", &assign_GovSteam1_gv2); - assign_map.emplace("cim:GovSteam1.gv3", &assign_GovSteam1_gv3); - assign_map.emplace("cim:GovSteam1.gv4", &assign_GovSteam1_gv4); - assign_map.emplace("cim:GovSteam1.gv5", &assign_GovSteam1_gv5); - assign_map.emplace("cim:GovSteam1.gv6", &assign_GovSteam1_gv6); - assign_map.emplace("cim:GovSteam1.k", &assign_GovSteam1_k); - assign_map.emplace("cim:GovSteam1.k1", &assign_GovSteam1_k1); - assign_map.emplace("cim:GovSteam1.k2", &assign_GovSteam1_k2); - assign_map.emplace("cim:GovSteam1.k3", &assign_GovSteam1_k3); - assign_map.emplace("cim:GovSteam1.k4", &assign_GovSteam1_k4); - assign_map.emplace("cim:GovSteam1.k5", &assign_GovSteam1_k5); - assign_map.emplace("cim:GovSteam1.k6", &assign_GovSteam1_k6); - assign_map.emplace("cim:GovSteam1.k7", &assign_GovSteam1_k7); - assign_map.emplace("cim:GovSteam1.k8", &assign_GovSteam1_k8); - assign_map.emplace("cim:GovSteam1.mwbase", &assign_GovSteam1_mwbase); - assign_map.emplace("cim:GovSteam1.pgv1", &assign_GovSteam1_pgv1); - assign_map.emplace("cim:GovSteam1.pgv2", &assign_GovSteam1_pgv2); - assign_map.emplace("cim:GovSteam1.pgv3", &assign_GovSteam1_pgv3); - assign_map.emplace("cim:GovSteam1.pgv4", &assign_GovSteam1_pgv4); - assign_map.emplace("cim:GovSteam1.pgv5", &assign_GovSteam1_pgv5); - assign_map.emplace("cim:GovSteam1.pgv6", &assign_GovSteam1_pgv6); - assign_map.emplace("cim:GovSteam1.pmax", &assign_GovSteam1_pmax); - assign_map.emplace("cim:GovSteam1.pmin", &assign_GovSteam1_pmin); - assign_map.emplace("cim:GovSteam1.sdb1", &assign_GovSteam1_sdb1); - assign_map.emplace("cim:GovSteam1.sdb2", &assign_GovSteam1_sdb2); - assign_map.emplace("cim:GovSteam1.t1", &assign_GovSteam1_t1); - assign_map.emplace("cim:GovSteam1.t2", &assign_GovSteam1_t2); - assign_map.emplace("cim:GovSteam1.t3", &assign_GovSteam1_t3); - assign_map.emplace("cim:GovSteam1.t4", &assign_GovSteam1_t4); - assign_map.emplace("cim:GovSteam1.t5", &assign_GovSteam1_t5); - assign_map.emplace("cim:GovSteam1.t6", &assign_GovSteam1_t6); - assign_map.emplace("cim:GovSteam1.t7", &assign_GovSteam1_t7); - assign_map.emplace("cim:GovSteam1.uc", &assign_GovSteam1_uc); - assign_map.emplace("cim:GovSteam1.uo", &assign_GovSteam1_uo); - assign_map.emplace("cim:GovSteam1.valve", &assign_GovSteam1_valve); + assign_map.emplace("GovSteam1.db1", &assign_GovSteam1_db1); + assign_map.emplace("GovSteam1.db2", &assign_GovSteam1_db2); + assign_map.emplace("GovSteam1.eps", &assign_GovSteam1_eps); + assign_map.emplace("GovSteam1.gv1", &assign_GovSteam1_gv1); + assign_map.emplace("GovSteam1.gv2", &assign_GovSteam1_gv2); + assign_map.emplace("GovSteam1.gv3", &assign_GovSteam1_gv3); + assign_map.emplace("GovSteam1.gv4", &assign_GovSteam1_gv4); + assign_map.emplace("GovSteam1.gv5", &assign_GovSteam1_gv5); + assign_map.emplace("GovSteam1.gv6", &assign_GovSteam1_gv6); + assign_map.emplace("GovSteam1.k", &assign_GovSteam1_k); + assign_map.emplace("GovSteam1.k1", &assign_GovSteam1_k1); + assign_map.emplace("GovSteam1.k2", &assign_GovSteam1_k2); + assign_map.emplace("GovSteam1.k3", &assign_GovSteam1_k3); + assign_map.emplace("GovSteam1.k4", &assign_GovSteam1_k4); + assign_map.emplace("GovSteam1.k5", &assign_GovSteam1_k5); + assign_map.emplace("GovSteam1.k6", &assign_GovSteam1_k6); + assign_map.emplace("GovSteam1.k7", &assign_GovSteam1_k7); + assign_map.emplace("GovSteam1.k8", &assign_GovSteam1_k8); + assign_map.emplace("GovSteam1.mwbase", &assign_GovSteam1_mwbase); + assign_map.emplace("GovSteam1.pgv1", &assign_GovSteam1_pgv1); + assign_map.emplace("GovSteam1.pgv2", &assign_GovSteam1_pgv2); + assign_map.emplace("GovSteam1.pgv3", &assign_GovSteam1_pgv3); + assign_map.emplace("GovSteam1.pgv4", &assign_GovSteam1_pgv4); + assign_map.emplace("GovSteam1.pgv5", &assign_GovSteam1_pgv5); + assign_map.emplace("GovSteam1.pgv6", &assign_GovSteam1_pgv6); + assign_map.emplace("GovSteam1.pmax", &assign_GovSteam1_pmax); + assign_map.emplace("GovSteam1.pmin", &assign_GovSteam1_pmin); + assign_map.emplace("GovSteam1.sdb1", &assign_GovSteam1_sdb1); + assign_map.emplace("GovSteam1.sdb2", &assign_GovSteam1_sdb2); + assign_map.emplace("GovSteam1.t1", &assign_GovSteam1_t1); + assign_map.emplace("GovSteam1.t2", &assign_GovSteam1_t2); + assign_map.emplace("GovSteam1.t3", &assign_GovSteam1_t3); + assign_map.emplace("GovSteam1.t4", &assign_GovSteam1_t4); + assign_map.emplace("GovSteam1.t5", &assign_GovSteam1_t5); + assign_map.emplace("GovSteam1.t6", &assign_GovSteam1_t6); + assign_map.emplace("GovSteam1.t7", &assign_GovSteam1_t7); + assign_map.emplace("GovSteam1.uc", &assign_GovSteam1_uc); + assign_map.emplace("GovSteam1.uo", &assign_GovSteam1_uo); + assign_map.emplace("GovSteam1.valve", &assign_GovSteam1_valve); } void GovSteam1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1269,45 +1301,45 @@ void GovSteam1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam1.db1", &get_GovSteam1_db1); - get_map.emplace("cim:GovSteam1.db2", &get_GovSteam1_db2); - get_map.emplace("cim:GovSteam1.eps", &get_GovSteam1_eps); - get_map.emplace("cim:GovSteam1.gv1", &get_GovSteam1_gv1); - get_map.emplace("cim:GovSteam1.gv2", &get_GovSteam1_gv2); - get_map.emplace("cim:GovSteam1.gv3", &get_GovSteam1_gv3); - get_map.emplace("cim:GovSteam1.gv4", &get_GovSteam1_gv4); - get_map.emplace("cim:GovSteam1.gv5", &get_GovSteam1_gv5); - get_map.emplace("cim:GovSteam1.gv6", &get_GovSteam1_gv6); - get_map.emplace("cim:GovSteam1.k", &get_GovSteam1_k); - get_map.emplace("cim:GovSteam1.k1", &get_GovSteam1_k1); - get_map.emplace("cim:GovSteam1.k2", &get_GovSteam1_k2); - get_map.emplace("cim:GovSteam1.k3", &get_GovSteam1_k3); - get_map.emplace("cim:GovSteam1.k4", &get_GovSteam1_k4); - get_map.emplace("cim:GovSteam1.k5", &get_GovSteam1_k5); - get_map.emplace("cim:GovSteam1.k6", &get_GovSteam1_k6); - get_map.emplace("cim:GovSteam1.k7", &get_GovSteam1_k7); - get_map.emplace("cim:GovSteam1.k8", &get_GovSteam1_k8); - get_map.emplace("cim:GovSteam1.mwbase", &get_GovSteam1_mwbase); - get_map.emplace("cim:GovSteam1.pgv1", &get_GovSteam1_pgv1); - get_map.emplace("cim:GovSteam1.pgv2", &get_GovSteam1_pgv2); - get_map.emplace("cim:GovSteam1.pgv3", &get_GovSteam1_pgv3); - get_map.emplace("cim:GovSteam1.pgv4", &get_GovSteam1_pgv4); - get_map.emplace("cim:GovSteam1.pgv5", &get_GovSteam1_pgv5); - get_map.emplace("cim:GovSteam1.pgv6", &get_GovSteam1_pgv6); - get_map.emplace("cim:GovSteam1.pmax", &get_GovSteam1_pmax); - get_map.emplace("cim:GovSteam1.pmin", &get_GovSteam1_pmin); - get_map.emplace("cim:GovSteam1.sdb1", &get_GovSteam1_sdb1); - get_map.emplace("cim:GovSteam1.sdb2", &get_GovSteam1_sdb2); - get_map.emplace("cim:GovSteam1.t1", &get_GovSteam1_t1); - get_map.emplace("cim:GovSteam1.t2", &get_GovSteam1_t2); - get_map.emplace("cim:GovSteam1.t3", &get_GovSteam1_t3); - get_map.emplace("cim:GovSteam1.t4", &get_GovSteam1_t4); - get_map.emplace("cim:GovSteam1.t5", &get_GovSteam1_t5); - get_map.emplace("cim:GovSteam1.t6", &get_GovSteam1_t6); - get_map.emplace("cim:GovSteam1.t7", &get_GovSteam1_t7); - get_map.emplace("cim:GovSteam1.uc", &get_GovSteam1_uc); - get_map.emplace("cim:GovSteam1.uo", &get_GovSteam1_uo); - get_map.emplace("cim:GovSteam1.valve", &get_GovSteam1_valve); + get_map.emplace("GovSteam1.db1", &get_GovSteam1_db1); + get_map.emplace("GovSteam1.db2", &get_GovSteam1_db2); + get_map.emplace("GovSteam1.eps", &get_GovSteam1_eps); + get_map.emplace("GovSteam1.gv1", &get_GovSteam1_gv1); + get_map.emplace("GovSteam1.gv2", &get_GovSteam1_gv2); + get_map.emplace("GovSteam1.gv3", &get_GovSteam1_gv3); + get_map.emplace("GovSteam1.gv4", &get_GovSteam1_gv4); + get_map.emplace("GovSteam1.gv5", &get_GovSteam1_gv5); + get_map.emplace("GovSteam1.gv6", &get_GovSteam1_gv6); + get_map.emplace("GovSteam1.k", &get_GovSteam1_k); + get_map.emplace("GovSteam1.k1", &get_GovSteam1_k1); + get_map.emplace("GovSteam1.k2", &get_GovSteam1_k2); + get_map.emplace("GovSteam1.k3", &get_GovSteam1_k3); + get_map.emplace("GovSteam1.k4", &get_GovSteam1_k4); + get_map.emplace("GovSteam1.k5", &get_GovSteam1_k5); + get_map.emplace("GovSteam1.k6", &get_GovSteam1_k6); + get_map.emplace("GovSteam1.k7", &get_GovSteam1_k7); + get_map.emplace("GovSteam1.k8", &get_GovSteam1_k8); + get_map.emplace("GovSteam1.mwbase", &get_GovSteam1_mwbase); + get_map.emplace("GovSteam1.pgv1", &get_GovSteam1_pgv1); + get_map.emplace("GovSteam1.pgv2", &get_GovSteam1_pgv2); + get_map.emplace("GovSteam1.pgv3", &get_GovSteam1_pgv3); + get_map.emplace("GovSteam1.pgv4", &get_GovSteam1_pgv4); + get_map.emplace("GovSteam1.pgv5", &get_GovSteam1_pgv5); + get_map.emplace("GovSteam1.pgv6", &get_GovSteam1_pgv6); + get_map.emplace("GovSteam1.pmax", &get_GovSteam1_pmax); + get_map.emplace("GovSteam1.pmin", &get_GovSteam1_pmin); + get_map.emplace("GovSteam1.sdb1", &get_GovSteam1_sdb1); + get_map.emplace("GovSteam1.sdb2", &get_GovSteam1_sdb2); + get_map.emplace("GovSteam1.t1", &get_GovSteam1_t1); + get_map.emplace("GovSteam1.t2", &get_GovSteam1_t2); + get_map.emplace("GovSteam1.t3", &get_GovSteam1_t3); + get_map.emplace("GovSteam1.t4", &get_GovSteam1_t4); + get_map.emplace("GovSteam1.t5", &get_GovSteam1_t5); + get_map.emplace("GovSteam1.t6", &get_GovSteam1_t6); + get_map.emplace("GovSteam1.t7", &get_GovSteam1_t7); + get_map.emplace("GovSteam1.uc", &get_GovSteam1_uc); + get_map.emplace("GovSteam1.uo", &get_GovSteam1_uo); + get_map.emplace("GovSteam1.valve", &get_GovSteam1_valve); } void GovSteam1::addClassGetFnsToMap(std::map& get_map) const @@ -1320,11 +1352,25 @@ void GovSteam1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam1::declare() { return BaseClassDefiner(GovSteam1::addConstructToMap, GovSteam1::addPrimitiveAssignFnsToMap, GovSteam1::addClassAssignFnsToMap, GovSteam1::debugName); } +std::map GovSteam1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam1_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteam1.hpp b/CGMES_2.4.15_16FEB2016/GovSteam1.hpp index da362ba99..36a730424 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteam1.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteam1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteam2.cpp b/CGMES_2.4.15_16FEB2016/GovSteam2.cpp index 8696d39ab..9bea48947 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteam2.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteam2.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam2.dbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam2::GovSteam2() {} GovSteam2::~GovSteam2() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteam2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteam2::getClassNamespaceUrl() const { - { "cim:GovSteam2.dbf", { CGMESProfile::DY, } }, - { "cim:GovSteam2.k", { CGMESProfile::DY, } }, - { "cim:GovSteam2.mnef", { CGMESProfile::DY, } }, - { "cim:GovSteam2.mxef", { CGMESProfile::DY, } }, - { "cim:GovSteam2.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteam2.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteam2.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam2.t2", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteam2::getPossibleProfilesForClass() const +const std::string& GovSteam2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteam2::getPossibleProfilesForAttributes() const +const std::list& GovSteam2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam2_dbf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovSteam2::debugString() const void GovSteam2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam2", &GovSteam2_factory); + factory_map.emplace("GovSteam2", &GovSteam2_factory); } void GovSteam2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam2.dbf", &assign_GovSteam2_dbf); - assign_map.emplace("cim:GovSteam2.k", &assign_GovSteam2_k); - assign_map.emplace("cim:GovSteam2.mnef", &assign_GovSteam2_mnef); - assign_map.emplace("cim:GovSteam2.mxef", &assign_GovSteam2_mxef); - assign_map.emplace("cim:GovSteam2.pmax", &assign_GovSteam2_pmax); - assign_map.emplace("cim:GovSteam2.pmin", &assign_GovSteam2_pmin); - assign_map.emplace("cim:GovSteam2.t1", &assign_GovSteam2_t1); - assign_map.emplace("cim:GovSteam2.t2", &assign_GovSteam2_t2); + assign_map.emplace("GovSteam2.dbf", &assign_GovSteam2_dbf); + assign_map.emplace("GovSteam2.k", &assign_GovSteam2_k); + assign_map.emplace("GovSteam2.mnef", &assign_GovSteam2_mnef); + assign_map.emplace("GovSteam2.mxef", &assign_GovSteam2_mxef); + assign_map.emplace("GovSteam2.pmax", &assign_GovSteam2_pmax); + assign_map.emplace("GovSteam2.pmin", &assign_GovSteam2_pmin); + assign_map.emplace("GovSteam2.t1", &assign_GovSteam2_t1); + assign_map.emplace("GovSteam2.t2", &assign_GovSteam2_t2); } void GovSteam2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovSteam2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam2.dbf", &get_GovSteam2_dbf); - get_map.emplace("cim:GovSteam2.k", &get_GovSteam2_k); - get_map.emplace("cim:GovSteam2.mnef", &get_GovSteam2_mnef); - get_map.emplace("cim:GovSteam2.mxef", &get_GovSteam2_mxef); - get_map.emplace("cim:GovSteam2.pmax", &get_GovSteam2_pmax); - get_map.emplace("cim:GovSteam2.pmin", &get_GovSteam2_pmin); - get_map.emplace("cim:GovSteam2.t1", &get_GovSteam2_t1); - get_map.emplace("cim:GovSteam2.t2", &get_GovSteam2_t2); + get_map.emplace("GovSteam2.dbf", &get_GovSteam2_dbf); + get_map.emplace("GovSteam2.k", &get_GovSteam2_k); + get_map.emplace("GovSteam2.mnef", &get_GovSteam2_mnef); + get_map.emplace("GovSteam2.mxef", &get_GovSteam2_mxef); + get_map.emplace("GovSteam2.pmax", &get_GovSteam2_pmax); + get_map.emplace("GovSteam2.pmin", &get_GovSteam2_pmin); + get_map.emplace("GovSteam2.t1", &get_GovSteam2_t1); + get_map.emplace("GovSteam2.t2", &get_GovSteam2_t2); } void GovSteam2::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovSteam2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam2::declare() { return BaseClassDefiner(GovSteam2::addConstructToMap, GovSteam2::addPrimitiveAssignFnsToMap, GovSteam2::addClassAssignFnsToMap, GovSteam2::debugName); } +std::map GovSteam2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam2_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteam2.hpp b/CGMES_2.4.15_16FEB2016/GovSteam2.hpp index 1968c0eb3..81c3b632d 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteam2.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteam2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteamCC.cpp b/CGMES_2.4.15_16FEB2016/GovSteamCC.cpp index 9d214c83b..adc213ef1 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamCC.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamCC.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamCC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamCC.dhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.dlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.fhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.flp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.pmaxhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.pmaxlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.rhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.rlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t1hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t1lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t3hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t3lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t4hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t4lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t5hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t5lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamCC::GovSteamCC() {} GovSteamCC::~GovSteamCC() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamCC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamCC::getClassNamespaceUrl() const { - { "cim:GovSteamCC.dhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.dlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.fhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.flp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.pmaxhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.pmaxlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.rhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.rlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t1hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t1lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t3hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t3lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t4hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t4lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t5hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t5lp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamCC::getPossibleProfilesForClass() const +const std::string& GovSteamCC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamCC::getPossibleProfilesForAttributes() const +const std::list& GovSteamCC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamCC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamCC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamCC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamCC_dhp(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* GovSteamCC::debugString() const void GovSteamCC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamCC", &GovSteamCC_factory); + factory_map.emplace("GovSteamCC", &GovSteamCC_factory); } void GovSteamCC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamCC.dhp", &assign_GovSteamCC_dhp); - assign_map.emplace("cim:GovSteamCC.dlp", &assign_GovSteamCC_dlp); - assign_map.emplace("cim:GovSteamCC.fhp", &assign_GovSteamCC_fhp); - assign_map.emplace("cim:GovSteamCC.flp", &assign_GovSteamCC_flp); - assign_map.emplace("cim:GovSteamCC.mwbase", &assign_GovSteamCC_mwbase); - assign_map.emplace("cim:GovSteamCC.pmaxhp", &assign_GovSteamCC_pmaxhp); - assign_map.emplace("cim:GovSteamCC.pmaxlp", &assign_GovSteamCC_pmaxlp); - assign_map.emplace("cim:GovSteamCC.rhp", &assign_GovSteamCC_rhp); - assign_map.emplace("cim:GovSteamCC.rlp", &assign_GovSteamCC_rlp); - assign_map.emplace("cim:GovSteamCC.t1hp", &assign_GovSteamCC_t1hp); - assign_map.emplace("cim:GovSteamCC.t1lp", &assign_GovSteamCC_t1lp); - assign_map.emplace("cim:GovSteamCC.t3hp", &assign_GovSteamCC_t3hp); - assign_map.emplace("cim:GovSteamCC.t3lp", &assign_GovSteamCC_t3lp); - assign_map.emplace("cim:GovSteamCC.t4hp", &assign_GovSteamCC_t4hp); - assign_map.emplace("cim:GovSteamCC.t4lp", &assign_GovSteamCC_t4lp); - assign_map.emplace("cim:GovSteamCC.t5hp", &assign_GovSteamCC_t5hp); - assign_map.emplace("cim:GovSteamCC.t5lp", &assign_GovSteamCC_t5lp); + assign_map.emplace("GovSteamCC.dhp", &assign_GovSteamCC_dhp); + assign_map.emplace("GovSteamCC.dlp", &assign_GovSteamCC_dlp); + assign_map.emplace("GovSteamCC.fhp", &assign_GovSteamCC_fhp); + assign_map.emplace("GovSteamCC.flp", &assign_GovSteamCC_flp); + assign_map.emplace("GovSteamCC.mwbase", &assign_GovSteamCC_mwbase); + assign_map.emplace("GovSteamCC.pmaxhp", &assign_GovSteamCC_pmaxhp); + assign_map.emplace("GovSteamCC.pmaxlp", &assign_GovSteamCC_pmaxlp); + assign_map.emplace("GovSteamCC.rhp", &assign_GovSteamCC_rhp); + assign_map.emplace("GovSteamCC.rlp", &assign_GovSteamCC_rlp); + assign_map.emplace("GovSteamCC.t1hp", &assign_GovSteamCC_t1hp); + assign_map.emplace("GovSteamCC.t1lp", &assign_GovSteamCC_t1lp); + assign_map.emplace("GovSteamCC.t3hp", &assign_GovSteamCC_t3hp); + assign_map.emplace("GovSteamCC.t3lp", &assign_GovSteamCC_t3lp); + assign_map.emplace("GovSteamCC.t4hp", &assign_GovSteamCC_t4hp); + assign_map.emplace("GovSteamCC.t4lp", &assign_GovSteamCC_t4lp); + assign_map.emplace("GovSteamCC.t5hp", &assign_GovSteamCC_t5hp); + assign_map.emplace("GovSteamCC.t5lp", &assign_GovSteamCC_t5lp); } void GovSteamCC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void GovSteamCC::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamCC.dhp", &get_GovSteamCC_dhp); - get_map.emplace("cim:GovSteamCC.dlp", &get_GovSteamCC_dlp); - get_map.emplace("cim:GovSteamCC.fhp", &get_GovSteamCC_fhp); - get_map.emplace("cim:GovSteamCC.flp", &get_GovSteamCC_flp); - get_map.emplace("cim:GovSteamCC.mwbase", &get_GovSteamCC_mwbase); - get_map.emplace("cim:GovSteamCC.pmaxhp", &get_GovSteamCC_pmaxhp); - get_map.emplace("cim:GovSteamCC.pmaxlp", &get_GovSteamCC_pmaxlp); - get_map.emplace("cim:GovSteamCC.rhp", &get_GovSteamCC_rhp); - get_map.emplace("cim:GovSteamCC.rlp", &get_GovSteamCC_rlp); - get_map.emplace("cim:GovSteamCC.t1hp", &get_GovSteamCC_t1hp); - get_map.emplace("cim:GovSteamCC.t1lp", &get_GovSteamCC_t1lp); - get_map.emplace("cim:GovSteamCC.t3hp", &get_GovSteamCC_t3hp); - get_map.emplace("cim:GovSteamCC.t3lp", &get_GovSteamCC_t3lp); - get_map.emplace("cim:GovSteamCC.t4hp", &get_GovSteamCC_t4hp); - get_map.emplace("cim:GovSteamCC.t4lp", &get_GovSteamCC_t4lp); - get_map.emplace("cim:GovSteamCC.t5hp", &get_GovSteamCC_t5hp); - get_map.emplace("cim:GovSteamCC.t5lp", &get_GovSteamCC_t5lp); + get_map.emplace("GovSteamCC.dhp", &get_GovSteamCC_dhp); + get_map.emplace("GovSteamCC.dlp", &get_GovSteamCC_dlp); + get_map.emplace("GovSteamCC.fhp", &get_GovSteamCC_fhp); + get_map.emplace("GovSteamCC.flp", &get_GovSteamCC_flp); + get_map.emplace("GovSteamCC.mwbase", &get_GovSteamCC_mwbase); + get_map.emplace("GovSteamCC.pmaxhp", &get_GovSteamCC_pmaxhp); + get_map.emplace("GovSteamCC.pmaxlp", &get_GovSteamCC_pmaxlp); + get_map.emplace("GovSteamCC.rhp", &get_GovSteamCC_rhp); + get_map.emplace("GovSteamCC.rlp", &get_GovSteamCC_rlp); + get_map.emplace("GovSteamCC.t1hp", &get_GovSteamCC_t1hp); + get_map.emplace("GovSteamCC.t1lp", &get_GovSteamCC_t1lp); + get_map.emplace("GovSteamCC.t3hp", &get_GovSteamCC_t3hp); + get_map.emplace("GovSteamCC.t3lp", &get_GovSteamCC_t3lp); + get_map.emplace("GovSteamCC.t4hp", &get_GovSteamCC_t4hp); + get_map.emplace("GovSteamCC.t4lp", &get_GovSteamCC_t4lp); + get_map.emplace("GovSteamCC.t5hp", &get_GovSteamCC_t5hp); + get_map.emplace("GovSteamCC.t5lp", &get_GovSteamCC_t5lp); } void GovSteamCC::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void GovSteamCC::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamCC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamCC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamCC::declare() { return BaseClassDefiner(GovSteamCC::addConstructToMap, GovSteamCC::addPrimitiveAssignFnsToMap, GovSteamCC::addClassAssignFnsToMap, GovSteamCC::debugName); } +std::map GovSteamCC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamCC_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteamCC.hpp b/CGMES_2.4.15_16FEB2016/GovSteamCC.hpp index 1e7c7a97d..adf6cad62 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamCC.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamCC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -81,8 +82,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -90,7 +98,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamCC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteamEU.cpp b/CGMES_2.4.15_16FEB2016/GovSteamEU.cpp index 79c47df8b..ca8ca6e82 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamEU.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamEU.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamEU(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamEU.chc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cho", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.hhpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.kfcor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.khp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.klp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.kwcor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.prhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.simx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tdp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.ten", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tfp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.thp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tvhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tvip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wfmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wmax1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wmax2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wwmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wwmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamEU::GovSteamEU() {} GovSteamEU::~GovSteamEU() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamEU.chc", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cho", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cic", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cio", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.db1", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.db2", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.hhpmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.ke", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.kfcor", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.khp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.klp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.kwcor", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.prhmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.simx", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tdp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.ten", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tf", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tfp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.thp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tip", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tlp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.trh", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tvhp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tvip", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tw", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wfmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wfmin", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wmax1", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wmax2", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wwmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wwmin", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamEU::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamEU::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamEU::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamEU::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamEU::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamEU::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamEU::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamEU::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamEU::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamEU_chc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovSteamEU::debugString() const void GovSteamEU::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamEU", &GovSteamEU_factory); + factory_map.emplace("GovSteamEU", &GovSteamEU_factory); } void GovSteamEU::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamEU.chc", &assign_GovSteamEU_chc); - assign_map.emplace("cim:GovSteamEU.cho", &assign_GovSteamEU_cho); - assign_map.emplace("cim:GovSteamEU.cic", &assign_GovSteamEU_cic); - assign_map.emplace("cim:GovSteamEU.cio", &assign_GovSteamEU_cio); - assign_map.emplace("cim:GovSteamEU.db1", &assign_GovSteamEU_db1); - assign_map.emplace("cim:GovSteamEU.db2", &assign_GovSteamEU_db2); - assign_map.emplace("cim:GovSteamEU.hhpmax", &assign_GovSteamEU_hhpmax); - assign_map.emplace("cim:GovSteamEU.ke", &assign_GovSteamEU_ke); - assign_map.emplace("cim:GovSteamEU.kfcor", &assign_GovSteamEU_kfcor); - assign_map.emplace("cim:GovSteamEU.khp", &assign_GovSteamEU_khp); - assign_map.emplace("cim:GovSteamEU.klp", &assign_GovSteamEU_klp); - assign_map.emplace("cim:GovSteamEU.kwcor", &assign_GovSteamEU_kwcor); - assign_map.emplace("cim:GovSteamEU.mwbase", &assign_GovSteamEU_mwbase); - assign_map.emplace("cim:GovSteamEU.pmax", &assign_GovSteamEU_pmax); - assign_map.emplace("cim:GovSteamEU.prhmax", &assign_GovSteamEU_prhmax); - assign_map.emplace("cim:GovSteamEU.simx", &assign_GovSteamEU_simx); - assign_map.emplace("cim:GovSteamEU.tb", &assign_GovSteamEU_tb); - assign_map.emplace("cim:GovSteamEU.tdp", &assign_GovSteamEU_tdp); - assign_map.emplace("cim:GovSteamEU.ten", &assign_GovSteamEU_ten); - assign_map.emplace("cim:GovSteamEU.tf", &assign_GovSteamEU_tf); - assign_map.emplace("cim:GovSteamEU.tfp", &assign_GovSteamEU_tfp); - assign_map.emplace("cim:GovSteamEU.thp", &assign_GovSteamEU_thp); - assign_map.emplace("cim:GovSteamEU.tip", &assign_GovSteamEU_tip); - assign_map.emplace("cim:GovSteamEU.tlp", &assign_GovSteamEU_tlp); - assign_map.emplace("cim:GovSteamEU.tp", &assign_GovSteamEU_tp); - assign_map.emplace("cim:GovSteamEU.trh", &assign_GovSteamEU_trh); - assign_map.emplace("cim:GovSteamEU.tvhp", &assign_GovSteamEU_tvhp); - assign_map.emplace("cim:GovSteamEU.tvip", &assign_GovSteamEU_tvip); - assign_map.emplace("cim:GovSteamEU.tw", &assign_GovSteamEU_tw); - assign_map.emplace("cim:GovSteamEU.wfmax", &assign_GovSteamEU_wfmax); - assign_map.emplace("cim:GovSteamEU.wfmin", &assign_GovSteamEU_wfmin); - assign_map.emplace("cim:GovSteamEU.wmax1", &assign_GovSteamEU_wmax1); - assign_map.emplace("cim:GovSteamEU.wmax2", &assign_GovSteamEU_wmax2); - assign_map.emplace("cim:GovSteamEU.wwmax", &assign_GovSteamEU_wwmax); - assign_map.emplace("cim:GovSteamEU.wwmin", &assign_GovSteamEU_wwmin); + assign_map.emplace("GovSteamEU.chc", &assign_GovSteamEU_chc); + assign_map.emplace("GovSteamEU.cho", &assign_GovSteamEU_cho); + assign_map.emplace("GovSteamEU.cic", &assign_GovSteamEU_cic); + assign_map.emplace("GovSteamEU.cio", &assign_GovSteamEU_cio); + assign_map.emplace("GovSteamEU.db1", &assign_GovSteamEU_db1); + assign_map.emplace("GovSteamEU.db2", &assign_GovSteamEU_db2); + assign_map.emplace("GovSteamEU.hhpmax", &assign_GovSteamEU_hhpmax); + assign_map.emplace("GovSteamEU.ke", &assign_GovSteamEU_ke); + assign_map.emplace("GovSteamEU.kfcor", &assign_GovSteamEU_kfcor); + assign_map.emplace("GovSteamEU.khp", &assign_GovSteamEU_khp); + assign_map.emplace("GovSteamEU.klp", &assign_GovSteamEU_klp); + assign_map.emplace("GovSteamEU.kwcor", &assign_GovSteamEU_kwcor); + assign_map.emplace("GovSteamEU.mwbase", &assign_GovSteamEU_mwbase); + assign_map.emplace("GovSteamEU.pmax", &assign_GovSteamEU_pmax); + assign_map.emplace("GovSteamEU.prhmax", &assign_GovSteamEU_prhmax); + assign_map.emplace("GovSteamEU.simx", &assign_GovSteamEU_simx); + assign_map.emplace("GovSteamEU.tb", &assign_GovSteamEU_tb); + assign_map.emplace("GovSteamEU.tdp", &assign_GovSteamEU_tdp); + assign_map.emplace("GovSteamEU.ten", &assign_GovSteamEU_ten); + assign_map.emplace("GovSteamEU.tf", &assign_GovSteamEU_tf); + assign_map.emplace("GovSteamEU.tfp", &assign_GovSteamEU_tfp); + assign_map.emplace("GovSteamEU.thp", &assign_GovSteamEU_thp); + assign_map.emplace("GovSteamEU.tip", &assign_GovSteamEU_tip); + assign_map.emplace("GovSteamEU.tlp", &assign_GovSteamEU_tlp); + assign_map.emplace("GovSteamEU.tp", &assign_GovSteamEU_tp); + assign_map.emplace("GovSteamEU.trh", &assign_GovSteamEU_trh); + assign_map.emplace("GovSteamEU.tvhp", &assign_GovSteamEU_tvhp); + assign_map.emplace("GovSteamEU.tvip", &assign_GovSteamEU_tvip); + assign_map.emplace("GovSteamEU.tw", &assign_GovSteamEU_tw); + assign_map.emplace("GovSteamEU.wfmax", &assign_GovSteamEU_wfmax); + assign_map.emplace("GovSteamEU.wfmin", &assign_GovSteamEU_wfmin); + assign_map.emplace("GovSteamEU.wmax1", &assign_GovSteamEU_wmax1); + assign_map.emplace("GovSteamEU.wmax2", &assign_GovSteamEU_wmax2); + assign_map.emplace("GovSteamEU.wwmax", &assign_GovSteamEU_wwmax); + assign_map.emplace("GovSteamEU.wwmin", &assign_GovSteamEU_wwmin); } void GovSteamEU::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,41 +1177,41 @@ void GovSteamEU::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamEU.chc", &get_GovSteamEU_chc); - get_map.emplace("cim:GovSteamEU.cho", &get_GovSteamEU_cho); - get_map.emplace("cim:GovSteamEU.cic", &get_GovSteamEU_cic); - get_map.emplace("cim:GovSteamEU.cio", &get_GovSteamEU_cio); - get_map.emplace("cim:GovSteamEU.db1", &get_GovSteamEU_db1); - get_map.emplace("cim:GovSteamEU.db2", &get_GovSteamEU_db2); - get_map.emplace("cim:GovSteamEU.hhpmax", &get_GovSteamEU_hhpmax); - get_map.emplace("cim:GovSteamEU.ke", &get_GovSteamEU_ke); - get_map.emplace("cim:GovSteamEU.kfcor", &get_GovSteamEU_kfcor); - get_map.emplace("cim:GovSteamEU.khp", &get_GovSteamEU_khp); - get_map.emplace("cim:GovSteamEU.klp", &get_GovSteamEU_klp); - get_map.emplace("cim:GovSteamEU.kwcor", &get_GovSteamEU_kwcor); - get_map.emplace("cim:GovSteamEU.mwbase", &get_GovSteamEU_mwbase); - get_map.emplace("cim:GovSteamEU.pmax", &get_GovSteamEU_pmax); - get_map.emplace("cim:GovSteamEU.prhmax", &get_GovSteamEU_prhmax); - get_map.emplace("cim:GovSteamEU.simx", &get_GovSteamEU_simx); - get_map.emplace("cim:GovSteamEU.tb", &get_GovSteamEU_tb); - get_map.emplace("cim:GovSteamEU.tdp", &get_GovSteamEU_tdp); - get_map.emplace("cim:GovSteamEU.ten", &get_GovSteamEU_ten); - get_map.emplace("cim:GovSteamEU.tf", &get_GovSteamEU_tf); - get_map.emplace("cim:GovSteamEU.tfp", &get_GovSteamEU_tfp); - get_map.emplace("cim:GovSteamEU.thp", &get_GovSteamEU_thp); - get_map.emplace("cim:GovSteamEU.tip", &get_GovSteamEU_tip); - get_map.emplace("cim:GovSteamEU.tlp", &get_GovSteamEU_tlp); - get_map.emplace("cim:GovSteamEU.tp", &get_GovSteamEU_tp); - get_map.emplace("cim:GovSteamEU.trh", &get_GovSteamEU_trh); - get_map.emplace("cim:GovSteamEU.tvhp", &get_GovSteamEU_tvhp); - get_map.emplace("cim:GovSteamEU.tvip", &get_GovSteamEU_tvip); - get_map.emplace("cim:GovSteamEU.tw", &get_GovSteamEU_tw); - get_map.emplace("cim:GovSteamEU.wfmax", &get_GovSteamEU_wfmax); - get_map.emplace("cim:GovSteamEU.wfmin", &get_GovSteamEU_wfmin); - get_map.emplace("cim:GovSteamEU.wmax1", &get_GovSteamEU_wmax1); - get_map.emplace("cim:GovSteamEU.wmax2", &get_GovSteamEU_wmax2); - get_map.emplace("cim:GovSteamEU.wwmax", &get_GovSteamEU_wwmax); - get_map.emplace("cim:GovSteamEU.wwmin", &get_GovSteamEU_wwmin); + get_map.emplace("GovSteamEU.chc", &get_GovSteamEU_chc); + get_map.emplace("GovSteamEU.cho", &get_GovSteamEU_cho); + get_map.emplace("GovSteamEU.cic", &get_GovSteamEU_cic); + get_map.emplace("GovSteamEU.cio", &get_GovSteamEU_cio); + get_map.emplace("GovSteamEU.db1", &get_GovSteamEU_db1); + get_map.emplace("GovSteamEU.db2", &get_GovSteamEU_db2); + get_map.emplace("GovSteamEU.hhpmax", &get_GovSteamEU_hhpmax); + get_map.emplace("GovSteamEU.ke", &get_GovSteamEU_ke); + get_map.emplace("GovSteamEU.kfcor", &get_GovSteamEU_kfcor); + get_map.emplace("GovSteamEU.khp", &get_GovSteamEU_khp); + get_map.emplace("GovSteamEU.klp", &get_GovSteamEU_klp); + get_map.emplace("GovSteamEU.kwcor", &get_GovSteamEU_kwcor); + get_map.emplace("GovSteamEU.mwbase", &get_GovSteamEU_mwbase); + get_map.emplace("GovSteamEU.pmax", &get_GovSteamEU_pmax); + get_map.emplace("GovSteamEU.prhmax", &get_GovSteamEU_prhmax); + get_map.emplace("GovSteamEU.simx", &get_GovSteamEU_simx); + get_map.emplace("GovSteamEU.tb", &get_GovSteamEU_tb); + get_map.emplace("GovSteamEU.tdp", &get_GovSteamEU_tdp); + get_map.emplace("GovSteamEU.ten", &get_GovSteamEU_ten); + get_map.emplace("GovSteamEU.tf", &get_GovSteamEU_tf); + get_map.emplace("GovSteamEU.tfp", &get_GovSteamEU_tfp); + get_map.emplace("GovSteamEU.thp", &get_GovSteamEU_thp); + get_map.emplace("GovSteamEU.tip", &get_GovSteamEU_tip); + get_map.emplace("GovSteamEU.tlp", &get_GovSteamEU_tlp); + get_map.emplace("GovSteamEU.tp", &get_GovSteamEU_tp); + get_map.emplace("GovSteamEU.trh", &get_GovSteamEU_trh); + get_map.emplace("GovSteamEU.tvhp", &get_GovSteamEU_tvhp); + get_map.emplace("GovSteamEU.tvip", &get_GovSteamEU_tvip); + get_map.emplace("GovSteamEU.tw", &get_GovSteamEU_tw); + get_map.emplace("GovSteamEU.wfmax", &get_GovSteamEU_wfmax); + get_map.emplace("GovSteamEU.wfmin", &get_GovSteamEU_wfmin); + get_map.emplace("GovSteamEU.wmax1", &get_GovSteamEU_wmax1); + get_map.emplace("GovSteamEU.wmax2", &get_GovSteamEU_wmax2); + get_map.emplace("GovSteamEU.wwmax", &get_GovSteamEU_wwmax); + get_map.emplace("GovSteamEU.wwmin", &get_GovSteamEU_wwmin); } void GovSteamEU::addClassGetFnsToMap(std::map& get_map) const @@ -1192,11 +1224,25 @@ void GovSteamEU::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamEU::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamEU" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamEU::declare() { return BaseClassDefiner(GovSteamEU::addConstructToMap, GovSteamEU::addPrimitiveAssignFnsToMap, GovSteamEU::addClassAssignFnsToMap, GovSteamEU::debugName); } +std::map GovSteamEU::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamEU_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteamEU.hpp b/CGMES_2.4.15_16FEB2016/GovSteamEU.hpp index 8a76be166..c1a98cc47 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamEU.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamEU.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -136,8 +137,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -145,7 +153,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamEU_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteamFV2.cpp b/CGMES_2.4.15_16FEB2016/GovSteamFV2.cpp index 2859415ca..6ed7f507a 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamFV2.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamFV2.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV2.dt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV2::GovSteamFV2() {} GovSteamFV2::~GovSteamFV2() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamFV2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamFV2::getClassNamespaceUrl() const { - { "cim:GovSteamFV2.dt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.k", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.r", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.ti", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.vmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamFV2::getPossibleProfilesForClass() const +const std::string& GovSteamFV2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamFV2::getPossibleProfilesForAttributes() const +const std::list& GovSteamFV2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV2_dt(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* GovSteamFV2::debugString() const void GovSteamFV2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV2", &GovSteamFV2_factory); + factory_map.emplace("GovSteamFV2", &GovSteamFV2_factory); } void GovSteamFV2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV2.dt", &assign_GovSteamFV2_dt); - assign_map.emplace("cim:GovSteamFV2.k", &assign_GovSteamFV2_k); - assign_map.emplace("cim:GovSteamFV2.mwbase", &assign_GovSteamFV2_mwbase); - assign_map.emplace("cim:GovSteamFV2.r", &assign_GovSteamFV2_r); - assign_map.emplace("cim:GovSteamFV2.t1", &assign_GovSteamFV2_t1); - assign_map.emplace("cim:GovSteamFV2.t3", &assign_GovSteamFV2_t3); - assign_map.emplace("cim:GovSteamFV2.ta", &assign_GovSteamFV2_ta); - assign_map.emplace("cim:GovSteamFV2.tb", &assign_GovSteamFV2_tb); - assign_map.emplace("cim:GovSteamFV2.tc", &assign_GovSteamFV2_tc); - assign_map.emplace("cim:GovSteamFV2.ti", &assign_GovSteamFV2_ti); - assign_map.emplace("cim:GovSteamFV2.tt", &assign_GovSteamFV2_tt); - assign_map.emplace("cim:GovSteamFV2.vmax", &assign_GovSteamFV2_vmax); - assign_map.emplace("cim:GovSteamFV2.vmin", &assign_GovSteamFV2_vmin); + assign_map.emplace("GovSteamFV2.dt", &assign_GovSteamFV2_dt); + assign_map.emplace("GovSteamFV2.k", &assign_GovSteamFV2_k); + assign_map.emplace("GovSteamFV2.mwbase", &assign_GovSteamFV2_mwbase); + assign_map.emplace("GovSteamFV2.r", &assign_GovSteamFV2_r); + assign_map.emplace("GovSteamFV2.t1", &assign_GovSteamFV2_t1); + assign_map.emplace("GovSteamFV2.t3", &assign_GovSteamFV2_t3); + assign_map.emplace("GovSteamFV2.ta", &assign_GovSteamFV2_ta); + assign_map.emplace("GovSteamFV2.tb", &assign_GovSteamFV2_tb); + assign_map.emplace("GovSteamFV2.tc", &assign_GovSteamFV2_tc); + assign_map.emplace("GovSteamFV2.ti", &assign_GovSteamFV2_ti); + assign_map.emplace("GovSteamFV2.tt", &assign_GovSteamFV2_tt); + assign_map.emplace("GovSteamFV2.vmax", &assign_GovSteamFV2_vmax); + assign_map.emplace("GovSteamFV2.vmin", &assign_GovSteamFV2_vmin); } void GovSteamFV2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void GovSteamFV2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV2.dt", &get_GovSteamFV2_dt); - get_map.emplace("cim:GovSteamFV2.k", &get_GovSteamFV2_k); - get_map.emplace("cim:GovSteamFV2.mwbase", &get_GovSteamFV2_mwbase); - get_map.emplace("cim:GovSteamFV2.r", &get_GovSteamFV2_r); - get_map.emplace("cim:GovSteamFV2.t1", &get_GovSteamFV2_t1); - get_map.emplace("cim:GovSteamFV2.t3", &get_GovSteamFV2_t3); - get_map.emplace("cim:GovSteamFV2.ta", &get_GovSteamFV2_ta); - get_map.emplace("cim:GovSteamFV2.tb", &get_GovSteamFV2_tb); - get_map.emplace("cim:GovSteamFV2.tc", &get_GovSteamFV2_tc); - get_map.emplace("cim:GovSteamFV2.ti", &get_GovSteamFV2_ti); - get_map.emplace("cim:GovSteamFV2.tt", &get_GovSteamFV2_tt); - get_map.emplace("cim:GovSteamFV2.vmax", &get_GovSteamFV2_vmax); - get_map.emplace("cim:GovSteamFV2.vmin", &get_GovSteamFV2_vmin); + get_map.emplace("GovSteamFV2.dt", &get_GovSteamFV2_dt); + get_map.emplace("GovSteamFV2.k", &get_GovSteamFV2_k); + get_map.emplace("GovSteamFV2.mwbase", &get_GovSteamFV2_mwbase); + get_map.emplace("GovSteamFV2.r", &get_GovSteamFV2_r); + get_map.emplace("GovSteamFV2.t1", &get_GovSteamFV2_t1); + get_map.emplace("GovSteamFV2.t3", &get_GovSteamFV2_t3); + get_map.emplace("GovSteamFV2.ta", &get_GovSteamFV2_ta); + get_map.emplace("GovSteamFV2.tb", &get_GovSteamFV2_tb); + get_map.emplace("GovSteamFV2.tc", &get_GovSteamFV2_tc); + get_map.emplace("GovSteamFV2.ti", &get_GovSteamFV2_ti); + get_map.emplace("GovSteamFV2.tt", &get_GovSteamFV2_tt); + get_map.emplace("GovSteamFV2.vmax", &get_GovSteamFV2_vmax); + get_map.emplace("GovSteamFV2.vmin", &get_GovSteamFV2_vmin); } void GovSteamFV2::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void GovSteamFV2::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV2::declare() { return BaseClassDefiner(GovSteamFV2::addConstructToMap, GovSteamFV2::addPrimitiveAssignFnsToMap, GovSteamFV2::addClassAssignFnsToMap, GovSteamFV2::debugName); } +std::map GovSteamFV2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV2_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteamFV2.hpp b/CGMES_2.4.15_16FEB2016/GovSteamFV2.hpp index 7df266adb..7aa432394 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamFV2.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamFV2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteamFV3.cpp b/CGMES_2.4.15_16FEB2016/GovSteamFV3.cpp index 871238fb7..dcabd7beb 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamFV3.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamFV3.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV3.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.prmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV3::GovSteamFV3() {} GovSteamFV3::~GovSteamFV3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamFV3.k", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.prmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.uc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamFV3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamFV3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamFV3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamFV3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamFV3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamFV3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV3_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* GovSteamFV3::debugString() const void GovSteamFV3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV3", &GovSteamFV3_factory); + factory_map.emplace("GovSteamFV3", &GovSteamFV3_factory); } void GovSteamFV3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV3.k", &assign_GovSteamFV3_k); - assign_map.emplace("cim:GovSteamFV3.k1", &assign_GovSteamFV3_k1); - assign_map.emplace("cim:GovSteamFV3.k2", &assign_GovSteamFV3_k2); - assign_map.emplace("cim:GovSteamFV3.k3", &assign_GovSteamFV3_k3); - assign_map.emplace("cim:GovSteamFV3.mwbase", &assign_GovSteamFV3_mwbase); - assign_map.emplace("cim:GovSteamFV3.pmax", &assign_GovSteamFV3_pmax); - assign_map.emplace("cim:GovSteamFV3.pmin", &assign_GovSteamFV3_pmin); - assign_map.emplace("cim:GovSteamFV3.prmax", &assign_GovSteamFV3_prmax); - assign_map.emplace("cim:GovSteamFV3.t1", &assign_GovSteamFV3_t1); - assign_map.emplace("cim:GovSteamFV3.t2", &assign_GovSteamFV3_t2); - assign_map.emplace("cim:GovSteamFV3.t3", &assign_GovSteamFV3_t3); - assign_map.emplace("cim:GovSteamFV3.t4", &assign_GovSteamFV3_t4); - assign_map.emplace("cim:GovSteamFV3.t5", &assign_GovSteamFV3_t5); - assign_map.emplace("cim:GovSteamFV3.t6", &assign_GovSteamFV3_t6); - assign_map.emplace("cim:GovSteamFV3.ta", &assign_GovSteamFV3_ta); - assign_map.emplace("cim:GovSteamFV3.tb", &assign_GovSteamFV3_tb); - assign_map.emplace("cim:GovSteamFV3.tc", &assign_GovSteamFV3_tc); - assign_map.emplace("cim:GovSteamFV3.uc", &assign_GovSteamFV3_uc); - assign_map.emplace("cim:GovSteamFV3.uo", &assign_GovSteamFV3_uo); + assign_map.emplace("GovSteamFV3.k", &assign_GovSteamFV3_k); + assign_map.emplace("GovSteamFV3.k1", &assign_GovSteamFV3_k1); + assign_map.emplace("GovSteamFV3.k2", &assign_GovSteamFV3_k2); + assign_map.emplace("GovSteamFV3.k3", &assign_GovSteamFV3_k3); + assign_map.emplace("GovSteamFV3.mwbase", &assign_GovSteamFV3_mwbase); + assign_map.emplace("GovSteamFV3.pmax", &assign_GovSteamFV3_pmax); + assign_map.emplace("GovSteamFV3.pmin", &assign_GovSteamFV3_pmin); + assign_map.emplace("GovSteamFV3.prmax", &assign_GovSteamFV3_prmax); + assign_map.emplace("GovSteamFV3.t1", &assign_GovSteamFV3_t1); + assign_map.emplace("GovSteamFV3.t2", &assign_GovSteamFV3_t2); + assign_map.emplace("GovSteamFV3.t3", &assign_GovSteamFV3_t3); + assign_map.emplace("GovSteamFV3.t4", &assign_GovSteamFV3_t4); + assign_map.emplace("GovSteamFV3.t5", &assign_GovSteamFV3_t5); + assign_map.emplace("GovSteamFV3.t6", &assign_GovSteamFV3_t6); + assign_map.emplace("GovSteamFV3.ta", &assign_GovSteamFV3_ta); + assign_map.emplace("GovSteamFV3.tb", &assign_GovSteamFV3_tb); + assign_map.emplace("GovSteamFV3.tc", &assign_GovSteamFV3_tc); + assign_map.emplace("GovSteamFV3.uc", &assign_GovSteamFV3_uc); + assign_map.emplace("GovSteamFV3.uo", &assign_GovSteamFV3_uo); } void GovSteamFV3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void GovSteamFV3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV3.k", &get_GovSteamFV3_k); - get_map.emplace("cim:GovSteamFV3.k1", &get_GovSteamFV3_k1); - get_map.emplace("cim:GovSteamFV3.k2", &get_GovSteamFV3_k2); - get_map.emplace("cim:GovSteamFV3.k3", &get_GovSteamFV3_k3); - get_map.emplace("cim:GovSteamFV3.mwbase", &get_GovSteamFV3_mwbase); - get_map.emplace("cim:GovSteamFV3.pmax", &get_GovSteamFV3_pmax); - get_map.emplace("cim:GovSteamFV3.pmin", &get_GovSteamFV3_pmin); - get_map.emplace("cim:GovSteamFV3.prmax", &get_GovSteamFV3_prmax); - get_map.emplace("cim:GovSteamFV3.t1", &get_GovSteamFV3_t1); - get_map.emplace("cim:GovSteamFV3.t2", &get_GovSteamFV3_t2); - get_map.emplace("cim:GovSteamFV3.t3", &get_GovSteamFV3_t3); - get_map.emplace("cim:GovSteamFV3.t4", &get_GovSteamFV3_t4); - get_map.emplace("cim:GovSteamFV3.t5", &get_GovSteamFV3_t5); - get_map.emplace("cim:GovSteamFV3.t6", &get_GovSteamFV3_t6); - get_map.emplace("cim:GovSteamFV3.ta", &get_GovSteamFV3_ta); - get_map.emplace("cim:GovSteamFV3.tb", &get_GovSteamFV3_tb); - get_map.emplace("cim:GovSteamFV3.tc", &get_GovSteamFV3_tc); - get_map.emplace("cim:GovSteamFV3.uc", &get_GovSteamFV3_uc); - get_map.emplace("cim:GovSteamFV3.uo", &get_GovSteamFV3_uo); + get_map.emplace("GovSteamFV3.k", &get_GovSteamFV3_k); + get_map.emplace("GovSteamFV3.k1", &get_GovSteamFV3_k1); + get_map.emplace("GovSteamFV3.k2", &get_GovSteamFV3_k2); + get_map.emplace("GovSteamFV3.k3", &get_GovSteamFV3_k3); + get_map.emplace("GovSteamFV3.mwbase", &get_GovSteamFV3_mwbase); + get_map.emplace("GovSteamFV3.pmax", &get_GovSteamFV3_pmax); + get_map.emplace("GovSteamFV3.pmin", &get_GovSteamFV3_pmin); + get_map.emplace("GovSteamFV3.prmax", &get_GovSteamFV3_prmax); + get_map.emplace("GovSteamFV3.t1", &get_GovSteamFV3_t1); + get_map.emplace("GovSteamFV3.t2", &get_GovSteamFV3_t2); + get_map.emplace("GovSteamFV3.t3", &get_GovSteamFV3_t3); + get_map.emplace("GovSteamFV3.t4", &get_GovSteamFV3_t4); + get_map.emplace("GovSteamFV3.t5", &get_GovSteamFV3_t5); + get_map.emplace("GovSteamFV3.t6", &get_GovSteamFV3_t6); + get_map.emplace("GovSteamFV3.ta", &get_GovSteamFV3_ta); + get_map.emplace("GovSteamFV3.tb", &get_GovSteamFV3_tb); + get_map.emplace("GovSteamFV3.tc", &get_GovSteamFV3_tc); + get_map.emplace("GovSteamFV3.uc", &get_GovSteamFV3_uc); + get_map.emplace("GovSteamFV3.uo", &get_GovSteamFV3_uo); } void GovSteamFV3::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void GovSteamFV3::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV3::declare() { return BaseClassDefiner(GovSteamFV3::addConstructToMap, GovSteamFV3::addPrimitiveAssignFnsToMap, GovSteamFV3::addClassAssignFnsToMap, GovSteamFV3::debugName); } +std::map GovSteamFV3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV3_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteamFV3.hpp b/CGMES_2.4.15_16FEB2016/GovSteamFV3.hpp index d69d84dd6..9fad1f0cb 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamFV3.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamFV3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV3_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteamFV4.cpp b/CGMES_2.4.15_16FEB2016/GovSteamFV4.cpp index 18cb0f39c..ca28d88c8 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamFV4.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamFV4.cpp @@ -11,82 +11,114 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV4.cpsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.cpsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.crmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.crmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.khp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kmp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kmp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.krc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ksh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.lpi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.lps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.pr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.pr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.psmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rsmimn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rsmimx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rvgmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rvgmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srsmp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.svmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.svmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tcm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.thp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tmp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ty", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.y", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.yhpmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.yhpmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ympmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ympmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV4::GovSteamFV4() {} GovSteamFV4::~GovSteamFV4() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamFV4.cpsmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.cpsmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.crmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.crmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kdc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kf1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kf3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.khp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kic", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kip", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kit", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kmp1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kmp2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.krc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ksh", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.lpi", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.lps", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.mnef", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.mxef", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.pr1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.pr2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.psmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rsmimn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rsmimx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rvgmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rvgmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srsmp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.svmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.svmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tam", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tcm", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tdc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tf1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tf2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.thp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tmp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.trh", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tv", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ty", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.y", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.yhpmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.yhpmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ympmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ympmx", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamFV4::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamFV4::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamFV4::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamFV4::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamFV4::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamFV4::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV4_cpsmn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1576,62 +1608,62 @@ const char* GovSteamFV4::debugString() const void GovSteamFV4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV4", &GovSteamFV4_factory); + factory_map.emplace("GovSteamFV4", &GovSteamFV4_factory); } void GovSteamFV4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV4.cpsmn", &assign_GovSteamFV4_cpsmn); - assign_map.emplace("cim:GovSteamFV4.cpsmx", &assign_GovSteamFV4_cpsmx); - assign_map.emplace("cim:GovSteamFV4.crmn", &assign_GovSteamFV4_crmn); - assign_map.emplace("cim:GovSteamFV4.crmx", &assign_GovSteamFV4_crmx); - assign_map.emplace("cim:GovSteamFV4.kdc", &assign_GovSteamFV4_kdc); - assign_map.emplace("cim:GovSteamFV4.kf1", &assign_GovSteamFV4_kf1); - assign_map.emplace("cim:GovSteamFV4.kf3", &assign_GovSteamFV4_kf3); - assign_map.emplace("cim:GovSteamFV4.khp", &assign_GovSteamFV4_khp); - assign_map.emplace("cim:GovSteamFV4.kic", &assign_GovSteamFV4_kic); - assign_map.emplace("cim:GovSteamFV4.kip", &assign_GovSteamFV4_kip); - assign_map.emplace("cim:GovSteamFV4.kit", &assign_GovSteamFV4_kit); - assign_map.emplace("cim:GovSteamFV4.kmp1", &assign_GovSteamFV4_kmp1); - assign_map.emplace("cim:GovSteamFV4.kmp2", &assign_GovSteamFV4_kmp2); - assign_map.emplace("cim:GovSteamFV4.kpc", &assign_GovSteamFV4_kpc); - assign_map.emplace("cim:GovSteamFV4.kpp", &assign_GovSteamFV4_kpp); - assign_map.emplace("cim:GovSteamFV4.kpt", &assign_GovSteamFV4_kpt); - assign_map.emplace("cim:GovSteamFV4.krc", &assign_GovSteamFV4_krc); - assign_map.emplace("cim:GovSteamFV4.ksh", &assign_GovSteamFV4_ksh); - assign_map.emplace("cim:GovSteamFV4.lpi", &assign_GovSteamFV4_lpi); - assign_map.emplace("cim:GovSteamFV4.lps", &assign_GovSteamFV4_lps); - assign_map.emplace("cim:GovSteamFV4.mnef", &assign_GovSteamFV4_mnef); - assign_map.emplace("cim:GovSteamFV4.mxef", &assign_GovSteamFV4_mxef); - assign_map.emplace("cim:GovSteamFV4.pr1", &assign_GovSteamFV4_pr1); - assign_map.emplace("cim:GovSteamFV4.pr2", &assign_GovSteamFV4_pr2); - assign_map.emplace("cim:GovSteamFV4.psmn", &assign_GovSteamFV4_psmn); - assign_map.emplace("cim:GovSteamFV4.rsmimn", &assign_GovSteamFV4_rsmimn); - assign_map.emplace("cim:GovSteamFV4.rsmimx", &assign_GovSteamFV4_rsmimx); - assign_map.emplace("cim:GovSteamFV4.rvgmn", &assign_GovSteamFV4_rvgmn); - assign_map.emplace("cim:GovSteamFV4.rvgmx", &assign_GovSteamFV4_rvgmx); - assign_map.emplace("cim:GovSteamFV4.srmn", &assign_GovSteamFV4_srmn); - assign_map.emplace("cim:GovSteamFV4.srmx", &assign_GovSteamFV4_srmx); - assign_map.emplace("cim:GovSteamFV4.srsmp", &assign_GovSteamFV4_srsmp); - assign_map.emplace("cim:GovSteamFV4.svmn", &assign_GovSteamFV4_svmn); - assign_map.emplace("cim:GovSteamFV4.svmx", &assign_GovSteamFV4_svmx); - assign_map.emplace("cim:GovSteamFV4.ta", &assign_GovSteamFV4_ta); - assign_map.emplace("cim:GovSteamFV4.tam", &assign_GovSteamFV4_tam); - assign_map.emplace("cim:GovSteamFV4.tc", &assign_GovSteamFV4_tc); - assign_map.emplace("cim:GovSteamFV4.tcm", &assign_GovSteamFV4_tcm); - assign_map.emplace("cim:GovSteamFV4.tdc", &assign_GovSteamFV4_tdc); - assign_map.emplace("cim:GovSteamFV4.tf1", &assign_GovSteamFV4_tf1); - assign_map.emplace("cim:GovSteamFV4.tf2", &assign_GovSteamFV4_tf2); - assign_map.emplace("cim:GovSteamFV4.thp", &assign_GovSteamFV4_thp); - assign_map.emplace("cim:GovSteamFV4.tmp", &assign_GovSteamFV4_tmp); - assign_map.emplace("cim:GovSteamFV4.trh", &assign_GovSteamFV4_trh); - assign_map.emplace("cim:GovSteamFV4.tv", &assign_GovSteamFV4_tv); - assign_map.emplace("cim:GovSteamFV4.ty", &assign_GovSteamFV4_ty); - assign_map.emplace("cim:GovSteamFV4.y", &assign_GovSteamFV4_y); - assign_map.emplace("cim:GovSteamFV4.yhpmn", &assign_GovSteamFV4_yhpmn); - assign_map.emplace("cim:GovSteamFV4.yhpmx", &assign_GovSteamFV4_yhpmx); - assign_map.emplace("cim:GovSteamFV4.ympmn", &assign_GovSteamFV4_ympmn); - assign_map.emplace("cim:GovSteamFV4.ympmx", &assign_GovSteamFV4_ympmx); + assign_map.emplace("GovSteamFV4.cpsmn", &assign_GovSteamFV4_cpsmn); + assign_map.emplace("GovSteamFV4.cpsmx", &assign_GovSteamFV4_cpsmx); + assign_map.emplace("GovSteamFV4.crmn", &assign_GovSteamFV4_crmn); + assign_map.emplace("GovSteamFV4.crmx", &assign_GovSteamFV4_crmx); + assign_map.emplace("GovSteamFV4.kdc", &assign_GovSteamFV4_kdc); + assign_map.emplace("GovSteamFV4.kf1", &assign_GovSteamFV4_kf1); + assign_map.emplace("GovSteamFV4.kf3", &assign_GovSteamFV4_kf3); + assign_map.emplace("GovSteamFV4.khp", &assign_GovSteamFV4_khp); + assign_map.emplace("GovSteamFV4.kic", &assign_GovSteamFV4_kic); + assign_map.emplace("GovSteamFV4.kip", &assign_GovSteamFV4_kip); + assign_map.emplace("GovSteamFV4.kit", &assign_GovSteamFV4_kit); + assign_map.emplace("GovSteamFV4.kmp1", &assign_GovSteamFV4_kmp1); + assign_map.emplace("GovSteamFV4.kmp2", &assign_GovSteamFV4_kmp2); + assign_map.emplace("GovSteamFV4.kpc", &assign_GovSteamFV4_kpc); + assign_map.emplace("GovSteamFV4.kpp", &assign_GovSteamFV4_kpp); + assign_map.emplace("GovSteamFV4.kpt", &assign_GovSteamFV4_kpt); + assign_map.emplace("GovSteamFV4.krc", &assign_GovSteamFV4_krc); + assign_map.emplace("GovSteamFV4.ksh", &assign_GovSteamFV4_ksh); + assign_map.emplace("GovSteamFV4.lpi", &assign_GovSteamFV4_lpi); + assign_map.emplace("GovSteamFV4.lps", &assign_GovSteamFV4_lps); + assign_map.emplace("GovSteamFV4.mnef", &assign_GovSteamFV4_mnef); + assign_map.emplace("GovSteamFV4.mxef", &assign_GovSteamFV4_mxef); + assign_map.emplace("GovSteamFV4.pr1", &assign_GovSteamFV4_pr1); + assign_map.emplace("GovSteamFV4.pr2", &assign_GovSteamFV4_pr2); + assign_map.emplace("GovSteamFV4.psmn", &assign_GovSteamFV4_psmn); + assign_map.emplace("GovSteamFV4.rsmimn", &assign_GovSteamFV4_rsmimn); + assign_map.emplace("GovSteamFV4.rsmimx", &assign_GovSteamFV4_rsmimx); + assign_map.emplace("GovSteamFV4.rvgmn", &assign_GovSteamFV4_rvgmn); + assign_map.emplace("GovSteamFV4.rvgmx", &assign_GovSteamFV4_rvgmx); + assign_map.emplace("GovSteamFV4.srmn", &assign_GovSteamFV4_srmn); + assign_map.emplace("GovSteamFV4.srmx", &assign_GovSteamFV4_srmx); + assign_map.emplace("GovSteamFV4.srsmp", &assign_GovSteamFV4_srsmp); + assign_map.emplace("GovSteamFV4.svmn", &assign_GovSteamFV4_svmn); + assign_map.emplace("GovSteamFV4.svmx", &assign_GovSteamFV4_svmx); + assign_map.emplace("GovSteamFV4.ta", &assign_GovSteamFV4_ta); + assign_map.emplace("GovSteamFV4.tam", &assign_GovSteamFV4_tam); + assign_map.emplace("GovSteamFV4.tc", &assign_GovSteamFV4_tc); + assign_map.emplace("GovSteamFV4.tcm", &assign_GovSteamFV4_tcm); + assign_map.emplace("GovSteamFV4.tdc", &assign_GovSteamFV4_tdc); + assign_map.emplace("GovSteamFV4.tf1", &assign_GovSteamFV4_tf1); + assign_map.emplace("GovSteamFV4.tf2", &assign_GovSteamFV4_tf2); + assign_map.emplace("GovSteamFV4.thp", &assign_GovSteamFV4_thp); + assign_map.emplace("GovSteamFV4.tmp", &assign_GovSteamFV4_tmp); + assign_map.emplace("GovSteamFV4.trh", &assign_GovSteamFV4_trh); + assign_map.emplace("GovSteamFV4.tv", &assign_GovSteamFV4_tv); + assign_map.emplace("GovSteamFV4.ty", &assign_GovSteamFV4_ty); + assign_map.emplace("GovSteamFV4.y", &assign_GovSteamFV4_y); + assign_map.emplace("GovSteamFV4.yhpmn", &assign_GovSteamFV4_yhpmn); + assign_map.emplace("GovSteamFV4.yhpmx", &assign_GovSteamFV4_yhpmx); + assign_map.emplace("GovSteamFV4.ympmn", &assign_GovSteamFV4_ympmn); + assign_map.emplace("GovSteamFV4.ympmx", &assign_GovSteamFV4_ympmx); } void GovSteamFV4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1641,57 +1673,57 @@ void GovSteamFV4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV4.cpsmn", &get_GovSteamFV4_cpsmn); - get_map.emplace("cim:GovSteamFV4.cpsmx", &get_GovSteamFV4_cpsmx); - get_map.emplace("cim:GovSteamFV4.crmn", &get_GovSteamFV4_crmn); - get_map.emplace("cim:GovSteamFV4.crmx", &get_GovSteamFV4_crmx); - get_map.emplace("cim:GovSteamFV4.kdc", &get_GovSteamFV4_kdc); - get_map.emplace("cim:GovSteamFV4.kf1", &get_GovSteamFV4_kf1); - get_map.emplace("cim:GovSteamFV4.kf3", &get_GovSteamFV4_kf3); - get_map.emplace("cim:GovSteamFV4.khp", &get_GovSteamFV4_khp); - get_map.emplace("cim:GovSteamFV4.kic", &get_GovSteamFV4_kic); - get_map.emplace("cim:GovSteamFV4.kip", &get_GovSteamFV4_kip); - get_map.emplace("cim:GovSteamFV4.kit", &get_GovSteamFV4_kit); - get_map.emplace("cim:GovSteamFV4.kmp1", &get_GovSteamFV4_kmp1); - get_map.emplace("cim:GovSteamFV4.kmp2", &get_GovSteamFV4_kmp2); - get_map.emplace("cim:GovSteamFV4.kpc", &get_GovSteamFV4_kpc); - get_map.emplace("cim:GovSteamFV4.kpp", &get_GovSteamFV4_kpp); - get_map.emplace("cim:GovSteamFV4.kpt", &get_GovSteamFV4_kpt); - get_map.emplace("cim:GovSteamFV4.krc", &get_GovSteamFV4_krc); - get_map.emplace("cim:GovSteamFV4.ksh", &get_GovSteamFV4_ksh); - get_map.emplace("cim:GovSteamFV4.lpi", &get_GovSteamFV4_lpi); - get_map.emplace("cim:GovSteamFV4.lps", &get_GovSteamFV4_lps); - get_map.emplace("cim:GovSteamFV4.mnef", &get_GovSteamFV4_mnef); - get_map.emplace("cim:GovSteamFV4.mxef", &get_GovSteamFV4_mxef); - get_map.emplace("cim:GovSteamFV4.pr1", &get_GovSteamFV4_pr1); - get_map.emplace("cim:GovSteamFV4.pr2", &get_GovSteamFV4_pr2); - get_map.emplace("cim:GovSteamFV4.psmn", &get_GovSteamFV4_psmn); - get_map.emplace("cim:GovSteamFV4.rsmimn", &get_GovSteamFV4_rsmimn); - get_map.emplace("cim:GovSteamFV4.rsmimx", &get_GovSteamFV4_rsmimx); - get_map.emplace("cim:GovSteamFV4.rvgmn", &get_GovSteamFV4_rvgmn); - get_map.emplace("cim:GovSteamFV4.rvgmx", &get_GovSteamFV4_rvgmx); - get_map.emplace("cim:GovSteamFV4.srmn", &get_GovSteamFV4_srmn); - get_map.emplace("cim:GovSteamFV4.srmx", &get_GovSteamFV4_srmx); - get_map.emplace("cim:GovSteamFV4.srsmp", &get_GovSteamFV4_srsmp); - get_map.emplace("cim:GovSteamFV4.svmn", &get_GovSteamFV4_svmn); - get_map.emplace("cim:GovSteamFV4.svmx", &get_GovSteamFV4_svmx); - get_map.emplace("cim:GovSteamFV4.ta", &get_GovSteamFV4_ta); - get_map.emplace("cim:GovSteamFV4.tam", &get_GovSteamFV4_tam); - get_map.emplace("cim:GovSteamFV4.tc", &get_GovSteamFV4_tc); - get_map.emplace("cim:GovSteamFV4.tcm", &get_GovSteamFV4_tcm); - get_map.emplace("cim:GovSteamFV4.tdc", &get_GovSteamFV4_tdc); - get_map.emplace("cim:GovSteamFV4.tf1", &get_GovSteamFV4_tf1); - get_map.emplace("cim:GovSteamFV4.tf2", &get_GovSteamFV4_tf2); - get_map.emplace("cim:GovSteamFV4.thp", &get_GovSteamFV4_thp); - get_map.emplace("cim:GovSteamFV4.tmp", &get_GovSteamFV4_tmp); - get_map.emplace("cim:GovSteamFV4.trh", &get_GovSteamFV4_trh); - get_map.emplace("cim:GovSteamFV4.tv", &get_GovSteamFV4_tv); - get_map.emplace("cim:GovSteamFV4.ty", &get_GovSteamFV4_ty); - get_map.emplace("cim:GovSteamFV4.y", &get_GovSteamFV4_y); - get_map.emplace("cim:GovSteamFV4.yhpmn", &get_GovSteamFV4_yhpmn); - get_map.emplace("cim:GovSteamFV4.yhpmx", &get_GovSteamFV4_yhpmx); - get_map.emplace("cim:GovSteamFV4.ympmn", &get_GovSteamFV4_ympmn); - get_map.emplace("cim:GovSteamFV4.ympmx", &get_GovSteamFV4_ympmx); + get_map.emplace("GovSteamFV4.cpsmn", &get_GovSteamFV4_cpsmn); + get_map.emplace("GovSteamFV4.cpsmx", &get_GovSteamFV4_cpsmx); + get_map.emplace("GovSteamFV4.crmn", &get_GovSteamFV4_crmn); + get_map.emplace("GovSteamFV4.crmx", &get_GovSteamFV4_crmx); + get_map.emplace("GovSteamFV4.kdc", &get_GovSteamFV4_kdc); + get_map.emplace("GovSteamFV4.kf1", &get_GovSteamFV4_kf1); + get_map.emplace("GovSteamFV4.kf3", &get_GovSteamFV4_kf3); + get_map.emplace("GovSteamFV4.khp", &get_GovSteamFV4_khp); + get_map.emplace("GovSteamFV4.kic", &get_GovSteamFV4_kic); + get_map.emplace("GovSteamFV4.kip", &get_GovSteamFV4_kip); + get_map.emplace("GovSteamFV4.kit", &get_GovSteamFV4_kit); + get_map.emplace("GovSteamFV4.kmp1", &get_GovSteamFV4_kmp1); + get_map.emplace("GovSteamFV4.kmp2", &get_GovSteamFV4_kmp2); + get_map.emplace("GovSteamFV4.kpc", &get_GovSteamFV4_kpc); + get_map.emplace("GovSteamFV4.kpp", &get_GovSteamFV4_kpp); + get_map.emplace("GovSteamFV4.kpt", &get_GovSteamFV4_kpt); + get_map.emplace("GovSteamFV4.krc", &get_GovSteamFV4_krc); + get_map.emplace("GovSteamFV4.ksh", &get_GovSteamFV4_ksh); + get_map.emplace("GovSteamFV4.lpi", &get_GovSteamFV4_lpi); + get_map.emplace("GovSteamFV4.lps", &get_GovSteamFV4_lps); + get_map.emplace("GovSteamFV4.mnef", &get_GovSteamFV4_mnef); + get_map.emplace("GovSteamFV4.mxef", &get_GovSteamFV4_mxef); + get_map.emplace("GovSteamFV4.pr1", &get_GovSteamFV4_pr1); + get_map.emplace("GovSteamFV4.pr2", &get_GovSteamFV4_pr2); + get_map.emplace("GovSteamFV4.psmn", &get_GovSteamFV4_psmn); + get_map.emplace("GovSteamFV4.rsmimn", &get_GovSteamFV4_rsmimn); + get_map.emplace("GovSteamFV4.rsmimx", &get_GovSteamFV4_rsmimx); + get_map.emplace("GovSteamFV4.rvgmn", &get_GovSteamFV4_rvgmn); + get_map.emplace("GovSteamFV4.rvgmx", &get_GovSteamFV4_rvgmx); + get_map.emplace("GovSteamFV4.srmn", &get_GovSteamFV4_srmn); + get_map.emplace("GovSteamFV4.srmx", &get_GovSteamFV4_srmx); + get_map.emplace("GovSteamFV4.srsmp", &get_GovSteamFV4_srsmp); + get_map.emplace("GovSteamFV4.svmn", &get_GovSteamFV4_svmn); + get_map.emplace("GovSteamFV4.svmx", &get_GovSteamFV4_svmx); + get_map.emplace("GovSteamFV4.ta", &get_GovSteamFV4_ta); + get_map.emplace("GovSteamFV4.tam", &get_GovSteamFV4_tam); + get_map.emplace("GovSteamFV4.tc", &get_GovSteamFV4_tc); + get_map.emplace("GovSteamFV4.tcm", &get_GovSteamFV4_tcm); + get_map.emplace("GovSteamFV4.tdc", &get_GovSteamFV4_tdc); + get_map.emplace("GovSteamFV4.tf1", &get_GovSteamFV4_tf1); + get_map.emplace("GovSteamFV4.tf2", &get_GovSteamFV4_tf2); + get_map.emplace("GovSteamFV4.thp", &get_GovSteamFV4_thp); + get_map.emplace("GovSteamFV4.tmp", &get_GovSteamFV4_tmp); + get_map.emplace("GovSteamFV4.trh", &get_GovSteamFV4_trh); + get_map.emplace("GovSteamFV4.tv", &get_GovSteamFV4_tv); + get_map.emplace("GovSteamFV4.ty", &get_GovSteamFV4_ty); + get_map.emplace("GovSteamFV4.y", &get_GovSteamFV4_y); + get_map.emplace("GovSteamFV4.yhpmn", &get_GovSteamFV4_yhpmn); + get_map.emplace("GovSteamFV4.yhpmx", &get_GovSteamFV4_yhpmx); + get_map.emplace("GovSteamFV4.ympmn", &get_GovSteamFV4_ympmn); + get_map.emplace("GovSteamFV4.ympmx", &get_GovSteamFV4_ympmx); } void GovSteamFV4::addClassGetFnsToMap(std::map& get_map) const @@ -1704,11 +1736,25 @@ void GovSteamFV4::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV4::declare() { return BaseClassDefiner(GovSteamFV4::addConstructToMap, GovSteamFV4::addPrimitiveAssignFnsToMap, GovSteamFV4::addClassAssignFnsToMap, GovSteamFV4::debugName); } +std::map GovSteamFV4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV4_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteamFV4.hpp b/CGMES_2.4.15_16FEB2016/GovSteamFV4.hpp index 1a9e91160..629f2e3f7 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamFV4.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamFV4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -183,8 +184,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -192,7 +200,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV4_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteamIEEE1.cpp b/CGMES_2.4.15_16FEB2016/GovSteamIEEE1.cpp index 8dafb5bc6..4104cb890 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamIEEE1.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamIEEE1.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamIEEE1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamIEEE1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamIEEE1::GovSteamIEEE1() {} GovSteamIEEE1::~GovSteamIEEE1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamIEEE1.k", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k4", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k5", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k6", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k7", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k8", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t7", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.uc", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamIEEE1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamIEEE1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamIEEE1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamIEEE1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamIEEE1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamIEEE1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamIEEE1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamIEEE1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamIEEE1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamIEEE1_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* GovSteamIEEE1::debugString() const void GovSteamIEEE1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamIEEE1", &GovSteamIEEE1_factory); + factory_map.emplace("GovSteamIEEE1", &GovSteamIEEE1_factory); } void GovSteamIEEE1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamIEEE1.k", &assign_GovSteamIEEE1_k); - assign_map.emplace("cim:GovSteamIEEE1.k1", &assign_GovSteamIEEE1_k1); - assign_map.emplace("cim:GovSteamIEEE1.k2", &assign_GovSteamIEEE1_k2); - assign_map.emplace("cim:GovSteamIEEE1.k3", &assign_GovSteamIEEE1_k3); - assign_map.emplace("cim:GovSteamIEEE1.k4", &assign_GovSteamIEEE1_k4); - assign_map.emplace("cim:GovSteamIEEE1.k5", &assign_GovSteamIEEE1_k5); - assign_map.emplace("cim:GovSteamIEEE1.k6", &assign_GovSteamIEEE1_k6); - assign_map.emplace("cim:GovSteamIEEE1.k7", &assign_GovSteamIEEE1_k7); - assign_map.emplace("cim:GovSteamIEEE1.k8", &assign_GovSteamIEEE1_k8); - assign_map.emplace("cim:GovSteamIEEE1.mwbase", &assign_GovSteamIEEE1_mwbase); - assign_map.emplace("cim:GovSteamIEEE1.pmax", &assign_GovSteamIEEE1_pmax); - assign_map.emplace("cim:GovSteamIEEE1.pmin", &assign_GovSteamIEEE1_pmin); - assign_map.emplace("cim:GovSteamIEEE1.t1", &assign_GovSteamIEEE1_t1); - assign_map.emplace("cim:GovSteamIEEE1.t2", &assign_GovSteamIEEE1_t2); - assign_map.emplace("cim:GovSteamIEEE1.t3", &assign_GovSteamIEEE1_t3); - assign_map.emplace("cim:GovSteamIEEE1.t4", &assign_GovSteamIEEE1_t4); - assign_map.emplace("cim:GovSteamIEEE1.t5", &assign_GovSteamIEEE1_t5); - assign_map.emplace("cim:GovSteamIEEE1.t6", &assign_GovSteamIEEE1_t6); - assign_map.emplace("cim:GovSteamIEEE1.t7", &assign_GovSteamIEEE1_t7); - assign_map.emplace("cim:GovSteamIEEE1.uc", &assign_GovSteamIEEE1_uc); - assign_map.emplace("cim:GovSteamIEEE1.uo", &assign_GovSteamIEEE1_uo); + assign_map.emplace("GovSteamIEEE1.k", &assign_GovSteamIEEE1_k); + assign_map.emplace("GovSteamIEEE1.k1", &assign_GovSteamIEEE1_k1); + assign_map.emplace("GovSteamIEEE1.k2", &assign_GovSteamIEEE1_k2); + assign_map.emplace("GovSteamIEEE1.k3", &assign_GovSteamIEEE1_k3); + assign_map.emplace("GovSteamIEEE1.k4", &assign_GovSteamIEEE1_k4); + assign_map.emplace("GovSteamIEEE1.k5", &assign_GovSteamIEEE1_k5); + assign_map.emplace("GovSteamIEEE1.k6", &assign_GovSteamIEEE1_k6); + assign_map.emplace("GovSteamIEEE1.k7", &assign_GovSteamIEEE1_k7); + assign_map.emplace("GovSteamIEEE1.k8", &assign_GovSteamIEEE1_k8); + assign_map.emplace("GovSteamIEEE1.mwbase", &assign_GovSteamIEEE1_mwbase); + assign_map.emplace("GovSteamIEEE1.pmax", &assign_GovSteamIEEE1_pmax); + assign_map.emplace("GovSteamIEEE1.pmin", &assign_GovSteamIEEE1_pmin); + assign_map.emplace("GovSteamIEEE1.t1", &assign_GovSteamIEEE1_t1); + assign_map.emplace("GovSteamIEEE1.t2", &assign_GovSteamIEEE1_t2); + assign_map.emplace("GovSteamIEEE1.t3", &assign_GovSteamIEEE1_t3); + assign_map.emplace("GovSteamIEEE1.t4", &assign_GovSteamIEEE1_t4); + assign_map.emplace("GovSteamIEEE1.t5", &assign_GovSteamIEEE1_t5); + assign_map.emplace("GovSteamIEEE1.t6", &assign_GovSteamIEEE1_t6); + assign_map.emplace("GovSteamIEEE1.t7", &assign_GovSteamIEEE1_t7); + assign_map.emplace("GovSteamIEEE1.uc", &assign_GovSteamIEEE1_uc); + assign_map.emplace("GovSteamIEEE1.uo", &assign_GovSteamIEEE1_uo); } void GovSteamIEEE1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void GovSteamIEEE1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamIEEE1.k", &get_GovSteamIEEE1_k); - get_map.emplace("cim:GovSteamIEEE1.k1", &get_GovSteamIEEE1_k1); - get_map.emplace("cim:GovSteamIEEE1.k2", &get_GovSteamIEEE1_k2); - get_map.emplace("cim:GovSteamIEEE1.k3", &get_GovSteamIEEE1_k3); - get_map.emplace("cim:GovSteamIEEE1.k4", &get_GovSteamIEEE1_k4); - get_map.emplace("cim:GovSteamIEEE1.k5", &get_GovSteamIEEE1_k5); - get_map.emplace("cim:GovSteamIEEE1.k6", &get_GovSteamIEEE1_k6); - get_map.emplace("cim:GovSteamIEEE1.k7", &get_GovSteamIEEE1_k7); - get_map.emplace("cim:GovSteamIEEE1.k8", &get_GovSteamIEEE1_k8); - get_map.emplace("cim:GovSteamIEEE1.mwbase", &get_GovSteamIEEE1_mwbase); - get_map.emplace("cim:GovSteamIEEE1.pmax", &get_GovSteamIEEE1_pmax); - get_map.emplace("cim:GovSteamIEEE1.pmin", &get_GovSteamIEEE1_pmin); - get_map.emplace("cim:GovSteamIEEE1.t1", &get_GovSteamIEEE1_t1); - get_map.emplace("cim:GovSteamIEEE1.t2", &get_GovSteamIEEE1_t2); - get_map.emplace("cim:GovSteamIEEE1.t3", &get_GovSteamIEEE1_t3); - get_map.emplace("cim:GovSteamIEEE1.t4", &get_GovSteamIEEE1_t4); - get_map.emplace("cim:GovSteamIEEE1.t5", &get_GovSteamIEEE1_t5); - get_map.emplace("cim:GovSteamIEEE1.t6", &get_GovSteamIEEE1_t6); - get_map.emplace("cim:GovSteamIEEE1.t7", &get_GovSteamIEEE1_t7); - get_map.emplace("cim:GovSteamIEEE1.uc", &get_GovSteamIEEE1_uc); - get_map.emplace("cim:GovSteamIEEE1.uo", &get_GovSteamIEEE1_uo); + get_map.emplace("GovSteamIEEE1.k", &get_GovSteamIEEE1_k); + get_map.emplace("GovSteamIEEE1.k1", &get_GovSteamIEEE1_k1); + get_map.emplace("GovSteamIEEE1.k2", &get_GovSteamIEEE1_k2); + get_map.emplace("GovSteamIEEE1.k3", &get_GovSteamIEEE1_k3); + get_map.emplace("GovSteamIEEE1.k4", &get_GovSteamIEEE1_k4); + get_map.emplace("GovSteamIEEE1.k5", &get_GovSteamIEEE1_k5); + get_map.emplace("GovSteamIEEE1.k6", &get_GovSteamIEEE1_k6); + get_map.emplace("GovSteamIEEE1.k7", &get_GovSteamIEEE1_k7); + get_map.emplace("GovSteamIEEE1.k8", &get_GovSteamIEEE1_k8); + get_map.emplace("GovSteamIEEE1.mwbase", &get_GovSteamIEEE1_mwbase); + get_map.emplace("GovSteamIEEE1.pmax", &get_GovSteamIEEE1_pmax); + get_map.emplace("GovSteamIEEE1.pmin", &get_GovSteamIEEE1_pmin); + get_map.emplace("GovSteamIEEE1.t1", &get_GovSteamIEEE1_t1); + get_map.emplace("GovSteamIEEE1.t2", &get_GovSteamIEEE1_t2); + get_map.emplace("GovSteamIEEE1.t3", &get_GovSteamIEEE1_t3); + get_map.emplace("GovSteamIEEE1.t4", &get_GovSteamIEEE1_t4); + get_map.emplace("GovSteamIEEE1.t5", &get_GovSteamIEEE1_t5); + get_map.emplace("GovSteamIEEE1.t6", &get_GovSteamIEEE1_t6); + get_map.emplace("GovSteamIEEE1.t7", &get_GovSteamIEEE1_t7); + get_map.emplace("GovSteamIEEE1.uc", &get_GovSteamIEEE1_uc); + get_map.emplace("GovSteamIEEE1.uo", &get_GovSteamIEEE1_uo); } void GovSteamIEEE1::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void GovSteamIEEE1::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamIEEE1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamIEEE1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamIEEE1::declare() { return BaseClassDefiner(GovSteamIEEE1::addConstructToMap, GovSteamIEEE1::addPrimitiveAssignFnsToMap, GovSteamIEEE1::addClassAssignFnsToMap, GovSteamIEEE1::debugName); } +std::map GovSteamIEEE1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamIEEE1_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteamIEEE1.hpp b/CGMES_2.4.15_16FEB2016/GovSteamIEEE1.hpp index 23784774a..f6a96cf0d 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamIEEE1.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamIEEE1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamIEEE1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GovSteamSGO.cpp b/CGMES_2.4.15_16FEB2016/GovSteamSGO.cpp index 8b1ecdec7..2bba143af 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamSGO.cpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamSGO.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamSGO(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamSGO.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamSGO::GovSteamSGO() {} GovSteamSGO::~GovSteamSGO() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamSGO::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamSGO::getClassNamespaceUrl() const { - { "cim:GovSteamSGO.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t6", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamSGO::getPossibleProfilesForClass() const +const std::string& GovSteamSGO::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamSGO::getPossibleProfilesForAttributes() const +const std::list& GovSteamSGO::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamSGO::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamSGO::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamSGO::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamSGO_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* GovSteamSGO::debugString() const void GovSteamSGO::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamSGO", &GovSteamSGO_factory); + factory_map.emplace("GovSteamSGO", &GovSteamSGO_factory); } void GovSteamSGO::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamSGO.k1", &assign_GovSteamSGO_k1); - assign_map.emplace("cim:GovSteamSGO.k2", &assign_GovSteamSGO_k2); - assign_map.emplace("cim:GovSteamSGO.k3", &assign_GovSteamSGO_k3); - assign_map.emplace("cim:GovSteamSGO.mwbase", &assign_GovSteamSGO_mwbase); - assign_map.emplace("cim:GovSteamSGO.pmax", &assign_GovSteamSGO_pmax); - assign_map.emplace("cim:GovSteamSGO.pmin", &assign_GovSteamSGO_pmin); - assign_map.emplace("cim:GovSteamSGO.t1", &assign_GovSteamSGO_t1); - assign_map.emplace("cim:GovSteamSGO.t2", &assign_GovSteamSGO_t2); - assign_map.emplace("cim:GovSteamSGO.t3", &assign_GovSteamSGO_t3); - assign_map.emplace("cim:GovSteamSGO.t4", &assign_GovSteamSGO_t4); - assign_map.emplace("cim:GovSteamSGO.t5", &assign_GovSteamSGO_t5); - assign_map.emplace("cim:GovSteamSGO.t6", &assign_GovSteamSGO_t6); + assign_map.emplace("GovSteamSGO.k1", &assign_GovSteamSGO_k1); + assign_map.emplace("GovSteamSGO.k2", &assign_GovSteamSGO_k2); + assign_map.emplace("GovSteamSGO.k3", &assign_GovSteamSGO_k3); + assign_map.emplace("GovSteamSGO.mwbase", &assign_GovSteamSGO_mwbase); + assign_map.emplace("GovSteamSGO.pmax", &assign_GovSteamSGO_pmax); + assign_map.emplace("GovSteamSGO.pmin", &assign_GovSteamSGO_pmin); + assign_map.emplace("GovSteamSGO.t1", &assign_GovSteamSGO_t1); + assign_map.emplace("GovSteamSGO.t2", &assign_GovSteamSGO_t2); + assign_map.emplace("GovSteamSGO.t3", &assign_GovSteamSGO_t3); + assign_map.emplace("GovSteamSGO.t4", &assign_GovSteamSGO_t4); + assign_map.emplace("GovSteamSGO.t5", &assign_GovSteamSGO_t5); + assign_map.emplace("GovSteamSGO.t6", &assign_GovSteamSGO_t6); } void GovSteamSGO::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void GovSteamSGO::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamSGO.k1", &get_GovSteamSGO_k1); - get_map.emplace("cim:GovSteamSGO.k2", &get_GovSteamSGO_k2); - get_map.emplace("cim:GovSteamSGO.k3", &get_GovSteamSGO_k3); - get_map.emplace("cim:GovSteamSGO.mwbase", &get_GovSteamSGO_mwbase); - get_map.emplace("cim:GovSteamSGO.pmax", &get_GovSteamSGO_pmax); - get_map.emplace("cim:GovSteamSGO.pmin", &get_GovSteamSGO_pmin); - get_map.emplace("cim:GovSteamSGO.t1", &get_GovSteamSGO_t1); - get_map.emplace("cim:GovSteamSGO.t2", &get_GovSteamSGO_t2); - get_map.emplace("cim:GovSteamSGO.t3", &get_GovSteamSGO_t3); - get_map.emplace("cim:GovSteamSGO.t4", &get_GovSteamSGO_t4); - get_map.emplace("cim:GovSteamSGO.t5", &get_GovSteamSGO_t5); - get_map.emplace("cim:GovSteamSGO.t6", &get_GovSteamSGO_t6); + get_map.emplace("GovSteamSGO.k1", &get_GovSteamSGO_k1); + get_map.emplace("GovSteamSGO.k2", &get_GovSteamSGO_k2); + get_map.emplace("GovSteamSGO.k3", &get_GovSteamSGO_k3); + get_map.emplace("GovSteamSGO.mwbase", &get_GovSteamSGO_mwbase); + get_map.emplace("GovSteamSGO.pmax", &get_GovSteamSGO_pmax); + get_map.emplace("GovSteamSGO.pmin", &get_GovSteamSGO_pmin); + get_map.emplace("GovSteamSGO.t1", &get_GovSteamSGO_t1); + get_map.emplace("GovSteamSGO.t2", &get_GovSteamSGO_t2); + get_map.emplace("GovSteamSGO.t3", &get_GovSteamSGO_t3); + get_map.emplace("GovSteamSGO.t4", &get_GovSteamSGO_t4); + get_map.emplace("GovSteamSGO.t5", &get_GovSteamSGO_t5); + get_map.emplace("GovSteamSGO.t6", &get_GovSteamSGO_t6); } void GovSteamSGO::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void GovSteamSGO::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamSGO::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamSGO" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamSGO::declare() { return BaseClassDefiner(GovSteamSGO::addConstructToMap, GovSteamSGO::addPrimitiveAssignFnsToMap, GovSteamSGO::addClassAssignFnsToMap, GovSteamSGO::debugName); } +std::map GovSteamSGO::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamSGO_factory() diff --git a/CGMES_2.4.15_16FEB2016/GovSteamSGO.hpp b/CGMES_2.4.15_16FEB2016/GovSteamSGO.hpp index 337ba6a63..1de9573a5 100644 --- a/CGMES_2.4.15_16FEB2016/GovSteamSGO.hpp +++ b/CGMES_2.4.15_16FEB2016/GovSteamSGO.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamSGO_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GrossToNetActivePowerCurve.cpp b/CGMES_2.4.15_16FEB2016/GrossToNetActivePowerCurve.cpp index 8e293b959..7a92732fe 100644 --- a/CGMES_2.4.15_16FEB2016/GrossToNetActivePowerCurve.cpp +++ b/CGMES_2.4.15_16FEB2016/GrossToNetActivePowerCurve.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GrossToNetActivePowerCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GrossToNetActivePowerCurve.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GrossToNetActivePowerCurve::GrossToNetActivePowerCurve() : GeneratingUnit(nullptr) {} GrossToNetActivePowerCurve::~GrossToNetActivePowerCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& GrossToNetActivePowerCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GrossToNetActivePowerCurve::getClassNamespaceUrl() const { - { "cim:GrossToNetActivePowerCurve.GeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GrossToNetActivePowerCurve::getPossibleProfilesForClass() const +const std::string& GrossToNetActivePowerCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GrossToNetActivePowerCurve::getPossibleProfilesForAttributes() const +const std::list& GrossToNetActivePowerCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GrossToNetActivePowerCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GrossToNetActivePowerCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GrossToNetActivePowerCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeneratingUnit_GrossToNetActivePowerCurves(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* GrossToNetActivePowerCurve::debugString() const void GrossToNetActivePowerCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GrossToNetActivePowerCurve", &GrossToNetActivePowerCurve_factory); + factory_map.emplace("GrossToNetActivePowerCurve", &GrossToNetActivePowerCurve_factory); } void GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GrossToNetActivePowerCurve.GeneratingUnit", &assign_GrossToNetActivePowerCurve_GeneratingUnit); + assign_map.emplace("GrossToNetActivePowerCurve.GeneratingUnit", &assign_GrossToNetActivePowerCurve_GeneratingUnit); } void GrossToNetActivePowerCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void GrossToNetActivePowerCurve::addPrimitiveGetFnsToMap(std::map& get_map) const { Curve::addClassGetFnsToMap(get_map); - get_map.emplace("cim:GrossToNetActivePowerCurve.GeneratingUnit", &get_GrossToNetActivePowerCurve_GeneratingUnit); + get_map.emplace("GrossToNetActivePowerCurve.GeneratingUnit", &get_GrossToNetActivePowerCurve_GeneratingUnit); } void GrossToNetActivePowerCurve::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void GrossToNetActivePowerCurve::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GrossToNetActivePowerCurve::declare() { return BaseClassDefiner(GrossToNetActivePowerCurve::addConstructToMap, GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap, GrossToNetActivePowerCurve::addClassAssignFnsToMap, GrossToNetActivePowerCurve::debugName); } +std::map GrossToNetActivePowerCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GrossToNetActivePowerCurve_factory() diff --git a/CGMES_2.4.15_16FEB2016/GrossToNetActivePowerCurve.hpp b/CGMES_2.4.15_16FEB2016/GrossToNetActivePowerCurve.hpp index eb1b8ea60..e3b30d932 100644 --- a/CGMES_2.4.15_16FEB2016/GrossToNetActivePowerCurve.hpp +++ b/CGMES_2.4.15_16FEB2016/GrossToNetActivePowerCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GrossToNetActivePowerCurve_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Ground.cpp b/CGMES_2.4.15_16FEB2016/Ground.cpp index e2e2a0868..6d74bce19 100644 --- a/CGMES_2.4.15_16FEB2016/Ground.cpp +++ b/CGMES_2.4.15_16FEB2016/Ground.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Ground(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Ground::Ground() {} Ground::~Ground() {} -static const std::list PossibleProfilesForClass = +const std::list& Ground::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Ground::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Ground::getPossibleProfilesForClass() const +const std::string& Ground::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Ground::getPossibleProfilesForAttributes() const +const std::list& Ground::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Ground::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Ground::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Ground::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Ground::debugName[] = "Ground"; @@ -46,7 +78,7 @@ const char* Ground::debugString() const void Ground::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Ground", &Ground_factory); + factory_map.emplace("Ground", &Ground_factory); } void Ground::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Ground::addEnumGetFnsToMap(std::map& get_map) co ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Ground::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Ground" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Ground::declare() { return BaseClassDefiner(Ground::addConstructToMap, Ground::addPrimitiveAssignFnsToMap, Ground::addClassAssignFnsToMap, Ground::debugName); } +std::map Ground::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Ground_factory() diff --git a/CGMES_2.4.15_16FEB2016/Ground.hpp b/CGMES_2.4.15_16FEB2016/Ground.hpp index 56bd33323..0d91fea23 100644 --- a/CGMES_2.4.15_16FEB2016/Ground.hpp +++ b/CGMES_2.4.15_16FEB2016/Ground.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Ground_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GroundDisconnector.cpp b/CGMES_2.4.15_16FEB2016/GroundDisconnector.cpp index 1926b56f9..68c739329 100644 --- a/CGMES_2.4.15_16FEB2016/GroundDisconnector.cpp +++ b/CGMES_2.4.15_16FEB2016/GroundDisconnector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GroundDisconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + GroundDisconnector::GroundDisconnector() {} GroundDisconnector::~GroundDisconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& GroundDisconnector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GroundDisconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GroundDisconnector::getPossibleProfilesForClass() const +const std::string& GroundDisconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GroundDisconnector::getPossibleProfilesForAttributes() const +const std::list& GroundDisconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GroundDisconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GroundDisconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GroundDisconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char GroundDisconnector::debugName[] = "GroundDisconnector"; @@ -47,7 +79,7 @@ const char* GroundDisconnector::debugString() const void GroundDisconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GroundDisconnector", &GroundDisconnector_factory); + factory_map.emplace("GroundDisconnector", &GroundDisconnector_factory); } void GroundDisconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void GroundDisconnector::addEnumGetFnsToMap(std::map& Switch::addEnumGetFnsToMap(get_map); } +bool GroundDisconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GroundDisconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GroundDisconnector::declare() { return BaseClassDefiner(GroundDisconnector::addConstructToMap, GroundDisconnector::addPrimitiveAssignFnsToMap, GroundDisconnector::addClassAssignFnsToMap, GroundDisconnector::debugName); } +std::map GroundDisconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GroundDisconnector_factory() diff --git a/CGMES_2.4.15_16FEB2016/GroundDisconnector.hpp b/CGMES_2.4.15_16FEB2016/GroundDisconnector.hpp index ccf2b2c27..69caa93ce 100644 --- a/CGMES_2.4.15_16FEB2016/GroundDisconnector.hpp +++ b/CGMES_2.4.15_16FEB2016/GroundDisconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GroundDisconnector_factory(); diff --git a/CGMES_2.4.15_16FEB2016/GroundingImpedance.cpp b/CGMES_2.4.15_16FEB2016/GroundingImpedance.cpp index db7a16992..4fd437b9e 100644 --- a/CGMES_2.4.15_16FEB2016/GroundingImpedance.cpp +++ b/CGMES_2.4.15_16FEB2016/GroundingImpedance.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GroundingImpedance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GroundingImpedance.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GroundingImpedance::GroundingImpedance() {} GroundingImpedance::~GroundingImpedance() {} -static const std::list PossibleProfilesForClass = +const std::list& GroundingImpedance::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GroundingImpedance::getClassNamespaceUrl() const { - { "cim:GroundingImpedance.x", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GroundingImpedance::getPossibleProfilesForClass() const +const std::string& GroundingImpedance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GroundingImpedance::getPossibleProfilesForAttributes() const +const std::list& GroundingImpedance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EarthFaultCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GroundingImpedance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GroundingImpedance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GroundingImpedance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GroundingImpedance_x(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* GroundingImpedance::debugString() const void GroundingImpedance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GroundingImpedance", &GroundingImpedance_factory); + factory_map.emplace("GroundingImpedance", &GroundingImpedance_factory); } void GroundingImpedance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GroundingImpedance.x", &assign_GroundingImpedance_x); + assign_map.emplace("GroundingImpedance.x", &assign_GroundingImpedance_x); } void GroundingImpedance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void GroundingImpedance::addClassAssignFnsToMap(std::unordered_map& get_map) const { EarthFaultCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GroundingImpedance.x", &get_GroundingImpedance_x); + get_map.emplace("GroundingImpedance.x", &get_GroundingImpedance_x); } void GroundingImpedance::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void GroundingImpedance::addEnumGetFnsToMap(std::map& EarthFaultCompensator::addEnumGetFnsToMap(get_map); } +bool GroundingImpedance::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GroundingImpedance" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GroundingImpedance::declare() { return BaseClassDefiner(GroundingImpedance::addConstructToMap, GroundingImpedance::addPrimitiveAssignFnsToMap, GroundingImpedance::addClassAssignFnsToMap, GroundingImpedance::debugName); } +std::map GroundingImpedance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EarthFaultCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GroundingImpedance_factory() diff --git a/CGMES_2.4.15_16FEB2016/GroundingImpedance.hpp b/CGMES_2.4.15_16FEB2016/GroundingImpedance.hpp index ad05b5aaa..f0d8f26e9 100644 --- a/CGMES_2.4.15_16FEB2016/GroundingImpedance.hpp +++ b/CGMES_2.4.15_16FEB2016/GroundingImpedance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EarthFaultCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GroundingImpedance_factory(); diff --git a/CGMES_2.4.15_16FEB2016/HydroGeneratingUnit.cpp b/CGMES_2.4.15_16FEB2016/HydroGeneratingUnit.cpp index 13c3f4210..13327edd9 100644 --- a/CGMES_2.4.15_16FEB2016/HydroGeneratingUnit.cpp +++ b/CGMES_2.4.15_16FEB2016/HydroGeneratingUnit.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroGeneratingUnit.HydroPowerPlant", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroGeneratingUnit.energyConversionCapability", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroGeneratingUnit::HydroGeneratingUnit() : HydroPowerPlant(nullptr) {} HydroGeneratingUnit::~HydroGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroGeneratingUnit::getClassNamespaceUrl() const { - { "cim:HydroGeneratingUnit.HydroPowerPlant", { CGMESProfile::EQ, } }, - { "cim:HydroGeneratingUnit.energyConversionCapability", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroGeneratingUnit::getPossibleProfilesForClass() const +const std::string& HydroGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& HydroGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroPowerPlant_HydroGeneratingUnits(BaseClass*, BaseClass*); @@ -110,17 +142,17 @@ const char* HydroGeneratingUnit::debugString() const void HydroGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroGeneratingUnit", &HydroGeneratingUnit_factory); + factory_map.emplace("HydroGeneratingUnit", &HydroGeneratingUnit_factory); } void HydroGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroGeneratingUnit.energyConversionCapability", &assign_HydroGeneratingUnit_energyConversionCapability); + assign_map.emplace("HydroGeneratingUnit.energyConversionCapability", &assign_HydroGeneratingUnit_energyConversionCapability); } void HydroGeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroGeneratingUnit.HydroPowerPlant", &assign_HydroGeneratingUnit_HydroPowerPlant); + assign_map.emplace("HydroGeneratingUnit.HydroPowerPlant", &assign_HydroGeneratingUnit_HydroPowerPlant); } void HydroGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -131,13 +163,19 @@ void HydroGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { GeneratingUnit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.HydroPowerPlant", &get_HydroGeneratingUnit_HydroPowerPlant); + get_map.emplace("HydroGeneratingUnit.HydroPowerPlant", &get_HydroGeneratingUnit_HydroPowerPlant); } void HydroGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const { GeneratingUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.energyConversionCapability", &get_HydroGeneratingUnit_energyConversionCapability); + get_map.emplace("HydroGeneratingUnit.energyConversionCapability", &get_HydroGeneratingUnit_energyConversionCapability); +} + +bool HydroGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner HydroGeneratingUnit::declare() @@ -145,6 +183,14 @@ const BaseClassDefiner HydroGeneratingUnit::declare() return BaseClassDefiner(HydroGeneratingUnit::addConstructToMap, HydroGeneratingUnit::addPrimitiveAssignFnsToMap, HydroGeneratingUnit::addClassAssignFnsToMap, HydroGeneratingUnit::debugName); } +std::map HydroGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroGeneratingUnit_factory() diff --git a/CGMES_2.4.15_16FEB2016/HydroGeneratingUnit.hpp b/CGMES_2.4.15_16FEB2016/HydroGeneratingUnit.hpp index 74455c5e9..1ca522d48 100644 --- a/CGMES_2.4.15_16FEB2016/HydroGeneratingUnit.hpp +++ b/CGMES_2.4.15_16FEB2016/HydroGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "HydroEnergyConversionKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/HydroPowerPlant.cpp b/CGMES_2.4.15_16FEB2016/HydroPowerPlant.cpp index ad177ac88..e6ed79aeb 100644 --- a/CGMES_2.4.15_16FEB2016/HydroPowerPlant.cpp +++ b/CGMES_2.4.15_16FEB2016/HydroPowerPlant.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroPowerPlant(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroPowerPlant.HydroGeneratingUnits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPowerPlant.HydroPumps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPowerPlant.hydroPlantStorageType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroPowerPlant::HydroPowerPlant() {} HydroPowerPlant::~HydroPowerPlant() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroPowerPlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroPowerPlant::getClassNamespaceUrl() const { - { "cim:HydroPowerPlant.HydroGeneratingUnits", { CGMESProfile::EQ, } }, - { "cim:HydroPowerPlant.HydroPumps", { CGMESProfile::EQ, } }, - { "cim:HydroPowerPlant.hydroPlantStorageType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroPowerPlant::getPossibleProfilesForClass() const +const std::string& HydroPowerPlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroPowerPlant::getPossibleProfilesForAttributes() const +const std::list& HydroPowerPlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroPowerPlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroPowerPlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroPowerPlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroGeneratingUnit_HydroPowerPlant(BaseClass*, BaseClass*); @@ -116,18 +148,18 @@ const char* HydroPowerPlant::debugString() const void HydroPowerPlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroPowerPlant", &HydroPowerPlant_factory); + factory_map.emplace("HydroPowerPlant", &HydroPowerPlant_factory); } void HydroPowerPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPowerPlant.hydroPlantStorageType", &assign_HydroPowerPlant_hydroPlantStorageType); + assign_map.emplace("HydroPowerPlant.hydroPlantStorageType", &assign_HydroPowerPlant_hydroPlantStorageType); } void HydroPowerPlant::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPowerPlant.HydroGeneratingUnits", &assign_HydroPowerPlant_HydroGeneratingUnits); - assign_map.emplace("cim:HydroPowerPlant.HydroPumps", &assign_HydroPowerPlant_HydroPumps); + assign_map.emplace("HydroPowerPlant.HydroGeneratingUnits", &assign_HydroPowerPlant_HydroGeneratingUnits); + assign_map.emplace("HydroPowerPlant.HydroPumps", &assign_HydroPowerPlant_HydroPumps); } void HydroPowerPlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -143,7 +175,13 @@ void HydroPowerPlant::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:HydroPowerPlant.hydroPlantStorageType", &get_HydroPowerPlant_hydroPlantStorageType); + get_map.emplace("HydroPowerPlant.hydroPlantStorageType", &get_HydroPowerPlant_hydroPlantStorageType); +} + +bool HydroPowerPlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroPowerPlant" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner HydroPowerPlant::declare() @@ -151,6 +189,14 @@ const BaseClassDefiner HydroPowerPlant::declare() return BaseClassDefiner(HydroPowerPlant::addConstructToMap, HydroPowerPlant::addPrimitiveAssignFnsToMap, HydroPowerPlant::addClassAssignFnsToMap, HydroPowerPlant::debugName); } +std::map HydroPowerPlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroPowerPlant_factory() diff --git a/CGMES_2.4.15_16FEB2016/HydroPowerPlant.hpp b/CGMES_2.4.15_16FEB2016/HydroPowerPlant.hpp index ab7712608..dc3babd9d 100644 --- a/CGMES_2.4.15_16FEB2016/HydroPowerPlant.hpp +++ b/CGMES_2.4.15_16FEB2016/HydroPowerPlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "HydroPlantStorageKind.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroPowerPlant_factory(); diff --git a/CGMES_2.4.15_16FEB2016/HydroPump.cpp b/CGMES_2.4.15_16FEB2016/HydroPump.cpp index 8d0613e79..92e2ecc57 100644 --- a/CGMES_2.4.15_16FEB2016/HydroPump.cpp +++ b/CGMES_2.4.15_16FEB2016/HydroPump.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroPump(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroPump.HydroPowerPlant", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPump.RotatingMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroPump::HydroPump() : HydroPowerPlant(nullptr), RotatingMachine(nullptr) {} HydroPump::~HydroPump() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroPump::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroPump::getClassNamespaceUrl() const { - { "cim:HydroPump.HydroPowerPlant", { CGMESProfile::EQ, } }, - { "cim:HydroPump.RotatingMachine", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroPump::getPossibleProfilesForClass() const +const std::string& HydroPump::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroPump::getPossibleProfilesForAttributes() const +const std::list& HydroPump::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroPump::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroPump::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroPump::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroPowerPlant_HydroPumps(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* HydroPump::debugString() const void HydroPump::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroPump", &HydroPump_factory); + factory_map.emplace("HydroPump", &HydroPump_factory); } void HydroPump::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void HydroPump::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPump.HydroPowerPlant", &assign_HydroPump_HydroPowerPlant); - assign_map.emplace("cim:HydroPump.RotatingMachine", &assign_HydroPump_RotatingMachine); + assign_map.emplace("HydroPump.HydroPowerPlant", &assign_HydroPump_HydroPowerPlant); + assign_map.emplace("HydroPump.RotatingMachine", &assign_HydroPump_RotatingMachine); } void HydroPump::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void HydroPump::addPrimitiveGetFnsToMap(std::map& get void HydroPump::addClassGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:HydroPump.HydroPowerPlant", &get_HydroPump_HydroPowerPlant); - get_map.emplace("cim:HydroPump.RotatingMachine", &get_HydroPump_RotatingMachine); + get_map.emplace("HydroPump.HydroPowerPlant", &get_HydroPump_HydroPowerPlant); + get_map.emplace("HydroPump.RotatingMachine", &get_HydroPump_RotatingMachine); } void HydroPump::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void HydroPump::addEnumGetFnsToMap(std::map& get_map) Equipment::addEnumGetFnsToMap(get_map); } +bool HydroPump::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroPump" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner HydroPump::declare() { return BaseClassDefiner(HydroPump::addConstructToMap, HydroPump::addPrimitiveAssignFnsToMap, HydroPump::addClassAssignFnsToMap, HydroPump::debugName); } +std::map HydroPump::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroPump_factory() diff --git a/CGMES_2.4.15_16FEB2016/HydroPump.hpp b/CGMES_2.4.15_16FEB2016/HydroPump.hpp index 9830eee7a..eaac31638 100644 --- a/CGMES_2.4.15_16FEB2016/HydroPump.hpp +++ b/CGMES_2.4.15_16FEB2016/HydroPump.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroPump_factory(); diff --git a/CGMES_2.4.15_16FEB2016/IdentifiedObject.cpp b/CGMES_2.4.15_16FEB2016/IdentifiedObject.cpp index b32ec2f29..6dee90ce3 100644 --- a/CGMES_2.4.15_16FEB2016/IdentifiedObject.cpp +++ b/CGMES_2.4.15_16FEB2016/IdentifiedObject.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + IdentifiedObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::GL, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "IdentifiedObject.DiagramObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "IdentifiedObject.description", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.energyIdentCodeEic", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.mRID", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.name", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + IdentifiedObject::IdentifiedObject() {} IdentifiedObject::~IdentifiedObject() {} -static const std::list PossibleProfilesForClass = +const std::list& IdentifiedObject::getAttributeNames() const { - CGMESProfile::DL, - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::GL, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; - -static const std::map> PossibleProfilesForAttributes = + return getCimClassDetails().AttrNamesList; +} + +const std::string& IdentifiedObject::getClassNamespaceUrl() const { - { "cim:IdentifiedObject.DiagramObjects", { CGMESProfile::DL, } }, - { "cim:IdentifiedObject.description", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.energyIdentCodeEic", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.mRID", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.name", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.shortName", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, -}; - -std::list -IdentifiedObject::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& IdentifiedObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -IdentifiedObject::getPossibleProfilesForAttributes() const +const std::list& IdentifiedObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& IdentifiedObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& IdentifiedObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& IdentifiedObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_IdentifiedObject(BaseClass*, BaseClass*); @@ -224,31 +256,31 @@ const char* IdentifiedObject::debugString() const void IdentifiedObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:IdentifiedObject", &IdentifiedObject_factory); + factory_map.emplace("IdentifiedObject", &IdentifiedObject_factory); } void IdentifiedObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:IdentifiedObject.description", &assign_IdentifiedObject_description); - assign_map.emplace("cim:IdentifiedObject.energyIdentCodeEic", &assign_IdentifiedObject_energyIdentCodeEic); - assign_map.emplace("cim:IdentifiedObject.mRID", &assign_IdentifiedObject_mRID); - assign_map.emplace("cim:IdentifiedObject.name", &assign_IdentifiedObject_name); - assign_map.emplace("cim:IdentifiedObject.shortName", &assign_IdentifiedObject_shortName); + assign_map.emplace("IdentifiedObject.description", &assign_IdentifiedObject_description); + assign_map.emplace("IdentifiedObject.energyIdentCodeEic", &assign_IdentifiedObject_energyIdentCodeEic); + assign_map.emplace("IdentifiedObject.mRID", &assign_IdentifiedObject_mRID); + assign_map.emplace("IdentifiedObject.name", &assign_IdentifiedObject_name); + assign_map.emplace("IdentifiedObject.shortName", &assign_IdentifiedObject_shortName); } void IdentifiedObject::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:IdentifiedObject.DiagramObjects", &assign_IdentifiedObject_DiagramObjects); + assign_map.emplace("IdentifiedObject.DiagramObjects", &assign_IdentifiedObject_DiagramObjects); } void IdentifiedObject::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:IdentifiedObject.description", &get_IdentifiedObject_description); - get_map.emplace("cim:IdentifiedObject.energyIdentCodeEic", &get_IdentifiedObject_energyIdentCodeEic); - get_map.emplace("cim:IdentifiedObject.mRID", &get_IdentifiedObject_mRID); - get_map.emplace("cim:IdentifiedObject.name", &get_IdentifiedObject_name); - get_map.emplace("cim:IdentifiedObject.shortName", &get_IdentifiedObject_shortName); + get_map.emplace("IdentifiedObject.description", &get_IdentifiedObject_description); + get_map.emplace("IdentifiedObject.energyIdentCodeEic", &get_IdentifiedObject_energyIdentCodeEic); + get_map.emplace("IdentifiedObject.mRID", &get_IdentifiedObject_mRID); + get_map.emplace("IdentifiedObject.name", &get_IdentifiedObject_name); + get_map.emplace("IdentifiedObject.shortName", &get_IdentifiedObject_shortName); } void IdentifiedObject::addClassGetFnsToMap(std::map& get_map) const @@ -261,11 +293,25 @@ void IdentifiedObject::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool IdentifiedObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "IdentifiedObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner IdentifiedObject::declare() { return BaseClassDefiner(IdentifiedObject::addConstructToMap, IdentifiedObject::addPrimitiveAssignFnsToMap, IdentifiedObject::addClassAssignFnsToMap, IdentifiedObject::debugName); } +std::map IdentifiedObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* IdentifiedObject_factory() diff --git a/CGMES_2.4.15_16FEB2016/IdentifiedObject.hpp b/CGMES_2.4.15_16FEB2016/IdentifiedObject.hpp index 43941ab22..d6dcf27a1 100644 --- a/CGMES_2.4.15_16FEB2016/IdentifiedObject.hpp +++ b/CGMES_2.4.15_16FEB2016/IdentifiedObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* IdentifiedObject_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Junction.cpp b/CGMES_2.4.15_16FEB2016/Junction.cpp index cd2b7c69d..b66050dd3 100644 --- a/CGMES_2.4.15_16FEB2016/Junction.cpp +++ b/CGMES_2.4.15_16FEB2016/Junction.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Junction(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Junction::Junction() {} Junction::~Junction() {} -static const std::list PossibleProfilesForClass = +const std::list& Junction::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Junction::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Junction::getPossibleProfilesForClass() const +const std::string& Junction::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Junction::getPossibleProfilesForAttributes() const +const std::list& Junction::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Connector::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Junction::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Junction::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Junction::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Junction::debugName[] = "Junction"; @@ -47,7 +79,7 @@ const char* Junction::debugString() const void Junction::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Junction", &Junction_factory); + factory_map.emplace("Junction", &Junction_factory); } void Junction::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Junction::addEnumGetFnsToMap(std::map& get_map) Connector::addEnumGetFnsToMap(get_map); } +bool Junction::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Junction" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Junction::declare() { return BaseClassDefiner(Junction::addConstructToMap, Junction::addPrimitiveAssignFnsToMap, Junction::addClassAssignFnsToMap, Junction::debugName); } +std::map Junction::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Connector::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Junction_factory() diff --git a/CGMES_2.4.15_16FEB2016/Junction.hpp b/CGMES_2.4.15_16FEB2016/Junction.hpp index 4f48dfc33..36e05a59e 100644 --- a/CGMES_2.4.15_16FEB2016/Junction.hpp +++ b/CGMES_2.4.15_16FEB2016/Junction.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Connector.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Junction_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Limit.cpp b/CGMES_2.4.15_16FEB2016/Limit.cpp index a83eaee0d..d2a7473d3 100644 --- a/CGMES_2.4.15_16FEB2016/Limit.cpp +++ b/CGMES_2.4.15_16FEB2016/Limit.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Limit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Limit::Limit() {} Limit::~Limit() {} -static const std::list PossibleProfilesForClass = +const std::list& Limit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Limit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Limit::getPossibleProfilesForClass() const +const std::string& Limit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Limit::getPossibleProfilesForAttributes() const +const std::list& Limit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Limit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Limit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Limit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Limit::debugName[] = "Limit"; @@ -46,7 +78,7 @@ const char* Limit::debugString() const void Limit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Limit", &Limit_factory); + factory_map.emplace("Limit", &Limit_factory); } void Limit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Limit::addEnumGetFnsToMap(std::map& get_map) con IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Limit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Limit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Limit::declare() { return BaseClassDefiner(Limit::addConstructToMap, Limit::addPrimitiveAssignFnsToMap, Limit::addClassAssignFnsToMap, Limit::debugName); } +std::map Limit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Limit_factory() diff --git a/CGMES_2.4.15_16FEB2016/Limit.hpp b/CGMES_2.4.15_16FEB2016/Limit.hpp index 76b2b4799..80c9039b8 100644 --- a/CGMES_2.4.15_16FEB2016/Limit.hpp +++ b/CGMES_2.4.15_16FEB2016/Limit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Limit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LimitSet.cpp b/CGMES_2.4.15_16FEB2016/LimitSet.cpp index 77176570f..3c36dc742 100644 --- a/CGMES_2.4.15_16FEB2016/LimitSet.cpp +++ b/CGMES_2.4.15_16FEB2016/LimitSet.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LimitSet.isPercentageLimits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LimitSet::LimitSet() {} LimitSet::~LimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& LimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LimitSet::getClassNamespaceUrl() const { - { "cim:LimitSet.isPercentageLimits", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LimitSet::getPossibleProfilesForClass() const +const std::string& LimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LimitSet::getPossibleProfilesForAttributes() const +const std::list& LimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LimitSet_isPercentageLimits(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* LimitSet::debugString() const void LimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LimitSet", &LimitSet_factory); + factory_map.emplace("LimitSet", &LimitSet_factory); } void LimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LimitSet.isPercentageLimits", &assign_LimitSet_isPercentageLimits); + assign_map.emplace("LimitSet.isPercentageLimits", &assign_LimitSet_isPercentageLimits); } void LimitSet::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void LimitSet::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LimitSet.isPercentageLimits", &get_LimitSet_isPercentageLimits); + get_map.emplace("LimitSet.isPercentageLimits", &get_LimitSet_isPercentageLimits); } void LimitSet::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void LimitSet::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LimitSet::declare() { return BaseClassDefiner(LimitSet::addConstructToMap, LimitSet::addPrimitiveAssignFnsToMap, LimitSet::addClassAssignFnsToMap, LimitSet::debugName); } +std::map LimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LimitSet_factory() diff --git a/CGMES_2.4.15_16FEB2016/LimitSet.hpp b/CGMES_2.4.15_16FEB2016/LimitSet.hpp index ee31c5731..9090fb55e 100644 --- a/CGMES_2.4.15_16FEB2016/LimitSet.hpp +++ b/CGMES_2.4.15_16FEB2016/LimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LimitSet_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Line.cpp b/CGMES_2.4.15_16FEB2016/Line.cpp index 098452102..62ecbb3ad 100644 --- a/CGMES_2.4.15_16FEB2016/Line.cpp +++ b/CGMES_2.4.15_16FEB2016/Line.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Line(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Line.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Line::Line() : Region(nullptr) {} Line::~Line() {} -static const std::list PossibleProfilesForClass = +const std::list& Line::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Line::getClassNamespaceUrl() const { - { "cim:Line.Region", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Line::getPossibleProfilesForClass() const +const std::string& Line::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Line::getPossibleProfilesForAttributes() const +const std::list& Line::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Line::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Line::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Line::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_Lines(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* Line::debugString() const void Line::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Line", &Line_factory); + factory_map.emplace("Line", &Line_factory); } void Line::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void Line::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Line.Region", &assign_Line_Region); + assign_map.emplace("Line.Region", &assign_Line_Region); } void Line::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void Line::addPrimitiveGetFnsToMap(std::map& get_map) void Line::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Line.Region", &get_Line_Region); + get_map.emplace("Line.Region", &get_Line_Region); } void Line::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void Line::addEnumGetFnsToMap(std::map& get_map) cons EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Line::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Line" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Line::declare() { return BaseClassDefiner(Line::addConstructToMap, Line::addPrimitiveAssignFnsToMap, Line::addClassAssignFnsToMap, Line::debugName); } +std::map Line::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Line_factory() diff --git a/CGMES_2.4.15_16FEB2016/Line.hpp b/CGMES_2.4.15_16FEB2016/Line.hpp index 5a544c8ac..6e35dc11d 100644 --- a/CGMES_2.4.15_16FEB2016/Line.hpp +++ b/CGMES_2.4.15_16FEB2016/Line.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Line_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LinearShuntCompensator.cpp b/CGMES_2.4.15_16FEB2016/LinearShuntCompensator.cpp index e8914787f..a70a188c3 100644 --- a/CGMES_2.4.15_16FEB2016/LinearShuntCompensator.cpp +++ b/CGMES_2.4.15_16FEB2016/LinearShuntCompensator.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LinearShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LinearShuntCompensator.b0PerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.bPerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.g0PerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.gPerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LinearShuntCompensator::LinearShuntCompensator() {} LinearShuntCompensator::~LinearShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& LinearShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LinearShuntCompensator::getClassNamespaceUrl() const { - { "cim:LinearShuntCompensator.b0PerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.bPerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.g0PerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.gPerSection", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LinearShuntCompensator::getPossibleProfilesForClass() const +const std::string& LinearShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LinearShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& LinearShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ShuntCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LinearShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LinearShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LinearShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LinearShuntCompensator_b0PerSection(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -167,15 +199,15 @@ const char* LinearShuntCompensator::debugString() const void LinearShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LinearShuntCompensator", &LinearShuntCompensator_factory); + factory_map.emplace("LinearShuntCompensator", &LinearShuntCompensator_factory); } void LinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LinearShuntCompensator.b0PerSection", &assign_LinearShuntCompensator_b0PerSection); - assign_map.emplace("cim:LinearShuntCompensator.bPerSection", &assign_LinearShuntCompensator_bPerSection); - assign_map.emplace("cim:LinearShuntCompensator.g0PerSection", &assign_LinearShuntCompensator_g0PerSection); - assign_map.emplace("cim:LinearShuntCompensator.gPerSection", &assign_LinearShuntCompensator_gPerSection); + assign_map.emplace("LinearShuntCompensator.b0PerSection", &assign_LinearShuntCompensator_b0PerSection); + assign_map.emplace("LinearShuntCompensator.bPerSection", &assign_LinearShuntCompensator_bPerSection); + assign_map.emplace("LinearShuntCompensator.g0PerSection", &assign_LinearShuntCompensator_g0PerSection); + assign_map.emplace("LinearShuntCompensator.gPerSection", &assign_LinearShuntCompensator_gPerSection); } void LinearShuntCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -185,10 +217,10 @@ void LinearShuntCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ShuntCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LinearShuntCompensator.b0PerSection", &get_LinearShuntCompensator_b0PerSection); - get_map.emplace("cim:LinearShuntCompensator.bPerSection", &get_LinearShuntCompensator_bPerSection); - get_map.emplace("cim:LinearShuntCompensator.g0PerSection", &get_LinearShuntCompensator_g0PerSection); - get_map.emplace("cim:LinearShuntCompensator.gPerSection", &get_LinearShuntCompensator_gPerSection); + get_map.emplace("LinearShuntCompensator.b0PerSection", &get_LinearShuntCompensator_b0PerSection); + get_map.emplace("LinearShuntCompensator.bPerSection", &get_LinearShuntCompensator_bPerSection); + get_map.emplace("LinearShuntCompensator.g0PerSection", &get_LinearShuntCompensator_g0PerSection); + get_map.emplace("LinearShuntCompensator.gPerSection", &get_LinearShuntCompensator_gPerSection); } void LinearShuntCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -201,11 +233,25 @@ void LinearShuntCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner LinearShuntCompensator::declare() { return BaseClassDefiner(LinearShuntCompensator::addConstructToMap, LinearShuntCompensator::addPrimitiveAssignFnsToMap, LinearShuntCompensator::addClassAssignFnsToMap, LinearShuntCompensator::debugName); } +std::map LinearShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ShuntCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LinearShuntCompensator_factory() diff --git a/CGMES_2.4.15_16FEB2016/LinearShuntCompensator.hpp b/CGMES_2.4.15_16FEB2016/LinearShuntCompensator.hpp index 135910c4f..6b76b41f5 100644 --- a/CGMES_2.4.15_16FEB2016/LinearShuntCompensator.hpp +++ b/CGMES_2.4.15_16FEB2016/LinearShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ShuntCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Susceptance.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LinearShuntCompensator_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadAggregate.cpp b/CGMES_2.4.15_16FEB2016/LoadAggregate.cpp index 56bc69716..9a415d843 100644 --- a/CGMES_2.4.15_16FEB2016/LoadAggregate.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadAggregate.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadAggregate(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadAggregate.LoadMotor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadAggregate.LoadStatic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadAggregate::LoadAggregate() : LoadMotor(nullptr), LoadStatic(nullptr) {} LoadAggregate::~LoadAggregate() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadAggregate::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadAggregate::getClassNamespaceUrl() const { - { "cim:LoadAggregate.LoadMotor", { CGMESProfile::DY, } }, - { "cim:LoadAggregate.LoadStatic", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadAggregate::getPossibleProfilesForClass() const +const std::string& LoadAggregate::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadAggregate::getPossibleProfilesForAttributes() const +const std::list& LoadAggregate::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadAggregate::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadAggregate::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadAggregate::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadMotor_LoadAggregate(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* LoadAggregate::debugString() const void LoadAggregate::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadAggregate", &LoadAggregate_factory); + factory_map.emplace("LoadAggregate", &LoadAggregate_factory); } void LoadAggregate::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void LoadAggregate::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadAggregate.LoadMotor", &assign_LoadAggregate_LoadMotor); - assign_map.emplace("cim:LoadAggregate.LoadStatic", &assign_LoadAggregate_LoadStatic); + assign_map.emplace("LoadAggregate.LoadMotor", &assign_LoadAggregate_LoadMotor); + assign_map.emplace("LoadAggregate.LoadStatic", &assign_LoadAggregate_LoadStatic); } void LoadAggregate::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void LoadAggregate::addEnumGetFnsToMap(std::map& get_ LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadAggregate::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadAggregate" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadAggregate::declare() { return BaseClassDefiner(LoadAggregate::addConstructToMap, LoadAggregate::addPrimitiveAssignFnsToMap, LoadAggregate::addClassAssignFnsToMap, LoadAggregate::debugName); } +std::map LoadAggregate::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadAggregate_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadAggregate.hpp b/CGMES_2.4.15_16FEB2016/LoadAggregate.hpp index 4fb10931d..68255e577 100644 --- a/CGMES_2.4.15_16FEB2016/LoadAggregate.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadAggregate.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadAggregate_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadArea.cpp b/CGMES_2.4.15_16FEB2016/LoadArea.cpp index 8154b9035..34a421bbd 100644 --- a/CGMES_2.4.15_16FEB2016/LoadArea.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadArea.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadArea.SubLoadAreas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadArea::LoadArea() {} LoadArea::~LoadArea() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadArea::getClassNamespaceUrl() const { - { "cim:LoadArea.SubLoadAreas", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadArea::getPossibleProfilesForClass() const +const std::string& LoadArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadArea::getPossibleProfilesForAttributes() const +const std::list& LoadArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyArea::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubLoadArea_LoadArea(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* LoadArea::debugString() const void LoadArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadArea", &LoadArea_factory); + factory_map.emplace("LoadArea", &LoadArea_factory); } void LoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void LoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadArea.SubLoadAreas", &assign_LoadArea_SubLoadAreas); + assign_map.emplace("LoadArea.SubLoadAreas", &assign_LoadArea_SubLoadAreas); } void LoadArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void LoadArea::addEnumGetFnsToMap(std::map& get_map) EnergyArea::addEnumGetFnsToMap(get_map); } +bool LoadArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadArea::declare() { return BaseClassDefiner(LoadArea::addConstructToMap, LoadArea::addPrimitiveAssignFnsToMap, LoadArea::addClassAssignFnsToMap, LoadArea::debugName); } +std::map LoadArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyArea::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadArea_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadArea.hpp b/CGMES_2.4.15_16FEB2016/LoadArea.hpp index 9142620cd..0212922f5 100644 --- a/CGMES_2.4.15_16FEB2016/LoadArea.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyArea.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadArea_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadBreakSwitch.cpp b/CGMES_2.4.15_16FEB2016/LoadBreakSwitch.cpp index 881f3cd8a..d4278e70b 100644 --- a/CGMES_2.4.15_16FEB2016/LoadBreakSwitch.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadBreakSwitch.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadBreakSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + LoadBreakSwitch::LoadBreakSwitch() {} LoadBreakSwitch::~LoadBreakSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadBreakSwitch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadBreakSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadBreakSwitch::getPossibleProfilesForClass() const +const std::string& LoadBreakSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadBreakSwitch::getPossibleProfilesForAttributes() const +const std::list& LoadBreakSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ProtectedSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadBreakSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadBreakSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadBreakSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char LoadBreakSwitch::debugName[] = "LoadBreakSwitch"; @@ -47,7 +79,7 @@ const char* LoadBreakSwitch::debugString() const void LoadBreakSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadBreakSwitch", &LoadBreakSwitch_factory); + factory_map.emplace("LoadBreakSwitch", &LoadBreakSwitch_factory); } void LoadBreakSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void LoadBreakSwitch::addEnumGetFnsToMap(std::map& ge ProtectedSwitch::addEnumGetFnsToMap(get_map); } +bool LoadBreakSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadBreakSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadBreakSwitch::declare() { return BaseClassDefiner(LoadBreakSwitch::addConstructToMap, LoadBreakSwitch::addPrimitiveAssignFnsToMap, LoadBreakSwitch::addClassAssignFnsToMap, LoadBreakSwitch::debugName); } +std::map LoadBreakSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ProtectedSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadBreakSwitch_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadBreakSwitch.hpp b/CGMES_2.4.15_16FEB2016/LoadBreakSwitch.hpp index e6c20cc50..64a04bd2e 100644 --- a/CGMES_2.4.15_16FEB2016/LoadBreakSwitch.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadBreakSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ProtectedSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadBreakSwitch_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadComposite.cpp b/CGMES_2.4.15_16FEB2016/LoadComposite.cpp index 3502dc5ba..7505b5544 100644 --- a/CGMES_2.4.15_16FEB2016/LoadComposite.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadComposite.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadComposite(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadComposite.epfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epfs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqfs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.h", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.lfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.pfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadComposite::LoadComposite() {} LoadComposite::~LoadComposite() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadComposite::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadComposite::getClassNamespaceUrl() const { - { "cim:LoadComposite.epfd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epfs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epvd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epvs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqfd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqfs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqvd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqvs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.h", { CGMESProfile::DY, } }, - { "cim:LoadComposite.lfrac", { CGMESProfile::DY, } }, - { "cim:LoadComposite.pfrac", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadComposite::getPossibleProfilesForClass() const +const std::string& LoadComposite::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadComposite::getPossibleProfilesForAttributes() const +const std::list& LoadComposite::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadComposite::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadComposite::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadComposite::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadComposite_epfd(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* LoadComposite::debugString() const void LoadComposite::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadComposite", &LoadComposite_factory); + factory_map.emplace("LoadComposite", &LoadComposite_factory); } void LoadComposite::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadComposite.epfd", &assign_LoadComposite_epfd); - assign_map.emplace("cim:LoadComposite.epfs", &assign_LoadComposite_epfs); - assign_map.emplace("cim:LoadComposite.epvd", &assign_LoadComposite_epvd); - assign_map.emplace("cim:LoadComposite.epvs", &assign_LoadComposite_epvs); - assign_map.emplace("cim:LoadComposite.eqfd", &assign_LoadComposite_eqfd); - assign_map.emplace("cim:LoadComposite.eqfs", &assign_LoadComposite_eqfs); - assign_map.emplace("cim:LoadComposite.eqvd", &assign_LoadComposite_eqvd); - assign_map.emplace("cim:LoadComposite.eqvs", &assign_LoadComposite_eqvs); - assign_map.emplace("cim:LoadComposite.h", &assign_LoadComposite_h); - assign_map.emplace("cim:LoadComposite.lfrac", &assign_LoadComposite_lfrac); - assign_map.emplace("cim:LoadComposite.pfrac", &assign_LoadComposite_pfrac); + assign_map.emplace("LoadComposite.epfd", &assign_LoadComposite_epfd); + assign_map.emplace("LoadComposite.epfs", &assign_LoadComposite_epfs); + assign_map.emplace("LoadComposite.epvd", &assign_LoadComposite_epvd); + assign_map.emplace("LoadComposite.epvs", &assign_LoadComposite_epvs); + assign_map.emplace("LoadComposite.eqfd", &assign_LoadComposite_eqfd); + assign_map.emplace("LoadComposite.eqfs", &assign_LoadComposite_eqfs); + assign_map.emplace("LoadComposite.eqvd", &assign_LoadComposite_eqvd); + assign_map.emplace("LoadComposite.eqvs", &assign_LoadComposite_eqvs); + assign_map.emplace("LoadComposite.h", &assign_LoadComposite_h); + assign_map.emplace("LoadComposite.lfrac", &assign_LoadComposite_lfrac); + assign_map.emplace("LoadComposite.pfrac", &assign_LoadComposite_pfrac); } void LoadComposite::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void LoadComposite::addClassAssignFnsToMap(std::unordered_map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadComposite.epfd", &get_LoadComposite_epfd); - get_map.emplace("cim:LoadComposite.epfs", &get_LoadComposite_epfs); - get_map.emplace("cim:LoadComposite.epvd", &get_LoadComposite_epvd); - get_map.emplace("cim:LoadComposite.epvs", &get_LoadComposite_epvs); - get_map.emplace("cim:LoadComposite.eqfd", &get_LoadComposite_eqfd); - get_map.emplace("cim:LoadComposite.eqfs", &get_LoadComposite_eqfs); - get_map.emplace("cim:LoadComposite.eqvd", &get_LoadComposite_eqvd); - get_map.emplace("cim:LoadComposite.eqvs", &get_LoadComposite_eqvs); - get_map.emplace("cim:LoadComposite.h", &get_LoadComposite_h); - get_map.emplace("cim:LoadComposite.lfrac", &get_LoadComposite_lfrac); - get_map.emplace("cim:LoadComposite.pfrac", &get_LoadComposite_pfrac); + get_map.emplace("LoadComposite.epfd", &get_LoadComposite_epfd); + get_map.emplace("LoadComposite.epfs", &get_LoadComposite_epfs); + get_map.emplace("LoadComposite.epvd", &get_LoadComposite_epvd); + get_map.emplace("LoadComposite.epvs", &get_LoadComposite_epvs); + get_map.emplace("LoadComposite.eqfd", &get_LoadComposite_eqfd); + get_map.emplace("LoadComposite.eqfs", &get_LoadComposite_eqfs); + get_map.emplace("LoadComposite.eqvd", &get_LoadComposite_eqvd); + get_map.emplace("LoadComposite.eqvs", &get_LoadComposite_eqvs); + get_map.emplace("LoadComposite.h", &get_LoadComposite_h); + get_map.emplace("LoadComposite.lfrac", &get_LoadComposite_lfrac); + get_map.emplace("LoadComposite.pfrac", &get_LoadComposite_pfrac); } void LoadComposite::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void LoadComposite::addEnumGetFnsToMap(std::map& get_ LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadComposite::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadComposite" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadComposite::declare() { return BaseClassDefiner(LoadComposite::addConstructToMap, LoadComposite::addPrimitiveAssignFnsToMap, LoadComposite::addClassAssignFnsToMap, LoadComposite::debugName); } +std::map LoadComposite::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadComposite_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadComposite.hpp b/CGMES_2.4.15_16FEB2016/LoadComposite.hpp index 37bbc8ac6..df72bbcfa 100644 --- a/CGMES_2.4.15_16FEB2016/LoadComposite.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadComposite.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadComposite_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadDynamics.cpp b/CGMES_2.4.15_16FEB2016/LoadDynamics.cpp index 35cf6f647..2cbed6743 100644 --- a/CGMES_2.4.15_16FEB2016/LoadDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadDynamics.EnergyConsumer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadDynamics::LoadDynamics() {} LoadDynamics::~LoadDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadDynamics::getClassNamespaceUrl() const { - { "cim:LoadDynamics.EnergyConsumer", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadDynamics::getPossibleProfilesForClass() const +const std::string& LoadDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadDynamics::getPossibleProfilesForAttributes() const +const std::list& LoadDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergyConsumer_LoadDynamics(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* LoadDynamics::debugString() const void LoadDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadDynamics", &LoadDynamics_factory); + factory_map.emplace("LoadDynamics", &LoadDynamics_factory); } void LoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void LoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadDynamics.EnergyConsumer", &assign_LoadDynamics_EnergyConsumer); + assign_map.emplace("LoadDynamics.EnergyConsumer", &assign_LoadDynamics_EnergyConsumer); } void LoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void LoadDynamics::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadDynamics::declare() { return BaseClassDefiner(LoadDynamics::addConstructToMap, LoadDynamics::addPrimitiveAssignFnsToMap, LoadDynamics::addClassAssignFnsToMap, LoadDynamics::debugName); } +std::map LoadDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadDynamics.hpp b/CGMES_2.4.15_16FEB2016/LoadDynamics.hpp index ffaa8be53..216b42208 100644 --- a/CGMES_2.4.15_16FEB2016/LoadDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadGenericNonLinear.cpp b/CGMES_2.4.15_16FEB2016/LoadGenericNonLinear.cpp index 9bae002fa..3ea34eb20 100644 --- a/CGMES_2.4.15_16FEB2016/LoadGenericNonLinear.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadGenericNonLinear.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadGenericNonLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadGenericNonLinear.bs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.bt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.genericNonLinearLoadModelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.ls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.lt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.pt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.qt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.tq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadGenericNonLinear::LoadGenericNonLinear() {} LoadGenericNonLinear::~LoadGenericNonLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadGenericNonLinear::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadGenericNonLinear::getClassNamespaceUrl() const { - { "cim:LoadGenericNonLinear.bs", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.bt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.genericNonLinearLoadModelType", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.ls", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.lt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.pt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.qt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.tp", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.tq", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadGenericNonLinear::getPossibleProfilesForClass() const +const std::string& LoadGenericNonLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadGenericNonLinear::getPossibleProfilesForAttributes() const +const std::list& LoadGenericNonLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadGenericNonLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadGenericNonLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadGenericNonLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadGenericNonLinear_bs(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* LoadGenericNonLinear::debugString() const void LoadGenericNonLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadGenericNonLinear", &LoadGenericNonLinear_factory); + factory_map.emplace("LoadGenericNonLinear", &LoadGenericNonLinear_factory); } void LoadGenericNonLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadGenericNonLinear.bs", &assign_LoadGenericNonLinear_bs); - assign_map.emplace("cim:LoadGenericNonLinear.bt", &assign_LoadGenericNonLinear_bt); - assign_map.emplace("cim:LoadGenericNonLinear.genericNonLinearLoadModelType", &assign_LoadGenericNonLinear_genericNonLinearLoadModelType); - assign_map.emplace("cim:LoadGenericNonLinear.ls", &assign_LoadGenericNonLinear_ls); - assign_map.emplace("cim:LoadGenericNonLinear.lt", &assign_LoadGenericNonLinear_lt); - assign_map.emplace("cim:LoadGenericNonLinear.pt", &assign_LoadGenericNonLinear_pt); - assign_map.emplace("cim:LoadGenericNonLinear.qt", &assign_LoadGenericNonLinear_qt); - assign_map.emplace("cim:LoadGenericNonLinear.tp", &assign_LoadGenericNonLinear_tp); - assign_map.emplace("cim:LoadGenericNonLinear.tq", &assign_LoadGenericNonLinear_tq); + assign_map.emplace("LoadGenericNonLinear.bs", &assign_LoadGenericNonLinear_bs); + assign_map.emplace("LoadGenericNonLinear.bt", &assign_LoadGenericNonLinear_bt); + assign_map.emplace("LoadGenericNonLinear.genericNonLinearLoadModelType", &assign_LoadGenericNonLinear_genericNonLinearLoadModelType); + assign_map.emplace("LoadGenericNonLinear.ls", &assign_LoadGenericNonLinear_ls); + assign_map.emplace("LoadGenericNonLinear.lt", &assign_LoadGenericNonLinear_lt); + assign_map.emplace("LoadGenericNonLinear.pt", &assign_LoadGenericNonLinear_pt); + assign_map.emplace("LoadGenericNonLinear.qt", &assign_LoadGenericNonLinear_qt); + assign_map.emplace("LoadGenericNonLinear.tp", &assign_LoadGenericNonLinear_tp); + assign_map.emplace("LoadGenericNonLinear.tq", &assign_LoadGenericNonLinear_tq); } void LoadGenericNonLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,14 +371,14 @@ void LoadGenericNonLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadGenericNonLinear.bs", &get_LoadGenericNonLinear_bs); - get_map.emplace("cim:LoadGenericNonLinear.bt", &get_LoadGenericNonLinear_bt); - get_map.emplace("cim:LoadGenericNonLinear.ls", &get_LoadGenericNonLinear_ls); - get_map.emplace("cim:LoadGenericNonLinear.lt", &get_LoadGenericNonLinear_lt); - get_map.emplace("cim:LoadGenericNonLinear.pt", &get_LoadGenericNonLinear_pt); - get_map.emplace("cim:LoadGenericNonLinear.qt", &get_LoadGenericNonLinear_qt); - get_map.emplace("cim:LoadGenericNonLinear.tp", &get_LoadGenericNonLinear_tp); - get_map.emplace("cim:LoadGenericNonLinear.tq", &get_LoadGenericNonLinear_tq); + get_map.emplace("LoadGenericNonLinear.bs", &get_LoadGenericNonLinear_bs); + get_map.emplace("LoadGenericNonLinear.bt", &get_LoadGenericNonLinear_bt); + get_map.emplace("LoadGenericNonLinear.ls", &get_LoadGenericNonLinear_ls); + get_map.emplace("LoadGenericNonLinear.lt", &get_LoadGenericNonLinear_lt); + get_map.emplace("LoadGenericNonLinear.pt", &get_LoadGenericNonLinear_pt); + get_map.emplace("LoadGenericNonLinear.qt", &get_LoadGenericNonLinear_qt); + get_map.emplace("LoadGenericNonLinear.tp", &get_LoadGenericNonLinear_tp); + get_map.emplace("LoadGenericNonLinear.tq", &get_LoadGenericNonLinear_tq); } void LoadGenericNonLinear::addClassGetFnsToMap(std::map& get_map) const @@ -357,7 +389,13 @@ void LoadGenericNonLinear::addClassGetFnsToMap(std::map& get_map) const { LoadDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:LoadGenericNonLinear.genericNonLinearLoadModelType", &get_LoadGenericNonLinear_genericNonLinearLoadModelType); + get_map.emplace("LoadGenericNonLinear.genericNonLinearLoadModelType", &get_LoadGenericNonLinear_genericNonLinearLoadModelType); +} + +bool LoadGenericNonLinear::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadGenericNonLinear" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner LoadGenericNonLinear::declare() @@ -365,6 +403,14 @@ const BaseClassDefiner LoadGenericNonLinear::declare() return BaseClassDefiner(LoadGenericNonLinear::addConstructToMap, LoadGenericNonLinear::addPrimitiveAssignFnsToMap, LoadGenericNonLinear::addClassAssignFnsToMap, LoadGenericNonLinear::debugName); } +std::map LoadGenericNonLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadGenericNonLinear_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadGenericNonLinear.hpp b/CGMES_2.4.15_16FEB2016/LoadGenericNonLinear.hpp index c291b52e3..8e557e9e2 100644 --- a/CGMES_2.4.15_16FEB2016/LoadGenericNonLinear.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadGenericNonLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "GenericNonLinearLoadModelKind.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -57,8 +58,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -66,7 +74,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadGenericNonLinear_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadGroup.cpp b/CGMES_2.4.15_16FEB2016/LoadGroup.cpp index 142619bf7..7775c7576 100644 --- a/CGMES_2.4.15_16FEB2016/LoadGroup.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadGroup.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadGroup.SubLoadArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadGroup::LoadGroup() : SubLoadArea(nullptr) {} LoadGroup::~LoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadGroup::getClassNamespaceUrl() const { - { "cim:LoadGroup.SubLoadArea", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadGroup::getPossibleProfilesForClass() const +const std::string& LoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadGroup::getPossibleProfilesForAttributes() const +const std::list& LoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubLoadArea_LoadGroups(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* LoadGroup::debugString() const void LoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadGroup", &LoadGroup_factory); + factory_map.emplace("LoadGroup", &LoadGroup_factory); } void LoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void LoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadGroup.SubLoadArea", &assign_LoadGroup_SubLoadArea); + assign_map.emplace("LoadGroup.SubLoadArea", &assign_LoadGroup_SubLoadArea); } void LoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void LoadGroup::addPrimitiveGetFnsToMap(std::map& get void LoadGroup::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadGroup.SubLoadArea", &get_LoadGroup_SubLoadArea); + get_map.emplace("LoadGroup.SubLoadArea", &get_LoadGroup_SubLoadArea); } void LoadGroup::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void LoadGroup::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadGroup::declare() { return BaseClassDefiner(LoadGroup::addConstructToMap, LoadGroup::addPrimitiveAssignFnsToMap, LoadGroup::addClassAssignFnsToMap, LoadGroup::debugName); } +std::map LoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadGroup_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadGroup.hpp b/CGMES_2.4.15_16FEB2016/LoadGroup.hpp index d0fa3dd27..f3684c780 100644 --- a/CGMES_2.4.15_16FEB2016/LoadGroup.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadGroup_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadMotor.cpp b/CGMES_2.4.15_16FEB2016/LoadMotor.cpp index b1eddcd2a..bb8e8631f 100644 --- a/CGMES_2.4.15_16FEB2016/LoadMotor.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadMotor.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadMotor(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadMotor.LoadAggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.h", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lfac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.ls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.pfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.ra", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tbkr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tpo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tppo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.vt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadMotor::LoadMotor() : LoadAggregate(nullptr) {} LoadMotor::~LoadMotor() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadMotor::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadMotor::getClassNamespaceUrl() const { - { "cim:LoadMotor.LoadAggregate", { CGMESProfile::DY, } }, - { "cim:LoadMotor.d", { CGMESProfile::DY, } }, - { "cim:LoadMotor.h", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lfac", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lp", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lpp", { CGMESProfile::DY, } }, - { "cim:LoadMotor.ls", { CGMESProfile::DY, } }, - { "cim:LoadMotor.pfrac", { CGMESProfile::DY, } }, - { "cim:LoadMotor.ra", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tbkr", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tpo", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tppo", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tv", { CGMESProfile::DY, } }, - { "cim:LoadMotor.vt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadMotor::getPossibleProfilesForClass() const +const std::string& LoadMotor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadMotor::getPossibleProfilesForAttributes() const +const std::list& LoadMotor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadMotor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadMotor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadMotor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadAggregate_LoadMotor(BaseClass*, BaseClass*); @@ -469,53 +501,53 @@ const char* LoadMotor::debugString() const void LoadMotor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadMotor", &LoadMotor_factory); + factory_map.emplace("LoadMotor", &LoadMotor_factory); } void LoadMotor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadMotor.d", &assign_LoadMotor_d); - assign_map.emplace("cim:LoadMotor.h", &assign_LoadMotor_h); - assign_map.emplace("cim:LoadMotor.lfac", &assign_LoadMotor_lfac); - assign_map.emplace("cim:LoadMotor.lp", &assign_LoadMotor_lp); - assign_map.emplace("cim:LoadMotor.lpp", &assign_LoadMotor_lpp); - assign_map.emplace("cim:LoadMotor.ls", &assign_LoadMotor_ls); - assign_map.emplace("cim:LoadMotor.pfrac", &assign_LoadMotor_pfrac); - assign_map.emplace("cim:LoadMotor.ra", &assign_LoadMotor_ra); - assign_map.emplace("cim:LoadMotor.tbkr", &assign_LoadMotor_tbkr); - assign_map.emplace("cim:LoadMotor.tpo", &assign_LoadMotor_tpo); - assign_map.emplace("cim:LoadMotor.tppo", &assign_LoadMotor_tppo); - assign_map.emplace("cim:LoadMotor.tv", &assign_LoadMotor_tv); - assign_map.emplace("cim:LoadMotor.vt", &assign_LoadMotor_vt); + assign_map.emplace("LoadMotor.d", &assign_LoadMotor_d); + assign_map.emplace("LoadMotor.h", &assign_LoadMotor_h); + assign_map.emplace("LoadMotor.lfac", &assign_LoadMotor_lfac); + assign_map.emplace("LoadMotor.lp", &assign_LoadMotor_lp); + assign_map.emplace("LoadMotor.lpp", &assign_LoadMotor_lpp); + assign_map.emplace("LoadMotor.ls", &assign_LoadMotor_ls); + assign_map.emplace("LoadMotor.pfrac", &assign_LoadMotor_pfrac); + assign_map.emplace("LoadMotor.ra", &assign_LoadMotor_ra); + assign_map.emplace("LoadMotor.tbkr", &assign_LoadMotor_tbkr); + assign_map.emplace("LoadMotor.tpo", &assign_LoadMotor_tpo); + assign_map.emplace("LoadMotor.tppo", &assign_LoadMotor_tppo); + assign_map.emplace("LoadMotor.tv", &assign_LoadMotor_tv); + assign_map.emplace("LoadMotor.vt", &assign_LoadMotor_vt); } void LoadMotor::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadMotor.LoadAggregate", &assign_LoadMotor_LoadAggregate); + assign_map.emplace("LoadMotor.LoadAggregate", &assign_LoadMotor_LoadAggregate); } void LoadMotor::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadMotor.d", &get_LoadMotor_d); - get_map.emplace("cim:LoadMotor.h", &get_LoadMotor_h); - get_map.emplace("cim:LoadMotor.lfac", &get_LoadMotor_lfac); - get_map.emplace("cim:LoadMotor.lp", &get_LoadMotor_lp); - get_map.emplace("cim:LoadMotor.lpp", &get_LoadMotor_lpp); - get_map.emplace("cim:LoadMotor.ls", &get_LoadMotor_ls); - get_map.emplace("cim:LoadMotor.pfrac", &get_LoadMotor_pfrac); - get_map.emplace("cim:LoadMotor.ra", &get_LoadMotor_ra); - get_map.emplace("cim:LoadMotor.tbkr", &get_LoadMotor_tbkr); - get_map.emplace("cim:LoadMotor.tpo", &get_LoadMotor_tpo); - get_map.emplace("cim:LoadMotor.tppo", &get_LoadMotor_tppo); - get_map.emplace("cim:LoadMotor.tv", &get_LoadMotor_tv); - get_map.emplace("cim:LoadMotor.vt", &get_LoadMotor_vt); + get_map.emplace("LoadMotor.d", &get_LoadMotor_d); + get_map.emplace("LoadMotor.h", &get_LoadMotor_h); + get_map.emplace("LoadMotor.lfac", &get_LoadMotor_lfac); + get_map.emplace("LoadMotor.lp", &get_LoadMotor_lp); + get_map.emplace("LoadMotor.lpp", &get_LoadMotor_lpp); + get_map.emplace("LoadMotor.ls", &get_LoadMotor_ls); + get_map.emplace("LoadMotor.pfrac", &get_LoadMotor_pfrac); + get_map.emplace("LoadMotor.ra", &get_LoadMotor_ra); + get_map.emplace("LoadMotor.tbkr", &get_LoadMotor_tbkr); + get_map.emplace("LoadMotor.tpo", &get_LoadMotor_tpo); + get_map.emplace("LoadMotor.tppo", &get_LoadMotor_tppo); + get_map.emplace("LoadMotor.tv", &get_LoadMotor_tv); + get_map.emplace("LoadMotor.vt", &get_LoadMotor_vt); } void LoadMotor::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadMotor.LoadAggregate", &get_LoadMotor_LoadAggregate); + get_map.emplace("LoadMotor.LoadAggregate", &get_LoadMotor_LoadAggregate); } void LoadMotor::addEnumGetFnsToMap(std::map& get_map) const @@ -523,11 +555,25 @@ void LoadMotor::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadMotor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadMotor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadMotor::declare() { return BaseClassDefiner(LoadMotor::addConstructToMap, LoadMotor::addPrimitiveAssignFnsToMap, LoadMotor::addClassAssignFnsToMap, LoadMotor::debugName); } +std::map LoadMotor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadMotor_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadMotor.hpp b/CGMES_2.4.15_16FEB2016/LoadMotor.hpp index 66ad36cff..3bf4bea2b 100644 --- a/CGMES_2.4.15_16FEB2016/LoadMotor.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadMotor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadMotor_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadResponseCharacteristic.cpp b/CGMES_2.4.15_16FEB2016/LoadResponseCharacteristic.cpp index f4c2368ce..92e394bae 100644 --- a/CGMES_2.4.15_16FEB2016/LoadResponseCharacteristic.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadResponseCharacteristic.cpp @@ -12,43 +12,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadResponseCharacteristic(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadResponseCharacteristic.EnergyConsumer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.exponentModel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantImpedance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pFrequencyExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pVoltageExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantImpedance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qFrequencyExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qVoltageExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadResponseCharacteristic::LoadResponseCharacteristic() {} LoadResponseCharacteristic::~LoadResponseCharacteristic() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadResponseCharacteristic::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadResponseCharacteristic::getClassNamespaceUrl() const { - { "cim:LoadResponseCharacteristic.EnergyConsumer", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.exponentModel", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantCurrent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantImpedance", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantPower", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pFrequencyExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pVoltageExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantCurrent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantImpedance", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantPower", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qFrequencyExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qVoltageExponent", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadResponseCharacteristic::getPossibleProfilesForClass() const +const std::string& LoadResponseCharacteristic::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadResponseCharacteristic::getPossibleProfilesForAttributes() const +const std::list& LoadResponseCharacteristic::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadResponseCharacteristic::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadResponseCharacteristic::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadResponseCharacteristic::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergyConsumer_LoadResponse(BaseClass*, BaseClass*); @@ -396,43 +428,43 @@ const char* LoadResponseCharacteristic::debugString() const void LoadResponseCharacteristic::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadResponseCharacteristic", &LoadResponseCharacteristic_factory); + factory_map.emplace("LoadResponseCharacteristic", &LoadResponseCharacteristic_factory); } void LoadResponseCharacteristic::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadResponseCharacteristic.exponentModel", &assign_LoadResponseCharacteristic_exponentModel); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantCurrent", &assign_LoadResponseCharacteristic_pConstantCurrent); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantImpedance", &assign_LoadResponseCharacteristic_pConstantImpedance); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantPower", &assign_LoadResponseCharacteristic_pConstantPower); - assign_map.emplace("cim:LoadResponseCharacteristic.pFrequencyExponent", &assign_LoadResponseCharacteristic_pFrequencyExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.pVoltageExponent", &assign_LoadResponseCharacteristic_pVoltageExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantCurrent", &assign_LoadResponseCharacteristic_qConstantCurrent); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantImpedance", &assign_LoadResponseCharacteristic_qConstantImpedance); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantPower", &assign_LoadResponseCharacteristic_qConstantPower); - assign_map.emplace("cim:LoadResponseCharacteristic.qFrequencyExponent", &assign_LoadResponseCharacteristic_qFrequencyExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.qVoltageExponent", &assign_LoadResponseCharacteristic_qVoltageExponent); + assign_map.emplace("LoadResponseCharacteristic.exponentModel", &assign_LoadResponseCharacteristic_exponentModel); + assign_map.emplace("LoadResponseCharacteristic.pConstantCurrent", &assign_LoadResponseCharacteristic_pConstantCurrent); + assign_map.emplace("LoadResponseCharacteristic.pConstantImpedance", &assign_LoadResponseCharacteristic_pConstantImpedance); + assign_map.emplace("LoadResponseCharacteristic.pConstantPower", &assign_LoadResponseCharacteristic_pConstantPower); + assign_map.emplace("LoadResponseCharacteristic.pFrequencyExponent", &assign_LoadResponseCharacteristic_pFrequencyExponent); + assign_map.emplace("LoadResponseCharacteristic.pVoltageExponent", &assign_LoadResponseCharacteristic_pVoltageExponent); + assign_map.emplace("LoadResponseCharacteristic.qConstantCurrent", &assign_LoadResponseCharacteristic_qConstantCurrent); + assign_map.emplace("LoadResponseCharacteristic.qConstantImpedance", &assign_LoadResponseCharacteristic_qConstantImpedance); + assign_map.emplace("LoadResponseCharacteristic.qConstantPower", &assign_LoadResponseCharacteristic_qConstantPower); + assign_map.emplace("LoadResponseCharacteristic.qFrequencyExponent", &assign_LoadResponseCharacteristic_qFrequencyExponent); + assign_map.emplace("LoadResponseCharacteristic.qVoltageExponent", &assign_LoadResponseCharacteristic_qVoltageExponent); } void LoadResponseCharacteristic::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadResponseCharacteristic.EnergyConsumer", &assign_LoadResponseCharacteristic_EnergyConsumer); + assign_map.emplace("LoadResponseCharacteristic.EnergyConsumer", &assign_LoadResponseCharacteristic_EnergyConsumer); } void LoadResponseCharacteristic::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadResponseCharacteristic.exponentModel", &get_LoadResponseCharacteristic_exponentModel); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantCurrent", &get_LoadResponseCharacteristic_pConstantCurrent); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantImpedance", &get_LoadResponseCharacteristic_pConstantImpedance); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantPower", &get_LoadResponseCharacteristic_pConstantPower); - get_map.emplace("cim:LoadResponseCharacteristic.pFrequencyExponent", &get_LoadResponseCharacteristic_pFrequencyExponent); - get_map.emplace("cim:LoadResponseCharacteristic.pVoltageExponent", &get_LoadResponseCharacteristic_pVoltageExponent); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantCurrent", &get_LoadResponseCharacteristic_qConstantCurrent); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantImpedance", &get_LoadResponseCharacteristic_qConstantImpedance); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantPower", &get_LoadResponseCharacteristic_qConstantPower); - get_map.emplace("cim:LoadResponseCharacteristic.qFrequencyExponent", &get_LoadResponseCharacteristic_qFrequencyExponent); - get_map.emplace("cim:LoadResponseCharacteristic.qVoltageExponent", &get_LoadResponseCharacteristic_qVoltageExponent); + get_map.emplace("LoadResponseCharacteristic.exponentModel", &get_LoadResponseCharacteristic_exponentModel); + get_map.emplace("LoadResponseCharacteristic.pConstantCurrent", &get_LoadResponseCharacteristic_pConstantCurrent); + get_map.emplace("LoadResponseCharacteristic.pConstantImpedance", &get_LoadResponseCharacteristic_pConstantImpedance); + get_map.emplace("LoadResponseCharacteristic.pConstantPower", &get_LoadResponseCharacteristic_pConstantPower); + get_map.emplace("LoadResponseCharacteristic.pFrequencyExponent", &get_LoadResponseCharacteristic_pFrequencyExponent); + get_map.emplace("LoadResponseCharacteristic.pVoltageExponent", &get_LoadResponseCharacteristic_pVoltageExponent); + get_map.emplace("LoadResponseCharacteristic.qConstantCurrent", &get_LoadResponseCharacteristic_qConstantCurrent); + get_map.emplace("LoadResponseCharacteristic.qConstantImpedance", &get_LoadResponseCharacteristic_qConstantImpedance); + get_map.emplace("LoadResponseCharacteristic.qConstantPower", &get_LoadResponseCharacteristic_qConstantPower); + get_map.emplace("LoadResponseCharacteristic.qFrequencyExponent", &get_LoadResponseCharacteristic_qFrequencyExponent); + get_map.emplace("LoadResponseCharacteristic.qVoltageExponent", &get_LoadResponseCharacteristic_qVoltageExponent); } void LoadResponseCharacteristic::addClassGetFnsToMap(std::map& get_map) const @@ -445,11 +477,25 @@ void LoadResponseCharacteristic::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner LoadResponseCharacteristic::declare() { return BaseClassDefiner(LoadResponseCharacteristic::addConstructToMap, LoadResponseCharacteristic::addPrimitiveAssignFnsToMap, LoadResponseCharacteristic::addClassAssignFnsToMap, LoadResponseCharacteristic::debugName); } +std::map LoadResponseCharacteristic::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadResponseCharacteristic_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadResponseCharacteristic.hpp b/CGMES_2.4.15_16FEB2016/LoadResponseCharacteristic.hpp index 48e1ab3ae..72d7f6099 100644 --- a/CGMES_2.4.15_16FEB2016/LoadResponseCharacteristic.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadResponseCharacteristic.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadResponseCharacteristic_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadStatic.cpp b/CGMES_2.4.15_16FEB2016/LoadStatic.cpp index 1ae8c3ffb..ea16665cd 100644 --- a/CGMES_2.4.15_16FEB2016/LoadStatic.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadStatic.cpp @@ -12,49 +12,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadStatic(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadStatic.LoadAggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kpf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kqf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.staticLoadModelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadStatic::LoadStatic() : LoadAggregate(nullptr) {} LoadStatic::~LoadStatic() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadStatic::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadStatic::getClassNamespaceUrl() const { - { "cim:LoadStatic.LoadAggregate", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp4", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kpf", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq4", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kqf", { CGMESProfile::DY, } }, - { "cim:LoadStatic.staticLoadModelType", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadStatic::getPossibleProfilesForClass() const +const std::string& LoadStatic::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadStatic::getPossibleProfilesForAttributes() const +const std::list& LoadStatic::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadStatic::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadStatic::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadStatic::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadAggregate_LoadStatic(BaseClass*, BaseClass*); @@ -589,66 +621,72 @@ const char* LoadStatic::debugString() const void LoadStatic::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadStatic", &LoadStatic_factory); + factory_map.emplace("LoadStatic", &LoadStatic_factory); } void LoadStatic::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadStatic.ep1", &assign_LoadStatic_ep1); - assign_map.emplace("cim:LoadStatic.ep2", &assign_LoadStatic_ep2); - assign_map.emplace("cim:LoadStatic.ep3", &assign_LoadStatic_ep3); - assign_map.emplace("cim:LoadStatic.eq1", &assign_LoadStatic_eq1); - assign_map.emplace("cim:LoadStatic.eq2", &assign_LoadStatic_eq2); - assign_map.emplace("cim:LoadStatic.eq3", &assign_LoadStatic_eq3); - assign_map.emplace("cim:LoadStatic.kp1", &assign_LoadStatic_kp1); - assign_map.emplace("cim:LoadStatic.kp2", &assign_LoadStatic_kp2); - assign_map.emplace("cim:LoadStatic.kp3", &assign_LoadStatic_kp3); - assign_map.emplace("cim:LoadStatic.kp4", &assign_LoadStatic_kp4); - assign_map.emplace("cim:LoadStatic.kpf", &assign_LoadStatic_kpf); - assign_map.emplace("cim:LoadStatic.kq1", &assign_LoadStatic_kq1); - assign_map.emplace("cim:LoadStatic.kq2", &assign_LoadStatic_kq2); - assign_map.emplace("cim:LoadStatic.kq3", &assign_LoadStatic_kq3); - assign_map.emplace("cim:LoadStatic.kq4", &assign_LoadStatic_kq4); - assign_map.emplace("cim:LoadStatic.kqf", &assign_LoadStatic_kqf); - assign_map.emplace("cim:LoadStatic.staticLoadModelType", &assign_LoadStatic_staticLoadModelType); + assign_map.emplace("LoadStatic.ep1", &assign_LoadStatic_ep1); + assign_map.emplace("LoadStatic.ep2", &assign_LoadStatic_ep2); + assign_map.emplace("LoadStatic.ep3", &assign_LoadStatic_ep3); + assign_map.emplace("LoadStatic.eq1", &assign_LoadStatic_eq1); + assign_map.emplace("LoadStatic.eq2", &assign_LoadStatic_eq2); + assign_map.emplace("LoadStatic.eq3", &assign_LoadStatic_eq3); + assign_map.emplace("LoadStatic.kp1", &assign_LoadStatic_kp1); + assign_map.emplace("LoadStatic.kp2", &assign_LoadStatic_kp2); + assign_map.emplace("LoadStatic.kp3", &assign_LoadStatic_kp3); + assign_map.emplace("LoadStatic.kp4", &assign_LoadStatic_kp4); + assign_map.emplace("LoadStatic.kpf", &assign_LoadStatic_kpf); + assign_map.emplace("LoadStatic.kq1", &assign_LoadStatic_kq1); + assign_map.emplace("LoadStatic.kq2", &assign_LoadStatic_kq2); + assign_map.emplace("LoadStatic.kq3", &assign_LoadStatic_kq3); + assign_map.emplace("LoadStatic.kq4", &assign_LoadStatic_kq4); + assign_map.emplace("LoadStatic.kqf", &assign_LoadStatic_kqf); + assign_map.emplace("LoadStatic.staticLoadModelType", &assign_LoadStatic_staticLoadModelType); } void LoadStatic::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadStatic.LoadAggregate", &assign_LoadStatic_LoadAggregate); + assign_map.emplace("LoadStatic.LoadAggregate", &assign_LoadStatic_LoadAggregate); } void LoadStatic::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.ep1", &get_LoadStatic_ep1); - get_map.emplace("cim:LoadStatic.ep2", &get_LoadStatic_ep2); - get_map.emplace("cim:LoadStatic.ep3", &get_LoadStatic_ep3); - get_map.emplace("cim:LoadStatic.eq1", &get_LoadStatic_eq1); - get_map.emplace("cim:LoadStatic.eq2", &get_LoadStatic_eq2); - get_map.emplace("cim:LoadStatic.eq3", &get_LoadStatic_eq3); - get_map.emplace("cim:LoadStatic.kp1", &get_LoadStatic_kp1); - get_map.emplace("cim:LoadStatic.kp2", &get_LoadStatic_kp2); - get_map.emplace("cim:LoadStatic.kp3", &get_LoadStatic_kp3); - get_map.emplace("cim:LoadStatic.kp4", &get_LoadStatic_kp4); - get_map.emplace("cim:LoadStatic.kpf", &get_LoadStatic_kpf); - get_map.emplace("cim:LoadStatic.kq1", &get_LoadStatic_kq1); - get_map.emplace("cim:LoadStatic.kq2", &get_LoadStatic_kq2); - get_map.emplace("cim:LoadStatic.kq3", &get_LoadStatic_kq3); - get_map.emplace("cim:LoadStatic.kq4", &get_LoadStatic_kq4); - get_map.emplace("cim:LoadStatic.kqf", &get_LoadStatic_kqf); + get_map.emplace("LoadStatic.ep1", &get_LoadStatic_ep1); + get_map.emplace("LoadStatic.ep2", &get_LoadStatic_ep2); + get_map.emplace("LoadStatic.ep3", &get_LoadStatic_ep3); + get_map.emplace("LoadStatic.eq1", &get_LoadStatic_eq1); + get_map.emplace("LoadStatic.eq2", &get_LoadStatic_eq2); + get_map.emplace("LoadStatic.eq3", &get_LoadStatic_eq3); + get_map.emplace("LoadStatic.kp1", &get_LoadStatic_kp1); + get_map.emplace("LoadStatic.kp2", &get_LoadStatic_kp2); + get_map.emplace("LoadStatic.kp3", &get_LoadStatic_kp3); + get_map.emplace("LoadStatic.kp4", &get_LoadStatic_kp4); + get_map.emplace("LoadStatic.kpf", &get_LoadStatic_kpf); + get_map.emplace("LoadStatic.kq1", &get_LoadStatic_kq1); + get_map.emplace("LoadStatic.kq2", &get_LoadStatic_kq2); + get_map.emplace("LoadStatic.kq3", &get_LoadStatic_kq3); + get_map.emplace("LoadStatic.kq4", &get_LoadStatic_kq4); + get_map.emplace("LoadStatic.kqf", &get_LoadStatic_kqf); } void LoadStatic::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.LoadAggregate", &get_LoadStatic_LoadAggregate); + get_map.emplace("LoadStatic.LoadAggregate", &get_LoadStatic_LoadAggregate); } void LoadStatic::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.staticLoadModelType", &get_LoadStatic_staticLoadModelType); + get_map.emplace("LoadStatic.staticLoadModelType", &get_LoadStatic_staticLoadModelType); +} + +bool LoadStatic::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadStatic" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner LoadStatic::declare() @@ -656,6 +694,14 @@ const BaseClassDefiner LoadStatic::declare() return BaseClassDefiner(LoadStatic::addConstructToMap, LoadStatic::addPrimitiveAssignFnsToMap, LoadStatic::addClassAssignFnsToMap, LoadStatic::debugName); } +std::map LoadStatic::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadStatic_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadStatic.hpp b/CGMES_2.4.15_16FEB2016/LoadStatic.hpp index 7cea8b85f..a8def85f7 100644 --- a/CGMES_2.4.15_16FEB2016/LoadStatic.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadStatic.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" #include "StaticLoadModelKind.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadStatic_factory(); diff --git a/CGMES_2.4.15_16FEB2016/LoadUserDefined.cpp b/CGMES_2.4.15_16FEB2016/LoadUserDefined.cpp index ad0a491aa..2f53daa3f 100644 --- a/CGMES_2.4.15_16FEB2016/LoadUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/LoadUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadUserDefined::LoadUserDefined() {} LoadUserDefined::~LoadUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadUserDefined::getClassNamespaceUrl() const { - { "cim:LoadUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:LoadUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadUserDefined::getPossibleProfilesForClass() const +const std::string& LoadUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadUserDefined::getPossibleProfilesForAttributes() const +const std::list& LoadUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_LoadUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* LoadUserDefined::debugString() const void LoadUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadUserDefined", &LoadUserDefined_factory); + factory_map.emplace("LoadUserDefined", &LoadUserDefined_factory); } void LoadUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadUserDefined.proprietary", &assign_LoadUserDefined_proprietary); + assign_map.emplace("LoadUserDefined.proprietary", &assign_LoadUserDefined_proprietary); } void LoadUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadUserDefined.ProprietaryParameterDynamics", &assign_LoadUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("LoadUserDefined.ProprietaryParameterDynamics", &assign_LoadUserDefined_ProprietaryParameterDynamics); } void LoadUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadUserDefined.proprietary", &get_LoadUserDefined_proprietary); + get_map.emplace("LoadUserDefined.proprietary", &get_LoadUserDefined_proprietary); } void LoadUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void LoadUserDefined::addEnumGetFnsToMap(std::map& ge LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadUserDefined::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadUserDefined" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadUserDefined::declare() { return BaseClassDefiner(LoadUserDefined::addConstructToMap, LoadUserDefined::addPrimitiveAssignFnsToMap, LoadUserDefined::addClassAssignFnsToMap, LoadUserDefined::debugName); } +std::map LoadUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/LoadUserDefined.hpp b/CGMES_2.4.15_16FEB2016/LoadUserDefined.hpp index d9bea6707..b6de8e825 100644 --- a/CGMES_2.4.15_16FEB2016/LoadUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/LoadUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Location.cpp b/CGMES_2.4.15_16FEB2016/Location.cpp index d57fd2700..bc0ed5451 100644 --- a/CGMES_2.4.15_16FEB2016/Location.cpp +++ b/CGMES_2.4.15_16FEB2016/Location.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Location(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Location.CoordinateSystem", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "Location.PositionPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "Location.PowerSystemResources", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + Location::Location() : CoordinateSystem(nullptr), PowerSystemResources(nullptr) {} Location::~Location() {} -static const std::list PossibleProfilesForClass = +const std::list& Location::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Location::getClassNamespaceUrl() const { - { "cim:Location.CoordinateSystem", { CGMESProfile::GL, } }, - { "cim:Location.PositionPoints", { CGMESProfile::GL, } }, - { "cim:Location.PowerSystemResources", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Location::getPossibleProfilesForClass() const +const std::string& Location::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Location::getPossibleProfilesForAttributes() const +const std::list& Location::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Location::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Location::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Location::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CoordinateSystem_Location(BaseClass*, BaseClass*); @@ -132,7 +164,7 @@ const char* Location::debugString() const void Location::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Location", &Location_factory); + factory_map.emplace("Location", &Location_factory); } void Location::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -141,9 +173,9 @@ void Location::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Location.CoordinateSystem", &assign_Location_CoordinateSystem); - assign_map.emplace("cim:Location.PositionPoints", &assign_Location_PositionPoints); - assign_map.emplace("cim:Location.PowerSystemResources", &assign_Location_PowerSystemResources); + assign_map.emplace("Location.CoordinateSystem", &assign_Location_CoordinateSystem); + assign_map.emplace("Location.PositionPoints", &assign_Location_PositionPoints); + assign_map.emplace("Location.PowerSystemResources", &assign_Location_PowerSystemResources); } void Location::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -154,8 +186,8 @@ void Location::addPrimitiveGetFnsToMap(std::map& get_ void Location::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Location.CoordinateSystem", &get_Location_CoordinateSystem); - get_map.emplace("cim:Location.PowerSystemResources", &get_Location_PowerSystemResources); + get_map.emplace("Location.CoordinateSystem", &get_Location_CoordinateSystem); + get_map.emplace("Location.PowerSystemResources", &get_Location_PowerSystemResources); } void Location::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void Location::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Location::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Location" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Location::declare() { return BaseClassDefiner(Location::addConstructToMap, Location::addPrimitiveAssignFnsToMap, Location::addClassAssignFnsToMap, Location::debugName); } +std::map Location::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Location_factory() diff --git a/CGMES_2.4.15_16FEB2016/Location.hpp b/CGMES_2.4.15_16FEB2016/Location.hpp index 4d10bdb15..51bf89bd6 100644 --- a/CGMES_2.4.15_16FEB2016/Location.hpp +++ b/CGMES_2.4.15_16FEB2016/Location.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Location_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Measurement.cpp b/CGMES_2.4.15_16FEB2016/Measurement.cpp index 87a4ea88d..1aff8a057 100644 --- a/CGMES_2.4.15_16FEB2016/Measurement.cpp +++ b/CGMES_2.4.15_16FEB2016/Measurement.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Measurement(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Measurement.PowerSystemResource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.measurementType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.phases", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.unitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.unitSymbol", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Measurement::Measurement() : PowerSystemResource(nullptr), Terminal(nullptr) {} Measurement::~Measurement() {} -static const std::list PossibleProfilesForClass = +const std::list& Measurement::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Measurement::getClassNamespaceUrl() const { - { "cim:Measurement.PowerSystemResource", { CGMESProfile::EQ, } }, - { "cim:Measurement.Terminal", { CGMESProfile::EQ, } }, - { "cim:Measurement.measurementType", { CGMESProfile::EQ, } }, - { "cim:Measurement.phases", { CGMESProfile::EQ, } }, - { "cim:Measurement.unitMultiplier", { CGMESProfile::EQ, } }, - { "cim:Measurement.unitSymbol", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Measurement::getPossibleProfilesForClass() const +const std::string& Measurement::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Measurement::getPossibleProfilesForAttributes() const +const std::list& Measurement::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Measurement::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Measurement::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Measurement::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerSystemResource_Measurements(BaseClass*, BaseClass*); @@ -232,42 +264,48 @@ const char* Measurement::debugString() const void Measurement::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Measurement", &Measurement_factory); + factory_map.emplace("Measurement", &Measurement_factory); } void Measurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Measurement.measurementType", &assign_Measurement_measurementType); - assign_map.emplace("cim:Measurement.phases", &assign_Measurement_phases); - assign_map.emplace("cim:Measurement.unitMultiplier", &assign_Measurement_unitMultiplier); - assign_map.emplace("cim:Measurement.unitSymbol", &assign_Measurement_unitSymbol); + assign_map.emplace("Measurement.measurementType", &assign_Measurement_measurementType); + assign_map.emplace("Measurement.phases", &assign_Measurement_phases); + assign_map.emplace("Measurement.unitMultiplier", &assign_Measurement_unitMultiplier); + assign_map.emplace("Measurement.unitSymbol", &assign_Measurement_unitSymbol); } void Measurement::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Measurement.PowerSystemResource", &assign_Measurement_PowerSystemResource); - assign_map.emplace("cim:Measurement.Terminal", &assign_Measurement_Terminal); + assign_map.emplace("Measurement.PowerSystemResource", &assign_Measurement_PowerSystemResource); + assign_map.emplace("Measurement.Terminal", &assign_Measurement_Terminal); } void Measurement::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.measurementType", &get_Measurement_measurementType); + get_map.emplace("Measurement.measurementType", &get_Measurement_measurementType); } void Measurement::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.PowerSystemResource", &get_Measurement_PowerSystemResource); - get_map.emplace("cim:Measurement.Terminal", &get_Measurement_Terminal); + get_map.emplace("Measurement.PowerSystemResource", &get_Measurement_PowerSystemResource); + get_map.emplace("Measurement.Terminal", &get_Measurement_Terminal); } void Measurement::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.phases", &get_Measurement_phases); - get_map.emplace("cim:Measurement.unitMultiplier", &get_Measurement_unitMultiplier); - get_map.emplace("cim:Measurement.unitSymbol", &get_Measurement_unitSymbol); + get_map.emplace("Measurement.phases", &get_Measurement_phases); + get_map.emplace("Measurement.unitMultiplier", &get_Measurement_unitMultiplier); + get_map.emplace("Measurement.unitSymbol", &get_Measurement_unitSymbol); +} + +bool Measurement::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Measurement" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Measurement::declare() @@ -275,6 +313,14 @@ const BaseClassDefiner Measurement::declare() return BaseClassDefiner(Measurement::addConstructToMap, Measurement::addPrimitiveAssignFnsToMap, Measurement::addClassAssignFnsToMap, Measurement::debugName); } +std::map Measurement::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Measurement_factory() diff --git a/CGMES_2.4.15_16FEB2016/Measurement.hpp b/CGMES_2.4.15_16FEB2016/Measurement.hpp index 60b15fbaf..614134b99 100644 --- a/CGMES_2.4.15_16FEB2016/Measurement.hpp +++ b/CGMES_2.4.15_16FEB2016/Measurement.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PhaseCode.hpp" #include "String.hpp" #include "UnitMultiplier.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Measurement_factory(); diff --git a/CGMES_2.4.15_16FEB2016/MeasurementValue.cpp b/CGMES_2.4.15_16FEB2016/MeasurementValue.cpp index ed6bb5624..ad0d43310 100644 --- a/CGMES_2.4.15_16FEB2016/MeasurementValue.cpp +++ b/CGMES_2.4.15_16FEB2016/MeasurementValue.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValue.MeasurementValueQuality", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.MeasurementValueSource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.sensorAccuracy", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.timeStamp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValue::MeasurementValue() : MeasurementValueQuality(nullptr), MeasurementValueSource(nullptr) {} MeasurementValue::~MeasurementValue() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValue::getClassNamespaceUrl() const { - { "cim:MeasurementValue.MeasurementValueQuality", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.MeasurementValueSource", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.sensorAccuracy", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.timeStamp", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValue::getPossibleProfilesForClass() const +const std::string& MeasurementValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValue::getPossibleProfilesForAttributes() const +const std::list& MeasurementValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValueQuality_MeasurementValue(BaseClass*, BaseClass*); @@ -159,32 +191,32 @@ const char* MeasurementValue::debugString() const void MeasurementValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValue", &MeasurementValue_factory); + factory_map.emplace("MeasurementValue", &MeasurementValue_factory); } void MeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValue.sensorAccuracy", &assign_MeasurementValue_sensorAccuracy); - assign_map.emplace("cim:MeasurementValue.timeStamp", &assign_MeasurementValue_timeStamp); + assign_map.emplace("MeasurementValue.sensorAccuracy", &assign_MeasurementValue_sensorAccuracy); + assign_map.emplace("MeasurementValue.timeStamp", &assign_MeasurementValue_timeStamp); } void MeasurementValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValue.MeasurementValueQuality", &assign_MeasurementValue_MeasurementValueQuality); - assign_map.emplace("cim:MeasurementValue.MeasurementValueSource", &assign_MeasurementValue_MeasurementValueSource); + assign_map.emplace("MeasurementValue.MeasurementValueQuality", &assign_MeasurementValue_MeasurementValueQuality); + assign_map.emplace("MeasurementValue.MeasurementValueSource", &assign_MeasurementValue_MeasurementValueSource); } void MeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValue.sensorAccuracy", &get_MeasurementValue_sensorAccuracy); - get_map.emplace("cim:MeasurementValue.timeStamp", &get_MeasurementValue_timeStamp); + get_map.emplace("MeasurementValue.sensorAccuracy", &get_MeasurementValue_sensorAccuracy); + get_map.emplace("MeasurementValue.timeStamp", &get_MeasurementValue_timeStamp); } void MeasurementValue::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValue.MeasurementValueSource", &get_MeasurementValue_MeasurementValueSource); + get_map.emplace("MeasurementValue.MeasurementValueSource", &get_MeasurementValue_MeasurementValueSource); } void MeasurementValue::addEnumGetFnsToMap(std::map& get_map) const @@ -192,11 +224,25 @@ void MeasurementValue::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool MeasurementValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MeasurementValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValue::declare() { return BaseClassDefiner(MeasurementValue::addConstructToMap, MeasurementValue::addPrimitiveAssignFnsToMap, MeasurementValue::addClassAssignFnsToMap, MeasurementValue::debugName); } +std::map MeasurementValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValue_factory() diff --git a/CGMES_2.4.15_16FEB2016/MeasurementValue.hpp b/CGMES_2.4.15_16FEB2016/MeasurementValue.hpp index 5e4745ae7..78ffcfb9b 100644 --- a/CGMES_2.4.15_16FEB2016/MeasurementValue.hpp +++ b/CGMES_2.4.15_16FEB2016/MeasurementValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "PerCent.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValue_factory(); diff --git a/CGMES_2.4.15_16FEB2016/MeasurementValueQuality.cpp b/CGMES_2.4.15_16FEB2016/MeasurementValueQuality.cpp index 2137766e7..fbb0d686d 100644 --- a/CGMES_2.4.15_16FEB2016/MeasurementValueQuality.cpp +++ b/CGMES_2.4.15_16FEB2016/MeasurementValueQuality.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValueQuality(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValueQuality.MeasurementValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValueQuality::MeasurementValueQuality() : MeasurementValue(nullptr) {} MeasurementValueQuality::~MeasurementValueQuality() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValueQuality::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValueQuality::getClassNamespaceUrl() const { - { "cim:MeasurementValueQuality.MeasurementValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValueQuality::getPossibleProfilesForClass() const +const std::string& MeasurementValueQuality::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValueQuality::getPossibleProfilesForAttributes() const +const std::list& MeasurementValueQuality::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Quality61850::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValueQuality::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValueQuality::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValueQuality::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValue_MeasurementValueQuality(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* MeasurementValueQuality::debugString() const void MeasurementValueQuality::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValueQuality", &MeasurementValueQuality_factory); + factory_map.emplace("MeasurementValueQuality", &MeasurementValueQuality_factory); } void MeasurementValueQuality::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void MeasurementValueQuality::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValueQuality.MeasurementValue", &assign_MeasurementValueQuality_MeasurementValue); + assign_map.emplace("MeasurementValueQuality.MeasurementValue", &assign_MeasurementValueQuality_MeasurementValue); } void MeasurementValueQuality::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void MeasurementValueQuality::addPrimitiveGetFnsToMap(std::map& get_map) const { Quality61850::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValueQuality.MeasurementValue", &get_MeasurementValueQuality_MeasurementValue); + get_map.emplace("MeasurementValueQuality.MeasurementValue", &get_MeasurementValueQuality_MeasurementValue); } void MeasurementValueQuality::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void MeasurementValueQuality::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValueQuality::declare() { return BaseClassDefiner(MeasurementValueQuality::addConstructToMap, MeasurementValueQuality::addPrimitiveAssignFnsToMap, MeasurementValueQuality::addClassAssignFnsToMap, MeasurementValueQuality::debugName); } +std::map MeasurementValueQuality::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Quality61850::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValueQuality_factory() diff --git a/CGMES_2.4.15_16FEB2016/MeasurementValueQuality.hpp b/CGMES_2.4.15_16FEB2016/MeasurementValueQuality.hpp index bc0991186..c182f0a94 100644 --- a/CGMES_2.4.15_16FEB2016/MeasurementValueQuality.hpp +++ b/CGMES_2.4.15_16FEB2016/MeasurementValueQuality.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Quality61850.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValueQuality_factory(); diff --git a/CGMES_2.4.15_16FEB2016/MeasurementValueSource.cpp b/CGMES_2.4.15_16FEB2016/MeasurementValueSource.cpp index b276344bf..caf90c82a 100644 --- a/CGMES_2.4.15_16FEB2016/MeasurementValueSource.cpp +++ b/CGMES_2.4.15_16FEB2016/MeasurementValueSource.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValueSource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValueSource.MeasurementValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValueSource::MeasurementValueSource() {} MeasurementValueSource::~MeasurementValueSource() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValueSource::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValueSource::getClassNamespaceUrl() const { - { "cim:MeasurementValueSource.MeasurementValues", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValueSource::getPossibleProfilesForClass() const +const std::string& MeasurementValueSource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValueSource::getPossibleProfilesForAttributes() const +const std::list& MeasurementValueSource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValueSource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValueSource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValueSource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValue_MeasurementValueSource(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* MeasurementValueSource::debugString() const void MeasurementValueSource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValueSource", &MeasurementValueSource_factory); + factory_map.emplace("MeasurementValueSource", &MeasurementValueSource_factory); } void MeasurementValueSource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void MeasurementValueSource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValueSource.MeasurementValues", &assign_MeasurementValueSource_MeasurementValues); + assign_map.emplace("MeasurementValueSource.MeasurementValues", &assign_MeasurementValueSource_MeasurementValues); } void MeasurementValueSource::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void MeasurementValueSource::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValueSource::declare() { return BaseClassDefiner(MeasurementValueSource::addConstructToMap, MeasurementValueSource::addPrimitiveAssignFnsToMap, MeasurementValueSource::addClassAssignFnsToMap, MeasurementValueSource::debugName); } +std::map MeasurementValueSource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValueSource_factory() diff --git a/CGMES_2.4.15_16FEB2016/MeasurementValueSource.hpp b/CGMES_2.4.15_16FEB2016/MeasurementValueSource.hpp index 3411d326b..c61ca176e 100644 --- a/CGMES_2.4.15_16FEB2016/MeasurementValueSource.hpp +++ b/CGMES_2.4.15_16FEB2016/MeasurementValueSource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValueSource_factory(); diff --git a/CGMES_2.4.15_16FEB2016/MechLoad1.cpp b/CGMES_2.4.15_16FEB2016/MechLoad1.cpp index 7016b3c19..b043b7472 100644 --- a/CGMES_2.4.15_16FEB2016/MechLoad1.cpp +++ b/CGMES_2.4.15_16FEB2016/MechLoad1.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechLoad1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechLoad1.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.e", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechLoad1::MechLoad1() {} MechLoad1::~MechLoad1() {} -static const std::list PossibleProfilesForClass = +const std::list& MechLoad1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechLoad1::getClassNamespaceUrl() const { - { "cim:MechLoad1.a", { CGMESProfile::DY, } }, - { "cim:MechLoad1.b", { CGMESProfile::DY, } }, - { "cim:MechLoad1.d", { CGMESProfile::DY, } }, - { "cim:MechLoad1.e", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechLoad1::getPossibleProfilesForClass() const +const std::string& MechLoad1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechLoad1::getPossibleProfilesForAttributes() const +const std::list& MechLoad1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MechanicalLoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechLoad1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechLoad1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechLoad1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MechLoad1_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* MechLoad1::debugString() const void MechLoad1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechLoad1", &MechLoad1_factory); + factory_map.emplace("MechLoad1", &MechLoad1_factory); } void MechLoad1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechLoad1.a", &assign_MechLoad1_a); - assign_map.emplace("cim:MechLoad1.b", &assign_MechLoad1_b); - assign_map.emplace("cim:MechLoad1.d", &assign_MechLoad1_d); - assign_map.emplace("cim:MechLoad1.e", &assign_MechLoad1_e); + assign_map.emplace("MechLoad1.a", &assign_MechLoad1_a); + assign_map.emplace("MechLoad1.b", &assign_MechLoad1_b); + assign_map.emplace("MechLoad1.d", &assign_MechLoad1_d); + assign_map.emplace("MechLoad1.e", &assign_MechLoad1_e); } void MechLoad1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void MechLoad1::addClassAssignFnsToMap(std::unordered_map& get_map) const { MechanicalLoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MechLoad1.a", &get_MechLoad1_a); - get_map.emplace("cim:MechLoad1.b", &get_MechLoad1_b); - get_map.emplace("cim:MechLoad1.d", &get_MechLoad1_d); - get_map.emplace("cim:MechLoad1.e", &get_MechLoad1_e); + get_map.emplace("MechLoad1.a", &get_MechLoad1_a); + get_map.emplace("MechLoad1.b", &get_MechLoad1_b); + get_map.emplace("MechLoad1.d", &get_MechLoad1_d); + get_map.emplace("MechLoad1.e", &get_MechLoad1_e); } void MechLoad1::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void MechLoad1::addEnumGetFnsToMap(std::map& get_map) MechanicalLoadDynamics::addEnumGetFnsToMap(get_map); } +bool MechLoad1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MechLoad1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MechLoad1::declare() { return BaseClassDefiner(MechLoad1::addConstructToMap, MechLoad1::addPrimitiveAssignFnsToMap, MechLoad1::addClassAssignFnsToMap, MechLoad1::debugName); } +std::map MechLoad1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MechanicalLoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechLoad1_factory() diff --git a/CGMES_2.4.15_16FEB2016/MechLoad1.hpp b/CGMES_2.4.15_16FEB2016/MechLoad1.hpp index 9b16f17c2..96d802554 100644 --- a/CGMES_2.4.15_16FEB2016/MechLoad1.hpp +++ b/CGMES_2.4.15_16FEB2016/MechLoad1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MechanicalLoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -40,8 +41,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -49,7 +57,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechLoad1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/MechanicalLoadDynamics.cpp b/CGMES_2.4.15_16FEB2016/MechanicalLoadDynamics.cpp index dc44cac2d..34eec6f9d 100644 --- a/CGMES_2.4.15_16FEB2016/MechanicalLoadDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/MechanicalLoadDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechanicalLoadDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechanicalLoadDynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechanicalLoadDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechanicalLoadDynamics::MechanicalLoadDynamics() : AsynchronousMachineDynamics(nullptr), SynchronousMachineDynamics(nullptr) {} MechanicalLoadDynamics::~MechanicalLoadDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& MechanicalLoadDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechanicalLoadDynamics::getClassNamespaceUrl() const { - { "cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:MechanicalLoadDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechanicalLoadDynamics::getPossibleProfilesForClass() const +const std::string& MechanicalLoadDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechanicalLoadDynamics::getPossibleProfilesForAttributes() const +const std::list& MechanicalLoadDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechanicalLoadDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechanicalLoadDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechanicalLoadDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_MechanicalLoadDynamics(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* MechanicalLoadDynamics::debugString() const void MechanicalLoadDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechanicalLoadDynamics", &MechanicalLoadDynamics_factory); + factory_map.emplace("MechanicalLoadDynamics", &MechanicalLoadDynamics_factory); } void MechanicalLoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void MechanicalLoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", &assign_MechanicalLoadDynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:MechanicalLoadDynamics.SynchronousMachineDynamics", &assign_MechanicalLoadDynamics_SynchronousMachineDynamics); + assign_map.emplace("MechanicalLoadDynamics.AsynchronousMachineDynamics", &assign_MechanicalLoadDynamics_AsynchronousMachineDynamics); + assign_map.emplace("MechanicalLoadDynamics.SynchronousMachineDynamics", &assign_MechanicalLoadDynamics_SynchronousMachineDynamics); } void MechanicalLoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void MechanicalLoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", &get_MechanicalLoadDynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:MechanicalLoadDynamics.SynchronousMachineDynamics", &get_MechanicalLoadDynamics_SynchronousMachineDynamics); + get_map.emplace("MechanicalLoadDynamics.AsynchronousMachineDynamics", &get_MechanicalLoadDynamics_AsynchronousMachineDynamics); + get_map.emplace("MechanicalLoadDynamics.SynchronousMachineDynamics", &get_MechanicalLoadDynamics_SynchronousMachineDynamics); } void MechanicalLoadDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void MechanicalLoadDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MechanicalLoadDynamics::declare() { return BaseClassDefiner(MechanicalLoadDynamics::addConstructToMap, MechanicalLoadDynamics::addPrimitiveAssignFnsToMap, MechanicalLoadDynamics::addClassAssignFnsToMap, MechanicalLoadDynamics::debugName); } +std::map MechanicalLoadDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechanicalLoadDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/MechanicalLoadDynamics.hpp b/CGMES_2.4.15_16FEB2016/MechanicalLoadDynamics.hpp index 57b474f87..e7b0679fc 100644 --- a/CGMES_2.4.15_16FEB2016/MechanicalLoadDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/MechanicalLoadDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechanicalLoadDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/MechanicalLoadUserDefined.cpp b/CGMES_2.4.15_16FEB2016/MechanicalLoadUserDefined.cpp index 0fcdb6dee..17264b942 100644 --- a/CGMES_2.4.15_16FEB2016/MechanicalLoadUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/MechanicalLoadUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechanicalLoadUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechanicalLoadUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechanicalLoadUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechanicalLoadUserDefined::MechanicalLoadUserDefined() {} MechanicalLoadUserDefined::~MechanicalLoadUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& MechanicalLoadUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechanicalLoadUserDefined::getClassNamespaceUrl() const { - { "cim:MechanicalLoadUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:MechanicalLoadUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechanicalLoadUserDefined::getPossibleProfilesForClass() const +const std::string& MechanicalLoadUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechanicalLoadUserDefined::getPossibleProfilesForAttributes() const +const std::list& MechanicalLoadUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MechanicalLoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechanicalLoadUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechanicalLoadUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechanicalLoadUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* MechanicalLoadUserDefined::debugString() const void MechanicalLoadUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechanicalLoadUserDefined", &MechanicalLoadUserDefined_factory); + factory_map.emplace("MechanicalLoadUserDefined", &MechanicalLoadUserDefined_factory); } void MechanicalLoadUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadUserDefined.proprietary", &assign_MechanicalLoadUserDefined_proprietary); + assign_map.emplace("MechanicalLoadUserDefined.proprietary", &assign_MechanicalLoadUserDefined_proprietary); } void MechanicalLoadUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadUserDefined.ProprietaryParameterDynamics", &assign_MechanicalLoadUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("MechanicalLoadUserDefined.ProprietaryParameterDynamics", &assign_MechanicalLoadUserDefined_ProprietaryParameterDynamics); } void MechanicalLoadUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { MechanicalLoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MechanicalLoadUserDefined.proprietary", &get_MechanicalLoadUserDefined_proprietary); + get_map.emplace("MechanicalLoadUserDefined.proprietary", &get_MechanicalLoadUserDefined_proprietary); } void MechanicalLoadUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void MechanicalLoadUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MechanicalLoadUserDefined::declare() { return BaseClassDefiner(MechanicalLoadUserDefined::addConstructToMap, MechanicalLoadUserDefined::addPrimitiveAssignFnsToMap, MechanicalLoadUserDefined::addClassAssignFnsToMap, MechanicalLoadUserDefined::debugName); } +std::map MechanicalLoadUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MechanicalLoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechanicalLoadUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/MechanicalLoadUserDefined.hpp b/CGMES_2.4.15_16FEB2016/MechanicalLoadUserDefined.hpp index 474c01c3d..aa86fd0a6 100644 --- a/CGMES_2.4.15_16FEB2016/MechanicalLoadUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/MechanicalLoadUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MechanicalLoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechanicalLoadUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/MutualCoupling.cpp b/CGMES_2.4.15_16FEB2016/MutualCoupling.cpp index 0b97f5f70..1a199f9e4 100644 --- a/CGMES_2.4.15_16FEB2016/MutualCoupling.cpp +++ b/CGMES_2.4.15_16FEB2016/MutualCoupling.cpp @@ -12,41 +12,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MutualCoupling(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MutualCoupling.First_Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.Second_Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.b0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance22", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.g0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MutualCoupling::MutualCoupling() : First_Terminal(nullptr), Second_Terminal(nullptr) {} MutualCoupling::~MutualCoupling() {} -static const std::list PossibleProfilesForClass = +const std::list& MutualCoupling::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MutualCoupling::getClassNamespaceUrl() const { - { "cim:MutualCoupling.First_Terminal", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.Second_Terminal", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.b0ch", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance11", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance12", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance21", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance22", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.g0ch", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.r0", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MutualCoupling::getPossibleProfilesForClass() const +const std::string& MutualCoupling::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MutualCoupling::getPossibleProfilesForAttributes() const +const std::list& MutualCoupling::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MutualCoupling::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MutualCoupling::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MutualCoupling::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_HasFirstMutualCoupling(BaseClass*, BaseClass*); @@ -351,45 +383,45 @@ const char* MutualCoupling::debugString() const void MutualCoupling::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MutualCoupling", &MutualCoupling_factory); + factory_map.emplace("MutualCoupling", &MutualCoupling_factory); } void MutualCoupling::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MutualCoupling.b0ch", &assign_MutualCoupling_b0ch); - assign_map.emplace("cim:MutualCoupling.distance11", &assign_MutualCoupling_distance11); - assign_map.emplace("cim:MutualCoupling.distance12", &assign_MutualCoupling_distance12); - assign_map.emplace("cim:MutualCoupling.distance21", &assign_MutualCoupling_distance21); - assign_map.emplace("cim:MutualCoupling.distance22", &assign_MutualCoupling_distance22); - assign_map.emplace("cim:MutualCoupling.g0ch", &assign_MutualCoupling_g0ch); - assign_map.emplace("cim:MutualCoupling.r0", &assign_MutualCoupling_r0); - assign_map.emplace("cim:MutualCoupling.x0", &assign_MutualCoupling_x0); + assign_map.emplace("MutualCoupling.b0ch", &assign_MutualCoupling_b0ch); + assign_map.emplace("MutualCoupling.distance11", &assign_MutualCoupling_distance11); + assign_map.emplace("MutualCoupling.distance12", &assign_MutualCoupling_distance12); + assign_map.emplace("MutualCoupling.distance21", &assign_MutualCoupling_distance21); + assign_map.emplace("MutualCoupling.distance22", &assign_MutualCoupling_distance22); + assign_map.emplace("MutualCoupling.g0ch", &assign_MutualCoupling_g0ch); + assign_map.emplace("MutualCoupling.r0", &assign_MutualCoupling_r0); + assign_map.emplace("MutualCoupling.x0", &assign_MutualCoupling_x0); } void MutualCoupling::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MutualCoupling.First_Terminal", &assign_MutualCoupling_First_Terminal); - assign_map.emplace("cim:MutualCoupling.Second_Terminal", &assign_MutualCoupling_Second_Terminal); + assign_map.emplace("MutualCoupling.First_Terminal", &assign_MutualCoupling_First_Terminal); + assign_map.emplace("MutualCoupling.Second_Terminal", &assign_MutualCoupling_Second_Terminal); } void MutualCoupling::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MutualCoupling.b0ch", &get_MutualCoupling_b0ch); - get_map.emplace("cim:MutualCoupling.distance11", &get_MutualCoupling_distance11); - get_map.emplace("cim:MutualCoupling.distance12", &get_MutualCoupling_distance12); - get_map.emplace("cim:MutualCoupling.distance21", &get_MutualCoupling_distance21); - get_map.emplace("cim:MutualCoupling.distance22", &get_MutualCoupling_distance22); - get_map.emplace("cim:MutualCoupling.g0ch", &get_MutualCoupling_g0ch); - get_map.emplace("cim:MutualCoupling.r0", &get_MutualCoupling_r0); - get_map.emplace("cim:MutualCoupling.x0", &get_MutualCoupling_x0); + get_map.emplace("MutualCoupling.b0ch", &get_MutualCoupling_b0ch); + get_map.emplace("MutualCoupling.distance11", &get_MutualCoupling_distance11); + get_map.emplace("MutualCoupling.distance12", &get_MutualCoupling_distance12); + get_map.emplace("MutualCoupling.distance21", &get_MutualCoupling_distance21); + get_map.emplace("MutualCoupling.distance22", &get_MutualCoupling_distance22); + get_map.emplace("MutualCoupling.g0ch", &get_MutualCoupling_g0ch); + get_map.emplace("MutualCoupling.r0", &get_MutualCoupling_r0); + get_map.emplace("MutualCoupling.x0", &get_MutualCoupling_x0); } void MutualCoupling::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MutualCoupling.First_Terminal", &get_MutualCoupling_First_Terminal); - get_map.emplace("cim:MutualCoupling.Second_Terminal", &get_MutualCoupling_Second_Terminal); + get_map.emplace("MutualCoupling.First_Terminal", &get_MutualCoupling_First_Terminal); + get_map.emplace("MutualCoupling.Second_Terminal", &get_MutualCoupling_Second_Terminal); } void MutualCoupling::addEnumGetFnsToMap(std::map& get_map) const @@ -397,11 +429,25 @@ void MutualCoupling::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool MutualCoupling::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MutualCoupling" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MutualCoupling::declare() { return BaseClassDefiner(MutualCoupling::addConstructToMap, MutualCoupling::addPrimitiveAssignFnsToMap, MutualCoupling::addClassAssignFnsToMap, MutualCoupling::debugName); } +std::map MutualCoupling::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MutualCoupling_factory() diff --git a/CGMES_2.4.15_16FEB2016/MutualCoupling.hpp b/CGMES_2.4.15_16FEB2016/MutualCoupling.hpp index 00b130bed..62296a486 100644 --- a/CGMES_2.4.15_16FEB2016/MutualCoupling.hpp +++ b/CGMES_2.4.15_16FEB2016/MutualCoupling.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Length.hpp" #include "Reactance.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MutualCoupling_factory(); diff --git a/CGMES_2.4.15_16FEB2016/NonConformLoad.cpp b/CGMES_2.4.15_16FEB2016/NonConformLoad.cpp index 00d77b1ae..c0f600b3d 100644 --- a/CGMES_2.4.15_16FEB2016/NonConformLoad.cpp +++ b/CGMES_2.4.15_16FEB2016/NonConformLoad.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoad(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoad.LoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoad::NonConformLoad() : LoadGroup(nullptr) {} NonConformLoad::~NonConformLoad() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoad::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoad::getClassNamespaceUrl() const { - { "cim:NonConformLoad.LoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoad::getPossibleProfilesForClass() const +const std::string& NonConformLoad::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoad::getPossibleProfilesForAttributes() const +const std::list& NonConformLoad::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoad::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoad::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoad::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoadGroup_EnergyConsumers(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* NonConformLoad::debugString() const void NonConformLoad::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoad", &NonConformLoad_factory); + factory_map.emplace("NonConformLoad", &NonConformLoad_factory); } void NonConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void NonConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoad.LoadGroup", &assign_NonConformLoad_LoadGroup); + assign_map.emplace("NonConformLoad.LoadGroup", &assign_NonConformLoad_LoadGroup); } void NonConformLoad::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void NonConformLoad::addPrimitiveGetFnsToMap(std::map void NonConformLoad::addClassGetFnsToMap(std::map& get_map) const { EnergyConsumer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonConformLoad.LoadGroup", &get_NonConformLoad_LoadGroup); + get_map.emplace("NonConformLoad.LoadGroup", &get_NonConformLoad_LoadGroup); } void NonConformLoad::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void NonConformLoad::addEnumGetFnsToMap(std::map& get EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool NonConformLoad::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "NonConformLoad" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoad::declare() { return BaseClassDefiner(NonConformLoad::addConstructToMap, NonConformLoad::addPrimitiveAssignFnsToMap, NonConformLoad::addClassAssignFnsToMap, NonConformLoad::debugName); } +std::map NonConformLoad::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoad_factory() diff --git a/CGMES_2.4.15_16FEB2016/NonConformLoad.hpp b/CGMES_2.4.15_16FEB2016/NonConformLoad.hpp index d30929052..b198682bc 100644 --- a/CGMES_2.4.15_16FEB2016/NonConformLoad.hpp +++ b/CGMES_2.4.15_16FEB2016/NonConformLoad.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoad_factory(); diff --git a/CGMES_2.4.15_16FEB2016/NonConformLoadGroup.cpp b/CGMES_2.4.15_16FEB2016/NonConformLoadGroup.cpp index 0ffa2111f..1c08e2f93 100644 --- a/CGMES_2.4.15_16FEB2016/NonConformLoadGroup.cpp +++ b/CGMES_2.4.15_16FEB2016/NonConformLoadGroup.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoadGroup.EnergyConsumers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonConformLoadGroup.NonConformLoadSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoadGroup::NonConformLoadGroup() {} NonConformLoadGroup::~NonConformLoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoadGroup::getClassNamespaceUrl() const { - { "cim:NonConformLoadGroup.EnergyConsumers", { CGMESProfile::EQ, } }, - { "cim:NonConformLoadGroup.NonConformLoadSchedules", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoadGroup::getPossibleProfilesForClass() const +const std::string& NonConformLoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoadGroup::getPossibleProfilesForAttributes() const +const std::list& NonConformLoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadGroup::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoad_LoadGroup(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* NonConformLoadGroup::debugString() const void NonConformLoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoadGroup", &NonConformLoadGroup_factory); + factory_map.emplace("NonConformLoadGroup", &NonConformLoadGroup_factory); } void NonConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void NonConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoadGroup.EnergyConsumers", &assign_NonConformLoadGroup_EnergyConsumers); - assign_map.emplace("cim:NonConformLoadGroup.NonConformLoadSchedules", &assign_NonConformLoadGroup_NonConformLoadSchedules); + assign_map.emplace("NonConformLoadGroup.EnergyConsumers", &assign_NonConformLoadGroup_EnergyConsumers); + assign_map.emplace("NonConformLoadGroup.NonConformLoadSchedules", &assign_NonConformLoadGroup_NonConformLoadSchedules); } void NonConformLoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void NonConformLoadGroup::addEnumGetFnsToMap(std::map LoadGroup::addEnumGetFnsToMap(get_map); } +bool NonConformLoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "NonConformLoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoadGroup::declare() { return BaseClassDefiner(NonConformLoadGroup::addConstructToMap, NonConformLoadGroup::addPrimitiveAssignFnsToMap, NonConformLoadGroup::addClassAssignFnsToMap, NonConformLoadGroup::debugName); } +std::map NonConformLoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadGroup::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoadGroup_factory() diff --git a/CGMES_2.4.15_16FEB2016/NonConformLoadGroup.hpp b/CGMES_2.4.15_16FEB2016/NonConformLoadGroup.hpp index 928188af7..78f437d42 100644 --- a/CGMES_2.4.15_16FEB2016/NonConformLoadGroup.hpp +++ b/CGMES_2.4.15_16FEB2016/NonConformLoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadGroup.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoadGroup_factory(); diff --git a/CGMES_2.4.15_16FEB2016/NonConformLoadSchedule.cpp b/CGMES_2.4.15_16FEB2016/NonConformLoadSchedule.cpp index f4a6a8203..3da2bba29 100644 --- a/CGMES_2.4.15_16FEB2016/NonConformLoadSchedule.cpp +++ b/CGMES_2.4.15_16FEB2016/NonConformLoadSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoadSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoadSchedule.NonConformLoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoadSchedule::NonConformLoadSchedule() : NonConformLoadGroup(nullptr) {} NonConformLoadSchedule::~NonConformLoadSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoadSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoadSchedule::getClassNamespaceUrl() const { - { "cim:NonConformLoadSchedule.NonConformLoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoadSchedule::getPossibleProfilesForClass() const +const std::string& NonConformLoadSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoadSchedule::getPossibleProfilesForAttributes() const +const std::list& NonConformLoadSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoadSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoadSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoadSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoadGroup_NonConformLoadSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* NonConformLoadSchedule::debugString() const void NonConformLoadSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoadSchedule", &NonConformLoadSchedule_factory); + factory_map.emplace("NonConformLoadSchedule", &NonConformLoadSchedule_factory); } void NonConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void NonConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoadSchedule.NonConformLoadGroup", &assign_NonConformLoadSchedule_NonConformLoadGroup); + assign_map.emplace("NonConformLoadSchedule.NonConformLoadGroup", &assign_NonConformLoadSchedule_NonConformLoadGroup); } void NonConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void NonConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonConformLoadSchedule.NonConformLoadGroup", &get_NonConformLoadSchedule_NonConformLoadGroup); + get_map.emplace("NonConformLoadSchedule.NonConformLoadGroup", &get_NonConformLoadSchedule_NonConformLoadGroup); } void NonConformLoadSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void NonConformLoadSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoadSchedule::declare() { return BaseClassDefiner(NonConformLoadSchedule::addConstructToMap, NonConformLoadSchedule::addPrimitiveAssignFnsToMap, NonConformLoadSchedule::addClassAssignFnsToMap, NonConformLoadSchedule::debugName); } +std::map NonConformLoadSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoadSchedule_factory() diff --git a/CGMES_2.4.15_16FEB2016/NonConformLoadSchedule.hpp b/CGMES_2.4.15_16FEB2016/NonConformLoadSchedule.hpp index c0ae51ebb..5400ec0f1 100644 --- a/CGMES_2.4.15_16FEB2016/NonConformLoadSchedule.hpp +++ b/CGMES_2.4.15_16FEB2016/NonConformLoadSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoadSchedule_factory(); diff --git a/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensator.cpp b/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensator.cpp index 5fd272895..02b5fb4dd 100644 --- a/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensator.cpp +++ b/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensator.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonlinearShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonlinearShuntCompensator::NonlinearShuntCompensator() {} NonlinearShuntCompensator::~NonlinearShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& NonlinearShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonlinearShuntCompensator::getClassNamespaceUrl() const { - { "cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonlinearShuntCompensator::getPossibleProfilesForClass() const +const std::string& NonlinearShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonlinearShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& NonlinearShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ShuntCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonlinearShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonlinearShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonlinearShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* NonlinearShuntCompensator::debugString() const void NonlinearShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonlinearShuntCompensator", &NonlinearShuntCompensator_factory); + factory_map.emplace("NonlinearShuntCompensator", &NonlinearShuntCompensator_factory); } void NonlinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void NonlinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", &assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints); + assign_map.emplace("NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", &assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints); } void NonlinearShuntCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void NonlinearShuntCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonlinearShuntCompensator::declare() { return BaseClassDefiner(NonlinearShuntCompensator::addConstructToMap, NonlinearShuntCompensator::addPrimitiveAssignFnsToMap, NonlinearShuntCompensator::addClassAssignFnsToMap, NonlinearShuntCompensator::debugName); } +std::map NonlinearShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ShuntCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonlinearShuntCompensator_factory() diff --git a/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensator.hpp b/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensator.hpp index c39f1cb1f..eeb89d1e2 100644 --- a/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensator.hpp +++ b/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ShuntCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonlinearShuntCompensator_factory(); diff --git a/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensatorPoint.cpp b/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensatorPoint.cpp index 39f049438..5acbc9bc6 100644 --- a/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensatorPoint.cpp +++ b/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensatorPoint.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonlinearShuntCompensatorPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.sectionNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonlinearShuntCompensatorPoint::NonlinearShuntCompensatorPoint() : NonlinearShuntCompensator(nullptr) {} NonlinearShuntCompensatorPoint::~NonlinearShuntCompensatorPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& NonlinearShuntCompensatorPoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonlinearShuntCompensatorPoint::getClassNamespaceUrl() const { - { "cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.b", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.b0", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.g", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.g0", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.sectionNumber", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonlinearShuntCompensatorPoint::getPossibleProfilesForClass() const +const std::string& NonlinearShuntCompensatorPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonlinearShuntCompensatorPoint::getPossibleProfilesForAttributes() const +const std::list& NonlinearShuntCompensatorPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonlinearShuntCompensatorPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonlinearShuntCompensatorPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonlinearShuntCompensatorPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints(BaseClass*, BaseClass*); @@ -229,37 +261,37 @@ const char* NonlinearShuntCompensatorPoint::debugString() const void NonlinearShuntCompensatorPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonlinearShuntCompensatorPoint", &NonlinearShuntCompensatorPoint_factory); + factory_map.emplace("NonlinearShuntCompensatorPoint", &NonlinearShuntCompensatorPoint_factory); } void NonlinearShuntCompensatorPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.b", &assign_NonlinearShuntCompensatorPoint_b); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.b0", &assign_NonlinearShuntCompensatorPoint_b0); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.g", &assign_NonlinearShuntCompensatorPoint_g); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.g0", &assign_NonlinearShuntCompensatorPoint_g0); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.sectionNumber", &assign_NonlinearShuntCompensatorPoint_sectionNumber); + assign_map.emplace("NonlinearShuntCompensatorPoint.b", &assign_NonlinearShuntCompensatorPoint_b); + assign_map.emplace("NonlinearShuntCompensatorPoint.b0", &assign_NonlinearShuntCompensatorPoint_b0); + assign_map.emplace("NonlinearShuntCompensatorPoint.g", &assign_NonlinearShuntCompensatorPoint_g); + assign_map.emplace("NonlinearShuntCompensatorPoint.g0", &assign_NonlinearShuntCompensatorPoint_g0); + assign_map.emplace("NonlinearShuntCompensatorPoint.sectionNumber", &assign_NonlinearShuntCompensatorPoint_sectionNumber); } void NonlinearShuntCompensatorPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); + assign_map.emplace("NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); } void NonlinearShuntCompensatorPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.b", &get_NonlinearShuntCompensatorPoint_b); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.b0", &get_NonlinearShuntCompensatorPoint_b0); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.g", &get_NonlinearShuntCompensatorPoint_g); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.g0", &get_NonlinearShuntCompensatorPoint_g0); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.sectionNumber", &get_NonlinearShuntCompensatorPoint_sectionNumber); + get_map.emplace("NonlinearShuntCompensatorPoint.b", &get_NonlinearShuntCompensatorPoint_b); + get_map.emplace("NonlinearShuntCompensatorPoint.b0", &get_NonlinearShuntCompensatorPoint_b0); + get_map.emplace("NonlinearShuntCompensatorPoint.g", &get_NonlinearShuntCompensatorPoint_g); + get_map.emplace("NonlinearShuntCompensatorPoint.g0", &get_NonlinearShuntCompensatorPoint_g0); + get_map.emplace("NonlinearShuntCompensatorPoint.sectionNumber", &get_NonlinearShuntCompensatorPoint_sectionNumber); } void NonlinearShuntCompensatorPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &get_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); + get_map.emplace("NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &get_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); } void NonlinearShuntCompensatorPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -267,11 +299,25 @@ void NonlinearShuntCompensatorPoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonlinearShuntCompensatorPoint::declare() { return BaseClassDefiner(NonlinearShuntCompensatorPoint::addConstructToMap, NonlinearShuntCompensatorPoint::addPrimitiveAssignFnsToMap, NonlinearShuntCompensatorPoint::addClassAssignFnsToMap, NonlinearShuntCompensatorPoint::debugName); } +std::map NonlinearShuntCompensatorPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonlinearShuntCompensatorPoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensatorPoint.hpp b/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensatorPoint.hpp index eaf108691..e0247aef0 100644 --- a/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensatorPoint.hpp +++ b/CGMES_2.4.15_16FEB2016/NonlinearShuntCompensatorPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Integer.hpp" #include "Susceptance.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonlinearShuntCompensatorPoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/NuclearGeneratingUnit.cpp b/CGMES_2.4.15_16FEB2016/NuclearGeneratingUnit.cpp index 3ce0ed75a..cbe9457e1 100644 --- a/CGMES_2.4.15_16FEB2016/NuclearGeneratingUnit.cpp +++ b/CGMES_2.4.15_16FEB2016/NuclearGeneratingUnit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NuclearGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + NuclearGeneratingUnit::NuclearGeneratingUnit() {} NuclearGeneratingUnit::~NuclearGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& NuclearGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NuclearGeneratingUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NuclearGeneratingUnit::getPossibleProfilesForClass() const +const std::string& NuclearGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NuclearGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& NuclearGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NuclearGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NuclearGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NuclearGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char NuclearGeneratingUnit::debugName[] = "NuclearGeneratingUnit"; @@ -47,7 +79,7 @@ const char* NuclearGeneratingUnit::debugString() const void NuclearGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NuclearGeneratingUnit", &NuclearGeneratingUnit_factory); + factory_map.emplace("NuclearGeneratingUnit", &NuclearGeneratingUnit_factory); } void NuclearGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void NuclearGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NuclearGeneratingUnit::declare() { return BaseClassDefiner(NuclearGeneratingUnit::addConstructToMap, NuclearGeneratingUnit::addPrimitiveAssignFnsToMap, NuclearGeneratingUnit::addClassAssignFnsToMap, NuclearGeneratingUnit::debugName); } +std::map NuclearGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NuclearGeneratingUnit_factory() diff --git a/CGMES_2.4.15_16FEB2016/NuclearGeneratingUnit.hpp b/CGMES_2.4.15_16FEB2016/NuclearGeneratingUnit.hpp index 81ab7cd3d..11f7283f8 100644 --- a/CGMES_2.4.15_16FEB2016/NuclearGeneratingUnit.hpp +++ b/CGMES_2.4.15_16FEB2016/NuclearGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NuclearGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OperationalLimit.cpp b/CGMES_2.4.15_16FEB2016/OperationalLimit.cpp index 2f6e5f3f8..23beaf71c 100644 --- a/CGMES_2.4.15_16FEB2016/OperationalLimit.cpp +++ b/CGMES_2.4.15_16FEB2016/OperationalLimit.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimit.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimit.OperationalLimitType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimit::OperationalLimit() : OperationalLimitSet(nullptr), OperationalLimitType(nullptr) {} OperationalLimit::~OperationalLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimit::getClassNamespaceUrl() const { - { "cim:OperationalLimit.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:OperationalLimit.OperationalLimitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimit::getPossibleProfilesForClass() const +const std::string& OperationalLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimit::getPossibleProfilesForAttributes() const +const std::list& OperationalLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OperationalLimitSet_OperationalLimitValue(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* OperationalLimit::debugString() const void OperationalLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimit", &OperationalLimit_factory); + factory_map.emplace("OperationalLimit", &OperationalLimit_factory); } void OperationalLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void OperationalLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimit.OperationalLimitSet", &assign_OperationalLimit_OperationalLimitSet); - assign_map.emplace("cim:OperationalLimit.OperationalLimitType", &assign_OperationalLimit_OperationalLimitType); + assign_map.emplace("OperationalLimit.OperationalLimitSet", &assign_OperationalLimit_OperationalLimitSet); + assign_map.emplace("OperationalLimit.OperationalLimitType", &assign_OperationalLimit_OperationalLimitType); } void OperationalLimit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void OperationalLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimit.OperationalLimitSet", &get_OperationalLimit_OperationalLimitSet); - get_map.emplace("cim:OperationalLimit.OperationalLimitType", &get_OperationalLimit_OperationalLimitType); + get_map.emplace("OperationalLimit.OperationalLimitSet", &get_OperationalLimit_OperationalLimitSet); + get_map.emplace("OperationalLimit.OperationalLimitType", &get_OperationalLimit_OperationalLimitType); } void OperationalLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void OperationalLimit::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool OperationalLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OperationalLimit::declare() { return BaseClassDefiner(OperationalLimit::addConstructToMap, OperationalLimit::addPrimitiveAssignFnsToMap, OperationalLimit::addClassAssignFnsToMap, OperationalLimit::debugName); } +std::map OperationalLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimit_factory() diff --git a/CGMES_2.4.15_16FEB2016/OperationalLimit.hpp b/CGMES_2.4.15_16FEB2016/OperationalLimit.hpp index 1e167b812..c66fa91e2 100644 --- a/CGMES_2.4.15_16FEB2016/OperationalLimit.hpp +++ b/CGMES_2.4.15_16FEB2016/OperationalLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OperationalLimitSet.cpp b/CGMES_2.4.15_16FEB2016/OperationalLimitSet.cpp index b2d24e3d4..7a5c65292 100644 --- a/CGMES_2.4.15_16FEB2016/OperationalLimitSet.cpp +++ b/CGMES_2.4.15_16FEB2016/OperationalLimitSet.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimitSet.Equipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitSet.OperationalLimitValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitSet.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimitSet::OperationalLimitSet() : Equipment(nullptr), Terminal(nullptr) {} OperationalLimitSet::~OperationalLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimitSet::getClassNamespaceUrl() const { - { "cim:OperationalLimitSet.Equipment", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitSet.OperationalLimitValue", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitSet.Terminal", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimitSet::getPossibleProfilesForClass() const +const std::string& OperationalLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimitSet::getPossibleProfilesForAttributes() const +const std::list& OperationalLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Equipment_OperationalLimitSet(BaseClass*, BaseClass*); @@ -132,7 +164,7 @@ const char* OperationalLimitSet::debugString() const void OperationalLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimitSet", &OperationalLimitSet_factory); + factory_map.emplace("OperationalLimitSet", &OperationalLimitSet_factory); } void OperationalLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -141,9 +173,9 @@ void OperationalLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitSet.Equipment", &assign_OperationalLimitSet_Equipment); - assign_map.emplace("cim:OperationalLimitSet.OperationalLimitValue", &assign_OperationalLimitSet_OperationalLimitValue); - assign_map.emplace("cim:OperationalLimitSet.Terminal", &assign_OperationalLimitSet_Terminal); + assign_map.emplace("OperationalLimitSet.Equipment", &assign_OperationalLimitSet_Equipment); + assign_map.emplace("OperationalLimitSet.OperationalLimitValue", &assign_OperationalLimitSet_OperationalLimitValue); + assign_map.emplace("OperationalLimitSet.Terminal", &assign_OperationalLimitSet_Terminal); } void OperationalLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -154,8 +186,8 @@ void OperationalLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitSet.Equipment", &get_OperationalLimitSet_Equipment); - get_map.emplace("cim:OperationalLimitSet.Terminal", &get_OperationalLimitSet_Terminal); + get_map.emplace("OperationalLimitSet.Equipment", &get_OperationalLimitSet_Equipment); + get_map.emplace("OperationalLimitSet.Terminal", &get_OperationalLimitSet_Terminal); } void OperationalLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void OperationalLimitSet::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool OperationalLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OperationalLimitSet::declare() { return BaseClassDefiner(OperationalLimitSet::addConstructToMap, OperationalLimitSet::addPrimitiveAssignFnsToMap, OperationalLimitSet::addClassAssignFnsToMap, OperationalLimitSet::debugName); } +std::map OperationalLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimitSet_factory() diff --git a/CGMES_2.4.15_16FEB2016/OperationalLimitSet.hpp b/CGMES_2.4.15_16FEB2016/OperationalLimitSet.hpp index 97bb28d50..b559ccac8 100644 --- a/CGMES_2.4.15_16FEB2016/OperationalLimitSet.hpp +++ b/CGMES_2.4.15_16FEB2016/OperationalLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimitSet_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OperationalLimitType.cpp b/CGMES_2.4.15_16FEB2016/OperationalLimitType.cpp index d487e6145..08abe600d 100644 --- a/CGMES_2.4.15_16FEB2016/OperationalLimitType.cpp +++ b/CGMES_2.4.15_16FEB2016/OperationalLimitType.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimitType(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimitType.OperationalLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.acceptableDuration", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.direction", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.limitType", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimitType::OperationalLimitType() {} OperationalLimitType::~OperationalLimitType() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimitType::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimitType::getClassNamespaceUrl() const { - { "cim:OperationalLimitType.OperationalLimit", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.acceptableDuration", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.direction", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.limitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimitType::getPossibleProfilesForClass() const +const std::string& OperationalLimitType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimitType::getPossibleProfilesForAttributes() const +const std::list& OperationalLimitType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimitType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimitType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimitType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OperationalLimit_OperationalLimitType(BaseClass*, BaseClass*); @@ -156,25 +188,25 @@ const char* OperationalLimitType::debugString() const void OperationalLimitType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimitType", &OperationalLimitType_factory); + factory_map.emplace("OperationalLimitType", &OperationalLimitType_factory); } void OperationalLimitType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitType.acceptableDuration", &assign_OperationalLimitType_acceptableDuration); - assign_map.emplace("cim:OperationalLimitType.direction", &assign_OperationalLimitType_direction); - assign_map.emplace("cim:OperationalLimitType.limitType", &assign_OperationalLimitType_limitType); + assign_map.emplace("OperationalLimitType.acceptableDuration", &assign_OperationalLimitType_acceptableDuration); + assign_map.emplace("OperationalLimitType.direction", &assign_OperationalLimitType_direction); + assign_map.emplace("OperationalLimitType.limitType", &assign_OperationalLimitType_limitType); } void OperationalLimitType::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitType.OperationalLimit", &assign_OperationalLimitType_OperationalLimit); + assign_map.emplace("OperationalLimitType.OperationalLimit", &assign_OperationalLimitType_OperationalLimit); } void OperationalLimitType::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitType.acceptableDuration", &get_OperationalLimitType_acceptableDuration); + get_map.emplace("OperationalLimitType.acceptableDuration", &get_OperationalLimitType_acceptableDuration); } void OperationalLimitType::addClassGetFnsToMap(std::map& get_map) const @@ -185,8 +217,14 @@ void OperationalLimitType::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitType.direction", &get_OperationalLimitType_direction); - get_map.emplace("cim:OperationalLimitType.limitType", &get_OperationalLimitType_limitType); + get_map.emplace("OperationalLimitType.direction", &get_OperationalLimitType_direction); + get_map.emplace("OperationalLimitType.limitType", &get_OperationalLimitType_limitType); +} + +bool OperationalLimitType::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimitType" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner OperationalLimitType::declare() @@ -194,6 +232,14 @@ const BaseClassDefiner OperationalLimitType::declare() return BaseClassDefiner(OperationalLimitType::addConstructToMap, OperationalLimitType::addPrimitiveAssignFnsToMap, OperationalLimitType::addClassAssignFnsToMap, OperationalLimitType::debugName); } +std::map OperationalLimitType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimitType_factory() diff --git a/CGMES_2.4.15_16FEB2016/OperationalLimitType.hpp b/CGMES_2.4.15_16FEB2016/OperationalLimitType.hpp index 3b07eb447..0da7dd7f2 100644 --- a/CGMES_2.4.15_16FEB2016/OperationalLimitType.hpp +++ b/CGMES_2.4.15_16FEB2016/OperationalLimitType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "LimitTypeKind.hpp" #include "OperationalLimitDirectionKind.hpp" #include "Seconds.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimitType_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OverexcLim2.cpp b/CGMES_2.4.15_16FEB2016/OverexcLim2.cpp index 2e9009b9b..cc454e86a 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcLim2.cpp +++ b/CGMES_2.4.15_16FEB2016/OverexcLim2.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLim2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLim2.ifdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.koi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.voimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.voimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLim2::OverexcLim2() {} OverexcLim2::~OverexcLim2() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLim2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLim2::getClassNamespaceUrl() const { - { "cim:OverexcLim2.ifdlim", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.koi", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.voimax", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.voimin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLim2::getPossibleProfilesForClass() const +const std::string& OverexcLim2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLim2::getPossibleProfilesForAttributes() const +const std::list& OverexcLim2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLim2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLim2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLim2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLim2_ifdlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* OverexcLim2::debugString() const void OverexcLim2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLim2", &OverexcLim2_factory); + factory_map.emplace("OverexcLim2", &OverexcLim2_factory); } void OverexcLim2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLim2.ifdlim", &assign_OverexcLim2_ifdlim); - assign_map.emplace("cim:OverexcLim2.koi", &assign_OverexcLim2_koi); - assign_map.emplace("cim:OverexcLim2.voimax", &assign_OverexcLim2_voimax); - assign_map.emplace("cim:OverexcLim2.voimin", &assign_OverexcLim2_voimin); + assign_map.emplace("OverexcLim2.ifdlim", &assign_OverexcLim2_ifdlim); + assign_map.emplace("OverexcLim2.koi", &assign_OverexcLim2_koi); + assign_map.emplace("OverexcLim2.voimax", &assign_OverexcLim2_voimax); + assign_map.emplace("OverexcLim2.voimin", &assign_OverexcLim2_voimin); } void OverexcLim2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void OverexcLim2::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLim2.ifdlim", &get_OverexcLim2_ifdlim); - get_map.emplace("cim:OverexcLim2.koi", &get_OverexcLim2_koi); - get_map.emplace("cim:OverexcLim2.voimax", &get_OverexcLim2_voimax); - get_map.emplace("cim:OverexcLim2.voimin", &get_OverexcLim2_voimin); + get_map.emplace("OverexcLim2.ifdlim", &get_OverexcLim2_ifdlim); + get_map.emplace("OverexcLim2.koi", &get_OverexcLim2_koi); + get_map.emplace("OverexcLim2.voimax", &get_OverexcLim2_voimax); + get_map.emplace("OverexcLim2.voimin", &get_OverexcLim2_voimin); } void OverexcLim2::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void OverexcLim2::addEnumGetFnsToMap(std::map& get_ma OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLim2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLim2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLim2::declare() { return BaseClassDefiner(OverexcLim2::addConstructToMap, OverexcLim2::addPrimitiveAssignFnsToMap, OverexcLim2::addClassAssignFnsToMap, OverexcLim2::debugName); } +std::map OverexcLim2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLim2_factory() diff --git a/CGMES_2.4.15_16FEB2016/OverexcLim2.hpp b/CGMES_2.4.15_16FEB2016/OverexcLim2.hpp index 0278bfc7e..26c3617d8 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcLim2.hpp +++ b/CGMES_2.4.15_16FEB2016/OverexcLim2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -40,8 +41,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -49,7 +57,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLim2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OverexcLimIEEE.cpp b/CGMES_2.4.15_16FEB2016/OverexcLimIEEE.cpp index 0fb3e9857..a1ef0ebcb 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcLimIEEE.cpp +++ b/CGMES_2.4.15_16FEB2016/OverexcLimIEEE.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimIEEE(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimIEEE.hyst", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.ifdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.ifdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.itfpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.kcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.kramp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimIEEE::OverexcLimIEEE() {} OverexcLimIEEE::~OverexcLimIEEE() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimIEEE::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimIEEE::getClassNamespaceUrl() const { - { "cim:OverexcLimIEEE.hyst", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.ifdlim", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.ifdmax", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.itfpu", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.kcd", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.kramp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimIEEE::getPossibleProfilesForClass() const +const std::string& OverexcLimIEEE::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimIEEE::getPossibleProfilesForAttributes() const +const std::list& OverexcLimIEEE::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimIEEE::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimIEEE::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimIEEE::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimIEEE_hyst(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* OverexcLimIEEE::debugString() const void OverexcLimIEEE::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimIEEE", &OverexcLimIEEE_factory); + factory_map.emplace("OverexcLimIEEE", &OverexcLimIEEE_factory); } void OverexcLimIEEE::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimIEEE.hyst", &assign_OverexcLimIEEE_hyst); - assign_map.emplace("cim:OverexcLimIEEE.ifdlim", &assign_OverexcLimIEEE_ifdlim); - assign_map.emplace("cim:OverexcLimIEEE.ifdmax", &assign_OverexcLimIEEE_ifdmax); - assign_map.emplace("cim:OverexcLimIEEE.itfpu", &assign_OverexcLimIEEE_itfpu); - assign_map.emplace("cim:OverexcLimIEEE.kcd", &assign_OverexcLimIEEE_kcd); - assign_map.emplace("cim:OverexcLimIEEE.kramp", &assign_OverexcLimIEEE_kramp); + assign_map.emplace("OverexcLimIEEE.hyst", &assign_OverexcLimIEEE_hyst); + assign_map.emplace("OverexcLimIEEE.ifdlim", &assign_OverexcLimIEEE_ifdlim); + assign_map.emplace("OverexcLimIEEE.ifdmax", &assign_OverexcLimIEEE_ifdmax); + assign_map.emplace("OverexcLimIEEE.itfpu", &assign_OverexcLimIEEE_itfpu); + assign_map.emplace("OverexcLimIEEE.kcd", &assign_OverexcLimIEEE_kcd); + assign_map.emplace("OverexcLimIEEE.kramp", &assign_OverexcLimIEEE_kramp); } void OverexcLimIEEE::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void OverexcLimIEEE::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimIEEE.hyst", &get_OverexcLimIEEE_hyst); - get_map.emplace("cim:OverexcLimIEEE.ifdlim", &get_OverexcLimIEEE_ifdlim); - get_map.emplace("cim:OverexcLimIEEE.ifdmax", &get_OverexcLimIEEE_ifdmax); - get_map.emplace("cim:OverexcLimIEEE.itfpu", &get_OverexcLimIEEE_itfpu); - get_map.emplace("cim:OverexcLimIEEE.kcd", &get_OverexcLimIEEE_kcd); - get_map.emplace("cim:OverexcLimIEEE.kramp", &get_OverexcLimIEEE_kramp); + get_map.emplace("OverexcLimIEEE.hyst", &get_OverexcLimIEEE_hyst); + get_map.emplace("OverexcLimIEEE.ifdlim", &get_OverexcLimIEEE_ifdlim); + get_map.emplace("OverexcLimIEEE.ifdmax", &get_OverexcLimIEEE_ifdmax); + get_map.emplace("OverexcLimIEEE.itfpu", &get_OverexcLimIEEE_itfpu); + get_map.emplace("OverexcLimIEEE.kcd", &get_OverexcLimIEEE_kcd); + get_map.emplace("OverexcLimIEEE.kramp", &get_OverexcLimIEEE_kramp); } void OverexcLimIEEE::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void OverexcLimIEEE::addEnumGetFnsToMap(std::map& get OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimIEEE::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimIEEE" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimIEEE::declare() { return BaseClassDefiner(OverexcLimIEEE::addConstructToMap, OverexcLimIEEE::addPrimitiveAssignFnsToMap, OverexcLimIEEE::addClassAssignFnsToMap, OverexcLimIEEE::debugName); } +std::map OverexcLimIEEE::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimIEEE_factory() diff --git a/CGMES_2.4.15_16FEB2016/OverexcLimIEEE.hpp b/CGMES_2.4.15_16FEB2016/OverexcLimIEEE.hpp index de8e58374..79f15f03f 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcLimIEEE.hpp +++ b/CGMES_2.4.15_16FEB2016/OverexcLimIEEE.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimIEEE_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OverexcLimX1.cpp b/CGMES_2.4.15_16FEB2016/OverexcLimX1.cpp index c299b0d73..ca39a5f5b 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcLimX1.cpp +++ b/CGMES_2.4.15_16FEB2016/OverexcLimX1.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimX1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimX1.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efd3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efddes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efdrated", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.kmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.vlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimX1::OverexcLimX1() {} OverexcLimX1::~OverexcLimX1() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimX1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimX1::getClassNamespaceUrl() const { - { "cim:OverexcLimX1.efd1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efd2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efd3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efddes", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efdrated", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.kmx", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.vlow", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimX1::getPossibleProfilesForClass() const +const std::string& OverexcLimX1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimX1::getPossibleProfilesForAttributes() const +const std::list& OverexcLimX1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimX1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimX1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimX1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimX1_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* OverexcLimX1::debugString() const void OverexcLimX1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimX1", &OverexcLimX1_factory); + factory_map.emplace("OverexcLimX1", &OverexcLimX1_factory); } void OverexcLimX1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimX1.efd1", &assign_OverexcLimX1_efd1); - assign_map.emplace("cim:OverexcLimX1.efd2", &assign_OverexcLimX1_efd2); - assign_map.emplace("cim:OverexcLimX1.efd3", &assign_OverexcLimX1_efd3); - assign_map.emplace("cim:OverexcLimX1.efddes", &assign_OverexcLimX1_efddes); - assign_map.emplace("cim:OverexcLimX1.efdrated", &assign_OverexcLimX1_efdrated); - assign_map.emplace("cim:OverexcLimX1.kmx", &assign_OverexcLimX1_kmx); - assign_map.emplace("cim:OverexcLimX1.t1", &assign_OverexcLimX1_t1); - assign_map.emplace("cim:OverexcLimX1.t2", &assign_OverexcLimX1_t2); - assign_map.emplace("cim:OverexcLimX1.t3", &assign_OverexcLimX1_t3); - assign_map.emplace("cim:OverexcLimX1.vlow", &assign_OverexcLimX1_vlow); + assign_map.emplace("OverexcLimX1.efd1", &assign_OverexcLimX1_efd1); + assign_map.emplace("OverexcLimX1.efd2", &assign_OverexcLimX1_efd2); + assign_map.emplace("OverexcLimX1.efd3", &assign_OverexcLimX1_efd3); + assign_map.emplace("OverexcLimX1.efddes", &assign_OverexcLimX1_efddes); + assign_map.emplace("OverexcLimX1.efdrated", &assign_OverexcLimX1_efdrated); + assign_map.emplace("OverexcLimX1.kmx", &assign_OverexcLimX1_kmx); + assign_map.emplace("OverexcLimX1.t1", &assign_OverexcLimX1_t1); + assign_map.emplace("OverexcLimX1.t2", &assign_OverexcLimX1_t2); + assign_map.emplace("OverexcLimX1.t3", &assign_OverexcLimX1_t3); + assign_map.emplace("OverexcLimX1.vlow", &assign_OverexcLimX1_vlow); } void OverexcLimX1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void OverexcLimX1::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimX1.efd1", &get_OverexcLimX1_efd1); - get_map.emplace("cim:OverexcLimX1.efd2", &get_OverexcLimX1_efd2); - get_map.emplace("cim:OverexcLimX1.efd3", &get_OverexcLimX1_efd3); - get_map.emplace("cim:OverexcLimX1.efddes", &get_OverexcLimX1_efddes); - get_map.emplace("cim:OverexcLimX1.efdrated", &get_OverexcLimX1_efdrated); - get_map.emplace("cim:OverexcLimX1.kmx", &get_OverexcLimX1_kmx); - get_map.emplace("cim:OverexcLimX1.t1", &get_OverexcLimX1_t1); - get_map.emplace("cim:OverexcLimX1.t2", &get_OverexcLimX1_t2); - get_map.emplace("cim:OverexcLimX1.t3", &get_OverexcLimX1_t3); - get_map.emplace("cim:OverexcLimX1.vlow", &get_OverexcLimX1_vlow); + get_map.emplace("OverexcLimX1.efd1", &get_OverexcLimX1_efd1); + get_map.emplace("OverexcLimX1.efd2", &get_OverexcLimX1_efd2); + get_map.emplace("OverexcLimX1.efd3", &get_OverexcLimX1_efd3); + get_map.emplace("OverexcLimX1.efddes", &get_OverexcLimX1_efddes); + get_map.emplace("OverexcLimX1.efdrated", &get_OverexcLimX1_efdrated); + get_map.emplace("OverexcLimX1.kmx", &get_OverexcLimX1_kmx); + get_map.emplace("OverexcLimX1.t1", &get_OverexcLimX1_t1); + get_map.emplace("OverexcLimX1.t2", &get_OverexcLimX1_t2); + get_map.emplace("OverexcLimX1.t3", &get_OverexcLimX1_t3); + get_map.emplace("OverexcLimX1.vlow", &get_OverexcLimX1_vlow); } void OverexcLimX1::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void OverexcLimX1::addEnumGetFnsToMap(std::map& get_m OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimX1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimX1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimX1::declare() { return BaseClassDefiner(OverexcLimX1::addConstructToMap, OverexcLimX1::addPrimitiveAssignFnsToMap, OverexcLimX1::addClassAssignFnsToMap, OverexcLimX1::debugName); } +std::map OverexcLimX1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimX1_factory() diff --git a/CGMES_2.4.15_16FEB2016/OverexcLimX1.hpp b/CGMES_2.4.15_16FEB2016/OverexcLimX1.hpp index b0ac52a6c..9c0d3c1bd 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcLimX1.hpp +++ b/CGMES_2.4.15_16FEB2016/OverexcLimX1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimX1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OverexcLimX2.cpp b/CGMES_2.4.15_16FEB2016/OverexcLimX2.cpp index 0a0443e80..ec28d7143 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcLimX2.cpp +++ b/CGMES_2.4.15_16FEB2016/OverexcLimX2.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimX2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimX2.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efd3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efddes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efdrated", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.kmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.vlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimX2::OverexcLimX2() {} OverexcLimX2::~OverexcLimX2() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimX2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimX2::getClassNamespaceUrl() const { - { "cim:OverexcLimX2.efd1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efd2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efd3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efddes", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efdrated", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.kmx", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.m", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.vlow", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimX2::getPossibleProfilesForClass() const +const std::string& OverexcLimX2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimX2::getPossibleProfilesForAttributes() const +const std::list& OverexcLimX2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimX2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimX2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimX2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimX2_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* OverexcLimX2::debugString() const void OverexcLimX2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimX2", &OverexcLimX2_factory); + factory_map.emplace("OverexcLimX2", &OverexcLimX2_factory); } void OverexcLimX2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimX2.efd1", &assign_OverexcLimX2_efd1); - assign_map.emplace("cim:OverexcLimX2.efd2", &assign_OverexcLimX2_efd2); - assign_map.emplace("cim:OverexcLimX2.efd3", &assign_OverexcLimX2_efd3); - assign_map.emplace("cim:OverexcLimX2.efddes", &assign_OverexcLimX2_efddes); - assign_map.emplace("cim:OverexcLimX2.efdrated", &assign_OverexcLimX2_efdrated); - assign_map.emplace("cim:OverexcLimX2.kmx", &assign_OverexcLimX2_kmx); - assign_map.emplace("cim:OverexcLimX2.m", &assign_OverexcLimX2_m); - assign_map.emplace("cim:OverexcLimX2.t1", &assign_OverexcLimX2_t1); - assign_map.emplace("cim:OverexcLimX2.t2", &assign_OverexcLimX2_t2); - assign_map.emplace("cim:OverexcLimX2.t3", &assign_OverexcLimX2_t3); - assign_map.emplace("cim:OverexcLimX2.vlow", &assign_OverexcLimX2_vlow); + assign_map.emplace("OverexcLimX2.efd1", &assign_OverexcLimX2_efd1); + assign_map.emplace("OverexcLimX2.efd2", &assign_OverexcLimX2_efd2); + assign_map.emplace("OverexcLimX2.efd3", &assign_OverexcLimX2_efd3); + assign_map.emplace("OverexcLimX2.efddes", &assign_OverexcLimX2_efddes); + assign_map.emplace("OverexcLimX2.efdrated", &assign_OverexcLimX2_efdrated); + assign_map.emplace("OverexcLimX2.kmx", &assign_OverexcLimX2_kmx); + assign_map.emplace("OverexcLimX2.m", &assign_OverexcLimX2_m); + assign_map.emplace("OverexcLimX2.t1", &assign_OverexcLimX2_t1); + assign_map.emplace("OverexcLimX2.t2", &assign_OverexcLimX2_t2); + assign_map.emplace("OverexcLimX2.t3", &assign_OverexcLimX2_t3); + assign_map.emplace("OverexcLimX2.vlow", &assign_OverexcLimX2_vlow); } void OverexcLimX2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void OverexcLimX2::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimX2.efd1", &get_OverexcLimX2_efd1); - get_map.emplace("cim:OverexcLimX2.efd2", &get_OverexcLimX2_efd2); - get_map.emplace("cim:OverexcLimX2.efd3", &get_OverexcLimX2_efd3); - get_map.emplace("cim:OverexcLimX2.efddes", &get_OverexcLimX2_efddes); - get_map.emplace("cim:OverexcLimX2.efdrated", &get_OverexcLimX2_efdrated); - get_map.emplace("cim:OverexcLimX2.kmx", &get_OverexcLimX2_kmx); - get_map.emplace("cim:OverexcLimX2.m", &get_OverexcLimX2_m); - get_map.emplace("cim:OverexcLimX2.t1", &get_OverexcLimX2_t1); - get_map.emplace("cim:OverexcLimX2.t2", &get_OverexcLimX2_t2); - get_map.emplace("cim:OverexcLimX2.t3", &get_OverexcLimX2_t3); - get_map.emplace("cim:OverexcLimX2.vlow", &get_OverexcLimX2_vlow); + get_map.emplace("OverexcLimX2.efd1", &get_OverexcLimX2_efd1); + get_map.emplace("OverexcLimX2.efd2", &get_OverexcLimX2_efd2); + get_map.emplace("OverexcLimX2.efd3", &get_OverexcLimX2_efd3); + get_map.emplace("OverexcLimX2.efddes", &get_OverexcLimX2_efddes); + get_map.emplace("OverexcLimX2.efdrated", &get_OverexcLimX2_efdrated); + get_map.emplace("OverexcLimX2.kmx", &get_OverexcLimX2_kmx); + get_map.emplace("OverexcLimX2.m", &get_OverexcLimX2_m); + get_map.emplace("OverexcLimX2.t1", &get_OverexcLimX2_t1); + get_map.emplace("OverexcLimX2.t2", &get_OverexcLimX2_t2); + get_map.emplace("OverexcLimX2.t3", &get_OverexcLimX2_t3); + get_map.emplace("OverexcLimX2.vlow", &get_OverexcLimX2_vlow); } void OverexcLimX2::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void OverexcLimX2::addEnumGetFnsToMap(std::map& get_m OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimX2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimX2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimX2::declare() { return BaseClassDefiner(OverexcLimX2::addConstructToMap, OverexcLimX2::addPrimitiveAssignFnsToMap, OverexcLimX2::addClassAssignFnsToMap, OverexcLimX2::debugName); } +std::map OverexcLimX2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimX2_factory() diff --git a/CGMES_2.4.15_16FEB2016/OverexcLimX2.hpp b/CGMES_2.4.15_16FEB2016/OverexcLimX2.hpp index c361d076c..c9e1f2727 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcLimX2.hpp +++ b/CGMES_2.4.15_16FEB2016/OverexcLimX2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimX2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OverexcitationLimiterDynamics.cpp b/CGMES_2.4.15_16FEB2016/OverexcitationLimiterDynamics.cpp index bab89ee82..75fe225b5 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcitationLimiterDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/OverexcitationLimiterDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcitationLimiterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcitationLimiterDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcitationLimiterDynamics::OverexcitationLimiterDynamics() : ExcitationSystemDynamics(nullptr) {} OverexcitationLimiterDynamics::~OverexcitationLimiterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcitationLimiterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcitationLimiterDynamics::getClassNamespaceUrl() const { - { "cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcitationLimiterDynamics::getPossibleProfilesForClass() const +const std::string& OverexcitationLimiterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcitationLimiterDynamics::getPossibleProfilesForAttributes() const +const std::list& OverexcitationLimiterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcitationLimiterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcitationLimiterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcitationLimiterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* OverexcitationLimiterDynamics::debugString() const void OverexcitationLimiterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcitationLimiterDynamics", &OverexcitationLimiterDynamics_factory); + factory_map.emplace("OverexcitationLimiterDynamics", &OverexcitationLimiterDynamics_factory); } void OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void OverexcitationLimiterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_OverexcitationLimiterDynamics_ExcitationSystemDynamics); + assign_map.emplace("OverexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_OverexcitationLimiterDynamics_ExcitationSystemDynamics); } void OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", &get_OverexcitationLimiterDynamics_ExcitationSystemDynamics); + get_map.emplace("OverexcitationLimiterDynamics.ExcitationSystemDynamics", &get_OverexcitationLimiterDynamics_ExcitationSystemDynamics); } void OverexcitationLimiterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void OverexcitationLimiterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner OverexcitationLimiterDynamics::declare() { return BaseClassDefiner(OverexcitationLimiterDynamics::addConstructToMap, OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap, OverexcitationLimiterDynamics::addClassAssignFnsToMap, OverexcitationLimiterDynamics::debugName); } +std::map OverexcitationLimiterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcitationLimiterDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/OverexcitationLimiterDynamics.hpp b/CGMES_2.4.15_16FEB2016/OverexcitationLimiterDynamics.hpp index ec4713524..d68d986a1 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcitationLimiterDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/OverexcitationLimiterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcitationLimiterDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/OverexcitationLimiterUserDefined.cpp b/CGMES_2.4.15_16FEB2016/OverexcitationLimiterUserDefined.cpp index 18a97fc36..efc5084c1 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcitationLimiterUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/OverexcitationLimiterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcitationLimiterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcitationLimiterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcitationLimiterUserDefined::OverexcitationLimiterUserDefined() {} OverexcitationLimiterUserDefined::~OverexcitationLimiterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcitationLimiterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcitationLimiterUserDefined::getClassNamespaceUrl() const { - { "cim:OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:OverexcitationLimiterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcitationLimiterUserDefined::getPossibleProfilesForClass() const +const std::string& OverexcitationLimiterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcitationLimiterUserDefined::getPossibleProfilesForAttributes() const +const std::list& OverexcitationLimiterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcitationLimiterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcitationLimiterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcitationLimiterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* OverexcitationLimiterUserDefined::debugString() const void OverexcitationLimiterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcitationLimiterUserDefined", &OverexcitationLimiterUserDefined_factory); + factory_map.emplace("OverexcitationLimiterUserDefined", &OverexcitationLimiterUserDefined_factory); } void OverexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterUserDefined.proprietary", &assign_OverexcitationLimiterUserDefined_proprietary); + assign_map.emplace("OverexcitationLimiterUserDefined.proprietary", &assign_OverexcitationLimiterUserDefined_proprietary); } void OverexcitationLimiterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_OverexcitationLimiterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_OverexcitationLimiterUserDefined_ProprietaryParameterDynamics); } void OverexcitationLimiterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcitationLimiterUserDefined.proprietary", &get_OverexcitationLimiterUserDefined_proprietary); + get_map.emplace("OverexcitationLimiterUserDefined.proprietary", &get_OverexcitationLimiterUserDefined_proprietary); } void OverexcitationLimiterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void OverexcitationLimiterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner OverexcitationLimiterUserDefined::declare() { return BaseClassDefiner(OverexcitationLimiterUserDefined::addConstructToMap, OverexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap, OverexcitationLimiterUserDefined::addClassAssignFnsToMap, OverexcitationLimiterUserDefined::debugName); } +std::map OverexcitationLimiterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcitationLimiterUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/OverexcitationLimiterUserDefined.hpp b/CGMES_2.4.15_16FEB2016/OverexcitationLimiterUserDefined.hpp index 385c02fb4..201dbcdad 100644 --- a/CGMES_2.4.15_16FEB2016/OverexcitationLimiterUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/OverexcitationLimiterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcitationLimiterUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArControllerType1Dynamics.cpp b/CGMES_2.4.15_16FEB2016/PFVArControllerType1Dynamics.cpp index a9e1de1b5..171203216 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArControllerType1Dynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArControllerType1Dynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType1Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType1Dynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1Dynamics.VoltageAdjusterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType1Dynamics::PFVArControllerType1Dynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr), VoltageAdjusterDynamics(nullptr) {} PFVArControllerType1Dynamics::~PFVArControllerType1Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType1Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType1Dynamics::getClassNamespaceUrl() const { - { "cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1Dynamics.VoltageAdjusterDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType1Dynamics::getPossibleProfilesForClass() const +const std::string& PFVArControllerType1Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType1Dynamics::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType1Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType1Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType1Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType1Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics(BaseClass*, BaseClass*); @@ -119,7 +151,7 @@ const char* PFVArControllerType1Dynamics::debugString() const void PFVArControllerType1Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType1Dynamics", &PFVArControllerType1Dynamics_factory); + factory_map.emplace("PFVArControllerType1Dynamics", &PFVArControllerType1Dynamics_factory); } void PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -128,9 +160,9 @@ void PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map void PFVArControllerType1Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType1Dynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:PFVArControllerType1Dynamics.RemoteInputSignal", &assign_PFVArControllerType1Dynamics_RemoteInputSignal); - assign_map.emplace("cim:PFVArControllerType1Dynamics.VoltageAdjusterDynamics", &assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics); + assign_map.emplace("PFVArControllerType1Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType1Dynamics_ExcitationSystemDynamics); + assign_map.emplace("PFVArControllerType1Dynamics.RemoteInputSignal", &assign_PFVArControllerType1Dynamics_RemoteInputSignal); + assign_map.emplace("PFVArControllerType1Dynamics.VoltageAdjusterDynamics", &assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics); } void PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -141,7 +173,7 @@ void PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType1Dynamics_ExcitationSystemDynamics); + get_map.emplace("PFVArControllerType1Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType1Dynamics_ExcitationSystemDynamics); } void PFVArControllerType1Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -149,11 +181,25 @@ void PFVArControllerType1Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType1Dynamics::declare() { return BaseClassDefiner(PFVArControllerType1Dynamics::addConstructToMap, PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap, PFVArControllerType1Dynamics::addClassAssignFnsToMap, PFVArControllerType1Dynamics::debugName); } +std::map PFVArControllerType1Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType1Dynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArControllerType1Dynamics.hpp b/CGMES_2.4.15_16FEB2016/PFVArControllerType1Dynamics.hpp index 722dc238b..370559ca9 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArControllerType1Dynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArControllerType1Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType1Dynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArControllerType1UserDefined.cpp b/CGMES_2.4.15_16FEB2016/PFVArControllerType1UserDefined.cpp index 10b773647..51f44e3a8 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArControllerType1UserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArControllerType1UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType1UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType1UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType1UserDefined::PFVArControllerType1UserDefined() {} PFVArControllerType1UserDefined::~PFVArControllerType1UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType1UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType1UserDefined::getClassNamespaceUrl() const { - { "cim:PFVArControllerType1UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType1UserDefined::getPossibleProfilesForClass() const +const std::string& PFVArControllerType1UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType1UserDefined::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType1UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType1UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType1UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType1UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PFVArControllerType1UserDefined::debugString() const void PFVArControllerType1UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType1UserDefined", &PFVArControllerType1UserDefined_factory); + factory_map.emplace("PFVArControllerType1UserDefined", &PFVArControllerType1UserDefined_factory); } void PFVArControllerType1UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1UserDefined.proprietary", &assign_PFVArControllerType1UserDefined_proprietary); + assign_map.emplace("PFVArControllerType1UserDefined.proprietary", &assign_PFVArControllerType1UserDefined_proprietary); } void PFVArControllerType1UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType1UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PFVArControllerType1UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType1UserDefined_ProprietaryParameterDynamics); } void PFVArControllerType1UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType1UserDefined.proprietary", &get_PFVArControllerType1UserDefined_proprietary); + get_map.emplace("PFVArControllerType1UserDefined.proprietary", &get_PFVArControllerType1UserDefined_proprietary); } void PFVArControllerType1UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PFVArControllerType1UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType1UserDefined::declare() { return BaseClassDefiner(PFVArControllerType1UserDefined::addConstructToMap, PFVArControllerType1UserDefined::addPrimitiveAssignFnsToMap, PFVArControllerType1UserDefined::addClassAssignFnsToMap, PFVArControllerType1UserDefined::debugName); } +std::map PFVArControllerType1UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType1UserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArControllerType1UserDefined.hpp b/CGMES_2.4.15_16FEB2016/PFVArControllerType1UserDefined.hpp index c324b0c9f..6aa0afd40 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArControllerType1UserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArControllerType1UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType1UserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArControllerType2Dynamics.cpp b/CGMES_2.4.15_16FEB2016/PFVArControllerType2Dynamics.cpp index e6c875b3a..60885d0c7 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArControllerType2Dynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArControllerType2Dynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType2Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType2Dynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType2Dynamics::PFVArControllerType2Dynamics() : ExcitationSystemDynamics(nullptr) {} PFVArControllerType2Dynamics::~PFVArControllerType2Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType2Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType2Dynamics::getClassNamespaceUrl() const { - { "cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType2Dynamics::getPossibleProfilesForClass() const +const std::string& PFVArControllerType2Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType2Dynamics::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType2Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType2Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType2Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType2Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* PFVArControllerType2Dynamics::debugString() const void PFVArControllerType2Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType2Dynamics", &PFVArControllerType2Dynamics_factory); + factory_map.emplace("PFVArControllerType2Dynamics", &PFVArControllerType2Dynamics_factory); } void PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map void PFVArControllerType2Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType2Dynamics_ExcitationSystemDynamics); + assign_map.emplace("PFVArControllerType2Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType2Dynamics_ExcitationSystemDynamics); } void PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType2Dynamics_ExcitationSystemDynamics); + get_map.emplace("PFVArControllerType2Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType2Dynamics_ExcitationSystemDynamics); } void PFVArControllerType2Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void PFVArControllerType2Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType2Dynamics::declare() { return BaseClassDefiner(PFVArControllerType2Dynamics::addConstructToMap, PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap, PFVArControllerType2Dynamics::addClassAssignFnsToMap, PFVArControllerType2Dynamics::debugName); } +std::map PFVArControllerType2Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType2Dynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArControllerType2Dynamics.hpp b/CGMES_2.4.15_16FEB2016/PFVArControllerType2Dynamics.hpp index 28e466647..b945ca07f 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArControllerType2Dynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArControllerType2Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType2Dynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArControllerType2UserDefined.cpp b/CGMES_2.4.15_16FEB2016/PFVArControllerType2UserDefined.cpp index 166ceecea..a7370aaca 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArControllerType2UserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArControllerType2UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType2UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType2UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType2UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType2UserDefined::PFVArControllerType2UserDefined() {} PFVArControllerType2UserDefined::~PFVArControllerType2UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType2UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType2UserDefined::getClassNamespaceUrl() const { - { "cim:PFVArControllerType2UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType2UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType2UserDefined::getPossibleProfilesForClass() const +const std::string& PFVArControllerType2UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType2UserDefined::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType2UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType2UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType2UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType2UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PFVArControllerType2UserDefined::debugString() const void PFVArControllerType2UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType2UserDefined", &PFVArControllerType2UserDefined_factory); + factory_map.emplace("PFVArControllerType2UserDefined", &PFVArControllerType2UserDefined_factory); } void PFVArControllerType2UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2UserDefined.proprietary", &assign_PFVArControllerType2UserDefined_proprietary); + assign_map.emplace("PFVArControllerType2UserDefined.proprietary", &assign_PFVArControllerType2UserDefined_proprietary); } void PFVArControllerType2UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType2UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PFVArControllerType2UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType2UserDefined_ProprietaryParameterDynamics); } void PFVArControllerType2UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType2UserDefined.proprietary", &get_PFVArControllerType2UserDefined_proprietary); + get_map.emplace("PFVArControllerType2UserDefined.proprietary", &get_PFVArControllerType2UserDefined_proprietary); } void PFVArControllerType2UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PFVArControllerType2UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType2UserDefined::declare() { return BaseClassDefiner(PFVArControllerType2UserDefined::addConstructToMap, PFVArControllerType2UserDefined::addPrimitiveAssignFnsToMap, PFVArControllerType2UserDefined::addClassAssignFnsToMap, PFVArControllerType2UserDefined::debugName); } +std::map PFVArControllerType2UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType2UserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArControllerType2UserDefined.hpp b/CGMES_2.4.15_16FEB2016/PFVArControllerType2UserDefined.hpp index 7a58fa35b..af723ff2e 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArControllerType2UserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArControllerType2UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType2UserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArType1IEEEPFController.cpp b/CGMES_2.4.15_16FEB2016/PFVArType1IEEEPFController.cpp index 0bce66721..76e634baa 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType1IEEEPFController.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType1IEEEPFController.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType1IEEEPFController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType1IEEEPFController.ovex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.tpfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vitmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpfcbw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpfref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vvtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vvtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType1IEEEPFController::PFVArType1IEEEPFController() {} PFVArType1IEEEPFController::~PFVArType1IEEEPFController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType1IEEEPFController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType1IEEEPFController::getClassNamespaceUrl() const { - { "cim:PFVArType1IEEEPFController.ovex", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.tpfc", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vitmin", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpf", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpfcbw", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpfref", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vvtmax", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vvtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType1IEEEPFController::getPossibleProfilesForClass() const +const std::string& PFVArType1IEEEPFController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType1IEEEPFController::getPossibleProfilesForAttributes() const +const std::list& PFVArType1IEEEPFController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType1IEEEPFController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType1IEEEPFController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType1IEEEPFController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType1IEEEPFController_ovex(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* PFVArType1IEEEPFController::debugString() const void PFVArType1IEEEPFController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType1IEEEPFController", &PFVArType1IEEEPFController_factory); + factory_map.emplace("PFVArType1IEEEPFController", &PFVArType1IEEEPFController_factory); } void PFVArType1IEEEPFController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType1IEEEPFController.ovex", &assign_PFVArType1IEEEPFController_ovex); - assign_map.emplace("cim:PFVArType1IEEEPFController.tpfc", &assign_PFVArType1IEEEPFController_tpfc); - assign_map.emplace("cim:PFVArType1IEEEPFController.vitmin", &assign_PFVArType1IEEEPFController_vitmin); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpf", &assign_PFVArType1IEEEPFController_vpf); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpfcbw", &assign_PFVArType1IEEEPFController_vpfcbw); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpfref", &assign_PFVArType1IEEEPFController_vpfref); - assign_map.emplace("cim:PFVArType1IEEEPFController.vvtmax", &assign_PFVArType1IEEEPFController_vvtmax); - assign_map.emplace("cim:PFVArType1IEEEPFController.vvtmin", &assign_PFVArType1IEEEPFController_vvtmin); + assign_map.emplace("PFVArType1IEEEPFController.ovex", &assign_PFVArType1IEEEPFController_ovex); + assign_map.emplace("PFVArType1IEEEPFController.tpfc", &assign_PFVArType1IEEEPFController_tpfc); + assign_map.emplace("PFVArType1IEEEPFController.vitmin", &assign_PFVArType1IEEEPFController_vitmin); + assign_map.emplace("PFVArType1IEEEPFController.vpf", &assign_PFVArType1IEEEPFController_vpf); + assign_map.emplace("PFVArType1IEEEPFController.vpfcbw", &assign_PFVArType1IEEEPFController_vpfcbw); + assign_map.emplace("PFVArType1IEEEPFController.vpfref", &assign_PFVArType1IEEEPFController_vpfref); + assign_map.emplace("PFVArType1IEEEPFController.vvtmax", &assign_PFVArType1IEEEPFController_vvtmax); + assign_map.emplace("PFVArType1IEEEPFController.vvtmin", &assign_PFVArType1IEEEPFController_vvtmin); } void PFVArType1IEEEPFController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void PFVArType1IEEEPFController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType1IEEEPFController.ovex", &get_PFVArType1IEEEPFController_ovex); - get_map.emplace("cim:PFVArType1IEEEPFController.tpfc", &get_PFVArType1IEEEPFController_tpfc); - get_map.emplace("cim:PFVArType1IEEEPFController.vitmin", &get_PFVArType1IEEEPFController_vitmin); - get_map.emplace("cim:PFVArType1IEEEPFController.vpf", &get_PFVArType1IEEEPFController_vpf); - get_map.emplace("cim:PFVArType1IEEEPFController.vpfcbw", &get_PFVArType1IEEEPFController_vpfcbw); - get_map.emplace("cim:PFVArType1IEEEPFController.vpfref", &get_PFVArType1IEEEPFController_vpfref); - get_map.emplace("cim:PFVArType1IEEEPFController.vvtmax", &get_PFVArType1IEEEPFController_vvtmax); - get_map.emplace("cim:PFVArType1IEEEPFController.vvtmin", &get_PFVArType1IEEEPFController_vvtmin); + get_map.emplace("PFVArType1IEEEPFController.ovex", &get_PFVArType1IEEEPFController_ovex); + get_map.emplace("PFVArType1IEEEPFController.tpfc", &get_PFVArType1IEEEPFController_tpfc); + get_map.emplace("PFVArType1IEEEPFController.vitmin", &get_PFVArType1IEEEPFController_vitmin); + get_map.emplace("PFVArType1IEEEPFController.vpf", &get_PFVArType1IEEEPFController_vpf); + get_map.emplace("PFVArType1IEEEPFController.vpfcbw", &get_PFVArType1IEEEPFController_vpfcbw); + get_map.emplace("PFVArType1IEEEPFController.vpfref", &get_PFVArType1IEEEPFController_vpfref); + get_map.emplace("PFVArType1IEEEPFController.vvtmax", &get_PFVArType1IEEEPFController_vvtmax); + get_map.emplace("PFVArType1IEEEPFController.vvtmin", &get_PFVArType1IEEEPFController_vvtmin); } void PFVArType1IEEEPFController::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void PFVArType1IEEEPFController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType1IEEEPFController::declare() { return BaseClassDefiner(PFVArType1IEEEPFController::addConstructToMap, PFVArType1IEEEPFController::addPrimitiveAssignFnsToMap, PFVArType1IEEEPFController::addClassAssignFnsToMap, PFVArType1IEEEPFController::debugName); } +std::map PFVArType1IEEEPFController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType1IEEEPFController_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArType1IEEEPFController.hpp b/CGMES_2.4.15_16FEB2016/PFVArType1IEEEPFController.hpp index 752d31f36..f7a82252e 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType1IEEEPFController.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType1IEEEPFController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType1IEEEPFController_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArType1IEEEVArController.cpp b/CGMES_2.4.15_16FEB2016/PFVArType1IEEEVArController.cpp index 589dd60a6..c900b080a 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType1IEEEVArController.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType1IEEEVArController.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType1IEEEVArController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType1IEEEVArController.tvarc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvar", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvarcbw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvarref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType1IEEEVArController::PFVArType1IEEEVArController() {} PFVArType1IEEEVArController::~PFVArType1IEEEVArController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType1IEEEVArController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType1IEEEVArController::getClassNamespaceUrl() const { - { "cim:PFVArType1IEEEVArController.tvarc", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvar", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvarcbw", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvarref", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvtmax", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType1IEEEVArController::getPossibleProfilesForClass() const +const std::string& PFVArType1IEEEVArController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType1IEEEVArController::getPossibleProfilesForAttributes() const +const std::list& PFVArType1IEEEVArController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType1IEEEVArController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType1IEEEVArController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType1IEEEVArController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType1IEEEVArController_tvarc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* PFVArType1IEEEVArController::debugString() const void PFVArType1IEEEVArController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType1IEEEVArController", &PFVArType1IEEEVArController_factory); + factory_map.emplace("PFVArType1IEEEVArController", &PFVArType1IEEEVArController_factory); } void PFVArType1IEEEVArController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType1IEEEVArController.tvarc", &assign_PFVArType1IEEEVArController_tvarc); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvar", &assign_PFVArType1IEEEVArController_vvar); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvarcbw", &assign_PFVArType1IEEEVArController_vvarcbw); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvarref", &assign_PFVArType1IEEEVArController_vvarref); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvtmax", &assign_PFVArType1IEEEVArController_vvtmax); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvtmin", &assign_PFVArType1IEEEVArController_vvtmin); + assign_map.emplace("PFVArType1IEEEVArController.tvarc", &assign_PFVArType1IEEEVArController_tvarc); + assign_map.emplace("PFVArType1IEEEVArController.vvar", &assign_PFVArType1IEEEVArController_vvar); + assign_map.emplace("PFVArType1IEEEVArController.vvarcbw", &assign_PFVArType1IEEEVArController_vvarcbw); + assign_map.emplace("PFVArType1IEEEVArController.vvarref", &assign_PFVArType1IEEEVArController_vvarref); + assign_map.emplace("PFVArType1IEEEVArController.vvtmax", &assign_PFVArType1IEEEVArController_vvtmax); + assign_map.emplace("PFVArType1IEEEVArController.vvtmin", &assign_PFVArType1IEEEVArController_vvtmin); } void PFVArType1IEEEVArController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void PFVArType1IEEEVArController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType1IEEEVArController.tvarc", &get_PFVArType1IEEEVArController_tvarc); - get_map.emplace("cim:PFVArType1IEEEVArController.vvar", &get_PFVArType1IEEEVArController_vvar); - get_map.emplace("cim:PFVArType1IEEEVArController.vvarcbw", &get_PFVArType1IEEEVArController_vvarcbw); - get_map.emplace("cim:PFVArType1IEEEVArController.vvarref", &get_PFVArType1IEEEVArController_vvarref); - get_map.emplace("cim:PFVArType1IEEEVArController.vvtmax", &get_PFVArType1IEEEVArController_vvtmax); - get_map.emplace("cim:PFVArType1IEEEVArController.vvtmin", &get_PFVArType1IEEEVArController_vvtmin); + get_map.emplace("PFVArType1IEEEVArController.tvarc", &get_PFVArType1IEEEVArController_tvarc); + get_map.emplace("PFVArType1IEEEVArController.vvar", &get_PFVArType1IEEEVArController_vvar); + get_map.emplace("PFVArType1IEEEVArController.vvarcbw", &get_PFVArType1IEEEVArController_vvarcbw); + get_map.emplace("PFVArType1IEEEVArController.vvarref", &get_PFVArType1IEEEVArController_vvarref); + get_map.emplace("PFVArType1IEEEVArController.vvtmax", &get_PFVArType1IEEEVArController_vvtmax); + get_map.emplace("PFVArType1IEEEVArController.vvtmin", &get_PFVArType1IEEEVArController_vvtmin); } void PFVArType1IEEEVArController::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void PFVArType1IEEEVArController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType1IEEEVArController::declare() { return BaseClassDefiner(PFVArType1IEEEVArController::addConstructToMap, PFVArType1IEEEVArController::addPrimitiveAssignFnsToMap, PFVArType1IEEEVArController::addClassAssignFnsToMap, PFVArType1IEEEVArController::debugName); } +std::map PFVArType1IEEEVArController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType1IEEEVArController_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArType1IEEEVArController.hpp b/CGMES_2.4.15_16FEB2016/PFVArType1IEEEVArController.hpp index ccc74b4a4..88c05d87b 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType1IEEEVArController.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType1IEEEVArController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType1IEEEVArController_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArType2Common1.cpp b/CGMES_2.4.15_16FEB2016/PFVArType2Common1.cpp index 8bd6aecd5..a45e2b666 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType2Common1.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType2Common1.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2Common1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2Common1.j", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.ref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2Common1::PFVArType2Common1() {} PFVArType2Common1::~PFVArType2Common1() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2Common1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2Common1::getClassNamespaceUrl() const { - { "cim:PFVArType2Common1.j", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.max", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.ref", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2Common1::getPossibleProfilesForClass() const +const std::string& PFVArType2Common1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2Common1::getPossibleProfilesForAttributes() const +const std::list& PFVArType2Common1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2Common1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2Common1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2Common1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2Common1_j(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* PFVArType2Common1::debugString() const void PFVArType2Common1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2Common1", &PFVArType2Common1_factory); + factory_map.emplace("PFVArType2Common1", &PFVArType2Common1_factory); } void PFVArType2Common1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2Common1.j", &assign_PFVArType2Common1_j); - assign_map.emplace("cim:PFVArType2Common1.ki", &assign_PFVArType2Common1_ki); - assign_map.emplace("cim:PFVArType2Common1.kp", &assign_PFVArType2Common1_kp); - assign_map.emplace("cim:PFVArType2Common1.max", &assign_PFVArType2Common1_max); - assign_map.emplace("cim:PFVArType2Common1.ref", &assign_PFVArType2Common1_ref); + assign_map.emplace("PFVArType2Common1.j", &assign_PFVArType2Common1_j); + assign_map.emplace("PFVArType2Common1.ki", &assign_PFVArType2Common1_ki); + assign_map.emplace("PFVArType2Common1.kp", &assign_PFVArType2Common1_kp); + assign_map.emplace("PFVArType2Common1.max", &assign_PFVArType2Common1_max); + assign_map.emplace("PFVArType2Common1.ref", &assign_PFVArType2Common1_ref); } void PFVArType2Common1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void PFVArType2Common1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2Common1.j", &get_PFVArType2Common1_j); - get_map.emplace("cim:PFVArType2Common1.ki", &get_PFVArType2Common1_ki); - get_map.emplace("cim:PFVArType2Common1.kp", &get_PFVArType2Common1_kp); - get_map.emplace("cim:PFVArType2Common1.max", &get_PFVArType2Common1_max); - get_map.emplace("cim:PFVArType2Common1.ref", &get_PFVArType2Common1_ref); + get_map.emplace("PFVArType2Common1.j", &get_PFVArType2Common1_j); + get_map.emplace("PFVArType2Common1.ki", &get_PFVArType2Common1_ki); + get_map.emplace("PFVArType2Common1.kp", &get_PFVArType2Common1_kp); + get_map.emplace("PFVArType2Common1.max", &get_PFVArType2Common1_max); + get_map.emplace("PFVArType2Common1.ref", &get_PFVArType2Common1_ref); } void PFVArType2Common1::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void PFVArType2Common1::addEnumGetFnsToMap(std::map& PFVArControllerType2Dynamics::addEnumGetFnsToMap(get_map); } +bool PFVArType2Common1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PFVArType2Common1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2Common1::declare() { return BaseClassDefiner(PFVArType2Common1::addConstructToMap, PFVArType2Common1::addPrimitiveAssignFnsToMap, PFVArType2Common1::addClassAssignFnsToMap, PFVArType2Common1::debugName); } +std::map PFVArType2Common1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2Common1_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArType2Common1.hpp b/CGMES_2.4.15_16FEB2016/PFVArType2Common1.hpp index e6ccc4d7a..8fdc553db 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType2Common1.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType2Common1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2Common1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArType2IEEEPFController.cpp b/CGMES_2.4.15_16FEB2016/PFVArType2IEEEPFController.cpp index bdf95df85..854d75aeb 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType2IEEEPFController.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType2IEEEPFController.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2IEEEPFController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2IEEEPFController.exlon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.pfref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vclmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2IEEEPFController::PFVArType2IEEEPFController() {} PFVArType2IEEEPFController::~PFVArType2IEEEPFController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2IEEEPFController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2IEEEPFController::getClassNamespaceUrl() const { - { "cim:PFVArType2IEEEPFController.exlon", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.pfref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vclmt", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2IEEEPFController::getPossibleProfilesForClass() const +const std::string& PFVArType2IEEEPFController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2IEEEPFController::getPossibleProfilesForAttributes() const +const std::list& PFVArType2IEEEPFController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2IEEEPFController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2IEEEPFController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2IEEEPFController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2IEEEPFController_exlon(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PFVArType2IEEEPFController::debugString() const void PFVArType2IEEEPFController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2IEEEPFController", &PFVArType2IEEEPFController_factory); + factory_map.emplace("PFVArType2IEEEPFController", &PFVArType2IEEEPFController_factory); } void PFVArType2IEEEPFController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2IEEEPFController.exlon", &assign_PFVArType2IEEEPFController_exlon); - assign_map.emplace("cim:PFVArType2IEEEPFController.ki", &assign_PFVArType2IEEEPFController_ki); - assign_map.emplace("cim:PFVArType2IEEEPFController.kp", &assign_PFVArType2IEEEPFController_kp); - assign_map.emplace("cim:PFVArType2IEEEPFController.pfref", &assign_PFVArType2IEEEPFController_pfref); - assign_map.emplace("cim:PFVArType2IEEEPFController.vclmt", &assign_PFVArType2IEEEPFController_vclmt); - assign_map.emplace("cim:PFVArType2IEEEPFController.vref", &assign_PFVArType2IEEEPFController_vref); - assign_map.emplace("cim:PFVArType2IEEEPFController.vs", &assign_PFVArType2IEEEPFController_vs); + assign_map.emplace("PFVArType2IEEEPFController.exlon", &assign_PFVArType2IEEEPFController_exlon); + assign_map.emplace("PFVArType2IEEEPFController.ki", &assign_PFVArType2IEEEPFController_ki); + assign_map.emplace("PFVArType2IEEEPFController.kp", &assign_PFVArType2IEEEPFController_kp); + assign_map.emplace("PFVArType2IEEEPFController.pfref", &assign_PFVArType2IEEEPFController_pfref); + assign_map.emplace("PFVArType2IEEEPFController.vclmt", &assign_PFVArType2IEEEPFController_vclmt); + assign_map.emplace("PFVArType2IEEEPFController.vref", &assign_PFVArType2IEEEPFController_vref); + assign_map.emplace("PFVArType2IEEEPFController.vs", &assign_PFVArType2IEEEPFController_vs); } void PFVArType2IEEEPFController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void PFVArType2IEEEPFController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2IEEEPFController.exlon", &get_PFVArType2IEEEPFController_exlon); - get_map.emplace("cim:PFVArType2IEEEPFController.ki", &get_PFVArType2IEEEPFController_ki); - get_map.emplace("cim:PFVArType2IEEEPFController.kp", &get_PFVArType2IEEEPFController_kp); - get_map.emplace("cim:PFVArType2IEEEPFController.pfref", &get_PFVArType2IEEEPFController_pfref); - get_map.emplace("cim:PFVArType2IEEEPFController.vclmt", &get_PFVArType2IEEEPFController_vclmt); - get_map.emplace("cim:PFVArType2IEEEPFController.vref", &get_PFVArType2IEEEPFController_vref); - get_map.emplace("cim:PFVArType2IEEEPFController.vs", &get_PFVArType2IEEEPFController_vs); + get_map.emplace("PFVArType2IEEEPFController.exlon", &get_PFVArType2IEEEPFController_exlon); + get_map.emplace("PFVArType2IEEEPFController.ki", &get_PFVArType2IEEEPFController_ki); + get_map.emplace("PFVArType2IEEEPFController.kp", &get_PFVArType2IEEEPFController_kp); + get_map.emplace("PFVArType2IEEEPFController.pfref", &get_PFVArType2IEEEPFController_pfref); + get_map.emplace("PFVArType2IEEEPFController.vclmt", &get_PFVArType2IEEEPFController_vclmt); + get_map.emplace("PFVArType2IEEEPFController.vref", &get_PFVArType2IEEEPFController_vref); + get_map.emplace("PFVArType2IEEEPFController.vs", &get_PFVArType2IEEEPFController_vs); } void PFVArType2IEEEPFController::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void PFVArType2IEEEPFController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2IEEEPFController::declare() { return BaseClassDefiner(PFVArType2IEEEPFController::addConstructToMap, PFVArType2IEEEPFController::addPrimitiveAssignFnsToMap, PFVArType2IEEEPFController::addClassAssignFnsToMap, PFVArType2IEEEPFController::debugName); } +std::map PFVArType2IEEEPFController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2IEEEPFController_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArType2IEEEPFController.hpp b/CGMES_2.4.15_16FEB2016/PFVArType2IEEEPFController.hpp index b75160448..91ba33e8c 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType2IEEEPFController.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType2IEEEPFController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2IEEEPFController_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PFVArType2IEEEVArController.cpp b/CGMES_2.4.15_16FEB2016/PFVArType2IEEEVArController.cpp index 56e3c29b0..876ee7302 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType2IEEEVArController.cpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType2IEEEVArController.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2IEEEVArController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2IEEEVArController.exlon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.qref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vclmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2IEEEVArController::PFVArType2IEEEVArController() {} PFVArType2IEEEVArController::~PFVArType2IEEEVArController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2IEEEVArController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2IEEEVArController::getClassNamespaceUrl() const { - { "cim:PFVArType2IEEEVArController.exlon", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.qref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vclmt", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2IEEEVArController::getPossibleProfilesForClass() const +const std::string& PFVArType2IEEEVArController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2IEEEVArController::getPossibleProfilesForAttributes() const +const std::list& PFVArType2IEEEVArController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2IEEEVArController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2IEEEVArController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2IEEEVArController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2IEEEVArController_exlon(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PFVArType2IEEEVArController::debugString() const void PFVArType2IEEEVArController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2IEEEVArController", &PFVArType2IEEEVArController_factory); + factory_map.emplace("PFVArType2IEEEVArController", &PFVArType2IEEEVArController_factory); } void PFVArType2IEEEVArController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2IEEEVArController.exlon", &assign_PFVArType2IEEEVArController_exlon); - assign_map.emplace("cim:PFVArType2IEEEVArController.ki", &assign_PFVArType2IEEEVArController_ki); - assign_map.emplace("cim:PFVArType2IEEEVArController.kp", &assign_PFVArType2IEEEVArController_kp); - assign_map.emplace("cim:PFVArType2IEEEVArController.qref", &assign_PFVArType2IEEEVArController_qref); - assign_map.emplace("cim:PFVArType2IEEEVArController.vclmt", &assign_PFVArType2IEEEVArController_vclmt); - assign_map.emplace("cim:PFVArType2IEEEVArController.vref", &assign_PFVArType2IEEEVArController_vref); - assign_map.emplace("cim:PFVArType2IEEEVArController.vs", &assign_PFVArType2IEEEVArController_vs); + assign_map.emplace("PFVArType2IEEEVArController.exlon", &assign_PFVArType2IEEEVArController_exlon); + assign_map.emplace("PFVArType2IEEEVArController.ki", &assign_PFVArType2IEEEVArController_ki); + assign_map.emplace("PFVArType2IEEEVArController.kp", &assign_PFVArType2IEEEVArController_kp); + assign_map.emplace("PFVArType2IEEEVArController.qref", &assign_PFVArType2IEEEVArController_qref); + assign_map.emplace("PFVArType2IEEEVArController.vclmt", &assign_PFVArType2IEEEVArController_vclmt); + assign_map.emplace("PFVArType2IEEEVArController.vref", &assign_PFVArType2IEEEVArController_vref); + assign_map.emplace("PFVArType2IEEEVArController.vs", &assign_PFVArType2IEEEVArController_vs); } void PFVArType2IEEEVArController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void PFVArType2IEEEVArController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2IEEEVArController.exlon", &get_PFVArType2IEEEVArController_exlon); - get_map.emplace("cim:PFVArType2IEEEVArController.ki", &get_PFVArType2IEEEVArController_ki); - get_map.emplace("cim:PFVArType2IEEEVArController.kp", &get_PFVArType2IEEEVArController_kp); - get_map.emplace("cim:PFVArType2IEEEVArController.qref", &get_PFVArType2IEEEVArController_qref); - get_map.emplace("cim:PFVArType2IEEEVArController.vclmt", &get_PFVArType2IEEEVArController_vclmt); - get_map.emplace("cim:PFVArType2IEEEVArController.vref", &get_PFVArType2IEEEVArController_vref); - get_map.emplace("cim:PFVArType2IEEEVArController.vs", &get_PFVArType2IEEEVArController_vs); + get_map.emplace("PFVArType2IEEEVArController.exlon", &get_PFVArType2IEEEVArController_exlon); + get_map.emplace("PFVArType2IEEEVArController.ki", &get_PFVArType2IEEEVArController_ki); + get_map.emplace("PFVArType2IEEEVArController.kp", &get_PFVArType2IEEEVArController_kp); + get_map.emplace("PFVArType2IEEEVArController.qref", &get_PFVArType2IEEEVArController_qref); + get_map.emplace("PFVArType2IEEEVArController.vclmt", &get_PFVArType2IEEEVArController_vclmt); + get_map.emplace("PFVArType2IEEEVArController.vref", &get_PFVArType2IEEEVArController_vref); + get_map.emplace("PFVArType2IEEEVArController.vs", &get_PFVArType2IEEEVArController_vs); } void PFVArType2IEEEVArController::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void PFVArType2IEEEVArController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2IEEEVArController::declare() { return BaseClassDefiner(PFVArType2IEEEVArController::addConstructToMap, PFVArType2IEEEVArController::addPrimitiveAssignFnsToMap, PFVArType2IEEEVArController::addClassAssignFnsToMap, PFVArType2IEEEVArController::debugName); } +std::map PFVArType2IEEEVArController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2IEEEVArController_factory() diff --git a/CGMES_2.4.15_16FEB2016/PFVArType2IEEEVArController.hpp b/CGMES_2.4.15_16FEB2016/PFVArType2IEEEVArController.hpp index e5a578551..6b01e5312 100644 --- a/CGMES_2.4.15_16FEB2016/PFVArType2IEEEVArController.hpp +++ b/CGMES_2.4.15_16FEB2016/PFVArType2IEEEVArController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2IEEEVArController_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PerLengthDCLineParameter.cpp b/CGMES_2.4.15_16FEB2016/PerLengthDCLineParameter.cpp index f92329e76..4d3f659ab 100644 --- a/CGMES_2.4.15_16FEB2016/PerLengthDCLineParameter.cpp +++ b/CGMES_2.4.15_16FEB2016/PerLengthDCLineParameter.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PerLengthDCLineParameter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PerLengthDCLineParameter.DCLineSegments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PerLengthDCLineParameter::PerLengthDCLineParameter() {} PerLengthDCLineParameter::~PerLengthDCLineParameter() {} -static const std::list PossibleProfilesForClass = +const std::list& PerLengthDCLineParameter::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PerLengthDCLineParameter::getClassNamespaceUrl() const { - { "cim:PerLengthDCLineParameter.DCLineSegments", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.capacitance", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.inductance", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PerLengthDCLineParameter::getPossibleProfilesForClass() const +const std::string& PerLengthDCLineParameter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PerLengthDCLineParameter::getPossibleProfilesForAttributes() const +const std::list& PerLengthDCLineParameter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PerLengthDCLineParameter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PerLengthDCLineParameter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PerLengthDCLineParameter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCLineSegment_PerLengthParameter(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* PerLengthDCLineParameter::debugString() const void PerLengthDCLineParameter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PerLengthDCLineParameter", &PerLengthDCLineParameter_factory); + factory_map.emplace("PerLengthDCLineParameter", &PerLengthDCLineParameter_factory); } void PerLengthDCLineParameter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PerLengthDCLineParameter.capacitance", &assign_PerLengthDCLineParameter_capacitance); - assign_map.emplace("cim:PerLengthDCLineParameter.inductance", &assign_PerLengthDCLineParameter_inductance); - assign_map.emplace("cim:PerLengthDCLineParameter.resistance", &assign_PerLengthDCLineParameter_resistance); + assign_map.emplace("PerLengthDCLineParameter.capacitance", &assign_PerLengthDCLineParameter_capacitance); + assign_map.emplace("PerLengthDCLineParameter.inductance", &assign_PerLengthDCLineParameter_inductance); + assign_map.emplace("PerLengthDCLineParameter.resistance", &assign_PerLengthDCLineParameter_resistance); } void PerLengthDCLineParameter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PerLengthDCLineParameter.DCLineSegments", &assign_PerLengthDCLineParameter_DCLineSegments); + assign_map.emplace("PerLengthDCLineParameter.DCLineSegments", &assign_PerLengthDCLineParameter_DCLineSegments); } void PerLengthDCLineParameter::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PerLengthDCLineParameter.capacitance", &get_PerLengthDCLineParameter_capacitance); - get_map.emplace("cim:PerLengthDCLineParameter.inductance", &get_PerLengthDCLineParameter_inductance); - get_map.emplace("cim:PerLengthDCLineParameter.resistance", &get_PerLengthDCLineParameter_resistance); + get_map.emplace("PerLengthDCLineParameter.capacitance", &get_PerLengthDCLineParameter_capacitance); + get_map.emplace("PerLengthDCLineParameter.inductance", &get_PerLengthDCLineParameter_inductance); + get_map.emplace("PerLengthDCLineParameter.resistance", &get_PerLengthDCLineParameter_resistance); } void PerLengthDCLineParameter::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void PerLengthDCLineParameter::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PerLengthDCLineParameter::declare() { return BaseClassDefiner(PerLengthDCLineParameter::addConstructToMap, PerLengthDCLineParameter::addPrimitiveAssignFnsToMap, PerLengthDCLineParameter::addClassAssignFnsToMap, PerLengthDCLineParameter::debugName); } +std::map PerLengthDCLineParameter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PerLengthDCLineParameter_factory() diff --git a/CGMES_2.4.15_16FEB2016/PerLengthDCLineParameter.hpp b/CGMES_2.4.15_16FEB2016/PerLengthDCLineParameter.hpp index 5f5cadcde..b77b89271 100644 --- a/CGMES_2.4.15_16FEB2016/PerLengthDCLineParameter.hpp +++ b/CGMES_2.4.15_16FEB2016/PerLengthDCLineParameter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CapacitancePerLength.hpp" #include "InductancePerLength.hpp" #include "ResistancePerLength.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PerLengthDCLineParameter_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PetersenCoil.cpp b/CGMES_2.4.15_16FEB2016/PetersenCoil.cpp index d19f1fbad..3117b743e 100644 --- a/CGMES_2.4.15_16FEB2016/PetersenCoil.cpp +++ b/CGMES_2.4.15_16FEB2016/PetersenCoil.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PetersenCoil(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PetersenCoil.mode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.nominalU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.offsetCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.positionCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundNominal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PetersenCoil::PetersenCoil() {} PetersenCoil::~PetersenCoil() {} -static const std::list PossibleProfilesForClass = +const std::list& PetersenCoil::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PetersenCoil::getClassNamespaceUrl() const { - { "cim:PetersenCoil.mode", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.nominalU", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.offsetCurrent", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.positionCurrent", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundMax", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundMin", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundNominal", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PetersenCoil::getPossibleProfilesForClass() const +const std::string& PetersenCoil::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PetersenCoil::getPossibleProfilesForAttributes() const +const std::list& PetersenCoil::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EarthFaultCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PetersenCoil::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PetersenCoil::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PetersenCoil::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PetersenCoil_mode(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PetersenCoil::debugString() const void PetersenCoil::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PetersenCoil", &PetersenCoil_factory); + factory_map.emplace("PetersenCoil", &PetersenCoil_factory); } void PetersenCoil::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PetersenCoil.mode", &assign_PetersenCoil_mode); - assign_map.emplace("cim:PetersenCoil.nominalU", &assign_PetersenCoil_nominalU); - assign_map.emplace("cim:PetersenCoil.offsetCurrent", &assign_PetersenCoil_offsetCurrent); - assign_map.emplace("cim:PetersenCoil.positionCurrent", &assign_PetersenCoil_positionCurrent); - assign_map.emplace("cim:PetersenCoil.xGroundMax", &assign_PetersenCoil_xGroundMax); - assign_map.emplace("cim:PetersenCoil.xGroundMin", &assign_PetersenCoil_xGroundMin); - assign_map.emplace("cim:PetersenCoil.xGroundNominal", &assign_PetersenCoil_xGroundNominal); + assign_map.emplace("PetersenCoil.mode", &assign_PetersenCoil_mode); + assign_map.emplace("PetersenCoil.nominalU", &assign_PetersenCoil_nominalU); + assign_map.emplace("PetersenCoil.offsetCurrent", &assign_PetersenCoil_offsetCurrent); + assign_map.emplace("PetersenCoil.positionCurrent", &assign_PetersenCoil_positionCurrent); + assign_map.emplace("PetersenCoil.xGroundMax", &assign_PetersenCoil_xGroundMax); + assign_map.emplace("PetersenCoil.xGroundMin", &assign_PetersenCoil_xGroundMin); + assign_map.emplace("PetersenCoil.xGroundNominal", &assign_PetersenCoil_xGroundNominal); } void PetersenCoil::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,12 +309,12 @@ void PetersenCoil::addClassAssignFnsToMap(std::unordered_map& get_map) const { EarthFaultCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PetersenCoil.nominalU", &get_PetersenCoil_nominalU); - get_map.emplace("cim:PetersenCoil.offsetCurrent", &get_PetersenCoil_offsetCurrent); - get_map.emplace("cim:PetersenCoil.positionCurrent", &get_PetersenCoil_positionCurrent); - get_map.emplace("cim:PetersenCoil.xGroundMax", &get_PetersenCoil_xGroundMax); - get_map.emplace("cim:PetersenCoil.xGroundMin", &get_PetersenCoil_xGroundMin); - get_map.emplace("cim:PetersenCoil.xGroundNominal", &get_PetersenCoil_xGroundNominal); + get_map.emplace("PetersenCoil.nominalU", &get_PetersenCoil_nominalU); + get_map.emplace("PetersenCoil.offsetCurrent", &get_PetersenCoil_offsetCurrent); + get_map.emplace("PetersenCoil.positionCurrent", &get_PetersenCoil_positionCurrent); + get_map.emplace("PetersenCoil.xGroundMax", &get_PetersenCoil_xGroundMax); + get_map.emplace("PetersenCoil.xGroundMin", &get_PetersenCoil_xGroundMin); + get_map.emplace("PetersenCoil.xGroundNominal", &get_PetersenCoil_xGroundNominal); } void PetersenCoil::addClassGetFnsToMap(std::map& get_map) const @@ -293,7 +325,13 @@ void PetersenCoil::addClassGetFnsToMap(std::map void PetersenCoil::addEnumGetFnsToMap(std::map& get_map) const { EarthFaultCompensator::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PetersenCoil.mode", &get_PetersenCoil_mode); + get_map.emplace("PetersenCoil.mode", &get_PetersenCoil_mode); +} + +bool PetersenCoil::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PetersenCoil" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PetersenCoil::declare() @@ -301,6 +339,14 @@ const BaseClassDefiner PetersenCoil::declare() return BaseClassDefiner(PetersenCoil::addConstructToMap, PetersenCoil::addPrimitiveAssignFnsToMap, PetersenCoil::addClassAssignFnsToMap, PetersenCoil::debugName); } +std::map PetersenCoil::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EarthFaultCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PetersenCoil_factory() diff --git a/CGMES_2.4.15_16FEB2016/PetersenCoil.hpp b/CGMES_2.4.15_16FEB2016/PetersenCoil.hpp index 3fcf3a91b..f775112be 100644 --- a/CGMES_2.4.15_16FEB2016/PetersenCoil.hpp +++ b/CGMES_2.4.15_16FEB2016/PetersenCoil.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EarthFaultCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" #include "PetersenCoilModeKind.hpp" #include "Reactance.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PetersenCoil_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChanger.cpp b/CGMES_2.4.15_16FEB2016/PhaseTapChanger.cpp index 7e542043f..3222bd6bd 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChanger.cpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChanger.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChanger.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChanger::PhaseTapChanger() : TransformerEnd(nullptr) {} PhaseTapChanger::~PhaseTapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChanger::getClassNamespaceUrl() const { - { "cim:PhaseTapChanger.TransformerEnd", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChanger::getPossibleProfilesForClass() const +const std::string& PhaseTapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChanger::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TransformerEnd_PhaseTapChanger(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* PhaseTapChanger::debugString() const void PhaseTapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChanger", &PhaseTapChanger_factory); + factory_map.emplace("PhaseTapChanger", &PhaseTapChanger_factory); } void PhaseTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void PhaseTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChanger.TransformerEnd", &assign_PhaseTapChanger_TransformerEnd); + assign_map.emplace("PhaseTapChanger.TransformerEnd", &assign_PhaseTapChanger_TransformerEnd); } void PhaseTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void PhaseTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChanger.TransformerEnd", &get_PhaseTapChanger_TransformerEnd); + get_map.emplace("PhaseTapChanger.TransformerEnd", &get_PhaseTapChanger_TransformerEnd); } void PhaseTapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void PhaseTapChanger::addEnumGetFnsToMap(std::map& ge TapChanger::addEnumGetFnsToMap(get_map); } +bool PhaseTapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PhaseTapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChanger::declare() { return BaseClassDefiner(PhaseTapChanger::addConstructToMap, PhaseTapChanger::addPrimitiveAssignFnsToMap, PhaseTapChanger::addClassAssignFnsToMap, PhaseTapChanger::debugName); } +std::map PhaseTapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChanger_factory() diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChanger.hpp b/CGMES_2.4.15_16FEB2016/PhaseTapChanger.hpp index 9fdaa4aa7..57a5f48f0 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChanger.hpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChanger_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerAsymmetrical.cpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerAsymmetrical.cpp index c8b178100..f0320297a 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerAsymmetrical.cpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerAsymmetrical.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerAsymmetrical(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerAsymmetrical.windingConnectionAngle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerAsymmetrical::PhaseTapChangerAsymmetrical() {} PhaseTapChangerAsymmetrical::~PhaseTapChangerAsymmetrical() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerAsymmetrical::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerAsymmetrical::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerAsymmetrical::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerAsymmetrical::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerAsymmetrical::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerAsymmetrical::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChangerNonLinear::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerAsymmetrical::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerAsymmetrical::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerAsymmetrical::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerAsymmetrical_windingConnectionAngle(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* PhaseTapChangerAsymmetrical::debugString() const void PhaseTapChangerAsymmetrical::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerAsymmetrical", &PhaseTapChangerAsymmetrical_factory); + factory_map.emplace("PhaseTapChangerAsymmetrical", &PhaseTapChangerAsymmetrical_factory); } void PhaseTapChangerAsymmetrical::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", &assign_PhaseTapChangerAsymmetrical_windingConnectionAngle); + assign_map.emplace("PhaseTapChangerAsymmetrical.windingConnectionAngle", &assign_PhaseTapChangerAsymmetrical_windingConnectionAngle); } void PhaseTapChangerAsymmetrical::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -92,7 +124,7 @@ void PhaseTapChangerAsymmetrical::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChangerNonLinear::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", &get_PhaseTapChangerAsymmetrical_windingConnectionAngle); + get_map.emplace("PhaseTapChangerAsymmetrical.windingConnectionAngle", &get_PhaseTapChangerAsymmetrical_windingConnectionAngle); } void PhaseTapChangerAsymmetrical::addClassGetFnsToMap(std::map& get_map) const @@ -105,11 +137,25 @@ void PhaseTapChangerAsymmetrical::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerAsymmetrical::declare() { return BaseClassDefiner(PhaseTapChangerAsymmetrical::addConstructToMap, PhaseTapChangerAsymmetrical::addPrimitiveAssignFnsToMap, PhaseTapChangerAsymmetrical::addClassAssignFnsToMap, PhaseTapChangerAsymmetrical::debugName); } +std::map PhaseTapChangerAsymmetrical::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChangerNonLinear::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerAsymmetrical_factory() diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerAsymmetrical.hpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerAsymmetrical.hpp index 580e7ca49..7b8b2f6e5 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerAsymmetrical.hpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerAsymmetrical.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChangerNonLinear.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerAsymmetrical_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerLinear.cpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerLinear.cpp index a54861567..a0f00663d 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerLinear.cpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerLinear.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerLinear.stepPhaseShiftIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerLinear.xMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerLinear.xMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerLinear::PhaseTapChangerLinear() {} PhaseTapChangerLinear::~PhaseTapChangerLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerLinear::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerLinear::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerLinear.xMax", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerLinear.xMin", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerLinear::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerLinear::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerLinear_stepPhaseShiftIncrement(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -137,14 +169,14 @@ const char* PhaseTapChangerLinear::debugString() const void PhaseTapChangerLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerLinear", &PhaseTapChangerLinear_factory); + factory_map.emplace("PhaseTapChangerLinear", &PhaseTapChangerLinear_factory); } void PhaseTapChangerLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", &assign_PhaseTapChangerLinear_stepPhaseShiftIncrement); - assign_map.emplace("cim:PhaseTapChangerLinear.xMax", &assign_PhaseTapChangerLinear_xMax); - assign_map.emplace("cim:PhaseTapChangerLinear.xMin", &assign_PhaseTapChangerLinear_xMin); + assign_map.emplace("PhaseTapChangerLinear.stepPhaseShiftIncrement", &assign_PhaseTapChangerLinear_stepPhaseShiftIncrement); + assign_map.emplace("PhaseTapChangerLinear.xMax", &assign_PhaseTapChangerLinear_xMax); + assign_map.emplace("PhaseTapChangerLinear.xMin", &assign_PhaseTapChangerLinear_xMin); } void PhaseTapChangerLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void PhaseTapChangerLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", &get_PhaseTapChangerLinear_stepPhaseShiftIncrement); - get_map.emplace("cim:PhaseTapChangerLinear.xMax", &get_PhaseTapChangerLinear_xMax); - get_map.emplace("cim:PhaseTapChangerLinear.xMin", &get_PhaseTapChangerLinear_xMin); + get_map.emplace("PhaseTapChangerLinear.stepPhaseShiftIncrement", &get_PhaseTapChangerLinear_stepPhaseShiftIncrement); + get_map.emplace("PhaseTapChangerLinear.xMax", &get_PhaseTapChangerLinear_xMax); + get_map.emplace("PhaseTapChangerLinear.xMin", &get_PhaseTapChangerLinear_xMin); } void PhaseTapChangerLinear::addClassGetFnsToMap(std::map& get_map) const @@ -169,11 +201,25 @@ void PhaseTapChangerLinear::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerLinear::declare() { return BaseClassDefiner(PhaseTapChangerLinear::addConstructToMap, PhaseTapChangerLinear::addPrimitiveAssignFnsToMap, PhaseTapChangerLinear::addClassAssignFnsToMap, PhaseTapChangerLinear::debugName); } +std::map PhaseTapChangerLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerLinear_factory() diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerLinear.hpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerLinear.hpp index fb4655393..b7e39e2a9 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerLinear.hpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Reactance.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerLinear_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerNonLinear.cpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerNonLinear.cpp index 349dad6b6..b4821f785 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerNonLinear.cpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerNonLinear.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerNonLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerNonLinear.voltageStepIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerNonLinear.xMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerNonLinear.xMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerNonLinear::PhaseTapChangerNonLinear() {} PhaseTapChangerNonLinear::~PhaseTapChangerNonLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerNonLinear::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerNonLinear::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerNonLinear.voltageStepIncrement", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerNonLinear.xMax", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerNonLinear.xMin", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerNonLinear::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerNonLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerNonLinear::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerNonLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerNonLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerNonLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerNonLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerNonLinear_voltageStepIncrement(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -137,14 +169,14 @@ const char* PhaseTapChangerNonLinear::debugString() const void PhaseTapChangerNonLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerNonLinear", &PhaseTapChangerNonLinear_factory); + factory_map.emplace("PhaseTapChangerNonLinear", &PhaseTapChangerNonLinear_factory); } void PhaseTapChangerNonLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerNonLinear.voltageStepIncrement", &assign_PhaseTapChangerNonLinear_voltageStepIncrement); - assign_map.emplace("cim:PhaseTapChangerNonLinear.xMax", &assign_PhaseTapChangerNonLinear_xMax); - assign_map.emplace("cim:PhaseTapChangerNonLinear.xMin", &assign_PhaseTapChangerNonLinear_xMin); + assign_map.emplace("PhaseTapChangerNonLinear.voltageStepIncrement", &assign_PhaseTapChangerNonLinear_voltageStepIncrement); + assign_map.emplace("PhaseTapChangerNonLinear.xMax", &assign_PhaseTapChangerNonLinear_xMax); + assign_map.emplace("PhaseTapChangerNonLinear.xMin", &assign_PhaseTapChangerNonLinear_xMin); } void PhaseTapChangerNonLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void PhaseTapChangerNonLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerNonLinear.voltageStepIncrement", &get_PhaseTapChangerNonLinear_voltageStepIncrement); - get_map.emplace("cim:PhaseTapChangerNonLinear.xMax", &get_PhaseTapChangerNonLinear_xMax); - get_map.emplace("cim:PhaseTapChangerNonLinear.xMin", &get_PhaseTapChangerNonLinear_xMin); + get_map.emplace("PhaseTapChangerNonLinear.voltageStepIncrement", &get_PhaseTapChangerNonLinear_voltageStepIncrement); + get_map.emplace("PhaseTapChangerNonLinear.xMax", &get_PhaseTapChangerNonLinear_xMax); + get_map.emplace("PhaseTapChangerNonLinear.xMin", &get_PhaseTapChangerNonLinear_xMin); } void PhaseTapChangerNonLinear::addClassGetFnsToMap(std::map& get_map) const @@ -169,11 +201,25 @@ void PhaseTapChangerNonLinear::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerNonLinear::declare() { return BaseClassDefiner(PhaseTapChangerNonLinear::addConstructToMap, PhaseTapChangerNonLinear::addPrimitiveAssignFnsToMap, PhaseTapChangerNonLinear::addClassAssignFnsToMap, PhaseTapChangerNonLinear::debugName); } +std::map PhaseTapChangerNonLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerNonLinear_factory() diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerNonLinear.hpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerNonLinear.hpp index f45bdb493..69843cc58 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerNonLinear.hpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerNonLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PerCent.hpp" #include "Reactance.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerNonLinear_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerSymmetrical.cpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerSymmetrical.cpp index 11987b7ee..c5f0570b1 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerSymmetrical.cpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerSymmetrical.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerSymmetrical(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerSymmetrical::PhaseTapChangerSymmetrical() {} PhaseTapChangerSymmetrical::~PhaseTapChangerSymmetrical() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerSymmetrical::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerSymmetrical::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerSymmetrical::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerSymmetrical::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerSymmetrical::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerSymmetrical::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChangerNonLinear::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerSymmetrical::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerSymmetrical::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerSymmetrical::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char PhaseTapChangerSymmetrical::debugName[] = "PhaseTapChangerSymmetrical"; @@ -47,7 +79,7 @@ const char* PhaseTapChangerSymmetrical::debugString() const void PhaseTapChangerSymmetrical::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerSymmetrical", &PhaseTapChangerSymmetrical_factory); + factory_map.emplace("PhaseTapChangerSymmetrical", &PhaseTapChangerSymmetrical_factory); } void PhaseTapChangerSymmetrical::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void PhaseTapChangerSymmetrical::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerSymmetrical::declare() { return BaseClassDefiner(PhaseTapChangerSymmetrical::addConstructToMap, PhaseTapChangerSymmetrical::addPrimitiveAssignFnsToMap, PhaseTapChangerSymmetrical::addClassAssignFnsToMap, PhaseTapChangerSymmetrical::debugName); } +std::map PhaseTapChangerSymmetrical::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChangerNonLinear::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerSymmetrical_factory() diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerSymmetrical.hpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerSymmetrical.hpp index ee1910790..87115edd0 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerSymmetrical.hpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerSymmetrical.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChangerNonLinear.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerSymmetrical_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTable.cpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTable.cpp index 81e747699..567dc203d 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTable.cpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTable.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTable.PhaseTapChangerTablePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerTable.PhaseTapChangerTabular", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTable::PhaseTapChangerTable() {} PhaseTapChangerTable::~PhaseTapChangerTable() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTable::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTable::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerTable.PhaseTapChangerTabular", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTable::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTable::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTablePoint_PhaseTapChangerTable(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* PhaseTapChangerTable::debugString() const void PhaseTapChangerTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTable", &PhaseTapChangerTable_factory); + factory_map.emplace("PhaseTapChangerTable", &PhaseTapChangerTable_factory); } void PhaseTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void PhaseTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", &assign_PhaseTapChangerTable_PhaseTapChangerTablePoint); - assign_map.emplace("cim:PhaseTapChangerTable.PhaseTapChangerTabular", &assign_PhaseTapChangerTable_PhaseTapChangerTabular); + assign_map.emplace("PhaseTapChangerTable.PhaseTapChangerTablePoint", &assign_PhaseTapChangerTable_PhaseTapChangerTablePoint); + assign_map.emplace("PhaseTapChangerTable.PhaseTapChangerTabular", &assign_PhaseTapChangerTable_PhaseTapChangerTabular); } void PhaseTapChangerTable::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void PhaseTapChangerTable::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTable::declare() { return BaseClassDefiner(PhaseTapChangerTable::addConstructToMap, PhaseTapChangerTable::addPrimitiveAssignFnsToMap, PhaseTapChangerTable::addClassAssignFnsToMap, PhaseTapChangerTable::debugName); } +std::map PhaseTapChangerTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTable_factory() diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTable.hpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTable.hpp index 9b76ee650..3cebfaef0 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTable.hpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTable_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTablePoint.cpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTablePoint.cpp index e4c877019..2926432a6 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTablePoint.cpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTablePoint.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTablePoint.PhaseTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerTablePoint.angle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTablePoint::PhaseTapChangerTablePoint() : PhaseTapChangerTable(nullptr) {} PhaseTapChangerTablePoint::~PhaseTapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerTablePoint.angle", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChangerTablePoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTable_PhaseTapChangerTablePoint(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* PhaseTapChangerTablePoint::debugString() const void PhaseTapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTablePoint", &PhaseTapChangerTablePoint_factory); + factory_map.emplace("PhaseTapChangerTablePoint", &PhaseTapChangerTablePoint_factory); } void PhaseTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTablePoint.angle", &assign_PhaseTapChangerTablePoint_angle); + assign_map.emplace("PhaseTapChangerTablePoint.angle", &assign_PhaseTapChangerTablePoint_angle); } void PhaseTapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", &assign_PhaseTapChangerTablePoint_PhaseTapChangerTable); + assign_map.emplace("PhaseTapChangerTablePoint.PhaseTapChangerTable", &assign_PhaseTapChangerTablePoint_PhaseTapChangerTable); } void PhaseTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTablePoint.angle", &get_PhaseTapChangerTablePoint_angle); + get_map.emplace("PhaseTapChangerTablePoint.angle", &get_PhaseTapChangerTablePoint_angle); } void PhaseTapChangerTablePoint::addClassGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", &get_PhaseTapChangerTablePoint_PhaseTapChangerTable); + get_map.emplace("PhaseTapChangerTablePoint.PhaseTapChangerTable", &get_PhaseTapChangerTablePoint_PhaseTapChangerTable); } void PhaseTapChangerTablePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void PhaseTapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTablePoint::declare() { return BaseClassDefiner(PhaseTapChangerTablePoint::addConstructToMap, PhaseTapChangerTablePoint::addPrimitiveAssignFnsToMap, PhaseTapChangerTablePoint::addClassAssignFnsToMap, PhaseTapChangerTablePoint::debugName); } +std::map PhaseTapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChangerTablePoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTablePoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTablePoint.hpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTablePoint.hpp index 451bb17ad..d2d72b54a 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTablePoint.hpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChangerTablePoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTablePoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTabular.cpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTabular.cpp index 34a8103ba..58e864fa3 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTabular.cpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTabular.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTabular(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTabular.PhaseTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTabular::PhaseTapChangerTabular() : PhaseTapChangerTable(nullptr) {} PhaseTapChangerTabular::~PhaseTapChangerTabular() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTabular::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTabular::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTabular.PhaseTapChangerTable", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTabular::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTabular::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTabular::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTabular::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTabular::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTabular::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTabular::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTable_PhaseTapChangerTabular(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* PhaseTapChangerTabular::debugString() const void PhaseTapChangerTabular::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTabular", &PhaseTapChangerTabular_factory); + factory_map.emplace("PhaseTapChangerTabular", &PhaseTapChangerTabular_factory); } void PhaseTapChangerTabular::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void PhaseTapChangerTabular::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTabular.PhaseTapChangerTable", &assign_PhaseTapChangerTabular_PhaseTapChangerTable); + assign_map.emplace("PhaseTapChangerTabular.PhaseTapChangerTable", &assign_PhaseTapChangerTabular_PhaseTapChangerTable); } void PhaseTapChangerTabular::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void PhaseTapChangerTabular::addPrimitiveGetFnsToMap(std::map& get_map) const { PhaseTapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTabular.PhaseTapChangerTable", &get_PhaseTapChangerTabular_PhaseTapChangerTable); + get_map.emplace("PhaseTapChangerTabular.PhaseTapChangerTable", &get_PhaseTapChangerTabular_PhaseTapChangerTable); } void PhaseTapChangerTabular::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void PhaseTapChangerTabular::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTabular::declare() { return BaseClassDefiner(PhaseTapChangerTabular::addConstructToMap, PhaseTapChangerTabular::addPrimitiveAssignFnsToMap, PhaseTapChangerTabular::addClassAssignFnsToMap, PhaseTapChangerTabular::debugName); } +std::map PhaseTapChangerTabular::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTabular_factory() diff --git a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTabular.hpp b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTabular.hpp index 85b69cbec..f779f0918 100644 --- a/CGMES_2.4.15_16FEB2016/PhaseTapChangerTabular.hpp +++ b/CGMES_2.4.15_16FEB2016/PhaseTapChangerTabular.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -30,8 +31,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -39,7 +47,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTabular_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PositionPoint.cpp b/CGMES_2.4.15_16FEB2016/PositionPoint.cpp index 9fbc902cc..33f097ca3 100644 --- a/CGMES_2.4.15_16FEB2016/PositionPoint.cpp +++ b/CGMES_2.4.15_16FEB2016/PositionPoint.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PositionPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PositionPoint.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.xPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.yPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.zPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + PositionPoint::PositionPoint() : Location(nullptr) {} PositionPoint::~PositionPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& PositionPoint::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PositionPoint::getClassNamespaceUrl() const { - { "cim:PositionPoint.Location", { CGMESProfile::GL, } }, - { "cim:PositionPoint.sequenceNumber", { CGMESProfile::GL, } }, - { "cim:PositionPoint.xPosition", { CGMESProfile::GL, } }, - { "cim:PositionPoint.yPosition", { CGMESProfile::GL, } }, - { "cim:PositionPoint.zPosition", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PositionPoint::getPossibleProfilesForClass() const +const std::string& PositionPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PositionPoint::getPossibleProfilesForAttributes() const +const std::list& PositionPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PositionPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PositionPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PositionPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Location_PositionPoints(BaseClass*, BaseClass*); @@ -199,35 +231,35 @@ const char* PositionPoint::debugString() const void PositionPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PositionPoint", &PositionPoint_factory); + factory_map.emplace("PositionPoint", &PositionPoint_factory); } void PositionPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PositionPoint.sequenceNumber", &assign_PositionPoint_sequenceNumber); - assign_map.emplace("cim:PositionPoint.xPosition", &assign_PositionPoint_xPosition); - assign_map.emplace("cim:PositionPoint.yPosition", &assign_PositionPoint_yPosition); - assign_map.emplace("cim:PositionPoint.zPosition", &assign_PositionPoint_zPosition); + assign_map.emplace("PositionPoint.sequenceNumber", &assign_PositionPoint_sequenceNumber); + assign_map.emplace("PositionPoint.xPosition", &assign_PositionPoint_xPosition); + assign_map.emplace("PositionPoint.yPosition", &assign_PositionPoint_yPosition); + assign_map.emplace("PositionPoint.zPosition", &assign_PositionPoint_zPosition); } void PositionPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PositionPoint.Location", &assign_PositionPoint_Location); + assign_map.emplace("PositionPoint.Location", &assign_PositionPoint_Location); } void PositionPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PositionPoint.sequenceNumber", &get_PositionPoint_sequenceNumber); - get_map.emplace("cim:PositionPoint.xPosition", &get_PositionPoint_xPosition); - get_map.emplace("cim:PositionPoint.yPosition", &get_PositionPoint_yPosition); - get_map.emplace("cim:PositionPoint.zPosition", &get_PositionPoint_zPosition); + get_map.emplace("PositionPoint.sequenceNumber", &get_PositionPoint_sequenceNumber); + get_map.emplace("PositionPoint.xPosition", &get_PositionPoint_xPosition); + get_map.emplace("PositionPoint.yPosition", &get_PositionPoint_yPosition); + get_map.emplace("PositionPoint.zPosition", &get_PositionPoint_zPosition); } void PositionPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PositionPoint.Location", &get_PositionPoint_Location); + get_map.emplace("PositionPoint.Location", &get_PositionPoint_Location); } void PositionPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -235,11 +267,25 @@ void PositionPoint::addEnumGetFnsToMap(std::map& get_ BaseClass::addEnumGetFnsToMap(get_map); } +bool PositionPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PositionPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PositionPoint::declare() { return BaseClassDefiner(PositionPoint::addConstructToMap, PositionPoint::addPrimitiveAssignFnsToMap, PositionPoint::addClassAssignFnsToMap, PositionPoint::debugName); } +std::map PositionPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PositionPoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/PositionPoint.hpp b/CGMES_2.4.15_16FEB2016/PositionPoint.hpp index b7eead20b..e712636e2 100644 --- a/CGMES_2.4.15_16FEB2016/PositionPoint.hpp +++ b/CGMES_2.4.15_16FEB2016/PositionPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "String.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PositionPoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PowerSystemResource.cpp b/CGMES_2.4.15_16FEB2016/PowerSystemResource.cpp index dd4878f2c..83bc348a9 100644 --- a/CGMES_2.4.15_16FEB2016/PowerSystemResource.cpp +++ b/CGMES_2.4.15_16FEB2016/PowerSystemResource.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemResource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::GL, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemResource.Controls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerSystemResource.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PowerSystemResource.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemResource::PowerSystemResource() : Location(nullptr) {} PowerSystemResource::~PowerSystemResource() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemResource::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::GL, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemResource::getClassNamespaceUrl() const { - { "cim:PowerSystemResource.Controls", { CGMESProfile::EQ, } }, - { "cim:PowerSystemResource.Location", { CGMESProfile::GL, } }, - { "cim:PowerSystemResource.Measurements", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemResource::getPossibleProfilesForClass() const +const std::string& PowerSystemResource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemResource::getPossibleProfilesForAttributes() const +const std::list& PowerSystemResource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemResource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemResource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemResource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Control_PowerSystemResource(BaseClass*, BaseClass*); @@ -110,7 +142,7 @@ const char* PowerSystemResource::debugString() const void PowerSystemResource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemResource", &PowerSystemResource_factory); + factory_map.emplace("PowerSystemResource", &PowerSystemResource_factory); } void PowerSystemResource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -119,9 +151,9 @@ void PowerSystemResource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemResource.Controls", &assign_PowerSystemResource_Controls); - assign_map.emplace("cim:PowerSystemResource.Location", &assign_PowerSystemResource_Location); - assign_map.emplace("cim:PowerSystemResource.Measurements", &assign_PowerSystemResource_Measurements); + assign_map.emplace("PowerSystemResource.Controls", &assign_PowerSystemResource_Controls); + assign_map.emplace("PowerSystemResource.Location", &assign_PowerSystemResource_Location); + assign_map.emplace("PowerSystemResource.Measurements", &assign_PowerSystemResource_Measurements); } void PowerSystemResource::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void PowerSystemResource::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool PowerSystemResource::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerSystemResource" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemResource::declare() { return BaseClassDefiner(PowerSystemResource::addConstructToMap, PowerSystemResource::addPrimitiveAssignFnsToMap, PowerSystemResource::addClassAssignFnsToMap, PowerSystemResource::debugName); } +std::map PowerSystemResource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemResource_factory() diff --git a/CGMES_2.4.15_16FEB2016/PowerSystemResource.hpp b/CGMES_2.4.15_16FEB2016/PowerSystemResource.hpp index ddf8d2070..4fc04a52d 100644 --- a/CGMES_2.4.15_16FEB2016/PowerSystemResource.hpp +++ b/CGMES_2.4.15_16FEB2016/PowerSystemResource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemResource_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerDynamics.cpp b/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerDynamics.cpp index fb50d8a2e..096271c1f 100644 --- a/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemStabilizerDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemStabilizerDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PowerSystemStabilizerDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemStabilizerDynamics::PowerSystemStabilizerDynamics() : ExcitationSystemDynamics(nullptr) {} PowerSystemStabilizerDynamics::~PowerSystemStabilizerDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemStabilizerDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemStabilizerDynamics::getClassNamespaceUrl() const { - { "cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:PowerSystemStabilizerDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemStabilizerDynamics::getPossibleProfilesForClass() const +const std::string& PowerSystemStabilizerDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes() const +const std::list& PowerSystemStabilizerDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemStabilizerDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemStabilizerDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemStabilizerDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* PowerSystemStabilizerDynamics::debugString() const void PowerSystemStabilizerDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemStabilizerDynamics", &PowerSystemStabilizerDynamics_factory); + factory_map.emplace("PowerSystemStabilizerDynamics", &PowerSystemStabilizerDynamics_factory); } void PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void PowerSystemStabilizerDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &assign_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:PowerSystemStabilizerDynamics.RemoteInputSignal", &assign_PowerSystemStabilizerDynamics_RemoteInputSignal); + assign_map.emplace("PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &assign_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); + assign_map.emplace("PowerSystemStabilizerDynamics.RemoteInputSignal", &assign_PowerSystemStabilizerDynamics_RemoteInputSignal); } void PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &get_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); + get_map.emplace("PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &get_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); } void PowerSystemStabilizerDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void PowerSystemStabilizerDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemStabilizerDynamics::declare() { return BaseClassDefiner(PowerSystemStabilizerDynamics::addConstructToMap, PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap, PowerSystemStabilizerDynamics::addClassAssignFnsToMap, PowerSystemStabilizerDynamics::debugName); } +std::map PowerSystemStabilizerDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemStabilizerDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerDynamics.hpp b/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerDynamics.hpp index 949c55171..99a1a149c 100644 --- a/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemStabilizerDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerUserDefined.cpp b/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerUserDefined.cpp index a444c0d8b..316f0a69f 100644 --- a/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemStabilizerUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PowerSystemStabilizerUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemStabilizerUserDefined::PowerSystemStabilizerUserDefined() {} PowerSystemStabilizerUserDefined::~PowerSystemStabilizerUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemStabilizerUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemStabilizerUserDefined::getClassNamespaceUrl() const { - { "cim:PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PowerSystemStabilizerUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemStabilizerUserDefined::getPossibleProfilesForClass() const +const std::string& PowerSystemStabilizerUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemStabilizerUserDefined::getPossibleProfilesForAttributes() const +const std::list& PowerSystemStabilizerUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemStabilizerUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemStabilizerUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemStabilizerUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PowerSystemStabilizerUserDefined::debugString() const void PowerSystemStabilizerUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemStabilizerUserDefined", &PowerSystemStabilizerUserDefined_factory); + factory_map.emplace("PowerSystemStabilizerUserDefined", &PowerSystemStabilizerUserDefined_factory); } void PowerSystemStabilizerUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerUserDefined.proprietary", &assign_PowerSystemStabilizerUserDefined_proprietary); + assign_map.emplace("PowerSystemStabilizerUserDefined.proprietary", &assign_PowerSystemStabilizerUserDefined_proprietary); } void PowerSystemStabilizerUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", &assign_PowerSystemStabilizerUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", &assign_PowerSystemStabilizerUserDefined_ProprietaryParameterDynamics); } void PowerSystemStabilizerUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerSystemStabilizerUserDefined.proprietary", &get_PowerSystemStabilizerUserDefined_proprietary); + get_map.emplace("PowerSystemStabilizerUserDefined.proprietary", &get_PowerSystemStabilizerUserDefined_proprietary); } void PowerSystemStabilizerUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PowerSystemStabilizerUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemStabilizerUserDefined::declare() { return BaseClassDefiner(PowerSystemStabilizerUserDefined::addConstructToMap, PowerSystemStabilizerUserDefined::addPrimitiveAssignFnsToMap, PowerSystemStabilizerUserDefined::addClassAssignFnsToMap, PowerSystemStabilizerUserDefined::debugName); } +std::map PowerSystemStabilizerUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemStabilizerUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerUserDefined.hpp b/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerUserDefined.hpp index db8af6276..2a7ca42a2 100644 --- a/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/PowerSystemStabilizerUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemStabilizerUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PowerTransformer.cpp b/CGMES_2.4.15_16FEB2016/PowerTransformer.cpp index 80ac17033..16e4fc975 100644 --- a/CGMES_2.4.15_16FEB2016/PowerTransformer.cpp +++ b/CGMES_2.4.15_16FEB2016/PowerTransformer.cpp @@ -12,38 +12,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerTransformer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerTransformer.PowerTransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShCircuitHighestOperatingCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShCircuitHighestOperatingVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShortCircuitAnglePf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.highSideMinOperatingU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.isPartOfGeneratorUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.operationalValuesConsidered", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerTransformer::PowerTransformer() {} PowerTransformer::~PowerTransformer() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerTransformer::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerTransformer::getClassNamespaceUrl() const { - { "cim:PowerTransformer.PowerTransformerEnd", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShortCircuitAnglePf", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.highSideMinOperatingU", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.isPartOfGeneratorUnit", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.operationalValuesConsidered", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerTransformer::getPossibleProfilesForClass() const +const std::string& PowerTransformer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerTransformer::getPossibleProfilesForAttributes() const +const std::list& PowerTransformer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerTransformer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerTransformer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerTransformer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerTransformerEnd_PowerTransformer(BaseClass*, BaseClass*); @@ -246,33 +278,33 @@ const char* PowerTransformer::debugString() const void PowerTransformer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerTransformer", &PowerTransformer_factory); + factory_map.emplace("PowerTransformer", &PowerTransformer_factory); } void PowerTransformer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", &assign_PowerTransformer_beforeShCircuitHighestOperatingCurrent); - assign_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", &assign_PowerTransformer_beforeShCircuitHighestOperatingVoltage); - assign_map.emplace("cim:PowerTransformer.beforeShortCircuitAnglePf", &assign_PowerTransformer_beforeShortCircuitAnglePf); - assign_map.emplace("cim:PowerTransformer.highSideMinOperatingU", &assign_PowerTransformer_highSideMinOperatingU); - assign_map.emplace("cim:PowerTransformer.isPartOfGeneratorUnit", &assign_PowerTransformer_isPartOfGeneratorUnit); - assign_map.emplace("cim:PowerTransformer.operationalValuesConsidered", &assign_PowerTransformer_operationalValuesConsidered); + assign_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingCurrent", &assign_PowerTransformer_beforeShCircuitHighestOperatingCurrent); + assign_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingVoltage", &assign_PowerTransformer_beforeShCircuitHighestOperatingVoltage); + assign_map.emplace("PowerTransformer.beforeShortCircuitAnglePf", &assign_PowerTransformer_beforeShortCircuitAnglePf); + assign_map.emplace("PowerTransformer.highSideMinOperatingU", &assign_PowerTransformer_highSideMinOperatingU); + assign_map.emplace("PowerTransformer.isPartOfGeneratorUnit", &assign_PowerTransformer_isPartOfGeneratorUnit); + assign_map.emplace("PowerTransformer.operationalValuesConsidered", &assign_PowerTransformer_operationalValuesConsidered); } void PowerTransformer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformer.PowerTransformerEnd", &assign_PowerTransformer_PowerTransformerEnd); + assign_map.emplace("PowerTransformer.PowerTransformerEnd", &assign_PowerTransformer_PowerTransformerEnd); } void PowerTransformer::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", &get_PowerTransformer_beforeShCircuitHighestOperatingCurrent); - get_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", &get_PowerTransformer_beforeShCircuitHighestOperatingVoltage); - get_map.emplace("cim:PowerTransformer.beforeShortCircuitAnglePf", &get_PowerTransformer_beforeShortCircuitAnglePf); - get_map.emplace("cim:PowerTransformer.highSideMinOperatingU", &get_PowerTransformer_highSideMinOperatingU); - get_map.emplace("cim:PowerTransformer.isPartOfGeneratorUnit", &get_PowerTransformer_isPartOfGeneratorUnit); - get_map.emplace("cim:PowerTransformer.operationalValuesConsidered", &get_PowerTransformer_operationalValuesConsidered); + get_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingCurrent", &get_PowerTransformer_beforeShCircuitHighestOperatingCurrent); + get_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingVoltage", &get_PowerTransformer_beforeShCircuitHighestOperatingVoltage); + get_map.emplace("PowerTransformer.beforeShortCircuitAnglePf", &get_PowerTransformer_beforeShortCircuitAnglePf); + get_map.emplace("PowerTransformer.highSideMinOperatingU", &get_PowerTransformer_highSideMinOperatingU); + get_map.emplace("PowerTransformer.isPartOfGeneratorUnit", &get_PowerTransformer_isPartOfGeneratorUnit); + get_map.emplace("PowerTransformer.operationalValuesConsidered", &get_PowerTransformer_operationalValuesConsidered); } void PowerTransformer::addClassGetFnsToMap(std::map& get_map) const @@ -285,11 +317,25 @@ void PowerTransformer::addEnumGetFnsToMap(std::map& g ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool PowerTransformer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerTransformer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PowerTransformer::declare() { return BaseClassDefiner(PowerTransformer::addConstructToMap, PowerTransformer::addPrimitiveAssignFnsToMap, PowerTransformer::addClassAssignFnsToMap, PowerTransformer::debugName); } +std::map PowerTransformer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerTransformer_factory() diff --git a/CGMES_2.4.15_16FEB2016/PowerTransformer.hpp b/CGMES_2.4.15_16FEB2016/PowerTransformer.hpp index 0970df0d5..1b1abe544 100644 --- a/CGMES_2.4.15_16FEB2016/PowerTransformer.hpp +++ b/CGMES_2.4.15_16FEB2016/PowerTransformer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerTransformer_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PowerTransformerEnd.cpp b/CGMES_2.4.15_16FEB2016/PowerTransformerEnd.cpp index cb0bb8628..f5267297b 100644 --- a/CGMES_2.4.15_16FEB2016/PowerTransformerEnd.cpp +++ b/CGMES_2.4.15_16FEB2016/PowerTransformerEnd.cpp @@ -12,44 +12,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerTransformerEnd(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerTransformerEnd.PowerTransformer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.connectionKind", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.phaseAngleClock", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.ratedS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.ratedU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerTransformerEnd::PowerTransformerEnd() : PowerTransformer(nullptr) {} PowerTransformerEnd::~PowerTransformerEnd() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerTransformerEnd::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerTransformerEnd::getClassNamespaceUrl() const { - { "cim:PowerTransformerEnd.PowerTransformer", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.b", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.b0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.connectionKind", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.g", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.g0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.phaseAngleClock", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.r", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.r0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.ratedS", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.ratedU", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.x", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerTransformerEnd::getPossibleProfilesForClass() const +const std::string& PowerTransformerEnd::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerTransformerEnd::getPossibleProfilesForAttributes() const +const std::list& PowerTransformerEnd::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TransformerEnd::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerTransformerEnd::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerTransformerEnd::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerTransformerEnd::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerTransformer_PowerTransformerEnd(BaseClass*, BaseClass*); @@ -439,56 +471,62 @@ const char* PowerTransformerEnd::debugString() const void PowerTransformerEnd::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerTransformerEnd", &PowerTransformerEnd_factory); + factory_map.emplace("PowerTransformerEnd", &PowerTransformerEnd_factory); } void PowerTransformerEnd::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformerEnd.b", &assign_PowerTransformerEnd_b); - assign_map.emplace("cim:PowerTransformerEnd.b0", &assign_PowerTransformerEnd_b0); - assign_map.emplace("cim:PowerTransformerEnd.connectionKind", &assign_PowerTransformerEnd_connectionKind); - assign_map.emplace("cim:PowerTransformerEnd.g", &assign_PowerTransformerEnd_g); - assign_map.emplace("cim:PowerTransformerEnd.g0", &assign_PowerTransformerEnd_g0); - assign_map.emplace("cim:PowerTransformerEnd.phaseAngleClock", &assign_PowerTransformerEnd_phaseAngleClock); - assign_map.emplace("cim:PowerTransformerEnd.r", &assign_PowerTransformerEnd_r); - assign_map.emplace("cim:PowerTransformerEnd.r0", &assign_PowerTransformerEnd_r0); - assign_map.emplace("cim:PowerTransformerEnd.ratedS", &assign_PowerTransformerEnd_ratedS); - assign_map.emplace("cim:PowerTransformerEnd.ratedU", &assign_PowerTransformerEnd_ratedU); - assign_map.emplace("cim:PowerTransformerEnd.x", &assign_PowerTransformerEnd_x); - assign_map.emplace("cim:PowerTransformerEnd.x0", &assign_PowerTransformerEnd_x0); + assign_map.emplace("PowerTransformerEnd.b", &assign_PowerTransformerEnd_b); + assign_map.emplace("PowerTransformerEnd.b0", &assign_PowerTransformerEnd_b0); + assign_map.emplace("PowerTransformerEnd.connectionKind", &assign_PowerTransformerEnd_connectionKind); + assign_map.emplace("PowerTransformerEnd.g", &assign_PowerTransformerEnd_g); + assign_map.emplace("PowerTransformerEnd.g0", &assign_PowerTransformerEnd_g0); + assign_map.emplace("PowerTransformerEnd.phaseAngleClock", &assign_PowerTransformerEnd_phaseAngleClock); + assign_map.emplace("PowerTransformerEnd.r", &assign_PowerTransformerEnd_r); + assign_map.emplace("PowerTransformerEnd.r0", &assign_PowerTransformerEnd_r0); + assign_map.emplace("PowerTransformerEnd.ratedS", &assign_PowerTransformerEnd_ratedS); + assign_map.emplace("PowerTransformerEnd.ratedU", &assign_PowerTransformerEnd_ratedU); + assign_map.emplace("PowerTransformerEnd.x", &assign_PowerTransformerEnd_x); + assign_map.emplace("PowerTransformerEnd.x0", &assign_PowerTransformerEnd_x0); } void PowerTransformerEnd::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformerEnd.PowerTransformer", &assign_PowerTransformerEnd_PowerTransformer); + assign_map.emplace("PowerTransformerEnd.PowerTransformer", &assign_PowerTransformerEnd_PowerTransformer); } void PowerTransformerEnd::addPrimitiveGetFnsToMap(std::map& get_map) const { TransformerEnd::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.b", &get_PowerTransformerEnd_b); - get_map.emplace("cim:PowerTransformerEnd.b0", &get_PowerTransformerEnd_b0); - get_map.emplace("cim:PowerTransformerEnd.g", &get_PowerTransformerEnd_g); - get_map.emplace("cim:PowerTransformerEnd.g0", &get_PowerTransformerEnd_g0); - get_map.emplace("cim:PowerTransformerEnd.phaseAngleClock", &get_PowerTransformerEnd_phaseAngleClock); - get_map.emplace("cim:PowerTransformerEnd.r", &get_PowerTransformerEnd_r); - get_map.emplace("cim:PowerTransformerEnd.r0", &get_PowerTransformerEnd_r0); - get_map.emplace("cim:PowerTransformerEnd.ratedS", &get_PowerTransformerEnd_ratedS); - get_map.emplace("cim:PowerTransformerEnd.ratedU", &get_PowerTransformerEnd_ratedU); - get_map.emplace("cim:PowerTransformerEnd.x", &get_PowerTransformerEnd_x); - get_map.emplace("cim:PowerTransformerEnd.x0", &get_PowerTransformerEnd_x0); + get_map.emplace("PowerTransformerEnd.b", &get_PowerTransformerEnd_b); + get_map.emplace("PowerTransformerEnd.b0", &get_PowerTransformerEnd_b0); + get_map.emplace("PowerTransformerEnd.g", &get_PowerTransformerEnd_g); + get_map.emplace("PowerTransformerEnd.g0", &get_PowerTransformerEnd_g0); + get_map.emplace("PowerTransformerEnd.phaseAngleClock", &get_PowerTransformerEnd_phaseAngleClock); + get_map.emplace("PowerTransformerEnd.r", &get_PowerTransformerEnd_r); + get_map.emplace("PowerTransformerEnd.r0", &get_PowerTransformerEnd_r0); + get_map.emplace("PowerTransformerEnd.ratedS", &get_PowerTransformerEnd_ratedS); + get_map.emplace("PowerTransformerEnd.ratedU", &get_PowerTransformerEnd_ratedU); + get_map.emplace("PowerTransformerEnd.x", &get_PowerTransformerEnd_x); + get_map.emplace("PowerTransformerEnd.x0", &get_PowerTransformerEnd_x0); } void PowerTransformerEnd::addClassGetFnsToMap(std::map& get_map) const { TransformerEnd::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.PowerTransformer", &get_PowerTransformerEnd_PowerTransformer); + get_map.emplace("PowerTransformerEnd.PowerTransformer", &get_PowerTransformerEnd_PowerTransformer); } void PowerTransformerEnd::addEnumGetFnsToMap(std::map& get_map) const { TransformerEnd::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.connectionKind", &get_PowerTransformerEnd_connectionKind); + get_map.emplace("PowerTransformerEnd.connectionKind", &get_PowerTransformerEnd_connectionKind); +} + +bool PowerTransformerEnd::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerTransformerEnd" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PowerTransformerEnd::declare() @@ -496,6 +534,14 @@ const BaseClassDefiner PowerTransformerEnd::declare() return BaseClassDefiner(PowerTransformerEnd::addConstructToMap, PowerTransformerEnd::addPrimitiveAssignFnsToMap, PowerTransformerEnd::addClassAssignFnsToMap, PowerTransformerEnd::debugName); } +std::map PowerTransformerEnd::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TransformerEnd::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerTransformerEnd_factory() diff --git a/CGMES_2.4.15_16FEB2016/PowerTransformerEnd.hpp b/CGMES_2.4.15_16FEB2016/PowerTransformerEnd.hpp index b4f4de48e..b4eced55b 100644 --- a/CGMES_2.4.15_16FEB2016/PowerTransformerEnd.hpp +++ b/CGMES_2.4.15_16FEB2016/PowerTransformerEnd.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TransformerEnd.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" #include "Conductance.hpp" #include "Integer.hpp" @@ -75,8 +76,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -84,7 +92,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerTransformerEnd_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ProprietaryParameterDynamics.cpp b/CGMES_2.4.15_16FEB2016/ProprietaryParameterDynamics.cpp index cc1ac6f02..95b79809e 100644 --- a/CGMES_2.4.15_16FEB2016/ProprietaryParameterDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/ProprietaryParameterDynamics.cpp @@ -29,53 +29,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ProprietaryParameterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ProprietaryParameterDynamics.AsynchronousMachineUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.ExcitationSystemUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.LoadUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.MechanicalLoadUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PFVArControllerType1UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PFVArControllerType2UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.SynchronousMachineUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.TurbineGovernorUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VoltageAdjusterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VoltageCompensatorUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindPlantUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindType1or2UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindType3or4UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.booleanParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.floatParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.integerParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.parameterNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ProprietaryParameterDynamics::ProprietaryParameterDynamics() : AsynchronousMachineUserDefined(nullptr), DiscontinuousExcitationControlUserDefined(nullptr), ExcitationSystemUserDefined(nullptr), LoadUserDefined(nullptr), MechanicalLoadUserDefined(nullptr), OverexcitationLimiterUserDefined(nullptr), PFVArControllerType1UserDefined(nullptr), PFVArControllerType2UserDefined(nullptr), PowerSystemStabilizerUserDefined(nullptr), SynchronousMachineUserDefined(nullptr), TurbineGovernorUserDefined(nullptr), TurbineLoadControllerUserDefined(nullptr), UnderexcitationLimiterUserDefined(nullptr), VoltageAdjusterUserDefined(nullptr), VoltageCompensatorUserDefined(nullptr), WindPlantUserDefined(nullptr), WindType1or2UserDefined(nullptr), WindType3or4UserDefined(nullptr) {} ProprietaryParameterDynamics::~ProprietaryParameterDynamics() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.LoadUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindPlantUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindType1or2UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindType3or4UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.booleanParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.floatParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.integerParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.parameterNumber", { CGMESProfile::DY, } }, -}; - -std::list -ProprietaryParameterDynamics::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ProprietaryParameterDynamics::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ProprietaryParameterDynamics::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ProprietaryParameterDynamics::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ProprietaryParameterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ProprietaryParameterDynamics::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ProprietaryParameterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ProprietaryParameterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ProprietaryParameterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics(BaseClass*, BaseClass*); @@ -760,69 +792,69 @@ const char* ProprietaryParameterDynamics::debugString() const void ProprietaryParameterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ProprietaryParameterDynamics", &ProprietaryParameterDynamics_factory); + factory_map.emplace("ProprietaryParameterDynamics", &ProprietaryParameterDynamics_factory); } void ProprietaryParameterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ProprietaryParameterDynamics.booleanParameterValue", &assign_ProprietaryParameterDynamics_booleanParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.floatParameterValue", &assign_ProprietaryParameterDynamics_floatParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.integerParameterValue", &assign_ProprietaryParameterDynamics_integerParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.parameterNumber", &assign_ProprietaryParameterDynamics_parameterNumber); + assign_map.emplace("ProprietaryParameterDynamics.booleanParameterValue", &assign_ProprietaryParameterDynamics_booleanParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.floatParameterValue", &assign_ProprietaryParameterDynamics_floatParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.integerParameterValue", &assign_ProprietaryParameterDynamics_integerParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.parameterNumber", &assign_ProprietaryParameterDynamics_parameterNumber); } void ProprietaryParameterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", &assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.LoadUserDefined", &assign_ProprietaryParameterDynamics_LoadUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", &assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", &assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindPlantUserDefined", &assign_ProprietaryParameterDynamics_WindPlantUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindType1or2UserDefined", &assign_ProprietaryParameterDynamics_WindType1or2UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindType3or4UserDefined", &assign_ProprietaryParameterDynamics_WindType3or4UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.ExcitationSystemUserDefined", &assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.LoadUserDefined", &assign_ProprietaryParameterDynamics_LoadUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.MechanicalLoadUserDefined", &assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.SynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.TurbineGovernorUserDefined", &assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindPlantUserDefined", &assign_ProprietaryParameterDynamics_WindPlantUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindType1or2UserDefined", &assign_ProprietaryParameterDynamics_WindType1or2UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindType3or4UserDefined", &assign_ProprietaryParameterDynamics_WindType3or4UserDefined); } void ProprietaryParameterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ProprietaryParameterDynamics.booleanParameterValue", &get_ProprietaryParameterDynamics_booleanParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.floatParameterValue", &get_ProprietaryParameterDynamics_floatParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.integerParameterValue", &get_ProprietaryParameterDynamics_integerParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.parameterNumber", &get_ProprietaryParameterDynamics_parameterNumber); + get_map.emplace("ProprietaryParameterDynamics.booleanParameterValue", &get_ProprietaryParameterDynamics_booleanParameterValue); + get_map.emplace("ProprietaryParameterDynamics.floatParameterValue", &get_ProprietaryParameterDynamics_floatParameterValue); + get_map.emplace("ProprietaryParameterDynamics.integerParameterValue", &get_ProprietaryParameterDynamics_integerParameterValue); + get_map.emplace("ProprietaryParameterDynamics.parameterNumber", &get_ProprietaryParameterDynamics_parameterNumber); } void ProprietaryParameterDynamics::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &get_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", &get_ProprietaryParameterDynamics_ExcitationSystemUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.LoadUserDefined", &get_ProprietaryParameterDynamics_LoadUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", &get_ProprietaryParameterDynamics_MechanicalLoadUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &get_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_SynchronousMachineUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", &get_ProprietaryParameterDynamics_TurbineGovernorUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &get_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &get_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &get_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindPlantUserDefined", &get_ProprietaryParameterDynamics_WindPlantUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindType1or2UserDefined", &get_ProprietaryParameterDynamics_WindType1or2UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindType3or4UserDefined", &get_ProprietaryParameterDynamics_WindType3or4UserDefined); + get_map.emplace("ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); + get_map.emplace("ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &get_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); + get_map.emplace("ProprietaryParameterDynamics.ExcitationSystemUserDefined", &get_ProprietaryParameterDynamics_ExcitationSystemUserDefined); + get_map.emplace("ProprietaryParameterDynamics.LoadUserDefined", &get_ProprietaryParameterDynamics_LoadUserDefined); + get_map.emplace("ProprietaryParameterDynamics.MechanicalLoadUserDefined", &get_ProprietaryParameterDynamics_MechanicalLoadUserDefined); + get_map.emplace("ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); + get_map.emplace("ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); + get_map.emplace("ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &get_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); + get_map.emplace("ProprietaryParameterDynamics.SynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_SynchronousMachineUserDefined); + get_map.emplace("ProprietaryParameterDynamics.TurbineGovernorUserDefined", &get_ProprietaryParameterDynamics_TurbineGovernorUserDefined); + get_map.emplace("ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &get_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); + get_map.emplace("ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &get_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &get_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindPlantUserDefined", &get_ProprietaryParameterDynamics_WindPlantUserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindType1or2UserDefined", &get_ProprietaryParameterDynamics_WindType1or2UserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindType3or4UserDefined", &get_ProprietaryParameterDynamics_WindType3or4UserDefined); } void ProprietaryParameterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -830,11 +862,25 @@ void ProprietaryParameterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ProprietaryParameterDynamics::declare() { return BaseClassDefiner(ProprietaryParameterDynamics::addConstructToMap, ProprietaryParameterDynamics::addPrimitiveAssignFnsToMap, ProprietaryParameterDynamics::addClassAssignFnsToMap, ProprietaryParameterDynamics::debugName); } +std::map ProprietaryParameterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ProprietaryParameterDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/ProprietaryParameterDynamics.hpp b/CGMES_2.4.15_16FEB2016/ProprietaryParameterDynamics.hpp index 3aa47cdc9..68b680143 100644 --- a/CGMES_2.4.15_16FEB2016/ProprietaryParameterDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/ProprietaryParameterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -114,8 +115,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -123,7 +131,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ProprietaryParameterDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ProtectedSwitch.cpp b/CGMES_2.4.15_16FEB2016/ProtectedSwitch.cpp index 2b6f24097..ee53270e8 100644 --- a/CGMES_2.4.15_16FEB2016/ProtectedSwitch.cpp +++ b/CGMES_2.4.15_16FEB2016/ProtectedSwitch.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ProtectedSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + ProtectedSwitch::ProtectedSwitch() {} ProtectedSwitch::~ProtectedSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& ProtectedSwitch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ProtectedSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ProtectedSwitch::getPossibleProfilesForClass() const +const std::string& ProtectedSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ProtectedSwitch::getPossibleProfilesForAttributes() const +const std::list& ProtectedSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ProtectedSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ProtectedSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ProtectedSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char ProtectedSwitch::debugName[] = "ProtectedSwitch"; @@ -47,7 +79,7 @@ const char* ProtectedSwitch::debugString() const void ProtectedSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ProtectedSwitch", &ProtectedSwitch_factory); + factory_map.emplace("ProtectedSwitch", &ProtectedSwitch_factory); } void ProtectedSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void ProtectedSwitch::addEnumGetFnsToMap(std::map& ge Switch::addEnumGetFnsToMap(get_map); } +bool ProtectedSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ProtectedSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ProtectedSwitch::declare() { return BaseClassDefiner(ProtectedSwitch::addConstructToMap, ProtectedSwitch::addPrimitiveAssignFnsToMap, ProtectedSwitch::addClassAssignFnsToMap, ProtectedSwitch::debugName); } +std::map ProtectedSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ProtectedSwitch_factory() diff --git a/CGMES_2.4.15_16FEB2016/ProtectedSwitch.hpp b/CGMES_2.4.15_16FEB2016/ProtectedSwitch.hpp index e7161aa71..b76b5fc1b 100644 --- a/CGMES_2.4.15_16FEB2016/ProtectedSwitch.hpp +++ b/CGMES_2.4.15_16FEB2016/ProtectedSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ProtectedSwitch_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Pss1.cpp b/CGMES_2.4.15_16FEB2016/Pss1.cpp index a1bc68391..32430e875 100644 --- a/CGMES_2.4.15_16FEB2016/Pss1.cpp +++ b/CGMES_2.4.15_16FEB2016/Pss1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.kpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.kw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vadat", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss1::Pss1() {} Pss1::~Pss1() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss1::getClassNamespaceUrl() const { - { "cim:Pss1.kf", { CGMESProfile::DY, } }, - { "cim:Pss1.kpe", { CGMESProfile::DY, } }, - { "cim:Pss1.ks", { CGMESProfile::DY, } }, - { "cim:Pss1.kw", { CGMESProfile::DY, } }, - { "cim:Pss1.pmin", { CGMESProfile::DY, } }, - { "cim:Pss1.t10", { CGMESProfile::DY, } }, - { "cim:Pss1.t5", { CGMESProfile::DY, } }, - { "cim:Pss1.t6", { CGMESProfile::DY, } }, - { "cim:Pss1.t7", { CGMESProfile::DY, } }, - { "cim:Pss1.t8", { CGMESProfile::DY, } }, - { "cim:Pss1.t9", { CGMESProfile::DY, } }, - { "cim:Pss1.tpe", { CGMESProfile::DY, } }, - { "cim:Pss1.vadat", { CGMESProfile::DY, } }, - { "cim:Pss1.vsmn", { CGMESProfile::DY, } }, - { "cim:Pss1.vsmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss1::getPossibleProfilesForClass() const +const std::string& Pss1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss1::getPossibleProfilesForAttributes() const +const std::list& Pss1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss1_kf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* Pss1::debugString() const void Pss1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss1", &Pss1_factory); + factory_map.emplace("Pss1", &Pss1_factory); } void Pss1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss1.kf", &assign_Pss1_kf); - assign_map.emplace("cim:Pss1.kpe", &assign_Pss1_kpe); - assign_map.emplace("cim:Pss1.ks", &assign_Pss1_ks); - assign_map.emplace("cim:Pss1.kw", &assign_Pss1_kw); - assign_map.emplace("cim:Pss1.pmin", &assign_Pss1_pmin); - assign_map.emplace("cim:Pss1.t10", &assign_Pss1_t10); - assign_map.emplace("cim:Pss1.t5", &assign_Pss1_t5); - assign_map.emplace("cim:Pss1.t6", &assign_Pss1_t6); - assign_map.emplace("cim:Pss1.t7", &assign_Pss1_t7); - assign_map.emplace("cim:Pss1.t8", &assign_Pss1_t8); - assign_map.emplace("cim:Pss1.t9", &assign_Pss1_t9); - assign_map.emplace("cim:Pss1.tpe", &assign_Pss1_tpe); - assign_map.emplace("cim:Pss1.vadat", &assign_Pss1_vadat); - assign_map.emplace("cim:Pss1.vsmn", &assign_Pss1_vsmn); - assign_map.emplace("cim:Pss1.vsmx", &assign_Pss1_vsmx); + assign_map.emplace("Pss1.kf", &assign_Pss1_kf); + assign_map.emplace("Pss1.kpe", &assign_Pss1_kpe); + assign_map.emplace("Pss1.ks", &assign_Pss1_ks); + assign_map.emplace("Pss1.kw", &assign_Pss1_kw); + assign_map.emplace("Pss1.pmin", &assign_Pss1_pmin); + assign_map.emplace("Pss1.t10", &assign_Pss1_t10); + assign_map.emplace("Pss1.t5", &assign_Pss1_t5); + assign_map.emplace("Pss1.t6", &assign_Pss1_t6); + assign_map.emplace("Pss1.t7", &assign_Pss1_t7); + assign_map.emplace("Pss1.t8", &assign_Pss1_t8); + assign_map.emplace("Pss1.t9", &assign_Pss1_t9); + assign_map.emplace("Pss1.tpe", &assign_Pss1_tpe); + assign_map.emplace("Pss1.vadat", &assign_Pss1_vadat); + assign_map.emplace("Pss1.vsmn", &assign_Pss1_vsmn); + assign_map.emplace("Pss1.vsmx", &assign_Pss1_vsmx); } void Pss1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void Pss1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss1.kf", &get_Pss1_kf); - get_map.emplace("cim:Pss1.kpe", &get_Pss1_kpe); - get_map.emplace("cim:Pss1.ks", &get_Pss1_ks); - get_map.emplace("cim:Pss1.kw", &get_Pss1_kw); - get_map.emplace("cim:Pss1.pmin", &get_Pss1_pmin); - get_map.emplace("cim:Pss1.t10", &get_Pss1_t10); - get_map.emplace("cim:Pss1.t5", &get_Pss1_t5); - get_map.emplace("cim:Pss1.t6", &get_Pss1_t6); - get_map.emplace("cim:Pss1.t7", &get_Pss1_t7); - get_map.emplace("cim:Pss1.t8", &get_Pss1_t8); - get_map.emplace("cim:Pss1.t9", &get_Pss1_t9); - get_map.emplace("cim:Pss1.tpe", &get_Pss1_tpe); - get_map.emplace("cim:Pss1.vadat", &get_Pss1_vadat); - get_map.emplace("cim:Pss1.vsmn", &get_Pss1_vsmn); - get_map.emplace("cim:Pss1.vsmx", &get_Pss1_vsmx); + get_map.emplace("Pss1.kf", &get_Pss1_kf); + get_map.emplace("Pss1.kpe", &get_Pss1_kpe); + get_map.emplace("Pss1.ks", &get_Pss1_ks); + get_map.emplace("Pss1.kw", &get_Pss1_kw); + get_map.emplace("Pss1.pmin", &get_Pss1_pmin); + get_map.emplace("Pss1.t10", &get_Pss1_t10); + get_map.emplace("Pss1.t5", &get_Pss1_t5); + get_map.emplace("Pss1.t6", &get_Pss1_t6); + get_map.emplace("Pss1.t7", &get_Pss1_t7); + get_map.emplace("Pss1.t8", &get_Pss1_t8); + get_map.emplace("Pss1.t9", &get_Pss1_t9); + get_map.emplace("Pss1.tpe", &get_Pss1_tpe); + get_map.emplace("Pss1.vadat", &get_Pss1_vadat); + get_map.emplace("Pss1.vsmn", &get_Pss1_vsmn); + get_map.emplace("Pss1.vsmx", &get_Pss1_vsmx); } void Pss1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void Pss1::addEnumGetFnsToMap(std::map& get_map) cons PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss1::declare() { return BaseClassDefiner(Pss1::addConstructToMap, Pss1::addPrimitiveAssignFnsToMap, Pss1::addClassAssignFnsToMap, Pss1::debugName); } +std::map Pss1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss1_factory() diff --git a/CGMES_2.4.15_16FEB2016/Pss1.hpp b/CGMES_2.4.15_16FEB2016/Pss1.hpp index d0b00aadb..d4666f841 100644 --- a/CGMES_2.4.15_16FEB2016/Pss1.hpp +++ b/CGMES_2.4.15_16FEB2016/Pss1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Pss1A.cpp b/CGMES_2.4.15_16FEB2016/Pss1A.cpp index 219c3f935..8470f2e76 100644 --- a/CGMES_2.4.15_16FEB2016/Pss1A.cpp +++ b/CGMES_2.4.15_16FEB2016/Pss1A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss1A.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.inputSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.tdelay", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss1A::Pss1A() {} Pss1A::~Pss1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Pss1A.a1", { CGMESProfile::DY, } }, - { "cim:Pss1A.a2", { CGMESProfile::DY, } }, - { "cim:Pss1A.a3", { CGMESProfile::DY, } }, - { "cim:Pss1A.a4", { CGMESProfile::DY, } }, - { "cim:Pss1A.a5", { CGMESProfile::DY, } }, - { "cim:Pss1A.a6", { CGMESProfile::DY, } }, - { "cim:Pss1A.a7", { CGMESProfile::DY, } }, - { "cim:Pss1A.a8", { CGMESProfile::DY, } }, - { "cim:Pss1A.inputSignalType", { CGMESProfile::DY, } }, - { "cim:Pss1A.kd", { CGMESProfile::DY, } }, - { "cim:Pss1A.ks", { CGMESProfile::DY, } }, - { "cim:Pss1A.t1", { CGMESProfile::DY, } }, - { "cim:Pss1A.t2", { CGMESProfile::DY, } }, - { "cim:Pss1A.t3", { CGMESProfile::DY, } }, - { "cim:Pss1A.t4", { CGMESProfile::DY, } }, - { "cim:Pss1A.t5", { CGMESProfile::DY, } }, - { "cim:Pss1A.t6", { CGMESProfile::DY, } }, - { "cim:Pss1A.tdelay", { CGMESProfile::DY, } }, - { "cim:Pss1A.vcl", { CGMESProfile::DY, } }, - { "cim:Pss1A.vcu", { CGMESProfile::DY, } }, - { "cim:Pss1A.vrmax", { CGMESProfile::DY, } }, - { "cim:Pss1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -Pss1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Pss1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Pss1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Pss1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Pss1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Pss1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss1A_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* Pss1A::debugString() const void Pss1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss1A", &Pss1A_factory); + factory_map.emplace("Pss1A", &Pss1A_factory); } void Pss1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss1A.a1", &assign_Pss1A_a1); - assign_map.emplace("cim:Pss1A.a2", &assign_Pss1A_a2); - assign_map.emplace("cim:Pss1A.a3", &assign_Pss1A_a3); - assign_map.emplace("cim:Pss1A.a4", &assign_Pss1A_a4); - assign_map.emplace("cim:Pss1A.a5", &assign_Pss1A_a5); - assign_map.emplace("cim:Pss1A.a6", &assign_Pss1A_a6); - assign_map.emplace("cim:Pss1A.a7", &assign_Pss1A_a7); - assign_map.emplace("cim:Pss1A.a8", &assign_Pss1A_a8); - assign_map.emplace("cim:Pss1A.inputSignalType", &assign_Pss1A_inputSignalType); - assign_map.emplace("cim:Pss1A.kd", &assign_Pss1A_kd); - assign_map.emplace("cim:Pss1A.ks", &assign_Pss1A_ks); - assign_map.emplace("cim:Pss1A.t1", &assign_Pss1A_t1); - assign_map.emplace("cim:Pss1A.t2", &assign_Pss1A_t2); - assign_map.emplace("cim:Pss1A.t3", &assign_Pss1A_t3); - assign_map.emplace("cim:Pss1A.t4", &assign_Pss1A_t4); - assign_map.emplace("cim:Pss1A.t5", &assign_Pss1A_t5); - assign_map.emplace("cim:Pss1A.t6", &assign_Pss1A_t6); - assign_map.emplace("cim:Pss1A.tdelay", &assign_Pss1A_tdelay); - assign_map.emplace("cim:Pss1A.vcl", &assign_Pss1A_vcl); - assign_map.emplace("cim:Pss1A.vcu", &assign_Pss1A_vcu); - assign_map.emplace("cim:Pss1A.vrmax", &assign_Pss1A_vrmax); - assign_map.emplace("cim:Pss1A.vrmin", &assign_Pss1A_vrmin); + assign_map.emplace("Pss1A.a1", &assign_Pss1A_a1); + assign_map.emplace("Pss1A.a2", &assign_Pss1A_a2); + assign_map.emplace("Pss1A.a3", &assign_Pss1A_a3); + assign_map.emplace("Pss1A.a4", &assign_Pss1A_a4); + assign_map.emplace("Pss1A.a5", &assign_Pss1A_a5); + assign_map.emplace("Pss1A.a6", &assign_Pss1A_a6); + assign_map.emplace("Pss1A.a7", &assign_Pss1A_a7); + assign_map.emplace("Pss1A.a8", &assign_Pss1A_a8); + assign_map.emplace("Pss1A.inputSignalType", &assign_Pss1A_inputSignalType); + assign_map.emplace("Pss1A.kd", &assign_Pss1A_kd); + assign_map.emplace("Pss1A.ks", &assign_Pss1A_ks); + assign_map.emplace("Pss1A.t1", &assign_Pss1A_t1); + assign_map.emplace("Pss1A.t2", &assign_Pss1A_t2); + assign_map.emplace("Pss1A.t3", &assign_Pss1A_t3); + assign_map.emplace("Pss1A.t4", &assign_Pss1A_t4); + assign_map.emplace("Pss1A.t5", &assign_Pss1A_t5); + assign_map.emplace("Pss1A.t6", &assign_Pss1A_t6); + assign_map.emplace("Pss1A.tdelay", &assign_Pss1A_tdelay); + assign_map.emplace("Pss1A.vcl", &assign_Pss1A_vcl); + assign_map.emplace("Pss1A.vcu", &assign_Pss1A_vcu); + assign_map.emplace("Pss1A.vrmax", &assign_Pss1A_vrmax); + assign_map.emplace("Pss1A.vrmin", &assign_Pss1A_vrmin); } void Pss1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,27 +774,27 @@ void Pss1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss1A.a1", &get_Pss1A_a1); - get_map.emplace("cim:Pss1A.a2", &get_Pss1A_a2); - get_map.emplace("cim:Pss1A.a3", &get_Pss1A_a3); - get_map.emplace("cim:Pss1A.a4", &get_Pss1A_a4); - get_map.emplace("cim:Pss1A.a5", &get_Pss1A_a5); - get_map.emplace("cim:Pss1A.a6", &get_Pss1A_a6); - get_map.emplace("cim:Pss1A.a7", &get_Pss1A_a7); - get_map.emplace("cim:Pss1A.a8", &get_Pss1A_a8); - get_map.emplace("cim:Pss1A.kd", &get_Pss1A_kd); - get_map.emplace("cim:Pss1A.ks", &get_Pss1A_ks); - get_map.emplace("cim:Pss1A.t1", &get_Pss1A_t1); - get_map.emplace("cim:Pss1A.t2", &get_Pss1A_t2); - get_map.emplace("cim:Pss1A.t3", &get_Pss1A_t3); - get_map.emplace("cim:Pss1A.t4", &get_Pss1A_t4); - get_map.emplace("cim:Pss1A.t5", &get_Pss1A_t5); - get_map.emplace("cim:Pss1A.t6", &get_Pss1A_t6); - get_map.emplace("cim:Pss1A.tdelay", &get_Pss1A_tdelay); - get_map.emplace("cim:Pss1A.vcl", &get_Pss1A_vcl); - get_map.emplace("cim:Pss1A.vcu", &get_Pss1A_vcu); - get_map.emplace("cim:Pss1A.vrmax", &get_Pss1A_vrmax); - get_map.emplace("cim:Pss1A.vrmin", &get_Pss1A_vrmin); + get_map.emplace("Pss1A.a1", &get_Pss1A_a1); + get_map.emplace("Pss1A.a2", &get_Pss1A_a2); + get_map.emplace("Pss1A.a3", &get_Pss1A_a3); + get_map.emplace("Pss1A.a4", &get_Pss1A_a4); + get_map.emplace("Pss1A.a5", &get_Pss1A_a5); + get_map.emplace("Pss1A.a6", &get_Pss1A_a6); + get_map.emplace("Pss1A.a7", &get_Pss1A_a7); + get_map.emplace("Pss1A.a8", &get_Pss1A_a8); + get_map.emplace("Pss1A.kd", &get_Pss1A_kd); + get_map.emplace("Pss1A.ks", &get_Pss1A_ks); + get_map.emplace("Pss1A.t1", &get_Pss1A_t1); + get_map.emplace("Pss1A.t2", &get_Pss1A_t2); + get_map.emplace("Pss1A.t3", &get_Pss1A_t3); + get_map.emplace("Pss1A.t4", &get_Pss1A_t4); + get_map.emplace("Pss1A.t5", &get_Pss1A_t5); + get_map.emplace("Pss1A.t6", &get_Pss1A_t6); + get_map.emplace("Pss1A.tdelay", &get_Pss1A_tdelay); + get_map.emplace("Pss1A.vcl", &get_Pss1A_vcl); + get_map.emplace("Pss1A.vcu", &get_Pss1A_vcu); + get_map.emplace("Pss1A.vrmax", &get_Pss1A_vrmax); + get_map.emplace("Pss1A.vrmin", &get_Pss1A_vrmin); } void Pss1A::addClassGetFnsToMap(std::map& get_map) const @@ -773,7 +805,13 @@ void Pss1A::addClassGetFnsToMap(std::map& get_m void Pss1A::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss1A.inputSignalType", &get_Pss1A_inputSignalType); + get_map.emplace("Pss1A.inputSignalType", &get_Pss1A_inputSignalType); +} + +bool Pss1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss1A::declare() @@ -781,6 +819,14 @@ const BaseClassDefiner Pss1A::declare() return BaseClassDefiner(Pss1A::addConstructToMap, Pss1A::addPrimitiveAssignFnsToMap, Pss1A::addClassAssignFnsToMap, Pss1A::debugName); } +std::map Pss1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/Pss1A.hpp b/CGMES_2.4.15_16FEB2016/Pss1A.hpp index e1b282d6d..168b59604 100644 --- a/CGMES_2.4.15_16FEB2016/Pss1A.hpp +++ b/CGMES_2.4.15_16FEB2016/Pss1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Pss2B.cpp b/CGMES_2.4.15_16FEB2016/Pss2B.cpp index 71b0429d6..4c06f307d 100644 --- a/CGMES_2.4.15_16FEB2016/Pss2B.cpp +++ b/CGMES_2.4.15_16FEB2016/Pss2B.cpp @@ -11,62 +11,94 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss2B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss2B.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.n", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi1min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi2max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi2min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss2B::Pss2B() {} Pss2B::~Pss2B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Pss2B.a", { CGMESProfile::DY, } }, - { "cim:Pss2B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:Pss2B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks1", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks2", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks3", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks4", { CGMESProfile::DY, } }, - { "cim:Pss2B.m", { CGMESProfile::DY, } }, - { "cim:Pss2B.n", { CGMESProfile::DY, } }, - { "cim:Pss2B.t1", { CGMESProfile::DY, } }, - { "cim:Pss2B.t10", { CGMESProfile::DY, } }, - { "cim:Pss2B.t11", { CGMESProfile::DY, } }, - { "cim:Pss2B.t2", { CGMESProfile::DY, } }, - { "cim:Pss2B.t3", { CGMESProfile::DY, } }, - { "cim:Pss2B.t4", { CGMESProfile::DY, } }, - { "cim:Pss2B.t6", { CGMESProfile::DY, } }, - { "cim:Pss2B.t7", { CGMESProfile::DY, } }, - { "cim:Pss2B.t8", { CGMESProfile::DY, } }, - { "cim:Pss2B.t9", { CGMESProfile::DY, } }, - { "cim:Pss2B.ta", { CGMESProfile::DY, } }, - { "cim:Pss2B.tb", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw1", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw2", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw3", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw4", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi1max", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi1min", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi2max", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi2min", { CGMESProfile::DY, } }, - { "cim:Pss2B.vstmax", { CGMESProfile::DY, } }, - { "cim:Pss2B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -Pss2B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Pss2B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Pss2B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Pss2B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Pss2B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Pss2B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss2B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss2B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss2B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss2B_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -976,42 +1008,42 @@ const char* Pss2B::debugString() const void Pss2B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss2B", &Pss2B_factory); + factory_map.emplace("Pss2B", &Pss2B_factory); } void Pss2B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss2B.a", &assign_Pss2B_a); - assign_map.emplace("cim:Pss2B.inputSignal1Type", &assign_Pss2B_inputSignal1Type); - assign_map.emplace("cim:Pss2B.inputSignal2Type", &assign_Pss2B_inputSignal2Type); - assign_map.emplace("cim:Pss2B.ks1", &assign_Pss2B_ks1); - assign_map.emplace("cim:Pss2B.ks2", &assign_Pss2B_ks2); - assign_map.emplace("cim:Pss2B.ks3", &assign_Pss2B_ks3); - assign_map.emplace("cim:Pss2B.ks4", &assign_Pss2B_ks4); - assign_map.emplace("cim:Pss2B.m", &assign_Pss2B_m); - assign_map.emplace("cim:Pss2B.n", &assign_Pss2B_n); - assign_map.emplace("cim:Pss2B.t1", &assign_Pss2B_t1); - assign_map.emplace("cim:Pss2B.t10", &assign_Pss2B_t10); - assign_map.emplace("cim:Pss2B.t11", &assign_Pss2B_t11); - assign_map.emplace("cim:Pss2B.t2", &assign_Pss2B_t2); - assign_map.emplace("cim:Pss2B.t3", &assign_Pss2B_t3); - assign_map.emplace("cim:Pss2B.t4", &assign_Pss2B_t4); - assign_map.emplace("cim:Pss2B.t6", &assign_Pss2B_t6); - assign_map.emplace("cim:Pss2B.t7", &assign_Pss2B_t7); - assign_map.emplace("cim:Pss2B.t8", &assign_Pss2B_t8); - assign_map.emplace("cim:Pss2B.t9", &assign_Pss2B_t9); - assign_map.emplace("cim:Pss2B.ta", &assign_Pss2B_ta); - assign_map.emplace("cim:Pss2B.tb", &assign_Pss2B_tb); - assign_map.emplace("cim:Pss2B.tw1", &assign_Pss2B_tw1); - assign_map.emplace("cim:Pss2B.tw2", &assign_Pss2B_tw2); - assign_map.emplace("cim:Pss2B.tw3", &assign_Pss2B_tw3); - assign_map.emplace("cim:Pss2B.tw4", &assign_Pss2B_tw4); - assign_map.emplace("cim:Pss2B.vsi1max", &assign_Pss2B_vsi1max); - assign_map.emplace("cim:Pss2B.vsi1min", &assign_Pss2B_vsi1min); - assign_map.emplace("cim:Pss2B.vsi2max", &assign_Pss2B_vsi2max); - assign_map.emplace("cim:Pss2B.vsi2min", &assign_Pss2B_vsi2min); - assign_map.emplace("cim:Pss2B.vstmax", &assign_Pss2B_vstmax); - assign_map.emplace("cim:Pss2B.vstmin", &assign_Pss2B_vstmin); + assign_map.emplace("Pss2B.a", &assign_Pss2B_a); + assign_map.emplace("Pss2B.inputSignal1Type", &assign_Pss2B_inputSignal1Type); + assign_map.emplace("Pss2B.inputSignal2Type", &assign_Pss2B_inputSignal2Type); + assign_map.emplace("Pss2B.ks1", &assign_Pss2B_ks1); + assign_map.emplace("Pss2B.ks2", &assign_Pss2B_ks2); + assign_map.emplace("Pss2B.ks3", &assign_Pss2B_ks3); + assign_map.emplace("Pss2B.ks4", &assign_Pss2B_ks4); + assign_map.emplace("Pss2B.m", &assign_Pss2B_m); + assign_map.emplace("Pss2B.n", &assign_Pss2B_n); + assign_map.emplace("Pss2B.t1", &assign_Pss2B_t1); + assign_map.emplace("Pss2B.t10", &assign_Pss2B_t10); + assign_map.emplace("Pss2B.t11", &assign_Pss2B_t11); + assign_map.emplace("Pss2B.t2", &assign_Pss2B_t2); + assign_map.emplace("Pss2B.t3", &assign_Pss2B_t3); + assign_map.emplace("Pss2B.t4", &assign_Pss2B_t4); + assign_map.emplace("Pss2B.t6", &assign_Pss2B_t6); + assign_map.emplace("Pss2B.t7", &assign_Pss2B_t7); + assign_map.emplace("Pss2B.t8", &assign_Pss2B_t8); + assign_map.emplace("Pss2B.t9", &assign_Pss2B_t9); + assign_map.emplace("Pss2B.ta", &assign_Pss2B_ta); + assign_map.emplace("Pss2B.tb", &assign_Pss2B_tb); + assign_map.emplace("Pss2B.tw1", &assign_Pss2B_tw1); + assign_map.emplace("Pss2B.tw2", &assign_Pss2B_tw2); + assign_map.emplace("Pss2B.tw3", &assign_Pss2B_tw3); + assign_map.emplace("Pss2B.tw4", &assign_Pss2B_tw4); + assign_map.emplace("Pss2B.vsi1max", &assign_Pss2B_vsi1max); + assign_map.emplace("Pss2B.vsi1min", &assign_Pss2B_vsi1min); + assign_map.emplace("Pss2B.vsi2max", &assign_Pss2B_vsi2max); + assign_map.emplace("Pss2B.vsi2min", &assign_Pss2B_vsi2min); + assign_map.emplace("Pss2B.vstmax", &assign_Pss2B_vstmax); + assign_map.emplace("Pss2B.vstmin", &assign_Pss2B_vstmin); } void Pss2B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1021,35 +1053,35 @@ void Pss2B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss2B.a", &get_Pss2B_a); - get_map.emplace("cim:Pss2B.ks1", &get_Pss2B_ks1); - get_map.emplace("cim:Pss2B.ks2", &get_Pss2B_ks2); - get_map.emplace("cim:Pss2B.ks3", &get_Pss2B_ks3); - get_map.emplace("cim:Pss2B.ks4", &get_Pss2B_ks4); - get_map.emplace("cim:Pss2B.m", &get_Pss2B_m); - get_map.emplace("cim:Pss2B.n", &get_Pss2B_n); - get_map.emplace("cim:Pss2B.t1", &get_Pss2B_t1); - get_map.emplace("cim:Pss2B.t10", &get_Pss2B_t10); - get_map.emplace("cim:Pss2B.t11", &get_Pss2B_t11); - get_map.emplace("cim:Pss2B.t2", &get_Pss2B_t2); - get_map.emplace("cim:Pss2B.t3", &get_Pss2B_t3); - get_map.emplace("cim:Pss2B.t4", &get_Pss2B_t4); - get_map.emplace("cim:Pss2B.t6", &get_Pss2B_t6); - get_map.emplace("cim:Pss2B.t7", &get_Pss2B_t7); - get_map.emplace("cim:Pss2B.t8", &get_Pss2B_t8); - get_map.emplace("cim:Pss2B.t9", &get_Pss2B_t9); - get_map.emplace("cim:Pss2B.ta", &get_Pss2B_ta); - get_map.emplace("cim:Pss2B.tb", &get_Pss2B_tb); - get_map.emplace("cim:Pss2B.tw1", &get_Pss2B_tw1); - get_map.emplace("cim:Pss2B.tw2", &get_Pss2B_tw2); - get_map.emplace("cim:Pss2B.tw3", &get_Pss2B_tw3); - get_map.emplace("cim:Pss2B.tw4", &get_Pss2B_tw4); - get_map.emplace("cim:Pss2B.vsi1max", &get_Pss2B_vsi1max); - get_map.emplace("cim:Pss2B.vsi1min", &get_Pss2B_vsi1min); - get_map.emplace("cim:Pss2B.vsi2max", &get_Pss2B_vsi2max); - get_map.emplace("cim:Pss2B.vsi2min", &get_Pss2B_vsi2min); - get_map.emplace("cim:Pss2B.vstmax", &get_Pss2B_vstmax); - get_map.emplace("cim:Pss2B.vstmin", &get_Pss2B_vstmin); + get_map.emplace("Pss2B.a", &get_Pss2B_a); + get_map.emplace("Pss2B.ks1", &get_Pss2B_ks1); + get_map.emplace("Pss2B.ks2", &get_Pss2B_ks2); + get_map.emplace("Pss2B.ks3", &get_Pss2B_ks3); + get_map.emplace("Pss2B.ks4", &get_Pss2B_ks4); + get_map.emplace("Pss2B.m", &get_Pss2B_m); + get_map.emplace("Pss2B.n", &get_Pss2B_n); + get_map.emplace("Pss2B.t1", &get_Pss2B_t1); + get_map.emplace("Pss2B.t10", &get_Pss2B_t10); + get_map.emplace("Pss2B.t11", &get_Pss2B_t11); + get_map.emplace("Pss2B.t2", &get_Pss2B_t2); + get_map.emplace("Pss2B.t3", &get_Pss2B_t3); + get_map.emplace("Pss2B.t4", &get_Pss2B_t4); + get_map.emplace("Pss2B.t6", &get_Pss2B_t6); + get_map.emplace("Pss2B.t7", &get_Pss2B_t7); + get_map.emplace("Pss2B.t8", &get_Pss2B_t8); + get_map.emplace("Pss2B.t9", &get_Pss2B_t9); + get_map.emplace("Pss2B.ta", &get_Pss2B_ta); + get_map.emplace("Pss2B.tb", &get_Pss2B_tb); + get_map.emplace("Pss2B.tw1", &get_Pss2B_tw1); + get_map.emplace("Pss2B.tw2", &get_Pss2B_tw2); + get_map.emplace("Pss2B.tw3", &get_Pss2B_tw3); + get_map.emplace("Pss2B.tw4", &get_Pss2B_tw4); + get_map.emplace("Pss2B.vsi1max", &get_Pss2B_vsi1max); + get_map.emplace("Pss2B.vsi1min", &get_Pss2B_vsi1min); + get_map.emplace("Pss2B.vsi2max", &get_Pss2B_vsi2max); + get_map.emplace("Pss2B.vsi2min", &get_Pss2B_vsi2min); + get_map.emplace("Pss2B.vstmax", &get_Pss2B_vstmax); + get_map.emplace("Pss2B.vstmin", &get_Pss2B_vstmin); } void Pss2B::addClassGetFnsToMap(std::map& get_map) const @@ -1060,8 +1092,14 @@ void Pss2B::addClassGetFnsToMap(std::map& get_m void Pss2B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss2B.inputSignal1Type", &get_Pss2B_inputSignal1Type); - get_map.emplace("cim:Pss2B.inputSignal2Type", &get_Pss2B_inputSignal2Type); + get_map.emplace("Pss2B.inputSignal1Type", &get_Pss2B_inputSignal1Type); + get_map.emplace("Pss2B.inputSignal2Type", &get_Pss2B_inputSignal2Type); +} + +bool Pss2B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss2B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss2B::declare() @@ -1069,6 +1107,14 @@ const BaseClassDefiner Pss2B::declare() return BaseClassDefiner(Pss2B::addConstructToMap, Pss2B::addPrimitiveAssignFnsToMap, Pss2B::addClassAssignFnsToMap, Pss2B::debugName); } +std::map Pss2B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss2B_factory() diff --git a/CGMES_2.4.15_16FEB2016/Pss2B.hpp b/CGMES_2.4.15_16FEB2016/Pss2B.hpp index 90e74ab8e..a31855343 100644 --- a/CGMES_2.4.15_16FEB2016/Pss2B.hpp +++ b/CGMES_2.4.15_16FEB2016/Pss2B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -125,8 +126,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -134,7 +142,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss2B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Pss2ST.cpp b/CGMES_2.4.15_16FEB2016/Pss2ST.cpp index 9a42e067c..330a46ab4 100644 --- a/CGMES_2.4.15_16FEB2016/Pss2ST.cpp +++ b/CGMES_2.4.15_16FEB2016/Pss2ST.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss2ST(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss2ST.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.lsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.lsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss2ST::Pss2ST() {} Pss2ST::~Pss2ST() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss2ST::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss2ST::getClassNamespaceUrl() const { - { "cim:Pss2ST.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:Pss2ST.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:Pss2ST.k1", { CGMESProfile::DY, } }, - { "cim:Pss2ST.k2", { CGMESProfile::DY, } }, - { "cim:Pss2ST.lsmax", { CGMESProfile::DY, } }, - { "cim:Pss2ST.lsmin", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t1", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t10", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t2", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t3", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t4", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t5", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t6", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t7", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t8", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t9", { CGMESProfile::DY, } }, - { "cim:Pss2ST.vcl", { CGMESProfile::DY, } }, - { "cim:Pss2ST.vcu", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss2ST::getPossibleProfilesForClass() const +const std::string& Pss2ST::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss2ST::getPossibleProfilesForAttributes() const +const std::list& Pss2ST::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss2ST::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss2ST::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss2ST::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss2ST_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* Pss2ST::debugString() const void Pss2ST::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss2ST", &Pss2ST_factory); + factory_map.emplace("Pss2ST", &Pss2ST_factory); } void Pss2ST::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss2ST.inputSignal1Type", &assign_Pss2ST_inputSignal1Type); - assign_map.emplace("cim:Pss2ST.inputSignal2Type", &assign_Pss2ST_inputSignal2Type); - assign_map.emplace("cim:Pss2ST.k1", &assign_Pss2ST_k1); - assign_map.emplace("cim:Pss2ST.k2", &assign_Pss2ST_k2); - assign_map.emplace("cim:Pss2ST.lsmax", &assign_Pss2ST_lsmax); - assign_map.emplace("cim:Pss2ST.lsmin", &assign_Pss2ST_lsmin); - assign_map.emplace("cim:Pss2ST.t1", &assign_Pss2ST_t1); - assign_map.emplace("cim:Pss2ST.t10", &assign_Pss2ST_t10); - assign_map.emplace("cim:Pss2ST.t2", &assign_Pss2ST_t2); - assign_map.emplace("cim:Pss2ST.t3", &assign_Pss2ST_t3); - assign_map.emplace("cim:Pss2ST.t4", &assign_Pss2ST_t4); - assign_map.emplace("cim:Pss2ST.t5", &assign_Pss2ST_t5); - assign_map.emplace("cim:Pss2ST.t6", &assign_Pss2ST_t6); - assign_map.emplace("cim:Pss2ST.t7", &assign_Pss2ST_t7); - assign_map.emplace("cim:Pss2ST.t8", &assign_Pss2ST_t8); - assign_map.emplace("cim:Pss2ST.t9", &assign_Pss2ST_t9); - assign_map.emplace("cim:Pss2ST.vcl", &assign_Pss2ST_vcl); - assign_map.emplace("cim:Pss2ST.vcu", &assign_Pss2ST_vcu); + assign_map.emplace("Pss2ST.inputSignal1Type", &assign_Pss2ST_inputSignal1Type); + assign_map.emplace("Pss2ST.inputSignal2Type", &assign_Pss2ST_inputSignal2Type); + assign_map.emplace("Pss2ST.k1", &assign_Pss2ST_k1); + assign_map.emplace("Pss2ST.k2", &assign_Pss2ST_k2); + assign_map.emplace("Pss2ST.lsmax", &assign_Pss2ST_lsmax); + assign_map.emplace("Pss2ST.lsmin", &assign_Pss2ST_lsmin); + assign_map.emplace("Pss2ST.t1", &assign_Pss2ST_t1); + assign_map.emplace("Pss2ST.t10", &assign_Pss2ST_t10); + assign_map.emplace("Pss2ST.t2", &assign_Pss2ST_t2); + assign_map.emplace("Pss2ST.t3", &assign_Pss2ST_t3); + assign_map.emplace("Pss2ST.t4", &assign_Pss2ST_t4); + assign_map.emplace("Pss2ST.t5", &assign_Pss2ST_t5); + assign_map.emplace("Pss2ST.t6", &assign_Pss2ST_t6); + assign_map.emplace("Pss2ST.t7", &assign_Pss2ST_t7); + assign_map.emplace("Pss2ST.t8", &assign_Pss2ST_t8); + assign_map.emplace("Pss2ST.t9", &assign_Pss2ST_t9); + assign_map.emplace("Pss2ST.vcl", &assign_Pss2ST_vcl); + assign_map.emplace("Pss2ST.vcu", &assign_Pss2ST_vcu); } void Pss2ST::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,22 +650,22 @@ void Pss2ST::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss2ST.k1", &get_Pss2ST_k1); - get_map.emplace("cim:Pss2ST.k2", &get_Pss2ST_k2); - get_map.emplace("cim:Pss2ST.lsmax", &get_Pss2ST_lsmax); - get_map.emplace("cim:Pss2ST.lsmin", &get_Pss2ST_lsmin); - get_map.emplace("cim:Pss2ST.t1", &get_Pss2ST_t1); - get_map.emplace("cim:Pss2ST.t10", &get_Pss2ST_t10); - get_map.emplace("cim:Pss2ST.t2", &get_Pss2ST_t2); - get_map.emplace("cim:Pss2ST.t3", &get_Pss2ST_t3); - get_map.emplace("cim:Pss2ST.t4", &get_Pss2ST_t4); - get_map.emplace("cim:Pss2ST.t5", &get_Pss2ST_t5); - get_map.emplace("cim:Pss2ST.t6", &get_Pss2ST_t6); - get_map.emplace("cim:Pss2ST.t7", &get_Pss2ST_t7); - get_map.emplace("cim:Pss2ST.t8", &get_Pss2ST_t8); - get_map.emplace("cim:Pss2ST.t9", &get_Pss2ST_t9); - get_map.emplace("cim:Pss2ST.vcl", &get_Pss2ST_vcl); - get_map.emplace("cim:Pss2ST.vcu", &get_Pss2ST_vcu); + get_map.emplace("Pss2ST.k1", &get_Pss2ST_k1); + get_map.emplace("Pss2ST.k2", &get_Pss2ST_k2); + get_map.emplace("Pss2ST.lsmax", &get_Pss2ST_lsmax); + get_map.emplace("Pss2ST.lsmin", &get_Pss2ST_lsmin); + get_map.emplace("Pss2ST.t1", &get_Pss2ST_t1); + get_map.emplace("Pss2ST.t10", &get_Pss2ST_t10); + get_map.emplace("Pss2ST.t2", &get_Pss2ST_t2); + get_map.emplace("Pss2ST.t3", &get_Pss2ST_t3); + get_map.emplace("Pss2ST.t4", &get_Pss2ST_t4); + get_map.emplace("Pss2ST.t5", &get_Pss2ST_t5); + get_map.emplace("Pss2ST.t6", &get_Pss2ST_t6); + get_map.emplace("Pss2ST.t7", &get_Pss2ST_t7); + get_map.emplace("Pss2ST.t8", &get_Pss2ST_t8); + get_map.emplace("Pss2ST.t9", &get_Pss2ST_t9); + get_map.emplace("Pss2ST.vcl", &get_Pss2ST_vcl); + get_map.emplace("Pss2ST.vcu", &get_Pss2ST_vcu); } void Pss2ST::addClassGetFnsToMap(std::map& get_map) const @@ -644,8 +676,14 @@ void Pss2ST::addClassGetFnsToMap(std::map& get_ void Pss2ST::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss2ST.inputSignal1Type", &get_Pss2ST_inputSignal1Type); - get_map.emplace("cim:Pss2ST.inputSignal2Type", &get_Pss2ST_inputSignal2Type); + get_map.emplace("Pss2ST.inputSignal1Type", &get_Pss2ST_inputSignal1Type); + get_map.emplace("Pss2ST.inputSignal2Type", &get_Pss2ST_inputSignal2Type); +} + +bool Pss2ST::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss2ST" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss2ST::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner Pss2ST::declare() return BaseClassDefiner(Pss2ST::addConstructToMap, Pss2ST::addPrimitiveAssignFnsToMap, Pss2ST::addClassAssignFnsToMap, Pss2ST::debugName); } +std::map Pss2ST::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss2ST_factory() diff --git a/CGMES_2.4.15_16FEB2016/Pss2ST.hpp b/CGMES_2.4.15_16FEB2016/Pss2ST.hpp index abd31dcb0..542d90d64 100644 --- a/CGMES_2.4.15_16FEB2016/Pss2ST.hpp +++ b/CGMES_2.4.15_16FEB2016/Pss2ST.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss2ST_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Pss5.cpp b/CGMES_2.4.15_16FEB2016/Pss5.cpp index 41a4f0631..628fb4ac7 100644 --- a/CGMES_2.4.15_16FEB2016/Pss5.cpp +++ b/CGMES_2.4.15_16FEB2016/Pss5.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss5(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss5.ctw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.deadband", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.isfreq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kpss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.pmm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vadat", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss5::Pss5() {} Pss5::~Pss5() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss5::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss5::getClassNamespaceUrl() const { - { "cim:Pss5.ctw2", { CGMESProfile::DY, } }, - { "cim:Pss5.deadband", { CGMESProfile::DY, } }, - { "cim:Pss5.isfreq", { CGMESProfile::DY, } }, - { "cim:Pss5.kf", { CGMESProfile::DY, } }, - { "cim:Pss5.kpe", { CGMESProfile::DY, } }, - { "cim:Pss5.kpss", { CGMESProfile::DY, } }, - { "cim:Pss5.pmm", { CGMESProfile::DY, } }, - { "cim:Pss5.tl1", { CGMESProfile::DY, } }, - { "cim:Pss5.tl2", { CGMESProfile::DY, } }, - { "cim:Pss5.tl3", { CGMESProfile::DY, } }, - { "cim:Pss5.tl4", { CGMESProfile::DY, } }, - { "cim:Pss5.tpe", { CGMESProfile::DY, } }, - { "cim:Pss5.tw1", { CGMESProfile::DY, } }, - { "cim:Pss5.tw2", { CGMESProfile::DY, } }, - { "cim:Pss5.vadat", { CGMESProfile::DY, } }, - { "cim:Pss5.vsmn", { CGMESProfile::DY, } }, - { "cim:Pss5.vsmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss5::getPossibleProfilesForClass() const +const std::string& Pss5::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss5::getPossibleProfilesForAttributes() const +const std::list& Pss5::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss5::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss5::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss5::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss5_ctw2(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* Pss5::debugString() const void Pss5::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss5", &Pss5_factory); + factory_map.emplace("Pss5", &Pss5_factory); } void Pss5::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss5.ctw2", &assign_Pss5_ctw2); - assign_map.emplace("cim:Pss5.deadband", &assign_Pss5_deadband); - assign_map.emplace("cim:Pss5.isfreq", &assign_Pss5_isfreq); - assign_map.emplace("cim:Pss5.kf", &assign_Pss5_kf); - assign_map.emplace("cim:Pss5.kpe", &assign_Pss5_kpe); - assign_map.emplace("cim:Pss5.kpss", &assign_Pss5_kpss); - assign_map.emplace("cim:Pss5.pmm", &assign_Pss5_pmm); - assign_map.emplace("cim:Pss5.tl1", &assign_Pss5_tl1); - assign_map.emplace("cim:Pss5.tl2", &assign_Pss5_tl2); - assign_map.emplace("cim:Pss5.tl3", &assign_Pss5_tl3); - assign_map.emplace("cim:Pss5.tl4", &assign_Pss5_tl4); - assign_map.emplace("cim:Pss5.tpe", &assign_Pss5_tpe); - assign_map.emplace("cim:Pss5.tw1", &assign_Pss5_tw1); - assign_map.emplace("cim:Pss5.tw2", &assign_Pss5_tw2); - assign_map.emplace("cim:Pss5.vadat", &assign_Pss5_vadat); - assign_map.emplace("cim:Pss5.vsmn", &assign_Pss5_vsmn); - assign_map.emplace("cim:Pss5.vsmx", &assign_Pss5_vsmx); + assign_map.emplace("Pss5.ctw2", &assign_Pss5_ctw2); + assign_map.emplace("Pss5.deadband", &assign_Pss5_deadband); + assign_map.emplace("Pss5.isfreq", &assign_Pss5_isfreq); + assign_map.emplace("Pss5.kf", &assign_Pss5_kf); + assign_map.emplace("Pss5.kpe", &assign_Pss5_kpe); + assign_map.emplace("Pss5.kpss", &assign_Pss5_kpss); + assign_map.emplace("Pss5.pmm", &assign_Pss5_pmm); + assign_map.emplace("Pss5.tl1", &assign_Pss5_tl1); + assign_map.emplace("Pss5.tl2", &assign_Pss5_tl2); + assign_map.emplace("Pss5.tl3", &assign_Pss5_tl3); + assign_map.emplace("Pss5.tl4", &assign_Pss5_tl4); + assign_map.emplace("Pss5.tpe", &assign_Pss5_tpe); + assign_map.emplace("Pss5.tw1", &assign_Pss5_tw1); + assign_map.emplace("Pss5.tw2", &assign_Pss5_tw2); + assign_map.emplace("Pss5.vadat", &assign_Pss5_vadat); + assign_map.emplace("Pss5.vsmn", &assign_Pss5_vsmn); + assign_map.emplace("Pss5.vsmx", &assign_Pss5_vsmx); } void Pss5::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void Pss5::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss5.ctw2", &get_Pss5_ctw2); - get_map.emplace("cim:Pss5.deadband", &get_Pss5_deadband); - get_map.emplace("cim:Pss5.isfreq", &get_Pss5_isfreq); - get_map.emplace("cim:Pss5.kf", &get_Pss5_kf); - get_map.emplace("cim:Pss5.kpe", &get_Pss5_kpe); - get_map.emplace("cim:Pss5.kpss", &get_Pss5_kpss); - get_map.emplace("cim:Pss5.pmm", &get_Pss5_pmm); - get_map.emplace("cim:Pss5.tl1", &get_Pss5_tl1); - get_map.emplace("cim:Pss5.tl2", &get_Pss5_tl2); - get_map.emplace("cim:Pss5.tl3", &get_Pss5_tl3); - get_map.emplace("cim:Pss5.tl4", &get_Pss5_tl4); - get_map.emplace("cim:Pss5.tpe", &get_Pss5_tpe); - get_map.emplace("cim:Pss5.tw1", &get_Pss5_tw1); - get_map.emplace("cim:Pss5.tw2", &get_Pss5_tw2); - get_map.emplace("cim:Pss5.vadat", &get_Pss5_vadat); - get_map.emplace("cim:Pss5.vsmn", &get_Pss5_vsmn); - get_map.emplace("cim:Pss5.vsmx", &get_Pss5_vsmx); + get_map.emplace("Pss5.ctw2", &get_Pss5_ctw2); + get_map.emplace("Pss5.deadband", &get_Pss5_deadband); + get_map.emplace("Pss5.isfreq", &get_Pss5_isfreq); + get_map.emplace("Pss5.kf", &get_Pss5_kf); + get_map.emplace("Pss5.kpe", &get_Pss5_kpe); + get_map.emplace("Pss5.kpss", &get_Pss5_kpss); + get_map.emplace("Pss5.pmm", &get_Pss5_pmm); + get_map.emplace("Pss5.tl1", &get_Pss5_tl1); + get_map.emplace("Pss5.tl2", &get_Pss5_tl2); + get_map.emplace("Pss5.tl3", &get_Pss5_tl3); + get_map.emplace("Pss5.tl4", &get_Pss5_tl4); + get_map.emplace("Pss5.tpe", &get_Pss5_tpe); + get_map.emplace("Pss5.tw1", &get_Pss5_tw1); + get_map.emplace("Pss5.tw2", &get_Pss5_tw2); + get_map.emplace("Pss5.vadat", &get_Pss5_vadat); + get_map.emplace("Pss5.vsmn", &get_Pss5_vsmn); + get_map.emplace("Pss5.vsmx", &get_Pss5_vsmx); } void Pss5::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void Pss5::addEnumGetFnsToMap(std::map& get_map) cons PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss5::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss5" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss5::declare() { return BaseClassDefiner(Pss5::addConstructToMap, Pss5::addPrimitiveAssignFnsToMap, Pss5::addClassAssignFnsToMap, Pss5::debugName); } +std::map Pss5::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss5_factory() diff --git a/CGMES_2.4.15_16FEB2016/Pss5.hpp b/CGMES_2.4.15_16FEB2016/Pss5.hpp index 9855524fa..6f0fdfed6 100644 --- a/CGMES_2.4.15_16FEB2016/Pss5.hpp +++ b/CGMES_2.4.15_16FEB2016/Pss5.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -82,8 +83,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -91,7 +99,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss5_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssELIN2.cpp b/CGMES_2.4.15_16FEB2016/PssELIN2.cpp index 394cf185f..3ac940e75 100644 --- a/CGMES_2.4.15_16FEB2016/PssELIN2.cpp +++ b/CGMES_2.4.15_16FEB2016/PssELIN2.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssELIN2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssELIN2.apss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ppss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.psslim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssELIN2::PssELIN2() {} PssELIN2::~PssELIN2() {} -static const std::list PossibleProfilesForClass = +const std::list& PssELIN2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssELIN2::getClassNamespaceUrl() const { - { "cim:PssELIN2.apss", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ks1", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ks2", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ppss", { CGMESProfile::DY, } }, - { "cim:PssELIN2.psslim", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts1", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts2", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts3", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts4", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts5", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts6", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssELIN2::getPossibleProfilesForClass() const +const std::string& PssELIN2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssELIN2::getPossibleProfilesForAttributes() const +const std::list& PssELIN2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssELIN2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssELIN2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssELIN2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssELIN2_apss(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssELIN2::debugString() const void PssELIN2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssELIN2", &PssELIN2_factory); + factory_map.emplace("PssELIN2", &PssELIN2_factory); } void PssELIN2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssELIN2.apss", &assign_PssELIN2_apss); - assign_map.emplace("cim:PssELIN2.ks1", &assign_PssELIN2_ks1); - assign_map.emplace("cim:PssELIN2.ks2", &assign_PssELIN2_ks2); - assign_map.emplace("cim:PssELIN2.ppss", &assign_PssELIN2_ppss); - assign_map.emplace("cim:PssELIN2.psslim", &assign_PssELIN2_psslim); - assign_map.emplace("cim:PssELIN2.ts1", &assign_PssELIN2_ts1); - assign_map.emplace("cim:PssELIN2.ts2", &assign_PssELIN2_ts2); - assign_map.emplace("cim:PssELIN2.ts3", &assign_PssELIN2_ts3); - assign_map.emplace("cim:PssELIN2.ts4", &assign_PssELIN2_ts4); - assign_map.emplace("cim:PssELIN2.ts5", &assign_PssELIN2_ts5); - assign_map.emplace("cim:PssELIN2.ts6", &assign_PssELIN2_ts6); + assign_map.emplace("PssELIN2.apss", &assign_PssELIN2_apss); + assign_map.emplace("PssELIN2.ks1", &assign_PssELIN2_ks1); + assign_map.emplace("PssELIN2.ks2", &assign_PssELIN2_ks2); + assign_map.emplace("PssELIN2.ppss", &assign_PssELIN2_ppss); + assign_map.emplace("PssELIN2.psslim", &assign_PssELIN2_psslim); + assign_map.emplace("PssELIN2.ts1", &assign_PssELIN2_ts1); + assign_map.emplace("PssELIN2.ts2", &assign_PssELIN2_ts2); + assign_map.emplace("PssELIN2.ts3", &assign_PssELIN2_ts3); + assign_map.emplace("PssELIN2.ts4", &assign_PssELIN2_ts4); + assign_map.emplace("PssELIN2.ts5", &assign_PssELIN2_ts5); + assign_map.emplace("PssELIN2.ts6", &assign_PssELIN2_ts6); } void PssELIN2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssELIN2::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssELIN2.apss", &get_PssELIN2_apss); - get_map.emplace("cim:PssELIN2.ks1", &get_PssELIN2_ks1); - get_map.emplace("cim:PssELIN2.ks2", &get_PssELIN2_ks2); - get_map.emplace("cim:PssELIN2.ppss", &get_PssELIN2_ppss); - get_map.emplace("cim:PssELIN2.psslim", &get_PssELIN2_psslim); - get_map.emplace("cim:PssELIN2.ts1", &get_PssELIN2_ts1); - get_map.emplace("cim:PssELIN2.ts2", &get_PssELIN2_ts2); - get_map.emplace("cim:PssELIN2.ts3", &get_PssELIN2_ts3); - get_map.emplace("cim:PssELIN2.ts4", &get_PssELIN2_ts4); - get_map.emplace("cim:PssELIN2.ts5", &get_PssELIN2_ts5); - get_map.emplace("cim:PssELIN2.ts6", &get_PssELIN2_ts6); + get_map.emplace("PssELIN2.apss", &get_PssELIN2_apss); + get_map.emplace("PssELIN2.ks1", &get_PssELIN2_ks1); + get_map.emplace("PssELIN2.ks2", &get_PssELIN2_ks2); + get_map.emplace("PssELIN2.ppss", &get_PssELIN2_ppss); + get_map.emplace("PssELIN2.psslim", &get_PssELIN2_psslim); + get_map.emplace("PssELIN2.ts1", &get_PssELIN2_ts1); + get_map.emplace("PssELIN2.ts2", &get_PssELIN2_ts2); + get_map.emplace("PssELIN2.ts3", &get_PssELIN2_ts3); + get_map.emplace("PssELIN2.ts4", &get_PssELIN2_ts4); + get_map.emplace("PssELIN2.ts5", &get_PssELIN2_ts5); + get_map.emplace("PssELIN2.ts6", &get_PssELIN2_ts6); } void PssELIN2::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssELIN2::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssELIN2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssELIN2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssELIN2::declare() { return BaseClassDefiner(PssELIN2::addConstructToMap, PssELIN2::addPrimitiveAssignFnsToMap, PssELIN2::addClassAssignFnsToMap, PssELIN2::debugName); } +std::map PssELIN2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssELIN2_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssELIN2.hpp b/CGMES_2.4.15_16FEB2016/PssELIN2.hpp index d5ebed820..1518be45a 100644 --- a/CGMES_2.4.15_16FEB2016/PssELIN2.hpp +++ b/CGMES_2.4.15_16FEB2016/PssELIN2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssELIN2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssIEEE1A.cpp b/CGMES_2.4.15_16FEB2016/PssIEEE1A.cpp index 7387ba08e..4b4e47077 100644 --- a/CGMES_2.4.15_16FEB2016/PssIEEE1A.cpp +++ b/CGMES_2.4.15_16FEB2016/PssIEEE1A.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE1A.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.inputSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE1A::PssIEEE1A() {} PssIEEE1A::~PssIEEE1A() {} -static const std::list PossibleProfilesForClass = +const std::list& PssIEEE1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssIEEE1A::getClassNamespaceUrl() const { - { "cim:PssIEEE1A.a1", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.a2", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.inputSignalType", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.ks", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t3", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t4", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t5", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t6", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.vrmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssIEEE1A::getPossibleProfilesForClass() const +const std::string& PssIEEE1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssIEEE1A::getPossibleProfilesForAttributes() const +const std::list& PssIEEE1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE1A_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* PssIEEE1A::debugString() const void PssIEEE1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE1A", &PssIEEE1A_factory); + factory_map.emplace("PssIEEE1A", &PssIEEE1A_factory); } void PssIEEE1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE1A.a1", &assign_PssIEEE1A_a1); - assign_map.emplace("cim:PssIEEE1A.a2", &assign_PssIEEE1A_a2); - assign_map.emplace("cim:PssIEEE1A.inputSignalType", &assign_PssIEEE1A_inputSignalType); - assign_map.emplace("cim:PssIEEE1A.ks", &assign_PssIEEE1A_ks); - assign_map.emplace("cim:PssIEEE1A.t1", &assign_PssIEEE1A_t1); - assign_map.emplace("cim:PssIEEE1A.t2", &assign_PssIEEE1A_t2); - assign_map.emplace("cim:PssIEEE1A.t3", &assign_PssIEEE1A_t3); - assign_map.emplace("cim:PssIEEE1A.t4", &assign_PssIEEE1A_t4); - assign_map.emplace("cim:PssIEEE1A.t5", &assign_PssIEEE1A_t5); - assign_map.emplace("cim:PssIEEE1A.t6", &assign_PssIEEE1A_t6); - assign_map.emplace("cim:PssIEEE1A.vrmax", &assign_PssIEEE1A_vrmax); - assign_map.emplace("cim:PssIEEE1A.vrmin", &assign_PssIEEE1A_vrmin); + assign_map.emplace("PssIEEE1A.a1", &assign_PssIEEE1A_a1); + assign_map.emplace("PssIEEE1A.a2", &assign_PssIEEE1A_a2); + assign_map.emplace("PssIEEE1A.inputSignalType", &assign_PssIEEE1A_inputSignalType); + assign_map.emplace("PssIEEE1A.ks", &assign_PssIEEE1A_ks); + assign_map.emplace("PssIEEE1A.t1", &assign_PssIEEE1A_t1); + assign_map.emplace("PssIEEE1A.t2", &assign_PssIEEE1A_t2); + assign_map.emplace("PssIEEE1A.t3", &assign_PssIEEE1A_t3); + assign_map.emplace("PssIEEE1A.t4", &assign_PssIEEE1A_t4); + assign_map.emplace("PssIEEE1A.t5", &assign_PssIEEE1A_t5); + assign_map.emplace("PssIEEE1A.t6", &assign_PssIEEE1A_t6); + assign_map.emplace("PssIEEE1A.vrmax", &assign_PssIEEE1A_vrmax); + assign_map.emplace("PssIEEE1A.vrmin", &assign_PssIEEE1A_vrmin); } void PssIEEE1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,17 +464,17 @@ void PssIEEE1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE1A.a1", &get_PssIEEE1A_a1); - get_map.emplace("cim:PssIEEE1A.a2", &get_PssIEEE1A_a2); - get_map.emplace("cim:PssIEEE1A.ks", &get_PssIEEE1A_ks); - get_map.emplace("cim:PssIEEE1A.t1", &get_PssIEEE1A_t1); - get_map.emplace("cim:PssIEEE1A.t2", &get_PssIEEE1A_t2); - get_map.emplace("cim:PssIEEE1A.t3", &get_PssIEEE1A_t3); - get_map.emplace("cim:PssIEEE1A.t4", &get_PssIEEE1A_t4); - get_map.emplace("cim:PssIEEE1A.t5", &get_PssIEEE1A_t5); - get_map.emplace("cim:PssIEEE1A.t6", &get_PssIEEE1A_t6); - get_map.emplace("cim:PssIEEE1A.vrmax", &get_PssIEEE1A_vrmax); - get_map.emplace("cim:PssIEEE1A.vrmin", &get_PssIEEE1A_vrmin); + get_map.emplace("PssIEEE1A.a1", &get_PssIEEE1A_a1); + get_map.emplace("PssIEEE1A.a2", &get_PssIEEE1A_a2); + get_map.emplace("PssIEEE1A.ks", &get_PssIEEE1A_ks); + get_map.emplace("PssIEEE1A.t1", &get_PssIEEE1A_t1); + get_map.emplace("PssIEEE1A.t2", &get_PssIEEE1A_t2); + get_map.emplace("PssIEEE1A.t3", &get_PssIEEE1A_t3); + get_map.emplace("PssIEEE1A.t4", &get_PssIEEE1A_t4); + get_map.emplace("PssIEEE1A.t5", &get_PssIEEE1A_t5); + get_map.emplace("PssIEEE1A.t6", &get_PssIEEE1A_t6); + get_map.emplace("PssIEEE1A.vrmax", &get_PssIEEE1A_vrmax); + get_map.emplace("PssIEEE1A.vrmin", &get_PssIEEE1A_vrmin); } void PssIEEE1A::addClassGetFnsToMap(std::map& get_map) const @@ -453,7 +485,13 @@ void PssIEEE1A::addClassGetFnsToMap(std::map& g void PssIEEE1A::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE1A.inputSignalType", &get_PssIEEE1A_inputSignalType); + get_map.emplace("PssIEEE1A.inputSignalType", &get_PssIEEE1A_inputSignalType); +} + +bool PssIEEE1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE1A::declare() @@ -461,6 +499,14 @@ const BaseClassDefiner PssIEEE1A::declare() return BaseClassDefiner(PssIEEE1A::addConstructToMap, PssIEEE1A::addPrimitiveAssignFnsToMap, PssIEEE1A::addClassAssignFnsToMap, PssIEEE1A::debugName); } +std::map PssIEEE1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE1A_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssIEEE1A.hpp b/CGMES_2.4.15_16FEB2016/PssIEEE1A.hpp index 783b9d15e..37e50f8eb 100644 --- a/CGMES_2.4.15_16FEB2016/PssIEEE1A.hpp +++ b/CGMES_2.4.15_16FEB2016/PssIEEE1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE1A_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssIEEE2B.cpp b/CGMES_2.4.15_16FEB2016/PssIEEE2B.cpp index 7b46362be..830d84764 100644 --- a/CGMES_2.4.15_16FEB2016/PssIEEE2B.cpp +++ b/CGMES_2.4.15_16FEB2016/PssIEEE2B.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE2B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE2B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.n", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi1min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi2max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi2min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE2B::PssIEEE2B() {} PssIEEE2B::~PssIEEE2B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE2B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.m", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.n", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t10", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t11", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t4", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t6", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t7", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t8", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t9", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw4", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi1max", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi1min", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi2max", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi2min", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE2B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE2B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE2B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE2B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE2B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE2B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE2B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE2B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE2B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE2B_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* PssIEEE2B::debugString() const void PssIEEE2B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE2B", &PssIEEE2B_factory); + factory_map.emplace("PssIEEE2B", &PssIEEE2B_factory); } void PssIEEE2B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE2B.inputSignal1Type", &assign_PssIEEE2B_inputSignal1Type); - assign_map.emplace("cim:PssIEEE2B.inputSignal2Type", &assign_PssIEEE2B_inputSignal2Type); - assign_map.emplace("cim:PssIEEE2B.ks1", &assign_PssIEEE2B_ks1); - assign_map.emplace("cim:PssIEEE2B.ks2", &assign_PssIEEE2B_ks2); - assign_map.emplace("cim:PssIEEE2B.ks3", &assign_PssIEEE2B_ks3); - assign_map.emplace("cim:PssIEEE2B.m", &assign_PssIEEE2B_m); - assign_map.emplace("cim:PssIEEE2B.n", &assign_PssIEEE2B_n); - assign_map.emplace("cim:PssIEEE2B.t1", &assign_PssIEEE2B_t1); - assign_map.emplace("cim:PssIEEE2B.t10", &assign_PssIEEE2B_t10); - assign_map.emplace("cim:PssIEEE2B.t11", &assign_PssIEEE2B_t11); - assign_map.emplace("cim:PssIEEE2B.t2", &assign_PssIEEE2B_t2); - assign_map.emplace("cim:PssIEEE2B.t3", &assign_PssIEEE2B_t3); - assign_map.emplace("cim:PssIEEE2B.t4", &assign_PssIEEE2B_t4); - assign_map.emplace("cim:PssIEEE2B.t6", &assign_PssIEEE2B_t6); - assign_map.emplace("cim:PssIEEE2B.t7", &assign_PssIEEE2B_t7); - assign_map.emplace("cim:PssIEEE2B.t8", &assign_PssIEEE2B_t8); - assign_map.emplace("cim:PssIEEE2B.t9", &assign_PssIEEE2B_t9); - assign_map.emplace("cim:PssIEEE2B.tw1", &assign_PssIEEE2B_tw1); - assign_map.emplace("cim:PssIEEE2B.tw2", &assign_PssIEEE2B_tw2); - assign_map.emplace("cim:PssIEEE2B.tw3", &assign_PssIEEE2B_tw3); - assign_map.emplace("cim:PssIEEE2B.tw4", &assign_PssIEEE2B_tw4); - assign_map.emplace("cim:PssIEEE2B.vsi1max", &assign_PssIEEE2B_vsi1max); - assign_map.emplace("cim:PssIEEE2B.vsi1min", &assign_PssIEEE2B_vsi1min); - assign_map.emplace("cim:PssIEEE2B.vsi2max", &assign_PssIEEE2B_vsi2max); - assign_map.emplace("cim:PssIEEE2B.vsi2min", &assign_PssIEEE2B_vsi2min); - assign_map.emplace("cim:PssIEEE2B.vstmax", &assign_PssIEEE2B_vstmax); - assign_map.emplace("cim:PssIEEE2B.vstmin", &assign_PssIEEE2B_vstmin); + assign_map.emplace("PssIEEE2B.inputSignal1Type", &assign_PssIEEE2B_inputSignal1Type); + assign_map.emplace("PssIEEE2B.inputSignal2Type", &assign_PssIEEE2B_inputSignal2Type); + assign_map.emplace("PssIEEE2B.ks1", &assign_PssIEEE2B_ks1); + assign_map.emplace("PssIEEE2B.ks2", &assign_PssIEEE2B_ks2); + assign_map.emplace("PssIEEE2B.ks3", &assign_PssIEEE2B_ks3); + assign_map.emplace("PssIEEE2B.m", &assign_PssIEEE2B_m); + assign_map.emplace("PssIEEE2B.n", &assign_PssIEEE2B_n); + assign_map.emplace("PssIEEE2B.t1", &assign_PssIEEE2B_t1); + assign_map.emplace("PssIEEE2B.t10", &assign_PssIEEE2B_t10); + assign_map.emplace("PssIEEE2B.t11", &assign_PssIEEE2B_t11); + assign_map.emplace("PssIEEE2B.t2", &assign_PssIEEE2B_t2); + assign_map.emplace("PssIEEE2B.t3", &assign_PssIEEE2B_t3); + assign_map.emplace("PssIEEE2B.t4", &assign_PssIEEE2B_t4); + assign_map.emplace("PssIEEE2B.t6", &assign_PssIEEE2B_t6); + assign_map.emplace("PssIEEE2B.t7", &assign_PssIEEE2B_t7); + assign_map.emplace("PssIEEE2B.t8", &assign_PssIEEE2B_t8); + assign_map.emplace("PssIEEE2B.t9", &assign_PssIEEE2B_t9); + assign_map.emplace("PssIEEE2B.tw1", &assign_PssIEEE2B_tw1); + assign_map.emplace("PssIEEE2B.tw2", &assign_PssIEEE2B_tw2); + assign_map.emplace("PssIEEE2B.tw3", &assign_PssIEEE2B_tw3); + assign_map.emplace("PssIEEE2B.tw4", &assign_PssIEEE2B_tw4); + assign_map.emplace("PssIEEE2B.vsi1max", &assign_PssIEEE2B_vsi1max); + assign_map.emplace("PssIEEE2B.vsi1min", &assign_PssIEEE2B_vsi1min); + assign_map.emplace("PssIEEE2B.vsi2max", &assign_PssIEEE2B_vsi2max); + assign_map.emplace("PssIEEE2B.vsi2min", &assign_PssIEEE2B_vsi2min); + assign_map.emplace("PssIEEE2B.vstmax", &assign_PssIEEE2B_vstmax); + assign_map.emplace("PssIEEE2B.vstmin", &assign_PssIEEE2B_vstmin); } void PssIEEE2B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,31 +929,31 @@ void PssIEEE2B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE2B.ks1", &get_PssIEEE2B_ks1); - get_map.emplace("cim:PssIEEE2B.ks2", &get_PssIEEE2B_ks2); - get_map.emplace("cim:PssIEEE2B.ks3", &get_PssIEEE2B_ks3); - get_map.emplace("cim:PssIEEE2B.m", &get_PssIEEE2B_m); - get_map.emplace("cim:PssIEEE2B.n", &get_PssIEEE2B_n); - get_map.emplace("cim:PssIEEE2B.t1", &get_PssIEEE2B_t1); - get_map.emplace("cim:PssIEEE2B.t10", &get_PssIEEE2B_t10); - get_map.emplace("cim:PssIEEE2B.t11", &get_PssIEEE2B_t11); - get_map.emplace("cim:PssIEEE2B.t2", &get_PssIEEE2B_t2); - get_map.emplace("cim:PssIEEE2B.t3", &get_PssIEEE2B_t3); - get_map.emplace("cim:PssIEEE2B.t4", &get_PssIEEE2B_t4); - get_map.emplace("cim:PssIEEE2B.t6", &get_PssIEEE2B_t6); - get_map.emplace("cim:PssIEEE2B.t7", &get_PssIEEE2B_t7); - get_map.emplace("cim:PssIEEE2B.t8", &get_PssIEEE2B_t8); - get_map.emplace("cim:PssIEEE2B.t9", &get_PssIEEE2B_t9); - get_map.emplace("cim:PssIEEE2B.tw1", &get_PssIEEE2B_tw1); - get_map.emplace("cim:PssIEEE2B.tw2", &get_PssIEEE2B_tw2); - get_map.emplace("cim:PssIEEE2B.tw3", &get_PssIEEE2B_tw3); - get_map.emplace("cim:PssIEEE2B.tw4", &get_PssIEEE2B_tw4); - get_map.emplace("cim:PssIEEE2B.vsi1max", &get_PssIEEE2B_vsi1max); - get_map.emplace("cim:PssIEEE2B.vsi1min", &get_PssIEEE2B_vsi1min); - get_map.emplace("cim:PssIEEE2B.vsi2max", &get_PssIEEE2B_vsi2max); - get_map.emplace("cim:PssIEEE2B.vsi2min", &get_PssIEEE2B_vsi2min); - get_map.emplace("cim:PssIEEE2B.vstmax", &get_PssIEEE2B_vstmax); - get_map.emplace("cim:PssIEEE2B.vstmin", &get_PssIEEE2B_vstmin); + get_map.emplace("PssIEEE2B.ks1", &get_PssIEEE2B_ks1); + get_map.emplace("PssIEEE2B.ks2", &get_PssIEEE2B_ks2); + get_map.emplace("PssIEEE2B.ks3", &get_PssIEEE2B_ks3); + get_map.emplace("PssIEEE2B.m", &get_PssIEEE2B_m); + get_map.emplace("PssIEEE2B.n", &get_PssIEEE2B_n); + get_map.emplace("PssIEEE2B.t1", &get_PssIEEE2B_t1); + get_map.emplace("PssIEEE2B.t10", &get_PssIEEE2B_t10); + get_map.emplace("PssIEEE2B.t11", &get_PssIEEE2B_t11); + get_map.emplace("PssIEEE2B.t2", &get_PssIEEE2B_t2); + get_map.emplace("PssIEEE2B.t3", &get_PssIEEE2B_t3); + get_map.emplace("PssIEEE2B.t4", &get_PssIEEE2B_t4); + get_map.emplace("PssIEEE2B.t6", &get_PssIEEE2B_t6); + get_map.emplace("PssIEEE2B.t7", &get_PssIEEE2B_t7); + get_map.emplace("PssIEEE2B.t8", &get_PssIEEE2B_t8); + get_map.emplace("PssIEEE2B.t9", &get_PssIEEE2B_t9); + get_map.emplace("PssIEEE2B.tw1", &get_PssIEEE2B_tw1); + get_map.emplace("PssIEEE2B.tw2", &get_PssIEEE2B_tw2); + get_map.emplace("PssIEEE2B.tw3", &get_PssIEEE2B_tw3); + get_map.emplace("PssIEEE2B.tw4", &get_PssIEEE2B_tw4); + get_map.emplace("PssIEEE2B.vsi1max", &get_PssIEEE2B_vsi1max); + get_map.emplace("PssIEEE2B.vsi1min", &get_PssIEEE2B_vsi1min); + get_map.emplace("PssIEEE2B.vsi2max", &get_PssIEEE2B_vsi2max); + get_map.emplace("PssIEEE2B.vsi2min", &get_PssIEEE2B_vsi2min); + get_map.emplace("PssIEEE2B.vstmax", &get_PssIEEE2B_vstmax); + get_map.emplace("PssIEEE2B.vstmin", &get_PssIEEE2B_vstmin); } void PssIEEE2B::addClassGetFnsToMap(std::map& get_map) const @@ -932,8 +964,14 @@ void PssIEEE2B::addClassGetFnsToMap(std::map& g void PssIEEE2B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE2B.inputSignal1Type", &get_PssIEEE2B_inputSignal1Type); - get_map.emplace("cim:PssIEEE2B.inputSignal2Type", &get_PssIEEE2B_inputSignal2Type); + get_map.emplace("PssIEEE2B.inputSignal1Type", &get_PssIEEE2B_inputSignal1Type); + get_map.emplace("PssIEEE2B.inputSignal2Type", &get_PssIEEE2B_inputSignal2Type); +} + +bool PssIEEE2B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE2B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE2B::declare() @@ -941,6 +979,14 @@ const BaseClassDefiner PssIEEE2B::declare() return BaseClassDefiner(PssIEEE2B::addConstructToMap, PssIEEE2B::addPrimitiveAssignFnsToMap, PssIEEE2B::addClassAssignFnsToMap, PssIEEE2B::debugName); } +std::map PssIEEE2B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE2B_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssIEEE2B.hpp b/CGMES_2.4.15_16FEB2016/PssIEEE2B.hpp index 0a629b803..e00091033 100644 --- a/CGMES_2.4.15_16FEB2016/PssIEEE2B.hpp +++ b/CGMES_2.4.15_16FEB2016/PssIEEE2B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -112,8 +113,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -121,7 +129,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE2B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssIEEE3B.cpp b/CGMES_2.4.15_16FEB2016/PssIEEE3B.cpp index f4cf47980..374ec16c3 100644 --- a/CGMES_2.4.15_16FEB2016/PssIEEE3B.cpp +++ b/CGMES_2.4.15_16FEB2016/PssIEEE3B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE3B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE3B.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE3B::PssIEEE3B() {} PssIEEE3B::~PssIEEE3B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE3B.a1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a3", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a4", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a5", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a6", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a7", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a8", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.ks1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.ks2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw3", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE3B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE3B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE3B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE3B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE3B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE3B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE3B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE3B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE3B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE3B_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* PssIEEE3B::debugString() const void PssIEEE3B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE3B", &PssIEEE3B_factory); + factory_map.emplace("PssIEEE3B", &PssIEEE3B_factory); } void PssIEEE3B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE3B.a1", &assign_PssIEEE3B_a1); - assign_map.emplace("cim:PssIEEE3B.a2", &assign_PssIEEE3B_a2); - assign_map.emplace("cim:PssIEEE3B.a3", &assign_PssIEEE3B_a3); - assign_map.emplace("cim:PssIEEE3B.a4", &assign_PssIEEE3B_a4); - assign_map.emplace("cim:PssIEEE3B.a5", &assign_PssIEEE3B_a5); - assign_map.emplace("cim:PssIEEE3B.a6", &assign_PssIEEE3B_a6); - assign_map.emplace("cim:PssIEEE3B.a7", &assign_PssIEEE3B_a7); - assign_map.emplace("cim:PssIEEE3B.a8", &assign_PssIEEE3B_a8); - assign_map.emplace("cim:PssIEEE3B.inputSignal1Type", &assign_PssIEEE3B_inputSignal1Type); - assign_map.emplace("cim:PssIEEE3B.inputSignal2Type", &assign_PssIEEE3B_inputSignal2Type); - assign_map.emplace("cim:PssIEEE3B.ks1", &assign_PssIEEE3B_ks1); - assign_map.emplace("cim:PssIEEE3B.ks2", &assign_PssIEEE3B_ks2); - assign_map.emplace("cim:PssIEEE3B.t1", &assign_PssIEEE3B_t1); - assign_map.emplace("cim:PssIEEE3B.t2", &assign_PssIEEE3B_t2); - assign_map.emplace("cim:PssIEEE3B.tw1", &assign_PssIEEE3B_tw1); - assign_map.emplace("cim:PssIEEE3B.tw2", &assign_PssIEEE3B_tw2); - assign_map.emplace("cim:PssIEEE3B.tw3", &assign_PssIEEE3B_tw3); - assign_map.emplace("cim:PssIEEE3B.vstmax", &assign_PssIEEE3B_vstmax); - assign_map.emplace("cim:PssIEEE3B.vstmin", &assign_PssIEEE3B_vstmin); + assign_map.emplace("PssIEEE3B.a1", &assign_PssIEEE3B_a1); + assign_map.emplace("PssIEEE3B.a2", &assign_PssIEEE3B_a2); + assign_map.emplace("PssIEEE3B.a3", &assign_PssIEEE3B_a3); + assign_map.emplace("PssIEEE3B.a4", &assign_PssIEEE3B_a4); + assign_map.emplace("PssIEEE3B.a5", &assign_PssIEEE3B_a5); + assign_map.emplace("PssIEEE3B.a6", &assign_PssIEEE3B_a6); + assign_map.emplace("PssIEEE3B.a7", &assign_PssIEEE3B_a7); + assign_map.emplace("PssIEEE3B.a8", &assign_PssIEEE3B_a8); + assign_map.emplace("PssIEEE3B.inputSignal1Type", &assign_PssIEEE3B_inputSignal1Type); + assign_map.emplace("PssIEEE3B.inputSignal2Type", &assign_PssIEEE3B_inputSignal2Type); + assign_map.emplace("PssIEEE3B.ks1", &assign_PssIEEE3B_ks1); + assign_map.emplace("PssIEEE3B.ks2", &assign_PssIEEE3B_ks2); + assign_map.emplace("PssIEEE3B.t1", &assign_PssIEEE3B_t1); + assign_map.emplace("PssIEEE3B.t2", &assign_PssIEEE3B_t2); + assign_map.emplace("PssIEEE3B.tw1", &assign_PssIEEE3B_tw1); + assign_map.emplace("PssIEEE3B.tw2", &assign_PssIEEE3B_tw2); + assign_map.emplace("PssIEEE3B.tw3", &assign_PssIEEE3B_tw3); + assign_map.emplace("PssIEEE3B.vstmax", &assign_PssIEEE3B_vstmax); + assign_map.emplace("PssIEEE3B.vstmin", &assign_PssIEEE3B_vstmin); } void PssIEEE3B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,23 +681,23 @@ void PssIEEE3B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE3B.a1", &get_PssIEEE3B_a1); - get_map.emplace("cim:PssIEEE3B.a2", &get_PssIEEE3B_a2); - get_map.emplace("cim:PssIEEE3B.a3", &get_PssIEEE3B_a3); - get_map.emplace("cim:PssIEEE3B.a4", &get_PssIEEE3B_a4); - get_map.emplace("cim:PssIEEE3B.a5", &get_PssIEEE3B_a5); - get_map.emplace("cim:PssIEEE3B.a6", &get_PssIEEE3B_a6); - get_map.emplace("cim:PssIEEE3B.a7", &get_PssIEEE3B_a7); - get_map.emplace("cim:PssIEEE3B.a8", &get_PssIEEE3B_a8); - get_map.emplace("cim:PssIEEE3B.ks1", &get_PssIEEE3B_ks1); - get_map.emplace("cim:PssIEEE3B.ks2", &get_PssIEEE3B_ks2); - get_map.emplace("cim:PssIEEE3B.t1", &get_PssIEEE3B_t1); - get_map.emplace("cim:PssIEEE3B.t2", &get_PssIEEE3B_t2); - get_map.emplace("cim:PssIEEE3B.tw1", &get_PssIEEE3B_tw1); - get_map.emplace("cim:PssIEEE3B.tw2", &get_PssIEEE3B_tw2); - get_map.emplace("cim:PssIEEE3B.tw3", &get_PssIEEE3B_tw3); - get_map.emplace("cim:PssIEEE3B.vstmax", &get_PssIEEE3B_vstmax); - get_map.emplace("cim:PssIEEE3B.vstmin", &get_PssIEEE3B_vstmin); + get_map.emplace("PssIEEE3B.a1", &get_PssIEEE3B_a1); + get_map.emplace("PssIEEE3B.a2", &get_PssIEEE3B_a2); + get_map.emplace("PssIEEE3B.a3", &get_PssIEEE3B_a3); + get_map.emplace("PssIEEE3B.a4", &get_PssIEEE3B_a4); + get_map.emplace("PssIEEE3B.a5", &get_PssIEEE3B_a5); + get_map.emplace("PssIEEE3B.a6", &get_PssIEEE3B_a6); + get_map.emplace("PssIEEE3B.a7", &get_PssIEEE3B_a7); + get_map.emplace("PssIEEE3B.a8", &get_PssIEEE3B_a8); + get_map.emplace("PssIEEE3B.ks1", &get_PssIEEE3B_ks1); + get_map.emplace("PssIEEE3B.ks2", &get_PssIEEE3B_ks2); + get_map.emplace("PssIEEE3B.t1", &get_PssIEEE3B_t1); + get_map.emplace("PssIEEE3B.t2", &get_PssIEEE3B_t2); + get_map.emplace("PssIEEE3B.tw1", &get_PssIEEE3B_tw1); + get_map.emplace("PssIEEE3B.tw2", &get_PssIEEE3B_tw2); + get_map.emplace("PssIEEE3B.tw3", &get_PssIEEE3B_tw3); + get_map.emplace("PssIEEE3B.vstmax", &get_PssIEEE3B_vstmax); + get_map.emplace("PssIEEE3B.vstmin", &get_PssIEEE3B_vstmin); } void PssIEEE3B::addClassGetFnsToMap(std::map& get_map) const @@ -676,8 +708,14 @@ void PssIEEE3B::addClassGetFnsToMap(std::map& g void PssIEEE3B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE3B.inputSignal1Type", &get_PssIEEE3B_inputSignal1Type); - get_map.emplace("cim:PssIEEE3B.inputSignal2Type", &get_PssIEEE3B_inputSignal2Type); + get_map.emplace("PssIEEE3B.inputSignal1Type", &get_PssIEEE3B_inputSignal1Type); + get_map.emplace("PssIEEE3B.inputSignal2Type", &get_PssIEEE3B_inputSignal2Type); +} + +bool PssIEEE3B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE3B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE3B::declare() @@ -685,6 +723,14 @@ const BaseClassDefiner PssIEEE3B::declare() return BaseClassDefiner(PssIEEE3B::addConstructToMap, PssIEEE3B::addPrimitiveAssignFnsToMap, PssIEEE3B::addClassAssignFnsToMap, PssIEEE3B::debugName); } +std::map PssIEEE3B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE3B_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssIEEE3B.hpp b/CGMES_2.4.15_16FEB2016/PssIEEE3B.hpp index 8f5a867f9..2c7b8b8e0 100644 --- a/CGMES_2.4.15_16FEB2016/PssIEEE3B.hpp +++ b/CGMES_2.4.15_16FEB2016/PssIEEE3B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -87,8 +88,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -96,7 +104,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE3B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssIEEE4B.cpp b/CGMES_2.4.15_16FEB2016/PssIEEE4B.cpp index 6eb537c95..715b43e6d 100644 --- a/CGMES_2.4.15_16FEB2016/PssIEEE4B.cpp +++ b/CGMES_2.4.15_16FEB2016/PssIEEE4B.cpp @@ -11,98 +11,130 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE4B.bwh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwh2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganh2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vhmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vlmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vlmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE4B::PssIEEE4B() {} PssIEEE4B::~PssIEEE4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE4B.bwh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vhmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vhmin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vimax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vimin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vlmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vlmin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE4B_bwh1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -2056,78 +2088,78 @@ const char* PssIEEE4B::debugString() const void PssIEEE4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE4B", &PssIEEE4B_factory); + factory_map.emplace("PssIEEE4B", &PssIEEE4B_factory); } void PssIEEE4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE4B.bwh1", &assign_PssIEEE4B_bwh1); - assign_map.emplace("cim:PssIEEE4B.bwh2", &assign_PssIEEE4B_bwh2); - assign_map.emplace("cim:PssIEEE4B.bwl1", &assign_PssIEEE4B_bwl1); - assign_map.emplace("cim:PssIEEE4B.bwl2", &assign_PssIEEE4B_bwl2); - assign_map.emplace("cim:PssIEEE4B.kh", &assign_PssIEEE4B_kh); - assign_map.emplace("cim:PssIEEE4B.kh1", &assign_PssIEEE4B_kh1); - assign_map.emplace("cim:PssIEEE4B.kh11", &assign_PssIEEE4B_kh11); - assign_map.emplace("cim:PssIEEE4B.kh17", &assign_PssIEEE4B_kh17); - assign_map.emplace("cim:PssIEEE4B.kh2", &assign_PssIEEE4B_kh2); - assign_map.emplace("cim:PssIEEE4B.ki", &assign_PssIEEE4B_ki); - assign_map.emplace("cim:PssIEEE4B.ki1", &assign_PssIEEE4B_ki1); - assign_map.emplace("cim:PssIEEE4B.ki11", &assign_PssIEEE4B_ki11); - assign_map.emplace("cim:PssIEEE4B.ki17", &assign_PssIEEE4B_ki17); - assign_map.emplace("cim:PssIEEE4B.ki2", &assign_PssIEEE4B_ki2); - assign_map.emplace("cim:PssIEEE4B.kl", &assign_PssIEEE4B_kl); - assign_map.emplace("cim:PssIEEE4B.kl1", &assign_PssIEEE4B_kl1); - assign_map.emplace("cim:PssIEEE4B.kl11", &assign_PssIEEE4B_kl11); - assign_map.emplace("cim:PssIEEE4B.kl17", &assign_PssIEEE4B_kl17); - assign_map.emplace("cim:PssIEEE4B.kl2", &assign_PssIEEE4B_kl2); - assign_map.emplace("cim:PssIEEE4B.omeganh1", &assign_PssIEEE4B_omeganh1); - assign_map.emplace("cim:PssIEEE4B.omeganh2", &assign_PssIEEE4B_omeganh2); - assign_map.emplace("cim:PssIEEE4B.omeganl1", &assign_PssIEEE4B_omeganl1); - assign_map.emplace("cim:PssIEEE4B.omeganl2", &assign_PssIEEE4B_omeganl2); - assign_map.emplace("cim:PssIEEE4B.th1", &assign_PssIEEE4B_th1); - assign_map.emplace("cim:PssIEEE4B.th10", &assign_PssIEEE4B_th10); - assign_map.emplace("cim:PssIEEE4B.th11", &assign_PssIEEE4B_th11); - assign_map.emplace("cim:PssIEEE4B.th12", &assign_PssIEEE4B_th12); - assign_map.emplace("cim:PssIEEE4B.th2", &assign_PssIEEE4B_th2); - assign_map.emplace("cim:PssIEEE4B.th3", &assign_PssIEEE4B_th3); - assign_map.emplace("cim:PssIEEE4B.th4", &assign_PssIEEE4B_th4); - assign_map.emplace("cim:PssIEEE4B.th5", &assign_PssIEEE4B_th5); - assign_map.emplace("cim:PssIEEE4B.th6", &assign_PssIEEE4B_th6); - assign_map.emplace("cim:PssIEEE4B.th7", &assign_PssIEEE4B_th7); - assign_map.emplace("cim:PssIEEE4B.th8", &assign_PssIEEE4B_th8); - assign_map.emplace("cim:PssIEEE4B.th9", &assign_PssIEEE4B_th9); - assign_map.emplace("cim:PssIEEE4B.ti1", &assign_PssIEEE4B_ti1); - assign_map.emplace("cim:PssIEEE4B.ti10", &assign_PssIEEE4B_ti10); - assign_map.emplace("cim:PssIEEE4B.ti11", &assign_PssIEEE4B_ti11); - assign_map.emplace("cim:PssIEEE4B.ti12", &assign_PssIEEE4B_ti12); - assign_map.emplace("cim:PssIEEE4B.ti2", &assign_PssIEEE4B_ti2); - assign_map.emplace("cim:PssIEEE4B.ti3", &assign_PssIEEE4B_ti3); - assign_map.emplace("cim:PssIEEE4B.ti4", &assign_PssIEEE4B_ti4); - assign_map.emplace("cim:PssIEEE4B.ti5", &assign_PssIEEE4B_ti5); - assign_map.emplace("cim:PssIEEE4B.ti6", &assign_PssIEEE4B_ti6); - assign_map.emplace("cim:PssIEEE4B.ti7", &assign_PssIEEE4B_ti7); - assign_map.emplace("cim:PssIEEE4B.ti8", &assign_PssIEEE4B_ti8); - assign_map.emplace("cim:PssIEEE4B.ti9", &assign_PssIEEE4B_ti9); - assign_map.emplace("cim:PssIEEE4B.tl1", &assign_PssIEEE4B_tl1); - assign_map.emplace("cim:PssIEEE4B.tl10", &assign_PssIEEE4B_tl10); - assign_map.emplace("cim:PssIEEE4B.tl11", &assign_PssIEEE4B_tl11); - assign_map.emplace("cim:PssIEEE4B.tl12", &assign_PssIEEE4B_tl12); - assign_map.emplace("cim:PssIEEE4B.tl2", &assign_PssIEEE4B_tl2); - assign_map.emplace("cim:PssIEEE4B.tl3", &assign_PssIEEE4B_tl3); - assign_map.emplace("cim:PssIEEE4B.tl4", &assign_PssIEEE4B_tl4); - assign_map.emplace("cim:PssIEEE4B.tl5", &assign_PssIEEE4B_tl5); - assign_map.emplace("cim:PssIEEE4B.tl6", &assign_PssIEEE4B_tl6); - assign_map.emplace("cim:PssIEEE4B.tl7", &assign_PssIEEE4B_tl7); - assign_map.emplace("cim:PssIEEE4B.tl8", &assign_PssIEEE4B_tl8); - assign_map.emplace("cim:PssIEEE4B.tl9", &assign_PssIEEE4B_tl9); - assign_map.emplace("cim:PssIEEE4B.vhmax", &assign_PssIEEE4B_vhmax); - assign_map.emplace("cim:PssIEEE4B.vhmin", &assign_PssIEEE4B_vhmin); - assign_map.emplace("cim:PssIEEE4B.vimax", &assign_PssIEEE4B_vimax); - assign_map.emplace("cim:PssIEEE4B.vimin", &assign_PssIEEE4B_vimin); - assign_map.emplace("cim:PssIEEE4B.vlmax", &assign_PssIEEE4B_vlmax); - assign_map.emplace("cim:PssIEEE4B.vlmin", &assign_PssIEEE4B_vlmin); - assign_map.emplace("cim:PssIEEE4B.vstmax", &assign_PssIEEE4B_vstmax); - assign_map.emplace("cim:PssIEEE4B.vstmin", &assign_PssIEEE4B_vstmin); + assign_map.emplace("PssIEEE4B.bwh1", &assign_PssIEEE4B_bwh1); + assign_map.emplace("PssIEEE4B.bwh2", &assign_PssIEEE4B_bwh2); + assign_map.emplace("PssIEEE4B.bwl1", &assign_PssIEEE4B_bwl1); + assign_map.emplace("PssIEEE4B.bwl2", &assign_PssIEEE4B_bwl2); + assign_map.emplace("PssIEEE4B.kh", &assign_PssIEEE4B_kh); + assign_map.emplace("PssIEEE4B.kh1", &assign_PssIEEE4B_kh1); + assign_map.emplace("PssIEEE4B.kh11", &assign_PssIEEE4B_kh11); + assign_map.emplace("PssIEEE4B.kh17", &assign_PssIEEE4B_kh17); + assign_map.emplace("PssIEEE4B.kh2", &assign_PssIEEE4B_kh2); + assign_map.emplace("PssIEEE4B.ki", &assign_PssIEEE4B_ki); + assign_map.emplace("PssIEEE4B.ki1", &assign_PssIEEE4B_ki1); + assign_map.emplace("PssIEEE4B.ki11", &assign_PssIEEE4B_ki11); + assign_map.emplace("PssIEEE4B.ki17", &assign_PssIEEE4B_ki17); + assign_map.emplace("PssIEEE4B.ki2", &assign_PssIEEE4B_ki2); + assign_map.emplace("PssIEEE4B.kl", &assign_PssIEEE4B_kl); + assign_map.emplace("PssIEEE4B.kl1", &assign_PssIEEE4B_kl1); + assign_map.emplace("PssIEEE4B.kl11", &assign_PssIEEE4B_kl11); + assign_map.emplace("PssIEEE4B.kl17", &assign_PssIEEE4B_kl17); + assign_map.emplace("PssIEEE4B.kl2", &assign_PssIEEE4B_kl2); + assign_map.emplace("PssIEEE4B.omeganh1", &assign_PssIEEE4B_omeganh1); + assign_map.emplace("PssIEEE4B.omeganh2", &assign_PssIEEE4B_omeganh2); + assign_map.emplace("PssIEEE4B.omeganl1", &assign_PssIEEE4B_omeganl1); + assign_map.emplace("PssIEEE4B.omeganl2", &assign_PssIEEE4B_omeganl2); + assign_map.emplace("PssIEEE4B.th1", &assign_PssIEEE4B_th1); + assign_map.emplace("PssIEEE4B.th10", &assign_PssIEEE4B_th10); + assign_map.emplace("PssIEEE4B.th11", &assign_PssIEEE4B_th11); + assign_map.emplace("PssIEEE4B.th12", &assign_PssIEEE4B_th12); + assign_map.emplace("PssIEEE4B.th2", &assign_PssIEEE4B_th2); + assign_map.emplace("PssIEEE4B.th3", &assign_PssIEEE4B_th3); + assign_map.emplace("PssIEEE4B.th4", &assign_PssIEEE4B_th4); + assign_map.emplace("PssIEEE4B.th5", &assign_PssIEEE4B_th5); + assign_map.emplace("PssIEEE4B.th6", &assign_PssIEEE4B_th6); + assign_map.emplace("PssIEEE4B.th7", &assign_PssIEEE4B_th7); + assign_map.emplace("PssIEEE4B.th8", &assign_PssIEEE4B_th8); + assign_map.emplace("PssIEEE4B.th9", &assign_PssIEEE4B_th9); + assign_map.emplace("PssIEEE4B.ti1", &assign_PssIEEE4B_ti1); + assign_map.emplace("PssIEEE4B.ti10", &assign_PssIEEE4B_ti10); + assign_map.emplace("PssIEEE4B.ti11", &assign_PssIEEE4B_ti11); + assign_map.emplace("PssIEEE4B.ti12", &assign_PssIEEE4B_ti12); + assign_map.emplace("PssIEEE4B.ti2", &assign_PssIEEE4B_ti2); + assign_map.emplace("PssIEEE4B.ti3", &assign_PssIEEE4B_ti3); + assign_map.emplace("PssIEEE4B.ti4", &assign_PssIEEE4B_ti4); + assign_map.emplace("PssIEEE4B.ti5", &assign_PssIEEE4B_ti5); + assign_map.emplace("PssIEEE4B.ti6", &assign_PssIEEE4B_ti6); + assign_map.emplace("PssIEEE4B.ti7", &assign_PssIEEE4B_ti7); + assign_map.emplace("PssIEEE4B.ti8", &assign_PssIEEE4B_ti8); + assign_map.emplace("PssIEEE4B.ti9", &assign_PssIEEE4B_ti9); + assign_map.emplace("PssIEEE4B.tl1", &assign_PssIEEE4B_tl1); + assign_map.emplace("PssIEEE4B.tl10", &assign_PssIEEE4B_tl10); + assign_map.emplace("PssIEEE4B.tl11", &assign_PssIEEE4B_tl11); + assign_map.emplace("PssIEEE4B.tl12", &assign_PssIEEE4B_tl12); + assign_map.emplace("PssIEEE4B.tl2", &assign_PssIEEE4B_tl2); + assign_map.emplace("PssIEEE4B.tl3", &assign_PssIEEE4B_tl3); + assign_map.emplace("PssIEEE4B.tl4", &assign_PssIEEE4B_tl4); + assign_map.emplace("PssIEEE4B.tl5", &assign_PssIEEE4B_tl5); + assign_map.emplace("PssIEEE4B.tl6", &assign_PssIEEE4B_tl6); + assign_map.emplace("PssIEEE4B.tl7", &assign_PssIEEE4B_tl7); + assign_map.emplace("PssIEEE4B.tl8", &assign_PssIEEE4B_tl8); + assign_map.emplace("PssIEEE4B.tl9", &assign_PssIEEE4B_tl9); + assign_map.emplace("PssIEEE4B.vhmax", &assign_PssIEEE4B_vhmax); + assign_map.emplace("PssIEEE4B.vhmin", &assign_PssIEEE4B_vhmin); + assign_map.emplace("PssIEEE4B.vimax", &assign_PssIEEE4B_vimax); + assign_map.emplace("PssIEEE4B.vimin", &assign_PssIEEE4B_vimin); + assign_map.emplace("PssIEEE4B.vlmax", &assign_PssIEEE4B_vlmax); + assign_map.emplace("PssIEEE4B.vlmin", &assign_PssIEEE4B_vlmin); + assign_map.emplace("PssIEEE4B.vstmax", &assign_PssIEEE4B_vstmax); + assign_map.emplace("PssIEEE4B.vstmin", &assign_PssIEEE4B_vstmin); } void PssIEEE4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -2137,73 +2169,73 @@ void PssIEEE4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE4B.bwh1", &get_PssIEEE4B_bwh1); - get_map.emplace("cim:PssIEEE4B.bwh2", &get_PssIEEE4B_bwh2); - get_map.emplace("cim:PssIEEE4B.bwl1", &get_PssIEEE4B_bwl1); - get_map.emplace("cim:PssIEEE4B.bwl2", &get_PssIEEE4B_bwl2); - get_map.emplace("cim:PssIEEE4B.kh", &get_PssIEEE4B_kh); - get_map.emplace("cim:PssIEEE4B.kh1", &get_PssIEEE4B_kh1); - get_map.emplace("cim:PssIEEE4B.kh11", &get_PssIEEE4B_kh11); - get_map.emplace("cim:PssIEEE4B.kh17", &get_PssIEEE4B_kh17); - get_map.emplace("cim:PssIEEE4B.kh2", &get_PssIEEE4B_kh2); - get_map.emplace("cim:PssIEEE4B.ki", &get_PssIEEE4B_ki); - get_map.emplace("cim:PssIEEE4B.ki1", &get_PssIEEE4B_ki1); - get_map.emplace("cim:PssIEEE4B.ki11", &get_PssIEEE4B_ki11); - get_map.emplace("cim:PssIEEE4B.ki17", &get_PssIEEE4B_ki17); - get_map.emplace("cim:PssIEEE4B.ki2", &get_PssIEEE4B_ki2); - get_map.emplace("cim:PssIEEE4B.kl", &get_PssIEEE4B_kl); - get_map.emplace("cim:PssIEEE4B.kl1", &get_PssIEEE4B_kl1); - get_map.emplace("cim:PssIEEE4B.kl11", &get_PssIEEE4B_kl11); - get_map.emplace("cim:PssIEEE4B.kl17", &get_PssIEEE4B_kl17); - get_map.emplace("cim:PssIEEE4B.kl2", &get_PssIEEE4B_kl2); - get_map.emplace("cim:PssIEEE4B.omeganh1", &get_PssIEEE4B_omeganh1); - get_map.emplace("cim:PssIEEE4B.omeganh2", &get_PssIEEE4B_omeganh2); - get_map.emplace("cim:PssIEEE4B.omeganl1", &get_PssIEEE4B_omeganl1); - get_map.emplace("cim:PssIEEE4B.omeganl2", &get_PssIEEE4B_omeganl2); - get_map.emplace("cim:PssIEEE4B.th1", &get_PssIEEE4B_th1); - get_map.emplace("cim:PssIEEE4B.th10", &get_PssIEEE4B_th10); - get_map.emplace("cim:PssIEEE4B.th11", &get_PssIEEE4B_th11); - get_map.emplace("cim:PssIEEE4B.th12", &get_PssIEEE4B_th12); - get_map.emplace("cim:PssIEEE4B.th2", &get_PssIEEE4B_th2); - get_map.emplace("cim:PssIEEE4B.th3", &get_PssIEEE4B_th3); - get_map.emplace("cim:PssIEEE4B.th4", &get_PssIEEE4B_th4); - get_map.emplace("cim:PssIEEE4B.th5", &get_PssIEEE4B_th5); - get_map.emplace("cim:PssIEEE4B.th6", &get_PssIEEE4B_th6); - get_map.emplace("cim:PssIEEE4B.th7", &get_PssIEEE4B_th7); - get_map.emplace("cim:PssIEEE4B.th8", &get_PssIEEE4B_th8); - get_map.emplace("cim:PssIEEE4B.th9", &get_PssIEEE4B_th9); - get_map.emplace("cim:PssIEEE4B.ti1", &get_PssIEEE4B_ti1); - get_map.emplace("cim:PssIEEE4B.ti10", &get_PssIEEE4B_ti10); - get_map.emplace("cim:PssIEEE4B.ti11", &get_PssIEEE4B_ti11); - get_map.emplace("cim:PssIEEE4B.ti12", &get_PssIEEE4B_ti12); - get_map.emplace("cim:PssIEEE4B.ti2", &get_PssIEEE4B_ti2); - get_map.emplace("cim:PssIEEE4B.ti3", &get_PssIEEE4B_ti3); - get_map.emplace("cim:PssIEEE4B.ti4", &get_PssIEEE4B_ti4); - get_map.emplace("cim:PssIEEE4B.ti5", &get_PssIEEE4B_ti5); - get_map.emplace("cim:PssIEEE4B.ti6", &get_PssIEEE4B_ti6); - get_map.emplace("cim:PssIEEE4B.ti7", &get_PssIEEE4B_ti7); - get_map.emplace("cim:PssIEEE4B.ti8", &get_PssIEEE4B_ti8); - get_map.emplace("cim:PssIEEE4B.ti9", &get_PssIEEE4B_ti9); - get_map.emplace("cim:PssIEEE4B.tl1", &get_PssIEEE4B_tl1); - get_map.emplace("cim:PssIEEE4B.tl10", &get_PssIEEE4B_tl10); - get_map.emplace("cim:PssIEEE4B.tl11", &get_PssIEEE4B_tl11); - get_map.emplace("cim:PssIEEE4B.tl12", &get_PssIEEE4B_tl12); - get_map.emplace("cim:PssIEEE4B.tl2", &get_PssIEEE4B_tl2); - get_map.emplace("cim:PssIEEE4B.tl3", &get_PssIEEE4B_tl3); - get_map.emplace("cim:PssIEEE4B.tl4", &get_PssIEEE4B_tl4); - get_map.emplace("cim:PssIEEE4B.tl5", &get_PssIEEE4B_tl5); - get_map.emplace("cim:PssIEEE4B.tl6", &get_PssIEEE4B_tl6); - get_map.emplace("cim:PssIEEE4B.tl7", &get_PssIEEE4B_tl7); - get_map.emplace("cim:PssIEEE4B.tl8", &get_PssIEEE4B_tl8); - get_map.emplace("cim:PssIEEE4B.tl9", &get_PssIEEE4B_tl9); - get_map.emplace("cim:PssIEEE4B.vhmax", &get_PssIEEE4B_vhmax); - get_map.emplace("cim:PssIEEE4B.vhmin", &get_PssIEEE4B_vhmin); - get_map.emplace("cim:PssIEEE4B.vimax", &get_PssIEEE4B_vimax); - get_map.emplace("cim:PssIEEE4B.vimin", &get_PssIEEE4B_vimin); - get_map.emplace("cim:PssIEEE4B.vlmax", &get_PssIEEE4B_vlmax); - get_map.emplace("cim:PssIEEE4B.vlmin", &get_PssIEEE4B_vlmin); - get_map.emplace("cim:PssIEEE4B.vstmax", &get_PssIEEE4B_vstmax); - get_map.emplace("cim:PssIEEE4B.vstmin", &get_PssIEEE4B_vstmin); + get_map.emplace("PssIEEE4B.bwh1", &get_PssIEEE4B_bwh1); + get_map.emplace("PssIEEE4B.bwh2", &get_PssIEEE4B_bwh2); + get_map.emplace("PssIEEE4B.bwl1", &get_PssIEEE4B_bwl1); + get_map.emplace("PssIEEE4B.bwl2", &get_PssIEEE4B_bwl2); + get_map.emplace("PssIEEE4B.kh", &get_PssIEEE4B_kh); + get_map.emplace("PssIEEE4B.kh1", &get_PssIEEE4B_kh1); + get_map.emplace("PssIEEE4B.kh11", &get_PssIEEE4B_kh11); + get_map.emplace("PssIEEE4B.kh17", &get_PssIEEE4B_kh17); + get_map.emplace("PssIEEE4B.kh2", &get_PssIEEE4B_kh2); + get_map.emplace("PssIEEE4B.ki", &get_PssIEEE4B_ki); + get_map.emplace("PssIEEE4B.ki1", &get_PssIEEE4B_ki1); + get_map.emplace("PssIEEE4B.ki11", &get_PssIEEE4B_ki11); + get_map.emplace("PssIEEE4B.ki17", &get_PssIEEE4B_ki17); + get_map.emplace("PssIEEE4B.ki2", &get_PssIEEE4B_ki2); + get_map.emplace("PssIEEE4B.kl", &get_PssIEEE4B_kl); + get_map.emplace("PssIEEE4B.kl1", &get_PssIEEE4B_kl1); + get_map.emplace("PssIEEE4B.kl11", &get_PssIEEE4B_kl11); + get_map.emplace("PssIEEE4B.kl17", &get_PssIEEE4B_kl17); + get_map.emplace("PssIEEE4B.kl2", &get_PssIEEE4B_kl2); + get_map.emplace("PssIEEE4B.omeganh1", &get_PssIEEE4B_omeganh1); + get_map.emplace("PssIEEE4B.omeganh2", &get_PssIEEE4B_omeganh2); + get_map.emplace("PssIEEE4B.omeganl1", &get_PssIEEE4B_omeganl1); + get_map.emplace("PssIEEE4B.omeganl2", &get_PssIEEE4B_omeganl2); + get_map.emplace("PssIEEE4B.th1", &get_PssIEEE4B_th1); + get_map.emplace("PssIEEE4B.th10", &get_PssIEEE4B_th10); + get_map.emplace("PssIEEE4B.th11", &get_PssIEEE4B_th11); + get_map.emplace("PssIEEE4B.th12", &get_PssIEEE4B_th12); + get_map.emplace("PssIEEE4B.th2", &get_PssIEEE4B_th2); + get_map.emplace("PssIEEE4B.th3", &get_PssIEEE4B_th3); + get_map.emplace("PssIEEE4B.th4", &get_PssIEEE4B_th4); + get_map.emplace("PssIEEE4B.th5", &get_PssIEEE4B_th5); + get_map.emplace("PssIEEE4B.th6", &get_PssIEEE4B_th6); + get_map.emplace("PssIEEE4B.th7", &get_PssIEEE4B_th7); + get_map.emplace("PssIEEE4B.th8", &get_PssIEEE4B_th8); + get_map.emplace("PssIEEE4B.th9", &get_PssIEEE4B_th9); + get_map.emplace("PssIEEE4B.ti1", &get_PssIEEE4B_ti1); + get_map.emplace("PssIEEE4B.ti10", &get_PssIEEE4B_ti10); + get_map.emplace("PssIEEE4B.ti11", &get_PssIEEE4B_ti11); + get_map.emplace("PssIEEE4B.ti12", &get_PssIEEE4B_ti12); + get_map.emplace("PssIEEE4B.ti2", &get_PssIEEE4B_ti2); + get_map.emplace("PssIEEE4B.ti3", &get_PssIEEE4B_ti3); + get_map.emplace("PssIEEE4B.ti4", &get_PssIEEE4B_ti4); + get_map.emplace("PssIEEE4B.ti5", &get_PssIEEE4B_ti5); + get_map.emplace("PssIEEE4B.ti6", &get_PssIEEE4B_ti6); + get_map.emplace("PssIEEE4B.ti7", &get_PssIEEE4B_ti7); + get_map.emplace("PssIEEE4B.ti8", &get_PssIEEE4B_ti8); + get_map.emplace("PssIEEE4B.ti9", &get_PssIEEE4B_ti9); + get_map.emplace("PssIEEE4B.tl1", &get_PssIEEE4B_tl1); + get_map.emplace("PssIEEE4B.tl10", &get_PssIEEE4B_tl10); + get_map.emplace("PssIEEE4B.tl11", &get_PssIEEE4B_tl11); + get_map.emplace("PssIEEE4B.tl12", &get_PssIEEE4B_tl12); + get_map.emplace("PssIEEE4B.tl2", &get_PssIEEE4B_tl2); + get_map.emplace("PssIEEE4B.tl3", &get_PssIEEE4B_tl3); + get_map.emplace("PssIEEE4B.tl4", &get_PssIEEE4B_tl4); + get_map.emplace("PssIEEE4B.tl5", &get_PssIEEE4B_tl5); + get_map.emplace("PssIEEE4B.tl6", &get_PssIEEE4B_tl6); + get_map.emplace("PssIEEE4B.tl7", &get_PssIEEE4B_tl7); + get_map.emplace("PssIEEE4B.tl8", &get_PssIEEE4B_tl8); + get_map.emplace("PssIEEE4B.tl9", &get_PssIEEE4B_tl9); + get_map.emplace("PssIEEE4B.vhmax", &get_PssIEEE4B_vhmax); + get_map.emplace("PssIEEE4B.vhmin", &get_PssIEEE4B_vhmin); + get_map.emplace("PssIEEE4B.vimax", &get_PssIEEE4B_vimax); + get_map.emplace("PssIEEE4B.vimin", &get_PssIEEE4B_vimin); + get_map.emplace("PssIEEE4B.vlmax", &get_PssIEEE4B_vlmax); + get_map.emplace("PssIEEE4B.vlmin", &get_PssIEEE4B_vlmin); + get_map.emplace("PssIEEE4B.vstmax", &get_PssIEEE4B_vstmax); + get_map.emplace("PssIEEE4B.vstmin", &get_PssIEEE4B_vstmin); } void PssIEEE4B::addClassGetFnsToMap(std::map& get_map) const @@ -2216,11 +2248,25 @@ void PssIEEE4B::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssIEEE4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssIEEE4B::declare() { return BaseClassDefiner(PssIEEE4B::addConstructToMap, PssIEEE4B::addPrimitiveAssignFnsToMap, PssIEEE4B::addClassAssignFnsToMap, PssIEEE4B::debugName); } +std::map PssIEEE4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE4B_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssIEEE4B.hpp b/CGMES_2.4.15_16FEB2016/PssIEEE4B.hpp index f984ccfa7..e393aa806 100644 --- a/CGMES_2.4.15_16FEB2016/PssIEEE4B.hpp +++ b/CGMES_2.4.15_16FEB2016/PssIEEE4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -231,8 +232,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -240,7 +248,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE4B_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssPTIST1.cpp b/CGMES_2.4.15_16FEB2016/PssPTIST1.cpp index beea82b09..141b61775 100644 --- a/CGMES_2.4.15_16FEB2016/PssPTIST1.cpp +++ b/CGMES_2.4.15_16FEB2016/PssPTIST1.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssPTIST1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssPTIST1.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.dtf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.dtp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssPTIST1::PssPTIST1() {} PssPTIST1::~PssPTIST1() {} -static const std::list PossibleProfilesForClass = +const std::list& PssPTIST1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssPTIST1::getClassNamespaceUrl() const { - { "cim:PssPTIST1.dtc", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.dtf", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.dtp", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.k", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.m", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t1", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t2", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t3", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t4", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.tf", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.tp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssPTIST1::getPossibleProfilesForClass() const +const std::string& PssPTIST1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssPTIST1::getPossibleProfilesForAttributes() const +const std::list& PssPTIST1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssPTIST1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssPTIST1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssPTIST1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssPTIST1_dtc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssPTIST1::debugString() const void PssPTIST1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssPTIST1", &PssPTIST1_factory); + factory_map.emplace("PssPTIST1", &PssPTIST1_factory); } void PssPTIST1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssPTIST1.dtc", &assign_PssPTIST1_dtc); - assign_map.emplace("cim:PssPTIST1.dtf", &assign_PssPTIST1_dtf); - assign_map.emplace("cim:PssPTIST1.dtp", &assign_PssPTIST1_dtp); - assign_map.emplace("cim:PssPTIST1.k", &assign_PssPTIST1_k); - assign_map.emplace("cim:PssPTIST1.m", &assign_PssPTIST1_m); - assign_map.emplace("cim:PssPTIST1.t1", &assign_PssPTIST1_t1); - assign_map.emplace("cim:PssPTIST1.t2", &assign_PssPTIST1_t2); - assign_map.emplace("cim:PssPTIST1.t3", &assign_PssPTIST1_t3); - assign_map.emplace("cim:PssPTIST1.t4", &assign_PssPTIST1_t4); - assign_map.emplace("cim:PssPTIST1.tf", &assign_PssPTIST1_tf); - assign_map.emplace("cim:PssPTIST1.tp", &assign_PssPTIST1_tp); + assign_map.emplace("PssPTIST1.dtc", &assign_PssPTIST1_dtc); + assign_map.emplace("PssPTIST1.dtf", &assign_PssPTIST1_dtf); + assign_map.emplace("PssPTIST1.dtp", &assign_PssPTIST1_dtp); + assign_map.emplace("PssPTIST1.k", &assign_PssPTIST1_k); + assign_map.emplace("PssPTIST1.m", &assign_PssPTIST1_m); + assign_map.emplace("PssPTIST1.t1", &assign_PssPTIST1_t1); + assign_map.emplace("PssPTIST1.t2", &assign_PssPTIST1_t2); + assign_map.emplace("PssPTIST1.t3", &assign_PssPTIST1_t3); + assign_map.emplace("PssPTIST1.t4", &assign_PssPTIST1_t4); + assign_map.emplace("PssPTIST1.tf", &assign_PssPTIST1_tf); + assign_map.emplace("PssPTIST1.tp", &assign_PssPTIST1_tp); } void PssPTIST1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssPTIST1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssPTIST1.dtc", &get_PssPTIST1_dtc); - get_map.emplace("cim:PssPTIST1.dtf", &get_PssPTIST1_dtf); - get_map.emplace("cim:PssPTIST1.dtp", &get_PssPTIST1_dtp); - get_map.emplace("cim:PssPTIST1.k", &get_PssPTIST1_k); - get_map.emplace("cim:PssPTIST1.m", &get_PssPTIST1_m); - get_map.emplace("cim:PssPTIST1.t1", &get_PssPTIST1_t1); - get_map.emplace("cim:PssPTIST1.t2", &get_PssPTIST1_t2); - get_map.emplace("cim:PssPTIST1.t3", &get_PssPTIST1_t3); - get_map.emplace("cim:PssPTIST1.t4", &get_PssPTIST1_t4); - get_map.emplace("cim:PssPTIST1.tf", &get_PssPTIST1_tf); - get_map.emplace("cim:PssPTIST1.tp", &get_PssPTIST1_tp); + get_map.emplace("PssPTIST1.dtc", &get_PssPTIST1_dtc); + get_map.emplace("PssPTIST1.dtf", &get_PssPTIST1_dtf); + get_map.emplace("PssPTIST1.dtp", &get_PssPTIST1_dtp); + get_map.emplace("PssPTIST1.k", &get_PssPTIST1_k); + get_map.emplace("PssPTIST1.m", &get_PssPTIST1_m); + get_map.emplace("PssPTIST1.t1", &get_PssPTIST1_t1); + get_map.emplace("PssPTIST1.t2", &get_PssPTIST1_t2); + get_map.emplace("PssPTIST1.t3", &get_PssPTIST1_t3); + get_map.emplace("PssPTIST1.t4", &get_PssPTIST1_t4); + get_map.emplace("PssPTIST1.tf", &get_PssPTIST1_tf); + get_map.emplace("PssPTIST1.tp", &get_PssPTIST1_tp); } void PssPTIST1::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssPTIST1::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssPTIST1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssPTIST1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssPTIST1::declare() { return BaseClassDefiner(PssPTIST1::addConstructToMap, PssPTIST1::addPrimitiveAssignFnsToMap, PssPTIST1::addClassAssignFnsToMap, PssPTIST1::debugName); } +std::map PssPTIST1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssPTIST1_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssPTIST1.hpp b/CGMES_2.4.15_16FEB2016/PssPTIST1.hpp index b48716169..34308b1e6 100644 --- a/CGMES_2.4.15_16FEB2016/PssPTIST1.hpp +++ b/CGMES_2.4.15_16FEB2016/PssPTIST1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssPTIST1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssPTIST3.cpp b/CGMES_2.4.15_16FEB2016/PssPTIST3.cpp index 42a3072e3..025073330 100644 --- a/CGMES_2.4.15_16FEB2016/PssPTIST3.cpp +++ b/CGMES_2.4.15_16FEB2016/PssPTIST3.cpp @@ -11,65 +11,97 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssPTIST3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssPTIST3.a0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.al", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.athres", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.isw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.lthres", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.nav", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.ncl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.ncr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssPTIST3::PssPTIST3() {} PssPTIST3::~PssPTIST3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssPTIST3.a0", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.al", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.athres", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b0", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dl", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtc", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtf", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtp", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.isw", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.k", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.lthres", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.m", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.nav", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.ncl", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.ncr", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.pmin", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t6", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.tf", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.tp", { CGMESProfile::DY, } }, -}; - -std::list -PssPTIST3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssPTIST3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssPTIST3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssPTIST3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssPTIST3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssPTIST3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssPTIST3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssPTIST3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssPTIST3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssPTIST3_a0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1066,45 +1098,45 @@ const char* PssPTIST3::debugString() const void PssPTIST3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssPTIST3", &PssPTIST3_factory); + factory_map.emplace("PssPTIST3", &PssPTIST3_factory); } void PssPTIST3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssPTIST3.a0", &assign_PssPTIST3_a0); - assign_map.emplace("cim:PssPTIST3.a1", &assign_PssPTIST3_a1); - assign_map.emplace("cim:PssPTIST3.a2", &assign_PssPTIST3_a2); - assign_map.emplace("cim:PssPTIST3.a3", &assign_PssPTIST3_a3); - assign_map.emplace("cim:PssPTIST3.a4", &assign_PssPTIST3_a4); - assign_map.emplace("cim:PssPTIST3.a5", &assign_PssPTIST3_a5); - assign_map.emplace("cim:PssPTIST3.al", &assign_PssPTIST3_al); - assign_map.emplace("cim:PssPTIST3.athres", &assign_PssPTIST3_athres); - assign_map.emplace("cim:PssPTIST3.b0", &assign_PssPTIST3_b0); - assign_map.emplace("cim:PssPTIST3.b1", &assign_PssPTIST3_b1); - assign_map.emplace("cim:PssPTIST3.b2", &assign_PssPTIST3_b2); - assign_map.emplace("cim:PssPTIST3.b3", &assign_PssPTIST3_b3); - assign_map.emplace("cim:PssPTIST3.b4", &assign_PssPTIST3_b4); - assign_map.emplace("cim:PssPTIST3.b5", &assign_PssPTIST3_b5); - assign_map.emplace("cim:PssPTIST3.dl", &assign_PssPTIST3_dl); - assign_map.emplace("cim:PssPTIST3.dtc", &assign_PssPTIST3_dtc); - assign_map.emplace("cim:PssPTIST3.dtf", &assign_PssPTIST3_dtf); - assign_map.emplace("cim:PssPTIST3.dtp", &assign_PssPTIST3_dtp); - assign_map.emplace("cim:PssPTIST3.isw", &assign_PssPTIST3_isw); - assign_map.emplace("cim:PssPTIST3.k", &assign_PssPTIST3_k); - assign_map.emplace("cim:PssPTIST3.lthres", &assign_PssPTIST3_lthres); - assign_map.emplace("cim:PssPTIST3.m", &assign_PssPTIST3_m); - assign_map.emplace("cim:PssPTIST3.nav", &assign_PssPTIST3_nav); - assign_map.emplace("cim:PssPTIST3.ncl", &assign_PssPTIST3_ncl); - assign_map.emplace("cim:PssPTIST3.ncr", &assign_PssPTIST3_ncr); - assign_map.emplace("cim:PssPTIST3.pmin", &assign_PssPTIST3_pmin); - assign_map.emplace("cim:PssPTIST3.t1", &assign_PssPTIST3_t1); - assign_map.emplace("cim:PssPTIST3.t2", &assign_PssPTIST3_t2); - assign_map.emplace("cim:PssPTIST3.t3", &assign_PssPTIST3_t3); - assign_map.emplace("cim:PssPTIST3.t4", &assign_PssPTIST3_t4); - assign_map.emplace("cim:PssPTIST3.t5", &assign_PssPTIST3_t5); - assign_map.emplace("cim:PssPTIST3.t6", &assign_PssPTIST3_t6); - assign_map.emplace("cim:PssPTIST3.tf", &assign_PssPTIST3_tf); - assign_map.emplace("cim:PssPTIST3.tp", &assign_PssPTIST3_tp); + assign_map.emplace("PssPTIST3.a0", &assign_PssPTIST3_a0); + assign_map.emplace("PssPTIST3.a1", &assign_PssPTIST3_a1); + assign_map.emplace("PssPTIST3.a2", &assign_PssPTIST3_a2); + assign_map.emplace("PssPTIST3.a3", &assign_PssPTIST3_a3); + assign_map.emplace("PssPTIST3.a4", &assign_PssPTIST3_a4); + assign_map.emplace("PssPTIST3.a5", &assign_PssPTIST3_a5); + assign_map.emplace("PssPTIST3.al", &assign_PssPTIST3_al); + assign_map.emplace("PssPTIST3.athres", &assign_PssPTIST3_athres); + assign_map.emplace("PssPTIST3.b0", &assign_PssPTIST3_b0); + assign_map.emplace("PssPTIST3.b1", &assign_PssPTIST3_b1); + assign_map.emplace("PssPTIST3.b2", &assign_PssPTIST3_b2); + assign_map.emplace("PssPTIST3.b3", &assign_PssPTIST3_b3); + assign_map.emplace("PssPTIST3.b4", &assign_PssPTIST3_b4); + assign_map.emplace("PssPTIST3.b5", &assign_PssPTIST3_b5); + assign_map.emplace("PssPTIST3.dl", &assign_PssPTIST3_dl); + assign_map.emplace("PssPTIST3.dtc", &assign_PssPTIST3_dtc); + assign_map.emplace("PssPTIST3.dtf", &assign_PssPTIST3_dtf); + assign_map.emplace("PssPTIST3.dtp", &assign_PssPTIST3_dtp); + assign_map.emplace("PssPTIST3.isw", &assign_PssPTIST3_isw); + assign_map.emplace("PssPTIST3.k", &assign_PssPTIST3_k); + assign_map.emplace("PssPTIST3.lthres", &assign_PssPTIST3_lthres); + assign_map.emplace("PssPTIST3.m", &assign_PssPTIST3_m); + assign_map.emplace("PssPTIST3.nav", &assign_PssPTIST3_nav); + assign_map.emplace("PssPTIST3.ncl", &assign_PssPTIST3_ncl); + assign_map.emplace("PssPTIST3.ncr", &assign_PssPTIST3_ncr); + assign_map.emplace("PssPTIST3.pmin", &assign_PssPTIST3_pmin); + assign_map.emplace("PssPTIST3.t1", &assign_PssPTIST3_t1); + assign_map.emplace("PssPTIST3.t2", &assign_PssPTIST3_t2); + assign_map.emplace("PssPTIST3.t3", &assign_PssPTIST3_t3); + assign_map.emplace("PssPTIST3.t4", &assign_PssPTIST3_t4); + assign_map.emplace("PssPTIST3.t5", &assign_PssPTIST3_t5); + assign_map.emplace("PssPTIST3.t6", &assign_PssPTIST3_t6); + assign_map.emplace("PssPTIST3.tf", &assign_PssPTIST3_tf); + assign_map.emplace("PssPTIST3.tp", &assign_PssPTIST3_tp); } void PssPTIST3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1114,40 +1146,40 @@ void PssPTIST3::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssPTIST3.a0", &get_PssPTIST3_a0); - get_map.emplace("cim:PssPTIST3.a1", &get_PssPTIST3_a1); - get_map.emplace("cim:PssPTIST3.a2", &get_PssPTIST3_a2); - get_map.emplace("cim:PssPTIST3.a3", &get_PssPTIST3_a3); - get_map.emplace("cim:PssPTIST3.a4", &get_PssPTIST3_a4); - get_map.emplace("cim:PssPTIST3.a5", &get_PssPTIST3_a5); - get_map.emplace("cim:PssPTIST3.al", &get_PssPTIST3_al); - get_map.emplace("cim:PssPTIST3.athres", &get_PssPTIST3_athres); - get_map.emplace("cim:PssPTIST3.b0", &get_PssPTIST3_b0); - get_map.emplace("cim:PssPTIST3.b1", &get_PssPTIST3_b1); - get_map.emplace("cim:PssPTIST3.b2", &get_PssPTIST3_b2); - get_map.emplace("cim:PssPTIST3.b3", &get_PssPTIST3_b3); - get_map.emplace("cim:PssPTIST3.b4", &get_PssPTIST3_b4); - get_map.emplace("cim:PssPTIST3.b5", &get_PssPTIST3_b5); - get_map.emplace("cim:PssPTIST3.dl", &get_PssPTIST3_dl); - get_map.emplace("cim:PssPTIST3.dtc", &get_PssPTIST3_dtc); - get_map.emplace("cim:PssPTIST3.dtf", &get_PssPTIST3_dtf); - get_map.emplace("cim:PssPTIST3.dtp", &get_PssPTIST3_dtp); - get_map.emplace("cim:PssPTIST3.isw", &get_PssPTIST3_isw); - get_map.emplace("cim:PssPTIST3.k", &get_PssPTIST3_k); - get_map.emplace("cim:PssPTIST3.lthres", &get_PssPTIST3_lthres); - get_map.emplace("cim:PssPTIST3.m", &get_PssPTIST3_m); - get_map.emplace("cim:PssPTIST3.nav", &get_PssPTIST3_nav); - get_map.emplace("cim:PssPTIST3.ncl", &get_PssPTIST3_ncl); - get_map.emplace("cim:PssPTIST3.ncr", &get_PssPTIST3_ncr); - get_map.emplace("cim:PssPTIST3.pmin", &get_PssPTIST3_pmin); - get_map.emplace("cim:PssPTIST3.t1", &get_PssPTIST3_t1); - get_map.emplace("cim:PssPTIST3.t2", &get_PssPTIST3_t2); - get_map.emplace("cim:PssPTIST3.t3", &get_PssPTIST3_t3); - get_map.emplace("cim:PssPTIST3.t4", &get_PssPTIST3_t4); - get_map.emplace("cim:PssPTIST3.t5", &get_PssPTIST3_t5); - get_map.emplace("cim:PssPTIST3.t6", &get_PssPTIST3_t6); - get_map.emplace("cim:PssPTIST3.tf", &get_PssPTIST3_tf); - get_map.emplace("cim:PssPTIST3.tp", &get_PssPTIST3_tp); + get_map.emplace("PssPTIST3.a0", &get_PssPTIST3_a0); + get_map.emplace("PssPTIST3.a1", &get_PssPTIST3_a1); + get_map.emplace("PssPTIST3.a2", &get_PssPTIST3_a2); + get_map.emplace("PssPTIST3.a3", &get_PssPTIST3_a3); + get_map.emplace("PssPTIST3.a4", &get_PssPTIST3_a4); + get_map.emplace("PssPTIST3.a5", &get_PssPTIST3_a5); + get_map.emplace("PssPTIST3.al", &get_PssPTIST3_al); + get_map.emplace("PssPTIST3.athres", &get_PssPTIST3_athres); + get_map.emplace("PssPTIST3.b0", &get_PssPTIST3_b0); + get_map.emplace("PssPTIST3.b1", &get_PssPTIST3_b1); + get_map.emplace("PssPTIST3.b2", &get_PssPTIST3_b2); + get_map.emplace("PssPTIST3.b3", &get_PssPTIST3_b3); + get_map.emplace("PssPTIST3.b4", &get_PssPTIST3_b4); + get_map.emplace("PssPTIST3.b5", &get_PssPTIST3_b5); + get_map.emplace("PssPTIST3.dl", &get_PssPTIST3_dl); + get_map.emplace("PssPTIST3.dtc", &get_PssPTIST3_dtc); + get_map.emplace("PssPTIST3.dtf", &get_PssPTIST3_dtf); + get_map.emplace("PssPTIST3.dtp", &get_PssPTIST3_dtp); + get_map.emplace("PssPTIST3.isw", &get_PssPTIST3_isw); + get_map.emplace("PssPTIST3.k", &get_PssPTIST3_k); + get_map.emplace("PssPTIST3.lthres", &get_PssPTIST3_lthres); + get_map.emplace("PssPTIST3.m", &get_PssPTIST3_m); + get_map.emplace("PssPTIST3.nav", &get_PssPTIST3_nav); + get_map.emplace("PssPTIST3.ncl", &get_PssPTIST3_ncl); + get_map.emplace("PssPTIST3.ncr", &get_PssPTIST3_ncr); + get_map.emplace("PssPTIST3.pmin", &get_PssPTIST3_pmin); + get_map.emplace("PssPTIST3.t1", &get_PssPTIST3_t1); + get_map.emplace("PssPTIST3.t2", &get_PssPTIST3_t2); + get_map.emplace("PssPTIST3.t3", &get_PssPTIST3_t3); + get_map.emplace("PssPTIST3.t4", &get_PssPTIST3_t4); + get_map.emplace("PssPTIST3.t5", &get_PssPTIST3_t5); + get_map.emplace("PssPTIST3.t6", &get_PssPTIST3_t6); + get_map.emplace("PssPTIST3.tf", &get_PssPTIST3_tf); + get_map.emplace("PssPTIST3.tp", &get_PssPTIST3_tp); } void PssPTIST3::addClassGetFnsToMap(std::map& get_map) const @@ -1160,11 +1192,25 @@ void PssPTIST3::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssPTIST3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssPTIST3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssPTIST3::declare() { return BaseClassDefiner(PssPTIST3::addConstructToMap, PssPTIST3::addPrimitiveAssignFnsToMap, PssPTIST3::addClassAssignFnsToMap, PssPTIST3::debugName); } +std::map PssPTIST3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssPTIST3_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssPTIST3.hpp b/CGMES_2.4.15_16FEB2016/PssPTIST3.hpp index 84ac9463b..7e2500c65 100644 --- a/CGMES_2.4.15_16FEB2016/PssPTIST3.hpp +++ b/CGMES_2.4.15_16FEB2016/PssPTIST3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -133,8 +134,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -142,7 +150,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssPTIST3_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssSB4.cpp b/CGMES_2.4.15_16FEB2016/PssSB4.cpp index ff54c429f..d4b073f9e 100644 --- a/CGMES_2.4.15_16FEB2016/PssSB4.cpp +++ b/CGMES_2.4.15_16FEB2016/PssSB4.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSB4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSB4.kx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tx1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tx2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSB4::PssSB4() {} PssSB4::~PssSB4() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSB4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSB4::getClassNamespaceUrl() const { - { "cim:PssSB4.kx", { CGMESProfile::DY, } }, - { "cim:PssSB4.ta", { CGMESProfile::DY, } }, - { "cim:PssSB4.tb", { CGMESProfile::DY, } }, - { "cim:PssSB4.tc", { CGMESProfile::DY, } }, - { "cim:PssSB4.td", { CGMESProfile::DY, } }, - { "cim:PssSB4.te", { CGMESProfile::DY, } }, - { "cim:PssSB4.tt", { CGMESProfile::DY, } }, - { "cim:PssSB4.tx1", { CGMESProfile::DY, } }, - { "cim:PssSB4.tx2", { CGMESProfile::DY, } }, - { "cim:PssSB4.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSB4.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSB4::getPossibleProfilesForClass() const +const std::string& PssSB4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSB4::getPossibleProfilesForAttributes() const +const std::list& PssSB4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSB4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSB4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSB4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSB4_kx(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssSB4::debugString() const void PssSB4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSB4", &PssSB4_factory); + factory_map.emplace("PssSB4", &PssSB4_factory); } void PssSB4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSB4.kx", &assign_PssSB4_kx); - assign_map.emplace("cim:PssSB4.ta", &assign_PssSB4_ta); - assign_map.emplace("cim:PssSB4.tb", &assign_PssSB4_tb); - assign_map.emplace("cim:PssSB4.tc", &assign_PssSB4_tc); - assign_map.emplace("cim:PssSB4.td", &assign_PssSB4_td); - assign_map.emplace("cim:PssSB4.te", &assign_PssSB4_te); - assign_map.emplace("cim:PssSB4.tt", &assign_PssSB4_tt); - assign_map.emplace("cim:PssSB4.tx1", &assign_PssSB4_tx1); - assign_map.emplace("cim:PssSB4.tx2", &assign_PssSB4_tx2); - assign_map.emplace("cim:PssSB4.vsmax", &assign_PssSB4_vsmax); - assign_map.emplace("cim:PssSB4.vsmin", &assign_PssSB4_vsmin); + assign_map.emplace("PssSB4.kx", &assign_PssSB4_kx); + assign_map.emplace("PssSB4.ta", &assign_PssSB4_ta); + assign_map.emplace("PssSB4.tb", &assign_PssSB4_tb); + assign_map.emplace("PssSB4.tc", &assign_PssSB4_tc); + assign_map.emplace("PssSB4.td", &assign_PssSB4_td); + assign_map.emplace("PssSB4.te", &assign_PssSB4_te); + assign_map.emplace("PssSB4.tt", &assign_PssSB4_tt); + assign_map.emplace("PssSB4.tx1", &assign_PssSB4_tx1); + assign_map.emplace("PssSB4.tx2", &assign_PssSB4_tx2); + assign_map.emplace("PssSB4.vsmax", &assign_PssSB4_vsmax); + assign_map.emplace("PssSB4.vsmin", &assign_PssSB4_vsmin); } void PssSB4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssSB4::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSB4.kx", &get_PssSB4_kx); - get_map.emplace("cim:PssSB4.ta", &get_PssSB4_ta); - get_map.emplace("cim:PssSB4.tb", &get_PssSB4_tb); - get_map.emplace("cim:PssSB4.tc", &get_PssSB4_tc); - get_map.emplace("cim:PssSB4.td", &get_PssSB4_td); - get_map.emplace("cim:PssSB4.te", &get_PssSB4_te); - get_map.emplace("cim:PssSB4.tt", &get_PssSB4_tt); - get_map.emplace("cim:PssSB4.tx1", &get_PssSB4_tx1); - get_map.emplace("cim:PssSB4.tx2", &get_PssSB4_tx2); - get_map.emplace("cim:PssSB4.vsmax", &get_PssSB4_vsmax); - get_map.emplace("cim:PssSB4.vsmin", &get_PssSB4_vsmin); + get_map.emplace("PssSB4.kx", &get_PssSB4_kx); + get_map.emplace("PssSB4.ta", &get_PssSB4_ta); + get_map.emplace("PssSB4.tb", &get_PssSB4_tb); + get_map.emplace("PssSB4.tc", &get_PssSB4_tc); + get_map.emplace("PssSB4.td", &get_PssSB4_td); + get_map.emplace("PssSB4.te", &get_PssSB4_te); + get_map.emplace("PssSB4.tt", &get_PssSB4_tt); + get_map.emplace("PssSB4.tx1", &get_PssSB4_tx1); + get_map.emplace("PssSB4.tx2", &get_PssSB4_tx2); + get_map.emplace("PssSB4.vsmax", &get_PssSB4_vsmax); + get_map.emplace("PssSB4.vsmin", &get_PssSB4_vsmin); } void PssSB4::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssSB4::addEnumGetFnsToMap(std::map& get_map) co PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSB4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSB4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSB4::declare() { return BaseClassDefiner(PssSB4::addConstructToMap, PssSB4::addPrimitiveAssignFnsToMap, PssSB4::addClassAssignFnsToMap, PssSB4::debugName); } +std::map PssSB4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSB4_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssSB4.hpp b/CGMES_2.4.15_16FEB2016/PssSB4.hpp index 4fb9cc24a..7a000fd42 100644 --- a/CGMES_2.4.15_16FEB2016/PssSB4.hpp +++ b/CGMES_2.4.15_16FEB2016/PssSB4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSB4_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssSH.cpp b/CGMES_2.4.15_16FEB2016/PssSH.cpp index 5e06369a1..1bda16622 100644 --- a/CGMES_2.4.15_16FEB2016/PssSH.cpp +++ b/CGMES_2.4.15_16FEB2016/PssSH.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSH(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSH.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSH::PssSH() {} PssSH::~PssSH() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSH::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSH::getClassNamespaceUrl() const { - { "cim:PssSH.k", { CGMESProfile::DY, } }, - { "cim:PssSH.k0", { CGMESProfile::DY, } }, - { "cim:PssSH.k1", { CGMESProfile::DY, } }, - { "cim:PssSH.k2", { CGMESProfile::DY, } }, - { "cim:PssSH.k3", { CGMESProfile::DY, } }, - { "cim:PssSH.k4", { CGMESProfile::DY, } }, - { "cim:PssSH.t1", { CGMESProfile::DY, } }, - { "cim:PssSH.t2", { CGMESProfile::DY, } }, - { "cim:PssSH.t3", { CGMESProfile::DY, } }, - { "cim:PssSH.t4", { CGMESProfile::DY, } }, - { "cim:PssSH.td", { CGMESProfile::DY, } }, - { "cim:PssSH.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSH.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSH::getPossibleProfilesForClass() const +const std::string& PssSH::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSH::getPossibleProfilesForAttributes() const +const std::list& PssSH::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSH::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSH::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSH::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSH_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* PssSH::debugString() const void PssSH::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSH", &PssSH_factory); + factory_map.emplace("PssSH", &PssSH_factory); } void PssSH::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSH.k", &assign_PssSH_k); - assign_map.emplace("cim:PssSH.k0", &assign_PssSH_k0); - assign_map.emplace("cim:PssSH.k1", &assign_PssSH_k1); - assign_map.emplace("cim:PssSH.k2", &assign_PssSH_k2); - assign_map.emplace("cim:PssSH.k3", &assign_PssSH_k3); - assign_map.emplace("cim:PssSH.k4", &assign_PssSH_k4); - assign_map.emplace("cim:PssSH.t1", &assign_PssSH_t1); - assign_map.emplace("cim:PssSH.t2", &assign_PssSH_t2); - assign_map.emplace("cim:PssSH.t3", &assign_PssSH_t3); - assign_map.emplace("cim:PssSH.t4", &assign_PssSH_t4); - assign_map.emplace("cim:PssSH.td", &assign_PssSH_td); - assign_map.emplace("cim:PssSH.vsmax", &assign_PssSH_vsmax); - assign_map.emplace("cim:PssSH.vsmin", &assign_PssSH_vsmin); + assign_map.emplace("PssSH.k", &assign_PssSH_k); + assign_map.emplace("PssSH.k0", &assign_PssSH_k0); + assign_map.emplace("PssSH.k1", &assign_PssSH_k1); + assign_map.emplace("PssSH.k2", &assign_PssSH_k2); + assign_map.emplace("PssSH.k3", &assign_PssSH_k3); + assign_map.emplace("PssSH.k4", &assign_PssSH_k4); + assign_map.emplace("PssSH.t1", &assign_PssSH_t1); + assign_map.emplace("PssSH.t2", &assign_PssSH_t2); + assign_map.emplace("PssSH.t3", &assign_PssSH_t3); + assign_map.emplace("PssSH.t4", &assign_PssSH_t4); + assign_map.emplace("PssSH.td", &assign_PssSH_td); + assign_map.emplace("PssSH.vsmax", &assign_PssSH_vsmax); + assign_map.emplace("PssSH.vsmin", &assign_PssSH_vsmin); } void PssSH::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void PssSH::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSH.k", &get_PssSH_k); - get_map.emplace("cim:PssSH.k0", &get_PssSH_k0); - get_map.emplace("cim:PssSH.k1", &get_PssSH_k1); - get_map.emplace("cim:PssSH.k2", &get_PssSH_k2); - get_map.emplace("cim:PssSH.k3", &get_PssSH_k3); - get_map.emplace("cim:PssSH.k4", &get_PssSH_k4); - get_map.emplace("cim:PssSH.t1", &get_PssSH_t1); - get_map.emplace("cim:PssSH.t2", &get_PssSH_t2); - get_map.emplace("cim:PssSH.t3", &get_PssSH_t3); - get_map.emplace("cim:PssSH.t4", &get_PssSH_t4); - get_map.emplace("cim:PssSH.td", &get_PssSH_td); - get_map.emplace("cim:PssSH.vsmax", &get_PssSH_vsmax); - get_map.emplace("cim:PssSH.vsmin", &get_PssSH_vsmin); + get_map.emplace("PssSH.k", &get_PssSH_k); + get_map.emplace("PssSH.k0", &get_PssSH_k0); + get_map.emplace("PssSH.k1", &get_PssSH_k1); + get_map.emplace("PssSH.k2", &get_PssSH_k2); + get_map.emplace("PssSH.k3", &get_PssSH_k3); + get_map.emplace("PssSH.k4", &get_PssSH_k4); + get_map.emplace("PssSH.t1", &get_PssSH_t1); + get_map.emplace("PssSH.t2", &get_PssSH_t2); + get_map.emplace("PssSH.t3", &get_PssSH_t3); + get_map.emplace("PssSH.t4", &get_PssSH_t4); + get_map.emplace("PssSH.td", &get_PssSH_td); + get_map.emplace("PssSH.vsmax", &get_PssSH_vsmax); + get_map.emplace("PssSH.vsmin", &get_PssSH_vsmin); } void PssSH::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void PssSH::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSH::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSH" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSH::declare() { return BaseClassDefiner(PssSH::addConstructToMap, PssSH::addPrimitiveAssignFnsToMap, PssSH::addClassAssignFnsToMap, PssSH::debugName); } +std::map PssSH::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSH_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssSH.hpp b/CGMES_2.4.15_16FEB2016/PssSH.hpp index f93e0ee7b..38ce015a2 100644 --- a/CGMES_2.4.15_16FEB2016/PssSH.hpp +++ b/CGMES_2.4.15_16FEB2016/PssSH.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -68,8 +69,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -77,7 +85,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSH_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssSK.cpp b/CGMES_2.4.15_16FEB2016/PssSK.cpp index 1c23f5dbd..91d14434d 100644 --- a/CGMES_2.4.15_16FEB2016/PssSK.cpp +++ b/CGMES_2.4.15_16FEB2016/PssSK.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSK(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSK.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSK::PssSK() {} PssSK::~PssSK() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSK::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSK::getClassNamespaceUrl() const { - { "cim:PssSK.k1", { CGMESProfile::DY, } }, - { "cim:PssSK.k2", { CGMESProfile::DY, } }, - { "cim:PssSK.k3", { CGMESProfile::DY, } }, - { "cim:PssSK.t1", { CGMESProfile::DY, } }, - { "cim:PssSK.t2", { CGMESProfile::DY, } }, - { "cim:PssSK.t3", { CGMESProfile::DY, } }, - { "cim:PssSK.t4", { CGMESProfile::DY, } }, - { "cim:PssSK.t5", { CGMESProfile::DY, } }, - { "cim:PssSK.t6", { CGMESProfile::DY, } }, - { "cim:PssSK.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSK.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSK::getPossibleProfilesForClass() const +const std::string& PssSK::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSK::getPossibleProfilesForAttributes() const +const std::list& PssSK::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSK::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSK::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSK::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSK_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssSK::debugString() const void PssSK::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSK", &PssSK_factory); + factory_map.emplace("PssSK", &PssSK_factory); } void PssSK::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSK.k1", &assign_PssSK_k1); - assign_map.emplace("cim:PssSK.k2", &assign_PssSK_k2); - assign_map.emplace("cim:PssSK.k3", &assign_PssSK_k3); - assign_map.emplace("cim:PssSK.t1", &assign_PssSK_t1); - assign_map.emplace("cim:PssSK.t2", &assign_PssSK_t2); - assign_map.emplace("cim:PssSK.t3", &assign_PssSK_t3); - assign_map.emplace("cim:PssSK.t4", &assign_PssSK_t4); - assign_map.emplace("cim:PssSK.t5", &assign_PssSK_t5); - assign_map.emplace("cim:PssSK.t6", &assign_PssSK_t6); - assign_map.emplace("cim:PssSK.vsmax", &assign_PssSK_vsmax); - assign_map.emplace("cim:PssSK.vsmin", &assign_PssSK_vsmin); + assign_map.emplace("PssSK.k1", &assign_PssSK_k1); + assign_map.emplace("PssSK.k2", &assign_PssSK_k2); + assign_map.emplace("PssSK.k3", &assign_PssSK_k3); + assign_map.emplace("PssSK.t1", &assign_PssSK_t1); + assign_map.emplace("PssSK.t2", &assign_PssSK_t2); + assign_map.emplace("PssSK.t3", &assign_PssSK_t3); + assign_map.emplace("PssSK.t4", &assign_PssSK_t4); + assign_map.emplace("PssSK.t5", &assign_PssSK_t5); + assign_map.emplace("PssSK.t6", &assign_PssSK_t6); + assign_map.emplace("PssSK.vsmax", &assign_PssSK_vsmax); + assign_map.emplace("PssSK.vsmin", &assign_PssSK_vsmin); } void PssSK::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssSK::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSK.k1", &get_PssSK_k1); - get_map.emplace("cim:PssSK.k2", &get_PssSK_k2); - get_map.emplace("cim:PssSK.k3", &get_PssSK_k3); - get_map.emplace("cim:PssSK.t1", &get_PssSK_t1); - get_map.emplace("cim:PssSK.t2", &get_PssSK_t2); - get_map.emplace("cim:PssSK.t3", &get_PssSK_t3); - get_map.emplace("cim:PssSK.t4", &get_PssSK_t4); - get_map.emplace("cim:PssSK.t5", &get_PssSK_t5); - get_map.emplace("cim:PssSK.t6", &get_PssSK_t6); - get_map.emplace("cim:PssSK.vsmax", &get_PssSK_vsmax); - get_map.emplace("cim:PssSK.vsmin", &get_PssSK_vsmin); + get_map.emplace("PssSK.k1", &get_PssSK_k1); + get_map.emplace("PssSK.k2", &get_PssSK_k2); + get_map.emplace("PssSK.k3", &get_PssSK_k3); + get_map.emplace("PssSK.t1", &get_PssSK_t1); + get_map.emplace("PssSK.t2", &get_PssSK_t2); + get_map.emplace("PssSK.t3", &get_PssSK_t3); + get_map.emplace("PssSK.t4", &get_PssSK_t4); + get_map.emplace("PssSK.t5", &get_PssSK_t5); + get_map.emplace("PssSK.t6", &get_PssSK_t6); + get_map.emplace("PssSK.vsmax", &get_PssSK_vsmax); + get_map.emplace("PssSK.vsmin", &get_PssSK_vsmin); } void PssSK::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssSK::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSK::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSK" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSK::declare() { return BaseClassDefiner(PssSK::addConstructToMap, PssSK::addPrimitiveAssignFnsToMap, PssSK::addClassAssignFnsToMap, PssSK::debugName); } +std::map PssSK::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSK_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssSK.hpp b/CGMES_2.4.15_16FEB2016/PssSK.hpp index 1af0641d1..0b9b9689d 100644 --- a/CGMES_2.4.15_16FEB2016/PssSK.hpp +++ b/CGMES_2.4.15_16FEB2016/PssSK.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSK_factory(); diff --git a/CGMES_2.4.15_16FEB2016/PssWECC.cpp b/CGMES_2.4.15_16FEB2016/PssWECC.cpp index e3044b133..4ef4d6e65 100644 --- a/CGMES_2.4.15_16FEB2016/PssWECC.cpp +++ b/CGMES_2.4.15_16FEB2016/PssWECC.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssWECC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssWECC.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssWECC::PssWECC() {} PssWECC::~PssWECC() {} -static const std::list PossibleProfilesForClass = +const std::list& PssWECC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssWECC::getClassNamespaceUrl() const { - { "cim:PssWECC.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssWECC.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssWECC.k1", { CGMESProfile::DY, } }, - { "cim:PssWECC.k2", { CGMESProfile::DY, } }, - { "cim:PssWECC.t1", { CGMESProfile::DY, } }, - { "cim:PssWECC.t10", { CGMESProfile::DY, } }, - { "cim:PssWECC.t2", { CGMESProfile::DY, } }, - { "cim:PssWECC.t3", { CGMESProfile::DY, } }, - { "cim:PssWECC.t4", { CGMESProfile::DY, } }, - { "cim:PssWECC.t5", { CGMESProfile::DY, } }, - { "cim:PssWECC.t6", { CGMESProfile::DY, } }, - { "cim:PssWECC.t7", { CGMESProfile::DY, } }, - { "cim:PssWECC.t8", { CGMESProfile::DY, } }, - { "cim:PssWECC.t9", { CGMESProfile::DY, } }, - { "cim:PssWECC.vcl", { CGMESProfile::DY, } }, - { "cim:PssWECC.vcu", { CGMESProfile::DY, } }, - { "cim:PssWECC.vsmax", { CGMESProfile::DY, } }, - { "cim:PssWECC.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssWECC::getPossibleProfilesForClass() const +const std::string& PssWECC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssWECC::getPossibleProfilesForAttributes() const +const std::list& PssWECC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssWECC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssWECC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssWECC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssWECC_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* PssWECC::debugString() const void PssWECC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssWECC", &PssWECC_factory); + factory_map.emplace("PssWECC", &PssWECC_factory); } void PssWECC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssWECC.inputSignal1Type", &assign_PssWECC_inputSignal1Type); - assign_map.emplace("cim:PssWECC.inputSignal2Type", &assign_PssWECC_inputSignal2Type); - assign_map.emplace("cim:PssWECC.k1", &assign_PssWECC_k1); - assign_map.emplace("cim:PssWECC.k2", &assign_PssWECC_k2); - assign_map.emplace("cim:PssWECC.t1", &assign_PssWECC_t1); - assign_map.emplace("cim:PssWECC.t10", &assign_PssWECC_t10); - assign_map.emplace("cim:PssWECC.t2", &assign_PssWECC_t2); - assign_map.emplace("cim:PssWECC.t3", &assign_PssWECC_t3); - assign_map.emplace("cim:PssWECC.t4", &assign_PssWECC_t4); - assign_map.emplace("cim:PssWECC.t5", &assign_PssWECC_t5); - assign_map.emplace("cim:PssWECC.t6", &assign_PssWECC_t6); - assign_map.emplace("cim:PssWECC.t7", &assign_PssWECC_t7); - assign_map.emplace("cim:PssWECC.t8", &assign_PssWECC_t8); - assign_map.emplace("cim:PssWECC.t9", &assign_PssWECC_t9); - assign_map.emplace("cim:PssWECC.vcl", &assign_PssWECC_vcl); - assign_map.emplace("cim:PssWECC.vcu", &assign_PssWECC_vcu); - assign_map.emplace("cim:PssWECC.vsmax", &assign_PssWECC_vsmax); - assign_map.emplace("cim:PssWECC.vsmin", &assign_PssWECC_vsmin); + assign_map.emplace("PssWECC.inputSignal1Type", &assign_PssWECC_inputSignal1Type); + assign_map.emplace("PssWECC.inputSignal2Type", &assign_PssWECC_inputSignal2Type); + assign_map.emplace("PssWECC.k1", &assign_PssWECC_k1); + assign_map.emplace("PssWECC.k2", &assign_PssWECC_k2); + assign_map.emplace("PssWECC.t1", &assign_PssWECC_t1); + assign_map.emplace("PssWECC.t10", &assign_PssWECC_t10); + assign_map.emplace("PssWECC.t2", &assign_PssWECC_t2); + assign_map.emplace("PssWECC.t3", &assign_PssWECC_t3); + assign_map.emplace("PssWECC.t4", &assign_PssWECC_t4); + assign_map.emplace("PssWECC.t5", &assign_PssWECC_t5); + assign_map.emplace("PssWECC.t6", &assign_PssWECC_t6); + assign_map.emplace("PssWECC.t7", &assign_PssWECC_t7); + assign_map.emplace("PssWECC.t8", &assign_PssWECC_t8); + assign_map.emplace("PssWECC.t9", &assign_PssWECC_t9); + assign_map.emplace("PssWECC.vcl", &assign_PssWECC_vcl); + assign_map.emplace("PssWECC.vcu", &assign_PssWECC_vcu); + assign_map.emplace("PssWECC.vsmax", &assign_PssWECC_vsmax); + assign_map.emplace("PssWECC.vsmin", &assign_PssWECC_vsmin); } void PssWECC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,22 +650,22 @@ void PssWECC::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssWECC.k1", &get_PssWECC_k1); - get_map.emplace("cim:PssWECC.k2", &get_PssWECC_k2); - get_map.emplace("cim:PssWECC.t1", &get_PssWECC_t1); - get_map.emplace("cim:PssWECC.t10", &get_PssWECC_t10); - get_map.emplace("cim:PssWECC.t2", &get_PssWECC_t2); - get_map.emplace("cim:PssWECC.t3", &get_PssWECC_t3); - get_map.emplace("cim:PssWECC.t4", &get_PssWECC_t4); - get_map.emplace("cim:PssWECC.t5", &get_PssWECC_t5); - get_map.emplace("cim:PssWECC.t6", &get_PssWECC_t6); - get_map.emplace("cim:PssWECC.t7", &get_PssWECC_t7); - get_map.emplace("cim:PssWECC.t8", &get_PssWECC_t8); - get_map.emplace("cim:PssWECC.t9", &get_PssWECC_t9); - get_map.emplace("cim:PssWECC.vcl", &get_PssWECC_vcl); - get_map.emplace("cim:PssWECC.vcu", &get_PssWECC_vcu); - get_map.emplace("cim:PssWECC.vsmax", &get_PssWECC_vsmax); - get_map.emplace("cim:PssWECC.vsmin", &get_PssWECC_vsmin); + get_map.emplace("PssWECC.k1", &get_PssWECC_k1); + get_map.emplace("PssWECC.k2", &get_PssWECC_k2); + get_map.emplace("PssWECC.t1", &get_PssWECC_t1); + get_map.emplace("PssWECC.t10", &get_PssWECC_t10); + get_map.emplace("PssWECC.t2", &get_PssWECC_t2); + get_map.emplace("PssWECC.t3", &get_PssWECC_t3); + get_map.emplace("PssWECC.t4", &get_PssWECC_t4); + get_map.emplace("PssWECC.t5", &get_PssWECC_t5); + get_map.emplace("PssWECC.t6", &get_PssWECC_t6); + get_map.emplace("PssWECC.t7", &get_PssWECC_t7); + get_map.emplace("PssWECC.t8", &get_PssWECC_t8); + get_map.emplace("PssWECC.t9", &get_PssWECC_t9); + get_map.emplace("PssWECC.vcl", &get_PssWECC_vcl); + get_map.emplace("PssWECC.vcu", &get_PssWECC_vcu); + get_map.emplace("PssWECC.vsmax", &get_PssWECC_vsmax); + get_map.emplace("PssWECC.vsmin", &get_PssWECC_vsmin); } void PssWECC::addClassGetFnsToMap(std::map& get_map) const @@ -644,8 +676,14 @@ void PssWECC::addClassGetFnsToMap(std::map& get void PssWECC::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssWECC.inputSignal1Type", &get_PssWECC_inputSignal1Type); - get_map.emplace("cim:PssWECC.inputSignal2Type", &get_PssWECC_inputSignal2Type); + get_map.emplace("PssWECC.inputSignal1Type", &get_PssWECC_inputSignal1Type); + get_map.emplace("PssWECC.inputSignal2Type", &get_PssWECC_inputSignal2Type); +} + +bool PssWECC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssWECC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssWECC::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner PssWECC::declare() return BaseClassDefiner(PssWECC::addConstructToMap, PssWECC::addPrimitiveAssignFnsToMap, PssWECC::addClassAssignFnsToMap, PssWECC::debugName); } +std::map PssWECC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssWECC_factory() diff --git a/CGMES_2.4.15_16FEB2016/PssWECC.hpp b/CGMES_2.4.15_16FEB2016/PssWECC.hpp index a5bb2c5de..1d6a8455e 100644 --- a/CGMES_2.4.15_16FEB2016/PssWECC.hpp +++ b/CGMES_2.4.15_16FEB2016/PssWECC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssWECC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Quality61850.cpp b/CGMES_2.4.15_16FEB2016/Quality61850.cpp index 99169f619..1300c82c0 100644 --- a/CGMES_2.4.15_16FEB2016/Quality61850.cpp +++ b/CGMES_2.4.15_16FEB2016/Quality61850.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Quality61850(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Quality61850.badReference", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.estimatorReplaced", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.failure", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.oldData", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.operatorBlocked", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.oscillatory", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.outOfRange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.overFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.source", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.suspect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.test", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.validity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Quality61850::Quality61850() {} Quality61850::~Quality61850() {} -static const std::list PossibleProfilesForClass = +const std::list& Quality61850::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Quality61850::getClassNamespaceUrl() const { - { "cim:Quality61850.badReference", { CGMESProfile::EQ, } }, - { "cim:Quality61850.estimatorReplaced", { CGMESProfile::EQ, } }, - { "cim:Quality61850.failure", { CGMESProfile::EQ, } }, - { "cim:Quality61850.oldData", { CGMESProfile::EQ, } }, - { "cim:Quality61850.operatorBlocked", { CGMESProfile::EQ, } }, - { "cim:Quality61850.oscillatory", { CGMESProfile::EQ, } }, - { "cim:Quality61850.outOfRange", { CGMESProfile::EQ, } }, - { "cim:Quality61850.overFlow", { CGMESProfile::EQ, } }, - { "cim:Quality61850.source", { CGMESProfile::EQ, } }, - { "cim:Quality61850.suspect", { CGMESProfile::EQ, } }, - { "cim:Quality61850.test", { CGMESProfile::EQ, } }, - { "cim:Quality61850.validity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Quality61850::getPossibleProfilesForClass() const +const std::string& Quality61850::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Quality61850::getPossibleProfilesForAttributes() const +const std::list& Quality61850::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Quality61850::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Quality61850::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Quality61850::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Quality61850_badReference(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* Quality61850::debugString() const void Quality61850::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Quality61850", &Quality61850_factory); + factory_map.emplace("Quality61850", &Quality61850_factory); } void Quality61850::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Quality61850.badReference", &assign_Quality61850_badReference); - assign_map.emplace("cim:Quality61850.estimatorReplaced", &assign_Quality61850_estimatorReplaced); - assign_map.emplace("cim:Quality61850.failure", &assign_Quality61850_failure); - assign_map.emplace("cim:Quality61850.oldData", &assign_Quality61850_oldData); - assign_map.emplace("cim:Quality61850.operatorBlocked", &assign_Quality61850_operatorBlocked); - assign_map.emplace("cim:Quality61850.oscillatory", &assign_Quality61850_oscillatory); - assign_map.emplace("cim:Quality61850.outOfRange", &assign_Quality61850_outOfRange); - assign_map.emplace("cim:Quality61850.overFlow", &assign_Quality61850_overFlow); - assign_map.emplace("cim:Quality61850.source", &assign_Quality61850_source); - assign_map.emplace("cim:Quality61850.suspect", &assign_Quality61850_suspect); - assign_map.emplace("cim:Quality61850.test", &assign_Quality61850_test); - assign_map.emplace("cim:Quality61850.validity", &assign_Quality61850_validity); + assign_map.emplace("Quality61850.badReference", &assign_Quality61850_badReference); + assign_map.emplace("Quality61850.estimatorReplaced", &assign_Quality61850_estimatorReplaced); + assign_map.emplace("Quality61850.failure", &assign_Quality61850_failure); + assign_map.emplace("Quality61850.oldData", &assign_Quality61850_oldData); + assign_map.emplace("Quality61850.operatorBlocked", &assign_Quality61850_operatorBlocked); + assign_map.emplace("Quality61850.oscillatory", &assign_Quality61850_oscillatory); + assign_map.emplace("Quality61850.outOfRange", &assign_Quality61850_outOfRange); + assign_map.emplace("Quality61850.overFlow", &assign_Quality61850_overFlow); + assign_map.emplace("Quality61850.source", &assign_Quality61850_source); + assign_map.emplace("Quality61850.suspect", &assign_Quality61850_suspect); + assign_map.emplace("Quality61850.test", &assign_Quality61850_test); + assign_map.emplace("Quality61850.validity", &assign_Quality61850_validity); } void Quality61850::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,16 +464,16 @@ void Quality61850::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Quality61850.badReference", &get_Quality61850_badReference); - get_map.emplace("cim:Quality61850.estimatorReplaced", &get_Quality61850_estimatorReplaced); - get_map.emplace("cim:Quality61850.failure", &get_Quality61850_failure); - get_map.emplace("cim:Quality61850.oldData", &get_Quality61850_oldData); - get_map.emplace("cim:Quality61850.operatorBlocked", &get_Quality61850_operatorBlocked); - get_map.emplace("cim:Quality61850.oscillatory", &get_Quality61850_oscillatory); - get_map.emplace("cim:Quality61850.outOfRange", &get_Quality61850_outOfRange); - get_map.emplace("cim:Quality61850.overFlow", &get_Quality61850_overFlow); - get_map.emplace("cim:Quality61850.suspect", &get_Quality61850_suspect); - get_map.emplace("cim:Quality61850.test", &get_Quality61850_test); + get_map.emplace("Quality61850.badReference", &get_Quality61850_badReference); + get_map.emplace("Quality61850.estimatorReplaced", &get_Quality61850_estimatorReplaced); + get_map.emplace("Quality61850.failure", &get_Quality61850_failure); + get_map.emplace("Quality61850.oldData", &get_Quality61850_oldData); + get_map.emplace("Quality61850.operatorBlocked", &get_Quality61850_operatorBlocked); + get_map.emplace("Quality61850.oscillatory", &get_Quality61850_oscillatory); + get_map.emplace("Quality61850.outOfRange", &get_Quality61850_outOfRange); + get_map.emplace("Quality61850.overFlow", &get_Quality61850_overFlow); + get_map.emplace("Quality61850.suspect", &get_Quality61850_suspect); + get_map.emplace("Quality61850.test", &get_Quality61850_test); } void Quality61850::addClassGetFnsToMap(std::map& get_map) const @@ -452,8 +484,14 @@ void Quality61850::addClassGetFnsToMap(std::map void Quality61850::addEnumGetFnsToMap(std::map& get_map) const { BaseClass::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Quality61850.source", &get_Quality61850_source); - get_map.emplace("cim:Quality61850.validity", &get_Quality61850_validity); + get_map.emplace("Quality61850.source", &get_Quality61850_source); + get_map.emplace("Quality61850.validity", &get_Quality61850_validity); +} + +bool Quality61850::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Quality61850" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Quality61850::declare() @@ -461,6 +499,14 @@ const BaseClassDefiner Quality61850::declare() return BaseClassDefiner(Quality61850::addConstructToMap, Quality61850::addPrimitiveAssignFnsToMap, Quality61850::addClassAssignFnsToMap, Quality61850::debugName); } +std::map Quality61850::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Quality61850_factory() diff --git a/CGMES_2.4.15_16FEB2016/Quality61850.hpp b/CGMES_2.4.15_16FEB2016/Quality61850.hpp index 455802f53..8aebdac29 100644 --- a/CGMES_2.4.15_16FEB2016/Quality61850.hpp +++ b/CGMES_2.4.15_16FEB2016/Quality61850.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Source.hpp" #include "Validity.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Quality61850_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RaiseLowerCommand.cpp b/CGMES_2.4.15_16FEB2016/RaiseLowerCommand.cpp index 59622eff6..0047281a2 100644 --- a/CGMES_2.4.15_16FEB2016/RaiseLowerCommand.cpp +++ b/CGMES_2.4.15_16FEB2016/RaiseLowerCommand.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RaiseLowerCommand(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RaiseLowerCommand.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RaiseLowerCommand::RaiseLowerCommand() : ValueAliasSet(nullptr) {} RaiseLowerCommand::~RaiseLowerCommand() {} -static const std::list PossibleProfilesForClass = +const std::list& RaiseLowerCommand::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RaiseLowerCommand::getClassNamespaceUrl() const { - { "cim:RaiseLowerCommand.ValueAliasSet", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RaiseLowerCommand::getPossibleProfilesForClass() const +const std::string& RaiseLowerCommand::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RaiseLowerCommand::getPossibleProfilesForAttributes() const +const std::list& RaiseLowerCommand::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AnalogControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RaiseLowerCommand::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RaiseLowerCommand::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RaiseLowerCommand::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ValueAliasSet_RaiseLowerCommands(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RaiseLowerCommand::debugString() const void RaiseLowerCommand::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RaiseLowerCommand", &RaiseLowerCommand_factory); + factory_map.emplace("RaiseLowerCommand", &RaiseLowerCommand_factory); } void RaiseLowerCommand::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RaiseLowerCommand::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RaiseLowerCommand.ValueAliasSet", &assign_RaiseLowerCommand_ValueAliasSet); + assign_map.emplace("RaiseLowerCommand.ValueAliasSet", &assign_RaiseLowerCommand_ValueAliasSet); } void RaiseLowerCommand::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RaiseLowerCommand::addPrimitiveGetFnsToMap(std::map& get_map) const { AnalogControl::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RaiseLowerCommand.ValueAliasSet", &get_RaiseLowerCommand_ValueAliasSet); + get_map.emplace("RaiseLowerCommand.ValueAliasSet", &get_RaiseLowerCommand_ValueAliasSet); } void RaiseLowerCommand::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RaiseLowerCommand::addEnumGetFnsToMap(std::map& AnalogControl::addEnumGetFnsToMap(get_map); } +bool RaiseLowerCommand::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RaiseLowerCommand" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RaiseLowerCommand::declare() { return BaseClassDefiner(RaiseLowerCommand::addConstructToMap, RaiseLowerCommand::addPrimitiveAssignFnsToMap, RaiseLowerCommand::addClassAssignFnsToMap, RaiseLowerCommand::debugName); } +std::map RaiseLowerCommand::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AnalogControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RaiseLowerCommand_factory() diff --git a/CGMES_2.4.15_16FEB2016/RaiseLowerCommand.hpp b/CGMES_2.4.15_16FEB2016/RaiseLowerCommand.hpp index 97530d3cb..760034bcb 100644 --- a/CGMES_2.4.15_16FEB2016/RaiseLowerCommand.hpp +++ b/CGMES_2.4.15_16FEB2016/RaiseLowerCommand.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AnalogControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RaiseLowerCommand_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RatioTapChanger.cpp b/CGMES_2.4.15_16FEB2016/RatioTapChanger.cpp index f67722c8a..d0813b6df 100644 --- a/CGMES_2.4.15_16FEB2016/RatioTapChanger.cpp +++ b/CGMES_2.4.15_16FEB2016/RatioTapChanger.cpp @@ -13,36 +13,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChanger.RatioTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.stepVoltageIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.tculControlMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChanger::RatioTapChanger() : RatioTapChangerTable(nullptr), TransformerEnd(nullptr) {} RatioTapChanger::~RatioTapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChanger::getClassNamespaceUrl() const { - { "cim:RatioTapChanger.RatioTapChangerTable", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.TransformerEnd", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.stepVoltageIncrement", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.tculControlMode", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChanger::getPossibleProfilesForClass() const +const std::string& RatioTapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChanger::getPossibleProfilesForAttributes() const +const std::list& RatioTapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChangerTable_RatioTapChanger(BaseClass*, BaseClass*); @@ -173,38 +205,44 @@ const char* RatioTapChanger::debugString() const void RatioTapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChanger", &RatioTapChanger_factory); + factory_map.emplace("RatioTapChanger", &RatioTapChanger_factory); } void RatioTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChanger.stepVoltageIncrement", &assign_RatioTapChanger_stepVoltageIncrement); - assign_map.emplace("cim:RatioTapChanger.tculControlMode", &assign_RatioTapChanger_tculControlMode); + assign_map.emplace("RatioTapChanger.stepVoltageIncrement", &assign_RatioTapChanger_stepVoltageIncrement); + assign_map.emplace("RatioTapChanger.tculControlMode", &assign_RatioTapChanger_tculControlMode); } void RatioTapChanger::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChanger.RatioTapChangerTable", &assign_RatioTapChanger_RatioTapChangerTable); - assign_map.emplace("cim:RatioTapChanger.TransformerEnd", &assign_RatioTapChanger_TransformerEnd); + assign_map.emplace("RatioTapChanger.RatioTapChangerTable", &assign_RatioTapChanger_RatioTapChangerTable); + assign_map.emplace("RatioTapChanger.TransformerEnd", &assign_RatioTapChanger_TransformerEnd); } void RatioTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.stepVoltageIncrement", &get_RatioTapChanger_stepVoltageIncrement); + get_map.emplace("RatioTapChanger.stepVoltageIncrement", &get_RatioTapChanger_stepVoltageIncrement); } void RatioTapChanger::addClassGetFnsToMap(std::map& get_map) const { TapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.RatioTapChangerTable", &get_RatioTapChanger_RatioTapChangerTable); - get_map.emplace("cim:RatioTapChanger.TransformerEnd", &get_RatioTapChanger_TransformerEnd); + get_map.emplace("RatioTapChanger.RatioTapChangerTable", &get_RatioTapChanger_RatioTapChangerTable); + get_map.emplace("RatioTapChanger.TransformerEnd", &get_RatioTapChanger_TransformerEnd); } void RatioTapChanger::addEnumGetFnsToMap(std::map& get_map) const { TapChanger::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.tculControlMode", &get_RatioTapChanger_tculControlMode); + get_map.emplace("RatioTapChanger.tculControlMode", &get_RatioTapChanger_tculControlMode); +} + +bool RatioTapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RatioTapChanger" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RatioTapChanger::declare() @@ -212,6 +250,14 @@ const BaseClassDefiner RatioTapChanger::declare() return BaseClassDefiner(RatioTapChanger::addConstructToMap, RatioTapChanger::addPrimitiveAssignFnsToMap, RatioTapChanger::addClassAssignFnsToMap, RatioTapChanger::debugName); } +std::map RatioTapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChanger_factory() diff --git a/CGMES_2.4.15_16FEB2016/RatioTapChanger.hpp b/CGMES_2.4.15_16FEB2016/RatioTapChanger.hpp index fafbcad25..244ea7e1b 100644 --- a/CGMES_2.4.15_16FEB2016/RatioTapChanger.hpp +++ b/CGMES_2.4.15_16FEB2016/RatioTapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PerCent.hpp" #include "TransformerControlMode.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChanger_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RatioTapChangerTable.cpp b/CGMES_2.4.15_16FEB2016/RatioTapChangerTable.cpp index 1c743986f..983eade16 100644 --- a/CGMES_2.4.15_16FEB2016/RatioTapChangerTable.cpp +++ b/CGMES_2.4.15_16FEB2016/RatioTapChangerTable.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChangerTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChangerTable.RatioTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChangerTable.RatioTapChangerTablePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChangerTable::RatioTapChangerTable() {} RatioTapChangerTable::~RatioTapChangerTable() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChangerTable::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChangerTable::getClassNamespaceUrl() const { - { "cim:RatioTapChangerTable.RatioTapChanger", { CGMESProfile::EQ, } }, - { "cim:RatioTapChangerTable.RatioTapChangerTablePoint", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChangerTable::getPossibleProfilesForClass() const +const std::string& RatioTapChangerTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChangerTable::getPossibleProfilesForAttributes() const +const std::list& RatioTapChangerTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChangerTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChangerTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChangerTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChanger_RatioTapChangerTable(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* RatioTapChangerTable::debugString() const void RatioTapChangerTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChangerTable", &RatioTapChangerTable_factory); + factory_map.emplace("RatioTapChangerTable", &RatioTapChangerTable_factory); } void RatioTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void RatioTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChangerTable.RatioTapChanger", &assign_RatioTapChangerTable_RatioTapChanger); - assign_map.emplace("cim:RatioTapChangerTable.RatioTapChangerTablePoint", &assign_RatioTapChangerTable_RatioTapChangerTablePoint); + assign_map.emplace("RatioTapChangerTable.RatioTapChanger", &assign_RatioTapChangerTable_RatioTapChanger); + assign_map.emplace("RatioTapChangerTable.RatioTapChangerTablePoint", &assign_RatioTapChangerTable_RatioTapChangerTablePoint); } void RatioTapChangerTable::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void RatioTapChangerTable::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChangerTable::declare() { return BaseClassDefiner(RatioTapChangerTable::addConstructToMap, RatioTapChangerTable::addPrimitiveAssignFnsToMap, RatioTapChangerTable::addClassAssignFnsToMap, RatioTapChangerTable::debugName); } +std::map RatioTapChangerTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChangerTable_factory() diff --git a/CGMES_2.4.15_16FEB2016/RatioTapChangerTable.hpp b/CGMES_2.4.15_16FEB2016/RatioTapChangerTable.hpp index fdb0e4be4..aab5b4c6c 100644 --- a/CGMES_2.4.15_16FEB2016/RatioTapChangerTable.hpp +++ b/CGMES_2.4.15_16FEB2016/RatioTapChangerTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChangerTable_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RatioTapChangerTablePoint.cpp b/CGMES_2.4.15_16FEB2016/RatioTapChangerTablePoint.cpp index fb837e687..94844c4de 100644 --- a/CGMES_2.4.15_16FEB2016/RatioTapChangerTablePoint.cpp +++ b/CGMES_2.4.15_16FEB2016/RatioTapChangerTablePoint.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChangerTablePoint.RatioTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChangerTablePoint::RatioTapChangerTablePoint() : RatioTapChangerTable(nullptr) {} RatioTapChangerTablePoint::~RatioTapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:RatioTapChangerTablePoint.RatioTapChangerTable", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& RatioTapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& RatioTapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChangerTablePoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChangerTable_RatioTapChangerTablePoint(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RatioTapChangerTablePoint::debugString() const void RatioTapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChangerTablePoint", &RatioTapChangerTablePoint_factory); + factory_map.emplace("RatioTapChangerTablePoint", &RatioTapChangerTablePoint_factory); } void RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChangerTablePoint.RatioTapChangerTable", &assign_RatioTapChangerTablePoint_RatioTapChangerTable); + assign_map.emplace("RatioTapChangerTablePoint.RatioTapChangerTable", &assign_RatioTapChangerTablePoint_RatioTapChangerTable); } void RatioTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RatioTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChangerTablePoint.RatioTapChangerTable", &get_RatioTapChangerTablePoint_RatioTapChangerTable); + get_map.emplace("RatioTapChangerTablePoint.RatioTapChangerTable", &get_RatioTapChangerTablePoint_RatioTapChangerTable); } void RatioTapChangerTablePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RatioTapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChangerTablePoint::declare() { return BaseClassDefiner(RatioTapChangerTablePoint::addConstructToMap, RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap, RatioTapChangerTablePoint::addClassAssignFnsToMap, RatioTapChangerTablePoint::debugName); } +std::map RatioTapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChangerTablePoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChangerTablePoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/RatioTapChangerTablePoint.hpp b/CGMES_2.4.15_16FEB2016/RatioTapChangerTablePoint.hpp index a2a695328..137133055 100644 --- a/CGMES_2.4.15_16FEB2016/RatioTapChangerTablePoint.hpp +++ b/CGMES_2.4.15_16FEB2016/RatioTapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChangerTablePoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChangerTablePoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ReactiveCapabilityCurve.cpp b/CGMES_2.4.15_16FEB2016/ReactiveCapabilityCurve.cpp index 5d3fe1f54..5966386e3 100644 --- a/CGMES_2.4.15_16FEB2016/ReactiveCapabilityCurve.cpp +++ b/CGMES_2.4.15_16FEB2016/ReactiveCapabilityCurve.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ReactiveCapabilityCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ReactiveCapabilityCurve.EquivalentInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ReactiveCapabilityCurve::ReactiveCapabilityCurve() {} ReactiveCapabilityCurve::~ReactiveCapabilityCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& ReactiveCapabilityCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ReactiveCapabilityCurve::getClassNamespaceUrl() const { - { "cim:ReactiveCapabilityCurve.EquivalentInjection", { CGMESProfile::EQ, } }, - { "cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ReactiveCapabilityCurve::getPossibleProfilesForClass() const +const std::string& ReactiveCapabilityCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ReactiveCapabilityCurve::getPossibleProfilesForAttributes() const +const std::list& ReactiveCapabilityCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ReactiveCapabilityCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ReactiveCapabilityCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ReactiveCapabilityCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentInjection_ReactiveCapabilityCurve(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* ReactiveCapabilityCurve::debugString() const void ReactiveCapabilityCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ReactiveCapabilityCurve", &ReactiveCapabilityCurve_factory); + factory_map.emplace("ReactiveCapabilityCurve", &ReactiveCapabilityCurve_factory); } void ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ReactiveCapabilityCurve.EquivalentInjection", &assign_ReactiveCapabilityCurve_EquivalentInjection); - assign_map.emplace("cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", &assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines); + assign_map.emplace("ReactiveCapabilityCurve.EquivalentInjection", &assign_ReactiveCapabilityCurve_EquivalentInjection); + assign_map.emplace("ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", &assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines); } void ReactiveCapabilityCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void ReactiveCapabilityCurve::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ReactiveCapabilityCurve::declare() { return BaseClassDefiner(ReactiveCapabilityCurve::addConstructToMap, ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap, ReactiveCapabilityCurve::addClassAssignFnsToMap, ReactiveCapabilityCurve::debugName); } +std::map ReactiveCapabilityCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ReactiveCapabilityCurve_factory() diff --git a/CGMES_2.4.15_16FEB2016/ReactiveCapabilityCurve.hpp b/CGMES_2.4.15_16FEB2016/ReactiveCapabilityCurve.hpp index e843629e2..45c2c1e08 100644 --- a/CGMES_2.4.15_16FEB2016/ReactiveCapabilityCurve.hpp +++ b/CGMES_2.4.15_16FEB2016/ReactiveCapabilityCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ReactiveCapabilityCurve_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RegularIntervalSchedule.cpp b/CGMES_2.4.15_16FEB2016/RegularIntervalSchedule.cpp index 604197cd4..788e95446 100644 --- a/CGMES_2.4.15_16FEB2016/RegularIntervalSchedule.cpp +++ b/CGMES_2.4.15_16FEB2016/RegularIntervalSchedule.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegularIntervalSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegularIntervalSchedule.TimePoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularIntervalSchedule.endTime", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularIntervalSchedule.timeStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegularIntervalSchedule::RegularIntervalSchedule() {} RegularIntervalSchedule::~RegularIntervalSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& RegularIntervalSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegularIntervalSchedule::getClassNamespaceUrl() const { - { "cim:RegularIntervalSchedule.TimePoints", { CGMESProfile::EQ, } }, - { "cim:RegularIntervalSchedule.endTime", { CGMESProfile::EQ, } }, - { "cim:RegularIntervalSchedule.timeStep", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegularIntervalSchedule::getPossibleProfilesForClass() const +const std::string& RegularIntervalSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegularIntervalSchedule::getPossibleProfilesForAttributes() const +const std::list& RegularIntervalSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BasicIntervalSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegularIntervalSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegularIntervalSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegularIntervalSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegularTimePoint_IntervalSchedule(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* RegularIntervalSchedule::debugString() const void RegularIntervalSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegularIntervalSchedule", &RegularIntervalSchedule_factory); + factory_map.emplace("RegularIntervalSchedule", &RegularIntervalSchedule_factory); } void RegularIntervalSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularIntervalSchedule.endTime", &assign_RegularIntervalSchedule_endTime); - assign_map.emplace("cim:RegularIntervalSchedule.timeStep", &assign_RegularIntervalSchedule_timeStep); + assign_map.emplace("RegularIntervalSchedule.endTime", &assign_RegularIntervalSchedule_endTime); + assign_map.emplace("RegularIntervalSchedule.timeStep", &assign_RegularIntervalSchedule_timeStep); } void RegularIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularIntervalSchedule.TimePoints", &assign_RegularIntervalSchedule_TimePoints); + assign_map.emplace("RegularIntervalSchedule.TimePoints", &assign_RegularIntervalSchedule_TimePoints); } void RegularIntervalSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { BasicIntervalSchedule::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegularIntervalSchedule.endTime", &get_RegularIntervalSchedule_endTime); - get_map.emplace("cim:RegularIntervalSchedule.timeStep", &get_RegularIntervalSchedule_timeStep); + get_map.emplace("RegularIntervalSchedule.endTime", &get_RegularIntervalSchedule_endTime); + get_map.emplace("RegularIntervalSchedule.timeStep", &get_RegularIntervalSchedule_timeStep); } void RegularIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void RegularIntervalSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RegularIntervalSchedule::declare() { return BaseClassDefiner(RegularIntervalSchedule::addConstructToMap, RegularIntervalSchedule::addPrimitiveAssignFnsToMap, RegularIntervalSchedule::addClassAssignFnsToMap, RegularIntervalSchedule::debugName); } +std::map RegularIntervalSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BasicIntervalSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegularIntervalSchedule_factory() diff --git a/CGMES_2.4.15_16FEB2016/RegularIntervalSchedule.hpp b/CGMES_2.4.15_16FEB2016/RegularIntervalSchedule.hpp index d34235f88..cb96c5f83 100644 --- a/CGMES_2.4.15_16FEB2016/RegularIntervalSchedule.hpp +++ b/CGMES_2.4.15_16FEB2016/RegularIntervalSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BasicIntervalSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "Seconds.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegularIntervalSchedule_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RegularTimePoint.cpp b/CGMES_2.4.15_16FEB2016/RegularTimePoint.cpp index 5903ad467..b7b1c62f3 100644 --- a/CGMES_2.4.15_16FEB2016/RegularTimePoint.cpp +++ b/CGMES_2.4.15_16FEB2016/RegularTimePoint.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegularTimePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegularTimePoint.IntervalSchedule", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.value1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.value2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegularTimePoint::RegularTimePoint() : IntervalSchedule(nullptr) {} RegularTimePoint::~RegularTimePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& RegularTimePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegularTimePoint::getClassNamespaceUrl() const { - { "cim:RegularTimePoint.IntervalSchedule", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.sequenceNumber", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.value1", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.value2", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegularTimePoint::getPossibleProfilesForClass() const +const std::string& RegularTimePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegularTimePoint::getPossibleProfilesForAttributes() const +const std::list& RegularTimePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegularTimePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegularTimePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegularTimePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegularIntervalSchedule_TimePoints(BaseClass*, BaseClass*); @@ -169,33 +201,33 @@ const char* RegularTimePoint::debugString() const void RegularTimePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegularTimePoint", &RegularTimePoint_factory); + factory_map.emplace("RegularTimePoint", &RegularTimePoint_factory); } void RegularTimePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularTimePoint.sequenceNumber", &assign_RegularTimePoint_sequenceNumber); - assign_map.emplace("cim:RegularTimePoint.value1", &assign_RegularTimePoint_value1); - assign_map.emplace("cim:RegularTimePoint.value2", &assign_RegularTimePoint_value2); + assign_map.emplace("RegularTimePoint.sequenceNumber", &assign_RegularTimePoint_sequenceNumber); + assign_map.emplace("RegularTimePoint.value1", &assign_RegularTimePoint_value1); + assign_map.emplace("RegularTimePoint.value2", &assign_RegularTimePoint_value2); } void RegularTimePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularTimePoint.IntervalSchedule", &assign_RegularTimePoint_IntervalSchedule); + assign_map.emplace("RegularTimePoint.IntervalSchedule", &assign_RegularTimePoint_IntervalSchedule); } void RegularTimePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegularTimePoint.sequenceNumber", &get_RegularTimePoint_sequenceNumber); - get_map.emplace("cim:RegularTimePoint.value1", &get_RegularTimePoint_value1); - get_map.emplace("cim:RegularTimePoint.value2", &get_RegularTimePoint_value2); + get_map.emplace("RegularTimePoint.sequenceNumber", &get_RegularTimePoint_sequenceNumber); + get_map.emplace("RegularTimePoint.value1", &get_RegularTimePoint_value1); + get_map.emplace("RegularTimePoint.value2", &get_RegularTimePoint_value2); } void RegularTimePoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegularTimePoint.IntervalSchedule", &get_RegularTimePoint_IntervalSchedule); + get_map.emplace("RegularTimePoint.IntervalSchedule", &get_RegularTimePoint_IntervalSchedule); } void RegularTimePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -203,11 +235,25 @@ void RegularTimePoint::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool RegularTimePoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegularTimePoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegularTimePoint::declare() { return BaseClassDefiner(RegularTimePoint::addConstructToMap, RegularTimePoint::addPrimitiveAssignFnsToMap, RegularTimePoint::addClassAssignFnsToMap, RegularTimePoint::debugName); } +std::map RegularTimePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegularTimePoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/RegularTimePoint.hpp b/CGMES_2.4.15_16FEB2016/RegularTimePoint.hpp index 1d84dddda..6de1abd40 100644 --- a/CGMES_2.4.15_16FEB2016/RegularTimePoint.hpp +++ b/CGMES_2.4.15_16FEB2016/RegularTimePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegularTimePoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RegulatingCondEq.cpp b/CGMES_2.4.15_16FEB2016/RegulatingCondEq.cpp index 19a2d09e9..221355dab 100644 --- a/CGMES_2.4.15_16FEB2016/RegulatingCondEq.cpp +++ b/CGMES_2.4.15_16FEB2016/RegulatingCondEq.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulatingCondEq(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulatingCondEq.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingCondEq.controlEnabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + RegulatingCondEq::RegulatingCondEq() : RegulatingControl(nullptr) {} RegulatingCondEq::~RegulatingCondEq() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulatingCondEq::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulatingCondEq::getClassNamespaceUrl() const { - { "cim:RegulatingCondEq.RegulatingControl", { CGMESProfile::EQ, } }, - { "cim:RegulatingCondEq.controlEnabled", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulatingCondEq::getPossibleProfilesForClass() const +const std::string& RegulatingCondEq::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulatingCondEq::getPossibleProfilesForAttributes() const +const std::list& RegulatingCondEq::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulatingCondEq::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulatingCondEq::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulatingCondEq::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingControl_RegulatingCondEq(BaseClass*, BaseClass*); @@ -111,29 +143,29 @@ const char* RegulatingCondEq::debugString() const void RegulatingCondEq::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulatingCondEq", &RegulatingCondEq_factory); + factory_map.emplace("RegulatingCondEq", &RegulatingCondEq_factory); } void RegulatingCondEq::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingCondEq.controlEnabled", &assign_RegulatingCondEq_controlEnabled); + assign_map.emplace("RegulatingCondEq.controlEnabled", &assign_RegulatingCondEq_controlEnabled); } void RegulatingCondEq::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingCondEq.RegulatingControl", &assign_RegulatingCondEq_RegulatingControl); + assign_map.emplace("RegulatingCondEq.RegulatingControl", &assign_RegulatingCondEq_RegulatingControl); } void RegulatingCondEq::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingCondEq.controlEnabled", &get_RegulatingCondEq_controlEnabled); + get_map.emplace("RegulatingCondEq.controlEnabled", &get_RegulatingCondEq_controlEnabled); } void RegulatingCondEq::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingCondEq.RegulatingControl", &get_RegulatingCondEq_RegulatingControl); + get_map.emplace("RegulatingCondEq.RegulatingControl", &get_RegulatingCondEq_RegulatingControl); } void RegulatingCondEq::addEnumGetFnsToMap(std::map& get_map) const @@ -141,11 +173,25 @@ void RegulatingCondEq::addEnumGetFnsToMap(std::map& g ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool RegulatingCondEq::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulatingCondEq" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegulatingCondEq::declare() { return BaseClassDefiner(RegulatingCondEq::addConstructToMap, RegulatingCondEq::addPrimitiveAssignFnsToMap, RegulatingCondEq::addClassAssignFnsToMap, RegulatingCondEq::debugName); } +std::map RegulatingCondEq::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulatingCondEq_factory() diff --git a/CGMES_2.4.15_16FEB2016/RegulatingCondEq.hpp b/CGMES_2.4.15_16FEB2016/RegulatingCondEq.hpp index 9df3386a1..6459405d2 100644 --- a/CGMES_2.4.15_16FEB2016/RegulatingCondEq.hpp +++ b/CGMES_2.4.15_16FEB2016/RegulatingCondEq.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulatingCondEq_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RegulatingControl.cpp b/CGMES_2.4.15_16FEB2016/RegulatingControl.cpp index 7f14bad90..297410404 100644 --- a/CGMES_2.4.15_16FEB2016/RegulatingControl.cpp +++ b/CGMES_2.4.15_16FEB2016/RegulatingControl.cpp @@ -14,41 +14,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulatingControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulatingControl.RegulatingCondEq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.RegulationSchedule", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.discrete", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.enabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.mode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.targetDeadband", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.targetValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.targetValueUnitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + RegulatingControl::RegulatingControl() : Terminal(nullptr) {} RegulatingControl::~RegulatingControl() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulatingControl::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulatingControl::getClassNamespaceUrl() const { - { "cim:RegulatingControl.RegulatingCondEq", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.RegulationSchedule", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.Terminal", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.discrete", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.enabled", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.mode", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.targetDeadband", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.targetValue", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.targetValueUnitMultiplier", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulatingControl::getPossibleProfilesForClass() const +const std::string& RegulatingControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulatingControl::getPossibleProfilesForAttributes() const +const std::list& RegulatingControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulatingControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulatingControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulatingControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingCondEq_RegulatingControl(BaseClass*, BaseClass*); @@ -300,46 +332,52 @@ const char* RegulatingControl::debugString() const void RegulatingControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulatingControl", &RegulatingControl_factory); + factory_map.emplace("RegulatingControl", &RegulatingControl_factory); } void RegulatingControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingControl.discrete", &assign_RegulatingControl_discrete); - assign_map.emplace("cim:RegulatingControl.enabled", &assign_RegulatingControl_enabled); - assign_map.emplace("cim:RegulatingControl.mode", &assign_RegulatingControl_mode); - assign_map.emplace("cim:RegulatingControl.targetDeadband", &assign_RegulatingControl_targetDeadband); - assign_map.emplace("cim:RegulatingControl.targetValue", &assign_RegulatingControl_targetValue); - assign_map.emplace("cim:RegulatingControl.targetValueUnitMultiplier", &assign_RegulatingControl_targetValueUnitMultiplier); + assign_map.emplace("RegulatingControl.discrete", &assign_RegulatingControl_discrete); + assign_map.emplace("RegulatingControl.enabled", &assign_RegulatingControl_enabled); + assign_map.emplace("RegulatingControl.mode", &assign_RegulatingControl_mode); + assign_map.emplace("RegulatingControl.targetDeadband", &assign_RegulatingControl_targetDeadband); + assign_map.emplace("RegulatingControl.targetValue", &assign_RegulatingControl_targetValue); + assign_map.emplace("RegulatingControl.targetValueUnitMultiplier", &assign_RegulatingControl_targetValueUnitMultiplier); } void RegulatingControl::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingControl.RegulatingCondEq", &assign_RegulatingControl_RegulatingCondEq); - assign_map.emplace("cim:RegulatingControl.RegulationSchedule", &assign_RegulatingControl_RegulationSchedule); - assign_map.emplace("cim:RegulatingControl.Terminal", &assign_RegulatingControl_Terminal); + assign_map.emplace("RegulatingControl.RegulatingCondEq", &assign_RegulatingControl_RegulatingCondEq); + assign_map.emplace("RegulatingControl.RegulationSchedule", &assign_RegulatingControl_RegulationSchedule); + assign_map.emplace("RegulatingControl.Terminal", &assign_RegulatingControl_Terminal); } void RegulatingControl::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.discrete", &get_RegulatingControl_discrete); - get_map.emplace("cim:RegulatingControl.enabled", &get_RegulatingControl_enabled); - get_map.emplace("cim:RegulatingControl.targetDeadband", &get_RegulatingControl_targetDeadband); - get_map.emplace("cim:RegulatingControl.targetValue", &get_RegulatingControl_targetValue); + get_map.emplace("RegulatingControl.discrete", &get_RegulatingControl_discrete); + get_map.emplace("RegulatingControl.enabled", &get_RegulatingControl_enabled); + get_map.emplace("RegulatingControl.targetDeadband", &get_RegulatingControl_targetDeadband); + get_map.emplace("RegulatingControl.targetValue", &get_RegulatingControl_targetValue); } void RegulatingControl::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.Terminal", &get_RegulatingControl_Terminal); + get_map.emplace("RegulatingControl.Terminal", &get_RegulatingControl_Terminal); } void RegulatingControl::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.mode", &get_RegulatingControl_mode); - get_map.emplace("cim:RegulatingControl.targetValueUnitMultiplier", &get_RegulatingControl_targetValueUnitMultiplier); + get_map.emplace("RegulatingControl.mode", &get_RegulatingControl_mode); + get_map.emplace("RegulatingControl.targetValueUnitMultiplier", &get_RegulatingControl_targetValueUnitMultiplier); +} + +bool RegulatingControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulatingControl" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RegulatingControl::declare() @@ -347,6 +385,14 @@ const BaseClassDefiner RegulatingControl::declare() return BaseClassDefiner(RegulatingControl::addConstructToMap, RegulatingControl::addPrimitiveAssignFnsToMap, RegulatingControl::addClassAssignFnsToMap, RegulatingControl::debugName); } +std::map RegulatingControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulatingControl_factory() diff --git a/CGMES_2.4.15_16FEB2016/RegulatingControl.hpp b/CGMES_2.4.15_16FEB2016/RegulatingControl.hpp index f6be989fc..48ec796c5 100644 --- a/CGMES_2.4.15_16FEB2016/RegulatingControl.hpp +++ b/CGMES_2.4.15_16FEB2016/RegulatingControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "RegulatingControlModeKind.hpp" #include "Simple_Float.hpp" @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulatingControl_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RegulationSchedule.cpp b/CGMES_2.4.15_16FEB2016/RegulationSchedule.cpp index 8750abb1a..eecf20fd5 100644 --- a/CGMES_2.4.15_16FEB2016/RegulationSchedule.cpp +++ b/CGMES_2.4.15_16FEB2016/RegulationSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulationSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulationSchedule.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegulationSchedule::RegulationSchedule() : RegulatingControl(nullptr) {} RegulationSchedule::~RegulationSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulationSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulationSchedule::getClassNamespaceUrl() const { - { "cim:RegulationSchedule.RegulatingControl", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulationSchedule::getPossibleProfilesForClass() const +const std::string& RegulationSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulationSchedule::getPossibleProfilesForAttributes() const +const std::list& RegulationSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulationSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulationSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulationSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingControl_RegulationSchedule(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RegulationSchedule::debugString() const void RegulationSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulationSchedule", &RegulationSchedule_factory); + factory_map.emplace("RegulationSchedule", &RegulationSchedule_factory); } void RegulationSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RegulationSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulationSchedule.RegulatingControl", &assign_RegulationSchedule_RegulatingControl); + assign_map.emplace("RegulationSchedule.RegulatingControl", &assign_RegulationSchedule_RegulatingControl); } void RegulationSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RegulationSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulationSchedule.RegulatingControl", &get_RegulationSchedule_RegulatingControl); + get_map.emplace("RegulationSchedule.RegulatingControl", &get_RegulationSchedule_RegulatingControl); } void RegulationSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RegulationSchedule::addEnumGetFnsToMap(std::map& SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool RegulationSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulationSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegulationSchedule::declare() { return BaseClassDefiner(RegulationSchedule::addConstructToMap, RegulationSchedule::addPrimitiveAssignFnsToMap, RegulationSchedule::addClassAssignFnsToMap, RegulationSchedule::debugName); } +std::map RegulationSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulationSchedule_factory() diff --git a/CGMES_2.4.15_16FEB2016/RegulationSchedule.hpp b/CGMES_2.4.15_16FEB2016/RegulationSchedule.hpp index 4b0f45cec..1fa0a5a27 100644 --- a/CGMES_2.4.15_16FEB2016/RegulationSchedule.hpp +++ b/CGMES_2.4.15_16FEB2016/RegulationSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulationSchedule_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RemoteInputSignal.cpp b/CGMES_2.4.15_16FEB2016/RemoteInputSignal.cpp index f187b941e..24bcf22b4 100644 --- a/CGMES_2.4.15_16FEB2016/RemoteInputSignal.cpp +++ b/CGMES_2.4.15_16FEB2016/RemoteInputSignal.cpp @@ -20,41 +20,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RemoteInputSignal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RemoteInputSignal.DiscontinuousExcitationControlDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.PowerSystemStabilizerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.UnderexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.VoltageCompensatorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindPlantDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindTurbineType1or2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.remoteSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + RemoteInputSignal::RemoteInputSignal() : DiscontinuousExcitationControlDynamics(nullptr), PFVArControllerType1Dynamics(nullptr), PowerSystemStabilizerDynamics(nullptr), Terminal(nullptr), UnderexcitationLimiterDynamics(nullptr), VoltageCompensatorDynamics(nullptr), WindPlantDynamics(nullptr), WindTurbineType1or2Dynamics(nullptr), WindTurbineType3or4Dynamics(nullptr) {} RemoteInputSignal::~RemoteInputSignal() {} -static const std::list PossibleProfilesForClass = +const std::list& RemoteInputSignal::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RemoteInputSignal::getClassNamespaceUrl() const { - { "cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.PowerSystemStabilizerDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.Terminal", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.UnderexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.VoltageCompensatorDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindPlantDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindTurbineType1or2Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.remoteSignalType", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RemoteInputSignal::getPossibleProfilesForClass() const +const std::string& RemoteInputSignal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RemoteInputSignal::getPossibleProfilesForAttributes() const +const std::list& RemoteInputSignal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RemoteInputSignal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RemoteInputSignal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RemoteInputSignal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal(BaseClass*, BaseClass*); @@ -334,25 +366,25 @@ const char* RemoteInputSignal::debugString() const void RemoteInputSignal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RemoteInputSignal", &RemoteInputSignal_factory); + factory_map.emplace("RemoteInputSignal", &RemoteInputSignal_factory); } void RemoteInputSignal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RemoteInputSignal.remoteSignalType", &assign_RemoteInputSignal_remoteSignalType); + assign_map.emplace("RemoteInputSignal.remoteSignalType", &assign_RemoteInputSignal_remoteSignalType); } void RemoteInputSignal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", &assign_RemoteInputSignal_DiscontinuousExcitationControlDynamics); - assign_map.emplace("cim:RemoteInputSignal.PFVArControllerType1Dynamics", &assign_RemoteInputSignal_PFVArControllerType1Dynamics); - assign_map.emplace("cim:RemoteInputSignal.PowerSystemStabilizerDynamics", &assign_RemoteInputSignal_PowerSystemStabilizerDynamics); - assign_map.emplace("cim:RemoteInputSignal.Terminal", &assign_RemoteInputSignal_Terminal); - assign_map.emplace("cim:RemoteInputSignal.UnderexcitationLimiterDynamics", &assign_RemoteInputSignal_UnderexcitationLimiterDynamics); - assign_map.emplace("cim:RemoteInputSignal.VoltageCompensatorDynamics", &assign_RemoteInputSignal_VoltageCompensatorDynamics); - assign_map.emplace("cim:RemoteInputSignal.WindPlantDynamics", &assign_RemoteInputSignal_WindPlantDynamics); - assign_map.emplace("cim:RemoteInputSignal.WindTurbineType1or2Dynamics", &assign_RemoteInputSignal_WindTurbineType1or2Dynamics); - assign_map.emplace("cim:RemoteInputSignal.WindTurbineType3or4Dynamics", &assign_RemoteInputSignal_WindTurbineType3or4Dynamics); + assign_map.emplace("RemoteInputSignal.DiscontinuousExcitationControlDynamics", &assign_RemoteInputSignal_DiscontinuousExcitationControlDynamics); + assign_map.emplace("RemoteInputSignal.PFVArControllerType1Dynamics", &assign_RemoteInputSignal_PFVArControllerType1Dynamics); + assign_map.emplace("RemoteInputSignal.PowerSystemStabilizerDynamics", &assign_RemoteInputSignal_PowerSystemStabilizerDynamics); + assign_map.emplace("RemoteInputSignal.Terminal", &assign_RemoteInputSignal_Terminal); + assign_map.emplace("RemoteInputSignal.UnderexcitationLimiterDynamics", &assign_RemoteInputSignal_UnderexcitationLimiterDynamics); + assign_map.emplace("RemoteInputSignal.VoltageCompensatorDynamics", &assign_RemoteInputSignal_VoltageCompensatorDynamics); + assign_map.emplace("RemoteInputSignal.WindPlantDynamics", &assign_RemoteInputSignal_WindPlantDynamics); + assign_map.emplace("RemoteInputSignal.WindTurbineType1or2Dynamics", &assign_RemoteInputSignal_WindTurbineType1or2Dynamics); + assign_map.emplace("RemoteInputSignal.WindTurbineType3or4Dynamics", &assign_RemoteInputSignal_WindTurbineType3or4Dynamics); } void RemoteInputSignal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -363,18 +395,24 @@ void RemoteInputSignal::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", &get_RemoteInputSignal_DiscontinuousExcitationControlDynamics); - get_map.emplace("cim:RemoteInputSignal.PFVArControllerType1Dynamics", &get_RemoteInputSignal_PFVArControllerType1Dynamics); - get_map.emplace("cim:RemoteInputSignal.PowerSystemStabilizerDynamics", &get_RemoteInputSignal_PowerSystemStabilizerDynamics); - get_map.emplace("cim:RemoteInputSignal.Terminal", &get_RemoteInputSignal_Terminal); - get_map.emplace("cim:RemoteInputSignal.UnderexcitationLimiterDynamics", &get_RemoteInputSignal_UnderexcitationLimiterDynamics); - get_map.emplace("cim:RemoteInputSignal.VoltageCompensatorDynamics", &get_RemoteInputSignal_VoltageCompensatorDynamics); + get_map.emplace("RemoteInputSignal.DiscontinuousExcitationControlDynamics", &get_RemoteInputSignal_DiscontinuousExcitationControlDynamics); + get_map.emplace("RemoteInputSignal.PFVArControllerType1Dynamics", &get_RemoteInputSignal_PFVArControllerType1Dynamics); + get_map.emplace("RemoteInputSignal.PowerSystemStabilizerDynamics", &get_RemoteInputSignal_PowerSystemStabilizerDynamics); + get_map.emplace("RemoteInputSignal.Terminal", &get_RemoteInputSignal_Terminal); + get_map.emplace("RemoteInputSignal.UnderexcitationLimiterDynamics", &get_RemoteInputSignal_UnderexcitationLimiterDynamics); + get_map.emplace("RemoteInputSignal.VoltageCompensatorDynamics", &get_RemoteInputSignal_VoltageCompensatorDynamics); } void RemoteInputSignal::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RemoteInputSignal.remoteSignalType", &get_RemoteInputSignal_remoteSignalType); + get_map.emplace("RemoteInputSignal.remoteSignalType", &get_RemoteInputSignal_remoteSignalType); +} + +bool RemoteInputSignal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RemoteInputSignal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RemoteInputSignal::declare() @@ -382,6 +420,14 @@ const BaseClassDefiner RemoteInputSignal::declare() return BaseClassDefiner(RemoteInputSignal::addConstructToMap, RemoteInputSignal::addPrimitiveAssignFnsToMap, RemoteInputSignal::addClassAssignFnsToMap, RemoteInputSignal::debugName); } +std::map RemoteInputSignal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RemoteInputSignal_factory() diff --git a/CGMES_2.4.15_16FEB2016/RemoteInputSignal.hpp b/CGMES_2.4.15_16FEB2016/RemoteInputSignal.hpp index f33baab80..ff55f1ed4 100644 --- a/CGMES_2.4.15_16FEB2016/RemoteInputSignal.hpp +++ b/CGMES_2.4.15_16FEB2016/RemoteInputSignal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "RemoteSignalKind.hpp" namespace CIMPP @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RemoteInputSignal_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ReportingGroup.cpp b/CGMES_2.4.15_16FEB2016/ReportingGroup.cpp index 5a8463cce..81ee0ce6b 100644 --- a/CGMES_2.4.15_16FEB2016/ReportingGroup.cpp +++ b/CGMES_2.4.15_16FEB2016/ReportingGroup.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ReportingGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ReportingGroup.BusNameMarker", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ReportingGroup.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ReportingGroup::ReportingGroup() {} ReportingGroup::~ReportingGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& ReportingGroup::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ReportingGroup::getClassNamespaceUrl() const { - { "cim:ReportingGroup.BusNameMarker", { CGMESProfile::EQ, } }, - { "cim:ReportingGroup.TopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ReportingGroup::getPossibleProfilesForClass() const +const std::string& ReportingGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ReportingGroup::getPossibleProfilesForAttributes() const +const std::list& ReportingGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ReportingGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ReportingGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ReportingGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusNameMarker_ReportingGroup(BaseClass*, BaseClass*); @@ -87,7 +119,7 @@ const char* ReportingGroup::debugString() const void ReportingGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ReportingGroup", &ReportingGroup_factory); + factory_map.emplace("ReportingGroup", &ReportingGroup_factory); } void ReportingGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -96,8 +128,8 @@ void ReportingGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ReportingGroup.BusNameMarker", &assign_ReportingGroup_BusNameMarker); - assign_map.emplace("cim:ReportingGroup.TopologicalNode", &assign_ReportingGroup_TopologicalNode); + assign_map.emplace("ReportingGroup.BusNameMarker", &assign_ReportingGroup_BusNameMarker); + assign_map.emplace("ReportingGroup.TopologicalNode", &assign_ReportingGroup_TopologicalNode); } void ReportingGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -115,11 +147,25 @@ void ReportingGroup::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ReportingGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ReportingGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ReportingGroup::declare() { return BaseClassDefiner(ReportingGroup::addConstructToMap, ReportingGroup::addPrimitiveAssignFnsToMap, ReportingGroup::addClassAssignFnsToMap, ReportingGroup::debugName); } +std::map ReportingGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ReportingGroup_factory() diff --git a/CGMES_2.4.15_16FEB2016/ReportingGroup.hpp b/CGMES_2.4.15_16FEB2016/ReportingGroup.hpp index bed31d9d8..94230e4bf 100644 --- a/CGMES_2.4.15_16FEB2016/ReportingGroup.hpp +++ b/CGMES_2.4.15_16FEB2016/ReportingGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ReportingGroup_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RotatingMachine.cpp b/CGMES_2.4.15_16FEB2016/RotatingMachine.cpp index 167772853..d13a6824f 100644 --- a/CGMES_2.4.15_16FEB2016/RotatingMachine.cpp +++ b/CGMES_2.4.15_16FEB2016/RotatingMachine.cpp @@ -13,40 +13,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RotatingMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RotatingMachine.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.HydroPump", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RotatingMachine.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RotatingMachine.ratedPowerFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.ratedS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.ratedU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RotatingMachine::RotatingMachine() : GeneratingUnit(nullptr), HydroPump(nullptr) {} RotatingMachine::~RotatingMachine() {} -static const std::list PossibleProfilesForClass = +const std::list& RotatingMachine::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RotatingMachine::getClassNamespaceUrl() const { - { "cim:RotatingMachine.GeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.HydroPump", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.p", { CGMESProfile::SSH, } }, - { "cim:RotatingMachine.q", { CGMESProfile::SSH, } }, - { "cim:RotatingMachine.ratedPowerFactor", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.ratedS", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.ratedU", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RotatingMachine::getPossibleProfilesForClass() const +const std::string& RotatingMachine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RotatingMachine::getPossibleProfilesForAttributes() const +const std::list& RotatingMachine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RotatingMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RotatingMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RotatingMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeneratingUnit_RotatingMachine(BaseClass*, BaseClass*); @@ -251,38 +283,38 @@ const char* RotatingMachine::debugString() const void RotatingMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RotatingMachine", &RotatingMachine_factory); + factory_map.emplace("RotatingMachine", &RotatingMachine_factory); } void RotatingMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachine.p", &assign_RotatingMachine_p); - assign_map.emplace("cim:RotatingMachine.q", &assign_RotatingMachine_q); - assign_map.emplace("cim:RotatingMachine.ratedPowerFactor", &assign_RotatingMachine_ratedPowerFactor); - assign_map.emplace("cim:RotatingMachine.ratedS", &assign_RotatingMachine_ratedS); - assign_map.emplace("cim:RotatingMachine.ratedU", &assign_RotatingMachine_ratedU); + assign_map.emplace("RotatingMachine.p", &assign_RotatingMachine_p); + assign_map.emplace("RotatingMachine.q", &assign_RotatingMachine_q); + assign_map.emplace("RotatingMachine.ratedPowerFactor", &assign_RotatingMachine_ratedPowerFactor); + assign_map.emplace("RotatingMachine.ratedS", &assign_RotatingMachine_ratedS); + assign_map.emplace("RotatingMachine.ratedU", &assign_RotatingMachine_ratedU); } void RotatingMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachine.GeneratingUnit", &assign_RotatingMachine_GeneratingUnit); - assign_map.emplace("cim:RotatingMachine.HydroPump", &assign_RotatingMachine_HydroPump); + assign_map.emplace("RotatingMachine.GeneratingUnit", &assign_RotatingMachine_GeneratingUnit); + assign_map.emplace("RotatingMachine.HydroPump", &assign_RotatingMachine_HydroPump); } void RotatingMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachine.p", &get_RotatingMachine_p); - get_map.emplace("cim:RotatingMachine.q", &get_RotatingMachine_q); - get_map.emplace("cim:RotatingMachine.ratedPowerFactor", &get_RotatingMachine_ratedPowerFactor); - get_map.emplace("cim:RotatingMachine.ratedS", &get_RotatingMachine_ratedS); - get_map.emplace("cim:RotatingMachine.ratedU", &get_RotatingMachine_ratedU); + get_map.emplace("RotatingMachine.p", &get_RotatingMachine_p); + get_map.emplace("RotatingMachine.q", &get_RotatingMachine_q); + get_map.emplace("RotatingMachine.ratedPowerFactor", &get_RotatingMachine_ratedPowerFactor); + get_map.emplace("RotatingMachine.ratedS", &get_RotatingMachine_ratedS); + get_map.emplace("RotatingMachine.ratedU", &get_RotatingMachine_ratedU); } void RotatingMachine::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachine.GeneratingUnit", &get_RotatingMachine_GeneratingUnit); + get_map.emplace("RotatingMachine.GeneratingUnit", &get_RotatingMachine_GeneratingUnit); } void RotatingMachine::addEnumGetFnsToMap(std::map& get_map) const @@ -290,11 +322,25 @@ void RotatingMachine::addEnumGetFnsToMap(std::map& ge RegulatingCondEq::addEnumGetFnsToMap(get_map); } +bool RotatingMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RotatingMachine" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RotatingMachine::declare() { return BaseClassDefiner(RotatingMachine::addConstructToMap, RotatingMachine::addPrimitiveAssignFnsToMap, RotatingMachine::addClassAssignFnsToMap, RotatingMachine::debugName); } +std::map RotatingMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RotatingMachine_factory() diff --git a/CGMES_2.4.15_16FEB2016/RotatingMachine.hpp b/CGMES_2.4.15_16FEB2016/RotatingMachine.hpp index 94e3078ed..b2df4fa3c 100644 --- a/CGMES_2.4.15_16FEB2016/RotatingMachine.hpp +++ b/CGMES_2.4.15_16FEB2016/RotatingMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ApparentPower.hpp" #include "ReactivePower.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RotatingMachine_factory(); diff --git a/CGMES_2.4.15_16FEB2016/RotatingMachineDynamics.cpp b/CGMES_2.4.15_16FEB2016/RotatingMachineDynamics.cpp index 57dd9d608..cd79785cb 100644 --- a/CGMES_2.4.15_16FEB2016/RotatingMachineDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/RotatingMachineDynamics.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RotatingMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RotatingMachineDynamics.damping", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.inertia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.saturationFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.saturationFactor120", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.statorLeakageReactance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.statorResistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + RotatingMachineDynamics::RotatingMachineDynamics() {} RotatingMachineDynamics::~RotatingMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& RotatingMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RotatingMachineDynamics::getClassNamespaceUrl() const { - { "cim:RotatingMachineDynamics.damping", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.inertia", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.saturationFactor", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.saturationFactor120", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.statorLeakageReactance", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.statorResistance", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RotatingMachineDynamics::getPossibleProfilesForClass() const +const std::string& RotatingMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RotatingMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& RotatingMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RotatingMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RotatingMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RotatingMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RotatingMachineDynamics_damping(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* RotatingMachineDynamics::debugString() const void RotatingMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RotatingMachineDynamics", &RotatingMachineDynamics_factory); + factory_map.emplace("RotatingMachineDynamics", &RotatingMachineDynamics_factory); } void RotatingMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachineDynamics.damping", &assign_RotatingMachineDynamics_damping); - assign_map.emplace("cim:RotatingMachineDynamics.inertia", &assign_RotatingMachineDynamics_inertia); - assign_map.emplace("cim:RotatingMachineDynamics.saturationFactor", &assign_RotatingMachineDynamics_saturationFactor); - assign_map.emplace("cim:RotatingMachineDynamics.saturationFactor120", &assign_RotatingMachineDynamics_saturationFactor120); - assign_map.emplace("cim:RotatingMachineDynamics.statorLeakageReactance", &assign_RotatingMachineDynamics_statorLeakageReactance); - assign_map.emplace("cim:RotatingMachineDynamics.statorResistance", &assign_RotatingMachineDynamics_statorResistance); + assign_map.emplace("RotatingMachineDynamics.damping", &assign_RotatingMachineDynamics_damping); + assign_map.emplace("RotatingMachineDynamics.inertia", &assign_RotatingMachineDynamics_inertia); + assign_map.emplace("RotatingMachineDynamics.saturationFactor", &assign_RotatingMachineDynamics_saturationFactor); + assign_map.emplace("RotatingMachineDynamics.saturationFactor120", &assign_RotatingMachineDynamics_saturationFactor120); + assign_map.emplace("RotatingMachineDynamics.statorLeakageReactance", &assign_RotatingMachineDynamics_statorLeakageReactance); + assign_map.emplace("RotatingMachineDynamics.statorResistance", &assign_RotatingMachineDynamics_statorResistance); } void RotatingMachineDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void RotatingMachineDynamics::addClassAssignFnsToMap(std::unordered_map& get_map) const { DynamicsFunctionBlock::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachineDynamics.damping", &get_RotatingMachineDynamics_damping); - get_map.emplace("cim:RotatingMachineDynamics.inertia", &get_RotatingMachineDynamics_inertia); - get_map.emplace("cim:RotatingMachineDynamics.saturationFactor", &get_RotatingMachineDynamics_saturationFactor); - get_map.emplace("cim:RotatingMachineDynamics.saturationFactor120", &get_RotatingMachineDynamics_saturationFactor120); - get_map.emplace("cim:RotatingMachineDynamics.statorLeakageReactance", &get_RotatingMachineDynamics_statorLeakageReactance); - get_map.emplace("cim:RotatingMachineDynamics.statorResistance", &get_RotatingMachineDynamics_statorResistance); + get_map.emplace("RotatingMachineDynamics.damping", &get_RotatingMachineDynamics_damping); + get_map.emplace("RotatingMachineDynamics.inertia", &get_RotatingMachineDynamics_inertia); + get_map.emplace("RotatingMachineDynamics.saturationFactor", &get_RotatingMachineDynamics_saturationFactor); + get_map.emplace("RotatingMachineDynamics.saturationFactor120", &get_RotatingMachineDynamics_saturationFactor120); + get_map.emplace("RotatingMachineDynamics.statorLeakageReactance", &get_RotatingMachineDynamics_statorLeakageReactance); + get_map.emplace("RotatingMachineDynamics.statorResistance", &get_RotatingMachineDynamics_statorResistance); } void RotatingMachineDynamics::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void RotatingMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RotatingMachineDynamics::declare() { return BaseClassDefiner(RotatingMachineDynamics::addConstructToMap, RotatingMachineDynamics::addPrimitiveAssignFnsToMap, RotatingMachineDynamics::addClassAssignFnsToMap, RotatingMachineDynamics::debugName); } +std::map RotatingMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RotatingMachineDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/RotatingMachineDynamics.hpp b/CGMES_2.4.15_16FEB2016/RotatingMachineDynamics.hpp index 97a2d57c7..269643a8e 100644 --- a/CGMES_2.4.15_16FEB2016/RotatingMachineDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/RotatingMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RotatingMachineDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Season.cpp b/CGMES_2.4.15_16FEB2016/Season.cpp index bd79ad860..2165d9b90 100644 --- a/CGMES_2.4.15_16FEB2016/Season.cpp +++ b/CGMES_2.4.15_16FEB2016/Season.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Season(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Season.SeasonDayTypeSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Season.endDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Season.startDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Season::Season() {} Season::~Season() {} -static const std::list PossibleProfilesForClass = +const std::list& Season::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Season::getClassNamespaceUrl() const { - { "cim:Season.SeasonDayTypeSchedules", { CGMESProfile::EQ, } }, - { "cim:Season.endDate", { CGMESProfile::EQ, } }, - { "cim:Season.startDate", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Season::getPossibleProfilesForClass() const +const std::string& Season::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Season::getPossibleProfilesForAttributes() const +const std::list& Season::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Season::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Season::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Season::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeasonDayTypeSchedule_Season(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* Season::debugString() const void Season::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Season", &Season_factory); + factory_map.emplace("Season", &Season_factory); } void Season::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Season.endDate", &assign_Season_endDate); - assign_map.emplace("cim:Season.startDate", &assign_Season_startDate); + assign_map.emplace("Season.endDate", &assign_Season_endDate); + assign_map.emplace("Season.startDate", &assign_Season_startDate); } void Season::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Season.SeasonDayTypeSchedules", &assign_Season_SeasonDayTypeSchedules); + assign_map.emplace("Season.SeasonDayTypeSchedules", &assign_Season_SeasonDayTypeSchedules); } void Season::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Season.endDate", &get_Season_endDate); - get_map.emplace("cim:Season.startDate", &get_Season_startDate); + get_map.emplace("Season.endDate", &get_Season_endDate); + get_map.emplace("Season.startDate", &get_Season_startDate); } void Season::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void Season::addEnumGetFnsToMap(std::map& get_map) co IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Season::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Season" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Season::declare() { return BaseClassDefiner(Season::addConstructToMap, Season::addPrimitiveAssignFnsToMap, Season::addClassAssignFnsToMap, Season::debugName); } +std::map Season::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Season_factory() diff --git a/CGMES_2.4.15_16FEB2016/Season.hpp b/CGMES_2.4.15_16FEB2016/Season.hpp index 884a07e64..3ec092251 100644 --- a/CGMES_2.4.15_16FEB2016/Season.hpp +++ b/CGMES_2.4.15_16FEB2016/Season.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "MonthDay.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Season_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SeasonDayTypeSchedule.cpp b/CGMES_2.4.15_16FEB2016/SeasonDayTypeSchedule.cpp index dcc36cca0..94301acf8 100644 --- a/CGMES_2.4.15_16FEB2016/SeasonDayTypeSchedule.cpp +++ b/CGMES_2.4.15_16FEB2016/SeasonDayTypeSchedule.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SeasonDayTypeSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SeasonDayTypeSchedule.DayType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeasonDayTypeSchedule.Season", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SeasonDayTypeSchedule::SeasonDayTypeSchedule() : DayType(nullptr), Season(nullptr) {} SeasonDayTypeSchedule::~SeasonDayTypeSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& SeasonDayTypeSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SeasonDayTypeSchedule::getClassNamespaceUrl() const { - { "cim:SeasonDayTypeSchedule.DayType", { CGMESProfile::EQ, } }, - { "cim:SeasonDayTypeSchedule.Season", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SeasonDayTypeSchedule::getPossibleProfilesForClass() const +const std::string& SeasonDayTypeSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SeasonDayTypeSchedule::getPossibleProfilesForAttributes() const +const std::list& SeasonDayTypeSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegularIntervalSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SeasonDayTypeSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SeasonDayTypeSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SeasonDayTypeSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DayType_SeasonDayTypeSchedules(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* SeasonDayTypeSchedule::debugString() const void SeasonDayTypeSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SeasonDayTypeSchedule", &SeasonDayTypeSchedule_factory); + factory_map.emplace("SeasonDayTypeSchedule", &SeasonDayTypeSchedule_factory); } void SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SeasonDayTypeSchedule.DayType", &assign_SeasonDayTypeSchedule_DayType); - assign_map.emplace("cim:SeasonDayTypeSchedule.Season", &assign_SeasonDayTypeSchedule_Season); + assign_map.emplace("SeasonDayTypeSchedule.DayType", &assign_SeasonDayTypeSchedule_DayType); + assign_map.emplace("SeasonDayTypeSchedule.Season", &assign_SeasonDayTypeSchedule_Season); } void SeasonDayTypeSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void SeasonDayTypeSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { RegularIntervalSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SeasonDayTypeSchedule.DayType", &get_SeasonDayTypeSchedule_DayType); - get_map.emplace("cim:SeasonDayTypeSchedule.Season", &get_SeasonDayTypeSchedule_Season); + get_map.emplace("SeasonDayTypeSchedule.DayType", &get_SeasonDayTypeSchedule_DayType); + get_map.emplace("SeasonDayTypeSchedule.Season", &get_SeasonDayTypeSchedule_Season); } void SeasonDayTypeSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void SeasonDayTypeSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SeasonDayTypeSchedule::declare() { return BaseClassDefiner(SeasonDayTypeSchedule::addConstructToMap, SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap, SeasonDayTypeSchedule::addClassAssignFnsToMap, SeasonDayTypeSchedule::debugName); } +std::map SeasonDayTypeSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegularIntervalSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SeasonDayTypeSchedule_factory() diff --git a/CGMES_2.4.15_16FEB2016/SeasonDayTypeSchedule.hpp b/CGMES_2.4.15_16FEB2016/SeasonDayTypeSchedule.hpp index bb3b41a35..42c4c4e94 100644 --- a/CGMES_2.4.15_16FEB2016/SeasonDayTypeSchedule.hpp +++ b/CGMES_2.4.15_16FEB2016/SeasonDayTypeSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegularIntervalSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SeasonDayTypeSchedule_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SeriesCompensator.cpp b/CGMES_2.4.15_16FEB2016/SeriesCompensator.cpp index 291e18404..59ed1c685 100644 --- a/CGMES_2.4.15_16FEB2016/SeriesCompensator.cpp +++ b/CGMES_2.4.15_16FEB2016/SeriesCompensator.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SeriesCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SeriesCompensator.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorPresent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorRatedCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorVoltageThreshold", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SeriesCompensator::SeriesCompensator() {} SeriesCompensator::~SeriesCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& SeriesCompensator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SeriesCompensator::getClassNamespaceUrl() const { - { "cim:SeriesCompensator.r", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.r0", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorPresent", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorRatedCurrent", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorVoltageThreshold", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.x", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SeriesCompensator::getPossibleProfilesForClass() const +const std::string& SeriesCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SeriesCompensator::getPossibleProfilesForAttributes() const +const std::list& SeriesCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SeriesCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SeriesCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SeriesCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeriesCompensator_r(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* SeriesCompensator::debugString() const void SeriesCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SeriesCompensator", &SeriesCompensator_factory); + factory_map.emplace("SeriesCompensator", &SeriesCompensator_factory); } void SeriesCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SeriesCompensator.r", &assign_SeriesCompensator_r); - assign_map.emplace("cim:SeriesCompensator.r0", &assign_SeriesCompensator_r0); - assign_map.emplace("cim:SeriesCompensator.varistorPresent", &assign_SeriesCompensator_varistorPresent); - assign_map.emplace("cim:SeriesCompensator.varistorRatedCurrent", &assign_SeriesCompensator_varistorRatedCurrent); - assign_map.emplace("cim:SeriesCompensator.varistorVoltageThreshold", &assign_SeriesCompensator_varistorVoltageThreshold); - assign_map.emplace("cim:SeriesCompensator.x", &assign_SeriesCompensator_x); - assign_map.emplace("cim:SeriesCompensator.x0", &assign_SeriesCompensator_x0); + assign_map.emplace("SeriesCompensator.r", &assign_SeriesCompensator_r); + assign_map.emplace("SeriesCompensator.r0", &assign_SeriesCompensator_r0); + assign_map.emplace("SeriesCompensator.varistorPresent", &assign_SeriesCompensator_varistorPresent); + assign_map.emplace("SeriesCompensator.varistorRatedCurrent", &assign_SeriesCompensator_varistorRatedCurrent); + assign_map.emplace("SeriesCompensator.varistorVoltageThreshold", &assign_SeriesCompensator_varistorVoltageThreshold); + assign_map.emplace("SeriesCompensator.x", &assign_SeriesCompensator_x); + assign_map.emplace("SeriesCompensator.x0", &assign_SeriesCompensator_x0); } void SeriesCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void SeriesCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SeriesCompensator.r", &get_SeriesCompensator_r); - get_map.emplace("cim:SeriesCompensator.r0", &get_SeriesCompensator_r0); - get_map.emplace("cim:SeriesCompensator.varistorPresent", &get_SeriesCompensator_varistorPresent); - get_map.emplace("cim:SeriesCompensator.varistorRatedCurrent", &get_SeriesCompensator_varistorRatedCurrent); - get_map.emplace("cim:SeriesCompensator.varistorVoltageThreshold", &get_SeriesCompensator_varistorVoltageThreshold); - get_map.emplace("cim:SeriesCompensator.x", &get_SeriesCompensator_x); - get_map.emplace("cim:SeriesCompensator.x0", &get_SeriesCompensator_x0); + get_map.emplace("SeriesCompensator.r", &get_SeriesCompensator_r); + get_map.emplace("SeriesCompensator.r0", &get_SeriesCompensator_r0); + get_map.emplace("SeriesCompensator.varistorPresent", &get_SeriesCompensator_varistorPresent); + get_map.emplace("SeriesCompensator.varistorRatedCurrent", &get_SeriesCompensator_varistorRatedCurrent); + get_map.emplace("SeriesCompensator.varistorVoltageThreshold", &get_SeriesCompensator_varistorVoltageThreshold); + get_map.emplace("SeriesCompensator.x", &get_SeriesCompensator_x); + get_map.emplace("SeriesCompensator.x0", &get_SeriesCompensator_x0); } void SeriesCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void SeriesCompensator::addEnumGetFnsToMap(std::map& ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool SeriesCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SeriesCompensator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SeriesCompensator::declare() { return BaseClassDefiner(SeriesCompensator::addConstructToMap, SeriesCompensator::addPrimitiveAssignFnsToMap, SeriesCompensator::addClassAssignFnsToMap, SeriesCompensator::debugName); } +std::map SeriesCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SeriesCompensator_factory() diff --git a/CGMES_2.4.15_16FEB2016/SeriesCompensator.hpp b/CGMES_2.4.15_16FEB2016/SeriesCompensator.hpp index 8d77b514a..861e5a359 100644 --- a/CGMES_2.4.15_16FEB2016/SeriesCompensator.hpp +++ b/CGMES_2.4.15_16FEB2016/SeriesCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" #include "Reactance.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SeriesCompensator_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SetPoint.cpp b/CGMES_2.4.15_16FEB2016/SetPoint.cpp index 5282827e5..bf0e4e778 100644 --- a/CGMES_2.4.15_16FEB2016/SetPoint.cpp +++ b/CGMES_2.4.15_16FEB2016/SetPoint.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SetPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SetPoint.normalValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SetPoint.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SetPoint::SetPoint() {} SetPoint::~SetPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& SetPoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SetPoint::getClassNamespaceUrl() const { - { "cim:SetPoint.normalValue", { CGMESProfile::EQ, } }, - { "cim:SetPoint.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SetPoint::getPossibleProfilesForClass() const +const std::string& SetPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SetPoint::getPossibleProfilesForAttributes() const +const std::list& SetPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AnalogControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SetPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SetPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SetPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SetPoint_normalValue(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* SetPoint::debugString() const void SetPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SetPoint", &SetPoint_factory); + factory_map.emplace("SetPoint", &SetPoint_factory); } void SetPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SetPoint.normalValue", &assign_SetPoint_normalValue); - assign_map.emplace("cim:SetPoint.value", &assign_SetPoint_value); + assign_map.emplace("SetPoint.normalValue", &assign_SetPoint_normalValue); + assign_map.emplace("SetPoint.value", &assign_SetPoint_value); } void SetPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void SetPoint::addClassAssignFnsToMap(std::unordered_map& get_map) const { AnalogControl::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SetPoint.normalValue", &get_SetPoint_normalValue); - get_map.emplace("cim:SetPoint.value", &get_SetPoint_value); + get_map.emplace("SetPoint.normalValue", &get_SetPoint_normalValue); + get_map.emplace("SetPoint.value", &get_SetPoint_value); } void SetPoint::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void SetPoint::addEnumGetFnsToMap(std::map& get_map) AnalogControl::addEnumGetFnsToMap(get_map); } +bool SetPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SetPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SetPoint::declare() { return BaseClassDefiner(SetPoint::addConstructToMap, SetPoint::addPrimitiveAssignFnsToMap, SetPoint::addClassAssignFnsToMap, SetPoint::debugName); } +std::map SetPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AnalogControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SetPoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/SetPoint.hpp b/CGMES_2.4.15_16FEB2016/SetPoint.hpp index 373731845..30b3a12a0 100644 --- a/CGMES_2.4.15_16FEB2016/SetPoint.hpp +++ b/CGMES_2.4.15_16FEB2016/SetPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AnalogControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SetPoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ShuntCompensator.cpp b/CGMES_2.4.15_16FEB2016/ShuntCompensator.cpp index 53878ebfa..57cca14f2 100644 --- a/CGMES_2.4.15_16FEB2016/ShuntCompensator.cpp +++ b/CGMES_2.4.15_16FEB2016/ShuntCompensator.cpp @@ -12,43 +12,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ShuntCompensator.SvShuntCompensatorSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ShuntCompensator.aVRDelay", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.grounded", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.maximumSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.nomU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.normalSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.sections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ShuntCompensator.switchOnCount", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.switchOnDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.voltageSensitivity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ShuntCompensator::ShuntCompensator() : SvShuntCompensatorSections(nullptr) {} ShuntCompensator::~ShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& ShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ShuntCompensator::getClassNamespaceUrl() const { - { "cim:ShuntCompensator.SvShuntCompensatorSections", { CGMESProfile::SV, } }, - { "cim:ShuntCompensator.aVRDelay", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.grounded", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.maximumSections", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.nomU", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.normalSections", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.sections", { CGMESProfile::SSH, } }, - { "cim:ShuntCompensator.switchOnCount", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.switchOnDate", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.voltageSensitivity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ShuntCompensator::getPossibleProfilesForClass() const +const std::string& ShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& ShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvShuntCompensatorSections_ShuntCompensator(BaseClass*, BaseClass*); @@ -338,39 +370,39 @@ const char* ShuntCompensator::debugString() const void ShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ShuntCompensator", &ShuntCompensator_factory); + factory_map.emplace("ShuntCompensator", &ShuntCompensator_factory); } void ShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ShuntCompensator.aVRDelay", &assign_ShuntCompensator_aVRDelay); - assign_map.emplace("cim:ShuntCompensator.grounded", &assign_ShuntCompensator_grounded); - assign_map.emplace("cim:ShuntCompensator.maximumSections", &assign_ShuntCompensator_maximumSections); - assign_map.emplace("cim:ShuntCompensator.nomU", &assign_ShuntCompensator_nomU); - assign_map.emplace("cim:ShuntCompensator.normalSections", &assign_ShuntCompensator_normalSections); - assign_map.emplace("cim:ShuntCompensator.sections", &assign_ShuntCompensator_sections); - assign_map.emplace("cim:ShuntCompensator.switchOnCount", &assign_ShuntCompensator_switchOnCount); - assign_map.emplace("cim:ShuntCompensator.switchOnDate", &assign_ShuntCompensator_switchOnDate); - assign_map.emplace("cim:ShuntCompensator.voltageSensitivity", &assign_ShuntCompensator_voltageSensitivity); + assign_map.emplace("ShuntCompensator.aVRDelay", &assign_ShuntCompensator_aVRDelay); + assign_map.emplace("ShuntCompensator.grounded", &assign_ShuntCompensator_grounded); + assign_map.emplace("ShuntCompensator.maximumSections", &assign_ShuntCompensator_maximumSections); + assign_map.emplace("ShuntCompensator.nomU", &assign_ShuntCompensator_nomU); + assign_map.emplace("ShuntCompensator.normalSections", &assign_ShuntCompensator_normalSections); + assign_map.emplace("ShuntCompensator.sections", &assign_ShuntCompensator_sections); + assign_map.emplace("ShuntCompensator.switchOnCount", &assign_ShuntCompensator_switchOnCount); + assign_map.emplace("ShuntCompensator.switchOnDate", &assign_ShuntCompensator_switchOnDate); + assign_map.emplace("ShuntCompensator.voltageSensitivity", &assign_ShuntCompensator_voltageSensitivity); } void ShuntCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ShuntCompensator.SvShuntCompensatorSections", &assign_ShuntCompensator_SvShuntCompensatorSections); + assign_map.emplace("ShuntCompensator.SvShuntCompensatorSections", &assign_ShuntCompensator_SvShuntCompensatorSections); } void ShuntCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ShuntCompensator.aVRDelay", &get_ShuntCompensator_aVRDelay); - get_map.emplace("cim:ShuntCompensator.grounded", &get_ShuntCompensator_grounded); - get_map.emplace("cim:ShuntCompensator.maximumSections", &get_ShuntCompensator_maximumSections); - get_map.emplace("cim:ShuntCompensator.nomU", &get_ShuntCompensator_nomU); - get_map.emplace("cim:ShuntCompensator.normalSections", &get_ShuntCompensator_normalSections); - get_map.emplace("cim:ShuntCompensator.sections", &get_ShuntCompensator_sections); - get_map.emplace("cim:ShuntCompensator.switchOnCount", &get_ShuntCompensator_switchOnCount); - get_map.emplace("cim:ShuntCompensator.switchOnDate", &get_ShuntCompensator_switchOnDate); - get_map.emplace("cim:ShuntCompensator.voltageSensitivity", &get_ShuntCompensator_voltageSensitivity); + get_map.emplace("ShuntCompensator.aVRDelay", &get_ShuntCompensator_aVRDelay); + get_map.emplace("ShuntCompensator.grounded", &get_ShuntCompensator_grounded); + get_map.emplace("ShuntCompensator.maximumSections", &get_ShuntCompensator_maximumSections); + get_map.emplace("ShuntCompensator.nomU", &get_ShuntCompensator_nomU); + get_map.emplace("ShuntCompensator.normalSections", &get_ShuntCompensator_normalSections); + get_map.emplace("ShuntCompensator.sections", &get_ShuntCompensator_sections); + get_map.emplace("ShuntCompensator.switchOnCount", &get_ShuntCompensator_switchOnCount); + get_map.emplace("ShuntCompensator.switchOnDate", &get_ShuntCompensator_switchOnDate); + get_map.emplace("ShuntCompensator.voltageSensitivity", &get_ShuntCompensator_voltageSensitivity); } void ShuntCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -383,11 +415,25 @@ void ShuntCompensator::addEnumGetFnsToMap(std::map& g RegulatingCondEq::addEnumGetFnsToMap(get_map); } +bool ShuntCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ShuntCompensator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ShuntCompensator::declare() { return BaseClassDefiner(ShuntCompensator::addConstructToMap, ShuntCompensator::addPrimitiveAssignFnsToMap, ShuntCompensator::addClassAssignFnsToMap, ShuntCompensator::debugName); } +std::map ShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ShuntCompensator_factory() diff --git a/CGMES_2.4.15_16FEB2016/ShuntCompensator.hpp b/CGMES_2.4.15_16FEB2016/ShuntCompensator.hpp index 96927b2f6..80400623c 100644 --- a/CGMES_2.4.15_16FEB2016/ShuntCompensator.hpp +++ b/CGMES_2.4.15_16FEB2016/ShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "DateTime.hpp" #include "Integer.hpp" @@ -65,8 +66,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -74,7 +82,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ShuntCompensator_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SolarGeneratingUnit.cpp b/CGMES_2.4.15_16FEB2016/SolarGeneratingUnit.cpp index 0887d1cbb..4a1e14b5f 100644 --- a/CGMES_2.4.15_16FEB2016/SolarGeneratingUnit.cpp +++ b/CGMES_2.4.15_16FEB2016/SolarGeneratingUnit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SolarGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + SolarGeneratingUnit::SolarGeneratingUnit() {} SolarGeneratingUnit::~SolarGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& SolarGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SolarGeneratingUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SolarGeneratingUnit::getPossibleProfilesForClass() const +const std::string& SolarGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SolarGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& SolarGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SolarGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SolarGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SolarGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char SolarGeneratingUnit::debugName[] = "SolarGeneratingUnit"; @@ -47,7 +79,7 @@ const char* SolarGeneratingUnit::debugString() const void SolarGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SolarGeneratingUnit", &SolarGeneratingUnit_factory); + factory_map.emplace("SolarGeneratingUnit", &SolarGeneratingUnit_factory); } void SolarGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void SolarGeneratingUnit::addEnumGetFnsToMap(std::map GeneratingUnit::addEnumGetFnsToMap(get_map); } +bool SolarGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SolarGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SolarGeneratingUnit::declare() { return BaseClassDefiner(SolarGeneratingUnit::addConstructToMap, SolarGeneratingUnit::addPrimitiveAssignFnsToMap, SolarGeneratingUnit::addClassAssignFnsToMap, SolarGeneratingUnit::debugName); } +std::map SolarGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SolarGeneratingUnit_factory() diff --git a/CGMES_2.4.15_16FEB2016/SolarGeneratingUnit.hpp b/CGMES_2.4.15_16FEB2016/SolarGeneratingUnit.hpp index 30f338f85..3fb135e04 100644 --- a/CGMES_2.4.15_16FEB2016/SolarGeneratingUnit.hpp +++ b/CGMES_2.4.15_16FEB2016/SolarGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SolarGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/StateVariablesVersion.cpp b/CGMES_2.4.15_16FEB2016/StateVariablesVersion.cpp index f123f86d6..cf235f5a6 100644 --- a/CGMES_2.4.15_16FEB2016/StateVariablesVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/StateVariablesVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StateVariablesVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StateVariablesVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + StateVariablesVersion::StateVariablesVersion() {} StateVariablesVersion::~StateVariablesVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& StateVariablesVersion::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StateVariablesVersion::getClassNamespaceUrl() const { - { "cim:StateVariablesVersion.baseUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.baseURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.date", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.differenceModelURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.entsoeUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.entsoeURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.modelDescriptionURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.namespaceRDF", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.namespaceUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.shortName", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StateVariablesVersion::getPossibleProfilesForClass() const +const std::string& StateVariablesVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StateVariablesVersion::getPossibleProfilesForAttributes() const +const std::list& StateVariablesVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StateVariablesVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StateVariablesVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StateVariablesVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StateVariablesVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* StateVariablesVersion::debugString() const void StateVariablesVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StateVariablesVersion", &StateVariablesVersion_factory); + factory_map.emplace("StateVariablesVersion", &StateVariablesVersion_factory); } void StateVariablesVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StateVariablesVersion.baseUML", &assign_StateVariablesVersion_baseUML); - assign_map.emplace("cim:StateVariablesVersion.baseURI", &assign_StateVariablesVersion_baseURI); - assign_map.emplace("cim:StateVariablesVersion.date", &assign_StateVariablesVersion_date); - assign_map.emplace("cim:StateVariablesVersion.differenceModelURI", &assign_StateVariablesVersion_differenceModelURI); - assign_map.emplace("cim:StateVariablesVersion.entsoeUML", &assign_StateVariablesVersion_entsoeUML); - assign_map.emplace("cim:StateVariablesVersion.entsoeURI", &assign_StateVariablesVersion_entsoeURI); - assign_map.emplace("cim:StateVariablesVersion.modelDescriptionURI", &assign_StateVariablesVersion_modelDescriptionURI); - assign_map.emplace("cim:StateVariablesVersion.namespaceRDF", &assign_StateVariablesVersion_namespaceRDF); - assign_map.emplace("cim:StateVariablesVersion.namespaceUML", &assign_StateVariablesVersion_namespaceUML); - assign_map.emplace("cim:StateVariablesVersion.shortName", &assign_StateVariablesVersion_shortName); + assign_map.emplace("StateVariablesVersion.baseUML", &assign_StateVariablesVersion_baseUML); + assign_map.emplace("StateVariablesVersion.baseURI", &assign_StateVariablesVersion_baseURI); + assign_map.emplace("StateVariablesVersion.date", &assign_StateVariablesVersion_date); + assign_map.emplace("StateVariablesVersion.differenceModelURI", &assign_StateVariablesVersion_differenceModelURI); + assign_map.emplace("StateVariablesVersion.entsoeUML", &assign_StateVariablesVersion_entsoeUML); + assign_map.emplace("StateVariablesVersion.entsoeURI", &assign_StateVariablesVersion_entsoeURI); + assign_map.emplace("StateVariablesVersion.modelDescriptionURI", &assign_StateVariablesVersion_modelDescriptionURI); + assign_map.emplace("StateVariablesVersion.namespaceRDF", &assign_StateVariablesVersion_namespaceRDF); + assign_map.emplace("StateVariablesVersion.namespaceUML", &assign_StateVariablesVersion_namespaceUML); + assign_map.emplace("StateVariablesVersion.shortName", &assign_StateVariablesVersion_shortName); } void StateVariablesVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void StateVariablesVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StateVariablesVersion.baseUML", &get_StateVariablesVersion_baseUML); - get_map.emplace("cim:StateVariablesVersion.baseURI", &get_StateVariablesVersion_baseURI); - get_map.emplace("cim:StateVariablesVersion.date", &get_StateVariablesVersion_date); - get_map.emplace("cim:StateVariablesVersion.differenceModelURI", &get_StateVariablesVersion_differenceModelURI); - get_map.emplace("cim:StateVariablesVersion.entsoeUML", &get_StateVariablesVersion_entsoeUML); - get_map.emplace("cim:StateVariablesVersion.entsoeURI", &get_StateVariablesVersion_entsoeURI); - get_map.emplace("cim:StateVariablesVersion.modelDescriptionURI", &get_StateVariablesVersion_modelDescriptionURI); - get_map.emplace("cim:StateVariablesVersion.namespaceRDF", &get_StateVariablesVersion_namespaceRDF); - get_map.emplace("cim:StateVariablesVersion.namespaceUML", &get_StateVariablesVersion_namespaceUML); - get_map.emplace("cim:StateVariablesVersion.shortName", &get_StateVariablesVersion_shortName); + get_map.emplace("StateVariablesVersion.baseUML", &get_StateVariablesVersion_baseUML); + get_map.emplace("StateVariablesVersion.baseURI", &get_StateVariablesVersion_baseURI); + get_map.emplace("StateVariablesVersion.date", &get_StateVariablesVersion_date); + get_map.emplace("StateVariablesVersion.differenceModelURI", &get_StateVariablesVersion_differenceModelURI); + get_map.emplace("StateVariablesVersion.entsoeUML", &get_StateVariablesVersion_entsoeUML); + get_map.emplace("StateVariablesVersion.entsoeURI", &get_StateVariablesVersion_entsoeURI); + get_map.emplace("StateVariablesVersion.modelDescriptionURI", &get_StateVariablesVersion_modelDescriptionURI); + get_map.emplace("StateVariablesVersion.namespaceRDF", &get_StateVariablesVersion_namespaceRDF); + get_map.emplace("StateVariablesVersion.namespaceUML", &get_StateVariablesVersion_namespaceUML); + get_map.emplace("StateVariablesVersion.shortName", &get_StateVariablesVersion_shortName); } void StateVariablesVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void StateVariablesVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner StateVariablesVersion::declare() { return BaseClassDefiner(StateVariablesVersion::addConstructToMap, StateVariablesVersion::addPrimitiveAssignFnsToMap, StateVariablesVersion::addClassAssignFnsToMap, StateVariablesVersion::debugName); } +std::map StateVariablesVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StateVariablesVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/StateVariablesVersion.hpp b/CGMES_2.4.15_16FEB2016/StateVariablesVersion.hpp index d6263d5d7..b665e46c1 100644 --- a/CGMES_2.4.15_16FEB2016/StateVariablesVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/StateVariablesVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StateVariablesVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/StaticVarCompensator.cpp b/CGMES_2.4.15_16FEB2016/StaticVarCompensator.cpp index ae413174a..7061f39e2 100644 --- a/CGMES_2.4.15_16FEB2016/StaticVarCompensator.cpp +++ b/CGMES_2.4.15_16FEB2016/StaticVarCompensator.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StaticVarCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StaticVarCompensator.capacitiveRating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.inductiveRating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "StaticVarCompensator.sVCControlMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.slope", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.voltageSetPoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StaticVarCompensator::StaticVarCompensator() {} StaticVarCompensator::~StaticVarCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& StaticVarCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StaticVarCompensator::getClassNamespaceUrl() const { - { "cim:StaticVarCompensator.capacitiveRating", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.inductiveRating", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.q", { CGMESProfile::SSH, } }, - { "cim:StaticVarCompensator.sVCControlMode", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.slope", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.voltageSetPoint", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StaticVarCompensator::getPossibleProfilesForClass() const +const std::string& StaticVarCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StaticVarCompensator::getPossibleProfilesForAttributes() const +const std::list& StaticVarCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StaticVarCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StaticVarCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StaticVarCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StaticVarCompensator_capacitiveRating(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -227,17 +259,17 @@ const char* StaticVarCompensator::debugString() const void StaticVarCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StaticVarCompensator", &StaticVarCompensator_factory); + factory_map.emplace("StaticVarCompensator", &StaticVarCompensator_factory); } void StaticVarCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StaticVarCompensator.capacitiveRating", &assign_StaticVarCompensator_capacitiveRating); - assign_map.emplace("cim:StaticVarCompensator.inductiveRating", &assign_StaticVarCompensator_inductiveRating); - assign_map.emplace("cim:StaticVarCompensator.q", &assign_StaticVarCompensator_q); - assign_map.emplace("cim:StaticVarCompensator.sVCControlMode", &assign_StaticVarCompensator_sVCControlMode); - assign_map.emplace("cim:StaticVarCompensator.slope", &assign_StaticVarCompensator_slope); - assign_map.emplace("cim:StaticVarCompensator.voltageSetPoint", &assign_StaticVarCompensator_voltageSetPoint); + assign_map.emplace("StaticVarCompensator.capacitiveRating", &assign_StaticVarCompensator_capacitiveRating); + assign_map.emplace("StaticVarCompensator.inductiveRating", &assign_StaticVarCompensator_inductiveRating); + assign_map.emplace("StaticVarCompensator.q", &assign_StaticVarCompensator_q); + assign_map.emplace("StaticVarCompensator.sVCControlMode", &assign_StaticVarCompensator_sVCControlMode); + assign_map.emplace("StaticVarCompensator.slope", &assign_StaticVarCompensator_slope); + assign_map.emplace("StaticVarCompensator.voltageSetPoint", &assign_StaticVarCompensator_voltageSetPoint); } void StaticVarCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -247,11 +279,11 @@ void StaticVarCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensator.capacitiveRating", &get_StaticVarCompensator_capacitiveRating); - get_map.emplace("cim:StaticVarCompensator.inductiveRating", &get_StaticVarCompensator_inductiveRating); - get_map.emplace("cim:StaticVarCompensator.q", &get_StaticVarCompensator_q); - get_map.emplace("cim:StaticVarCompensator.slope", &get_StaticVarCompensator_slope); - get_map.emplace("cim:StaticVarCompensator.voltageSetPoint", &get_StaticVarCompensator_voltageSetPoint); + get_map.emplace("StaticVarCompensator.capacitiveRating", &get_StaticVarCompensator_capacitiveRating); + get_map.emplace("StaticVarCompensator.inductiveRating", &get_StaticVarCompensator_inductiveRating); + get_map.emplace("StaticVarCompensator.q", &get_StaticVarCompensator_q); + get_map.emplace("StaticVarCompensator.slope", &get_StaticVarCompensator_slope); + get_map.emplace("StaticVarCompensator.voltageSetPoint", &get_StaticVarCompensator_voltageSetPoint); } void StaticVarCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -262,7 +294,13 @@ void StaticVarCompensator::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensator.sVCControlMode", &get_StaticVarCompensator_sVCControlMode); + get_map.emplace("StaticVarCompensator.sVCControlMode", &get_StaticVarCompensator_sVCControlMode); +} + +bool StaticVarCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StaticVarCompensator" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner StaticVarCompensator::declare() @@ -270,6 +308,14 @@ const BaseClassDefiner StaticVarCompensator::declare() return BaseClassDefiner(StaticVarCompensator::addConstructToMap, StaticVarCompensator::addPrimitiveAssignFnsToMap, StaticVarCompensator::addClassAssignFnsToMap, StaticVarCompensator::debugName); } +std::map StaticVarCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StaticVarCompensator_factory() diff --git a/CGMES_2.4.15_16FEB2016/StaticVarCompensator.hpp b/CGMES_2.4.15_16FEB2016/StaticVarCompensator.hpp index b6770d818..5be986cb6 100644 --- a/CGMES_2.4.15_16FEB2016/StaticVarCompensator.hpp +++ b/CGMES_2.4.15_16FEB2016/StaticVarCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" #include "ReactivePower.hpp" #include "SVCControlMode.hpp" @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StaticVarCompensator_factory(); diff --git a/CGMES_2.4.15_16FEB2016/StationSupply.cpp b/CGMES_2.4.15_16FEB2016/StationSupply.cpp index 71ca77084..8848c92ab 100644 --- a/CGMES_2.4.15_16FEB2016/StationSupply.cpp +++ b/CGMES_2.4.15_16FEB2016/StationSupply.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StationSupply(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + StationSupply::StationSupply() {} StationSupply::~StationSupply() {} -static const std::list PossibleProfilesForClass = +const std::list& StationSupply::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StationSupply::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StationSupply::getPossibleProfilesForClass() const +const std::string& StationSupply::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StationSupply::getPossibleProfilesForAttributes() const +const std::list& StationSupply::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StationSupply::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StationSupply::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StationSupply::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char StationSupply::debugName[] = "StationSupply"; @@ -47,7 +79,7 @@ const char* StationSupply::debugString() const void StationSupply::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StationSupply", &StationSupply_factory); + factory_map.emplace("StationSupply", &StationSupply_factory); } void StationSupply::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void StationSupply::addEnumGetFnsToMap(std::map& get_ EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool StationSupply::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StationSupply" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StationSupply::declare() { return BaseClassDefiner(StationSupply::addConstructToMap, StationSupply::addPrimitiveAssignFnsToMap, StationSupply::addClassAssignFnsToMap, StationSupply::debugName); } +std::map StationSupply::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StationSupply_factory() diff --git a/CGMES_2.4.15_16FEB2016/StationSupply.hpp b/CGMES_2.4.15_16FEB2016/StationSupply.hpp index f95e7ce94..7c688152c 100644 --- a/CGMES_2.4.15_16FEB2016/StationSupply.hpp +++ b/CGMES_2.4.15_16FEB2016/StationSupply.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StationSupply_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SteadyStateHypothesisVersion.cpp b/CGMES_2.4.15_16FEB2016/SteadyStateHypothesisVersion.cpp index 3a521cfe8..cd79b7af1 100644 --- a/CGMES_2.4.15_16FEB2016/SteadyStateHypothesisVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/SteadyStateHypothesisVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SteadyStateHypothesisVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::SSH, + }, + CGMESProfile::SSH + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SteadyStateHypothesisVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + SteadyStateHypothesisVersion::SteadyStateHypothesisVersion() {} SteadyStateHypothesisVersion::~SteadyStateHypothesisVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& SteadyStateHypothesisVersion::getAttributeNames() const { - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SteadyStateHypothesisVersion::getClassNamespaceUrl() const { - { "cim:SteadyStateHypothesisVersion.baseUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.baseURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.date", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.differenceModelURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.entsoeUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.entsoeURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.modelDescriptionURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.namespaceRDF", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.namespaceUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.shortName", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SteadyStateHypothesisVersion::getPossibleProfilesForClass() const +const std::string& SteadyStateHypothesisVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SteadyStateHypothesisVersion::getPossibleProfilesForAttributes() const +const std::list& SteadyStateHypothesisVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SteadyStateHypothesisVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SteadyStateHypothesisVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SteadyStateHypothesisVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SteadyStateHypothesisVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* SteadyStateHypothesisVersion::debugString() const void SteadyStateHypothesisVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SteadyStateHypothesisVersion", &SteadyStateHypothesisVersion_factory); + factory_map.emplace("SteadyStateHypothesisVersion", &SteadyStateHypothesisVersion_factory); } void SteadyStateHypothesisVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SteadyStateHypothesisVersion.baseUML", &assign_SteadyStateHypothesisVersion_baseUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.baseURI", &assign_SteadyStateHypothesisVersion_baseURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.date", &assign_SteadyStateHypothesisVersion_date); - assign_map.emplace("cim:SteadyStateHypothesisVersion.differenceModelURI", &assign_SteadyStateHypothesisVersion_differenceModelURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.entsoeUML", &assign_SteadyStateHypothesisVersion_entsoeUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.entsoeURI", &assign_SteadyStateHypothesisVersion_entsoeURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.modelDescriptionURI", &assign_SteadyStateHypothesisVersion_modelDescriptionURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.namespaceRDF", &assign_SteadyStateHypothesisVersion_namespaceRDF); - assign_map.emplace("cim:SteadyStateHypothesisVersion.namespaceUML", &assign_SteadyStateHypothesisVersion_namespaceUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.shortName", &assign_SteadyStateHypothesisVersion_shortName); + assign_map.emplace("SteadyStateHypothesisVersion.baseUML", &assign_SteadyStateHypothesisVersion_baseUML); + assign_map.emplace("SteadyStateHypothesisVersion.baseURI", &assign_SteadyStateHypothesisVersion_baseURI); + assign_map.emplace("SteadyStateHypothesisVersion.date", &assign_SteadyStateHypothesisVersion_date); + assign_map.emplace("SteadyStateHypothesisVersion.differenceModelURI", &assign_SteadyStateHypothesisVersion_differenceModelURI); + assign_map.emplace("SteadyStateHypothesisVersion.entsoeUML", &assign_SteadyStateHypothesisVersion_entsoeUML); + assign_map.emplace("SteadyStateHypothesisVersion.entsoeURI", &assign_SteadyStateHypothesisVersion_entsoeURI); + assign_map.emplace("SteadyStateHypothesisVersion.modelDescriptionURI", &assign_SteadyStateHypothesisVersion_modelDescriptionURI); + assign_map.emplace("SteadyStateHypothesisVersion.namespaceRDF", &assign_SteadyStateHypothesisVersion_namespaceRDF); + assign_map.emplace("SteadyStateHypothesisVersion.namespaceUML", &assign_SteadyStateHypothesisVersion_namespaceUML); + assign_map.emplace("SteadyStateHypothesisVersion.shortName", &assign_SteadyStateHypothesisVersion_shortName); } void SteadyStateHypothesisVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void SteadyStateHypothesisVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SteadyStateHypothesisVersion.baseUML", &get_SteadyStateHypothesisVersion_baseUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.baseURI", &get_SteadyStateHypothesisVersion_baseURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.date", &get_SteadyStateHypothesisVersion_date); - get_map.emplace("cim:SteadyStateHypothesisVersion.differenceModelURI", &get_SteadyStateHypothesisVersion_differenceModelURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.entsoeUML", &get_SteadyStateHypothesisVersion_entsoeUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.entsoeURI", &get_SteadyStateHypothesisVersion_entsoeURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.modelDescriptionURI", &get_SteadyStateHypothesisVersion_modelDescriptionURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.namespaceRDF", &get_SteadyStateHypothesisVersion_namespaceRDF); - get_map.emplace("cim:SteadyStateHypothesisVersion.namespaceUML", &get_SteadyStateHypothesisVersion_namespaceUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.shortName", &get_SteadyStateHypothesisVersion_shortName); + get_map.emplace("SteadyStateHypothesisVersion.baseUML", &get_SteadyStateHypothesisVersion_baseUML); + get_map.emplace("SteadyStateHypothesisVersion.baseURI", &get_SteadyStateHypothesisVersion_baseURI); + get_map.emplace("SteadyStateHypothesisVersion.date", &get_SteadyStateHypothesisVersion_date); + get_map.emplace("SteadyStateHypothesisVersion.differenceModelURI", &get_SteadyStateHypothesisVersion_differenceModelURI); + get_map.emplace("SteadyStateHypothesisVersion.entsoeUML", &get_SteadyStateHypothesisVersion_entsoeUML); + get_map.emplace("SteadyStateHypothesisVersion.entsoeURI", &get_SteadyStateHypothesisVersion_entsoeURI); + get_map.emplace("SteadyStateHypothesisVersion.modelDescriptionURI", &get_SteadyStateHypothesisVersion_modelDescriptionURI); + get_map.emplace("SteadyStateHypothesisVersion.namespaceRDF", &get_SteadyStateHypothesisVersion_namespaceRDF); + get_map.emplace("SteadyStateHypothesisVersion.namespaceUML", &get_SteadyStateHypothesisVersion_namespaceUML); + get_map.emplace("SteadyStateHypothesisVersion.shortName", &get_SteadyStateHypothesisVersion_shortName); } void SteadyStateHypothesisVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void SteadyStateHypothesisVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SteadyStateHypothesisVersion::declare() { return BaseClassDefiner(SteadyStateHypothesisVersion::addConstructToMap, SteadyStateHypothesisVersion::addPrimitiveAssignFnsToMap, SteadyStateHypothesisVersion::addClassAssignFnsToMap, SteadyStateHypothesisVersion::debugName); } +std::map SteadyStateHypothesisVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SteadyStateHypothesisVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/SteadyStateHypothesisVersion.hpp b/CGMES_2.4.15_16FEB2016/SteadyStateHypothesisVersion.hpp index a856a19e7..3ec922a1b 100644 --- a/CGMES_2.4.15_16FEB2016/SteadyStateHypothesisVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/SteadyStateHypothesisVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SteadyStateHypothesisVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/StringMeasurement.cpp b/CGMES_2.4.15_16FEB2016/StringMeasurement.cpp index ca7025e57..7af90f7c4 100644 --- a/CGMES_2.4.15_16FEB2016/StringMeasurement.cpp +++ b/CGMES_2.4.15_16FEB2016/StringMeasurement.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StringMeasurement(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StringMeasurement.StringMeasurementValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StringMeasurement::StringMeasurement() {} StringMeasurement::~StringMeasurement() {} -static const std::list PossibleProfilesForClass = +const std::list& StringMeasurement::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StringMeasurement::getClassNamespaceUrl() const { - { "cim:StringMeasurement.StringMeasurementValues", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StringMeasurement::getPossibleProfilesForClass() const +const std::string& StringMeasurement::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StringMeasurement::getPossibleProfilesForAttributes() const +const std::list& StringMeasurement::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StringMeasurement::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StringMeasurement::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StringMeasurement::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StringMeasurementValue_StringMeasurement(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* StringMeasurement::debugString() const void StringMeasurement::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StringMeasurement", &StringMeasurement_factory); + factory_map.emplace("StringMeasurement", &StringMeasurement_factory); } void StringMeasurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void StringMeasurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurement.StringMeasurementValues", &assign_StringMeasurement_StringMeasurementValues); + assign_map.emplace("StringMeasurement.StringMeasurementValues", &assign_StringMeasurement_StringMeasurementValues); } void StringMeasurement::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void StringMeasurement::addEnumGetFnsToMap(std::map& Measurement::addEnumGetFnsToMap(get_map); } +bool StringMeasurement::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StringMeasurement" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StringMeasurement::declare() { return BaseClassDefiner(StringMeasurement::addConstructToMap, StringMeasurement::addPrimitiveAssignFnsToMap, StringMeasurement::addClassAssignFnsToMap, StringMeasurement::debugName); } +std::map StringMeasurement::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StringMeasurement_factory() diff --git a/CGMES_2.4.15_16FEB2016/StringMeasurement.hpp b/CGMES_2.4.15_16FEB2016/StringMeasurement.hpp index 21841ff08..baf309b1a 100644 --- a/CGMES_2.4.15_16FEB2016/StringMeasurement.hpp +++ b/CGMES_2.4.15_16FEB2016/StringMeasurement.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StringMeasurement_factory(); diff --git a/CGMES_2.4.15_16FEB2016/StringMeasurementValue.cpp b/CGMES_2.4.15_16FEB2016/StringMeasurementValue.cpp index 217c82c6c..6cd70b363 100644 --- a/CGMES_2.4.15_16FEB2016/StringMeasurementValue.cpp +++ b/CGMES_2.4.15_16FEB2016/StringMeasurementValue.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StringMeasurementValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StringMeasurementValue.StringMeasurement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StringMeasurementValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StringMeasurementValue::StringMeasurementValue() : StringMeasurement(nullptr) {} StringMeasurementValue::~StringMeasurementValue() {} -static const std::list PossibleProfilesForClass = +const std::list& StringMeasurementValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StringMeasurementValue::getClassNamespaceUrl() const { - { "cim:StringMeasurementValue.StringMeasurement", { CGMESProfile::EQ, } }, - { "cim:StringMeasurementValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StringMeasurementValue::getPossibleProfilesForClass() const +const std::string& StringMeasurementValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StringMeasurementValue::getPossibleProfilesForAttributes() const +const std::list& StringMeasurementValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StringMeasurementValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StringMeasurementValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StringMeasurementValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StringMeasurement_StringMeasurementValues(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* StringMeasurementValue::debugString() const void StringMeasurementValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StringMeasurementValue", &StringMeasurementValue_factory); + factory_map.emplace("StringMeasurementValue", &StringMeasurementValue_factory); } void StringMeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurementValue.value", &assign_StringMeasurementValue_value); + assign_map.emplace("StringMeasurementValue.value", &assign_StringMeasurementValue_value); } void StringMeasurementValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurementValue.StringMeasurement", &assign_StringMeasurementValue_StringMeasurement); + assign_map.emplace("StringMeasurementValue.StringMeasurement", &assign_StringMeasurementValue_StringMeasurement); } void StringMeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StringMeasurementValue.value", &get_StringMeasurementValue_value); + get_map.emplace("StringMeasurementValue.value", &get_StringMeasurementValue_value); } void StringMeasurementValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:StringMeasurementValue.StringMeasurement", &get_StringMeasurementValue_StringMeasurement); + get_map.emplace("StringMeasurementValue.StringMeasurement", &get_StringMeasurementValue_StringMeasurement); } void StringMeasurementValue::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void StringMeasurementValue::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner StringMeasurementValue::declare() { return BaseClassDefiner(StringMeasurementValue::addConstructToMap, StringMeasurementValue::addPrimitiveAssignFnsToMap, StringMeasurementValue::addClassAssignFnsToMap, StringMeasurementValue::debugName); } +std::map StringMeasurementValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StringMeasurementValue_factory() diff --git a/CGMES_2.4.15_16FEB2016/StringMeasurementValue.hpp b/CGMES_2.4.15_16FEB2016/StringMeasurementValue.hpp index 1207671b5..ba0cd81e3 100644 --- a/CGMES_2.4.15_16FEB2016/StringMeasurementValue.hpp +++ b/CGMES_2.4.15_16FEB2016/StringMeasurementValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StringMeasurementValue_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SubGeographicalRegion.cpp b/CGMES_2.4.15_16FEB2016/SubGeographicalRegion.cpp index 2bc1a8c1b..0e6392751 100644 --- a/CGMES_2.4.15_16FEB2016/SubGeographicalRegion.cpp +++ b/CGMES_2.4.15_16FEB2016/SubGeographicalRegion.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SubGeographicalRegion(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SubGeographicalRegion.DCLines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Lines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Substations", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SubGeographicalRegion::SubGeographicalRegion() : Region(nullptr) {} SubGeographicalRegion::~SubGeographicalRegion() {} -static const std::list PossibleProfilesForClass = +const std::list& SubGeographicalRegion::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SubGeographicalRegion::getClassNamespaceUrl() const { - { "cim:SubGeographicalRegion.DCLines", { CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Lines", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Region", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Substations", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SubGeographicalRegion::getPossibleProfilesForClass() const +const std::string& SubGeographicalRegion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SubGeographicalRegion::getPossibleProfilesForAttributes() const +const std::list& SubGeographicalRegion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SubGeographicalRegion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SubGeographicalRegion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SubGeographicalRegion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCLine_Region(BaseClass*, BaseClass*); @@ -140,7 +172,7 @@ const char* SubGeographicalRegion::debugString() const void SubGeographicalRegion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SubGeographicalRegion", &SubGeographicalRegion_factory); + factory_map.emplace("SubGeographicalRegion", &SubGeographicalRegion_factory); } void SubGeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -149,10 +181,10 @@ void SubGeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SubGeographicalRegion.DCLines", &assign_SubGeographicalRegion_DCLines); - assign_map.emplace("cim:SubGeographicalRegion.Lines", &assign_SubGeographicalRegion_Lines); - assign_map.emplace("cim:SubGeographicalRegion.Region", &assign_SubGeographicalRegion_Region); - assign_map.emplace("cim:SubGeographicalRegion.Substations", &assign_SubGeographicalRegion_Substations); + assign_map.emplace("SubGeographicalRegion.DCLines", &assign_SubGeographicalRegion_DCLines); + assign_map.emplace("SubGeographicalRegion.Lines", &assign_SubGeographicalRegion_Lines); + assign_map.emplace("SubGeographicalRegion.Region", &assign_SubGeographicalRegion_Region); + assign_map.emplace("SubGeographicalRegion.Substations", &assign_SubGeographicalRegion_Substations); } void SubGeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -163,7 +195,7 @@ void SubGeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SubGeographicalRegion.Region", &get_SubGeographicalRegion_Region); + get_map.emplace("SubGeographicalRegion.Region", &get_SubGeographicalRegion_Region); } void SubGeographicalRegion::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SubGeographicalRegion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SubGeographicalRegion::declare() { return BaseClassDefiner(SubGeographicalRegion::addConstructToMap, SubGeographicalRegion::addPrimitiveAssignFnsToMap, SubGeographicalRegion::addClassAssignFnsToMap, SubGeographicalRegion::debugName); } +std::map SubGeographicalRegion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SubGeographicalRegion_factory() diff --git a/CGMES_2.4.15_16FEB2016/SubGeographicalRegion.hpp b/CGMES_2.4.15_16FEB2016/SubGeographicalRegion.hpp index 27232b895..de32c9260 100644 --- a/CGMES_2.4.15_16FEB2016/SubGeographicalRegion.hpp +++ b/CGMES_2.4.15_16FEB2016/SubGeographicalRegion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SubGeographicalRegion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SubLoadArea.cpp b/CGMES_2.4.15_16FEB2016/SubLoadArea.cpp index b14f7db79..d1dc1d1a5 100644 --- a/CGMES_2.4.15_16FEB2016/SubLoadArea.cpp +++ b/CGMES_2.4.15_16FEB2016/SubLoadArea.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SubLoadArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SubLoadArea.LoadArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SubLoadArea.LoadGroups", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SubLoadArea::SubLoadArea() : LoadArea(nullptr) {} SubLoadArea::~SubLoadArea() {} -static const std::list PossibleProfilesForClass = +const std::list& SubLoadArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SubLoadArea::getClassNamespaceUrl() const { - { "cim:SubLoadArea.LoadArea", { CGMESProfile::EQ, } }, - { "cim:SubLoadArea.LoadGroups", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SubLoadArea::getPossibleProfilesForClass() const +const std::string& SubLoadArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SubLoadArea::getPossibleProfilesForAttributes() const +const std::list& SubLoadArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyArea::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SubLoadArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SubLoadArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SubLoadArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadArea_SubLoadAreas(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* SubLoadArea::debugString() const void SubLoadArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SubLoadArea", &SubLoadArea_factory); + factory_map.emplace("SubLoadArea", &SubLoadArea_factory); } void SubLoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void SubLoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SubLoadArea.LoadArea", &assign_SubLoadArea_LoadArea); - assign_map.emplace("cim:SubLoadArea.LoadGroups", &assign_SubLoadArea_LoadGroups); + assign_map.emplace("SubLoadArea.LoadArea", &assign_SubLoadArea_LoadArea); + assign_map.emplace("SubLoadArea.LoadGroups", &assign_SubLoadArea_LoadGroups); } void SubLoadArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void SubLoadArea::addPrimitiveGetFnsToMap(std::map& g void SubLoadArea::addClassGetFnsToMap(std::map& get_map) const { EnergyArea::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SubLoadArea.LoadArea", &get_SubLoadArea_LoadArea); + get_map.emplace("SubLoadArea.LoadArea", &get_SubLoadArea_LoadArea); } void SubLoadArea::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void SubLoadArea::addEnumGetFnsToMap(std::map& get_ma EnergyArea::addEnumGetFnsToMap(get_map); } +bool SubLoadArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SubLoadArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SubLoadArea::declare() { return BaseClassDefiner(SubLoadArea::addConstructToMap, SubLoadArea::addPrimitiveAssignFnsToMap, SubLoadArea::addClassAssignFnsToMap, SubLoadArea::debugName); } +std::map SubLoadArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyArea::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SubLoadArea_factory() diff --git a/CGMES_2.4.15_16FEB2016/SubLoadArea.hpp b/CGMES_2.4.15_16FEB2016/SubLoadArea.hpp index eb2947510..523b31541 100644 --- a/CGMES_2.4.15_16FEB2016/SubLoadArea.hpp +++ b/CGMES_2.4.15_16FEB2016/SubLoadArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyArea.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SubLoadArea_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Substation.cpp b/CGMES_2.4.15_16FEB2016/Substation.cpp index d0d5471ff..3ea60e191 100644 --- a/CGMES_2.4.15_16FEB2016/Substation.cpp +++ b/CGMES_2.4.15_16FEB2016/Substation.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Substation(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Substation.DCConverterUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Substation.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Substation.VoltageLevels", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Substation::Substation() : Region(nullptr) {} Substation::~Substation() {} -static const std::list PossibleProfilesForClass = +const std::list& Substation::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Substation::getClassNamespaceUrl() const { - { "cim:Substation.DCConverterUnit", { CGMESProfile::EQ, } }, - { "cim:Substation.Region", { CGMESProfile::EQ, } }, - { "cim:Substation.VoltageLevels", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Substation::getPossibleProfilesForClass() const +const std::string& Substation::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Substation::getPossibleProfilesForAttributes() const +const std::list& Substation::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Substation::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Substation::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Substation::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCConverterUnit_Substation(BaseClass*, BaseClass*); @@ -119,7 +151,7 @@ const char* Substation::debugString() const void Substation::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Substation", &Substation_factory); + factory_map.emplace("Substation", &Substation_factory); } void Substation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -128,9 +160,9 @@ void Substation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Substation.DCConverterUnit", &assign_Substation_DCConverterUnit); - assign_map.emplace("cim:Substation.Region", &assign_Substation_Region); - assign_map.emplace("cim:Substation.VoltageLevels", &assign_Substation_VoltageLevels); + assign_map.emplace("Substation.DCConverterUnit", &assign_Substation_DCConverterUnit); + assign_map.emplace("Substation.Region", &assign_Substation_Region); + assign_map.emplace("Substation.VoltageLevels", &assign_Substation_VoltageLevels); } void Substation::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -141,7 +173,7 @@ void Substation::addPrimitiveGetFnsToMap(std::map& ge void Substation::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Substation.Region", &get_Substation_Region); + get_map.emplace("Substation.Region", &get_Substation_Region); } void Substation::addEnumGetFnsToMap(std::map& get_map) const @@ -149,11 +181,25 @@ void Substation::addEnumGetFnsToMap(std::map& get_map EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Substation::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Substation" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Substation::declare() { return BaseClassDefiner(Substation::addConstructToMap, Substation::addPrimitiveAssignFnsToMap, Substation::addClassAssignFnsToMap, Substation::debugName); } +std::map Substation::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Substation_factory() diff --git a/CGMES_2.4.15_16FEB2016/Substation.hpp b/CGMES_2.4.15_16FEB2016/Substation.hpp index 57ef9396c..369df004b 100644 --- a/CGMES_2.4.15_16FEB2016/Substation.hpp +++ b/CGMES_2.4.15_16FEB2016/Substation.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Substation_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SvInjection.cpp b/CGMES_2.4.15_16FEB2016/SvInjection.cpp index 4b2198756..e0c0be0f5 100644 --- a/CGMES_2.4.15_16FEB2016/SvInjection.cpp +++ b/CGMES_2.4.15_16FEB2016/SvInjection.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvInjection.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvInjection.pInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvInjection.qInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvInjection::SvInjection() : TopologicalNode(nullptr) {} SvInjection::~SvInjection() {} -static const std::list PossibleProfilesForClass = +const std::list& SvInjection::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvInjection::getClassNamespaceUrl() const { - { "cim:SvInjection.TopologicalNode", { CGMESProfile::SV, } }, - { "cim:SvInjection.pInjection", { CGMESProfile::SV, } }, - { "cim:SvInjection.qInjection", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvInjection::getPossibleProfilesForClass() const +const std::string& SvInjection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvInjection::getPossibleProfilesForAttributes() const +const std::list& SvInjection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_SvInjection(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvInjection::debugString() const void SvInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvInjection", &SvInjection_factory); + factory_map.emplace("SvInjection", &SvInjection_factory); } void SvInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvInjection.pInjection", &assign_SvInjection_pInjection); - assign_map.emplace("cim:SvInjection.qInjection", &assign_SvInjection_qInjection); + assign_map.emplace("SvInjection.pInjection", &assign_SvInjection_pInjection); + assign_map.emplace("SvInjection.qInjection", &assign_SvInjection_qInjection); } void SvInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvInjection.TopologicalNode", &assign_SvInjection_TopologicalNode); + assign_map.emplace("SvInjection.TopologicalNode", &assign_SvInjection_TopologicalNode); } void SvInjection::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvInjection.pInjection", &get_SvInjection_pInjection); - get_map.emplace("cim:SvInjection.qInjection", &get_SvInjection_qInjection); + get_map.emplace("SvInjection.pInjection", &get_SvInjection_pInjection); + get_map.emplace("SvInjection.qInjection", &get_SvInjection_qInjection); } void SvInjection::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvInjection.TopologicalNode", &get_SvInjection_TopologicalNode); + get_map.emplace("SvInjection.TopologicalNode", &get_SvInjection_TopologicalNode); } void SvInjection::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvInjection::addEnumGetFnsToMap(std::map& get_ma BaseClass::addEnumGetFnsToMap(get_map); } +bool SvInjection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvInjection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvInjection::declare() { return BaseClassDefiner(SvInjection::addConstructToMap, SvInjection::addPrimitiveAssignFnsToMap, SvInjection::addClassAssignFnsToMap, SvInjection::debugName); } +std::map SvInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvInjection_factory() diff --git a/CGMES_2.4.15_16FEB2016/SvInjection.hpp b/CGMES_2.4.15_16FEB2016/SvInjection.hpp index 73b97137a..45176fdc3 100644 --- a/CGMES_2.4.15_16FEB2016/SvInjection.hpp +++ b/CGMES_2.4.15_16FEB2016/SvInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ReactivePower.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvInjection_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SvPowerFlow.cpp b/CGMES_2.4.15_16FEB2016/SvPowerFlow.cpp index dfc4eab2e..91318fcf3 100644 --- a/CGMES_2.4.15_16FEB2016/SvPowerFlow.cpp +++ b/CGMES_2.4.15_16FEB2016/SvPowerFlow.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvPowerFlow(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvPowerFlow.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvPowerFlow.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvPowerFlow.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvPowerFlow::SvPowerFlow() : Terminal(nullptr) {} SvPowerFlow::~SvPowerFlow() {} -static const std::list PossibleProfilesForClass = +const std::list& SvPowerFlow::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvPowerFlow::getClassNamespaceUrl() const { - { "cim:SvPowerFlow.Terminal", { CGMESProfile::SV, } }, - { "cim:SvPowerFlow.p", { CGMESProfile::SV, } }, - { "cim:SvPowerFlow.q", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvPowerFlow::getPossibleProfilesForClass() const +const std::string& SvPowerFlow::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvPowerFlow::getPossibleProfilesForAttributes() const +const std::list& SvPowerFlow::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvPowerFlow::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvPowerFlow::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvPowerFlow::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_SvPowerFlow(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvPowerFlow::debugString() const void SvPowerFlow::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvPowerFlow", &SvPowerFlow_factory); + factory_map.emplace("SvPowerFlow", &SvPowerFlow_factory); } void SvPowerFlow::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvPowerFlow.p", &assign_SvPowerFlow_p); - assign_map.emplace("cim:SvPowerFlow.q", &assign_SvPowerFlow_q); + assign_map.emplace("SvPowerFlow.p", &assign_SvPowerFlow_p); + assign_map.emplace("SvPowerFlow.q", &assign_SvPowerFlow_q); } void SvPowerFlow::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvPowerFlow.Terminal", &assign_SvPowerFlow_Terminal); + assign_map.emplace("SvPowerFlow.Terminal", &assign_SvPowerFlow_Terminal); } void SvPowerFlow::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvPowerFlow.p", &get_SvPowerFlow_p); - get_map.emplace("cim:SvPowerFlow.q", &get_SvPowerFlow_q); + get_map.emplace("SvPowerFlow.p", &get_SvPowerFlow_p); + get_map.emplace("SvPowerFlow.q", &get_SvPowerFlow_q); } void SvPowerFlow::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvPowerFlow.Terminal", &get_SvPowerFlow_Terminal); + get_map.emplace("SvPowerFlow.Terminal", &get_SvPowerFlow_Terminal); } void SvPowerFlow::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvPowerFlow::addEnumGetFnsToMap(std::map& get_ma BaseClass::addEnumGetFnsToMap(get_map); } +bool SvPowerFlow::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvPowerFlow" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvPowerFlow::declare() { return BaseClassDefiner(SvPowerFlow::addConstructToMap, SvPowerFlow::addPrimitiveAssignFnsToMap, SvPowerFlow::addClassAssignFnsToMap, SvPowerFlow::debugName); } +std::map SvPowerFlow::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvPowerFlow_factory() diff --git a/CGMES_2.4.15_16FEB2016/SvPowerFlow.hpp b/CGMES_2.4.15_16FEB2016/SvPowerFlow.hpp index a27cce2a2..77b1b40d0 100644 --- a/CGMES_2.4.15_16FEB2016/SvPowerFlow.hpp +++ b/CGMES_2.4.15_16FEB2016/SvPowerFlow.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ReactivePower.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvPowerFlow_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SvShuntCompensatorSections.cpp b/CGMES_2.4.15_16FEB2016/SvShuntCompensatorSections.cpp index a14be0d1b..c71aaf424 100644 --- a/CGMES_2.4.15_16FEB2016/SvShuntCompensatorSections.cpp +++ b/CGMES_2.4.15_16FEB2016/SvShuntCompensatorSections.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvShuntCompensatorSections(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvShuntCompensatorSections.ShuntCompensator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvShuntCompensatorSections.sections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvShuntCompensatorSections::SvShuntCompensatorSections() : ShuntCompensator(nullptr) {} SvShuntCompensatorSections::~SvShuntCompensatorSections() {} -static const std::list PossibleProfilesForClass = +const std::list& SvShuntCompensatorSections::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvShuntCompensatorSections::getClassNamespaceUrl() const { - { "cim:SvShuntCompensatorSections.ShuntCompensator", { CGMESProfile::SV, } }, - { "cim:SvShuntCompensatorSections.sections", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvShuntCompensatorSections::getPossibleProfilesForClass() const +const std::string& SvShuntCompensatorSections::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvShuntCompensatorSections::getPossibleProfilesForAttributes() const +const std::list& SvShuntCompensatorSections::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvShuntCompensatorSections::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvShuntCompensatorSections::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvShuntCompensatorSections::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ShuntCompensator_SvShuntCompensatorSections(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvShuntCompensatorSections::debugString() const void SvShuntCompensatorSections::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvShuntCompensatorSections", &SvShuntCompensatorSections_factory); + factory_map.emplace("SvShuntCompensatorSections", &SvShuntCompensatorSections_factory); } void SvShuntCompensatorSections::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvShuntCompensatorSections.sections", &assign_SvShuntCompensatorSections_sections); + assign_map.emplace("SvShuntCompensatorSections.sections", &assign_SvShuntCompensatorSections_sections); } void SvShuntCompensatorSections::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvShuntCompensatorSections.ShuntCompensator", &assign_SvShuntCompensatorSections_ShuntCompensator); + assign_map.emplace("SvShuntCompensatorSections.ShuntCompensator", &assign_SvShuntCompensatorSections_ShuntCompensator); } void SvShuntCompensatorSections::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvShuntCompensatorSections.sections", &get_SvShuntCompensatorSections_sections); + get_map.emplace("SvShuntCompensatorSections.sections", &get_SvShuntCompensatorSections_sections); } void SvShuntCompensatorSections::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvShuntCompensatorSections.ShuntCompensator", &get_SvShuntCompensatorSections_ShuntCompensator); + get_map.emplace("SvShuntCompensatorSections.ShuntCompensator", &get_SvShuntCompensatorSections_ShuntCompensator); } void SvShuntCompensatorSections::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvShuntCompensatorSections::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SvShuntCompensatorSections::declare() { return BaseClassDefiner(SvShuntCompensatorSections::addConstructToMap, SvShuntCompensatorSections::addPrimitiveAssignFnsToMap, SvShuntCompensatorSections::addClassAssignFnsToMap, SvShuntCompensatorSections::debugName); } +std::map SvShuntCompensatorSections::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvShuntCompensatorSections_factory() diff --git a/CGMES_2.4.15_16FEB2016/SvShuntCompensatorSections.hpp b/CGMES_2.4.15_16FEB2016/SvShuntCompensatorSections.hpp index 357a98c95..e816118b8 100644 --- a/CGMES_2.4.15_16FEB2016/SvShuntCompensatorSections.hpp +++ b/CGMES_2.4.15_16FEB2016/SvShuntCompensatorSections.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvShuntCompensatorSections_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SvStatus.cpp b/CGMES_2.4.15_16FEB2016/SvStatus.cpp index 17aca7359..f75af6579 100644 --- a/CGMES_2.4.15_16FEB2016/SvStatus.cpp +++ b/CGMES_2.4.15_16FEB2016/SvStatus.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvStatus(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvStatus.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvStatus.inService", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvStatus::SvStatus() : ConductingEquipment(nullptr) {} SvStatus::~SvStatus() {} -static const std::list PossibleProfilesForClass = +const std::list& SvStatus::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvStatus::getClassNamespaceUrl() const { - { "cim:SvStatus.ConductingEquipment", { CGMESProfile::SV, } }, - { "cim:SvStatus.inService", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvStatus::getPossibleProfilesForClass() const +const std::string& SvStatus::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvStatus::getPossibleProfilesForAttributes() const +const std::list& SvStatus::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvStatus::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvStatus::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvStatus::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_SvStatus(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvStatus::debugString() const void SvStatus::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvStatus", &SvStatus_factory); + factory_map.emplace("SvStatus", &SvStatus_factory); } void SvStatus::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvStatus.inService", &assign_SvStatus_inService); + assign_map.emplace("SvStatus.inService", &assign_SvStatus_inService); } void SvStatus::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvStatus.ConductingEquipment", &assign_SvStatus_ConductingEquipment); + assign_map.emplace("SvStatus.ConductingEquipment", &assign_SvStatus_ConductingEquipment); } void SvStatus::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvStatus.inService", &get_SvStatus_inService); + get_map.emplace("SvStatus.inService", &get_SvStatus_inService); } void SvStatus::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvStatus.ConductingEquipment", &get_SvStatus_ConductingEquipment); + get_map.emplace("SvStatus.ConductingEquipment", &get_SvStatus_ConductingEquipment); } void SvStatus::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvStatus::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvStatus::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvStatus" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvStatus::declare() { return BaseClassDefiner(SvStatus::addConstructToMap, SvStatus::addPrimitiveAssignFnsToMap, SvStatus::addClassAssignFnsToMap, SvStatus::debugName); } +std::map SvStatus::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvStatus_factory() diff --git a/CGMES_2.4.15_16FEB2016/SvStatus.hpp b/CGMES_2.4.15_16FEB2016/SvStatus.hpp index e1b7266b5..71352e540 100644 --- a/CGMES_2.4.15_16FEB2016/SvStatus.hpp +++ b/CGMES_2.4.15_16FEB2016/SvStatus.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvStatus_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SvTapStep.cpp b/CGMES_2.4.15_16FEB2016/SvTapStep.cpp index 717c92b1a..f3923a9db 100644 --- a/CGMES_2.4.15_16FEB2016/SvTapStep.cpp +++ b/CGMES_2.4.15_16FEB2016/SvTapStep.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvTapStep(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvTapStep.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvTapStep.position", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvTapStep::SvTapStep() : TapChanger(nullptr) {} SvTapStep::~SvTapStep() {} -static const std::list PossibleProfilesForClass = +const std::list& SvTapStep::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvTapStep::getClassNamespaceUrl() const { - { "cim:SvTapStep.TapChanger", { CGMESProfile::SV, } }, - { "cim:SvTapStep.position", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvTapStep::getPossibleProfilesForClass() const +const std::string& SvTapStep::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvTapStep::getPossibleProfilesForAttributes() const +const std::list& SvTapStep::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvTapStep::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvTapStep::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvTapStep::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_SvTapStep(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvTapStep::debugString() const void SvTapStep::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvTapStep", &SvTapStep_factory); + factory_map.emplace("SvTapStep", &SvTapStep_factory); } void SvTapStep::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvTapStep.position", &assign_SvTapStep_position); + assign_map.emplace("SvTapStep.position", &assign_SvTapStep_position); } void SvTapStep::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvTapStep.TapChanger", &assign_SvTapStep_TapChanger); + assign_map.emplace("SvTapStep.TapChanger", &assign_SvTapStep_TapChanger); } void SvTapStep::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvTapStep.position", &get_SvTapStep_position); + get_map.emplace("SvTapStep.position", &get_SvTapStep_position); } void SvTapStep::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvTapStep.TapChanger", &get_SvTapStep_TapChanger); + get_map.emplace("SvTapStep.TapChanger", &get_SvTapStep_TapChanger); } void SvTapStep::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvTapStep::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvTapStep::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvTapStep" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvTapStep::declare() { return BaseClassDefiner(SvTapStep::addConstructToMap, SvTapStep::addPrimitiveAssignFnsToMap, SvTapStep::addClassAssignFnsToMap, SvTapStep::debugName); } +std::map SvTapStep::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvTapStep_factory() diff --git a/CGMES_2.4.15_16FEB2016/SvTapStep.hpp b/CGMES_2.4.15_16FEB2016/SvTapStep.hpp index 57f08cda1..36b669fa4 100644 --- a/CGMES_2.4.15_16FEB2016/SvTapStep.hpp +++ b/CGMES_2.4.15_16FEB2016/SvTapStep.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvTapStep_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SvVoltage.cpp b/CGMES_2.4.15_16FEB2016/SvVoltage.cpp index 697cd57c5..19a3cb781 100644 --- a/CGMES_2.4.15_16FEB2016/SvVoltage.cpp +++ b/CGMES_2.4.15_16FEB2016/SvVoltage.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvVoltage(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvVoltage.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvVoltage.angle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvVoltage.v", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvVoltage::SvVoltage() : TopologicalNode(nullptr) {} SvVoltage::~SvVoltage() {} -static const std::list PossibleProfilesForClass = +const std::list& SvVoltage::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvVoltage::getClassNamespaceUrl() const { - { "cim:SvVoltage.TopologicalNode", { CGMESProfile::SV, } }, - { "cim:SvVoltage.angle", { CGMESProfile::SV, } }, - { "cim:SvVoltage.v", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvVoltage::getPossibleProfilesForClass() const +const std::string& SvVoltage::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvVoltage::getPossibleProfilesForAttributes() const +const std::list& SvVoltage::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvVoltage::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvVoltage::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvVoltage::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_SvVoltage(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvVoltage::debugString() const void SvVoltage::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvVoltage", &SvVoltage_factory); + factory_map.emplace("SvVoltage", &SvVoltage_factory); } void SvVoltage::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvVoltage.angle", &assign_SvVoltage_angle); - assign_map.emplace("cim:SvVoltage.v", &assign_SvVoltage_v); + assign_map.emplace("SvVoltage.angle", &assign_SvVoltage_angle); + assign_map.emplace("SvVoltage.v", &assign_SvVoltage_v); } void SvVoltage::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvVoltage.TopologicalNode", &assign_SvVoltage_TopologicalNode); + assign_map.emplace("SvVoltage.TopologicalNode", &assign_SvVoltage_TopologicalNode); } void SvVoltage::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvVoltage.angle", &get_SvVoltage_angle); - get_map.emplace("cim:SvVoltage.v", &get_SvVoltage_v); + get_map.emplace("SvVoltage.angle", &get_SvVoltage_angle); + get_map.emplace("SvVoltage.v", &get_SvVoltage_v); } void SvVoltage::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvVoltage.TopologicalNode", &get_SvVoltage_TopologicalNode); + get_map.emplace("SvVoltage.TopologicalNode", &get_SvVoltage_TopologicalNode); } void SvVoltage::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvVoltage::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvVoltage::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvVoltage" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvVoltage::declare() { return BaseClassDefiner(SvVoltage::addConstructToMap, SvVoltage::addPrimitiveAssignFnsToMap, SvVoltage::addClassAssignFnsToMap, SvVoltage::debugName); } +std::map SvVoltage::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvVoltage_factory() diff --git a/CGMES_2.4.15_16FEB2016/SvVoltage.hpp b/CGMES_2.4.15_16FEB2016/SvVoltage.hpp index 04595982a..9e86b5574 100644 --- a/CGMES_2.4.15_16FEB2016/SvVoltage.hpp +++ b/CGMES_2.4.15_16FEB2016/SvVoltage.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvVoltage_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Switch.cpp b/CGMES_2.4.15_16FEB2016/Switch.cpp index 5f84a2d7a..c2a33270a 100644 --- a/CGMES_2.4.15_16FEB2016/Switch.cpp +++ b/CGMES_2.4.15_16FEB2016/Switch.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Switch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Switch.SwitchSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.normalOpen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.open", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "Switch.ratedCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.retained", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Switch::Switch() {} Switch::~Switch() {} -static const std::list PossibleProfilesForClass = +const std::list& Switch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Switch::getClassNamespaceUrl() const { - { "cim:Switch.SwitchSchedules", { CGMESProfile::EQ, } }, - { "cim:Switch.normalOpen", { CGMESProfile::EQ, } }, - { "cim:Switch.open", { CGMESProfile::SSH, } }, - { "cim:Switch.ratedCurrent", { CGMESProfile::EQ, } }, - { "cim:Switch.retained", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Switch::getPossibleProfilesForClass() const +const std::string& Switch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Switch::getPossibleProfilesForAttributes() const +const std::list& Switch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Switch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Switch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Switch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SwitchSchedule_Switch(BaseClass*, BaseClass*); @@ -187,29 +219,29 @@ const char* Switch::debugString() const void Switch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Switch", &Switch_factory); + factory_map.emplace("Switch", &Switch_factory); } void Switch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Switch.normalOpen", &assign_Switch_normalOpen); - assign_map.emplace("cim:Switch.open", &assign_Switch_open); - assign_map.emplace("cim:Switch.ratedCurrent", &assign_Switch_ratedCurrent); - assign_map.emplace("cim:Switch.retained", &assign_Switch_retained); + assign_map.emplace("Switch.normalOpen", &assign_Switch_normalOpen); + assign_map.emplace("Switch.open", &assign_Switch_open); + assign_map.emplace("Switch.ratedCurrent", &assign_Switch_ratedCurrent); + assign_map.emplace("Switch.retained", &assign_Switch_retained); } void Switch::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Switch.SwitchSchedules", &assign_Switch_SwitchSchedules); + assign_map.emplace("Switch.SwitchSchedules", &assign_Switch_SwitchSchedules); } void Switch::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Switch.normalOpen", &get_Switch_normalOpen); - get_map.emplace("cim:Switch.open", &get_Switch_open); - get_map.emplace("cim:Switch.ratedCurrent", &get_Switch_ratedCurrent); - get_map.emplace("cim:Switch.retained", &get_Switch_retained); + get_map.emplace("Switch.normalOpen", &get_Switch_normalOpen); + get_map.emplace("Switch.open", &get_Switch_open); + get_map.emplace("Switch.ratedCurrent", &get_Switch_ratedCurrent); + get_map.emplace("Switch.retained", &get_Switch_retained); } void Switch::addClassGetFnsToMap(std::map& get_map) const @@ -222,11 +254,25 @@ void Switch::addEnumGetFnsToMap(std::map& get_map) co ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Switch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Switch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Switch::declare() { return BaseClassDefiner(Switch::addConstructToMap, Switch::addPrimitiveAssignFnsToMap, Switch::addClassAssignFnsToMap, Switch::debugName); } +std::map Switch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Switch_factory() diff --git a/CGMES_2.4.15_16FEB2016/Switch.hpp b/CGMES_2.4.15_16FEB2016/Switch.hpp index 1b8c13160..4a75f2cee 100644 --- a/CGMES_2.4.15_16FEB2016/Switch.hpp +++ b/CGMES_2.4.15_16FEB2016/Switch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Switch_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SwitchSchedule.cpp b/CGMES_2.4.15_16FEB2016/SwitchSchedule.cpp index 17357887b..fdac545f0 100644 --- a/CGMES_2.4.15_16FEB2016/SwitchSchedule.cpp +++ b/CGMES_2.4.15_16FEB2016/SwitchSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SwitchSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SwitchSchedule.Switch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SwitchSchedule::SwitchSchedule() : Switch(nullptr) {} SwitchSchedule::~SwitchSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& SwitchSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SwitchSchedule::getClassNamespaceUrl() const { - { "cim:SwitchSchedule.Switch", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SwitchSchedule::getPossibleProfilesForClass() const +const std::string& SwitchSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SwitchSchedule::getPossibleProfilesForAttributes() const +const std::list& SwitchSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SwitchSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SwitchSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SwitchSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Switch_SwitchSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* SwitchSchedule::debugString() const void SwitchSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SwitchSchedule", &SwitchSchedule_factory); + factory_map.emplace("SwitchSchedule", &SwitchSchedule_factory); } void SwitchSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void SwitchSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SwitchSchedule.Switch", &assign_SwitchSchedule_Switch); + assign_map.emplace("SwitchSchedule.Switch", &assign_SwitchSchedule_Switch); } void SwitchSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void SwitchSchedule::addPrimitiveGetFnsToMap(std::map void SwitchSchedule::addClassGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SwitchSchedule.Switch", &get_SwitchSchedule_Switch); + get_map.emplace("SwitchSchedule.Switch", &get_SwitchSchedule_Switch); } void SwitchSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void SwitchSchedule::addEnumGetFnsToMap(std::map& get SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool SwitchSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SwitchSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SwitchSchedule::declare() { return BaseClassDefiner(SwitchSchedule::addConstructToMap, SwitchSchedule::addPrimitiveAssignFnsToMap, SwitchSchedule::addClassAssignFnsToMap, SwitchSchedule::debugName); } +std::map SwitchSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SwitchSchedule_factory() diff --git a/CGMES_2.4.15_16FEB2016/SwitchSchedule.hpp b/CGMES_2.4.15_16FEB2016/SwitchSchedule.hpp index 929ce0e77..00c43be39 100644 --- a/CGMES_2.4.15_16FEB2016/SwitchSchedule.hpp +++ b/CGMES_2.4.15_16FEB2016/SwitchSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SwitchSchedule_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachine.cpp b/CGMES_2.4.15_16FEB2016/SynchronousMachine.cpp index deb1e1cca..6895b4d29 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachine.cpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachine.cpp @@ -13,56 +13,88 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachine.InitialReactiveCapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachine.earthing", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.earthingStarPointR", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.earthingStarPointX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.ikk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.mu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.operatingMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "SynchronousMachine.qPercent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.referencePriority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "SynchronousMachine.satDirectSubtransX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.satDirectSyncX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.satDirectTransX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.shortCircuitRotorType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.voltageRegulationRange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.x2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachine::SynchronousMachine() : InitialReactiveCapabilityCurve(nullptr), SynchronousMachineDynamics(nullptr) {} SynchronousMachine::~SynchronousMachine() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:SynchronousMachine.InitialReactiveCapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachine.earthing", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.earthingStarPointR", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.earthingStarPointX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.ikk", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.maxQ", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.minQ", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.mu", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.operatingMode", { CGMESProfile::SSH, } }, - { "cim:SynchronousMachine.qPercent", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r0", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r2", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.referencePriority", { CGMESProfile::SSH, } }, - { "cim:SynchronousMachine.satDirectSubtransX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.satDirectSyncX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.satDirectTransX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.shortCircuitRotorType", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.type", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.voltageRegulationRange", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.x0", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.x2", { CGMESProfile::EQ, } }, -}; - -std::list -SynchronousMachine::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -SynchronousMachine::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachine::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& SynchronousMachine::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& SynchronousMachine::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& SynchronousMachine::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& SynchronousMachine::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines(BaseClass*, BaseClass*); @@ -731,75 +763,81 @@ const char* SynchronousMachine::debugString() const void SynchronousMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachine", &SynchronousMachine_factory); + factory_map.emplace("SynchronousMachine", &SynchronousMachine_factory); } void SynchronousMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachine.earthing", &assign_SynchronousMachine_earthing); - assign_map.emplace("cim:SynchronousMachine.earthingStarPointR", &assign_SynchronousMachine_earthingStarPointR); - assign_map.emplace("cim:SynchronousMachine.earthingStarPointX", &assign_SynchronousMachine_earthingStarPointX); - assign_map.emplace("cim:SynchronousMachine.ikk", &assign_SynchronousMachine_ikk); - assign_map.emplace("cim:SynchronousMachine.maxQ", &assign_SynchronousMachine_maxQ); - assign_map.emplace("cim:SynchronousMachine.minQ", &assign_SynchronousMachine_minQ); - assign_map.emplace("cim:SynchronousMachine.mu", &assign_SynchronousMachine_mu); - assign_map.emplace("cim:SynchronousMachine.operatingMode", &assign_SynchronousMachine_operatingMode); - assign_map.emplace("cim:SynchronousMachine.qPercent", &assign_SynchronousMachine_qPercent); - assign_map.emplace("cim:SynchronousMachine.r", &assign_SynchronousMachine_r); - assign_map.emplace("cim:SynchronousMachine.r0", &assign_SynchronousMachine_r0); - assign_map.emplace("cim:SynchronousMachine.r2", &assign_SynchronousMachine_r2); - assign_map.emplace("cim:SynchronousMachine.referencePriority", &assign_SynchronousMachine_referencePriority); - assign_map.emplace("cim:SynchronousMachine.satDirectSubtransX", &assign_SynchronousMachine_satDirectSubtransX); - assign_map.emplace("cim:SynchronousMachine.satDirectSyncX", &assign_SynchronousMachine_satDirectSyncX); - assign_map.emplace("cim:SynchronousMachine.satDirectTransX", &assign_SynchronousMachine_satDirectTransX); - assign_map.emplace("cim:SynchronousMachine.shortCircuitRotorType", &assign_SynchronousMachine_shortCircuitRotorType); - assign_map.emplace("cim:SynchronousMachine.type", &assign_SynchronousMachine_type); - assign_map.emplace("cim:SynchronousMachine.voltageRegulationRange", &assign_SynchronousMachine_voltageRegulationRange); - assign_map.emplace("cim:SynchronousMachine.x0", &assign_SynchronousMachine_x0); - assign_map.emplace("cim:SynchronousMachine.x2", &assign_SynchronousMachine_x2); + assign_map.emplace("SynchronousMachine.earthing", &assign_SynchronousMachine_earthing); + assign_map.emplace("SynchronousMachine.earthingStarPointR", &assign_SynchronousMachine_earthingStarPointR); + assign_map.emplace("SynchronousMachine.earthingStarPointX", &assign_SynchronousMachine_earthingStarPointX); + assign_map.emplace("SynchronousMachine.ikk", &assign_SynchronousMachine_ikk); + assign_map.emplace("SynchronousMachine.maxQ", &assign_SynchronousMachine_maxQ); + assign_map.emplace("SynchronousMachine.minQ", &assign_SynchronousMachine_minQ); + assign_map.emplace("SynchronousMachine.mu", &assign_SynchronousMachine_mu); + assign_map.emplace("SynchronousMachine.operatingMode", &assign_SynchronousMachine_operatingMode); + assign_map.emplace("SynchronousMachine.qPercent", &assign_SynchronousMachine_qPercent); + assign_map.emplace("SynchronousMachine.r", &assign_SynchronousMachine_r); + assign_map.emplace("SynchronousMachine.r0", &assign_SynchronousMachine_r0); + assign_map.emplace("SynchronousMachine.r2", &assign_SynchronousMachine_r2); + assign_map.emplace("SynchronousMachine.referencePriority", &assign_SynchronousMachine_referencePriority); + assign_map.emplace("SynchronousMachine.satDirectSubtransX", &assign_SynchronousMachine_satDirectSubtransX); + assign_map.emplace("SynchronousMachine.satDirectSyncX", &assign_SynchronousMachine_satDirectSyncX); + assign_map.emplace("SynchronousMachine.satDirectTransX", &assign_SynchronousMachine_satDirectTransX); + assign_map.emplace("SynchronousMachine.shortCircuitRotorType", &assign_SynchronousMachine_shortCircuitRotorType); + assign_map.emplace("SynchronousMachine.type", &assign_SynchronousMachine_type); + assign_map.emplace("SynchronousMachine.voltageRegulationRange", &assign_SynchronousMachine_voltageRegulationRange); + assign_map.emplace("SynchronousMachine.x0", &assign_SynchronousMachine_x0); + assign_map.emplace("SynchronousMachine.x2", &assign_SynchronousMachine_x2); } void SynchronousMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachine.InitialReactiveCapabilityCurve", &assign_SynchronousMachine_InitialReactiveCapabilityCurve); - assign_map.emplace("cim:SynchronousMachine.SynchronousMachineDynamics", &assign_SynchronousMachine_SynchronousMachineDynamics); + assign_map.emplace("SynchronousMachine.InitialReactiveCapabilityCurve", &assign_SynchronousMachine_InitialReactiveCapabilityCurve); + assign_map.emplace("SynchronousMachine.SynchronousMachineDynamics", &assign_SynchronousMachine_SynchronousMachineDynamics); } void SynchronousMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachine::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.earthing", &get_SynchronousMachine_earthing); - get_map.emplace("cim:SynchronousMachine.earthingStarPointR", &get_SynchronousMachine_earthingStarPointR); - get_map.emplace("cim:SynchronousMachine.earthingStarPointX", &get_SynchronousMachine_earthingStarPointX); - get_map.emplace("cim:SynchronousMachine.ikk", &get_SynchronousMachine_ikk); - get_map.emplace("cim:SynchronousMachine.maxQ", &get_SynchronousMachine_maxQ); - get_map.emplace("cim:SynchronousMachine.minQ", &get_SynchronousMachine_minQ); - get_map.emplace("cim:SynchronousMachine.mu", &get_SynchronousMachine_mu); - get_map.emplace("cim:SynchronousMachine.qPercent", &get_SynchronousMachine_qPercent); - get_map.emplace("cim:SynchronousMachine.r", &get_SynchronousMachine_r); - get_map.emplace("cim:SynchronousMachine.r0", &get_SynchronousMachine_r0); - get_map.emplace("cim:SynchronousMachine.r2", &get_SynchronousMachine_r2); - get_map.emplace("cim:SynchronousMachine.referencePriority", &get_SynchronousMachine_referencePriority); - get_map.emplace("cim:SynchronousMachine.satDirectSubtransX", &get_SynchronousMachine_satDirectSubtransX); - get_map.emplace("cim:SynchronousMachine.satDirectSyncX", &get_SynchronousMachine_satDirectSyncX); - get_map.emplace("cim:SynchronousMachine.satDirectTransX", &get_SynchronousMachine_satDirectTransX); - get_map.emplace("cim:SynchronousMachine.voltageRegulationRange", &get_SynchronousMachine_voltageRegulationRange); - get_map.emplace("cim:SynchronousMachine.x0", &get_SynchronousMachine_x0); - get_map.emplace("cim:SynchronousMachine.x2", &get_SynchronousMachine_x2); + get_map.emplace("SynchronousMachine.earthing", &get_SynchronousMachine_earthing); + get_map.emplace("SynchronousMachine.earthingStarPointR", &get_SynchronousMachine_earthingStarPointR); + get_map.emplace("SynchronousMachine.earthingStarPointX", &get_SynchronousMachine_earthingStarPointX); + get_map.emplace("SynchronousMachine.ikk", &get_SynchronousMachine_ikk); + get_map.emplace("SynchronousMachine.maxQ", &get_SynchronousMachine_maxQ); + get_map.emplace("SynchronousMachine.minQ", &get_SynchronousMachine_minQ); + get_map.emplace("SynchronousMachine.mu", &get_SynchronousMachine_mu); + get_map.emplace("SynchronousMachine.qPercent", &get_SynchronousMachine_qPercent); + get_map.emplace("SynchronousMachine.r", &get_SynchronousMachine_r); + get_map.emplace("SynchronousMachine.r0", &get_SynchronousMachine_r0); + get_map.emplace("SynchronousMachine.r2", &get_SynchronousMachine_r2); + get_map.emplace("SynchronousMachine.referencePriority", &get_SynchronousMachine_referencePriority); + get_map.emplace("SynchronousMachine.satDirectSubtransX", &get_SynchronousMachine_satDirectSubtransX); + get_map.emplace("SynchronousMachine.satDirectSyncX", &get_SynchronousMachine_satDirectSyncX); + get_map.emplace("SynchronousMachine.satDirectTransX", &get_SynchronousMachine_satDirectTransX); + get_map.emplace("SynchronousMachine.voltageRegulationRange", &get_SynchronousMachine_voltageRegulationRange); + get_map.emplace("SynchronousMachine.x0", &get_SynchronousMachine_x0); + get_map.emplace("SynchronousMachine.x2", &get_SynchronousMachine_x2); } void SynchronousMachine::addClassGetFnsToMap(std::map& get_map) const { RotatingMachine::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.InitialReactiveCapabilityCurve", &get_SynchronousMachine_InitialReactiveCapabilityCurve); + get_map.emplace("SynchronousMachine.InitialReactiveCapabilityCurve", &get_SynchronousMachine_InitialReactiveCapabilityCurve); } void SynchronousMachine::addEnumGetFnsToMap(std::map& get_map) const { RotatingMachine::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.operatingMode", &get_SynchronousMachine_operatingMode); - get_map.emplace("cim:SynchronousMachine.shortCircuitRotorType", &get_SynchronousMachine_shortCircuitRotorType); - get_map.emplace("cim:SynchronousMachine.type", &get_SynchronousMachine_type); + get_map.emplace("SynchronousMachine.operatingMode", &get_SynchronousMachine_operatingMode); + get_map.emplace("SynchronousMachine.shortCircuitRotorType", &get_SynchronousMachine_shortCircuitRotorType); + get_map.emplace("SynchronousMachine.type", &get_SynchronousMachine_type); +} + +bool SynchronousMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachine" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachine::declare() @@ -807,6 +845,14 @@ const BaseClassDefiner SynchronousMachine::declare() return BaseClassDefiner(SynchronousMachine::addConstructToMap, SynchronousMachine::addPrimitiveAssignFnsToMap, SynchronousMachine::addClassAssignFnsToMap, SynchronousMachine::debugName); } +std::map SynchronousMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachine::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachine_factory() diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachine.hpp b/CGMES_2.4.15_16FEB2016/SynchronousMachine.hpp index 91fe2995e..670ee1e17 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachine.hpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachine.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" #include "Integer.hpp" @@ -110,8 +111,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -119,7 +127,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachine_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineDetailed.cpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineDetailed.cpp index b24f3e4d9..26da5a8cc 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineDetailed.cpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineDetailed.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineDetailed(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineDetailed.efdBaseRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.ifdBaseType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.ifdBaseValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.saturationFactor120QAxis", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.saturationFactorQAxis", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineDetailed::SynchronousMachineDetailed() {} SynchronousMachineDetailed::~SynchronousMachineDetailed() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineDetailed::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineDetailed::getClassNamespaceUrl() const { - { "cim:SynchronousMachineDetailed.efdBaseRatio", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.ifdBaseType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.ifdBaseValue", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.saturationFactor120QAxis", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.saturationFactorQAxis", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineDetailed::getPossibleProfilesForClass() const +const std::string& SynchronousMachineDetailed::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineDetailed::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineDetailed::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineDetailed::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineDetailed::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineDetailed::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDetailed_efdBaseRatio(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* SynchronousMachineDetailed::debugString() const void SynchronousMachineDetailed::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineDetailed", &SynchronousMachineDetailed_factory); + factory_map.emplace("SynchronousMachineDetailed", &SynchronousMachineDetailed_factory); } void SynchronousMachineDetailed::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineDetailed.efdBaseRatio", &assign_SynchronousMachineDetailed_efdBaseRatio); - assign_map.emplace("cim:SynchronousMachineDetailed.ifdBaseType", &assign_SynchronousMachineDetailed_ifdBaseType); - assign_map.emplace("cim:SynchronousMachineDetailed.ifdBaseValue", &assign_SynchronousMachineDetailed_ifdBaseValue); - assign_map.emplace("cim:SynchronousMachineDetailed.saturationFactor120QAxis", &assign_SynchronousMachineDetailed_saturationFactor120QAxis); - assign_map.emplace("cim:SynchronousMachineDetailed.saturationFactorQAxis", &assign_SynchronousMachineDetailed_saturationFactorQAxis); + assign_map.emplace("SynchronousMachineDetailed.efdBaseRatio", &assign_SynchronousMachineDetailed_efdBaseRatio); + assign_map.emplace("SynchronousMachineDetailed.ifdBaseType", &assign_SynchronousMachineDetailed_ifdBaseType); + assign_map.emplace("SynchronousMachineDetailed.ifdBaseValue", &assign_SynchronousMachineDetailed_ifdBaseValue); + assign_map.emplace("SynchronousMachineDetailed.saturationFactor120QAxis", &assign_SynchronousMachineDetailed_saturationFactor120QAxis); + assign_map.emplace("SynchronousMachineDetailed.saturationFactorQAxis", &assign_SynchronousMachineDetailed_saturationFactorQAxis); } void SynchronousMachineDetailed::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,10 +247,10 @@ void SynchronousMachineDetailed::addClassAssignFnsToMap(std::unordered_map& get_map) const { SynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDetailed.efdBaseRatio", &get_SynchronousMachineDetailed_efdBaseRatio); - get_map.emplace("cim:SynchronousMachineDetailed.ifdBaseValue", &get_SynchronousMachineDetailed_ifdBaseValue); - get_map.emplace("cim:SynchronousMachineDetailed.saturationFactor120QAxis", &get_SynchronousMachineDetailed_saturationFactor120QAxis); - get_map.emplace("cim:SynchronousMachineDetailed.saturationFactorQAxis", &get_SynchronousMachineDetailed_saturationFactorQAxis); + get_map.emplace("SynchronousMachineDetailed.efdBaseRatio", &get_SynchronousMachineDetailed_efdBaseRatio); + get_map.emplace("SynchronousMachineDetailed.ifdBaseValue", &get_SynchronousMachineDetailed_ifdBaseValue); + get_map.emplace("SynchronousMachineDetailed.saturationFactor120QAxis", &get_SynchronousMachineDetailed_saturationFactor120QAxis); + get_map.emplace("SynchronousMachineDetailed.saturationFactorQAxis", &get_SynchronousMachineDetailed_saturationFactorQAxis); } void SynchronousMachineDetailed::addClassGetFnsToMap(std::map& get_map) const @@ -229,7 +261,13 @@ void SynchronousMachineDetailed::addClassGetFnsToMap(std::map& get_map) const { SynchronousMachineDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDetailed.ifdBaseType", &get_SynchronousMachineDetailed_ifdBaseType); + get_map.emplace("SynchronousMachineDetailed.ifdBaseType", &get_SynchronousMachineDetailed_ifdBaseType); +} + +bool SynchronousMachineDetailed::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachineDetailed" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachineDetailed::declare() @@ -237,6 +275,14 @@ const BaseClassDefiner SynchronousMachineDetailed::declare() return BaseClassDefiner(SynchronousMachineDetailed::addConstructToMap, SynchronousMachineDetailed::addPrimitiveAssignFnsToMap, SynchronousMachineDetailed::addClassAssignFnsToMap, SynchronousMachineDetailed::debugName); } +std::map SynchronousMachineDetailed::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineDetailed_factory() diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineDetailed.hpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineDetailed.hpp index 877ee12bc..3821d27b7 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineDetailed.hpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineDetailed.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" #include "IfdBaseKind.hpp" #include "Simple_Float.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineDetailed_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineDynamics.cpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineDynamics.cpp index c26909c88..fe2c41adc 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineDynamics.cpp @@ -16,36 +16,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.GenICompensationForGenJ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.MechanicalLoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.SynchronousMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineDynamics::SynchronousMachineDynamics() : ExcitationSystemDynamics(nullptr), MechanicalLoadDynamics(nullptr), SynchronousMachine(nullptr) {} SynchronousMachineDynamics::~SynchronousMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineDynamics::getClassNamespaceUrl() const { - { "cim:SynchronousMachineDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.GenICompensationForGenJ", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.MechanicalLoadDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.SynchronousMachine", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineDynamics::getPossibleProfilesForClass() const +const std::string& SynchronousMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_SynchronousMachineDynamics(BaseClass*, BaseClass*); @@ -159,7 +191,7 @@ const char* SynchronousMachineDynamics::debugString() const void SynchronousMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineDynamics", &SynchronousMachineDynamics_factory); + factory_map.emplace("SynchronousMachineDynamics", &SynchronousMachineDynamics_factory); } void SynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -168,11 +200,11 @@ void SynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineDynamics.ExcitationSystemDynamics", &assign_SynchronousMachineDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.GenICompensationForGenJ", &assign_SynchronousMachineDynamics_GenICompensationForGenJ); - assign_map.emplace("cim:SynchronousMachineDynamics.MechanicalLoadDynamics", &assign_SynchronousMachineDynamics_MechanicalLoadDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.SynchronousMachine", &assign_SynchronousMachineDynamics_SynchronousMachine); - assign_map.emplace("cim:SynchronousMachineDynamics.TurbineGovernorDynamics", &assign_SynchronousMachineDynamics_TurbineGovernorDynamics); + assign_map.emplace("SynchronousMachineDynamics.ExcitationSystemDynamics", &assign_SynchronousMachineDynamics_ExcitationSystemDynamics); + assign_map.emplace("SynchronousMachineDynamics.GenICompensationForGenJ", &assign_SynchronousMachineDynamics_GenICompensationForGenJ); + assign_map.emplace("SynchronousMachineDynamics.MechanicalLoadDynamics", &assign_SynchronousMachineDynamics_MechanicalLoadDynamics); + assign_map.emplace("SynchronousMachineDynamics.SynchronousMachine", &assign_SynchronousMachineDynamics_SynchronousMachine); + assign_map.emplace("SynchronousMachineDynamics.TurbineGovernorDynamics", &assign_SynchronousMachineDynamics_TurbineGovernorDynamics); } void SynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -183,7 +215,7 @@ void SynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachineDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDynamics.SynchronousMachine", &get_SynchronousMachineDynamics_SynchronousMachine); + get_map.emplace("SynchronousMachineDynamics.SynchronousMachine", &get_SynchronousMachineDynamics_SynchronousMachine); } void SynchronousMachineDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -191,11 +223,25 @@ void SynchronousMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineDynamics::declare() { return BaseClassDefiner(SynchronousMachineDynamics::addConstructToMap, SynchronousMachineDynamics::addPrimitiveAssignFnsToMap, SynchronousMachineDynamics::addClassAssignFnsToMap, SynchronousMachineDynamics::debugName); } +std::map SynchronousMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineDynamics.hpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineDynamics.hpp index 77e6df94e..5a7ac9c73 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineEquivalentCircuit.cpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineEquivalentCircuit.cpp index 7ef58f9f7..0c2c01451 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineEquivalentCircuit.cpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineEquivalentCircuit.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineEquivalentCircuit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineEquivalentCircuit.r1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.r1q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.r2q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.rfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x1q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x2q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xad", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xaq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xf1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineEquivalentCircuit::SynchronousMachineEquivalentCircuit() {} SynchronousMachineEquivalentCircuit::~SynchronousMachineEquivalentCircuit() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineEquivalentCircuit::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineEquivalentCircuit::getClassNamespaceUrl() const { - { "cim:SynchronousMachineEquivalentCircuit.r1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.r1q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.r2q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.rfd", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x1q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x2q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xad", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xaq", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xf1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xfd", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineEquivalentCircuit::getPossibleProfilesForClass() const +const std::string& SynchronousMachineEquivalentCircuit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineEquivalentCircuit::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineEquivalentCircuit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDetailed::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineEquivalentCircuit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineEquivalentCircuit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineEquivalentCircuit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineEquivalentCircuit_r1d(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* SynchronousMachineEquivalentCircuit::debugString() const void SynchronousMachineEquivalentCircuit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineEquivalentCircuit", &SynchronousMachineEquivalentCircuit_factory); + factory_map.emplace("SynchronousMachineEquivalentCircuit", &SynchronousMachineEquivalentCircuit_factory); } void SynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1d", &assign_SynchronousMachineEquivalentCircuit_r1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1q", &assign_SynchronousMachineEquivalentCircuit_r1q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r2q", &assign_SynchronousMachineEquivalentCircuit_r2q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.rfd", &assign_SynchronousMachineEquivalentCircuit_rfd); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1d", &assign_SynchronousMachineEquivalentCircuit_x1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1q", &assign_SynchronousMachineEquivalentCircuit_x1q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x2q", &assign_SynchronousMachineEquivalentCircuit_x2q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xad", &assign_SynchronousMachineEquivalentCircuit_xad); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xaq", &assign_SynchronousMachineEquivalentCircuit_xaq); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xf1d", &assign_SynchronousMachineEquivalentCircuit_xf1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xfd", &assign_SynchronousMachineEquivalentCircuit_xfd); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r1d", &assign_SynchronousMachineEquivalentCircuit_r1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r1q", &assign_SynchronousMachineEquivalentCircuit_r1q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r2q", &assign_SynchronousMachineEquivalentCircuit_r2q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.rfd", &assign_SynchronousMachineEquivalentCircuit_rfd); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x1d", &assign_SynchronousMachineEquivalentCircuit_x1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x1q", &assign_SynchronousMachineEquivalentCircuit_x1q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x2q", &assign_SynchronousMachineEquivalentCircuit_x2q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xad", &assign_SynchronousMachineEquivalentCircuit_xad); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xaq", &assign_SynchronousMachineEquivalentCircuit_xaq); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xf1d", &assign_SynchronousMachineEquivalentCircuit_xf1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xfd", &assign_SynchronousMachineEquivalentCircuit_xfd); } void SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_ void SynchronousMachineEquivalentCircuit::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1d", &get_SynchronousMachineEquivalentCircuit_r1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1q", &get_SynchronousMachineEquivalentCircuit_r1q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r2q", &get_SynchronousMachineEquivalentCircuit_r2q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.rfd", &get_SynchronousMachineEquivalentCircuit_rfd); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1d", &get_SynchronousMachineEquivalentCircuit_x1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1q", &get_SynchronousMachineEquivalentCircuit_x1q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x2q", &get_SynchronousMachineEquivalentCircuit_x2q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xad", &get_SynchronousMachineEquivalentCircuit_xad); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xaq", &get_SynchronousMachineEquivalentCircuit_xaq); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xf1d", &get_SynchronousMachineEquivalentCircuit_xf1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xfd", &get_SynchronousMachineEquivalentCircuit_xfd); + get_map.emplace("SynchronousMachineEquivalentCircuit.r1d", &get_SynchronousMachineEquivalentCircuit_r1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.r1q", &get_SynchronousMachineEquivalentCircuit_r1q); + get_map.emplace("SynchronousMachineEquivalentCircuit.r2q", &get_SynchronousMachineEquivalentCircuit_r2q); + get_map.emplace("SynchronousMachineEquivalentCircuit.rfd", &get_SynchronousMachineEquivalentCircuit_rfd); + get_map.emplace("SynchronousMachineEquivalentCircuit.x1d", &get_SynchronousMachineEquivalentCircuit_x1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.x1q", &get_SynchronousMachineEquivalentCircuit_x1q); + get_map.emplace("SynchronousMachineEquivalentCircuit.x2q", &get_SynchronousMachineEquivalentCircuit_x2q); + get_map.emplace("SynchronousMachineEquivalentCircuit.xad", &get_SynchronousMachineEquivalentCircuit_xad); + get_map.emplace("SynchronousMachineEquivalentCircuit.xaq", &get_SynchronousMachineEquivalentCircuit_xaq); + get_map.emplace("SynchronousMachineEquivalentCircuit.xf1d", &get_SynchronousMachineEquivalentCircuit_xf1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.xfd", &get_SynchronousMachineEquivalentCircuit_xfd); } void SynchronousMachineEquivalentCircuit::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void SynchronousMachineEquivalentCircuit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineEquivalentCircuit::declare() { return BaseClassDefiner(SynchronousMachineEquivalentCircuit::addConstructToMap, SynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap, SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap, SynchronousMachineEquivalentCircuit::debugName); } +std::map SynchronousMachineEquivalentCircuit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDetailed::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineEquivalentCircuit_factory() diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineEquivalentCircuit.hpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineEquivalentCircuit.hpp index bc55bc9cd..c9b662081 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineEquivalentCircuit.hpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineEquivalentCircuit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDetailed.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineEquivalentCircuit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineSimplified.cpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineSimplified.cpp index 565a93b19..92f7e9639 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineSimplified.cpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineSimplified.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineSimplified(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + SynchronousMachineSimplified::SynchronousMachineSimplified() {} SynchronousMachineSimplified::~SynchronousMachineSimplified() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineSimplified::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineSimplified::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineSimplified::getPossibleProfilesForClass() const +const std::string& SynchronousMachineSimplified::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineSimplified::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineSimplified::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineSimplified::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineSimplified::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineSimplified::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char SynchronousMachineSimplified::debugName[] = "SynchronousMachineSimplified"; @@ -46,7 +78,7 @@ const char* SynchronousMachineSimplified::debugString() const void SynchronousMachineSimplified::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineSimplified", &SynchronousMachineSimplified_factory); + factory_map.emplace("SynchronousMachineSimplified", &SynchronousMachineSimplified_factory); } void SynchronousMachineSimplified::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void SynchronousMachineSimplified::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineSimplified::declare() { return BaseClassDefiner(SynchronousMachineSimplified::addConstructToMap, SynchronousMachineSimplified::addPrimitiveAssignFnsToMap, SynchronousMachineSimplified::addClassAssignFnsToMap, SynchronousMachineSimplified::debugName); } +std::map SynchronousMachineSimplified::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineSimplified_factory() diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineSimplified.hpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineSimplified.hpp index 0de0ea229..3a5ac4fac 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineSimplified.hpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineSimplified.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineSimplified_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineTimeConstantReactance.cpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineTimeConstantReactance.cpp index 0abb79508..ab9ae715f 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineTimeConstantReactance.cpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineTimeConstantReactance.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineTimeConstantReactance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineTimeConstantReactance.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.modelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.rotorType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tpdo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tppdo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tppqo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tpqo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectSubtrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectSync", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectTrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadSubtrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadSync", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadTrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineTimeConstantReactance::SynchronousMachineTimeConstantReactance() {} SynchronousMachineTimeConstantReactance::~SynchronousMachineTimeConstantReactance() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineTimeConstantReactance::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineTimeConstantReactance::getClassNamespaceUrl() const { - { "cim:SynchronousMachineTimeConstantReactance.ks", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.modelType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.rotorType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tc", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tpdo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tppdo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tppqo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tpqo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectSync", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectTrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadSync", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadTrans", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineTimeConstantReactance::getPossibleProfilesForClass() const +const std::string& SynchronousMachineTimeConstantReactance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineTimeConstantReactance::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineTimeConstantReactance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDetailed::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineTimeConstantReactance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineTimeConstantReactance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineTimeConstantReactance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineTimeConstantReactance_ks(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* SynchronousMachineTimeConstantReactance::debugString() const void SynchronousMachineTimeConstantReactance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineTimeConstantReactance", &SynchronousMachineTimeConstantReactance_factory); + factory_map.emplace("SynchronousMachineTimeConstantReactance", &SynchronousMachineTimeConstantReactance_factory); } void SynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.ks", &assign_SynchronousMachineTimeConstantReactance_ks); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.modelType", &assign_SynchronousMachineTimeConstantReactance_modelType); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.rotorType", &assign_SynchronousMachineTimeConstantReactance_rotorType); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tc", &assign_SynchronousMachineTimeConstantReactance_tc); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpdo", &assign_SynchronousMachineTimeConstantReactance_tpdo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppdo", &assign_SynchronousMachineTimeConstantReactance_tppdo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppqo", &assign_SynchronousMachineTimeConstantReactance_tppqo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpqo", &assign_SynchronousMachineTimeConstantReactance_tpqo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", &assign_SynchronousMachineTimeConstantReactance_xDirectSubtrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSync", &assign_SynchronousMachineTimeConstantReactance_xDirectSync); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectTrans", &assign_SynchronousMachineTimeConstantReactance_xDirectTrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", &assign_SynchronousMachineTimeConstantReactance_xQuadSubtrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSync", &assign_SynchronousMachineTimeConstantReactance_xQuadSync); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadTrans", &assign_SynchronousMachineTimeConstantReactance_xQuadTrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.ks", &assign_SynchronousMachineTimeConstantReactance_ks); + assign_map.emplace("SynchronousMachineTimeConstantReactance.modelType", &assign_SynchronousMachineTimeConstantReactance_modelType); + assign_map.emplace("SynchronousMachineTimeConstantReactance.rotorType", &assign_SynchronousMachineTimeConstantReactance_rotorType); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tc", &assign_SynchronousMachineTimeConstantReactance_tc); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tpdo", &assign_SynchronousMachineTimeConstantReactance_tpdo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tppdo", &assign_SynchronousMachineTimeConstantReactance_tppdo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tppqo", &assign_SynchronousMachineTimeConstantReactance_tppqo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tpqo", &assign_SynchronousMachineTimeConstantReactance_tpqo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSubtrans", &assign_SynchronousMachineTimeConstantReactance_xDirectSubtrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSync", &assign_SynchronousMachineTimeConstantReactance_xDirectSync); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectTrans", &assign_SynchronousMachineTimeConstantReactance_xDirectTrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSubtrans", &assign_SynchronousMachineTimeConstantReactance_xQuadSubtrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSync", &assign_SynchronousMachineTimeConstantReactance_xQuadSync); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadTrans", &assign_SynchronousMachineTimeConstantReactance_xQuadTrans); } void SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,18 +526,18 @@ void SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unorde void SynchronousMachineTimeConstantReactance::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.ks", &get_SynchronousMachineTimeConstantReactance_ks); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tc", &get_SynchronousMachineTimeConstantReactance_tc); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpdo", &get_SynchronousMachineTimeConstantReactance_tpdo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppdo", &get_SynchronousMachineTimeConstantReactance_tppdo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppqo", &get_SynchronousMachineTimeConstantReactance_tppqo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpqo", &get_SynchronousMachineTimeConstantReactance_tpqo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", &get_SynchronousMachineTimeConstantReactance_xDirectSubtrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSync", &get_SynchronousMachineTimeConstantReactance_xDirectSync); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectTrans", &get_SynchronousMachineTimeConstantReactance_xDirectTrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", &get_SynchronousMachineTimeConstantReactance_xQuadSubtrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSync", &get_SynchronousMachineTimeConstantReactance_xQuadSync); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadTrans", &get_SynchronousMachineTimeConstantReactance_xQuadTrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.ks", &get_SynchronousMachineTimeConstantReactance_ks); + get_map.emplace("SynchronousMachineTimeConstantReactance.tc", &get_SynchronousMachineTimeConstantReactance_tc); + get_map.emplace("SynchronousMachineTimeConstantReactance.tpdo", &get_SynchronousMachineTimeConstantReactance_tpdo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tppdo", &get_SynchronousMachineTimeConstantReactance_tppdo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tppqo", &get_SynchronousMachineTimeConstantReactance_tppqo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tpqo", &get_SynchronousMachineTimeConstantReactance_tpqo); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSubtrans", &get_SynchronousMachineTimeConstantReactance_xDirectSubtrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSync", &get_SynchronousMachineTimeConstantReactance_xDirectSync); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectTrans", &get_SynchronousMachineTimeConstantReactance_xDirectTrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSubtrans", &get_SynchronousMachineTimeConstantReactance_xQuadSubtrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSync", &get_SynchronousMachineTimeConstantReactance_xQuadSync); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadTrans", &get_SynchronousMachineTimeConstantReactance_xQuadTrans); } void SynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const @@ -516,8 +548,14 @@ void SynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.modelType", &get_SynchronousMachineTimeConstantReactance_modelType); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.rotorType", &get_SynchronousMachineTimeConstantReactance_rotorType); + get_map.emplace("SynchronousMachineTimeConstantReactance.modelType", &get_SynchronousMachineTimeConstantReactance_modelType); + get_map.emplace("SynchronousMachineTimeConstantReactance.rotorType", &get_SynchronousMachineTimeConstantReactance_rotorType); +} + +bool SynchronousMachineTimeConstantReactance::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachineTimeConstantReactance" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachineTimeConstantReactance::declare() @@ -525,6 +563,14 @@ const BaseClassDefiner SynchronousMachineTimeConstantReactance::declare() return BaseClassDefiner(SynchronousMachineTimeConstantReactance::addConstructToMap, SynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap, SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap, SynchronousMachineTimeConstantReactance::debugName); } +std::map SynchronousMachineTimeConstantReactance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDetailed::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineTimeConstantReactance_factory() diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineTimeConstantReactance.hpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineTimeConstantReactance.hpp index 51a881b24..94290495c 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineTimeConstantReactance.hpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineTimeConstantReactance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDetailed.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "RotorKind.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineTimeConstantReactance_factory(); diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineUserDefined.cpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineUserDefined.cpp index 9bdfab19d..ad7469e11 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineUserDefined::SynchronousMachineUserDefined() {} SynchronousMachineUserDefined::~SynchronousMachineUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineUserDefined::getClassNamespaceUrl() const { - { "cim:SynchronousMachineUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineUserDefined::getPossibleProfilesForClass() const +const std::string& SynchronousMachineUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineUserDefined::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* SynchronousMachineUserDefined::debugString() const void SynchronousMachineUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineUserDefined", &SynchronousMachineUserDefined_factory); + factory_map.emplace("SynchronousMachineUserDefined", &SynchronousMachineUserDefined_factory); } void SynchronousMachineUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineUserDefined.proprietary", &assign_SynchronousMachineUserDefined_proprietary); + assign_map.emplace("SynchronousMachineUserDefined.proprietary", &assign_SynchronousMachineUserDefined_proprietary); } void SynchronousMachineUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_SynchronousMachineUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("SynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_SynchronousMachineUserDefined_ProprietaryParameterDynamics); } void SynchronousMachineUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineUserDefined.proprietary", &get_SynchronousMachineUserDefined_proprietary); + get_map.emplace("SynchronousMachineUserDefined.proprietary", &get_SynchronousMachineUserDefined_proprietary); } void SynchronousMachineUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void SynchronousMachineUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineUserDefined::declare() { return BaseClassDefiner(SynchronousMachineUserDefined::addConstructToMap, SynchronousMachineUserDefined::addPrimitiveAssignFnsToMap, SynchronousMachineUserDefined::addClassAssignFnsToMap, SynchronousMachineUserDefined::debugName); } +std::map SynchronousMachineUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/SynchronousMachineUserDefined.hpp b/CGMES_2.4.15_16FEB2016/SynchronousMachineUserDefined.hpp index 6a9b6c7f7..9ce056aa5 100644 --- a/CGMES_2.4.15_16FEB2016/SynchronousMachineUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/SynchronousMachineUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TapChanger.cpp b/CGMES_2.4.15_16FEB2016/TapChanger.cpp index eeecf62b0..48238a8c2 100644 --- a/CGMES_2.4.15_16FEB2016/TapChanger.cpp +++ b/CGMES_2.4.15_16FEB2016/TapChanger.cpp @@ -14,44 +14,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChanger.SvTapStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TapChanger.TapChangerControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.TapSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.controlEnabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "TapChanger.highStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.lowStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.ltcFlag", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.neutralStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.neutralU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.normalStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.step", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + TapChanger::TapChanger() : SvTapStep(nullptr), TapChangerControl(nullptr) {} TapChanger::~TapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChanger::getClassNamespaceUrl() const { - { "cim:TapChanger.SvTapStep", { CGMESProfile::SV, } }, - { "cim:TapChanger.TapChangerControl", { CGMESProfile::EQ, } }, - { "cim:TapChanger.TapSchedules", { CGMESProfile::EQ, } }, - { "cim:TapChanger.controlEnabled", { CGMESProfile::SSH, } }, - { "cim:TapChanger.highStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.lowStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.ltcFlag", { CGMESProfile::EQ, } }, - { "cim:TapChanger.neutralStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.neutralU", { CGMESProfile::EQ, } }, - { "cim:TapChanger.normalStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.step", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChanger::getPossibleProfilesForClass() const +const std::string& TapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChanger::getPossibleProfilesForAttributes() const +const std::list& TapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvTapStep_TapChanger(BaseClass*, BaseClass*); @@ -361,45 +393,45 @@ const char* TapChanger::debugString() const void TapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChanger", &TapChanger_factory); + factory_map.emplace("TapChanger", &TapChanger_factory); } void TapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChanger.controlEnabled", &assign_TapChanger_controlEnabled); - assign_map.emplace("cim:TapChanger.highStep", &assign_TapChanger_highStep); - assign_map.emplace("cim:TapChanger.lowStep", &assign_TapChanger_lowStep); - assign_map.emplace("cim:TapChanger.ltcFlag", &assign_TapChanger_ltcFlag); - assign_map.emplace("cim:TapChanger.neutralStep", &assign_TapChanger_neutralStep); - assign_map.emplace("cim:TapChanger.neutralU", &assign_TapChanger_neutralU); - assign_map.emplace("cim:TapChanger.normalStep", &assign_TapChanger_normalStep); - assign_map.emplace("cim:TapChanger.step", &assign_TapChanger_step); + assign_map.emplace("TapChanger.controlEnabled", &assign_TapChanger_controlEnabled); + assign_map.emplace("TapChanger.highStep", &assign_TapChanger_highStep); + assign_map.emplace("TapChanger.lowStep", &assign_TapChanger_lowStep); + assign_map.emplace("TapChanger.ltcFlag", &assign_TapChanger_ltcFlag); + assign_map.emplace("TapChanger.neutralStep", &assign_TapChanger_neutralStep); + assign_map.emplace("TapChanger.neutralU", &assign_TapChanger_neutralU); + assign_map.emplace("TapChanger.normalStep", &assign_TapChanger_normalStep); + assign_map.emplace("TapChanger.step", &assign_TapChanger_step); } void TapChanger::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChanger.SvTapStep", &assign_TapChanger_SvTapStep); - assign_map.emplace("cim:TapChanger.TapChangerControl", &assign_TapChanger_TapChangerControl); - assign_map.emplace("cim:TapChanger.TapSchedules", &assign_TapChanger_TapSchedules); + assign_map.emplace("TapChanger.SvTapStep", &assign_TapChanger_SvTapStep); + assign_map.emplace("TapChanger.TapChangerControl", &assign_TapChanger_TapChangerControl); + assign_map.emplace("TapChanger.TapSchedules", &assign_TapChanger_TapSchedules); } void TapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TapChanger.controlEnabled", &get_TapChanger_controlEnabled); - get_map.emplace("cim:TapChanger.highStep", &get_TapChanger_highStep); - get_map.emplace("cim:TapChanger.lowStep", &get_TapChanger_lowStep); - get_map.emplace("cim:TapChanger.ltcFlag", &get_TapChanger_ltcFlag); - get_map.emplace("cim:TapChanger.neutralStep", &get_TapChanger_neutralStep); - get_map.emplace("cim:TapChanger.neutralU", &get_TapChanger_neutralU); - get_map.emplace("cim:TapChanger.normalStep", &get_TapChanger_normalStep); - get_map.emplace("cim:TapChanger.step", &get_TapChanger_step); + get_map.emplace("TapChanger.controlEnabled", &get_TapChanger_controlEnabled); + get_map.emplace("TapChanger.highStep", &get_TapChanger_highStep); + get_map.emplace("TapChanger.lowStep", &get_TapChanger_lowStep); + get_map.emplace("TapChanger.ltcFlag", &get_TapChanger_ltcFlag); + get_map.emplace("TapChanger.neutralStep", &get_TapChanger_neutralStep); + get_map.emplace("TapChanger.neutralU", &get_TapChanger_neutralU); + get_map.emplace("TapChanger.normalStep", &get_TapChanger_normalStep); + get_map.emplace("TapChanger.step", &get_TapChanger_step); } void TapChanger::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TapChanger.TapChangerControl", &get_TapChanger_TapChangerControl); + get_map.emplace("TapChanger.TapChangerControl", &get_TapChanger_TapChangerControl); } void TapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -407,11 +439,25 @@ void TapChanger::addEnumGetFnsToMap(std::map& get_map PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool TapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapChanger::declare() { return BaseClassDefiner(TapChanger::addConstructToMap, TapChanger::addPrimitiveAssignFnsToMap, TapChanger::addClassAssignFnsToMap, TapChanger::debugName); } +std::map TapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChanger_factory() diff --git a/CGMES_2.4.15_16FEB2016/TapChanger.hpp b/CGMES_2.4.15_16FEB2016/TapChanger.hpp index f76517308..5f1807583 100644 --- a/CGMES_2.4.15_16FEB2016/TapChanger.hpp +++ b/CGMES_2.4.15_16FEB2016/TapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChanger_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TapChangerControl.cpp b/CGMES_2.4.15_16FEB2016/TapChangerControl.cpp index 167b0d3a7..a9527bf47 100644 --- a/CGMES_2.4.15_16FEB2016/TapChangerControl.cpp +++ b/CGMES_2.4.15_16FEB2016/TapChangerControl.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChangerControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChangerControl.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapChangerControl::TapChangerControl() {} TapChangerControl::~TapChangerControl() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChangerControl::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChangerControl::getClassNamespaceUrl() const { - { "cim:TapChangerControl.TapChanger", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChangerControl::getPossibleProfilesForClass() const +const std::string& TapChangerControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChangerControl::getPossibleProfilesForAttributes() const +const std::list& TapChangerControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChangerControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChangerControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChangerControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_TapChangerControl(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* TapChangerControl::debugString() const void TapChangerControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChangerControl", &TapChangerControl_factory); + factory_map.emplace("TapChangerControl", &TapChangerControl_factory); } void TapChangerControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void TapChangerControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChangerControl.TapChanger", &assign_TapChangerControl_TapChanger); + assign_map.emplace("TapChangerControl.TapChanger", &assign_TapChangerControl_TapChanger); } void TapChangerControl::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void TapChangerControl::addEnumGetFnsToMap(std::map& RegulatingControl::addEnumGetFnsToMap(get_map); } +bool TapChangerControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapChangerControl" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapChangerControl::declare() { return BaseClassDefiner(TapChangerControl::addConstructToMap, TapChangerControl::addPrimitiveAssignFnsToMap, TapChangerControl::addClassAssignFnsToMap, TapChangerControl::debugName); } +std::map TapChangerControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChangerControl_factory() diff --git a/CGMES_2.4.15_16FEB2016/TapChangerControl.hpp b/CGMES_2.4.15_16FEB2016/TapChangerControl.hpp index ee70475dc..6d4e53403 100644 --- a/CGMES_2.4.15_16FEB2016/TapChangerControl.hpp +++ b/CGMES_2.4.15_16FEB2016/TapChangerControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChangerControl_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TapChangerTablePoint.cpp b/CGMES_2.4.15_16FEB2016/TapChangerTablePoint.cpp index 2044a9212..89de93074 100644 --- a/CGMES_2.4.15_16FEB2016/TapChangerTablePoint.cpp +++ b/CGMES_2.4.15_16FEB2016/TapChangerTablePoint.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChangerTablePoint.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.step", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapChangerTablePoint::TapChangerTablePoint() {} TapChangerTablePoint::~TapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:TapChangerTablePoint.b", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.g", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.r", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.ratio", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.step", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.x", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& TapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& TapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChangerTablePoint_b(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* TapChangerTablePoint::debugString() const void TapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChangerTablePoint", &TapChangerTablePoint_factory); + factory_map.emplace("TapChangerTablePoint", &TapChangerTablePoint_factory); } void TapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChangerTablePoint.b", &assign_TapChangerTablePoint_b); - assign_map.emplace("cim:TapChangerTablePoint.g", &assign_TapChangerTablePoint_g); - assign_map.emplace("cim:TapChangerTablePoint.r", &assign_TapChangerTablePoint_r); - assign_map.emplace("cim:TapChangerTablePoint.ratio", &assign_TapChangerTablePoint_ratio); - assign_map.emplace("cim:TapChangerTablePoint.step", &assign_TapChangerTablePoint_step); - assign_map.emplace("cim:TapChangerTablePoint.x", &assign_TapChangerTablePoint_x); + assign_map.emplace("TapChangerTablePoint.b", &assign_TapChangerTablePoint_b); + assign_map.emplace("TapChangerTablePoint.g", &assign_TapChangerTablePoint_g); + assign_map.emplace("TapChangerTablePoint.r", &assign_TapChangerTablePoint_r); + assign_map.emplace("TapChangerTablePoint.ratio", &assign_TapChangerTablePoint_ratio); + assign_map.emplace("TapChangerTablePoint.step", &assign_TapChangerTablePoint_step); + assign_map.emplace("TapChangerTablePoint.x", &assign_TapChangerTablePoint_x); } void TapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void TapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TapChangerTablePoint.b", &get_TapChangerTablePoint_b); - get_map.emplace("cim:TapChangerTablePoint.g", &get_TapChangerTablePoint_g); - get_map.emplace("cim:TapChangerTablePoint.r", &get_TapChangerTablePoint_r); - get_map.emplace("cim:TapChangerTablePoint.ratio", &get_TapChangerTablePoint_ratio); - get_map.emplace("cim:TapChangerTablePoint.step", &get_TapChangerTablePoint_step); - get_map.emplace("cim:TapChangerTablePoint.x", &get_TapChangerTablePoint_x); + get_map.emplace("TapChangerTablePoint.b", &get_TapChangerTablePoint_b); + get_map.emplace("TapChangerTablePoint.g", &get_TapChangerTablePoint_g); + get_map.emplace("TapChangerTablePoint.r", &get_TapChangerTablePoint_r); + get_map.emplace("TapChangerTablePoint.ratio", &get_TapChangerTablePoint_ratio); + get_map.emplace("TapChangerTablePoint.step", &get_TapChangerTablePoint_step); + get_map.emplace("TapChangerTablePoint.x", &get_TapChangerTablePoint_x); } void TapChangerTablePoint::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void TapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TapChangerTablePoint::declare() { return BaseClassDefiner(TapChangerTablePoint::addConstructToMap, TapChangerTablePoint::addPrimitiveAssignFnsToMap, TapChangerTablePoint::addClassAssignFnsToMap, TapChangerTablePoint::debugName); } +std::map TapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChangerTablePoint_factory() diff --git a/CGMES_2.4.15_16FEB2016/TapChangerTablePoint.hpp b/CGMES_2.4.15_16FEB2016/TapChangerTablePoint.hpp index aa6327644..5502418a9 100644 --- a/CGMES_2.4.15_16FEB2016/TapChangerTablePoint.hpp +++ b/CGMES_2.4.15_16FEB2016/TapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "PerCent.hpp" #include "Simple_Float.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChangerTablePoint_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TapSchedule.cpp b/CGMES_2.4.15_16FEB2016/TapSchedule.cpp index 039a79967..38ab32889 100644 --- a/CGMES_2.4.15_16FEB2016/TapSchedule.cpp +++ b/CGMES_2.4.15_16FEB2016/TapSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapSchedule.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapSchedule::TapSchedule() : TapChanger(nullptr) {} TapSchedule::~TapSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& TapSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapSchedule::getClassNamespaceUrl() const { - { "cim:TapSchedule.TapChanger", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapSchedule::getPossibleProfilesForClass() const +const std::string& TapSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapSchedule::getPossibleProfilesForAttributes() const +const std::list& TapSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_TapSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* TapSchedule::debugString() const void TapSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapSchedule", &TapSchedule_factory); + factory_map.emplace("TapSchedule", &TapSchedule_factory); } void TapSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void TapSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapSchedule.TapChanger", &assign_TapSchedule_TapChanger); + assign_map.emplace("TapSchedule.TapChanger", &assign_TapSchedule_TapChanger); } void TapSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void TapSchedule::addPrimitiveGetFnsToMap(std::map& g void TapSchedule::addClassGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TapSchedule.TapChanger", &get_TapSchedule_TapChanger); + get_map.emplace("TapSchedule.TapChanger", &get_TapSchedule_TapChanger); } void TapSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void TapSchedule::addEnumGetFnsToMap(std::map& get_ma SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool TapSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapSchedule::declare() { return BaseClassDefiner(TapSchedule::addConstructToMap, TapSchedule::addPrimitiveAssignFnsToMap, TapSchedule::addClassAssignFnsToMap, TapSchedule::debugName); } +std::map TapSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapSchedule_factory() diff --git a/CGMES_2.4.15_16FEB2016/TapSchedule.hpp b/CGMES_2.4.15_16FEB2016/TapSchedule.hpp index 70565884c..9fb6edc8b 100644 --- a/CGMES_2.4.15_16FEB2016/TapSchedule.hpp +++ b/CGMES_2.4.15_16FEB2016/TapSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapSchedule_factory(); diff --git a/CGMES_2.4.15_16FEB2016/Terminal.cpp b/CGMES_2.4.15_16FEB2016/Terminal.cpp index 25d0c3a25..53edba775 100644 --- a/CGMES_2.4.15_16FEB2016/Terminal.cpp +++ b/CGMES_2.4.15_16FEB2016/Terminal.cpp @@ -21,48 +21,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Terminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Terminal.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "Terminal.ConnectivityNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.ConverterDCSides", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.HasFirstMutualCoupling", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.HasSecondMutualCoupling", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Terminal.SvPowerFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "Terminal.TieFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "Terminal.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.phases", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Terminal::Terminal() : ConductingEquipment(nullptr), ConnectivityNode(nullptr), RegulatingControl(nullptr), SvPowerFlow(nullptr), TopologicalNode(nullptr) {} Terminal::~Terminal() {} -static const std::list PossibleProfilesForClass = +const std::list& Terminal::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Terminal::getClassNamespaceUrl() const { - { "cim:Terminal.ConductingEquipment", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:Terminal.ConnectivityNode", { CGMESProfile::EQ, } }, - { "cim:Terminal.ConverterDCSides", { CGMESProfile::EQ, } }, - { "cim:Terminal.HasFirstMutualCoupling", { CGMESProfile::EQ, } }, - { "cim:Terminal.HasSecondMutualCoupling", { CGMESProfile::EQ, } }, - { "cim:Terminal.RegulatingControl", { CGMESProfile::EQ, } }, - { "cim:Terminal.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:Terminal.SvPowerFlow", { CGMESProfile::SV, } }, - { "cim:Terminal.TieFlow", { CGMESProfile::EQ, } }, - { "cim:Terminal.TopologicalNode", { CGMESProfile::TP, } }, - { "cim:Terminal.TransformerEnd", { CGMESProfile::EQ, } }, - { "cim:Terminal.phases", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Terminal::getPossibleProfilesForClass() const +const std::string& Terminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Terminal::getPossibleProfilesForAttributes() const +const std::list& Terminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Terminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Terminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Terminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_Terminals(BaseClass*, BaseClass*); @@ -339,27 +371,27 @@ const char* Terminal::debugString() const void Terminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Terminal", &Terminal_factory); + factory_map.emplace("Terminal", &Terminal_factory); } void Terminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Terminal.phases", &assign_Terminal_phases); + assign_map.emplace("Terminal.phases", &assign_Terminal_phases); } void Terminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Terminal.ConductingEquipment", &assign_Terminal_ConductingEquipment); - assign_map.emplace("cim:Terminal.ConnectivityNode", &assign_Terminal_ConnectivityNode); - assign_map.emplace("cim:Terminal.ConverterDCSides", &assign_Terminal_ConverterDCSides); - assign_map.emplace("cim:Terminal.HasFirstMutualCoupling", &assign_Terminal_HasFirstMutualCoupling); - assign_map.emplace("cim:Terminal.HasSecondMutualCoupling", &assign_Terminal_HasSecondMutualCoupling); - assign_map.emplace("cim:Terminal.RegulatingControl", &assign_Terminal_RegulatingControl); - assign_map.emplace("cim:Terminal.RemoteInputSignal", &assign_Terminal_RemoteInputSignal); - assign_map.emplace("cim:Terminal.SvPowerFlow", &assign_Terminal_SvPowerFlow); - assign_map.emplace("cim:Terminal.TieFlow", &assign_Terminal_TieFlow); - assign_map.emplace("cim:Terminal.TopologicalNode", &assign_Terminal_TopologicalNode); - assign_map.emplace("cim:Terminal.TransformerEnd", &assign_Terminal_TransformerEnd); + assign_map.emplace("Terminal.ConductingEquipment", &assign_Terminal_ConductingEquipment); + assign_map.emplace("Terminal.ConnectivityNode", &assign_Terminal_ConnectivityNode); + assign_map.emplace("Terminal.ConverterDCSides", &assign_Terminal_ConverterDCSides); + assign_map.emplace("Terminal.HasFirstMutualCoupling", &assign_Terminal_HasFirstMutualCoupling); + assign_map.emplace("Terminal.HasSecondMutualCoupling", &assign_Terminal_HasSecondMutualCoupling); + assign_map.emplace("Terminal.RegulatingControl", &assign_Terminal_RegulatingControl); + assign_map.emplace("Terminal.RemoteInputSignal", &assign_Terminal_RemoteInputSignal); + assign_map.emplace("Terminal.SvPowerFlow", &assign_Terminal_SvPowerFlow); + assign_map.emplace("Terminal.TieFlow", &assign_Terminal_TieFlow); + assign_map.emplace("Terminal.TopologicalNode", &assign_Terminal_TopologicalNode); + assign_map.emplace("Terminal.TransformerEnd", &assign_Terminal_TransformerEnd); } void Terminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -370,15 +402,21 @@ void Terminal::addPrimitiveGetFnsToMap(std::map& get_ void Terminal::addClassGetFnsToMap(std::map& get_map) const { ACDCTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Terminal.ConductingEquipment", &get_Terminal_ConductingEquipment); - get_map.emplace("cim:Terminal.ConnectivityNode", &get_Terminal_ConnectivityNode); - get_map.emplace("cim:Terminal.TopologicalNode", &get_Terminal_TopologicalNode); + get_map.emplace("Terminal.ConductingEquipment", &get_Terminal_ConductingEquipment); + get_map.emplace("Terminal.ConnectivityNode", &get_Terminal_ConnectivityNode); + get_map.emplace("Terminal.TopologicalNode", &get_Terminal_TopologicalNode); } void Terminal::addEnumGetFnsToMap(std::map& get_map) const { ACDCTerminal::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Terminal.phases", &get_Terminal_phases); + get_map.emplace("Terminal.phases", &get_Terminal_phases); +} + +bool Terminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Terminal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Terminal::declare() @@ -386,6 +424,14 @@ const BaseClassDefiner Terminal::declare() return BaseClassDefiner(Terminal::addConstructToMap, Terminal::addPrimitiveAssignFnsToMap, Terminal::addClassAssignFnsToMap, Terminal::debugName); } +std::map Terminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Terminal_factory() diff --git a/CGMES_2.4.15_16FEB2016/Terminal.hpp b/CGMES_2.4.15_16FEB2016/Terminal.hpp index 58895e261..d2a2fbc22 100644 --- a/CGMES_2.4.15_16FEB2016/Terminal.hpp +++ b/CGMES_2.4.15_16FEB2016/Terminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PhaseCode.hpp" namespace CIMPP @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Terminal_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TextDiagramObject.cpp b/CGMES_2.4.15_16FEB2016/TextDiagramObject.cpp index 684542b39..e7492c696 100644 --- a/CGMES_2.4.15_16FEB2016/TextDiagramObject.cpp +++ b/CGMES_2.4.15_16FEB2016/TextDiagramObject.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TextDiagramObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TextDiagramObject.text", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + TextDiagramObject::TextDiagramObject() {} TextDiagramObject::~TextDiagramObject() {} -static const std::list PossibleProfilesForClass = +const std::list& TextDiagramObject::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TextDiagramObject::getClassNamespaceUrl() const { - { "cim:TextDiagramObject.text", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TextDiagramObject::getPossibleProfilesForClass() const +const std::string& TextDiagramObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TextDiagramObject::getPossibleProfilesForAttributes() const +const std::list& TextDiagramObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiagramObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TextDiagramObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TextDiagramObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TextDiagramObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TextDiagramObject_text(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* TextDiagramObject::debugString() const void TextDiagramObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TextDiagramObject", &TextDiagramObject_factory); + factory_map.emplace("TextDiagramObject", &TextDiagramObject_factory); } void TextDiagramObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TextDiagramObject.text", &assign_TextDiagramObject_text); + assign_map.emplace("TextDiagramObject.text", &assign_TextDiagramObject_text); } void TextDiagramObject::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void TextDiagramObject::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiagramObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TextDiagramObject.text", &get_TextDiagramObject_text); + get_map.emplace("TextDiagramObject.text", &get_TextDiagramObject_text); } void TextDiagramObject::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void TextDiagramObject::addEnumGetFnsToMap(std::map& DiagramObject::addEnumGetFnsToMap(get_map); } +bool TextDiagramObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TextDiagramObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TextDiagramObject::declare() { return BaseClassDefiner(TextDiagramObject::addConstructToMap, TextDiagramObject::addPrimitiveAssignFnsToMap, TextDiagramObject::addClassAssignFnsToMap, TextDiagramObject::debugName); } +std::map TextDiagramObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiagramObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TextDiagramObject_factory() diff --git a/CGMES_2.4.15_16FEB2016/TextDiagramObject.hpp b/CGMES_2.4.15_16FEB2016/TextDiagramObject.hpp index 188381ff3..c62abdc11 100644 --- a/CGMES_2.4.15_16FEB2016/TextDiagramObject.hpp +++ b/CGMES_2.4.15_16FEB2016/TextDiagramObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiagramObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TextDiagramObject_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ThermalGeneratingUnit.cpp b/CGMES_2.4.15_16FEB2016/ThermalGeneratingUnit.cpp index ee36322aa..833073d42 100644 --- a/CGMES_2.4.15_16FEB2016/ThermalGeneratingUnit.cpp +++ b/CGMES_2.4.15_16FEB2016/ThermalGeneratingUnit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ThermalGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ThermalGeneratingUnit.FossilFuels", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ThermalGeneratingUnit::ThermalGeneratingUnit() {} ThermalGeneratingUnit::~ThermalGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& ThermalGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ThermalGeneratingUnit::getClassNamespaceUrl() const { - { "cim:ThermalGeneratingUnit.FossilFuels", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ThermalGeneratingUnit::getPossibleProfilesForClass() const +const std::string& ThermalGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ThermalGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& ThermalGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ThermalGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ThermalGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ThermalGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_FossilFuel_ThermalGeneratingUnit(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* ThermalGeneratingUnit::debugString() const void ThermalGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ThermalGeneratingUnit", &ThermalGeneratingUnit_factory); + factory_map.emplace("ThermalGeneratingUnit", &ThermalGeneratingUnit_factory); } void ThermalGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void ThermalGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ThermalGeneratingUnit.FossilFuels", &assign_ThermalGeneratingUnit_FossilFuels); + assign_map.emplace("ThermalGeneratingUnit.FossilFuels", &assign_ThermalGeneratingUnit_FossilFuels); } void ThermalGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void ThermalGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ThermalGeneratingUnit::declare() { return BaseClassDefiner(ThermalGeneratingUnit::addConstructToMap, ThermalGeneratingUnit::addPrimitiveAssignFnsToMap, ThermalGeneratingUnit::addClassAssignFnsToMap, ThermalGeneratingUnit::debugName); } +std::map ThermalGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ThermalGeneratingUnit_factory() diff --git a/CGMES_2.4.15_16FEB2016/ThermalGeneratingUnit.hpp b/CGMES_2.4.15_16FEB2016/ThermalGeneratingUnit.hpp index 2bbb34a5f..a53f99495 100644 --- a/CGMES_2.4.15_16FEB2016/ThermalGeneratingUnit.hpp +++ b/CGMES_2.4.15_16FEB2016/ThermalGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ThermalGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TieFlow.cpp b/CGMES_2.4.15_16FEB2016/TieFlow.cpp index 324dce327..08751bb20 100644 --- a/CGMES_2.4.15_16FEB2016/TieFlow.cpp +++ b/CGMES_2.4.15_16FEB2016/TieFlow.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TieFlow(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TieFlow.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TieFlow.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TieFlow.positiveFlowIn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TieFlow::TieFlow() : ControlArea(nullptr), Terminal(nullptr) {} TieFlow::~TieFlow() {} -static const std::list PossibleProfilesForClass = +const std::list& TieFlow::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TieFlow::getClassNamespaceUrl() const { - { "cim:TieFlow.ControlArea", { CGMESProfile::EQ, } }, - { "cim:TieFlow.Terminal", { CGMESProfile::EQ, } }, - { "cim:TieFlow.positiveFlowIn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TieFlow::getPossibleProfilesForClass() const +const std::string& TieFlow::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TieFlow::getPossibleProfilesForAttributes() const +const std::list& TieFlow::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TieFlow::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TieFlow::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TieFlow::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_TieFlow(BaseClass*, BaseClass*); @@ -142,31 +174,31 @@ const char* TieFlow::debugString() const void TieFlow::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TieFlow", &TieFlow_factory); + factory_map.emplace("TieFlow", &TieFlow_factory); } void TieFlow::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TieFlow.positiveFlowIn", &assign_TieFlow_positiveFlowIn); + assign_map.emplace("TieFlow.positiveFlowIn", &assign_TieFlow_positiveFlowIn); } void TieFlow::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TieFlow.ControlArea", &assign_TieFlow_ControlArea); - assign_map.emplace("cim:TieFlow.Terminal", &assign_TieFlow_Terminal); + assign_map.emplace("TieFlow.ControlArea", &assign_TieFlow_ControlArea); + assign_map.emplace("TieFlow.Terminal", &assign_TieFlow_Terminal); } void TieFlow::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TieFlow.positiveFlowIn", &get_TieFlow_positiveFlowIn); + get_map.emplace("TieFlow.positiveFlowIn", &get_TieFlow_positiveFlowIn); } void TieFlow::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TieFlow.ControlArea", &get_TieFlow_ControlArea); - get_map.emplace("cim:TieFlow.Terminal", &get_TieFlow_Terminal); + get_map.emplace("TieFlow.ControlArea", &get_TieFlow_ControlArea); + get_map.emplace("TieFlow.Terminal", &get_TieFlow_Terminal); } void TieFlow::addEnumGetFnsToMap(std::map& get_map) const @@ -174,11 +206,25 @@ void TieFlow::addEnumGetFnsToMap(std::map& get_map) c BaseClass::addEnumGetFnsToMap(get_map); } +bool TieFlow::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TieFlow" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TieFlow::declare() { return BaseClassDefiner(TieFlow::addConstructToMap, TieFlow::addPrimitiveAssignFnsToMap, TieFlow::addClassAssignFnsToMap, TieFlow::debugName); } +std::map TieFlow::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TieFlow_factory() diff --git a/CGMES_2.4.15_16FEB2016/TieFlow.hpp b/CGMES_2.4.15_16FEB2016/TieFlow.hpp index b25ac939b..60fbe5ced 100644 --- a/CGMES_2.4.15_16FEB2016/TieFlow.hpp +++ b/CGMES_2.4.15_16FEB2016/TieFlow.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TieFlow_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TopologicalIsland.cpp b/CGMES_2.4.15_16FEB2016/TopologicalIsland.cpp index 46b353666..3b19dc682 100644 --- a/CGMES_2.4.15_16FEB2016/TopologicalIsland.cpp +++ b/CGMES_2.4.15_16FEB2016/TopologicalIsland.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologicalIsland(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologicalIsland.AngleRefTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalIsland.TopologicalNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + TopologicalIsland::TopologicalIsland() : AngleRefTopologicalNode(nullptr) {} TopologicalIsland::~TopologicalIsland() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologicalIsland::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologicalIsland::getClassNamespaceUrl() const { - { "cim:TopologicalIsland.AngleRefTopologicalNode", { CGMESProfile::SV, } }, - { "cim:TopologicalIsland.TopologicalNodes", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologicalIsland::getPossibleProfilesForClass() const +const std::string& TopologicalIsland::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologicalIsland::getPossibleProfilesForAttributes() const +const std::list& TopologicalIsland::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologicalIsland::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologicalIsland::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologicalIsland::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_AngleRefTopologicalIsland(BaseClass*, BaseClass*); @@ -108,7 +140,7 @@ const char* TopologicalIsland::debugString() const void TopologicalIsland::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologicalIsland", &TopologicalIsland_factory); + factory_map.emplace("TopologicalIsland", &TopologicalIsland_factory); } void TopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -117,8 +149,8 @@ void TopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalIsland.AngleRefTopologicalNode", &assign_TopologicalIsland_AngleRefTopologicalNode); - assign_map.emplace("cim:TopologicalIsland.TopologicalNodes", &assign_TopologicalIsland_TopologicalNodes); + assign_map.emplace("TopologicalIsland.AngleRefTopologicalNode", &assign_TopologicalIsland_AngleRefTopologicalNode); + assign_map.emplace("TopologicalIsland.TopologicalNodes", &assign_TopologicalIsland_TopologicalNodes); } void TopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -129,8 +161,8 @@ void TopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalIsland.AngleRefTopologicalNode", &get_TopologicalIsland_AngleRefTopologicalNode); - get_map.emplace("cim:TopologicalIsland.TopologicalNodes", &get_TopologicalIsland_TopologicalNodes); + get_map.emplace("TopologicalIsland.AngleRefTopologicalNode", &get_TopologicalIsland_AngleRefTopologicalNode); + get_map.emplace("TopologicalIsland.TopologicalNodes", &get_TopologicalIsland_TopologicalNodes); } void TopologicalIsland::addEnumGetFnsToMap(std::map& get_map) const @@ -138,11 +170,25 @@ void TopologicalIsland::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TopologicalIsland::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologicalIsland" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologicalIsland::declare() { return BaseClassDefiner(TopologicalIsland::addConstructToMap, TopologicalIsland::addPrimitiveAssignFnsToMap, TopologicalIsland::addClassAssignFnsToMap, TopologicalIsland::debugName); } +std::map TopologicalIsland::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologicalIsland_factory() diff --git a/CGMES_2.4.15_16FEB2016/TopologicalIsland.hpp b/CGMES_2.4.15_16FEB2016/TopologicalIsland.hpp index a6c5a898c..312406394 100644 --- a/CGMES_2.4.15_16FEB2016/TopologicalIsland.hpp +++ b/CGMES_2.4.15_16FEB2016/TopologicalIsland.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologicalIsland_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TopologicalNode.cpp b/CGMES_2.4.15_16FEB2016/TopologicalNode.cpp index 962a0d94b..cdaacb4d5 100644 --- a/CGMES_2.4.15_16FEB2016/TopologicalNode.cpp +++ b/CGMES_2.4.15_16FEB2016/TopologicalNode.cpp @@ -19,49 +19,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologicalNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologicalNode.AngleRefTopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ConnectivityNodeContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ConnectivityNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ReportingGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "TopologicalNode.SvInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.SvVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "TopologicalNode.TopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.boundaryPoint", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + }; + return ClassAttrDetailsMap; +} + TopologicalNode::TopologicalNode() : AngleRefTopologicalIsland(nullptr), BaseVoltage(nullptr), ConnectivityNodeContainer(nullptr), ReportingGroup(nullptr), SvInjection(nullptr), SvVoltage(nullptr), TopologicalIsland(nullptr) {} TopologicalNode::~TopologicalNode() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologicalNode::getAttributeNames() const { - CGMESProfile::SV, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologicalNode::getClassNamespaceUrl() const { - { "cim:TopologicalNode.AngleRefTopologicalIsland", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.BaseVoltage", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ConnectivityNodeContainer", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ConnectivityNodes", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ReportingGroup", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.SvInjection", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.SvVoltage", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.Terminal", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.TopologicalIsland", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.boundaryPoint", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndIsoCode", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndName", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndNameTso", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndIsoCode", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndName", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndNameTso", { CGMESProfile::TP_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologicalNode::getPossibleProfilesForClass() const +const std::string& TopologicalNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologicalNode::getPossibleProfilesForAttributes() const +const std::list& TopologicalNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologicalNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologicalNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologicalNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalIsland_AngleRefTopologicalNode(BaseClass*, BaseClass*); @@ -476,51 +508,51 @@ const char* TopologicalNode::debugString() const void TopologicalNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologicalNode", &TopologicalNode_factory); + factory_map.emplace("TopologicalNode", &TopologicalNode_factory); } void TopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalNode.boundaryPoint", &assign_TopologicalNode_boundaryPoint); - assign_map.emplace("cim:TopologicalNode.fromEndIsoCode", &assign_TopologicalNode_fromEndIsoCode); - assign_map.emplace("cim:TopologicalNode.fromEndName", &assign_TopologicalNode_fromEndName); - assign_map.emplace("cim:TopologicalNode.fromEndNameTso", &assign_TopologicalNode_fromEndNameTso); - assign_map.emplace("cim:TopologicalNode.toEndIsoCode", &assign_TopologicalNode_toEndIsoCode); - assign_map.emplace("cim:TopologicalNode.toEndName", &assign_TopologicalNode_toEndName); - assign_map.emplace("cim:TopologicalNode.toEndNameTso", &assign_TopologicalNode_toEndNameTso); + assign_map.emplace("TopologicalNode.boundaryPoint", &assign_TopologicalNode_boundaryPoint); + assign_map.emplace("TopologicalNode.fromEndIsoCode", &assign_TopologicalNode_fromEndIsoCode); + assign_map.emplace("TopologicalNode.fromEndName", &assign_TopologicalNode_fromEndName); + assign_map.emplace("TopologicalNode.fromEndNameTso", &assign_TopologicalNode_fromEndNameTso); + assign_map.emplace("TopologicalNode.toEndIsoCode", &assign_TopologicalNode_toEndIsoCode); + assign_map.emplace("TopologicalNode.toEndName", &assign_TopologicalNode_toEndName); + assign_map.emplace("TopologicalNode.toEndNameTso", &assign_TopologicalNode_toEndNameTso); } void TopologicalNode::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalNode.AngleRefTopologicalIsland", &assign_TopologicalNode_AngleRefTopologicalIsland); - assign_map.emplace("cim:TopologicalNode.BaseVoltage", &assign_TopologicalNode_BaseVoltage); - assign_map.emplace("cim:TopologicalNode.ConnectivityNodeContainer", &assign_TopologicalNode_ConnectivityNodeContainer); - assign_map.emplace("cim:TopologicalNode.ConnectivityNodes", &assign_TopologicalNode_ConnectivityNodes); - assign_map.emplace("cim:TopologicalNode.ReportingGroup", &assign_TopologicalNode_ReportingGroup); - assign_map.emplace("cim:TopologicalNode.SvInjection", &assign_TopologicalNode_SvInjection); - assign_map.emplace("cim:TopologicalNode.SvVoltage", &assign_TopologicalNode_SvVoltage); - assign_map.emplace("cim:TopologicalNode.Terminal", &assign_TopologicalNode_Terminal); - assign_map.emplace("cim:TopologicalNode.TopologicalIsland", &assign_TopologicalNode_TopologicalIsland); + assign_map.emplace("TopologicalNode.AngleRefTopologicalIsland", &assign_TopologicalNode_AngleRefTopologicalIsland); + assign_map.emplace("TopologicalNode.BaseVoltage", &assign_TopologicalNode_BaseVoltage); + assign_map.emplace("TopologicalNode.ConnectivityNodeContainer", &assign_TopologicalNode_ConnectivityNodeContainer); + assign_map.emplace("TopologicalNode.ConnectivityNodes", &assign_TopologicalNode_ConnectivityNodes); + assign_map.emplace("TopologicalNode.ReportingGroup", &assign_TopologicalNode_ReportingGroup); + assign_map.emplace("TopologicalNode.SvInjection", &assign_TopologicalNode_SvInjection); + assign_map.emplace("TopologicalNode.SvVoltage", &assign_TopologicalNode_SvVoltage); + assign_map.emplace("TopologicalNode.Terminal", &assign_TopologicalNode_Terminal); + assign_map.emplace("TopologicalNode.TopologicalIsland", &assign_TopologicalNode_TopologicalIsland); } void TopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalNode.boundaryPoint", &get_TopologicalNode_boundaryPoint); - get_map.emplace("cim:TopologicalNode.fromEndIsoCode", &get_TopologicalNode_fromEndIsoCode); - get_map.emplace("cim:TopologicalNode.fromEndName", &get_TopologicalNode_fromEndName); - get_map.emplace("cim:TopologicalNode.fromEndNameTso", &get_TopologicalNode_fromEndNameTso); - get_map.emplace("cim:TopologicalNode.toEndIsoCode", &get_TopologicalNode_toEndIsoCode); - get_map.emplace("cim:TopologicalNode.toEndName", &get_TopologicalNode_toEndName); - get_map.emplace("cim:TopologicalNode.toEndNameTso", &get_TopologicalNode_toEndNameTso); + get_map.emplace("TopologicalNode.boundaryPoint", &get_TopologicalNode_boundaryPoint); + get_map.emplace("TopologicalNode.fromEndIsoCode", &get_TopologicalNode_fromEndIsoCode); + get_map.emplace("TopologicalNode.fromEndName", &get_TopologicalNode_fromEndName); + get_map.emplace("TopologicalNode.fromEndNameTso", &get_TopologicalNode_fromEndNameTso); + get_map.emplace("TopologicalNode.toEndIsoCode", &get_TopologicalNode_toEndIsoCode); + get_map.emplace("TopologicalNode.toEndName", &get_TopologicalNode_toEndName); + get_map.emplace("TopologicalNode.toEndNameTso", &get_TopologicalNode_toEndNameTso); } void TopologicalNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalNode.BaseVoltage", &get_TopologicalNode_BaseVoltage); - get_map.emplace("cim:TopologicalNode.ConnectivityNodeContainer", &get_TopologicalNode_ConnectivityNodeContainer); - get_map.emplace("cim:TopologicalNode.ReportingGroup", &get_TopologicalNode_ReportingGroup); + get_map.emplace("TopologicalNode.BaseVoltage", &get_TopologicalNode_BaseVoltage); + get_map.emplace("TopologicalNode.ConnectivityNodeContainer", &get_TopologicalNode_ConnectivityNodeContainer); + get_map.emplace("TopologicalNode.ReportingGroup", &get_TopologicalNode_ReportingGroup); } void TopologicalNode::addEnumGetFnsToMap(std::map& get_map) const @@ -528,11 +560,25 @@ void TopologicalNode::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TopologicalNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologicalNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologicalNode::declare() { return BaseClassDefiner(TopologicalNode::addConstructToMap, TopologicalNode::addPrimitiveAssignFnsToMap, TopologicalNode::addClassAssignFnsToMap, TopologicalNode::debugName); } +std::map TopologicalNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologicalNode_factory() diff --git a/CGMES_2.4.15_16FEB2016/TopologicalNode.hpp b/CGMES_2.4.15_16FEB2016/TopologicalNode.hpp index b9eecea3e..361b52e5d 100644 --- a/CGMES_2.4.15_16FEB2016/TopologicalNode.hpp +++ b/CGMES_2.4.15_16FEB2016/TopologicalNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "String.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologicalNode_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TopologyBoundaryVersion.cpp b/CGMES_2.4.15_16FEB2016/TopologyBoundaryVersion.cpp index ca78ca44d..f3f67b1df 100644 --- a/CGMES_2.4.15_16FEB2016/TopologyBoundaryVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/TopologyBoundaryVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologyBoundaryVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::TP_BD, + }, + CGMESProfile::TP_BD + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologyBoundaryVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + }; + return ClassAttrDetailsMap; +} + TopologyBoundaryVersion::TopologyBoundaryVersion() {} TopologyBoundaryVersion::~TopologyBoundaryVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologyBoundaryVersion::getAttributeNames() const { - CGMESProfile::TP_BD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologyBoundaryVersion::getClassNamespaceUrl() const { - { "cim:TopologyBoundaryVersion.baseUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.baseURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.date", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.differenceModelURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.entsoeUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.entsoeURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.modelDescriptionURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.namespaceRDF", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.namespaceUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.shortName", { CGMESProfile::TP_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologyBoundaryVersion::getPossibleProfilesForClass() const +const std::string& TopologyBoundaryVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologyBoundaryVersion::getPossibleProfilesForAttributes() const +const std::list& TopologyBoundaryVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologyBoundaryVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologyBoundaryVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologyBoundaryVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologyBoundaryVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* TopologyBoundaryVersion::debugString() const void TopologyBoundaryVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologyBoundaryVersion", &TopologyBoundaryVersion_factory); + factory_map.emplace("TopologyBoundaryVersion", &TopologyBoundaryVersion_factory); } void TopologyBoundaryVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologyBoundaryVersion.baseUML", &assign_TopologyBoundaryVersion_baseUML); - assign_map.emplace("cim:TopologyBoundaryVersion.baseURI", &assign_TopologyBoundaryVersion_baseURI); - assign_map.emplace("cim:TopologyBoundaryVersion.date", &assign_TopologyBoundaryVersion_date); - assign_map.emplace("cim:TopologyBoundaryVersion.differenceModelURI", &assign_TopologyBoundaryVersion_differenceModelURI); - assign_map.emplace("cim:TopologyBoundaryVersion.entsoeUML", &assign_TopologyBoundaryVersion_entsoeUML); - assign_map.emplace("cim:TopologyBoundaryVersion.entsoeURI", &assign_TopologyBoundaryVersion_entsoeURI); - assign_map.emplace("cim:TopologyBoundaryVersion.modelDescriptionURI", &assign_TopologyBoundaryVersion_modelDescriptionURI); - assign_map.emplace("cim:TopologyBoundaryVersion.namespaceRDF", &assign_TopologyBoundaryVersion_namespaceRDF); - assign_map.emplace("cim:TopologyBoundaryVersion.namespaceUML", &assign_TopologyBoundaryVersion_namespaceUML); - assign_map.emplace("cim:TopologyBoundaryVersion.shortName", &assign_TopologyBoundaryVersion_shortName); + assign_map.emplace("TopologyBoundaryVersion.baseUML", &assign_TopologyBoundaryVersion_baseUML); + assign_map.emplace("TopologyBoundaryVersion.baseURI", &assign_TopologyBoundaryVersion_baseURI); + assign_map.emplace("TopologyBoundaryVersion.date", &assign_TopologyBoundaryVersion_date); + assign_map.emplace("TopologyBoundaryVersion.differenceModelURI", &assign_TopologyBoundaryVersion_differenceModelURI); + assign_map.emplace("TopologyBoundaryVersion.entsoeUML", &assign_TopologyBoundaryVersion_entsoeUML); + assign_map.emplace("TopologyBoundaryVersion.entsoeURI", &assign_TopologyBoundaryVersion_entsoeURI); + assign_map.emplace("TopologyBoundaryVersion.modelDescriptionURI", &assign_TopologyBoundaryVersion_modelDescriptionURI); + assign_map.emplace("TopologyBoundaryVersion.namespaceRDF", &assign_TopologyBoundaryVersion_namespaceRDF); + assign_map.emplace("TopologyBoundaryVersion.namespaceUML", &assign_TopologyBoundaryVersion_namespaceUML); + assign_map.emplace("TopologyBoundaryVersion.shortName", &assign_TopologyBoundaryVersion_shortName); } void TopologyBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void TopologyBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologyBoundaryVersion.baseUML", &get_TopologyBoundaryVersion_baseUML); - get_map.emplace("cim:TopologyBoundaryVersion.baseURI", &get_TopologyBoundaryVersion_baseURI); - get_map.emplace("cim:TopologyBoundaryVersion.date", &get_TopologyBoundaryVersion_date); - get_map.emplace("cim:TopologyBoundaryVersion.differenceModelURI", &get_TopologyBoundaryVersion_differenceModelURI); - get_map.emplace("cim:TopologyBoundaryVersion.entsoeUML", &get_TopologyBoundaryVersion_entsoeUML); - get_map.emplace("cim:TopologyBoundaryVersion.entsoeURI", &get_TopologyBoundaryVersion_entsoeURI); - get_map.emplace("cim:TopologyBoundaryVersion.modelDescriptionURI", &get_TopologyBoundaryVersion_modelDescriptionURI); - get_map.emplace("cim:TopologyBoundaryVersion.namespaceRDF", &get_TopologyBoundaryVersion_namespaceRDF); - get_map.emplace("cim:TopologyBoundaryVersion.namespaceUML", &get_TopologyBoundaryVersion_namespaceUML); - get_map.emplace("cim:TopologyBoundaryVersion.shortName", &get_TopologyBoundaryVersion_shortName); + get_map.emplace("TopologyBoundaryVersion.baseUML", &get_TopologyBoundaryVersion_baseUML); + get_map.emplace("TopologyBoundaryVersion.baseURI", &get_TopologyBoundaryVersion_baseURI); + get_map.emplace("TopologyBoundaryVersion.date", &get_TopologyBoundaryVersion_date); + get_map.emplace("TopologyBoundaryVersion.differenceModelURI", &get_TopologyBoundaryVersion_differenceModelURI); + get_map.emplace("TopologyBoundaryVersion.entsoeUML", &get_TopologyBoundaryVersion_entsoeUML); + get_map.emplace("TopologyBoundaryVersion.entsoeURI", &get_TopologyBoundaryVersion_entsoeURI); + get_map.emplace("TopologyBoundaryVersion.modelDescriptionURI", &get_TopologyBoundaryVersion_modelDescriptionURI); + get_map.emplace("TopologyBoundaryVersion.namespaceRDF", &get_TopologyBoundaryVersion_namespaceRDF); + get_map.emplace("TopologyBoundaryVersion.namespaceUML", &get_TopologyBoundaryVersion_namespaceUML); + get_map.emplace("TopologyBoundaryVersion.shortName", &get_TopologyBoundaryVersion_shortName); } void TopologyBoundaryVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void TopologyBoundaryVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TopologyBoundaryVersion::declare() { return BaseClassDefiner(TopologyBoundaryVersion::addConstructToMap, TopologyBoundaryVersion::addPrimitiveAssignFnsToMap, TopologyBoundaryVersion::addClassAssignFnsToMap, TopologyBoundaryVersion::debugName); } +std::map TopologyBoundaryVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologyBoundaryVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/TopologyBoundaryVersion.hpp b/CGMES_2.4.15_16FEB2016/TopologyBoundaryVersion.hpp index 54e049f56..3ef399d4e 100644 --- a/CGMES_2.4.15_16FEB2016/TopologyBoundaryVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/TopologyBoundaryVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologyBoundaryVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TopologyVersion.cpp b/CGMES_2.4.15_16FEB2016/TopologyVersion.cpp index e54da7674..9f43f1568 100644 --- a/CGMES_2.4.15_16FEB2016/TopologyVersion.cpp +++ b/CGMES_2.4.15_16FEB2016/TopologyVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologyVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologyVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + TopologyVersion::TopologyVersion() {} TopologyVersion::~TopologyVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologyVersion::getAttributeNames() const { - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologyVersion::getClassNamespaceUrl() const { - { "cim:TopologyVersion.baseUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.baseURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.date", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.differenceModelURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.entsoeUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.entsoeURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.modelDescriptionURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.namespaceRDF", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.namespaceUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.shortName", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologyVersion::getPossibleProfilesForClass() const +const std::string& TopologyVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologyVersion::getPossibleProfilesForAttributes() const +const std::list& TopologyVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologyVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologyVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologyVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologyVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* TopologyVersion::debugString() const void TopologyVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologyVersion", &TopologyVersion_factory); + factory_map.emplace("TopologyVersion", &TopologyVersion_factory); } void TopologyVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologyVersion.baseUML", &assign_TopologyVersion_baseUML); - assign_map.emplace("cim:TopologyVersion.baseURI", &assign_TopologyVersion_baseURI); - assign_map.emplace("cim:TopologyVersion.date", &assign_TopologyVersion_date); - assign_map.emplace("cim:TopologyVersion.differenceModelURI", &assign_TopologyVersion_differenceModelURI); - assign_map.emplace("cim:TopologyVersion.entsoeUML", &assign_TopologyVersion_entsoeUML); - assign_map.emplace("cim:TopologyVersion.entsoeURI", &assign_TopologyVersion_entsoeURI); - assign_map.emplace("cim:TopologyVersion.modelDescriptionURI", &assign_TopologyVersion_modelDescriptionURI); - assign_map.emplace("cim:TopologyVersion.namespaceRDF", &assign_TopologyVersion_namespaceRDF); - assign_map.emplace("cim:TopologyVersion.namespaceUML", &assign_TopologyVersion_namespaceUML); - assign_map.emplace("cim:TopologyVersion.shortName", &assign_TopologyVersion_shortName); + assign_map.emplace("TopologyVersion.baseUML", &assign_TopologyVersion_baseUML); + assign_map.emplace("TopologyVersion.baseURI", &assign_TopologyVersion_baseURI); + assign_map.emplace("TopologyVersion.date", &assign_TopologyVersion_date); + assign_map.emplace("TopologyVersion.differenceModelURI", &assign_TopologyVersion_differenceModelURI); + assign_map.emplace("TopologyVersion.entsoeUML", &assign_TopologyVersion_entsoeUML); + assign_map.emplace("TopologyVersion.entsoeURI", &assign_TopologyVersion_entsoeURI); + assign_map.emplace("TopologyVersion.modelDescriptionURI", &assign_TopologyVersion_modelDescriptionURI); + assign_map.emplace("TopologyVersion.namespaceRDF", &assign_TopologyVersion_namespaceRDF); + assign_map.emplace("TopologyVersion.namespaceUML", &assign_TopologyVersion_namespaceUML); + assign_map.emplace("TopologyVersion.shortName", &assign_TopologyVersion_shortName); } void TopologyVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void TopologyVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologyVersion.baseUML", &get_TopologyVersion_baseUML); - get_map.emplace("cim:TopologyVersion.baseURI", &get_TopologyVersion_baseURI); - get_map.emplace("cim:TopologyVersion.date", &get_TopologyVersion_date); - get_map.emplace("cim:TopologyVersion.differenceModelURI", &get_TopologyVersion_differenceModelURI); - get_map.emplace("cim:TopologyVersion.entsoeUML", &get_TopologyVersion_entsoeUML); - get_map.emplace("cim:TopologyVersion.entsoeURI", &get_TopologyVersion_entsoeURI); - get_map.emplace("cim:TopologyVersion.modelDescriptionURI", &get_TopologyVersion_modelDescriptionURI); - get_map.emplace("cim:TopologyVersion.namespaceRDF", &get_TopologyVersion_namespaceRDF); - get_map.emplace("cim:TopologyVersion.namespaceUML", &get_TopologyVersion_namespaceUML); - get_map.emplace("cim:TopologyVersion.shortName", &get_TopologyVersion_shortName); + get_map.emplace("TopologyVersion.baseUML", &get_TopologyVersion_baseUML); + get_map.emplace("TopologyVersion.baseURI", &get_TopologyVersion_baseURI); + get_map.emplace("TopologyVersion.date", &get_TopologyVersion_date); + get_map.emplace("TopologyVersion.differenceModelURI", &get_TopologyVersion_differenceModelURI); + get_map.emplace("TopologyVersion.entsoeUML", &get_TopologyVersion_entsoeUML); + get_map.emplace("TopologyVersion.entsoeURI", &get_TopologyVersion_entsoeURI); + get_map.emplace("TopologyVersion.modelDescriptionURI", &get_TopologyVersion_modelDescriptionURI); + get_map.emplace("TopologyVersion.namespaceRDF", &get_TopologyVersion_namespaceRDF); + get_map.emplace("TopologyVersion.namespaceUML", &get_TopologyVersion_namespaceUML); + get_map.emplace("TopologyVersion.shortName", &get_TopologyVersion_shortName); } void TopologyVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void TopologyVersion::addEnumGetFnsToMap(std::map& ge BaseClass::addEnumGetFnsToMap(get_map); } +bool TopologyVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologyVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologyVersion::declare() { return BaseClassDefiner(TopologyVersion::addConstructToMap, TopologyVersion::addPrimitiveAssignFnsToMap, TopologyVersion::addClassAssignFnsToMap, TopologyVersion::debugName); } +std::map TopologyVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologyVersion_factory() diff --git a/CGMES_2.4.15_16FEB2016/TopologyVersion.hpp b/CGMES_2.4.15_16FEB2016/TopologyVersion.hpp index 5c9119a35..685c05503 100644 --- a/CGMES_2.4.15_16FEB2016/TopologyVersion.hpp +++ b/CGMES_2.4.15_16FEB2016/TopologyVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologyVersion_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TransformerEnd.cpp b/CGMES_2.4.15_16FEB2016/TransformerEnd.cpp index 86e31752c..532d409ed 100644 --- a/CGMES_2.4.15_16FEB2016/TransformerEnd.cpp +++ b/CGMES_2.4.15_16FEB2016/TransformerEnd.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TransformerEnd(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TransformerEnd.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.PhaseTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.RatioTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.endNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.grounded", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.rground", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.xground", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TransformerEnd::TransformerEnd() : BaseVoltage(nullptr), PhaseTapChanger(nullptr), RatioTapChanger(nullptr), Terminal(nullptr) {} TransformerEnd::~TransformerEnd() {} -static const std::list PossibleProfilesForClass = +const std::list& TransformerEnd::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TransformerEnd::getClassNamespaceUrl() const { - { "cim:TransformerEnd.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.PhaseTapChanger", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.RatioTapChanger", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.Terminal", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.endNumber", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.grounded", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.rground", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.xground", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TransformerEnd::getPossibleProfilesForClass() const +const std::string& TransformerEnd::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TransformerEnd::getPossibleProfilesForAttributes() const +const std::list& TransformerEnd::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TransformerEnd::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TransformerEnd::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TransformerEnd::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_TransformerEnds(BaseClass*, BaseClass*); @@ -272,39 +304,39 @@ const char* TransformerEnd::debugString() const void TransformerEnd::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TransformerEnd", &TransformerEnd_factory); + factory_map.emplace("TransformerEnd", &TransformerEnd_factory); } void TransformerEnd::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TransformerEnd.endNumber", &assign_TransformerEnd_endNumber); - assign_map.emplace("cim:TransformerEnd.grounded", &assign_TransformerEnd_grounded); - assign_map.emplace("cim:TransformerEnd.rground", &assign_TransformerEnd_rground); - assign_map.emplace("cim:TransformerEnd.xground", &assign_TransformerEnd_xground); + assign_map.emplace("TransformerEnd.endNumber", &assign_TransformerEnd_endNumber); + assign_map.emplace("TransformerEnd.grounded", &assign_TransformerEnd_grounded); + assign_map.emplace("TransformerEnd.rground", &assign_TransformerEnd_rground); + assign_map.emplace("TransformerEnd.xground", &assign_TransformerEnd_xground); } void TransformerEnd::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TransformerEnd.BaseVoltage", &assign_TransformerEnd_BaseVoltage); - assign_map.emplace("cim:TransformerEnd.PhaseTapChanger", &assign_TransformerEnd_PhaseTapChanger); - assign_map.emplace("cim:TransformerEnd.RatioTapChanger", &assign_TransformerEnd_RatioTapChanger); - assign_map.emplace("cim:TransformerEnd.Terminal", &assign_TransformerEnd_Terminal); + assign_map.emplace("TransformerEnd.BaseVoltage", &assign_TransformerEnd_BaseVoltage); + assign_map.emplace("TransformerEnd.PhaseTapChanger", &assign_TransformerEnd_PhaseTapChanger); + assign_map.emplace("TransformerEnd.RatioTapChanger", &assign_TransformerEnd_RatioTapChanger); + assign_map.emplace("TransformerEnd.Terminal", &assign_TransformerEnd_Terminal); } void TransformerEnd::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TransformerEnd.endNumber", &get_TransformerEnd_endNumber); - get_map.emplace("cim:TransformerEnd.grounded", &get_TransformerEnd_grounded); - get_map.emplace("cim:TransformerEnd.rground", &get_TransformerEnd_rground); - get_map.emplace("cim:TransformerEnd.xground", &get_TransformerEnd_xground); + get_map.emplace("TransformerEnd.endNumber", &get_TransformerEnd_endNumber); + get_map.emplace("TransformerEnd.grounded", &get_TransformerEnd_grounded); + get_map.emplace("TransformerEnd.rground", &get_TransformerEnd_rground); + get_map.emplace("TransformerEnd.xground", &get_TransformerEnd_xground); } void TransformerEnd::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TransformerEnd.BaseVoltage", &get_TransformerEnd_BaseVoltage); - get_map.emplace("cim:TransformerEnd.Terminal", &get_TransformerEnd_Terminal); + get_map.emplace("TransformerEnd.BaseVoltage", &get_TransformerEnd_BaseVoltage); + get_map.emplace("TransformerEnd.Terminal", &get_TransformerEnd_Terminal); } void TransformerEnd::addEnumGetFnsToMap(std::map& get_map) const @@ -312,11 +344,25 @@ void TransformerEnd::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TransformerEnd::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TransformerEnd" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TransformerEnd::declare() { return BaseClassDefiner(TransformerEnd::addConstructToMap, TransformerEnd::addPrimitiveAssignFnsToMap, TransformerEnd::addClassAssignFnsToMap, TransformerEnd::debugName); } +std::map TransformerEnd::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TransformerEnd_factory() diff --git a/CGMES_2.4.15_16FEB2016/TransformerEnd.hpp b/CGMES_2.4.15_16FEB2016/TransformerEnd.hpp index 163603fd7..147a110e7 100644 --- a/CGMES_2.4.15_16FEB2016/TransformerEnd.hpp +++ b/CGMES_2.4.15_16FEB2016/TransformerEnd.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Reactance.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TransformerEnd_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TurbLCFB1.cpp b/CGMES_2.4.15_16FEB2016/TurbLCFB1.cpp index 338c975ef..3d9c3d666 100644 --- a/CGMES_2.4.15_16FEB2016/TurbLCFB1.cpp +++ b/CGMES_2.4.15_16FEB2016/TurbLCFB1.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbLCFB1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbLCFB1.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.fb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.fbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.irmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.pbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.pmwset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.speedReferenceGovernor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbLCFB1::TurbLCFB1() {} TurbLCFB1::~TurbLCFB1() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbLCFB1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbLCFB1::getClassNamespaceUrl() const { - { "cim:TurbLCFB1.db", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.emax", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.fb", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.fbf", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.irmax", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.ki", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.kp", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.mwbase", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.pbf", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.pmwset", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.speedReferenceGovernor", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.tpelec", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbLCFB1::getPossibleProfilesForClass() const +const std::string& TurbLCFB1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbLCFB1::getPossibleProfilesForAttributes() const +const std::list& TurbLCFB1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineLoadControllerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbLCFB1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbLCFB1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbLCFB1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TurbLCFB1_db(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* TurbLCFB1::debugString() const void TurbLCFB1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbLCFB1", &TurbLCFB1_factory); + factory_map.emplace("TurbLCFB1", &TurbLCFB1_factory); } void TurbLCFB1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbLCFB1.db", &assign_TurbLCFB1_db); - assign_map.emplace("cim:TurbLCFB1.emax", &assign_TurbLCFB1_emax); - assign_map.emplace("cim:TurbLCFB1.fb", &assign_TurbLCFB1_fb); - assign_map.emplace("cim:TurbLCFB1.fbf", &assign_TurbLCFB1_fbf); - assign_map.emplace("cim:TurbLCFB1.irmax", &assign_TurbLCFB1_irmax); - assign_map.emplace("cim:TurbLCFB1.ki", &assign_TurbLCFB1_ki); - assign_map.emplace("cim:TurbLCFB1.kp", &assign_TurbLCFB1_kp); - assign_map.emplace("cim:TurbLCFB1.mwbase", &assign_TurbLCFB1_mwbase); - assign_map.emplace("cim:TurbLCFB1.pbf", &assign_TurbLCFB1_pbf); - assign_map.emplace("cim:TurbLCFB1.pmwset", &assign_TurbLCFB1_pmwset); - assign_map.emplace("cim:TurbLCFB1.speedReferenceGovernor", &assign_TurbLCFB1_speedReferenceGovernor); - assign_map.emplace("cim:TurbLCFB1.tpelec", &assign_TurbLCFB1_tpelec); + assign_map.emplace("TurbLCFB1.db", &assign_TurbLCFB1_db); + assign_map.emplace("TurbLCFB1.emax", &assign_TurbLCFB1_emax); + assign_map.emplace("TurbLCFB1.fb", &assign_TurbLCFB1_fb); + assign_map.emplace("TurbLCFB1.fbf", &assign_TurbLCFB1_fbf); + assign_map.emplace("TurbLCFB1.irmax", &assign_TurbLCFB1_irmax); + assign_map.emplace("TurbLCFB1.ki", &assign_TurbLCFB1_ki); + assign_map.emplace("TurbLCFB1.kp", &assign_TurbLCFB1_kp); + assign_map.emplace("TurbLCFB1.mwbase", &assign_TurbLCFB1_mwbase); + assign_map.emplace("TurbLCFB1.pbf", &assign_TurbLCFB1_pbf); + assign_map.emplace("TurbLCFB1.pmwset", &assign_TurbLCFB1_pmwset); + assign_map.emplace("TurbLCFB1.speedReferenceGovernor", &assign_TurbLCFB1_speedReferenceGovernor); + assign_map.emplace("TurbLCFB1.tpelec", &assign_TurbLCFB1_tpelec); } void TurbLCFB1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void TurbLCFB1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbLCFB1.db", &get_TurbLCFB1_db); - get_map.emplace("cim:TurbLCFB1.emax", &get_TurbLCFB1_emax); - get_map.emplace("cim:TurbLCFB1.fb", &get_TurbLCFB1_fb); - get_map.emplace("cim:TurbLCFB1.fbf", &get_TurbLCFB1_fbf); - get_map.emplace("cim:TurbLCFB1.irmax", &get_TurbLCFB1_irmax); - get_map.emplace("cim:TurbLCFB1.ki", &get_TurbLCFB1_ki); - get_map.emplace("cim:TurbLCFB1.kp", &get_TurbLCFB1_kp); - get_map.emplace("cim:TurbLCFB1.mwbase", &get_TurbLCFB1_mwbase); - get_map.emplace("cim:TurbLCFB1.pbf", &get_TurbLCFB1_pbf); - get_map.emplace("cim:TurbLCFB1.pmwset", &get_TurbLCFB1_pmwset); - get_map.emplace("cim:TurbLCFB1.speedReferenceGovernor", &get_TurbLCFB1_speedReferenceGovernor); - get_map.emplace("cim:TurbLCFB1.tpelec", &get_TurbLCFB1_tpelec); + get_map.emplace("TurbLCFB1.db", &get_TurbLCFB1_db); + get_map.emplace("TurbLCFB1.emax", &get_TurbLCFB1_emax); + get_map.emplace("TurbLCFB1.fb", &get_TurbLCFB1_fb); + get_map.emplace("TurbLCFB1.fbf", &get_TurbLCFB1_fbf); + get_map.emplace("TurbLCFB1.irmax", &get_TurbLCFB1_irmax); + get_map.emplace("TurbLCFB1.ki", &get_TurbLCFB1_ki); + get_map.emplace("TurbLCFB1.kp", &get_TurbLCFB1_kp); + get_map.emplace("TurbLCFB1.mwbase", &get_TurbLCFB1_mwbase); + get_map.emplace("TurbLCFB1.pbf", &get_TurbLCFB1_pbf); + get_map.emplace("TurbLCFB1.pmwset", &get_TurbLCFB1_pmwset); + get_map.emplace("TurbLCFB1.speedReferenceGovernor", &get_TurbLCFB1_speedReferenceGovernor); + get_map.emplace("TurbLCFB1.tpelec", &get_TurbLCFB1_tpelec); } void TurbLCFB1::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void TurbLCFB1::addEnumGetFnsToMap(std::map& get_map) TurbineLoadControllerDynamics::addEnumGetFnsToMap(get_map); } +bool TurbLCFB1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TurbLCFB1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TurbLCFB1::declare() { return BaseClassDefiner(TurbLCFB1::addConstructToMap, TurbLCFB1::addPrimitiveAssignFnsToMap, TurbLCFB1::addClassAssignFnsToMap, TurbLCFB1::debugName); } +std::map TurbLCFB1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineLoadControllerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbLCFB1_factory() diff --git a/CGMES_2.4.15_16FEB2016/TurbLCFB1.hpp b/CGMES_2.4.15_16FEB2016/TurbLCFB1.hpp index f45fd978f..38b0d7ec5 100644 --- a/CGMES_2.4.15_16FEB2016/TurbLCFB1.hpp +++ b/CGMES_2.4.15_16FEB2016/TurbLCFB1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineLoadControllerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbLCFB1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TurbineGovernorDynamics.cpp b/CGMES_2.4.15_16FEB2016/TurbineGovernorDynamics.cpp index cebece4b4..a2b509d19 100644 --- a/CGMES_2.4.15_16FEB2016/TurbineGovernorDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/TurbineGovernorDynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineGovernorDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineGovernorDynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorDynamics.TurbineLoadControllerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineGovernorDynamics::TurbineGovernorDynamics() : AsynchronousMachineDynamics(nullptr), TurbineLoadControllerDynamics(nullptr) {} TurbineGovernorDynamics::~TurbineGovernorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineGovernorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineGovernorDynamics::getClassNamespaceUrl() const { - { "cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorDynamics.TurbineLoadControllerDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineGovernorDynamics::getPossibleProfilesForClass() const +const std::string& TurbineGovernorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineGovernorDynamics::getPossibleProfilesForAttributes() const +const std::list& TurbineGovernorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineGovernorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineGovernorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineGovernorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_TurbineGovernorDynamics(BaseClass*, BaseClass*); @@ -129,7 +161,7 @@ const char* TurbineGovernorDynamics::debugString() const void TurbineGovernorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineGovernorDynamics", &TurbineGovernorDynamics_factory); + factory_map.emplace("TurbineGovernorDynamics", &TurbineGovernorDynamics_factory); } void TurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -138,9 +170,9 @@ void TurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", &assign_TurbineGovernorDynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:TurbineGovernorDynamics.SynchronousMachineDynamics", &assign_TurbineGovernorDynamics_SynchronousMachineDynamics); - assign_map.emplace("cim:TurbineGovernorDynamics.TurbineLoadControllerDynamics", &assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics); + assign_map.emplace("TurbineGovernorDynamics.AsynchronousMachineDynamics", &assign_TurbineGovernorDynamics_AsynchronousMachineDynamics); + assign_map.emplace("TurbineGovernorDynamics.SynchronousMachineDynamics", &assign_TurbineGovernorDynamics_SynchronousMachineDynamics); + assign_map.emplace("TurbineGovernorDynamics.TurbineLoadControllerDynamics", &assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics); } void TurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -151,8 +183,8 @@ void TurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", &get_TurbineGovernorDynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:TurbineGovernorDynamics.SynchronousMachineDynamics", &get_TurbineGovernorDynamics_SynchronousMachineDynamics); + get_map.emplace("TurbineGovernorDynamics.AsynchronousMachineDynamics", &get_TurbineGovernorDynamics_AsynchronousMachineDynamics); + get_map.emplace("TurbineGovernorDynamics.SynchronousMachineDynamics", &get_TurbineGovernorDynamics_SynchronousMachineDynamics); } void TurbineGovernorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void TurbineGovernorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineGovernorDynamics::declare() { return BaseClassDefiner(TurbineGovernorDynamics::addConstructToMap, TurbineGovernorDynamics::addPrimitiveAssignFnsToMap, TurbineGovernorDynamics::addClassAssignFnsToMap, TurbineGovernorDynamics::debugName); } +std::map TurbineGovernorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineGovernorDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/TurbineGovernorDynamics.hpp b/CGMES_2.4.15_16FEB2016/TurbineGovernorDynamics.hpp index dda79cfd7..80082c3d2 100644 --- a/CGMES_2.4.15_16FEB2016/TurbineGovernorDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/TurbineGovernorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineGovernorDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TurbineGovernorUserDefined.cpp b/CGMES_2.4.15_16FEB2016/TurbineGovernorUserDefined.cpp index ad7d7ef5f..424d7e661 100644 --- a/CGMES_2.4.15_16FEB2016/TurbineGovernorUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/TurbineGovernorUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineGovernorUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineGovernorUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineGovernorUserDefined::TurbineGovernorUserDefined() {} TurbineGovernorUserDefined::~TurbineGovernorUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineGovernorUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineGovernorUserDefined::getClassNamespaceUrl() const { - { "cim:TurbineGovernorUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineGovernorUserDefined::getPossibleProfilesForClass() const +const std::string& TurbineGovernorUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineGovernorUserDefined::getPossibleProfilesForAttributes() const +const std::list& TurbineGovernorUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineGovernorUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineGovernorUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineGovernorUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* TurbineGovernorUserDefined::debugString() const void TurbineGovernorUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineGovernorUserDefined", &TurbineGovernorUserDefined_factory); + factory_map.emplace("TurbineGovernorUserDefined", &TurbineGovernorUserDefined_factory); } void TurbineGovernorUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorUserDefined.proprietary", &assign_TurbineGovernorUserDefined_proprietary); + assign_map.emplace("TurbineGovernorUserDefined.proprietary", &assign_TurbineGovernorUserDefined_proprietary); } void TurbineGovernorUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorUserDefined.ProprietaryParameterDynamics", &assign_TurbineGovernorUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("TurbineGovernorUserDefined.ProprietaryParameterDynamics", &assign_TurbineGovernorUserDefined_ProprietaryParameterDynamics); } void TurbineGovernorUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbineGovernorUserDefined.proprietary", &get_TurbineGovernorUserDefined_proprietary); + get_map.emplace("TurbineGovernorUserDefined.proprietary", &get_TurbineGovernorUserDefined_proprietary); } void TurbineGovernorUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void TurbineGovernorUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineGovernorUserDefined::declare() { return BaseClassDefiner(TurbineGovernorUserDefined::addConstructToMap, TurbineGovernorUserDefined::addPrimitiveAssignFnsToMap, TurbineGovernorUserDefined::addClassAssignFnsToMap, TurbineGovernorUserDefined::debugName); } +std::map TurbineGovernorUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineGovernorUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/TurbineGovernorUserDefined.hpp b/CGMES_2.4.15_16FEB2016/TurbineGovernorUserDefined.hpp index 47aa48210..22cc9ca41 100644 --- a/CGMES_2.4.15_16FEB2016/TurbineGovernorUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/TurbineGovernorUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineGovernorUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TurbineLoadControllerDynamics.cpp b/CGMES_2.4.15_16FEB2016/TurbineLoadControllerDynamics.cpp index d9ae03d4f..1ff0ad3ec 100644 --- a/CGMES_2.4.15_16FEB2016/TurbineLoadControllerDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/TurbineLoadControllerDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineLoadControllerDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineLoadControllerDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineLoadControllerDynamics::TurbineLoadControllerDynamics() : TurbineGovernorDynamics(nullptr) {} TurbineLoadControllerDynamics::~TurbineLoadControllerDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineLoadControllerDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineLoadControllerDynamics::getClassNamespaceUrl() const { - { "cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineLoadControllerDynamics::getPossibleProfilesForClass() const +const std::string& TurbineLoadControllerDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineLoadControllerDynamics::getPossibleProfilesForAttributes() const +const std::list& TurbineLoadControllerDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineLoadControllerDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineLoadControllerDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineLoadControllerDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* TurbineLoadControllerDynamics::debugString() const void TurbineLoadControllerDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineLoadControllerDynamics", &TurbineLoadControllerDynamics_factory); + factory_map.emplace("TurbineLoadControllerDynamics", &TurbineLoadControllerDynamics_factory); } void TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void TurbineLoadControllerDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", &assign_TurbineLoadControllerDynamics_TurbineGovernorDynamics); + assign_map.emplace("TurbineLoadControllerDynamics.TurbineGovernorDynamics", &assign_TurbineLoadControllerDynamics_TurbineGovernorDynamics); } void TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", &get_TurbineLoadControllerDynamics_TurbineGovernorDynamics); + get_map.emplace("TurbineLoadControllerDynamics.TurbineGovernorDynamics", &get_TurbineLoadControllerDynamics_TurbineGovernorDynamics); } void TurbineLoadControllerDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void TurbineLoadControllerDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineLoadControllerDynamics::declare() { return BaseClassDefiner(TurbineLoadControllerDynamics::addConstructToMap, TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap, TurbineLoadControllerDynamics::addClassAssignFnsToMap, TurbineLoadControllerDynamics::debugName); } +std::map TurbineLoadControllerDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineLoadControllerDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/TurbineLoadControllerDynamics.hpp b/CGMES_2.4.15_16FEB2016/TurbineLoadControllerDynamics.hpp index 12ec05aec..6cf21de3b 100644 --- a/CGMES_2.4.15_16FEB2016/TurbineLoadControllerDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/TurbineLoadControllerDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineLoadControllerDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/TurbineLoadControllerUserDefined.cpp b/CGMES_2.4.15_16FEB2016/TurbineLoadControllerUserDefined.cpp index 842adf4c4..d75df90a9 100644 --- a/CGMES_2.4.15_16FEB2016/TurbineLoadControllerUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/TurbineLoadControllerUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineLoadControllerUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineLoadControllerUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineLoadControllerUserDefined::TurbineLoadControllerUserDefined() {} TurbineLoadControllerUserDefined::~TurbineLoadControllerUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineLoadControllerUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineLoadControllerUserDefined::getClassNamespaceUrl() const { - { "cim:TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineLoadControllerUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineLoadControllerUserDefined::getPossibleProfilesForClass() const +const std::string& TurbineLoadControllerUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineLoadControllerUserDefined::getPossibleProfilesForAttributes() const +const std::list& TurbineLoadControllerUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineLoadControllerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineLoadControllerUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineLoadControllerUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineLoadControllerUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* TurbineLoadControllerUserDefined::debugString() const void TurbineLoadControllerUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineLoadControllerUserDefined", &TurbineLoadControllerUserDefined_factory); + factory_map.emplace("TurbineLoadControllerUserDefined", &TurbineLoadControllerUserDefined_factory); } void TurbineLoadControllerUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerUserDefined.proprietary", &assign_TurbineLoadControllerUserDefined_proprietary); + assign_map.emplace("TurbineLoadControllerUserDefined.proprietary", &assign_TurbineLoadControllerUserDefined_proprietary); } void TurbineLoadControllerUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", &assign_TurbineLoadControllerUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", &assign_TurbineLoadControllerUserDefined_ProprietaryParameterDynamics); } void TurbineLoadControllerUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbineLoadControllerUserDefined.proprietary", &get_TurbineLoadControllerUserDefined_proprietary); + get_map.emplace("TurbineLoadControllerUserDefined.proprietary", &get_TurbineLoadControllerUserDefined_proprietary); } void TurbineLoadControllerUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void TurbineLoadControllerUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineLoadControllerUserDefined::declare() { return BaseClassDefiner(TurbineLoadControllerUserDefined::addConstructToMap, TurbineLoadControllerUserDefined::addPrimitiveAssignFnsToMap, TurbineLoadControllerUserDefined::addClassAssignFnsToMap, TurbineLoadControllerUserDefined::debugName); } +std::map TurbineLoadControllerUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineLoadControllerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineLoadControllerUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/TurbineLoadControllerUserDefined.hpp b/CGMES_2.4.15_16FEB2016/TurbineLoadControllerUserDefined.hpp index ce15803d0..3eea58184 100644 --- a/CGMES_2.4.15_16FEB2016/TurbineLoadControllerUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/TurbineLoadControllerUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineLoadControllerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineLoadControllerUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLim2Simplified.cpp b/CGMES_2.4.15_16FEB2016/UnderexcLim2Simplified.cpp index d3524b97d..4f74c548d 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLim2Simplified.cpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLim2Simplified.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLim2Simplified(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLim2Simplified.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.p0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.q0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.q1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLim2Simplified::UnderexcLim2Simplified() {} UnderexcLim2Simplified::~UnderexcLim2Simplified() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLim2Simplified::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLim2Simplified::getClassNamespaceUrl() const { - { "cim:UnderexcLim2Simplified.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.p0", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.p1", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.q0", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.q1", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.vuimin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLim2Simplified::getPossibleProfilesForClass() const +const std::string& UnderexcLim2Simplified::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLim2Simplified::getPossibleProfilesForAttributes() const +const std::list& UnderexcLim2Simplified::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLim2Simplified::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLim2Simplified::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLim2Simplified::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLim2Simplified_kui(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* UnderexcLim2Simplified::debugString() const void UnderexcLim2Simplified::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLim2Simplified", &UnderexcLim2Simplified_factory); + factory_map.emplace("UnderexcLim2Simplified", &UnderexcLim2Simplified_factory); } void UnderexcLim2Simplified::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLim2Simplified.kui", &assign_UnderexcLim2Simplified_kui); - assign_map.emplace("cim:UnderexcLim2Simplified.p0", &assign_UnderexcLim2Simplified_p0); - assign_map.emplace("cim:UnderexcLim2Simplified.p1", &assign_UnderexcLim2Simplified_p1); - assign_map.emplace("cim:UnderexcLim2Simplified.q0", &assign_UnderexcLim2Simplified_q0); - assign_map.emplace("cim:UnderexcLim2Simplified.q1", &assign_UnderexcLim2Simplified_q1); - assign_map.emplace("cim:UnderexcLim2Simplified.vuimax", &assign_UnderexcLim2Simplified_vuimax); - assign_map.emplace("cim:UnderexcLim2Simplified.vuimin", &assign_UnderexcLim2Simplified_vuimin); + assign_map.emplace("UnderexcLim2Simplified.kui", &assign_UnderexcLim2Simplified_kui); + assign_map.emplace("UnderexcLim2Simplified.p0", &assign_UnderexcLim2Simplified_p0); + assign_map.emplace("UnderexcLim2Simplified.p1", &assign_UnderexcLim2Simplified_p1); + assign_map.emplace("UnderexcLim2Simplified.q0", &assign_UnderexcLim2Simplified_q0); + assign_map.emplace("UnderexcLim2Simplified.q1", &assign_UnderexcLim2Simplified_q1); + assign_map.emplace("UnderexcLim2Simplified.vuimax", &assign_UnderexcLim2Simplified_vuimax); + assign_map.emplace("UnderexcLim2Simplified.vuimin", &assign_UnderexcLim2Simplified_vuimin); } void UnderexcLim2Simplified::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void UnderexcLim2Simplified::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLim2Simplified.kui", &get_UnderexcLim2Simplified_kui); - get_map.emplace("cim:UnderexcLim2Simplified.p0", &get_UnderexcLim2Simplified_p0); - get_map.emplace("cim:UnderexcLim2Simplified.p1", &get_UnderexcLim2Simplified_p1); - get_map.emplace("cim:UnderexcLim2Simplified.q0", &get_UnderexcLim2Simplified_q0); - get_map.emplace("cim:UnderexcLim2Simplified.q1", &get_UnderexcLim2Simplified_q1); - get_map.emplace("cim:UnderexcLim2Simplified.vuimax", &get_UnderexcLim2Simplified_vuimax); - get_map.emplace("cim:UnderexcLim2Simplified.vuimin", &get_UnderexcLim2Simplified_vuimin); + get_map.emplace("UnderexcLim2Simplified.kui", &get_UnderexcLim2Simplified_kui); + get_map.emplace("UnderexcLim2Simplified.p0", &get_UnderexcLim2Simplified_p0); + get_map.emplace("UnderexcLim2Simplified.p1", &get_UnderexcLim2Simplified_p1); + get_map.emplace("UnderexcLim2Simplified.q0", &get_UnderexcLim2Simplified_q0); + get_map.emplace("UnderexcLim2Simplified.q1", &get_UnderexcLim2Simplified_q1); + get_map.emplace("UnderexcLim2Simplified.vuimax", &get_UnderexcLim2Simplified_vuimax); + get_map.emplace("UnderexcLim2Simplified.vuimin", &get_UnderexcLim2Simplified_vuimin); } void UnderexcLim2Simplified::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void UnderexcLim2Simplified::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLim2Simplified::declare() { return BaseClassDefiner(UnderexcLim2Simplified::addConstructToMap, UnderexcLim2Simplified::addPrimitiveAssignFnsToMap, UnderexcLim2Simplified::addClassAssignFnsToMap, UnderexcLim2Simplified::debugName); } +std::map UnderexcLim2Simplified::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLim2Simplified_factory() diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLim2Simplified.hpp b/CGMES_2.4.15_16FEB2016/UnderexcLim2Simplified.hpp index 5c1e361db..b4405a3f4 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLim2Simplified.hpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLim2Simplified.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLim2Simplified_factory(); diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.cpp b/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.cpp index ed960945f..6370e072e 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.cpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimIEEE1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimIEEE1.kuc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kuf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kur", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vucmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vulmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vulmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vurmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimIEEE1::UnderexcLimIEEE1() {} UnderexcLimIEEE1::~UnderexcLimIEEE1() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimIEEE1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimIEEE1::getClassNamespaceUrl() const { - { "cim:UnderexcLimIEEE1.kuc", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kuf", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kur", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vucmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vuimin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vulmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vulmin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vurmax", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimIEEE1::getPossibleProfilesForClass() const +const std::string& UnderexcLimIEEE1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimIEEE1::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimIEEE1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimIEEE1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimIEEE1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimIEEE1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimIEEE1_kuc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* UnderexcLimIEEE1::debugString() const void UnderexcLimIEEE1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimIEEE1", &UnderexcLimIEEE1_factory); + factory_map.emplace("UnderexcLimIEEE1", &UnderexcLimIEEE1_factory); } void UnderexcLimIEEE1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimIEEE1.kuc", &assign_UnderexcLimIEEE1_kuc); - assign_map.emplace("cim:UnderexcLimIEEE1.kuf", &assign_UnderexcLimIEEE1_kuf); - assign_map.emplace("cim:UnderexcLimIEEE1.kui", &assign_UnderexcLimIEEE1_kui); - assign_map.emplace("cim:UnderexcLimIEEE1.kul", &assign_UnderexcLimIEEE1_kul); - assign_map.emplace("cim:UnderexcLimIEEE1.kur", &assign_UnderexcLimIEEE1_kur); - assign_map.emplace("cim:UnderexcLimIEEE1.tu1", &assign_UnderexcLimIEEE1_tu1); - assign_map.emplace("cim:UnderexcLimIEEE1.tu2", &assign_UnderexcLimIEEE1_tu2); - assign_map.emplace("cim:UnderexcLimIEEE1.tu3", &assign_UnderexcLimIEEE1_tu3); - assign_map.emplace("cim:UnderexcLimIEEE1.tu4", &assign_UnderexcLimIEEE1_tu4); - assign_map.emplace("cim:UnderexcLimIEEE1.vucmax", &assign_UnderexcLimIEEE1_vucmax); - assign_map.emplace("cim:UnderexcLimIEEE1.vuimax", &assign_UnderexcLimIEEE1_vuimax); - assign_map.emplace("cim:UnderexcLimIEEE1.vuimin", &assign_UnderexcLimIEEE1_vuimin); - assign_map.emplace("cim:UnderexcLimIEEE1.vulmax", &assign_UnderexcLimIEEE1_vulmax); - assign_map.emplace("cim:UnderexcLimIEEE1.vulmin", &assign_UnderexcLimIEEE1_vulmin); - assign_map.emplace("cim:UnderexcLimIEEE1.vurmax", &assign_UnderexcLimIEEE1_vurmax); + assign_map.emplace("UnderexcLimIEEE1.kuc", &assign_UnderexcLimIEEE1_kuc); + assign_map.emplace("UnderexcLimIEEE1.kuf", &assign_UnderexcLimIEEE1_kuf); + assign_map.emplace("UnderexcLimIEEE1.kui", &assign_UnderexcLimIEEE1_kui); + assign_map.emplace("UnderexcLimIEEE1.kul", &assign_UnderexcLimIEEE1_kul); + assign_map.emplace("UnderexcLimIEEE1.kur", &assign_UnderexcLimIEEE1_kur); + assign_map.emplace("UnderexcLimIEEE1.tu1", &assign_UnderexcLimIEEE1_tu1); + assign_map.emplace("UnderexcLimIEEE1.tu2", &assign_UnderexcLimIEEE1_tu2); + assign_map.emplace("UnderexcLimIEEE1.tu3", &assign_UnderexcLimIEEE1_tu3); + assign_map.emplace("UnderexcLimIEEE1.tu4", &assign_UnderexcLimIEEE1_tu4); + assign_map.emplace("UnderexcLimIEEE1.vucmax", &assign_UnderexcLimIEEE1_vucmax); + assign_map.emplace("UnderexcLimIEEE1.vuimax", &assign_UnderexcLimIEEE1_vuimax); + assign_map.emplace("UnderexcLimIEEE1.vuimin", &assign_UnderexcLimIEEE1_vuimin); + assign_map.emplace("UnderexcLimIEEE1.vulmax", &assign_UnderexcLimIEEE1_vulmax); + assign_map.emplace("UnderexcLimIEEE1.vulmin", &assign_UnderexcLimIEEE1_vulmin); + assign_map.emplace("UnderexcLimIEEE1.vurmax", &assign_UnderexcLimIEEE1_vurmax); } void UnderexcLimIEEE1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void UnderexcLimIEEE1::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimIEEE1.kuc", &get_UnderexcLimIEEE1_kuc); - get_map.emplace("cim:UnderexcLimIEEE1.kuf", &get_UnderexcLimIEEE1_kuf); - get_map.emplace("cim:UnderexcLimIEEE1.kui", &get_UnderexcLimIEEE1_kui); - get_map.emplace("cim:UnderexcLimIEEE1.kul", &get_UnderexcLimIEEE1_kul); - get_map.emplace("cim:UnderexcLimIEEE1.kur", &get_UnderexcLimIEEE1_kur); - get_map.emplace("cim:UnderexcLimIEEE1.tu1", &get_UnderexcLimIEEE1_tu1); - get_map.emplace("cim:UnderexcLimIEEE1.tu2", &get_UnderexcLimIEEE1_tu2); - get_map.emplace("cim:UnderexcLimIEEE1.tu3", &get_UnderexcLimIEEE1_tu3); - get_map.emplace("cim:UnderexcLimIEEE1.tu4", &get_UnderexcLimIEEE1_tu4); - get_map.emplace("cim:UnderexcLimIEEE1.vucmax", &get_UnderexcLimIEEE1_vucmax); - get_map.emplace("cim:UnderexcLimIEEE1.vuimax", &get_UnderexcLimIEEE1_vuimax); - get_map.emplace("cim:UnderexcLimIEEE1.vuimin", &get_UnderexcLimIEEE1_vuimin); - get_map.emplace("cim:UnderexcLimIEEE1.vulmax", &get_UnderexcLimIEEE1_vulmax); - get_map.emplace("cim:UnderexcLimIEEE1.vulmin", &get_UnderexcLimIEEE1_vulmin); - get_map.emplace("cim:UnderexcLimIEEE1.vurmax", &get_UnderexcLimIEEE1_vurmax); + get_map.emplace("UnderexcLimIEEE1.kuc", &get_UnderexcLimIEEE1_kuc); + get_map.emplace("UnderexcLimIEEE1.kuf", &get_UnderexcLimIEEE1_kuf); + get_map.emplace("UnderexcLimIEEE1.kui", &get_UnderexcLimIEEE1_kui); + get_map.emplace("UnderexcLimIEEE1.kul", &get_UnderexcLimIEEE1_kul); + get_map.emplace("UnderexcLimIEEE1.kur", &get_UnderexcLimIEEE1_kur); + get_map.emplace("UnderexcLimIEEE1.tu1", &get_UnderexcLimIEEE1_tu1); + get_map.emplace("UnderexcLimIEEE1.tu2", &get_UnderexcLimIEEE1_tu2); + get_map.emplace("UnderexcLimIEEE1.tu3", &get_UnderexcLimIEEE1_tu3); + get_map.emplace("UnderexcLimIEEE1.tu4", &get_UnderexcLimIEEE1_tu4); + get_map.emplace("UnderexcLimIEEE1.vucmax", &get_UnderexcLimIEEE1_vucmax); + get_map.emplace("UnderexcLimIEEE1.vuimax", &get_UnderexcLimIEEE1_vuimax); + get_map.emplace("UnderexcLimIEEE1.vuimin", &get_UnderexcLimIEEE1_vuimin); + get_map.emplace("UnderexcLimIEEE1.vulmax", &get_UnderexcLimIEEE1_vulmax); + get_map.emplace("UnderexcLimIEEE1.vulmin", &get_UnderexcLimIEEE1_vulmin); + get_map.emplace("UnderexcLimIEEE1.vurmax", &get_UnderexcLimIEEE1_vurmax); } void UnderexcLimIEEE1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void UnderexcLimIEEE1::addEnumGetFnsToMap(std::map& g UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimIEEE1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimIEEE1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimIEEE1::declare() { return BaseClassDefiner(UnderexcLimIEEE1::addConstructToMap, UnderexcLimIEEE1::addPrimitiveAssignFnsToMap, UnderexcLimIEEE1::addClassAssignFnsToMap, UnderexcLimIEEE1::debugName); } +std::map UnderexcLimIEEE1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimIEEE1_factory() diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.hpp b/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.hpp index 7e60e75df..9c613d40a 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.hpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimIEEE1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.cpp b/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.cpp index da9274105..52d906247 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.cpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.cpp @@ -11,71 +11,103 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimIEEE2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimIEEE2.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kfb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kuf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tuq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tuv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vulmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vulmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimIEEE2::UnderexcLimIEEE2() {} UnderexcLimIEEE2::~UnderexcLimIEEE2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:UnderexcLimIEEE2.k1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.k2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kfb", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kuf", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p0", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p10", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p5", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p6", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p7", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p8", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p9", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q0", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q10", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q5", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q6", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q7", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q8", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q9", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tup", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tuq", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tuv", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vuimin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vulmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vulmin", { CGMESProfile::DY, } }, -}; - -std::list -UnderexcLimIEEE2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -UnderexcLimIEEE2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& UnderexcLimIEEE2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& UnderexcLimIEEE2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& UnderexcLimIEEE2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& UnderexcLimIEEE2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimIEEE2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimIEEE2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimIEEE2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimIEEE2_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1246,51 +1278,51 @@ const char* UnderexcLimIEEE2::debugString() const void UnderexcLimIEEE2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimIEEE2", &UnderexcLimIEEE2_factory); + factory_map.emplace("UnderexcLimIEEE2", &UnderexcLimIEEE2_factory); } void UnderexcLimIEEE2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimIEEE2.k1", &assign_UnderexcLimIEEE2_k1); - assign_map.emplace("cim:UnderexcLimIEEE2.k2", &assign_UnderexcLimIEEE2_k2); - assign_map.emplace("cim:UnderexcLimIEEE2.kfb", &assign_UnderexcLimIEEE2_kfb); - assign_map.emplace("cim:UnderexcLimIEEE2.kuf", &assign_UnderexcLimIEEE2_kuf); - assign_map.emplace("cim:UnderexcLimIEEE2.kui", &assign_UnderexcLimIEEE2_kui); - assign_map.emplace("cim:UnderexcLimIEEE2.kul", &assign_UnderexcLimIEEE2_kul); - assign_map.emplace("cim:UnderexcLimIEEE2.p0", &assign_UnderexcLimIEEE2_p0); - assign_map.emplace("cim:UnderexcLimIEEE2.p1", &assign_UnderexcLimIEEE2_p1); - assign_map.emplace("cim:UnderexcLimIEEE2.p10", &assign_UnderexcLimIEEE2_p10); - assign_map.emplace("cim:UnderexcLimIEEE2.p2", &assign_UnderexcLimIEEE2_p2); - assign_map.emplace("cim:UnderexcLimIEEE2.p3", &assign_UnderexcLimIEEE2_p3); - assign_map.emplace("cim:UnderexcLimIEEE2.p4", &assign_UnderexcLimIEEE2_p4); - assign_map.emplace("cim:UnderexcLimIEEE2.p5", &assign_UnderexcLimIEEE2_p5); - assign_map.emplace("cim:UnderexcLimIEEE2.p6", &assign_UnderexcLimIEEE2_p6); - assign_map.emplace("cim:UnderexcLimIEEE2.p7", &assign_UnderexcLimIEEE2_p7); - assign_map.emplace("cim:UnderexcLimIEEE2.p8", &assign_UnderexcLimIEEE2_p8); - assign_map.emplace("cim:UnderexcLimIEEE2.p9", &assign_UnderexcLimIEEE2_p9); - assign_map.emplace("cim:UnderexcLimIEEE2.q0", &assign_UnderexcLimIEEE2_q0); - assign_map.emplace("cim:UnderexcLimIEEE2.q1", &assign_UnderexcLimIEEE2_q1); - assign_map.emplace("cim:UnderexcLimIEEE2.q10", &assign_UnderexcLimIEEE2_q10); - assign_map.emplace("cim:UnderexcLimIEEE2.q2", &assign_UnderexcLimIEEE2_q2); - assign_map.emplace("cim:UnderexcLimIEEE2.q3", &assign_UnderexcLimIEEE2_q3); - assign_map.emplace("cim:UnderexcLimIEEE2.q4", &assign_UnderexcLimIEEE2_q4); - assign_map.emplace("cim:UnderexcLimIEEE2.q5", &assign_UnderexcLimIEEE2_q5); - assign_map.emplace("cim:UnderexcLimIEEE2.q6", &assign_UnderexcLimIEEE2_q6); - assign_map.emplace("cim:UnderexcLimIEEE2.q7", &assign_UnderexcLimIEEE2_q7); - assign_map.emplace("cim:UnderexcLimIEEE2.q8", &assign_UnderexcLimIEEE2_q8); - assign_map.emplace("cim:UnderexcLimIEEE2.q9", &assign_UnderexcLimIEEE2_q9); - assign_map.emplace("cim:UnderexcLimIEEE2.tu1", &assign_UnderexcLimIEEE2_tu1); - assign_map.emplace("cim:UnderexcLimIEEE2.tu2", &assign_UnderexcLimIEEE2_tu2); - assign_map.emplace("cim:UnderexcLimIEEE2.tu3", &assign_UnderexcLimIEEE2_tu3); - assign_map.emplace("cim:UnderexcLimIEEE2.tu4", &assign_UnderexcLimIEEE2_tu4); - assign_map.emplace("cim:UnderexcLimIEEE2.tul", &assign_UnderexcLimIEEE2_tul); - assign_map.emplace("cim:UnderexcLimIEEE2.tup", &assign_UnderexcLimIEEE2_tup); - assign_map.emplace("cim:UnderexcLimIEEE2.tuq", &assign_UnderexcLimIEEE2_tuq); - assign_map.emplace("cim:UnderexcLimIEEE2.tuv", &assign_UnderexcLimIEEE2_tuv); - assign_map.emplace("cim:UnderexcLimIEEE2.vuimax", &assign_UnderexcLimIEEE2_vuimax); - assign_map.emplace("cim:UnderexcLimIEEE2.vuimin", &assign_UnderexcLimIEEE2_vuimin); - assign_map.emplace("cim:UnderexcLimIEEE2.vulmax", &assign_UnderexcLimIEEE2_vulmax); - assign_map.emplace("cim:UnderexcLimIEEE2.vulmin", &assign_UnderexcLimIEEE2_vulmin); + assign_map.emplace("UnderexcLimIEEE2.k1", &assign_UnderexcLimIEEE2_k1); + assign_map.emplace("UnderexcLimIEEE2.k2", &assign_UnderexcLimIEEE2_k2); + assign_map.emplace("UnderexcLimIEEE2.kfb", &assign_UnderexcLimIEEE2_kfb); + assign_map.emplace("UnderexcLimIEEE2.kuf", &assign_UnderexcLimIEEE2_kuf); + assign_map.emplace("UnderexcLimIEEE2.kui", &assign_UnderexcLimIEEE2_kui); + assign_map.emplace("UnderexcLimIEEE2.kul", &assign_UnderexcLimIEEE2_kul); + assign_map.emplace("UnderexcLimIEEE2.p0", &assign_UnderexcLimIEEE2_p0); + assign_map.emplace("UnderexcLimIEEE2.p1", &assign_UnderexcLimIEEE2_p1); + assign_map.emplace("UnderexcLimIEEE2.p10", &assign_UnderexcLimIEEE2_p10); + assign_map.emplace("UnderexcLimIEEE2.p2", &assign_UnderexcLimIEEE2_p2); + assign_map.emplace("UnderexcLimIEEE2.p3", &assign_UnderexcLimIEEE2_p3); + assign_map.emplace("UnderexcLimIEEE2.p4", &assign_UnderexcLimIEEE2_p4); + assign_map.emplace("UnderexcLimIEEE2.p5", &assign_UnderexcLimIEEE2_p5); + assign_map.emplace("UnderexcLimIEEE2.p6", &assign_UnderexcLimIEEE2_p6); + assign_map.emplace("UnderexcLimIEEE2.p7", &assign_UnderexcLimIEEE2_p7); + assign_map.emplace("UnderexcLimIEEE2.p8", &assign_UnderexcLimIEEE2_p8); + assign_map.emplace("UnderexcLimIEEE2.p9", &assign_UnderexcLimIEEE2_p9); + assign_map.emplace("UnderexcLimIEEE2.q0", &assign_UnderexcLimIEEE2_q0); + assign_map.emplace("UnderexcLimIEEE2.q1", &assign_UnderexcLimIEEE2_q1); + assign_map.emplace("UnderexcLimIEEE2.q10", &assign_UnderexcLimIEEE2_q10); + assign_map.emplace("UnderexcLimIEEE2.q2", &assign_UnderexcLimIEEE2_q2); + assign_map.emplace("UnderexcLimIEEE2.q3", &assign_UnderexcLimIEEE2_q3); + assign_map.emplace("UnderexcLimIEEE2.q4", &assign_UnderexcLimIEEE2_q4); + assign_map.emplace("UnderexcLimIEEE2.q5", &assign_UnderexcLimIEEE2_q5); + assign_map.emplace("UnderexcLimIEEE2.q6", &assign_UnderexcLimIEEE2_q6); + assign_map.emplace("UnderexcLimIEEE2.q7", &assign_UnderexcLimIEEE2_q7); + assign_map.emplace("UnderexcLimIEEE2.q8", &assign_UnderexcLimIEEE2_q8); + assign_map.emplace("UnderexcLimIEEE2.q9", &assign_UnderexcLimIEEE2_q9); + assign_map.emplace("UnderexcLimIEEE2.tu1", &assign_UnderexcLimIEEE2_tu1); + assign_map.emplace("UnderexcLimIEEE2.tu2", &assign_UnderexcLimIEEE2_tu2); + assign_map.emplace("UnderexcLimIEEE2.tu3", &assign_UnderexcLimIEEE2_tu3); + assign_map.emplace("UnderexcLimIEEE2.tu4", &assign_UnderexcLimIEEE2_tu4); + assign_map.emplace("UnderexcLimIEEE2.tul", &assign_UnderexcLimIEEE2_tul); + assign_map.emplace("UnderexcLimIEEE2.tup", &assign_UnderexcLimIEEE2_tup); + assign_map.emplace("UnderexcLimIEEE2.tuq", &assign_UnderexcLimIEEE2_tuq); + assign_map.emplace("UnderexcLimIEEE2.tuv", &assign_UnderexcLimIEEE2_tuv); + assign_map.emplace("UnderexcLimIEEE2.vuimax", &assign_UnderexcLimIEEE2_vuimax); + assign_map.emplace("UnderexcLimIEEE2.vuimin", &assign_UnderexcLimIEEE2_vuimin); + assign_map.emplace("UnderexcLimIEEE2.vulmax", &assign_UnderexcLimIEEE2_vulmax); + assign_map.emplace("UnderexcLimIEEE2.vulmin", &assign_UnderexcLimIEEE2_vulmin); } void UnderexcLimIEEE2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1300,46 +1332,46 @@ void UnderexcLimIEEE2::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimIEEE2.k1", &get_UnderexcLimIEEE2_k1); - get_map.emplace("cim:UnderexcLimIEEE2.k2", &get_UnderexcLimIEEE2_k2); - get_map.emplace("cim:UnderexcLimIEEE2.kfb", &get_UnderexcLimIEEE2_kfb); - get_map.emplace("cim:UnderexcLimIEEE2.kuf", &get_UnderexcLimIEEE2_kuf); - get_map.emplace("cim:UnderexcLimIEEE2.kui", &get_UnderexcLimIEEE2_kui); - get_map.emplace("cim:UnderexcLimIEEE2.kul", &get_UnderexcLimIEEE2_kul); - get_map.emplace("cim:UnderexcLimIEEE2.p0", &get_UnderexcLimIEEE2_p0); - get_map.emplace("cim:UnderexcLimIEEE2.p1", &get_UnderexcLimIEEE2_p1); - get_map.emplace("cim:UnderexcLimIEEE2.p10", &get_UnderexcLimIEEE2_p10); - get_map.emplace("cim:UnderexcLimIEEE2.p2", &get_UnderexcLimIEEE2_p2); - get_map.emplace("cim:UnderexcLimIEEE2.p3", &get_UnderexcLimIEEE2_p3); - get_map.emplace("cim:UnderexcLimIEEE2.p4", &get_UnderexcLimIEEE2_p4); - get_map.emplace("cim:UnderexcLimIEEE2.p5", &get_UnderexcLimIEEE2_p5); - get_map.emplace("cim:UnderexcLimIEEE2.p6", &get_UnderexcLimIEEE2_p6); - get_map.emplace("cim:UnderexcLimIEEE2.p7", &get_UnderexcLimIEEE2_p7); - get_map.emplace("cim:UnderexcLimIEEE2.p8", &get_UnderexcLimIEEE2_p8); - get_map.emplace("cim:UnderexcLimIEEE2.p9", &get_UnderexcLimIEEE2_p9); - get_map.emplace("cim:UnderexcLimIEEE2.q0", &get_UnderexcLimIEEE2_q0); - get_map.emplace("cim:UnderexcLimIEEE2.q1", &get_UnderexcLimIEEE2_q1); - get_map.emplace("cim:UnderexcLimIEEE2.q10", &get_UnderexcLimIEEE2_q10); - get_map.emplace("cim:UnderexcLimIEEE2.q2", &get_UnderexcLimIEEE2_q2); - get_map.emplace("cim:UnderexcLimIEEE2.q3", &get_UnderexcLimIEEE2_q3); - get_map.emplace("cim:UnderexcLimIEEE2.q4", &get_UnderexcLimIEEE2_q4); - get_map.emplace("cim:UnderexcLimIEEE2.q5", &get_UnderexcLimIEEE2_q5); - get_map.emplace("cim:UnderexcLimIEEE2.q6", &get_UnderexcLimIEEE2_q6); - get_map.emplace("cim:UnderexcLimIEEE2.q7", &get_UnderexcLimIEEE2_q7); - get_map.emplace("cim:UnderexcLimIEEE2.q8", &get_UnderexcLimIEEE2_q8); - get_map.emplace("cim:UnderexcLimIEEE2.q9", &get_UnderexcLimIEEE2_q9); - get_map.emplace("cim:UnderexcLimIEEE2.tu1", &get_UnderexcLimIEEE2_tu1); - get_map.emplace("cim:UnderexcLimIEEE2.tu2", &get_UnderexcLimIEEE2_tu2); - get_map.emplace("cim:UnderexcLimIEEE2.tu3", &get_UnderexcLimIEEE2_tu3); - get_map.emplace("cim:UnderexcLimIEEE2.tu4", &get_UnderexcLimIEEE2_tu4); - get_map.emplace("cim:UnderexcLimIEEE2.tul", &get_UnderexcLimIEEE2_tul); - get_map.emplace("cim:UnderexcLimIEEE2.tup", &get_UnderexcLimIEEE2_tup); - get_map.emplace("cim:UnderexcLimIEEE2.tuq", &get_UnderexcLimIEEE2_tuq); - get_map.emplace("cim:UnderexcLimIEEE2.tuv", &get_UnderexcLimIEEE2_tuv); - get_map.emplace("cim:UnderexcLimIEEE2.vuimax", &get_UnderexcLimIEEE2_vuimax); - get_map.emplace("cim:UnderexcLimIEEE2.vuimin", &get_UnderexcLimIEEE2_vuimin); - get_map.emplace("cim:UnderexcLimIEEE2.vulmax", &get_UnderexcLimIEEE2_vulmax); - get_map.emplace("cim:UnderexcLimIEEE2.vulmin", &get_UnderexcLimIEEE2_vulmin); + get_map.emplace("UnderexcLimIEEE2.k1", &get_UnderexcLimIEEE2_k1); + get_map.emplace("UnderexcLimIEEE2.k2", &get_UnderexcLimIEEE2_k2); + get_map.emplace("UnderexcLimIEEE2.kfb", &get_UnderexcLimIEEE2_kfb); + get_map.emplace("UnderexcLimIEEE2.kuf", &get_UnderexcLimIEEE2_kuf); + get_map.emplace("UnderexcLimIEEE2.kui", &get_UnderexcLimIEEE2_kui); + get_map.emplace("UnderexcLimIEEE2.kul", &get_UnderexcLimIEEE2_kul); + get_map.emplace("UnderexcLimIEEE2.p0", &get_UnderexcLimIEEE2_p0); + get_map.emplace("UnderexcLimIEEE2.p1", &get_UnderexcLimIEEE2_p1); + get_map.emplace("UnderexcLimIEEE2.p10", &get_UnderexcLimIEEE2_p10); + get_map.emplace("UnderexcLimIEEE2.p2", &get_UnderexcLimIEEE2_p2); + get_map.emplace("UnderexcLimIEEE2.p3", &get_UnderexcLimIEEE2_p3); + get_map.emplace("UnderexcLimIEEE2.p4", &get_UnderexcLimIEEE2_p4); + get_map.emplace("UnderexcLimIEEE2.p5", &get_UnderexcLimIEEE2_p5); + get_map.emplace("UnderexcLimIEEE2.p6", &get_UnderexcLimIEEE2_p6); + get_map.emplace("UnderexcLimIEEE2.p7", &get_UnderexcLimIEEE2_p7); + get_map.emplace("UnderexcLimIEEE2.p8", &get_UnderexcLimIEEE2_p8); + get_map.emplace("UnderexcLimIEEE2.p9", &get_UnderexcLimIEEE2_p9); + get_map.emplace("UnderexcLimIEEE2.q0", &get_UnderexcLimIEEE2_q0); + get_map.emplace("UnderexcLimIEEE2.q1", &get_UnderexcLimIEEE2_q1); + get_map.emplace("UnderexcLimIEEE2.q10", &get_UnderexcLimIEEE2_q10); + get_map.emplace("UnderexcLimIEEE2.q2", &get_UnderexcLimIEEE2_q2); + get_map.emplace("UnderexcLimIEEE2.q3", &get_UnderexcLimIEEE2_q3); + get_map.emplace("UnderexcLimIEEE2.q4", &get_UnderexcLimIEEE2_q4); + get_map.emplace("UnderexcLimIEEE2.q5", &get_UnderexcLimIEEE2_q5); + get_map.emplace("UnderexcLimIEEE2.q6", &get_UnderexcLimIEEE2_q6); + get_map.emplace("UnderexcLimIEEE2.q7", &get_UnderexcLimIEEE2_q7); + get_map.emplace("UnderexcLimIEEE2.q8", &get_UnderexcLimIEEE2_q8); + get_map.emplace("UnderexcLimIEEE2.q9", &get_UnderexcLimIEEE2_q9); + get_map.emplace("UnderexcLimIEEE2.tu1", &get_UnderexcLimIEEE2_tu1); + get_map.emplace("UnderexcLimIEEE2.tu2", &get_UnderexcLimIEEE2_tu2); + get_map.emplace("UnderexcLimIEEE2.tu3", &get_UnderexcLimIEEE2_tu3); + get_map.emplace("UnderexcLimIEEE2.tu4", &get_UnderexcLimIEEE2_tu4); + get_map.emplace("UnderexcLimIEEE2.tul", &get_UnderexcLimIEEE2_tul); + get_map.emplace("UnderexcLimIEEE2.tup", &get_UnderexcLimIEEE2_tup); + get_map.emplace("UnderexcLimIEEE2.tuq", &get_UnderexcLimIEEE2_tuq); + get_map.emplace("UnderexcLimIEEE2.tuv", &get_UnderexcLimIEEE2_tuv); + get_map.emplace("UnderexcLimIEEE2.vuimax", &get_UnderexcLimIEEE2_vuimax); + get_map.emplace("UnderexcLimIEEE2.vuimin", &get_UnderexcLimIEEE2_vuimin); + get_map.emplace("UnderexcLimIEEE2.vulmax", &get_UnderexcLimIEEE2_vulmax); + get_map.emplace("UnderexcLimIEEE2.vulmin", &get_UnderexcLimIEEE2_vulmin); } void UnderexcLimIEEE2::addClassGetFnsToMap(std::map& get_map) const @@ -1352,11 +1384,25 @@ void UnderexcLimIEEE2::addEnumGetFnsToMap(std::map& g UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimIEEE2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimIEEE2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimIEEE2::declare() { return BaseClassDefiner(UnderexcLimIEEE2::addConstructToMap, UnderexcLimIEEE2::addPrimitiveAssignFnsToMap, UnderexcLimIEEE2::addClassAssignFnsToMap, UnderexcLimIEEE2::debugName); } +std::map UnderexcLimIEEE2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimIEEE2_factory() diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.hpp b/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.hpp index 1a95ced19..527543df7 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.hpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLimIEEE2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimIEEE2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLimX1.cpp b/CGMES_2.4.15_16FEB2016/UnderexcLimX1.cpp index a14d1ce69..6f8ef9284 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLimX1.cpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLimX1.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimX1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimX1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.melmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimX1::UnderexcLimX1() {} UnderexcLimX1::~UnderexcLimX1() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimX1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimX1::getClassNamespaceUrl() const { - { "cim:UnderexcLimX1.k", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.kf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.km", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.melmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.tf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.tm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimX1::getPossibleProfilesForClass() const +const std::string& UnderexcLimX1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimX1::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimX1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimX1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimX1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimX1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimX1_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* UnderexcLimX1::debugString() const void UnderexcLimX1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimX1", &UnderexcLimX1_factory); + factory_map.emplace("UnderexcLimX1", &UnderexcLimX1_factory); } void UnderexcLimX1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimX1.k", &assign_UnderexcLimX1_k); - assign_map.emplace("cim:UnderexcLimX1.kf2", &assign_UnderexcLimX1_kf2); - assign_map.emplace("cim:UnderexcLimX1.km", &assign_UnderexcLimX1_km); - assign_map.emplace("cim:UnderexcLimX1.melmax", &assign_UnderexcLimX1_melmax); - assign_map.emplace("cim:UnderexcLimX1.tf2", &assign_UnderexcLimX1_tf2); - assign_map.emplace("cim:UnderexcLimX1.tm", &assign_UnderexcLimX1_tm); + assign_map.emplace("UnderexcLimX1.k", &assign_UnderexcLimX1_k); + assign_map.emplace("UnderexcLimX1.kf2", &assign_UnderexcLimX1_kf2); + assign_map.emplace("UnderexcLimX1.km", &assign_UnderexcLimX1_km); + assign_map.emplace("UnderexcLimX1.melmax", &assign_UnderexcLimX1_melmax); + assign_map.emplace("UnderexcLimX1.tf2", &assign_UnderexcLimX1_tf2); + assign_map.emplace("UnderexcLimX1.tm", &assign_UnderexcLimX1_tm); } void UnderexcLimX1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void UnderexcLimX1::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimX1.k", &get_UnderexcLimX1_k); - get_map.emplace("cim:UnderexcLimX1.kf2", &get_UnderexcLimX1_kf2); - get_map.emplace("cim:UnderexcLimX1.km", &get_UnderexcLimX1_km); - get_map.emplace("cim:UnderexcLimX1.melmax", &get_UnderexcLimX1_melmax); - get_map.emplace("cim:UnderexcLimX1.tf2", &get_UnderexcLimX1_tf2); - get_map.emplace("cim:UnderexcLimX1.tm", &get_UnderexcLimX1_tm); + get_map.emplace("UnderexcLimX1.k", &get_UnderexcLimX1_k); + get_map.emplace("UnderexcLimX1.kf2", &get_UnderexcLimX1_kf2); + get_map.emplace("UnderexcLimX1.km", &get_UnderexcLimX1_km); + get_map.emplace("UnderexcLimX1.melmax", &get_UnderexcLimX1_melmax); + get_map.emplace("UnderexcLimX1.tf2", &get_UnderexcLimX1_tf2); + get_map.emplace("UnderexcLimX1.tm", &get_UnderexcLimX1_tm); } void UnderexcLimX1::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void UnderexcLimX1::addEnumGetFnsToMap(std::map& get_ UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimX1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimX1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimX1::declare() { return BaseClassDefiner(UnderexcLimX1::addConstructToMap, UnderexcLimX1::addPrimitiveAssignFnsToMap, UnderexcLimX1::addClassAssignFnsToMap, UnderexcLimX1::debugName); } +std::map UnderexcLimX1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimX1_factory() diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLimX1.hpp b/CGMES_2.4.15_16FEB2016/UnderexcLimX1.hpp index cd15dda37..306bb56bc 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLimX1.hpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLimX1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimX1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLimX2.cpp b/CGMES_2.4.15_16FEB2016/UnderexcLimX2.cpp index 64bf7f3c5..ea9b015c6 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLimX2.cpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLimX2.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimX2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimX2.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.melmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.qo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimX2::UnderexcLimX2() {} UnderexcLimX2::~UnderexcLimX2() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimX2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimX2::getClassNamespaceUrl() const { - { "cim:UnderexcLimX2.kf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.km", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.melmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.qo", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.r", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.tf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.tm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimX2::getPossibleProfilesForClass() const +const std::string& UnderexcLimX2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimX2::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimX2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimX2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimX2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimX2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimX2_kf2(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* UnderexcLimX2::debugString() const void UnderexcLimX2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimX2", &UnderexcLimX2_factory); + factory_map.emplace("UnderexcLimX2", &UnderexcLimX2_factory); } void UnderexcLimX2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimX2.kf2", &assign_UnderexcLimX2_kf2); - assign_map.emplace("cim:UnderexcLimX2.km", &assign_UnderexcLimX2_km); - assign_map.emplace("cim:UnderexcLimX2.melmax", &assign_UnderexcLimX2_melmax); - assign_map.emplace("cim:UnderexcLimX2.qo", &assign_UnderexcLimX2_qo); - assign_map.emplace("cim:UnderexcLimX2.r", &assign_UnderexcLimX2_r); - assign_map.emplace("cim:UnderexcLimX2.tf2", &assign_UnderexcLimX2_tf2); - assign_map.emplace("cim:UnderexcLimX2.tm", &assign_UnderexcLimX2_tm); + assign_map.emplace("UnderexcLimX2.kf2", &assign_UnderexcLimX2_kf2); + assign_map.emplace("UnderexcLimX2.km", &assign_UnderexcLimX2_km); + assign_map.emplace("UnderexcLimX2.melmax", &assign_UnderexcLimX2_melmax); + assign_map.emplace("UnderexcLimX2.qo", &assign_UnderexcLimX2_qo); + assign_map.emplace("UnderexcLimX2.r", &assign_UnderexcLimX2_r); + assign_map.emplace("UnderexcLimX2.tf2", &assign_UnderexcLimX2_tf2); + assign_map.emplace("UnderexcLimX2.tm", &assign_UnderexcLimX2_tm); } void UnderexcLimX2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void UnderexcLimX2::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimX2.kf2", &get_UnderexcLimX2_kf2); - get_map.emplace("cim:UnderexcLimX2.km", &get_UnderexcLimX2_km); - get_map.emplace("cim:UnderexcLimX2.melmax", &get_UnderexcLimX2_melmax); - get_map.emplace("cim:UnderexcLimX2.qo", &get_UnderexcLimX2_qo); - get_map.emplace("cim:UnderexcLimX2.r", &get_UnderexcLimX2_r); - get_map.emplace("cim:UnderexcLimX2.tf2", &get_UnderexcLimX2_tf2); - get_map.emplace("cim:UnderexcLimX2.tm", &get_UnderexcLimX2_tm); + get_map.emplace("UnderexcLimX2.kf2", &get_UnderexcLimX2_kf2); + get_map.emplace("UnderexcLimX2.km", &get_UnderexcLimX2_km); + get_map.emplace("UnderexcLimX2.melmax", &get_UnderexcLimX2_melmax); + get_map.emplace("UnderexcLimX2.qo", &get_UnderexcLimX2_qo); + get_map.emplace("UnderexcLimX2.r", &get_UnderexcLimX2_r); + get_map.emplace("UnderexcLimX2.tf2", &get_UnderexcLimX2_tf2); + get_map.emplace("UnderexcLimX2.tm", &get_UnderexcLimX2_tm); } void UnderexcLimX2::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void UnderexcLimX2::addEnumGetFnsToMap(std::map& get_ UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimX2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimX2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimX2::declare() { return BaseClassDefiner(UnderexcLimX2::addConstructToMap, UnderexcLimX2::addPrimitiveAssignFnsToMap, UnderexcLimX2::addClassAssignFnsToMap, UnderexcLimX2::debugName); } +std::map UnderexcLimX2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimX2_factory() diff --git a/CGMES_2.4.15_16FEB2016/UnderexcLimX2.hpp b/CGMES_2.4.15_16FEB2016/UnderexcLimX2.hpp index 43f2bfa49..14f9a19a2 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcLimX2.hpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcLimX2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimX2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterDynamics.cpp b/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterDynamics.cpp index 18ef7b3ec..ec64d21b1 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcitationLimiterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcitationLimiterDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcitationLimiterDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcitationLimiterDynamics::UnderexcitationLimiterDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} UnderexcitationLimiterDynamics::~UnderexcitationLimiterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcitationLimiterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcitationLimiterDynamics::getClassNamespaceUrl() const { - { "cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:UnderexcitationLimiterDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcitationLimiterDynamics::getPossibleProfilesForClass() const +const std::string& UnderexcitationLimiterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes() const +const std::list& UnderexcitationLimiterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcitationLimiterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcitationLimiterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcitationLimiterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* UnderexcitationLimiterDynamics::debugString() const void UnderexcitationLimiterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcitationLimiterDynamics", &UnderexcitationLimiterDynamics_factory); + factory_map.emplace("UnderexcitationLimiterDynamics", &UnderexcitationLimiterDynamics_factory); } void UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_m void UnderexcitationLimiterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:UnderexcitationLimiterDynamics.RemoteInputSignal", &assign_UnderexcitationLimiterDynamics_RemoteInputSignal); + assign_map.emplace("UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); + assign_map.emplace("UnderexcitationLimiterDynamics.RemoteInputSignal", &assign_UnderexcitationLimiterDynamics_RemoteInputSignal); } void UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &get_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); + get_map.emplace("UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &get_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); } void UnderexcitationLimiterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void UnderexcitationLimiterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcitationLimiterDynamics::declare() { return BaseClassDefiner(UnderexcitationLimiterDynamics::addConstructToMap, UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap, UnderexcitationLimiterDynamics::addClassAssignFnsToMap, UnderexcitationLimiterDynamics::debugName); } +std::map UnderexcitationLimiterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcitationLimiterDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterDynamics.hpp b/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterDynamics.hpp index 3836bf4cc..630ff3a92 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcitationLimiterDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterUserDefined.cpp b/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterUserDefined.cpp index fb5ad61c2..11c33ca94 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcitationLimiterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcitationLimiterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcitationLimiterUserDefined::UnderexcitationLimiterUserDefined() {} UnderexcitationLimiterUserDefined::~UnderexcitationLimiterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcitationLimiterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcitationLimiterUserDefined::getClassNamespaceUrl() const { - { "cim:UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:UnderexcitationLimiterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcitationLimiterUserDefined::getPossibleProfilesForClass() const +const std::string& UnderexcitationLimiterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcitationLimiterUserDefined::getPossibleProfilesForAttributes() const +const std::list& UnderexcitationLimiterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcitationLimiterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcitationLimiterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcitationLimiterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* UnderexcitationLimiterUserDefined::debugString() const void UnderexcitationLimiterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcitationLimiterUserDefined", &UnderexcitationLimiterUserDefined_factory); + factory_map.emplace("UnderexcitationLimiterUserDefined", &UnderexcitationLimiterUserDefined_factory); } void UnderexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterUserDefined.proprietary", &assign_UnderexcitationLimiterUserDefined_proprietary); + assign_map.emplace("UnderexcitationLimiterUserDefined.proprietary", &assign_UnderexcitationLimiterUserDefined_proprietary); } void UnderexcitationLimiterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_UnderexcitationLimiterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_UnderexcitationLimiterUserDefined_ProprietaryParameterDynamics); } void UnderexcitationLimiterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcitationLimiterUserDefined.proprietary", &get_UnderexcitationLimiterUserDefined_proprietary); + get_map.emplace("UnderexcitationLimiterUserDefined.proprietary", &get_UnderexcitationLimiterUserDefined_proprietary); } void UnderexcitationLimiterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void UnderexcitationLimiterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcitationLimiterUserDefined::declare() { return BaseClassDefiner(UnderexcitationLimiterUserDefined::addConstructToMap, UnderexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap, UnderexcitationLimiterUserDefined::addClassAssignFnsToMap, UnderexcitationLimiterUserDefined::debugName); } +std::map UnderexcitationLimiterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcitationLimiterUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterUserDefined.hpp b/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterUserDefined.hpp index 5971269bc..f96e03a10 100644 --- a/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/UnderexcitationLimiterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcitationLimiterUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VAdjIEEE.cpp b/CGMES_2.4.15_16FEB2016/VAdjIEEE.cpp index f62f88f4f..597fccfdd 100644 --- a/CGMES_2.4.15_16FEB2016/VAdjIEEE.cpp +++ b/CGMES_2.4.15_16FEB2016/VAdjIEEE.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VAdjIEEE(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VAdjIEEE.adjslew", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.taoff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.taon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VAdjIEEE::VAdjIEEE() {} VAdjIEEE::~VAdjIEEE() {} -static const std::list PossibleProfilesForClass = +const std::list& VAdjIEEE::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VAdjIEEE::getClassNamespaceUrl() const { - { "cim:VAdjIEEE.adjslew", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.taoff", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.taon", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjf", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjmax", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VAdjIEEE::getPossibleProfilesForClass() const +const std::string& VAdjIEEE::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VAdjIEEE::getPossibleProfilesForAttributes() const +const std::list& VAdjIEEE::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageAdjusterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VAdjIEEE::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VAdjIEEE::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VAdjIEEE::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VAdjIEEE_adjslew(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* VAdjIEEE::debugString() const void VAdjIEEE::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VAdjIEEE", &VAdjIEEE_factory); + factory_map.emplace("VAdjIEEE", &VAdjIEEE_factory); } void VAdjIEEE::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VAdjIEEE.adjslew", &assign_VAdjIEEE_adjslew); - assign_map.emplace("cim:VAdjIEEE.taoff", &assign_VAdjIEEE_taoff); - assign_map.emplace("cim:VAdjIEEE.taon", &assign_VAdjIEEE_taon); - assign_map.emplace("cim:VAdjIEEE.vadjf", &assign_VAdjIEEE_vadjf); - assign_map.emplace("cim:VAdjIEEE.vadjmax", &assign_VAdjIEEE_vadjmax); - assign_map.emplace("cim:VAdjIEEE.vadjmin", &assign_VAdjIEEE_vadjmin); + assign_map.emplace("VAdjIEEE.adjslew", &assign_VAdjIEEE_adjslew); + assign_map.emplace("VAdjIEEE.taoff", &assign_VAdjIEEE_taoff); + assign_map.emplace("VAdjIEEE.taon", &assign_VAdjIEEE_taon); + assign_map.emplace("VAdjIEEE.vadjf", &assign_VAdjIEEE_vadjf); + assign_map.emplace("VAdjIEEE.vadjmax", &assign_VAdjIEEE_vadjmax); + assign_map.emplace("VAdjIEEE.vadjmin", &assign_VAdjIEEE_vadjmin); } void VAdjIEEE::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void VAdjIEEE::addClassAssignFnsToMap(std::unordered_map& get_map) const { VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VAdjIEEE.adjslew", &get_VAdjIEEE_adjslew); - get_map.emplace("cim:VAdjIEEE.taoff", &get_VAdjIEEE_taoff); - get_map.emplace("cim:VAdjIEEE.taon", &get_VAdjIEEE_taon); - get_map.emplace("cim:VAdjIEEE.vadjf", &get_VAdjIEEE_vadjf); - get_map.emplace("cim:VAdjIEEE.vadjmax", &get_VAdjIEEE_vadjmax); - get_map.emplace("cim:VAdjIEEE.vadjmin", &get_VAdjIEEE_vadjmin); + get_map.emplace("VAdjIEEE.adjslew", &get_VAdjIEEE_adjslew); + get_map.emplace("VAdjIEEE.taoff", &get_VAdjIEEE_taoff); + get_map.emplace("VAdjIEEE.taon", &get_VAdjIEEE_taon); + get_map.emplace("VAdjIEEE.vadjf", &get_VAdjIEEE_vadjf); + get_map.emplace("VAdjIEEE.vadjmax", &get_VAdjIEEE_vadjmax); + get_map.emplace("VAdjIEEE.vadjmin", &get_VAdjIEEE_vadjmin); } void VAdjIEEE::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void VAdjIEEE::addEnumGetFnsToMap(std::map& get_map) VoltageAdjusterDynamics::addEnumGetFnsToMap(get_map); } +bool VAdjIEEE::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VAdjIEEE" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VAdjIEEE::declare() { return BaseClassDefiner(VAdjIEEE::addConstructToMap, VAdjIEEE::addPrimitiveAssignFnsToMap, VAdjIEEE::addClassAssignFnsToMap, VAdjIEEE::debugName); } +std::map VAdjIEEE::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageAdjusterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VAdjIEEE_factory() diff --git a/CGMES_2.4.15_16FEB2016/VAdjIEEE.hpp b/CGMES_2.4.15_16FEB2016/VAdjIEEE.hpp index 8ada8dfb7..30153dbbf 100644 --- a/CGMES_2.4.15_16FEB2016/VAdjIEEE.hpp +++ b/CGMES_2.4.15_16FEB2016/VAdjIEEE.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageAdjusterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VAdjIEEE_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VCompIEEEType1.cpp b/CGMES_2.4.15_16FEB2016/VCompIEEEType1.cpp index 92cbabebb..a87383c71 100644 --- a/CGMES_2.4.15_16FEB2016/VCompIEEEType1.cpp +++ b/CGMES_2.4.15_16FEB2016/VCompIEEEType1.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VCompIEEEType1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VCompIEEEType1.rc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType1.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType1.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VCompIEEEType1::VCompIEEEType1() {} VCompIEEEType1::~VCompIEEEType1() {} -static const std::list PossibleProfilesForClass = +const std::list& VCompIEEEType1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VCompIEEEType1::getClassNamespaceUrl() const { - { "cim:VCompIEEEType1.rc", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType1.tr", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType1.xc", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VCompIEEEType1::getPossibleProfilesForClass() const +const std::string& VCompIEEEType1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VCompIEEEType1::getPossibleProfilesForAttributes() const +const std::list& VCompIEEEType1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VCompIEEEType1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VCompIEEEType1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VCompIEEEType1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VCompIEEEType1_rc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* VCompIEEEType1::debugString() const void VCompIEEEType1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VCompIEEEType1", &VCompIEEEType1_factory); + factory_map.emplace("VCompIEEEType1", &VCompIEEEType1_factory); } void VCompIEEEType1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType1.rc", &assign_VCompIEEEType1_rc); - assign_map.emplace("cim:VCompIEEEType1.tr", &assign_VCompIEEEType1_tr); - assign_map.emplace("cim:VCompIEEEType1.xc", &assign_VCompIEEEType1_xc); + assign_map.emplace("VCompIEEEType1.rc", &assign_VCompIEEEType1_rc); + assign_map.emplace("VCompIEEEType1.tr", &assign_VCompIEEEType1_tr); + assign_map.emplace("VCompIEEEType1.xc", &assign_VCompIEEEType1_xc); } void VCompIEEEType1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void VCompIEEEType1::addClassAssignFnsToMap(std::unordered_map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VCompIEEEType1.rc", &get_VCompIEEEType1_rc); - get_map.emplace("cim:VCompIEEEType1.tr", &get_VCompIEEEType1_tr); - get_map.emplace("cim:VCompIEEEType1.xc", &get_VCompIEEEType1_xc); + get_map.emplace("VCompIEEEType1.rc", &get_VCompIEEEType1_rc); + get_map.emplace("VCompIEEEType1.tr", &get_VCompIEEEType1_tr); + get_map.emplace("VCompIEEEType1.xc", &get_VCompIEEEType1_xc); } void VCompIEEEType1::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void VCompIEEEType1::addEnumGetFnsToMap(std::map& get VoltageCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool VCompIEEEType1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VCompIEEEType1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VCompIEEEType1::declare() { return BaseClassDefiner(VCompIEEEType1::addConstructToMap, VCompIEEEType1::addPrimitiveAssignFnsToMap, VCompIEEEType1::addClassAssignFnsToMap, VCompIEEEType1::debugName); } +std::map VCompIEEEType1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VCompIEEEType1_factory() diff --git a/CGMES_2.4.15_16FEB2016/VCompIEEEType1.hpp b/CGMES_2.4.15_16FEB2016/VCompIEEEType1.hpp index d5232a748..4ecf35e09 100644 --- a/CGMES_2.4.15_16FEB2016/VCompIEEEType1.hpp +++ b/CGMES_2.4.15_16FEB2016/VCompIEEEType1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VCompIEEEType1_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VCompIEEEType2.cpp b/CGMES_2.4.15_16FEB2016/VCompIEEEType2.cpp index 1377d7b30..49cf86194 100644 --- a/CGMES_2.4.15_16FEB2016/VCompIEEEType2.cpp +++ b/CGMES_2.4.15_16FEB2016/VCompIEEEType2.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VCompIEEEType2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VCompIEEEType2.GenICompensationForGenJ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VCompIEEEType2::VCompIEEEType2() {} VCompIEEEType2::~VCompIEEEType2() {} -static const std::list PossibleProfilesForClass = +const std::list& VCompIEEEType2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VCompIEEEType2::getClassNamespaceUrl() const { - { "cim:VCompIEEEType2.GenICompensationForGenJ", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType2.tr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VCompIEEEType2::getPossibleProfilesForClass() const +const std::string& VCompIEEEType2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VCompIEEEType2::getPossibleProfilesForAttributes() const +const std::list& VCompIEEEType2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VCompIEEEType2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VCompIEEEType2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VCompIEEEType2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GenICompensationForGenJ_VcompIEEEType2(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VCompIEEEType2::debugString() const void VCompIEEEType2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VCompIEEEType2", &VCompIEEEType2_factory); + factory_map.emplace("VCompIEEEType2", &VCompIEEEType2_factory); } void VCompIEEEType2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType2.tr", &assign_VCompIEEEType2_tr); + assign_map.emplace("VCompIEEEType2.tr", &assign_VCompIEEEType2_tr); } void VCompIEEEType2::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType2.GenICompensationForGenJ", &assign_VCompIEEEType2_GenICompensationForGenJ); + assign_map.emplace("VCompIEEEType2.GenICompensationForGenJ", &assign_VCompIEEEType2_GenICompensationForGenJ); } void VCompIEEEType2::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VCompIEEEType2.tr", &get_VCompIEEEType2_tr); + get_map.emplace("VCompIEEEType2.tr", &get_VCompIEEEType2_tr); } void VCompIEEEType2::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VCompIEEEType2::addEnumGetFnsToMap(std::map& get VoltageCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool VCompIEEEType2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VCompIEEEType2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VCompIEEEType2::declare() { return BaseClassDefiner(VCompIEEEType2::addConstructToMap, VCompIEEEType2::addPrimitiveAssignFnsToMap, VCompIEEEType2::addClassAssignFnsToMap, VCompIEEEType2::debugName); } +std::map VCompIEEEType2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VCompIEEEType2_factory() diff --git a/CGMES_2.4.15_16FEB2016/VCompIEEEType2.hpp b/CGMES_2.4.15_16FEB2016/VCompIEEEType2.hpp index 67fe38c34..caf63301e 100644 --- a/CGMES_2.4.15_16FEB2016/VCompIEEEType2.hpp +++ b/CGMES_2.4.15_16FEB2016/VCompIEEEType2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Seconds.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VCompIEEEType2_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ValueAliasSet.cpp b/CGMES_2.4.15_16FEB2016/ValueAliasSet.cpp index 1ba46808c..d6718438f 100644 --- a/CGMES_2.4.15_16FEB2016/ValueAliasSet.cpp +++ b/CGMES_2.4.15_16FEB2016/ValueAliasSet.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ValueAliasSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ValueAliasSet.Commands", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.Discretes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.RaiseLowerCommands", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.Values", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ValueAliasSet::ValueAliasSet() {} ValueAliasSet::~ValueAliasSet() {} -static const std::list PossibleProfilesForClass = +const std::list& ValueAliasSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ValueAliasSet::getClassNamespaceUrl() const { - { "cim:ValueAliasSet.Commands", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.Discretes", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.RaiseLowerCommands", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.Values", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ValueAliasSet::getPossibleProfilesForClass() const +const std::string& ValueAliasSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ValueAliasSet::getPossibleProfilesForAttributes() const +const std::list& ValueAliasSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ValueAliasSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ValueAliasSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ValueAliasSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Command_ValueAliasSet(BaseClass*, BaseClass*); @@ -126,7 +158,7 @@ const char* ValueAliasSet::debugString() const void ValueAliasSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ValueAliasSet", &ValueAliasSet_factory); + factory_map.emplace("ValueAliasSet", &ValueAliasSet_factory); } void ValueAliasSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -135,10 +167,10 @@ void ValueAliasSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueAliasSet.Commands", &assign_ValueAliasSet_Commands); - assign_map.emplace("cim:ValueAliasSet.Discretes", &assign_ValueAliasSet_Discretes); - assign_map.emplace("cim:ValueAliasSet.RaiseLowerCommands", &assign_ValueAliasSet_RaiseLowerCommands); - assign_map.emplace("cim:ValueAliasSet.Values", &assign_ValueAliasSet_Values); + assign_map.emplace("ValueAliasSet.Commands", &assign_ValueAliasSet_Commands); + assign_map.emplace("ValueAliasSet.Discretes", &assign_ValueAliasSet_Discretes); + assign_map.emplace("ValueAliasSet.RaiseLowerCommands", &assign_ValueAliasSet_RaiseLowerCommands); + assign_map.emplace("ValueAliasSet.Values", &assign_ValueAliasSet_Values); } void ValueAliasSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -156,11 +188,25 @@ void ValueAliasSet::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ValueAliasSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ValueAliasSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ValueAliasSet::declare() { return BaseClassDefiner(ValueAliasSet::addConstructToMap, ValueAliasSet::addPrimitiveAssignFnsToMap, ValueAliasSet::addClassAssignFnsToMap, ValueAliasSet::debugName); } +std::map ValueAliasSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ValueAliasSet_factory() diff --git a/CGMES_2.4.15_16FEB2016/ValueAliasSet.hpp b/CGMES_2.4.15_16FEB2016/ValueAliasSet.hpp index 80a9bad49..6d764ad5d 100644 --- a/CGMES_2.4.15_16FEB2016/ValueAliasSet.hpp +++ b/CGMES_2.4.15_16FEB2016/ValueAliasSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ValueAliasSet_factory(); diff --git a/CGMES_2.4.15_16FEB2016/ValueToAlias.cpp b/CGMES_2.4.15_16FEB2016/ValueToAlias.cpp index e0b3ae3d9..d48cf648c 100644 --- a/CGMES_2.4.15_16FEB2016/ValueToAlias.cpp +++ b/CGMES_2.4.15_16FEB2016/ValueToAlias.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ValueToAlias(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ValueToAlias.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueToAlias.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ValueToAlias::ValueToAlias() : ValueAliasSet(nullptr) {} ValueToAlias::~ValueToAlias() {} -static const std::list PossibleProfilesForClass = +const std::list& ValueToAlias::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ValueToAlias::getClassNamespaceUrl() const { - { "cim:ValueToAlias.ValueAliasSet", { CGMESProfile::EQ, } }, - { "cim:ValueToAlias.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ValueToAlias::getPossibleProfilesForClass() const +const std::string& ValueToAlias::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ValueToAlias::getPossibleProfilesForAttributes() const +const std::list& ValueToAlias::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ValueToAlias::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ValueToAlias::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ValueToAlias::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ValueAliasSet_Values(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* ValueToAlias::debugString() const void ValueToAlias::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ValueToAlias", &ValueToAlias_factory); + factory_map.emplace("ValueToAlias", &ValueToAlias_factory); } void ValueToAlias::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueToAlias.value", &assign_ValueToAlias_value); + assign_map.emplace("ValueToAlias.value", &assign_ValueToAlias_value); } void ValueToAlias::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueToAlias.ValueAliasSet", &assign_ValueToAlias_ValueAliasSet); + assign_map.emplace("ValueToAlias.ValueAliasSet", &assign_ValueToAlias_ValueAliasSet); } void ValueToAlias::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ValueToAlias.value", &get_ValueToAlias_value); + get_map.emplace("ValueToAlias.value", &get_ValueToAlias_value); } void ValueToAlias::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ValueToAlias.ValueAliasSet", &get_ValueToAlias_ValueAliasSet); + get_map.emplace("ValueToAlias.ValueAliasSet", &get_ValueToAlias_ValueAliasSet); } void ValueToAlias::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void ValueToAlias::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ValueToAlias::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ValueToAlias" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ValueToAlias::declare() { return BaseClassDefiner(ValueToAlias::addConstructToMap, ValueToAlias::addPrimitiveAssignFnsToMap, ValueToAlias::addClassAssignFnsToMap, ValueToAlias::debugName); } +std::map ValueToAlias::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ValueToAlias_factory() diff --git a/CGMES_2.4.15_16FEB2016/ValueToAlias.hpp b/CGMES_2.4.15_16FEB2016/ValueToAlias.hpp index f2faa5f11..534c09e29 100644 --- a/CGMES_2.4.15_16FEB2016/ValueToAlias.hpp +++ b/CGMES_2.4.15_16FEB2016/ValueToAlias.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ValueToAlias_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VisibilityLayer.cpp b/CGMES_2.4.15_16FEB2016/VisibilityLayer.cpp index 342592e16..f0939cc6d 100644 --- a/CGMES_2.4.15_16FEB2016/VisibilityLayer.cpp +++ b/CGMES_2.4.15_16FEB2016/VisibilityLayer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VisibilityLayer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VisibilityLayer.VisibleObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "VisibilityLayer.drawingOrder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + VisibilityLayer::VisibilityLayer() {} VisibilityLayer::~VisibilityLayer() {} -static const std::list PossibleProfilesForClass = +const std::list& VisibilityLayer::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VisibilityLayer::getClassNamespaceUrl() const { - { "cim:VisibilityLayer.VisibleObjects", { CGMESProfile::DL, } }, - { "cim:VisibilityLayer.drawingOrder", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VisibilityLayer::getPossibleProfilesForClass() const +const std::string& VisibilityLayer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VisibilityLayer::getPossibleProfilesForAttributes() const +const std::list& VisibilityLayer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VisibilityLayer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VisibilityLayer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VisibilityLayer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_VisibilityLayers(BaseClass*, BaseClass*); @@ -106,29 +138,29 @@ const char* VisibilityLayer::debugString() const void VisibilityLayer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VisibilityLayer", &VisibilityLayer_factory); + factory_map.emplace("VisibilityLayer", &VisibilityLayer_factory); } void VisibilityLayer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VisibilityLayer.drawingOrder", &assign_VisibilityLayer_drawingOrder); + assign_map.emplace("VisibilityLayer.drawingOrder", &assign_VisibilityLayer_drawingOrder); } void VisibilityLayer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VisibilityLayer.VisibleObjects", &assign_VisibilityLayer_VisibleObjects); + assign_map.emplace("VisibilityLayer.VisibleObjects", &assign_VisibilityLayer_VisibleObjects); } void VisibilityLayer::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VisibilityLayer.drawingOrder", &get_VisibilityLayer_drawingOrder); + get_map.emplace("VisibilityLayer.drawingOrder", &get_VisibilityLayer_drawingOrder); } void VisibilityLayer::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VisibilityLayer.VisibleObjects", &get_VisibilityLayer_VisibleObjects); + get_map.emplace("VisibilityLayer.VisibleObjects", &get_VisibilityLayer_VisibleObjects); } void VisibilityLayer::addEnumGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void VisibilityLayer::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool VisibilityLayer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VisibilityLayer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VisibilityLayer::declare() { return BaseClassDefiner(VisibilityLayer::addConstructToMap, VisibilityLayer::addPrimitiveAssignFnsToMap, VisibilityLayer::addClassAssignFnsToMap, VisibilityLayer::debugName); } +std::map VisibilityLayer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VisibilityLayer_factory() diff --git a/CGMES_2.4.15_16FEB2016/VisibilityLayer.hpp b/CGMES_2.4.15_16FEB2016/VisibilityLayer.hpp index 20a6810e6..2dbedfd90 100644 --- a/CGMES_2.4.15_16FEB2016/VisibilityLayer.hpp +++ b/CGMES_2.4.15_16FEB2016/VisibilityLayer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VisibilityLayer_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VoltageAdjusterDynamics.cpp b/CGMES_2.4.15_16FEB2016/VoltageAdjusterDynamics.cpp index 5ab8b68ac..2b81de1c4 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageAdjusterDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/VoltageAdjusterDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageAdjusterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageAdjusterDynamics.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageAdjusterDynamics::VoltageAdjusterDynamics() : PFVArControllerType1Dynamics(nullptr) {} VoltageAdjusterDynamics::~VoltageAdjusterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageAdjusterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageAdjusterDynamics::getClassNamespaceUrl() const { - { "cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageAdjusterDynamics::getPossibleProfilesForClass() const +const std::string& VoltageAdjusterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageAdjusterDynamics::getPossibleProfilesForAttributes() const +const std::list& VoltageAdjusterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageAdjusterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageAdjusterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageAdjusterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* VoltageAdjusterDynamics::debugString() const void VoltageAdjusterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageAdjusterDynamics", &VoltageAdjusterDynamics_factory); + factory_map.emplace("VoltageAdjusterDynamics", &VoltageAdjusterDynamics_factory); } void VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &assign_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); + assign_map.emplace("VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &assign_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); } void VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &get_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); + get_map.emplace("VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &get_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); } void VoltageAdjusterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void VoltageAdjusterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageAdjusterDynamics::declare() { return BaseClassDefiner(VoltageAdjusterDynamics::addConstructToMap, VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap, VoltageAdjusterDynamics::addClassAssignFnsToMap, VoltageAdjusterDynamics::debugName); } +std::map VoltageAdjusterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageAdjusterDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/VoltageAdjusterDynamics.hpp b/CGMES_2.4.15_16FEB2016/VoltageAdjusterDynamics.hpp index 38c64482e..e59008548 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageAdjusterDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/VoltageAdjusterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageAdjusterDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VoltageAdjusterUserDefined.cpp b/CGMES_2.4.15_16FEB2016/VoltageAdjusterUserDefined.cpp index c89e76a0e..72d0a50ad 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageAdjusterUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/VoltageAdjusterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageAdjusterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageAdjusterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageAdjusterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageAdjusterUserDefined::VoltageAdjusterUserDefined() {} VoltageAdjusterUserDefined::~VoltageAdjusterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageAdjusterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageAdjusterUserDefined::getClassNamespaceUrl() const { - { "cim:VoltageAdjusterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageAdjusterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageAdjusterUserDefined::getPossibleProfilesForClass() const +const std::string& VoltageAdjusterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageAdjusterUserDefined::getPossibleProfilesForAttributes() const +const std::list& VoltageAdjusterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageAdjusterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageAdjusterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageAdjusterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageAdjusterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VoltageAdjusterUserDefined::debugString() const void VoltageAdjusterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageAdjusterUserDefined", &VoltageAdjusterUserDefined_factory); + factory_map.emplace("VoltageAdjusterUserDefined", &VoltageAdjusterUserDefined_factory); } void VoltageAdjusterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterUserDefined.proprietary", &assign_VoltageAdjusterUserDefined_proprietary); + assign_map.emplace("VoltageAdjusterUserDefined.proprietary", &assign_VoltageAdjusterUserDefined_proprietary); } void VoltageAdjusterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterUserDefined.ProprietaryParameterDynamics", &assign_VoltageAdjusterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VoltageAdjusterUserDefined.ProprietaryParameterDynamics", &assign_VoltageAdjusterUserDefined_ProprietaryParameterDynamics); } void VoltageAdjusterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageAdjusterUserDefined.proprietary", &get_VoltageAdjusterUserDefined_proprietary); + get_map.emplace("VoltageAdjusterUserDefined.proprietary", &get_VoltageAdjusterUserDefined_proprietary); } void VoltageAdjusterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VoltageAdjusterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageAdjusterUserDefined::declare() { return BaseClassDefiner(VoltageAdjusterUserDefined::addConstructToMap, VoltageAdjusterUserDefined::addPrimitiveAssignFnsToMap, VoltageAdjusterUserDefined::addClassAssignFnsToMap, VoltageAdjusterUserDefined::debugName); } +std::map VoltageAdjusterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageAdjusterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageAdjusterUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/VoltageAdjusterUserDefined.hpp b/CGMES_2.4.15_16FEB2016/VoltageAdjusterUserDefined.hpp index b1e9da031..bf333519c 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageAdjusterUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/VoltageAdjusterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageAdjusterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageAdjusterUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VoltageCompensatorDynamics.cpp b/CGMES_2.4.15_16FEB2016/VoltageCompensatorDynamics.cpp index b1b3c20fd..bd3180085 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageCompensatorDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/VoltageCompensatorDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageCompensatorDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageCompensatorDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageCompensatorDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageCompensatorDynamics::VoltageCompensatorDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} VoltageCompensatorDynamics::~VoltageCompensatorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageCompensatorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageCompensatorDynamics::getClassNamespaceUrl() const { - { "cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageCompensatorDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageCompensatorDynamics::getPossibleProfilesForClass() const +const std::string& VoltageCompensatorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageCompensatorDynamics::getPossibleProfilesForAttributes() const +const std::list& VoltageCompensatorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageCompensatorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageCompensatorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageCompensatorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_VoltageCompensatorDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* VoltageCompensatorDynamics::debugString() const void VoltageCompensatorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageCompensatorDynamics", &VoltageCompensatorDynamics_factory); + factory_map.emplace("VoltageCompensatorDynamics", &VoltageCompensatorDynamics_factory); } void VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", &assign_VoltageCompensatorDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:VoltageCompensatorDynamics.RemoteInputSignal", &assign_VoltageCompensatorDynamics_RemoteInputSignal); + assign_map.emplace("VoltageCompensatorDynamics.ExcitationSystemDynamics", &assign_VoltageCompensatorDynamics_ExcitationSystemDynamics); + assign_map.emplace("VoltageCompensatorDynamics.RemoteInputSignal", &assign_VoltageCompensatorDynamics_RemoteInputSignal); } void VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", &get_VoltageCompensatorDynamics_ExcitationSystemDynamics); + get_map.emplace("VoltageCompensatorDynamics.ExcitationSystemDynamics", &get_VoltageCompensatorDynamics_ExcitationSystemDynamics); } void VoltageCompensatorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void VoltageCompensatorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageCompensatorDynamics::declare() { return BaseClassDefiner(VoltageCompensatorDynamics::addConstructToMap, VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap, VoltageCompensatorDynamics::addClassAssignFnsToMap, VoltageCompensatorDynamics::debugName); } +std::map VoltageCompensatorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageCompensatorDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/VoltageCompensatorDynamics.hpp b/CGMES_2.4.15_16FEB2016/VoltageCompensatorDynamics.hpp index 858af27b2..96c4ffaab 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageCompensatorDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/VoltageCompensatorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageCompensatorDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VoltageCompensatorUserDefined.cpp b/CGMES_2.4.15_16FEB2016/VoltageCompensatorUserDefined.cpp index dc3b5ff50..09fb2904f 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageCompensatorUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/VoltageCompensatorUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageCompensatorUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageCompensatorUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageCompensatorUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageCompensatorUserDefined::VoltageCompensatorUserDefined() {} VoltageCompensatorUserDefined::~VoltageCompensatorUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageCompensatorUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageCompensatorUserDefined::getClassNamespaceUrl() const { - { "cim:VoltageCompensatorUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageCompensatorUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageCompensatorUserDefined::getPossibleProfilesForClass() const +const std::string& VoltageCompensatorUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageCompensatorUserDefined::getPossibleProfilesForAttributes() const +const std::list& VoltageCompensatorUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageCompensatorUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageCompensatorUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageCompensatorUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VoltageCompensatorUserDefined::debugString() const void VoltageCompensatorUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageCompensatorUserDefined", &VoltageCompensatorUserDefined_factory); + factory_map.emplace("VoltageCompensatorUserDefined", &VoltageCompensatorUserDefined_factory); } void VoltageCompensatorUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorUserDefined.proprietary", &assign_VoltageCompensatorUserDefined_proprietary); + assign_map.emplace("VoltageCompensatorUserDefined.proprietary", &assign_VoltageCompensatorUserDefined_proprietary); } void VoltageCompensatorUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorUserDefined.ProprietaryParameterDynamics", &assign_VoltageCompensatorUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VoltageCompensatorUserDefined.ProprietaryParameterDynamics", &assign_VoltageCompensatorUserDefined_ProprietaryParameterDynamics); } void VoltageCompensatorUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageCompensatorUserDefined.proprietary", &get_VoltageCompensatorUserDefined_proprietary); + get_map.emplace("VoltageCompensatorUserDefined.proprietary", &get_VoltageCompensatorUserDefined_proprietary); } void VoltageCompensatorUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VoltageCompensatorUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageCompensatorUserDefined::declare() { return BaseClassDefiner(VoltageCompensatorUserDefined::addConstructToMap, VoltageCompensatorUserDefined::addPrimitiveAssignFnsToMap, VoltageCompensatorUserDefined::addClassAssignFnsToMap, VoltageCompensatorUserDefined::debugName); } +std::map VoltageCompensatorUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageCompensatorUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/VoltageCompensatorUserDefined.hpp b/CGMES_2.4.15_16FEB2016/VoltageCompensatorUserDefined.hpp index 7f6055be5..62b0ad2f8 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageCompensatorUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/VoltageCompensatorUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageCompensatorUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VoltageLevel.cpp b/CGMES_2.4.15_16FEB2016/VoltageLevel.cpp index 31ba7dc6a..64c9b4093 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageLevel.cpp +++ b/CGMES_2.4.15_16FEB2016/VoltageLevel.cpp @@ -14,36 +14,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageLevel(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageLevel.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.Bays", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.Substation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.highVoltageLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.lowVoltageLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageLevel::VoltageLevel() : BaseVoltage(nullptr), Substation(nullptr) {} VoltageLevel::~VoltageLevel() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageLevel::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageLevel::getClassNamespaceUrl() const { - { "cim:VoltageLevel.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.Bays", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.Substation", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.highVoltageLimit", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.lowVoltageLimit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageLevel::getPossibleProfilesForClass() const +const std::string& VoltageLevel::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageLevel::getPossibleProfilesForAttributes() const +const std::list& VoltageLevel::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageLevel::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageLevel::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageLevel::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_VoltageLevel(BaseClass*, BaseClass*); @@ -192,34 +224,34 @@ const char* VoltageLevel::debugString() const void VoltageLevel::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageLevel", &VoltageLevel_factory); + factory_map.emplace("VoltageLevel", &VoltageLevel_factory); } void VoltageLevel::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLevel.highVoltageLimit", &assign_VoltageLevel_highVoltageLimit); - assign_map.emplace("cim:VoltageLevel.lowVoltageLimit", &assign_VoltageLevel_lowVoltageLimit); + assign_map.emplace("VoltageLevel.highVoltageLimit", &assign_VoltageLevel_highVoltageLimit); + assign_map.emplace("VoltageLevel.lowVoltageLimit", &assign_VoltageLevel_lowVoltageLimit); } void VoltageLevel::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLevel.BaseVoltage", &assign_VoltageLevel_BaseVoltage); - assign_map.emplace("cim:VoltageLevel.Bays", &assign_VoltageLevel_Bays); - assign_map.emplace("cim:VoltageLevel.Substation", &assign_VoltageLevel_Substation); + assign_map.emplace("VoltageLevel.BaseVoltage", &assign_VoltageLevel_BaseVoltage); + assign_map.emplace("VoltageLevel.Bays", &assign_VoltageLevel_Bays); + assign_map.emplace("VoltageLevel.Substation", &assign_VoltageLevel_Substation); } void VoltageLevel::addPrimitiveGetFnsToMap(std::map& get_map) const { EquipmentContainer::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLevel.highVoltageLimit", &get_VoltageLevel_highVoltageLimit); - get_map.emplace("cim:VoltageLevel.lowVoltageLimit", &get_VoltageLevel_lowVoltageLimit); + get_map.emplace("VoltageLevel.highVoltageLimit", &get_VoltageLevel_highVoltageLimit); + get_map.emplace("VoltageLevel.lowVoltageLimit", &get_VoltageLevel_lowVoltageLimit); } void VoltageLevel::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLevel.BaseVoltage", &get_VoltageLevel_BaseVoltage); - get_map.emplace("cim:VoltageLevel.Substation", &get_VoltageLevel_Substation); + get_map.emplace("VoltageLevel.BaseVoltage", &get_VoltageLevel_BaseVoltage); + get_map.emplace("VoltageLevel.Substation", &get_VoltageLevel_Substation); } void VoltageLevel::addEnumGetFnsToMap(std::map& get_map) const @@ -227,11 +259,25 @@ void VoltageLevel::addEnumGetFnsToMap(std::map& get_m EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool VoltageLevel::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VoltageLevel" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VoltageLevel::declare() { return BaseClassDefiner(VoltageLevel::addConstructToMap, VoltageLevel::addPrimitiveAssignFnsToMap, VoltageLevel::addClassAssignFnsToMap, VoltageLevel::debugName); } +std::map VoltageLevel::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageLevel_factory() diff --git a/CGMES_2.4.15_16FEB2016/VoltageLevel.hpp b/CGMES_2.4.15_16FEB2016/VoltageLevel.hpp index 5b32798e6..93897d206 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageLevel.hpp +++ b/CGMES_2.4.15_16FEB2016/VoltageLevel.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageLevel_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VoltageLimit.cpp b/CGMES_2.4.15_16FEB2016/VoltageLimit.cpp index b8a2d59db..6dea63e2c 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageLimit.cpp +++ b/CGMES_2.4.15_16FEB2016/VoltageLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageLimit::VoltageLimit() {} VoltageLimit::~VoltageLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageLimit::getClassNamespaceUrl() const { - { "cim:VoltageLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageLimit::getPossibleProfilesForClass() const +const std::string& VoltageLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageLimit::getPossibleProfilesForAttributes() const +const std::list& VoltageLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VoltageLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* VoltageLimit::debugString() const void VoltageLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageLimit", &VoltageLimit_factory); + factory_map.emplace("VoltageLimit", &VoltageLimit_factory); } void VoltageLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLimit.value", &assign_VoltageLimit_value); + assign_map.emplace("VoltageLimit.value", &assign_VoltageLimit_value); } void VoltageLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void VoltageLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLimit.value", &get_VoltageLimit_value); + get_map.emplace("VoltageLimit.value", &get_VoltageLimit_value); } void VoltageLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void VoltageLimit::addEnumGetFnsToMap(std::map& get_m OperationalLimit::addEnumGetFnsToMap(get_map); } +bool VoltageLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VoltageLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VoltageLimit::declare() { return BaseClassDefiner(VoltageLimit::addConstructToMap, VoltageLimit::addPrimitiveAssignFnsToMap, VoltageLimit::addClassAssignFnsToMap, VoltageLimit::debugName); } +std::map VoltageLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageLimit_factory() diff --git a/CGMES_2.4.15_16FEB2016/VoltageLimit.hpp b/CGMES_2.4.15_16FEB2016/VoltageLimit.hpp index 7f2ddc83a..98ce422f7 100644 --- a/CGMES_2.4.15_16FEB2016/VoltageLimit.hpp +++ b/CGMES_2.4.15_16FEB2016/VoltageLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageLimit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VsCapabilityCurve.cpp b/CGMES_2.4.15_16FEB2016/VsCapabilityCurve.cpp index 5a75f1880..5f7f65088 100644 --- a/CGMES_2.4.15_16FEB2016/VsCapabilityCurve.cpp +++ b/CGMES_2.4.15_16FEB2016/VsCapabilityCurve.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VsCapabilityCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VsCapabilityCurve.VsConverterDCSides", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VsCapabilityCurve::VsCapabilityCurve() {} VsCapabilityCurve::~VsCapabilityCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& VsCapabilityCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VsCapabilityCurve::getClassNamespaceUrl() const { - { "cim:VsCapabilityCurve.VsConverterDCSides", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VsCapabilityCurve::getPossibleProfilesForClass() const +const std::string& VsCapabilityCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VsCapabilityCurve::getPossibleProfilesForAttributes() const +const std::list& VsCapabilityCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VsCapabilityCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VsCapabilityCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VsCapabilityCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsConverter_CapabilityCurve(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* VsCapabilityCurve::debugString() const void VsCapabilityCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VsCapabilityCurve", &VsCapabilityCurve_factory); + factory_map.emplace("VsCapabilityCurve", &VsCapabilityCurve_factory); } void VsCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void VsCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsCapabilityCurve.VsConverterDCSides", &assign_VsCapabilityCurve_VsConverterDCSides); + assign_map.emplace("VsCapabilityCurve.VsConverterDCSides", &assign_VsCapabilityCurve_VsConverterDCSides); } void VsCapabilityCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void VsCapabilityCurve::addEnumGetFnsToMap(std::map& Curve::addEnumGetFnsToMap(get_map); } +bool VsCapabilityCurve::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VsCapabilityCurve" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VsCapabilityCurve::declare() { return BaseClassDefiner(VsCapabilityCurve::addConstructToMap, VsCapabilityCurve::addPrimitiveAssignFnsToMap, VsCapabilityCurve::addClassAssignFnsToMap, VsCapabilityCurve::debugName); } +std::map VsCapabilityCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VsCapabilityCurve_factory() diff --git a/CGMES_2.4.15_16FEB2016/VsCapabilityCurve.hpp b/CGMES_2.4.15_16FEB2016/VsCapabilityCurve.hpp index 9eaa77b41..5d16bdc4d 100644 --- a/CGMES_2.4.15_16FEB2016/VsCapabilityCurve.hpp +++ b/CGMES_2.4.15_16FEB2016/VsCapabilityCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VsCapabilityCurve_factory(); diff --git a/CGMES_2.4.15_16FEB2016/VsConverter.cpp b/CGMES_2.4.15_16FEB2016/VsConverter.cpp index 3cc9a7c0c..2f093f148 100644 --- a/CGMES_2.4.15_16FEB2016/VsConverter.cpp +++ b/CGMES_2.4.15_16FEB2016/VsConverter.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VsConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VsConverter.CapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.delta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "VsConverter.droop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.droopCompensation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.maxModulationIndex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.maxValveCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.pPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.qPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.qShare", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetQpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetUpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.uf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + VsConverter::VsConverter() : CapabilityCurve(nullptr) {} VsConverter::~VsConverter() {} -static const std::list PossibleProfilesForClass = +const std::list& VsConverter::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VsConverter::getClassNamespaceUrl() const { - { "cim:VsConverter.CapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:VsConverter.delta", { CGMESProfile::SV, } }, - { "cim:VsConverter.droop", { CGMESProfile::SSH, } }, - { "cim:VsConverter.droopCompensation", { CGMESProfile::SSH, } }, - { "cim:VsConverter.maxModulationIndex", { CGMESProfile::EQ, } }, - { "cim:VsConverter.maxValveCurrent", { CGMESProfile::EQ, } }, - { "cim:VsConverter.pPccControl", { CGMESProfile::SSH, } }, - { "cim:VsConverter.qPccControl", { CGMESProfile::SSH, } }, - { "cim:VsConverter.qShare", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetQpcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetUpcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.uf", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VsConverter::getPossibleProfilesForClass() const +const std::string& VsConverter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VsConverter::getPossibleProfilesForAttributes() const +const std::list& VsConverter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCConverter::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VsConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VsConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VsConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsCapabilityCurve_VsConverterDCSides(BaseClass*, BaseClass*); @@ -411,54 +443,60 @@ const char* VsConverter::debugString() const void VsConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VsConverter", &VsConverter_factory); + factory_map.emplace("VsConverter", &VsConverter_factory); } void VsConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsConverter.delta", &assign_VsConverter_delta); - assign_map.emplace("cim:VsConverter.droop", &assign_VsConverter_droop); - assign_map.emplace("cim:VsConverter.droopCompensation", &assign_VsConverter_droopCompensation); - assign_map.emplace("cim:VsConverter.maxModulationIndex", &assign_VsConverter_maxModulationIndex); - assign_map.emplace("cim:VsConverter.maxValveCurrent", &assign_VsConverter_maxValveCurrent); - assign_map.emplace("cim:VsConverter.pPccControl", &assign_VsConverter_pPccControl); - assign_map.emplace("cim:VsConverter.qPccControl", &assign_VsConverter_qPccControl); - assign_map.emplace("cim:VsConverter.qShare", &assign_VsConverter_qShare); - assign_map.emplace("cim:VsConverter.targetQpcc", &assign_VsConverter_targetQpcc); - assign_map.emplace("cim:VsConverter.targetUpcc", &assign_VsConverter_targetUpcc); - assign_map.emplace("cim:VsConverter.uf", &assign_VsConverter_uf); + assign_map.emplace("VsConverter.delta", &assign_VsConverter_delta); + assign_map.emplace("VsConverter.droop", &assign_VsConverter_droop); + assign_map.emplace("VsConverter.droopCompensation", &assign_VsConverter_droopCompensation); + assign_map.emplace("VsConverter.maxModulationIndex", &assign_VsConverter_maxModulationIndex); + assign_map.emplace("VsConverter.maxValveCurrent", &assign_VsConverter_maxValveCurrent); + assign_map.emplace("VsConverter.pPccControl", &assign_VsConverter_pPccControl); + assign_map.emplace("VsConverter.qPccControl", &assign_VsConverter_qPccControl); + assign_map.emplace("VsConverter.qShare", &assign_VsConverter_qShare); + assign_map.emplace("VsConverter.targetQpcc", &assign_VsConverter_targetQpcc); + assign_map.emplace("VsConverter.targetUpcc", &assign_VsConverter_targetUpcc); + assign_map.emplace("VsConverter.uf", &assign_VsConverter_uf); } void VsConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsConverter.CapabilityCurve", &assign_VsConverter_CapabilityCurve); + assign_map.emplace("VsConverter.CapabilityCurve", &assign_VsConverter_CapabilityCurve); } void VsConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ACDCConverter::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.delta", &get_VsConverter_delta); - get_map.emplace("cim:VsConverter.droop", &get_VsConverter_droop); - get_map.emplace("cim:VsConverter.droopCompensation", &get_VsConverter_droopCompensation); - get_map.emplace("cim:VsConverter.maxModulationIndex", &get_VsConverter_maxModulationIndex); - get_map.emplace("cim:VsConverter.maxValveCurrent", &get_VsConverter_maxValveCurrent); - get_map.emplace("cim:VsConverter.qShare", &get_VsConverter_qShare); - get_map.emplace("cim:VsConverter.targetQpcc", &get_VsConverter_targetQpcc); - get_map.emplace("cim:VsConverter.targetUpcc", &get_VsConverter_targetUpcc); - get_map.emplace("cim:VsConverter.uf", &get_VsConverter_uf); + get_map.emplace("VsConverter.delta", &get_VsConverter_delta); + get_map.emplace("VsConverter.droop", &get_VsConverter_droop); + get_map.emplace("VsConverter.droopCompensation", &get_VsConverter_droopCompensation); + get_map.emplace("VsConverter.maxModulationIndex", &get_VsConverter_maxModulationIndex); + get_map.emplace("VsConverter.maxValveCurrent", &get_VsConverter_maxValveCurrent); + get_map.emplace("VsConverter.qShare", &get_VsConverter_qShare); + get_map.emplace("VsConverter.targetQpcc", &get_VsConverter_targetQpcc); + get_map.emplace("VsConverter.targetUpcc", &get_VsConverter_targetUpcc); + get_map.emplace("VsConverter.uf", &get_VsConverter_uf); } void VsConverter::addClassGetFnsToMap(std::map& get_map) const { ACDCConverter::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.CapabilityCurve", &get_VsConverter_CapabilityCurve); + get_map.emplace("VsConverter.CapabilityCurve", &get_VsConverter_CapabilityCurve); } void VsConverter::addEnumGetFnsToMap(std::map& get_map) const { ACDCConverter::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.pPccControl", &get_VsConverter_pPccControl); - get_map.emplace("cim:VsConverter.qPccControl", &get_VsConverter_qPccControl); + get_map.emplace("VsConverter.pPccControl", &get_VsConverter_pPccControl); + get_map.emplace("VsConverter.qPccControl", &get_VsConverter_qPccControl); +} + +bool VsConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VsConverter" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner VsConverter::declare() @@ -466,6 +504,14 @@ const BaseClassDefiner VsConverter::declare() return BaseClassDefiner(VsConverter::addConstructToMap, VsConverter::addPrimitiveAssignFnsToMap, VsConverter::addClassAssignFnsToMap, VsConverter::debugName); } +std::map VsConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCConverter::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VsConverter_factory() diff --git a/CGMES_2.4.15_16FEB2016/VsConverter.hpp b/CGMES_2.4.15_16FEB2016/VsConverter.hpp index 046abdfd8..8d1b12e58 100644 --- a/CGMES_2.4.15_16FEB2016/VsConverter.hpp +++ b/CGMES_2.4.15_16FEB2016/VsConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCConverter.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "CurrentFlow.hpp" #include "PU.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VsConverter_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindAeroConstIEC.cpp b/CGMES_2.4.15_16FEB2016/WindAeroConstIEC.cpp index 62ae00aaa..105daeb72 100644 --- a/CGMES_2.4.15_16FEB2016/WindAeroConstIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindAeroConstIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroConstIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroConstIEC.WindGenTurbineType1IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroConstIEC::WindAeroConstIEC() : WindGenTurbineType1IEC(nullptr) {} WindAeroConstIEC::~WindAeroConstIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroConstIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroConstIEC::getClassNamespaceUrl() const { - { "cim:WindAeroConstIEC.WindGenTurbineType1IEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindAeroConstIEC::getPossibleProfilesForClass() const +const std::string& WindAeroConstIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroConstIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroConstIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroConstIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroConstIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroConstIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType1IEC_WindAeroConstIEC(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* WindAeroConstIEC::debugString() const void WindAeroConstIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroConstIEC", &WindAeroConstIEC_factory); + factory_map.emplace("WindAeroConstIEC", &WindAeroConstIEC_factory); } void WindAeroConstIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void WindAeroConstIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroConstIEC.WindGenTurbineType1IEC", &assign_WindAeroConstIEC_WindGenTurbineType1IEC); + assign_map.emplace("WindAeroConstIEC.WindGenTurbineType1IEC", &assign_WindAeroConstIEC_WindGenTurbineType1IEC); } void WindAeroConstIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void WindAeroConstIEC::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroConstIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroConstIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroConstIEC::declare() { return BaseClassDefiner(WindAeroConstIEC::addConstructToMap, WindAeroConstIEC::addPrimitiveAssignFnsToMap, WindAeroConstIEC::addClassAssignFnsToMap, WindAeroConstIEC::debugName); } +std::map WindAeroConstIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroConstIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindAeroConstIEC.hpp b/CGMES_2.4.15_16FEB2016/WindAeroConstIEC.hpp index f6ed16d26..5a8be2770 100644 --- a/CGMES_2.4.15_16FEB2016/WindAeroConstIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindAeroConstIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroConstIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.cpp b/CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.cpp index 9301ffa49..98f5d4a79 100644 --- a/CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroLinearIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroLinearIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.dpomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.dptheta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.omegazero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.pavail", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.thetazero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroLinearIEC::WindAeroLinearIEC() : WindGenTurbineType3IEC(nullptr) {} WindAeroLinearIEC::~WindAeroLinearIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroLinearIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroLinearIEC::getClassNamespaceUrl() const { - { "cim:WindAeroLinearIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.dpomega", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.dptheta", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.omegazero", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.pavail", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.thetazero", { CGMESProfile::DY, } }, -}; - -std::list -WindAeroLinearIEC::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindAeroLinearIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroLinearIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroLinearIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroLinearIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroLinearIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroLinearIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindAeroLinearIEC(BaseClass*, BaseClass*); @@ -216,31 +248,31 @@ const char* WindAeroLinearIEC::debugString() const void WindAeroLinearIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroLinearIEC", &WindAeroLinearIEC_factory); + factory_map.emplace("WindAeroLinearIEC", &WindAeroLinearIEC_factory); } void WindAeroLinearIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroLinearIEC.dpomega", &assign_WindAeroLinearIEC_dpomega); - assign_map.emplace("cim:WindAeroLinearIEC.dptheta", &assign_WindAeroLinearIEC_dptheta); - assign_map.emplace("cim:WindAeroLinearIEC.omegazero", &assign_WindAeroLinearIEC_omegazero); - assign_map.emplace("cim:WindAeroLinearIEC.pavail", &assign_WindAeroLinearIEC_pavail); - assign_map.emplace("cim:WindAeroLinearIEC.thetazero", &assign_WindAeroLinearIEC_thetazero); + assign_map.emplace("WindAeroLinearIEC.dpomega", &assign_WindAeroLinearIEC_dpomega); + assign_map.emplace("WindAeroLinearIEC.dptheta", &assign_WindAeroLinearIEC_dptheta); + assign_map.emplace("WindAeroLinearIEC.omegazero", &assign_WindAeroLinearIEC_omegazero); + assign_map.emplace("WindAeroLinearIEC.pavail", &assign_WindAeroLinearIEC_pavail); + assign_map.emplace("WindAeroLinearIEC.thetazero", &assign_WindAeroLinearIEC_thetazero); } void WindAeroLinearIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroLinearIEC.WindGenTurbineType3IEC", &assign_WindAeroLinearIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindAeroLinearIEC.WindGenTurbineType3IEC", &assign_WindAeroLinearIEC_WindGenTurbineType3IEC); } void WindAeroLinearIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindAeroLinearIEC.dpomega", &get_WindAeroLinearIEC_dpomega); - get_map.emplace("cim:WindAeroLinearIEC.dptheta", &get_WindAeroLinearIEC_dptheta); - get_map.emplace("cim:WindAeroLinearIEC.omegazero", &get_WindAeroLinearIEC_omegazero); - get_map.emplace("cim:WindAeroLinearIEC.pavail", &get_WindAeroLinearIEC_pavail); - get_map.emplace("cim:WindAeroLinearIEC.thetazero", &get_WindAeroLinearIEC_thetazero); + get_map.emplace("WindAeroLinearIEC.dpomega", &get_WindAeroLinearIEC_dpomega); + get_map.emplace("WindAeroLinearIEC.dptheta", &get_WindAeroLinearIEC_dptheta); + get_map.emplace("WindAeroLinearIEC.omegazero", &get_WindAeroLinearIEC_omegazero); + get_map.emplace("WindAeroLinearIEC.pavail", &get_WindAeroLinearIEC_pavail); + get_map.emplace("WindAeroLinearIEC.thetazero", &get_WindAeroLinearIEC_thetazero); } void WindAeroLinearIEC::addClassGetFnsToMap(std::map& get_map) const @@ -253,11 +285,25 @@ void WindAeroLinearIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroLinearIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroLinearIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroLinearIEC::declare() { return BaseClassDefiner(WindAeroLinearIEC::addConstructToMap, WindAeroLinearIEC::addPrimitiveAssignFnsToMap, WindAeroLinearIEC::addClassAssignFnsToMap, WindAeroLinearIEC::debugName); } +std::map WindAeroLinearIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroLinearIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.hpp b/CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.hpp index 0e71d0eb4..b77ffcc00 100644 --- a/CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindAeroLinearIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroLinearIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.cpp b/CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.cpp index 68e2ece08..142a48cbf 100644 --- a/CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.cpp @@ -13,38 +13,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContCurrLimIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContCurrLimIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.imax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.imaxdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.mdfslim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.mqpri", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContCurrLimIEC::WindContCurrLimIEC() : WindTurbineType3or4IEC(nullptr) {} WindContCurrLimIEC::~WindContCurrLimIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContCurrLimIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContCurrLimIEC::getClassNamespaceUrl() const { - { "cim:WindContCurrLimIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.imax", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.imaxdip", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.mdfslim", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.mqpri", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContCurrLimIEC::getPossibleProfilesForClass() const +const std::string& WindContCurrLimIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContCurrLimIEC::getPossibleProfilesForAttributes() const +const std::list& WindContCurrLimIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContCurrLimIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContCurrLimIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContCurrLimIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContCurrLimIEC(BaseClass*, BaseClass*); @@ -236,32 +268,32 @@ const char* WindContCurrLimIEC::debugString() const void WindContCurrLimIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContCurrLimIEC", &WindContCurrLimIEC_factory); + factory_map.emplace("WindContCurrLimIEC", &WindContCurrLimIEC_factory); } void WindContCurrLimIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContCurrLimIEC.imax", &assign_WindContCurrLimIEC_imax); - assign_map.emplace("cim:WindContCurrLimIEC.imaxdip", &assign_WindContCurrLimIEC_imaxdip); - assign_map.emplace("cim:WindContCurrLimIEC.mdfslim", &assign_WindContCurrLimIEC_mdfslim); - assign_map.emplace("cim:WindContCurrLimIEC.mqpri", &assign_WindContCurrLimIEC_mqpri); - assign_map.emplace("cim:WindContCurrLimIEC.tufilt", &assign_WindContCurrLimIEC_tufilt); + assign_map.emplace("WindContCurrLimIEC.imax", &assign_WindContCurrLimIEC_imax); + assign_map.emplace("WindContCurrLimIEC.imaxdip", &assign_WindContCurrLimIEC_imaxdip); + assign_map.emplace("WindContCurrLimIEC.mdfslim", &assign_WindContCurrLimIEC_mdfslim); + assign_map.emplace("WindContCurrLimIEC.mqpri", &assign_WindContCurrLimIEC_mqpri); + assign_map.emplace("WindContCurrLimIEC.tufilt", &assign_WindContCurrLimIEC_tufilt); } void WindContCurrLimIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContCurrLimIEC.WindDynamicsLookupTable", &assign_WindContCurrLimIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContCurrLimIEC.WindTurbineType3or4IEC", &assign_WindContCurrLimIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContCurrLimIEC.WindDynamicsLookupTable", &assign_WindContCurrLimIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContCurrLimIEC.WindTurbineType3or4IEC", &assign_WindContCurrLimIEC_WindTurbineType3or4IEC); } void WindContCurrLimIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContCurrLimIEC.imax", &get_WindContCurrLimIEC_imax); - get_map.emplace("cim:WindContCurrLimIEC.imaxdip", &get_WindContCurrLimIEC_imaxdip); - get_map.emplace("cim:WindContCurrLimIEC.mdfslim", &get_WindContCurrLimIEC_mdfslim); - get_map.emplace("cim:WindContCurrLimIEC.mqpri", &get_WindContCurrLimIEC_mqpri); - get_map.emplace("cim:WindContCurrLimIEC.tufilt", &get_WindContCurrLimIEC_tufilt); + get_map.emplace("WindContCurrLimIEC.imax", &get_WindContCurrLimIEC_imax); + get_map.emplace("WindContCurrLimIEC.imaxdip", &get_WindContCurrLimIEC_imaxdip); + get_map.emplace("WindContCurrLimIEC.mdfslim", &get_WindContCurrLimIEC_mdfslim); + get_map.emplace("WindContCurrLimIEC.mqpri", &get_WindContCurrLimIEC_mqpri); + get_map.emplace("WindContCurrLimIEC.tufilt", &get_WindContCurrLimIEC_tufilt); } void WindContCurrLimIEC::addClassGetFnsToMap(std::map& get_map) const @@ -274,11 +306,25 @@ void WindContCurrLimIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContCurrLimIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContCurrLimIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContCurrLimIEC::declare() { return BaseClassDefiner(WindContCurrLimIEC::addConstructToMap, WindContCurrLimIEC::addPrimitiveAssignFnsToMap, WindContCurrLimIEC::addClassAssignFnsToMap, WindContCurrLimIEC::debugName); } +std::map WindContCurrLimIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContCurrLimIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.hpp b/CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.hpp index eee20358c..4be4be47e 100644 --- a/CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindContCurrLimIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContCurrLimIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindContPType3IEC.cpp b/CGMES_2.4.15_16FEB2016/WindContPType3IEC.cpp index 441be1a61..55af17e37 100644 --- a/CGMES_2.4.15_16FEB2016/WindContPType3IEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindContPType3IEC.cpp @@ -13,54 +13,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType3IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType3IEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dtrisemaxlvrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kdtd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.mplvrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.omegaoffset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.pdtdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.rramp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tdvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.temin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tomegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tuscale", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.twref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.udvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.updip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.wdtd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.zeta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType3IEC::WindContPType3IEC() : WindGenTurbineType3IEC(nullptr) {} WindContPType3IEC::~WindContPType3IEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindContPType3IEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dtrisemaxlvrt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kdtd", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kip", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kpp", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.mplvrt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.omegaoffset", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.pdtdmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.rramp", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tdvs", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.temin", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tomegafilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tpfilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tufilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tuscale", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.twref", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.udvs", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.updip", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.wdtd", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.zeta", { CGMESProfile::DY, } }, -}; - -std::list -WindContPType3IEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindContPType3IEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindContPType3IEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindContPType3IEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindContPType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindContPType3IEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContPType3IEC(BaseClass*, BaseClass*); @@ -716,64 +748,64 @@ const char* WindContPType3IEC::debugString() const void WindContPType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType3IEC", &WindContPType3IEC_factory); + factory_map.emplace("WindContPType3IEC", &WindContPType3IEC_factory); } void WindContPType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType3IEC.dpmax", &assign_WindContPType3IEC_dpmax); - assign_map.emplace("cim:WindContPType3IEC.dtrisemaxlvrt", &assign_WindContPType3IEC_dtrisemaxlvrt); - assign_map.emplace("cim:WindContPType3IEC.kdtd", &assign_WindContPType3IEC_kdtd); - assign_map.emplace("cim:WindContPType3IEC.kip", &assign_WindContPType3IEC_kip); - assign_map.emplace("cim:WindContPType3IEC.kpp", &assign_WindContPType3IEC_kpp); - assign_map.emplace("cim:WindContPType3IEC.mplvrt", &assign_WindContPType3IEC_mplvrt); - assign_map.emplace("cim:WindContPType3IEC.omegaoffset", &assign_WindContPType3IEC_omegaoffset); - assign_map.emplace("cim:WindContPType3IEC.pdtdmax", &assign_WindContPType3IEC_pdtdmax); - assign_map.emplace("cim:WindContPType3IEC.rramp", &assign_WindContPType3IEC_rramp); - assign_map.emplace("cim:WindContPType3IEC.tdvs", &assign_WindContPType3IEC_tdvs); - assign_map.emplace("cim:WindContPType3IEC.temin", &assign_WindContPType3IEC_temin); - assign_map.emplace("cim:WindContPType3IEC.tomegafilt", &assign_WindContPType3IEC_tomegafilt); - assign_map.emplace("cim:WindContPType3IEC.tpfilt", &assign_WindContPType3IEC_tpfilt); - assign_map.emplace("cim:WindContPType3IEC.tpord", &assign_WindContPType3IEC_tpord); - assign_map.emplace("cim:WindContPType3IEC.tufilt", &assign_WindContPType3IEC_tufilt); - assign_map.emplace("cim:WindContPType3IEC.tuscale", &assign_WindContPType3IEC_tuscale); - assign_map.emplace("cim:WindContPType3IEC.twref", &assign_WindContPType3IEC_twref); - assign_map.emplace("cim:WindContPType3IEC.udvs", &assign_WindContPType3IEC_udvs); - assign_map.emplace("cim:WindContPType3IEC.updip", &assign_WindContPType3IEC_updip); - assign_map.emplace("cim:WindContPType3IEC.wdtd", &assign_WindContPType3IEC_wdtd); - assign_map.emplace("cim:WindContPType3IEC.zeta", &assign_WindContPType3IEC_zeta); + assign_map.emplace("WindContPType3IEC.dpmax", &assign_WindContPType3IEC_dpmax); + assign_map.emplace("WindContPType3IEC.dtrisemaxlvrt", &assign_WindContPType3IEC_dtrisemaxlvrt); + assign_map.emplace("WindContPType3IEC.kdtd", &assign_WindContPType3IEC_kdtd); + assign_map.emplace("WindContPType3IEC.kip", &assign_WindContPType3IEC_kip); + assign_map.emplace("WindContPType3IEC.kpp", &assign_WindContPType3IEC_kpp); + assign_map.emplace("WindContPType3IEC.mplvrt", &assign_WindContPType3IEC_mplvrt); + assign_map.emplace("WindContPType3IEC.omegaoffset", &assign_WindContPType3IEC_omegaoffset); + assign_map.emplace("WindContPType3IEC.pdtdmax", &assign_WindContPType3IEC_pdtdmax); + assign_map.emplace("WindContPType3IEC.rramp", &assign_WindContPType3IEC_rramp); + assign_map.emplace("WindContPType3IEC.tdvs", &assign_WindContPType3IEC_tdvs); + assign_map.emplace("WindContPType3IEC.temin", &assign_WindContPType3IEC_temin); + assign_map.emplace("WindContPType3IEC.tomegafilt", &assign_WindContPType3IEC_tomegafilt); + assign_map.emplace("WindContPType3IEC.tpfilt", &assign_WindContPType3IEC_tpfilt); + assign_map.emplace("WindContPType3IEC.tpord", &assign_WindContPType3IEC_tpord); + assign_map.emplace("WindContPType3IEC.tufilt", &assign_WindContPType3IEC_tufilt); + assign_map.emplace("WindContPType3IEC.tuscale", &assign_WindContPType3IEC_tuscale); + assign_map.emplace("WindContPType3IEC.twref", &assign_WindContPType3IEC_twref); + assign_map.emplace("WindContPType3IEC.udvs", &assign_WindContPType3IEC_udvs); + assign_map.emplace("WindContPType3IEC.updip", &assign_WindContPType3IEC_updip); + assign_map.emplace("WindContPType3IEC.wdtd", &assign_WindContPType3IEC_wdtd); + assign_map.emplace("WindContPType3IEC.zeta", &assign_WindContPType3IEC_zeta); } void WindContPType3IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType3IEC.WindDynamicsLookupTable", &assign_WindContPType3IEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContPType3IEC.WindGenTurbineType3IEC", &assign_WindContPType3IEC_WindGenTurbineType3IEC); + assign_map.emplace("WindContPType3IEC.WindDynamicsLookupTable", &assign_WindContPType3IEC_WindDynamicsLookupTable); + assign_map.emplace("WindContPType3IEC.WindGenTurbineType3IEC", &assign_WindContPType3IEC_WindGenTurbineType3IEC); } void WindContPType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType3IEC.dpmax", &get_WindContPType3IEC_dpmax); - get_map.emplace("cim:WindContPType3IEC.dtrisemaxlvrt", &get_WindContPType3IEC_dtrisemaxlvrt); - get_map.emplace("cim:WindContPType3IEC.kdtd", &get_WindContPType3IEC_kdtd); - get_map.emplace("cim:WindContPType3IEC.kip", &get_WindContPType3IEC_kip); - get_map.emplace("cim:WindContPType3IEC.kpp", &get_WindContPType3IEC_kpp); - get_map.emplace("cim:WindContPType3IEC.mplvrt", &get_WindContPType3IEC_mplvrt); - get_map.emplace("cim:WindContPType3IEC.omegaoffset", &get_WindContPType3IEC_omegaoffset); - get_map.emplace("cim:WindContPType3IEC.pdtdmax", &get_WindContPType3IEC_pdtdmax); - get_map.emplace("cim:WindContPType3IEC.rramp", &get_WindContPType3IEC_rramp); - get_map.emplace("cim:WindContPType3IEC.tdvs", &get_WindContPType3IEC_tdvs); - get_map.emplace("cim:WindContPType3IEC.temin", &get_WindContPType3IEC_temin); - get_map.emplace("cim:WindContPType3IEC.tomegafilt", &get_WindContPType3IEC_tomegafilt); - get_map.emplace("cim:WindContPType3IEC.tpfilt", &get_WindContPType3IEC_tpfilt); - get_map.emplace("cim:WindContPType3IEC.tpord", &get_WindContPType3IEC_tpord); - get_map.emplace("cim:WindContPType3IEC.tufilt", &get_WindContPType3IEC_tufilt); - get_map.emplace("cim:WindContPType3IEC.tuscale", &get_WindContPType3IEC_tuscale); - get_map.emplace("cim:WindContPType3IEC.twref", &get_WindContPType3IEC_twref); - get_map.emplace("cim:WindContPType3IEC.udvs", &get_WindContPType3IEC_udvs); - get_map.emplace("cim:WindContPType3IEC.updip", &get_WindContPType3IEC_updip); - get_map.emplace("cim:WindContPType3IEC.wdtd", &get_WindContPType3IEC_wdtd); - get_map.emplace("cim:WindContPType3IEC.zeta", &get_WindContPType3IEC_zeta); + get_map.emplace("WindContPType3IEC.dpmax", &get_WindContPType3IEC_dpmax); + get_map.emplace("WindContPType3IEC.dtrisemaxlvrt", &get_WindContPType3IEC_dtrisemaxlvrt); + get_map.emplace("WindContPType3IEC.kdtd", &get_WindContPType3IEC_kdtd); + get_map.emplace("WindContPType3IEC.kip", &get_WindContPType3IEC_kip); + get_map.emplace("WindContPType3IEC.kpp", &get_WindContPType3IEC_kpp); + get_map.emplace("WindContPType3IEC.mplvrt", &get_WindContPType3IEC_mplvrt); + get_map.emplace("WindContPType3IEC.omegaoffset", &get_WindContPType3IEC_omegaoffset); + get_map.emplace("WindContPType3IEC.pdtdmax", &get_WindContPType3IEC_pdtdmax); + get_map.emplace("WindContPType3IEC.rramp", &get_WindContPType3IEC_rramp); + get_map.emplace("WindContPType3IEC.tdvs", &get_WindContPType3IEC_tdvs); + get_map.emplace("WindContPType3IEC.temin", &get_WindContPType3IEC_temin); + get_map.emplace("WindContPType3IEC.tomegafilt", &get_WindContPType3IEC_tomegafilt); + get_map.emplace("WindContPType3IEC.tpfilt", &get_WindContPType3IEC_tpfilt); + get_map.emplace("WindContPType3IEC.tpord", &get_WindContPType3IEC_tpord); + get_map.emplace("WindContPType3IEC.tufilt", &get_WindContPType3IEC_tufilt); + get_map.emplace("WindContPType3IEC.tuscale", &get_WindContPType3IEC_tuscale); + get_map.emplace("WindContPType3IEC.twref", &get_WindContPType3IEC_twref); + get_map.emplace("WindContPType3IEC.udvs", &get_WindContPType3IEC_udvs); + get_map.emplace("WindContPType3IEC.updip", &get_WindContPType3IEC_updip); + get_map.emplace("WindContPType3IEC.wdtd", &get_WindContPType3IEC_wdtd); + get_map.emplace("WindContPType3IEC.zeta", &get_WindContPType3IEC_zeta); } void WindContPType3IEC::addClassGetFnsToMap(std::map& get_map) const @@ -786,11 +818,25 @@ void WindContPType3IEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType3IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType3IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType3IEC::declare() { return BaseClassDefiner(WindContPType3IEC::addConstructToMap, WindContPType3IEC::addPrimitiveAssignFnsToMap, WindContPType3IEC::addClassAssignFnsToMap, WindContPType3IEC::debugName); } +std::map WindContPType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType3IEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindContPType3IEC.hpp b/CGMES_2.4.15_16FEB2016/WindContPType3IEC.hpp index f73e04869..54e920640 100644 --- a/CGMES_2.4.15_16FEB2016/WindContPType3IEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindContPType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -102,8 +103,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -111,7 +119,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType3IEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindContPType4aIEC.cpp b/CGMES_2.4.15_16FEB2016/WindContPType4aIEC.cpp index 1c26a76c5..fd0e796ca 100644 --- a/CGMES_2.4.15_16FEB2016/WindContPType4aIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindContPType4aIEC.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType4aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType4aIEC.WindTurbineType4aIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType4aIEC::WindContPType4aIEC() : WindTurbineType4aIEC(nullptr) {} WindContPType4aIEC::~WindContPType4aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPType4aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPType4aIEC::getClassNamespaceUrl() const { - { "cim:WindContPType4aIEC.WindTurbineType4aIEC", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPType4aIEC::getPossibleProfilesForClass() const +const std::string& WindContPType4aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPType4aIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPType4aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType4aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType4aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType4aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4aIEC_WindContPType4aIEC(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* WindContPType4aIEC::debugString() const void WindContPType4aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType4aIEC", &WindContPType4aIEC_factory); + factory_map.emplace("WindContPType4aIEC", &WindContPType4aIEC_factory); } void WindContPType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4aIEC.dpmax", &assign_WindContPType4aIEC_dpmax); - assign_map.emplace("cim:WindContPType4aIEC.tpord", &assign_WindContPType4aIEC_tpord); - assign_map.emplace("cim:WindContPType4aIEC.tufilt", &assign_WindContPType4aIEC_tufilt); + assign_map.emplace("WindContPType4aIEC.dpmax", &assign_WindContPType4aIEC_dpmax); + assign_map.emplace("WindContPType4aIEC.tpord", &assign_WindContPType4aIEC_tpord); + assign_map.emplace("WindContPType4aIEC.tufilt", &assign_WindContPType4aIEC_tufilt); } void WindContPType4aIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4aIEC.WindTurbineType4aIEC", &assign_WindContPType4aIEC_WindTurbineType4aIEC); + assign_map.emplace("WindContPType4aIEC.WindTurbineType4aIEC", &assign_WindContPType4aIEC_WindTurbineType4aIEC); } void WindContPType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType4aIEC.dpmax", &get_WindContPType4aIEC_dpmax); - get_map.emplace("cim:WindContPType4aIEC.tpord", &get_WindContPType4aIEC_tpord); - get_map.emplace("cim:WindContPType4aIEC.tufilt", &get_WindContPType4aIEC_tufilt); + get_map.emplace("WindContPType4aIEC.dpmax", &get_WindContPType4aIEC_dpmax); + get_map.emplace("WindContPType4aIEC.tpord", &get_WindContPType4aIEC_tpord); + get_map.emplace("WindContPType4aIEC.tufilt", &get_WindContPType4aIEC_tufilt); } void WindContPType4aIEC::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void WindContPType4aIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType4aIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType4aIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType4aIEC::declare() { return BaseClassDefiner(WindContPType4aIEC::addConstructToMap, WindContPType4aIEC::addPrimitiveAssignFnsToMap, WindContPType4aIEC::addClassAssignFnsToMap, WindContPType4aIEC::debugName); } +std::map WindContPType4aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType4aIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindContPType4aIEC.hpp b/CGMES_2.4.15_16FEB2016/WindContPType4aIEC.hpp index da1dc150e..2b2799ad1 100644 --- a/CGMES_2.4.15_16FEB2016/WindContPType4aIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindContPType4aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType4aIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindContPType4bIEC.cpp b/CGMES_2.4.15_16FEB2016/WindContPType4bIEC.cpp index 63bf79cac..ce1989784 100644 --- a/CGMES_2.4.15_16FEB2016/WindContPType4bIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindContPType4bIEC.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType4bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType4bIEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tpaero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType4bIEC::WindContPType4bIEC() : WindTurbineType4bIEC(nullptr) {} WindContPType4bIEC::~WindContPType4bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPType4bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPType4bIEC::getClassNamespaceUrl() const { - { "cim:WindContPType4bIEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tpaero", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPType4bIEC::getPossibleProfilesForClass() const +const std::string& WindContPType4bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPType4bIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPType4bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType4bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType4bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType4bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4bIEC_WindContPType4bIEC(BaseClass*, BaseClass*); @@ -186,29 +218,29 @@ const char* WindContPType4bIEC::debugString() const void WindContPType4bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType4bIEC", &WindContPType4bIEC_factory); + factory_map.emplace("WindContPType4bIEC", &WindContPType4bIEC_factory); } void WindContPType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4bIEC.dpmax", &assign_WindContPType4bIEC_dpmax); - assign_map.emplace("cim:WindContPType4bIEC.tpaero", &assign_WindContPType4bIEC_tpaero); - assign_map.emplace("cim:WindContPType4bIEC.tpord", &assign_WindContPType4bIEC_tpord); - assign_map.emplace("cim:WindContPType4bIEC.tufilt", &assign_WindContPType4bIEC_tufilt); + assign_map.emplace("WindContPType4bIEC.dpmax", &assign_WindContPType4bIEC_dpmax); + assign_map.emplace("WindContPType4bIEC.tpaero", &assign_WindContPType4bIEC_tpaero); + assign_map.emplace("WindContPType4bIEC.tpord", &assign_WindContPType4bIEC_tpord); + assign_map.emplace("WindContPType4bIEC.tufilt", &assign_WindContPType4bIEC_tufilt); } void WindContPType4bIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4bIEC.WindTurbineType4bIEC", &assign_WindContPType4bIEC_WindTurbineType4bIEC); + assign_map.emplace("WindContPType4bIEC.WindTurbineType4bIEC", &assign_WindContPType4bIEC_WindTurbineType4bIEC); } void WindContPType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType4bIEC.dpmax", &get_WindContPType4bIEC_dpmax); - get_map.emplace("cim:WindContPType4bIEC.tpaero", &get_WindContPType4bIEC_tpaero); - get_map.emplace("cim:WindContPType4bIEC.tpord", &get_WindContPType4bIEC_tpord); - get_map.emplace("cim:WindContPType4bIEC.tufilt", &get_WindContPType4bIEC_tufilt); + get_map.emplace("WindContPType4bIEC.dpmax", &get_WindContPType4bIEC_dpmax); + get_map.emplace("WindContPType4bIEC.tpaero", &get_WindContPType4bIEC_tpaero); + get_map.emplace("WindContPType4bIEC.tpord", &get_WindContPType4bIEC_tpord); + get_map.emplace("WindContPType4bIEC.tufilt", &get_WindContPType4bIEC_tufilt); } void WindContPType4bIEC::addClassGetFnsToMap(std::map& get_map) const @@ -221,11 +253,25 @@ void WindContPType4bIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType4bIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType4bIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType4bIEC::declare() { return BaseClassDefiner(WindContPType4bIEC::addConstructToMap, WindContPType4bIEC::addPrimitiveAssignFnsToMap, WindContPType4bIEC::addClassAssignFnsToMap, WindContPType4bIEC::debugName); } +std::map WindContPType4bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType4bIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindContPType4bIEC.hpp b/CGMES_2.4.15_16FEB2016/WindContPType4bIEC.hpp index 945825f0c..4e1cdbfe0 100644 --- a/CGMES_2.4.15_16FEB2016/WindContPType4bIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindContPType4bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType4bIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindContPitchAngleIEC.cpp b/CGMES_2.4.15_16FEB2016/WindContPitchAngleIEC.cpp index 055ba9674..3671be1e1 100644 --- a/CGMES_2.4.15_16FEB2016/WindContPitchAngleIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindContPitchAngleIEC.cpp @@ -12,42 +12,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPitchAngleIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPitchAngleIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.dthetamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.dthetamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kiomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.thetamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.thetamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.ttheta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPitchAngleIEC::WindContPitchAngleIEC() : WindGenTurbineType3IEC(nullptr) {} WindContPitchAngleIEC::~WindContPitchAngleIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPitchAngleIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPitchAngleIEC::getClassNamespaceUrl() const { - { "cim:WindContPitchAngleIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.dthetamax", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.dthetamin", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kic", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kiomega", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpc", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpomega", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpx", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.thetamax", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.thetamin", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.ttheta", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPitchAngleIEC::getPossibleProfilesForClass() const +const std::string& WindContPitchAngleIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPitchAngleIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPitchAngleIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPitchAngleIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPitchAngleIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPitchAngleIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindContPitchAngleIEC(BaseClass*, BaseClass*); @@ -366,41 +398,41 @@ const char* WindContPitchAngleIEC::debugString() const void WindContPitchAngleIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPitchAngleIEC", &WindContPitchAngleIEC_factory); + factory_map.emplace("WindContPitchAngleIEC", &WindContPitchAngleIEC_factory); } void WindContPitchAngleIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPitchAngleIEC.dthetamax", &assign_WindContPitchAngleIEC_dthetamax); - assign_map.emplace("cim:WindContPitchAngleIEC.dthetamin", &assign_WindContPitchAngleIEC_dthetamin); - assign_map.emplace("cim:WindContPitchAngleIEC.kic", &assign_WindContPitchAngleIEC_kic); - assign_map.emplace("cim:WindContPitchAngleIEC.kiomega", &assign_WindContPitchAngleIEC_kiomega); - assign_map.emplace("cim:WindContPitchAngleIEC.kpc", &assign_WindContPitchAngleIEC_kpc); - assign_map.emplace("cim:WindContPitchAngleIEC.kpomega", &assign_WindContPitchAngleIEC_kpomega); - assign_map.emplace("cim:WindContPitchAngleIEC.kpx", &assign_WindContPitchAngleIEC_kpx); - assign_map.emplace("cim:WindContPitchAngleIEC.thetamax", &assign_WindContPitchAngleIEC_thetamax); - assign_map.emplace("cim:WindContPitchAngleIEC.thetamin", &assign_WindContPitchAngleIEC_thetamin); - assign_map.emplace("cim:WindContPitchAngleIEC.ttheta", &assign_WindContPitchAngleIEC_ttheta); + assign_map.emplace("WindContPitchAngleIEC.dthetamax", &assign_WindContPitchAngleIEC_dthetamax); + assign_map.emplace("WindContPitchAngleIEC.dthetamin", &assign_WindContPitchAngleIEC_dthetamin); + assign_map.emplace("WindContPitchAngleIEC.kic", &assign_WindContPitchAngleIEC_kic); + assign_map.emplace("WindContPitchAngleIEC.kiomega", &assign_WindContPitchAngleIEC_kiomega); + assign_map.emplace("WindContPitchAngleIEC.kpc", &assign_WindContPitchAngleIEC_kpc); + assign_map.emplace("WindContPitchAngleIEC.kpomega", &assign_WindContPitchAngleIEC_kpomega); + assign_map.emplace("WindContPitchAngleIEC.kpx", &assign_WindContPitchAngleIEC_kpx); + assign_map.emplace("WindContPitchAngleIEC.thetamax", &assign_WindContPitchAngleIEC_thetamax); + assign_map.emplace("WindContPitchAngleIEC.thetamin", &assign_WindContPitchAngleIEC_thetamin); + assign_map.emplace("WindContPitchAngleIEC.ttheta", &assign_WindContPitchAngleIEC_ttheta); } void WindContPitchAngleIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPitchAngleIEC.WindGenTurbineType3IEC", &assign_WindContPitchAngleIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindContPitchAngleIEC.WindGenTurbineType3IEC", &assign_WindContPitchAngleIEC_WindGenTurbineType3IEC); } void WindContPitchAngleIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPitchAngleIEC.dthetamax", &get_WindContPitchAngleIEC_dthetamax); - get_map.emplace("cim:WindContPitchAngleIEC.dthetamin", &get_WindContPitchAngleIEC_dthetamin); - get_map.emplace("cim:WindContPitchAngleIEC.kic", &get_WindContPitchAngleIEC_kic); - get_map.emplace("cim:WindContPitchAngleIEC.kiomega", &get_WindContPitchAngleIEC_kiomega); - get_map.emplace("cim:WindContPitchAngleIEC.kpc", &get_WindContPitchAngleIEC_kpc); - get_map.emplace("cim:WindContPitchAngleIEC.kpomega", &get_WindContPitchAngleIEC_kpomega); - get_map.emplace("cim:WindContPitchAngleIEC.kpx", &get_WindContPitchAngleIEC_kpx); - get_map.emplace("cim:WindContPitchAngleIEC.thetamax", &get_WindContPitchAngleIEC_thetamax); - get_map.emplace("cim:WindContPitchAngleIEC.thetamin", &get_WindContPitchAngleIEC_thetamin); - get_map.emplace("cim:WindContPitchAngleIEC.ttheta", &get_WindContPitchAngleIEC_ttheta); + get_map.emplace("WindContPitchAngleIEC.dthetamax", &get_WindContPitchAngleIEC_dthetamax); + get_map.emplace("WindContPitchAngleIEC.dthetamin", &get_WindContPitchAngleIEC_dthetamin); + get_map.emplace("WindContPitchAngleIEC.kic", &get_WindContPitchAngleIEC_kic); + get_map.emplace("WindContPitchAngleIEC.kiomega", &get_WindContPitchAngleIEC_kiomega); + get_map.emplace("WindContPitchAngleIEC.kpc", &get_WindContPitchAngleIEC_kpc); + get_map.emplace("WindContPitchAngleIEC.kpomega", &get_WindContPitchAngleIEC_kpomega); + get_map.emplace("WindContPitchAngleIEC.kpx", &get_WindContPitchAngleIEC_kpx); + get_map.emplace("WindContPitchAngleIEC.thetamax", &get_WindContPitchAngleIEC_thetamax); + get_map.emplace("WindContPitchAngleIEC.thetamin", &get_WindContPitchAngleIEC_thetamin); + get_map.emplace("WindContPitchAngleIEC.ttheta", &get_WindContPitchAngleIEC_ttheta); } void WindContPitchAngleIEC::addClassGetFnsToMap(std::map& get_map) const @@ -413,11 +445,25 @@ void WindContPitchAngleIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindContPitchAngleIEC::declare() { return BaseClassDefiner(WindContPitchAngleIEC::addConstructToMap, WindContPitchAngleIEC::addPrimitiveAssignFnsToMap, WindContPitchAngleIEC::addClassAssignFnsToMap, WindContPitchAngleIEC::debugName); } +std::map WindContPitchAngleIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPitchAngleIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindContPitchAngleIEC.hpp b/CGMES_2.4.15_16FEB2016/WindContPitchAngleIEC.hpp index 57dd765dc..9a17e92bb 100644 --- a/CGMES_2.4.15_16FEB2016/WindContPitchAngleIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindContPitchAngleIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -65,8 +66,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -74,7 +82,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPitchAngleIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindContQIEC.cpp b/CGMES_2.4.15_16FEB2016/WindContQIEC.cpp index 2b20f6ee7..84e8dafcf 100644 --- a/CGMES_2.4.15_16FEB2016/WindContQIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindContQIEC.cpp @@ -12,58 +12,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContQIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContQIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqpost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kiq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kiu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kpq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kqv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.qmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.qmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.rdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tiq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tpost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tqord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.udb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.udb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.umax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.umin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.uqdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.uref0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.windLVRTQcontrolModesType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.windQcontrolModesType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.xdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContQIEC::WindContQIEC() : WindTurbineType3or4IEC(nullptr) {} WindContQIEC::~WindContQIEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindContQIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqh1", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqmax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqmin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqpost", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kiq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kiu", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kpq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kpu", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kqv", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.qmax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.qmin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.rdroop", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tiq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tpfilt", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tpost", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tqord", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tufilt", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.udb1", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.udb2", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.umax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.umin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.uqdip", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.uref0", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.windLVRTQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.windQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.xdroop", { CGMESProfile::DY, } }, -}; - -std::list -WindContQIEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindContQIEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindContQIEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindContQIEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindContQIEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindContQIEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContQIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContQIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContQIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3or4IEC_WIndContQIEC(BaseClass*, BaseClass*); @@ -846,71 +878,71 @@ const char* WindContQIEC::debugString() const void WindContQIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContQIEC", &WindContQIEC_factory); + factory_map.emplace("WindContQIEC", &WindContQIEC_factory); } void WindContQIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQIEC.iqh1", &assign_WindContQIEC_iqh1); - assign_map.emplace("cim:WindContQIEC.iqmax", &assign_WindContQIEC_iqmax); - assign_map.emplace("cim:WindContQIEC.iqmin", &assign_WindContQIEC_iqmin); - assign_map.emplace("cim:WindContQIEC.iqpost", &assign_WindContQIEC_iqpost); - assign_map.emplace("cim:WindContQIEC.kiq", &assign_WindContQIEC_kiq); - assign_map.emplace("cim:WindContQIEC.kiu", &assign_WindContQIEC_kiu); - assign_map.emplace("cim:WindContQIEC.kpq", &assign_WindContQIEC_kpq); - assign_map.emplace("cim:WindContQIEC.kpu", &assign_WindContQIEC_kpu); - assign_map.emplace("cim:WindContQIEC.kqv", &assign_WindContQIEC_kqv); - assign_map.emplace("cim:WindContQIEC.qmax", &assign_WindContQIEC_qmax); - assign_map.emplace("cim:WindContQIEC.qmin", &assign_WindContQIEC_qmin); - assign_map.emplace("cim:WindContQIEC.rdroop", &assign_WindContQIEC_rdroop); - assign_map.emplace("cim:WindContQIEC.tiq", &assign_WindContQIEC_tiq); - assign_map.emplace("cim:WindContQIEC.tpfilt", &assign_WindContQIEC_tpfilt); - assign_map.emplace("cim:WindContQIEC.tpost", &assign_WindContQIEC_tpost); - assign_map.emplace("cim:WindContQIEC.tqord", &assign_WindContQIEC_tqord); - assign_map.emplace("cim:WindContQIEC.tufilt", &assign_WindContQIEC_tufilt); - assign_map.emplace("cim:WindContQIEC.udb1", &assign_WindContQIEC_udb1); - assign_map.emplace("cim:WindContQIEC.udb2", &assign_WindContQIEC_udb2); - assign_map.emplace("cim:WindContQIEC.umax", &assign_WindContQIEC_umax); - assign_map.emplace("cim:WindContQIEC.umin", &assign_WindContQIEC_umin); - assign_map.emplace("cim:WindContQIEC.uqdip", &assign_WindContQIEC_uqdip); - assign_map.emplace("cim:WindContQIEC.uref0", &assign_WindContQIEC_uref0); - assign_map.emplace("cim:WindContQIEC.windLVRTQcontrolModesType", &assign_WindContQIEC_windLVRTQcontrolModesType); - assign_map.emplace("cim:WindContQIEC.windQcontrolModesType", &assign_WindContQIEC_windQcontrolModesType); - assign_map.emplace("cim:WindContQIEC.xdroop", &assign_WindContQIEC_xdroop); + assign_map.emplace("WindContQIEC.iqh1", &assign_WindContQIEC_iqh1); + assign_map.emplace("WindContQIEC.iqmax", &assign_WindContQIEC_iqmax); + assign_map.emplace("WindContQIEC.iqmin", &assign_WindContQIEC_iqmin); + assign_map.emplace("WindContQIEC.iqpost", &assign_WindContQIEC_iqpost); + assign_map.emplace("WindContQIEC.kiq", &assign_WindContQIEC_kiq); + assign_map.emplace("WindContQIEC.kiu", &assign_WindContQIEC_kiu); + assign_map.emplace("WindContQIEC.kpq", &assign_WindContQIEC_kpq); + assign_map.emplace("WindContQIEC.kpu", &assign_WindContQIEC_kpu); + assign_map.emplace("WindContQIEC.kqv", &assign_WindContQIEC_kqv); + assign_map.emplace("WindContQIEC.qmax", &assign_WindContQIEC_qmax); + assign_map.emplace("WindContQIEC.qmin", &assign_WindContQIEC_qmin); + assign_map.emplace("WindContQIEC.rdroop", &assign_WindContQIEC_rdroop); + assign_map.emplace("WindContQIEC.tiq", &assign_WindContQIEC_tiq); + assign_map.emplace("WindContQIEC.tpfilt", &assign_WindContQIEC_tpfilt); + assign_map.emplace("WindContQIEC.tpost", &assign_WindContQIEC_tpost); + assign_map.emplace("WindContQIEC.tqord", &assign_WindContQIEC_tqord); + assign_map.emplace("WindContQIEC.tufilt", &assign_WindContQIEC_tufilt); + assign_map.emplace("WindContQIEC.udb1", &assign_WindContQIEC_udb1); + assign_map.emplace("WindContQIEC.udb2", &assign_WindContQIEC_udb2); + assign_map.emplace("WindContQIEC.umax", &assign_WindContQIEC_umax); + assign_map.emplace("WindContQIEC.umin", &assign_WindContQIEC_umin); + assign_map.emplace("WindContQIEC.uqdip", &assign_WindContQIEC_uqdip); + assign_map.emplace("WindContQIEC.uref0", &assign_WindContQIEC_uref0); + assign_map.emplace("WindContQIEC.windLVRTQcontrolModesType", &assign_WindContQIEC_windLVRTQcontrolModesType); + assign_map.emplace("WindContQIEC.windQcontrolModesType", &assign_WindContQIEC_windQcontrolModesType); + assign_map.emplace("WindContQIEC.xdroop", &assign_WindContQIEC_xdroop); } void WindContQIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQIEC.WindTurbineType3or4IEC", &assign_WindContQIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContQIEC.WindTurbineType3or4IEC", &assign_WindContQIEC_WindTurbineType3or4IEC); } void WindContQIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContQIEC.iqh1", &get_WindContQIEC_iqh1); - get_map.emplace("cim:WindContQIEC.iqmax", &get_WindContQIEC_iqmax); - get_map.emplace("cim:WindContQIEC.iqmin", &get_WindContQIEC_iqmin); - get_map.emplace("cim:WindContQIEC.iqpost", &get_WindContQIEC_iqpost); - get_map.emplace("cim:WindContQIEC.kiq", &get_WindContQIEC_kiq); - get_map.emplace("cim:WindContQIEC.kiu", &get_WindContQIEC_kiu); - get_map.emplace("cim:WindContQIEC.kpq", &get_WindContQIEC_kpq); - get_map.emplace("cim:WindContQIEC.kpu", &get_WindContQIEC_kpu); - get_map.emplace("cim:WindContQIEC.kqv", &get_WindContQIEC_kqv); - get_map.emplace("cim:WindContQIEC.qmax", &get_WindContQIEC_qmax); - get_map.emplace("cim:WindContQIEC.qmin", &get_WindContQIEC_qmin); - get_map.emplace("cim:WindContQIEC.rdroop", &get_WindContQIEC_rdroop); - get_map.emplace("cim:WindContQIEC.tiq", &get_WindContQIEC_tiq); - get_map.emplace("cim:WindContQIEC.tpfilt", &get_WindContQIEC_tpfilt); - get_map.emplace("cim:WindContQIEC.tpost", &get_WindContQIEC_tpost); - get_map.emplace("cim:WindContQIEC.tqord", &get_WindContQIEC_tqord); - get_map.emplace("cim:WindContQIEC.tufilt", &get_WindContQIEC_tufilt); - get_map.emplace("cim:WindContQIEC.udb1", &get_WindContQIEC_udb1); - get_map.emplace("cim:WindContQIEC.udb2", &get_WindContQIEC_udb2); - get_map.emplace("cim:WindContQIEC.umax", &get_WindContQIEC_umax); - get_map.emplace("cim:WindContQIEC.umin", &get_WindContQIEC_umin); - get_map.emplace("cim:WindContQIEC.uqdip", &get_WindContQIEC_uqdip); - get_map.emplace("cim:WindContQIEC.uref0", &get_WindContQIEC_uref0); - get_map.emplace("cim:WindContQIEC.xdroop", &get_WindContQIEC_xdroop); + get_map.emplace("WindContQIEC.iqh1", &get_WindContQIEC_iqh1); + get_map.emplace("WindContQIEC.iqmax", &get_WindContQIEC_iqmax); + get_map.emplace("WindContQIEC.iqmin", &get_WindContQIEC_iqmin); + get_map.emplace("WindContQIEC.iqpost", &get_WindContQIEC_iqpost); + get_map.emplace("WindContQIEC.kiq", &get_WindContQIEC_kiq); + get_map.emplace("WindContQIEC.kiu", &get_WindContQIEC_kiu); + get_map.emplace("WindContQIEC.kpq", &get_WindContQIEC_kpq); + get_map.emplace("WindContQIEC.kpu", &get_WindContQIEC_kpu); + get_map.emplace("WindContQIEC.kqv", &get_WindContQIEC_kqv); + get_map.emplace("WindContQIEC.qmax", &get_WindContQIEC_qmax); + get_map.emplace("WindContQIEC.qmin", &get_WindContQIEC_qmin); + get_map.emplace("WindContQIEC.rdroop", &get_WindContQIEC_rdroop); + get_map.emplace("WindContQIEC.tiq", &get_WindContQIEC_tiq); + get_map.emplace("WindContQIEC.tpfilt", &get_WindContQIEC_tpfilt); + get_map.emplace("WindContQIEC.tpost", &get_WindContQIEC_tpost); + get_map.emplace("WindContQIEC.tqord", &get_WindContQIEC_tqord); + get_map.emplace("WindContQIEC.tufilt", &get_WindContQIEC_tufilt); + get_map.emplace("WindContQIEC.udb1", &get_WindContQIEC_udb1); + get_map.emplace("WindContQIEC.udb2", &get_WindContQIEC_udb2); + get_map.emplace("WindContQIEC.umax", &get_WindContQIEC_umax); + get_map.emplace("WindContQIEC.umin", &get_WindContQIEC_umin); + get_map.emplace("WindContQIEC.uqdip", &get_WindContQIEC_uqdip); + get_map.emplace("WindContQIEC.uref0", &get_WindContQIEC_uref0); + get_map.emplace("WindContQIEC.xdroop", &get_WindContQIEC_xdroop); } void WindContQIEC::addClassGetFnsToMap(std::map& get_map) const @@ -921,8 +953,14 @@ void WindContQIEC::addClassGetFnsToMap(std::map void WindContQIEC::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindContQIEC.windLVRTQcontrolModesType", &get_WindContQIEC_windLVRTQcontrolModesType); - get_map.emplace("cim:WindContQIEC.windQcontrolModesType", &get_WindContQIEC_windQcontrolModesType); + get_map.emplace("WindContQIEC.windLVRTQcontrolModesType", &get_WindContQIEC_windLVRTQcontrolModesType); + get_map.emplace("WindContQIEC.windQcontrolModesType", &get_WindContQIEC_windQcontrolModesType); +} + +bool WindContQIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContQIEC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindContQIEC::declare() @@ -930,6 +968,14 @@ const BaseClassDefiner WindContQIEC::declare() return BaseClassDefiner(WindContQIEC::addConstructToMap, WindContQIEC::addPrimitiveAssignFnsToMap, WindContQIEC::addClassAssignFnsToMap, WindContQIEC::debugName); } +std::map WindContQIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContQIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindContQIEC.hpp b/CGMES_2.4.15_16FEB2016/WindContQIEC.hpp index 024e73ccd..c9bf74258 100644 --- a/CGMES_2.4.15_16FEB2016/WindContQIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindContQIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "WindLVRTQcontrolModesKind.hpp" @@ -113,8 +114,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -122,7 +130,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContQIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindContRotorRIEC.cpp b/CGMES_2.4.15_16FEB2016/WindContRotorRIEC.cpp index 67c95d633..0ab35767e 100644 --- a/CGMES_2.4.15_16FEB2016/WindContRotorRIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindContRotorRIEC.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContRotorRIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContRotorRIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.WindGenTurbineType2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kirr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.komegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kprr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.rmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.rmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.tomegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContRotorRIEC::WindContRotorRIEC() : WindGenTurbineType2IEC(nullptr) {} WindContRotorRIEC::~WindContRotorRIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContRotorRIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContRotorRIEC::getClassNamespaceUrl() const { - { "cim:WindContRotorRIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.WindGenTurbineType2IEC", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kirr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.komegafilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kpfilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kprr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.rmax", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.rmin", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.tomegafilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.tpfilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContRotorRIEC::getPossibleProfilesForClass() const +const std::string& WindContRotorRIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContRotorRIEC::getPossibleProfilesForAttributes() const +const std::list& WindContRotorRIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContRotorRIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContRotorRIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContRotorRIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContRotorRIEC(BaseClass*, BaseClass*); @@ -326,38 +358,38 @@ const char* WindContRotorRIEC::debugString() const void WindContRotorRIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContRotorRIEC", &WindContRotorRIEC_factory); + factory_map.emplace("WindContRotorRIEC", &WindContRotorRIEC_factory); } void WindContRotorRIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContRotorRIEC.kirr", &assign_WindContRotorRIEC_kirr); - assign_map.emplace("cim:WindContRotorRIEC.komegafilt", &assign_WindContRotorRIEC_komegafilt); - assign_map.emplace("cim:WindContRotorRIEC.kpfilt", &assign_WindContRotorRIEC_kpfilt); - assign_map.emplace("cim:WindContRotorRIEC.kprr", &assign_WindContRotorRIEC_kprr); - assign_map.emplace("cim:WindContRotorRIEC.rmax", &assign_WindContRotorRIEC_rmax); - assign_map.emplace("cim:WindContRotorRIEC.rmin", &assign_WindContRotorRIEC_rmin); - assign_map.emplace("cim:WindContRotorRIEC.tomegafilt", &assign_WindContRotorRIEC_tomegafilt); - assign_map.emplace("cim:WindContRotorRIEC.tpfilt", &assign_WindContRotorRIEC_tpfilt); + assign_map.emplace("WindContRotorRIEC.kirr", &assign_WindContRotorRIEC_kirr); + assign_map.emplace("WindContRotorRIEC.komegafilt", &assign_WindContRotorRIEC_komegafilt); + assign_map.emplace("WindContRotorRIEC.kpfilt", &assign_WindContRotorRIEC_kpfilt); + assign_map.emplace("WindContRotorRIEC.kprr", &assign_WindContRotorRIEC_kprr); + assign_map.emplace("WindContRotorRIEC.rmax", &assign_WindContRotorRIEC_rmax); + assign_map.emplace("WindContRotorRIEC.rmin", &assign_WindContRotorRIEC_rmin); + assign_map.emplace("WindContRotorRIEC.tomegafilt", &assign_WindContRotorRIEC_tomegafilt); + assign_map.emplace("WindContRotorRIEC.tpfilt", &assign_WindContRotorRIEC_tpfilt); } void WindContRotorRIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContRotorRIEC.WindDynamicsLookupTable", &assign_WindContRotorRIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContRotorRIEC.WindGenTurbineType2IEC", &assign_WindContRotorRIEC_WindGenTurbineType2IEC); + assign_map.emplace("WindContRotorRIEC.WindDynamicsLookupTable", &assign_WindContRotorRIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContRotorRIEC.WindGenTurbineType2IEC", &assign_WindContRotorRIEC_WindGenTurbineType2IEC); } void WindContRotorRIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContRotorRIEC.kirr", &get_WindContRotorRIEC_kirr); - get_map.emplace("cim:WindContRotorRIEC.komegafilt", &get_WindContRotorRIEC_komegafilt); - get_map.emplace("cim:WindContRotorRIEC.kpfilt", &get_WindContRotorRIEC_kpfilt); - get_map.emplace("cim:WindContRotorRIEC.kprr", &get_WindContRotorRIEC_kprr); - get_map.emplace("cim:WindContRotorRIEC.rmax", &get_WindContRotorRIEC_rmax); - get_map.emplace("cim:WindContRotorRIEC.rmin", &get_WindContRotorRIEC_rmin); - get_map.emplace("cim:WindContRotorRIEC.tomegafilt", &get_WindContRotorRIEC_tomegafilt); - get_map.emplace("cim:WindContRotorRIEC.tpfilt", &get_WindContRotorRIEC_tpfilt); + get_map.emplace("WindContRotorRIEC.kirr", &get_WindContRotorRIEC_kirr); + get_map.emplace("WindContRotorRIEC.komegafilt", &get_WindContRotorRIEC_komegafilt); + get_map.emplace("WindContRotorRIEC.kpfilt", &get_WindContRotorRIEC_kpfilt); + get_map.emplace("WindContRotorRIEC.kprr", &get_WindContRotorRIEC_kprr); + get_map.emplace("WindContRotorRIEC.rmax", &get_WindContRotorRIEC_rmax); + get_map.emplace("WindContRotorRIEC.rmin", &get_WindContRotorRIEC_rmin); + get_map.emplace("WindContRotorRIEC.tomegafilt", &get_WindContRotorRIEC_tomegafilt); + get_map.emplace("WindContRotorRIEC.tpfilt", &get_WindContRotorRIEC_tpfilt); } void WindContRotorRIEC::addClassGetFnsToMap(std::map& get_map) const @@ -370,11 +402,25 @@ void WindContRotorRIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContRotorRIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContRotorRIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContRotorRIEC::declare() { return BaseClassDefiner(WindContRotorRIEC::addConstructToMap, WindContRotorRIEC::addPrimitiveAssignFnsToMap, WindContRotorRIEC::addClassAssignFnsToMap, WindContRotorRIEC::debugName); } +std::map WindContRotorRIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContRotorRIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindContRotorRIEC.hpp b/CGMES_2.4.15_16FEB2016/WindContRotorRIEC.hpp index 50c215acb..f8e2d5159 100644 --- a/CGMES_2.4.15_16FEB2016/WindContRotorRIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindContRotorRIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContRotorRIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindDynamicsLookupTable.cpp b/CGMES_2.4.15_16FEB2016/WindDynamicsLookupTable.cpp index e88345af5..ee3945b8e 100644 --- a/CGMES_2.4.15_16FEB2016/WindDynamicsLookupTable.cpp +++ b/CGMES_2.4.15_16FEB2016/WindDynamicsLookupTable.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindDynamicsLookupTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindDynamicsLookupTable.WindContCurrLimIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContPType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContRotorRIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.input", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.lookupTableFunctionType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.output", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.sequence", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindDynamicsLookupTable::WindDynamicsLookupTable() : WindContCurrLimIEC(nullptr), WindContPType3IEC(nullptr), WindContRotorRIEC(nullptr), WindPlantFreqPcontrolIEC(nullptr) {} WindDynamicsLookupTable::~WindDynamicsLookupTable() {} -static const std::list PossibleProfilesForClass = +const std::list& WindDynamicsLookupTable::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindDynamicsLookupTable::getClassNamespaceUrl() const { - { "cim:WindDynamicsLookupTable.WindContCurrLimIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContPType3IEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContRotorRIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.input", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.lookupTableFunctionType", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.output", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.sequence", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindDynamicsLookupTable::getPossibleProfilesForClass() const +const std::string& WindDynamicsLookupTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindDynamicsLookupTable::getPossibleProfilesForAttributes() const +const std::list& WindDynamicsLookupTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindDynamicsLookupTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindDynamicsLookupTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindDynamicsLookupTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContCurrLimIEC_WindDynamicsLookupTable(BaseClass*, BaseClass*); @@ -298,46 +330,52 @@ const char* WindDynamicsLookupTable::debugString() const void WindDynamicsLookupTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindDynamicsLookupTable", &WindDynamicsLookupTable_factory); + factory_map.emplace("WindDynamicsLookupTable", &WindDynamicsLookupTable_factory); } void WindDynamicsLookupTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindDynamicsLookupTable.input", &assign_WindDynamicsLookupTable_input); - assign_map.emplace("cim:WindDynamicsLookupTable.lookupTableFunctionType", &assign_WindDynamicsLookupTable_lookupTableFunctionType); - assign_map.emplace("cim:WindDynamicsLookupTable.output", &assign_WindDynamicsLookupTable_output); - assign_map.emplace("cim:WindDynamicsLookupTable.sequence", &assign_WindDynamicsLookupTable_sequence); + assign_map.emplace("WindDynamicsLookupTable.input", &assign_WindDynamicsLookupTable_input); + assign_map.emplace("WindDynamicsLookupTable.lookupTableFunctionType", &assign_WindDynamicsLookupTable_lookupTableFunctionType); + assign_map.emplace("WindDynamicsLookupTable.output", &assign_WindDynamicsLookupTable_output); + assign_map.emplace("WindDynamicsLookupTable.sequence", &assign_WindDynamicsLookupTable_sequence); } void WindDynamicsLookupTable::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindDynamicsLookupTable.WindContCurrLimIEC", &assign_WindDynamicsLookupTable_WindContCurrLimIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContPType3IEC", &assign_WindDynamicsLookupTable_WindContPType3IEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContRotorRIEC", &assign_WindDynamicsLookupTable_WindContRotorRIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContCurrLimIEC", &assign_WindDynamicsLookupTable_WindContCurrLimIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContPType3IEC", &assign_WindDynamicsLookupTable_WindContPType3IEC); + assign_map.emplace("WindDynamicsLookupTable.WindContRotorRIEC", &assign_WindDynamicsLookupTable_WindContRotorRIEC); + assign_map.emplace("WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); } void WindDynamicsLookupTable::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.input", &get_WindDynamicsLookupTable_input); - get_map.emplace("cim:WindDynamicsLookupTable.output", &get_WindDynamicsLookupTable_output); - get_map.emplace("cim:WindDynamicsLookupTable.sequence", &get_WindDynamicsLookupTable_sequence); + get_map.emplace("WindDynamicsLookupTable.input", &get_WindDynamicsLookupTable_input); + get_map.emplace("WindDynamicsLookupTable.output", &get_WindDynamicsLookupTable_output); + get_map.emplace("WindDynamicsLookupTable.sequence", &get_WindDynamicsLookupTable_sequence); } void WindDynamicsLookupTable::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.WindContCurrLimIEC", &get_WindDynamicsLookupTable_WindContCurrLimIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContPType3IEC", &get_WindDynamicsLookupTable_WindContPType3IEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContRotorRIEC", &get_WindDynamicsLookupTable_WindContRotorRIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &get_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); + get_map.emplace("WindDynamicsLookupTable.WindContCurrLimIEC", &get_WindDynamicsLookupTable_WindContCurrLimIEC); + get_map.emplace("WindDynamicsLookupTable.WindContPType3IEC", &get_WindDynamicsLookupTable_WindContPType3IEC); + get_map.emplace("WindDynamicsLookupTable.WindContRotorRIEC", &get_WindDynamicsLookupTable_WindContRotorRIEC); + get_map.emplace("WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &get_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); } void WindDynamicsLookupTable::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.lookupTableFunctionType", &get_WindDynamicsLookupTable_lookupTableFunctionType); + get_map.emplace("WindDynamicsLookupTable.lookupTableFunctionType", &get_WindDynamicsLookupTable_lookupTableFunctionType); +} + +bool WindDynamicsLookupTable::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindDynamicsLookupTable" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindDynamicsLookupTable::declare() @@ -345,6 +383,14 @@ const BaseClassDefiner WindDynamicsLookupTable::declare() return BaseClassDefiner(WindDynamicsLookupTable::addConstructToMap, WindDynamicsLookupTable::addPrimitiveAssignFnsToMap, WindDynamicsLookupTable::addClassAssignFnsToMap, WindDynamicsLookupTable::debugName); } +std::map WindDynamicsLookupTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindDynamicsLookupTable_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindDynamicsLookupTable.hpp b/CGMES_2.4.15_16FEB2016/WindDynamicsLookupTable.hpp index 06d99ff11..71230cd72 100644 --- a/CGMES_2.4.15_16FEB2016/WindDynamicsLookupTable.hpp +++ b/CGMES_2.4.15_16FEB2016/WindDynamicsLookupTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" #include "WindLookupTableFunctionKind.hpp" @@ -58,8 +59,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -67,7 +75,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindDynamicsLookupTable_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType1IEC.cpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType1IEC.cpp index 3b78fca73..dde7510e8 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType1IEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType1IEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType1IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType1IEC.WindAeroConstIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType1IEC::WindGenTurbineType1IEC() : WindAeroConstIEC(nullptr) {} WindGenTurbineType1IEC::~WindGenTurbineType1IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType1IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType1IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType1IEC.WindAeroConstIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType1IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType1IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType1IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType1IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType1IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType1IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType1IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindAeroConstIEC_WindGenTurbineType1IEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindGenTurbineType1IEC::debugString() const void WindGenTurbineType1IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType1IEC", &WindGenTurbineType1IEC_factory); + factory_map.emplace("WindGenTurbineType1IEC", &WindGenTurbineType1IEC_factory); } void WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType1IEC.WindAeroConstIEC", &assign_WindGenTurbineType1IEC_WindAeroConstIEC); + assign_map.emplace("WindGenTurbineType1IEC.WindAeroConstIEC", &assign_WindGenTurbineType1IEC_WindAeroConstIEC); } void WindGenTurbineType1IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindGenTurbineType1IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType1IEC.WindAeroConstIEC", &get_WindGenTurbineType1IEC_WindAeroConstIEC); + get_map.emplace("WindGenTurbineType1IEC.WindAeroConstIEC", &get_WindGenTurbineType1IEC_WindAeroConstIEC); } void WindGenTurbineType1IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindGenTurbineType1IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType1IEC::declare() { return BaseClassDefiner(WindGenTurbineType1IEC::addConstructToMap, WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType1IEC::addClassAssignFnsToMap, WindGenTurbineType1IEC::debugName); } +std::map WindGenTurbineType1IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType1IEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType1IEC.hpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType1IEC.hpp index d4e30e4cc..c469ff6f2 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType1IEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType1IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType1IEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType2IEC.cpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType2IEC.cpp index 145486473..f9a53cf20 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType2IEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType2IEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType2IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType2IEC.WindContRotorRIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType2IEC.WindPitchContEmulIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType2IEC::WindGenTurbineType2IEC() : WindContRotorRIEC(nullptr), WindPitchContEmulIEC(nullptr) {} WindGenTurbineType2IEC::~WindGenTurbineType2IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType2IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType2IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType2IEC.WindContRotorRIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType2IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType2IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType2IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType2IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType2IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType2IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType2IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContRotorRIEC_WindGenTurbineType2IEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindGenTurbineType2IEC::debugString() const void WindGenTurbineType2IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType2IEC", &WindGenTurbineType2IEC_factory); + factory_map.emplace("WindGenTurbineType2IEC", &WindGenTurbineType2IEC_factory); } void WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType2IEC.WindContRotorRIEC", &assign_WindGenTurbineType2IEC_WindContRotorRIEC); - assign_map.emplace("cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", &assign_WindGenTurbineType2IEC_WindPitchContEmulIEC); + assign_map.emplace("WindGenTurbineType2IEC.WindContRotorRIEC", &assign_WindGenTurbineType2IEC_WindContRotorRIEC); + assign_map.emplace("WindGenTurbineType2IEC.WindPitchContEmulIEC", &assign_WindGenTurbineType2IEC_WindPitchContEmulIEC); } void WindGenTurbineType2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindGenTurbineType2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType2IEC.WindContRotorRIEC", &get_WindGenTurbineType2IEC_WindContRotorRIEC); - get_map.emplace("cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", &get_WindGenTurbineType2IEC_WindPitchContEmulIEC); + get_map.emplace("WindGenTurbineType2IEC.WindContRotorRIEC", &get_WindGenTurbineType2IEC_WindContRotorRIEC); + get_map.emplace("WindGenTurbineType2IEC.WindPitchContEmulIEC", &get_WindGenTurbineType2IEC_WindPitchContEmulIEC); } void WindGenTurbineType2IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindGenTurbineType2IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType2IEC::declare() { return BaseClassDefiner(WindGenTurbineType2IEC::addConstructToMap, WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType2IEC::addClassAssignFnsToMap, WindGenTurbineType2IEC::debugName); } +std::map WindGenTurbineType2IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType2IEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType2IEC.hpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType2IEC.hpp index 435504800..0a5c2d6ae 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType2IEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType2IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType2IEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3IEC.cpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3IEC.cpp index 06d7e4bf4..da9ae19ad 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3IEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3IEC.cpp @@ -15,37 +15,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3IEC.WindAeroLinearIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindContPType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindContPitchAngleIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.dipmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.diqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3IEC::WindGenTurbineType3IEC() : WindAeroLinearIEC(nullptr), WindContPType3IEC(nullptr), WindContPitchAngleIEC(nullptr), WindMechIEC(nullptr) {} WindGenTurbineType3IEC::~WindGenTurbineType3IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3IEC.WindAeroLinearIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindContPType3IEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindMechIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.dipmax", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.diqmax", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindAeroLinearIEC_WindGenTurbineType3IEC(BaseClass*, BaseClass*); @@ -238,37 +270,37 @@ const char* WindGenTurbineType3IEC::debugString() const void WindGenTurbineType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3IEC", &WindGenTurbineType3IEC_factory); + factory_map.emplace("WindGenTurbineType3IEC", &WindGenTurbineType3IEC_factory); } void WindGenTurbineType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3IEC.dipmax", &assign_WindGenTurbineType3IEC_dipmax); - assign_map.emplace("cim:WindGenTurbineType3IEC.diqmax", &assign_WindGenTurbineType3IEC_diqmax); + assign_map.emplace("WindGenTurbineType3IEC.dipmax", &assign_WindGenTurbineType3IEC_dipmax); + assign_map.emplace("WindGenTurbineType3IEC.diqmax", &assign_WindGenTurbineType3IEC_diqmax); } void WindGenTurbineType3IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3IEC.WindAeroLinearIEC", &assign_WindGenTurbineType3IEC_WindAeroLinearIEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindContPType3IEC", &assign_WindGenTurbineType3IEC_WindContPType3IEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", &assign_WindGenTurbineType3IEC_WindContPitchAngleIEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindMechIEC", &assign_WindGenTurbineType3IEC_WindMechIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindAeroLinearIEC", &assign_WindGenTurbineType3IEC_WindAeroLinearIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindContPType3IEC", &assign_WindGenTurbineType3IEC_WindContPType3IEC); + assign_map.emplace("WindGenTurbineType3IEC.WindContPitchAngleIEC", &assign_WindGenTurbineType3IEC_WindContPitchAngleIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindMechIEC", &assign_WindGenTurbineType3IEC_WindMechIEC); } void WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3IEC.dipmax", &get_WindGenTurbineType3IEC_dipmax); - get_map.emplace("cim:WindGenTurbineType3IEC.diqmax", &get_WindGenTurbineType3IEC_diqmax); + get_map.emplace("WindGenTurbineType3IEC.dipmax", &get_WindGenTurbineType3IEC_dipmax); + get_map.emplace("WindGenTurbineType3IEC.diqmax", &get_WindGenTurbineType3IEC_diqmax); } void WindGenTurbineType3IEC::addClassGetFnsToMap(std::map& get_map) const { WindTurbineType3or4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3IEC.WindAeroLinearIEC", &get_WindGenTurbineType3IEC_WindAeroLinearIEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindContPType3IEC", &get_WindGenTurbineType3IEC_WindContPType3IEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", &get_WindGenTurbineType3IEC_WindContPitchAngleIEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindMechIEC", &get_WindGenTurbineType3IEC_WindMechIEC); + get_map.emplace("WindGenTurbineType3IEC.WindAeroLinearIEC", &get_WindGenTurbineType3IEC_WindAeroLinearIEC); + get_map.emplace("WindGenTurbineType3IEC.WindContPType3IEC", &get_WindGenTurbineType3IEC_WindContPType3IEC); + get_map.emplace("WindGenTurbineType3IEC.WindContPitchAngleIEC", &get_WindGenTurbineType3IEC_WindContPitchAngleIEC); + get_map.emplace("WindGenTurbineType3IEC.WindMechIEC", &get_WindGenTurbineType3IEC_WindMechIEC); } void WindGenTurbineType3IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -276,11 +308,25 @@ void WindGenTurbineType3IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3IEC::declare() { return BaseClassDefiner(WindGenTurbineType3IEC::addConstructToMap, WindGenTurbineType3IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3IEC::addClassAssignFnsToMap, WindGenTurbineType3IEC::debugName); } +std::map WindGenTurbineType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3IEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3IEC.hpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3IEC.hpp index f51005682..d3c7402cb 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3IEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3IEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3aIEC.cpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3aIEC.cpp index e72c76ed4..8056b7497 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3aIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3aIEC.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3aIEC.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3aIEC.tic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3aIEC.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3aIEC::WindGenTurbineType3aIEC() {} WindGenTurbineType3aIEC::~WindGenTurbineType3aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3aIEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3aIEC.kpc", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3aIEC.tic", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3aIEC.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3aIEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3aIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenTurbineType3IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3aIEC_kpc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* WindGenTurbineType3aIEC::debugString() const void WindGenTurbineType3aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3aIEC", &WindGenTurbineType3aIEC_factory); + factory_map.emplace("WindGenTurbineType3aIEC", &WindGenTurbineType3aIEC_factory); } void WindGenTurbineType3aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3aIEC.kpc", &assign_WindGenTurbineType3aIEC_kpc); - assign_map.emplace("cim:WindGenTurbineType3aIEC.tic", &assign_WindGenTurbineType3aIEC_tic); - assign_map.emplace("cim:WindGenTurbineType3aIEC.xs", &assign_WindGenTurbineType3aIEC_xs); + assign_map.emplace("WindGenTurbineType3aIEC.kpc", &assign_WindGenTurbineType3aIEC_kpc); + assign_map.emplace("WindGenTurbineType3aIEC.tic", &assign_WindGenTurbineType3aIEC_tic); + assign_map.emplace("WindGenTurbineType3aIEC.xs", &assign_WindGenTurbineType3aIEC_xs); } void WindGenTurbineType3aIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void WindGenTurbineType3aIEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3aIEC.kpc", &get_WindGenTurbineType3aIEC_kpc); - get_map.emplace("cim:WindGenTurbineType3aIEC.tic", &get_WindGenTurbineType3aIEC_tic); - get_map.emplace("cim:WindGenTurbineType3aIEC.xs", &get_WindGenTurbineType3aIEC_xs); + get_map.emplace("WindGenTurbineType3aIEC.kpc", &get_WindGenTurbineType3aIEC_kpc); + get_map.emplace("WindGenTurbineType3aIEC.tic", &get_WindGenTurbineType3aIEC_tic); + get_map.emplace("WindGenTurbineType3aIEC.xs", &get_WindGenTurbineType3aIEC_xs); } void WindGenTurbineType3aIEC::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void WindGenTurbineType3aIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3aIEC::declare() { return BaseClassDefiner(WindGenTurbineType3aIEC::addConstructToMap, WindGenTurbineType3aIEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3aIEC::addClassAssignFnsToMap, WindGenTurbineType3aIEC::debugName); } +std::map WindGenTurbineType3aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenTurbineType3IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3aIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3aIEC.hpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3aIEC.hpp index 027ac9e1b..328515783 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3aIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenTurbineType3IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3aIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3bIEC.cpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3bIEC.cpp index bd7b7fba3..72cbd0d02 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3bIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3bIEC.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3bIEC.fducw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.mwtcwp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.two", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3bIEC::WindGenTurbineType3bIEC() {} WindGenTurbineType3bIEC::~WindGenTurbineType3bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3bIEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3bIEC.fducw", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.mwtcwp", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.tg", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.two", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3bIEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3bIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenTurbineType3IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3bIEC_fducw(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* WindGenTurbineType3bIEC::debugString() const void WindGenTurbineType3bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3bIEC", &WindGenTurbineType3bIEC_factory); + factory_map.emplace("WindGenTurbineType3bIEC", &WindGenTurbineType3bIEC_factory); } void WindGenTurbineType3bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3bIEC.fducw", &assign_WindGenTurbineType3bIEC_fducw); - assign_map.emplace("cim:WindGenTurbineType3bIEC.mwtcwp", &assign_WindGenTurbineType3bIEC_mwtcwp); - assign_map.emplace("cim:WindGenTurbineType3bIEC.tg", &assign_WindGenTurbineType3bIEC_tg); - assign_map.emplace("cim:WindGenTurbineType3bIEC.two", &assign_WindGenTurbineType3bIEC_two); - assign_map.emplace("cim:WindGenTurbineType3bIEC.xs", &assign_WindGenTurbineType3bIEC_xs); + assign_map.emplace("WindGenTurbineType3bIEC.fducw", &assign_WindGenTurbineType3bIEC_fducw); + assign_map.emplace("WindGenTurbineType3bIEC.mwtcwp", &assign_WindGenTurbineType3bIEC_mwtcwp); + assign_map.emplace("WindGenTurbineType3bIEC.tg", &assign_WindGenTurbineType3bIEC_tg); + assign_map.emplace("WindGenTurbineType3bIEC.two", &assign_WindGenTurbineType3bIEC_two); + assign_map.emplace("WindGenTurbineType3bIEC.xs", &assign_WindGenTurbineType3bIEC_xs); } void WindGenTurbineType3bIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void WindGenTurbineType3bIEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3bIEC.fducw", &get_WindGenTurbineType3bIEC_fducw); - get_map.emplace("cim:WindGenTurbineType3bIEC.mwtcwp", &get_WindGenTurbineType3bIEC_mwtcwp); - get_map.emplace("cim:WindGenTurbineType3bIEC.tg", &get_WindGenTurbineType3bIEC_tg); - get_map.emplace("cim:WindGenTurbineType3bIEC.two", &get_WindGenTurbineType3bIEC_two); - get_map.emplace("cim:WindGenTurbineType3bIEC.xs", &get_WindGenTurbineType3bIEC_xs); + get_map.emplace("WindGenTurbineType3bIEC.fducw", &get_WindGenTurbineType3bIEC_fducw); + get_map.emplace("WindGenTurbineType3bIEC.mwtcwp", &get_WindGenTurbineType3bIEC_mwtcwp); + get_map.emplace("WindGenTurbineType3bIEC.tg", &get_WindGenTurbineType3bIEC_tg); + get_map.emplace("WindGenTurbineType3bIEC.two", &get_WindGenTurbineType3bIEC_two); + get_map.emplace("WindGenTurbineType3bIEC.xs", &get_WindGenTurbineType3bIEC_xs); } void WindGenTurbineType3bIEC::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void WindGenTurbineType3bIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3bIEC::declare() { return BaseClassDefiner(WindGenTurbineType3bIEC::addConstructToMap, WindGenTurbineType3bIEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3bIEC::addClassAssignFnsToMap, WindGenTurbineType3bIEC::debugName); } +std::map WindGenTurbineType3bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenTurbineType3IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3bIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3bIEC.hpp b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3bIEC.hpp index 37a684772..1b188e7bd 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenTurbineType3bIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindGenTurbineType3bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenTurbineType3IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3bIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindGenType4IEC.cpp b/CGMES_2.4.15_16FEB2016/WindGenType4IEC.cpp index 103b066bf..241babd14 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenType4IEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindGenType4IEC.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenType4IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenType4IEC.dipmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.diqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.diqmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenType4IEC::WindGenType4IEC() {} WindGenType4IEC::~WindGenType4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenType4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenType4IEC::getClassNamespaceUrl() const { - { "cim:WindGenType4IEC.dipmax", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.diqmax", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.diqmin", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.tg", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenType4IEC::getPossibleProfilesForClass() const +const std::string& WindGenType4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenType4IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenType4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenType4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenType4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenType4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenType4IEC_dipmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* WindGenType4IEC::debugString() const void WindGenType4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenType4IEC", &WindGenType4IEC_factory); + factory_map.emplace("WindGenType4IEC", &WindGenType4IEC_factory); } void WindGenType4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType4IEC.dipmax", &assign_WindGenType4IEC_dipmax); - assign_map.emplace("cim:WindGenType4IEC.diqmax", &assign_WindGenType4IEC_diqmax); - assign_map.emplace("cim:WindGenType4IEC.diqmin", &assign_WindGenType4IEC_diqmin); - assign_map.emplace("cim:WindGenType4IEC.tg", &assign_WindGenType4IEC_tg); + assign_map.emplace("WindGenType4IEC.dipmax", &assign_WindGenType4IEC_dipmax); + assign_map.emplace("WindGenType4IEC.diqmax", &assign_WindGenType4IEC_diqmax); + assign_map.emplace("WindGenType4IEC.diqmin", &assign_WindGenType4IEC_diqmin); + assign_map.emplace("WindGenType4IEC.tg", &assign_WindGenType4IEC_tg); } void WindGenType4IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void WindGenType4IEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenType4IEC.dipmax", &get_WindGenType4IEC_dipmax); - get_map.emplace("cim:WindGenType4IEC.diqmax", &get_WindGenType4IEC_diqmax); - get_map.emplace("cim:WindGenType4IEC.diqmin", &get_WindGenType4IEC_diqmin); - get_map.emplace("cim:WindGenType4IEC.tg", &get_WindGenType4IEC_tg); + get_map.emplace("WindGenType4IEC.dipmax", &get_WindGenType4IEC_dipmax); + get_map.emplace("WindGenType4IEC.diqmax", &get_WindGenType4IEC_diqmax); + get_map.emplace("WindGenType4IEC.diqmin", &get_WindGenType4IEC_diqmin); + get_map.emplace("WindGenType4IEC.tg", &get_WindGenType4IEC_tg); } void WindGenType4IEC::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void WindGenType4IEC::addEnumGetFnsToMap(std::map& ge WindTurbineType3or4IEC::addEnumGetFnsToMap(get_map); } +bool WindGenType4IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGenType4IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindGenType4IEC::declare() { return BaseClassDefiner(WindGenType4IEC::addConstructToMap, WindGenType4IEC::addPrimitiveAssignFnsToMap, WindGenType4IEC::addClassAssignFnsToMap, WindGenType4IEC::debugName); } +std::map WindGenType4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenType4IEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindGenType4IEC.hpp b/CGMES_2.4.15_16FEB2016/WindGenType4IEC.hpp index f76748389..7692b857f 100644 --- a/CGMES_2.4.15_16FEB2016/WindGenType4IEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindGenType4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenType4IEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindGeneratingUnit.cpp b/CGMES_2.4.15_16FEB2016/WindGeneratingUnit.cpp index d2764afc7..b9e3c8117 100644 --- a/CGMES_2.4.15_16FEB2016/WindGeneratingUnit.cpp +++ b/CGMES_2.4.15_16FEB2016/WindGeneratingUnit.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGeneratingUnit.windGenUnitType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + WindGeneratingUnit::WindGeneratingUnit() {} WindGeneratingUnit::~WindGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGeneratingUnit::getClassNamespaceUrl() const { - { "cim:WindGeneratingUnit.windGenUnitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGeneratingUnit::getPossibleProfilesForClass() const +const std::string& WindGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& WindGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGeneratingUnit_windGenUnitType(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* WindGeneratingUnit::debugString() const void WindGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGeneratingUnit", &WindGeneratingUnit_factory); + factory_map.emplace("WindGeneratingUnit", &WindGeneratingUnit_factory); } void WindGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGeneratingUnit.windGenUnitType", &assign_WindGeneratingUnit_windGenUnitType); + assign_map.emplace("WindGeneratingUnit.windGenUnitType", &assign_WindGeneratingUnit_windGenUnitType); } void WindGeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -102,7 +134,13 @@ void WindGeneratingUnit::addClassGetFnsToMap(std::map& get_map) const { GeneratingUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindGeneratingUnit.windGenUnitType", &get_WindGeneratingUnit_windGenUnitType); + get_map.emplace("WindGeneratingUnit.windGenUnitType", &get_WindGeneratingUnit_windGenUnitType); +} + +bool WindGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindGeneratingUnit::declare() @@ -110,6 +148,14 @@ const BaseClassDefiner WindGeneratingUnit::declare() return BaseClassDefiner(WindGeneratingUnit::addConstructToMap, WindGeneratingUnit::addPrimitiveAssignFnsToMap, WindGeneratingUnit::addClassAssignFnsToMap, WindGeneratingUnit::debugName); } +std::map WindGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGeneratingUnit_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindGeneratingUnit.hpp b/CGMES_2.4.15_16FEB2016/WindGeneratingUnit.hpp index d6f2ffd7f..c69fb48e7 100644 --- a/CGMES_2.4.15_16FEB2016/WindGeneratingUnit.hpp +++ b/CGMES_2.4.15_16FEB2016/WindGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "WindGenUnitKind.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindMechIEC.cpp b/CGMES_2.4.15_16FEB2016/WindMechIEC.cpp index 358889264..7cf7cdaae 100644 --- a/CGMES_2.4.15_16FEB2016/WindMechIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindMechIEC.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindMechIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindMechIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.WindTurbineType1or2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.cdrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.hgen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.hwtr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.kdrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindMechIEC::WindMechIEC() : WindGenTurbineType3IEC(nullptr), WindTurbineType1or2IEC(nullptr), WindTurbineType4bIEC(nullptr) {} WindMechIEC::~WindMechIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindMechIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindMechIEC::getClassNamespaceUrl() const { - { "cim:WindMechIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.WindTurbineType1or2IEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.cdrt", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.hgen", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.hwtr", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.kdrt", { CGMESProfile::DY, } }, -}; - -std::list -WindMechIEC::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindMechIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindMechIEC::getPossibleProfilesForAttributes() const +const std::list& WindMechIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindMechIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindMechIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindMechIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindMechIEC(BaseClass*, BaseClass*); @@ -226,31 +258,31 @@ const char* WindMechIEC::debugString() const void WindMechIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindMechIEC", &WindMechIEC_factory); + factory_map.emplace("WindMechIEC", &WindMechIEC_factory); } void WindMechIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindMechIEC.cdrt", &assign_WindMechIEC_cdrt); - assign_map.emplace("cim:WindMechIEC.hgen", &assign_WindMechIEC_hgen); - assign_map.emplace("cim:WindMechIEC.hwtr", &assign_WindMechIEC_hwtr); - assign_map.emplace("cim:WindMechIEC.kdrt", &assign_WindMechIEC_kdrt); + assign_map.emplace("WindMechIEC.cdrt", &assign_WindMechIEC_cdrt); + assign_map.emplace("WindMechIEC.hgen", &assign_WindMechIEC_hgen); + assign_map.emplace("WindMechIEC.hwtr", &assign_WindMechIEC_hwtr); + assign_map.emplace("WindMechIEC.kdrt", &assign_WindMechIEC_kdrt); } void WindMechIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindMechIEC.WindGenTurbineType3IEC", &assign_WindMechIEC_WindGenTurbineType3IEC); - assign_map.emplace("cim:WindMechIEC.WindTurbineType1or2IEC", &assign_WindMechIEC_WindTurbineType1or2IEC); - assign_map.emplace("cim:WindMechIEC.WindTurbineType4bIEC", &assign_WindMechIEC_WindTurbineType4bIEC); + assign_map.emplace("WindMechIEC.WindGenTurbineType3IEC", &assign_WindMechIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindMechIEC.WindTurbineType1or2IEC", &assign_WindMechIEC_WindTurbineType1or2IEC); + assign_map.emplace("WindMechIEC.WindTurbineType4bIEC", &assign_WindMechIEC_WindTurbineType4bIEC); } void WindMechIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindMechIEC.cdrt", &get_WindMechIEC_cdrt); - get_map.emplace("cim:WindMechIEC.hgen", &get_WindMechIEC_hgen); - get_map.emplace("cim:WindMechIEC.hwtr", &get_WindMechIEC_hwtr); - get_map.emplace("cim:WindMechIEC.kdrt", &get_WindMechIEC_kdrt); + get_map.emplace("WindMechIEC.cdrt", &get_WindMechIEC_cdrt); + get_map.emplace("WindMechIEC.hgen", &get_WindMechIEC_hgen); + get_map.emplace("WindMechIEC.hwtr", &get_WindMechIEC_hwtr); + get_map.emplace("WindMechIEC.kdrt", &get_WindMechIEC_kdrt); } void WindMechIEC::addClassGetFnsToMap(std::map& get_map) const @@ -263,11 +295,25 @@ void WindMechIEC::addEnumGetFnsToMap(std::map& get_ma IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindMechIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindMechIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindMechIEC::declare() { return BaseClassDefiner(WindMechIEC::addConstructToMap, WindMechIEC::addPrimitiveAssignFnsToMap, WindMechIEC::addClassAssignFnsToMap, WindMechIEC::debugName); } +std::map WindMechIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindMechIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindMechIEC.hpp b/CGMES_2.4.15_16FEB2016/WindMechIEC.hpp index 59019c1ae..5c7e6f3ee 100644 --- a/CGMES_2.4.15_16FEB2016/WindMechIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindMechIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindMechIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindPitchContEmulIEC.cpp b/CGMES_2.4.15_16FEB2016/WindPitchContEmulIEC.cpp index c78632e74..5f607c3fb 100644 --- a/CGMES_2.4.15_16FEB2016/WindPitchContEmulIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindPitchContEmulIEC.cpp @@ -12,42 +12,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPitchContEmulIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPitchContEmulIEC.WindGenTurbineType2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kipce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.komegaaero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kppce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.omegaref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.pimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.pimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPitchContEmulIEC::WindPitchContEmulIEC() : WindGenTurbineType2IEC(nullptr) {} WindPitchContEmulIEC::~WindPitchContEmulIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPitchContEmulIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPitchContEmulIEC::getClassNamespaceUrl() const { - { "cim:WindPitchContEmulIEC.WindGenTurbineType2IEC", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kdroop", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kipce", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.komegaaero", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kppce", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.omegaref", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.pimax", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.pimin", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.t1", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.t2", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.tpe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPitchContEmulIEC::getPossibleProfilesForClass() const +const std::string& WindPitchContEmulIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPitchContEmulIEC::getPossibleProfilesForAttributes() const +const std::list& WindPitchContEmulIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPitchContEmulIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPitchContEmulIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPitchContEmulIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType2IEC_WindPitchContEmulIEC(BaseClass*, BaseClass*); @@ -366,41 +398,41 @@ const char* WindPitchContEmulIEC::debugString() const void WindPitchContEmulIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPitchContEmulIEC", &WindPitchContEmulIEC_factory); + factory_map.emplace("WindPitchContEmulIEC", &WindPitchContEmulIEC_factory); } void WindPitchContEmulIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPitchContEmulIEC.kdroop", &assign_WindPitchContEmulIEC_kdroop); - assign_map.emplace("cim:WindPitchContEmulIEC.kipce", &assign_WindPitchContEmulIEC_kipce); - assign_map.emplace("cim:WindPitchContEmulIEC.komegaaero", &assign_WindPitchContEmulIEC_komegaaero); - assign_map.emplace("cim:WindPitchContEmulIEC.kppce", &assign_WindPitchContEmulIEC_kppce); - assign_map.emplace("cim:WindPitchContEmulIEC.omegaref", &assign_WindPitchContEmulIEC_omegaref); - assign_map.emplace("cim:WindPitchContEmulIEC.pimax", &assign_WindPitchContEmulIEC_pimax); - assign_map.emplace("cim:WindPitchContEmulIEC.pimin", &assign_WindPitchContEmulIEC_pimin); - assign_map.emplace("cim:WindPitchContEmulIEC.t1", &assign_WindPitchContEmulIEC_t1); - assign_map.emplace("cim:WindPitchContEmulIEC.t2", &assign_WindPitchContEmulIEC_t2); - assign_map.emplace("cim:WindPitchContEmulIEC.tpe", &assign_WindPitchContEmulIEC_tpe); + assign_map.emplace("WindPitchContEmulIEC.kdroop", &assign_WindPitchContEmulIEC_kdroop); + assign_map.emplace("WindPitchContEmulIEC.kipce", &assign_WindPitchContEmulIEC_kipce); + assign_map.emplace("WindPitchContEmulIEC.komegaaero", &assign_WindPitchContEmulIEC_komegaaero); + assign_map.emplace("WindPitchContEmulIEC.kppce", &assign_WindPitchContEmulIEC_kppce); + assign_map.emplace("WindPitchContEmulIEC.omegaref", &assign_WindPitchContEmulIEC_omegaref); + assign_map.emplace("WindPitchContEmulIEC.pimax", &assign_WindPitchContEmulIEC_pimax); + assign_map.emplace("WindPitchContEmulIEC.pimin", &assign_WindPitchContEmulIEC_pimin); + assign_map.emplace("WindPitchContEmulIEC.t1", &assign_WindPitchContEmulIEC_t1); + assign_map.emplace("WindPitchContEmulIEC.t2", &assign_WindPitchContEmulIEC_t2); + assign_map.emplace("WindPitchContEmulIEC.tpe", &assign_WindPitchContEmulIEC_tpe); } void WindPitchContEmulIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPitchContEmulIEC.WindGenTurbineType2IEC", &assign_WindPitchContEmulIEC_WindGenTurbineType2IEC); + assign_map.emplace("WindPitchContEmulIEC.WindGenTurbineType2IEC", &assign_WindPitchContEmulIEC_WindGenTurbineType2IEC); } void WindPitchContEmulIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPitchContEmulIEC.kdroop", &get_WindPitchContEmulIEC_kdroop); - get_map.emplace("cim:WindPitchContEmulIEC.kipce", &get_WindPitchContEmulIEC_kipce); - get_map.emplace("cim:WindPitchContEmulIEC.komegaaero", &get_WindPitchContEmulIEC_komegaaero); - get_map.emplace("cim:WindPitchContEmulIEC.kppce", &get_WindPitchContEmulIEC_kppce); - get_map.emplace("cim:WindPitchContEmulIEC.omegaref", &get_WindPitchContEmulIEC_omegaref); - get_map.emplace("cim:WindPitchContEmulIEC.pimax", &get_WindPitchContEmulIEC_pimax); - get_map.emplace("cim:WindPitchContEmulIEC.pimin", &get_WindPitchContEmulIEC_pimin); - get_map.emplace("cim:WindPitchContEmulIEC.t1", &get_WindPitchContEmulIEC_t1); - get_map.emplace("cim:WindPitchContEmulIEC.t2", &get_WindPitchContEmulIEC_t2); - get_map.emplace("cim:WindPitchContEmulIEC.tpe", &get_WindPitchContEmulIEC_tpe); + get_map.emplace("WindPitchContEmulIEC.kdroop", &get_WindPitchContEmulIEC_kdroop); + get_map.emplace("WindPitchContEmulIEC.kipce", &get_WindPitchContEmulIEC_kipce); + get_map.emplace("WindPitchContEmulIEC.komegaaero", &get_WindPitchContEmulIEC_komegaaero); + get_map.emplace("WindPitchContEmulIEC.kppce", &get_WindPitchContEmulIEC_kppce); + get_map.emplace("WindPitchContEmulIEC.omegaref", &get_WindPitchContEmulIEC_omegaref); + get_map.emplace("WindPitchContEmulIEC.pimax", &get_WindPitchContEmulIEC_pimax); + get_map.emplace("WindPitchContEmulIEC.pimin", &get_WindPitchContEmulIEC_pimin); + get_map.emplace("WindPitchContEmulIEC.t1", &get_WindPitchContEmulIEC_t1); + get_map.emplace("WindPitchContEmulIEC.t2", &get_WindPitchContEmulIEC_t2); + get_map.emplace("WindPitchContEmulIEC.tpe", &get_WindPitchContEmulIEC_tpe); } void WindPitchContEmulIEC::addClassGetFnsToMap(std::map& get_map) const @@ -413,11 +445,25 @@ void WindPitchContEmulIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPitchContEmulIEC::declare() { return BaseClassDefiner(WindPitchContEmulIEC::addConstructToMap, WindPitchContEmulIEC::addPrimitiveAssignFnsToMap, WindPitchContEmulIEC::addClassAssignFnsToMap, WindPitchContEmulIEC::debugName); } +std::map WindPitchContEmulIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPitchContEmulIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindPitchContEmulIEC.hpp b/CGMES_2.4.15_16FEB2016/WindPitchContEmulIEC.hpp index dcdefc9bb..a6fccbc9e 100644 --- a/CGMES_2.4.15_16FEB2016/WindPitchContEmulIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindPitchContEmulIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -64,8 +65,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -73,7 +81,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPitchContEmulIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindPlantDynamics.cpp b/CGMES_2.4.15_16FEB2016/WindPlantDynamics.cpp index c89fc1bb8..311a379e3 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantDynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantDynamics.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantDynamics::WindPlantDynamics() : RemoteInputSignal(nullptr) {} WindPlantDynamics::~WindPlantDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantDynamics::getClassNamespaceUrl() const { - { "cim:WindPlantDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:WindPlantDynamics.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantDynamics::getPossibleProfilesForClass() const +const std::string& WindPlantDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantDynamics::getPossibleProfilesForAttributes() const +const std::list& WindPlantDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RemoteInputSignal_WindPlantDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* WindPlantDynamics::debugString() const void WindPlantDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantDynamics", &WindPlantDynamics_factory); + factory_map.emplace("WindPlantDynamics", &WindPlantDynamics_factory); } void WindPlantDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void WindPlantDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantDynamics.RemoteInputSignal", &assign_WindPlantDynamics_RemoteInputSignal); - assign_map.emplace("cim:WindPlantDynamics.WindTurbineType3or4Dynamics", &assign_WindPlantDynamics_WindTurbineType3or4Dynamics); + assign_map.emplace("WindPlantDynamics.RemoteInputSignal", &assign_WindPlantDynamics_RemoteInputSignal); + assign_map.emplace("WindPlantDynamics.WindTurbineType3or4Dynamics", &assign_WindPlantDynamics_WindTurbineType3or4Dynamics); } void WindPlantDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void WindPlantDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantDynamics.RemoteInputSignal", &get_WindPlantDynamics_RemoteInputSignal); + get_map.emplace("WindPlantDynamics.RemoteInputSignal", &get_WindPlantDynamics_RemoteInputSignal); } void WindPlantDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void WindPlantDynamics::addEnumGetFnsToMap(std::map& DynamicsFunctionBlock::addEnumGetFnsToMap(get_map); } +bool WindPlantDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantDynamics::declare() { return BaseClassDefiner(WindPlantDynamics::addConstructToMap, WindPlantDynamics::addPrimitiveAssignFnsToMap, WindPlantDynamics::addClassAssignFnsToMap, WindPlantDynamics::debugName); } +std::map WindPlantDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantDynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindPlantDynamics.hpp b/CGMES_2.4.15_16FEB2016/WindPlantDynamics.hpp index 0b8314fc3..444cfe5c0 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantDynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantDynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindPlantFreqPcontrolIEC.cpp b/CGMES_2.4.15_16FEB2016/WindPlantFreqPcontrolIEC.cpp index f21322dd3..feb127f01 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantFreqPcontrolIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantFreqPcontrolIEC.cpp @@ -13,43 +13,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantFreqPcontrolIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.WindPlantIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dprefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dprefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kiwpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kpwpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.prefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.prefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.tpft", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.tpfv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.twpffilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.twppfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantFreqPcontrolIEC::WindPlantFreqPcontrolIEC() : WindPlantIEC(nullptr) {} WindPlantFreqPcontrolIEC::~WindPlantFreqPcontrolIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantFreqPcontrolIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantFreqPcontrolIEC::getClassNamespaceUrl() const { - { "cim:WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.WindPlantIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dprefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dprefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kiwpp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kpwpp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.prefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.prefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.tpft", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.tpfv", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.twpffilt", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.twppfilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantFreqPcontrolIEC::getPossibleProfilesForClass() const +const std::string& WindPlantFreqPcontrolIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantFreqPcontrolIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantFreqPcontrolIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantFreqPcontrolIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantFreqPcontrolIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantFreqPcontrolIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC(BaseClass*, BaseClass*); @@ -386,42 +418,42 @@ const char* WindPlantFreqPcontrolIEC::debugString() const void WindPlantFreqPcontrolIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantFreqPcontrolIEC", &WindPlantFreqPcontrolIEC_factory); + factory_map.emplace("WindPlantFreqPcontrolIEC", &WindPlantFreqPcontrolIEC_factory); } void WindPlantFreqPcontrolIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmax", &assign_WindPlantFreqPcontrolIEC_dprefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmin", &assign_WindPlantFreqPcontrolIEC_dprefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwpp", &assign_WindPlantFreqPcontrolIEC_kiwpp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kpwpp", &assign_WindPlantFreqPcontrolIEC_kpwpp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmax", &assign_WindPlantFreqPcontrolIEC_prefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmin", &assign_WindPlantFreqPcontrolIEC_prefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.tpft", &assign_WindPlantFreqPcontrolIEC_tpft); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.tpfv", &assign_WindPlantFreqPcontrolIEC_tpfv); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.twpffilt", &assign_WindPlantFreqPcontrolIEC_twpffilt); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.twppfilt", &assign_WindPlantFreqPcontrolIEC_twppfilt); + assign_map.emplace("WindPlantFreqPcontrolIEC.dprefmax", &assign_WindPlantFreqPcontrolIEC_dprefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.dprefmin", &assign_WindPlantFreqPcontrolIEC_dprefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.kiwpp", &assign_WindPlantFreqPcontrolIEC_kiwpp); + assign_map.emplace("WindPlantFreqPcontrolIEC.kpwpp", &assign_WindPlantFreqPcontrolIEC_kpwpp); + assign_map.emplace("WindPlantFreqPcontrolIEC.prefmax", &assign_WindPlantFreqPcontrolIEC_prefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.prefmin", &assign_WindPlantFreqPcontrolIEC_prefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.tpft", &assign_WindPlantFreqPcontrolIEC_tpft); + assign_map.emplace("WindPlantFreqPcontrolIEC.tpfv", &assign_WindPlantFreqPcontrolIEC_tpfv); + assign_map.emplace("WindPlantFreqPcontrolIEC.twpffilt", &assign_WindPlantFreqPcontrolIEC_twpffilt); + assign_map.emplace("WindPlantFreqPcontrolIEC.twppfilt", &assign_WindPlantFreqPcontrolIEC_twppfilt); } void WindPlantFreqPcontrolIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", &assign_WindPlantFreqPcontrolIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.WindPlantIEC", &assign_WindPlantFreqPcontrolIEC_WindPlantIEC); + assign_map.emplace("WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", &assign_WindPlantFreqPcontrolIEC_WindDynamicsLookupTable); + assign_map.emplace("WindPlantFreqPcontrolIEC.WindPlantIEC", &assign_WindPlantFreqPcontrolIEC_WindPlantIEC); } void WindPlantFreqPcontrolIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmax", &get_WindPlantFreqPcontrolIEC_dprefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmin", &get_WindPlantFreqPcontrolIEC_dprefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwpp", &get_WindPlantFreqPcontrolIEC_kiwpp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kpwpp", &get_WindPlantFreqPcontrolIEC_kpwpp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmax", &get_WindPlantFreqPcontrolIEC_prefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmin", &get_WindPlantFreqPcontrolIEC_prefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.tpft", &get_WindPlantFreqPcontrolIEC_tpft); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.tpfv", &get_WindPlantFreqPcontrolIEC_tpfv); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.twpffilt", &get_WindPlantFreqPcontrolIEC_twpffilt); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.twppfilt", &get_WindPlantFreqPcontrolIEC_twppfilt); + get_map.emplace("WindPlantFreqPcontrolIEC.dprefmax", &get_WindPlantFreqPcontrolIEC_dprefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.dprefmin", &get_WindPlantFreqPcontrolIEC_dprefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.kiwpp", &get_WindPlantFreqPcontrolIEC_kiwpp); + get_map.emplace("WindPlantFreqPcontrolIEC.kpwpp", &get_WindPlantFreqPcontrolIEC_kpwpp); + get_map.emplace("WindPlantFreqPcontrolIEC.prefmax", &get_WindPlantFreqPcontrolIEC_prefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.prefmin", &get_WindPlantFreqPcontrolIEC_prefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.tpft", &get_WindPlantFreqPcontrolIEC_tpft); + get_map.emplace("WindPlantFreqPcontrolIEC.tpfv", &get_WindPlantFreqPcontrolIEC_tpfv); + get_map.emplace("WindPlantFreqPcontrolIEC.twpffilt", &get_WindPlantFreqPcontrolIEC_twpffilt); + get_map.emplace("WindPlantFreqPcontrolIEC.twppfilt", &get_WindPlantFreqPcontrolIEC_twppfilt); } void WindPlantFreqPcontrolIEC::addClassGetFnsToMap(std::map& get_map) const @@ -434,11 +466,25 @@ void WindPlantFreqPcontrolIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantFreqPcontrolIEC::declare() { return BaseClassDefiner(WindPlantFreqPcontrolIEC::addConstructToMap, WindPlantFreqPcontrolIEC::addPrimitiveAssignFnsToMap, WindPlantFreqPcontrolIEC::addClassAssignFnsToMap, WindPlantFreqPcontrolIEC::debugName); } +std::map WindPlantFreqPcontrolIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantFreqPcontrolIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindPlantFreqPcontrolIEC.hpp b/CGMES_2.4.15_16FEB2016/WindPlantFreqPcontrolIEC.hpp index 069d958c9..623773754 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantFreqPcontrolIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantFreqPcontrolIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -68,8 +69,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -77,7 +85,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantFreqPcontrolIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindPlantIEC.cpp b/CGMES_2.4.15_16FEB2016/WindPlantIEC.cpp index b455a5284..ad2bfe277 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantIEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantIEC.WindPlantFreqPcontrolIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantIEC.WindPlantReactiveControlIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantIEC::WindPlantIEC() : WindPlantFreqPcontrolIEC(nullptr), WindPlantReactiveControlIEC(nullptr) {} WindPlantIEC::~WindPlantIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantIEC::getClassNamespaceUrl() const { - { "cim:WindPlantIEC.WindPlantFreqPcontrolIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantIEC.WindPlantReactiveControlIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantIEC::getPossibleProfilesForClass() const +const std::string& WindPlantIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindPlantDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPlantFreqPcontrolIEC_WindPlantIEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindPlantIEC::debugString() const void WindPlantIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantIEC", &WindPlantIEC_factory); + factory_map.emplace("WindPlantIEC", &WindPlantIEC_factory); } void WindPlantIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindPlantIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantIEC.WindPlantFreqPcontrolIEC", &assign_WindPlantIEC_WindPlantFreqPcontrolIEC); - assign_map.emplace("cim:WindPlantIEC.WindPlantReactiveControlIEC", &assign_WindPlantIEC_WindPlantReactiveControlIEC); + assign_map.emplace("WindPlantIEC.WindPlantFreqPcontrolIEC", &assign_WindPlantIEC_WindPlantFreqPcontrolIEC); + assign_map.emplace("WindPlantIEC.WindPlantReactiveControlIEC", &assign_WindPlantIEC_WindPlantReactiveControlIEC); } void WindPlantIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindPlantIEC::addPrimitiveGetFnsToMap(std::map& void WindPlantIEC::addClassGetFnsToMap(std::map& get_map) const { WindPlantDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantIEC.WindPlantFreqPcontrolIEC", &get_WindPlantIEC_WindPlantFreqPcontrolIEC); - get_map.emplace("cim:WindPlantIEC.WindPlantReactiveControlIEC", &get_WindPlantIEC_WindPlantReactiveControlIEC); + get_map.emplace("WindPlantIEC.WindPlantFreqPcontrolIEC", &get_WindPlantIEC_WindPlantFreqPcontrolIEC); + get_map.emplace("WindPlantIEC.WindPlantReactiveControlIEC", &get_WindPlantIEC_WindPlantReactiveControlIEC); } void WindPlantIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindPlantIEC::addEnumGetFnsToMap(std::map& get_m WindPlantDynamics::addEnumGetFnsToMap(get_map); } +bool WindPlantIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantIEC::declare() { return BaseClassDefiner(WindPlantIEC::addConstructToMap, WindPlantIEC::addPrimitiveAssignFnsToMap, WindPlantIEC::addClassAssignFnsToMap, WindPlantIEC::debugName); } +std::map WindPlantIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindPlantDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindPlantIEC.hpp b/CGMES_2.4.15_16FEB2016/WindPlantIEC.hpp index 8f277cafa..6809f8d09 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindPlantDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindPlantReactiveControlIEC.cpp b/CGMES_2.4.15_16FEB2016/WindPlantReactiveControlIEC.cpp index 8135d692c..05730f33a 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantReactiveControlIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantReactiveControlIEC.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantReactiveControlIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantReactiveControlIEC.WindPlantIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kiwpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kpwpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kwpqu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.mwppf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.mwpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twppfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twpqfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twpufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.txft", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.txfv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.uwpqdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.xrefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.xrefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantReactiveControlIEC::WindPlantReactiveControlIEC() : WindPlantIEC(nullptr) {} WindPlantReactiveControlIEC::~WindPlantReactiveControlIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantReactiveControlIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantReactiveControlIEC::getClassNamespaceUrl() const { - { "cim:WindPlantReactiveControlIEC.WindPlantIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kiwpx", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kpwpx", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kwpqu", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.mwppf", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.mwpu", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twppfilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twpqfilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twpufilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.txft", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.txfv", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.uwpqdip", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.xrefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.xrefmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantReactiveControlIEC::getPossibleProfilesForClass() const +const std::string& WindPlantReactiveControlIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantReactiveControlIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantReactiveControlIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantReactiveControlIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantReactiveControlIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantReactiveControlIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPlantIEC_WindPlantReactiveControlIEC(BaseClass*, BaseClass*); @@ -456,47 +488,47 @@ const char* WindPlantReactiveControlIEC::debugString() const void WindPlantReactiveControlIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantReactiveControlIEC", &WindPlantReactiveControlIEC_factory); + factory_map.emplace("WindPlantReactiveControlIEC", &WindPlantReactiveControlIEC_factory); } void WindPlantReactiveControlIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantReactiveControlIEC.kiwpx", &assign_WindPlantReactiveControlIEC_kiwpx); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kpwpx", &assign_WindPlantReactiveControlIEC_kpwpx); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kwpqu", &assign_WindPlantReactiveControlIEC_kwpqu); - assign_map.emplace("cim:WindPlantReactiveControlIEC.mwppf", &assign_WindPlantReactiveControlIEC_mwppf); - assign_map.emplace("cim:WindPlantReactiveControlIEC.mwpu", &assign_WindPlantReactiveControlIEC_mwpu); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twppfilt", &assign_WindPlantReactiveControlIEC_twppfilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twpqfilt", &assign_WindPlantReactiveControlIEC_twpqfilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twpufilt", &assign_WindPlantReactiveControlIEC_twpufilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.txft", &assign_WindPlantReactiveControlIEC_txft); - assign_map.emplace("cim:WindPlantReactiveControlIEC.txfv", &assign_WindPlantReactiveControlIEC_txfv); - assign_map.emplace("cim:WindPlantReactiveControlIEC.uwpqdip", &assign_WindPlantReactiveControlIEC_uwpqdip); - assign_map.emplace("cim:WindPlantReactiveControlIEC.xrefmax", &assign_WindPlantReactiveControlIEC_xrefmax); - assign_map.emplace("cim:WindPlantReactiveControlIEC.xrefmin", &assign_WindPlantReactiveControlIEC_xrefmin); + assign_map.emplace("WindPlantReactiveControlIEC.kiwpx", &assign_WindPlantReactiveControlIEC_kiwpx); + assign_map.emplace("WindPlantReactiveControlIEC.kpwpx", &assign_WindPlantReactiveControlIEC_kpwpx); + assign_map.emplace("WindPlantReactiveControlIEC.kwpqu", &assign_WindPlantReactiveControlIEC_kwpqu); + assign_map.emplace("WindPlantReactiveControlIEC.mwppf", &assign_WindPlantReactiveControlIEC_mwppf); + assign_map.emplace("WindPlantReactiveControlIEC.mwpu", &assign_WindPlantReactiveControlIEC_mwpu); + assign_map.emplace("WindPlantReactiveControlIEC.twppfilt", &assign_WindPlantReactiveControlIEC_twppfilt); + assign_map.emplace("WindPlantReactiveControlIEC.twpqfilt", &assign_WindPlantReactiveControlIEC_twpqfilt); + assign_map.emplace("WindPlantReactiveControlIEC.twpufilt", &assign_WindPlantReactiveControlIEC_twpufilt); + assign_map.emplace("WindPlantReactiveControlIEC.txft", &assign_WindPlantReactiveControlIEC_txft); + assign_map.emplace("WindPlantReactiveControlIEC.txfv", &assign_WindPlantReactiveControlIEC_txfv); + assign_map.emplace("WindPlantReactiveControlIEC.uwpqdip", &assign_WindPlantReactiveControlIEC_uwpqdip); + assign_map.emplace("WindPlantReactiveControlIEC.xrefmax", &assign_WindPlantReactiveControlIEC_xrefmax); + assign_map.emplace("WindPlantReactiveControlIEC.xrefmin", &assign_WindPlantReactiveControlIEC_xrefmin); } void WindPlantReactiveControlIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantReactiveControlIEC.WindPlantIEC", &assign_WindPlantReactiveControlIEC_WindPlantIEC); + assign_map.emplace("WindPlantReactiveControlIEC.WindPlantIEC", &assign_WindPlantReactiveControlIEC_WindPlantIEC); } void WindPlantReactiveControlIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantReactiveControlIEC.kiwpx", &get_WindPlantReactiveControlIEC_kiwpx); - get_map.emplace("cim:WindPlantReactiveControlIEC.kpwpx", &get_WindPlantReactiveControlIEC_kpwpx); - get_map.emplace("cim:WindPlantReactiveControlIEC.kwpqu", &get_WindPlantReactiveControlIEC_kwpqu); - get_map.emplace("cim:WindPlantReactiveControlIEC.mwppf", &get_WindPlantReactiveControlIEC_mwppf); - get_map.emplace("cim:WindPlantReactiveControlIEC.mwpu", &get_WindPlantReactiveControlIEC_mwpu); - get_map.emplace("cim:WindPlantReactiveControlIEC.twppfilt", &get_WindPlantReactiveControlIEC_twppfilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.twpqfilt", &get_WindPlantReactiveControlIEC_twpqfilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.twpufilt", &get_WindPlantReactiveControlIEC_twpufilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.txft", &get_WindPlantReactiveControlIEC_txft); - get_map.emplace("cim:WindPlantReactiveControlIEC.txfv", &get_WindPlantReactiveControlIEC_txfv); - get_map.emplace("cim:WindPlantReactiveControlIEC.uwpqdip", &get_WindPlantReactiveControlIEC_uwpqdip); - get_map.emplace("cim:WindPlantReactiveControlIEC.xrefmax", &get_WindPlantReactiveControlIEC_xrefmax); - get_map.emplace("cim:WindPlantReactiveControlIEC.xrefmin", &get_WindPlantReactiveControlIEC_xrefmin); + get_map.emplace("WindPlantReactiveControlIEC.kiwpx", &get_WindPlantReactiveControlIEC_kiwpx); + get_map.emplace("WindPlantReactiveControlIEC.kpwpx", &get_WindPlantReactiveControlIEC_kpwpx); + get_map.emplace("WindPlantReactiveControlIEC.kwpqu", &get_WindPlantReactiveControlIEC_kwpqu); + get_map.emplace("WindPlantReactiveControlIEC.mwppf", &get_WindPlantReactiveControlIEC_mwppf); + get_map.emplace("WindPlantReactiveControlIEC.mwpu", &get_WindPlantReactiveControlIEC_mwpu); + get_map.emplace("WindPlantReactiveControlIEC.twppfilt", &get_WindPlantReactiveControlIEC_twppfilt); + get_map.emplace("WindPlantReactiveControlIEC.twpqfilt", &get_WindPlantReactiveControlIEC_twpqfilt); + get_map.emplace("WindPlantReactiveControlIEC.twpufilt", &get_WindPlantReactiveControlIEC_twpufilt); + get_map.emplace("WindPlantReactiveControlIEC.txft", &get_WindPlantReactiveControlIEC_txft); + get_map.emplace("WindPlantReactiveControlIEC.txfv", &get_WindPlantReactiveControlIEC_txfv); + get_map.emplace("WindPlantReactiveControlIEC.uwpqdip", &get_WindPlantReactiveControlIEC_uwpqdip); + get_map.emplace("WindPlantReactiveControlIEC.xrefmax", &get_WindPlantReactiveControlIEC_xrefmax); + get_map.emplace("WindPlantReactiveControlIEC.xrefmin", &get_WindPlantReactiveControlIEC_xrefmin); } void WindPlantReactiveControlIEC::addClassGetFnsToMap(std::map& get_map) const @@ -509,11 +541,25 @@ void WindPlantReactiveControlIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantReactiveControlIEC::declare() { return BaseClassDefiner(WindPlantReactiveControlIEC::addConstructToMap, WindPlantReactiveControlIEC::addPrimitiveAssignFnsToMap, WindPlantReactiveControlIEC::addClassAssignFnsToMap, WindPlantReactiveControlIEC::debugName); } +std::map WindPlantReactiveControlIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantReactiveControlIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindPlantReactiveControlIEC.hpp b/CGMES_2.4.15_16FEB2016/WindPlantReactiveControlIEC.hpp index fdcfe8416..882f6e8ad 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantReactiveControlIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantReactiveControlIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantReactiveControlIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindPlantUserDefined.cpp b/CGMES_2.4.15_16FEB2016/WindPlantUserDefined.cpp index 549a06449..d1ad6fadf 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantUserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantUserDefined::WindPlantUserDefined() {} WindPlantUserDefined::~WindPlantUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantUserDefined::getClassNamespaceUrl() const { - { "cim:WindPlantUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindPlantUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantUserDefined::getPossibleProfilesForClass() const +const std::string& WindPlantUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantUserDefined::getPossibleProfilesForAttributes() const +const std::list& WindPlantUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindPlantDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindPlantUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindPlantUserDefined::debugString() const void WindPlantUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantUserDefined", &WindPlantUserDefined_factory); + factory_map.emplace("WindPlantUserDefined", &WindPlantUserDefined_factory); } void WindPlantUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantUserDefined.proprietary", &assign_WindPlantUserDefined_proprietary); + assign_map.emplace("WindPlantUserDefined.proprietary", &assign_WindPlantUserDefined_proprietary); } void WindPlantUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantUserDefined.ProprietaryParameterDynamics", &assign_WindPlantUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindPlantUserDefined.ProprietaryParameterDynamics", &assign_WindPlantUserDefined_ProprietaryParameterDynamics); } void WindPlantUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindPlantDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantUserDefined.proprietary", &get_WindPlantUserDefined_proprietary); + get_map.emplace("WindPlantUserDefined.proprietary", &get_WindPlantUserDefined_proprietary); } void WindPlantUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindPlantUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantUserDefined::declare() { return BaseClassDefiner(WindPlantUserDefined::addConstructToMap, WindPlantUserDefined::addPrimitiveAssignFnsToMap, WindPlantUserDefined::addClassAssignFnsToMap, WindPlantUserDefined::debugName); } +std::map WindPlantUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindPlantDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantUserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindPlantUserDefined.hpp b/CGMES_2.4.15_16FEB2016/WindPlantUserDefined.hpp index d64898dfb..bdf208b9e 100644 --- a/CGMES_2.4.15_16FEB2016/WindPlantUserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/WindPlantUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindPlantDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantUserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindProtectionIEC.cpp b/CGMES_2.4.15_16FEB2016/WindProtectionIEC.cpp index b9bcdc44e..e4f39300f 100644 --- a/CGMES_2.4.15_16FEB2016/WindProtectionIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindProtectionIEC.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindProtectionIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindProtectionIEC.WindTurbineType1or2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.fover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.funder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tfover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tfunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tuover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tuunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.uover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.uunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindProtectionIEC::WindProtectionIEC() : WindTurbineType1or2IEC(nullptr), WindTurbineType3or4IEC(nullptr) {} WindProtectionIEC::~WindProtectionIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindProtectionIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindProtectionIEC::getClassNamespaceUrl() const { - { "cim:WindProtectionIEC.WindTurbineType1or2IEC", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.fover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.funder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tfover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tfunder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tuover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tuunder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.uover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.uunder", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindProtectionIEC::getPossibleProfilesForClass() const +const std::string& WindProtectionIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindProtectionIEC::getPossibleProfilesForAttributes() const +const std::list& WindProtectionIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindProtectionIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindProtectionIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindProtectionIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType1or2IEC_WindProtectionIEC(BaseClass*, BaseClass*); @@ -326,38 +358,38 @@ const char* WindProtectionIEC::debugString() const void WindProtectionIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindProtectionIEC", &WindProtectionIEC_factory); + factory_map.emplace("WindProtectionIEC", &WindProtectionIEC_factory); } void WindProtectionIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindProtectionIEC.fover", &assign_WindProtectionIEC_fover); - assign_map.emplace("cim:WindProtectionIEC.funder", &assign_WindProtectionIEC_funder); - assign_map.emplace("cim:WindProtectionIEC.tfover", &assign_WindProtectionIEC_tfover); - assign_map.emplace("cim:WindProtectionIEC.tfunder", &assign_WindProtectionIEC_tfunder); - assign_map.emplace("cim:WindProtectionIEC.tuover", &assign_WindProtectionIEC_tuover); - assign_map.emplace("cim:WindProtectionIEC.tuunder", &assign_WindProtectionIEC_tuunder); - assign_map.emplace("cim:WindProtectionIEC.uover", &assign_WindProtectionIEC_uover); - assign_map.emplace("cim:WindProtectionIEC.uunder", &assign_WindProtectionIEC_uunder); + assign_map.emplace("WindProtectionIEC.fover", &assign_WindProtectionIEC_fover); + assign_map.emplace("WindProtectionIEC.funder", &assign_WindProtectionIEC_funder); + assign_map.emplace("WindProtectionIEC.tfover", &assign_WindProtectionIEC_tfover); + assign_map.emplace("WindProtectionIEC.tfunder", &assign_WindProtectionIEC_tfunder); + assign_map.emplace("WindProtectionIEC.tuover", &assign_WindProtectionIEC_tuover); + assign_map.emplace("WindProtectionIEC.tuunder", &assign_WindProtectionIEC_tuunder); + assign_map.emplace("WindProtectionIEC.uover", &assign_WindProtectionIEC_uover); + assign_map.emplace("WindProtectionIEC.uunder", &assign_WindProtectionIEC_uunder); } void WindProtectionIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindProtectionIEC.WindTurbineType1or2IEC", &assign_WindProtectionIEC_WindTurbineType1or2IEC); - assign_map.emplace("cim:WindProtectionIEC.WindTurbineType3or4IEC", &assign_WindProtectionIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindProtectionIEC.WindTurbineType1or2IEC", &assign_WindProtectionIEC_WindTurbineType1or2IEC); + assign_map.emplace("WindProtectionIEC.WindTurbineType3or4IEC", &assign_WindProtectionIEC_WindTurbineType3or4IEC); } void WindProtectionIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindProtectionIEC.fover", &get_WindProtectionIEC_fover); - get_map.emplace("cim:WindProtectionIEC.funder", &get_WindProtectionIEC_funder); - get_map.emplace("cim:WindProtectionIEC.tfover", &get_WindProtectionIEC_tfover); - get_map.emplace("cim:WindProtectionIEC.tfunder", &get_WindProtectionIEC_tfunder); - get_map.emplace("cim:WindProtectionIEC.tuover", &get_WindProtectionIEC_tuover); - get_map.emplace("cim:WindProtectionIEC.tuunder", &get_WindProtectionIEC_tuunder); - get_map.emplace("cim:WindProtectionIEC.uover", &get_WindProtectionIEC_uover); - get_map.emplace("cim:WindProtectionIEC.uunder", &get_WindProtectionIEC_uunder); + get_map.emplace("WindProtectionIEC.fover", &get_WindProtectionIEC_fover); + get_map.emplace("WindProtectionIEC.funder", &get_WindProtectionIEC_funder); + get_map.emplace("WindProtectionIEC.tfover", &get_WindProtectionIEC_tfover); + get_map.emplace("WindProtectionIEC.tfunder", &get_WindProtectionIEC_tfunder); + get_map.emplace("WindProtectionIEC.tuover", &get_WindProtectionIEC_tuover); + get_map.emplace("WindProtectionIEC.tuunder", &get_WindProtectionIEC_tuunder); + get_map.emplace("WindProtectionIEC.uover", &get_WindProtectionIEC_uover); + get_map.emplace("WindProtectionIEC.uunder", &get_WindProtectionIEC_uunder); } void WindProtectionIEC::addClassGetFnsToMap(std::map& get_map) const @@ -370,11 +402,25 @@ void WindProtectionIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindProtectionIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindProtectionIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindProtectionIEC::declare() { return BaseClassDefiner(WindProtectionIEC::addConstructToMap, WindProtectionIEC::addPrimitiveAssignFnsToMap, WindProtectionIEC::addClassAssignFnsToMap, WindProtectionIEC::debugName); } +std::map WindProtectionIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindProtectionIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindProtectionIEC.hpp b/CGMES_2.4.15_16FEB2016/WindProtectionIEC.hpp index 38c2e8b1a..0a10bbe49 100644 --- a/CGMES_2.4.15_16FEB2016/WindProtectionIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindProtectionIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindProtectionIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType1or2Dynamics.cpp b/CGMES_2.4.15_16FEB2016/WindTurbineType1or2Dynamics.cpp index 2d438018b..289d480e4 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType1or2Dynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType1or2Dynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType1or2Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType1or2Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType1or2Dynamics::WindTurbineType1or2Dynamics() : AsynchronousMachineDynamics(nullptr), RemoteInputSignal(nullptr) {} WindTurbineType1or2Dynamics::~WindTurbineType1or2Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType1or2Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType1or2Dynamics::getClassNamespaceUrl() const { - { "cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:WindTurbineType1or2Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType1or2Dynamics::getPossibleProfilesForClass() const +const std::string& WindTurbineType1or2Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType1or2Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType1or2Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType1or2Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType1or2Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType1or2Dynamics::debugString() const void WindTurbineType1or2Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType1or2Dynamics", &WindTurbineType1or2Dynamics_factory); + factory_map.emplace("WindTurbineType1or2Dynamics", &WindTurbineType1or2Dynamics_factory); } void WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void WindTurbineType1or2Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &assign_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:WindTurbineType1or2Dynamics.RemoteInputSignal", &assign_WindTurbineType1or2Dynamics_RemoteInputSignal); + assign_map.emplace("WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &assign_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); + assign_map.emplace("WindTurbineType1or2Dynamics.RemoteInputSignal", &assign_WindTurbineType1or2Dynamics_RemoteInputSignal); } void WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &get_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:WindTurbineType1or2Dynamics.RemoteInputSignal", &get_WindTurbineType1or2Dynamics_RemoteInputSignal); + get_map.emplace("WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &get_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); + get_map.emplace("WindTurbineType1or2Dynamics.RemoteInputSignal", &get_WindTurbineType1or2Dynamics_RemoteInputSignal); } void WindTurbineType1or2Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType1or2Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType1or2Dynamics::declare() { return BaseClassDefiner(WindTurbineType1or2Dynamics::addConstructToMap, WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap, WindTurbineType1or2Dynamics::addClassAssignFnsToMap, WindTurbineType1or2Dynamics::debugName); } +std::map WindTurbineType1or2Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType1or2Dynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType1or2Dynamics.hpp b/CGMES_2.4.15_16FEB2016/WindTurbineType1or2Dynamics.hpp index 9cd8ce493..993bd2144 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType1or2Dynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType1or2Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType1or2Dynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType1or2IEC.cpp b/CGMES_2.4.15_16FEB2016/WindTurbineType1or2IEC.cpp index 251c07766..450f079b6 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType1or2IEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType1or2IEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType1or2IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType1or2IEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType1or2IEC.WindProtectionIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType1or2IEC::WindTurbineType1or2IEC() : WindMechIEC(nullptr), WindProtectionIEC(nullptr) {} WindTurbineType1or2IEC::~WindTurbineType1or2IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType1or2IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType1or2IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType1or2IEC.WindMechIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType1or2IEC.WindProtectionIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType1or2IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType1or2IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType1or2IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType1or2IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType1or2IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType1or2IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType1or2IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindMechIEC_WindTurbineType1or2IEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType1or2IEC::debugString() const void WindTurbineType1or2IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType1or2IEC", &WindTurbineType1or2IEC_factory); + factory_map.emplace("WindTurbineType1or2IEC", &WindTurbineType1or2IEC_factory); } void WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType1or2IEC.WindMechIEC", &assign_WindTurbineType1or2IEC_WindMechIEC); - assign_map.emplace("cim:WindTurbineType1or2IEC.WindProtectionIEC", &assign_WindTurbineType1or2IEC_WindProtectionIEC); + assign_map.emplace("WindTurbineType1or2IEC.WindMechIEC", &assign_WindTurbineType1or2IEC_WindMechIEC); + assign_map.emplace("WindTurbineType1or2IEC.WindProtectionIEC", &assign_WindTurbineType1or2IEC_WindProtectionIEC); } void WindTurbineType1or2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType1or2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2Dynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType1or2IEC.WindMechIEC", &get_WindTurbineType1or2IEC_WindMechIEC); - get_map.emplace("cim:WindTurbineType1or2IEC.WindProtectionIEC", &get_WindTurbineType1or2IEC_WindProtectionIEC); + get_map.emplace("WindTurbineType1or2IEC.WindMechIEC", &get_WindTurbineType1or2IEC_WindMechIEC); + get_map.emplace("WindTurbineType1or2IEC.WindProtectionIEC", &get_WindTurbineType1or2IEC_WindProtectionIEC); } void WindTurbineType1or2IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType1or2IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType1or2IEC::declare() { return BaseClassDefiner(WindTurbineType1or2IEC::addConstructToMap, WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap, WindTurbineType1or2IEC::addClassAssignFnsToMap, WindTurbineType1or2IEC::debugName); } +std::map WindTurbineType1or2IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType1or2IEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType1or2IEC.hpp b/CGMES_2.4.15_16FEB2016/WindTurbineType1or2IEC.hpp index 909b188a3..3ca0b2b85 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType1or2IEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType1or2IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType1or2IEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType3or4Dynamics.cpp b/CGMES_2.4.15_16FEB2016/WindTurbineType3or4Dynamics.cpp index 921087b71..ca22748d2 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType3or4Dynamics.cpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType3or4Dynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3or4Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3or4Dynamics.EnergySource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4Dynamics.WindPlantDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3or4Dynamics::WindTurbineType3or4Dynamics() : EnergySource(nullptr), RemoteInputSignal(nullptr), WindPlantDynamics(nullptr) {} WindTurbineType3or4Dynamics::~WindTurbineType3or4Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3or4Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3or4Dynamics::getClassNamespaceUrl() const { - { "cim:WindTurbineType3or4Dynamics.EnergySource", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4Dynamics.WindPlantDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3or4Dynamics::getPossibleProfilesForClass() const +const std::string& WindTurbineType3or4Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3or4Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3or4Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3or4Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3or4Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySource_WindTurbineType3or4Dynamics(BaseClass*, BaseClass*); @@ -145,7 +177,7 @@ const char* WindTurbineType3or4Dynamics::debugString() const void WindTurbineType3or4Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3or4Dynamics", &WindTurbineType3or4Dynamics_factory); + factory_map.emplace("WindTurbineType3or4Dynamics", &WindTurbineType3or4Dynamics_factory); } void WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void WindTurbineType3or4Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3or4Dynamics.EnergySource", &assign_WindTurbineType3or4Dynamics_EnergySource); - assign_map.emplace("cim:WindTurbineType3or4Dynamics.RemoteInputSignal", &assign_WindTurbineType3or4Dynamics_RemoteInputSignal); - assign_map.emplace("cim:WindTurbineType3or4Dynamics.WindPlantDynamics", &assign_WindTurbineType3or4Dynamics_WindPlantDynamics); + assign_map.emplace("WindTurbineType3or4Dynamics.EnergySource", &assign_WindTurbineType3or4Dynamics_EnergySource); + assign_map.emplace("WindTurbineType3or4Dynamics.RemoteInputSignal", &assign_WindTurbineType3or4Dynamics_RemoteInputSignal); + assign_map.emplace("WindTurbineType3or4Dynamics.WindPlantDynamics", &assign_WindTurbineType3or4Dynamics_WindPlantDynamics); } void WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -167,9 +199,9 @@ void WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3or4Dynamics.EnergySource", &get_WindTurbineType3or4Dynamics_EnergySource); - get_map.emplace("cim:WindTurbineType3or4Dynamics.RemoteInputSignal", &get_WindTurbineType3or4Dynamics_RemoteInputSignal); - get_map.emplace("cim:WindTurbineType3or4Dynamics.WindPlantDynamics", &get_WindTurbineType3or4Dynamics_WindPlantDynamics); + get_map.emplace("WindTurbineType3or4Dynamics.EnergySource", &get_WindTurbineType3or4Dynamics_EnergySource); + get_map.emplace("WindTurbineType3or4Dynamics.RemoteInputSignal", &get_WindTurbineType3or4Dynamics_RemoteInputSignal); + get_map.emplace("WindTurbineType3or4Dynamics.WindPlantDynamics", &get_WindTurbineType3or4Dynamics_WindPlantDynamics); } void WindTurbineType3or4Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -177,11 +209,25 @@ void WindTurbineType3or4Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3or4Dynamics::declare() { return BaseClassDefiner(WindTurbineType3or4Dynamics::addConstructToMap, WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap, WindTurbineType3or4Dynamics::addClassAssignFnsToMap, WindTurbineType3or4Dynamics::debugName); } +std::map WindTurbineType3or4Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3or4Dynamics_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType3or4Dynamics.hpp b/CGMES_2.4.15_16FEB2016/WindTurbineType3or4Dynamics.hpp index 9c123fe1d..f8ec8e372 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType3or4Dynamics.hpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType3or4Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3or4Dynamics_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType3or4IEC.cpp b/CGMES_2.4.15_16FEB2016/WindTurbineType3or4IEC.cpp index 7dd415768..f3afce157 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType3or4IEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType3or4IEC.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3or4IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3or4IEC.WIndContQIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindContCurrLimIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindProtectionIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3or4IEC::WindTurbineType3or4IEC() : WIndContQIEC(nullptr), WindContCurrLimIEC(nullptr), WindProtectionIEC(nullptr) {} WindTurbineType3or4IEC::~WindTurbineType3or4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3or4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3or4IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType3or4IEC.WIndContQIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindContCurrLimIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindProtectionIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3or4IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType3or4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3or4IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3or4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3or4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3or4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3or4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContQIEC_WindTurbineType3or4IEC(BaseClass*, BaseClass*); @@ -145,7 +177,7 @@ const char* WindTurbineType3or4IEC::debugString() const void WindTurbineType3or4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3or4IEC", &WindTurbineType3or4IEC_factory); + factory_map.emplace("WindTurbineType3or4IEC", &WindTurbineType3or4IEC_factory); } void WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3or4IEC.WIndContQIEC", &assign_WindTurbineType3or4IEC_WIndContQIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindContCurrLimIEC", &assign_WindTurbineType3or4IEC_WindContCurrLimIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindProtectionIEC", &assign_WindTurbineType3or4IEC_WindProtectionIEC); + assign_map.emplace("WindTurbineType3or4IEC.WIndContQIEC", &assign_WindTurbineType3or4IEC_WIndContQIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindContCurrLimIEC", &assign_WindTurbineType3or4IEC_WindContCurrLimIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindProtectionIEC", &assign_WindTurbineType3or4IEC_WindProtectionIEC); } void WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -167,9 +199,9 @@ void WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4Dynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3or4IEC.WIndContQIEC", &get_WindTurbineType3or4IEC_WIndContQIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindContCurrLimIEC", &get_WindTurbineType3or4IEC_WindContCurrLimIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindProtectionIEC", &get_WindTurbineType3or4IEC_WindProtectionIEC); + get_map.emplace("WindTurbineType3or4IEC.WIndContQIEC", &get_WindTurbineType3or4IEC_WIndContQIEC); + get_map.emplace("WindTurbineType3or4IEC.WindContCurrLimIEC", &get_WindTurbineType3or4IEC_WindContCurrLimIEC); + get_map.emplace("WindTurbineType3or4IEC.WindProtectionIEC", &get_WindTurbineType3or4IEC_WindProtectionIEC); } void WindTurbineType3or4IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -177,11 +209,25 @@ void WindTurbineType3or4IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3or4IEC::declare() { return BaseClassDefiner(WindTurbineType3or4IEC::addConstructToMap, WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap, WindTurbineType3or4IEC::addClassAssignFnsToMap, WindTurbineType3or4IEC::debugName); } +std::map WindTurbineType3or4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3or4IEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType3or4IEC.hpp b/CGMES_2.4.15_16FEB2016/WindTurbineType3or4IEC.hpp index 8246ead01..38ece5191 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType3or4IEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType3or4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3or4IEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType4aIEC.cpp b/CGMES_2.4.15_16FEB2016/WindTurbineType4aIEC.cpp index 19a53dd03..9f0e06240 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType4aIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType4aIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4aIEC.WindContPType4aIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4aIEC::WindTurbineType4aIEC() : WindContPType4aIEC(nullptr) {} WindTurbineType4aIEC::~WindTurbineType4aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4aIEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4aIEC.WindContPType4aIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4aIEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4aIEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenType4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContPType4aIEC_WindTurbineType4aIEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindTurbineType4aIEC::debugString() const void WindTurbineType4aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4aIEC", &WindTurbineType4aIEC_factory); + factory_map.emplace("WindTurbineType4aIEC", &WindTurbineType4aIEC_factory); } void WindTurbineType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindTurbineType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4aIEC.WindContPType4aIEC", &assign_WindTurbineType4aIEC_WindContPType4aIEC); + assign_map.emplace("WindTurbineType4aIEC.WindContPType4aIEC", &assign_WindTurbineType4aIEC_WindContPType4aIEC); } void WindTurbineType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindTurbineType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindGenType4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4aIEC.WindContPType4aIEC", &get_WindTurbineType4aIEC_WindContPType4aIEC); + get_map.emplace("WindTurbineType4aIEC.WindContPType4aIEC", &get_WindTurbineType4aIEC_WindContPType4aIEC); } void WindTurbineType4aIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindTurbineType4aIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4aIEC::declare() { return BaseClassDefiner(WindTurbineType4aIEC::addConstructToMap, WindTurbineType4aIEC::addPrimitiveAssignFnsToMap, WindTurbineType4aIEC::addClassAssignFnsToMap, WindTurbineType4aIEC::debugName); } +std::map WindTurbineType4aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenType4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4aIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType4aIEC.hpp b/CGMES_2.4.15_16FEB2016/WindTurbineType4aIEC.hpp index 67bcd203b..86ca66414 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType4aIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType4aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenType4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4aIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType4bIEC.cpp b/CGMES_2.4.15_16FEB2016/WindTurbineType4bIEC.cpp index ad7a668db..51d6e5758 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType4bIEC.cpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType4bIEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4bIEC.WindContPType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType4bIEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4bIEC::WindTurbineType4bIEC() : WindContPType4bIEC(nullptr), WindMechIEC(nullptr) {} WindTurbineType4bIEC::~WindTurbineType4bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4bIEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4bIEC.WindContPType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType4bIEC.WindMechIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4bIEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4bIEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenType4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContPType4bIEC_WindTurbineType4bIEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType4bIEC::debugString() const void WindTurbineType4bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4bIEC", &WindTurbineType4bIEC_factory); + factory_map.emplace("WindTurbineType4bIEC", &WindTurbineType4bIEC_factory); } void WindTurbineType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4bIEC.WindContPType4bIEC", &assign_WindTurbineType4bIEC_WindContPType4bIEC); - assign_map.emplace("cim:WindTurbineType4bIEC.WindMechIEC", &assign_WindTurbineType4bIEC_WindMechIEC); + assign_map.emplace("WindTurbineType4bIEC.WindContPType4bIEC", &assign_WindTurbineType4bIEC_WindContPType4bIEC); + assign_map.emplace("WindTurbineType4bIEC.WindMechIEC", &assign_WindTurbineType4bIEC_WindMechIEC); } void WindTurbineType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindGenType4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4bIEC.WindContPType4bIEC", &get_WindTurbineType4bIEC_WindContPType4bIEC); - get_map.emplace("cim:WindTurbineType4bIEC.WindMechIEC", &get_WindTurbineType4bIEC_WindMechIEC); + get_map.emplace("WindTurbineType4bIEC.WindContPType4bIEC", &get_WindTurbineType4bIEC_WindContPType4bIEC); + get_map.emplace("WindTurbineType4bIEC.WindMechIEC", &get_WindTurbineType4bIEC_WindMechIEC); } void WindTurbineType4bIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType4bIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4bIEC::declare() { return BaseClassDefiner(WindTurbineType4bIEC::addConstructToMap, WindTurbineType4bIEC::addPrimitiveAssignFnsToMap, WindTurbineType4bIEC::addClassAssignFnsToMap, WindTurbineType4bIEC::debugName); } +std::map WindTurbineType4bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenType4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4bIEC_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindTurbineType4bIEC.hpp b/CGMES_2.4.15_16FEB2016/WindTurbineType4bIEC.hpp index 26da27746..5670138a5 100644 --- a/CGMES_2.4.15_16FEB2016/WindTurbineType4bIEC.hpp +++ b/CGMES_2.4.15_16FEB2016/WindTurbineType4bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenType4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4bIEC_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindType1or2UserDefined.cpp b/CGMES_2.4.15_16FEB2016/WindType1or2UserDefined.cpp index be1daa797..07fe6914f 100644 --- a/CGMES_2.4.15_16FEB2016/WindType1or2UserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/WindType1or2UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindType1or2UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindType1or2UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindType1or2UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindType1or2UserDefined::WindType1or2UserDefined() {} WindType1or2UserDefined::~WindType1or2UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindType1or2UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindType1or2UserDefined::getClassNamespaceUrl() const { - { "cim:WindType1or2UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindType1or2UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindType1or2UserDefined::getPossibleProfilesForClass() const +const std::string& WindType1or2UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindType1or2UserDefined::getPossibleProfilesForAttributes() const +const std::list& WindType1or2UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindType1or2UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindType1or2UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindType1or2UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindType1or2UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindType1or2UserDefined::debugString() const void WindType1or2UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindType1or2UserDefined", &WindType1or2UserDefined_factory); + factory_map.emplace("WindType1or2UserDefined", &WindType1or2UserDefined_factory); } void WindType1or2UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType1or2UserDefined.proprietary", &assign_WindType1or2UserDefined_proprietary); + assign_map.emplace("WindType1or2UserDefined.proprietary", &assign_WindType1or2UserDefined_proprietary); } void WindType1or2UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType1or2UserDefined.ProprietaryParameterDynamics", &assign_WindType1or2UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindType1or2UserDefined.ProprietaryParameterDynamics", &assign_WindType1or2UserDefined_ProprietaryParameterDynamics); } void WindType1or2UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindType1or2UserDefined.proprietary", &get_WindType1or2UserDefined_proprietary); + get_map.emplace("WindType1or2UserDefined.proprietary", &get_WindType1or2UserDefined_proprietary); } void WindType1or2UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindType1or2UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindType1or2UserDefined::declare() { return BaseClassDefiner(WindType1or2UserDefined::addConstructToMap, WindType1or2UserDefined::addPrimitiveAssignFnsToMap, WindType1or2UserDefined::addClassAssignFnsToMap, WindType1or2UserDefined::debugName); } +std::map WindType1or2UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindType1or2UserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindType1or2UserDefined.hpp b/CGMES_2.4.15_16FEB2016/WindType1or2UserDefined.hpp index dc0abcc62..58540ba50 100644 --- a/CGMES_2.4.15_16FEB2016/WindType1or2UserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/WindType1or2UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindType1or2UserDefined_factory(); diff --git a/CGMES_2.4.15_16FEB2016/WindType3or4UserDefined.cpp b/CGMES_2.4.15_16FEB2016/WindType3or4UserDefined.cpp index 300908ba4..516e50bfe 100644 --- a/CGMES_2.4.15_16FEB2016/WindType3or4UserDefined.cpp +++ b/CGMES_2.4.15_16FEB2016/WindType3or4UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindType3or4UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindType3or4UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindType3or4UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindType3or4UserDefined::WindType3or4UserDefined() {} WindType3or4UserDefined::~WindType3or4UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindType3or4UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindType3or4UserDefined::getClassNamespaceUrl() const { - { "cim:WindType3or4UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindType3or4UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindType3or4UserDefined::getPossibleProfilesForClass() const +const std::string& WindType3or4UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindType3or4UserDefined::getPossibleProfilesForAttributes() const +const std::list& WindType3or4UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindType3or4UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindType3or4UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindType3or4UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindType3or4UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindType3or4UserDefined::debugString() const void WindType3or4UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindType3or4UserDefined", &WindType3or4UserDefined_factory); + factory_map.emplace("WindType3or4UserDefined", &WindType3or4UserDefined_factory); } void WindType3or4UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType3or4UserDefined.proprietary", &assign_WindType3or4UserDefined_proprietary); + assign_map.emplace("WindType3or4UserDefined.proprietary", &assign_WindType3or4UserDefined_proprietary); } void WindType3or4UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType3or4UserDefined.ProprietaryParameterDynamics", &assign_WindType3or4UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindType3or4UserDefined.ProprietaryParameterDynamics", &assign_WindType3or4UserDefined_ProprietaryParameterDynamics); } void WindType3or4UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindType3or4UserDefined.proprietary", &get_WindType3or4UserDefined_proprietary); + get_map.emplace("WindType3or4UserDefined.proprietary", &get_WindType3or4UserDefined_proprietary); } void WindType3or4UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindType3or4UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindType3or4UserDefined::declare() { return BaseClassDefiner(WindType3or4UserDefined::addConstructToMap, WindType3or4UserDefined::addPrimitiveAssignFnsToMap, WindType3or4UserDefined::addClassAssignFnsToMap, WindType3or4UserDefined::debugName); } +std::map WindType3or4UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindType3or4UserDefined_factory() diff --git a/CGMES_2.4.15_16FEB2016/WindType3or4UserDefined.hpp b/CGMES_2.4.15_16FEB2016/WindType3or4UserDefined.hpp index 5259b5916..c894aab4b 100644 --- a/CGMES_2.4.15_16FEB2016/WindType3or4UserDefined.hpp +++ b/CGMES_2.4.15_16FEB2016/WindType3or4UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindType3or4UserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ACDCConverter.cpp b/CGMES_2.4.15_27JAN2020/ACDCConverter.cpp index 77117a179..d0251298e 100644 --- a/CGMES_2.4.15_27JAN2020/ACDCConverter.cpp +++ b/CGMES_2.4.15_27JAN2020/ACDCConverter.cpp @@ -13,52 +13,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCConverter.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.PccTerminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.baseS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.idc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.idleLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.maxUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.minUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.numberOfValves", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.poleLossP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.resistiveLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.switchingLoss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.targetPpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.targetUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.udc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ACDCConverter.valveU0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCConverter::ACDCConverter() : PccTerminal(nullptr) {} ACDCConverter::~ACDCConverter() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ACDCConverter.DCTerminals", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.PccTerminal", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.baseS", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.idc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.idleLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.maxUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.minUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.numberOfValves", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.p", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.poleLossP", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.q", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.resistiveLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.switchingLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.targetPpcc", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.targetUdc", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.uc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.udc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.valveU0", { CGMESProfile::EQ, } }, -}; - -std::list -ACDCConverter::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ACDCConverter::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ACDCConverter::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ACDCConverter::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ACDCConverter::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ACDCConverter::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACDCConverterDCTerminal_DCConductingEquipment(BaseClass*, BaseClass*); @@ -611,62 +643,62 @@ const char* ACDCConverter::debugString() const void ACDCConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCConverter", &ACDCConverter_factory); + factory_map.emplace("ACDCConverter", &ACDCConverter_factory); } void ACDCConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverter.baseS", &assign_ACDCConverter_baseS); - assign_map.emplace("cim:ACDCConverter.idc", &assign_ACDCConverter_idc); - assign_map.emplace("cim:ACDCConverter.idleLoss", &assign_ACDCConverter_idleLoss); - assign_map.emplace("cim:ACDCConverter.maxUdc", &assign_ACDCConverter_maxUdc); - assign_map.emplace("cim:ACDCConverter.minUdc", &assign_ACDCConverter_minUdc); - assign_map.emplace("cim:ACDCConverter.numberOfValves", &assign_ACDCConverter_numberOfValves); - assign_map.emplace("cim:ACDCConverter.p", &assign_ACDCConverter_p); - assign_map.emplace("cim:ACDCConverter.poleLossP", &assign_ACDCConverter_poleLossP); - assign_map.emplace("cim:ACDCConverter.q", &assign_ACDCConverter_q); - assign_map.emplace("cim:ACDCConverter.ratedUdc", &assign_ACDCConverter_ratedUdc); - assign_map.emplace("cim:ACDCConverter.resistiveLoss", &assign_ACDCConverter_resistiveLoss); - assign_map.emplace("cim:ACDCConverter.switchingLoss", &assign_ACDCConverter_switchingLoss); - assign_map.emplace("cim:ACDCConverter.targetPpcc", &assign_ACDCConverter_targetPpcc); - assign_map.emplace("cim:ACDCConverter.targetUdc", &assign_ACDCConverter_targetUdc); - assign_map.emplace("cim:ACDCConverter.uc", &assign_ACDCConverter_uc); - assign_map.emplace("cim:ACDCConverter.udc", &assign_ACDCConverter_udc); - assign_map.emplace("cim:ACDCConverter.valveU0", &assign_ACDCConverter_valveU0); + assign_map.emplace("ACDCConverter.baseS", &assign_ACDCConverter_baseS); + assign_map.emplace("ACDCConverter.idc", &assign_ACDCConverter_idc); + assign_map.emplace("ACDCConverter.idleLoss", &assign_ACDCConverter_idleLoss); + assign_map.emplace("ACDCConverter.maxUdc", &assign_ACDCConverter_maxUdc); + assign_map.emplace("ACDCConverter.minUdc", &assign_ACDCConverter_minUdc); + assign_map.emplace("ACDCConverter.numberOfValves", &assign_ACDCConverter_numberOfValves); + assign_map.emplace("ACDCConverter.p", &assign_ACDCConverter_p); + assign_map.emplace("ACDCConverter.poleLossP", &assign_ACDCConverter_poleLossP); + assign_map.emplace("ACDCConverter.q", &assign_ACDCConverter_q); + assign_map.emplace("ACDCConverter.ratedUdc", &assign_ACDCConverter_ratedUdc); + assign_map.emplace("ACDCConverter.resistiveLoss", &assign_ACDCConverter_resistiveLoss); + assign_map.emplace("ACDCConverter.switchingLoss", &assign_ACDCConverter_switchingLoss); + assign_map.emplace("ACDCConverter.targetPpcc", &assign_ACDCConverter_targetPpcc); + assign_map.emplace("ACDCConverter.targetUdc", &assign_ACDCConverter_targetUdc); + assign_map.emplace("ACDCConverter.uc", &assign_ACDCConverter_uc); + assign_map.emplace("ACDCConverter.udc", &assign_ACDCConverter_udc); + assign_map.emplace("ACDCConverter.valveU0", &assign_ACDCConverter_valveU0); } void ACDCConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverter.DCTerminals", &assign_ACDCConverter_DCTerminals); - assign_map.emplace("cim:ACDCConverter.PccTerminal", &assign_ACDCConverter_PccTerminal); + assign_map.emplace("ACDCConverter.DCTerminals", &assign_ACDCConverter_DCTerminals); + assign_map.emplace("ACDCConverter.PccTerminal", &assign_ACDCConverter_PccTerminal); } void ACDCConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverter.baseS", &get_ACDCConverter_baseS); - get_map.emplace("cim:ACDCConverter.idc", &get_ACDCConverter_idc); - get_map.emplace("cim:ACDCConverter.idleLoss", &get_ACDCConverter_idleLoss); - get_map.emplace("cim:ACDCConverter.maxUdc", &get_ACDCConverter_maxUdc); - get_map.emplace("cim:ACDCConverter.minUdc", &get_ACDCConverter_minUdc); - get_map.emplace("cim:ACDCConverter.numberOfValves", &get_ACDCConverter_numberOfValves); - get_map.emplace("cim:ACDCConverter.p", &get_ACDCConverter_p); - get_map.emplace("cim:ACDCConverter.poleLossP", &get_ACDCConverter_poleLossP); - get_map.emplace("cim:ACDCConverter.q", &get_ACDCConverter_q); - get_map.emplace("cim:ACDCConverter.ratedUdc", &get_ACDCConverter_ratedUdc); - get_map.emplace("cim:ACDCConverter.resistiveLoss", &get_ACDCConverter_resistiveLoss); - get_map.emplace("cim:ACDCConverter.switchingLoss", &get_ACDCConverter_switchingLoss); - get_map.emplace("cim:ACDCConverter.targetPpcc", &get_ACDCConverter_targetPpcc); - get_map.emplace("cim:ACDCConverter.targetUdc", &get_ACDCConverter_targetUdc); - get_map.emplace("cim:ACDCConverter.uc", &get_ACDCConverter_uc); - get_map.emplace("cim:ACDCConverter.udc", &get_ACDCConverter_udc); - get_map.emplace("cim:ACDCConverter.valveU0", &get_ACDCConverter_valveU0); + get_map.emplace("ACDCConverter.baseS", &get_ACDCConverter_baseS); + get_map.emplace("ACDCConverter.idc", &get_ACDCConverter_idc); + get_map.emplace("ACDCConverter.idleLoss", &get_ACDCConverter_idleLoss); + get_map.emplace("ACDCConverter.maxUdc", &get_ACDCConverter_maxUdc); + get_map.emplace("ACDCConverter.minUdc", &get_ACDCConverter_minUdc); + get_map.emplace("ACDCConverter.numberOfValves", &get_ACDCConverter_numberOfValves); + get_map.emplace("ACDCConverter.p", &get_ACDCConverter_p); + get_map.emplace("ACDCConverter.poleLossP", &get_ACDCConverter_poleLossP); + get_map.emplace("ACDCConverter.q", &get_ACDCConverter_q); + get_map.emplace("ACDCConverter.ratedUdc", &get_ACDCConverter_ratedUdc); + get_map.emplace("ACDCConverter.resistiveLoss", &get_ACDCConverter_resistiveLoss); + get_map.emplace("ACDCConverter.switchingLoss", &get_ACDCConverter_switchingLoss); + get_map.emplace("ACDCConverter.targetPpcc", &get_ACDCConverter_targetPpcc); + get_map.emplace("ACDCConverter.targetUdc", &get_ACDCConverter_targetUdc); + get_map.emplace("ACDCConverter.uc", &get_ACDCConverter_uc); + get_map.emplace("ACDCConverter.udc", &get_ACDCConverter_udc); + get_map.emplace("ACDCConverter.valveU0", &get_ACDCConverter_valveU0); } void ACDCConverter::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverter.PccTerminal", &get_ACDCConverter_PccTerminal); + get_map.emplace("ACDCConverter.PccTerminal", &get_ACDCConverter_PccTerminal); } void ACDCConverter::addEnumGetFnsToMap(std::map& get_map) const @@ -674,11 +706,25 @@ void ACDCConverter::addEnumGetFnsToMap(std::map& get_ ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool ACDCConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCConverter" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACDCConverter::declare() { return BaseClassDefiner(ACDCConverter::addConstructToMap, ACDCConverter::addPrimitiveAssignFnsToMap, ACDCConverter::addClassAssignFnsToMap, ACDCConverter::debugName); } +std::map ACDCConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCConverter_factory() diff --git a/CGMES_2.4.15_27JAN2020/ACDCConverter.hpp b/CGMES_2.4.15_27JAN2020/ACDCConverter.hpp index 1621353d5..2c9df5033 100644 --- a/CGMES_2.4.15_27JAN2020/ACDCConverter.hpp +++ b/CGMES_2.4.15_27JAN2020/ACDCConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ActivePowerPerCurrentFlow.hpp" #include "ApparentPower.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCConverter_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ACDCConverterDCTerminal.cpp b/CGMES_2.4.15_27JAN2020/ACDCConverterDCTerminal.cpp index 1f445f5c1..ab15f2903 100644 --- a/CGMES_2.4.15_27JAN2020/ACDCConverterDCTerminal.cpp +++ b/CGMES_2.4.15_27JAN2020/ACDCConverterDCTerminal.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCConverterDCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCConverterDCTerminal.DCConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCConverterDCTerminal.polarity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCConverterDCTerminal::ACDCConverterDCTerminal() : DCConductingEquipment(nullptr) {} ACDCConverterDCTerminal::~ACDCConverterDCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& ACDCConverterDCTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACDCConverterDCTerminal::getClassNamespaceUrl() const { - { "cim:ACDCConverterDCTerminal.DCConductingEquipment", { CGMESProfile::EQ, } }, - { "cim:ACDCConverterDCTerminal.polarity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACDCConverterDCTerminal::getPossibleProfilesForClass() const +const std::string& ACDCConverterDCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACDCConverterDCTerminal::getPossibleProfilesForAttributes() const +const std::list& ACDCConverterDCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCBaseTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCConverterDCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCConverterDCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCConverterDCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACDCConverter_DCTerminals(BaseClass*, BaseClass*); @@ -111,17 +143,17 @@ const char* ACDCConverterDCTerminal::debugString() const void ACDCConverterDCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCConverterDCTerminal", &ACDCConverterDCTerminal_factory); + factory_map.emplace("ACDCConverterDCTerminal", &ACDCConverterDCTerminal_factory); } void ACDCConverterDCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverterDCTerminal.polarity", &assign_ACDCConverterDCTerminal_polarity); + assign_map.emplace("ACDCConverterDCTerminal.polarity", &assign_ACDCConverterDCTerminal_polarity); } void ACDCConverterDCTerminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverterDCTerminal.DCConductingEquipment", &assign_ACDCConverterDCTerminal_DCConductingEquipment); + assign_map.emplace("ACDCConverterDCTerminal.DCConductingEquipment", &assign_ACDCConverterDCTerminal_DCConductingEquipment); } void ACDCConverterDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -132,13 +164,19 @@ void ACDCConverterDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverterDCTerminal.DCConductingEquipment", &get_ACDCConverterDCTerminal_DCConductingEquipment); + get_map.emplace("ACDCConverterDCTerminal.DCConductingEquipment", &get_ACDCConverterDCTerminal_DCConductingEquipment); } void ACDCConverterDCTerminal::addEnumGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverterDCTerminal.polarity", &get_ACDCConverterDCTerminal_polarity); + get_map.emplace("ACDCConverterDCTerminal.polarity", &get_ACDCConverterDCTerminal_polarity); +} + +bool ACDCConverterDCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCConverterDCTerminal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ACDCConverterDCTerminal::declare() @@ -146,6 +184,14 @@ const BaseClassDefiner ACDCConverterDCTerminal::declare() return BaseClassDefiner(ACDCConverterDCTerminal::addConstructToMap, ACDCConverterDCTerminal::addPrimitiveAssignFnsToMap, ACDCConverterDCTerminal::addClassAssignFnsToMap, ACDCConverterDCTerminal::debugName); } +std::map ACDCConverterDCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCBaseTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCConverterDCTerminal_factory() diff --git a/CGMES_2.4.15_27JAN2020/ACDCConverterDCTerminal.hpp b/CGMES_2.4.15_27JAN2020/ACDCConverterDCTerminal.hpp index f8cebc33a..1800bd6a4 100644 --- a/CGMES_2.4.15_27JAN2020/ACDCConverterDCTerminal.hpp +++ b/CGMES_2.4.15_27JAN2020/ACDCConverterDCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCBaseTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DCPolarityKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCConverterDCTerminal_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ACDCTerminal.cpp b/CGMES_2.4.15_27JAN2020/ACDCTerminal.cpp index d4cc5c048..4e51e15ed 100644 --- a/CGMES_2.4.15_27JAN2020/ACDCTerminal.cpp +++ b/CGMES_2.4.15_27JAN2020/ACDCTerminal.cpp @@ -14,40 +14,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCTerminal.BusNameMarker", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.connected", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ACDCTerminal.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCTerminal::ACDCTerminal() : BusNameMarker(nullptr) {} ACDCTerminal::~ACDCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& ACDCTerminal::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACDCTerminal::getClassNamespaceUrl() const { - { "cim:ACDCTerminal.BusNameMarker", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.Measurements", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.connected", { CGMESProfile::SSH, } }, - { "cim:ACDCTerminal.sequenceNumber", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACDCTerminal::getPossibleProfilesForClass() const +const std::string& ACDCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACDCTerminal::getPossibleProfilesForAttributes() const +const std::list& ACDCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusNameMarker_Terminal(BaseClass*, BaseClass*); @@ -183,33 +215,33 @@ const char* ACDCTerminal::debugString() const void ACDCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCTerminal", &ACDCTerminal_factory); + factory_map.emplace("ACDCTerminal", &ACDCTerminal_factory); } void ACDCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCTerminal.connected", &assign_ACDCTerminal_connected); - assign_map.emplace("cim:ACDCTerminal.sequenceNumber", &assign_ACDCTerminal_sequenceNumber); + assign_map.emplace("ACDCTerminal.connected", &assign_ACDCTerminal_connected); + assign_map.emplace("ACDCTerminal.sequenceNumber", &assign_ACDCTerminal_sequenceNumber); } void ACDCTerminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCTerminal.BusNameMarker", &assign_ACDCTerminal_BusNameMarker); - assign_map.emplace("cim:ACDCTerminal.Measurements", &assign_ACDCTerminal_Measurements); - assign_map.emplace("cim:ACDCTerminal.OperationalLimitSet", &assign_ACDCTerminal_OperationalLimitSet); + assign_map.emplace("ACDCTerminal.BusNameMarker", &assign_ACDCTerminal_BusNameMarker); + assign_map.emplace("ACDCTerminal.Measurements", &assign_ACDCTerminal_Measurements); + assign_map.emplace("ACDCTerminal.OperationalLimitSet", &assign_ACDCTerminal_OperationalLimitSet); } void ACDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACDCTerminal.connected", &get_ACDCTerminal_connected); - get_map.emplace("cim:ACDCTerminal.sequenceNumber", &get_ACDCTerminal_sequenceNumber); + get_map.emplace("ACDCTerminal.connected", &get_ACDCTerminal_connected); + get_map.emplace("ACDCTerminal.sequenceNumber", &get_ACDCTerminal_sequenceNumber); } void ACDCTerminal::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCTerminal.BusNameMarker", &get_ACDCTerminal_BusNameMarker); + get_map.emplace("ACDCTerminal.BusNameMarker", &get_ACDCTerminal_BusNameMarker); } void ACDCTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -217,11 +249,25 @@ void ACDCTerminal::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ACDCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACDCTerminal::declare() { return BaseClassDefiner(ACDCTerminal::addConstructToMap, ACDCTerminal::addPrimitiveAssignFnsToMap, ACDCTerminal::addClassAssignFnsToMap, ACDCTerminal::debugName); } +std::map ACDCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCTerminal_factory() diff --git a/CGMES_2.4.15_27JAN2020/ACDCTerminal.hpp b/CGMES_2.4.15_27JAN2020/ACDCTerminal.hpp index ed29f46b5..d25cb3674 100644 --- a/CGMES_2.4.15_27JAN2020/ACDCTerminal.hpp +++ b/CGMES_2.4.15_27JAN2020/ACDCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCTerminal_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ACLineSegment.cpp b/CGMES_2.4.15_27JAN2020/ACLineSegment.cpp index baecc7103..850a73416 100644 --- a/CGMES_2.4.15_27JAN2020/ACLineSegment.cpp +++ b/CGMES_2.4.15_27JAN2020/ACLineSegment.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACLineSegment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACLineSegment.b0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.bch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.g0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.gch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.shortCircuitEndTemperature", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACLineSegment::ACLineSegment() {} ACLineSegment::~ACLineSegment() {} -static const std::list PossibleProfilesForClass = +const std::list& ACLineSegment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACLineSegment::getClassNamespaceUrl() const { - { "cim:ACLineSegment.b0ch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.bch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.g0ch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.gch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.r", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.r0", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.shortCircuitEndTemperature", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.x", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACLineSegment::getPossibleProfilesForClass() const +const std::string& ACLineSegment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACLineSegment::getPossibleProfilesForAttributes() const +const std::list& ACLineSegment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Conductor::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACLineSegment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACLineSegment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACLineSegment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACLineSegment_b0ch(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ACLineSegment::debugString() const void ACLineSegment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACLineSegment", &ACLineSegment_factory); + factory_map.emplace("ACLineSegment", &ACLineSegment_factory); } void ACLineSegment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACLineSegment.b0ch", &assign_ACLineSegment_b0ch); - assign_map.emplace("cim:ACLineSegment.bch", &assign_ACLineSegment_bch); - assign_map.emplace("cim:ACLineSegment.g0ch", &assign_ACLineSegment_g0ch); - assign_map.emplace("cim:ACLineSegment.gch", &assign_ACLineSegment_gch); - assign_map.emplace("cim:ACLineSegment.r", &assign_ACLineSegment_r); - assign_map.emplace("cim:ACLineSegment.r0", &assign_ACLineSegment_r0); - assign_map.emplace("cim:ACLineSegment.shortCircuitEndTemperature", &assign_ACLineSegment_shortCircuitEndTemperature); - assign_map.emplace("cim:ACLineSegment.x", &assign_ACLineSegment_x); - assign_map.emplace("cim:ACLineSegment.x0", &assign_ACLineSegment_x0); + assign_map.emplace("ACLineSegment.b0ch", &assign_ACLineSegment_b0ch); + assign_map.emplace("ACLineSegment.bch", &assign_ACLineSegment_bch); + assign_map.emplace("ACLineSegment.g0ch", &assign_ACLineSegment_g0ch); + assign_map.emplace("ACLineSegment.gch", &assign_ACLineSegment_gch); + assign_map.emplace("ACLineSegment.r", &assign_ACLineSegment_r); + assign_map.emplace("ACLineSegment.r0", &assign_ACLineSegment_r0); + assign_map.emplace("ACLineSegment.shortCircuitEndTemperature", &assign_ACLineSegment_shortCircuitEndTemperature); + assign_map.emplace("ACLineSegment.x", &assign_ACLineSegment_x); + assign_map.emplace("ACLineSegment.x0", &assign_ACLineSegment_x0); } void ACLineSegment::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ACLineSegment::addClassAssignFnsToMap(std::unordered_map& get_map) const { Conductor::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACLineSegment.b0ch", &get_ACLineSegment_b0ch); - get_map.emplace("cim:ACLineSegment.bch", &get_ACLineSegment_bch); - get_map.emplace("cim:ACLineSegment.g0ch", &get_ACLineSegment_g0ch); - get_map.emplace("cim:ACLineSegment.gch", &get_ACLineSegment_gch); - get_map.emplace("cim:ACLineSegment.r", &get_ACLineSegment_r); - get_map.emplace("cim:ACLineSegment.r0", &get_ACLineSegment_r0); - get_map.emplace("cim:ACLineSegment.shortCircuitEndTemperature", &get_ACLineSegment_shortCircuitEndTemperature); - get_map.emplace("cim:ACLineSegment.x", &get_ACLineSegment_x); - get_map.emplace("cim:ACLineSegment.x0", &get_ACLineSegment_x0); + get_map.emplace("ACLineSegment.b0ch", &get_ACLineSegment_b0ch); + get_map.emplace("ACLineSegment.bch", &get_ACLineSegment_bch); + get_map.emplace("ACLineSegment.g0ch", &get_ACLineSegment_g0ch); + get_map.emplace("ACLineSegment.gch", &get_ACLineSegment_gch); + get_map.emplace("ACLineSegment.r", &get_ACLineSegment_r); + get_map.emplace("ACLineSegment.r0", &get_ACLineSegment_r0); + get_map.emplace("ACLineSegment.shortCircuitEndTemperature", &get_ACLineSegment_shortCircuitEndTemperature); + get_map.emplace("ACLineSegment.x", &get_ACLineSegment_x); + get_map.emplace("ACLineSegment.x0", &get_ACLineSegment_x0); } void ACLineSegment::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ACLineSegment::addEnumGetFnsToMap(std::map& get_ Conductor::addEnumGetFnsToMap(get_map); } +bool ACLineSegment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACLineSegment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACLineSegment::declare() { return BaseClassDefiner(ACLineSegment::addConstructToMap, ACLineSegment::addPrimitiveAssignFnsToMap, ACLineSegment::addClassAssignFnsToMap, ACLineSegment::debugName); } +std::map ACLineSegment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Conductor::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACLineSegment_factory() diff --git a/CGMES_2.4.15_27JAN2020/ACLineSegment.hpp b/CGMES_2.4.15_27JAN2020/ACLineSegment.hpp index 21be2e6c6..22fe1df59 100644 --- a/CGMES_2.4.15_27JAN2020/ACLineSegment.hpp +++ b/CGMES_2.4.15_27JAN2020/ACLineSegment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Conductor.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Reactance.hpp" #include "Resistance.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACLineSegment_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Accumulator.cpp b/CGMES_2.4.15_27JAN2020/Accumulator.cpp index 0f56cb3a0..dbf2c1230 100644 --- a/CGMES_2.4.15_27JAN2020/Accumulator.cpp +++ b/CGMES_2.4.15_27JAN2020/Accumulator.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Accumulator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Accumulator.AccumulatorValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Accumulator.LimitSets", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Accumulator::Accumulator() {} Accumulator::~Accumulator() {} -static const std::list PossibleProfilesForClass = +const std::list& Accumulator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Accumulator::getClassNamespaceUrl() const { - { "cim:Accumulator.AccumulatorValues", { CGMESProfile::EQ, } }, - { "cim:Accumulator.LimitSets", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Accumulator::getPossibleProfilesForClass() const +const std::string& Accumulator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Accumulator::getPossibleProfilesForAttributes() const +const std::list& Accumulator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Accumulator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Accumulator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Accumulator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorValue_Accumulator(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* Accumulator::debugString() const void Accumulator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Accumulator", &Accumulator_factory); + factory_map.emplace("Accumulator", &Accumulator_factory); } void Accumulator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void Accumulator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Accumulator.AccumulatorValues", &assign_Accumulator_AccumulatorValues); - assign_map.emplace("cim:Accumulator.LimitSets", &assign_Accumulator_LimitSets); + assign_map.emplace("Accumulator.AccumulatorValues", &assign_Accumulator_AccumulatorValues); + assign_map.emplace("Accumulator.LimitSets", &assign_Accumulator_LimitSets); } void Accumulator::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void Accumulator::addEnumGetFnsToMap(std::map& get_ma Measurement::addEnumGetFnsToMap(get_map); } +bool Accumulator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Accumulator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Accumulator::declare() { return BaseClassDefiner(Accumulator::addConstructToMap, Accumulator::addPrimitiveAssignFnsToMap, Accumulator::addClassAssignFnsToMap, Accumulator::debugName); } +std::map Accumulator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Accumulator_factory() diff --git a/CGMES_2.4.15_27JAN2020/Accumulator.hpp b/CGMES_2.4.15_27JAN2020/Accumulator.hpp index 0ea3177cb..e618a77ec 100644 --- a/CGMES_2.4.15_27JAN2020/Accumulator.hpp +++ b/CGMES_2.4.15_27JAN2020/Accumulator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Accumulator_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AccumulatorLimit.cpp b/CGMES_2.4.15_27JAN2020/AccumulatorLimit.cpp index f04f7dc98..79be5abaf 100644 --- a/CGMES_2.4.15_27JAN2020/AccumulatorLimit.cpp +++ b/CGMES_2.4.15_27JAN2020/AccumulatorLimit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorLimit.LimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorLimit::AccumulatorLimit() : LimitSet(nullptr) {} AccumulatorLimit::~AccumulatorLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorLimit::getClassNamespaceUrl() const { - { "cim:AccumulatorLimit.LimitSet", { CGMESProfile::EQ, } }, - { "cim:AccumulatorLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorLimit::getPossibleProfilesForClass() const +const std::string& AccumulatorLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorLimit::getPossibleProfilesForAttributes() const +const std::list& AccumulatorLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Limit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorLimitSet_Limits(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* AccumulatorLimit::debugString() const void AccumulatorLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorLimit", &AccumulatorLimit_factory); + factory_map.emplace("AccumulatorLimit", &AccumulatorLimit_factory); } void AccumulatorLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimit.value", &assign_AccumulatorLimit_value); + assign_map.emplace("AccumulatorLimit.value", &assign_AccumulatorLimit_value); } void AccumulatorLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimit.LimitSet", &assign_AccumulatorLimit_LimitSet); + assign_map.emplace("AccumulatorLimit.LimitSet", &assign_AccumulatorLimit_LimitSet); } void AccumulatorLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { Limit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimit.value", &get_AccumulatorLimit_value); + get_map.emplace("AccumulatorLimit.value", &get_AccumulatorLimit_value); } void AccumulatorLimit::addClassGetFnsToMap(std::map& get_map) const { Limit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimit.LimitSet", &get_AccumulatorLimit_LimitSet); + get_map.emplace("AccumulatorLimit.LimitSet", &get_AccumulatorLimit_LimitSet); } void AccumulatorLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void AccumulatorLimit::addEnumGetFnsToMap(std::map& g Limit::addEnumGetFnsToMap(get_map); } +bool AccumulatorLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorLimit::declare() { return BaseClassDefiner(AccumulatorLimit::addConstructToMap, AccumulatorLimit::addPrimitiveAssignFnsToMap, AccumulatorLimit::addClassAssignFnsToMap, AccumulatorLimit::debugName); } +std::map AccumulatorLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Limit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorLimit_factory() diff --git a/CGMES_2.4.15_27JAN2020/AccumulatorLimit.hpp b/CGMES_2.4.15_27JAN2020/AccumulatorLimit.hpp index e49dffefb..dbf326d27 100644 --- a/CGMES_2.4.15_27JAN2020/AccumulatorLimit.hpp +++ b/CGMES_2.4.15_27JAN2020/AccumulatorLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Limit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorLimit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AccumulatorLimitSet.cpp b/CGMES_2.4.15_27JAN2020/AccumulatorLimitSet.cpp index d67146814..dfa36c92d 100644 --- a/CGMES_2.4.15_27JAN2020/AccumulatorLimitSet.cpp +++ b/CGMES_2.4.15_27JAN2020/AccumulatorLimitSet.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorLimitSet.Limits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorLimitSet.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorLimitSet::AccumulatorLimitSet() {} AccumulatorLimitSet::~AccumulatorLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorLimitSet::getClassNamespaceUrl() const { - { "cim:AccumulatorLimitSet.Limits", { CGMESProfile::EQ, } }, - { "cim:AccumulatorLimitSet.Measurements", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorLimitSet::getPossibleProfilesForClass() const +const std::string& AccumulatorLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorLimitSet::getPossibleProfilesForAttributes() const +const std::list& AccumulatorLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LimitSet::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorLimit_LimitSet(BaseClass*, BaseClass*); @@ -96,7 +128,7 @@ const char* AccumulatorLimitSet::debugString() const void AccumulatorLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorLimitSet", &AccumulatorLimitSet_factory); + factory_map.emplace("AccumulatorLimitSet", &AccumulatorLimitSet_factory); } void AccumulatorLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -105,8 +137,8 @@ void AccumulatorLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimitSet.Limits", &assign_AccumulatorLimitSet_Limits); - assign_map.emplace("cim:AccumulatorLimitSet.Measurements", &assign_AccumulatorLimitSet_Measurements); + assign_map.emplace("AccumulatorLimitSet.Limits", &assign_AccumulatorLimitSet_Limits); + assign_map.emplace("AccumulatorLimitSet.Measurements", &assign_AccumulatorLimitSet_Measurements); } void AccumulatorLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,7 +149,7 @@ void AccumulatorLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { LimitSet::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimitSet.Measurements", &get_AccumulatorLimitSet_Measurements); + get_map.emplace("AccumulatorLimitSet.Measurements", &get_AccumulatorLimitSet_Measurements); } void AccumulatorLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AccumulatorLimitSet::addEnumGetFnsToMap(std::map LimitSet::addEnumGetFnsToMap(get_map); } +bool AccumulatorLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorLimitSet::declare() { return BaseClassDefiner(AccumulatorLimitSet::addConstructToMap, AccumulatorLimitSet::addPrimitiveAssignFnsToMap, AccumulatorLimitSet::addClassAssignFnsToMap, AccumulatorLimitSet::debugName); } +std::map AccumulatorLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LimitSet::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorLimitSet_factory() diff --git a/CGMES_2.4.15_27JAN2020/AccumulatorLimitSet.hpp b/CGMES_2.4.15_27JAN2020/AccumulatorLimitSet.hpp index 3da387ef1..142613424 100644 --- a/CGMES_2.4.15_27JAN2020/AccumulatorLimitSet.hpp +++ b/CGMES_2.4.15_27JAN2020/AccumulatorLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LimitSet.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorLimitSet_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AccumulatorReset.cpp b/CGMES_2.4.15_27JAN2020/AccumulatorReset.cpp index ae3e698db..1cfdba4f7 100644 --- a/CGMES_2.4.15_27JAN2020/AccumulatorReset.cpp +++ b/CGMES_2.4.15_27JAN2020/AccumulatorReset.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorReset(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorReset.AccumulatorValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorReset::AccumulatorReset() : AccumulatorValue(nullptr) {} AccumulatorReset::~AccumulatorReset() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorReset::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorReset::getClassNamespaceUrl() const { - { "cim:AccumulatorReset.AccumulatorValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorReset::getPossibleProfilesForClass() const +const std::string& AccumulatorReset::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorReset::getPossibleProfilesForAttributes() const +const std::list& AccumulatorReset::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorReset::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorReset::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorReset::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorValue_AccumulatorReset(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* AccumulatorReset::debugString() const void AccumulatorReset::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorReset", &AccumulatorReset_factory); + factory_map.emplace("AccumulatorReset", &AccumulatorReset_factory); } void AccumulatorReset::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void AccumulatorReset::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorReset.AccumulatorValue", &assign_AccumulatorReset_AccumulatorValue); + assign_map.emplace("AccumulatorReset.AccumulatorValue", &assign_AccumulatorReset_AccumulatorValue); } void AccumulatorReset::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void AccumulatorReset::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorReset.AccumulatorValue", &get_AccumulatorReset_AccumulatorValue); + get_map.emplace("AccumulatorReset.AccumulatorValue", &get_AccumulatorReset_AccumulatorValue); } void AccumulatorReset::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void AccumulatorReset::addEnumGetFnsToMap(std::map& g Control::addEnumGetFnsToMap(get_map); } +bool AccumulatorReset::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorReset" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorReset::declare() { return BaseClassDefiner(AccumulatorReset::addConstructToMap, AccumulatorReset::addPrimitiveAssignFnsToMap, AccumulatorReset::addClassAssignFnsToMap, AccumulatorReset::debugName); } +std::map AccumulatorReset::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorReset_factory() diff --git a/CGMES_2.4.15_27JAN2020/AccumulatorReset.hpp b/CGMES_2.4.15_27JAN2020/AccumulatorReset.hpp index 8c35f6e44..60642f1ec 100644 --- a/CGMES_2.4.15_27JAN2020/AccumulatorReset.hpp +++ b/CGMES_2.4.15_27JAN2020/AccumulatorReset.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorReset_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AccumulatorValue.cpp b/CGMES_2.4.15_27JAN2020/AccumulatorValue.cpp index 7311c3091..d9c2c4b05 100644 --- a/CGMES_2.4.15_27JAN2020/AccumulatorValue.cpp +++ b/CGMES_2.4.15_27JAN2020/AccumulatorValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorValue.Accumulator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorValue.AccumulatorReset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AccumulatorValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorValue::AccumulatorValue() : Accumulator(nullptr), AccumulatorReset(nullptr) {} AccumulatorValue::~AccumulatorValue() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorValue::getClassNamespaceUrl() const { - { "cim:AccumulatorValue.Accumulator", { CGMESProfile::EQ, } }, - { "cim:AccumulatorValue.AccumulatorReset", { CGMESProfile::EQ, } }, - { "cim:AccumulatorValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorValue::getPossibleProfilesForClass() const +const std::string& AccumulatorValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorValue::getPossibleProfilesForAttributes() const +const std::list& AccumulatorValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Accumulator_AccumulatorValues(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* AccumulatorValue::debugString() const void AccumulatorValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorValue", &AccumulatorValue_factory); + factory_map.emplace("AccumulatorValue", &AccumulatorValue_factory); } void AccumulatorValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorValue.value", &assign_AccumulatorValue_value); + assign_map.emplace("AccumulatorValue.value", &assign_AccumulatorValue_value); } void AccumulatorValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorValue.Accumulator", &assign_AccumulatorValue_Accumulator); - assign_map.emplace("cim:AccumulatorValue.AccumulatorReset", &assign_AccumulatorValue_AccumulatorReset); + assign_map.emplace("AccumulatorValue.Accumulator", &assign_AccumulatorValue_Accumulator); + assign_map.emplace("AccumulatorValue.AccumulatorReset", &assign_AccumulatorValue_AccumulatorReset); } void AccumulatorValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorValue.value", &get_AccumulatorValue_value); + get_map.emplace("AccumulatorValue.value", &get_AccumulatorValue_value); } void AccumulatorValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorValue.Accumulator", &get_AccumulatorValue_Accumulator); + get_map.emplace("AccumulatorValue.Accumulator", &get_AccumulatorValue_Accumulator); } void AccumulatorValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void AccumulatorValue::addEnumGetFnsToMap(std::map& g MeasurementValue::addEnumGetFnsToMap(get_map); } +bool AccumulatorValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorValue::declare() { return BaseClassDefiner(AccumulatorValue::addConstructToMap, AccumulatorValue::addPrimitiveAssignFnsToMap, AccumulatorValue::addClassAssignFnsToMap, AccumulatorValue::debugName); } +std::map AccumulatorValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorValue_factory() diff --git a/CGMES_2.4.15_27JAN2020/AccumulatorValue.hpp b/CGMES_2.4.15_27JAN2020/AccumulatorValue.hpp index 3a573eb45..9836f908f 100644 --- a/CGMES_2.4.15_27JAN2020/AccumulatorValue.hpp +++ b/CGMES_2.4.15_27JAN2020/AccumulatorValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorValue_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ActivePowerLimit.cpp b/CGMES_2.4.15_27JAN2020/ActivePowerLimit.cpp index d05a279c9..c4a2010d1 100644 --- a/CGMES_2.4.15_27JAN2020/ActivePowerLimit.cpp +++ b/CGMES_2.4.15_27JAN2020/ActivePowerLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ActivePowerLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ActivePowerLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ActivePowerLimit::ActivePowerLimit() {} ActivePowerLimit::~ActivePowerLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& ActivePowerLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ActivePowerLimit::getClassNamespaceUrl() const { - { "cim:ActivePowerLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ActivePowerLimit::getPossibleProfilesForClass() const +const std::string& ActivePowerLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ActivePowerLimit::getPossibleProfilesForAttributes() const +const std::list& ActivePowerLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ActivePowerLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ActivePowerLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ActivePowerLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ActivePowerLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* ActivePowerLimit::debugString() const void ActivePowerLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ActivePowerLimit", &ActivePowerLimit_factory); + factory_map.emplace("ActivePowerLimit", &ActivePowerLimit_factory); } void ActivePowerLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ActivePowerLimit.value", &assign_ActivePowerLimit_value); + assign_map.emplace("ActivePowerLimit.value", &assign_ActivePowerLimit_value); } void ActivePowerLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void ActivePowerLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ActivePowerLimit.value", &get_ActivePowerLimit_value); + get_map.emplace("ActivePowerLimit.value", &get_ActivePowerLimit_value); } void ActivePowerLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void ActivePowerLimit::addEnumGetFnsToMap(std::map& g OperationalLimit::addEnumGetFnsToMap(get_map); } +bool ActivePowerLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ActivePowerLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ActivePowerLimit::declare() { return BaseClassDefiner(ActivePowerLimit::addConstructToMap, ActivePowerLimit::addPrimitiveAssignFnsToMap, ActivePowerLimit::addClassAssignFnsToMap, ActivePowerLimit::debugName); } +std::map ActivePowerLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ActivePowerLimit_factory() diff --git a/CGMES_2.4.15_27JAN2020/ActivePowerLimit.hpp b/CGMES_2.4.15_27JAN2020/ActivePowerLimit.hpp index cdf99235b..ce13f59df 100644 --- a/CGMES_2.4.15_27JAN2020/ActivePowerLimit.hpp +++ b/CGMES_2.4.15_27JAN2020/ActivePowerLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ActivePowerLimit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Analog.cpp b/CGMES_2.4.15_27JAN2020/Analog.cpp index d11d78a05..3d4b3da38 100644 --- a/CGMES_2.4.15_27JAN2020/Analog.cpp +++ b/CGMES_2.4.15_27JAN2020/Analog.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Analog(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Analog.AnalogValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Analog.LimitSets", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Analog.positiveFlowIn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Analog::Analog() {} Analog::~Analog() {} -static const std::list PossibleProfilesForClass = +const std::list& Analog::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Analog::getClassNamespaceUrl() const { - { "cim:Analog.AnalogValues", { CGMESProfile::EQ, } }, - { "cim:Analog.LimitSets", { CGMESProfile::EQ, } }, - { "cim:Analog.positiveFlowIn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Analog::getPossibleProfilesForClass() const +const std::string& Analog::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Analog::getPossibleProfilesForAttributes() const +const std::list& Analog::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Analog::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Analog::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Analog::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogValue_Analog(BaseClass*, BaseClass*); @@ -116,24 +148,24 @@ const char* Analog::debugString() const void Analog::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Analog", &Analog_factory); + factory_map.emplace("Analog", &Analog_factory); } void Analog::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Analog.positiveFlowIn", &assign_Analog_positiveFlowIn); + assign_map.emplace("Analog.positiveFlowIn", &assign_Analog_positiveFlowIn); } void Analog::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Analog.AnalogValues", &assign_Analog_AnalogValues); - assign_map.emplace("cim:Analog.LimitSets", &assign_Analog_LimitSets); + assign_map.emplace("Analog.AnalogValues", &assign_Analog_AnalogValues); + assign_map.emplace("Analog.LimitSets", &assign_Analog_LimitSets); } void Analog::addPrimitiveGetFnsToMap(std::map& get_map) const { Measurement::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Analog.positiveFlowIn", &get_Analog_positiveFlowIn); + get_map.emplace("Analog.positiveFlowIn", &get_Analog_positiveFlowIn); } void Analog::addClassGetFnsToMap(std::map& get_map) const @@ -146,11 +178,25 @@ void Analog::addEnumGetFnsToMap(std::map& get_map) co Measurement::addEnumGetFnsToMap(get_map); } +bool Analog::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Analog" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Analog::declare() { return BaseClassDefiner(Analog::addConstructToMap, Analog::addPrimitiveAssignFnsToMap, Analog::addClassAssignFnsToMap, Analog::debugName); } +std::map Analog::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Analog_factory() diff --git a/CGMES_2.4.15_27JAN2020/Analog.hpp b/CGMES_2.4.15_27JAN2020/Analog.hpp index 38ba38c37..e935c564b 100644 --- a/CGMES_2.4.15_27JAN2020/Analog.hpp +++ b/CGMES_2.4.15_27JAN2020/Analog.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Analog_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AnalogControl.cpp b/CGMES_2.4.15_27JAN2020/AnalogControl.cpp index aba858065..6070983bc 100644 --- a/CGMES_2.4.15_27JAN2020/AnalogControl.cpp +++ b/CGMES_2.4.15_27JAN2020/AnalogControl.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogControl.AnalogValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogControl.maxValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogControl.minValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogControl::AnalogControl() : AnalogValue(nullptr) {} AnalogControl::~AnalogControl() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogControl::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogControl::getClassNamespaceUrl() const { - { "cim:AnalogControl.AnalogValue", { CGMESProfile::EQ, } }, - { "cim:AnalogControl.maxValue", { CGMESProfile::EQ, } }, - { "cim:AnalogControl.minValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogControl::getPossibleProfilesForClass() const +const std::string& AnalogControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogControl::getPossibleProfilesForAttributes() const +const std::list& AnalogControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogValue_AnalogControl(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* AnalogControl::debugString() const void AnalogControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogControl", &AnalogControl_factory); + factory_map.emplace("AnalogControl", &AnalogControl_factory); } void AnalogControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogControl.maxValue", &assign_AnalogControl_maxValue); - assign_map.emplace("cim:AnalogControl.minValue", &assign_AnalogControl_minValue); + assign_map.emplace("AnalogControl.maxValue", &assign_AnalogControl_maxValue); + assign_map.emplace("AnalogControl.minValue", &assign_AnalogControl_minValue); } void AnalogControl::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogControl.AnalogValue", &assign_AnalogControl_AnalogValue); + assign_map.emplace("AnalogControl.AnalogValue", &assign_AnalogControl_AnalogValue); } void AnalogControl::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogControl.maxValue", &get_AnalogControl_maxValue); - get_map.emplace("cim:AnalogControl.minValue", &get_AnalogControl_minValue); + get_map.emplace("AnalogControl.maxValue", &get_AnalogControl_maxValue); + get_map.emplace("AnalogControl.minValue", &get_AnalogControl_minValue); } void AnalogControl::addClassGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogControl.AnalogValue", &get_AnalogControl_AnalogValue); + get_map.emplace("AnalogControl.AnalogValue", &get_AnalogControl_AnalogValue); } void AnalogControl::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void AnalogControl::addEnumGetFnsToMap(std::map& get_ Control::addEnumGetFnsToMap(get_map); } +bool AnalogControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogControl" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogControl::declare() { return BaseClassDefiner(AnalogControl::addConstructToMap, AnalogControl::addPrimitiveAssignFnsToMap, AnalogControl::addClassAssignFnsToMap, AnalogControl::debugName); } +std::map AnalogControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogControl_factory() diff --git a/CGMES_2.4.15_27JAN2020/AnalogControl.hpp b/CGMES_2.4.15_27JAN2020/AnalogControl.hpp index 8185c302e..9f13d988f 100644 --- a/CGMES_2.4.15_27JAN2020/AnalogControl.hpp +++ b/CGMES_2.4.15_27JAN2020/AnalogControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogControl_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AnalogLimit.cpp b/CGMES_2.4.15_27JAN2020/AnalogLimit.cpp index 007d1c5d0..2997f3652 100644 --- a/CGMES_2.4.15_27JAN2020/AnalogLimit.cpp +++ b/CGMES_2.4.15_27JAN2020/AnalogLimit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogLimit.LimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogLimit::AnalogLimit() : LimitSet(nullptr) {} AnalogLimit::~AnalogLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogLimit::getClassNamespaceUrl() const { - { "cim:AnalogLimit.LimitSet", { CGMESProfile::EQ, } }, - { "cim:AnalogLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogLimit::getPossibleProfilesForClass() const +const std::string& AnalogLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogLimit::getPossibleProfilesForAttributes() const +const std::list& AnalogLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Limit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogLimitSet_Limits(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* AnalogLimit::debugString() const void AnalogLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogLimit", &AnalogLimit_factory); + factory_map.emplace("AnalogLimit", &AnalogLimit_factory); } void AnalogLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimit.value", &assign_AnalogLimit_value); + assign_map.emplace("AnalogLimit.value", &assign_AnalogLimit_value); } void AnalogLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimit.LimitSet", &assign_AnalogLimit_LimitSet); + assign_map.emplace("AnalogLimit.LimitSet", &assign_AnalogLimit_LimitSet); } void AnalogLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { Limit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimit.value", &get_AnalogLimit_value); + get_map.emplace("AnalogLimit.value", &get_AnalogLimit_value); } void AnalogLimit::addClassGetFnsToMap(std::map& get_map) const { Limit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimit.LimitSet", &get_AnalogLimit_LimitSet); + get_map.emplace("AnalogLimit.LimitSet", &get_AnalogLimit_LimitSet); } void AnalogLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void AnalogLimit::addEnumGetFnsToMap(std::map& get_ma Limit::addEnumGetFnsToMap(get_map); } +bool AnalogLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogLimit::declare() { return BaseClassDefiner(AnalogLimit::addConstructToMap, AnalogLimit::addPrimitiveAssignFnsToMap, AnalogLimit::addClassAssignFnsToMap, AnalogLimit::debugName); } +std::map AnalogLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Limit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogLimit_factory() diff --git a/CGMES_2.4.15_27JAN2020/AnalogLimit.hpp b/CGMES_2.4.15_27JAN2020/AnalogLimit.hpp index 58ddbd984..4ecac92a7 100644 --- a/CGMES_2.4.15_27JAN2020/AnalogLimit.hpp +++ b/CGMES_2.4.15_27JAN2020/AnalogLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Limit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogLimit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AnalogLimitSet.cpp b/CGMES_2.4.15_27JAN2020/AnalogLimitSet.cpp index ecf5a0e67..9f434be38 100644 --- a/CGMES_2.4.15_27JAN2020/AnalogLimitSet.cpp +++ b/CGMES_2.4.15_27JAN2020/AnalogLimitSet.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogLimitSet.Limits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogLimitSet.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogLimitSet::AnalogLimitSet() {} AnalogLimitSet::~AnalogLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogLimitSet::getClassNamespaceUrl() const { - { "cim:AnalogLimitSet.Limits", { CGMESProfile::EQ, } }, - { "cim:AnalogLimitSet.Measurements", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogLimitSet::getPossibleProfilesForClass() const +const std::string& AnalogLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogLimitSet::getPossibleProfilesForAttributes() const +const std::list& AnalogLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LimitSet::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogLimit_LimitSet(BaseClass*, BaseClass*); @@ -96,7 +128,7 @@ const char* AnalogLimitSet::debugString() const void AnalogLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogLimitSet", &AnalogLimitSet_factory); + factory_map.emplace("AnalogLimitSet", &AnalogLimitSet_factory); } void AnalogLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -105,8 +137,8 @@ void AnalogLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimitSet.Limits", &assign_AnalogLimitSet_Limits); - assign_map.emplace("cim:AnalogLimitSet.Measurements", &assign_AnalogLimitSet_Measurements); + assign_map.emplace("AnalogLimitSet.Limits", &assign_AnalogLimitSet_Limits); + assign_map.emplace("AnalogLimitSet.Measurements", &assign_AnalogLimitSet_Measurements); } void AnalogLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,7 +149,7 @@ void AnalogLimitSet::addPrimitiveGetFnsToMap(std::map void AnalogLimitSet::addClassGetFnsToMap(std::map& get_map) const { LimitSet::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimitSet.Measurements", &get_AnalogLimitSet_Measurements); + get_map.emplace("AnalogLimitSet.Measurements", &get_AnalogLimitSet_Measurements); } void AnalogLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AnalogLimitSet::addEnumGetFnsToMap(std::map& get LimitSet::addEnumGetFnsToMap(get_map); } +bool AnalogLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogLimitSet::declare() { return BaseClassDefiner(AnalogLimitSet::addConstructToMap, AnalogLimitSet::addPrimitiveAssignFnsToMap, AnalogLimitSet::addClassAssignFnsToMap, AnalogLimitSet::debugName); } +std::map AnalogLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LimitSet::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogLimitSet_factory() diff --git a/CGMES_2.4.15_27JAN2020/AnalogLimitSet.hpp b/CGMES_2.4.15_27JAN2020/AnalogLimitSet.hpp index e5ecf9619..abd08b2a0 100644 --- a/CGMES_2.4.15_27JAN2020/AnalogLimitSet.hpp +++ b/CGMES_2.4.15_27JAN2020/AnalogLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LimitSet.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogLimitSet_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AnalogValue.cpp b/CGMES_2.4.15_27JAN2020/AnalogValue.cpp index 2c9ec60f2..fb2b6b3d7 100644 --- a/CGMES_2.4.15_27JAN2020/AnalogValue.cpp +++ b/CGMES_2.4.15_27JAN2020/AnalogValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogValue.Analog", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogValue.AnalogControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AnalogValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogValue::AnalogValue() : Analog(nullptr), AnalogControl(nullptr) {} AnalogValue::~AnalogValue() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogValue::getClassNamespaceUrl() const { - { "cim:AnalogValue.Analog", { CGMESProfile::EQ, } }, - { "cim:AnalogValue.AnalogControl", { CGMESProfile::EQ, } }, - { "cim:AnalogValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogValue::getPossibleProfilesForClass() const +const std::string& AnalogValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogValue::getPossibleProfilesForAttributes() const +const std::list& AnalogValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Analog_AnalogValues(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* AnalogValue::debugString() const void AnalogValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogValue", &AnalogValue_factory); + factory_map.emplace("AnalogValue", &AnalogValue_factory); } void AnalogValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogValue.value", &assign_AnalogValue_value); + assign_map.emplace("AnalogValue.value", &assign_AnalogValue_value); } void AnalogValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogValue.Analog", &assign_AnalogValue_Analog); - assign_map.emplace("cim:AnalogValue.AnalogControl", &assign_AnalogValue_AnalogControl); + assign_map.emplace("AnalogValue.Analog", &assign_AnalogValue_Analog); + assign_map.emplace("AnalogValue.AnalogControl", &assign_AnalogValue_AnalogControl); } void AnalogValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogValue.value", &get_AnalogValue_value); + get_map.emplace("AnalogValue.value", &get_AnalogValue_value); } void AnalogValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogValue.Analog", &get_AnalogValue_Analog); + get_map.emplace("AnalogValue.Analog", &get_AnalogValue_Analog); } void AnalogValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void AnalogValue::addEnumGetFnsToMap(std::map& get_ma MeasurementValue::addEnumGetFnsToMap(get_map); } +bool AnalogValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogValue::declare() { return BaseClassDefiner(AnalogValue::addConstructToMap, AnalogValue::addPrimitiveAssignFnsToMap, AnalogValue::addClassAssignFnsToMap, AnalogValue::debugName); } +std::map AnalogValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogValue_factory() diff --git a/CGMES_2.4.15_27JAN2020/AnalogValue.hpp b/CGMES_2.4.15_27JAN2020/AnalogValue.hpp index 6a1f17faf..09fb0dfb2 100644 --- a/CGMES_2.4.15_27JAN2020/AnalogValue.hpp +++ b/CGMES_2.4.15_27JAN2020/AnalogValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogValue_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ApparentPowerLimit.cpp b/CGMES_2.4.15_27JAN2020/ApparentPowerLimit.cpp index adbb44d3c..11ce5e75e 100644 --- a/CGMES_2.4.15_27JAN2020/ApparentPowerLimit.cpp +++ b/CGMES_2.4.15_27JAN2020/ApparentPowerLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ApparentPowerLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ApparentPowerLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ApparentPowerLimit::ApparentPowerLimit() {} ApparentPowerLimit::~ApparentPowerLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& ApparentPowerLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ApparentPowerLimit::getClassNamespaceUrl() const { - { "cim:ApparentPowerLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ApparentPowerLimit::getPossibleProfilesForClass() const +const std::string& ApparentPowerLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ApparentPowerLimit::getPossibleProfilesForAttributes() const +const std::list& ApparentPowerLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ApparentPowerLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ApparentPowerLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ApparentPowerLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ApparentPowerLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* ApparentPowerLimit::debugString() const void ApparentPowerLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ApparentPowerLimit", &ApparentPowerLimit_factory); + factory_map.emplace("ApparentPowerLimit", &ApparentPowerLimit_factory); } void ApparentPowerLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ApparentPowerLimit.value", &assign_ApparentPowerLimit_value); + assign_map.emplace("ApparentPowerLimit.value", &assign_ApparentPowerLimit_value); } void ApparentPowerLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void ApparentPowerLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ApparentPowerLimit.value", &get_ApparentPowerLimit_value); + get_map.emplace("ApparentPowerLimit.value", &get_ApparentPowerLimit_value); } void ApparentPowerLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void ApparentPowerLimit::addEnumGetFnsToMap(std::map& OperationalLimit::addEnumGetFnsToMap(get_map); } +bool ApparentPowerLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ApparentPowerLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ApparentPowerLimit::declare() { return BaseClassDefiner(ApparentPowerLimit::addConstructToMap, ApparentPowerLimit::addPrimitiveAssignFnsToMap, ApparentPowerLimit::addClassAssignFnsToMap, ApparentPowerLimit::debugName); } +std::map ApparentPowerLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ApparentPowerLimit_factory() diff --git a/CGMES_2.4.15_27JAN2020/ApparentPowerLimit.hpp b/CGMES_2.4.15_27JAN2020/ApparentPowerLimit.hpp index c9bf47334..b740e4d26 100644 --- a/CGMES_2.4.15_27JAN2020/ApparentPowerLimit.hpp +++ b/CGMES_2.4.15_27JAN2020/ApparentPowerLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ApparentPowerLimit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachine.cpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachine.cpp index 934692393..20db0142b 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachine.cpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachine.cpp @@ -12,44 +12,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachine.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachine.asynchronousMachineType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "AsynchronousMachine.converterFedDrive", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.efficiency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.iaIrRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.nominalFrequency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.nominalSpeed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.polePairNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.ratedMechanicalPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.reversible", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.rxLockedRotorRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachine::AsynchronousMachine() : AsynchronousMachineDynamics(nullptr) {} AsynchronousMachine::~AsynchronousMachine() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachine::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachine::getClassNamespaceUrl() const { - { "cim:AsynchronousMachine.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachine.asynchronousMachineType", { CGMESProfile::SSH, } }, - { "cim:AsynchronousMachine.converterFedDrive", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.efficiency", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.iaIrRatio", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.nominalFrequency", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.nominalSpeed", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.polePairNumber", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.ratedMechanicalPower", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.reversible", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.rxLockedRotorRatio", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachine::getPossibleProfilesForClass() const +const std::string& AsynchronousMachine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachine::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachine::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_AsynchronousMachine(BaseClass*, BaseClass*); @@ -368,40 +400,40 @@ const char* AsynchronousMachine::debugString() const void AsynchronousMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachine", &AsynchronousMachine_factory); + factory_map.emplace("AsynchronousMachine", &AsynchronousMachine_factory); } void AsynchronousMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachine.asynchronousMachineType", &assign_AsynchronousMachine_asynchronousMachineType); - assign_map.emplace("cim:AsynchronousMachine.converterFedDrive", &assign_AsynchronousMachine_converterFedDrive); - assign_map.emplace("cim:AsynchronousMachine.efficiency", &assign_AsynchronousMachine_efficiency); - assign_map.emplace("cim:AsynchronousMachine.iaIrRatio", &assign_AsynchronousMachine_iaIrRatio); - assign_map.emplace("cim:AsynchronousMachine.nominalFrequency", &assign_AsynchronousMachine_nominalFrequency); - assign_map.emplace("cim:AsynchronousMachine.nominalSpeed", &assign_AsynchronousMachine_nominalSpeed); - assign_map.emplace("cim:AsynchronousMachine.polePairNumber", &assign_AsynchronousMachine_polePairNumber); - assign_map.emplace("cim:AsynchronousMachine.ratedMechanicalPower", &assign_AsynchronousMachine_ratedMechanicalPower); - assign_map.emplace("cim:AsynchronousMachine.reversible", &assign_AsynchronousMachine_reversible); - assign_map.emplace("cim:AsynchronousMachine.rxLockedRotorRatio", &assign_AsynchronousMachine_rxLockedRotorRatio); + assign_map.emplace("AsynchronousMachine.asynchronousMachineType", &assign_AsynchronousMachine_asynchronousMachineType); + assign_map.emplace("AsynchronousMachine.converterFedDrive", &assign_AsynchronousMachine_converterFedDrive); + assign_map.emplace("AsynchronousMachine.efficiency", &assign_AsynchronousMachine_efficiency); + assign_map.emplace("AsynchronousMachine.iaIrRatio", &assign_AsynchronousMachine_iaIrRatio); + assign_map.emplace("AsynchronousMachine.nominalFrequency", &assign_AsynchronousMachine_nominalFrequency); + assign_map.emplace("AsynchronousMachine.nominalSpeed", &assign_AsynchronousMachine_nominalSpeed); + assign_map.emplace("AsynchronousMachine.polePairNumber", &assign_AsynchronousMachine_polePairNumber); + assign_map.emplace("AsynchronousMachine.ratedMechanicalPower", &assign_AsynchronousMachine_ratedMechanicalPower); + assign_map.emplace("AsynchronousMachine.reversible", &assign_AsynchronousMachine_reversible); + assign_map.emplace("AsynchronousMachine.rxLockedRotorRatio", &assign_AsynchronousMachine_rxLockedRotorRatio); } void AsynchronousMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachine.AsynchronousMachineDynamics", &assign_AsynchronousMachine_AsynchronousMachineDynamics); + assign_map.emplace("AsynchronousMachine.AsynchronousMachineDynamics", &assign_AsynchronousMachine_AsynchronousMachineDynamics); } void AsynchronousMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachine::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachine.converterFedDrive", &get_AsynchronousMachine_converterFedDrive); - get_map.emplace("cim:AsynchronousMachine.efficiency", &get_AsynchronousMachine_efficiency); - get_map.emplace("cim:AsynchronousMachine.iaIrRatio", &get_AsynchronousMachine_iaIrRatio); - get_map.emplace("cim:AsynchronousMachine.nominalFrequency", &get_AsynchronousMachine_nominalFrequency); - get_map.emplace("cim:AsynchronousMachine.nominalSpeed", &get_AsynchronousMachine_nominalSpeed); - get_map.emplace("cim:AsynchronousMachine.polePairNumber", &get_AsynchronousMachine_polePairNumber); - get_map.emplace("cim:AsynchronousMachine.ratedMechanicalPower", &get_AsynchronousMachine_ratedMechanicalPower); - get_map.emplace("cim:AsynchronousMachine.reversible", &get_AsynchronousMachine_reversible); - get_map.emplace("cim:AsynchronousMachine.rxLockedRotorRatio", &get_AsynchronousMachine_rxLockedRotorRatio); + get_map.emplace("AsynchronousMachine.converterFedDrive", &get_AsynchronousMachine_converterFedDrive); + get_map.emplace("AsynchronousMachine.efficiency", &get_AsynchronousMachine_efficiency); + get_map.emplace("AsynchronousMachine.iaIrRatio", &get_AsynchronousMachine_iaIrRatio); + get_map.emplace("AsynchronousMachine.nominalFrequency", &get_AsynchronousMachine_nominalFrequency); + get_map.emplace("AsynchronousMachine.nominalSpeed", &get_AsynchronousMachine_nominalSpeed); + get_map.emplace("AsynchronousMachine.polePairNumber", &get_AsynchronousMachine_polePairNumber); + get_map.emplace("AsynchronousMachine.ratedMechanicalPower", &get_AsynchronousMachine_ratedMechanicalPower); + get_map.emplace("AsynchronousMachine.reversible", &get_AsynchronousMachine_reversible); + get_map.emplace("AsynchronousMachine.rxLockedRotorRatio", &get_AsynchronousMachine_rxLockedRotorRatio); } void AsynchronousMachine::addClassGetFnsToMap(std::map& get_map) const @@ -412,7 +444,13 @@ void AsynchronousMachine::addClassGetFnsToMap(std::map& get_map) const { RotatingMachine::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachine.asynchronousMachineType", &get_AsynchronousMachine_asynchronousMachineType); + get_map.emplace("AsynchronousMachine.asynchronousMachineType", &get_AsynchronousMachine_asynchronousMachineType); +} + +bool AsynchronousMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AsynchronousMachine" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner AsynchronousMachine::declare() @@ -420,6 +458,14 @@ const BaseClassDefiner AsynchronousMachine::declare() return BaseClassDefiner(AsynchronousMachine::addConstructToMap, AsynchronousMachine::addPrimitiveAssignFnsToMap, AsynchronousMachine::addClassAssignFnsToMap, AsynchronousMachine::debugName); } +std::map AsynchronousMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachine::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachine_factory() diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachine.hpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachine.hpp index 9808c783d..90b7082fa 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachine.hpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachine.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "AsynchronousMachineKind.hpp" #include "Boolean.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachine_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachineDynamics.cpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachineDynamics.cpp index a7e89471f..2ae33600b 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachineDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachineDynamics.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineDynamics.AsynchronousMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.MechanicalLoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineDynamics::AsynchronousMachineDynamics() : AsynchronousMachine(nullptr), MechanicalLoadDynamics(nullptr), TurbineGovernorDynamics(nullptr), WindTurbineType1or2Dynamics(nullptr) {} AsynchronousMachineDynamics::~AsynchronousMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineDynamics::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineDynamics.AsynchronousMachine", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.MechanicalLoadDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineDynamics::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachine_AsynchronousMachineDynamics(BaseClass*, BaseClass*); @@ -139,7 +171,7 @@ const char* AsynchronousMachineDynamics::debugString() const void AsynchronousMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineDynamics", &AsynchronousMachineDynamics_factory); + factory_map.emplace("AsynchronousMachineDynamics", &AsynchronousMachineDynamics_factory); } void AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -148,10 +180,10 @@ void AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void AsynchronousMachineDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineDynamics.AsynchronousMachine", &assign_AsynchronousMachineDynamics_AsynchronousMachine); - assign_map.emplace("cim:AsynchronousMachineDynamics.MechanicalLoadDynamics", &assign_AsynchronousMachineDynamics_MechanicalLoadDynamics); - assign_map.emplace("cim:AsynchronousMachineDynamics.TurbineGovernorDynamics", &assign_AsynchronousMachineDynamics_TurbineGovernorDynamics); - assign_map.emplace("cim:AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", &assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics); + assign_map.emplace("AsynchronousMachineDynamics.AsynchronousMachine", &assign_AsynchronousMachineDynamics_AsynchronousMachine); + assign_map.emplace("AsynchronousMachineDynamics.MechanicalLoadDynamics", &assign_AsynchronousMachineDynamics_MechanicalLoadDynamics); + assign_map.emplace("AsynchronousMachineDynamics.TurbineGovernorDynamics", &assign_AsynchronousMachineDynamics_TurbineGovernorDynamics); + assign_map.emplace("AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", &assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics); } void AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -162,7 +194,7 @@ void AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachineDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineDynamics.AsynchronousMachine", &get_AsynchronousMachineDynamics_AsynchronousMachine); + get_map.emplace("AsynchronousMachineDynamics.AsynchronousMachine", &get_AsynchronousMachineDynamics_AsynchronousMachine); } void AsynchronousMachineDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -170,11 +202,25 @@ void AsynchronousMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineDynamics::declare() { return BaseClassDefiner(AsynchronousMachineDynamics::addConstructToMap, AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap, AsynchronousMachineDynamics::addClassAssignFnsToMap, AsynchronousMachineDynamics::debugName); } +std::map AsynchronousMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachineDynamics.hpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachineDynamics.hpp index bc0e2a13d..47bcafe5e 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachineDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachineEquivalentCircuit.cpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachineEquivalentCircuit.cpp index 5ed52c82d..69d074daa 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachineEquivalentCircuit.cpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachineEquivalentCircuit.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineEquivalentCircuit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineEquivalentCircuit.rr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.rr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xlr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xlr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineEquivalentCircuit::AsynchronousMachineEquivalentCircuit() {} AsynchronousMachineEquivalentCircuit::~AsynchronousMachineEquivalentCircuit() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineEquivalentCircuit::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineEquivalentCircuit::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineEquivalentCircuit.rr1", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.rr2", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xlr1", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xlr2", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineEquivalentCircuit::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineEquivalentCircuit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineEquivalentCircuit::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineEquivalentCircuit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineEquivalentCircuit_rr1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* AsynchronousMachineEquivalentCircuit::debugString() const void AsynchronousMachineEquivalentCircuit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineEquivalentCircuit", &AsynchronousMachineEquivalentCircuit_factory); + factory_map.emplace("AsynchronousMachineEquivalentCircuit", &AsynchronousMachineEquivalentCircuit_factory); } void AsynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr1", &assign_AsynchronousMachineEquivalentCircuit_rr1); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr2", &assign_AsynchronousMachineEquivalentCircuit_rr2); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr1", &assign_AsynchronousMachineEquivalentCircuit_xlr1); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr2", &assign_AsynchronousMachineEquivalentCircuit_xlr2); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xm", &assign_AsynchronousMachineEquivalentCircuit_xm); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.rr1", &assign_AsynchronousMachineEquivalentCircuit_rr1); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.rr2", &assign_AsynchronousMachineEquivalentCircuit_rr2); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xlr1", &assign_AsynchronousMachineEquivalentCircuit_xlr1); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xlr2", &assign_AsynchronousMachineEquivalentCircuit_xlr2); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xm", &assign_AsynchronousMachineEquivalentCircuit_xm); } void AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered void AsynchronousMachineEquivalentCircuit::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr1", &get_AsynchronousMachineEquivalentCircuit_rr1); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr2", &get_AsynchronousMachineEquivalentCircuit_rr2); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr1", &get_AsynchronousMachineEquivalentCircuit_xlr1); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr2", &get_AsynchronousMachineEquivalentCircuit_xlr2); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xm", &get_AsynchronousMachineEquivalentCircuit_xm); + get_map.emplace("AsynchronousMachineEquivalentCircuit.rr1", &get_AsynchronousMachineEquivalentCircuit_rr1); + get_map.emplace("AsynchronousMachineEquivalentCircuit.rr2", &get_AsynchronousMachineEquivalentCircuit_rr2); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xlr1", &get_AsynchronousMachineEquivalentCircuit_xlr1); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xlr2", &get_AsynchronousMachineEquivalentCircuit_xlr2); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xm", &get_AsynchronousMachineEquivalentCircuit_xm); } void AsynchronousMachineEquivalentCircuit::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void AsynchronousMachineEquivalentCircuit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineEquivalentCircuit::declare() { return BaseClassDefiner(AsynchronousMachineEquivalentCircuit::addConstructToMap, AsynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap, AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap, AsynchronousMachineEquivalentCircuit::debugName); } +std::map AsynchronousMachineEquivalentCircuit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineEquivalentCircuit_factory() diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachineEquivalentCircuit.hpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachineEquivalentCircuit.hpp index 0280d8e3e..f1d8915cf 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachineEquivalentCircuit.hpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachineEquivalentCircuit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineEquivalentCircuit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachineTimeConstantReactance.cpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachineTimeConstantReactance.cpp index 4f8d1492d..28a9cbfaa 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachineTimeConstantReactance.cpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachineTimeConstantReactance.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineTimeConstantReactance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineTimeConstantReactance.tpo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.tppo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineTimeConstantReactance::AsynchronousMachineTimeConstantReactance() {} AsynchronousMachineTimeConstantReactance::~AsynchronousMachineTimeConstantReactance() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineTimeConstantReactance::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineTimeConstantReactance::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineTimeConstantReactance.tpo", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.tppo", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xp", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xpp", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineTimeConstantReactance::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineTimeConstantReactance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineTimeConstantReactance::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineTimeConstantReactance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineTimeConstantReactance_tpo(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* AsynchronousMachineTimeConstantReactance::debugString() const void AsynchronousMachineTimeConstantReactance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineTimeConstantReactance", &AsynchronousMachineTimeConstantReactance_factory); + factory_map.emplace("AsynchronousMachineTimeConstantReactance", &AsynchronousMachineTimeConstantReactance_factory); } void AsynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tpo", &assign_AsynchronousMachineTimeConstantReactance_tpo); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tppo", &assign_AsynchronousMachineTimeConstantReactance_tppo); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xp", &assign_AsynchronousMachineTimeConstantReactance_xp); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xpp", &assign_AsynchronousMachineTimeConstantReactance_xpp); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xs", &assign_AsynchronousMachineTimeConstantReactance_xs); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.tpo", &assign_AsynchronousMachineTimeConstantReactance_tpo); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.tppo", &assign_AsynchronousMachineTimeConstantReactance_tppo); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xp", &assign_AsynchronousMachineTimeConstantReactance_xp); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xpp", &assign_AsynchronousMachineTimeConstantReactance_xpp); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xs", &assign_AsynchronousMachineTimeConstantReactance_xs); } void AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unord void AsynchronousMachineTimeConstantReactance::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tpo", &get_AsynchronousMachineTimeConstantReactance_tpo); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tppo", &get_AsynchronousMachineTimeConstantReactance_tppo); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xp", &get_AsynchronousMachineTimeConstantReactance_xp); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xpp", &get_AsynchronousMachineTimeConstantReactance_xpp); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xs", &get_AsynchronousMachineTimeConstantReactance_xs); + get_map.emplace("AsynchronousMachineTimeConstantReactance.tpo", &get_AsynchronousMachineTimeConstantReactance_tpo); + get_map.emplace("AsynchronousMachineTimeConstantReactance.tppo", &get_AsynchronousMachineTimeConstantReactance_tppo); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xp", &get_AsynchronousMachineTimeConstantReactance_xp); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xpp", &get_AsynchronousMachineTimeConstantReactance_xpp); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xs", &get_AsynchronousMachineTimeConstantReactance_xs); } void AsynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void AsynchronousMachineTimeConstantReactance::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineTimeConstantReactance::declare() { return BaseClassDefiner(AsynchronousMachineTimeConstantReactance::addConstructToMap, AsynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap, AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap, AsynchronousMachineTimeConstantReactance::debugName); } +std::map AsynchronousMachineTimeConstantReactance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineTimeConstantReactance_factory() diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachineTimeConstantReactance.hpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachineTimeConstantReactance.hpp index 8c5a0b3f6..3ff208eda 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachineTimeConstantReactance.hpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachineTimeConstantReactance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineTimeConstantReactance_factory(); diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachineUserDefined.cpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachineUserDefined.cpp index df2454abf..bd6bfa976 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachineUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachineUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineUserDefined::AsynchronousMachineUserDefined() {} AsynchronousMachineUserDefined::~AsynchronousMachineUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineUserDefined::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineUserDefined::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineUserDefined::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* AsynchronousMachineUserDefined::debugString() const void AsynchronousMachineUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineUserDefined", &AsynchronousMachineUserDefined_factory); + factory_map.emplace("AsynchronousMachineUserDefined", &AsynchronousMachineUserDefined_factory); } void AsynchronousMachineUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineUserDefined.proprietary", &assign_AsynchronousMachineUserDefined_proprietary); + assign_map.emplace("AsynchronousMachineUserDefined.proprietary", &assign_AsynchronousMachineUserDefined_proprietary); } void AsynchronousMachineUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("AsynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics); } void AsynchronousMachineUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineUserDefined.proprietary", &get_AsynchronousMachineUserDefined_proprietary); + get_map.emplace("AsynchronousMachineUserDefined.proprietary", &get_AsynchronousMachineUserDefined_proprietary); } void AsynchronousMachineUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AsynchronousMachineUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineUserDefined::declare() { return BaseClassDefiner(AsynchronousMachineUserDefined::addConstructToMap, AsynchronousMachineUserDefined::addPrimitiveAssignFnsToMap, AsynchronousMachineUserDefined::addClassAssignFnsToMap, AsynchronousMachineUserDefined::debugName); } +std::map AsynchronousMachineUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/AsynchronousMachineUserDefined.hpp b/CGMES_2.4.15_27JAN2020/AsynchronousMachineUserDefined.hpp index 76f2416f2..f9dc049e3 100644 --- a/CGMES_2.4.15_27JAN2020/AsynchronousMachineUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/AsynchronousMachineUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/BaseVoltage.cpp b/CGMES_2.4.15_27JAN2020/BaseVoltage.cpp index b4ba1e5da..a0c59ef18 100644 --- a/CGMES_2.4.15_27JAN2020/BaseVoltage.cpp +++ b/CGMES_2.4.15_27JAN2020/BaseVoltage.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BaseVoltage(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BaseVoltage.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "BaseVoltage.TransformerEnds", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.VoltageLevel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.nominalVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BaseVoltage::BaseVoltage() {} BaseVoltage::~BaseVoltage() {} -static const std::list PossibleProfilesForClass = +const std::list& BaseVoltage::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BaseVoltage::getClassNamespaceUrl() const { - { "cim:BaseVoltage.ConductingEquipment", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:BaseVoltage.TransformerEnds", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.VoltageLevel", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.nominalVoltage", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BaseVoltage::getPossibleProfilesForClass() const +const std::string& BaseVoltage::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BaseVoltage::getPossibleProfilesForAttributes() const +const std::list& BaseVoltage::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BaseVoltage::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BaseVoltage::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BaseVoltage::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_BaseVoltage(BaseClass*, BaseClass*); @@ -159,26 +191,26 @@ const char* BaseVoltage::debugString() const void BaseVoltage::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BaseVoltage", &BaseVoltage_factory); + factory_map.emplace("BaseVoltage", &BaseVoltage_factory); } void BaseVoltage::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BaseVoltage.nominalVoltage", &assign_BaseVoltage_nominalVoltage); + assign_map.emplace("BaseVoltage.nominalVoltage", &assign_BaseVoltage_nominalVoltage); } void BaseVoltage::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BaseVoltage.ConductingEquipment", &assign_BaseVoltage_ConductingEquipment); - assign_map.emplace("cim:BaseVoltage.TopologicalNode", &assign_BaseVoltage_TopologicalNode); - assign_map.emplace("cim:BaseVoltage.TransformerEnds", &assign_BaseVoltage_TransformerEnds); - assign_map.emplace("cim:BaseVoltage.VoltageLevel", &assign_BaseVoltage_VoltageLevel); + assign_map.emplace("BaseVoltage.ConductingEquipment", &assign_BaseVoltage_ConductingEquipment); + assign_map.emplace("BaseVoltage.TopologicalNode", &assign_BaseVoltage_TopologicalNode); + assign_map.emplace("BaseVoltage.TransformerEnds", &assign_BaseVoltage_TransformerEnds); + assign_map.emplace("BaseVoltage.VoltageLevel", &assign_BaseVoltage_VoltageLevel); } void BaseVoltage::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BaseVoltage.nominalVoltage", &get_BaseVoltage_nominalVoltage); + get_map.emplace("BaseVoltage.nominalVoltage", &get_BaseVoltage_nominalVoltage); } void BaseVoltage::addClassGetFnsToMap(std::map& get_map) const @@ -191,11 +223,25 @@ void BaseVoltage::addEnumGetFnsToMap(std::map& get_ma IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool BaseVoltage::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BaseVoltage" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BaseVoltage::declare() { return BaseClassDefiner(BaseVoltage::addConstructToMap, BaseVoltage::addPrimitiveAssignFnsToMap, BaseVoltage::addClassAssignFnsToMap, BaseVoltage::debugName); } +std::map BaseVoltage::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BaseVoltage_factory() diff --git a/CGMES_2.4.15_27JAN2020/BaseVoltage.hpp b/CGMES_2.4.15_27JAN2020/BaseVoltage.hpp index 5e04e5f8a..72d1ad2f2 100644 --- a/CGMES_2.4.15_27JAN2020/BaseVoltage.hpp +++ b/CGMES_2.4.15_27JAN2020/BaseVoltage.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BaseVoltage_factory(); diff --git a/CGMES_2.4.15_27JAN2020/BasicIntervalSchedule.cpp b/CGMES_2.4.15_27JAN2020/BasicIntervalSchedule.cpp index 2daa4c674..86dfa504e 100644 --- a/CGMES_2.4.15_27JAN2020/BasicIntervalSchedule.cpp +++ b/CGMES_2.4.15_27JAN2020/BasicIntervalSchedule.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BasicIntervalSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BasicIntervalSchedule.startTime", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BasicIntervalSchedule.value1Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BasicIntervalSchedule.value2Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BasicIntervalSchedule::BasicIntervalSchedule() {} BasicIntervalSchedule::~BasicIntervalSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& BasicIntervalSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BasicIntervalSchedule::getClassNamespaceUrl() const { - { "cim:BasicIntervalSchedule.startTime", { CGMESProfile::EQ, } }, - { "cim:BasicIntervalSchedule.value1Unit", { CGMESProfile::EQ, } }, - { "cim:BasicIntervalSchedule.value2Unit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BasicIntervalSchedule::getPossibleProfilesForClass() const +const std::string& BasicIntervalSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BasicIntervalSchedule::getPossibleProfilesForAttributes() const +const std::list& BasicIntervalSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BasicIntervalSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BasicIntervalSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BasicIntervalSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BasicIntervalSchedule_startTime(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* BasicIntervalSchedule::debugString() const void BasicIntervalSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BasicIntervalSchedule", &BasicIntervalSchedule_factory); + factory_map.emplace("BasicIntervalSchedule", &BasicIntervalSchedule_factory); } void BasicIntervalSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BasicIntervalSchedule.startTime", &assign_BasicIntervalSchedule_startTime); - assign_map.emplace("cim:BasicIntervalSchedule.value1Unit", &assign_BasicIntervalSchedule_value1Unit); - assign_map.emplace("cim:BasicIntervalSchedule.value2Unit", &assign_BasicIntervalSchedule_value2Unit); + assign_map.emplace("BasicIntervalSchedule.startTime", &assign_BasicIntervalSchedule_startTime); + assign_map.emplace("BasicIntervalSchedule.value1Unit", &assign_BasicIntervalSchedule_value1Unit); + assign_map.emplace("BasicIntervalSchedule.value2Unit", &assign_BasicIntervalSchedule_value2Unit); } void BasicIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,7 +185,7 @@ void BasicIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BasicIntervalSchedule.startTime", &get_BasicIntervalSchedule_startTime); + get_map.emplace("BasicIntervalSchedule.startTime", &get_BasicIntervalSchedule_startTime); } void BasicIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const @@ -164,8 +196,14 @@ void BasicIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:BasicIntervalSchedule.value1Unit", &get_BasicIntervalSchedule_value1Unit); - get_map.emplace("cim:BasicIntervalSchedule.value2Unit", &get_BasicIntervalSchedule_value2Unit); + get_map.emplace("BasicIntervalSchedule.value1Unit", &get_BasicIntervalSchedule_value1Unit); + get_map.emplace("BasicIntervalSchedule.value2Unit", &get_BasicIntervalSchedule_value2Unit); +} + +bool BasicIntervalSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BasicIntervalSchedule" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner BasicIntervalSchedule::declare() @@ -173,6 +211,14 @@ const BaseClassDefiner BasicIntervalSchedule::declare() return BaseClassDefiner(BasicIntervalSchedule::addConstructToMap, BasicIntervalSchedule::addPrimitiveAssignFnsToMap, BasicIntervalSchedule::addClassAssignFnsToMap, BasicIntervalSchedule::debugName); } +std::map BasicIntervalSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BasicIntervalSchedule_factory() diff --git a/CGMES_2.4.15_27JAN2020/BasicIntervalSchedule.hpp b/CGMES_2.4.15_27JAN2020/BasicIntervalSchedule.hpp index 610f2e7d6..cd7deb84a 100644 --- a/CGMES_2.4.15_27JAN2020/BasicIntervalSchedule.hpp +++ b/CGMES_2.4.15_27JAN2020/BasicIntervalSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "UnitSymbol.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BasicIntervalSchedule_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Bay.cpp b/CGMES_2.4.15_27JAN2020/Bay.cpp index bf629aae8..4102a120f 100644 --- a/CGMES_2.4.15_27JAN2020/Bay.cpp +++ b/CGMES_2.4.15_27JAN2020/Bay.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Bay(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Bay.VoltageLevel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Bay::Bay() : VoltageLevel(nullptr) {} Bay::~Bay() {} -static const std::list PossibleProfilesForClass = +const std::list& Bay::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Bay::getClassNamespaceUrl() const { - { "cim:Bay.VoltageLevel", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Bay::getPossibleProfilesForClass() const +const std::string& Bay::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Bay::getPossibleProfilesForAttributes() const +const std::list& Bay::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Bay::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Bay::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Bay::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VoltageLevel_Bays(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* Bay::debugString() const void Bay::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Bay", &Bay_factory); + factory_map.emplace("Bay", &Bay_factory); } void Bay::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void Bay::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Bay.VoltageLevel", &assign_Bay_VoltageLevel); + assign_map.emplace("Bay.VoltageLevel", &assign_Bay_VoltageLevel); } void Bay::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void Bay::addPrimitiveGetFnsToMap(std::map& get_map) void Bay::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Bay.VoltageLevel", &get_Bay_VoltageLevel); + get_map.emplace("Bay.VoltageLevel", &get_Bay_VoltageLevel); } void Bay::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void Bay::addEnumGetFnsToMap(std::map& get_map) const EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Bay::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Bay" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Bay::declare() { return BaseClassDefiner(Bay::addConstructToMap, Bay::addPrimitiveAssignFnsToMap, Bay::addClassAssignFnsToMap, Bay::debugName); } +std::map Bay::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Bay_factory() diff --git a/CGMES_2.4.15_27JAN2020/Bay.hpp b/CGMES_2.4.15_27JAN2020/Bay.hpp index 7d30425e4..2ec947982 100644 --- a/CGMES_2.4.15_27JAN2020/Bay.hpp +++ b/CGMES_2.4.15_27JAN2020/Bay.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Bay_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Breaker.cpp b/CGMES_2.4.15_27JAN2020/Breaker.cpp index 034b1ee93..09c0e6df6 100644 --- a/CGMES_2.4.15_27JAN2020/Breaker.cpp +++ b/CGMES_2.4.15_27JAN2020/Breaker.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Breaker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Breaker::Breaker() {} Breaker::~Breaker() {} -static const std::list PossibleProfilesForClass = +const std::list& Breaker::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Breaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Breaker::getPossibleProfilesForClass() const +const std::string& Breaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Breaker::getPossibleProfilesForAttributes() const +const std::list& Breaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ProtectedSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Breaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Breaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Breaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Breaker::debugName[] = "Breaker"; @@ -47,7 +79,7 @@ const char* Breaker::debugString() const void Breaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Breaker", &Breaker_factory); + factory_map.emplace("Breaker", &Breaker_factory); } void Breaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Breaker::addEnumGetFnsToMap(std::map& get_map) c ProtectedSwitch::addEnumGetFnsToMap(get_map); } +bool Breaker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Breaker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Breaker::declare() { return BaseClassDefiner(Breaker::addConstructToMap, Breaker::addPrimitiveAssignFnsToMap, Breaker::addClassAssignFnsToMap, Breaker::debugName); } +std::map Breaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ProtectedSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Breaker_factory() diff --git a/CGMES_2.4.15_27JAN2020/Breaker.hpp b/CGMES_2.4.15_27JAN2020/Breaker.hpp index 812da0f56..f50099984 100644 --- a/CGMES_2.4.15_27JAN2020/Breaker.hpp +++ b/CGMES_2.4.15_27JAN2020/Breaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ProtectedSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Breaker_factory(); diff --git a/CGMES_2.4.15_27JAN2020/BusNameMarker.cpp b/CGMES_2.4.15_27JAN2020/BusNameMarker.cpp index 24a10645f..42ca46832 100644 --- a/CGMES_2.4.15_27JAN2020/BusNameMarker.cpp +++ b/CGMES_2.4.15_27JAN2020/BusNameMarker.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BusNameMarker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BusNameMarker.ReportingGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BusNameMarker.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "BusNameMarker.priority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BusNameMarker::BusNameMarker() : ReportingGroup(nullptr) {} BusNameMarker::~BusNameMarker() {} -static const std::list PossibleProfilesForClass = +const std::list& BusNameMarker::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BusNameMarker::getClassNamespaceUrl() const { - { "cim:BusNameMarker.ReportingGroup", { CGMESProfile::EQ, } }, - { "cim:BusNameMarker.Terminal", { CGMESProfile::EQ, } }, - { "cim:BusNameMarker.priority", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BusNameMarker::getPossibleProfilesForClass() const +const std::string& BusNameMarker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BusNameMarker::getPossibleProfilesForAttributes() const +const std::list& BusNameMarker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BusNameMarker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BusNameMarker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BusNameMarker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReportingGroup_BusNameMarker(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* BusNameMarker::debugString() const void BusNameMarker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BusNameMarker", &BusNameMarker_factory); + factory_map.emplace("BusNameMarker", &BusNameMarker_factory); } void BusNameMarker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusNameMarker.priority", &assign_BusNameMarker_priority); + assign_map.emplace("BusNameMarker.priority", &assign_BusNameMarker_priority); } void BusNameMarker::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusNameMarker.ReportingGroup", &assign_BusNameMarker_ReportingGroup); - assign_map.emplace("cim:BusNameMarker.Terminal", &assign_BusNameMarker_Terminal); + assign_map.emplace("BusNameMarker.ReportingGroup", &assign_BusNameMarker_ReportingGroup); + assign_map.emplace("BusNameMarker.Terminal", &assign_BusNameMarker_Terminal); } void BusNameMarker::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BusNameMarker.priority", &get_BusNameMarker_priority); + get_map.emplace("BusNameMarker.priority", &get_BusNameMarker_priority); } void BusNameMarker::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:BusNameMarker.ReportingGroup", &get_BusNameMarker_ReportingGroup); + get_map.emplace("BusNameMarker.ReportingGroup", &get_BusNameMarker_ReportingGroup); } void BusNameMarker::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void BusNameMarker::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool BusNameMarker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BusNameMarker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BusNameMarker::declare() { return BaseClassDefiner(BusNameMarker::addConstructToMap, BusNameMarker::addPrimitiveAssignFnsToMap, BusNameMarker::addClassAssignFnsToMap, BusNameMarker::debugName); } +std::map BusNameMarker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BusNameMarker_factory() diff --git a/CGMES_2.4.15_27JAN2020/BusNameMarker.hpp b/CGMES_2.4.15_27JAN2020/BusNameMarker.hpp index 7aa5a6d42..fcb3906d1 100644 --- a/CGMES_2.4.15_27JAN2020/BusNameMarker.hpp +++ b/CGMES_2.4.15_27JAN2020/BusNameMarker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BusNameMarker_factory(); diff --git a/CGMES_2.4.15_27JAN2020/BusbarSection.cpp b/CGMES_2.4.15_27JAN2020/BusbarSection.cpp index 2b6048953..29a5e8b28 100644 --- a/CGMES_2.4.15_27JAN2020/BusbarSection.cpp +++ b/CGMES_2.4.15_27JAN2020/BusbarSection.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BusbarSection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BusbarSection.ipMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BusbarSection::BusbarSection() {} BusbarSection::~BusbarSection() {} -static const std::list PossibleProfilesForClass = +const std::list& BusbarSection::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BusbarSection::getClassNamespaceUrl() const { - { "cim:BusbarSection.ipMax", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BusbarSection::getPossibleProfilesForClass() const +const std::string& BusbarSection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BusbarSection::getPossibleProfilesForAttributes() const +const std::list& BusbarSection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Connector::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BusbarSection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BusbarSection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BusbarSection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusbarSection_ipMax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* BusbarSection::debugString() const void BusbarSection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BusbarSection", &BusbarSection_factory); + factory_map.emplace("BusbarSection", &BusbarSection_factory); } void BusbarSection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusbarSection.ipMax", &assign_BusbarSection_ipMax); + assign_map.emplace("BusbarSection.ipMax", &assign_BusbarSection_ipMax); } void BusbarSection::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void BusbarSection::addClassAssignFnsToMap(std::unordered_map& get_map) const { Connector::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BusbarSection.ipMax", &get_BusbarSection_ipMax); + get_map.emplace("BusbarSection.ipMax", &get_BusbarSection_ipMax); } void BusbarSection::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void BusbarSection::addEnumGetFnsToMap(std::map& get_ Connector::addEnumGetFnsToMap(get_map); } +bool BusbarSection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BusbarSection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BusbarSection::declare() { return BaseClassDefiner(BusbarSection::addConstructToMap, BusbarSection::addPrimitiveAssignFnsToMap, BusbarSection::addClassAssignFnsToMap, BusbarSection::debugName); } +std::map BusbarSection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Connector::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BusbarSection_factory() diff --git a/CGMES_2.4.15_27JAN2020/BusbarSection.hpp b/CGMES_2.4.15_27JAN2020/BusbarSection.hpp index 1fa53d221..43d80e3f0 100644 --- a/CGMES_2.4.15_27JAN2020/BusbarSection.hpp +++ b/CGMES_2.4.15_27JAN2020/BusbarSection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Connector.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BusbarSection_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Command.cpp b/CGMES_2.4.15_27JAN2020/Command.cpp index 7a02eb36a..509d9ffa9 100644 --- a/CGMES_2.4.15_27JAN2020/Command.cpp +++ b/CGMES_2.4.15_27JAN2020/Command.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Command(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Command.DiscreteValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.normalValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Command.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Command::Command() : DiscreteValue(nullptr), ValueAliasSet(nullptr) {} Command::~Command() {} -static const std::list PossibleProfilesForClass = +const std::list& Command::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Command::getClassNamespaceUrl() const { - { "cim:Command.DiscreteValue", { CGMESProfile::EQ, } }, - { "cim:Command.ValueAliasSet", { CGMESProfile::EQ, } }, - { "cim:Command.normalValue", { CGMESProfile::EQ, } }, - { "cim:Command.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Command::getPossibleProfilesForClass() const +const std::string& Command::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Command::getPossibleProfilesForAttributes() const +const std::list& Command::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Command::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Command::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Command::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscreteValue_Command(BaseClass*, BaseClass*); @@ -172,33 +204,33 @@ const char* Command::debugString() const void Command::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Command", &Command_factory); + factory_map.emplace("Command", &Command_factory); } void Command::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Command.normalValue", &assign_Command_normalValue); - assign_map.emplace("cim:Command.value", &assign_Command_value); + assign_map.emplace("Command.normalValue", &assign_Command_normalValue); + assign_map.emplace("Command.value", &assign_Command_value); } void Command::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Command.DiscreteValue", &assign_Command_DiscreteValue); - assign_map.emplace("cim:Command.ValueAliasSet", &assign_Command_ValueAliasSet); + assign_map.emplace("Command.DiscreteValue", &assign_Command_DiscreteValue); + assign_map.emplace("Command.ValueAliasSet", &assign_Command_ValueAliasSet); } void Command::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Command.normalValue", &get_Command_normalValue); - get_map.emplace("cim:Command.value", &get_Command_value); + get_map.emplace("Command.normalValue", &get_Command_normalValue); + get_map.emplace("Command.value", &get_Command_value); } void Command::addClassGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Command.DiscreteValue", &get_Command_DiscreteValue); - get_map.emplace("cim:Command.ValueAliasSet", &get_Command_ValueAliasSet); + get_map.emplace("Command.DiscreteValue", &get_Command_DiscreteValue); + get_map.emplace("Command.ValueAliasSet", &get_Command_ValueAliasSet); } void Command::addEnumGetFnsToMap(std::map& get_map) const @@ -206,11 +238,25 @@ void Command::addEnumGetFnsToMap(std::map& get_map) c Control::addEnumGetFnsToMap(get_map); } +bool Command::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Command" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Command::declare() { return BaseClassDefiner(Command::addConstructToMap, Command::addPrimitiveAssignFnsToMap, Command::addClassAssignFnsToMap, Command::debugName); } +std::map Command::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Command_factory() diff --git a/CGMES_2.4.15_27JAN2020/Command.hpp b/CGMES_2.4.15_27JAN2020/Command.hpp index e91f39202..5ea7c2d05 100644 --- a/CGMES_2.4.15_27JAN2020/Command.hpp +++ b/CGMES_2.4.15_27JAN2020/Command.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Command_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ConductingEquipment.cpp b/CGMES_2.4.15_27JAN2020/ConductingEquipment.cpp index 77cbe0b92..1d2ce9281 100644 --- a/CGMES_2.4.15_27JAN2020/ConductingEquipment.cpp +++ b/CGMES_2.4.15_27JAN2020/ConductingEquipment.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConductingEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConductingEquipment.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConductingEquipment.SvStatus", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ConductingEquipment.Terminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConductingEquipment::ConductingEquipment() : BaseVoltage(nullptr), SvStatus(nullptr) {} ConductingEquipment::~ConductingEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& ConductingEquipment::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConductingEquipment::getClassNamespaceUrl() const { - { "cim:ConductingEquipment.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:ConductingEquipment.SvStatus", { CGMESProfile::SV, } }, - { "cim:ConductingEquipment.Terminals", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConductingEquipment::getPossibleProfilesForClass() const +const std::string& ConductingEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConductingEquipment::getPossibleProfilesForAttributes() const +const std::list& ConductingEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConductingEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConductingEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConductingEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_ConductingEquipment(BaseClass*, BaseClass*); @@ -123,7 +155,7 @@ const char* ConductingEquipment::debugString() const void ConductingEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConductingEquipment", &ConductingEquipment_factory); + factory_map.emplace("ConductingEquipment", &ConductingEquipment_factory); } void ConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -132,9 +164,9 @@ void ConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConductingEquipment.BaseVoltage", &assign_ConductingEquipment_BaseVoltage); - assign_map.emplace("cim:ConductingEquipment.SvStatus", &assign_ConductingEquipment_SvStatus); - assign_map.emplace("cim:ConductingEquipment.Terminals", &assign_ConductingEquipment_Terminals); + assign_map.emplace("ConductingEquipment.BaseVoltage", &assign_ConductingEquipment_BaseVoltage); + assign_map.emplace("ConductingEquipment.SvStatus", &assign_ConductingEquipment_SvStatus); + assign_map.emplace("ConductingEquipment.Terminals", &assign_ConductingEquipment_Terminals); } void ConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -145,7 +177,7 @@ void ConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConductingEquipment.BaseVoltage", &get_ConductingEquipment_BaseVoltage); + get_map.emplace("ConductingEquipment.BaseVoltage", &get_ConductingEquipment_BaseVoltage); } void ConductingEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -153,11 +185,25 @@ void ConductingEquipment::addEnumGetFnsToMap(std::map Equipment::addEnumGetFnsToMap(get_map); } +bool ConductingEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConductingEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConductingEquipment::declare() { return BaseClassDefiner(ConductingEquipment::addConstructToMap, ConductingEquipment::addPrimitiveAssignFnsToMap, ConductingEquipment::addClassAssignFnsToMap, ConductingEquipment::debugName); } +std::map ConductingEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConductingEquipment_factory() diff --git a/CGMES_2.4.15_27JAN2020/ConductingEquipment.hpp b/CGMES_2.4.15_27JAN2020/ConductingEquipment.hpp index 633a41871..6c8426a9c 100644 --- a/CGMES_2.4.15_27JAN2020/ConductingEquipment.hpp +++ b/CGMES_2.4.15_27JAN2020/ConductingEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConductingEquipment_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Conductor.cpp b/CGMES_2.4.15_27JAN2020/Conductor.cpp index c3579e253..91e37ed92 100644 --- a/CGMES_2.4.15_27JAN2020/Conductor.cpp +++ b/CGMES_2.4.15_27JAN2020/Conductor.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Conductor(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Conductor.length", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Conductor::Conductor() {} Conductor::~Conductor() {} -static const std::list PossibleProfilesForClass = +const std::list& Conductor::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Conductor::getClassNamespaceUrl() const { - { "cim:Conductor.length", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Conductor::getPossibleProfilesForClass() const +const std::string& Conductor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Conductor::getPossibleProfilesForAttributes() const +const std::list& Conductor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Conductor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Conductor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Conductor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Conductor_length(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* Conductor::debugString() const void Conductor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Conductor", &Conductor_factory); + factory_map.emplace("Conductor", &Conductor_factory); } void Conductor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Conductor.length", &assign_Conductor_length); + assign_map.emplace("Conductor.length", &assign_Conductor_length); } void Conductor::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void Conductor::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Conductor.length", &get_Conductor_length); + get_map.emplace("Conductor.length", &get_Conductor_length); } void Conductor::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void Conductor::addEnumGetFnsToMap(std::map& get_map) ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Conductor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Conductor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Conductor::declare() { return BaseClassDefiner(Conductor::addConstructToMap, Conductor::addPrimitiveAssignFnsToMap, Conductor::addClassAssignFnsToMap, Conductor::debugName); } +std::map Conductor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Conductor_factory() diff --git a/CGMES_2.4.15_27JAN2020/Conductor.hpp b/CGMES_2.4.15_27JAN2020/Conductor.hpp index cb84bd42d..2982c6862 100644 --- a/CGMES_2.4.15_27JAN2020/Conductor.hpp +++ b/CGMES_2.4.15_27JAN2020/Conductor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Length.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Conductor_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ConformLoad.cpp b/CGMES_2.4.15_27JAN2020/ConformLoad.cpp index ab5e59f20..2881e350f 100644 --- a/CGMES_2.4.15_27JAN2020/ConformLoad.cpp +++ b/CGMES_2.4.15_27JAN2020/ConformLoad.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoad(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoad.LoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoad::ConformLoad() : LoadGroup(nullptr) {} ConformLoad::~ConformLoad() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoad::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoad::getClassNamespaceUrl() const { - { "cim:ConformLoad.LoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoad::getPossibleProfilesForClass() const +const std::string& ConformLoad::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoad::getPossibleProfilesForAttributes() const +const std::list& ConformLoad::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoad::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoad::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoad::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadGroup_EnergyConsumers(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* ConformLoad::debugString() const void ConformLoad::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoad", &ConformLoad_factory); + factory_map.emplace("ConformLoad", &ConformLoad_factory); } void ConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void ConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoad.LoadGroup", &assign_ConformLoad_LoadGroup); + assign_map.emplace("ConformLoad.LoadGroup", &assign_ConformLoad_LoadGroup); } void ConformLoad::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void ConformLoad::addPrimitiveGetFnsToMap(std::map& g void ConformLoad::addClassGetFnsToMap(std::map& get_map) const { EnergyConsumer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConformLoad.LoadGroup", &get_ConformLoad_LoadGroup); + get_map.emplace("ConformLoad.LoadGroup", &get_ConformLoad_LoadGroup); } void ConformLoad::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void ConformLoad::addEnumGetFnsToMap(std::map& get_ma EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool ConformLoad::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoad" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoad::declare() { return BaseClassDefiner(ConformLoad::addConstructToMap, ConformLoad::addPrimitiveAssignFnsToMap, ConformLoad::addClassAssignFnsToMap, ConformLoad::debugName); } +std::map ConformLoad::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoad_factory() diff --git a/CGMES_2.4.15_27JAN2020/ConformLoad.hpp b/CGMES_2.4.15_27JAN2020/ConformLoad.hpp index 0448c6f96..7a3c55f03 100644 --- a/CGMES_2.4.15_27JAN2020/ConformLoad.hpp +++ b/CGMES_2.4.15_27JAN2020/ConformLoad.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoad_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ConformLoadGroup.cpp b/CGMES_2.4.15_27JAN2020/ConformLoadGroup.cpp index c8d5c15fa..2518ece15 100644 --- a/CGMES_2.4.15_27JAN2020/ConformLoadGroup.cpp +++ b/CGMES_2.4.15_27JAN2020/ConformLoadGroup.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoadGroup.ConformLoadSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConformLoadGroup.EnergyConsumers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoadGroup::ConformLoadGroup() {} ConformLoadGroup::~ConformLoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoadGroup::getClassNamespaceUrl() const { - { "cim:ConformLoadGroup.ConformLoadSchedules", { CGMESProfile::EQ, } }, - { "cim:ConformLoadGroup.EnergyConsumers", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoadGroup::getPossibleProfilesForClass() const +const std::string& ConformLoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoadGroup::getPossibleProfilesForAttributes() const +const std::list& ConformLoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadGroup::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadSchedule_ConformLoadGroup(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* ConformLoadGroup::debugString() const void ConformLoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoadGroup", &ConformLoadGroup_factory); + factory_map.emplace("ConformLoadGroup", &ConformLoadGroup_factory); } void ConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void ConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoadGroup.ConformLoadSchedules", &assign_ConformLoadGroup_ConformLoadSchedules); - assign_map.emplace("cim:ConformLoadGroup.EnergyConsumers", &assign_ConformLoadGroup_EnergyConsumers); + assign_map.emplace("ConformLoadGroup.ConformLoadSchedules", &assign_ConformLoadGroup_ConformLoadSchedules); + assign_map.emplace("ConformLoadGroup.EnergyConsumers", &assign_ConformLoadGroup_EnergyConsumers); } void ConformLoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void ConformLoadGroup::addEnumGetFnsToMap(std::map& g LoadGroup::addEnumGetFnsToMap(get_map); } +bool ConformLoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoadGroup::declare() { return BaseClassDefiner(ConformLoadGroup::addConstructToMap, ConformLoadGroup::addPrimitiveAssignFnsToMap, ConformLoadGroup::addClassAssignFnsToMap, ConformLoadGroup::debugName); } +std::map ConformLoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadGroup::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoadGroup_factory() diff --git a/CGMES_2.4.15_27JAN2020/ConformLoadGroup.hpp b/CGMES_2.4.15_27JAN2020/ConformLoadGroup.hpp index 5e59426da..7a1f564e0 100644 --- a/CGMES_2.4.15_27JAN2020/ConformLoadGroup.hpp +++ b/CGMES_2.4.15_27JAN2020/ConformLoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadGroup.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoadGroup_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ConformLoadSchedule.cpp b/CGMES_2.4.15_27JAN2020/ConformLoadSchedule.cpp index 51bb1e07b..bfcf56e0e 100644 --- a/CGMES_2.4.15_27JAN2020/ConformLoadSchedule.cpp +++ b/CGMES_2.4.15_27JAN2020/ConformLoadSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoadSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoadSchedule.ConformLoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoadSchedule::ConformLoadSchedule() : ConformLoadGroup(nullptr) {} ConformLoadSchedule::~ConformLoadSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoadSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoadSchedule::getClassNamespaceUrl() const { - { "cim:ConformLoadSchedule.ConformLoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoadSchedule::getPossibleProfilesForClass() const +const std::string& ConformLoadSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoadSchedule::getPossibleProfilesForAttributes() const +const std::list& ConformLoadSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoadSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoadSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoadSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadGroup_ConformLoadSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* ConformLoadSchedule::debugString() const void ConformLoadSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoadSchedule", &ConformLoadSchedule_factory); + factory_map.emplace("ConformLoadSchedule", &ConformLoadSchedule_factory); } void ConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void ConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoadSchedule.ConformLoadGroup", &assign_ConformLoadSchedule_ConformLoadGroup); + assign_map.emplace("ConformLoadSchedule.ConformLoadGroup", &assign_ConformLoadSchedule_ConformLoadGroup); } void ConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void ConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConformLoadSchedule.ConformLoadGroup", &get_ConformLoadSchedule_ConformLoadGroup); + get_map.emplace("ConformLoadSchedule.ConformLoadGroup", &get_ConformLoadSchedule_ConformLoadGroup); } void ConformLoadSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void ConformLoadSchedule::addEnumGetFnsToMap(std::map SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool ConformLoadSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoadSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoadSchedule::declare() { return BaseClassDefiner(ConformLoadSchedule::addConstructToMap, ConformLoadSchedule::addPrimitiveAssignFnsToMap, ConformLoadSchedule::addClassAssignFnsToMap, ConformLoadSchedule::debugName); } +std::map ConformLoadSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoadSchedule_factory() diff --git a/CGMES_2.4.15_27JAN2020/ConformLoadSchedule.hpp b/CGMES_2.4.15_27JAN2020/ConformLoadSchedule.hpp index 72fd6f6af..a4b404d3f 100644 --- a/CGMES_2.4.15_27JAN2020/ConformLoadSchedule.hpp +++ b/CGMES_2.4.15_27JAN2020/ConformLoadSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoadSchedule_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ConnectivityNode.cpp b/CGMES_2.4.15_27JAN2020/ConnectivityNode.cpp index a387855d6..f62ddd512 100644 --- a/CGMES_2.4.15_27JAN2020/ConnectivityNode.cpp +++ b/CGMES_2.4.15_27JAN2020/ConnectivityNode.cpp @@ -14,44 +14,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConnectivityNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConnectivityNode.ConnectivityNodeContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "ConnectivityNode.Terminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ConnectivityNode.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "ConnectivityNode.boundaryPoint", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.fromEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "ConnectivityNode.toEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + }; + return ClassAttrDetailsMap; +} + ConnectivityNode::ConnectivityNode() : ConnectivityNodeContainer(nullptr), TopologicalNode(nullptr) {} ConnectivityNode::~ConnectivityNode() {} -static const std::list PossibleProfilesForClass = +const std::list& ConnectivityNode::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConnectivityNode::getClassNamespaceUrl() const { - { "cim:ConnectivityNode.ConnectivityNodeContainer", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:ConnectivityNode.Terminals", { CGMESProfile::EQ, } }, - { "cim:ConnectivityNode.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:ConnectivityNode.boundaryPoint", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndIsoCode", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndName", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.fromEndNameTso", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndIsoCode", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndName", { CGMESProfile::EQ_BD, } }, - { "cim:ConnectivityNode.toEndNameTso", { CGMESProfile::EQ_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConnectivityNode::getPossibleProfilesForClass() const +const std::string& ConnectivityNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConnectivityNode::getPossibleProfilesForAttributes() const +const std::list& ConnectivityNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConnectivityNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConnectivityNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConnectivityNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConnectivityNodeContainer_ConnectivityNodes(BaseClass*, BaseClass*); @@ -345,44 +377,44 @@ const char* ConnectivityNode::debugString() const void ConnectivityNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConnectivityNode", &ConnectivityNode_factory); + factory_map.emplace("ConnectivityNode", &ConnectivityNode_factory); } void ConnectivityNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNode.boundaryPoint", &assign_ConnectivityNode_boundaryPoint); - assign_map.emplace("cim:ConnectivityNode.fromEndIsoCode", &assign_ConnectivityNode_fromEndIsoCode); - assign_map.emplace("cim:ConnectivityNode.fromEndName", &assign_ConnectivityNode_fromEndName); - assign_map.emplace("cim:ConnectivityNode.fromEndNameTso", &assign_ConnectivityNode_fromEndNameTso); - assign_map.emplace("cim:ConnectivityNode.toEndIsoCode", &assign_ConnectivityNode_toEndIsoCode); - assign_map.emplace("cim:ConnectivityNode.toEndName", &assign_ConnectivityNode_toEndName); - assign_map.emplace("cim:ConnectivityNode.toEndNameTso", &assign_ConnectivityNode_toEndNameTso); + assign_map.emplace("ConnectivityNode.boundaryPoint", &assign_ConnectivityNode_boundaryPoint); + assign_map.emplace("ConnectivityNode.fromEndIsoCode", &assign_ConnectivityNode_fromEndIsoCode); + assign_map.emplace("ConnectivityNode.fromEndName", &assign_ConnectivityNode_fromEndName); + assign_map.emplace("ConnectivityNode.fromEndNameTso", &assign_ConnectivityNode_fromEndNameTso); + assign_map.emplace("ConnectivityNode.toEndIsoCode", &assign_ConnectivityNode_toEndIsoCode); + assign_map.emplace("ConnectivityNode.toEndName", &assign_ConnectivityNode_toEndName); + assign_map.emplace("ConnectivityNode.toEndNameTso", &assign_ConnectivityNode_toEndNameTso); } void ConnectivityNode::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNode.ConnectivityNodeContainer", &assign_ConnectivityNode_ConnectivityNodeContainer); - assign_map.emplace("cim:ConnectivityNode.Terminals", &assign_ConnectivityNode_Terminals); - assign_map.emplace("cim:ConnectivityNode.TopologicalNode", &assign_ConnectivityNode_TopologicalNode); + assign_map.emplace("ConnectivityNode.ConnectivityNodeContainer", &assign_ConnectivityNode_ConnectivityNodeContainer); + assign_map.emplace("ConnectivityNode.Terminals", &assign_ConnectivityNode_Terminals); + assign_map.emplace("ConnectivityNode.TopologicalNode", &assign_ConnectivityNode_TopologicalNode); } void ConnectivityNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ConnectivityNode.boundaryPoint", &get_ConnectivityNode_boundaryPoint); - get_map.emplace("cim:ConnectivityNode.fromEndIsoCode", &get_ConnectivityNode_fromEndIsoCode); - get_map.emplace("cim:ConnectivityNode.fromEndName", &get_ConnectivityNode_fromEndName); - get_map.emplace("cim:ConnectivityNode.fromEndNameTso", &get_ConnectivityNode_fromEndNameTso); - get_map.emplace("cim:ConnectivityNode.toEndIsoCode", &get_ConnectivityNode_toEndIsoCode); - get_map.emplace("cim:ConnectivityNode.toEndName", &get_ConnectivityNode_toEndName); - get_map.emplace("cim:ConnectivityNode.toEndNameTso", &get_ConnectivityNode_toEndNameTso); + get_map.emplace("ConnectivityNode.boundaryPoint", &get_ConnectivityNode_boundaryPoint); + get_map.emplace("ConnectivityNode.fromEndIsoCode", &get_ConnectivityNode_fromEndIsoCode); + get_map.emplace("ConnectivityNode.fromEndName", &get_ConnectivityNode_fromEndName); + get_map.emplace("ConnectivityNode.fromEndNameTso", &get_ConnectivityNode_fromEndNameTso); + get_map.emplace("ConnectivityNode.toEndIsoCode", &get_ConnectivityNode_toEndIsoCode); + get_map.emplace("ConnectivityNode.toEndName", &get_ConnectivityNode_toEndName); + get_map.emplace("ConnectivityNode.toEndNameTso", &get_ConnectivityNode_toEndNameTso); } void ConnectivityNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConnectivityNode.ConnectivityNodeContainer", &get_ConnectivityNode_ConnectivityNodeContainer); - get_map.emplace("cim:ConnectivityNode.TopologicalNode", &get_ConnectivityNode_TopologicalNode); + get_map.emplace("ConnectivityNode.ConnectivityNodeContainer", &get_ConnectivityNode_ConnectivityNodeContainer); + get_map.emplace("ConnectivityNode.TopologicalNode", &get_ConnectivityNode_TopologicalNode); } void ConnectivityNode::addEnumGetFnsToMap(std::map& get_map) const @@ -390,11 +422,25 @@ void ConnectivityNode::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ConnectivityNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConnectivityNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConnectivityNode::declare() { return BaseClassDefiner(ConnectivityNode::addConstructToMap, ConnectivityNode::addPrimitiveAssignFnsToMap, ConnectivityNode::addClassAssignFnsToMap, ConnectivityNode::debugName); } +std::map ConnectivityNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConnectivityNode_factory() diff --git a/CGMES_2.4.15_27JAN2020/ConnectivityNode.hpp b/CGMES_2.4.15_27JAN2020/ConnectivityNode.hpp index d6b9bed98..34241bcbb 100644 --- a/CGMES_2.4.15_27JAN2020/ConnectivityNode.hpp +++ b/CGMES_2.4.15_27JAN2020/ConnectivityNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "String.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConnectivityNode_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ConnectivityNodeContainer.cpp b/CGMES_2.4.15_27JAN2020/ConnectivityNodeContainer.cpp index 6e3459df3..be24be472 100644 --- a/CGMES_2.4.15_27JAN2020/ConnectivityNodeContainer.cpp +++ b/CGMES_2.4.15_27JAN2020/ConnectivityNodeContainer.cpp @@ -13,36 +13,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConnectivityNodeContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConnectivityNodeContainer.ConnectivityNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "ConnectivityNodeContainer.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ConnectivityNodeContainer::ConnectivityNodeContainer() {} ConnectivityNodeContainer::~ConnectivityNodeContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& ConnectivityNodeContainer::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConnectivityNodeContainer::getClassNamespaceUrl() const { - { "cim:ConnectivityNodeContainer.ConnectivityNodes", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:ConnectivityNodeContainer.TopologicalNode", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConnectivityNodeContainer::getPossibleProfilesForClass() const +const std::string& ConnectivityNodeContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConnectivityNodeContainer::getPossibleProfilesForAttributes() const +const std::list& ConnectivityNodeContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConnectivityNodeContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConnectivityNodeContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConnectivityNodeContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConnectivityNode_ConnectivityNodeContainer(BaseClass*, BaseClass*); @@ -89,7 +121,7 @@ const char* ConnectivityNodeContainer::debugString() const void ConnectivityNodeContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConnectivityNodeContainer", &ConnectivityNodeContainer_factory); + factory_map.emplace("ConnectivityNodeContainer", &ConnectivityNodeContainer_factory); } void ConnectivityNodeContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -98,8 +130,8 @@ void ConnectivityNodeContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNodeContainer.ConnectivityNodes", &assign_ConnectivityNodeContainer_ConnectivityNodes); - assign_map.emplace("cim:ConnectivityNodeContainer.TopologicalNode", &assign_ConnectivityNodeContainer_TopologicalNode); + assign_map.emplace("ConnectivityNodeContainer.ConnectivityNodes", &assign_ConnectivityNodeContainer_ConnectivityNodes); + assign_map.emplace("ConnectivityNodeContainer.TopologicalNode", &assign_ConnectivityNodeContainer_TopologicalNode); } void ConnectivityNodeContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,11 +149,25 @@ void ConnectivityNodeContainer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ConnectivityNodeContainer::declare() { return BaseClassDefiner(ConnectivityNodeContainer::addConstructToMap, ConnectivityNodeContainer::addPrimitiveAssignFnsToMap, ConnectivityNodeContainer::addClassAssignFnsToMap, ConnectivityNodeContainer::debugName); } +std::map ConnectivityNodeContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConnectivityNodeContainer_factory() diff --git a/CGMES_2.4.15_27JAN2020/ConnectivityNodeContainer.hpp b/CGMES_2.4.15_27JAN2020/ConnectivityNodeContainer.hpp index 4ab1c963f..da93c0b70 100644 --- a/CGMES_2.4.15_27JAN2020/ConnectivityNodeContainer.hpp +++ b/CGMES_2.4.15_27JAN2020/ConnectivityNodeContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConnectivityNodeContainer_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Connector.cpp b/CGMES_2.4.15_27JAN2020/Connector.cpp index 207f85553..a5af87a13 100644 --- a/CGMES_2.4.15_27JAN2020/Connector.cpp +++ b/CGMES_2.4.15_27JAN2020/Connector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Connector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Connector::Connector() {} Connector::~Connector() {} -static const std::list PossibleProfilesForClass = +const std::list& Connector::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Connector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Connector::getPossibleProfilesForClass() const +const std::string& Connector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Connector::getPossibleProfilesForAttributes() const +const std::list& Connector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Connector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Connector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Connector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Connector::debugName[] = "Connector"; @@ -47,7 +79,7 @@ const char* Connector::debugString() const void Connector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Connector", &Connector_factory); + factory_map.emplace("Connector", &Connector_factory); } void Connector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Connector::addEnumGetFnsToMap(std::map& get_map) ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Connector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Connector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Connector::declare() { return BaseClassDefiner(Connector::addConstructToMap, Connector::addPrimitiveAssignFnsToMap, Connector::addClassAssignFnsToMap, Connector::debugName); } +std::map Connector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Connector_factory() diff --git a/CGMES_2.4.15_27JAN2020/Connector.hpp b/CGMES_2.4.15_27JAN2020/Connector.hpp index 0c319c834..086ce0513 100644 --- a/CGMES_2.4.15_27JAN2020/Connector.hpp +++ b/CGMES_2.4.15_27JAN2020/Connector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Connector_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Control.cpp b/CGMES_2.4.15_27JAN2020/Control.cpp index 9e90ef372..f8558e3f5 100644 --- a/CGMES_2.4.15_27JAN2020/Control.cpp +++ b/CGMES_2.4.15_27JAN2020/Control.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Control(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Control.PowerSystemResource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.controlType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.operationInProgress", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.timeStamp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.unitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Control.unitSymbol", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Control::Control() : PowerSystemResource(nullptr) {} Control::~Control() {} -static const std::list PossibleProfilesForClass = +const std::list& Control::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Control::getClassNamespaceUrl() const { - { "cim:Control.PowerSystemResource", { CGMESProfile::EQ, } }, - { "cim:Control.controlType", { CGMESProfile::EQ, } }, - { "cim:Control.operationInProgress", { CGMESProfile::EQ, } }, - { "cim:Control.timeStamp", { CGMESProfile::EQ, } }, - { "cim:Control.unitMultiplier", { CGMESProfile::EQ, } }, - { "cim:Control.unitSymbol", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Control::getPossibleProfilesForClass() const +const std::string& Control::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Control::getPossibleProfilesForAttributes() const +const std::list& Control::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Control::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Control::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Control::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerSystemResource_Controls(BaseClass*, BaseClass*); @@ -229,42 +261,48 @@ const char* Control::debugString() const void Control::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Control", &Control_factory); + factory_map.emplace("Control", &Control_factory); } void Control::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Control.controlType", &assign_Control_controlType); - assign_map.emplace("cim:Control.operationInProgress", &assign_Control_operationInProgress); - assign_map.emplace("cim:Control.timeStamp", &assign_Control_timeStamp); - assign_map.emplace("cim:Control.unitMultiplier", &assign_Control_unitMultiplier); - assign_map.emplace("cim:Control.unitSymbol", &assign_Control_unitSymbol); + assign_map.emplace("Control.controlType", &assign_Control_controlType); + assign_map.emplace("Control.operationInProgress", &assign_Control_operationInProgress); + assign_map.emplace("Control.timeStamp", &assign_Control_timeStamp); + assign_map.emplace("Control.unitMultiplier", &assign_Control_unitMultiplier); + assign_map.emplace("Control.unitSymbol", &assign_Control_unitSymbol); } void Control::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Control.PowerSystemResource", &assign_Control_PowerSystemResource); + assign_map.emplace("Control.PowerSystemResource", &assign_Control_PowerSystemResource); } void Control::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Control.controlType", &get_Control_controlType); - get_map.emplace("cim:Control.operationInProgress", &get_Control_operationInProgress); - get_map.emplace("cim:Control.timeStamp", &get_Control_timeStamp); + get_map.emplace("Control.controlType", &get_Control_controlType); + get_map.emplace("Control.operationInProgress", &get_Control_operationInProgress); + get_map.emplace("Control.timeStamp", &get_Control_timeStamp); } void Control::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Control.PowerSystemResource", &get_Control_PowerSystemResource); + get_map.emplace("Control.PowerSystemResource", &get_Control_PowerSystemResource); } void Control::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Control.unitMultiplier", &get_Control_unitMultiplier); - get_map.emplace("cim:Control.unitSymbol", &get_Control_unitSymbol); + get_map.emplace("Control.unitMultiplier", &get_Control_unitMultiplier); + get_map.emplace("Control.unitSymbol", &get_Control_unitSymbol); +} + +bool Control::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Control" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Control::declare() @@ -272,6 +310,14 @@ const BaseClassDefiner Control::declare() return BaseClassDefiner(Control::addConstructToMap, Control::addPrimitiveAssignFnsToMap, Control::addClassAssignFnsToMap, Control::debugName); } +std::map Control::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Control_factory() diff --git a/CGMES_2.4.15_27JAN2020/Control.hpp b/CGMES_2.4.15_27JAN2020/Control.hpp index f0072bfae..ae6bf23df 100644 --- a/CGMES_2.4.15_27JAN2020/Control.hpp +++ b/CGMES_2.4.15_27JAN2020/Control.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "DateTime.hpp" #include "String.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Control_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ControlArea.cpp b/CGMES_2.4.15_27JAN2020/ControlArea.cpp index 21c90385d..3771a6376 100644 --- a/CGMES_2.4.15_27JAN2020/ControlArea.cpp +++ b/CGMES_2.4.15_27JAN2020/ControlArea.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ControlArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ControlArea.ControlAreaGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.EnergyArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.TieFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlArea.netInterchange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ControlArea.pTolerance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ControlArea.type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ControlArea::ControlArea() : EnergyArea(nullptr) {} ControlArea::~ControlArea() {} -static const std::list PossibleProfilesForClass = +const std::list& ControlArea::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ControlArea::getClassNamespaceUrl() const { - { "cim:ControlArea.ControlAreaGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:ControlArea.EnergyArea", { CGMESProfile::EQ, } }, - { "cim:ControlArea.TieFlow", { CGMESProfile::EQ, } }, - { "cim:ControlArea.netInterchange", { CGMESProfile::SSH, } }, - { "cim:ControlArea.pTolerance", { CGMESProfile::SSH, } }, - { "cim:ControlArea.type", { CGMESProfile::EQ, } }, -}; - -std::list -ControlArea::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& ControlArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ControlArea::getPossibleProfilesForAttributes() const +const std::list& ControlArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ControlArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ControlArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ControlArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlAreaGeneratingUnit_ControlArea(BaseClass*, BaseClass*); @@ -210,40 +242,46 @@ const char* ControlArea::debugString() const void ControlArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ControlArea", &ControlArea_factory); + factory_map.emplace("ControlArea", &ControlArea_factory); } void ControlArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlArea.netInterchange", &assign_ControlArea_netInterchange); - assign_map.emplace("cim:ControlArea.pTolerance", &assign_ControlArea_pTolerance); - assign_map.emplace("cim:ControlArea.type", &assign_ControlArea_type); + assign_map.emplace("ControlArea.netInterchange", &assign_ControlArea_netInterchange); + assign_map.emplace("ControlArea.pTolerance", &assign_ControlArea_pTolerance); + assign_map.emplace("ControlArea.type", &assign_ControlArea_type); } void ControlArea::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlArea.ControlAreaGeneratingUnit", &assign_ControlArea_ControlAreaGeneratingUnit); - assign_map.emplace("cim:ControlArea.EnergyArea", &assign_ControlArea_EnergyArea); - assign_map.emplace("cim:ControlArea.TieFlow", &assign_ControlArea_TieFlow); + assign_map.emplace("ControlArea.ControlAreaGeneratingUnit", &assign_ControlArea_ControlAreaGeneratingUnit); + assign_map.emplace("ControlArea.EnergyArea", &assign_ControlArea_EnergyArea); + assign_map.emplace("ControlArea.TieFlow", &assign_ControlArea_TieFlow); } void ControlArea::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.netInterchange", &get_ControlArea_netInterchange); - get_map.emplace("cim:ControlArea.pTolerance", &get_ControlArea_pTolerance); + get_map.emplace("ControlArea.netInterchange", &get_ControlArea_netInterchange); + get_map.emplace("ControlArea.pTolerance", &get_ControlArea_pTolerance); } void ControlArea::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.EnergyArea", &get_ControlArea_EnergyArea); + get_map.emplace("ControlArea.EnergyArea", &get_ControlArea_EnergyArea); } void ControlArea::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.type", &get_ControlArea_type); + get_map.emplace("ControlArea.type", &get_ControlArea_type); +} + +bool ControlArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ControlArea" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ControlArea::declare() @@ -251,6 +289,14 @@ const BaseClassDefiner ControlArea::declare() return BaseClassDefiner(ControlArea::addConstructToMap, ControlArea::addPrimitiveAssignFnsToMap, ControlArea::addClassAssignFnsToMap, ControlArea::debugName); } +std::map ControlArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ControlArea_factory() diff --git a/CGMES_2.4.15_27JAN2020/ControlArea.hpp b/CGMES_2.4.15_27JAN2020/ControlArea.hpp index cb9d727e4..3d14ff9d3 100644 --- a/CGMES_2.4.15_27JAN2020/ControlArea.hpp +++ b/CGMES_2.4.15_27JAN2020/ControlArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ControlAreaTypeKind.hpp" @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ControlArea_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ControlAreaGeneratingUnit.cpp b/CGMES_2.4.15_27JAN2020/ControlAreaGeneratingUnit.cpp index 907553a54..5bc33cacb 100644 --- a/CGMES_2.4.15_27JAN2020/ControlAreaGeneratingUnit.cpp +++ b/CGMES_2.4.15_27JAN2020/ControlAreaGeneratingUnit.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ControlAreaGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ControlAreaGeneratingUnit.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ControlAreaGeneratingUnit.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ControlAreaGeneratingUnit::ControlAreaGeneratingUnit() : ControlArea(nullptr), GeneratingUnit(nullptr) {} ControlAreaGeneratingUnit::~ControlAreaGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& ControlAreaGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ControlAreaGeneratingUnit::getClassNamespaceUrl() const { - { "cim:ControlAreaGeneratingUnit.ControlArea", { CGMESProfile::EQ, } }, - { "cim:ControlAreaGeneratingUnit.GeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ControlAreaGeneratingUnit::getPossibleProfilesForClass() const +const std::string& ControlAreaGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ControlAreaGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& ControlAreaGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ControlAreaGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ControlAreaGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ControlAreaGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_ControlAreaGeneratingUnit(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* ControlAreaGeneratingUnit::debugString() const void ControlAreaGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ControlAreaGeneratingUnit", &ControlAreaGeneratingUnit_factory); + factory_map.emplace("ControlAreaGeneratingUnit", &ControlAreaGeneratingUnit_factory); } void ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlAreaGeneratingUnit.ControlArea", &assign_ControlAreaGeneratingUnit_ControlArea); - assign_map.emplace("cim:ControlAreaGeneratingUnit.GeneratingUnit", &assign_ControlAreaGeneratingUnit_GeneratingUnit); + assign_map.emplace("ControlAreaGeneratingUnit.ControlArea", &assign_ControlAreaGeneratingUnit_ControlArea); + assign_map.emplace("ControlAreaGeneratingUnit.GeneratingUnit", &assign_ControlAreaGeneratingUnit_GeneratingUnit); } void ControlAreaGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void ControlAreaGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ControlAreaGeneratingUnit.ControlArea", &get_ControlAreaGeneratingUnit_ControlArea); - get_map.emplace("cim:ControlAreaGeneratingUnit.GeneratingUnit", &get_ControlAreaGeneratingUnit_GeneratingUnit); + get_map.emplace("ControlAreaGeneratingUnit.ControlArea", &get_ControlAreaGeneratingUnit_ControlArea); + get_map.emplace("ControlAreaGeneratingUnit.GeneratingUnit", &get_ControlAreaGeneratingUnit_GeneratingUnit); } void ControlAreaGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void ControlAreaGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ControlAreaGeneratingUnit::declare() { return BaseClassDefiner(ControlAreaGeneratingUnit::addConstructToMap, ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap, ControlAreaGeneratingUnit::addClassAssignFnsToMap, ControlAreaGeneratingUnit::debugName); } +std::map ControlAreaGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ControlAreaGeneratingUnit_factory() diff --git a/CGMES_2.4.15_27JAN2020/ControlAreaGeneratingUnit.hpp b/CGMES_2.4.15_27JAN2020/ControlAreaGeneratingUnit.hpp index 5dea42c34..cf20122dd 100644 --- a/CGMES_2.4.15_27JAN2020/ControlAreaGeneratingUnit.hpp +++ b/CGMES_2.4.15_27JAN2020/ControlAreaGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ControlAreaGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/CoordinateSystem.cpp b/CGMES_2.4.15_27JAN2020/CoordinateSystem.cpp index 56ef9a8b4..888bdb68f 100644 --- a/CGMES_2.4.15_27JAN2020/CoordinateSystem.cpp +++ b/CGMES_2.4.15_27JAN2020/CoordinateSystem.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CoordinateSystem(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CoordinateSystem.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "CoordinateSystem.crsUrn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + CoordinateSystem::CoordinateSystem() {} CoordinateSystem::~CoordinateSystem() {} -static const std::list PossibleProfilesForClass = +const std::list& CoordinateSystem::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CoordinateSystem::getClassNamespaceUrl() const { - { "cim:CoordinateSystem.Location", { CGMESProfile::GL, } }, - { "cim:CoordinateSystem.crsUrn", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CoordinateSystem::getPossibleProfilesForClass() const +const std::string& CoordinateSystem::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CoordinateSystem::getPossibleProfilesForAttributes() const +const std::list& CoordinateSystem::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CoordinateSystem::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CoordinateSystem::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CoordinateSystem::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Location_CoordinateSystem(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* CoordinateSystem::debugString() const void CoordinateSystem::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CoordinateSystem", &CoordinateSystem_factory); + factory_map.emplace("CoordinateSystem", &CoordinateSystem_factory); } void CoordinateSystem::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CoordinateSystem.crsUrn", &assign_CoordinateSystem_crsUrn); + assign_map.emplace("CoordinateSystem.crsUrn", &assign_CoordinateSystem_crsUrn); } void CoordinateSystem::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CoordinateSystem.Location", &assign_CoordinateSystem_Location); + assign_map.emplace("CoordinateSystem.Location", &assign_CoordinateSystem_Location); } void CoordinateSystem::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CoordinateSystem.crsUrn", &get_CoordinateSystem_crsUrn); + get_map.emplace("CoordinateSystem.crsUrn", &get_CoordinateSystem_crsUrn); } void CoordinateSystem::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void CoordinateSystem::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool CoordinateSystem::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CoordinateSystem" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CoordinateSystem::declare() { return BaseClassDefiner(CoordinateSystem::addConstructToMap, CoordinateSystem::addPrimitiveAssignFnsToMap, CoordinateSystem::addClassAssignFnsToMap, CoordinateSystem::debugName); } +std::map CoordinateSystem::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CoordinateSystem_factory() diff --git a/CGMES_2.4.15_27JAN2020/CoordinateSystem.hpp b/CGMES_2.4.15_27JAN2020/CoordinateSystem.hpp index 46172486a..0cbe149f6 100644 --- a/CGMES_2.4.15_27JAN2020/CoordinateSystem.hpp +++ b/CGMES_2.4.15_27JAN2020/CoordinateSystem.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CoordinateSystem_factory(); diff --git a/CGMES_2.4.15_27JAN2020/CsConverter.cpp b/CGMES_2.4.15_27JAN2020/CsConverter.cpp index 32000a24e..b1113045a 100644 --- a/CGMES_2.4.15_27JAN2020/CsConverter.cpp +++ b/CGMES_2.4.15_27JAN2020/CsConverter.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CsConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CsConverter.alpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "CsConverter.gamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "CsConverter.maxAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.maxGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.maxIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.minIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.operatingMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.pPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.ratedIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CsConverter.targetAlpha", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.targetGamma", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "CsConverter.targetIdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + CsConverter::CsConverter() {} CsConverter::~CsConverter() {} -static const std::list PossibleProfilesForClass = +const std::list& CsConverter::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CsConverter::getClassNamespaceUrl() const { - { "cim:CsConverter.alpha", { CGMESProfile::SV, } }, - { "cim:CsConverter.gamma", { CGMESProfile::SV, } }, - { "cim:CsConverter.maxAlpha", { CGMESProfile::EQ, } }, - { "cim:CsConverter.maxGamma", { CGMESProfile::EQ, } }, - { "cim:CsConverter.maxIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minAlpha", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minGamma", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.operatingMode", { CGMESProfile::SSH, } }, - { "cim:CsConverter.pPccControl", { CGMESProfile::SSH, } }, - { "cim:CsConverter.ratedIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.targetAlpha", { CGMESProfile::SSH, } }, - { "cim:CsConverter.targetGamma", { CGMESProfile::SSH, } }, - { "cim:CsConverter.targetIdc", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CsConverter::getPossibleProfilesForClass() const +const std::string& CsConverter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CsConverter::getPossibleProfilesForAttributes() const +const std::list& CsConverter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCConverter::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CsConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CsConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CsConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CsConverter_alpha(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -468,25 +500,25 @@ const char* CsConverter::debugString() const void CsConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CsConverter", &CsConverter_factory); + factory_map.emplace("CsConverter", &CsConverter_factory); } void CsConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CsConverter.alpha", &assign_CsConverter_alpha); - assign_map.emplace("cim:CsConverter.gamma", &assign_CsConverter_gamma); - assign_map.emplace("cim:CsConverter.maxAlpha", &assign_CsConverter_maxAlpha); - assign_map.emplace("cim:CsConverter.maxGamma", &assign_CsConverter_maxGamma); - assign_map.emplace("cim:CsConverter.maxIdc", &assign_CsConverter_maxIdc); - assign_map.emplace("cim:CsConverter.minAlpha", &assign_CsConverter_minAlpha); - assign_map.emplace("cim:CsConverter.minGamma", &assign_CsConverter_minGamma); - assign_map.emplace("cim:CsConverter.minIdc", &assign_CsConverter_minIdc); - assign_map.emplace("cim:CsConverter.operatingMode", &assign_CsConverter_operatingMode); - assign_map.emplace("cim:CsConverter.pPccControl", &assign_CsConverter_pPccControl); - assign_map.emplace("cim:CsConverter.ratedIdc", &assign_CsConverter_ratedIdc); - assign_map.emplace("cim:CsConverter.targetAlpha", &assign_CsConverter_targetAlpha); - assign_map.emplace("cim:CsConverter.targetGamma", &assign_CsConverter_targetGamma); - assign_map.emplace("cim:CsConverter.targetIdc", &assign_CsConverter_targetIdc); + assign_map.emplace("CsConverter.alpha", &assign_CsConverter_alpha); + assign_map.emplace("CsConverter.gamma", &assign_CsConverter_gamma); + assign_map.emplace("CsConverter.maxAlpha", &assign_CsConverter_maxAlpha); + assign_map.emplace("CsConverter.maxGamma", &assign_CsConverter_maxGamma); + assign_map.emplace("CsConverter.maxIdc", &assign_CsConverter_maxIdc); + assign_map.emplace("CsConverter.minAlpha", &assign_CsConverter_minAlpha); + assign_map.emplace("CsConverter.minGamma", &assign_CsConverter_minGamma); + assign_map.emplace("CsConverter.minIdc", &assign_CsConverter_minIdc); + assign_map.emplace("CsConverter.operatingMode", &assign_CsConverter_operatingMode); + assign_map.emplace("CsConverter.pPccControl", &assign_CsConverter_pPccControl); + assign_map.emplace("CsConverter.ratedIdc", &assign_CsConverter_ratedIdc); + assign_map.emplace("CsConverter.targetAlpha", &assign_CsConverter_targetAlpha); + assign_map.emplace("CsConverter.targetGamma", &assign_CsConverter_targetGamma); + assign_map.emplace("CsConverter.targetIdc", &assign_CsConverter_targetIdc); } void CsConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -496,18 +528,18 @@ void CsConverter::addClassAssignFnsToMap(std::unordered_map& get_map) const { ACDCConverter::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CsConverter.alpha", &get_CsConverter_alpha); - get_map.emplace("cim:CsConverter.gamma", &get_CsConverter_gamma); - get_map.emplace("cim:CsConverter.maxAlpha", &get_CsConverter_maxAlpha); - get_map.emplace("cim:CsConverter.maxGamma", &get_CsConverter_maxGamma); - get_map.emplace("cim:CsConverter.maxIdc", &get_CsConverter_maxIdc); - get_map.emplace("cim:CsConverter.minAlpha", &get_CsConverter_minAlpha); - get_map.emplace("cim:CsConverter.minGamma", &get_CsConverter_minGamma); - get_map.emplace("cim:CsConverter.minIdc", &get_CsConverter_minIdc); - get_map.emplace("cim:CsConverter.ratedIdc", &get_CsConverter_ratedIdc); - get_map.emplace("cim:CsConverter.targetAlpha", &get_CsConverter_targetAlpha); - get_map.emplace("cim:CsConverter.targetGamma", &get_CsConverter_targetGamma); - get_map.emplace("cim:CsConverter.targetIdc", &get_CsConverter_targetIdc); + get_map.emplace("CsConverter.alpha", &get_CsConverter_alpha); + get_map.emplace("CsConverter.gamma", &get_CsConverter_gamma); + get_map.emplace("CsConverter.maxAlpha", &get_CsConverter_maxAlpha); + get_map.emplace("CsConverter.maxGamma", &get_CsConverter_maxGamma); + get_map.emplace("CsConverter.maxIdc", &get_CsConverter_maxIdc); + get_map.emplace("CsConverter.minAlpha", &get_CsConverter_minAlpha); + get_map.emplace("CsConverter.minGamma", &get_CsConverter_minGamma); + get_map.emplace("CsConverter.minIdc", &get_CsConverter_minIdc); + get_map.emplace("CsConverter.ratedIdc", &get_CsConverter_ratedIdc); + get_map.emplace("CsConverter.targetAlpha", &get_CsConverter_targetAlpha); + get_map.emplace("CsConverter.targetGamma", &get_CsConverter_targetGamma); + get_map.emplace("CsConverter.targetIdc", &get_CsConverter_targetIdc); } void CsConverter::addClassGetFnsToMap(std::map& get_map) const @@ -518,8 +550,14 @@ void CsConverter::addClassGetFnsToMap(std::map& void CsConverter::addEnumGetFnsToMap(std::map& get_map) const { ACDCConverter::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:CsConverter.operatingMode", &get_CsConverter_operatingMode); - get_map.emplace("cim:CsConverter.pPccControl", &get_CsConverter_pPccControl); + get_map.emplace("CsConverter.operatingMode", &get_CsConverter_operatingMode); + get_map.emplace("CsConverter.pPccControl", &get_CsConverter_pPccControl); +} + +bool CsConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CsConverter" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner CsConverter::declare() @@ -527,6 +565,14 @@ const BaseClassDefiner CsConverter::declare() return BaseClassDefiner(CsConverter::addConstructToMap, CsConverter::addPrimitiveAssignFnsToMap, CsConverter::addClassAssignFnsToMap, CsConverter::debugName); } +std::map CsConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCConverter::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CsConverter_factory() diff --git a/CGMES_2.4.15_27JAN2020/CsConverter.hpp b/CGMES_2.4.15_27JAN2020/CsConverter.hpp index 4d14a5460..fd3d2f8c1 100644 --- a/CGMES_2.4.15_27JAN2020/CsConverter.hpp +++ b/CGMES_2.4.15_27JAN2020/CsConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCConverter.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "CsOperatingModeKind.hpp" #include "CsPpccControlKind.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CsConverter_factory(); diff --git a/CGMES_2.4.15_27JAN2020/CurrentLimit.cpp b/CGMES_2.4.15_27JAN2020/CurrentLimit.cpp index 6b79e39d4..6629945e6 100644 --- a/CGMES_2.4.15_27JAN2020/CurrentLimit.cpp +++ b/CGMES_2.4.15_27JAN2020/CurrentLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurrentLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CurrentLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CurrentLimit::CurrentLimit() {} CurrentLimit::~CurrentLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& CurrentLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurrentLimit::getClassNamespaceUrl() const { - { "cim:CurrentLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurrentLimit::getPossibleProfilesForClass() const +const std::string& CurrentLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurrentLimit::getPossibleProfilesForAttributes() const +const std::list& CurrentLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurrentLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurrentLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurrentLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CurrentLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* CurrentLimit::debugString() const void CurrentLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurrentLimit", &CurrentLimit_factory); + factory_map.emplace("CurrentLimit", &CurrentLimit_factory); } void CurrentLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurrentLimit.value", &assign_CurrentLimit_value); + assign_map.emplace("CurrentLimit.value", &assign_CurrentLimit_value); } void CurrentLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void CurrentLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CurrentLimit.value", &get_CurrentLimit_value); + get_map.emplace("CurrentLimit.value", &get_CurrentLimit_value); } void CurrentLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void CurrentLimit::addEnumGetFnsToMap(std::map& get_m OperationalLimit::addEnumGetFnsToMap(get_map); } +bool CurrentLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurrentLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurrentLimit::declare() { return BaseClassDefiner(CurrentLimit::addConstructToMap, CurrentLimit::addPrimitiveAssignFnsToMap, CurrentLimit::addClassAssignFnsToMap, CurrentLimit::debugName); } +std::map CurrentLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurrentLimit_factory() diff --git a/CGMES_2.4.15_27JAN2020/CurrentLimit.hpp b/CGMES_2.4.15_27JAN2020/CurrentLimit.hpp index b670b6c54..23516417c 100644 --- a/CGMES_2.4.15_27JAN2020/CurrentLimit.hpp +++ b/CGMES_2.4.15_27JAN2020/CurrentLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurrentLimit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Curve.cpp b/CGMES_2.4.15_27JAN2020/Curve.cpp index 776e5c46d..c8f91ebbd 100644 --- a/CGMES_2.4.15_27JAN2020/Curve.cpp +++ b/CGMES_2.4.15_27JAN2020/Curve.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Curve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Curve.CurveDatas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.curveStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.xUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.y1Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Curve.y2Unit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Curve::Curve() {} Curve::~Curve() {} -static const std::list PossibleProfilesForClass = +const std::list& Curve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Curve::getClassNamespaceUrl() const { - { "cim:Curve.CurveDatas", { CGMESProfile::EQ, } }, - { "cim:Curve.curveStyle", { CGMESProfile::EQ, } }, - { "cim:Curve.xUnit", { CGMESProfile::EQ, } }, - { "cim:Curve.y1Unit", { CGMESProfile::EQ, } }, - { "cim:Curve.y2Unit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Curve::getPossibleProfilesForClass() const +const std::string& Curve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Curve::getPossibleProfilesForAttributes() const +const std::list& Curve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Curve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Curve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Curve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CurveData_Curve(BaseClass*, BaseClass*); @@ -186,20 +218,20 @@ const char* Curve::debugString() const void Curve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Curve", &Curve_factory); + factory_map.emplace("Curve", &Curve_factory); } void Curve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Curve.curveStyle", &assign_Curve_curveStyle); - assign_map.emplace("cim:Curve.xUnit", &assign_Curve_xUnit); - assign_map.emplace("cim:Curve.y1Unit", &assign_Curve_y1Unit); - assign_map.emplace("cim:Curve.y2Unit", &assign_Curve_y2Unit); + assign_map.emplace("Curve.curveStyle", &assign_Curve_curveStyle); + assign_map.emplace("Curve.xUnit", &assign_Curve_xUnit); + assign_map.emplace("Curve.y1Unit", &assign_Curve_y1Unit); + assign_map.emplace("Curve.y2Unit", &assign_Curve_y2Unit); } void Curve::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Curve.CurveDatas", &assign_Curve_CurveDatas); + assign_map.emplace("Curve.CurveDatas", &assign_Curve_CurveDatas); } void Curve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -215,10 +247,16 @@ void Curve::addClassGetFnsToMap(std::map& get_m void Curve::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Curve.curveStyle", &get_Curve_curveStyle); - get_map.emplace("cim:Curve.xUnit", &get_Curve_xUnit); - get_map.emplace("cim:Curve.y1Unit", &get_Curve_y1Unit); - get_map.emplace("cim:Curve.y2Unit", &get_Curve_y2Unit); + get_map.emplace("Curve.curveStyle", &get_Curve_curveStyle); + get_map.emplace("Curve.xUnit", &get_Curve_xUnit); + get_map.emplace("Curve.y1Unit", &get_Curve_y1Unit); + get_map.emplace("Curve.y2Unit", &get_Curve_y2Unit); +} + +bool Curve::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Curve" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Curve::declare() @@ -226,6 +264,14 @@ const BaseClassDefiner Curve::declare() return BaseClassDefiner(Curve::addConstructToMap, Curve::addPrimitiveAssignFnsToMap, Curve::addClassAssignFnsToMap, Curve::debugName); } +std::map Curve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Curve_factory() diff --git a/CGMES_2.4.15_27JAN2020/Curve.hpp b/CGMES_2.4.15_27JAN2020/Curve.hpp index bb10f8a2b..3764326ee 100644 --- a/CGMES_2.4.15_27JAN2020/Curve.hpp +++ b/CGMES_2.4.15_27JAN2020/Curve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurveStyle.hpp" #include "UnitSymbol.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Curve_factory(); diff --git a/CGMES_2.4.15_27JAN2020/CurveData.cpp b/CGMES_2.4.15_27JAN2020/CurveData.cpp index f2d46bf44..b87a7241b 100644 --- a/CGMES_2.4.15_27JAN2020/CurveData.cpp +++ b/CGMES_2.4.15_27JAN2020/CurveData.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurveData(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CurveData.Curve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.xvalue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.y1value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "CurveData.y2value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CurveData::CurveData() : Curve(nullptr) {} CurveData::~CurveData() {} -static const std::list PossibleProfilesForClass = +const std::list& CurveData::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurveData::getClassNamespaceUrl() const { - { "cim:CurveData.Curve", { CGMESProfile::EQ, } }, - { "cim:CurveData.xvalue", { CGMESProfile::EQ, } }, - { "cim:CurveData.y1value", { CGMESProfile::EQ, } }, - { "cim:CurveData.y2value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurveData::getPossibleProfilesForClass() const +const std::string& CurveData::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurveData::getPossibleProfilesForAttributes() const +const std::list& CurveData::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurveData::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurveData::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurveData::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Curve_CurveDatas(BaseClass*, BaseClass*); @@ -169,33 +201,33 @@ const char* CurveData::debugString() const void CurveData::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurveData", &CurveData_factory); + factory_map.emplace("CurveData", &CurveData_factory); } void CurveData::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurveData.xvalue", &assign_CurveData_xvalue); - assign_map.emplace("cim:CurveData.y1value", &assign_CurveData_y1value); - assign_map.emplace("cim:CurveData.y2value", &assign_CurveData_y2value); + assign_map.emplace("CurveData.xvalue", &assign_CurveData_xvalue); + assign_map.emplace("CurveData.y1value", &assign_CurveData_y1value); + assign_map.emplace("CurveData.y2value", &assign_CurveData_y2value); } void CurveData::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurveData.Curve", &assign_CurveData_Curve); + assign_map.emplace("CurveData.Curve", &assign_CurveData_Curve); } void CurveData::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CurveData.xvalue", &get_CurveData_xvalue); - get_map.emplace("cim:CurveData.y1value", &get_CurveData_y1value); - get_map.emplace("cim:CurveData.y2value", &get_CurveData_y2value); + get_map.emplace("CurveData.xvalue", &get_CurveData_xvalue); + get_map.emplace("CurveData.y1value", &get_CurveData_y1value); + get_map.emplace("CurveData.y2value", &get_CurveData_y2value); } void CurveData::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:CurveData.Curve", &get_CurveData_Curve); + get_map.emplace("CurveData.Curve", &get_CurveData_Curve); } void CurveData::addEnumGetFnsToMap(std::map& get_map) const @@ -203,11 +235,25 @@ void CurveData::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool CurveData::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurveData" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurveData::declare() { return BaseClassDefiner(CurveData::addConstructToMap, CurveData::addPrimitiveAssignFnsToMap, CurveData::addClassAssignFnsToMap, CurveData::debugName); } +std::map CurveData::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurveData_factory() diff --git a/CGMES_2.4.15_27JAN2020/CurveData.hpp b/CGMES_2.4.15_27JAN2020/CurveData.hpp index 3bbd6ba03..c7b6b6620 100644 --- a/CGMES_2.4.15_27JAN2020/CurveData.hpp +++ b/CGMES_2.4.15_27JAN2020/CurveData.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurveData_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCBaseTerminal.cpp b/CGMES_2.4.15_27JAN2020/DCBaseTerminal.cpp index e7814b878..d78d4d3e7 100644 --- a/CGMES_2.4.15_27JAN2020/DCBaseTerminal.cpp +++ b/CGMES_2.4.15_27JAN2020/DCBaseTerminal.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBaseTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCBaseTerminal.DCNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCBaseTerminal.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCBaseTerminal::DCBaseTerminal() : DCNode(nullptr), DCTopologicalNode(nullptr) {} DCBaseTerminal::~DCBaseTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBaseTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBaseTerminal::getClassNamespaceUrl() const { - { "cim:DCBaseTerminal.DCNode", { CGMESProfile::EQ, } }, - { "cim:DCBaseTerminal.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBaseTerminal::getPossibleProfilesForClass() const +const std::string& DCBaseTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBaseTerminal::getPossibleProfilesForAttributes() const +const std::list& DCBaseTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBaseTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBaseTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBaseTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCNode_DCTerminals(BaseClass*, BaseClass*); @@ -114,7 +146,7 @@ const char* DCBaseTerminal::debugString() const void DCBaseTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBaseTerminal", &DCBaseTerminal_factory); + factory_map.emplace("DCBaseTerminal", &DCBaseTerminal_factory); } void DCBaseTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -123,8 +155,8 @@ void DCBaseTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCBaseTerminal.DCNode", &assign_DCBaseTerminal_DCNode); - assign_map.emplace("cim:DCBaseTerminal.DCTopologicalNode", &assign_DCBaseTerminal_DCTopologicalNode); + assign_map.emplace("DCBaseTerminal.DCNode", &assign_DCBaseTerminal_DCNode); + assign_map.emplace("DCBaseTerminal.DCTopologicalNode", &assign_DCBaseTerminal_DCTopologicalNode); } void DCBaseTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -135,8 +167,8 @@ void DCBaseTerminal::addPrimitiveGetFnsToMap(std::map void DCBaseTerminal::addClassGetFnsToMap(std::map& get_map) const { ACDCTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCBaseTerminal.DCNode", &get_DCBaseTerminal_DCNode); - get_map.emplace("cim:DCBaseTerminal.DCTopologicalNode", &get_DCBaseTerminal_DCTopologicalNode); + get_map.emplace("DCBaseTerminal.DCNode", &get_DCBaseTerminal_DCNode); + get_map.emplace("DCBaseTerminal.DCTopologicalNode", &get_DCBaseTerminal_DCTopologicalNode); } void DCBaseTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -144,11 +176,25 @@ void DCBaseTerminal::addEnumGetFnsToMap(std::map& get ACDCTerminal::addEnumGetFnsToMap(get_map); } +bool DCBaseTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBaseTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBaseTerminal::declare() { return BaseClassDefiner(DCBaseTerminal::addConstructToMap, DCBaseTerminal::addPrimitiveAssignFnsToMap, DCBaseTerminal::addClassAssignFnsToMap, DCBaseTerminal::debugName); } +std::map DCBaseTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBaseTerminal_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCBaseTerminal.hpp b/CGMES_2.4.15_27JAN2020/DCBaseTerminal.hpp index 8c0b90332..8ca087e97 100644 --- a/CGMES_2.4.15_27JAN2020/DCBaseTerminal.hpp +++ b/CGMES_2.4.15_27JAN2020/DCBaseTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBaseTerminal_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCBreaker.cpp b/CGMES_2.4.15_27JAN2020/DCBreaker.cpp index 721524d6e..e2fa3f87e 100644 --- a/CGMES_2.4.15_27JAN2020/DCBreaker.cpp +++ b/CGMES_2.4.15_27JAN2020/DCBreaker.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBreaker(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCBreaker::DCBreaker() {} DCBreaker::~DCBreaker() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBreaker::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBreaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBreaker::getPossibleProfilesForClass() const +const std::string& DCBreaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBreaker::getPossibleProfilesForAttributes() const +const std::list& DCBreaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBreaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBreaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBreaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCBreaker::debugName[] = "DCBreaker"; @@ -46,7 +78,7 @@ const char* DCBreaker::debugString() const void DCBreaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBreaker", &DCBreaker_factory); + factory_map.emplace("DCBreaker", &DCBreaker_factory); } void DCBreaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCBreaker::addEnumGetFnsToMap(std::map& get_map) DCSwitch::addEnumGetFnsToMap(get_map); } +bool DCBreaker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBreaker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBreaker::declare() { return BaseClassDefiner(DCBreaker::addConstructToMap, DCBreaker::addPrimitiveAssignFnsToMap, DCBreaker::addClassAssignFnsToMap, DCBreaker::debugName); } +std::map DCBreaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBreaker_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCBreaker.hpp b/CGMES_2.4.15_27JAN2020/DCBreaker.hpp index 51ebd5f70..c73ba330c 100644 --- a/CGMES_2.4.15_27JAN2020/DCBreaker.hpp +++ b/CGMES_2.4.15_27JAN2020/DCBreaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBreaker_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCBusbar.cpp b/CGMES_2.4.15_27JAN2020/DCBusbar.cpp index 1ecf0f6fa..c59efd727 100644 --- a/CGMES_2.4.15_27JAN2020/DCBusbar.cpp +++ b/CGMES_2.4.15_27JAN2020/DCBusbar.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBusbar(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCBusbar::DCBusbar() {} DCBusbar::~DCBusbar() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBusbar::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBusbar::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBusbar::getPossibleProfilesForClass() const +const std::string& DCBusbar::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBusbar::getPossibleProfilesForAttributes() const +const std::list& DCBusbar::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBusbar::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBusbar::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBusbar::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCBusbar::debugName[] = "DCBusbar"; @@ -46,7 +78,7 @@ const char* DCBusbar::debugString() const void DCBusbar::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBusbar", &DCBusbar_factory); + factory_map.emplace("DCBusbar", &DCBusbar_factory); } void DCBusbar::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCBusbar::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCBusbar::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBusbar" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBusbar::declare() { return BaseClassDefiner(DCBusbar::addConstructToMap, DCBusbar::addPrimitiveAssignFnsToMap, DCBusbar::addClassAssignFnsToMap, DCBusbar::debugName); } +std::map DCBusbar::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBusbar_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCBusbar.hpp b/CGMES_2.4.15_27JAN2020/DCBusbar.hpp index 443ea1142..25382b74b 100644 --- a/CGMES_2.4.15_27JAN2020/DCBusbar.hpp +++ b/CGMES_2.4.15_27JAN2020/DCBusbar.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBusbar_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCChopper.cpp b/CGMES_2.4.15_27JAN2020/DCChopper.cpp index 74dd30f11..76932c261 100644 --- a/CGMES_2.4.15_27JAN2020/DCChopper.cpp +++ b/CGMES_2.4.15_27JAN2020/DCChopper.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCChopper(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCChopper::DCChopper() {} DCChopper::~DCChopper() {} -static const std::list PossibleProfilesForClass = +const std::list& DCChopper::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCChopper::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCChopper::getPossibleProfilesForClass() const +const std::string& DCChopper::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCChopper::getPossibleProfilesForAttributes() const +const std::list& DCChopper::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCChopper::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCChopper::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCChopper::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCChopper::debugName[] = "DCChopper"; @@ -46,7 +78,7 @@ const char* DCChopper::debugString() const void DCChopper::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCChopper", &DCChopper_factory); + factory_map.emplace("DCChopper", &DCChopper_factory); } void DCChopper::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCChopper::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCChopper::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCChopper" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCChopper::declare() { return BaseClassDefiner(DCChopper::addConstructToMap, DCChopper::addPrimitiveAssignFnsToMap, DCChopper::addClassAssignFnsToMap, DCChopper::debugName); } +std::map DCChopper::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCChopper_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCChopper.hpp b/CGMES_2.4.15_27JAN2020/DCChopper.hpp index 69669fe03..79f28e42f 100644 --- a/CGMES_2.4.15_27JAN2020/DCChopper.hpp +++ b/CGMES_2.4.15_27JAN2020/DCChopper.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCChopper_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCConductingEquipment.cpp b/CGMES_2.4.15_27JAN2020/DCConductingEquipment.cpp index dbf6d1e77..3f6ec6cfd 100644 --- a/CGMES_2.4.15_27JAN2020/DCConductingEquipment.cpp +++ b/CGMES_2.4.15_27JAN2020/DCConductingEquipment.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCConductingEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCConductingEquipment.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCConductingEquipment::DCConductingEquipment() {} DCConductingEquipment::~DCConductingEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& DCConductingEquipment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCConductingEquipment::getClassNamespaceUrl() const { - { "cim:DCConductingEquipment.DCTerminals", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCConductingEquipment::getPossibleProfilesForClass() const +const std::string& DCConductingEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCConductingEquipment::getPossibleProfilesForAttributes() const +const std::list& DCConductingEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCConductingEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCConductingEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCConductingEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTerminal_DCConductingEquipment(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DCConductingEquipment::debugString() const void DCConductingEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCConductingEquipment", &DCConductingEquipment_factory); + factory_map.emplace("DCConductingEquipment", &DCConductingEquipment_factory); } void DCConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DCConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConductingEquipment.DCTerminals", &assign_DCConductingEquipment_DCTerminals); + assign_map.emplace("DCConductingEquipment.DCTerminals", &assign_DCConductingEquipment_DCTerminals); } void DCConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DCConductingEquipment::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DCConductingEquipment::declare() { return BaseClassDefiner(DCConductingEquipment::addConstructToMap, DCConductingEquipment::addPrimitiveAssignFnsToMap, DCConductingEquipment::addClassAssignFnsToMap, DCConductingEquipment::debugName); } +std::map DCConductingEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCConductingEquipment_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCConductingEquipment.hpp b/CGMES_2.4.15_27JAN2020/DCConductingEquipment.hpp index 7ef261fec..1b096dc2f 100644 --- a/CGMES_2.4.15_27JAN2020/DCConductingEquipment.hpp +++ b/CGMES_2.4.15_27JAN2020/DCConductingEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCConductingEquipment_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCConverterUnit.cpp b/CGMES_2.4.15_27JAN2020/DCConverterUnit.cpp index 2d1090ab2..a508ef2d0 100644 --- a/CGMES_2.4.15_27JAN2020/DCConverterUnit.cpp +++ b/CGMES_2.4.15_27JAN2020/DCConverterUnit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCConverterUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCConverterUnit.Substation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCConverterUnit.operationMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCConverterUnit::DCConverterUnit() : Substation(nullptr) {} DCConverterUnit::~DCConverterUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& DCConverterUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCConverterUnit::getClassNamespaceUrl() const { - { "cim:DCConverterUnit.Substation", { CGMESProfile::EQ, } }, - { "cim:DCConverterUnit.operationMode", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCConverterUnit::getPossibleProfilesForClass() const +const std::string& DCConverterUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCConverterUnit::getPossibleProfilesForAttributes() const +const std::list& DCConverterUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCEquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCConverterUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCConverterUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCConverterUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Substation_DCConverterUnit(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* DCConverterUnit::debugString() const void DCConverterUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCConverterUnit", &DCConverterUnit_factory); + factory_map.emplace("DCConverterUnit", &DCConverterUnit_factory); } void DCConverterUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConverterUnit.operationMode", &assign_DCConverterUnit_operationMode); + assign_map.emplace("DCConverterUnit.operationMode", &assign_DCConverterUnit_operationMode); } void DCConverterUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConverterUnit.Substation", &assign_DCConverterUnit_Substation); + assign_map.emplace("DCConverterUnit.Substation", &assign_DCConverterUnit_Substation); } void DCConverterUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void DCConverterUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCConverterUnit.Substation", &get_DCConverterUnit_Substation); + get_map.emplace("DCConverterUnit.Substation", &get_DCConverterUnit_Substation); } void DCConverterUnit::addEnumGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:DCConverterUnit.operationMode", &get_DCConverterUnit_operationMode); + get_map.emplace("DCConverterUnit.operationMode", &get_DCConverterUnit_operationMode); +} + +bool DCConverterUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCConverterUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner DCConverterUnit::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner DCConverterUnit::declare() return BaseClassDefiner(DCConverterUnit::addConstructToMap, DCConverterUnit::addPrimitiveAssignFnsToMap, DCConverterUnit::addClassAssignFnsToMap, DCConverterUnit::debugName); } +std::map DCConverterUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCEquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCConverterUnit_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCConverterUnit.hpp b/CGMES_2.4.15_27JAN2020/DCConverterUnit.hpp index 0ceada939..3f545ab57 100644 --- a/CGMES_2.4.15_27JAN2020/DCConverterUnit.hpp +++ b/CGMES_2.4.15_27JAN2020/DCConverterUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCEquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DCConverterOperatingModeKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCConverterUnit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCDisconnector.cpp b/CGMES_2.4.15_27JAN2020/DCDisconnector.cpp index fe93c5903..506442ba0 100644 --- a/CGMES_2.4.15_27JAN2020/DCDisconnector.cpp +++ b/CGMES_2.4.15_27JAN2020/DCDisconnector.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCDisconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCDisconnector::DCDisconnector() {} DCDisconnector::~DCDisconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& DCDisconnector::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCDisconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCDisconnector::getPossibleProfilesForClass() const +const std::string& DCDisconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCDisconnector::getPossibleProfilesForAttributes() const +const std::list& DCDisconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCDisconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCDisconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCDisconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCDisconnector::debugName[] = "DCDisconnector"; @@ -46,7 +78,7 @@ const char* DCDisconnector::debugString() const void DCDisconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCDisconnector", &DCDisconnector_factory); + factory_map.emplace("DCDisconnector", &DCDisconnector_factory); } void DCDisconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCDisconnector::addEnumGetFnsToMap(std::map& get DCSwitch::addEnumGetFnsToMap(get_map); } +bool DCDisconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCDisconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCDisconnector::declare() { return BaseClassDefiner(DCDisconnector::addConstructToMap, DCDisconnector::addPrimitiveAssignFnsToMap, DCDisconnector::addClassAssignFnsToMap, DCDisconnector::debugName); } +std::map DCDisconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCDisconnector_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCDisconnector.hpp b/CGMES_2.4.15_27JAN2020/DCDisconnector.hpp index 9000b268e..081bad109 100644 --- a/CGMES_2.4.15_27JAN2020/DCDisconnector.hpp +++ b/CGMES_2.4.15_27JAN2020/DCDisconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCDisconnector_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCEquipmentContainer.cpp b/CGMES_2.4.15_27JAN2020/DCEquipmentContainer.cpp index 63f808f42..da7d6345c 100644 --- a/CGMES_2.4.15_27JAN2020/DCEquipmentContainer.cpp +++ b/CGMES_2.4.15_27JAN2020/DCEquipmentContainer.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCEquipmentContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCEquipmentContainer.DCNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCEquipmentContainer.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCEquipmentContainer::DCEquipmentContainer() {} DCEquipmentContainer::~DCEquipmentContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& DCEquipmentContainer::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCEquipmentContainer::getClassNamespaceUrl() const { - { "cim:DCEquipmentContainer.DCNodes", { CGMESProfile::EQ, } }, - { "cim:DCEquipmentContainer.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCEquipmentContainer::getPossibleProfilesForClass() const +const std::string& DCEquipmentContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCEquipmentContainer::getPossibleProfilesForAttributes() const +const std::list& DCEquipmentContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCEquipmentContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCEquipmentContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCEquipmentContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCNode_DCEquipmentContainer(BaseClass*, BaseClass*); @@ -87,7 +119,7 @@ const char* DCEquipmentContainer::debugString() const void DCEquipmentContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCEquipmentContainer", &DCEquipmentContainer_factory); + factory_map.emplace("DCEquipmentContainer", &DCEquipmentContainer_factory); } void DCEquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -96,8 +128,8 @@ void DCEquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCEquipmentContainer.DCNodes", &assign_DCEquipmentContainer_DCNodes); - assign_map.emplace("cim:DCEquipmentContainer.DCTopologicalNode", &assign_DCEquipmentContainer_DCTopologicalNode); + assign_map.emplace("DCEquipmentContainer.DCNodes", &assign_DCEquipmentContainer_DCNodes); + assign_map.emplace("DCEquipmentContainer.DCTopologicalNode", &assign_DCEquipmentContainer_DCTopologicalNode); } void DCEquipmentContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -115,11 +147,25 @@ void DCEquipmentContainer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DCEquipmentContainer::declare() { return BaseClassDefiner(DCEquipmentContainer::addConstructToMap, DCEquipmentContainer::addPrimitiveAssignFnsToMap, DCEquipmentContainer::addClassAssignFnsToMap, DCEquipmentContainer::debugName); } +std::map DCEquipmentContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCEquipmentContainer_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCEquipmentContainer.hpp b/CGMES_2.4.15_27JAN2020/DCEquipmentContainer.hpp index 6defc5761..67f5ccb05 100644 --- a/CGMES_2.4.15_27JAN2020/DCEquipmentContainer.hpp +++ b/CGMES_2.4.15_27JAN2020/DCEquipmentContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCEquipmentContainer_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCGround.cpp b/CGMES_2.4.15_27JAN2020/DCGround.cpp index 07d7f35f7..ed59442f2 100644 --- a/CGMES_2.4.15_27JAN2020/DCGround.cpp +++ b/CGMES_2.4.15_27JAN2020/DCGround.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCGround(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCGround.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCGround.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCGround::DCGround() {} DCGround::~DCGround() {} -static const std::list PossibleProfilesForClass = +const std::list& DCGround::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCGround::getClassNamespaceUrl() const { - { "cim:DCGround.inductance", { CGMESProfile::EQ, } }, - { "cim:DCGround.r", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCGround::getPossibleProfilesForClass() const +const std::string& DCGround::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCGround::getPossibleProfilesForAttributes() const +const std::list& DCGround::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCGround::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCGround::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCGround::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCGround_inductance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DCGround::debugString() const void DCGround::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCGround", &DCGround_factory); + factory_map.emplace("DCGround", &DCGround_factory); } void DCGround::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCGround.inductance", &assign_DCGround_inductance); - assign_map.emplace("cim:DCGround.r", &assign_DCGround_r); + assign_map.emplace("DCGround.inductance", &assign_DCGround_inductance); + assign_map.emplace("DCGround.r", &assign_DCGround_r); } void DCGround::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DCGround::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCGround.inductance", &get_DCGround_inductance); - get_map.emplace("cim:DCGround.r", &get_DCGround_r); + get_map.emplace("DCGround.inductance", &get_DCGround_inductance); + get_map.emplace("DCGround.r", &get_DCGround_r); } void DCGround::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DCGround::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCGround::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCGround" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCGround::declare() { return BaseClassDefiner(DCGround::addConstructToMap, DCGround::addPrimitiveAssignFnsToMap, DCGround::addClassAssignFnsToMap, DCGround::debugName); } +std::map DCGround::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCGround_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCGround.hpp b/CGMES_2.4.15_27JAN2020/DCGround.hpp index 5321d8f49..647a6a202 100644 --- a/CGMES_2.4.15_27JAN2020/DCGround.hpp +++ b/CGMES_2.4.15_27JAN2020/DCGround.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Inductance.hpp" #include "Resistance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCGround_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCLine.cpp b/CGMES_2.4.15_27JAN2020/DCLine.cpp index 15f9c9331..6185f1acb 100644 --- a/CGMES_2.4.15_27JAN2020/DCLine.cpp +++ b/CGMES_2.4.15_27JAN2020/DCLine.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCLine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCLine.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCLine::DCLine() : Region(nullptr) {} DCLine::~DCLine() {} -static const std::list PossibleProfilesForClass = +const std::list& DCLine::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCLine::getClassNamespaceUrl() const { - { "cim:DCLine.Region", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCLine::getPossibleProfilesForClass() const +const std::string& DCLine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCLine::getPossibleProfilesForAttributes() const +const std::list& DCLine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCEquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCLine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCLine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCLine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_DCLines(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* DCLine::debugString() const void DCLine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCLine", &DCLine_factory); + factory_map.emplace("DCLine", &DCLine_factory); } void DCLine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void DCLine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLine.Region", &assign_DCLine_Region); + assign_map.emplace("DCLine.Region", &assign_DCLine_Region); } void DCLine::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void DCLine::addPrimitiveGetFnsToMap(std::map& get_ma void DCLine::addClassGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCLine.Region", &get_DCLine_Region); + get_map.emplace("DCLine.Region", &get_DCLine_Region); } void DCLine::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void DCLine::addEnumGetFnsToMap(std::map& get_map) co DCEquipmentContainer::addEnumGetFnsToMap(get_map); } +bool DCLine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCLine" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCLine::declare() { return BaseClassDefiner(DCLine::addConstructToMap, DCLine::addPrimitiveAssignFnsToMap, DCLine::addClassAssignFnsToMap, DCLine::debugName); } +std::map DCLine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCEquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCLine_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCLine.hpp b/CGMES_2.4.15_27JAN2020/DCLine.hpp index 91657a003..697d58ca4 100644 --- a/CGMES_2.4.15_27JAN2020/DCLine.hpp +++ b/CGMES_2.4.15_27JAN2020/DCLine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCEquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCLine_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCLineSegment.cpp b/CGMES_2.4.15_27JAN2020/DCLineSegment.cpp index 3b5b3a411..f3dbcaff4 100644 --- a/CGMES_2.4.15_27JAN2020/DCLineSegment.cpp +++ b/CGMES_2.4.15_27JAN2020/DCLineSegment.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCLineSegment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCLineSegment.PerLengthParameter", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.length", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCLineSegment::DCLineSegment() : PerLengthParameter(nullptr) {} DCLineSegment::~DCLineSegment() {} -static const std::list PossibleProfilesForClass = +const std::list& DCLineSegment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCLineSegment::getClassNamespaceUrl() const { - { "cim:DCLineSegment.PerLengthParameter", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.capacitance", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.inductance", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.length", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCLineSegment::getPossibleProfilesForClass() const +const std::string& DCLineSegment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCLineSegment::getPossibleProfilesForAttributes() const +const std::list& DCLineSegment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCLineSegment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCLineSegment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCLineSegment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PerLengthDCLineParameter_DCLineSegments(BaseClass*, BaseClass*); @@ -199,35 +231,35 @@ const char* DCLineSegment::debugString() const void DCLineSegment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCLineSegment", &DCLineSegment_factory); + factory_map.emplace("DCLineSegment", &DCLineSegment_factory); } void DCLineSegment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLineSegment.capacitance", &assign_DCLineSegment_capacitance); - assign_map.emplace("cim:DCLineSegment.inductance", &assign_DCLineSegment_inductance); - assign_map.emplace("cim:DCLineSegment.length", &assign_DCLineSegment_length); - assign_map.emplace("cim:DCLineSegment.resistance", &assign_DCLineSegment_resistance); + assign_map.emplace("DCLineSegment.capacitance", &assign_DCLineSegment_capacitance); + assign_map.emplace("DCLineSegment.inductance", &assign_DCLineSegment_inductance); + assign_map.emplace("DCLineSegment.length", &assign_DCLineSegment_length); + assign_map.emplace("DCLineSegment.resistance", &assign_DCLineSegment_resistance); } void DCLineSegment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLineSegment.PerLengthParameter", &assign_DCLineSegment_PerLengthParameter); + assign_map.emplace("DCLineSegment.PerLengthParameter", &assign_DCLineSegment_PerLengthParameter); } void DCLineSegment::addPrimitiveGetFnsToMap(std::map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCLineSegment.capacitance", &get_DCLineSegment_capacitance); - get_map.emplace("cim:DCLineSegment.inductance", &get_DCLineSegment_inductance); - get_map.emplace("cim:DCLineSegment.length", &get_DCLineSegment_length); - get_map.emplace("cim:DCLineSegment.resistance", &get_DCLineSegment_resistance); + get_map.emplace("DCLineSegment.capacitance", &get_DCLineSegment_capacitance); + get_map.emplace("DCLineSegment.inductance", &get_DCLineSegment_inductance); + get_map.emplace("DCLineSegment.length", &get_DCLineSegment_length); + get_map.emplace("DCLineSegment.resistance", &get_DCLineSegment_resistance); } void DCLineSegment::addClassGetFnsToMap(std::map& get_map) const { DCConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCLineSegment.PerLengthParameter", &get_DCLineSegment_PerLengthParameter); + get_map.emplace("DCLineSegment.PerLengthParameter", &get_DCLineSegment_PerLengthParameter); } void DCLineSegment::addEnumGetFnsToMap(std::map& get_map) const @@ -235,11 +267,25 @@ void DCLineSegment::addEnumGetFnsToMap(std::map& get_ DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCLineSegment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCLineSegment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCLineSegment::declare() { return BaseClassDefiner(DCLineSegment::addConstructToMap, DCLineSegment::addPrimitiveAssignFnsToMap, DCLineSegment::addClassAssignFnsToMap, DCLineSegment::debugName); } +std::map DCLineSegment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCLineSegment_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCLineSegment.hpp b/CGMES_2.4.15_27JAN2020/DCLineSegment.hpp index 58c280fe1..930398dcd 100644 --- a/CGMES_2.4.15_27JAN2020/DCLineSegment.hpp +++ b/CGMES_2.4.15_27JAN2020/DCLineSegment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Capacitance.hpp" #include "Inductance.hpp" #include "Length.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCLineSegment_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCNode.cpp b/CGMES_2.4.15_27JAN2020/DCNode.cpp index 8fd69d983..c76642351 100644 --- a/CGMES_2.4.15_27JAN2020/DCNode.cpp +++ b/CGMES_2.4.15_27JAN2020/DCNode.cpp @@ -14,35 +14,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCNode.DCEquipmentContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCNode.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCNode.DCTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCNode::DCNode() : DCEquipmentContainer(nullptr), DCTopologicalNode(nullptr) {} DCNode::~DCNode() {} -static const std::list PossibleProfilesForClass = +const std::list& DCNode::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCNode::getClassNamespaceUrl() const { - { "cim:DCNode.DCEquipmentContainer", { CGMESProfile::EQ, } }, - { "cim:DCNode.DCTerminals", { CGMESProfile::EQ, } }, - { "cim:DCNode.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCNode::getPossibleProfilesForClass() const +const std::string& DCNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCNode::getPossibleProfilesForAttributes() const +const std::list& DCNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCEquipmentContainer_DCNodes(BaseClass*, BaseClass*); @@ -133,7 +165,7 @@ const char* DCNode::debugString() const void DCNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCNode", &DCNode_factory); + factory_map.emplace("DCNode", &DCNode_factory); } void DCNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -142,9 +174,9 @@ void DCNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCNode.DCEquipmentContainer", &assign_DCNode_DCEquipmentContainer); - assign_map.emplace("cim:DCNode.DCTerminals", &assign_DCNode_DCTerminals); - assign_map.emplace("cim:DCNode.DCTopologicalNode", &assign_DCNode_DCTopologicalNode); + assign_map.emplace("DCNode.DCEquipmentContainer", &assign_DCNode_DCEquipmentContainer); + assign_map.emplace("DCNode.DCTerminals", &assign_DCNode_DCTerminals); + assign_map.emplace("DCNode.DCTopologicalNode", &assign_DCNode_DCTopologicalNode); } void DCNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -155,8 +187,8 @@ void DCNode::addPrimitiveGetFnsToMap(std::map& get_ma void DCNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCNode.DCEquipmentContainer", &get_DCNode_DCEquipmentContainer); - get_map.emplace("cim:DCNode.DCTopologicalNode", &get_DCNode_DCTopologicalNode); + get_map.emplace("DCNode.DCEquipmentContainer", &get_DCNode_DCEquipmentContainer); + get_map.emplace("DCNode.DCTopologicalNode", &get_DCNode_DCTopologicalNode); } void DCNode::addEnumGetFnsToMap(std::map& get_map) const @@ -164,11 +196,25 @@ void DCNode::addEnumGetFnsToMap(std::map& get_map) co IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCNode::declare() { return BaseClassDefiner(DCNode::addConstructToMap, DCNode::addPrimitiveAssignFnsToMap, DCNode::addClassAssignFnsToMap, DCNode::debugName); } +std::map DCNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCNode_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCNode.hpp b/CGMES_2.4.15_27JAN2020/DCNode.hpp index 9fdbe0a20..b935481a6 100644 --- a/CGMES_2.4.15_27JAN2020/DCNode.hpp +++ b/CGMES_2.4.15_27JAN2020/DCNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCNode_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCSeriesDevice.cpp b/CGMES_2.4.15_27JAN2020/DCSeriesDevice.cpp index 4f042583c..4fe371522 100644 --- a/CGMES_2.4.15_27JAN2020/DCSeriesDevice.cpp +++ b/CGMES_2.4.15_27JAN2020/DCSeriesDevice.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCSeriesDevice(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCSeriesDevice.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCSeriesDevice.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCSeriesDevice.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCSeriesDevice::DCSeriesDevice() {} DCSeriesDevice::~DCSeriesDevice() {} -static const std::list PossibleProfilesForClass = +const std::list& DCSeriesDevice::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCSeriesDevice::getClassNamespaceUrl() const { - { "cim:DCSeriesDevice.inductance", { CGMESProfile::EQ, } }, - { "cim:DCSeriesDevice.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:DCSeriesDevice.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCSeriesDevice::getPossibleProfilesForClass() const +const std::string& DCSeriesDevice::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCSeriesDevice::getPossibleProfilesForAttributes() const +const std::list& DCSeriesDevice::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCSeriesDevice::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCSeriesDevice::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCSeriesDevice::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCSeriesDevice_inductance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* DCSeriesDevice::debugString() const void DCSeriesDevice::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCSeriesDevice", &DCSeriesDevice_factory); + factory_map.emplace("DCSeriesDevice", &DCSeriesDevice_factory); } void DCSeriesDevice::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCSeriesDevice.inductance", &assign_DCSeriesDevice_inductance); - assign_map.emplace("cim:DCSeriesDevice.ratedUdc", &assign_DCSeriesDevice_ratedUdc); - assign_map.emplace("cim:DCSeriesDevice.resistance", &assign_DCSeriesDevice_resistance); + assign_map.emplace("DCSeriesDevice.inductance", &assign_DCSeriesDevice_inductance); + assign_map.emplace("DCSeriesDevice.ratedUdc", &assign_DCSeriesDevice_ratedUdc); + assign_map.emplace("DCSeriesDevice.resistance", &assign_DCSeriesDevice_resistance); } void DCSeriesDevice::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void DCSeriesDevice::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCSeriesDevice.inductance", &get_DCSeriesDevice_inductance); - get_map.emplace("cim:DCSeriesDevice.ratedUdc", &get_DCSeriesDevice_ratedUdc); - get_map.emplace("cim:DCSeriesDevice.resistance", &get_DCSeriesDevice_resistance); + get_map.emplace("DCSeriesDevice.inductance", &get_DCSeriesDevice_inductance); + get_map.emplace("DCSeriesDevice.ratedUdc", &get_DCSeriesDevice_ratedUdc); + get_map.emplace("DCSeriesDevice.resistance", &get_DCSeriesDevice_resistance); } void DCSeriesDevice::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void DCSeriesDevice::addEnumGetFnsToMap(std::map& get DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCSeriesDevice::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCSeriesDevice" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCSeriesDevice::declare() { return BaseClassDefiner(DCSeriesDevice::addConstructToMap, DCSeriesDevice::addPrimitiveAssignFnsToMap, DCSeriesDevice::addClassAssignFnsToMap, DCSeriesDevice::debugName); } +std::map DCSeriesDevice::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCSeriesDevice_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCSeriesDevice.hpp b/CGMES_2.4.15_27JAN2020/DCSeriesDevice.hpp index 73436d451..c07252d1c 100644 --- a/CGMES_2.4.15_27JAN2020/DCSeriesDevice.hpp +++ b/CGMES_2.4.15_27JAN2020/DCSeriesDevice.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Inductance.hpp" #include "Resistance.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCSeriesDevice_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCShunt.cpp b/CGMES_2.4.15_27JAN2020/DCShunt.cpp index 35992c09b..d89c28051 100644 --- a/CGMES_2.4.15_27JAN2020/DCShunt.cpp +++ b/CGMES_2.4.15_27JAN2020/DCShunt.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCShunt(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCShunt.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCShunt.ratedUdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DCShunt.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCShunt::DCShunt() {} DCShunt::~DCShunt() {} -static const std::list PossibleProfilesForClass = +const std::list& DCShunt::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCShunt::getClassNamespaceUrl() const { - { "cim:DCShunt.capacitance", { CGMESProfile::EQ, } }, - { "cim:DCShunt.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:DCShunt.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCShunt::getPossibleProfilesForClass() const +const std::string& DCShunt::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCShunt::getPossibleProfilesForAttributes() const +const std::list& DCShunt::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCShunt::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCShunt::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCShunt::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCShunt_capacitance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* DCShunt::debugString() const void DCShunt::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCShunt", &DCShunt_factory); + factory_map.emplace("DCShunt", &DCShunt_factory); } void DCShunt::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCShunt.capacitance", &assign_DCShunt_capacitance); - assign_map.emplace("cim:DCShunt.ratedUdc", &assign_DCShunt_ratedUdc); - assign_map.emplace("cim:DCShunt.resistance", &assign_DCShunt_resistance); + assign_map.emplace("DCShunt.capacitance", &assign_DCShunt_capacitance); + assign_map.emplace("DCShunt.ratedUdc", &assign_DCShunt_ratedUdc); + assign_map.emplace("DCShunt.resistance", &assign_DCShunt_resistance); } void DCShunt::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void DCShunt::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCShunt.capacitance", &get_DCShunt_capacitance); - get_map.emplace("cim:DCShunt.ratedUdc", &get_DCShunt_ratedUdc); - get_map.emplace("cim:DCShunt.resistance", &get_DCShunt_resistance); + get_map.emplace("DCShunt.capacitance", &get_DCShunt_capacitance); + get_map.emplace("DCShunt.ratedUdc", &get_DCShunt_ratedUdc); + get_map.emplace("DCShunt.resistance", &get_DCShunt_resistance); } void DCShunt::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void DCShunt::addEnumGetFnsToMap(std::map& get_map) c DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCShunt::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCShunt" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCShunt::declare() { return BaseClassDefiner(DCShunt::addConstructToMap, DCShunt::addPrimitiveAssignFnsToMap, DCShunt::addClassAssignFnsToMap, DCShunt::debugName); } +std::map DCShunt::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCShunt_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCShunt.hpp b/CGMES_2.4.15_27JAN2020/DCShunt.hpp index 401c9d74e..001e9495e 100644 --- a/CGMES_2.4.15_27JAN2020/DCShunt.hpp +++ b/CGMES_2.4.15_27JAN2020/DCShunt.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Capacitance.hpp" #include "Resistance.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCShunt_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCSwitch.cpp b/CGMES_2.4.15_27JAN2020/DCSwitch.cpp index 2183c59a5..1b23f0ac4 100644 --- a/CGMES_2.4.15_27JAN2020/DCSwitch.cpp +++ b/CGMES_2.4.15_27JAN2020/DCSwitch.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCSwitch::DCSwitch() {} DCSwitch::~DCSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& DCSwitch::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCSwitch::getPossibleProfilesForClass() const +const std::string& DCSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCSwitch::getPossibleProfilesForAttributes() const +const std::list& DCSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCSwitch::debugName[] = "DCSwitch"; @@ -46,7 +78,7 @@ const char* DCSwitch::debugString() const void DCSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCSwitch", &DCSwitch_factory); + factory_map.emplace("DCSwitch", &DCSwitch_factory); } void DCSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCSwitch::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCSwitch::declare() { return BaseClassDefiner(DCSwitch::addConstructToMap, DCSwitch::addPrimitiveAssignFnsToMap, DCSwitch::addClassAssignFnsToMap, DCSwitch::debugName); } +std::map DCSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCSwitch_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCSwitch.hpp b/CGMES_2.4.15_27JAN2020/DCSwitch.hpp index 2512b3a78..52d24bba8 100644 --- a/CGMES_2.4.15_27JAN2020/DCSwitch.hpp +++ b/CGMES_2.4.15_27JAN2020/DCSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCSwitch_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCTerminal.cpp b/CGMES_2.4.15_27JAN2020/DCTerminal.cpp index b33606f5f..1b037756e 100644 --- a/CGMES_2.4.15_27JAN2020/DCTerminal.cpp +++ b/CGMES_2.4.15_27JAN2020/DCTerminal.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTerminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTerminal.DCConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCTerminal::DCTerminal() : DCConductingEquipment(nullptr) {} DCTerminal::~DCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTerminal::getClassNamespaceUrl() const { - { "cim:DCTerminal.DCConductingEquipment", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTerminal::getPossibleProfilesForClass() const +const std::string& DCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTerminal::getPossibleProfilesForAttributes() const +const std::list& DCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCBaseTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCConductingEquipment_DCTerminals(BaseClass*, BaseClass*); @@ -81,7 +113,7 @@ const char* DCTerminal::debugString() const void DCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTerminal", &DCTerminal_factory); + factory_map.emplace("DCTerminal", &DCTerminal_factory); } void DCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -90,7 +122,7 @@ void DCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTerminal.DCConductingEquipment", &assign_DCTerminal_DCConductingEquipment); + assign_map.emplace("DCTerminal.DCConductingEquipment", &assign_DCTerminal_DCConductingEquipment); } void DCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -101,7 +133,7 @@ void DCTerminal::addPrimitiveGetFnsToMap(std::map& ge void DCTerminal::addClassGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTerminal.DCConductingEquipment", &get_DCTerminal_DCConductingEquipment); + get_map.emplace("DCTerminal.DCConductingEquipment", &get_DCTerminal_DCConductingEquipment); } void DCTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -109,11 +141,25 @@ void DCTerminal::addEnumGetFnsToMap(std::map& get_map DCBaseTerminal::addEnumGetFnsToMap(get_map); } +bool DCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTerminal::declare() { return BaseClassDefiner(DCTerminal::addConstructToMap, DCTerminal::addPrimitiveAssignFnsToMap, DCTerminal::addClassAssignFnsToMap, DCTerminal::debugName); } +std::map DCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCBaseTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTerminal_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCTerminal.hpp b/CGMES_2.4.15_27JAN2020/DCTerminal.hpp index 46a315342..8bb9085b2 100644 --- a/CGMES_2.4.15_27JAN2020/DCTerminal.hpp +++ b/CGMES_2.4.15_27JAN2020/DCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCBaseTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTerminal_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCTopologicalIsland.cpp b/CGMES_2.4.15_27JAN2020/DCTopologicalIsland.cpp index 1e7a83ea2..a9be60040 100644 --- a/CGMES_2.4.15_27JAN2020/DCTopologicalIsland.cpp +++ b/CGMES_2.4.15_27JAN2020/DCTopologicalIsland.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTopologicalIsland(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTopologicalIsland.DCTopologicalNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + DCTopologicalIsland::DCTopologicalIsland() {} DCTopologicalIsland::~DCTopologicalIsland() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTopologicalIsland::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTopologicalIsland::getClassNamespaceUrl() const { - { "cim:DCTopologicalIsland.DCTopologicalNodes", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTopologicalIsland::getPossibleProfilesForClass() const +const std::string& DCTopologicalIsland::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTopologicalIsland::getPossibleProfilesForAttributes() const +const std::list& DCTopologicalIsland::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTopologicalIsland::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTopologicalIsland::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTopologicalIsland::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTopologicalNode_DCTopologicalIsland(BaseClass*, BaseClass*); @@ -76,7 +108,7 @@ const char* DCTopologicalIsland::debugString() const void DCTopologicalIsland::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTopologicalIsland", &DCTopologicalIsland_factory); + factory_map.emplace("DCTopologicalIsland", &DCTopologicalIsland_factory); } void DCTopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -85,7 +117,7 @@ void DCTopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTopologicalIsland.DCTopologicalNodes", &assign_DCTopologicalIsland_DCTopologicalNodes); + assign_map.emplace("DCTopologicalIsland.DCTopologicalNodes", &assign_DCTopologicalIsland_DCTopologicalNodes); } void DCTopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -96,7 +128,7 @@ void DCTopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTopologicalIsland.DCTopologicalNodes", &get_DCTopologicalIsland_DCTopologicalNodes); + get_map.emplace("DCTopologicalIsland.DCTopologicalNodes", &get_DCTopologicalIsland_DCTopologicalNodes); } void DCTopologicalIsland::addEnumGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void DCTopologicalIsland::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCTopologicalIsland::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTopologicalIsland" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTopologicalIsland::declare() { return BaseClassDefiner(DCTopologicalIsland::addConstructToMap, DCTopologicalIsland::addPrimitiveAssignFnsToMap, DCTopologicalIsland::addClassAssignFnsToMap, DCTopologicalIsland::debugName); } +std::map DCTopologicalIsland::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTopologicalIsland_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCTopologicalIsland.hpp b/CGMES_2.4.15_27JAN2020/DCTopologicalIsland.hpp index 35384ea69..d920deeb3 100644 --- a/CGMES_2.4.15_27JAN2020/DCTopologicalIsland.hpp +++ b/CGMES_2.4.15_27JAN2020/DCTopologicalIsland.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTopologicalIsland_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DCTopologicalNode.cpp b/CGMES_2.4.15_27JAN2020/DCTopologicalNode.cpp index 86481b2ec..c792e9a3f 100644 --- a/CGMES_2.4.15_27JAN2020/DCTopologicalNode.cpp +++ b/CGMES_2.4.15_27JAN2020/DCTopologicalNode.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTopologicalNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTopologicalNode.DCEquipmentContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCTerminals", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCTopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + DCTopologicalNode::DCTopologicalNode() : DCEquipmentContainer(nullptr), DCTopologicalIsland(nullptr) {} DCTopologicalNode::~DCTopologicalNode() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTopologicalNode::getAttributeNames() const { - CGMESProfile::SV, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTopologicalNode::getClassNamespaceUrl() const { - { "cim:DCTopologicalNode.DCEquipmentContainer", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCNodes", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCTerminals", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCTopologicalIsland", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTopologicalNode::getPossibleProfilesForClass() const +const std::string& DCTopologicalNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTopologicalNode::getPossibleProfilesForAttributes() const +const std::list& DCTopologicalNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTopologicalNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTopologicalNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTopologicalNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCEquipmentContainer_DCTopologicalNode(BaseClass*, BaseClass*); @@ -140,7 +172,7 @@ const char* DCTopologicalNode::debugString() const void DCTopologicalNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTopologicalNode", &DCTopologicalNode_factory); + factory_map.emplace("DCTopologicalNode", &DCTopologicalNode_factory); } void DCTopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -149,10 +181,10 @@ void DCTopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTopologicalNode.DCEquipmentContainer", &assign_DCTopologicalNode_DCEquipmentContainer); - assign_map.emplace("cim:DCTopologicalNode.DCNodes", &assign_DCTopologicalNode_DCNodes); - assign_map.emplace("cim:DCTopologicalNode.DCTerminals", &assign_DCTopologicalNode_DCTerminals); - assign_map.emplace("cim:DCTopologicalNode.DCTopologicalIsland", &assign_DCTopologicalNode_DCTopologicalIsland); + assign_map.emplace("DCTopologicalNode.DCEquipmentContainer", &assign_DCTopologicalNode_DCEquipmentContainer); + assign_map.emplace("DCTopologicalNode.DCNodes", &assign_DCTopologicalNode_DCNodes); + assign_map.emplace("DCTopologicalNode.DCTerminals", &assign_DCTopologicalNode_DCTerminals); + assign_map.emplace("DCTopologicalNode.DCTopologicalIsland", &assign_DCTopologicalNode_DCTopologicalIsland); } void DCTopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -163,7 +195,7 @@ void DCTopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTopologicalNode.DCEquipmentContainer", &get_DCTopologicalNode_DCEquipmentContainer); + get_map.emplace("DCTopologicalNode.DCEquipmentContainer", &get_DCTopologicalNode_DCEquipmentContainer); } void DCTopologicalNode::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void DCTopologicalNode::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCTopologicalNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTopologicalNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTopologicalNode::declare() { return BaseClassDefiner(DCTopologicalNode::addConstructToMap, DCTopologicalNode::addPrimitiveAssignFnsToMap, DCTopologicalNode::addClassAssignFnsToMap, DCTopologicalNode::debugName); } +std::map DCTopologicalNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTopologicalNode_factory() diff --git a/CGMES_2.4.15_27JAN2020/DCTopologicalNode.hpp b/CGMES_2.4.15_27JAN2020/DCTopologicalNode.hpp index 893680baa..e7e56c08c 100644 --- a/CGMES_2.4.15_27JAN2020/DCTopologicalNode.hpp +++ b/CGMES_2.4.15_27JAN2020/DCTopologicalNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTopologicalNode_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DayType.cpp b/CGMES_2.4.15_27JAN2020/DayType.cpp index 3783d542a..827ae166a 100644 --- a/CGMES_2.4.15_27JAN2020/DayType.cpp +++ b/CGMES_2.4.15_27JAN2020/DayType.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DayType(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DayType.SeasonDayTypeSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DayType::DayType() {} DayType::~DayType() {} -static const std::list PossibleProfilesForClass = +const std::list& DayType::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DayType::getClassNamespaceUrl() const { - { "cim:DayType.SeasonDayTypeSchedules", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DayType::getPossibleProfilesForClass() const +const std::string& DayType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DayType::getPossibleProfilesForAttributes() const +const std::list& DayType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DayType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DayType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DayType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeasonDayTypeSchedule_DayType(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DayType::debugString() const void DayType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DayType", &DayType_factory); + factory_map.emplace("DayType", &DayType_factory); } void DayType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DayType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DayType.SeasonDayTypeSchedules", &assign_DayType_SeasonDayTypeSchedules); + assign_map.emplace("DayType.SeasonDayTypeSchedules", &assign_DayType_SeasonDayTypeSchedules); } void DayType::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DayType::addEnumGetFnsToMap(std::map& get_map) c IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DayType::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DayType" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DayType::declare() { return BaseClassDefiner(DayType::addConstructToMap, DayType::addPrimitiveAssignFnsToMap, DayType::addClassAssignFnsToMap, DayType::debugName); } +std::map DayType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DayType_factory() diff --git a/CGMES_2.4.15_27JAN2020/DayType.hpp b/CGMES_2.4.15_27JAN2020/DayType.hpp index 71436c000..92906d300 100644 --- a/CGMES_2.4.15_27JAN2020/DayType.hpp +++ b/CGMES_2.4.15_27JAN2020/DayType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DayType_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Diagram.cpp b/CGMES_2.4.15_27JAN2020/Diagram.cpp index 20da79106..d76030e85 100644 --- a/CGMES_2.4.15_27JAN2020/Diagram.cpp +++ b/CGMES_2.4.15_27JAN2020/Diagram.cpp @@ -13,38 +13,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Diagram(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Diagram.DiagramElements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.DiagramStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.orientation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.x1InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.x2InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.y1InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "Diagram.y2InitialView", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + Diagram::Diagram() : DiagramStyle(nullptr) {} Diagram::~Diagram() {} -static const std::list PossibleProfilesForClass = +const std::list& Diagram::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Diagram::getClassNamespaceUrl() const { - { "cim:Diagram.DiagramElements", { CGMESProfile::DL, } }, - { "cim:Diagram.DiagramStyle", { CGMESProfile::DL, } }, - { "cim:Diagram.orientation", { CGMESProfile::DL, } }, - { "cim:Diagram.x1InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.x2InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.y1InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.y2InitialView", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Diagram::getPossibleProfilesForClass() const +const std::string& Diagram::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Diagram::getPossibleProfilesForAttributes() const +const std::list& Diagram::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Diagram::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Diagram::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Diagram::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_Diagram(BaseClass*, BaseClass*); @@ -249,43 +281,49 @@ const char* Diagram::debugString() const void Diagram::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Diagram", &Diagram_factory); + factory_map.emplace("Diagram", &Diagram_factory); } void Diagram::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Diagram.orientation", &assign_Diagram_orientation); - assign_map.emplace("cim:Diagram.x1InitialView", &assign_Diagram_x1InitialView); - assign_map.emplace("cim:Diagram.x2InitialView", &assign_Diagram_x2InitialView); - assign_map.emplace("cim:Diagram.y1InitialView", &assign_Diagram_y1InitialView); - assign_map.emplace("cim:Diagram.y2InitialView", &assign_Diagram_y2InitialView); + assign_map.emplace("Diagram.orientation", &assign_Diagram_orientation); + assign_map.emplace("Diagram.x1InitialView", &assign_Diagram_x1InitialView); + assign_map.emplace("Diagram.x2InitialView", &assign_Diagram_x2InitialView); + assign_map.emplace("Diagram.y1InitialView", &assign_Diagram_y1InitialView); + assign_map.emplace("Diagram.y2InitialView", &assign_Diagram_y2InitialView); } void Diagram::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Diagram.DiagramElements", &assign_Diagram_DiagramElements); - assign_map.emplace("cim:Diagram.DiagramStyle", &assign_Diagram_DiagramStyle); + assign_map.emplace("Diagram.DiagramElements", &assign_Diagram_DiagramElements); + assign_map.emplace("Diagram.DiagramStyle", &assign_Diagram_DiagramStyle); } void Diagram::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.x1InitialView", &get_Diagram_x1InitialView); - get_map.emplace("cim:Diagram.x2InitialView", &get_Diagram_x2InitialView); - get_map.emplace("cim:Diagram.y1InitialView", &get_Diagram_y1InitialView); - get_map.emplace("cim:Diagram.y2InitialView", &get_Diagram_y2InitialView); + get_map.emplace("Diagram.x1InitialView", &get_Diagram_x1InitialView); + get_map.emplace("Diagram.x2InitialView", &get_Diagram_x2InitialView); + get_map.emplace("Diagram.y1InitialView", &get_Diagram_y1InitialView); + get_map.emplace("Diagram.y2InitialView", &get_Diagram_y2InitialView); } void Diagram::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.DiagramStyle", &get_Diagram_DiagramStyle); + get_map.emplace("Diagram.DiagramStyle", &get_Diagram_DiagramStyle); } void Diagram::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.orientation", &get_Diagram_orientation); + get_map.emplace("Diagram.orientation", &get_Diagram_orientation); +} + +bool Diagram::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Diagram" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Diagram::declare() @@ -293,6 +331,14 @@ const BaseClassDefiner Diagram::declare() return BaseClassDefiner(Diagram::addConstructToMap, Diagram::addPrimitiveAssignFnsToMap, Diagram::addClassAssignFnsToMap, Diagram::debugName); } +std::map Diagram::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Diagram_factory() diff --git a/CGMES_2.4.15_27JAN2020/Diagram.hpp b/CGMES_2.4.15_27JAN2020/Diagram.hpp index f8820ae2f..dab6f1138 100644 --- a/CGMES_2.4.15_27JAN2020/Diagram.hpp +++ b/CGMES_2.4.15_27JAN2020/Diagram.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "OrientationKind.hpp" #include "Simple_Float.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Diagram_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiagramLayoutVersion.cpp b/CGMES_2.4.15_27JAN2020/DiagramLayoutVersion.cpp index 55ea4f1cf..e8e0808d7 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramLayoutVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/DiagramLayoutVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramLayoutVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramLayoutVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + { "DiagramLayoutVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramLayoutVersion::DiagramLayoutVersion() {} DiagramLayoutVersion::~DiagramLayoutVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramLayoutVersion::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramLayoutVersion::getClassNamespaceUrl() const { - { "cim:DiagramLayoutVersion.baseUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.baseURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.date", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.differenceModelURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.entsoeUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.entsoeURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.modelDescriptionURI", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.namespaceRDF", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.namespaceUML", { CGMESProfile::DL, } }, - { "cim:DiagramLayoutVersion.shortName", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramLayoutVersion::getPossibleProfilesForClass() const +const std::string& DiagramLayoutVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramLayoutVersion::getPossibleProfilesForAttributes() const +const std::list& DiagramLayoutVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramLayoutVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramLayoutVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramLayoutVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramLayoutVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* DiagramLayoutVersion::debugString() const void DiagramLayoutVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramLayoutVersion", &DiagramLayoutVersion_factory); + factory_map.emplace("DiagramLayoutVersion", &DiagramLayoutVersion_factory); } void DiagramLayoutVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramLayoutVersion.baseUML", &assign_DiagramLayoutVersion_baseUML); - assign_map.emplace("cim:DiagramLayoutVersion.baseURI", &assign_DiagramLayoutVersion_baseURI); - assign_map.emplace("cim:DiagramLayoutVersion.date", &assign_DiagramLayoutVersion_date); - assign_map.emplace("cim:DiagramLayoutVersion.differenceModelURI", &assign_DiagramLayoutVersion_differenceModelURI); - assign_map.emplace("cim:DiagramLayoutVersion.entsoeUML", &assign_DiagramLayoutVersion_entsoeUML); - assign_map.emplace("cim:DiagramLayoutVersion.entsoeURI", &assign_DiagramLayoutVersion_entsoeURI); - assign_map.emplace("cim:DiagramLayoutVersion.modelDescriptionURI", &assign_DiagramLayoutVersion_modelDescriptionURI); - assign_map.emplace("cim:DiagramLayoutVersion.namespaceRDF", &assign_DiagramLayoutVersion_namespaceRDF); - assign_map.emplace("cim:DiagramLayoutVersion.namespaceUML", &assign_DiagramLayoutVersion_namespaceUML); - assign_map.emplace("cim:DiagramLayoutVersion.shortName", &assign_DiagramLayoutVersion_shortName); + assign_map.emplace("DiagramLayoutVersion.baseUML", &assign_DiagramLayoutVersion_baseUML); + assign_map.emplace("DiagramLayoutVersion.baseURI", &assign_DiagramLayoutVersion_baseURI); + assign_map.emplace("DiagramLayoutVersion.date", &assign_DiagramLayoutVersion_date); + assign_map.emplace("DiagramLayoutVersion.differenceModelURI", &assign_DiagramLayoutVersion_differenceModelURI); + assign_map.emplace("DiagramLayoutVersion.entsoeUML", &assign_DiagramLayoutVersion_entsoeUML); + assign_map.emplace("DiagramLayoutVersion.entsoeURI", &assign_DiagramLayoutVersion_entsoeURI); + assign_map.emplace("DiagramLayoutVersion.modelDescriptionURI", &assign_DiagramLayoutVersion_modelDescriptionURI); + assign_map.emplace("DiagramLayoutVersion.namespaceRDF", &assign_DiagramLayoutVersion_namespaceRDF); + assign_map.emplace("DiagramLayoutVersion.namespaceUML", &assign_DiagramLayoutVersion_namespaceUML); + assign_map.emplace("DiagramLayoutVersion.shortName", &assign_DiagramLayoutVersion_shortName); } void DiagramLayoutVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void DiagramLayoutVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramLayoutVersion.baseUML", &get_DiagramLayoutVersion_baseUML); - get_map.emplace("cim:DiagramLayoutVersion.baseURI", &get_DiagramLayoutVersion_baseURI); - get_map.emplace("cim:DiagramLayoutVersion.date", &get_DiagramLayoutVersion_date); - get_map.emplace("cim:DiagramLayoutVersion.differenceModelURI", &get_DiagramLayoutVersion_differenceModelURI); - get_map.emplace("cim:DiagramLayoutVersion.entsoeUML", &get_DiagramLayoutVersion_entsoeUML); - get_map.emplace("cim:DiagramLayoutVersion.entsoeURI", &get_DiagramLayoutVersion_entsoeURI); - get_map.emplace("cim:DiagramLayoutVersion.modelDescriptionURI", &get_DiagramLayoutVersion_modelDescriptionURI); - get_map.emplace("cim:DiagramLayoutVersion.namespaceRDF", &get_DiagramLayoutVersion_namespaceRDF); - get_map.emplace("cim:DiagramLayoutVersion.namespaceUML", &get_DiagramLayoutVersion_namespaceUML); - get_map.emplace("cim:DiagramLayoutVersion.shortName", &get_DiagramLayoutVersion_shortName); + get_map.emplace("DiagramLayoutVersion.baseUML", &get_DiagramLayoutVersion_baseUML); + get_map.emplace("DiagramLayoutVersion.baseURI", &get_DiagramLayoutVersion_baseURI); + get_map.emplace("DiagramLayoutVersion.date", &get_DiagramLayoutVersion_date); + get_map.emplace("DiagramLayoutVersion.differenceModelURI", &get_DiagramLayoutVersion_differenceModelURI); + get_map.emplace("DiagramLayoutVersion.entsoeUML", &get_DiagramLayoutVersion_entsoeUML); + get_map.emplace("DiagramLayoutVersion.entsoeURI", &get_DiagramLayoutVersion_entsoeURI); + get_map.emplace("DiagramLayoutVersion.modelDescriptionURI", &get_DiagramLayoutVersion_modelDescriptionURI); + get_map.emplace("DiagramLayoutVersion.namespaceRDF", &get_DiagramLayoutVersion_namespaceRDF); + get_map.emplace("DiagramLayoutVersion.namespaceUML", &get_DiagramLayoutVersion_namespaceUML); + get_map.emplace("DiagramLayoutVersion.shortName", &get_DiagramLayoutVersion_shortName); } void DiagramLayoutVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void DiagramLayoutVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiagramLayoutVersion::declare() { return BaseClassDefiner(DiagramLayoutVersion::addConstructToMap, DiagramLayoutVersion::addPrimitiveAssignFnsToMap, DiagramLayoutVersion::addClassAssignFnsToMap, DiagramLayoutVersion::debugName); } +std::map DiagramLayoutVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramLayoutVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiagramLayoutVersion.hpp b/CGMES_2.4.15_27JAN2020/DiagramLayoutVersion.hpp index e260f2faf..abc23a584 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramLayoutVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/DiagramLayoutVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramLayoutVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiagramObject.cpp b/CGMES_2.4.15_27JAN2020/DiagramObject.cpp index b85c6e596..98650069e 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramObject.cpp +++ b/CGMES_2.4.15_27JAN2020/DiagramObject.cpp @@ -16,41 +16,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObject.Diagram", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.DiagramObjectPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.DiagramObjectStyle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.IdentifiedObject", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.VisibilityLayers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.drawingOrder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.isPolygon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.offsetX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.offsetY", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObject.rotation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObject::DiagramObject() : Diagram(nullptr), DiagramObjectStyle(nullptr), IdentifiedObject(nullptr) {} DiagramObject::~DiagramObject() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObject::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObject::getClassNamespaceUrl() const { - { "cim:DiagramObject.Diagram", { CGMESProfile::DL, } }, - { "cim:DiagramObject.DiagramObjectPoints", { CGMESProfile::DL, } }, - { "cim:DiagramObject.DiagramObjectStyle", { CGMESProfile::DL, } }, - { "cim:DiagramObject.IdentifiedObject", { CGMESProfile::DL, } }, - { "cim:DiagramObject.VisibilityLayers", { CGMESProfile::DL, } }, - { "cim:DiagramObject.drawingOrder", { CGMESProfile::DL, } }, - { "cim:DiagramObject.isPolygon", { CGMESProfile::DL, } }, - { "cim:DiagramObject.offsetX", { CGMESProfile::DL, } }, - { "cim:DiagramObject.offsetY", { CGMESProfile::DL, } }, - { "cim:DiagramObject.rotation", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObject::getPossibleProfilesForClass() const +const std::string& DiagramObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObject::getPossibleProfilesForAttributes() const +const std::list& DiagramObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Diagram_DiagramElements(BaseClass*, BaseClass*); @@ -335,43 +367,43 @@ const char* DiagramObject::debugString() const void DiagramObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObject", &DiagramObject_factory); + factory_map.emplace("DiagramObject", &DiagramObject_factory); } void DiagramObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObject.drawingOrder", &assign_DiagramObject_drawingOrder); - assign_map.emplace("cim:DiagramObject.isPolygon", &assign_DiagramObject_isPolygon); - assign_map.emplace("cim:DiagramObject.offsetX", &assign_DiagramObject_offsetX); - assign_map.emplace("cim:DiagramObject.offsetY", &assign_DiagramObject_offsetY); - assign_map.emplace("cim:DiagramObject.rotation", &assign_DiagramObject_rotation); + assign_map.emplace("DiagramObject.drawingOrder", &assign_DiagramObject_drawingOrder); + assign_map.emplace("DiagramObject.isPolygon", &assign_DiagramObject_isPolygon); + assign_map.emplace("DiagramObject.offsetX", &assign_DiagramObject_offsetX); + assign_map.emplace("DiagramObject.offsetY", &assign_DiagramObject_offsetY); + assign_map.emplace("DiagramObject.rotation", &assign_DiagramObject_rotation); } void DiagramObject::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObject.Diagram", &assign_DiagramObject_Diagram); - assign_map.emplace("cim:DiagramObject.DiagramObjectPoints", &assign_DiagramObject_DiagramObjectPoints); - assign_map.emplace("cim:DiagramObject.DiagramObjectStyle", &assign_DiagramObject_DiagramObjectStyle); - assign_map.emplace("cim:DiagramObject.IdentifiedObject", &assign_DiagramObject_IdentifiedObject); - assign_map.emplace("cim:DiagramObject.VisibilityLayers", &assign_DiagramObject_VisibilityLayers); + assign_map.emplace("DiagramObject.Diagram", &assign_DiagramObject_Diagram); + assign_map.emplace("DiagramObject.DiagramObjectPoints", &assign_DiagramObject_DiagramObjectPoints); + assign_map.emplace("DiagramObject.DiagramObjectStyle", &assign_DiagramObject_DiagramObjectStyle); + assign_map.emplace("DiagramObject.IdentifiedObject", &assign_DiagramObject_IdentifiedObject); + assign_map.emplace("DiagramObject.VisibilityLayers", &assign_DiagramObject_VisibilityLayers); } void DiagramObject::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObject.drawingOrder", &get_DiagramObject_drawingOrder); - get_map.emplace("cim:DiagramObject.isPolygon", &get_DiagramObject_isPolygon); - get_map.emplace("cim:DiagramObject.offsetX", &get_DiagramObject_offsetX); - get_map.emplace("cim:DiagramObject.offsetY", &get_DiagramObject_offsetY); - get_map.emplace("cim:DiagramObject.rotation", &get_DiagramObject_rotation); + get_map.emplace("DiagramObject.drawingOrder", &get_DiagramObject_drawingOrder); + get_map.emplace("DiagramObject.isPolygon", &get_DiagramObject_isPolygon); + get_map.emplace("DiagramObject.offsetX", &get_DiagramObject_offsetX); + get_map.emplace("DiagramObject.offsetY", &get_DiagramObject_offsetY); + get_map.emplace("DiagramObject.rotation", &get_DiagramObject_rotation); } void DiagramObject::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObject.Diagram", &get_DiagramObject_Diagram); - get_map.emplace("cim:DiagramObject.DiagramObjectStyle", &get_DiagramObject_DiagramObjectStyle); - get_map.emplace("cim:DiagramObject.IdentifiedObject", &get_DiagramObject_IdentifiedObject); + get_map.emplace("DiagramObject.Diagram", &get_DiagramObject_Diagram); + get_map.emplace("DiagramObject.DiagramObjectStyle", &get_DiagramObject_DiagramObjectStyle); + get_map.emplace("DiagramObject.IdentifiedObject", &get_DiagramObject_IdentifiedObject); } void DiagramObject::addEnumGetFnsToMap(std::map& get_map) const @@ -379,11 +411,25 @@ void DiagramObject::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObject::declare() { return BaseClassDefiner(DiagramObject::addConstructToMap, DiagramObject::addPrimitiveAssignFnsToMap, DiagramObject::addClassAssignFnsToMap, DiagramObject::debugName); } +std::map DiagramObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObject_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiagramObject.hpp b/CGMES_2.4.15_27JAN2020/DiagramObject.hpp index 0c1745a1f..07b95633c 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramObject.hpp +++ b/CGMES_2.4.15_27JAN2020/DiagramObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "Integer.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObject_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiagramObjectGluePoint.cpp b/CGMES_2.4.15_27JAN2020/DiagramObjectGluePoint.cpp index eea8918f9..43406562a 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramObjectGluePoint.cpp +++ b/CGMES_2.4.15_27JAN2020/DiagramObjectGluePoint.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectGluePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectGluePoint.DiagramObjectPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectGluePoint::DiagramObjectGluePoint() {} DiagramObjectGluePoint::~DiagramObjectGluePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectGluePoint::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectGluePoint::getClassNamespaceUrl() const { - { "cim:DiagramObjectGluePoint.DiagramObjectPoints", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectGluePoint::getPossibleProfilesForClass() const +const std::string& DiagramObjectGluePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectGluePoint::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectGluePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectGluePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectGluePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectGluePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObjectPoint_DiagramObjectGluePoint(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramObjectGluePoint::debugString() const void DiagramObjectGluePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectGluePoint", &DiagramObjectGluePoint_factory); + factory_map.emplace("DiagramObjectGluePoint", &DiagramObjectGluePoint_factory); } void DiagramObjectGluePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramObjectGluePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectGluePoint.DiagramObjectPoints", &assign_DiagramObjectGluePoint_DiagramObjectPoints); + assign_map.emplace("DiagramObjectGluePoint.DiagramObjectPoints", &assign_DiagramObjectGluePoint_DiagramObjectPoints); } void DiagramObjectGluePoint::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramObjectGluePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectGluePoint::declare() { return BaseClassDefiner(DiagramObjectGluePoint::addConstructToMap, DiagramObjectGluePoint::addPrimitiveAssignFnsToMap, DiagramObjectGluePoint::addClassAssignFnsToMap, DiagramObjectGluePoint::debugName); } +std::map DiagramObjectGluePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectGluePoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiagramObjectGluePoint.hpp b/CGMES_2.4.15_27JAN2020/DiagramObjectGluePoint.hpp index fec9f8e23..e99190a4f 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramObjectGluePoint.hpp +++ b/CGMES_2.4.15_27JAN2020/DiagramObjectGluePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectGluePoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiagramObjectPoint.cpp b/CGMES_2.4.15_27JAN2020/DiagramObjectPoint.cpp index 4afd45f45..a422e8c03 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramObjectPoint.cpp +++ b/CGMES_2.4.15_27JAN2020/DiagramObjectPoint.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectPoint.DiagramObject", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.DiagramObjectGluePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.xPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.yPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.zPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectPoint::DiagramObjectPoint() : DiagramObject(nullptr), DiagramObjectGluePoint(nullptr) {} DiagramObjectPoint::~DiagramObjectPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectPoint::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectPoint::getClassNamespaceUrl() const { - { "cim:DiagramObjectPoint.DiagramObject", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.DiagramObjectGluePoint", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.sequenceNumber", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.xPosition", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.yPosition", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.zPosition", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectPoint::getPossibleProfilesForClass() const +const std::string& DiagramObjectPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectPoint::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_DiagramObjectPoints(BaseClass*, BaseClass*); @@ -232,37 +264,37 @@ const char* DiagramObjectPoint::debugString() const void DiagramObjectPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectPoint", &DiagramObjectPoint_factory); + factory_map.emplace("DiagramObjectPoint", &DiagramObjectPoint_factory); } void DiagramObjectPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectPoint.sequenceNumber", &assign_DiagramObjectPoint_sequenceNumber); - assign_map.emplace("cim:DiagramObjectPoint.xPosition", &assign_DiagramObjectPoint_xPosition); - assign_map.emplace("cim:DiagramObjectPoint.yPosition", &assign_DiagramObjectPoint_yPosition); - assign_map.emplace("cim:DiagramObjectPoint.zPosition", &assign_DiagramObjectPoint_zPosition); + assign_map.emplace("DiagramObjectPoint.sequenceNumber", &assign_DiagramObjectPoint_sequenceNumber); + assign_map.emplace("DiagramObjectPoint.xPosition", &assign_DiagramObjectPoint_xPosition); + assign_map.emplace("DiagramObjectPoint.yPosition", &assign_DiagramObjectPoint_yPosition); + assign_map.emplace("DiagramObjectPoint.zPosition", &assign_DiagramObjectPoint_zPosition); } void DiagramObjectPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectPoint.DiagramObject", &assign_DiagramObjectPoint_DiagramObject); - assign_map.emplace("cim:DiagramObjectPoint.DiagramObjectGluePoint", &assign_DiagramObjectPoint_DiagramObjectGluePoint); + assign_map.emplace("DiagramObjectPoint.DiagramObject", &assign_DiagramObjectPoint_DiagramObject); + assign_map.emplace("DiagramObjectPoint.DiagramObjectGluePoint", &assign_DiagramObjectPoint_DiagramObjectGluePoint); } void DiagramObjectPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObjectPoint.sequenceNumber", &get_DiagramObjectPoint_sequenceNumber); - get_map.emplace("cim:DiagramObjectPoint.xPosition", &get_DiagramObjectPoint_xPosition); - get_map.emplace("cim:DiagramObjectPoint.yPosition", &get_DiagramObjectPoint_yPosition); - get_map.emplace("cim:DiagramObjectPoint.zPosition", &get_DiagramObjectPoint_zPosition); + get_map.emplace("DiagramObjectPoint.sequenceNumber", &get_DiagramObjectPoint_sequenceNumber); + get_map.emplace("DiagramObjectPoint.xPosition", &get_DiagramObjectPoint_xPosition); + get_map.emplace("DiagramObjectPoint.yPosition", &get_DiagramObjectPoint_yPosition); + get_map.emplace("DiagramObjectPoint.zPosition", &get_DiagramObjectPoint_zPosition); } void DiagramObjectPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObjectPoint.DiagramObject", &get_DiagramObjectPoint_DiagramObject); - get_map.emplace("cim:DiagramObjectPoint.DiagramObjectGluePoint", &get_DiagramObjectPoint_DiagramObjectGluePoint); + get_map.emplace("DiagramObjectPoint.DiagramObject", &get_DiagramObjectPoint_DiagramObject); + get_map.emplace("DiagramObjectPoint.DiagramObjectGluePoint", &get_DiagramObjectPoint_DiagramObjectGluePoint); } void DiagramObjectPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -270,11 +302,25 @@ void DiagramObjectPoint::addEnumGetFnsToMap(std::map& BaseClass::addEnumGetFnsToMap(get_map); } +bool DiagramObjectPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObjectPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectPoint::declare() { return BaseClassDefiner(DiagramObjectPoint::addConstructToMap, DiagramObjectPoint::addPrimitiveAssignFnsToMap, DiagramObjectPoint::addClassAssignFnsToMap, DiagramObjectPoint::debugName); } +std::map DiagramObjectPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectPoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiagramObjectPoint.hpp b/CGMES_2.4.15_27JAN2020/DiagramObjectPoint.hpp index ed1f2dcc5..714be009e 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramObjectPoint.hpp +++ b/CGMES_2.4.15_27JAN2020/DiagramObjectPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectPoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiagramObjectStyle.cpp b/CGMES_2.4.15_27JAN2020/DiagramObjectStyle.cpp index db870f870..a2439ade4 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramObjectStyle.cpp +++ b/CGMES_2.4.15_27JAN2020/DiagramObjectStyle.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectStyle(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectStyle.StyledObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectStyle::DiagramObjectStyle() {} DiagramObjectStyle::~DiagramObjectStyle() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectStyle::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectStyle::getClassNamespaceUrl() const { - { "cim:DiagramObjectStyle.StyledObjects", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectStyle::getPossibleProfilesForClass() const +const std::string& DiagramObjectStyle::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectStyle::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectStyle::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectStyle::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectStyle::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectStyle::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_DiagramObjectStyle(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramObjectStyle::debugString() const void DiagramObjectStyle::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectStyle", &DiagramObjectStyle_factory); + factory_map.emplace("DiagramObjectStyle", &DiagramObjectStyle_factory); } void DiagramObjectStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramObjectStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectStyle.StyledObjects", &assign_DiagramObjectStyle_StyledObjects); + assign_map.emplace("DiagramObjectStyle.StyledObjects", &assign_DiagramObjectStyle_StyledObjects); } void DiagramObjectStyle::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramObjectStyle::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramObjectStyle::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObjectStyle" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectStyle::declare() { return BaseClassDefiner(DiagramObjectStyle::addConstructToMap, DiagramObjectStyle::addPrimitiveAssignFnsToMap, DiagramObjectStyle::addClassAssignFnsToMap, DiagramObjectStyle::debugName); } +std::map DiagramObjectStyle::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectStyle_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiagramObjectStyle.hpp b/CGMES_2.4.15_27JAN2020/DiagramObjectStyle.hpp index a2dc55692..492f12573 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramObjectStyle.hpp +++ b/CGMES_2.4.15_27JAN2020/DiagramObjectStyle.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectStyle_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiagramStyle.cpp b/CGMES_2.4.15_27JAN2020/DiagramStyle.cpp index dd98ebef0..0cb05ba20 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramStyle.cpp +++ b/CGMES_2.4.15_27JAN2020/DiagramStyle.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramStyle(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramStyle.Diagram", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramStyle::DiagramStyle() {} DiagramStyle::~DiagramStyle() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramStyle::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramStyle::getClassNamespaceUrl() const { - { "cim:DiagramStyle.Diagram", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramStyle::getPossibleProfilesForClass() const +const std::string& DiagramStyle::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramStyle::getPossibleProfilesForAttributes() const +const std::list& DiagramStyle::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramStyle::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramStyle::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramStyle::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Diagram_DiagramStyle(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramStyle::debugString() const void DiagramStyle::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramStyle", &DiagramStyle_factory); + factory_map.emplace("DiagramStyle", &DiagramStyle_factory); } void DiagramStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramStyle.Diagram", &assign_DiagramStyle_Diagram); + assign_map.emplace("DiagramStyle.Diagram", &assign_DiagramStyle_Diagram); } void DiagramStyle::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramStyle::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramStyle::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramStyle" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramStyle::declare() { return BaseClassDefiner(DiagramStyle::addConstructToMap, DiagramStyle::addPrimitiveAssignFnsToMap, DiagramStyle::addClassAssignFnsToMap, DiagramStyle::debugName); } +std::map DiagramStyle::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramStyle_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiagramStyle.hpp b/CGMES_2.4.15_27JAN2020/DiagramStyle.hpp index 76311dfe7..e816715cf 100644 --- a/CGMES_2.4.15_27JAN2020/DiagramStyle.hpp +++ b/CGMES_2.4.15_27JAN2020/DiagramStyle.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramStyle_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC1A.cpp b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC1A.cpp index 590aabc67..29aef6281 100644 --- a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC1A.cpp +++ b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC1A.esc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.kan", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.ketl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tan", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tw5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.val", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vanmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vomax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vomin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtlmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC1A::DiscExcContIEEEDEC1A() {} DiscExcContIEEEDEC1A::~DiscExcContIEEEDEC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC1A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC1A.esc", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.kan", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.ketl", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tan", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.td", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tl1", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tl2", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tw5", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.val", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vanmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vomax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vomin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vsmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vsmin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtc", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtlmt", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtm", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtn", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC1A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC1A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC1A_esc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* DiscExcContIEEEDEC1A::debugString() const void DiscExcContIEEEDEC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC1A", &DiscExcContIEEEDEC1A_factory); + factory_map.emplace("DiscExcContIEEEDEC1A", &DiscExcContIEEEDEC1A_factory); } void DiscExcContIEEEDEC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC1A.esc", &assign_DiscExcContIEEEDEC1A_esc); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.kan", &assign_DiscExcContIEEEDEC1A_kan); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.ketl", &assign_DiscExcContIEEEDEC1A_ketl); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tan", &assign_DiscExcContIEEEDEC1A_tan); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.td", &assign_DiscExcContIEEEDEC1A_td); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tl1", &assign_DiscExcContIEEEDEC1A_tl1); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tl2", &assign_DiscExcContIEEEDEC1A_tl2); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tw5", &assign_DiscExcContIEEEDEC1A_tw5); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.val", &assign_DiscExcContIEEEDEC1A_val); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vanmax", &assign_DiscExcContIEEEDEC1A_vanmax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vomax", &assign_DiscExcContIEEEDEC1A_vomax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vomin", &assign_DiscExcContIEEEDEC1A_vomin); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vsmax", &assign_DiscExcContIEEEDEC1A_vsmax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vsmin", &assign_DiscExcContIEEEDEC1A_vsmin); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtc", &assign_DiscExcContIEEEDEC1A_vtc); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtlmt", &assign_DiscExcContIEEEDEC1A_vtlmt); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtm", &assign_DiscExcContIEEEDEC1A_vtm); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtn", &assign_DiscExcContIEEEDEC1A_vtn); + assign_map.emplace("DiscExcContIEEEDEC1A.esc", &assign_DiscExcContIEEEDEC1A_esc); + assign_map.emplace("DiscExcContIEEEDEC1A.kan", &assign_DiscExcContIEEEDEC1A_kan); + assign_map.emplace("DiscExcContIEEEDEC1A.ketl", &assign_DiscExcContIEEEDEC1A_ketl); + assign_map.emplace("DiscExcContIEEEDEC1A.tan", &assign_DiscExcContIEEEDEC1A_tan); + assign_map.emplace("DiscExcContIEEEDEC1A.td", &assign_DiscExcContIEEEDEC1A_td); + assign_map.emplace("DiscExcContIEEEDEC1A.tl1", &assign_DiscExcContIEEEDEC1A_tl1); + assign_map.emplace("DiscExcContIEEEDEC1A.tl2", &assign_DiscExcContIEEEDEC1A_tl2); + assign_map.emplace("DiscExcContIEEEDEC1A.tw5", &assign_DiscExcContIEEEDEC1A_tw5); + assign_map.emplace("DiscExcContIEEEDEC1A.val", &assign_DiscExcContIEEEDEC1A_val); + assign_map.emplace("DiscExcContIEEEDEC1A.vanmax", &assign_DiscExcContIEEEDEC1A_vanmax); + assign_map.emplace("DiscExcContIEEEDEC1A.vomax", &assign_DiscExcContIEEEDEC1A_vomax); + assign_map.emplace("DiscExcContIEEEDEC1A.vomin", &assign_DiscExcContIEEEDEC1A_vomin); + assign_map.emplace("DiscExcContIEEEDEC1A.vsmax", &assign_DiscExcContIEEEDEC1A_vsmax); + assign_map.emplace("DiscExcContIEEEDEC1A.vsmin", &assign_DiscExcContIEEEDEC1A_vsmin); + assign_map.emplace("DiscExcContIEEEDEC1A.vtc", &assign_DiscExcContIEEEDEC1A_vtc); + assign_map.emplace("DiscExcContIEEEDEC1A.vtlmt", &assign_DiscExcContIEEEDEC1A_vtlmt); + assign_map.emplace("DiscExcContIEEEDEC1A.vtm", &assign_DiscExcContIEEEDEC1A_vtm); + assign_map.emplace("DiscExcContIEEEDEC1A.vtn", &assign_DiscExcContIEEEDEC1A_vtn); } void DiscExcContIEEEDEC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void DiscExcContIEEEDEC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC1A.esc", &get_DiscExcContIEEEDEC1A_esc); - get_map.emplace("cim:DiscExcContIEEEDEC1A.kan", &get_DiscExcContIEEEDEC1A_kan); - get_map.emplace("cim:DiscExcContIEEEDEC1A.ketl", &get_DiscExcContIEEEDEC1A_ketl); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tan", &get_DiscExcContIEEEDEC1A_tan); - get_map.emplace("cim:DiscExcContIEEEDEC1A.td", &get_DiscExcContIEEEDEC1A_td); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tl1", &get_DiscExcContIEEEDEC1A_tl1); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tl2", &get_DiscExcContIEEEDEC1A_tl2); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tw5", &get_DiscExcContIEEEDEC1A_tw5); - get_map.emplace("cim:DiscExcContIEEEDEC1A.val", &get_DiscExcContIEEEDEC1A_val); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vanmax", &get_DiscExcContIEEEDEC1A_vanmax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vomax", &get_DiscExcContIEEEDEC1A_vomax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vomin", &get_DiscExcContIEEEDEC1A_vomin); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vsmax", &get_DiscExcContIEEEDEC1A_vsmax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vsmin", &get_DiscExcContIEEEDEC1A_vsmin); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtc", &get_DiscExcContIEEEDEC1A_vtc); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtlmt", &get_DiscExcContIEEEDEC1A_vtlmt); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtm", &get_DiscExcContIEEEDEC1A_vtm); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtn", &get_DiscExcContIEEEDEC1A_vtn); + get_map.emplace("DiscExcContIEEEDEC1A.esc", &get_DiscExcContIEEEDEC1A_esc); + get_map.emplace("DiscExcContIEEEDEC1A.kan", &get_DiscExcContIEEEDEC1A_kan); + get_map.emplace("DiscExcContIEEEDEC1A.ketl", &get_DiscExcContIEEEDEC1A_ketl); + get_map.emplace("DiscExcContIEEEDEC1A.tan", &get_DiscExcContIEEEDEC1A_tan); + get_map.emplace("DiscExcContIEEEDEC1A.td", &get_DiscExcContIEEEDEC1A_td); + get_map.emplace("DiscExcContIEEEDEC1A.tl1", &get_DiscExcContIEEEDEC1A_tl1); + get_map.emplace("DiscExcContIEEEDEC1A.tl2", &get_DiscExcContIEEEDEC1A_tl2); + get_map.emplace("DiscExcContIEEEDEC1A.tw5", &get_DiscExcContIEEEDEC1A_tw5); + get_map.emplace("DiscExcContIEEEDEC1A.val", &get_DiscExcContIEEEDEC1A_val); + get_map.emplace("DiscExcContIEEEDEC1A.vanmax", &get_DiscExcContIEEEDEC1A_vanmax); + get_map.emplace("DiscExcContIEEEDEC1A.vomax", &get_DiscExcContIEEEDEC1A_vomax); + get_map.emplace("DiscExcContIEEEDEC1A.vomin", &get_DiscExcContIEEEDEC1A_vomin); + get_map.emplace("DiscExcContIEEEDEC1A.vsmax", &get_DiscExcContIEEEDEC1A_vsmax); + get_map.emplace("DiscExcContIEEEDEC1A.vsmin", &get_DiscExcContIEEEDEC1A_vsmin); + get_map.emplace("DiscExcContIEEEDEC1A.vtc", &get_DiscExcContIEEEDEC1A_vtc); + get_map.emplace("DiscExcContIEEEDEC1A.vtlmt", &get_DiscExcContIEEEDEC1A_vtlmt); + get_map.emplace("DiscExcContIEEEDEC1A.vtm", &get_DiscExcContIEEEDEC1A_vtm); + get_map.emplace("DiscExcContIEEEDEC1A.vtn", &get_DiscExcContIEEEDEC1A_vtn); } void DiscExcContIEEEDEC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void DiscExcContIEEEDEC1A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC1A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC1A::addConstructToMap, DiscExcContIEEEDEC1A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC1A::addClassAssignFnsToMap, DiscExcContIEEEDEC1A::debugName); } +std::map DiscExcContIEEEDEC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC1A.hpp b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC1A.hpp index d401f3ce2..bbda6b2dd 100644 --- a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC1A.hpp +++ b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC2A.cpp b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC2A.cpp index dc94e52c0..d7f69c3db 100644 --- a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC2A.cpp +++ b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC2A.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC2A.td1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.td2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC2A::DiscExcContIEEEDEC2A() {} DiscExcContIEEEDEC2A::~DiscExcContIEEEDEC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC2A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC2A.td1", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.td2", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vdmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vdmin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vk", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC2A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC2A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC2A_td1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* DiscExcContIEEEDEC2A::debugString() const void DiscExcContIEEEDEC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC2A", &DiscExcContIEEEDEC2A_factory); + factory_map.emplace("DiscExcContIEEEDEC2A", &DiscExcContIEEEDEC2A_factory); } void DiscExcContIEEEDEC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC2A.td1", &assign_DiscExcContIEEEDEC2A_td1); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.td2", &assign_DiscExcContIEEEDEC2A_td2); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vdmax", &assign_DiscExcContIEEEDEC2A_vdmax); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vdmin", &assign_DiscExcContIEEEDEC2A_vdmin); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vk", &assign_DiscExcContIEEEDEC2A_vk); + assign_map.emplace("DiscExcContIEEEDEC2A.td1", &assign_DiscExcContIEEEDEC2A_td1); + assign_map.emplace("DiscExcContIEEEDEC2A.td2", &assign_DiscExcContIEEEDEC2A_td2); + assign_map.emplace("DiscExcContIEEEDEC2A.vdmax", &assign_DiscExcContIEEEDEC2A_vdmax); + assign_map.emplace("DiscExcContIEEEDEC2A.vdmin", &assign_DiscExcContIEEEDEC2A_vdmin); + assign_map.emplace("DiscExcContIEEEDEC2A.vk", &assign_DiscExcContIEEEDEC2A_vk); } void DiscExcContIEEEDEC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void DiscExcContIEEEDEC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC2A.td1", &get_DiscExcContIEEEDEC2A_td1); - get_map.emplace("cim:DiscExcContIEEEDEC2A.td2", &get_DiscExcContIEEEDEC2A_td2); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vdmax", &get_DiscExcContIEEEDEC2A_vdmax); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vdmin", &get_DiscExcContIEEEDEC2A_vdmin); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vk", &get_DiscExcContIEEEDEC2A_vk); + get_map.emplace("DiscExcContIEEEDEC2A.td1", &get_DiscExcContIEEEDEC2A_td1); + get_map.emplace("DiscExcContIEEEDEC2A.td2", &get_DiscExcContIEEEDEC2A_td2); + get_map.emplace("DiscExcContIEEEDEC2A.vdmax", &get_DiscExcContIEEEDEC2A_vdmax); + get_map.emplace("DiscExcContIEEEDEC2A.vdmin", &get_DiscExcContIEEEDEC2A_vdmin); + get_map.emplace("DiscExcContIEEEDEC2A.vk", &get_DiscExcContIEEEDEC2A_vk); } void DiscExcContIEEEDEC2A::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void DiscExcContIEEEDEC2A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC2A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC2A::addConstructToMap, DiscExcContIEEEDEC2A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC2A::addClassAssignFnsToMap, DiscExcContIEEEDEC2A::debugName); } +std::map DiscExcContIEEEDEC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC2A_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC2A.hpp b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC2A.hpp index 0e8a5a1bd..bf9f135a4 100644 --- a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC2A.hpp +++ b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC2A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC3A.cpp b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC3A.cpp index 67dd91242..ba0c94f9b 100644 --- a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC3A.cpp +++ b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC3A.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC3A.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC3A.vtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC3A::DiscExcContIEEEDEC3A() {} DiscExcContIEEEDEC3A::~DiscExcContIEEEDEC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC3A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC3A.tdr", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC3A.vtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC3A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC3A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC3A_tdr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DiscExcContIEEEDEC3A::debugString() const void DiscExcContIEEEDEC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC3A", &DiscExcContIEEEDEC3A_factory); + factory_map.emplace("DiscExcContIEEEDEC3A", &DiscExcContIEEEDEC3A_factory); } void DiscExcContIEEEDEC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC3A.tdr", &assign_DiscExcContIEEEDEC3A_tdr); - assign_map.emplace("cim:DiscExcContIEEEDEC3A.vtmin", &assign_DiscExcContIEEEDEC3A_vtmin); + assign_map.emplace("DiscExcContIEEEDEC3A.tdr", &assign_DiscExcContIEEEDEC3A_tdr); + assign_map.emplace("DiscExcContIEEEDEC3A.vtmin", &assign_DiscExcContIEEEDEC3A_vtmin); } void DiscExcContIEEEDEC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DiscExcContIEEEDEC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC3A.tdr", &get_DiscExcContIEEEDEC3A_tdr); - get_map.emplace("cim:DiscExcContIEEEDEC3A.vtmin", &get_DiscExcContIEEEDEC3A_vtmin); + get_map.emplace("DiscExcContIEEEDEC3A.tdr", &get_DiscExcContIEEEDEC3A_tdr); + get_map.emplace("DiscExcContIEEEDEC3A.vtmin", &get_DiscExcContIEEEDEC3A_vtmin); } void DiscExcContIEEEDEC3A::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DiscExcContIEEEDEC3A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC3A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC3A::addConstructToMap, DiscExcContIEEEDEC3A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC3A::addClassAssignFnsToMap, DiscExcContIEEEDEC3A::debugName); } +std::map DiscExcContIEEEDEC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC3A_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC3A.hpp b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC3A.hpp index 24ceb2f88..4c5aa480d 100644 --- a/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC3A.hpp +++ b/CGMES_2.4.15_27JAN2020/DiscExcContIEEEDEC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC3A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Disconnector.cpp b/CGMES_2.4.15_27JAN2020/Disconnector.cpp index e64c24d80..0d9016d8f 100644 --- a/CGMES_2.4.15_27JAN2020/Disconnector.cpp +++ b/CGMES_2.4.15_27JAN2020/Disconnector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Disconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Disconnector::Disconnector() {} Disconnector::~Disconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& Disconnector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Disconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Disconnector::getPossibleProfilesForClass() const +const std::string& Disconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Disconnector::getPossibleProfilesForAttributes() const +const std::list& Disconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Disconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Disconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Disconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Disconnector::debugName[] = "Disconnector"; @@ -47,7 +79,7 @@ const char* Disconnector::debugString() const void Disconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Disconnector", &Disconnector_factory); + factory_map.emplace("Disconnector", &Disconnector_factory); } void Disconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Disconnector::addEnumGetFnsToMap(std::map& get_m Switch::addEnumGetFnsToMap(get_map); } +bool Disconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Disconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Disconnector::declare() { return BaseClassDefiner(Disconnector::addConstructToMap, Disconnector::addPrimitiveAssignFnsToMap, Disconnector::addClassAssignFnsToMap, Disconnector::debugName); } +std::map Disconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Disconnector_factory() diff --git a/CGMES_2.4.15_27JAN2020/Disconnector.hpp b/CGMES_2.4.15_27JAN2020/Disconnector.hpp index 844173634..ee167a6d1 100644 --- a/CGMES_2.4.15_27JAN2020/Disconnector.hpp +++ b/CGMES_2.4.15_27JAN2020/Disconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Disconnector_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlDynamics.cpp b/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlDynamics.cpp index 1e6569ea1..9073c219f 100644 --- a/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscontinuousExcitationControlDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscontinuousExcitationControlDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscontinuousExcitationControlDynamics::DiscontinuousExcitationControlDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} DiscontinuousExcitationControlDynamics::~DiscontinuousExcitationControlDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscontinuousExcitationControlDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscontinuousExcitationControlDynamics::getClassNamespaceUrl() const { - { "cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:DiscontinuousExcitationControlDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscontinuousExcitationControlDynamics::getPossibleProfilesForClass() const +const std::string& DiscontinuousExcitationControlDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes() const +const std::list& DiscontinuousExcitationControlDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscontinuousExcitationControlDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscontinuousExcitationControlDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscontinuousExcitationControlDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* DiscontinuousExcitationControlDynamics::debugString() const void DiscontinuousExcitationControlDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscontinuousExcitationControlDynamics", &DiscontinuousExcitationControlDynamics_factory); + factory_map.emplace("DiscontinuousExcitationControlDynamics", &DiscontinuousExcitationControlDynamics_factory); } void DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap(std::uno void DiscontinuousExcitationControlDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:DiscontinuousExcitationControlDynamics.RemoteInputSignal", &assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal); + assign_map.emplace("DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); + assign_map.emplace("DiscontinuousExcitationControlDynamics.RemoteInputSignal", &assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal); } void DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &get_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); + get_map.emplace("DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &get_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); } void DiscontinuousExcitationControlDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void DiscontinuousExcitationControlDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscontinuousExcitationControlDynamics::declare() { return BaseClassDefiner(DiscontinuousExcitationControlDynamics::addConstructToMap, DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap, DiscontinuousExcitationControlDynamics::addClassAssignFnsToMap, DiscontinuousExcitationControlDynamics::debugName); } +std::map DiscontinuousExcitationControlDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscontinuousExcitationControlDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlDynamics.hpp b/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlDynamics.hpp index e0a40c245..a674d954c 100644 --- a/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscontinuousExcitationControlDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlUserDefined.cpp b/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlUserDefined.cpp index f2154bd03..654660541 100644 --- a/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscontinuousExcitationControlUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "DiscontinuousExcitationControlUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscontinuousExcitationControlUserDefined::DiscontinuousExcitationControlUserDefined() {} DiscontinuousExcitationControlUserDefined::~DiscontinuousExcitationControlUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscontinuousExcitationControlUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscontinuousExcitationControlUserDefined::getClassNamespaceUrl() const { - { "cim:DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:DiscontinuousExcitationControlUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscontinuousExcitationControlUserDefined::getPossibleProfilesForClass() const +const std::string& DiscontinuousExcitationControlUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscontinuousExcitationControlUserDefined::getPossibleProfilesForAttributes() const +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscontinuousExcitationControlUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* DiscontinuousExcitationControlUserDefined::debugString() const void DiscontinuousExcitationControlUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscontinuousExcitationControlUserDefined", &DiscontinuousExcitationControlUserDefined_factory); + factory_map.emplace("DiscontinuousExcitationControlUserDefined", &DiscontinuousExcitationControlUserDefined_factory); } void DiscontinuousExcitationControlUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlUserDefined.proprietary", &assign_DiscontinuousExcitationControlUserDefined_proprietary); + assign_map.emplace("DiscontinuousExcitationControlUserDefined.proprietary", &assign_DiscontinuousExcitationControlUserDefined_proprietary); } void DiscontinuousExcitationControlUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", &assign_DiscontinuousExcitationControlUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", &assign_DiscontinuousExcitationControlUserDefined_ProprietaryParameterDynamics); } void DiscontinuousExcitationControlUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscontinuousExcitationControlUserDefined.proprietary", &get_DiscontinuousExcitationControlUserDefined_proprietary); + get_map.emplace("DiscontinuousExcitationControlUserDefined.proprietary", &get_DiscontinuousExcitationControlUserDefined_proprietary); } void DiscontinuousExcitationControlUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void DiscontinuousExcitationControlUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscontinuousExcitationControlUserDefined::declare() { return BaseClassDefiner(DiscontinuousExcitationControlUserDefined::addConstructToMap, DiscontinuousExcitationControlUserDefined::addPrimitiveAssignFnsToMap, DiscontinuousExcitationControlUserDefined::addClassAssignFnsToMap, DiscontinuousExcitationControlUserDefined::debugName); } +std::map DiscontinuousExcitationControlUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscontinuousExcitationControlUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlUserDefined.hpp b/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlUserDefined.hpp index 051d1a48d..d5f249b1b 100644 --- a/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/DiscontinuousExcitationControlUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscontinuousExcitationControlUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Discrete.cpp b/CGMES_2.4.15_27JAN2020/Discrete.cpp index bed7e18ab..1bd375816 100644 --- a/CGMES_2.4.15_27JAN2020/Discrete.cpp +++ b/CGMES_2.4.15_27JAN2020/Discrete.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Discrete(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Discrete.DiscreteValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Discrete.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Discrete::Discrete() : ValueAliasSet(nullptr) {} Discrete::~Discrete() {} -static const std::list PossibleProfilesForClass = +const std::list& Discrete::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Discrete::getClassNamespaceUrl() const { - { "cim:Discrete.DiscreteValues", { CGMESProfile::EQ, } }, - { "cim:Discrete.ValueAliasSet", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Discrete::getPossibleProfilesForClass() const +const std::string& Discrete::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Discrete::getPossibleProfilesForAttributes() const +const std::list& Discrete::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Discrete::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Discrete::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Discrete::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscreteValue_Discrete(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* Discrete::debugString() const void Discrete::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Discrete", &Discrete_factory); + factory_map.emplace("Discrete", &Discrete_factory); } void Discrete::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void Discrete::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Discrete.DiscreteValues", &assign_Discrete_DiscreteValues); - assign_map.emplace("cim:Discrete.ValueAliasSet", &assign_Discrete_ValueAliasSet); + assign_map.emplace("Discrete.DiscreteValues", &assign_Discrete_DiscreteValues); + assign_map.emplace("Discrete.ValueAliasSet", &assign_Discrete_ValueAliasSet); } void Discrete::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void Discrete::addPrimitiveGetFnsToMap(std::map& get_ void Discrete::addClassGetFnsToMap(std::map& get_map) const { Measurement::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Discrete.ValueAliasSet", &get_Discrete_ValueAliasSet); + get_map.emplace("Discrete.ValueAliasSet", &get_Discrete_ValueAliasSet); } void Discrete::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void Discrete::addEnumGetFnsToMap(std::map& get_map) Measurement::addEnumGetFnsToMap(get_map); } +bool Discrete::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Discrete" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Discrete::declare() { return BaseClassDefiner(Discrete::addConstructToMap, Discrete::addPrimitiveAssignFnsToMap, Discrete::addClassAssignFnsToMap, Discrete::debugName); } +std::map Discrete::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Discrete_factory() diff --git a/CGMES_2.4.15_27JAN2020/Discrete.hpp b/CGMES_2.4.15_27JAN2020/Discrete.hpp index 2672d040b..aaf8edce0 100644 --- a/CGMES_2.4.15_27JAN2020/Discrete.hpp +++ b/CGMES_2.4.15_27JAN2020/Discrete.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Discrete_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DiscreteValue.cpp b/CGMES_2.4.15_27JAN2020/DiscreteValue.cpp index a990c7895..0e11b18cd 100644 --- a/CGMES_2.4.15_27JAN2020/DiscreteValue.cpp +++ b/CGMES_2.4.15_27JAN2020/DiscreteValue.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscreteValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscreteValue.Command", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DiscreteValue.Discrete", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "DiscreteValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DiscreteValue::DiscreteValue() : Command(nullptr), Discrete(nullptr) {} DiscreteValue::~DiscreteValue() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscreteValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscreteValue::getClassNamespaceUrl() const { - { "cim:DiscreteValue.Command", { CGMESProfile::EQ, } }, - { "cim:DiscreteValue.Discrete", { CGMESProfile::EQ, } }, - { "cim:DiscreteValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscreteValue::getPossibleProfilesForClass() const +const std::string& DiscreteValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscreteValue::getPossibleProfilesForAttributes() const +const std::list& DiscreteValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscreteValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscreteValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscreteValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Command_DiscreteValue(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* DiscreteValue::debugString() const void DiscreteValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscreteValue", &DiscreteValue_factory); + factory_map.emplace("DiscreteValue", &DiscreteValue_factory); } void DiscreteValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscreteValue.value", &assign_DiscreteValue_value); + assign_map.emplace("DiscreteValue.value", &assign_DiscreteValue_value); } void DiscreteValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscreteValue.Command", &assign_DiscreteValue_Command); - assign_map.emplace("cim:DiscreteValue.Discrete", &assign_DiscreteValue_Discrete); + assign_map.emplace("DiscreteValue.Command", &assign_DiscreteValue_Command); + assign_map.emplace("DiscreteValue.Discrete", &assign_DiscreteValue_Discrete); } void DiscreteValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscreteValue.value", &get_DiscreteValue_value); + get_map.emplace("DiscreteValue.value", &get_DiscreteValue_value); } void DiscreteValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiscreteValue.Discrete", &get_DiscreteValue_Discrete); + get_map.emplace("DiscreteValue.Discrete", &get_DiscreteValue_Discrete); } void DiscreteValue::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void DiscreteValue::addEnumGetFnsToMap(std::map& get_ MeasurementValue::addEnumGetFnsToMap(get_map); } +bool DiscreteValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiscreteValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiscreteValue::declare() { return BaseClassDefiner(DiscreteValue::addConstructToMap, DiscreteValue::addPrimitiveAssignFnsToMap, DiscreteValue::addClassAssignFnsToMap, DiscreteValue::debugName); } +std::map DiscreteValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscreteValue_factory() diff --git a/CGMES_2.4.15_27JAN2020/DiscreteValue.hpp b/CGMES_2.4.15_27JAN2020/DiscreteValue.hpp index 1fbc352c7..250331f6f 100644 --- a/CGMES_2.4.15_27JAN2020/DiscreteValue.hpp +++ b/CGMES_2.4.15_27JAN2020/DiscreteValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscreteValue_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DynamicsFunctionBlock.cpp b/CGMES_2.4.15_27JAN2020/DynamicsFunctionBlock.cpp index 3ed474991..3e79182d2 100644 --- a/CGMES_2.4.15_27JAN2020/DynamicsFunctionBlock.cpp +++ b/CGMES_2.4.15_27JAN2020/DynamicsFunctionBlock.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DynamicsFunctionBlock(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DynamicsFunctionBlock.enabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DynamicsFunctionBlock::DynamicsFunctionBlock() {} DynamicsFunctionBlock::~DynamicsFunctionBlock() {} -static const std::list PossibleProfilesForClass = +const std::list& DynamicsFunctionBlock::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DynamicsFunctionBlock::getClassNamespaceUrl() const { - { "cim:DynamicsFunctionBlock.enabled", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DynamicsFunctionBlock::getPossibleProfilesForClass() const +const std::string& DynamicsFunctionBlock::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DynamicsFunctionBlock::getPossibleProfilesForAttributes() const +const std::list& DynamicsFunctionBlock::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DynamicsFunctionBlock::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DynamicsFunctionBlock::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DynamicsFunctionBlock::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DynamicsFunctionBlock_enabled(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* DynamicsFunctionBlock::debugString() const void DynamicsFunctionBlock::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DynamicsFunctionBlock", &DynamicsFunctionBlock_factory); + factory_map.emplace("DynamicsFunctionBlock", &DynamicsFunctionBlock_factory); } void DynamicsFunctionBlock::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DynamicsFunctionBlock.enabled", &assign_DynamicsFunctionBlock_enabled); + assign_map.emplace("DynamicsFunctionBlock.enabled", &assign_DynamicsFunctionBlock_enabled); } void DynamicsFunctionBlock::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void DynamicsFunctionBlock::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DynamicsFunctionBlock.enabled", &get_DynamicsFunctionBlock_enabled); + get_map.emplace("DynamicsFunctionBlock.enabled", &get_DynamicsFunctionBlock_enabled); } void DynamicsFunctionBlock::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void DynamicsFunctionBlock::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DynamicsFunctionBlock::declare() { return BaseClassDefiner(DynamicsFunctionBlock::addConstructToMap, DynamicsFunctionBlock::addPrimitiveAssignFnsToMap, DynamicsFunctionBlock::addClassAssignFnsToMap, DynamicsFunctionBlock::debugName); } +std::map DynamicsFunctionBlock::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DynamicsFunctionBlock_factory() diff --git a/CGMES_2.4.15_27JAN2020/DynamicsFunctionBlock.hpp b/CGMES_2.4.15_27JAN2020/DynamicsFunctionBlock.hpp index cfce2f68e..f7a130c52 100644 --- a/CGMES_2.4.15_27JAN2020/DynamicsFunctionBlock.hpp +++ b/CGMES_2.4.15_27JAN2020/DynamicsFunctionBlock.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DynamicsFunctionBlock_factory(); diff --git a/CGMES_2.4.15_27JAN2020/DynamicsVersion.cpp b/CGMES_2.4.15_27JAN2020/DynamicsVersion.cpp index 4a2ca6829..3738aedf3 100644 --- a/CGMES_2.4.15_27JAN2020/DynamicsVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/DynamicsVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DynamicsVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DynamicsVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + { "DynamicsVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DynamicsVersion::DynamicsVersion() {} DynamicsVersion::~DynamicsVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& DynamicsVersion::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DynamicsVersion::getClassNamespaceUrl() const { - { "cim:DynamicsVersion.baseUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.baseURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.date", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.differenceModelURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.entsoeUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.entsoeURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.modelDescriptionURI", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.namespaceRDF", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.namespaceUML", { CGMESProfile::DY, } }, - { "cim:DynamicsVersion.shortName", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DynamicsVersion::getPossibleProfilesForClass() const +const std::string& DynamicsVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DynamicsVersion::getPossibleProfilesForAttributes() const +const std::list& DynamicsVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DynamicsVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DynamicsVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DynamicsVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DynamicsVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* DynamicsVersion::debugString() const void DynamicsVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DynamicsVersion", &DynamicsVersion_factory); + factory_map.emplace("DynamicsVersion", &DynamicsVersion_factory); } void DynamicsVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DynamicsVersion.baseUML", &assign_DynamicsVersion_baseUML); - assign_map.emplace("cim:DynamicsVersion.baseURI", &assign_DynamicsVersion_baseURI); - assign_map.emplace("cim:DynamicsVersion.date", &assign_DynamicsVersion_date); - assign_map.emplace("cim:DynamicsVersion.differenceModelURI", &assign_DynamicsVersion_differenceModelURI); - assign_map.emplace("cim:DynamicsVersion.entsoeUML", &assign_DynamicsVersion_entsoeUML); - assign_map.emplace("cim:DynamicsVersion.entsoeURI", &assign_DynamicsVersion_entsoeURI); - assign_map.emplace("cim:DynamicsVersion.modelDescriptionURI", &assign_DynamicsVersion_modelDescriptionURI); - assign_map.emplace("cim:DynamicsVersion.namespaceRDF", &assign_DynamicsVersion_namespaceRDF); - assign_map.emplace("cim:DynamicsVersion.namespaceUML", &assign_DynamicsVersion_namespaceUML); - assign_map.emplace("cim:DynamicsVersion.shortName", &assign_DynamicsVersion_shortName); + assign_map.emplace("DynamicsVersion.baseUML", &assign_DynamicsVersion_baseUML); + assign_map.emplace("DynamicsVersion.baseURI", &assign_DynamicsVersion_baseURI); + assign_map.emplace("DynamicsVersion.date", &assign_DynamicsVersion_date); + assign_map.emplace("DynamicsVersion.differenceModelURI", &assign_DynamicsVersion_differenceModelURI); + assign_map.emplace("DynamicsVersion.entsoeUML", &assign_DynamicsVersion_entsoeUML); + assign_map.emplace("DynamicsVersion.entsoeURI", &assign_DynamicsVersion_entsoeURI); + assign_map.emplace("DynamicsVersion.modelDescriptionURI", &assign_DynamicsVersion_modelDescriptionURI); + assign_map.emplace("DynamicsVersion.namespaceRDF", &assign_DynamicsVersion_namespaceRDF); + assign_map.emplace("DynamicsVersion.namespaceUML", &assign_DynamicsVersion_namespaceUML); + assign_map.emplace("DynamicsVersion.shortName", &assign_DynamicsVersion_shortName); } void DynamicsVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void DynamicsVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DynamicsVersion.baseUML", &get_DynamicsVersion_baseUML); - get_map.emplace("cim:DynamicsVersion.baseURI", &get_DynamicsVersion_baseURI); - get_map.emplace("cim:DynamicsVersion.date", &get_DynamicsVersion_date); - get_map.emplace("cim:DynamicsVersion.differenceModelURI", &get_DynamicsVersion_differenceModelURI); - get_map.emplace("cim:DynamicsVersion.entsoeUML", &get_DynamicsVersion_entsoeUML); - get_map.emplace("cim:DynamicsVersion.entsoeURI", &get_DynamicsVersion_entsoeURI); - get_map.emplace("cim:DynamicsVersion.modelDescriptionURI", &get_DynamicsVersion_modelDescriptionURI); - get_map.emplace("cim:DynamicsVersion.namespaceRDF", &get_DynamicsVersion_namespaceRDF); - get_map.emplace("cim:DynamicsVersion.namespaceUML", &get_DynamicsVersion_namespaceUML); - get_map.emplace("cim:DynamicsVersion.shortName", &get_DynamicsVersion_shortName); + get_map.emplace("DynamicsVersion.baseUML", &get_DynamicsVersion_baseUML); + get_map.emplace("DynamicsVersion.baseURI", &get_DynamicsVersion_baseURI); + get_map.emplace("DynamicsVersion.date", &get_DynamicsVersion_date); + get_map.emplace("DynamicsVersion.differenceModelURI", &get_DynamicsVersion_differenceModelURI); + get_map.emplace("DynamicsVersion.entsoeUML", &get_DynamicsVersion_entsoeUML); + get_map.emplace("DynamicsVersion.entsoeURI", &get_DynamicsVersion_entsoeURI); + get_map.emplace("DynamicsVersion.modelDescriptionURI", &get_DynamicsVersion_modelDescriptionURI); + get_map.emplace("DynamicsVersion.namespaceRDF", &get_DynamicsVersion_namespaceRDF); + get_map.emplace("DynamicsVersion.namespaceUML", &get_DynamicsVersion_namespaceUML); + get_map.emplace("DynamicsVersion.shortName", &get_DynamicsVersion_shortName); } void DynamicsVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void DynamicsVersion::addEnumGetFnsToMap(std::map& ge BaseClass::addEnumGetFnsToMap(get_map); } +bool DynamicsVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DynamicsVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DynamicsVersion::declare() { return BaseClassDefiner(DynamicsVersion::addConstructToMap, DynamicsVersion::addPrimitiveAssignFnsToMap, DynamicsVersion::addClassAssignFnsToMap, DynamicsVersion::debugName); } +std::map DynamicsVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DynamicsVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/DynamicsVersion.hpp b/CGMES_2.4.15_27JAN2020/DynamicsVersion.hpp index 67ae2df75..ee55e7ffc 100644 --- a/CGMES_2.4.15_27JAN2020/DynamicsVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/DynamicsVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DynamicsVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EarthFaultCompensator.cpp b/CGMES_2.4.15_27JAN2020/EarthFaultCompensator.cpp index f5411585b..45f8ed6b4 100644 --- a/CGMES_2.4.15_27JAN2020/EarthFaultCompensator.cpp +++ b/CGMES_2.4.15_27JAN2020/EarthFaultCompensator.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EarthFaultCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EarthFaultCompensator.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EarthFaultCompensator::EarthFaultCompensator() {} EarthFaultCompensator::~EarthFaultCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& EarthFaultCompensator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EarthFaultCompensator::getClassNamespaceUrl() const { - { "cim:EarthFaultCompensator.r", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EarthFaultCompensator::getPossibleProfilesForClass() const +const std::string& EarthFaultCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EarthFaultCompensator::getPossibleProfilesForAttributes() const +const std::list& EarthFaultCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EarthFaultCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EarthFaultCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EarthFaultCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EarthFaultCompensator_r(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* EarthFaultCompensator::debugString() const void EarthFaultCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EarthFaultCompensator", &EarthFaultCompensator_factory); + factory_map.emplace("EarthFaultCompensator", &EarthFaultCompensator_factory); } void EarthFaultCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EarthFaultCompensator.r", &assign_EarthFaultCompensator_r); + assign_map.emplace("EarthFaultCompensator.r", &assign_EarthFaultCompensator_r); } void EarthFaultCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void EarthFaultCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EarthFaultCompensator.r", &get_EarthFaultCompensator_r); + get_map.emplace("EarthFaultCompensator.r", &get_EarthFaultCompensator_r); } void EarthFaultCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void EarthFaultCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EarthFaultCompensator::declare() { return BaseClassDefiner(EarthFaultCompensator::addConstructToMap, EarthFaultCompensator::addPrimitiveAssignFnsToMap, EarthFaultCompensator::addClassAssignFnsToMap, EarthFaultCompensator::debugName); } +std::map EarthFaultCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EarthFaultCompensator_factory() diff --git a/CGMES_2.4.15_27JAN2020/EarthFaultCompensator.hpp b/CGMES_2.4.15_27JAN2020/EarthFaultCompensator.hpp index 5f16c7ac2..29c74418f 100644 --- a/CGMES_2.4.15_27JAN2020/EarthFaultCompensator.hpp +++ b/CGMES_2.4.15_27JAN2020/EarthFaultCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Resistance.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EarthFaultCompensator_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EnergyArea.cpp b/CGMES_2.4.15_27JAN2020/EnergyArea.cpp index 0df0b19c1..ff709dd55 100644 --- a/CGMES_2.4.15_27JAN2020/EnergyArea.cpp +++ b/CGMES_2.4.15_27JAN2020/EnergyArea.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergyArea.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergyArea::EnergyArea() : ControlArea(nullptr) {} EnergyArea::~EnergyArea() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyArea::getClassNamespaceUrl() const { - { "cim:EnergyArea.ControlArea", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyArea::getPossibleProfilesForClass() const +const std::string& EnergyArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyArea::getPossibleProfilesForAttributes() const +const std::list& EnergyArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_EnergyArea(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* EnergyArea::debugString() const void EnergyArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyArea", &EnergyArea_factory); + factory_map.emplace("EnergyArea", &EnergyArea_factory); } void EnergyArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void EnergyArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyArea.ControlArea", &assign_EnergyArea_ControlArea); + assign_map.emplace("EnergyArea.ControlArea", &assign_EnergyArea_ControlArea); } void EnergyArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void EnergyArea::addEnumGetFnsToMap(std::map& get_map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool EnergyArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyArea::declare() { return BaseClassDefiner(EnergyArea::addConstructToMap, EnergyArea::addPrimitiveAssignFnsToMap, EnergyArea::addClassAssignFnsToMap, EnergyArea::debugName); } +std::map EnergyArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyArea_factory() diff --git a/CGMES_2.4.15_27JAN2020/EnergyArea.hpp b/CGMES_2.4.15_27JAN2020/EnergyArea.hpp index 7d58dfca7..1b0f57c45 100644 --- a/CGMES_2.4.15_27JAN2020/EnergyArea.hpp +++ b/CGMES_2.4.15_27JAN2020/EnergyArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyArea_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EnergyConsumer.cpp b/CGMES_2.4.15_27JAN2020/EnergyConsumer.cpp index b95cded7e..49fdbc76b 100644 --- a/CGMES_2.4.15_27JAN2020/EnergyConsumer.cpp +++ b/CGMES_2.4.15_27JAN2020/EnergyConsumer.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyConsumer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergyConsumer.LoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "EnergyConsumer.LoadResponse", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergyConsumer.pfixed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.pfixedPct", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergyConsumer.qfixed", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.qfixedPct", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergyConsumer::EnergyConsumer() : LoadDynamics(nullptr), LoadResponse(nullptr) {} EnergyConsumer::~EnergyConsumer() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyConsumer::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyConsumer::getClassNamespaceUrl() const { - { "cim:EnergyConsumer.LoadDynamics", { CGMESProfile::DY, } }, - { "cim:EnergyConsumer.LoadResponse", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.p", { CGMESProfile::SSH, } }, - { "cim:EnergyConsumer.pfixed", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.pfixedPct", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.q", { CGMESProfile::SSH, } }, - { "cim:EnergyConsumer.qfixed", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.qfixedPct", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyConsumer::getPossibleProfilesForClass() const +const std::string& EnergyConsumer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyConsumer::getPossibleProfilesForAttributes() const +const std::list& EnergyConsumer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyConsumer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyConsumer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyConsumer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadDynamics_EnergyConsumer(BaseClass*, BaseClass*); @@ -294,41 +326,41 @@ const char* EnergyConsumer::debugString() const void EnergyConsumer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyConsumer", &EnergyConsumer_factory); + factory_map.emplace("EnergyConsumer", &EnergyConsumer_factory); } void EnergyConsumer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyConsumer.p", &assign_EnergyConsumer_p); - assign_map.emplace("cim:EnergyConsumer.pfixed", &assign_EnergyConsumer_pfixed); - assign_map.emplace("cim:EnergyConsumer.pfixedPct", &assign_EnergyConsumer_pfixedPct); - assign_map.emplace("cim:EnergyConsumer.q", &assign_EnergyConsumer_q); - assign_map.emplace("cim:EnergyConsumer.qfixed", &assign_EnergyConsumer_qfixed); - assign_map.emplace("cim:EnergyConsumer.qfixedPct", &assign_EnergyConsumer_qfixedPct); + assign_map.emplace("EnergyConsumer.p", &assign_EnergyConsumer_p); + assign_map.emplace("EnergyConsumer.pfixed", &assign_EnergyConsumer_pfixed); + assign_map.emplace("EnergyConsumer.pfixedPct", &assign_EnergyConsumer_pfixedPct); + assign_map.emplace("EnergyConsumer.q", &assign_EnergyConsumer_q); + assign_map.emplace("EnergyConsumer.qfixed", &assign_EnergyConsumer_qfixed); + assign_map.emplace("EnergyConsumer.qfixedPct", &assign_EnergyConsumer_qfixedPct); } void EnergyConsumer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyConsumer.LoadDynamics", &assign_EnergyConsumer_LoadDynamics); - assign_map.emplace("cim:EnergyConsumer.LoadResponse", &assign_EnergyConsumer_LoadResponse); + assign_map.emplace("EnergyConsumer.LoadDynamics", &assign_EnergyConsumer_LoadDynamics); + assign_map.emplace("EnergyConsumer.LoadResponse", &assign_EnergyConsumer_LoadResponse); } void EnergyConsumer::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EnergyConsumer.p", &get_EnergyConsumer_p); - get_map.emplace("cim:EnergyConsumer.pfixed", &get_EnergyConsumer_pfixed); - get_map.emplace("cim:EnergyConsumer.pfixedPct", &get_EnergyConsumer_pfixedPct); - get_map.emplace("cim:EnergyConsumer.q", &get_EnergyConsumer_q); - get_map.emplace("cim:EnergyConsumer.qfixed", &get_EnergyConsumer_qfixed); - get_map.emplace("cim:EnergyConsumer.qfixedPct", &get_EnergyConsumer_qfixedPct); + get_map.emplace("EnergyConsumer.p", &get_EnergyConsumer_p); + get_map.emplace("EnergyConsumer.pfixed", &get_EnergyConsumer_pfixed); + get_map.emplace("EnergyConsumer.pfixedPct", &get_EnergyConsumer_pfixedPct); + get_map.emplace("EnergyConsumer.q", &get_EnergyConsumer_q); + get_map.emplace("EnergyConsumer.qfixed", &get_EnergyConsumer_qfixed); + get_map.emplace("EnergyConsumer.qfixedPct", &get_EnergyConsumer_qfixedPct); } void EnergyConsumer::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EnergyConsumer.LoadDynamics", &get_EnergyConsumer_LoadDynamics); - get_map.emplace("cim:EnergyConsumer.LoadResponse", &get_EnergyConsumer_LoadResponse); + get_map.emplace("EnergyConsumer.LoadDynamics", &get_EnergyConsumer_LoadDynamics); + get_map.emplace("EnergyConsumer.LoadResponse", &get_EnergyConsumer_LoadResponse); } void EnergyConsumer::addEnumGetFnsToMap(std::map& get_map) const @@ -336,11 +368,25 @@ void EnergyConsumer::addEnumGetFnsToMap(std::map& get ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EnergyConsumer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyConsumer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyConsumer::declare() { return BaseClassDefiner(EnergyConsumer::addConstructToMap, EnergyConsumer::addPrimitiveAssignFnsToMap, EnergyConsumer::addClassAssignFnsToMap, EnergyConsumer::debugName); } +std::map EnergyConsumer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyConsumer_factory() diff --git a/CGMES_2.4.15_27JAN2020/EnergyConsumer.hpp b/CGMES_2.4.15_27JAN2020/EnergyConsumer.hpp index 54d03c283..a50a7bce0 100644 --- a/CGMES_2.4.15_27JAN2020/EnergyConsumer.hpp +++ b/CGMES_2.4.15_27JAN2020/EnergyConsumer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PerCent.hpp" #include "ReactivePower.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyConsumer_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EnergySchedulingType.cpp b/CGMES_2.4.15_27JAN2020/EnergySchedulingType.cpp index a0f451af9..3697ecdd0 100644 --- a/CGMES_2.4.15_27JAN2020/EnergySchedulingType.cpp +++ b/CGMES_2.4.15_27JAN2020/EnergySchedulingType.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergySchedulingType(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergySchedulingType.EnergySource", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergySchedulingType::EnergySchedulingType() {} EnergySchedulingType::~EnergySchedulingType() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergySchedulingType::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergySchedulingType::getClassNamespaceUrl() const { - { "cim:EnergySchedulingType.EnergySource", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergySchedulingType::getPossibleProfilesForClass() const +const std::string& EnergySchedulingType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergySchedulingType::getPossibleProfilesForAttributes() const +const std::list& EnergySchedulingType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergySchedulingType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergySchedulingType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergySchedulingType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySource_EnergySchedulingType(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* EnergySchedulingType::debugString() const void EnergySchedulingType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergySchedulingType", &EnergySchedulingType_factory); + factory_map.emplace("EnergySchedulingType", &EnergySchedulingType_factory); } void EnergySchedulingType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void EnergySchedulingType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySchedulingType.EnergySource", &assign_EnergySchedulingType_EnergySource); + assign_map.emplace("EnergySchedulingType.EnergySource", &assign_EnergySchedulingType_EnergySource); } void EnergySchedulingType::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void EnergySchedulingType::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EnergySchedulingType::declare() { return BaseClassDefiner(EnergySchedulingType::addConstructToMap, EnergySchedulingType::addPrimitiveAssignFnsToMap, EnergySchedulingType::addClassAssignFnsToMap, EnergySchedulingType::debugName); } +std::map EnergySchedulingType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergySchedulingType_factory() diff --git a/CGMES_2.4.15_27JAN2020/EnergySchedulingType.hpp b/CGMES_2.4.15_27JAN2020/EnergySchedulingType.hpp index eac7cbf2c..e148b5efa 100644 --- a/CGMES_2.4.15_27JAN2020/EnergySchedulingType.hpp +++ b/CGMES_2.4.15_27JAN2020/EnergySchedulingType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergySchedulingType_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EnergySource.cpp b/CGMES_2.4.15_27JAN2020/EnergySource.cpp index e4cedfe4b..15406ca75 100644 --- a/CGMES_2.4.15_27JAN2020/EnergySource.cpp +++ b/CGMES_2.4.15_27JAN2020/EnergySource.cpp @@ -13,47 +13,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergySource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergySource.EnergySchedulingType", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "EnergySource.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "EnergySource.activePower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergySource.nominalVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.reactivePower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EnergySource.rn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.voltageAngle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.voltageMagnitude", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EnergySource.xn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergySource::EnergySource() : EnergySchedulingType(nullptr), WindTurbineType3or4Dynamics(nullptr) {} EnergySource::~EnergySource() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergySource::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergySource::getClassNamespaceUrl() const { - { "cim:EnergySource.EnergySchedulingType", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:EnergySource.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, - { "cim:EnergySource.activePower", { CGMESProfile::SSH, } }, - { "cim:EnergySource.nominalVoltage", { CGMESProfile::EQ, } }, - { "cim:EnergySource.r", { CGMESProfile::EQ, } }, - { "cim:EnergySource.r0", { CGMESProfile::EQ, } }, - { "cim:EnergySource.reactivePower", { CGMESProfile::SSH, } }, - { "cim:EnergySource.rn", { CGMESProfile::EQ, } }, - { "cim:EnergySource.voltageAngle", { CGMESProfile::EQ, } }, - { "cim:EnergySource.voltageMagnitude", { CGMESProfile::EQ, } }, - { "cim:EnergySource.x", { CGMESProfile::EQ, } }, - { "cim:EnergySource.x0", { CGMESProfile::EQ, } }, - { "cim:EnergySource.xn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergySource::getPossibleProfilesForClass() const +const std::string& EnergySource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergySource::getPossibleProfilesForAttributes() const +const std::list& EnergySource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergySource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergySource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergySource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySchedulingType_EnergySource(BaseClass*, BaseClass*); @@ -432,50 +464,50 @@ const char* EnergySource::debugString() const void EnergySource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergySource", &EnergySource_factory); + factory_map.emplace("EnergySource", &EnergySource_factory); } void EnergySource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySource.activePower", &assign_EnergySource_activePower); - assign_map.emplace("cim:EnergySource.nominalVoltage", &assign_EnergySource_nominalVoltage); - assign_map.emplace("cim:EnergySource.r", &assign_EnergySource_r); - assign_map.emplace("cim:EnergySource.r0", &assign_EnergySource_r0); - assign_map.emplace("cim:EnergySource.reactivePower", &assign_EnergySource_reactivePower); - assign_map.emplace("cim:EnergySource.rn", &assign_EnergySource_rn); - assign_map.emplace("cim:EnergySource.voltageAngle", &assign_EnergySource_voltageAngle); - assign_map.emplace("cim:EnergySource.voltageMagnitude", &assign_EnergySource_voltageMagnitude); - assign_map.emplace("cim:EnergySource.x", &assign_EnergySource_x); - assign_map.emplace("cim:EnergySource.x0", &assign_EnergySource_x0); - assign_map.emplace("cim:EnergySource.xn", &assign_EnergySource_xn); + assign_map.emplace("EnergySource.activePower", &assign_EnergySource_activePower); + assign_map.emplace("EnergySource.nominalVoltage", &assign_EnergySource_nominalVoltage); + assign_map.emplace("EnergySource.r", &assign_EnergySource_r); + assign_map.emplace("EnergySource.r0", &assign_EnergySource_r0); + assign_map.emplace("EnergySource.reactivePower", &assign_EnergySource_reactivePower); + assign_map.emplace("EnergySource.rn", &assign_EnergySource_rn); + assign_map.emplace("EnergySource.voltageAngle", &assign_EnergySource_voltageAngle); + assign_map.emplace("EnergySource.voltageMagnitude", &assign_EnergySource_voltageMagnitude); + assign_map.emplace("EnergySource.x", &assign_EnergySource_x); + assign_map.emplace("EnergySource.x0", &assign_EnergySource_x0); + assign_map.emplace("EnergySource.xn", &assign_EnergySource_xn); } void EnergySource::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySource.EnergySchedulingType", &assign_EnergySource_EnergySchedulingType); - assign_map.emplace("cim:EnergySource.WindTurbineType3or4Dynamics", &assign_EnergySource_WindTurbineType3or4Dynamics); + assign_map.emplace("EnergySource.EnergySchedulingType", &assign_EnergySource_EnergySchedulingType); + assign_map.emplace("EnergySource.WindTurbineType3or4Dynamics", &assign_EnergySource_WindTurbineType3or4Dynamics); } void EnergySource::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EnergySource.activePower", &get_EnergySource_activePower); - get_map.emplace("cim:EnergySource.nominalVoltage", &get_EnergySource_nominalVoltage); - get_map.emplace("cim:EnergySource.r", &get_EnergySource_r); - get_map.emplace("cim:EnergySource.r0", &get_EnergySource_r0); - get_map.emplace("cim:EnergySource.reactivePower", &get_EnergySource_reactivePower); - get_map.emplace("cim:EnergySource.rn", &get_EnergySource_rn); - get_map.emplace("cim:EnergySource.voltageAngle", &get_EnergySource_voltageAngle); - get_map.emplace("cim:EnergySource.voltageMagnitude", &get_EnergySource_voltageMagnitude); - get_map.emplace("cim:EnergySource.x", &get_EnergySource_x); - get_map.emplace("cim:EnergySource.x0", &get_EnergySource_x0); - get_map.emplace("cim:EnergySource.xn", &get_EnergySource_xn); + get_map.emplace("EnergySource.activePower", &get_EnergySource_activePower); + get_map.emplace("EnergySource.nominalVoltage", &get_EnergySource_nominalVoltage); + get_map.emplace("EnergySource.r", &get_EnergySource_r); + get_map.emplace("EnergySource.r0", &get_EnergySource_r0); + get_map.emplace("EnergySource.reactivePower", &get_EnergySource_reactivePower); + get_map.emplace("EnergySource.rn", &get_EnergySource_rn); + get_map.emplace("EnergySource.voltageAngle", &get_EnergySource_voltageAngle); + get_map.emplace("EnergySource.voltageMagnitude", &get_EnergySource_voltageMagnitude); + get_map.emplace("EnergySource.x", &get_EnergySource_x); + get_map.emplace("EnergySource.x0", &get_EnergySource_x0); + get_map.emplace("EnergySource.xn", &get_EnergySource_xn); } void EnergySource::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EnergySource.EnergySchedulingType", &get_EnergySource_EnergySchedulingType); + get_map.emplace("EnergySource.EnergySchedulingType", &get_EnergySource_EnergySchedulingType); } void EnergySource::addEnumGetFnsToMap(std::map& get_map) const @@ -483,11 +515,25 @@ void EnergySource::addEnumGetFnsToMap(std::map& get_m ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EnergySource::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergySource" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergySource::declare() { return BaseClassDefiner(EnergySource::addConstructToMap, EnergySource::addPrimitiveAssignFnsToMap, EnergySource::addClassAssignFnsToMap, EnergySource::debugName); } +std::map EnergySource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergySource_factory() diff --git a/CGMES_2.4.15_27JAN2020/EnergySource.hpp b/CGMES_2.4.15_27JAN2020/EnergySource.hpp index 44dc8214a..54b0e24eb 100644 --- a/CGMES_2.4.15_27JAN2020/EnergySource.hpp +++ b/CGMES_2.4.15_27JAN2020/EnergySource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "AngleRadians.hpp" #include "Reactance.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergySource_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Equipment.cpp b/CGMES_2.4.15_27JAN2020/Equipment.cpp index eb6382a63..80b5f56ab 100644 --- a/CGMES_2.4.15_27JAN2020/Equipment.cpp +++ b/CGMES_2.4.15_27JAN2020/Equipment.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Equipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Equipment.EquipmentContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "Equipment.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Equipment.aggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Equipment::Equipment() : EquipmentContainer(nullptr) {} Equipment::~Equipment() {} -static const std::list PossibleProfilesForClass = +const std::list& Equipment::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Equipment::getClassNamespaceUrl() const { - { "cim:Equipment.EquipmentContainer", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:Equipment.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:Equipment.aggregate", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Equipment::getPossibleProfilesForClass() const +const std::string& Equipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Equipment::getPossibleProfilesForAttributes() const +const std::list& Equipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Equipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Equipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Equipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentContainer_Equipments(BaseClass*, BaseClass*); @@ -132,30 +164,30 @@ const char* Equipment::debugString() const void Equipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Equipment", &Equipment_factory); + factory_map.emplace("Equipment", &Equipment_factory); } void Equipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Equipment.aggregate", &assign_Equipment_aggregate); + assign_map.emplace("Equipment.aggregate", &assign_Equipment_aggregate); } void Equipment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Equipment.EquipmentContainer", &assign_Equipment_EquipmentContainer); - assign_map.emplace("cim:Equipment.OperationalLimitSet", &assign_Equipment_OperationalLimitSet); + assign_map.emplace("Equipment.EquipmentContainer", &assign_Equipment_EquipmentContainer); + assign_map.emplace("Equipment.OperationalLimitSet", &assign_Equipment_OperationalLimitSet); } void Equipment::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Equipment.aggregate", &get_Equipment_aggregate); + get_map.emplace("Equipment.aggregate", &get_Equipment_aggregate); } void Equipment::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Equipment.EquipmentContainer", &get_Equipment_EquipmentContainer); + get_map.emplace("Equipment.EquipmentContainer", &get_Equipment_EquipmentContainer); } void Equipment::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void Equipment::addEnumGetFnsToMap(std::map& get_map) PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool Equipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Equipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Equipment::declare() { return BaseClassDefiner(Equipment::addConstructToMap, Equipment::addPrimitiveAssignFnsToMap, Equipment::addClassAssignFnsToMap, Equipment::debugName); } +std::map Equipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Equipment_factory() diff --git a/CGMES_2.4.15_27JAN2020/Equipment.hpp b/CGMES_2.4.15_27JAN2020/Equipment.hpp index 7a818843f..107251fd3 100644 --- a/CGMES_2.4.15_27JAN2020/Equipment.hpp +++ b/CGMES_2.4.15_27JAN2020/Equipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Equipment_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EquipmentBoundaryVersion.cpp b/CGMES_2.4.15_27JAN2020/EquipmentBoundaryVersion.cpp index 93b5017ab..38c0549ee 100644 --- a/CGMES_2.4.15_27JAN2020/EquipmentBoundaryVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/EquipmentBoundaryVersion.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentBoundaryVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::EQ_BD, + }, + CGMESProfile::EQ_BD + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentBoundaryVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.entsoeURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + { "EquipmentBoundaryVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentBoundaryVersion::EquipmentBoundaryVersion() {} EquipmentBoundaryVersion::~EquipmentBoundaryVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentBoundaryVersion::getAttributeNames() const { - CGMESProfile::EQ_BD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentBoundaryVersion::getClassNamespaceUrl() const { - { "cim:EquipmentBoundaryVersion.baseUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.baseURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.date", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.differenceModelURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeURIcore", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.entsoeURIoperation", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.modelDescriptionURI", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.namespaceRDF", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.namespaceUML", { CGMESProfile::EQ_BD, } }, - { "cim:EquipmentBoundaryVersion.shortName", { CGMESProfile::EQ_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentBoundaryVersion::getPossibleProfilesForClass() const +const std::string& EquipmentBoundaryVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentBoundaryVersion::getPossibleProfilesForAttributes() const +const std::list& EquipmentBoundaryVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentBoundaryVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentBoundaryVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentBoundaryVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentBoundaryVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* EquipmentBoundaryVersion::debugString() const void EquipmentBoundaryVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentBoundaryVersion", &EquipmentBoundaryVersion_factory); + factory_map.emplace("EquipmentBoundaryVersion", &EquipmentBoundaryVersion_factory); } void EquipmentBoundaryVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentBoundaryVersion.baseUML", &assign_EquipmentBoundaryVersion_baseUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.baseURI", &assign_EquipmentBoundaryVersion_baseURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.date", &assign_EquipmentBoundaryVersion_date); - assign_map.emplace("cim:EquipmentBoundaryVersion.differenceModelURI", &assign_EquipmentBoundaryVersion_differenceModelURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeUML", &assign_EquipmentBoundaryVersion_entsoeUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIcore", &assign_EquipmentBoundaryVersion_entsoeURIcore); - assign_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIoperation", &assign_EquipmentBoundaryVersion_entsoeURIoperation); - assign_map.emplace("cim:EquipmentBoundaryVersion.modelDescriptionURI", &assign_EquipmentBoundaryVersion_modelDescriptionURI); - assign_map.emplace("cim:EquipmentBoundaryVersion.namespaceRDF", &assign_EquipmentBoundaryVersion_namespaceRDF); - assign_map.emplace("cim:EquipmentBoundaryVersion.namespaceUML", &assign_EquipmentBoundaryVersion_namespaceUML); - assign_map.emplace("cim:EquipmentBoundaryVersion.shortName", &assign_EquipmentBoundaryVersion_shortName); + assign_map.emplace("EquipmentBoundaryVersion.baseUML", &assign_EquipmentBoundaryVersion_baseUML); + assign_map.emplace("EquipmentBoundaryVersion.baseURI", &assign_EquipmentBoundaryVersion_baseURI); + assign_map.emplace("EquipmentBoundaryVersion.date", &assign_EquipmentBoundaryVersion_date); + assign_map.emplace("EquipmentBoundaryVersion.differenceModelURI", &assign_EquipmentBoundaryVersion_differenceModelURI); + assign_map.emplace("EquipmentBoundaryVersion.entsoeUML", &assign_EquipmentBoundaryVersion_entsoeUML); + assign_map.emplace("EquipmentBoundaryVersion.entsoeURIcore", &assign_EquipmentBoundaryVersion_entsoeURIcore); + assign_map.emplace("EquipmentBoundaryVersion.entsoeURIoperation", &assign_EquipmentBoundaryVersion_entsoeURIoperation); + assign_map.emplace("EquipmentBoundaryVersion.modelDescriptionURI", &assign_EquipmentBoundaryVersion_modelDescriptionURI); + assign_map.emplace("EquipmentBoundaryVersion.namespaceRDF", &assign_EquipmentBoundaryVersion_namespaceRDF); + assign_map.emplace("EquipmentBoundaryVersion.namespaceUML", &assign_EquipmentBoundaryVersion_namespaceUML); + assign_map.emplace("EquipmentBoundaryVersion.shortName", &assign_EquipmentBoundaryVersion_shortName); } void EquipmentBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void EquipmentBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquipmentBoundaryVersion.baseUML", &get_EquipmentBoundaryVersion_baseUML); - get_map.emplace("cim:EquipmentBoundaryVersion.baseURI", &get_EquipmentBoundaryVersion_baseURI); - get_map.emplace("cim:EquipmentBoundaryVersion.date", &get_EquipmentBoundaryVersion_date); - get_map.emplace("cim:EquipmentBoundaryVersion.differenceModelURI", &get_EquipmentBoundaryVersion_differenceModelURI); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeUML", &get_EquipmentBoundaryVersion_entsoeUML); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIcore", &get_EquipmentBoundaryVersion_entsoeURIcore); - get_map.emplace("cim:EquipmentBoundaryVersion.entsoeURIoperation", &get_EquipmentBoundaryVersion_entsoeURIoperation); - get_map.emplace("cim:EquipmentBoundaryVersion.modelDescriptionURI", &get_EquipmentBoundaryVersion_modelDescriptionURI); - get_map.emplace("cim:EquipmentBoundaryVersion.namespaceRDF", &get_EquipmentBoundaryVersion_namespaceRDF); - get_map.emplace("cim:EquipmentBoundaryVersion.namespaceUML", &get_EquipmentBoundaryVersion_namespaceUML); - get_map.emplace("cim:EquipmentBoundaryVersion.shortName", &get_EquipmentBoundaryVersion_shortName); + get_map.emplace("EquipmentBoundaryVersion.baseUML", &get_EquipmentBoundaryVersion_baseUML); + get_map.emplace("EquipmentBoundaryVersion.baseURI", &get_EquipmentBoundaryVersion_baseURI); + get_map.emplace("EquipmentBoundaryVersion.date", &get_EquipmentBoundaryVersion_date); + get_map.emplace("EquipmentBoundaryVersion.differenceModelURI", &get_EquipmentBoundaryVersion_differenceModelURI); + get_map.emplace("EquipmentBoundaryVersion.entsoeUML", &get_EquipmentBoundaryVersion_entsoeUML); + get_map.emplace("EquipmentBoundaryVersion.entsoeURIcore", &get_EquipmentBoundaryVersion_entsoeURIcore); + get_map.emplace("EquipmentBoundaryVersion.entsoeURIoperation", &get_EquipmentBoundaryVersion_entsoeURIoperation); + get_map.emplace("EquipmentBoundaryVersion.modelDescriptionURI", &get_EquipmentBoundaryVersion_modelDescriptionURI); + get_map.emplace("EquipmentBoundaryVersion.namespaceRDF", &get_EquipmentBoundaryVersion_namespaceRDF); + get_map.emplace("EquipmentBoundaryVersion.namespaceUML", &get_EquipmentBoundaryVersion_namespaceUML); + get_map.emplace("EquipmentBoundaryVersion.shortName", &get_EquipmentBoundaryVersion_shortName); } void EquipmentBoundaryVersion::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void EquipmentBoundaryVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentBoundaryVersion::declare() { return BaseClassDefiner(EquipmentBoundaryVersion::addConstructToMap, EquipmentBoundaryVersion::addPrimitiveAssignFnsToMap, EquipmentBoundaryVersion::addClassAssignFnsToMap, EquipmentBoundaryVersion::debugName); } +std::map EquipmentBoundaryVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentBoundaryVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/EquipmentBoundaryVersion.hpp b/CGMES_2.4.15_27JAN2020/EquipmentBoundaryVersion.hpp index 7dce745e6..6ee6a6480 100644 --- a/CGMES_2.4.15_27JAN2020/EquipmentBoundaryVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/EquipmentBoundaryVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentBoundaryVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EquipmentContainer.cpp b/CGMES_2.4.15_27JAN2020/EquipmentContainer.cpp index d7b51080d..66aa0ca3f 100644 --- a/CGMES_2.4.15_27JAN2020/EquipmentContainer.cpp +++ b/CGMES_2.4.15_27JAN2020/EquipmentContainer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentContainer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentContainer.Equipments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentContainer::EquipmentContainer() {} EquipmentContainer::~EquipmentContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentContainer::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentContainer::getClassNamespaceUrl() const { - { "cim:EquipmentContainer.Equipments", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentContainer::getPossibleProfilesForClass() const +const std::string& EquipmentContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentContainer::getPossibleProfilesForAttributes() const +const std::list& EquipmentContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConnectivityNodeContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Equipment_EquipmentContainer(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* EquipmentContainer::debugString() const void EquipmentContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentContainer", &EquipmentContainer_factory); + factory_map.emplace("EquipmentContainer", &EquipmentContainer_factory); } void EquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void EquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentContainer.Equipments", &assign_EquipmentContainer_Equipments); + assign_map.emplace("EquipmentContainer.Equipments", &assign_EquipmentContainer_Equipments); } void EquipmentContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void EquipmentContainer::addEnumGetFnsToMap(std::map& ConnectivityNodeContainer::addEnumGetFnsToMap(get_map); } +bool EquipmentContainer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquipmentContainer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentContainer::declare() { return BaseClassDefiner(EquipmentContainer::addConstructToMap, EquipmentContainer::addPrimitiveAssignFnsToMap, EquipmentContainer::addClassAssignFnsToMap, EquipmentContainer::debugName); } +std::map EquipmentContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConnectivityNodeContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentContainer_factory() diff --git a/CGMES_2.4.15_27JAN2020/EquipmentContainer.hpp b/CGMES_2.4.15_27JAN2020/EquipmentContainer.hpp index 5a76e1707..a12a72452 100644 --- a/CGMES_2.4.15_27JAN2020/EquipmentContainer.hpp +++ b/CGMES_2.4.15_27JAN2020/EquipmentContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConnectivityNodeContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentContainer_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EquipmentVersion.cpp b/CGMES_2.4.15_27JAN2020/EquipmentVersion.cpp index e02b7f229..6ea5b0089 100644 --- a/CGMES_2.4.15_27JAN2020/EquipmentVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/EquipmentVersion.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.baseURIshortCircuit", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIcore", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIoperation", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.entsoeURIshortCircuit", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + { "EquipmentVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentVersion::EquipmentVersion() {} EquipmentVersion::~EquipmentVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentVersion::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentVersion::getClassNamespaceUrl() const { - { "cim:EquipmentVersion.baseUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIcore", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIoperation", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.baseURIshortCircuit", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.date", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.differenceModelURI", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIcore", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIoperation", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.entsoeURIshortCircuit", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.modelDescriptionURI", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.namespaceRDF", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.namespaceUML", { CGMESProfile::EQ, } }, - { "cim:EquipmentVersion.shortName", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentVersion::getPossibleProfilesForClass() const +const std::string& EquipmentVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentVersion::getPossibleProfilesForAttributes() const +const std::list& EquipmentVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* EquipmentVersion::debugString() const void EquipmentVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentVersion", &EquipmentVersion_factory); + factory_map.emplace("EquipmentVersion", &EquipmentVersion_factory); } void EquipmentVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentVersion.baseUML", &assign_EquipmentVersion_baseUML); - assign_map.emplace("cim:EquipmentVersion.baseURIcore", &assign_EquipmentVersion_baseURIcore); - assign_map.emplace("cim:EquipmentVersion.baseURIoperation", &assign_EquipmentVersion_baseURIoperation); - assign_map.emplace("cim:EquipmentVersion.baseURIshortCircuit", &assign_EquipmentVersion_baseURIshortCircuit); - assign_map.emplace("cim:EquipmentVersion.date", &assign_EquipmentVersion_date); - assign_map.emplace("cim:EquipmentVersion.differenceModelURI", &assign_EquipmentVersion_differenceModelURI); - assign_map.emplace("cim:EquipmentVersion.entsoeUML", &assign_EquipmentVersion_entsoeUML); - assign_map.emplace("cim:EquipmentVersion.entsoeURIcore", &assign_EquipmentVersion_entsoeURIcore); - assign_map.emplace("cim:EquipmentVersion.entsoeURIoperation", &assign_EquipmentVersion_entsoeURIoperation); - assign_map.emplace("cim:EquipmentVersion.entsoeURIshortCircuit", &assign_EquipmentVersion_entsoeURIshortCircuit); - assign_map.emplace("cim:EquipmentVersion.modelDescriptionURI", &assign_EquipmentVersion_modelDescriptionURI); - assign_map.emplace("cim:EquipmentVersion.namespaceRDF", &assign_EquipmentVersion_namespaceRDF); - assign_map.emplace("cim:EquipmentVersion.namespaceUML", &assign_EquipmentVersion_namespaceUML); - assign_map.emplace("cim:EquipmentVersion.shortName", &assign_EquipmentVersion_shortName); + assign_map.emplace("EquipmentVersion.baseUML", &assign_EquipmentVersion_baseUML); + assign_map.emplace("EquipmentVersion.baseURIcore", &assign_EquipmentVersion_baseURIcore); + assign_map.emplace("EquipmentVersion.baseURIoperation", &assign_EquipmentVersion_baseURIoperation); + assign_map.emplace("EquipmentVersion.baseURIshortCircuit", &assign_EquipmentVersion_baseURIshortCircuit); + assign_map.emplace("EquipmentVersion.date", &assign_EquipmentVersion_date); + assign_map.emplace("EquipmentVersion.differenceModelURI", &assign_EquipmentVersion_differenceModelURI); + assign_map.emplace("EquipmentVersion.entsoeUML", &assign_EquipmentVersion_entsoeUML); + assign_map.emplace("EquipmentVersion.entsoeURIcore", &assign_EquipmentVersion_entsoeURIcore); + assign_map.emplace("EquipmentVersion.entsoeURIoperation", &assign_EquipmentVersion_entsoeURIoperation); + assign_map.emplace("EquipmentVersion.entsoeURIshortCircuit", &assign_EquipmentVersion_entsoeURIshortCircuit); + assign_map.emplace("EquipmentVersion.modelDescriptionURI", &assign_EquipmentVersion_modelDescriptionURI); + assign_map.emplace("EquipmentVersion.namespaceRDF", &assign_EquipmentVersion_namespaceRDF); + assign_map.emplace("EquipmentVersion.namespaceUML", &assign_EquipmentVersion_namespaceUML); + assign_map.emplace("EquipmentVersion.shortName", &assign_EquipmentVersion_shortName); } void EquipmentVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void EquipmentVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquipmentVersion.baseUML", &get_EquipmentVersion_baseUML); - get_map.emplace("cim:EquipmentVersion.baseURIcore", &get_EquipmentVersion_baseURIcore); - get_map.emplace("cim:EquipmentVersion.baseURIoperation", &get_EquipmentVersion_baseURIoperation); - get_map.emplace("cim:EquipmentVersion.baseURIshortCircuit", &get_EquipmentVersion_baseURIshortCircuit); - get_map.emplace("cim:EquipmentVersion.date", &get_EquipmentVersion_date); - get_map.emplace("cim:EquipmentVersion.differenceModelURI", &get_EquipmentVersion_differenceModelURI); - get_map.emplace("cim:EquipmentVersion.entsoeUML", &get_EquipmentVersion_entsoeUML); - get_map.emplace("cim:EquipmentVersion.entsoeURIcore", &get_EquipmentVersion_entsoeURIcore); - get_map.emplace("cim:EquipmentVersion.entsoeURIoperation", &get_EquipmentVersion_entsoeURIoperation); - get_map.emplace("cim:EquipmentVersion.entsoeURIshortCircuit", &get_EquipmentVersion_entsoeURIshortCircuit); - get_map.emplace("cim:EquipmentVersion.modelDescriptionURI", &get_EquipmentVersion_modelDescriptionURI); - get_map.emplace("cim:EquipmentVersion.namespaceRDF", &get_EquipmentVersion_namespaceRDF); - get_map.emplace("cim:EquipmentVersion.namespaceUML", &get_EquipmentVersion_namespaceUML); - get_map.emplace("cim:EquipmentVersion.shortName", &get_EquipmentVersion_shortName); + get_map.emplace("EquipmentVersion.baseUML", &get_EquipmentVersion_baseUML); + get_map.emplace("EquipmentVersion.baseURIcore", &get_EquipmentVersion_baseURIcore); + get_map.emplace("EquipmentVersion.baseURIoperation", &get_EquipmentVersion_baseURIoperation); + get_map.emplace("EquipmentVersion.baseURIshortCircuit", &get_EquipmentVersion_baseURIshortCircuit); + get_map.emplace("EquipmentVersion.date", &get_EquipmentVersion_date); + get_map.emplace("EquipmentVersion.differenceModelURI", &get_EquipmentVersion_differenceModelURI); + get_map.emplace("EquipmentVersion.entsoeUML", &get_EquipmentVersion_entsoeUML); + get_map.emplace("EquipmentVersion.entsoeURIcore", &get_EquipmentVersion_entsoeURIcore); + get_map.emplace("EquipmentVersion.entsoeURIoperation", &get_EquipmentVersion_entsoeURIoperation); + get_map.emplace("EquipmentVersion.entsoeURIshortCircuit", &get_EquipmentVersion_entsoeURIshortCircuit); + get_map.emplace("EquipmentVersion.modelDescriptionURI", &get_EquipmentVersion_modelDescriptionURI); + get_map.emplace("EquipmentVersion.namespaceRDF", &get_EquipmentVersion_namespaceRDF); + get_map.emplace("EquipmentVersion.namespaceUML", &get_EquipmentVersion_namespaceUML); + get_map.emplace("EquipmentVersion.shortName", &get_EquipmentVersion_shortName); } void EquipmentVersion::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void EquipmentVersion::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool EquipmentVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquipmentVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentVersion::declare() { return BaseClassDefiner(EquipmentVersion::addConstructToMap, EquipmentVersion::addPrimitiveAssignFnsToMap, EquipmentVersion::addClassAssignFnsToMap, EquipmentVersion::debugName); } +std::map EquipmentVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/EquipmentVersion.hpp b/CGMES_2.4.15_27JAN2020/EquipmentVersion.hpp index 3de80068d..1db7a92df 100644 --- a/CGMES_2.4.15_27JAN2020/EquipmentVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/EquipmentVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -71,8 +72,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -80,7 +88,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EquivalentBranch.cpp b/CGMES_2.4.15_27JAN2020/EquivalentBranch.cpp index 466b35022..6d41858ee 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentBranch.cpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentBranch.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentBranch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentBranch.negativeR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.negativeX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.positiveX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.r21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.x21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroR12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroR21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroX12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroX21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentBranch::EquivalentBranch() {} EquivalentBranch::~EquivalentBranch() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentBranch::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentBranch::getClassNamespaceUrl() const { - { "cim:EquivalentBranch.negativeR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.negativeX21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.positiveX21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.r", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.r21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.x", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.x21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroR12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroR21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroX12", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroX21", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentBranch::getPossibleProfilesForClass() const +const std::string& EquivalentBranch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentBranch::getPossibleProfilesForAttributes() const +const std::list& EquivalentBranch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentBranch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentBranch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentBranch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentBranch_negativeR12(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* EquivalentBranch::debugString() const void EquivalentBranch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentBranch", &EquivalentBranch_factory); + factory_map.emplace("EquivalentBranch", &EquivalentBranch_factory); } void EquivalentBranch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentBranch.negativeR12", &assign_EquivalentBranch_negativeR12); - assign_map.emplace("cim:EquivalentBranch.negativeR21", &assign_EquivalentBranch_negativeR21); - assign_map.emplace("cim:EquivalentBranch.negativeX12", &assign_EquivalentBranch_negativeX12); - assign_map.emplace("cim:EquivalentBranch.negativeX21", &assign_EquivalentBranch_negativeX21); - assign_map.emplace("cim:EquivalentBranch.positiveR12", &assign_EquivalentBranch_positiveR12); - assign_map.emplace("cim:EquivalentBranch.positiveR21", &assign_EquivalentBranch_positiveR21); - assign_map.emplace("cim:EquivalentBranch.positiveX12", &assign_EquivalentBranch_positiveX12); - assign_map.emplace("cim:EquivalentBranch.positiveX21", &assign_EquivalentBranch_positiveX21); - assign_map.emplace("cim:EquivalentBranch.r", &assign_EquivalentBranch_r); - assign_map.emplace("cim:EquivalentBranch.r21", &assign_EquivalentBranch_r21); - assign_map.emplace("cim:EquivalentBranch.x", &assign_EquivalentBranch_x); - assign_map.emplace("cim:EquivalentBranch.x21", &assign_EquivalentBranch_x21); - assign_map.emplace("cim:EquivalentBranch.zeroR12", &assign_EquivalentBranch_zeroR12); - assign_map.emplace("cim:EquivalentBranch.zeroR21", &assign_EquivalentBranch_zeroR21); - assign_map.emplace("cim:EquivalentBranch.zeroX12", &assign_EquivalentBranch_zeroX12); - assign_map.emplace("cim:EquivalentBranch.zeroX21", &assign_EquivalentBranch_zeroX21); + assign_map.emplace("EquivalentBranch.negativeR12", &assign_EquivalentBranch_negativeR12); + assign_map.emplace("EquivalentBranch.negativeR21", &assign_EquivalentBranch_negativeR21); + assign_map.emplace("EquivalentBranch.negativeX12", &assign_EquivalentBranch_negativeX12); + assign_map.emplace("EquivalentBranch.negativeX21", &assign_EquivalentBranch_negativeX21); + assign_map.emplace("EquivalentBranch.positiveR12", &assign_EquivalentBranch_positiveR12); + assign_map.emplace("EquivalentBranch.positiveR21", &assign_EquivalentBranch_positiveR21); + assign_map.emplace("EquivalentBranch.positiveX12", &assign_EquivalentBranch_positiveX12); + assign_map.emplace("EquivalentBranch.positiveX21", &assign_EquivalentBranch_positiveX21); + assign_map.emplace("EquivalentBranch.r", &assign_EquivalentBranch_r); + assign_map.emplace("EquivalentBranch.r21", &assign_EquivalentBranch_r21); + assign_map.emplace("EquivalentBranch.x", &assign_EquivalentBranch_x); + assign_map.emplace("EquivalentBranch.x21", &assign_EquivalentBranch_x21); + assign_map.emplace("EquivalentBranch.zeroR12", &assign_EquivalentBranch_zeroR12); + assign_map.emplace("EquivalentBranch.zeroR21", &assign_EquivalentBranch_zeroR21); + assign_map.emplace("EquivalentBranch.zeroX12", &assign_EquivalentBranch_zeroX12); + assign_map.emplace("EquivalentBranch.zeroX21", &assign_EquivalentBranch_zeroX21); } void EquivalentBranch::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void EquivalentBranch::addClassAssignFnsToMap(std::unordered_map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentBranch.negativeR12", &get_EquivalentBranch_negativeR12); - get_map.emplace("cim:EquivalentBranch.negativeR21", &get_EquivalentBranch_negativeR21); - get_map.emplace("cim:EquivalentBranch.negativeX12", &get_EquivalentBranch_negativeX12); - get_map.emplace("cim:EquivalentBranch.negativeX21", &get_EquivalentBranch_negativeX21); - get_map.emplace("cim:EquivalentBranch.positiveR12", &get_EquivalentBranch_positiveR12); - get_map.emplace("cim:EquivalentBranch.positiveR21", &get_EquivalentBranch_positiveR21); - get_map.emplace("cim:EquivalentBranch.positiveX12", &get_EquivalentBranch_positiveX12); - get_map.emplace("cim:EquivalentBranch.positiveX21", &get_EquivalentBranch_positiveX21); - get_map.emplace("cim:EquivalentBranch.r", &get_EquivalentBranch_r); - get_map.emplace("cim:EquivalentBranch.r21", &get_EquivalentBranch_r21); - get_map.emplace("cim:EquivalentBranch.x", &get_EquivalentBranch_x); - get_map.emplace("cim:EquivalentBranch.x21", &get_EquivalentBranch_x21); - get_map.emplace("cim:EquivalentBranch.zeroR12", &get_EquivalentBranch_zeroR12); - get_map.emplace("cim:EquivalentBranch.zeroR21", &get_EquivalentBranch_zeroR21); - get_map.emplace("cim:EquivalentBranch.zeroX12", &get_EquivalentBranch_zeroX12); - get_map.emplace("cim:EquivalentBranch.zeroX21", &get_EquivalentBranch_zeroX21); + get_map.emplace("EquivalentBranch.negativeR12", &get_EquivalentBranch_negativeR12); + get_map.emplace("EquivalentBranch.negativeR21", &get_EquivalentBranch_negativeR21); + get_map.emplace("EquivalentBranch.negativeX12", &get_EquivalentBranch_negativeX12); + get_map.emplace("EquivalentBranch.negativeX21", &get_EquivalentBranch_negativeX21); + get_map.emplace("EquivalentBranch.positiveR12", &get_EquivalentBranch_positiveR12); + get_map.emplace("EquivalentBranch.positiveR21", &get_EquivalentBranch_positiveR21); + get_map.emplace("EquivalentBranch.positiveX12", &get_EquivalentBranch_positiveX12); + get_map.emplace("EquivalentBranch.positiveX21", &get_EquivalentBranch_positiveX21); + get_map.emplace("EquivalentBranch.r", &get_EquivalentBranch_r); + get_map.emplace("EquivalentBranch.r21", &get_EquivalentBranch_r21); + get_map.emplace("EquivalentBranch.x", &get_EquivalentBranch_x); + get_map.emplace("EquivalentBranch.x21", &get_EquivalentBranch_x21); + get_map.emplace("EquivalentBranch.zeroR12", &get_EquivalentBranch_zeroR12); + get_map.emplace("EquivalentBranch.zeroR21", &get_EquivalentBranch_zeroR21); + get_map.emplace("EquivalentBranch.zeroX12", &get_EquivalentBranch_zeroX12); + get_map.emplace("EquivalentBranch.zeroX21", &get_EquivalentBranch_zeroX21); } void EquivalentBranch::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void EquivalentBranch::addEnumGetFnsToMap(std::map& g EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentBranch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentBranch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentBranch::declare() { return BaseClassDefiner(EquivalentBranch::addConstructToMap, EquivalentBranch::addPrimitiveAssignFnsToMap, EquivalentBranch::addClassAssignFnsToMap, EquivalentBranch::debugName); } +std::map EquivalentBranch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentBranch_factory() diff --git a/CGMES_2.4.15_27JAN2020/EquivalentBranch.hpp b/CGMES_2.4.15_27JAN2020/EquivalentBranch.hpp index 5147c3fd5..b609020fe 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentBranch.hpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentBranch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" #include "Resistance.hpp" @@ -77,8 +78,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -86,7 +94,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentBranch_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EquivalentEquipment.cpp b/CGMES_2.4.15_27JAN2020/EquivalentEquipment.cpp index a0b317564..ba3a054f0 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentEquipment.cpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentEquipment.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentEquipment(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentEquipment.EquivalentNetwork", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentEquipment::EquivalentEquipment() : EquivalentNetwork(nullptr) {} EquivalentEquipment::~EquivalentEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentEquipment::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentEquipment::getClassNamespaceUrl() const { - { "cim:EquivalentEquipment.EquivalentNetwork", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentEquipment::getPossibleProfilesForClass() const +const std::string& EquivalentEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentEquipment::getPossibleProfilesForAttributes() const +const std::list& EquivalentEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentNetwork_EquivalentEquipments(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* EquivalentEquipment::debugString() const void EquivalentEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentEquipment", &EquivalentEquipment_factory); + factory_map.emplace("EquivalentEquipment", &EquivalentEquipment_factory); } void EquivalentEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void EquivalentEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentEquipment.EquivalentNetwork", &assign_EquivalentEquipment_EquivalentNetwork); + assign_map.emplace("EquivalentEquipment.EquivalentNetwork", &assign_EquivalentEquipment_EquivalentNetwork); } void EquivalentEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void EquivalentEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentEquipment.EquivalentNetwork", &get_EquivalentEquipment_EquivalentNetwork); + get_map.emplace("EquivalentEquipment.EquivalentNetwork", &get_EquivalentEquipment_EquivalentNetwork); } void EquivalentEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void EquivalentEquipment::addEnumGetFnsToMap(std::map ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentEquipment::declare() { return BaseClassDefiner(EquivalentEquipment::addConstructToMap, EquivalentEquipment::addPrimitiveAssignFnsToMap, EquivalentEquipment::addClassAssignFnsToMap, EquivalentEquipment::debugName); } +std::map EquivalentEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentEquipment_factory() diff --git a/CGMES_2.4.15_27JAN2020/EquivalentEquipment.hpp b/CGMES_2.4.15_27JAN2020/EquivalentEquipment.hpp index 3e375293f..781c85161 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentEquipment.hpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentEquipment_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EquivalentInjection.cpp b/CGMES_2.4.15_27JAN2020/EquivalentInjection.cpp index 5b0b543b1..c16a7d103 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentInjection.cpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentInjection.cpp @@ -12,48 +12,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentInjection.ReactiveCapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.maxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.minP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.r2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.regulationCapability", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.regulationStatus", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.regulationTarget", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.x2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentInjection::EquivalentInjection() : ReactiveCapabilityCurve(nullptr) {} EquivalentInjection::~EquivalentInjection() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentInjection::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentInjection::getClassNamespaceUrl() const { - { "cim:EquivalentInjection.ReactiveCapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.maxP", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.maxQ", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.minP", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.minQ", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.p", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.q", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.r", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.r0", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.r2", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.regulationCapability", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.regulationStatus", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.regulationTarget", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.x", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.x0", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.x2", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentInjection::getPossibleProfilesForClass() const +const std::string& EquivalentInjection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentInjection::getPossibleProfilesForAttributes() const +const std::list& EquivalentInjection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReactiveCapabilityCurve_EquivalentInjection(BaseClass*, BaseClass*); @@ -530,57 +562,57 @@ const char* EquivalentInjection::debugString() const void EquivalentInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentInjection", &EquivalentInjection_factory); + factory_map.emplace("EquivalentInjection", &EquivalentInjection_factory); } void EquivalentInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentInjection.maxP", &assign_EquivalentInjection_maxP); - assign_map.emplace("cim:EquivalentInjection.maxQ", &assign_EquivalentInjection_maxQ); - assign_map.emplace("cim:EquivalentInjection.minP", &assign_EquivalentInjection_minP); - assign_map.emplace("cim:EquivalentInjection.minQ", &assign_EquivalentInjection_minQ); - assign_map.emplace("cim:EquivalentInjection.p", &assign_EquivalentInjection_p); - assign_map.emplace("cim:EquivalentInjection.q", &assign_EquivalentInjection_q); - assign_map.emplace("cim:EquivalentInjection.r", &assign_EquivalentInjection_r); - assign_map.emplace("cim:EquivalentInjection.r0", &assign_EquivalentInjection_r0); - assign_map.emplace("cim:EquivalentInjection.r2", &assign_EquivalentInjection_r2); - assign_map.emplace("cim:EquivalentInjection.regulationCapability", &assign_EquivalentInjection_regulationCapability); - assign_map.emplace("cim:EquivalentInjection.regulationStatus", &assign_EquivalentInjection_regulationStatus); - assign_map.emplace("cim:EquivalentInjection.regulationTarget", &assign_EquivalentInjection_regulationTarget); - assign_map.emplace("cim:EquivalentInjection.x", &assign_EquivalentInjection_x); - assign_map.emplace("cim:EquivalentInjection.x0", &assign_EquivalentInjection_x0); - assign_map.emplace("cim:EquivalentInjection.x2", &assign_EquivalentInjection_x2); + assign_map.emplace("EquivalentInjection.maxP", &assign_EquivalentInjection_maxP); + assign_map.emplace("EquivalentInjection.maxQ", &assign_EquivalentInjection_maxQ); + assign_map.emplace("EquivalentInjection.minP", &assign_EquivalentInjection_minP); + assign_map.emplace("EquivalentInjection.minQ", &assign_EquivalentInjection_minQ); + assign_map.emplace("EquivalentInjection.p", &assign_EquivalentInjection_p); + assign_map.emplace("EquivalentInjection.q", &assign_EquivalentInjection_q); + assign_map.emplace("EquivalentInjection.r", &assign_EquivalentInjection_r); + assign_map.emplace("EquivalentInjection.r0", &assign_EquivalentInjection_r0); + assign_map.emplace("EquivalentInjection.r2", &assign_EquivalentInjection_r2); + assign_map.emplace("EquivalentInjection.regulationCapability", &assign_EquivalentInjection_regulationCapability); + assign_map.emplace("EquivalentInjection.regulationStatus", &assign_EquivalentInjection_regulationStatus); + assign_map.emplace("EquivalentInjection.regulationTarget", &assign_EquivalentInjection_regulationTarget); + assign_map.emplace("EquivalentInjection.x", &assign_EquivalentInjection_x); + assign_map.emplace("EquivalentInjection.x0", &assign_EquivalentInjection_x0); + assign_map.emplace("EquivalentInjection.x2", &assign_EquivalentInjection_x2); } void EquivalentInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentInjection.ReactiveCapabilityCurve", &assign_EquivalentInjection_ReactiveCapabilityCurve); + assign_map.emplace("EquivalentInjection.ReactiveCapabilityCurve", &assign_EquivalentInjection_ReactiveCapabilityCurve); } void EquivalentInjection::addPrimitiveGetFnsToMap(std::map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentInjection.maxP", &get_EquivalentInjection_maxP); - get_map.emplace("cim:EquivalentInjection.maxQ", &get_EquivalentInjection_maxQ); - get_map.emplace("cim:EquivalentInjection.minP", &get_EquivalentInjection_minP); - get_map.emplace("cim:EquivalentInjection.minQ", &get_EquivalentInjection_minQ); - get_map.emplace("cim:EquivalentInjection.p", &get_EquivalentInjection_p); - get_map.emplace("cim:EquivalentInjection.q", &get_EquivalentInjection_q); - get_map.emplace("cim:EquivalentInjection.r", &get_EquivalentInjection_r); - get_map.emplace("cim:EquivalentInjection.r0", &get_EquivalentInjection_r0); - get_map.emplace("cim:EquivalentInjection.r2", &get_EquivalentInjection_r2); - get_map.emplace("cim:EquivalentInjection.regulationCapability", &get_EquivalentInjection_regulationCapability); - get_map.emplace("cim:EquivalentInjection.regulationStatus", &get_EquivalentInjection_regulationStatus); - get_map.emplace("cim:EquivalentInjection.regulationTarget", &get_EquivalentInjection_regulationTarget); - get_map.emplace("cim:EquivalentInjection.x", &get_EquivalentInjection_x); - get_map.emplace("cim:EquivalentInjection.x0", &get_EquivalentInjection_x0); - get_map.emplace("cim:EquivalentInjection.x2", &get_EquivalentInjection_x2); + get_map.emplace("EquivalentInjection.maxP", &get_EquivalentInjection_maxP); + get_map.emplace("EquivalentInjection.maxQ", &get_EquivalentInjection_maxQ); + get_map.emplace("EquivalentInjection.minP", &get_EquivalentInjection_minP); + get_map.emplace("EquivalentInjection.minQ", &get_EquivalentInjection_minQ); + get_map.emplace("EquivalentInjection.p", &get_EquivalentInjection_p); + get_map.emplace("EquivalentInjection.q", &get_EquivalentInjection_q); + get_map.emplace("EquivalentInjection.r", &get_EquivalentInjection_r); + get_map.emplace("EquivalentInjection.r0", &get_EquivalentInjection_r0); + get_map.emplace("EquivalentInjection.r2", &get_EquivalentInjection_r2); + get_map.emplace("EquivalentInjection.regulationCapability", &get_EquivalentInjection_regulationCapability); + get_map.emplace("EquivalentInjection.regulationStatus", &get_EquivalentInjection_regulationStatus); + get_map.emplace("EquivalentInjection.regulationTarget", &get_EquivalentInjection_regulationTarget); + get_map.emplace("EquivalentInjection.x", &get_EquivalentInjection_x); + get_map.emplace("EquivalentInjection.x0", &get_EquivalentInjection_x0); + get_map.emplace("EquivalentInjection.x2", &get_EquivalentInjection_x2); } void EquivalentInjection::addClassGetFnsToMap(std::map& get_map) const { EquivalentEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentInjection.ReactiveCapabilityCurve", &get_EquivalentInjection_ReactiveCapabilityCurve); + get_map.emplace("EquivalentInjection.ReactiveCapabilityCurve", &get_EquivalentInjection_ReactiveCapabilityCurve); } void EquivalentInjection::addEnumGetFnsToMap(std::map& get_map) const @@ -588,11 +620,25 @@ void EquivalentInjection::addEnumGetFnsToMap(std::map EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentInjection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentInjection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentInjection::declare() { return BaseClassDefiner(EquivalentInjection::addConstructToMap, EquivalentInjection::addPrimitiveAssignFnsToMap, EquivalentInjection::addClassAssignFnsToMap, EquivalentInjection::debugName); } +std::map EquivalentInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentInjection_factory() diff --git a/CGMES_2.4.15_27JAN2020/EquivalentInjection.hpp b/CGMES_2.4.15_27JAN2020/EquivalentInjection.hpp index 52d59c58c..a81ac2937 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentInjection.hpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Reactance.hpp" @@ -82,8 +83,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -91,7 +99,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentInjection_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EquivalentNetwork.cpp b/CGMES_2.4.15_27JAN2020/EquivalentNetwork.cpp index 81b5286cd..a732cb018 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentNetwork.cpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentNetwork.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentNetwork(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentNetwork.EquivalentEquipments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentNetwork::EquivalentNetwork() {} EquivalentNetwork::~EquivalentNetwork() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentNetwork::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentNetwork::getClassNamespaceUrl() const { - { "cim:EquivalentNetwork.EquivalentEquipments", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentNetwork::getPossibleProfilesForClass() const +const std::string& EquivalentNetwork::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentNetwork::getPossibleProfilesForAttributes() const +const std::list& EquivalentNetwork::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConnectivityNodeContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentNetwork::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentNetwork::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentNetwork::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentEquipment_EquivalentNetwork(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* EquivalentNetwork::debugString() const void EquivalentNetwork::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentNetwork", &EquivalentNetwork_factory); + factory_map.emplace("EquivalentNetwork", &EquivalentNetwork_factory); } void EquivalentNetwork::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void EquivalentNetwork::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentNetwork.EquivalentEquipments", &assign_EquivalentNetwork_EquivalentEquipments); + assign_map.emplace("EquivalentNetwork.EquivalentEquipments", &assign_EquivalentNetwork_EquivalentEquipments); } void EquivalentNetwork::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void EquivalentNetwork::addEnumGetFnsToMap(std::map& ConnectivityNodeContainer::addEnumGetFnsToMap(get_map); } +bool EquivalentNetwork::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentNetwork" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentNetwork::declare() { return BaseClassDefiner(EquivalentNetwork::addConstructToMap, EquivalentNetwork::addPrimitiveAssignFnsToMap, EquivalentNetwork::addClassAssignFnsToMap, EquivalentNetwork::debugName); } +std::map EquivalentNetwork::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConnectivityNodeContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentNetwork_factory() diff --git a/CGMES_2.4.15_27JAN2020/EquivalentNetwork.hpp b/CGMES_2.4.15_27JAN2020/EquivalentNetwork.hpp index 280054dc0..4edef9914 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentNetwork.hpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentNetwork.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConnectivityNodeContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentNetwork_factory(); diff --git a/CGMES_2.4.15_27JAN2020/EquivalentShunt.cpp b/CGMES_2.4.15_27JAN2020/EquivalentShunt.cpp index 3bee41ffb..38a014766 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentShunt.cpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentShunt.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentShunt(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentShunt.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "EquivalentShunt.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentShunt::EquivalentShunt() {} EquivalentShunt::~EquivalentShunt() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentShunt::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentShunt::getClassNamespaceUrl() const { - { "cim:EquivalentShunt.b", { CGMESProfile::EQ, } }, - { "cim:EquivalentShunt.g", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentShunt::getPossibleProfilesForClass() const +const std::string& EquivalentShunt::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentShunt::getPossibleProfilesForAttributes() const +const std::list& EquivalentShunt::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentShunt::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentShunt::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentShunt::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentShunt_b(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* EquivalentShunt::debugString() const void EquivalentShunt::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentShunt", &EquivalentShunt_factory); + factory_map.emplace("EquivalentShunt", &EquivalentShunt_factory); } void EquivalentShunt::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentShunt.b", &assign_EquivalentShunt_b); - assign_map.emplace("cim:EquivalentShunt.g", &assign_EquivalentShunt_g); + assign_map.emplace("EquivalentShunt.b", &assign_EquivalentShunt_b); + assign_map.emplace("EquivalentShunt.g", &assign_EquivalentShunt_g); } void EquivalentShunt::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void EquivalentShunt::addClassAssignFnsToMap(std::unordered_map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentShunt.b", &get_EquivalentShunt_b); - get_map.emplace("cim:EquivalentShunt.g", &get_EquivalentShunt_g); + get_map.emplace("EquivalentShunt.b", &get_EquivalentShunt_b); + get_map.emplace("EquivalentShunt.g", &get_EquivalentShunt_g); } void EquivalentShunt::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void EquivalentShunt::addEnumGetFnsToMap(std::map& ge EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentShunt::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentShunt" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentShunt::declare() { return BaseClassDefiner(EquivalentShunt::addConstructToMap, EquivalentShunt::addPrimitiveAssignFnsToMap, EquivalentShunt::addClassAssignFnsToMap, EquivalentShunt::debugName); } +std::map EquivalentShunt::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentShunt_factory() diff --git a/CGMES_2.4.15_27JAN2020/EquivalentShunt.hpp b/CGMES_2.4.15_27JAN2020/EquivalentShunt.hpp index 4cd995dcf..8f645b0fc 100644 --- a/CGMES_2.4.15_27JAN2020/EquivalentShunt.hpp +++ b/CGMES_2.4.15_27JAN2020/EquivalentShunt.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Susceptance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentShunt_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAC1A.cpp b/CGMES_2.4.15_27JAN2020/ExcAC1A.cpp index d5bbdc7a5..c870922e9 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC1A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC1A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC1A.hvlvgates", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC1A::ExcAC1A() {} ExcAC1A::~ExcAC1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC1A.hvlvgates", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC1A_hvlvgates(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* ExcAC1A::debugString() const void ExcAC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC1A", &ExcAC1A_factory); + factory_map.emplace("ExcAC1A", &ExcAC1A_factory); } void ExcAC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC1A.hvlvgates", &assign_ExcAC1A_hvlvgates); - assign_map.emplace("cim:ExcAC1A.ka", &assign_ExcAC1A_ka); - assign_map.emplace("cim:ExcAC1A.kc", &assign_ExcAC1A_kc); - assign_map.emplace("cim:ExcAC1A.kd", &assign_ExcAC1A_kd); - assign_map.emplace("cim:ExcAC1A.ke", &assign_ExcAC1A_ke); - assign_map.emplace("cim:ExcAC1A.kf", &assign_ExcAC1A_kf); - assign_map.emplace("cim:ExcAC1A.kf1", &assign_ExcAC1A_kf1); - assign_map.emplace("cim:ExcAC1A.kf2", &assign_ExcAC1A_kf2); - assign_map.emplace("cim:ExcAC1A.ks", &assign_ExcAC1A_ks); - assign_map.emplace("cim:ExcAC1A.seve1", &assign_ExcAC1A_seve1); - assign_map.emplace("cim:ExcAC1A.seve2", &assign_ExcAC1A_seve2); - assign_map.emplace("cim:ExcAC1A.ta", &assign_ExcAC1A_ta); - assign_map.emplace("cim:ExcAC1A.tb", &assign_ExcAC1A_tb); - assign_map.emplace("cim:ExcAC1A.tc", &assign_ExcAC1A_tc); - assign_map.emplace("cim:ExcAC1A.te", &assign_ExcAC1A_te); - assign_map.emplace("cim:ExcAC1A.tf", &assign_ExcAC1A_tf); - assign_map.emplace("cim:ExcAC1A.vamax", &assign_ExcAC1A_vamax); - assign_map.emplace("cim:ExcAC1A.vamin", &assign_ExcAC1A_vamin); - assign_map.emplace("cim:ExcAC1A.ve1", &assign_ExcAC1A_ve1); - assign_map.emplace("cim:ExcAC1A.ve2", &assign_ExcAC1A_ve2); - assign_map.emplace("cim:ExcAC1A.vrmax", &assign_ExcAC1A_vrmax); - assign_map.emplace("cim:ExcAC1A.vrmin", &assign_ExcAC1A_vrmin); + assign_map.emplace("ExcAC1A.hvlvgates", &assign_ExcAC1A_hvlvgates); + assign_map.emplace("ExcAC1A.ka", &assign_ExcAC1A_ka); + assign_map.emplace("ExcAC1A.kc", &assign_ExcAC1A_kc); + assign_map.emplace("ExcAC1A.kd", &assign_ExcAC1A_kd); + assign_map.emplace("ExcAC1A.ke", &assign_ExcAC1A_ke); + assign_map.emplace("ExcAC1A.kf", &assign_ExcAC1A_kf); + assign_map.emplace("ExcAC1A.kf1", &assign_ExcAC1A_kf1); + assign_map.emplace("ExcAC1A.kf2", &assign_ExcAC1A_kf2); + assign_map.emplace("ExcAC1A.ks", &assign_ExcAC1A_ks); + assign_map.emplace("ExcAC1A.seve1", &assign_ExcAC1A_seve1); + assign_map.emplace("ExcAC1A.seve2", &assign_ExcAC1A_seve2); + assign_map.emplace("ExcAC1A.ta", &assign_ExcAC1A_ta); + assign_map.emplace("ExcAC1A.tb", &assign_ExcAC1A_tb); + assign_map.emplace("ExcAC1A.tc", &assign_ExcAC1A_tc); + assign_map.emplace("ExcAC1A.te", &assign_ExcAC1A_te); + assign_map.emplace("ExcAC1A.tf", &assign_ExcAC1A_tf); + assign_map.emplace("ExcAC1A.vamax", &assign_ExcAC1A_vamax); + assign_map.emplace("ExcAC1A.vamin", &assign_ExcAC1A_vamin); + assign_map.emplace("ExcAC1A.ve1", &assign_ExcAC1A_ve1); + assign_map.emplace("ExcAC1A.ve2", &assign_ExcAC1A_ve2); + assign_map.emplace("ExcAC1A.vrmax", &assign_ExcAC1A_vrmax); + assign_map.emplace("ExcAC1A.vrmin", &assign_ExcAC1A_vrmin); } void ExcAC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void ExcAC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC1A.hvlvgates", &get_ExcAC1A_hvlvgates); - get_map.emplace("cim:ExcAC1A.ka", &get_ExcAC1A_ka); - get_map.emplace("cim:ExcAC1A.kc", &get_ExcAC1A_kc); - get_map.emplace("cim:ExcAC1A.kd", &get_ExcAC1A_kd); - get_map.emplace("cim:ExcAC1A.ke", &get_ExcAC1A_ke); - get_map.emplace("cim:ExcAC1A.kf", &get_ExcAC1A_kf); - get_map.emplace("cim:ExcAC1A.kf1", &get_ExcAC1A_kf1); - get_map.emplace("cim:ExcAC1A.kf2", &get_ExcAC1A_kf2); - get_map.emplace("cim:ExcAC1A.ks", &get_ExcAC1A_ks); - get_map.emplace("cim:ExcAC1A.seve1", &get_ExcAC1A_seve1); - get_map.emplace("cim:ExcAC1A.seve2", &get_ExcAC1A_seve2); - get_map.emplace("cim:ExcAC1A.ta", &get_ExcAC1A_ta); - get_map.emplace("cim:ExcAC1A.tb", &get_ExcAC1A_tb); - get_map.emplace("cim:ExcAC1A.tc", &get_ExcAC1A_tc); - get_map.emplace("cim:ExcAC1A.te", &get_ExcAC1A_te); - get_map.emplace("cim:ExcAC1A.tf", &get_ExcAC1A_tf); - get_map.emplace("cim:ExcAC1A.vamax", &get_ExcAC1A_vamax); - get_map.emplace("cim:ExcAC1A.vamin", &get_ExcAC1A_vamin); - get_map.emplace("cim:ExcAC1A.ve1", &get_ExcAC1A_ve1); - get_map.emplace("cim:ExcAC1A.ve2", &get_ExcAC1A_ve2); - get_map.emplace("cim:ExcAC1A.vrmax", &get_ExcAC1A_vrmax); - get_map.emplace("cim:ExcAC1A.vrmin", &get_ExcAC1A_vrmin); + get_map.emplace("ExcAC1A.hvlvgates", &get_ExcAC1A_hvlvgates); + get_map.emplace("ExcAC1A.ka", &get_ExcAC1A_ka); + get_map.emplace("ExcAC1A.kc", &get_ExcAC1A_kc); + get_map.emplace("ExcAC1A.kd", &get_ExcAC1A_kd); + get_map.emplace("ExcAC1A.ke", &get_ExcAC1A_ke); + get_map.emplace("ExcAC1A.kf", &get_ExcAC1A_kf); + get_map.emplace("ExcAC1A.kf1", &get_ExcAC1A_kf1); + get_map.emplace("ExcAC1A.kf2", &get_ExcAC1A_kf2); + get_map.emplace("ExcAC1A.ks", &get_ExcAC1A_ks); + get_map.emplace("ExcAC1A.seve1", &get_ExcAC1A_seve1); + get_map.emplace("ExcAC1A.seve2", &get_ExcAC1A_seve2); + get_map.emplace("ExcAC1A.ta", &get_ExcAC1A_ta); + get_map.emplace("ExcAC1A.tb", &get_ExcAC1A_tb); + get_map.emplace("ExcAC1A.tc", &get_ExcAC1A_tc); + get_map.emplace("ExcAC1A.te", &get_ExcAC1A_te); + get_map.emplace("ExcAC1A.tf", &get_ExcAC1A_tf); + get_map.emplace("ExcAC1A.vamax", &get_ExcAC1A_vamax); + get_map.emplace("ExcAC1A.vamin", &get_ExcAC1A_vamin); + get_map.emplace("ExcAC1A.ve1", &get_ExcAC1A_ve1); + get_map.emplace("ExcAC1A.ve2", &get_ExcAC1A_ve2); + get_map.emplace("ExcAC1A.vrmax", &get_ExcAC1A_vrmax); + get_map.emplace("ExcAC1A.vrmin", &get_ExcAC1A_vrmin); } void ExcAC1A::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void ExcAC1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC1A::declare() { return BaseClassDefiner(ExcAC1A::addConstructToMap, ExcAC1A::addPrimitiveAssignFnsToMap, ExcAC1A::addClassAssignFnsToMap, ExcAC1A::debugName); } +std::map ExcAC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAC1A.hpp b/CGMES_2.4.15_27JAN2020/ExcAC1A.hpp index 3a0fca2c2..625ead518 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC1A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAC2A.cpp b/CGMES_2.4.15_27JAN2020/ExcAC2A.cpp index 733be71b2..2120ee02c 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC2A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC2A.cpp @@ -11,59 +11,91 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC2A.hvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.lvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vlr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC2A::ExcAC2A() {} ExcAC2A::~ExcAC2A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC2A.hvgate", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kb", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kb1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kh", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kl", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kl1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.lvgate", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vlr", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC2A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC2A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC2A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC2A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC2A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC2A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC2A_hvgate(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -886,39 +918,39 @@ const char* ExcAC2A::debugString() const void ExcAC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC2A", &ExcAC2A_factory); + factory_map.emplace("ExcAC2A", &ExcAC2A_factory); } void ExcAC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC2A.hvgate", &assign_ExcAC2A_hvgate); - assign_map.emplace("cim:ExcAC2A.ka", &assign_ExcAC2A_ka); - assign_map.emplace("cim:ExcAC2A.kb", &assign_ExcAC2A_kb); - assign_map.emplace("cim:ExcAC2A.kb1", &assign_ExcAC2A_kb1); - assign_map.emplace("cim:ExcAC2A.kc", &assign_ExcAC2A_kc); - assign_map.emplace("cim:ExcAC2A.kd", &assign_ExcAC2A_kd); - assign_map.emplace("cim:ExcAC2A.ke", &assign_ExcAC2A_ke); - assign_map.emplace("cim:ExcAC2A.kf", &assign_ExcAC2A_kf); - assign_map.emplace("cim:ExcAC2A.kh", &assign_ExcAC2A_kh); - assign_map.emplace("cim:ExcAC2A.kl", &assign_ExcAC2A_kl); - assign_map.emplace("cim:ExcAC2A.kl1", &assign_ExcAC2A_kl1); - assign_map.emplace("cim:ExcAC2A.ks", &assign_ExcAC2A_ks); - assign_map.emplace("cim:ExcAC2A.lvgate", &assign_ExcAC2A_lvgate); - assign_map.emplace("cim:ExcAC2A.seve1", &assign_ExcAC2A_seve1); - assign_map.emplace("cim:ExcAC2A.seve2", &assign_ExcAC2A_seve2); - assign_map.emplace("cim:ExcAC2A.ta", &assign_ExcAC2A_ta); - assign_map.emplace("cim:ExcAC2A.tb", &assign_ExcAC2A_tb); - assign_map.emplace("cim:ExcAC2A.tc", &assign_ExcAC2A_tc); - assign_map.emplace("cim:ExcAC2A.te", &assign_ExcAC2A_te); - assign_map.emplace("cim:ExcAC2A.tf", &assign_ExcAC2A_tf); - assign_map.emplace("cim:ExcAC2A.vamax", &assign_ExcAC2A_vamax); - assign_map.emplace("cim:ExcAC2A.vamin", &assign_ExcAC2A_vamin); - assign_map.emplace("cim:ExcAC2A.ve1", &assign_ExcAC2A_ve1); - assign_map.emplace("cim:ExcAC2A.ve2", &assign_ExcAC2A_ve2); - assign_map.emplace("cim:ExcAC2A.vfemax", &assign_ExcAC2A_vfemax); - assign_map.emplace("cim:ExcAC2A.vlr", &assign_ExcAC2A_vlr); - assign_map.emplace("cim:ExcAC2A.vrmax", &assign_ExcAC2A_vrmax); - assign_map.emplace("cim:ExcAC2A.vrmin", &assign_ExcAC2A_vrmin); + assign_map.emplace("ExcAC2A.hvgate", &assign_ExcAC2A_hvgate); + assign_map.emplace("ExcAC2A.ka", &assign_ExcAC2A_ka); + assign_map.emplace("ExcAC2A.kb", &assign_ExcAC2A_kb); + assign_map.emplace("ExcAC2A.kb1", &assign_ExcAC2A_kb1); + assign_map.emplace("ExcAC2A.kc", &assign_ExcAC2A_kc); + assign_map.emplace("ExcAC2A.kd", &assign_ExcAC2A_kd); + assign_map.emplace("ExcAC2A.ke", &assign_ExcAC2A_ke); + assign_map.emplace("ExcAC2A.kf", &assign_ExcAC2A_kf); + assign_map.emplace("ExcAC2A.kh", &assign_ExcAC2A_kh); + assign_map.emplace("ExcAC2A.kl", &assign_ExcAC2A_kl); + assign_map.emplace("ExcAC2A.kl1", &assign_ExcAC2A_kl1); + assign_map.emplace("ExcAC2A.ks", &assign_ExcAC2A_ks); + assign_map.emplace("ExcAC2A.lvgate", &assign_ExcAC2A_lvgate); + assign_map.emplace("ExcAC2A.seve1", &assign_ExcAC2A_seve1); + assign_map.emplace("ExcAC2A.seve2", &assign_ExcAC2A_seve2); + assign_map.emplace("ExcAC2A.ta", &assign_ExcAC2A_ta); + assign_map.emplace("ExcAC2A.tb", &assign_ExcAC2A_tb); + assign_map.emplace("ExcAC2A.tc", &assign_ExcAC2A_tc); + assign_map.emplace("ExcAC2A.te", &assign_ExcAC2A_te); + assign_map.emplace("ExcAC2A.tf", &assign_ExcAC2A_tf); + assign_map.emplace("ExcAC2A.vamax", &assign_ExcAC2A_vamax); + assign_map.emplace("ExcAC2A.vamin", &assign_ExcAC2A_vamin); + assign_map.emplace("ExcAC2A.ve1", &assign_ExcAC2A_ve1); + assign_map.emplace("ExcAC2A.ve2", &assign_ExcAC2A_ve2); + assign_map.emplace("ExcAC2A.vfemax", &assign_ExcAC2A_vfemax); + assign_map.emplace("ExcAC2A.vlr", &assign_ExcAC2A_vlr); + assign_map.emplace("ExcAC2A.vrmax", &assign_ExcAC2A_vrmax); + assign_map.emplace("ExcAC2A.vrmin", &assign_ExcAC2A_vrmin); } void ExcAC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -928,34 +960,34 @@ void ExcAC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC2A.hvgate", &get_ExcAC2A_hvgate); - get_map.emplace("cim:ExcAC2A.ka", &get_ExcAC2A_ka); - get_map.emplace("cim:ExcAC2A.kb", &get_ExcAC2A_kb); - get_map.emplace("cim:ExcAC2A.kb1", &get_ExcAC2A_kb1); - get_map.emplace("cim:ExcAC2A.kc", &get_ExcAC2A_kc); - get_map.emplace("cim:ExcAC2A.kd", &get_ExcAC2A_kd); - get_map.emplace("cim:ExcAC2A.ke", &get_ExcAC2A_ke); - get_map.emplace("cim:ExcAC2A.kf", &get_ExcAC2A_kf); - get_map.emplace("cim:ExcAC2A.kh", &get_ExcAC2A_kh); - get_map.emplace("cim:ExcAC2A.kl", &get_ExcAC2A_kl); - get_map.emplace("cim:ExcAC2A.kl1", &get_ExcAC2A_kl1); - get_map.emplace("cim:ExcAC2A.ks", &get_ExcAC2A_ks); - get_map.emplace("cim:ExcAC2A.lvgate", &get_ExcAC2A_lvgate); - get_map.emplace("cim:ExcAC2A.seve1", &get_ExcAC2A_seve1); - get_map.emplace("cim:ExcAC2A.seve2", &get_ExcAC2A_seve2); - get_map.emplace("cim:ExcAC2A.ta", &get_ExcAC2A_ta); - get_map.emplace("cim:ExcAC2A.tb", &get_ExcAC2A_tb); - get_map.emplace("cim:ExcAC2A.tc", &get_ExcAC2A_tc); - get_map.emplace("cim:ExcAC2A.te", &get_ExcAC2A_te); - get_map.emplace("cim:ExcAC2A.tf", &get_ExcAC2A_tf); - get_map.emplace("cim:ExcAC2A.vamax", &get_ExcAC2A_vamax); - get_map.emplace("cim:ExcAC2A.vamin", &get_ExcAC2A_vamin); - get_map.emplace("cim:ExcAC2A.ve1", &get_ExcAC2A_ve1); - get_map.emplace("cim:ExcAC2A.ve2", &get_ExcAC2A_ve2); - get_map.emplace("cim:ExcAC2A.vfemax", &get_ExcAC2A_vfemax); - get_map.emplace("cim:ExcAC2A.vlr", &get_ExcAC2A_vlr); - get_map.emplace("cim:ExcAC2A.vrmax", &get_ExcAC2A_vrmax); - get_map.emplace("cim:ExcAC2A.vrmin", &get_ExcAC2A_vrmin); + get_map.emplace("ExcAC2A.hvgate", &get_ExcAC2A_hvgate); + get_map.emplace("ExcAC2A.ka", &get_ExcAC2A_ka); + get_map.emplace("ExcAC2A.kb", &get_ExcAC2A_kb); + get_map.emplace("ExcAC2A.kb1", &get_ExcAC2A_kb1); + get_map.emplace("ExcAC2A.kc", &get_ExcAC2A_kc); + get_map.emplace("ExcAC2A.kd", &get_ExcAC2A_kd); + get_map.emplace("ExcAC2A.ke", &get_ExcAC2A_ke); + get_map.emplace("ExcAC2A.kf", &get_ExcAC2A_kf); + get_map.emplace("ExcAC2A.kh", &get_ExcAC2A_kh); + get_map.emplace("ExcAC2A.kl", &get_ExcAC2A_kl); + get_map.emplace("ExcAC2A.kl1", &get_ExcAC2A_kl1); + get_map.emplace("ExcAC2A.ks", &get_ExcAC2A_ks); + get_map.emplace("ExcAC2A.lvgate", &get_ExcAC2A_lvgate); + get_map.emplace("ExcAC2A.seve1", &get_ExcAC2A_seve1); + get_map.emplace("ExcAC2A.seve2", &get_ExcAC2A_seve2); + get_map.emplace("ExcAC2A.ta", &get_ExcAC2A_ta); + get_map.emplace("ExcAC2A.tb", &get_ExcAC2A_tb); + get_map.emplace("ExcAC2A.tc", &get_ExcAC2A_tc); + get_map.emplace("ExcAC2A.te", &get_ExcAC2A_te); + get_map.emplace("ExcAC2A.tf", &get_ExcAC2A_tf); + get_map.emplace("ExcAC2A.vamax", &get_ExcAC2A_vamax); + get_map.emplace("ExcAC2A.vamin", &get_ExcAC2A_vamin); + get_map.emplace("ExcAC2A.ve1", &get_ExcAC2A_ve1); + get_map.emplace("ExcAC2A.ve2", &get_ExcAC2A_ve2); + get_map.emplace("ExcAC2A.vfemax", &get_ExcAC2A_vfemax); + get_map.emplace("ExcAC2A.vlr", &get_ExcAC2A_vlr); + get_map.emplace("ExcAC2A.vrmax", &get_ExcAC2A_vrmax); + get_map.emplace("ExcAC2A.vrmin", &get_ExcAC2A_vrmin); } void ExcAC2A::addClassGetFnsToMap(std::map& get_map) const @@ -968,11 +1000,25 @@ void ExcAC2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC2A::declare() { return BaseClassDefiner(ExcAC2A::addConstructToMap, ExcAC2A::addPrimitiveAssignFnsToMap, ExcAC2A::addClassAssignFnsToMap, ExcAC2A::debugName); } +std::map ExcAC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC2A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAC2A.hpp b/CGMES_2.4.15_27JAN2020/ExcAC2A.hpp index 902938d79..c2b57c443 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC2A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -115,8 +116,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -124,7 +132,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC2A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAC3A.cpp b/CGMES_2.4.15_27JAN2020/ExcAC3A.cpp index 254577cfa..cb098c0b4 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC3A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC3A.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC3A.efdn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.klv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vlv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC3A::ExcAC3A() {} ExcAC3A::~ExcAC3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC3A.efdn", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.klv", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kn", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vemin", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vlv", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC3A_efdn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* ExcAC3A::debugString() const void ExcAC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC3A", &ExcAC3A_factory); + factory_map.emplace("ExcAC3A", &ExcAC3A_factory); } void ExcAC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC3A.efdn", &assign_ExcAC3A_efdn); - assign_map.emplace("cim:ExcAC3A.ka", &assign_ExcAC3A_ka); - assign_map.emplace("cim:ExcAC3A.kc", &assign_ExcAC3A_kc); - assign_map.emplace("cim:ExcAC3A.kd", &assign_ExcAC3A_kd); - assign_map.emplace("cim:ExcAC3A.ke", &assign_ExcAC3A_ke); - assign_map.emplace("cim:ExcAC3A.kf", &assign_ExcAC3A_kf); - assign_map.emplace("cim:ExcAC3A.kf1", &assign_ExcAC3A_kf1); - assign_map.emplace("cim:ExcAC3A.kf2", &assign_ExcAC3A_kf2); - assign_map.emplace("cim:ExcAC3A.klv", &assign_ExcAC3A_klv); - assign_map.emplace("cim:ExcAC3A.kn", &assign_ExcAC3A_kn); - assign_map.emplace("cim:ExcAC3A.kr", &assign_ExcAC3A_kr); - assign_map.emplace("cim:ExcAC3A.ks", &assign_ExcAC3A_ks); - assign_map.emplace("cim:ExcAC3A.seve1", &assign_ExcAC3A_seve1); - assign_map.emplace("cim:ExcAC3A.seve2", &assign_ExcAC3A_seve2); - assign_map.emplace("cim:ExcAC3A.ta", &assign_ExcAC3A_ta); - assign_map.emplace("cim:ExcAC3A.tb", &assign_ExcAC3A_tb); - assign_map.emplace("cim:ExcAC3A.tc", &assign_ExcAC3A_tc); - assign_map.emplace("cim:ExcAC3A.te", &assign_ExcAC3A_te); - assign_map.emplace("cim:ExcAC3A.tf", &assign_ExcAC3A_tf); - assign_map.emplace("cim:ExcAC3A.vamax", &assign_ExcAC3A_vamax); - assign_map.emplace("cim:ExcAC3A.vamin", &assign_ExcAC3A_vamin); - assign_map.emplace("cim:ExcAC3A.ve1", &assign_ExcAC3A_ve1); - assign_map.emplace("cim:ExcAC3A.ve2", &assign_ExcAC3A_ve2); - assign_map.emplace("cim:ExcAC3A.vemin", &assign_ExcAC3A_vemin); - assign_map.emplace("cim:ExcAC3A.vfemax", &assign_ExcAC3A_vfemax); - assign_map.emplace("cim:ExcAC3A.vlv", &assign_ExcAC3A_vlv); + assign_map.emplace("ExcAC3A.efdn", &assign_ExcAC3A_efdn); + assign_map.emplace("ExcAC3A.ka", &assign_ExcAC3A_ka); + assign_map.emplace("ExcAC3A.kc", &assign_ExcAC3A_kc); + assign_map.emplace("ExcAC3A.kd", &assign_ExcAC3A_kd); + assign_map.emplace("ExcAC3A.ke", &assign_ExcAC3A_ke); + assign_map.emplace("ExcAC3A.kf", &assign_ExcAC3A_kf); + assign_map.emplace("ExcAC3A.kf1", &assign_ExcAC3A_kf1); + assign_map.emplace("ExcAC3A.kf2", &assign_ExcAC3A_kf2); + assign_map.emplace("ExcAC3A.klv", &assign_ExcAC3A_klv); + assign_map.emplace("ExcAC3A.kn", &assign_ExcAC3A_kn); + assign_map.emplace("ExcAC3A.kr", &assign_ExcAC3A_kr); + assign_map.emplace("ExcAC3A.ks", &assign_ExcAC3A_ks); + assign_map.emplace("ExcAC3A.seve1", &assign_ExcAC3A_seve1); + assign_map.emplace("ExcAC3A.seve2", &assign_ExcAC3A_seve2); + assign_map.emplace("ExcAC3A.ta", &assign_ExcAC3A_ta); + assign_map.emplace("ExcAC3A.tb", &assign_ExcAC3A_tb); + assign_map.emplace("ExcAC3A.tc", &assign_ExcAC3A_tc); + assign_map.emplace("ExcAC3A.te", &assign_ExcAC3A_te); + assign_map.emplace("ExcAC3A.tf", &assign_ExcAC3A_tf); + assign_map.emplace("ExcAC3A.vamax", &assign_ExcAC3A_vamax); + assign_map.emplace("ExcAC3A.vamin", &assign_ExcAC3A_vamin); + assign_map.emplace("ExcAC3A.ve1", &assign_ExcAC3A_ve1); + assign_map.emplace("ExcAC3A.ve2", &assign_ExcAC3A_ve2); + assign_map.emplace("ExcAC3A.vemin", &assign_ExcAC3A_vemin); + assign_map.emplace("ExcAC3A.vfemax", &assign_ExcAC3A_vfemax); + assign_map.emplace("ExcAC3A.vlv", &assign_ExcAC3A_vlv); } void ExcAC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void ExcAC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC3A.efdn", &get_ExcAC3A_efdn); - get_map.emplace("cim:ExcAC3A.ka", &get_ExcAC3A_ka); - get_map.emplace("cim:ExcAC3A.kc", &get_ExcAC3A_kc); - get_map.emplace("cim:ExcAC3A.kd", &get_ExcAC3A_kd); - get_map.emplace("cim:ExcAC3A.ke", &get_ExcAC3A_ke); - get_map.emplace("cim:ExcAC3A.kf", &get_ExcAC3A_kf); - get_map.emplace("cim:ExcAC3A.kf1", &get_ExcAC3A_kf1); - get_map.emplace("cim:ExcAC3A.kf2", &get_ExcAC3A_kf2); - get_map.emplace("cim:ExcAC3A.klv", &get_ExcAC3A_klv); - get_map.emplace("cim:ExcAC3A.kn", &get_ExcAC3A_kn); - get_map.emplace("cim:ExcAC3A.kr", &get_ExcAC3A_kr); - get_map.emplace("cim:ExcAC3A.ks", &get_ExcAC3A_ks); - get_map.emplace("cim:ExcAC3A.seve1", &get_ExcAC3A_seve1); - get_map.emplace("cim:ExcAC3A.seve2", &get_ExcAC3A_seve2); - get_map.emplace("cim:ExcAC3A.ta", &get_ExcAC3A_ta); - get_map.emplace("cim:ExcAC3A.tb", &get_ExcAC3A_tb); - get_map.emplace("cim:ExcAC3A.tc", &get_ExcAC3A_tc); - get_map.emplace("cim:ExcAC3A.te", &get_ExcAC3A_te); - get_map.emplace("cim:ExcAC3A.tf", &get_ExcAC3A_tf); - get_map.emplace("cim:ExcAC3A.vamax", &get_ExcAC3A_vamax); - get_map.emplace("cim:ExcAC3A.vamin", &get_ExcAC3A_vamin); - get_map.emplace("cim:ExcAC3A.ve1", &get_ExcAC3A_ve1); - get_map.emplace("cim:ExcAC3A.ve2", &get_ExcAC3A_ve2); - get_map.emplace("cim:ExcAC3A.vemin", &get_ExcAC3A_vemin); - get_map.emplace("cim:ExcAC3A.vfemax", &get_ExcAC3A_vfemax); - get_map.emplace("cim:ExcAC3A.vlv", &get_ExcAC3A_vlv); + get_map.emplace("ExcAC3A.efdn", &get_ExcAC3A_efdn); + get_map.emplace("ExcAC3A.ka", &get_ExcAC3A_ka); + get_map.emplace("ExcAC3A.kc", &get_ExcAC3A_kc); + get_map.emplace("ExcAC3A.kd", &get_ExcAC3A_kd); + get_map.emplace("ExcAC3A.ke", &get_ExcAC3A_ke); + get_map.emplace("ExcAC3A.kf", &get_ExcAC3A_kf); + get_map.emplace("ExcAC3A.kf1", &get_ExcAC3A_kf1); + get_map.emplace("ExcAC3A.kf2", &get_ExcAC3A_kf2); + get_map.emplace("ExcAC3A.klv", &get_ExcAC3A_klv); + get_map.emplace("ExcAC3A.kn", &get_ExcAC3A_kn); + get_map.emplace("ExcAC3A.kr", &get_ExcAC3A_kr); + get_map.emplace("ExcAC3A.ks", &get_ExcAC3A_ks); + get_map.emplace("ExcAC3A.seve1", &get_ExcAC3A_seve1); + get_map.emplace("ExcAC3A.seve2", &get_ExcAC3A_seve2); + get_map.emplace("ExcAC3A.ta", &get_ExcAC3A_ta); + get_map.emplace("ExcAC3A.tb", &get_ExcAC3A_tb); + get_map.emplace("ExcAC3A.tc", &get_ExcAC3A_tc); + get_map.emplace("ExcAC3A.te", &get_ExcAC3A_te); + get_map.emplace("ExcAC3A.tf", &get_ExcAC3A_tf); + get_map.emplace("ExcAC3A.vamax", &get_ExcAC3A_vamax); + get_map.emplace("ExcAC3A.vamin", &get_ExcAC3A_vamin); + get_map.emplace("ExcAC3A.ve1", &get_ExcAC3A_ve1); + get_map.emplace("ExcAC3A.ve2", &get_ExcAC3A_ve2); + get_map.emplace("ExcAC3A.vemin", &get_ExcAC3A_vemin); + get_map.emplace("ExcAC3A.vfemax", &get_ExcAC3A_vfemax); + get_map.emplace("ExcAC3A.vlv", &get_ExcAC3A_vlv); } void ExcAC3A::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void ExcAC3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC3A::declare() { return BaseClassDefiner(ExcAC3A::addConstructToMap, ExcAC3A::addPrimitiveAssignFnsToMap, ExcAC3A::addClassAssignFnsToMap, ExcAC3A::debugName); } +std::map ExcAC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC3A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAC3A.hpp b/CGMES_2.4.15_27JAN2020/ExcAC3A.hpp index 430ee5d27..ab770529e 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC3A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC3A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAC4A.cpp b/CGMES_2.4.15_27JAN2020/ExcAC4A.cpp index ee9a03733..fb9830e44 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC4A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC4A.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC4A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC4A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC4A::ExcAC4A() {} ExcAC4A::~ExcAC4A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAC4A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAC4A::getClassNamespaceUrl() const { - { "cim:ExcAC4A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAC4A::getPossibleProfilesForClass() const +const std::string& ExcAC4A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAC4A::getPossibleProfilesForAttributes() const +const std::list& ExcAC4A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC4A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC4A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC4A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC4A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ExcAC4A::debugString() const void ExcAC4A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC4A", &ExcAC4A_factory); + factory_map.emplace("ExcAC4A", &ExcAC4A_factory); } void ExcAC4A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC4A.ka", &assign_ExcAC4A_ka); - assign_map.emplace("cim:ExcAC4A.kc", &assign_ExcAC4A_kc); - assign_map.emplace("cim:ExcAC4A.ta", &assign_ExcAC4A_ta); - assign_map.emplace("cim:ExcAC4A.tb", &assign_ExcAC4A_tb); - assign_map.emplace("cim:ExcAC4A.tc", &assign_ExcAC4A_tc); - assign_map.emplace("cim:ExcAC4A.vimax", &assign_ExcAC4A_vimax); - assign_map.emplace("cim:ExcAC4A.vimin", &assign_ExcAC4A_vimin); - assign_map.emplace("cim:ExcAC4A.vrmax", &assign_ExcAC4A_vrmax); - assign_map.emplace("cim:ExcAC4A.vrmin", &assign_ExcAC4A_vrmin); + assign_map.emplace("ExcAC4A.ka", &assign_ExcAC4A_ka); + assign_map.emplace("ExcAC4A.kc", &assign_ExcAC4A_kc); + assign_map.emplace("ExcAC4A.ta", &assign_ExcAC4A_ta); + assign_map.emplace("ExcAC4A.tb", &assign_ExcAC4A_tb); + assign_map.emplace("ExcAC4A.tc", &assign_ExcAC4A_tc); + assign_map.emplace("ExcAC4A.vimax", &assign_ExcAC4A_vimax); + assign_map.emplace("ExcAC4A.vimin", &assign_ExcAC4A_vimin); + assign_map.emplace("ExcAC4A.vrmax", &assign_ExcAC4A_vrmax); + assign_map.emplace("ExcAC4A.vrmin", &assign_ExcAC4A_vrmin); } void ExcAC4A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ExcAC4A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC4A.ka", &get_ExcAC4A_ka); - get_map.emplace("cim:ExcAC4A.kc", &get_ExcAC4A_kc); - get_map.emplace("cim:ExcAC4A.ta", &get_ExcAC4A_ta); - get_map.emplace("cim:ExcAC4A.tb", &get_ExcAC4A_tb); - get_map.emplace("cim:ExcAC4A.tc", &get_ExcAC4A_tc); - get_map.emplace("cim:ExcAC4A.vimax", &get_ExcAC4A_vimax); - get_map.emplace("cim:ExcAC4A.vimin", &get_ExcAC4A_vimin); - get_map.emplace("cim:ExcAC4A.vrmax", &get_ExcAC4A_vrmax); - get_map.emplace("cim:ExcAC4A.vrmin", &get_ExcAC4A_vrmin); + get_map.emplace("ExcAC4A.ka", &get_ExcAC4A_ka); + get_map.emplace("ExcAC4A.kc", &get_ExcAC4A_kc); + get_map.emplace("ExcAC4A.ta", &get_ExcAC4A_ta); + get_map.emplace("ExcAC4A.tb", &get_ExcAC4A_tb); + get_map.emplace("ExcAC4A.tc", &get_ExcAC4A_tc); + get_map.emplace("ExcAC4A.vimax", &get_ExcAC4A_vimax); + get_map.emplace("ExcAC4A.vimin", &get_ExcAC4A_vimin); + get_map.emplace("ExcAC4A.vrmax", &get_ExcAC4A_vrmax); + get_map.emplace("ExcAC4A.vrmin", &get_ExcAC4A_vrmin); } void ExcAC4A::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ExcAC4A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC4A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC4A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC4A::declare() { return BaseClassDefiner(ExcAC4A::addConstructToMap, ExcAC4A::addPrimitiveAssignFnsToMap, ExcAC4A::addClassAssignFnsToMap, ExcAC4A::debugName); } +std::map ExcAC4A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC4A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAC4A.hpp b/CGMES_2.4.15_27JAN2020/ExcAC4A.hpp index d0fc847a7..56da05fe8 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC4A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC4A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC4A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAC5A.cpp b/CGMES_2.4.15_27JAN2020/ExcAC5A.cpp index c0836badb..6e755d270 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC5A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC5A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC5A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC5A.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC5A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC5A::ExcAC5A() {} ExcAC5A::~ExcAC5A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAC5A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAC5A::getClassNamespaceUrl() const { - { "cim:ExcAC5A.a", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf3", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAC5A::getPossibleProfilesForClass() const +const std::string& ExcAC5A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAC5A::getPossibleProfilesForAttributes() const +const std::list& ExcAC5A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC5A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC5A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC5A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC5A_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcAC5A::debugString() const void ExcAC5A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC5A", &ExcAC5A_factory); + factory_map.emplace("ExcAC5A", &ExcAC5A_factory); } void ExcAC5A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC5A.a", &assign_ExcAC5A_a); - assign_map.emplace("cim:ExcAC5A.efd1", &assign_ExcAC5A_efd1); - assign_map.emplace("cim:ExcAC5A.efd2", &assign_ExcAC5A_efd2); - assign_map.emplace("cim:ExcAC5A.ka", &assign_ExcAC5A_ka); - assign_map.emplace("cim:ExcAC5A.ke", &assign_ExcAC5A_ke); - assign_map.emplace("cim:ExcAC5A.kf", &assign_ExcAC5A_kf); - assign_map.emplace("cim:ExcAC5A.ks", &assign_ExcAC5A_ks); - assign_map.emplace("cim:ExcAC5A.seefd1", &assign_ExcAC5A_seefd1); - assign_map.emplace("cim:ExcAC5A.seefd2", &assign_ExcAC5A_seefd2); - assign_map.emplace("cim:ExcAC5A.ta", &assign_ExcAC5A_ta); - assign_map.emplace("cim:ExcAC5A.tb", &assign_ExcAC5A_tb); - assign_map.emplace("cim:ExcAC5A.tc", &assign_ExcAC5A_tc); - assign_map.emplace("cim:ExcAC5A.te", &assign_ExcAC5A_te); - assign_map.emplace("cim:ExcAC5A.tf1", &assign_ExcAC5A_tf1); - assign_map.emplace("cim:ExcAC5A.tf2", &assign_ExcAC5A_tf2); - assign_map.emplace("cim:ExcAC5A.tf3", &assign_ExcAC5A_tf3); - assign_map.emplace("cim:ExcAC5A.vrmax", &assign_ExcAC5A_vrmax); - assign_map.emplace("cim:ExcAC5A.vrmin", &assign_ExcAC5A_vrmin); + assign_map.emplace("ExcAC5A.a", &assign_ExcAC5A_a); + assign_map.emplace("ExcAC5A.efd1", &assign_ExcAC5A_efd1); + assign_map.emplace("ExcAC5A.efd2", &assign_ExcAC5A_efd2); + assign_map.emplace("ExcAC5A.ka", &assign_ExcAC5A_ka); + assign_map.emplace("ExcAC5A.ke", &assign_ExcAC5A_ke); + assign_map.emplace("ExcAC5A.kf", &assign_ExcAC5A_kf); + assign_map.emplace("ExcAC5A.ks", &assign_ExcAC5A_ks); + assign_map.emplace("ExcAC5A.seefd1", &assign_ExcAC5A_seefd1); + assign_map.emplace("ExcAC5A.seefd2", &assign_ExcAC5A_seefd2); + assign_map.emplace("ExcAC5A.ta", &assign_ExcAC5A_ta); + assign_map.emplace("ExcAC5A.tb", &assign_ExcAC5A_tb); + assign_map.emplace("ExcAC5A.tc", &assign_ExcAC5A_tc); + assign_map.emplace("ExcAC5A.te", &assign_ExcAC5A_te); + assign_map.emplace("ExcAC5A.tf1", &assign_ExcAC5A_tf1); + assign_map.emplace("ExcAC5A.tf2", &assign_ExcAC5A_tf2); + assign_map.emplace("ExcAC5A.tf3", &assign_ExcAC5A_tf3); + assign_map.emplace("ExcAC5A.vrmax", &assign_ExcAC5A_vrmax); + assign_map.emplace("ExcAC5A.vrmin", &assign_ExcAC5A_vrmin); } void ExcAC5A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcAC5A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC5A.a", &get_ExcAC5A_a); - get_map.emplace("cim:ExcAC5A.efd1", &get_ExcAC5A_efd1); - get_map.emplace("cim:ExcAC5A.efd2", &get_ExcAC5A_efd2); - get_map.emplace("cim:ExcAC5A.ka", &get_ExcAC5A_ka); - get_map.emplace("cim:ExcAC5A.ke", &get_ExcAC5A_ke); - get_map.emplace("cim:ExcAC5A.kf", &get_ExcAC5A_kf); - get_map.emplace("cim:ExcAC5A.ks", &get_ExcAC5A_ks); - get_map.emplace("cim:ExcAC5A.seefd1", &get_ExcAC5A_seefd1); - get_map.emplace("cim:ExcAC5A.seefd2", &get_ExcAC5A_seefd2); - get_map.emplace("cim:ExcAC5A.ta", &get_ExcAC5A_ta); - get_map.emplace("cim:ExcAC5A.tb", &get_ExcAC5A_tb); - get_map.emplace("cim:ExcAC5A.tc", &get_ExcAC5A_tc); - get_map.emplace("cim:ExcAC5A.te", &get_ExcAC5A_te); - get_map.emplace("cim:ExcAC5A.tf1", &get_ExcAC5A_tf1); - get_map.emplace("cim:ExcAC5A.tf2", &get_ExcAC5A_tf2); - get_map.emplace("cim:ExcAC5A.tf3", &get_ExcAC5A_tf3); - get_map.emplace("cim:ExcAC5A.vrmax", &get_ExcAC5A_vrmax); - get_map.emplace("cim:ExcAC5A.vrmin", &get_ExcAC5A_vrmin); + get_map.emplace("ExcAC5A.a", &get_ExcAC5A_a); + get_map.emplace("ExcAC5A.efd1", &get_ExcAC5A_efd1); + get_map.emplace("ExcAC5A.efd2", &get_ExcAC5A_efd2); + get_map.emplace("ExcAC5A.ka", &get_ExcAC5A_ka); + get_map.emplace("ExcAC5A.ke", &get_ExcAC5A_ke); + get_map.emplace("ExcAC5A.kf", &get_ExcAC5A_kf); + get_map.emplace("ExcAC5A.ks", &get_ExcAC5A_ks); + get_map.emplace("ExcAC5A.seefd1", &get_ExcAC5A_seefd1); + get_map.emplace("ExcAC5A.seefd2", &get_ExcAC5A_seefd2); + get_map.emplace("ExcAC5A.ta", &get_ExcAC5A_ta); + get_map.emplace("ExcAC5A.tb", &get_ExcAC5A_tb); + get_map.emplace("ExcAC5A.tc", &get_ExcAC5A_tc); + get_map.emplace("ExcAC5A.te", &get_ExcAC5A_te); + get_map.emplace("ExcAC5A.tf1", &get_ExcAC5A_tf1); + get_map.emplace("ExcAC5A.tf2", &get_ExcAC5A_tf2); + get_map.emplace("ExcAC5A.tf3", &get_ExcAC5A_tf3); + get_map.emplace("ExcAC5A.vrmax", &get_ExcAC5A_vrmax); + get_map.emplace("ExcAC5A.vrmin", &get_ExcAC5A_vrmin); } void ExcAC5A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcAC5A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC5A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC5A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC5A::declare() { return BaseClassDefiner(ExcAC5A::addConstructToMap, ExcAC5A::addPrimitiveAssignFnsToMap, ExcAC5A::addClassAssignFnsToMap, ExcAC5A::debugName); } +std::map ExcAC5A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC5A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAC5A.hpp b/CGMES_2.4.15_27JAN2020/ExcAC5A.hpp index 17c61ea36..009ae6ba3 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC5A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC5A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC5A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAC6A.cpp b/CGMES_2.4.15_27JAN2020/ExcAC6A.cpp index bcdd5fdcd..ff05d5aa7 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC6A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC6A.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC6A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC6A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.th", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vfelim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC6A::ExcAC6A() {} ExcAC6A::~ExcAC6A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC6A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kh", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.th", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tj", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tk", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vfelim", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vhmax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC6A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC6A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC6A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC6A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC6A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC6A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC6A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC6A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC6A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC6A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcAC6A::debugString() const void ExcAC6A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC6A", &ExcAC6A_factory); + factory_map.emplace("ExcAC6A", &ExcAC6A_factory); } void ExcAC6A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC6A.ka", &assign_ExcAC6A_ka); - assign_map.emplace("cim:ExcAC6A.kc", &assign_ExcAC6A_kc); - assign_map.emplace("cim:ExcAC6A.kd", &assign_ExcAC6A_kd); - assign_map.emplace("cim:ExcAC6A.ke", &assign_ExcAC6A_ke); - assign_map.emplace("cim:ExcAC6A.kh", &assign_ExcAC6A_kh); - assign_map.emplace("cim:ExcAC6A.ks", &assign_ExcAC6A_ks); - assign_map.emplace("cim:ExcAC6A.seve1", &assign_ExcAC6A_seve1); - assign_map.emplace("cim:ExcAC6A.seve2", &assign_ExcAC6A_seve2); - assign_map.emplace("cim:ExcAC6A.ta", &assign_ExcAC6A_ta); - assign_map.emplace("cim:ExcAC6A.tb", &assign_ExcAC6A_tb); - assign_map.emplace("cim:ExcAC6A.tc", &assign_ExcAC6A_tc); - assign_map.emplace("cim:ExcAC6A.te", &assign_ExcAC6A_te); - assign_map.emplace("cim:ExcAC6A.th", &assign_ExcAC6A_th); - assign_map.emplace("cim:ExcAC6A.tj", &assign_ExcAC6A_tj); - assign_map.emplace("cim:ExcAC6A.tk", &assign_ExcAC6A_tk); - assign_map.emplace("cim:ExcAC6A.vamax", &assign_ExcAC6A_vamax); - assign_map.emplace("cim:ExcAC6A.vamin", &assign_ExcAC6A_vamin); - assign_map.emplace("cim:ExcAC6A.ve1", &assign_ExcAC6A_ve1); - assign_map.emplace("cim:ExcAC6A.ve2", &assign_ExcAC6A_ve2); - assign_map.emplace("cim:ExcAC6A.vfelim", &assign_ExcAC6A_vfelim); - assign_map.emplace("cim:ExcAC6A.vhmax", &assign_ExcAC6A_vhmax); - assign_map.emplace("cim:ExcAC6A.vrmax", &assign_ExcAC6A_vrmax); - assign_map.emplace("cim:ExcAC6A.vrmin", &assign_ExcAC6A_vrmin); + assign_map.emplace("ExcAC6A.ka", &assign_ExcAC6A_ka); + assign_map.emplace("ExcAC6A.kc", &assign_ExcAC6A_kc); + assign_map.emplace("ExcAC6A.kd", &assign_ExcAC6A_kd); + assign_map.emplace("ExcAC6A.ke", &assign_ExcAC6A_ke); + assign_map.emplace("ExcAC6A.kh", &assign_ExcAC6A_kh); + assign_map.emplace("ExcAC6A.ks", &assign_ExcAC6A_ks); + assign_map.emplace("ExcAC6A.seve1", &assign_ExcAC6A_seve1); + assign_map.emplace("ExcAC6A.seve2", &assign_ExcAC6A_seve2); + assign_map.emplace("ExcAC6A.ta", &assign_ExcAC6A_ta); + assign_map.emplace("ExcAC6A.tb", &assign_ExcAC6A_tb); + assign_map.emplace("ExcAC6A.tc", &assign_ExcAC6A_tc); + assign_map.emplace("ExcAC6A.te", &assign_ExcAC6A_te); + assign_map.emplace("ExcAC6A.th", &assign_ExcAC6A_th); + assign_map.emplace("ExcAC6A.tj", &assign_ExcAC6A_tj); + assign_map.emplace("ExcAC6A.tk", &assign_ExcAC6A_tk); + assign_map.emplace("ExcAC6A.vamax", &assign_ExcAC6A_vamax); + assign_map.emplace("ExcAC6A.vamin", &assign_ExcAC6A_vamin); + assign_map.emplace("ExcAC6A.ve1", &assign_ExcAC6A_ve1); + assign_map.emplace("ExcAC6A.ve2", &assign_ExcAC6A_ve2); + assign_map.emplace("ExcAC6A.vfelim", &assign_ExcAC6A_vfelim); + assign_map.emplace("ExcAC6A.vhmax", &assign_ExcAC6A_vhmax); + assign_map.emplace("ExcAC6A.vrmax", &assign_ExcAC6A_vrmax); + assign_map.emplace("ExcAC6A.vrmin", &assign_ExcAC6A_vrmin); } void ExcAC6A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcAC6A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC6A.ka", &get_ExcAC6A_ka); - get_map.emplace("cim:ExcAC6A.kc", &get_ExcAC6A_kc); - get_map.emplace("cim:ExcAC6A.kd", &get_ExcAC6A_kd); - get_map.emplace("cim:ExcAC6A.ke", &get_ExcAC6A_ke); - get_map.emplace("cim:ExcAC6A.kh", &get_ExcAC6A_kh); - get_map.emplace("cim:ExcAC6A.ks", &get_ExcAC6A_ks); - get_map.emplace("cim:ExcAC6A.seve1", &get_ExcAC6A_seve1); - get_map.emplace("cim:ExcAC6A.seve2", &get_ExcAC6A_seve2); - get_map.emplace("cim:ExcAC6A.ta", &get_ExcAC6A_ta); - get_map.emplace("cim:ExcAC6A.tb", &get_ExcAC6A_tb); - get_map.emplace("cim:ExcAC6A.tc", &get_ExcAC6A_tc); - get_map.emplace("cim:ExcAC6A.te", &get_ExcAC6A_te); - get_map.emplace("cim:ExcAC6A.th", &get_ExcAC6A_th); - get_map.emplace("cim:ExcAC6A.tj", &get_ExcAC6A_tj); - get_map.emplace("cim:ExcAC6A.tk", &get_ExcAC6A_tk); - get_map.emplace("cim:ExcAC6A.vamax", &get_ExcAC6A_vamax); - get_map.emplace("cim:ExcAC6A.vamin", &get_ExcAC6A_vamin); - get_map.emplace("cim:ExcAC6A.ve1", &get_ExcAC6A_ve1); - get_map.emplace("cim:ExcAC6A.ve2", &get_ExcAC6A_ve2); - get_map.emplace("cim:ExcAC6A.vfelim", &get_ExcAC6A_vfelim); - get_map.emplace("cim:ExcAC6A.vhmax", &get_ExcAC6A_vhmax); - get_map.emplace("cim:ExcAC6A.vrmax", &get_ExcAC6A_vrmax); - get_map.emplace("cim:ExcAC6A.vrmin", &get_ExcAC6A_vrmin); + get_map.emplace("ExcAC6A.ka", &get_ExcAC6A_ka); + get_map.emplace("ExcAC6A.kc", &get_ExcAC6A_kc); + get_map.emplace("ExcAC6A.kd", &get_ExcAC6A_kd); + get_map.emplace("ExcAC6A.ke", &get_ExcAC6A_ke); + get_map.emplace("ExcAC6A.kh", &get_ExcAC6A_kh); + get_map.emplace("ExcAC6A.ks", &get_ExcAC6A_ks); + get_map.emplace("ExcAC6A.seve1", &get_ExcAC6A_seve1); + get_map.emplace("ExcAC6A.seve2", &get_ExcAC6A_seve2); + get_map.emplace("ExcAC6A.ta", &get_ExcAC6A_ta); + get_map.emplace("ExcAC6A.tb", &get_ExcAC6A_tb); + get_map.emplace("ExcAC6A.tc", &get_ExcAC6A_tc); + get_map.emplace("ExcAC6A.te", &get_ExcAC6A_te); + get_map.emplace("ExcAC6A.th", &get_ExcAC6A_th); + get_map.emplace("ExcAC6A.tj", &get_ExcAC6A_tj); + get_map.emplace("ExcAC6A.tk", &get_ExcAC6A_tk); + get_map.emplace("ExcAC6A.vamax", &get_ExcAC6A_vamax); + get_map.emplace("ExcAC6A.vamin", &get_ExcAC6A_vamin); + get_map.emplace("ExcAC6A.ve1", &get_ExcAC6A_ve1); + get_map.emplace("ExcAC6A.ve2", &get_ExcAC6A_ve2); + get_map.emplace("ExcAC6A.vfelim", &get_ExcAC6A_vfelim); + get_map.emplace("ExcAC6A.vhmax", &get_ExcAC6A_vhmax); + get_map.emplace("ExcAC6A.vrmax", &get_ExcAC6A_vrmax); + get_map.emplace("ExcAC6A.vrmin", &get_ExcAC6A_vrmin); } void ExcAC6A::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcAC6A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC6A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC6A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC6A::declare() { return BaseClassDefiner(ExcAC6A::addConstructToMap, ExcAC6A::addPrimitiveAssignFnsToMap, ExcAC6A::addClassAssignFnsToMap, ExcAC6A::debugName); } +std::map ExcAC6A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC6A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAC6A.hpp b/CGMES_2.4.15_27JAN2020/ExcAC6A.hpp index 9bc679ac4..43fed9636 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC6A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC6A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -99,8 +100,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -108,7 +116,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC6A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAC8B.cpp b/CGMES_2.4.15_27JAN2020/ExcAC8B.cpp index d43497172..9cd4d5e27 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC8B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC8B.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC8B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC8B.inlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.pidlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.telim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vpidmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vpidmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vtmult", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC8B::ExcAC8B() {} ExcAC8B::~ExcAC8B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC8B.inlim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kir", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.pidlim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.te", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.telim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vimax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vimin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vpidmax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vpidmin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vtmult", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC8B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC8B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC8B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC8B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC8B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC8B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC8B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC8B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC8B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC8B_inlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* ExcAC8B::debugString() const void ExcAC8B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC8B", &ExcAC8B_factory); + factory_map.emplace("ExcAC8B", &ExcAC8B_factory); } void ExcAC8B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC8B.inlim", &assign_ExcAC8B_inlim); - assign_map.emplace("cim:ExcAC8B.ka", &assign_ExcAC8B_ka); - assign_map.emplace("cim:ExcAC8B.kc", &assign_ExcAC8B_kc); - assign_map.emplace("cim:ExcAC8B.kd", &assign_ExcAC8B_kd); - assign_map.emplace("cim:ExcAC8B.kdr", &assign_ExcAC8B_kdr); - assign_map.emplace("cim:ExcAC8B.ke", &assign_ExcAC8B_ke); - assign_map.emplace("cim:ExcAC8B.kir", &assign_ExcAC8B_kir); - assign_map.emplace("cim:ExcAC8B.kpr", &assign_ExcAC8B_kpr); - assign_map.emplace("cim:ExcAC8B.ks", &assign_ExcAC8B_ks); - assign_map.emplace("cim:ExcAC8B.pidlim", &assign_ExcAC8B_pidlim); - assign_map.emplace("cim:ExcAC8B.seve1", &assign_ExcAC8B_seve1); - assign_map.emplace("cim:ExcAC8B.seve2", &assign_ExcAC8B_seve2); - assign_map.emplace("cim:ExcAC8B.ta", &assign_ExcAC8B_ta); - assign_map.emplace("cim:ExcAC8B.tdr", &assign_ExcAC8B_tdr); - assign_map.emplace("cim:ExcAC8B.te", &assign_ExcAC8B_te); - assign_map.emplace("cim:ExcAC8B.telim", &assign_ExcAC8B_telim); - assign_map.emplace("cim:ExcAC8B.ve1", &assign_ExcAC8B_ve1); - assign_map.emplace("cim:ExcAC8B.ve2", &assign_ExcAC8B_ve2); - assign_map.emplace("cim:ExcAC8B.vemin", &assign_ExcAC8B_vemin); - assign_map.emplace("cim:ExcAC8B.vfemax", &assign_ExcAC8B_vfemax); - assign_map.emplace("cim:ExcAC8B.vimax", &assign_ExcAC8B_vimax); - assign_map.emplace("cim:ExcAC8B.vimin", &assign_ExcAC8B_vimin); - assign_map.emplace("cim:ExcAC8B.vpidmax", &assign_ExcAC8B_vpidmax); - assign_map.emplace("cim:ExcAC8B.vpidmin", &assign_ExcAC8B_vpidmin); - assign_map.emplace("cim:ExcAC8B.vrmax", &assign_ExcAC8B_vrmax); - assign_map.emplace("cim:ExcAC8B.vrmin", &assign_ExcAC8B_vrmin); - assign_map.emplace("cim:ExcAC8B.vtmult", &assign_ExcAC8B_vtmult); + assign_map.emplace("ExcAC8B.inlim", &assign_ExcAC8B_inlim); + assign_map.emplace("ExcAC8B.ka", &assign_ExcAC8B_ka); + assign_map.emplace("ExcAC8B.kc", &assign_ExcAC8B_kc); + assign_map.emplace("ExcAC8B.kd", &assign_ExcAC8B_kd); + assign_map.emplace("ExcAC8B.kdr", &assign_ExcAC8B_kdr); + assign_map.emplace("ExcAC8B.ke", &assign_ExcAC8B_ke); + assign_map.emplace("ExcAC8B.kir", &assign_ExcAC8B_kir); + assign_map.emplace("ExcAC8B.kpr", &assign_ExcAC8B_kpr); + assign_map.emplace("ExcAC8B.ks", &assign_ExcAC8B_ks); + assign_map.emplace("ExcAC8B.pidlim", &assign_ExcAC8B_pidlim); + assign_map.emplace("ExcAC8B.seve1", &assign_ExcAC8B_seve1); + assign_map.emplace("ExcAC8B.seve2", &assign_ExcAC8B_seve2); + assign_map.emplace("ExcAC8B.ta", &assign_ExcAC8B_ta); + assign_map.emplace("ExcAC8B.tdr", &assign_ExcAC8B_tdr); + assign_map.emplace("ExcAC8B.te", &assign_ExcAC8B_te); + assign_map.emplace("ExcAC8B.telim", &assign_ExcAC8B_telim); + assign_map.emplace("ExcAC8B.ve1", &assign_ExcAC8B_ve1); + assign_map.emplace("ExcAC8B.ve2", &assign_ExcAC8B_ve2); + assign_map.emplace("ExcAC8B.vemin", &assign_ExcAC8B_vemin); + assign_map.emplace("ExcAC8B.vfemax", &assign_ExcAC8B_vfemax); + assign_map.emplace("ExcAC8B.vimax", &assign_ExcAC8B_vimax); + assign_map.emplace("ExcAC8B.vimin", &assign_ExcAC8B_vimin); + assign_map.emplace("ExcAC8B.vpidmax", &assign_ExcAC8B_vpidmax); + assign_map.emplace("ExcAC8B.vpidmin", &assign_ExcAC8B_vpidmin); + assign_map.emplace("ExcAC8B.vrmax", &assign_ExcAC8B_vrmax); + assign_map.emplace("ExcAC8B.vrmin", &assign_ExcAC8B_vrmin); + assign_map.emplace("ExcAC8B.vtmult", &assign_ExcAC8B_vtmult); } void ExcAC8B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,33 +929,33 @@ void ExcAC8B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC8B.inlim", &get_ExcAC8B_inlim); - get_map.emplace("cim:ExcAC8B.ka", &get_ExcAC8B_ka); - get_map.emplace("cim:ExcAC8B.kc", &get_ExcAC8B_kc); - get_map.emplace("cim:ExcAC8B.kd", &get_ExcAC8B_kd); - get_map.emplace("cim:ExcAC8B.kdr", &get_ExcAC8B_kdr); - get_map.emplace("cim:ExcAC8B.ke", &get_ExcAC8B_ke); - get_map.emplace("cim:ExcAC8B.kir", &get_ExcAC8B_kir); - get_map.emplace("cim:ExcAC8B.kpr", &get_ExcAC8B_kpr); - get_map.emplace("cim:ExcAC8B.ks", &get_ExcAC8B_ks); - get_map.emplace("cim:ExcAC8B.pidlim", &get_ExcAC8B_pidlim); - get_map.emplace("cim:ExcAC8B.seve1", &get_ExcAC8B_seve1); - get_map.emplace("cim:ExcAC8B.seve2", &get_ExcAC8B_seve2); - get_map.emplace("cim:ExcAC8B.ta", &get_ExcAC8B_ta); - get_map.emplace("cim:ExcAC8B.tdr", &get_ExcAC8B_tdr); - get_map.emplace("cim:ExcAC8B.te", &get_ExcAC8B_te); - get_map.emplace("cim:ExcAC8B.telim", &get_ExcAC8B_telim); - get_map.emplace("cim:ExcAC8B.ve1", &get_ExcAC8B_ve1); - get_map.emplace("cim:ExcAC8B.ve2", &get_ExcAC8B_ve2); - get_map.emplace("cim:ExcAC8B.vemin", &get_ExcAC8B_vemin); - get_map.emplace("cim:ExcAC8B.vfemax", &get_ExcAC8B_vfemax); - get_map.emplace("cim:ExcAC8B.vimax", &get_ExcAC8B_vimax); - get_map.emplace("cim:ExcAC8B.vimin", &get_ExcAC8B_vimin); - get_map.emplace("cim:ExcAC8B.vpidmax", &get_ExcAC8B_vpidmax); - get_map.emplace("cim:ExcAC8B.vpidmin", &get_ExcAC8B_vpidmin); - get_map.emplace("cim:ExcAC8B.vrmax", &get_ExcAC8B_vrmax); - get_map.emplace("cim:ExcAC8B.vrmin", &get_ExcAC8B_vrmin); - get_map.emplace("cim:ExcAC8B.vtmult", &get_ExcAC8B_vtmult); + get_map.emplace("ExcAC8B.inlim", &get_ExcAC8B_inlim); + get_map.emplace("ExcAC8B.ka", &get_ExcAC8B_ka); + get_map.emplace("ExcAC8B.kc", &get_ExcAC8B_kc); + get_map.emplace("ExcAC8B.kd", &get_ExcAC8B_kd); + get_map.emplace("ExcAC8B.kdr", &get_ExcAC8B_kdr); + get_map.emplace("ExcAC8B.ke", &get_ExcAC8B_ke); + get_map.emplace("ExcAC8B.kir", &get_ExcAC8B_kir); + get_map.emplace("ExcAC8B.kpr", &get_ExcAC8B_kpr); + get_map.emplace("ExcAC8B.ks", &get_ExcAC8B_ks); + get_map.emplace("ExcAC8B.pidlim", &get_ExcAC8B_pidlim); + get_map.emplace("ExcAC8B.seve1", &get_ExcAC8B_seve1); + get_map.emplace("ExcAC8B.seve2", &get_ExcAC8B_seve2); + get_map.emplace("ExcAC8B.ta", &get_ExcAC8B_ta); + get_map.emplace("ExcAC8B.tdr", &get_ExcAC8B_tdr); + get_map.emplace("ExcAC8B.te", &get_ExcAC8B_te); + get_map.emplace("ExcAC8B.telim", &get_ExcAC8B_telim); + get_map.emplace("ExcAC8B.ve1", &get_ExcAC8B_ve1); + get_map.emplace("ExcAC8B.ve2", &get_ExcAC8B_ve2); + get_map.emplace("ExcAC8B.vemin", &get_ExcAC8B_vemin); + get_map.emplace("ExcAC8B.vfemax", &get_ExcAC8B_vfemax); + get_map.emplace("ExcAC8B.vimax", &get_ExcAC8B_vimax); + get_map.emplace("ExcAC8B.vimin", &get_ExcAC8B_vimin); + get_map.emplace("ExcAC8B.vpidmax", &get_ExcAC8B_vpidmax); + get_map.emplace("ExcAC8B.vpidmin", &get_ExcAC8B_vpidmin); + get_map.emplace("ExcAC8B.vrmax", &get_ExcAC8B_vrmax); + get_map.emplace("ExcAC8B.vrmin", &get_ExcAC8B_vrmin); + get_map.emplace("ExcAC8B.vtmult", &get_ExcAC8B_vtmult); } void ExcAC8B::addClassGetFnsToMap(std::map& get_map) const @@ -936,11 +968,25 @@ void ExcAC8B::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC8B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC8B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC8B::declare() { return BaseClassDefiner(ExcAC8B::addConstructToMap, ExcAC8B::addPrimitiveAssignFnsToMap, ExcAC8B::addClassAssignFnsToMap, ExcAC8B::debugName); } +std::map ExcAC8B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC8B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAC8B.hpp b/CGMES_2.4.15_27JAN2020/ExcAC8B.hpp index 578b1a281..b9311f3bc 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAC8B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAC8B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -112,8 +113,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -121,7 +129,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC8B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcANS.cpp b/CGMES_2.4.15_27JAN2020/ExcANS.cpp index afc2cb7d6..d8d18d591 100644 --- a/CGMES_2.4.15_27JAN2020/ExcANS.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcANS.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcANS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcANS.blint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.ifmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.ifmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.kce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.krvecc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.kvfif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcANS.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcANS::ExcANS() {} ExcANS::~ExcANS() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcANS::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcANS::getClassNamespaceUrl() const { - { "cim:ExcANS.blint", { CGMESProfile::DY, } }, - { "cim:ExcANS.ifmn", { CGMESProfile::DY, } }, - { "cim:ExcANS.ifmx", { CGMESProfile::DY, } }, - { "cim:ExcANS.k2", { CGMESProfile::DY, } }, - { "cim:ExcANS.k3", { CGMESProfile::DY, } }, - { "cim:ExcANS.kce", { CGMESProfile::DY, } }, - { "cim:ExcANS.krvecc", { CGMESProfile::DY, } }, - { "cim:ExcANS.kvfif", { CGMESProfile::DY, } }, - { "cim:ExcANS.t1", { CGMESProfile::DY, } }, - { "cim:ExcANS.t2", { CGMESProfile::DY, } }, - { "cim:ExcANS.t3", { CGMESProfile::DY, } }, - { "cim:ExcANS.tb", { CGMESProfile::DY, } }, - { "cim:ExcANS.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcANS.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcANS::getPossibleProfilesForClass() const +const std::string& ExcANS::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcANS::getPossibleProfilesForAttributes() const +const std::list& ExcANS::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcANS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcANS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcANS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcANS_blint(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcANS::debugString() const void ExcANS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcANS", &ExcANS_factory); + factory_map.emplace("ExcANS", &ExcANS_factory); } void ExcANS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcANS.blint", &assign_ExcANS_blint); - assign_map.emplace("cim:ExcANS.ifmn", &assign_ExcANS_ifmn); - assign_map.emplace("cim:ExcANS.ifmx", &assign_ExcANS_ifmx); - assign_map.emplace("cim:ExcANS.k2", &assign_ExcANS_k2); - assign_map.emplace("cim:ExcANS.k3", &assign_ExcANS_k3); - assign_map.emplace("cim:ExcANS.kce", &assign_ExcANS_kce); - assign_map.emplace("cim:ExcANS.krvecc", &assign_ExcANS_krvecc); - assign_map.emplace("cim:ExcANS.kvfif", &assign_ExcANS_kvfif); - assign_map.emplace("cim:ExcANS.t1", &assign_ExcANS_t1); - assign_map.emplace("cim:ExcANS.t2", &assign_ExcANS_t2); - assign_map.emplace("cim:ExcANS.t3", &assign_ExcANS_t3); - assign_map.emplace("cim:ExcANS.tb", &assign_ExcANS_tb); - assign_map.emplace("cim:ExcANS.vrmn", &assign_ExcANS_vrmn); - assign_map.emplace("cim:ExcANS.vrmx", &assign_ExcANS_vrmx); + assign_map.emplace("ExcANS.blint", &assign_ExcANS_blint); + assign_map.emplace("ExcANS.ifmn", &assign_ExcANS_ifmn); + assign_map.emplace("ExcANS.ifmx", &assign_ExcANS_ifmx); + assign_map.emplace("ExcANS.k2", &assign_ExcANS_k2); + assign_map.emplace("ExcANS.k3", &assign_ExcANS_k3); + assign_map.emplace("ExcANS.kce", &assign_ExcANS_kce); + assign_map.emplace("ExcANS.krvecc", &assign_ExcANS_krvecc); + assign_map.emplace("ExcANS.kvfif", &assign_ExcANS_kvfif); + assign_map.emplace("ExcANS.t1", &assign_ExcANS_t1); + assign_map.emplace("ExcANS.t2", &assign_ExcANS_t2); + assign_map.emplace("ExcANS.t3", &assign_ExcANS_t3); + assign_map.emplace("ExcANS.tb", &assign_ExcANS_tb); + assign_map.emplace("ExcANS.vrmn", &assign_ExcANS_vrmn); + assign_map.emplace("ExcANS.vrmx", &assign_ExcANS_vrmx); } void ExcANS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcANS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcANS.blint", &get_ExcANS_blint); - get_map.emplace("cim:ExcANS.ifmn", &get_ExcANS_ifmn); - get_map.emplace("cim:ExcANS.ifmx", &get_ExcANS_ifmx); - get_map.emplace("cim:ExcANS.k2", &get_ExcANS_k2); - get_map.emplace("cim:ExcANS.k3", &get_ExcANS_k3); - get_map.emplace("cim:ExcANS.kce", &get_ExcANS_kce); - get_map.emplace("cim:ExcANS.krvecc", &get_ExcANS_krvecc); - get_map.emplace("cim:ExcANS.kvfif", &get_ExcANS_kvfif); - get_map.emplace("cim:ExcANS.t1", &get_ExcANS_t1); - get_map.emplace("cim:ExcANS.t2", &get_ExcANS_t2); - get_map.emplace("cim:ExcANS.t3", &get_ExcANS_t3); - get_map.emplace("cim:ExcANS.tb", &get_ExcANS_tb); - get_map.emplace("cim:ExcANS.vrmn", &get_ExcANS_vrmn); - get_map.emplace("cim:ExcANS.vrmx", &get_ExcANS_vrmx); + get_map.emplace("ExcANS.blint", &get_ExcANS_blint); + get_map.emplace("ExcANS.ifmn", &get_ExcANS_ifmn); + get_map.emplace("ExcANS.ifmx", &get_ExcANS_ifmx); + get_map.emplace("ExcANS.k2", &get_ExcANS_k2); + get_map.emplace("ExcANS.k3", &get_ExcANS_k3); + get_map.emplace("ExcANS.kce", &get_ExcANS_kce); + get_map.emplace("ExcANS.krvecc", &get_ExcANS_krvecc); + get_map.emplace("ExcANS.kvfif", &get_ExcANS_kvfif); + get_map.emplace("ExcANS.t1", &get_ExcANS_t1); + get_map.emplace("ExcANS.t2", &get_ExcANS_t2); + get_map.emplace("ExcANS.t3", &get_ExcANS_t3); + get_map.emplace("ExcANS.tb", &get_ExcANS_tb); + get_map.emplace("ExcANS.vrmn", &get_ExcANS_vrmn); + get_map.emplace("ExcANS.vrmx", &get_ExcANS_vrmx); } void ExcANS::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcANS::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcANS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcANS" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcANS::declare() { return BaseClassDefiner(ExcANS::addConstructToMap, ExcANS::addPrimitiveAssignFnsToMap, ExcANS::addClassAssignFnsToMap, ExcANS::debugName); } +std::map ExcANS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcANS_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcANS.hpp b/CGMES_2.4.15_27JAN2020/ExcANS.hpp index b1ba9b1be..df1375aef 100644 --- a/CGMES_2.4.15_27JAN2020/ExcANS.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcANS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcANS_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR1.cpp b/CGMES_2.4.15_27JAN2020/ExcAVR1.cpp index 3daf41454..cba9b8143 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR1.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR1.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR1.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR1.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR1::ExcAVR1() {} ExcAVR1::~ExcAVR1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR1::getClassNamespaceUrl() const { - { "cim:ExcAVR1.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.kf", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.ta", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.tb", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.tf", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR1::getPossibleProfilesForClass() const +const std::string& ExcAVR1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR1::getPossibleProfilesForAttributes() const +const std::list& ExcAVR1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR1_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcAVR1::debugString() const void ExcAVR1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR1", &ExcAVR1_factory); + factory_map.emplace("ExcAVR1", &ExcAVR1_factory); } void ExcAVR1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR1.e1", &assign_ExcAVR1_e1); - assign_map.emplace("cim:ExcAVR1.e2", &assign_ExcAVR1_e2); - assign_map.emplace("cim:ExcAVR1.ka", &assign_ExcAVR1_ka); - assign_map.emplace("cim:ExcAVR1.kf", &assign_ExcAVR1_kf); - assign_map.emplace("cim:ExcAVR1.se1", &assign_ExcAVR1_se1); - assign_map.emplace("cim:ExcAVR1.se2", &assign_ExcAVR1_se2); - assign_map.emplace("cim:ExcAVR1.ta", &assign_ExcAVR1_ta); - assign_map.emplace("cim:ExcAVR1.tb", &assign_ExcAVR1_tb); - assign_map.emplace("cim:ExcAVR1.te", &assign_ExcAVR1_te); - assign_map.emplace("cim:ExcAVR1.tf", &assign_ExcAVR1_tf); - assign_map.emplace("cim:ExcAVR1.vrmn", &assign_ExcAVR1_vrmn); - assign_map.emplace("cim:ExcAVR1.vrmx", &assign_ExcAVR1_vrmx); + assign_map.emplace("ExcAVR1.e1", &assign_ExcAVR1_e1); + assign_map.emplace("ExcAVR1.e2", &assign_ExcAVR1_e2); + assign_map.emplace("ExcAVR1.ka", &assign_ExcAVR1_ka); + assign_map.emplace("ExcAVR1.kf", &assign_ExcAVR1_kf); + assign_map.emplace("ExcAVR1.se1", &assign_ExcAVR1_se1); + assign_map.emplace("ExcAVR1.se2", &assign_ExcAVR1_se2); + assign_map.emplace("ExcAVR1.ta", &assign_ExcAVR1_ta); + assign_map.emplace("ExcAVR1.tb", &assign_ExcAVR1_tb); + assign_map.emplace("ExcAVR1.te", &assign_ExcAVR1_te); + assign_map.emplace("ExcAVR1.tf", &assign_ExcAVR1_tf); + assign_map.emplace("ExcAVR1.vrmn", &assign_ExcAVR1_vrmn); + assign_map.emplace("ExcAVR1.vrmx", &assign_ExcAVR1_vrmx); } void ExcAVR1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcAVR1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR1.e1", &get_ExcAVR1_e1); - get_map.emplace("cim:ExcAVR1.e2", &get_ExcAVR1_e2); - get_map.emplace("cim:ExcAVR1.ka", &get_ExcAVR1_ka); - get_map.emplace("cim:ExcAVR1.kf", &get_ExcAVR1_kf); - get_map.emplace("cim:ExcAVR1.se1", &get_ExcAVR1_se1); - get_map.emplace("cim:ExcAVR1.se2", &get_ExcAVR1_se2); - get_map.emplace("cim:ExcAVR1.ta", &get_ExcAVR1_ta); - get_map.emplace("cim:ExcAVR1.tb", &get_ExcAVR1_tb); - get_map.emplace("cim:ExcAVR1.te", &get_ExcAVR1_te); - get_map.emplace("cim:ExcAVR1.tf", &get_ExcAVR1_tf); - get_map.emplace("cim:ExcAVR1.vrmn", &get_ExcAVR1_vrmn); - get_map.emplace("cim:ExcAVR1.vrmx", &get_ExcAVR1_vrmx); + get_map.emplace("ExcAVR1.e1", &get_ExcAVR1_e1); + get_map.emplace("ExcAVR1.e2", &get_ExcAVR1_e2); + get_map.emplace("ExcAVR1.ka", &get_ExcAVR1_ka); + get_map.emplace("ExcAVR1.kf", &get_ExcAVR1_kf); + get_map.emplace("ExcAVR1.se1", &get_ExcAVR1_se1); + get_map.emplace("ExcAVR1.se2", &get_ExcAVR1_se2); + get_map.emplace("ExcAVR1.ta", &get_ExcAVR1_ta); + get_map.emplace("ExcAVR1.tb", &get_ExcAVR1_tb); + get_map.emplace("ExcAVR1.te", &get_ExcAVR1_te); + get_map.emplace("ExcAVR1.tf", &get_ExcAVR1_tf); + get_map.emplace("ExcAVR1.vrmn", &get_ExcAVR1_vrmn); + get_map.emplace("ExcAVR1.vrmx", &get_ExcAVR1_vrmx); } void ExcAVR1::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcAVR1::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR1::declare() { return BaseClassDefiner(ExcAVR1::addConstructToMap, ExcAVR1::addPrimitiveAssignFnsToMap, ExcAVR1::addClassAssignFnsToMap, ExcAVR1::debugName); } +std::map ExcAVR1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR1_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR1.hpp b/CGMES_2.4.15_27JAN2020/ExcAVR1.hpp index 867d7920d..7045fa1ea 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR1.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR2.cpp b/CGMES_2.4.15_27JAN2020/ExcAVR2.cpp index c9f8d13de..b0031b608 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR2.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR2.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR2.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR2.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR2::ExcAVR2() {} ExcAVR2::~ExcAVR2() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR2::getClassNamespaceUrl() const { - { "cim:ExcAVR2.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.kf", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.ta", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tb", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tf1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tf2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR2::getPossibleProfilesForClass() const +const std::string& ExcAVR2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR2::getPossibleProfilesForAttributes() const +const std::list& ExcAVR2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR2_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcAVR2::debugString() const void ExcAVR2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR2", &ExcAVR2_factory); + factory_map.emplace("ExcAVR2", &ExcAVR2_factory); } void ExcAVR2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR2.e1", &assign_ExcAVR2_e1); - assign_map.emplace("cim:ExcAVR2.e2", &assign_ExcAVR2_e2); - assign_map.emplace("cim:ExcAVR2.ka", &assign_ExcAVR2_ka); - assign_map.emplace("cim:ExcAVR2.kf", &assign_ExcAVR2_kf); - assign_map.emplace("cim:ExcAVR2.se1", &assign_ExcAVR2_se1); - assign_map.emplace("cim:ExcAVR2.se2", &assign_ExcAVR2_se2); - assign_map.emplace("cim:ExcAVR2.ta", &assign_ExcAVR2_ta); - assign_map.emplace("cim:ExcAVR2.tb", &assign_ExcAVR2_tb); - assign_map.emplace("cim:ExcAVR2.te", &assign_ExcAVR2_te); - assign_map.emplace("cim:ExcAVR2.tf1", &assign_ExcAVR2_tf1); - assign_map.emplace("cim:ExcAVR2.tf2", &assign_ExcAVR2_tf2); - assign_map.emplace("cim:ExcAVR2.vrmn", &assign_ExcAVR2_vrmn); - assign_map.emplace("cim:ExcAVR2.vrmx", &assign_ExcAVR2_vrmx); + assign_map.emplace("ExcAVR2.e1", &assign_ExcAVR2_e1); + assign_map.emplace("ExcAVR2.e2", &assign_ExcAVR2_e2); + assign_map.emplace("ExcAVR2.ka", &assign_ExcAVR2_ka); + assign_map.emplace("ExcAVR2.kf", &assign_ExcAVR2_kf); + assign_map.emplace("ExcAVR2.se1", &assign_ExcAVR2_se1); + assign_map.emplace("ExcAVR2.se2", &assign_ExcAVR2_se2); + assign_map.emplace("ExcAVR2.ta", &assign_ExcAVR2_ta); + assign_map.emplace("ExcAVR2.tb", &assign_ExcAVR2_tb); + assign_map.emplace("ExcAVR2.te", &assign_ExcAVR2_te); + assign_map.emplace("ExcAVR2.tf1", &assign_ExcAVR2_tf1); + assign_map.emplace("ExcAVR2.tf2", &assign_ExcAVR2_tf2); + assign_map.emplace("ExcAVR2.vrmn", &assign_ExcAVR2_vrmn); + assign_map.emplace("ExcAVR2.vrmx", &assign_ExcAVR2_vrmx); } void ExcAVR2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcAVR2::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR2.e1", &get_ExcAVR2_e1); - get_map.emplace("cim:ExcAVR2.e2", &get_ExcAVR2_e2); - get_map.emplace("cim:ExcAVR2.ka", &get_ExcAVR2_ka); - get_map.emplace("cim:ExcAVR2.kf", &get_ExcAVR2_kf); - get_map.emplace("cim:ExcAVR2.se1", &get_ExcAVR2_se1); - get_map.emplace("cim:ExcAVR2.se2", &get_ExcAVR2_se2); - get_map.emplace("cim:ExcAVR2.ta", &get_ExcAVR2_ta); - get_map.emplace("cim:ExcAVR2.tb", &get_ExcAVR2_tb); - get_map.emplace("cim:ExcAVR2.te", &get_ExcAVR2_te); - get_map.emplace("cim:ExcAVR2.tf1", &get_ExcAVR2_tf1); - get_map.emplace("cim:ExcAVR2.tf2", &get_ExcAVR2_tf2); - get_map.emplace("cim:ExcAVR2.vrmn", &get_ExcAVR2_vrmn); - get_map.emplace("cim:ExcAVR2.vrmx", &get_ExcAVR2_vrmx); + get_map.emplace("ExcAVR2.e1", &get_ExcAVR2_e1); + get_map.emplace("ExcAVR2.e2", &get_ExcAVR2_e2); + get_map.emplace("ExcAVR2.ka", &get_ExcAVR2_ka); + get_map.emplace("ExcAVR2.kf", &get_ExcAVR2_kf); + get_map.emplace("ExcAVR2.se1", &get_ExcAVR2_se1); + get_map.emplace("ExcAVR2.se2", &get_ExcAVR2_se2); + get_map.emplace("ExcAVR2.ta", &get_ExcAVR2_ta); + get_map.emplace("ExcAVR2.tb", &get_ExcAVR2_tb); + get_map.emplace("ExcAVR2.te", &get_ExcAVR2_te); + get_map.emplace("ExcAVR2.tf1", &get_ExcAVR2_tf1); + get_map.emplace("ExcAVR2.tf2", &get_ExcAVR2_tf2); + get_map.emplace("ExcAVR2.vrmn", &get_ExcAVR2_vrmn); + get_map.emplace("ExcAVR2.vrmx", &get_ExcAVR2_vrmx); } void ExcAVR2::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcAVR2::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR2::declare() { return BaseClassDefiner(ExcAVR2::addConstructToMap, ExcAVR2::addPrimitiveAssignFnsToMap, ExcAVR2::addClassAssignFnsToMap, ExcAVR2::debugName); } +std::map ExcAVR2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR2_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR2.hpp b/CGMES_2.4.15_27JAN2020/ExcAVR2.hpp index 4ef10bee6..e490f3c29 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR2.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR3.cpp b/CGMES_2.4.15_27JAN2020/ExcAVR3.cpp index a58bdda7d..90713cbce 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR3.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR3.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR3.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR3.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR3::ExcAVR3() {} ExcAVR3::~ExcAVR3() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR3::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR3::getClassNamespaceUrl() const { - { "cim:ExcAVR3.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR3::getPossibleProfilesForClass() const +const std::string& ExcAVR3::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR3::getPossibleProfilesForAttributes() const +const std::list& ExcAVR3::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR3_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcAVR3::debugString() const void ExcAVR3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR3", &ExcAVR3_factory); + factory_map.emplace("ExcAVR3", &ExcAVR3_factory); } void ExcAVR3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR3.e1", &assign_ExcAVR3_e1); - assign_map.emplace("cim:ExcAVR3.e2", &assign_ExcAVR3_e2); - assign_map.emplace("cim:ExcAVR3.ka", &assign_ExcAVR3_ka); - assign_map.emplace("cim:ExcAVR3.se1", &assign_ExcAVR3_se1); - assign_map.emplace("cim:ExcAVR3.se2", &assign_ExcAVR3_se2); - assign_map.emplace("cim:ExcAVR3.t1", &assign_ExcAVR3_t1); - assign_map.emplace("cim:ExcAVR3.t2", &assign_ExcAVR3_t2); - assign_map.emplace("cim:ExcAVR3.t3", &assign_ExcAVR3_t3); - assign_map.emplace("cim:ExcAVR3.t4", &assign_ExcAVR3_t4); - assign_map.emplace("cim:ExcAVR3.te", &assign_ExcAVR3_te); - assign_map.emplace("cim:ExcAVR3.vrmn", &assign_ExcAVR3_vrmn); - assign_map.emplace("cim:ExcAVR3.vrmx", &assign_ExcAVR3_vrmx); + assign_map.emplace("ExcAVR3.e1", &assign_ExcAVR3_e1); + assign_map.emplace("ExcAVR3.e2", &assign_ExcAVR3_e2); + assign_map.emplace("ExcAVR3.ka", &assign_ExcAVR3_ka); + assign_map.emplace("ExcAVR3.se1", &assign_ExcAVR3_se1); + assign_map.emplace("ExcAVR3.se2", &assign_ExcAVR3_se2); + assign_map.emplace("ExcAVR3.t1", &assign_ExcAVR3_t1); + assign_map.emplace("ExcAVR3.t2", &assign_ExcAVR3_t2); + assign_map.emplace("ExcAVR3.t3", &assign_ExcAVR3_t3); + assign_map.emplace("ExcAVR3.t4", &assign_ExcAVR3_t4); + assign_map.emplace("ExcAVR3.te", &assign_ExcAVR3_te); + assign_map.emplace("ExcAVR3.vrmn", &assign_ExcAVR3_vrmn); + assign_map.emplace("ExcAVR3.vrmx", &assign_ExcAVR3_vrmx); } void ExcAVR3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcAVR3::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR3.e1", &get_ExcAVR3_e1); - get_map.emplace("cim:ExcAVR3.e2", &get_ExcAVR3_e2); - get_map.emplace("cim:ExcAVR3.ka", &get_ExcAVR3_ka); - get_map.emplace("cim:ExcAVR3.se1", &get_ExcAVR3_se1); - get_map.emplace("cim:ExcAVR3.se2", &get_ExcAVR3_se2); - get_map.emplace("cim:ExcAVR3.t1", &get_ExcAVR3_t1); - get_map.emplace("cim:ExcAVR3.t2", &get_ExcAVR3_t2); - get_map.emplace("cim:ExcAVR3.t3", &get_ExcAVR3_t3); - get_map.emplace("cim:ExcAVR3.t4", &get_ExcAVR3_t4); - get_map.emplace("cim:ExcAVR3.te", &get_ExcAVR3_te); - get_map.emplace("cim:ExcAVR3.vrmn", &get_ExcAVR3_vrmn); - get_map.emplace("cim:ExcAVR3.vrmx", &get_ExcAVR3_vrmx); + get_map.emplace("ExcAVR3.e1", &get_ExcAVR3_e1); + get_map.emplace("ExcAVR3.e2", &get_ExcAVR3_e2); + get_map.emplace("ExcAVR3.ka", &get_ExcAVR3_ka); + get_map.emplace("ExcAVR3.se1", &get_ExcAVR3_se1); + get_map.emplace("ExcAVR3.se2", &get_ExcAVR3_se2); + get_map.emplace("ExcAVR3.t1", &get_ExcAVR3_t1); + get_map.emplace("ExcAVR3.t2", &get_ExcAVR3_t2); + get_map.emplace("ExcAVR3.t3", &get_ExcAVR3_t3); + get_map.emplace("ExcAVR3.t4", &get_ExcAVR3_t4); + get_map.emplace("ExcAVR3.te", &get_ExcAVR3_te); + get_map.emplace("ExcAVR3.vrmn", &get_ExcAVR3_vrmn); + get_map.emplace("ExcAVR3.vrmx", &get_ExcAVR3_vrmx); } void ExcAVR3::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcAVR3::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR3::declare() { return BaseClassDefiner(ExcAVR3::addConstructToMap, ExcAVR3::addPrimitiveAssignFnsToMap, ExcAVR3::addClassAssignFnsToMap, ExcAVR3::debugName); } +std::map ExcAVR3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR3_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR3.hpp b/CGMES_2.4.15_27JAN2020/ExcAVR3.hpp index 9e24fc4b5..b1b804aab 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR3.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR3_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR4.cpp b/CGMES_2.4.15_27JAN2020/ExcAVR4.cpp index 52fd9e5cd..ad4e7a618 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR4.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR4.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR4.imul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.kif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t1if", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.tif", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vfmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vfmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vrmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vrmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR4::ExcAVR4() {} ExcAVR4::~ExcAVR4() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR4::getClassNamespaceUrl() const { - { "cim:ExcAVR4.imul", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.ke", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.kif", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t1if", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.tif", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vfmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vfmx", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR4::getPossibleProfilesForClass() const +const std::string& ExcAVR4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR4::getPossibleProfilesForAttributes() const +const std::list& ExcAVR4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR4_imul(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcAVR4::debugString() const void ExcAVR4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR4", &ExcAVR4_factory); + factory_map.emplace("ExcAVR4", &ExcAVR4_factory); } void ExcAVR4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR4.imul", &assign_ExcAVR4_imul); - assign_map.emplace("cim:ExcAVR4.ka", &assign_ExcAVR4_ka); - assign_map.emplace("cim:ExcAVR4.ke", &assign_ExcAVR4_ke); - assign_map.emplace("cim:ExcAVR4.kif", &assign_ExcAVR4_kif); - assign_map.emplace("cim:ExcAVR4.t1", &assign_ExcAVR4_t1); - assign_map.emplace("cim:ExcAVR4.t1if", &assign_ExcAVR4_t1if); - assign_map.emplace("cim:ExcAVR4.t2", &assign_ExcAVR4_t2); - assign_map.emplace("cim:ExcAVR4.t3", &assign_ExcAVR4_t3); - assign_map.emplace("cim:ExcAVR4.t4", &assign_ExcAVR4_t4); - assign_map.emplace("cim:ExcAVR4.tif", &assign_ExcAVR4_tif); - assign_map.emplace("cim:ExcAVR4.vfmn", &assign_ExcAVR4_vfmn); - assign_map.emplace("cim:ExcAVR4.vfmx", &assign_ExcAVR4_vfmx); - assign_map.emplace("cim:ExcAVR4.vrmn", &assign_ExcAVR4_vrmn); - assign_map.emplace("cim:ExcAVR4.vrmx", &assign_ExcAVR4_vrmx); + assign_map.emplace("ExcAVR4.imul", &assign_ExcAVR4_imul); + assign_map.emplace("ExcAVR4.ka", &assign_ExcAVR4_ka); + assign_map.emplace("ExcAVR4.ke", &assign_ExcAVR4_ke); + assign_map.emplace("ExcAVR4.kif", &assign_ExcAVR4_kif); + assign_map.emplace("ExcAVR4.t1", &assign_ExcAVR4_t1); + assign_map.emplace("ExcAVR4.t1if", &assign_ExcAVR4_t1if); + assign_map.emplace("ExcAVR4.t2", &assign_ExcAVR4_t2); + assign_map.emplace("ExcAVR4.t3", &assign_ExcAVR4_t3); + assign_map.emplace("ExcAVR4.t4", &assign_ExcAVR4_t4); + assign_map.emplace("ExcAVR4.tif", &assign_ExcAVR4_tif); + assign_map.emplace("ExcAVR4.vfmn", &assign_ExcAVR4_vfmn); + assign_map.emplace("ExcAVR4.vfmx", &assign_ExcAVR4_vfmx); + assign_map.emplace("ExcAVR4.vrmn", &assign_ExcAVR4_vrmn); + assign_map.emplace("ExcAVR4.vrmx", &assign_ExcAVR4_vrmx); } void ExcAVR4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcAVR4::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR4.imul", &get_ExcAVR4_imul); - get_map.emplace("cim:ExcAVR4.ka", &get_ExcAVR4_ka); - get_map.emplace("cim:ExcAVR4.ke", &get_ExcAVR4_ke); - get_map.emplace("cim:ExcAVR4.kif", &get_ExcAVR4_kif); - get_map.emplace("cim:ExcAVR4.t1", &get_ExcAVR4_t1); - get_map.emplace("cim:ExcAVR4.t1if", &get_ExcAVR4_t1if); - get_map.emplace("cim:ExcAVR4.t2", &get_ExcAVR4_t2); - get_map.emplace("cim:ExcAVR4.t3", &get_ExcAVR4_t3); - get_map.emplace("cim:ExcAVR4.t4", &get_ExcAVR4_t4); - get_map.emplace("cim:ExcAVR4.tif", &get_ExcAVR4_tif); - get_map.emplace("cim:ExcAVR4.vfmn", &get_ExcAVR4_vfmn); - get_map.emplace("cim:ExcAVR4.vfmx", &get_ExcAVR4_vfmx); - get_map.emplace("cim:ExcAVR4.vrmn", &get_ExcAVR4_vrmn); - get_map.emplace("cim:ExcAVR4.vrmx", &get_ExcAVR4_vrmx); + get_map.emplace("ExcAVR4.imul", &get_ExcAVR4_imul); + get_map.emplace("ExcAVR4.ka", &get_ExcAVR4_ka); + get_map.emplace("ExcAVR4.ke", &get_ExcAVR4_ke); + get_map.emplace("ExcAVR4.kif", &get_ExcAVR4_kif); + get_map.emplace("ExcAVR4.t1", &get_ExcAVR4_t1); + get_map.emplace("ExcAVR4.t1if", &get_ExcAVR4_t1if); + get_map.emplace("ExcAVR4.t2", &get_ExcAVR4_t2); + get_map.emplace("ExcAVR4.t3", &get_ExcAVR4_t3); + get_map.emplace("ExcAVR4.t4", &get_ExcAVR4_t4); + get_map.emplace("ExcAVR4.tif", &get_ExcAVR4_tif); + get_map.emplace("ExcAVR4.vfmn", &get_ExcAVR4_vfmn); + get_map.emplace("ExcAVR4.vfmx", &get_ExcAVR4_vfmx); + get_map.emplace("ExcAVR4.vrmn", &get_ExcAVR4_vrmn); + get_map.emplace("ExcAVR4.vrmx", &get_ExcAVR4_vrmx); } void ExcAVR4::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcAVR4::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR4::declare() { return BaseClassDefiner(ExcAVR4::addConstructToMap, ExcAVR4::addPrimitiveAssignFnsToMap, ExcAVR4::addClassAssignFnsToMap, ExcAVR4::debugName); } +std::map ExcAVR4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR4_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR4.hpp b/CGMES_2.4.15_27JAN2020/ExcAVR4.hpp index f77d11a15..59a3b3ff1 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR4.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR4_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR5.cpp b/CGMES_2.4.15_27JAN2020/ExcAVR5.cpp index 3f6eb23fe..73598394a 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR5.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR5.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR5(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR5.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR5.rex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR5.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR5::ExcAVR5() {} ExcAVR5::~ExcAVR5() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR5::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR5::getClassNamespaceUrl() const { - { "cim:ExcAVR5.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR5.rex", { CGMESProfile::DY, } }, - { "cim:ExcAVR5.ta", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR5::getPossibleProfilesForClass() const +const std::string& ExcAVR5::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR5::getPossibleProfilesForAttributes() const +const std::list& ExcAVR5::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR5::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR5::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR5::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR5_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* ExcAVR5::debugString() const void ExcAVR5::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR5", &ExcAVR5_factory); + factory_map.emplace("ExcAVR5", &ExcAVR5_factory); } void ExcAVR5::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR5.ka", &assign_ExcAVR5_ka); - assign_map.emplace("cim:ExcAVR5.rex", &assign_ExcAVR5_rex); - assign_map.emplace("cim:ExcAVR5.ta", &assign_ExcAVR5_ta); + assign_map.emplace("ExcAVR5.ka", &assign_ExcAVR5_ka); + assign_map.emplace("ExcAVR5.rex", &assign_ExcAVR5_rex); + assign_map.emplace("ExcAVR5.ta", &assign_ExcAVR5_ta); } void ExcAVR5::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void ExcAVR5::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR5.ka", &get_ExcAVR5_ka); - get_map.emplace("cim:ExcAVR5.rex", &get_ExcAVR5_rex); - get_map.emplace("cim:ExcAVR5.ta", &get_ExcAVR5_ta); + get_map.emplace("ExcAVR5.ka", &get_ExcAVR5_ka); + get_map.emplace("ExcAVR5.rex", &get_ExcAVR5_rex); + get_map.emplace("ExcAVR5.ta", &get_ExcAVR5_ta); } void ExcAVR5::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void ExcAVR5::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR5::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR5" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR5::declare() { return BaseClassDefiner(ExcAVR5::addConstructToMap, ExcAVR5::addPrimitiveAssignFnsToMap, ExcAVR5::addClassAssignFnsToMap, ExcAVR5::debugName); } +std::map ExcAVR5::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR5_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR5.hpp b/CGMES_2.4.15_27JAN2020/ExcAVR5.hpp index ddd53d379..09af2c69c 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR5.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR5.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR5_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR7.cpp b/CGMES_2.4.15_27JAN2020/ExcAVR7.cpp index 3568b24b1..2361023c9 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR7.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR7.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR7(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR7.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR7::ExcAVR7() {} ExcAVR7::~ExcAVR7() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAVR7.a1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a2", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a4", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a6", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t6", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin5", { CGMESProfile::DY, } }, -}; - -std::list -ExcAVR7::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAVR7::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAVR7::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAVR7::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAVR7::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAVR7::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR7::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR7::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR7::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR7_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcAVR7::debugString() const void ExcAVR7::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR7", &ExcAVR7_factory); + factory_map.emplace("ExcAVR7", &ExcAVR7_factory); } void ExcAVR7::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR7.a1", &assign_ExcAVR7_a1); - assign_map.emplace("cim:ExcAVR7.a2", &assign_ExcAVR7_a2); - assign_map.emplace("cim:ExcAVR7.a3", &assign_ExcAVR7_a3); - assign_map.emplace("cim:ExcAVR7.a4", &assign_ExcAVR7_a4); - assign_map.emplace("cim:ExcAVR7.a5", &assign_ExcAVR7_a5); - assign_map.emplace("cim:ExcAVR7.a6", &assign_ExcAVR7_a6); - assign_map.emplace("cim:ExcAVR7.k1", &assign_ExcAVR7_k1); - assign_map.emplace("cim:ExcAVR7.k3", &assign_ExcAVR7_k3); - assign_map.emplace("cim:ExcAVR7.k5", &assign_ExcAVR7_k5); - assign_map.emplace("cim:ExcAVR7.t1", &assign_ExcAVR7_t1); - assign_map.emplace("cim:ExcAVR7.t2", &assign_ExcAVR7_t2); - assign_map.emplace("cim:ExcAVR7.t3", &assign_ExcAVR7_t3); - assign_map.emplace("cim:ExcAVR7.t4", &assign_ExcAVR7_t4); - assign_map.emplace("cim:ExcAVR7.t5", &assign_ExcAVR7_t5); - assign_map.emplace("cim:ExcAVR7.t6", &assign_ExcAVR7_t6); - assign_map.emplace("cim:ExcAVR7.vmax1", &assign_ExcAVR7_vmax1); - assign_map.emplace("cim:ExcAVR7.vmax3", &assign_ExcAVR7_vmax3); - assign_map.emplace("cim:ExcAVR7.vmax5", &assign_ExcAVR7_vmax5); - assign_map.emplace("cim:ExcAVR7.vmin1", &assign_ExcAVR7_vmin1); - assign_map.emplace("cim:ExcAVR7.vmin3", &assign_ExcAVR7_vmin3); - assign_map.emplace("cim:ExcAVR7.vmin5", &assign_ExcAVR7_vmin5); + assign_map.emplace("ExcAVR7.a1", &assign_ExcAVR7_a1); + assign_map.emplace("ExcAVR7.a2", &assign_ExcAVR7_a2); + assign_map.emplace("ExcAVR7.a3", &assign_ExcAVR7_a3); + assign_map.emplace("ExcAVR7.a4", &assign_ExcAVR7_a4); + assign_map.emplace("ExcAVR7.a5", &assign_ExcAVR7_a5); + assign_map.emplace("ExcAVR7.a6", &assign_ExcAVR7_a6); + assign_map.emplace("ExcAVR7.k1", &assign_ExcAVR7_k1); + assign_map.emplace("ExcAVR7.k3", &assign_ExcAVR7_k3); + assign_map.emplace("ExcAVR7.k5", &assign_ExcAVR7_k5); + assign_map.emplace("ExcAVR7.t1", &assign_ExcAVR7_t1); + assign_map.emplace("ExcAVR7.t2", &assign_ExcAVR7_t2); + assign_map.emplace("ExcAVR7.t3", &assign_ExcAVR7_t3); + assign_map.emplace("ExcAVR7.t4", &assign_ExcAVR7_t4); + assign_map.emplace("ExcAVR7.t5", &assign_ExcAVR7_t5); + assign_map.emplace("ExcAVR7.t6", &assign_ExcAVR7_t6); + assign_map.emplace("ExcAVR7.vmax1", &assign_ExcAVR7_vmax1); + assign_map.emplace("ExcAVR7.vmax3", &assign_ExcAVR7_vmax3); + assign_map.emplace("ExcAVR7.vmax5", &assign_ExcAVR7_vmax5); + assign_map.emplace("ExcAVR7.vmin1", &assign_ExcAVR7_vmin1); + assign_map.emplace("ExcAVR7.vmin3", &assign_ExcAVR7_vmin3); + assign_map.emplace("ExcAVR7.vmin5", &assign_ExcAVR7_vmin5); } void ExcAVR7::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcAVR7::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR7.a1", &get_ExcAVR7_a1); - get_map.emplace("cim:ExcAVR7.a2", &get_ExcAVR7_a2); - get_map.emplace("cim:ExcAVR7.a3", &get_ExcAVR7_a3); - get_map.emplace("cim:ExcAVR7.a4", &get_ExcAVR7_a4); - get_map.emplace("cim:ExcAVR7.a5", &get_ExcAVR7_a5); - get_map.emplace("cim:ExcAVR7.a6", &get_ExcAVR7_a6); - get_map.emplace("cim:ExcAVR7.k1", &get_ExcAVR7_k1); - get_map.emplace("cim:ExcAVR7.k3", &get_ExcAVR7_k3); - get_map.emplace("cim:ExcAVR7.k5", &get_ExcAVR7_k5); - get_map.emplace("cim:ExcAVR7.t1", &get_ExcAVR7_t1); - get_map.emplace("cim:ExcAVR7.t2", &get_ExcAVR7_t2); - get_map.emplace("cim:ExcAVR7.t3", &get_ExcAVR7_t3); - get_map.emplace("cim:ExcAVR7.t4", &get_ExcAVR7_t4); - get_map.emplace("cim:ExcAVR7.t5", &get_ExcAVR7_t5); - get_map.emplace("cim:ExcAVR7.t6", &get_ExcAVR7_t6); - get_map.emplace("cim:ExcAVR7.vmax1", &get_ExcAVR7_vmax1); - get_map.emplace("cim:ExcAVR7.vmax3", &get_ExcAVR7_vmax3); - get_map.emplace("cim:ExcAVR7.vmax5", &get_ExcAVR7_vmax5); - get_map.emplace("cim:ExcAVR7.vmin1", &get_ExcAVR7_vmin1); - get_map.emplace("cim:ExcAVR7.vmin3", &get_ExcAVR7_vmin3); - get_map.emplace("cim:ExcAVR7.vmin5", &get_ExcAVR7_vmin5); + get_map.emplace("ExcAVR7.a1", &get_ExcAVR7_a1); + get_map.emplace("ExcAVR7.a2", &get_ExcAVR7_a2); + get_map.emplace("ExcAVR7.a3", &get_ExcAVR7_a3); + get_map.emplace("ExcAVR7.a4", &get_ExcAVR7_a4); + get_map.emplace("ExcAVR7.a5", &get_ExcAVR7_a5); + get_map.emplace("ExcAVR7.a6", &get_ExcAVR7_a6); + get_map.emplace("ExcAVR7.k1", &get_ExcAVR7_k1); + get_map.emplace("ExcAVR7.k3", &get_ExcAVR7_k3); + get_map.emplace("ExcAVR7.k5", &get_ExcAVR7_k5); + get_map.emplace("ExcAVR7.t1", &get_ExcAVR7_t1); + get_map.emplace("ExcAVR7.t2", &get_ExcAVR7_t2); + get_map.emplace("ExcAVR7.t3", &get_ExcAVR7_t3); + get_map.emplace("ExcAVR7.t4", &get_ExcAVR7_t4); + get_map.emplace("ExcAVR7.t5", &get_ExcAVR7_t5); + get_map.emplace("ExcAVR7.t6", &get_ExcAVR7_t6); + get_map.emplace("ExcAVR7.vmax1", &get_ExcAVR7_vmax1); + get_map.emplace("ExcAVR7.vmax3", &get_ExcAVR7_vmax3); + get_map.emplace("ExcAVR7.vmax5", &get_ExcAVR7_vmax5); + get_map.emplace("ExcAVR7.vmin1", &get_ExcAVR7_vmin1); + get_map.emplace("ExcAVR7.vmin3", &get_ExcAVR7_vmin3); + get_map.emplace("ExcAVR7.vmin5", &get_ExcAVR7_vmin5); } void ExcAVR7::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcAVR7::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR7::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR7" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR7::declare() { return BaseClassDefiner(ExcAVR7::addConstructToMap, ExcAVR7::addPrimitiveAssignFnsToMap, ExcAVR7::addClassAssignFnsToMap, ExcAVR7::debugName); } +std::map ExcAVR7::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR7_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcAVR7.hpp b/CGMES_2.4.15_27JAN2020/ExcAVR7.hpp index 5bd945535..e618d90e9 100644 --- a/CGMES_2.4.15_27JAN2020/ExcAVR7.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcAVR7.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -92,8 +93,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -101,7 +109,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR7_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcBBC.cpp b/CGMES_2.4.15_27JAN2020/ExcBBC.cpp index 5ed4908bf..beaa25586 100644 --- a/CGMES_2.4.15_27JAN2020/ExcBBC.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcBBC.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcBBC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcBBC.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.switch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcBBC.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcBBC::ExcBBC() {} ExcBBC::~ExcBBC() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcBBC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcBBC::getClassNamespaceUrl() const { - { "cim:ExcBBC.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcBBC.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcBBC.k", { CGMESProfile::DY, } }, - { "cim:ExcBBC.switch", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t1", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t2", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t3", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t4", { CGMESProfile::DY, } }, - { "cim:ExcBBC.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcBBC.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcBBC.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcBBC::getPossibleProfilesForClass() const +const std::string& ExcBBC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcBBC::getPossibleProfilesForAttributes() const +const std::list& ExcBBC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcBBC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcBBC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcBBC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcBBC_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* ExcBBC::debugString() const void ExcBBC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcBBC", &ExcBBC_factory); + factory_map.emplace("ExcBBC", &ExcBBC_factory); } void ExcBBC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcBBC.efdmax", &assign_ExcBBC_efdmax); - assign_map.emplace("cim:ExcBBC.efdmin", &assign_ExcBBC_efdmin); - assign_map.emplace("cim:ExcBBC.k", &assign_ExcBBC_k); - assign_map.emplace("cim:ExcBBC.switch", &assign_ExcBBC_switch); - assign_map.emplace("cim:ExcBBC.t1", &assign_ExcBBC_t1); - assign_map.emplace("cim:ExcBBC.t2", &assign_ExcBBC_t2); - assign_map.emplace("cim:ExcBBC.t3", &assign_ExcBBC_t3); - assign_map.emplace("cim:ExcBBC.t4", &assign_ExcBBC_t4); - assign_map.emplace("cim:ExcBBC.vrmax", &assign_ExcBBC_vrmax); - assign_map.emplace("cim:ExcBBC.vrmin", &assign_ExcBBC_vrmin); - assign_map.emplace("cim:ExcBBC.xe", &assign_ExcBBC_xe); + assign_map.emplace("ExcBBC.efdmax", &assign_ExcBBC_efdmax); + assign_map.emplace("ExcBBC.efdmin", &assign_ExcBBC_efdmin); + assign_map.emplace("ExcBBC.k", &assign_ExcBBC_k); + assign_map.emplace("ExcBBC.switch", &assign_ExcBBC_switch); + assign_map.emplace("ExcBBC.t1", &assign_ExcBBC_t1); + assign_map.emplace("ExcBBC.t2", &assign_ExcBBC_t2); + assign_map.emplace("ExcBBC.t3", &assign_ExcBBC_t3); + assign_map.emplace("ExcBBC.t4", &assign_ExcBBC_t4); + assign_map.emplace("ExcBBC.vrmax", &assign_ExcBBC_vrmax); + assign_map.emplace("ExcBBC.vrmin", &assign_ExcBBC_vrmin); + assign_map.emplace("ExcBBC.xe", &assign_ExcBBC_xe); } void ExcBBC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void ExcBBC::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcBBC.efdmax", &get_ExcBBC_efdmax); - get_map.emplace("cim:ExcBBC.efdmin", &get_ExcBBC_efdmin); - get_map.emplace("cim:ExcBBC.k", &get_ExcBBC_k); - get_map.emplace("cim:ExcBBC.switch", &get_ExcBBC_switch); - get_map.emplace("cim:ExcBBC.t1", &get_ExcBBC_t1); - get_map.emplace("cim:ExcBBC.t2", &get_ExcBBC_t2); - get_map.emplace("cim:ExcBBC.t3", &get_ExcBBC_t3); - get_map.emplace("cim:ExcBBC.t4", &get_ExcBBC_t4); - get_map.emplace("cim:ExcBBC.vrmax", &get_ExcBBC_vrmax); - get_map.emplace("cim:ExcBBC.vrmin", &get_ExcBBC_vrmin); - get_map.emplace("cim:ExcBBC.xe", &get_ExcBBC_xe); + get_map.emplace("ExcBBC.efdmax", &get_ExcBBC_efdmax); + get_map.emplace("ExcBBC.efdmin", &get_ExcBBC_efdmin); + get_map.emplace("ExcBBC.k", &get_ExcBBC_k); + get_map.emplace("ExcBBC.switch", &get_ExcBBC_switch); + get_map.emplace("ExcBBC.t1", &get_ExcBBC_t1); + get_map.emplace("ExcBBC.t2", &get_ExcBBC_t2); + get_map.emplace("ExcBBC.t3", &get_ExcBBC_t3); + get_map.emplace("ExcBBC.t4", &get_ExcBBC_t4); + get_map.emplace("ExcBBC.vrmax", &get_ExcBBC_vrmax); + get_map.emplace("ExcBBC.vrmin", &get_ExcBBC_vrmin); + get_map.emplace("ExcBBC.xe", &get_ExcBBC_xe); } void ExcBBC::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void ExcBBC::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcBBC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcBBC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcBBC::declare() { return BaseClassDefiner(ExcBBC::addConstructToMap, ExcBBC::addPrimitiveAssignFnsToMap, ExcBBC::addClassAssignFnsToMap, ExcBBC::debugName); } +std::map ExcBBC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcBBC_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcBBC.hpp b/CGMES_2.4.15_27JAN2020/ExcBBC.hpp index 069831f27..2f9341949 100644 --- a/CGMES_2.4.15_27JAN2020/ExcBBC.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcBBC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcBBC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcCZ.cpp b/CGMES_2.4.15_27JAN2020/ExcCZ.cpp index 836b963d1..9d06d006c 100644 --- a/CGMES_2.4.15_27JAN2020/ExcCZ.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcCZ.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcCZ(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcCZ.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcCZ.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcCZ::ExcCZ() {} ExcCZ::~ExcCZ() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcCZ::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcCZ::getClassNamespaceUrl() const { - { "cim:ExcCZ.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcCZ.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ka", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ke", { CGMESProfile::DY, } }, - { "cim:ExcCZ.kp", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ta", { CGMESProfile::DY, } }, - { "cim:ExcCZ.tc", { CGMESProfile::DY, } }, - { "cim:ExcCZ.te", { CGMESProfile::DY, } }, - { "cim:ExcCZ.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcCZ.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcCZ::getPossibleProfilesForClass() const +const std::string& ExcCZ::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcCZ::getPossibleProfilesForAttributes() const +const std::list& ExcCZ::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcCZ::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcCZ::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcCZ::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcCZ_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcCZ::debugString() const void ExcCZ::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcCZ", &ExcCZ_factory); + factory_map.emplace("ExcCZ", &ExcCZ_factory); } void ExcCZ::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcCZ.efdmax", &assign_ExcCZ_efdmax); - assign_map.emplace("cim:ExcCZ.efdmin", &assign_ExcCZ_efdmin); - assign_map.emplace("cim:ExcCZ.ka", &assign_ExcCZ_ka); - assign_map.emplace("cim:ExcCZ.ke", &assign_ExcCZ_ke); - assign_map.emplace("cim:ExcCZ.kp", &assign_ExcCZ_kp); - assign_map.emplace("cim:ExcCZ.ta", &assign_ExcCZ_ta); - assign_map.emplace("cim:ExcCZ.tc", &assign_ExcCZ_tc); - assign_map.emplace("cim:ExcCZ.te", &assign_ExcCZ_te); - assign_map.emplace("cim:ExcCZ.vrmax", &assign_ExcCZ_vrmax); - assign_map.emplace("cim:ExcCZ.vrmin", &assign_ExcCZ_vrmin); + assign_map.emplace("ExcCZ.efdmax", &assign_ExcCZ_efdmax); + assign_map.emplace("ExcCZ.efdmin", &assign_ExcCZ_efdmin); + assign_map.emplace("ExcCZ.ka", &assign_ExcCZ_ka); + assign_map.emplace("ExcCZ.ke", &assign_ExcCZ_ke); + assign_map.emplace("ExcCZ.kp", &assign_ExcCZ_kp); + assign_map.emplace("ExcCZ.ta", &assign_ExcCZ_ta); + assign_map.emplace("ExcCZ.tc", &assign_ExcCZ_tc); + assign_map.emplace("ExcCZ.te", &assign_ExcCZ_te); + assign_map.emplace("ExcCZ.vrmax", &assign_ExcCZ_vrmax); + assign_map.emplace("ExcCZ.vrmin", &assign_ExcCZ_vrmin); } void ExcCZ::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcCZ::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcCZ.efdmax", &get_ExcCZ_efdmax); - get_map.emplace("cim:ExcCZ.efdmin", &get_ExcCZ_efdmin); - get_map.emplace("cim:ExcCZ.ka", &get_ExcCZ_ka); - get_map.emplace("cim:ExcCZ.ke", &get_ExcCZ_ke); - get_map.emplace("cim:ExcCZ.kp", &get_ExcCZ_kp); - get_map.emplace("cim:ExcCZ.ta", &get_ExcCZ_ta); - get_map.emplace("cim:ExcCZ.tc", &get_ExcCZ_tc); - get_map.emplace("cim:ExcCZ.te", &get_ExcCZ_te); - get_map.emplace("cim:ExcCZ.vrmax", &get_ExcCZ_vrmax); - get_map.emplace("cim:ExcCZ.vrmin", &get_ExcCZ_vrmin); + get_map.emplace("ExcCZ.efdmax", &get_ExcCZ_efdmax); + get_map.emplace("ExcCZ.efdmin", &get_ExcCZ_efdmin); + get_map.emplace("ExcCZ.ka", &get_ExcCZ_ka); + get_map.emplace("ExcCZ.ke", &get_ExcCZ_ke); + get_map.emplace("ExcCZ.kp", &get_ExcCZ_kp); + get_map.emplace("ExcCZ.ta", &get_ExcCZ_ta); + get_map.emplace("ExcCZ.tc", &get_ExcCZ_tc); + get_map.emplace("ExcCZ.te", &get_ExcCZ_te); + get_map.emplace("ExcCZ.vrmax", &get_ExcCZ_vrmax); + get_map.emplace("ExcCZ.vrmin", &get_ExcCZ_vrmin); } void ExcCZ::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcCZ::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcCZ::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcCZ" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcCZ::declare() { return BaseClassDefiner(ExcCZ::addConstructToMap, ExcCZ::addPrimitiveAssignFnsToMap, ExcCZ::addClassAssignFnsToMap, ExcCZ::debugName); } +std::map ExcCZ::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcCZ_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcCZ.hpp b/CGMES_2.4.15_27JAN2020/ExcCZ.hpp index 535e79794..315621089 100644 --- a/CGMES_2.4.15_27JAN2020/ExcCZ.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcCZ.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcCZ_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcDC1A.cpp b/CGMES_2.4.15_27JAN2020/ExcDC1A.cpp index 66f08bb53..4a2d815c9 100644 --- a/CGMES_2.4.15_27JAN2020/ExcDC1A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcDC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC1A.edfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC1A::ExcDC1A() {} ExcDC1A::~ExcDC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC1A::getClassNamespaceUrl() const { - { "cim:ExcDC1A.edfmax", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC1A::getPossibleProfilesForClass() const +const std::string& ExcDC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC1A::getPossibleProfilesForAttributes() const +const std::list& ExcDC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC1A_edfmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcDC1A::debugString() const void ExcDC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC1A", &ExcDC1A_factory); + factory_map.emplace("ExcDC1A", &ExcDC1A_factory); } void ExcDC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC1A.edfmax", &assign_ExcDC1A_edfmax); - assign_map.emplace("cim:ExcDC1A.efd1", &assign_ExcDC1A_efd1); - assign_map.emplace("cim:ExcDC1A.efd2", &assign_ExcDC1A_efd2); - assign_map.emplace("cim:ExcDC1A.efdmin", &assign_ExcDC1A_efdmin); - assign_map.emplace("cim:ExcDC1A.exclim", &assign_ExcDC1A_exclim); - assign_map.emplace("cim:ExcDC1A.ka", &assign_ExcDC1A_ka); - assign_map.emplace("cim:ExcDC1A.ke", &assign_ExcDC1A_ke); - assign_map.emplace("cim:ExcDC1A.kf", &assign_ExcDC1A_kf); - assign_map.emplace("cim:ExcDC1A.ks", &assign_ExcDC1A_ks); - assign_map.emplace("cim:ExcDC1A.seefd1", &assign_ExcDC1A_seefd1); - assign_map.emplace("cim:ExcDC1A.seefd2", &assign_ExcDC1A_seefd2); - assign_map.emplace("cim:ExcDC1A.ta", &assign_ExcDC1A_ta); - assign_map.emplace("cim:ExcDC1A.tb", &assign_ExcDC1A_tb); - assign_map.emplace("cim:ExcDC1A.tc", &assign_ExcDC1A_tc); - assign_map.emplace("cim:ExcDC1A.te", &assign_ExcDC1A_te); - assign_map.emplace("cim:ExcDC1A.tf", &assign_ExcDC1A_tf); - assign_map.emplace("cim:ExcDC1A.vrmax", &assign_ExcDC1A_vrmax); - assign_map.emplace("cim:ExcDC1A.vrmin", &assign_ExcDC1A_vrmin); + assign_map.emplace("ExcDC1A.edfmax", &assign_ExcDC1A_edfmax); + assign_map.emplace("ExcDC1A.efd1", &assign_ExcDC1A_efd1); + assign_map.emplace("ExcDC1A.efd2", &assign_ExcDC1A_efd2); + assign_map.emplace("ExcDC1A.efdmin", &assign_ExcDC1A_efdmin); + assign_map.emplace("ExcDC1A.exclim", &assign_ExcDC1A_exclim); + assign_map.emplace("ExcDC1A.ka", &assign_ExcDC1A_ka); + assign_map.emplace("ExcDC1A.ke", &assign_ExcDC1A_ke); + assign_map.emplace("ExcDC1A.kf", &assign_ExcDC1A_kf); + assign_map.emplace("ExcDC1A.ks", &assign_ExcDC1A_ks); + assign_map.emplace("ExcDC1A.seefd1", &assign_ExcDC1A_seefd1); + assign_map.emplace("ExcDC1A.seefd2", &assign_ExcDC1A_seefd2); + assign_map.emplace("ExcDC1A.ta", &assign_ExcDC1A_ta); + assign_map.emplace("ExcDC1A.tb", &assign_ExcDC1A_tb); + assign_map.emplace("ExcDC1A.tc", &assign_ExcDC1A_tc); + assign_map.emplace("ExcDC1A.te", &assign_ExcDC1A_te); + assign_map.emplace("ExcDC1A.tf", &assign_ExcDC1A_tf); + assign_map.emplace("ExcDC1A.vrmax", &assign_ExcDC1A_vrmax); + assign_map.emplace("ExcDC1A.vrmin", &assign_ExcDC1A_vrmin); } void ExcDC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcDC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC1A.edfmax", &get_ExcDC1A_edfmax); - get_map.emplace("cim:ExcDC1A.efd1", &get_ExcDC1A_efd1); - get_map.emplace("cim:ExcDC1A.efd2", &get_ExcDC1A_efd2); - get_map.emplace("cim:ExcDC1A.efdmin", &get_ExcDC1A_efdmin); - get_map.emplace("cim:ExcDC1A.exclim", &get_ExcDC1A_exclim); - get_map.emplace("cim:ExcDC1A.ka", &get_ExcDC1A_ka); - get_map.emplace("cim:ExcDC1A.ke", &get_ExcDC1A_ke); - get_map.emplace("cim:ExcDC1A.kf", &get_ExcDC1A_kf); - get_map.emplace("cim:ExcDC1A.ks", &get_ExcDC1A_ks); - get_map.emplace("cim:ExcDC1A.seefd1", &get_ExcDC1A_seefd1); - get_map.emplace("cim:ExcDC1A.seefd2", &get_ExcDC1A_seefd2); - get_map.emplace("cim:ExcDC1A.ta", &get_ExcDC1A_ta); - get_map.emplace("cim:ExcDC1A.tb", &get_ExcDC1A_tb); - get_map.emplace("cim:ExcDC1A.tc", &get_ExcDC1A_tc); - get_map.emplace("cim:ExcDC1A.te", &get_ExcDC1A_te); - get_map.emplace("cim:ExcDC1A.tf", &get_ExcDC1A_tf); - get_map.emplace("cim:ExcDC1A.vrmax", &get_ExcDC1A_vrmax); - get_map.emplace("cim:ExcDC1A.vrmin", &get_ExcDC1A_vrmin); + get_map.emplace("ExcDC1A.edfmax", &get_ExcDC1A_edfmax); + get_map.emplace("ExcDC1A.efd1", &get_ExcDC1A_efd1); + get_map.emplace("ExcDC1A.efd2", &get_ExcDC1A_efd2); + get_map.emplace("ExcDC1A.efdmin", &get_ExcDC1A_efdmin); + get_map.emplace("ExcDC1A.exclim", &get_ExcDC1A_exclim); + get_map.emplace("ExcDC1A.ka", &get_ExcDC1A_ka); + get_map.emplace("ExcDC1A.ke", &get_ExcDC1A_ke); + get_map.emplace("ExcDC1A.kf", &get_ExcDC1A_kf); + get_map.emplace("ExcDC1A.ks", &get_ExcDC1A_ks); + get_map.emplace("ExcDC1A.seefd1", &get_ExcDC1A_seefd1); + get_map.emplace("ExcDC1A.seefd2", &get_ExcDC1A_seefd2); + get_map.emplace("ExcDC1A.ta", &get_ExcDC1A_ta); + get_map.emplace("ExcDC1A.tb", &get_ExcDC1A_tb); + get_map.emplace("ExcDC1A.tc", &get_ExcDC1A_tc); + get_map.emplace("ExcDC1A.te", &get_ExcDC1A_te); + get_map.emplace("ExcDC1A.tf", &get_ExcDC1A_tf); + get_map.emplace("ExcDC1A.vrmax", &get_ExcDC1A_vrmax); + get_map.emplace("ExcDC1A.vrmin", &get_ExcDC1A_vrmin); } void ExcDC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcDC1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC1A::declare() { return BaseClassDefiner(ExcDC1A::addConstructToMap, ExcDC1A::addPrimitiveAssignFnsToMap, ExcDC1A::addClassAssignFnsToMap, ExcDC1A::debugName); } +std::map ExcDC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcDC1A.hpp b/CGMES_2.4.15_27JAN2020/ExcDC1A.hpp index 5cff88d2f..0fbae4e76 100644 --- a/CGMES_2.4.15_27JAN2020/ExcDC1A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcDC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcDC2A.cpp b/CGMES_2.4.15_27JAN2020/ExcDC2A.cpp index 79a98e618..0c4832f36 100644 --- a/CGMES_2.4.15_27JAN2020/ExcDC2A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcDC2A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC2A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vtlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC2A::ExcDC2A() {} ExcDC2A::~ExcDC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC2A::getClassNamespaceUrl() const { - { "cim:ExcDC2A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vtlim", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC2A::getPossibleProfilesForClass() const +const std::string& ExcDC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC2A::getPossibleProfilesForAttributes() const +const std::list& ExcDC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC2A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcDC2A::debugString() const void ExcDC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC2A", &ExcDC2A_factory); + factory_map.emplace("ExcDC2A", &ExcDC2A_factory); } void ExcDC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC2A.efd1", &assign_ExcDC2A_efd1); - assign_map.emplace("cim:ExcDC2A.efd2", &assign_ExcDC2A_efd2); - assign_map.emplace("cim:ExcDC2A.exclim", &assign_ExcDC2A_exclim); - assign_map.emplace("cim:ExcDC2A.ka", &assign_ExcDC2A_ka); - assign_map.emplace("cim:ExcDC2A.ke", &assign_ExcDC2A_ke); - assign_map.emplace("cim:ExcDC2A.kf", &assign_ExcDC2A_kf); - assign_map.emplace("cim:ExcDC2A.ks", &assign_ExcDC2A_ks); - assign_map.emplace("cim:ExcDC2A.seefd1", &assign_ExcDC2A_seefd1); - assign_map.emplace("cim:ExcDC2A.seefd2", &assign_ExcDC2A_seefd2); - assign_map.emplace("cim:ExcDC2A.ta", &assign_ExcDC2A_ta); - assign_map.emplace("cim:ExcDC2A.tb", &assign_ExcDC2A_tb); - assign_map.emplace("cim:ExcDC2A.tc", &assign_ExcDC2A_tc); - assign_map.emplace("cim:ExcDC2A.te", &assign_ExcDC2A_te); - assign_map.emplace("cim:ExcDC2A.tf", &assign_ExcDC2A_tf); - assign_map.emplace("cim:ExcDC2A.tf1", &assign_ExcDC2A_tf1); - assign_map.emplace("cim:ExcDC2A.vrmax", &assign_ExcDC2A_vrmax); - assign_map.emplace("cim:ExcDC2A.vrmin", &assign_ExcDC2A_vrmin); - assign_map.emplace("cim:ExcDC2A.vtlim", &assign_ExcDC2A_vtlim); + assign_map.emplace("ExcDC2A.efd1", &assign_ExcDC2A_efd1); + assign_map.emplace("ExcDC2A.efd2", &assign_ExcDC2A_efd2); + assign_map.emplace("ExcDC2A.exclim", &assign_ExcDC2A_exclim); + assign_map.emplace("ExcDC2A.ka", &assign_ExcDC2A_ka); + assign_map.emplace("ExcDC2A.ke", &assign_ExcDC2A_ke); + assign_map.emplace("ExcDC2A.kf", &assign_ExcDC2A_kf); + assign_map.emplace("ExcDC2A.ks", &assign_ExcDC2A_ks); + assign_map.emplace("ExcDC2A.seefd1", &assign_ExcDC2A_seefd1); + assign_map.emplace("ExcDC2A.seefd2", &assign_ExcDC2A_seefd2); + assign_map.emplace("ExcDC2A.ta", &assign_ExcDC2A_ta); + assign_map.emplace("ExcDC2A.tb", &assign_ExcDC2A_tb); + assign_map.emplace("ExcDC2A.tc", &assign_ExcDC2A_tc); + assign_map.emplace("ExcDC2A.te", &assign_ExcDC2A_te); + assign_map.emplace("ExcDC2A.tf", &assign_ExcDC2A_tf); + assign_map.emplace("ExcDC2A.tf1", &assign_ExcDC2A_tf1); + assign_map.emplace("ExcDC2A.vrmax", &assign_ExcDC2A_vrmax); + assign_map.emplace("ExcDC2A.vrmin", &assign_ExcDC2A_vrmin); + assign_map.emplace("ExcDC2A.vtlim", &assign_ExcDC2A_vtlim); } void ExcDC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcDC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC2A.efd1", &get_ExcDC2A_efd1); - get_map.emplace("cim:ExcDC2A.efd2", &get_ExcDC2A_efd2); - get_map.emplace("cim:ExcDC2A.exclim", &get_ExcDC2A_exclim); - get_map.emplace("cim:ExcDC2A.ka", &get_ExcDC2A_ka); - get_map.emplace("cim:ExcDC2A.ke", &get_ExcDC2A_ke); - get_map.emplace("cim:ExcDC2A.kf", &get_ExcDC2A_kf); - get_map.emplace("cim:ExcDC2A.ks", &get_ExcDC2A_ks); - get_map.emplace("cim:ExcDC2A.seefd1", &get_ExcDC2A_seefd1); - get_map.emplace("cim:ExcDC2A.seefd2", &get_ExcDC2A_seefd2); - get_map.emplace("cim:ExcDC2A.ta", &get_ExcDC2A_ta); - get_map.emplace("cim:ExcDC2A.tb", &get_ExcDC2A_tb); - get_map.emplace("cim:ExcDC2A.tc", &get_ExcDC2A_tc); - get_map.emplace("cim:ExcDC2A.te", &get_ExcDC2A_te); - get_map.emplace("cim:ExcDC2A.tf", &get_ExcDC2A_tf); - get_map.emplace("cim:ExcDC2A.tf1", &get_ExcDC2A_tf1); - get_map.emplace("cim:ExcDC2A.vrmax", &get_ExcDC2A_vrmax); - get_map.emplace("cim:ExcDC2A.vrmin", &get_ExcDC2A_vrmin); - get_map.emplace("cim:ExcDC2A.vtlim", &get_ExcDC2A_vtlim); + get_map.emplace("ExcDC2A.efd1", &get_ExcDC2A_efd1); + get_map.emplace("ExcDC2A.efd2", &get_ExcDC2A_efd2); + get_map.emplace("ExcDC2A.exclim", &get_ExcDC2A_exclim); + get_map.emplace("ExcDC2A.ka", &get_ExcDC2A_ka); + get_map.emplace("ExcDC2A.ke", &get_ExcDC2A_ke); + get_map.emplace("ExcDC2A.kf", &get_ExcDC2A_kf); + get_map.emplace("ExcDC2A.ks", &get_ExcDC2A_ks); + get_map.emplace("ExcDC2A.seefd1", &get_ExcDC2A_seefd1); + get_map.emplace("ExcDC2A.seefd2", &get_ExcDC2A_seefd2); + get_map.emplace("ExcDC2A.ta", &get_ExcDC2A_ta); + get_map.emplace("ExcDC2A.tb", &get_ExcDC2A_tb); + get_map.emplace("ExcDC2A.tc", &get_ExcDC2A_tc); + get_map.emplace("ExcDC2A.te", &get_ExcDC2A_te); + get_map.emplace("ExcDC2A.tf", &get_ExcDC2A_tf); + get_map.emplace("ExcDC2A.tf1", &get_ExcDC2A_tf1); + get_map.emplace("ExcDC2A.vrmax", &get_ExcDC2A_vrmax); + get_map.emplace("ExcDC2A.vrmin", &get_ExcDC2A_vrmin); + get_map.emplace("ExcDC2A.vtlim", &get_ExcDC2A_vtlim); } void ExcDC2A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcDC2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC2A::declare() { return BaseClassDefiner(ExcDC2A::addConstructToMap, ExcDC2A::addPrimitiveAssignFnsToMap, ExcDC2A::addClassAssignFnsToMap, ExcDC2A::debugName); } +std::map ExcDC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC2A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcDC2A.hpp b/CGMES_2.4.15_27JAN2020/ExcDC2A.hpp index e317a7ea0..a8516ce30 100644 --- a/CGMES_2.4.15_27JAN2020/ExcDC2A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcDC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC2A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcDC3A.cpp b/CGMES_2.4.15_27JAN2020/ExcDC3A.cpp index 71b995f87..26a084b8c 100644 --- a/CGMES_2.4.15_27JAN2020/ExcDC3A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcDC3A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC3A.edfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.kv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC3A::ExcDC3A() {} ExcDC3A::~ExcDC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC3A::getClassNamespaceUrl() const { - { "cim:ExcDC3A.edfmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdlim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.kv", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.trh", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC3A::getPossibleProfilesForClass() const +const std::string& ExcDC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC3A::getPossibleProfilesForAttributes() const +const std::list& ExcDC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC3A_edfmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcDC3A::debugString() const void ExcDC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC3A", &ExcDC3A_factory); + factory_map.emplace("ExcDC3A", &ExcDC3A_factory); } void ExcDC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC3A.edfmax", &assign_ExcDC3A_edfmax); - assign_map.emplace("cim:ExcDC3A.efd1", &assign_ExcDC3A_efd1); - assign_map.emplace("cim:ExcDC3A.efd2", &assign_ExcDC3A_efd2); - assign_map.emplace("cim:ExcDC3A.efdlim", &assign_ExcDC3A_efdlim); - assign_map.emplace("cim:ExcDC3A.efdmin", &assign_ExcDC3A_efdmin); - assign_map.emplace("cim:ExcDC3A.exclim", &assign_ExcDC3A_exclim); - assign_map.emplace("cim:ExcDC3A.ke", &assign_ExcDC3A_ke); - assign_map.emplace("cim:ExcDC3A.kr", &assign_ExcDC3A_kr); - assign_map.emplace("cim:ExcDC3A.ks", &assign_ExcDC3A_ks); - assign_map.emplace("cim:ExcDC3A.kv", &assign_ExcDC3A_kv); - assign_map.emplace("cim:ExcDC3A.seefd1", &assign_ExcDC3A_seefd1); - assign_map.emplace("cim:ExcDC3A.seefd2", &assign_ExcDC3A_seefd2); - assign_map.emplace("cim:ExcDC3A.te", &assign_ExcDC3A_te); - assign_map.emplace("cim:ExcDC3A.trh", &assign_ExcDC3A_trh); - assign_map.emplace("cim:ExcDC3A.vrmax", &assign_ExcDC3A_vrmax); - assign_map.emplace("cim:ExcDC3A.vrmin", &assign_ExcDC3A_vrmin); + assign_map.emplace("ExcDC3A.edfmax", &assign_ExcDC3A_edfmax); + assign_map.emplace("ExcDC3A.efd1", &assign_ExcDC3A_efd1); + assign_map.emplace("ExcDC3A.efd2", &assign_ExcDC3A_efd2); + assign_map.emplace("ExcDC3A.efdlim", &assign_ExcDC3A_efdlim); + assign_map.emplace("ExcDC3A.efdmin", &assign_ExcDC3A_efdmin); + assign_map.emplace("ExcDC3A.exclim", &assign_ExcDC3A_exclim); + assign_map.emplace("ExcDC3A.ke", &assign_ExcDC3A_ke); + assign_map.emplace("ExcDC3A.kr", &assign_ExcDC3A_kr); + assign_map.emplace("ExcDC3A.ks", &assign_ExcDC3A_ks); + assign_map.emplace("ExcDC3A.kv", &assign_ExcDC3A_kv); + assign_map.emplace("ExcDC3A.seefd1", &assign_ExcDC3A_seefd1); + assign_map.emplace("ExcDC3A.seefd2", &assign_ExcDC3A_seefd2); + assign_map.emplace("ExcDC3A.te", &assign_ExcDC3A_te); + assign_map.emplace("ExcDC3A.trh", &assign_ExcDC3A_trh); + assign_map.emplace("ExcDC3A.vrmax", &assign_ExcDC3A_vrmax); + assign_map.emplace("ExcDC3A.vrmin", &assign_ExcDC3A_vrmin); } void ExcDC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcDC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC3A.edfmax", &get_ExcDC3A_edfmax); - get_map.emplace("cim:ExcDC3A.efd1", &get_ExcDC3A_efd1); - get_map.emplace("cim:ExcDC3A.efd2", &get_ExcDC3A_efd2); - get_map.emplace("cim:ExcDC3A.efdlim", &get_ExcDC3A_efdlim); - get_map.emplace("cim:ExcDC3A.efdmin", &get_ExcDC3A_efdmin); - get_map.emplace("cim:ExcDC3A.exclim", &get_ExcDC3A_exclim); - get_map.emplace("cim:ExcDC3A.ke", &get_ExcDC3A_ke); - get_map.emplace("cim:ExcDC3A.kr", &get_ExcDC3A_kr); - get_map.emplace("cim:ExcDC3A.ks", &get_ExcDC3A_ks); - get_map.emplace("cim:ExcDC3A.kv", &get_ExcDC3A_kv); - get_map.emplace("cim:ExcDC3A.seefd1", &get_ExcDC3A_seefd1); - get_map.emplace("cim:ExcDC3A.seefd2", &get_ExcDC3A_seefd2); - get_map.emplace("cim:ExcDC3A.te", &get_ExcDC3A_te); - get_map.emplace("cim:ExcDC3A.trh", &get_ExcDC3A_trh); - get_map.emplace("cim:ExcDC3A.vrmax", &get_ExcDC3A_vrmax); - get_map.emplace("cim:ExcDC3A.vrmin", &get_ExcDC3A_vrmin); + get_map.emplace("ExcDC3A.edfmax", &get_ExcDC3A_edfmax); + get_map.emplace("ExcDC3A.efd1", &get_ExcDC3A_efd1); + get_map.emplace("ExcDC3A.efd2", &get_ExcDC3A_efd2); + get_map.emplace("ExcDC3A.efdlim", &get_ExcDC3A_efdlim); + get_map.emplace("ExcDC3A.efdmin", &get_ExcDC3A_efdmin); + get_map.emplace("ExcDC3A.exclim", &get_ExcDC3A_exclim); + get_map.emplace("ExcDC3A.ke", &get_ExcDC3A_ke); + get_map.emplace("ExcDC3A.kr", &get_ExcDC3A_kr); + get_map.emplace("ExcDC3A.ks", &get_ExcDC3A_ks); + get_map.emplace("ExcDC3A.kv", &get_ExcDC3A_kv); + get_map.emplace("ExcDC3A.seefd1", &get_ExcDC3A_seefd1); + get_map.emplace("ExcDC3A.seefd2", &get_ExcDC3A_seefd2); + get_map.emplace("ExcDC3A.te", &get_ExcDC3A_te); + get_map.emplace("ExcDC3A.trh", &get_ExcDC3A_trh); + get_map.emplace("ExcDC3A.vrmax", &get_ExcDC3A_vrmax); + get_map.emplace("ExcDC3A.vrmin", &get_ExcDC3A_vrmin); } void ExcDC3A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcDC3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC3A::declare() { return BaseClassDefiner(ExcDC3A::addConstructToMap, ExcDC3A::addPrimitiveAssignFnsToMap, ExcDC3A::addClassAssignFnsToMap, ExcDC3A::debugName); } +std::map ExcDC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC3A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcDC3A.hpp b/CGMES_2.4.15_27JAN2020/ExcDC3A.hpp index 53e5af5f0..944ed867e 100644 --- a/CGMES_2.4.15_27JAN2020/ExcDC3A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcDC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC3A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcDC3A1.cpp b/CGMES_2.4.15_27JAN2020/ExcDC3A1.cpp index 4d46a92b7..c81645b51 100644 --- a/CGMES_2.4.15_27JAN2020/ExcDC3A1.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcDC3A1.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC3A1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC3A1.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vb1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vblim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC3A1::ExcDC3A1() {} ExcDC3A1::~ExcDC3A1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC3A1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC3A1::getClassNamespaceUrl() const { - { "cim:ExcDC3A1.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ki", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.kp", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.te", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vb1max", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vblim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC3A1::getPossibleProfilesForClass() const +const std::string& ExcDC3A1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC3A1::getPossibleProfilesForAttributes() const +const std::list& ExcDC3A1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC3A1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC3A1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC3A1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC3A1_exclim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcDC3A1::debugString() const void ExcDC3A1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC3A1", &ExcDC3A1_factory); + factory_map.emplace("ExcDC3A1", &ExcDC3A1_factory); } void ExcDC3A1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC3A1.exclim", &assign_ExcDC3A1_exclim); - assign_map.emplace("cim:ExcDC3A1.ka", &assign_ExcDC3A1_ka); - assign_map.emplace("cim:ExcDC3A1.ke", &assign_ExcDC3A1_ke); - assign_map.emplace("cim:ExcDC3A1.kf", &assign_ExcDC3A1_kf); - assign_map.emplace("cim:ExcDC3A1.ki", &assign_ExcDC3A1_ki); - assign_map.emplace("cim:ExcDC3A1.kp", &assign_ExcDC3A1_kp); - assign_map.emplace("cim:ExcDC3A1.ta", &assign_ExcDC3A1_ta); - assign_map.emplace("cim:ExcDC3A1.te", &assign_ExcDC3A1_te); - assign_map.emplace("cim:ExcDC3A1.tf", &assign_ExcDC3A1_tf); - assign_map.emplace("cim:ExcDC3A1.vb1max", &assign_ExcDC3A1_vb1max); - assign_map.emplace("cim:ExcDC3A1.vblim", &assign_ExcDC3A1_vblim); - assign_map.emplace("cim:ExcDC3A1.vbmax", &assign_ExcDC3A1_vbmax); - assign_map.emplace("cim:ExcDC3A1.vrmax", &assign_ExcDC3A1_vrmax); - assign_map.emplace("cim:ExcDC3A1.vrmin", &assign_ExcDC3A1_vrmin); + assign_map.emplace("ExcDC3A1.exclim", &assign_ExcDC3A1_exclim); + assign_map.emplace("ExcDC3A1.ka", &assign_ExcDC3A1_ka); + assign_map.emplace("ExcDC3A1.ke", &assign_ExcDC3A1_ke); + assign_map.emplace("ExcDC3A1.kf", &assign_ExcDC3A1_kf); + assign_map.emplace("ExcDC3A1.ki", &assign_ExcDC3A1_ki); + assign_map.emplace("ExcDC3A1.kp", &assign_ExcDC3A1_kp); + assign_map.emplace("ExcDC3A1.ta", &assign_ExcDC3A1_ta); + assign_map.emplace("ExcDC3A1.te", &assign_ExcDC3A1_te); + assign_map.emplace("ExcDC3A1.tf", &assign_ExcDC3A1_tf); + assign_map.emplace("ExcDC3A1.vb1max", &assign_ExcDC3A1_vb1max); + assign_map.emplace("ExcDC3A1.vblim", &assign_ExcDC3A1_vblim); + assign_map.emplace("ExcDC3A1.vbmax", &assign_ExcDC3A1_vbmax); + assign_map.emplace("ExcDC3A1.vrmax", &assign_ExcDC3A1_vrmax); + assign_map.emplace("ExcDC3A1.vrmin", &assign_ExcDC3A1_vrmin); } void ExcDC3A1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcDC3A1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC3A1.exclim", &get_ExcDC3A1_exclim); - get_map.emplace("cim:ExcDC3A1.ka", &get_ExcDC3A1_ka); - get_map.emplace("cim:ExcDC3A1.ke", &get_ExcDC3A1_ke); - get_map.emplace("cim:ExcDC3A1.kf", &get_ExcDC3A1_kf); - get_map.emplace("cim:ExcDC3A1.ki", &get_ExcDC3A1_ki); - get_map.emplace("cim:ExcDC3A1.kp", &get_ExcDC3A1_kp); - get_map.emplace("cim:ExcDC3A1.ta", &get_ExcDC3A1_ta); - get_map.emplace("cim:ExcDC3A1.te", &get_ExcDC3A1_te); - get_map.emplace("cim:ExcDC3A1.tf", &get_ExcDC3A1_tf); - get_map.emplace("cim:ExcDC3A1.vb1max", &get_ExcDC3A1_vb1max); - get_map.emplace("cim:ExcDC3A1.vblim", &get_ExcDC3A1_vblim); - get_map.emplace("cim:ExcDC3A1.vbmax", &get_ExcDC3A1_vbmax); - get_map.emplace("cim:ExcDC3A1.vrmax", &get_ExcDC3A1_vrmax); - get_map.emplace("cim:ExcDC3A1.vrmin", &get_ExcDC3A1_vrmin); + get_map.emplace("ExcDC3A1.exclim", &get_ExcDC3A1_exclim); + get_map.emplace("ExcDC3A1.ka", &get_ExcDC3A1_ka); + get_map.emplace("ExcDC3A1.ke", &get_ExcDC3A1_ke); + get_map.emplace("ExcDC3A1.kf", &get_ExcDC3A1_kf); + get_map.emplace("ExcDC3A1.ki", &get_ExcDC3A1_ki); + get_map.emplace("ExcDC3A1.kp", &get_ExcDC3A1_kp); + get_map.emplace("ExcDC3A1.ta", &get_ExcDC3A1_ta); + get_map.emplace("ExcDC3A1.te", &get_ExcDC3A1_te); + get_map.emplace("ExcDC3A1.tf", &get_ExcDC3A1_tf); + get_map.emplace("ExcDC3A1.vb1max", &get_ExcDC3A1_vb1max); + get_map.emplace("ExcDC3A1.vblim", &get_ExcDC3A1_vblim); + get_map.emplace("ExcDC3A1.vbmax", &get_ExcDC3A1_vbmax); + get_map.emplace("ExcDC3A1.vrmax", &get_ExcDC3A1_vrmax); + get_map.emplace("ExcDC3A1.vrmin", &get_ExcDC3A1_vrmin); } void ExcDC3A1::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcDC3A1::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC3A1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC3A1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC3A1::declare() { return BaseClassDefiner(ExcDC3A1::addConstructToMap, ExcDC3A1::addPrimitiveAssignFnsToMap, ExcDC3A1::addClassAssignFnsToMap, ExcDC3A1::debugName); } +std::map ExcDC3A1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC3A1_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcDC3A1.hpp b/CGMES_2.4.15_27JAN2020/ExcDC3A1.hpp index e58f7643f..8b5d08474 100644 --- a/CGMES_2.4.15_27JAN2020/ExcDC3A1.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcDC3A1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC3A1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcELIN1.cpp b/CGMES_2.4.15_27JAN2020/ExcELIN1.cpp index 449d03fd8..288b8daee 100644 --- a/CGMES_2.4.15_27JAN2020/ExcELIN1.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcELIN1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcELIN1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcELIN1.dpnf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.efmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.efmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.smax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tfi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tnu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ts1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ts2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tsw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpnf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN1.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcELIN1::ExcELIN1() {} ExcELIN1::~ExcELIN1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcELIN1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcELIN1::getClassNamespaceUrl() const { - { "cim:ExcELIN1.dpnf", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.efmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.efmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ks1", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ks2", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.smax", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tfi", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tnu", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ts1", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ts2", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tsw", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpi", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpnf", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpu", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcELIN1::getPossibleProfilesForClass() const +const std::string& ExcELIN1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcELIN1::getPossibleProfilesForAttributes() const +const std::list& ExcELIN1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcELIN1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcELIN1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcELIN1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcELIN1_dpnf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcELIN1::debugString() const void ExcELIN1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcELIN1", &ExcELIN1_factory); + factory_map.emplace("ExcELIN1", &ExcELIN1_factory); } void ExcELIN1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcELIN1.dpnf", &assign_ExcELIN1_dpnf); - assign_map.emplace("cim:ExcELIN1.efmax", &assign_ExcELIN1_efmax); - assign_map.emplace("cim:ExcELIN1.efmin", &assign_ExcELIN1_efmin); - assign_map.emplace("cim:ExcELIN1.ks1", &assign_ExcELIN1_ks1); - assign_map.emplace("cim:ExcELIN1.ks2", &assign_ExcELIN1_ks2); - assign_map.emplace("cim:ExcELIN1.smax", &assign_ExcELIN1_smax); - assign_map.emplace("cim:ExcELIN1.tfi", &assign_ExcELIN1_tfi); - assign_map.emplace("cim:ExcELIN1.tnu", &assign_ExcELIN1_tnu); - assign_map.emplace("cim:ExcELIN1.ts1", &assign_ExcELIN1_ts1); - assign_map.emplace("cim:ExcELIN1.ts2", &assign_ExcELIN1_ts2); - assign_map.emplace("cim:ExcELIN1.tsw", &assign_ExcELIN1_tsw); - assign_map.emplace("cim:ExcELIN1.vpi", &assign_ExcELIN1_vpi); - assign_map.emplace("cim:ExcELIN1.vpnf", &assign_ExcELIN1_vpnf); - assign_map.emplace("cim:ExcELIN1.vpu", &assign_ExcELIN1_vpu); - assign_map.emplace("cim:ExcELIN1.xe", &assign_ExcELIN1_xe); + assign_map.emplace("ExcELIN1.dpnf", &assign_ExcELIN1_dpnf); + assign_map.emplace("ExcELIN1.efmax", &assign_ExcELIN1_efmax); + assign_map.emplace("ExcELIN1.efmin", &assign_ExcELIN1_efmin); + assign_map.emplace("ExcELIN1.ks1", &assign_ExcELIN1_ks1); + assign_map.emplace("ExcELIN1.ks2", &assign_ExcELIN1_ks2); + assign_map.emplace("ExcELIN1.smax", &assign_ExcELIN1_smax); + assign_map.emplace("ExcELIN1.tfi", &assign_ExcELIN1_tfi); + assign_map.emplace("ExcELIN1.tnu", &assign_ExcELIN1_tnu); + assign_map.emplace("ExcELIN1.ts1", &assign_ExcELIN1_ts1); + assign_map.emplace("ExcELIN1.ts2", &assign_ExcELIN1_ts2); + assign_map.emplace("ExcELIN1.tsw", &assign_ExcELIN1_tsw); + assign_map.emplace("ExcELIN1.vpi", &assign_ExcELIN1_vpi); + assign_map.emplace("ExcELIN1.vpnf", &assign_ExcELIN1_vpnf); + assign_map.emplace("ExcELIN1.vpu", &assign_ExcELIN1_vpu); + assign_map.emplace("ExcELIN1.xe", &assign_ExcELIN1_xe); } void ExcELIN1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void ExcELIN1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcELIN1.dpnf", &get_ExcELIN1_dpnf); - get_map.emplace("cim:ExcELIN1.efmax", &get_ExcELIN1_efmax); - get_map.emplace("cim:ExcELIN1.efmin", &get_ExcELIN1_efmin); - get_map.emplace("cim:ExcELIN1.ks1", &get_ExcELIN1_ks1); - get_map.emplace("cim:ExcELIN1.ks2", &get_ExcELIN1_ks2); - get_map.emplace("cim:ExcELIN1.smax", &get_ExcELIN1_smax); - get_map.emplace("cim:ExcELIN1.tfi", &get_ExcELIN1_tfi); - get_map.emplace("cim:ExcELIN1.tnu", &get_ExcELIN1_tnu); - get_map.emplace("cim:ExcELIN1.ts1", &get_ExcELIN1_ts1); - get_map.emplace("cim:ExcELIN1.ts2", &get_ExcELIN1_ts2); - get_map.emplace("cim:ExcELIN1.tsw", &get_ExcELIN1_tsw); - get_map.emplace("cim:ExcELIN1.vpi", &get_ExcELIN1_vpi); - get_map.emplace("cim:ExcELIN1.vpnf", &get_ExcELIN1_vpnf); - get_map.emplace("cim:ExcELIN1.vpu", &get_ExcELIN1_vpu); - get_map.emplace("cim:ExcELIN1.xe", &get_ExcELIN1_xe); + get_map.emplace("ExcELIN1.dpnf", &get_ExcELIN1_dpnf); + get_map.emplace("ExcELIN1.efmax", &get_ExcELIN1_efmax); + get_map.emplace("ExcELIN1.efmin", &get_ExcELIN1_efmin); + get_map.emplace("ExcELIN1.ks1", &get_ExcELIN1_ks1); + get_map.emplace("ExcELIN1.ks2", &get_ExcELIN1_ks2); + get_map.emplace("ExcELIN1.smax", &get_ExcELIN1_smax); + get_map.emplace("ExcELIN1.tfi", &get_ExcELIN1_tfi); + get_map.emplace("ExcELIN1.tnu", &get_ExcELIN1_tnu); + get_map.emplace("ExcELIN1.ts1", &get_ExcELIN1_ts1); + get_map.emplace("ExcELIN1.ts2", &get_ExcELIN1_ts2); + get_map.emplace("ExcELIN1.tsw", &get_ExcELIN1_tsw); + get_map.emplace("ExcELIN1.vpi", &get_ExcELIN1_vpi); + get_map.emplace("ExcELIN1.vpnf", &get_ExcELIN1_vpnf); + get_map.emplace("ExcELIN1.vpu", &get_ExcELIN1_vpu); + get_map.emplace("ExcELIN1.xe", &get_ExcELIN1_xe); } void ExcELIN1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void ExcELIN1::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcELIN1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcELIN1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcELIN1::declare() { return BaseClassDefiner(ExcELIN1::addConstructToMap, ExcELIN1::addPrimitiveAssignFnsToMap, ExcELIN1::addClassAssignFnsToMap, ExcELIN1::debugName); } +std::map ExcELIN1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcELIN1_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcELIN1.hpp b/CGMES_2.4.15_27JAN2020/ExcELIN1.hpp index 91e784ce6..83c524da0 100644 --- a/CGMES_2.4.15_27JAN2020/ExcELIN1.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcELIN1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcELIN1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcELIN2.cpp b/CGMES_2.4.15_27JAN2020/ExcELIN2.cpp index afd309820..27fe9469b 100644 --- a/CGMES_2.4.15_27JAN2020/ExcELIN2.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcELIN2.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcELIN2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcELIN2.efdbas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmax2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k1ec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.kd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ke2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ketb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.pid1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.te2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.tr4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.upmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.upmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcELIN2.xp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcELIN2::ExcELIN2() {} ExcELIN2::~ExcELIN2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcELIN2.efdbas", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmax2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k1ec", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k3", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.kd1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ke2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ketb", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.pid1max", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.seve1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.seve2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.tb1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.te", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.te2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti3", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.tr4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.upmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.upmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ve1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ve2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.xp", { CGMESProfile::DY, } }, -}; - -std::list -ExcELIN2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcELIN2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcELIN2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcELIN2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcELIN2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcELIN2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcELIN2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcELIN2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcELIN2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcELIN2_efdbas(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* ExcELIN2::debugString() const void ExcELIN2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcELIN2", &ExcELIN2_factory); + factory_map.emplace("ExcELIN2", &ExcELIN2_factory); } void ExcELIN2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcELIN2.efdbas", &assign_ExcELIN2_efdbas); - assign_map.emplace("cim:ExcELIN2.iefmax", &assign_ExcELIN2_iefmax); - assign_map.emplace("cim:ExcELIN2.iefmax2", &assign_ExcELIN2_iefmax2); - assign_map.emplace("cim:ExcELIN2.iefmin", &assign_ExcELIN2_iefmin); - assign_map.emplace("cim:ExcELIN2.k1", &assign_ExcELIN2_k1); - assign_map.emplace("cim:ExcELIN2.k1ec", &assign_ExcELIN2_k1ec); - assign_map.emplace("cim:ExcELIN2.k2", &assign_ExcELIN2_k2); - assign_map.emplace("cim:ExcELIN2.k3", &assign_ExcELIN2_k3); - assign_map.emplace("cim:ExcELIN2.k4", &assign_ExcELIN2_k4); - assign_map.emplace("cim:ExcELIN2.kd1", &assign_ExcELIN2_kd1); - assign_map.emplace("cim:ExcELIN2.ke2", &assign_ExcELIN2_ke2); - assign_map.emplace("cim:ExcELIN2.ketb", &assign_ExcELIN2_ketb); - assign_map.emplace("cim:ExcELIN2.pid1max", &assign_ExcELIN2_pid1max); - assign_map.emplace("cim:ExcELIN2.seve1", &assign_ExcELIN2_seve1); - assign_map.emplace("cim:ExcELIN2.seve2", &assign_ExcELIN2_seve2); - assign_map.emplace("cim:ExcELIN2.tb1", &assign_ExcELIN2_tb1); - assign_map.emplace("cim:ExcELIN2.te", &assign_ExcELIN2_te); - assign_map.emplace("cim:ExcELIN2.te2", &assign_ExcELIN2_te2); - assign_map.emplace("cim:ExcELIN2.ti1", &assign_ExcELIN2_ti1); - assign_map.emplace("cim:ExcELIN2.ti3", &assign_ExcELIN2_ti3); - assign_map.emplace("cim:ExcELIN2.ti4", &assign_ExcELIN2_ti4); - assign_map.emplace("cim:ExcELIN2.tr4", &assign_ExcELIN2_tr4); - assign_map.emplace("cim:ExcELIN2.upmax", &assign_ExcELIN2_upmax); - assign_map.emplace("cim:ExcELIN2.upmin", &assign_ExcELIN2_upmin); - assign_map.emplace("cim:ExcELIN2.ve1", &assign_ExcELIN2_ve1); - assign_map.emplace("cim:ExcELIN2.ve2", &assign_ExcELIN2_ve2); - assign_map.emplace("cim:ExcELIN2.xp", &assign_ExcELIN2_xp); + assign_map.emplace("ExcELIN2.efdbas", &assign_ExcELIN2_efdbas); + assign_map.emplace("ExcELIN2.iefmax", &assign_ExcELIN2_iefmax); + assign_map.emplace("ExcELIN2.iefmax2", &assign_ExcELIN2_iefmax2); + assign_map.emplace("ExcELIN2.iefmin", &assign_ExcELIN2_iefmin); + assign_map.emplace("ExcELIN2.k1", &assign_ExcELIN2_k1); + assign_map.emplace("ExcELIN2.k1ec", &assign_ExcELIN2_k1ec); + assign_map.emplace("ExcELIN2.k2", &assign_ExcELIN2_k2); + assign_map.emplace("ExcELIN2.k3", &assign_ExcELIN2_k3); + assign_map.emplace("ExcELIN2.k4", &assign_ExcELIN2_k4); + assign_map.emplace("ExcELIN2.kd1", &assign_ExcELIN2_kd1); + assign_map.emplace("ExcELIN2.ke2", &assign_ExcELIN2_ke2); + assign_map.emplace("ExcELIN2.ketb", &assign_ExcELIN2_ketb); + assign_map.emplace("ExcELIN2.pid1max", &assign_ExcELIN2_pid1max); + assign_map.emplace("ExcELIN2.seve1", &assign_ExcELIN2_seve1); + assign_map.emplace("ExcELIN2.seve2", &assign_ExcELIN2_seve2); + assign_map.emplace("ExcELIN2.tb1", &assign_ExcELIN2_tb1); + assign_map.emplace("ExcELIN2.te", &assign_ExcELIN2_te); + assign_map.emplace("ExcELIN2.te2", &assign_ExcELIN2_te2); + assign_map.emplace("ExcELIN2.ti1", &assign_ExcELIN2_ti1); + assign_map.emplace("ExcELIN2.ti3", &assign_ExcELIN2_ti3); + assign_map.emplace("ExcELIN2.ti4", &assign_ExcELIN2_ti4); + assign_map.emplace("ExcELIN2.tr4", &assign_ExcELIN2_tr4); + assign_map.emplace("ExcELIN2.upmax", &assign_ExcELIN2_upmax); + assign_map.emplace("ExcELIN2.upmin", &assign_ExcELIN2_upmin); + assign_map.emplace("ExcELIN2.ve1", &assign_ExcELIN2_ve1); + assign_map.emplace("ExcELIN2.ve2", &assign_ExcELIN2_ve2); + assign_map.emplace("ExcELIN2.xp", &assign_ExcELIN2_xp); } void ExcELIN2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,33 +929,33 @@ void ExcELIN2::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcELIN2.efdbas", &get_ExcELIN2_efdbas); - get_map.emplace("cim:ExcELIN2.iefmax", &get_ExcELIN2_iefmax); - get_map.emplace("cim:ExcELIN2.iefmax2", &get_ExcELIN2_iefmax2); - get_map.emplace("cim:ExcELIN2.iefmin", &get_ExcELIN2_iefmin); - get_map.emplace("cim:ExcELIN2.k1", &get_ExcELIN2_k1); - get_map.emplace("cim:ExcELIN2.k1ec", &get_ExcELIN2_k1ec); - get_map.emplace("cim:ExcELIN2.k2", &get_ExcELIN2_k2); - get_map.emplace("cim:ExcELIN2.k3", &get_ExcELIN2_k3); - get_map.emplace("cim:ExcELIN2.k4", &get_ExcELIN2_k4); - get_map.emplace("cim:ExcELIN2.kd1", &get_ExcELIN2_kd1); - get_map.emplace("cim:ExcELIN2.ke2", &get_ExcELIN2_ke2); - get_map.emplace("cim:ExcELIN2.ketb", &get_ExcELIN2_ketb); - get_map.emplace("cim:ExcELIN2.pid1max", &get_ExcELIN2_pid1max); - get_map.emplace("cim:ExcELIN2.seve1", &get_ExcELIN2_seve1); - get_map.emplace("cim:ExcELIN2.seve2", &get_ExcELIN2_seve2); - get_map.emplace("cim:ExcELIN2.tb1", &get_ExcELIN2_tb1); - get_map.emplace("cim:ExcELIN2.te", &get_ExcELIN2_te); - get_map.emplace("cim:ExcELIN2.te2", &get_ExcELIN2_te2); - get_map.emplace("cim:ExcELIN2.ti1", &get_ExcELIN2_ti1); - get_map.emplace("cim:ExcELIN2.ti3", &get_ExcELIN2_ti3); - get_map.emplace("cim:ExcELIN2.ti4", &get_ExcELIN2_ti4); - get_map.emplace("cim:ExcELIN2.tr4", &get_ExcELIN2_tr4); - get_map.emplace("cim:ExcELIN2.upmax", &get_ExcELIN2_upmax); - get_map.emplace("cim:ExcELIN2.upmin", &get_ExcELIN2_upmin); - get_map.emplace("cim:ExcELIN2.ve1", &get_ExcELIN2_ve1); - get_map.emplace("cim:ExcELIN2.ve2", &get_ExcELIN2_ve2); - get_map.emplace("cim:ExcELIN2.xp", &get_ExcELIN2_xp); + get_map.emplace("ExcELIN2.efdbas", &get_ExcELIN2_efdbas); + get_map.emplace("ExcELIN2.iefmax", &get_ExcELIN2_iefmax); + get_map.emplace("ExcELIN2.iefmax2", &get_ExcELIN2_iefmax2); + get_map.emplace("ExcELIN2.iefmin", &get_ExcELIN2_iefmin); + get_map.emplace("ExcELIN2.k1", &get_ExcELIN2_k1); + get_map.emplace("ExcELIN2.k1ec", &get_ExcELIN2_k1ec); + get_map.emplace("ExcELIN2.k2", &get_ExcELIN2_k2); + get_map.emplace("ExcELIN2.k3", &get_ExcELIN2_k3); + get_map.emplace("ExcELIN2.k4", &get_ExcELIN2_k4); + get_map.emplace("ExcELIN2.kd1", &get_ExcELIN2_kd1); + get_map.emplace("ExcELIN2.ke2", &get_ExcELIN2_ke2); + get_map.emplace("ExcELIN2.ketb", &get_ExcELIN2_ketb); + get_map.emplace("ExcELIN2.pid1max", &get_ExcELIN2_pid1max); + get_map.emplace("ExcELIN2.seve1", &get_ExcELIN2_seve1); + get_map.emplace("ExcELIN2.seve2", &get_ExcELIN2_seve2); + get_map.emplace("ExcELIN2.tb1", &get_ExcELIN2_tb1); + get_map.emplace("ExcELIN2.te", &get_ExcELIN2_te); + get_map.emplace("ExcELIN2.te2", &get_ExcELIN2_te2); + get_map.emplace("ExcELIN2.ti1", &get_ExcELIN2_ti1); + get_map.emplace("ExcELIN2.ti3", &get_ExcELIN2_ti3); + get_map.emplace("ExcELIN2.ti4", &get_ExcELIN2_ti4); + get_map.emplace("ExcELIN2.tr4", &get_ExcELIN2_tr4); + get_map.emplace("ExcELIN2.upmax", &get_ExcELIN2_upmax); + get_map.emplace("ExcELIN2.upmin", &get_ExcELIN2_upmin); + get_map.emplace("ExcELIN2.ve1", &get_ExcELIN2_ve1); + get_map.emplace("ExcELIN2.ve2", &get_ExcELIN2_ve2); + get_map.emplace("ExcELIN2.xp", &get_ExcELIN2_xp); } void ExcELIN2::addClassGetFnsToMap(std::map& get_map) const @@ -936,11 +968,25 @@ void ExcELIN2::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcELIN2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcELIN2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcELIN2::declare() { return BaseClassDefiner(ExcELIN2::addConstructToMap, ExcELIN2::addPrimitiveAssignFnsToMap, ExcELIN2::addClassAssignFnsToMap, ExcELIN2::debugName); } +std::map ExcELIN2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcELIN2_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcELIN2.hpp b/CGMES_2.4.15_27JAN2020/ExcELIN2.hpp index b68685963..91d08a67e 100644 --- a/CGMES_2.4.15_27JAN2020/ExcELIN2.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcELIN2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -110,8 +111,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -119,7 +127,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcELIN2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcHU.cpp b/CGMES_2.4.15_27JAN2020/ExcHU.cpp index d00bf89d8..00ef6e590 100644 --- a/CGMES_2.4.15_27JAN2020/ExcHU.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcHU.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcHU(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcHU.ae", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ai", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.atr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.imax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.imin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcHU.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcHU::ExcHU() {} ExcHU::~ExcHU() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcHU::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcHU::getClassNamespaceUrl() const { - { "cim:ExcHU.ae", { CGMESProfile::DY, } }, - { "cim:ExcHU.ai", { CGMESProfile::DY, } }, - { "cim:ExcHU.atr", { CGMESProfile::DY, } }, - { "cim:ExcHU.emax", { CGMESProfile::DY, } }, - { "cim:ExcHU.emin", { CGMESProfile::DY, } }, - { "cim:ExcHU.imax", { CGMESProfile::DY, } }, - { "cim:ExcHU.imin", { CGMESProfile::DY, } }, - { "cim:ExcHU.ke", { CGMESProfile::DY, } }, - { "cim:ExcHU.ki", { CGMESProfile::DY, } }, - { "cim:ExcHU.te", { CGMESProfile::DY, } }, - { "cim:ExcHU.ti", { CGMESProfile::DY, } }, - { "cim:ExcHU.tr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcHU::getPossibleProfilesForClass() const +const std::string& ExcHU::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcHU::getPossibleProfilesForAttributes() const +const std::list& ExcHU::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcHU::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcHU::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcHU::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcHU_ae(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcHU::debugString() const void ExcHU::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcHU", &ExcHU_factory); + factory_map.emplace("ExcHU", &ExcHU_factory); } void ExcHU::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcHU.ae", &assign_ExcHU_ae); - assign_map.emplace("cim:ExcHU.ai", &assign_ExcHU_ai); - assign_map.emplace("cim:ExcHU.atr", &assign_ExcHU_atr); - assign_map.emplace("cim:ExcHU.emax", &assign_ExcHU_emax); - assign_map.emplace("cim:ExcHU.emin", &assign_ExcHU_emin); - assign_map.emplace("cim:ExcHU.imax", &assign_ExcHU_imax); - assign_map.emplace("cim:ExcHU.imin", &assign_ExcHU_imin); - assign_map.emplace("cim:ExcHU.ke", &assign_ExcHU_ke); - assign_map.emplace("cim:ExcHU.ki", &assign_ExcHU_ki); - assign_map.emplace("cim:ExcHU.te", &assign_ExcHU_te); - assign_map.emplace("cim:ExcHU.ti", &assign_ExcHU_ti); - assign_map.emplace("cim:ExcHU.tr", &assign_ExcHU_tr); + assign_map.emplace("ExcHU.ae", &assign_ExcHU_ae); + assign_map.emplace("ExcHU.ai", &assign_ExcHU_ai); + assign_map.emplace("ExcHU.atr", &assign_ExcHU_atr); + assign_map.emplace("ExcHU.emax", &assign_ExcHU_emax); + assign_map.emplace("ExcHU.emin", &assign_ExcHU_emin); + assign_map.emplace("ExcHU.imax", &assign_ExcHU_imax); + assign_map.emplace("ExcHU.imin", &assign_ExcHU_imin); + assign_map.emplace("ExcHU.ke", &assign_ExcHU_ke); + assign_map.emplace("ExcHU.ki", &assign_ExcHU_ki); + assign_map.emplace("ExcHU.te", &assign_ExcHU_te); + assign_map.emplace("ExcHU.ti", &assign_ExcHU_ti); + assign_map.emplace("ExcHU.tr", &assign_ExcHU_tr); } void ExcHU::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcHU::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcHU.ae", &get_ExcHU_ae); - get_map.emplace("cim:ExcHU.ai", &get_ExcHU_ai); - get_map.emplace("cim:ExcHU.atr", &get_ExcHU_atr); - get_map.emplace("cim:ExcHU.emax", &get_ExcHU_emax); - get_map.emplace("cim:ExcHU.emin", &get_ExcHU_emin); - get_map.emplace("cim:ExcHU.imax", &get_ExcHU_imax); - get_map.emplace("cim:ExcHU.imin", &get_ExcHU_imin); - get_map.emplace("cim:ExcHU.ke", &get_ExcHU_ke); - get_map.emplace("cim:ExcHU.ki", &get_ExcHU_ki); - get_map.emplace("cim:ExcHU.te", &get_ExcHU_te); - get_map.emplace("cim:ExcHU.ti", &get_ExcHU_ti); - get_map.emplace("cim:ExcHU.tr", &get_ExcHU_tr); + get_map.emplace("ExcHU.ae", &get_ExcHU_ae); + get_map.emplace("ExcHU.ai", &get_ExcHU_ai); + get_map.emplace("ExcHU.atr", &get_ExcHU_atr); + get_map.emplace("ExcHU.emax", &get_ExcHU_emax); + get_map.emplace("ExcHU.emin", &get_ExcHU_emin); + get_map.emplace("ExcHU.imax", &get_ExcHU_imax); + get_map.emplace("ExcHU.imin", &get_ExcHU_imin); + get_map.emplace("ExcHU.ke", &get_ExcHU_ke); + get_map.emplace("ExcHU.ki", &get_ExcHU_ki); + get_map.emplace("ExcHU.te", &get_ExcHU_te); + get_map.emplace("ExcHU.ti", &get_ExcHU_ti); + get_map.emplace("ExcHU.tr", &get_ExcHU_tr); } void ExcHU::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcHU::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcHU::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcHU" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcHU::declare() { return BaseClassDefiner(ExcHU::addConstructToMap, ExcHU::addPrimitiveAssignFnsToMap, ExcHU::addClassAssignFnsToMap, ExcHU::debugName); } +std::map ExcHU::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcHU_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcHU.hpp b/CGMES_2.4.15_27JAN2020/ExcHU.hpp index 6e31eb84e..4f79f01b5 100644 --- a/CGMES_2.4.15_27JAN2020/ExcHU.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcHU.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcHU_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.cpp index 9b4889e3d..84179ef44 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC1A::ExcIEEEAC1A() {} ExcIEEEAC1A::~ExcIEEEAC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC1A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC1A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC1A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC1A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcIEEEAC1A::debugString() const void ExcIEEEAC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC1A", &ExcIEEEAC1A_factory); + factory_map.emplace("ExcIEEEAC1A", &ExcIEEEAC1A_factory); } void ExcIEEEAC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC1A.ka", &assign_ExcIEEEAC1A_ka); - assign_map.emplace("cim:ExcIEEEAC1A.kc", &assign_ExcIEEEAC1A_kc); - assign_map.emplace("cim:ExcIEEEAC1A.kd", &assign_ExcIEEEAC1A_kd); - assign_map.emplace("cim:ExcIEEEAC1A.ke", &assign_ExcIEEEAC1A_ke); - assign_map.emplace("cim:ExcIEEEAC1A.kf", &assign_ExcIEEEAC1A_kf); - assign_map.emplace("cim:ExcIEEEAC1A.seve1", &assign_ExcIEEEAC1A_seve1); - assign_map.emplace("cim:ExcIEEEAC1A.seve2", &assign_ExcIEEEAC1A_seve2); - assign_map.emplace("cim:ExcIEEEAC1A.ta", &assign_ExcIEEEAC1A_ta); - assign_map.emplace("cim:ExcIEEEAC1A.tb", &assign_ExcIEEEAC1A_tb); - assign_map.emplace("cim:ExcIEEEAC1A.tc", &assign_ExcIEEEAC1A_tc); - assign_map.emplace("cim:ExcIEEEAC1A.te", &assign_ExcIEEEAC1A_te); - assign_map.emplace("cim:ExcIEEEAC1A.tf", &assign_ExcIEEEAC1A_tf); - assign_map.emplace("cim:ExcIEEEAC1A.vamax", &assign_ExcIEEEAC1A_vamax); - assign_map.emplace("cim:ExcIEEEAC1A.vamin", &assign_ExcIEEEAC1A_vamin); - assign_map.emplace("cim:ExcIEEEAC1A.ve1", &assign_ExcIEEEAC1A_ve1); - assign_map.emplace("cim:ExcIEEEAC1A.ve2", &assign_ExcIEEEAC1A_ve2); - assign_map.emplace("cim:ExcIEEEAC1A.vrmax", &assign_ExcIEEEAC1A_vrmax); - assign_map.emplace("cim:ExcIEEEAC1A.vrmin", &assign_ExcIEEEAC1A_vrmin); + assign_map.emplace("ExcIEEEAC1A.ka", &assign_ExcIEEEAC1A_ka); + assign_map.emplace("ExcIEEEAC1A.kc", &assign_ExcIEEEAC1A_kc); + assign_map.emplace("ExcIEEEAC1A.kd", &assign_ExcIEEEAC1A_kd); + assign_map.emplace("ExcIEEEAC1A.ke", &assign_ExcIEEEAC1A_ke); + assign_map.emplace("ExcIEEEAC1A.kf", &assign_ExcIEEEAC1A_kf); + assign_map.emplace("ExcIEEEAC1A.seve1", &assign_ExcIEEEAC1A_seve1); + assign_map.emplace("ExcIEEEAC1A.seve2", &assign_ExcIEEEAC1A_seve2); + assign_map.emplace("ExcIEEEAC1A.ta", &assign_ExcIEEEAC1A_ta); + assign_map.emplace("ExcIEEEAC1A.tb", &assign_ExcIEEEAC1A_tb); + assign_map.emplace("ExcIEEEAC1A.tc", &assign_ExcIEEEAC1A_tc); + assign_map.emplace("ExcIEEEAC1A.te", &assign_ExcIEEEAC1A_te); + assign_map.emplace("ExcIEEEAC1A.tf", &assign_ExcIEEEAC1A_tf); + assign_map.emplace("ExcIEEEAC1A.vamax", &assign_ExcIEEEAC1A_vamax); + assign_map.emplace("ExcIEEEAC1A.vamin", &assign_ExcIEEEAC1A_vamin); + assign_map.emplace("ExcIEEEAC1A.ve1", &assign_ExcIEEEAC1A_ve1); + assign_map.emplace("ExcIEEEAC1A.ve2", &assign_ExcIEEEAC1A_ve2); + assign_map.emplace("ExcIEEEAC1A.vrmax", &assign_ExcIEEEAC1A_vrmax); + assign_map.emplace("ExcIEEEAC1A.vrmin", &assign_ExcIEEEAC1A_vrmin); } void ExcIEEEAC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcIEEEAC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC1A.ka", &get_ExcIEEEAC1A_ka); - get_map.emplace("cim:ExcIEEEAC1A.kc", &get_ExcIEEEAC1A_kc); - get_map.emplace("cim:ExcIEEEAC1A.kd", &get_ExcIEEEAC1A_kd); - get_map.emplace("cim:ExcIEEEAC1A.ke", &get_ExcIEEEAC1A_ke); - get_map.emplace("cim:ExcIEEEAC1A.kf", &get_ExcIEEEAC1A_kf); - get_map.emplace("cim:ExcIEEEAC1A.seve1", &get_ExcIEEEAC1A_seve1); - get_map.emplace("cim:ExcIEEEAC1A.seve2", &get_ExcIEEEAC1A_seve2); - get_map.emplace("cim:ExcIEEEAC1A.ta", &get_ExcIEEEAC1A_ta); - get_map.emplace("cim:ExcIEEEAC1A.tb", &get_ExcIEEEAC1A_tb); - get_map.emplace("cim:ExcIEEEAC1A.tc", &get_ExcIEEEAC1A_tc); - get_map.emplace("cim:ExcIEEEAC1A.te", &get_ExcIEEEAC1A_te); - get_map.emplace("cim:ExcIEEEAC1A.tf", &get_ExcIEEEAC1A_tf); - get_map.emplace("cim:ExcIEEEAC1A.vamax", &get_ExcIEEEAC1A_vamax); - get_map.emplace("cim:ExcIEEEAC1A.vamin", &get_ExcIEEEAC1A_vamin); - get_map.emplace("cim:ExcIEEEAC1A.ve1", &get_ExcIEEEAC1A_ve1); - get_map.emplace("cim:ExcIEEEAC1A.ve2", &get_ExcIEEEAC1A_ve2); - get_map.emplace("cim:ExcIEEEAC1A.vrmax", &get_ExcIEEEAC1A_vrmax); - get_map.emplace("cim:ExcIEEEAC1A.vrmin", &get_ExcIEEEAC1A_vrmin); + get_map.emplace("ExcIEEEAC1A.ka", &get_ExcIEEEAC1A_ka); + get_map.emplace("ExcIEEEAC1A.kc", &get_ExcIEEEAC1A_kc); + get_map.emplace("ExcIEEEAC1A.kd", &get_ExcIEEEAC1A_kd); + get_map.emplace("ExcIEEEAC1A.ke", &get_ExcIEEEAC1A_ke); + get_map.emplace("ExcIEEEAC1A.kf", &get_ExcIEEEAC1A_kf); + get_map.emplace("ExcIEEEAC1A.seve1", &get_ExcIEEEAC1A_seve1); + get_map.emplace("ExcIEEEAC1A.seve2", &get_ExcIEEEAC1A_seve2); + get_map.emplace("ExcIEEEAC1A.ta", &get_ExcIEEEAC1A_ta); + get_map.emplace("ExcIEEEAC1A.tb", &get_ExcIEEEAC1A_tb); + get_map.emplace("ExcIEEEAC1A.tc", &get_ExcIEEEAC1A_tc); + get_map.emplace("ExcIEEEAC1A.te", &get_ExcIEEEAC1A_te); + get_map.emplace("ExcIEEEAC1A.tf", &get_ExcIEEEAC1A_tf); + get_map.emplace("ExcIEEEAC1A.vamax", &get_ExcIEEEAC1A_vamax); + get_map.emplace("ExcIEEEAC1A.vamin", &get_ExcIEEEAC1A_vamin); + get_map.emplace("ExcIEEEAC1A.ve1", &get_ExcIEEEAC1A_ve1); + get_map.emplace("ExcIEEEAC1A.ve2", &get_ExcIEEEAC1A_ve2); + get_map.emplace("ExcIEEEAC1A.vrmax", &get_ExcIEEEAC1A_vrmax); + get_map.emplace("ExcIEEEAC1A.vrmin", &get_ExcIEEEAC1A_vrmin); } void ExcIEEEAC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcIEEEAC1A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC1A::declare() { return BaseClassDefiner(ExcIEEEAC1A::addConstructToMap, ExcIEEEAC1A::addPrimitiveAssignFnsToMap, ExcIEEEAC1A::addClassAssignFnsToMap, ExcIEEEAC1A::debugName); } +std::map ExcIEEEAC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.hpp index a3d32c72f..029fa51b8 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.cpp index a6f4da576..5531f988c 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC2A::ExcIEEEAC2A() {} ExcIEEEAC2A::~ExcIEEEAC2A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC2A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC2A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC2A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC2A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC2A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC2A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC2A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcIEEEAC2A::debugString() const void ExcIEEEAC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC2A", &ExcIEEEAC2A_factory); + factory_map.emplace("ExcIEEEAC2A", &ExcIEEEAC2A_factory); } void ExcIEEEAC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC2A.ka", &assign_ExcIEEEAC2A_ka); - assign_map.emplace("cim:ExcIEEEAC2A.kb", &assign_ExcIEEEAC2A_kb); - assign_map.emplace("cim:ExcIEEEAC2A.kc", &assign_ExcIEEEAC2A_kc); - assign_map.emplace("cim:ExcIEEEAC2A.kd", &assign_ExcIEEEAC2A_kd); - assign_map.emplace("cim:ExcIEEEAC2A.ke", &assign_ExcIEEEAC2A_ke); - assign_map.emplace("cim:ExcIEEEAC2A.kf", &assign_ExcIEEEAC2A_kf); - assign_map.emplace("cim:ExcIEEEAC2A.kh", &assign_ExcIEEEAC2A_kh); - assign_map.emplace("cim:ExcIEEEAC2A.seve1", &assign_ExcIEEEAC2A_seve1); - assign_map.emplace("cim:ExcIEEEAC2A.seve2", &assign_ExcIEEEAC2A_seve2); - assign_map.emplace("cim:ExcIEEEAC2A.ta", &assign_ExcIEEEAC2A_ta); - assign_map.emplace("cim:ExcIEEEAC2A.tb", &assign_ExcIEEEAC2A_tb); - assign_map.emplace("cim:ExcIEEEAC2A.tc", &assign_ExcIEEEAC2A_tc); - assign_map.emplace("cim:ExcIEEEAC2A.te", &assign_ExcIEEEAC2A_te); - assign_map.emplace("cim:ExcIEEEAC2A.tf", &assign_ExcIEEEAC2A_tf); - assign_map.emplace("cim:ExcIEEEAC2A.vamax", &assign_ExcIEEEAC2A_vamax); - assign_map.emplace("cim:ExcIEEEAC2A.vamin", &assign_ExcIEEEAC2A_vamin); - assign_map.emplace("cim:ExcIEEEAC2A.ve1", &assign_ExcIEEEAC2A_ve1); - assign_map.emplace("cim:ExcIEEEAC2A.ve2", &assign_ExcIEEEAC2A_ve2); - assign_map.emplace("cim:ExcIEEEAC2A.vfemax", &assign_ExcIEEEAC2A_vfemax); - assign_map.emplace("cim:ExcIEEEAC2A.vrmax", &assign_ExcIEEEAC2A_vrmax); - assign_map.emplace("cim:ExcIEEEAC2A.vrmin", &assign_ExcIEEEAC2A_vrmin); + assign_map.emplace("ExcIEEEAC2A.ka", &assign_ExcIEEEAC2A_ka); + assign_map.emplace("ExcIEEEAC2A.kb", &assign_ExcIEEEAC2A_kb); + assign_map.emplace("ExcIEEEAC2A.kc", &assign_ExcIEEEAC2A_kc); + assign_map.emplace("ExcIEEEAC2A.kd", &assign_ExcIEEEAC2A_kd); + assign_map.emplace("ExcIEEEAC2A.ke", &assign_ExcIEEEAC2A_ke); + assign_map.emplace("ExcIEEEAC2A.kf", &assign_ExcIEEEAC2A_kf); + assign_map.emplace("ExcIEEEAC2A.kh", &assign_ExcIEEEAC2A_kh); + assign_map.emplace("ExcIEEEAC2A.seve1", &assign_ExcIEEEAC2A_seve1); + assign_map.emplace("ExcIEEEAC2A.seve2", &assign_ExcIEEEAC2A_seve2); + assign_map.emplace("ExcIEEEAC2A.ta", &assign_ExcIEEEAC2A_ta); + assign_map.emplace("ExcIEEEAC2A.tb", &assign_ExcIEEEAC2A_tb); + assign_map.emplace("ExcIEEEAC2A.tc", &assign_ExcIEEEAC2A_tc); + assign_map.emplace("ExcIEEEAC2A.te", &assign_ExcIEEEAC2A_te); + assign_map.emplace("ExcIEEEAC2A.tf", &assign_ExcIEEEAC2A_tf); + assign_map.emplace("ExcIEEEAC2A.vamax", &assign_ExcIEEEAC2A_vamax); + assign_map.emplace("ExcIEEEAC2A.vamin", &assign_ExcIEEEAC2A_vamin); + assign_map.emplace("ExcIEEEAC2A.ve1", &assign_ExcIEEEAC2A_ve1); + assign_map.emplace("ExcIEEEAC2A.ve2", &assign_ExcIEEEAC2A_ve2); + assign_map.emplace("ExcIEEEAC2A.vfemax", &assign_ExcIEEEAC2A_vfemax); + assign_map.emplace("ExcIEEEAC2A.vrmax", &assign_ExcIEEEAC2A_vrmax); + assign_map.emplace("ExcIEEEAC2A.vrmin", &assign_ExcIEEEAC2A_vrmin); } void ExcIEEEAC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcIEEEAC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC2A.ka", &get_ExcIEEEAC2A_ka); - get_map.emplace("cim:ExcIEEEAC2A.kb", &get_ExcIEEEAC2A_kb); - get_map.emplace("cim:ExcIEEEAC2A.kc", &get_ExcIEEEAC2A_kc); - get_map.emplace("cim:ExcIEEEAC2A.kd", &get_ExcIEEEAC2A_kd); - get_map.emplace("cim:ExcIEEEAC2A.ke", &get_ExcIEEEAC2A_ke); - get_map.emplace("cim:ExcIEEEAC2A.kf", &get_ExcIEEEAC2A_kf); - get_map.emplace("cim:ExcIEEEAC2A.kh", &get_ExcIEEEAC2A_kh); - get_map.emplace("cim:ExcIEEEAC2A.seve1", &get_ExcIEEEAC2A_seve1); - get_map.emplace("cim:ExcIEEEAC2A.seve2", &get_ExcIEEEAC2A_seve2); - get_map.emplace("cim:ExcIEEEAC2A.ta", &get_ExcIEEEAC2A_ta); - get_map.emplace("cim:ExcIEEEAC2A.tb", &get_ExcIEEEAC2A_tb); - get_map.emplace("cim:ExcIEEEAC2A.tc", &get_ExcIEEEAC2A_tc); - get_map.emplace("cim:ExcIEEEAC2A.te", &get_ExcIEEEAC2A_te); - get_map.emplace("cim:ExcIEEEAC2A.tf", &get_ExcIEEEAC2A_tf); - get_map.emplace("cim:ExcIEEEAC2A.vamax", &get_ExcIEEEAC2A_vamax); - get_map.emplace("cim:ExcIEEEAC2A.vamin", &get_ExcIEEEAC2A_vamin); - get_map.emplace("cim:ExcIEEEAC2A.ve1", &get_ExcIEEEAC2A_ve1); - get_map.emplace("cim:ExcIEEEAC2A.ve2", &get_ExcIEEEAC2A_ve2); - get_map.emplace("cim:ExcIEEEAC2A.vfemax", &get_ExcIEEEAC2A_vfemax); - get_map.emplace("cim:ExcIEEEAC2A.vrmax", &get_ExcIEEEAC2A_vrmax); - get_map.emplace("cim:ExcIEEEAC2A.vrmin", &get_ExcIEEEAC2A_vrmin); + get_map.emplace("ExcIEEEAC2A.ka", &get_ExcIEEEAC2A_ka); + get_map.emplace("ExcIEEEAC2A.kb", &get_ExcIEEEAC2A_kb); + get_map.emplace("ExcIEEEAC2A.kc", &get_ExcIEEEAC2A_kc); + get_map.emplace("ExcIEEEAC2A.kd", &get_ExcIEEEAC2A_kd); + get_map.emplace("ExcIEEEAC2A.ke", &get_ExcIEEEAC2A_ke); + get_map.emplace("ExcIEEEAC2A.kf", &get_ExcIEEEAC2A_kf); + get_map.emplace("ExcIEEEAC2A.kh", &get_ExcIEEEAC2A_kh); + get_map.emplace("ExcIEEEAC2A.seve1", &get_ExcIEEEAC2A_seve1); + get_map.emplace("ExcIEEEAC2A.seve2", &get_ExcIEEEAC2A_seve2); + get_map.emplace("ExcIEEEAC2A.ta", &get_ExcIEEEAC2A_ta); + get_map.emplace("ExcIEEEAC2A.tb", &get_ExcIEEEAC2A_tb); + get_map.emplace("ExcIEEEAC2A.tc", &get_ExcIEEEAC2A_tc); + get_map.emplace("ExcIEEEAC2A.te", &get_ExcIEEEAC2A_te); + get_map.emplace("ExcIEEEAC2A.tf", &get_ExcIEEEAC2A_tf); + get_map.emplace("ExcIEEEAC2A.vamax", &get_ExcIEEEAC2A_vamax); + get_map.emplace("ExcIEEEAC2A.vamin", &get_ExcIEEEAC2A_vamin); + get_map.emplace("ExcIEEEAC2A.ve1", &get_ExcIEEEAC2A_ve1); + get_map.emplace("ExcIEEEAC2A.ve2", &get_ExcIEEEAC2A_ve2); + get_map.emplace("ExcIEEEAC2A.vfemax", &get_ExcIEEEAC2A_vfemax); + get_map.emplace("ExcIEEEAC2A.vrmax", &get_ExcIEEEAC2A_vrmax); + get_map.emplace("ExcIEEEAC2A.vrmin", &get_ExcIEEEAC2A_vrmin); } void ExcIEEEAC2A::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcIEEEAC2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC2A::declare() { return BaseClassDefiner(ExcIEEEAC2A::addConstructToMap, ExcIEEEAC2A::addPrimitiveAssignFnsToMap, ExcIEEEAC2A::addClassAssignFnsToMap, ExcIEEEAC2A::debugName); } +std::map ExcIEEEAC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC2A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.hpp index 77dc89d3e..a0ba000b4 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC2A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.cpp index a75fa053b..1f2b4e5c8 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC3A.efdn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC3A::ExcIEEEAC3A() {} ExcIEEEAC3A::~ExcIEEEAC3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC3A.efdn", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kn", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vfemax", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC3A_efdn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcIEEEAC3A::debugString() const void ExcIEEEAC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC3A", &ExcIEEEAC3A_factory); + factory_map.emplace("ExcIEEEAC3A", &ExcIEEEAC3A_factory); } void ExcIEEEAC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC3A.efdn", &assign_ExcIEEEAC3A_efdn); - assign_map.emplace("cim:ExcIEEEAC3A.ka", &assign_ExcIEEEAC3A_ka); - assign_map.emplace("cim:ExcIEEEAC3A.kc", &assign_ExcIEEEAC3A_kc); - assign_map.emplace("cim:ExcIEEEAC3A.kd", &assign_ExcIEEEAC3A_kd); - assign_map.emplace("cim:ExcIEEEAC3A.ke", &assign_ExcIEEEAC3A_ke); - assign_map.emplace("cim:ExcIEEEAC3A.kf", &assign_ExcIEEEAC3A_kf); - assign_map.emplace("cim:ExcIEEEAC3A.kn", &assign_ExcIEEEAC3A_kn); - assign_map.emplace("cim:ExcIEEEAC3A.kr", &assign_ExcIEEEAC3A_kr); - assign_map.emplace("cim:ExcIEEEAC3A.seve1", &assign_ExcIEEEAC3A_seve1); - assign_map.emplace("cim:ExcIEEEAC3A.seve2", &assign_ExcIEEEAC3A_seve2); - assign_map.emplace("cim:ExcIEEEAC3A.ta", &assign_ExcIEEEAC3A_ta); - assign_map.emplace("cim:ExcIEEEAC3A.tb", &assign_ExcIEEEAC3A_tb); - assign_map.emplace("cim:ExcIEEEAC3A.tc", &assign_ExcIEEEAC3A_tc); - assign_map.emplace("cim:ExcIEEEAC3A.te", &assign_ExcIEEEAC3A_te); - assign_map.emplace("cim:ExcIEEEAC3A.tf", &assign_ExcIEEEAC3A_tf); - assign_map.emplace("cim:ExcIEEEAC3A.vamax", &assign_ExcIEEEAC3A_vamax); - assign_map.emplace("cim:ExcIEEEAC3A.vamin", &assign_ExcIEEEAC3A_vamin); - assign_map.emplace("cim:ExcIEEEAC3A.ve1", &assign_ExcIEEEAC3A_ve1); - assign_map.emplace("cim:ExcIEEEAC3A.ve2", &assign_ExcIEEEAC3A_ve2); - assign_map.emplace("cim:ExcIEEEAC3A.vemin", &assign_ExcIEEEAC3A_vemin); - assign_map.emplace("cim:ExcIEEEAC3A.vfemax", &assign_ExcIEEEAC3A_vfemax); + assign_map.emplace("ExcIEEEAC3A.efdn", &assign_ExcIEEEAC3A_efdn); + assign_map.emplace("ExcIEEEAC3A.ka", &assign_ExcIEEEAC3A_ka); + assign_map.emplace("ExcIEEEAC3A.kc", &assign_ExcIEEEAC3A_kc); + assign_map.emplace("ExcIEEEAC3A.kd", &assign_ExcIEEEAC3A_kd); + assign_map.emplace("ExcIEEEAC3A.ke", &assign_ExcIEEEAC3A_ke); + assign_map.emplace("ExcIEEEAC3A.kf", &assign_ExcIEEEAC3A_kf); + assign_map.emplace("ExcIEEEAC3A.kn", &assign_ExcIEEEAC3A_kn); + assign_map.emplace("ExcIEEEAC3A.kr", &assign_ExcIEEEAC3A_kr); + assign_map.emplace("ExcIEEEAC3A.seve1", &assign_ExcIEEEAC3A_seve1); + assign_map.emplace("ExcIEEEAC3A.seve2", &assign_ExcIEEEAC3A_seve2); + assign_map.emplace("ExcIEEEAC3A.ta", &assign_ExcIEEEAC3A_ta); + assign_map.emplace("ExcIEEEAC3A.tb", &assign_ExcIEEEAC3A_tb); + assign_map.emplace("ExcIEEEAC3A.tc", &assign_ExcIEEEAC3A_tc); + assign_map.emplace("ExcIEEEAC3A.te", &assign_ExcIEEEAC3A_te); + assign_map.emplace("ExcIEEEAC3A.tf", &assign_ExcIEEEAC3A_tf); + assign_map.emplace("ExcIEEEAC3A.vamax", &assign_ExcIEEEAC3A_vamax); + assign_map.emplace("ExcIEEEAC3A.vamin", &assign_ExcIEEEAC3A_vamin); + assign_map.emplace("ExcIEEEAC3A.ve1", &assign_ExcIEEEAC3A_ve1); + assign_map.emplace("ExcIEEEAC3A.ve2", &assign_ExcIEEEAC3A_ve2); + assign_map.emplace("ExcIEEEAC3A.vemin", &assign_ExcIEEEAC3A_vemin); + assign_map.emplace("ExcIEEEAC3A.vfemax", &assign_ExcIEEEAC3A_vfemax); } void ExcIEEEAC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcIEEEAC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC3A.efdn", &get_ExcIEEEAC3A_efdn); - get_map.emplace("cim:ExcIEEEAC3A.ka", &get_ExcIEEEAC3A_ka); - get_map.emplace("cim:ExcIEEEAC3A.kc", &get_ExcIEEEAC3A_kc); - get_map.emplace("cim:ExcIEEEAC3A.kd", &get_ExcIEEEAC3A_kd); - get_map.emplace("cim:ExcIEEEAC3A.ke", &get_ExcIEEEAC3A_ke); - get_map.emplace("cim:ExcIEEEAC3A.kf", &get_ExcIEEEAC3A_kf); - get_map.emplace("cim:ExcIEEEAC3A.kn", &get_ExcIEEEAC3A_kn); - get_map.emplace("cim:ExcIEEEAC3A.kr", &get_ExcIEEEAC3A_kr); - get_map.emplace("cim:ExcIEEEAC3A.seve1", &get_ExcIEEEAC3A_seve1); - get_map.emplace("cim:ExcIEEEAC3A.seve2", &get_ExcIEEEAC3A_seve2); - get_map.emplace("cim:ExcIEEEAC3A.ta", &get_ExcIEEEAC3A_ta); - get_map.emplace("cim:ExcIEEEAC3A.tb", &get_ExcIEEEAC3A_tb); - get_map.emplace("cim:ExcIEEEAC3A.tc", &get_ExcIEEEAC3A_tc); - get_map.emplace("cim:ExcIEEEAC3A.te", &get_ExcIEEEAC3A_te); - get_map.emplace("cim:ExcIEEEAC3A.tf", &get_ExcIEEEAC3A_tf); - get_map.emplace("cim:ExcIEEEAC3A.vamax", &get_ExcIEEEAC3A_vamax); - get_map.emplace("cim:ExcIEEEAC3A.vamin", &get_ExcIEEEAC3A_vamin); - get_map.emplace("cim:ExcIEEEAC3A.ve1", &get_ExcIEEEAC3A_ve1); - get_map.emplace("cim:ExcIEEEAC3A.ve2", &get_ExcIEEEAC3A_ve2); - get_map.emplace("cim:ExcIEEEAC3A.vemin", &get_ExcIEEEAC3A_vemin); - get_map.emplace("cim:ExcIEEEAC3A.vfemax", &get_ExcIEEEAC3A_vfemax); + get_map.emplace("ExcIEEEAC3A.efdn", &get_ExcIEEEAC3A_efdn); + get_map.emplace("ExcIEEEAC3A.ka", &get_ExcIEEEAC3A_ka); + get_map.emplace("ExcIEEEAC3A.kc", &get_ExcIEEEAC3A_kc); + get_map.emplace("ExcIEEEAC3A.kd", &get_ExcIEEEAC3A_kd); + get_map.emplace("ExcIEEEAC3A.ke", &get_ExcIEEEAC3A_ke); + get_map.emplace("ExcIEEEAC3A.kf", &get_ExcIEEEAC3A_kf); + get_map.emplace("ExcIEEEAC3A.kn", &get_ExcIEEEAC3A_kn); + get_map.emplace("ExcIEEEAC3A.kr", &get_ExcIEEEAC3A_kr); + get_map.emplace("ExcIEEEAC3A.seve1", &get_ExcIEEEAC3A_seve1); + get_map.emplace("ExcIEEEAC3A.seve2", &get_ExcIEEEAC3A_seve2); + get_map.emplace("ExcIEEEAC3A.ta", &get_ExcIEEEAC3A_ta); + get_map.emplace("ExcIEEEAC3A.tb", &get_ExcIEEEAC3A_tb); + get_map.emplace("ExcIEEEAC3A.tc", &get_ExcIEEEAC3A_tc); + get_map.emplace("ExcIEEEAC3A.te", &get_ExcIEEEAC3A_te); + get_map.emplace("ExcIEEEAC3A.tf", &get_ExcIEEEAC3A_tf); + get_map.emplace("ExcIEEEAC3A.vamax", &get_ExcIEEEAC3A_vamax); + get_map.emplace("ExcIEEEAC3A.vamin", &get_ExcIEEEAC3A_vamin); + get_map.emplace("ExcIEEEAC3A.ve1", &get_ExcIEEEAC3A_ve1); + get_map.emplace("ExcIEEEAC3A.ve2", &get_ExcIEEEAC3A_ve2); + get_map.emplace("ExcIEEEAC3A.vemin", &get_ExcIEEEAC3A_vemin); + get_map.emplace("ExcIEEEAC3A.vfemax", &get_ExcIEEEAC3A_vfemax); } void ExcIEEEAC3A::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcIEEEAC3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC3A::declare() { return BaseClassDefiner(ExcIEEEAC3A::addConstructToMap, ExcIEEEAC3A::addPrimitiveAssignFnsToMap, ExcIEEEAC3A::addClassAssignFnsToMap, ExcIEEEAC3A::debugName); } +std::map ExcIEEEAC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC3A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.hpp index 569f22c12..dac608284 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC3A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.cpp index e1510a699..2e727b4c8 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC4A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC4A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC4A::ExcIEEEAC4A() {} ExcIEEEAC4A::~ExcIEEEAC4A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC4A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC4A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC4A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC4A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC4A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC4A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC4A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC4A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC4A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC4A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC4A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ExcIEEEAC4A::debugString() const void ExcIEEEAC4A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC4A", &ExcIEEEAC4A_factory); + factory_map.emplace("ExcIEEEAC4A", &ExcIEEEAC4A_factory); } void ExcIEEEAC4A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC4A.ka", &assign_ExcIEEEAC4A_ka); - assign_map.emplace("cim:ExcIEEEAC4A.kc", &assign_ExcIEEEAC4A_kc); - assign_map.emplace("cim:ExcIEEEAC4A.ta", &assign_ExcIEEEAC4A_ta); - assign_map.emplace("cim:ExcIEEEAC4A.tb", &assign_ExcIEEEAC4A_tb); - assign_map.emplace("cim:ExcIEEEAC4A.tc", &assign_ExcIEEEAC4A_tc); - assign_map.emplace("cim:ExcIEEEAC4A.vimax", &assign_ExcIEEEAC4A_vimax); - assign_map.emplace("cim:ExcIEEEAC4A.vimin", &assign_ExcIEEEAC4A_vimin); - assign_map.emplace("cim:ExcIEEEAC4A.vrmax", &assign_ExcIEEEAC4A_vrmax); - assign_map.emplace("cim:ExcIEEEAC4A.vrmin", &assign_ExcIEEEAC4A_vrmin); + assign_map.emplace("ExcIEEEAC4A.ka", &assign_ExcIEEEAC4A_ka); + assign_map.emplace("ExcIEEEAC4A.kc", &assign_ExcIEEEAC4A_kc); + assign_map.emplace("ExcIEEEAC4A.ta", &assign_ExcIEEEAC4A_ta); + assign_map.emplace("ExcIEEEAC4A.tb", &assign_ExcIEEEAC4A_tb); + assign_map.emplace("ExcIEEEAC4A.tc", &assign_ExcIEEEAC4A_tc); + assign_map.emplace("ExcIEEEAC4A.vimax", &assign_ExcIEEEAC4A_vimax); + assign_map.emplace("ExcIEEEAC4A.vimin", &assign_ExcIEEEAC4A_vimin); + assign_map.emplace("ExcIEEEAC4A.vrmax", &assign_ExcIEEEAC4A_vrmax); + assign_map.emplace("ExcIEEEAC4A.vrmin", &assign_ExcIEEEAC4A_vrmin); } void ExcIEEEAC4A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ExcIEEEAC4A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC4A.ka", &get_ExcIEEEAC4A_ka); - get_map.emplace("cim:ExcIEEEAC4A.kc", &get_ExcIEEEAC4A_kc); - get_map.emplace("cim:ExcIEEEAC4A.ta", &get_ExcIEEEAC4A_ta); - get_map.emplace("cim:ExcIEEEAC4A.tb", &get_ExcIEEEAC4A_tb); - get_map.emplace("cim:ExcIEEEAC4A.tc", &get_ExcIEEEAC4A_tc); - get_map.emplace("cim:ExcIEEEAC4A.vimax", &get_ExcIEEEAC4A_vimax); - get_map.emplace("cim:ExcIEEEAC4A.vimin", &get_ExcIEEEAC4A_vimin); - get_map.emplace("cim:ExcIEEEAC4A.vrmax", &get_ExcIEEEAC4A_vrmax); - get_map.emplace("cim:ExcIEEEAC4A.vrmin", &get_ExcIEEEAC4A_vrmin); + get_map.emplace("ExcIEEEAC4A.ka", &get_ExcIEEEAC4A_ka); + get_map.emplace("ExcIEEEAC4A.kc", &get_ExcIEEEAC4A_kc); + get_map.emplace("ExcIEEEAC4A.ta", &get_ExcIEEEAC4A_ta); + get_map.emplace("ExcIEEEAC4A.tb", &get_ExcIEEEAC4A_tb); + get_map.emplace("ExcIEEEAC4A.tc", &get_ExcIEEEAC4A_tc); + get_map.emplace("ExcIEEEAC4A.vimax", &get_ExcIEEEAC4A_vimax); + get_map.emplace("ExcIEEEAC4A.vimin", &get_ExcIEEEAC4A_vimin); + get_map.emplace("ExcIEEEAC4A.vrmax", &get_ExcIEEEAC4A_vrmax); + get_map.emplace("ExcIEEEAC4A.vrmin", &get_ExcIEEEAC4A_vrmin); } void ExcIEEEAC4A::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ExcIEEEAC4A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC4A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC4A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC4A::declare() { return BaseClassDefiner(ExcIEEEAC4A::addConstructToMap, ExcIEEEAC4A::addPrimitiveAssignFnsToMap, ExcIEEEAC4A::addClassAssignFnsToMap, ExcIEEEAC4A::debugName); } +std::map ExcIEEEAC4A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC4A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.hpp index afdfb2fe2..0c7b02701 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC4A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC4A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.cpp index 8187407bd..7a19c674b 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC5A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC5A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC5A::ExcIEEEAC5A() {} ExcIEEEAC5A::~ExcIEEEAC5A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC5A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC5A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC5A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf3", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC5A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC5A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC5A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC5A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC5A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC5A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC5A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC5A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcIEEEAC5A::debugString() const void ExcIEEEAC5A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC5A", &ExcIEEEAC5A_factory); + factory_map.emplace("ExcIEEEAC5A", &ExcIEEEAC5A_factory); } void ExcIEEEAC5A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC5A.efd1", &assign_ExcIEEEAC5A_efd1); - assign_map.emplace("cim:ExcIEEEAC5A.efd2", &assign_ExcIEEEAC5A_efd2); - assign_map.emplace("cim:ExcIEEEAC5A.ka", &assign_ExcIEEEAC5A_ka); - assign_map.emplace("cim:ExcIEEEAC5A.ke", &assign_ExcIEEEAC5A_ke); - assign_map.emplace("cim:ExcIEEEAC5A.kf", &assign_ExcIEEEAC5A_kf); - assign_map.emplace("cim:ExcIEEEAC5A.seefd1", &assign_ExcIEEEAC5A_seefd1); - assign_map.emplace("cim:ExcIEEEAC5A.seefd2", &assign_ExcIEEEAC5A_seefd2); - assign_map.emplace("cim:ExcIEEEAC5A.ta", &assign_ExcIEEEAC5A_ta); - assign_map.emplace("cim:ExcIEEEAC5A.te", &assign_ExcIEEEAC5A_te); - assign_map.emplace("cim:ExcIEEEAC5A.tf1", &assign_ExcIEEEAC5A_tf1); - assign_map.emplace("cim:ExcIEEEAC5A.tf2", &assign_ExcIEEEAC5A_tf2); - assign_map.emplace("cim:ExcIEEEAC5A.tf3", &assign_ExcIEEEAC5A_tf3); - assign_map.emplace("cim:ExcIEEEAC5A.vrmax", &assign_ExcIEEEAC5A_vrmax); - assign_map.emplace("cim:ExcIEEEAC5A.vrmin", &assign_ExcIEEEAC5A_vrmin); + assign_map.emplace("ExcIEEEAC5A.efd1", &assign_ExcIEEEAC5A_efd1); + assign_map.emplace("ExcIEEEAC5A.efd2", &assign_ExcIEEEAC5A_efd2); + assign_map.emplace("ExcIEEEAC5A.ka", &assign_ExcIEEEAC5A_ka); + assign_map.emplace("ExcIEEEAC5A.ke", &assign_ExcIEEEAC5A_ke); + assign_map.emplace("ExcIEEEAC5A.kf", &assign_ExcIEEEAC5A_kf); + assign_map.emplace("ExcIEEEAC5A.seefd1", &assign_ExcIEEEAC5A_seefd1); + assign_map.emplace("ExcIEEEAC5A.seefd2", &assign_ExcIEEEAC5A_seefd2); + assign_map.emplace("ExcIEEEAC5A.ta", &assign_ExcIEEEAC5A_ta); + assign_map.emplace("ExcIEEEAC5A.te", &assign_ExcIEEEAC5A_te); + assign_map.emplace("ExcIEEEAC5A.tf1", &assign_ExcIEEEAC5A_tf1); + assign_map.emplace("ExcIEEEAC5A.tf2", &assign_ExcIEEEAC5A_tf2); + assign_map.emplace("ExcIEEEAC5A.tf3", &assign_ExcIEEEAC5A_tf3); + assign_map.emplace("ExcIEEEAC5A.vrmax", &assign_ExcIEEEAC5A_vrmax); + assign_map.emplace("ExcIEEEAC5A.vrmin", &assign_ExcIEEEAC5A_vrmin); } void ExcIEEEAC5A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcIEEEAC5A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC5A.efd1", &get_ExcIEEEAC5A_efd1); - get_map.emplace("cim:ExcIEEEAC5A.efd2", &get_ExcIEEEAC5A_efd2); - get_map.emplace("cim:ExcIEEEAC5A.ka", &get_ExcIEEEAC5A_ka); - get_map.emplace("cim:ExcIEEEAC5A.ke", &get_ExcIEEEAC5A_ke); - get_map.emplace("cim:ExcIEEEAC5A.kf", &get_ExcIEEEAC5A_kf); - get_map.emplace("cim:ExcIEEEAC5A.seefd1", &get_ExcIEEEAC5A_seefd1); - get_map.emplace("cim:ExcIEEEAC5A.seefd2", &get_ExcIEEEAC5A_seefd2); - get_map.emplace("cim:ExcIEEEAC5A.ta", &get_ExcIEEEAC5A_ta); - get_map.emplace("cim:ExcIEEEAC5A.te", &get_ExcIEEEAC5A_te); - get_map.emplace("cim:ExcIEEEAC5A.tf1", &get_ExcIEEEAC5A_tf1); - get_map.emplace("cim:ExcIEEEAC5A.tf2", &get_ExcIEEEAC5A_tf2); - get_map.emplace("cim:ExcIEEEAC5A.tf3", &get_ExcIEEEAC5A_tf3); - get_map.emplace("cim:ExcIEEEAC5A.vrmax", &get_ExcIEEEAC5A_vrmax); - get_map.emplace("cim:ExcIEEEAC5A.vrmin", &get_ExcIEEEAC5A_vrmin); + get_map.emplace("ExcIEEEAC5A.efd1", &get_ExcIEEEAC5A_efd1); + get_map.emplace("ExcIEEEAC5A.efd2", &get_ExcIEEEAC5A_efd2); + get_map.emplace("ExcIEEEAC5A.ka", &get_ExcIEEEAC5A_ka); + get_map.emplace("ExcIEEEAC5A.ke", &get_ExcIEEEAC5A_ke); + get_map.emplace("ExcIEEEAC5A.kf", &get_ExcIEEEAC5A_kf); + get_map.emplace("ExcIEEEAC5A.seefd1", &get_ExcIEEEAC5A_seefd1); + get_map.emplace("ExcIEEEAC5A.seefd2", &get_ExcIEEEAC5A_seefd2); + get_map.emplace("ExcIEEEAC5A.ta", &get_ExcIEEEAC5A_ta); + get_map.emplace("ExcIEEEAC5A.te", &get_ExcIEEEAC5A_te); + get_map.emplace("ExcIEEEAC5A.tf1", &get_ExcIEEEAC5A_tf1); + get_map.emplace("ExcIEEEAC5A.tf2", &get_ExcIEEEAC5A_tf2); + get_map.emplace("ExcIEEEAC5A.tf3", &get_ExcIEEEAC5A_tf3); + get_map.emplace("ExcIEEEAC5A.vrmax", &get_ExcIEEEAC5A_vrmax); + get_map.emplace("ExcIEEEAC5A.vrmin", &get_ExcIEEEAC5A_vrmin); } void ExcIEEEAC5A::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcIEEEAC5A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC5A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC5A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC5A::declare() { return BaseClassDefiner(ExcIEEEAC5A::addConstructToMap, ExcIEEEAC5A::addPrimitiveAssignFnsToMap, ExcIEEEAC5A::addClassAssignFnsToMap, ExcIEEEAC5A::debugName); } +std::map ExcIEEEAC5A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC5A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.hpp index 53b26311c..d1827ea37 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC5A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC5A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.cpp index cf956daff..987fb3595 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC6A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC6A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.th", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vfelim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC6A::ExcIEEEAC6A() {} ExcIEEEAC6A::~ExcIEEEAC6A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC6A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.th", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tj", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tk", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vfelim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vhmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC6A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC6A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC6A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC6A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC6A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC6A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC6A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC6A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC6A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC6A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* ExcIEEEAC6A::debugString() const void ExcIEEEAC6A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC6A", &ExcIEEEAC6A_factory); + factory_map.emplace("ExcIEEEAC6A", &ExcIEEEAC6A_factory); } void ExcIEEEAC6A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC6A.ka", &assign_ExcIEEEAC6A_ka); - assign_map.emplace("cim:ExcIEEEAC6A.kc", &assign_ExcIEEEAC6A_kc); - assign_map.emplace("cim:ExcIEEEAC6A.kd", &assign_ExcIEEEAC6A_kd); - assign_map.emplace("cim:ExcIEEEAC6A.ke", &assign_ExcIEEEAC6A_ke); - assign_map.emplace("cim:ExcIEEEAC6A.kh", &assign_ExcIEEEAC6A_kh); - assign_map.emplace("cim:ExcIEEEAC6A.seve1", &assign_ExcIEEEAC6A_seve1); - assign_map.emplace("cim:ExcIEEEAC6A.seve2", &assign_ExcIEEEAC6A_seve2); - assign_map.emplace("cim:ExcIEEEAC6A.ta", &assign_ExcIEEEAC6A_ta); - assign_map.emplace("cim:ExcIEEEAC6A.tb", &assign_ExcIEEEAC6A_tb); - assign_map.emplace("cim:ExcIEEEAC6A.tc", &assign_ExcIEEEAC6A_tc); - assign_map.emplace("cim:ExcIEEEAC6A.te", &assign_ExcIEEEAC6A_te); - assign_map.emplace("cim:ExcIEEEAC6A.th", &assign_ExcIEEEAC6A_th); - assign_map.emplace("cim:ExcIEEEAC6A.tj", &assign_ExcIEEEAC6A_tj); - assign_map.emplace("cim:ExcIEEEAC6A.tk", &assign_ExcIEEEAC6A_tk); - assign_map.emplace("cim:ExcIEEEAC6A.vamax", &assign_ExcIEEEAC6A_vamax); - assign_map.emplace("cim:ExcIEEEAC6A.vamin", &assign_ExcIEEEAC6A_vamin); - assign_map.emplace("cim:ExcIEEEAC6A.ve1", &assign_ExcIEEEAC6A_ve1); - assign_map.emplace("cim:ExcIEEEAC6A.ve2", &assign_ExcIEEEAC6A_ve2); - assign_map.emplace("cim:ExcIEEEAC6A.vfelim", &assign_ExcIEEEAC6A_vfelim); - assign_map.emplace("cim:ExcIEEEAC6A.vhmax", &assign_ExcIEEEAC6A_vhmax); - assign_map.emplace("cim:ExcIEEEAC6A.vrmax", &assign_ExcIEEEAC6A_vrmax); - assign_map.emplace("cim:ExcIEEEAC6A.vrmin", &assign_ExcIEEEAC6A_vrmin); + assign_map.emplace("ExcIEEEAC6A.ka", &assign_ExcIEEEAC6A_ka); + assign_map.emplace("ExcIEEEAC6A.kc", &assign_ExcIEEEAC6A_kc); + assign_map.emplace("ExcIEEEAC6A.kd", &assign_ExcIEEEAC6A_kd); + assign_map.emplace("ExcIEEEAC6A.ke", &assign_ExcIEEEAC6A_ke); + assign_map.emplace("ExcIEEEAC6A.kh", &assign_ExcIEEEAC6A_kh); + assign_map.emplace("ExcIEEEAC6A.seve1", &assign_ExcIEEEAC6A_seve1); + assign_map.emplace("ExcIEEEAC6A.seve2", &assign_ExcIEEEAC6A_seve2); + assign_map.emplace("ExcIEEEAC6A.ta", &assign_ExcIEEEAC6A_ta); + assign_map.emplace("ExcIEEEAC6A.tb", &assign_ExcIEEEAC6A_tb); + assign_map.emplace("ExcIEEEAC6A.tc", &assign_ExcIEEEAC6A_tc); + assign_map.emplace("ExcIEEEAC6A.te", &assign_ExcIEEEAC6A_te); + assign_map.emplace("ExcIEEEAC6A.th", &assign_ExcIEEEAC6A_th); + assign_map.emplace("ExcIEEEAC6A.tj", &assign_ExcIEEEAC6A_tj); + assign_map.emplace("ExcIEEEAC6A.tk", &assign_ExcIEEEAC6A_tk); + assign_map.emplace("ExcIEEEAC6A.vamax", &assign_ExcIEEEAC6A_vamax); + assign_map.emplace("ExcIEEEAC6A.vamin", &assign_ExcIEEEAC6A_vamin); + assign_map.emplace("ExcIEEEAC6A.ve1", &assign_ExcIEEEAC6A_ve1); + assign_map.emplace("ExcIEEEAC6A.ve2", &assign_ExcIEEEAC6A_ve2); + assign_map.emplace("ExcIEEEAC6A.vfelim", &assign_ExcIEEEAC6A_vfelim); + assign_map.emplace("ExcIEEEAC6A.vhmax", &assign_ExcIEEEAC6A_vhmax); + assign_map.emplace("ExcIEEEAC6A.vrmax", &assign_ExcIEEEAC6A_vrmax); + assign_map.emplace("ExcIEEEAC6A.vrmin", &assign_ExcIEEEAC6A_vrmin); } void ExcIEEEAC6A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void ExcIEEEAC6A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC6A.ka", &get_ExcIEEEAC6A_ka); - get_map.emplace("cim:ExcIEEEAC6A.kc", &get_ExcIEEEAC6A_kc); - get_map.emplace("cim:ExcIEEEAC6A.kd", &get_ExcIEEEAC6A_kd); - get_map.emplace("cim:ExcIEEEAC6A.ke", &get_ExcIEEEAC6A_ke); - get_map.emplace("cim:ExcIEEEAC6A.kh", &get_ExcIEEEAC6A_kh); - get_map.emplace("cim:ExcIEEEAC6A.seve1", &get_ExcIEEEAC6A_seve1); - get_map.emplace("cim:ExcIEEEAC6A.seve2", &get_ExcIEEEAC6A_seve2); - get_map.emplace("cim:ExcIEEEAC6A.ta", &get_ExcIEEEAC6A_ta); - get_map.emplace("cim:ExcIEEEAC6A.tb", &get_ExcIEEEAC6A_tb); - get_map.emplace("cim:ExcIEEEAC6A.tc", &get_ExcIEEEAC6A_tc); - get_map.emplace("cim:ExcIEEEAC6A.te", &get_ExcIEEEAC6A_te); - get_map.emplace("cim:ExcIEEEAC6A.th", &get_ExcIEEEAC6A_th); - get_map.emplace("cim:ExcIEEEAC6A.tj", &get_ExcIEEEAC6A_tj); - get_map.emplace("cim:ExcIEEEAC6A.tk", &get_ExcIEEEAC6A_tk); - get_map.emplace("cim:ExcIEEEAC6A.vamax", &get_ExcIEEEAC6A_vamax); - get_map.emplace("cim:ExcIEEEAC6A.vamin", &get_ExcIEEEAC6A_vamin); - get_map.emplace("cim:ExcIEEEAC6A.ve1", &get_ExcIEEEAC6A_ve1); - get_map.emplace("cim:ExcIEEEAC6A.ve2", &get_ExcIEEEAC6A_ve2); - get_map.emplace("cim:ExcIEEEAC6A.vfelim", &get_ExcIEEEAC6A_vfelim); - get_map.emplace("cim:ExcIEEEAC6A.vhmax", &get_ExcIEEEAC6A_vhmax); - get_map.emplace("cim:ExcIEEEAC6A.vrmax", &get_ExcIEEEAC6A_vrmax); - get_map.emplace("cim:ExcIEEEAC6A.vrmin", &get_ExcIEEEAC6A_vrmin); + get_map.emplace("ExcIEEEAC6A.ka", &get_ExcIEEEAC6A_ka); + get_map.emplace("ExcIEEEAC6A.kc", &get_ExcIEEEAC6A_kc); + get_map.emplace("ExcIEEEAC6A.kd", &get_ExcIEEEAC6A_kd); + get_map.emplace("ExcIEEEAC6A.ke", &get_ExcIEEEAC6A_ke); + get_map.emplace("ExcIEEEAC6A.kh", &get_ExcIEEEAC6A_kh); + get_map.emplace("ExcIEEEAC6A.seve1", &get_ExcIEEEAC6A_seve1); + get_map.emplace("ExcIEEEAC6A.seve2", &get_ExcIEEEAC6A_seve2); + get_map.emplace("ExcIEEEAC6A.ta", &get_ExcIEEEAC6A_ta); + get_map.emplace("ExcIEEEAC6A.tb", &get_ExcIEEEAC6A_tb); + get_map.emplace("ExcIEEEAC6A.tc", &get_ExcIEEEAC6A_tc); + get_map.emplace("ExcIEEEAC6A.te", &get_ExcIEEEAC6A_te); + get_map.emplace("ExcIEEEAC6A.th", &get_ExcIEEEAC6A_th); + get_map.emplace("ExcIEEEAC6A.tj", &get_ExcIEEEAC6A_tj); + get_map.emplace("ExcIEEEAC6A.tk", &get_ExcIEEEAC6A_tk); + get_map.emplace("ExcIEEEAC6A.vamax", &get_ExcIEEEAC6A_vamax); + get_map.emplace("ExcIEEEAC6A.vamin", &get_ExcIEEEAC6A_vamin); + get_map.emplace("ExcIEEEAC6A.ve1", &get_ExcIEEEAC6A_ve1); + get_map.emplace("ExcIEEEAC6A.ve2", &get_ExcIEEEAC6A_ve2); + get_map.emplace("ExcIEEEAC6A.vfelim", &get_ExcIEEEAC6A_vfelim); + get_map.emplace("ExcIEEEAC6A.vhmax", &get_ExcIEEEAC6A_vhmax); + get_map.emplace("ExcIEEEAC6A.vrmax", &get_ExcIEEEAC6A_vrmax); + get_map.emplace("ExcIEEEAC6A.vrmin", &get_ExcIEEEAC6A_vrmin); } void ExcIEEEAC6A::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void ExcIEEEAC6A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC6A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC6A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC6A::declare() { return BaseClassDefiner(ExcIEEEAC6A::addConstructToMap, ExcIEEEAC6A::addPrimitiveAssignFnsToMap, ExcIEEEAC6A::addClassAssignFnsToMap, ExcIEEEAC6A::debugName); } +std::map ExcIEEEAC6A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC6A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.hpp index b32c16c38..ae30e5138 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC6A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -96,8 +97,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -105,7 +113,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC6A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.cpp index 92658ed8f..1ae6d689e 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC7B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC7B::ExcIEEEAC7B() {} ExcIEEEAC7B::~ExcIEEEAC7B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC7B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf3", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC7B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC7B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC7B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC7B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC7B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC7B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC7B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* ExcIEEEAC7B::debugString() const void ExcIEEEAC7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC7B", &ExcIEEEAC7B_factory); + factory_map.emplace("ExcIEEEAC7B", &ExcIEEEAC7B_factory); } void ExcIEEEAC7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC7B.kc", &assign_ExcIEEEAC7B_kc); - assign_map.emplace("cim:ExcIEEEAC7B.kd", &assign_ExcIEEEAC7B_kd); - assign_map.emplace("cim:ExcIEEEAC7B.kdr", &assign_ExcIEEEAC7B_kdr); - assign_map.emplace("cim:ExcIEEEAC7B.ke", &assign_ExcIEEEAC7B_ke); - assign_map.emplace("cim:ExcIEEEAC7B.kf1", &assign_ExcIEEEAC7B_kf1); - assign_map.emplace("cim:ExcIEEEAC7B.kf2", &assign_ExcIEEEAC7B_kf2); - assign_map.emplace("cim:ExcIEEEAC7B.kf3", &assign_ExcIEEEAC7B_kf3); - assign_map.emplace("cim:ExcIEEEAC7B.kia", &assign_ExcIEEEAC7B_kia); - assign_map.emplace("cim:ExcIEEEAC7B.kir", &assign_ExcIEEEAC7B_kir); - assign_map.emplace("cim:ExcIEEEAC7B.kl", &assign_ExcIEEEAC7B_kl); - assign_map.emplace("cim:ExcIEEEAC7B.kp", &assign_ExcIEEEAC7B_kp); - assign_map.emplace("cim:ExcIEEEAC7B.kpa", &assign_ExcIEEEAC7B_kpa); - assign_map.emplace("cim:ExcIEEEAC7B.kpr", &assign_ExcIEEEAC7B_kpr); - assign_map.emplace("cim:ExcIEEEAC7B.seve1", &assign_ExcIEEEAC7B_seve1); - assign_map.emplace("cim:ExcIEEEAC7B.seve2", &assign_ExcIEEEAC7B_seve2); - assign_map.emplace("cim:ExcIEEEAC7B.tdr", &assign_ExcIEEEAC7B_tdr); - assign_map.emplace("cim:ExcIEEEAC7B.te", &assign_ExcIEEEAC7B_te); - assign_map.emplace("cim:ExcIEEEAC7B.tf", &assign_ExcIEEEAC7B_tf); - assign_map.emplace("cim:ExcIEEEAC7B.vamax", &assign_ExcIEEEAC7B_vamax); - assign_map.emplace("cim:ExcIEEEAC7B.vamin", &assign_ExcIEEEAC7B_vamin); - assign_map.emplace("cim:ExcIEEEAC7B.ve1", &assign_ExcIEEEAC7B_ve1); - assign_map.emplace("cim:ExcIEEEAC7B.ve2", &assign_ExcIEEEAC7B_ve2); - assign_map.emplace("cim:ExcIEEEAC7B.vemin", &assign_ExcIEEEAC7B_vemin); - assign_map.emplace("cim:ExcIEEEAC7B.vfemax", &assign_ExcIEEEAC7B_vfemax); - assign_map.emplace("cim:ExcIEEEAC7B.vrmax", &assign_ExcIEEEAC7B_vrmax); - assign_map.emplace("cim:ExcIEEEAC7B.vrmin", &assign_ExcIEEEAC7B_vrmin); + assign_map.emplace("ExcIEEEAC7B.kc", &assign_ExcIEEEAC7B_kc); + assign_map.emplace("ExcIEEEAC7B.kd", &assign_ExcIEEEAC7B_kd); + assign_map.emplace("ExcIEEEAC7B.kdr", &assign_ExcIEEEAC7B_kdr); + assign_map.emplace("ExcIEEEAC7B.ke", &assign_ExcIEEEAC7B_ke); + assign_map.emplace("ExcIEEEAC7B.kf1", &assign_ExcIEEEAC7B_kf1); + assign_map.emplace("ExcIEEEAC7B.kf2", &assign_ExcIEEEAC7B_kf2); + assign_map.emplace("ExcIEEEAC7B.kf3", &assign_ExcIEEEAC7B_kf3); + assign_map.emplace("ExcIEEEAC7B.kia", &assign_ExcIEEEAC7B_kia); + assign_map.emplace("ExcIEEEAC7B.kir", &assign_ExcIEEEAC7B_kir); + assign_map.emplace("ExcIEEEAC7B.kl", &assign_ExcIEEEAC7B_kl); + assign_map.emplace("ExcIEEEAC7B.kp", &assign_ExcIEEEAC7B_kp); + assign_map.emplace("ExcIEEEAC7B.kpa", &assign_ExcIEEEAC7B_kpa); + assign_map.emplace("ExcIEEEAC7B.kpr", &assign_ExcIEEEAC7B_kpr); + assign_map.emplace("ExcIEEEAC7B.seve1", &assign_ExcIEEEAC7B_seve1); + assign_map.emplace("ExcIEEEAC7B.seve2", &assign_ExcIEEEAC7B_seve2); + assign_map.emplace("ExcIEEEAC7B.tdr", &assign_ExcIEEEAC7B_tdr); + assign_map.emplace("ExcIEEEAC7B.te", &assign_ExcIEEEAC7B_te); + assign_map.emplace("ExcIEEEAC7B.tf", &assign_ExcIEEEAC7B_tf); + assign_map.emplace("ExcIEEEAC7B.vamax", &assign_ExcIEEEAC7B_vamax); + assign_map.emplace("ExcIEEEAC7B.vamin", &assign_ExcIEEEAC7B_vamin); + assign_map.emplace("ExcIEEEAC7B.ve1", &assign_ExcIEEEAC7B_ve1); + assign_map.emplace("ExcIEEEAC7B.ve2", &assign_ExcIEEEAC7B_ve2); + assign_map.emplace("ExcIEEEAC7B.vemin", &assign_ExcIEEEAC7B_vemin); + assign_map.emplace("ExcIEEEAC7B.vfemax", &assign_ExcIEEEAC7B_vfemax); + assign_map.emplace("ExcIEEEAC7B.vrmax", &assign_ExcIEEEAC7B_vrmax); + assign_map.emplace("ExcIEEEAC7B.vrmin", &assign_ExcIEEEAC7B_vrmin); } void ExcIEEEAC7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void ExcIEEEAC7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC7B.kc", &get_ExcIEEEAC7B_kc); - get_map.emplace("cim:ExcIEEEAC7B.kd", &get_ExcIEEEAC7B_kd); - get_map.emplace("cim:ExcIEEEAC7B.kdr", &get_ExcIEEEAC7B_kdr); - get_map.emplace("cim:ExcIEEEAC7B.ke", &get_ExcIEEEAC7B_ke); - get_map.emplace("cim:ExcIEEEAC7B.kf1", &get_ExcIEEEAC7B_kf1); - get_map.emplace("cim:ExcIEEEAC7B.kf2", &get_ExcIEEEAC7B_kf2); - get_map.emplace("cim:ExcIEEEAC7B.kf3", &get_ExcIEEEAC7B_kf3); - get_map.emplace("cim:ExcIEEEAC7B.kia", &get_ExcIEEEAC7B_kia); - get_map.emplace("cim:ExcIEEEAC7B.kir", &get_ExcIEEEAC7B_kir); - get_map.emplace("cim:ExcIEEEAC7B.kl", &get_ExcIEEEAC7B_kl); - get_map.emplace("cim:ExcIEEEAC7B.kp", &get_ExcIEEEAC7B_kp); - get_map.emplace("cim:ExcIEEEAC7B.kpa", &get_ExcIEEEAC7B_kpa); - get_map.emplace("cim:ExcIEEEAC7B.kpr", &get_ExcIEEEAC7B_kpr); - get_map.emplace("cim:ExcIEEEAC7B.seve1", &get_ExcIEEEAC7B_seve1); - get_map.emplace("cim:ExcIEEEAC7B.seve2", &get_ExcIEEEAC7B_seve2); - get_map.emplace("cim:ExcIEEEAC7B.tdr", &get_ExcIEEEAC7B_tdr); - get_map.emplace("cim:ExcIEEEAC7B.te", &get_ExcIEEEAC7B_te); - get_map.emplace("cim:ExcIEEEAC7B.tf", &get_ExcIEEEAC7B_tf); - get_map.emplace("cim:ExcIEEEAC7B.vamax", &get_ExcIEEEAC7B_vamax); - get_map.emplace("cim:ExcIEEEAC7B.vamin", &get_ExcIEEEAC7B_vamin); - get_map.emplace("cim:ExcIEEEAC7B.ve1", &get_ExcIEEEAC7B_ve1); - get_map.emplace("cim:ExcIEEEAC7B.ve2", &get_ExcIEEEAC7B_ve2); - get_map.emplace("cim:ExcIEEEAC7B.vemin", &get_ExcIEEEAC7B_vemin); - get_map.emplace("cim:ExcIEEEAC7B.vfemax", &get_ExcIEEEAC7B_vfemax); - get_map.emplace("cim:ExcIEEEAC7B.vrmax", &get_ExcIEEEAC7B_vrmax); - get_map.emplace("cim:ExcIEEEAC7B.vrmin", &get_ExcIEEEAC7B_vrmin); + get_map.emplace("ExcIEEEAC7B.kc", &get_ExcIEEEAC7B_kc); + get_map.emplace("ExcIEEEAC7B.kd", &get_ExcIEEEAC7B_kd); + get_map.emplace("ExcIEEEAC7B.kdr", &get_ExcIEEEAC7B_kdr); + get_map.emplace("ExcIEEEAC7B.ke", &get_ExcIEEEAC7B_ke); + get_map.emplace("ExcIEEEAC7B.kf1", &get_ExcIEEEAC7B_kf1); + get_map.emplace("ExcIEEEAC7B.kf2", &get_ExcIEEEAC7B_kf2); + get_map.emplace("ExcIEEEAC7B.kf3", &get_ExcIEEEAC7B_kf3); + get_map.emplace("ExcIEEEAC7B.kia", &get_ExcIEEEAC7B_kia); + get_map.emplace("ExcIEEEAC7B.kir", &get_ExcIEEEAC7B_kir); + get_map.emplace("ExcIEEEAC7B.kl", &get_ExcIEEEAC7B_kl); + get_map.emplace("ExcIEEEAC7B.kp", &get_ExcIEEEAC7B_kp); + get_map.emplace("ExcIEEEAC7B.kpa", &get_ExcIEEEAC7B_kpa); + get_map.emplace("ExcIEEEAC7B.kpr", &get_ExcIEEEAC7B_kpr); + get_map.emplace("ExcIEEEAC7B.seve1", &get_ExcIEEEAC7B_seve1); + get_map.emplace("ExcIEEEAC7B.seve2", &get_ExcIEEEAC7B_seve2); + get_map.emplace("ExcIEEEAC7B.tdr", &get_ExcIEEEAC7B_tdr); + get_map.emplace("ExcIEEEAC7B.te", &get_ExcIEEEAC7B_te); + get_map.emplace("ExcIEEEAC7B.tf", &get_ExcIEEEAC7B_tf); + get_map.emplace("ExcIEEEAC7B.vamax", &get_ExcIEEEAC7B_vamax); + get_map.emplace("ExcIEEEAC7B.vamin", &get_ExcIEEEAC7B_vamin); + get_map.emplace("ExcIEEEAC7B.ve1", &get_ExcIEEEAC7B_ve1); + get_map.emplace("ExcIEEEAC7B.ve2", &get_ExcIEEEAC7B_ve2); + get_map.emplace("ExcIEEEAC7B.vemin", &get_ExcIEEEAC7B_vemin); + get_map.emplace("ExcIEEEAC7B.vfemax", &get_ExcIEEEAC7B_vfemax); + get_map.emplace("ExcIEEEAC7B.vrmax", &get_ExcIEEEAC7B_vrmax); + get_map.emplace("ExcIEEEAC7B.vrmin", &get_ExcIEEEAC7B_vrmin); } void ExcIEEEAC7B::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void ExcIEEEAC7B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC7B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC7B::declare() { return BaseClassDefiner(ExcIEEEAC7B::addConstructToMap, ExcIEEEAC7B::addPrimitiveAssignFnsToMap, ExcIEEEAC7B::addClassAssignFnsToMap, ExcIEEEAC7B::debugName); } +std::map ExcIEEEAC7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC7B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.hpp index 8e6afa3e6..92e4d374b 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC7B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.cpp index ebf326092..a11134d4a 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC8B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC8B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.seve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.seve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.tdr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ve1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ve2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vfemax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC8B::ExcIEEEAC8B() {} ExcIEEEAC8B::~ExcIEEEAC8B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC8B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC8B::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC8B.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC8B::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC8B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC8B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC8B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC8B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC8B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC8B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC8B_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcIEEEAC8B::debugString() const void ExcIEEEAC8B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC8B", &ExcIEEEAC8B_factory); + factory_map.emplace("ExcIEEEAC8B", &ExcIEEEAC8B_factory); } void ExcIEEEAC8B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC8B.ka", &assign_ExcIEEEAC8B_ka); - assign_map.emplace("cim:ExcIEEEAC8B.kc", &assign_ExcIEEEAC8B_kc); - assign_map.emplace("cim:ExcIEEEAC8B.kd", &assign_ExcIEEEAC8B_kd); - assign_map.emplace("cim:ExcIEEEAC8B.kdr", &assign_ExcIEEEAC8B_kdr); - assign_map.emplace("cim:ExcIEEEAC8B.ke", &assign_ExcIEEEAC8B_ke); - assign_map.emplace("cim:ExcIEEEAC8B.kir", &assign_ExcIEEEAC8B_kir); - assign_map.emplace("cim:ExcIEEEAC8B.kpr", &assign_ExcIEEEAC8B_kpr); - assign_map.emplace("cim:ExcIEEEAC8B.seve1", &assign_ExcIEEEAC8B_seve1); - assign_map.emplace("cim:ExcIEEEAC8B.seve2", &assign_ExcIEEEAC8B_seve2); - assign_map.emplace("cim:ExcIEEEAC8B.ta", &assign_ExcIEEEAC8B_ta); - assign_map.emplace("cim:ExcIEEEAC8B.tdr", &assign_ExcIEEEAC8B_tdr); - assign_map.emplace("cim:ExcIEEEAC8B.te", &assign_ExcIEEEAC8B_te); - assign_map.emplace("cim:ExcIEEEAC8B.ve1", &assign_ExcIEEEAC8B_ve1); - assign_map.emplace("cim:ExcIEEEAC8B.ve2", &assign_ExcIEEEAC8B_ve2); - assign_map.emplace("cim:ExcIEEEAC8B.vemin", &assign_ExcIEEEAC8B_vemin); - assign_map.emplace("cim:ExcIEEEAC8B.vfemax", &assign_ExcIEEEAC8B_vfemax); - assign_map.emplace("cim:ExcIEEEAC8B.vrmax", &assign_ExcIEEEAC8B_vrmax); - assign_map.emplace("cim:ExcIEEEAC8B.vrmin", &assign_ExcIEEEAC8B_vrmin); + assign_map.emplace("ExcIEEEAC8B.ka", &assign_ExcIEEEAC8B_ka); + assign_map.emplace("ExcIEEEAC8B.kc", &assign_ExcIEEEAC8B_kc); + assign_map.emplace("ExcIEEEAC8B.kd", &assign_ExcIEEEAC8B_kd); + assign_map.emplace("ExcIEEEAC8B.kdr", &assign_ExcIEEEAC8B_kdr); + assign_map.emplace("ExcIEEEAC8B.ke", &assign_ExcIEEEAC8B_ke); + assign_map.emplace("ExcIEEEAC8B.kir", &assign_ExcIEEEAC8B_kir); + assign_map.emplace("ExcIEEEAC8B.kpr", &assign_ExcIEEEAC8B_kpr); + assign_map.emplace("ExcIEEEAC8B.seve1", &assign_ExcIEEEAC8B_seve1); + assign_map.emplace("ExcIEEEAC8B.seve2", &assign_ExcIEEEAC8B_seve2); + assign_map.emplace("ExcIEEEAC8B.ta", &assign_ExcIEEEAC8B_ta); + assign_map.emplace("ExcIEEEAC8B.tdr", &assign_ExcIEEEAC8B_tdr); + assign_map.emplace("ExcIEEEAC8B.te", &assign_ExcIEEEAC8B_te); + assign_map.emplace("ExcIEEEAC8B.ve1", &assign_ExcIEEEAC8B_ve1); + assign_map.emplace("ExcIEEEAC8B.ve2", &assign_ExcIEEEAC8B_ve2); + assign_map.emplace("ExcIEEEAC8B.vemin", &assign_ExcIEEEAC8B_vemin); + assign_map.emplace("ExcIEEEAC8B.vfemax", &assign_ExcIEEEAC8B_vfemax); + assign_map.emplace("ExcIEEEAC8B.vrmax", &assign_ExcIEEEAC8B_vrmax); + assign_map.emplace("ExcIEEEAC8B.vrmin", &assign_ExcIEEEAC8B_vrmin); } void ExcIEEEAC8B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcIEEEAC8B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC8B.ka", &get_ExcIEEEAC8B_ka); - get_map.emplace("cim:ExcIEEEAC8B.kc", &get_ExcIEEEAC8B_kc); - get_map.emplace("cim:ExcIEEEAC8B.kd", &get_ExcIEEEAC8B_kd); - get_map.emplace("cim:ExcIEEEAC8B.kdr", &get_ExcIEEEAC8B_kdr); - get_map.emplace("cim:ExcIEEEAC8B.ke", &get_ExcIEEEAC8B_ke); - get_map.emplace("cim:ExcIEEEAC8B.kir", &get_ExcIEEEAC8B_kir); - get_map.emplace("cim:ExcIEEEAC8B.kpr", &get_ExcIEEEAC8B_kpr); - get_map.emplace("cim:ExcIEEEAC8B.seve1", &get_ExcIEEEAC8B_seve1); - get_map.emplace("cim:ExcIEEEAC8B.seve2", &get_ExcIEEEAC8B_seve2); - get_map.emplace("cim:ExcIEEEAC8B.ta", &get_ExcIEEEAC8B_ta); - get_map.emplace("cim:ExcIEEEAC8B.tdr", &get_ExcIEEEAC8B_tdr); - get_map.emplace("cim:ExcIEEEAC8B.te", &get_ExcIEEEAC8B_te); - get_map.emplace("cim:ExcIEEEAC8B.ve1", &get_ExcIEEEAC8B_ve1); - get_map.emplace("cim:ExcIEEEAC8B.ve2", &get_ExcIEEEAC8B_ve2); - get_map.emplace("cim:ExcIEEEAC8B.vemin", &get_ExcIEEEAC8B_vemin); - get_map.emplace("cim:ExcIEEEAC8B.vfemax", &get_ExcIEEEAC8B_vfemax); - get_map.emplace("cim:ExcIEEEAC8B.vrmax", &get_ExcIEEEAC8B_vrmax); - get_map.emplace("cim:ExcIEEEAC8B.vrmin", &get_ExcIEEEAC8B_vrmin); + get_map.emplace("ExcIEEEAC8B.ka", &get_ExcIEEEAC8B_ka); + get_map.emplace("ExcIEEEAC8B.kc", &get_ExcIEEEAC8B_kc); + get_map.emplace("ExcIEEEAC8B.kd", &get_ExcIEEEAC8B_kd); + get_map.emplace("ExcIEEEAC8B.kdr", &get_ExcIEEEAC8B_kdr); + get_map.emplace("ExcIEEEAC8B.ke", &get_ExcIEEEAC8B_ke); + get_map.emplace("ExcIEEEAC8B.kir", &get_ExcIEEEAC8B_kir); + get_map.emplace("ExcIEEEAC8B.kpr", &get_ExcIEEEAC8B_kpr); + get_map.emplace("ExcIEEEAC8B.seve1", &get_ExcIEEEAC8B_seve1); + get_map.emplace("ExcIEEEAC8B.seve2", &get_ExcIEEEAC8B_seve2); + get_map.emplace("ExcIEEEAC8B.ta", &get_ExcIEEEAC8B_ta); + get_map.emplace("ExcIEEEAC8B.tdr", &get_ExcIEEEAC8B_tdr); + get_map.emplace("ExcIEEEAC8B.te", &get_ExcIEEEAC8B_te); + get_map.emplace("ExcIEEEAC8B.ve1", &get_ExcIEEEAC8B_ve1); + get_map.emplace("ExcIEEEAC8B.ve2", &get_ExcIEEEAC8B_ve2); + get_map.emplace("ExcIEEEAC8B.vemin", &get_ExcIEEEAC8B_vemin); + get_map.emplace("ExcIEEEAC8B.vfemax", &get_ExcIEEEAC8B_vfemax); + get_map.emplace("ExcIEEEAC8B.vrmax", &get_ExcIEEEAC8B_vrmax); + get_map.emplace("ExcIEEEAC8B.vrmin", &get_ExcIEEEAC8B_vrmin); } void ExcIEEEAC8B::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcIEEEAC8B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC8B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC8B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC8B::declare() { return BaseClassDefiner(ExcIEEEAC8B::addConstructToMap, ExcIEEEAC8B::addPrimitiveAssignFnsToMap, ExcIEEEAC8B::addClassAssignFnsToMap, ExcIEEEAC8B::debugName); } +std::map ExcIEEEAC8B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC8B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.hpp index c9ca37813..4e6105a59 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEAC8B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC8B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.cpp index 51102e7b5..544db3f00 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC1A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC1A::ExcIEEEDC1A() {} ExcIEEEDC1A::~ExcIEEEDC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC1A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC1A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC1A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC1A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC1A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEDC1A::debugString() const void ExcIEEEDC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC1A", &ExcIEEEDC1A_factory); + factory_map.emplace("ExcIEEEDC1A", &ExcIEEEDC1A_factory); } void ExcIEEEDC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC1A.efd1", &assign_ExcIEEEDC1A_efd1); - assign_map.emplace("cim:ExcIEEEDC1A.efd2", &assign_ExcIEEEDC1A_efd2); - assign_map.emplace("cim:ExcIEEEDC1A.exclim", &assign_ExcIEEEDC1A_exclim); - assign_map.emplace("cim:ExcIEEEDC1A.ka", &assign_ExcIEEEDC1A_ka); - assign_map.emplace("cim:ExcIEEEDC1A.ke", &assign_ExcIEEEDC1A_ke); - assign_map.emplace("cim:ExcIEEEDC1A.kf", &assign_ExcIEEEDC1A_kf); - assign_map.emplace("cim:ExcIEEEDC1A.seefd1", &assign_ExcIEEEDC1A_seefd1); - assign_map.emplace("cim:ExcIEEEDC1A.seefd2", &assign_ExcIEEEDC1A_seefd2); - assign_map.emplace("cim:ExcIEEEDC1A.ta", &assign_ExcIEEEDC1A_ta); - assign_map.emplace("cim:ExcIEEEDC1A.tb", &assign_ExcIEEEDC1A_tb); - assign_map.emplace("cim:ExcIEEEDC1A.tc", &assign_ExcIEEEDC1A_tc); - assign_map.emplace("cim:ExcIEEEDC1A.te", &assign_ExcIEEEDC1A_te); - assign_map.emplace("cim:ExcIEEEDC1A.tf", &assign_ExcIEEEDC1A_tf); - assign_map.emplace("cim:ExcIEEEDC1A.uelin", &assign_ExcIEEEDC1A_uelin); - assign_map.emplace("cim:ExcIEEEDC1A.vrmax", &assign_ExcIEEEDC1A_vrmax); - assign_map.emplace("cim:ExcIEEEDC1A.vrmin", &assign_ExcIEEEDC1A_vrmin); + assign_map.emplace("ExcIEEEDC1A.efd1", &assign_ExcIEEEDC1A_efd1); + assign_map.emplace("ExcIEEEDC1A.efd2", &assign_ExcIEEEDC1A_efd2); + assign_map.emplace("ExcIEEEDC1A.exclim", &assign_ExcIEEEDC1A_exclim); + assign_map.emplace("ExcIEEEDC1A.ka", &assign_ExcIEEEDC1A_ka); + assign_map.emplace("ExcIEEEDC1A.ke", &assign_ExcIEEEDC1A_ke); + assign_map.emplace("ExcIEEEDC1A.kf", &assign_ExcIEEEDC1A_kf); + assign_map.emplace("ExcIEEEDC1A.seefd1", &assign_ExcIEEEDC1A_seefd1); + assign_map.emplace("ExcIEEEDC1A.seefd2", &assign_ExcIEEEDC1A_seefd2); + assign_map.emplace("ExcIEEEDC1A.ta", &assign_ExcIEEEDC1A_ta); + assign_map.emplace("ExcIEEEDC1A.tb", &assign_ExcIEEEDC1A_tb); + assign_map.emplace("ExcIEEEDC1A.tc", &assign_ExcIEEEDC1A_tc); + assign_map.emplace("ExcIEEEDC1A.te", &assign_ExcIEEEDC1A_te); + assign_map.emplace("ExcIEEEDC1A.tf", &assign_ExcIEEEDC1A_tf); + assign_map.emplace("ExcIEEEDC1A.uelin", &assign_ExcIEEEDC1A_uelin); + assign_map.emplace("ExcIEEEDC1A.vrmax", &assign_ExcIEEEDC1A_vrmax); + assign_map.emplace("ExcIEEEDC1A.vrmin", &assign_ExcIEEEDC1A_vrmin); } void ExcIEEEDC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEDC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC1A.efd1", &get_ExcIEEEDC1A_efd1); - get_map.emplace("cim:ExcIEEEDC1A.efd2", &get_ExcIEEEDC1A_efd2); - get_map.emplace("cim:ExcIEEEDC1A.exclim", &get_ExcIEEEDC1A_exclim); - get_map.emplace("cim:ExcIEEEDC1A.ka", &get_ExcIEEEDC1A_ka); - get_map.emplace("cim:ExcIEEEDC1A.ke", &get_ExcIEEEDC1A_ke); - get_map.emplace("cim:ExcIEEEDC1A.kf", &get_ExcIEEEDC1A_kf); - get_map.emplace("cim:ExcIEEEDC1A.seefd1", &get_ExcIEEEDC1A_seefd1); - get_map.emplace("cim:ExcIEEEDC1A.seefd2", &get_ExcIEEEDC1A_seefd2); - get_map.emplace("cim:ExcIEEEDC1A.ta", &get_ExcIEEEDC1A_ta); - get_map.emplace("cim:ExcIEEEDC1A.tb", &get_ExcIEEEDC1A_tb); - get_map.emplace("cim:ExcIEEEDC1A.tc", &get_ExcIEEEDC1A_tc); - get_map.emplace("cim:ExcIEEEDC1A.te", &get_ExcIEEEDC1A_te); - get_map.emplace("cim:ExcIEEEDC1A.tf", &get_ExcIEEEDC1A_tf); - get_map.emplace("cim:ExcIEEEDC1A.uelin", &get_ExcIEEEDC1A_uelin); - get_map.emplace("cim:ExcIEEEDC1A.vrmax", &get_ExcIEEEDC1A_vrmax); - get_map.emplace("cim:ExcIEEEDC1A.vrmin", &get_ExcIEEEDC1A_vrmin); + get_map.emplace("ExcIEEEDC1A.efd1", &get_ExcIEEEDC1A_efd1); + get_map.emplace("ExcIEEEDC1A.efd2", &get_ExcIEEEDC1A_efd2); + get_map.emplace("ExcIEEEDC1A.exclim", &get_ExcIEEEDC1A_exclim); + get_map.emplace("ExcIEEEDC1A.ka", &get_ExcIEEEDC1A_ka); + get_map.emplace("ExcIEEEDC1A.ke", &get_ExcIEEEDC1A_ke); + get_map.emplace("ExcIEEEDC1A.kf", &get_ExcIEEEDC1A_kf); + get_map.emplace("ExcIEEEDC1A.seefd1", &get_ExcIEEEDC1A_seefd1); + get_map.emplace("ExcIEEEDC1A.seefd2", &get_ExcIEEEDC1A_seefd2); + get_map.emplace("ExcIEEEDC1A.ta", &get_ExcIEEEDC1A_ta); + get_map.emplace("ExcIEEEDC1A.tb", &get_ExcIEEEDC1A_tb); + get_map.emplace("ExcIEEEDC1A.tc", &get_ExcIEEEDC1A_tc); + get_map.emplace("ExcIEEEDC1A.te", &get_ExcIEEEDC1A_te); + get_map.emplace("ExcIEEEDC1A.tf", &get_ExcIEEEDC1A_tf); + get_map.emplace("ExcIEEEDC1A.uelin", &get_ExcIEEEDC1A_uelin); + get_map.emplace("ExcIEEEDC1A.vrmax", &get_ExcIEEEDC1A_vrmax); + get_map.emplace("ExcIEEEDC1A.vrmin", &get_ExcIEEEDC1A_vrmin); } void ExcIEEEDC1A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEDC1A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC1A::declare() { return BaseClassDefiner(ExcIEEEDC1A::addConstructToMap, ExcIEEEDC1A::addPrimitiveAssignFnsToMap, ExcIEEEDC1A::addClassAssignFnsToMap, ExcIEEEDC1A::debugName); } +std::map ExcIEEEDC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.hpp index b3f403da2..b3951b32d 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEDC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.cpp index da3ebc726..14e9393e8 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC2A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC2A::ExcIEEEDC2A() {} ExcIEEEDC2A::~ExcIEEEDC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC2A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC2A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC2A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC2A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC2A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEDC2A::debugString() const void ExcIEEEDC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC2A", &ExcIEEEDC2A_factory); + factory_map.emplace("ExcIEEEDC2A", &ExcIEEEDC2A_factory); } void ExcIEEEDC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC2A.efd1", &assign_ExcIEEEDC2A_efd1); - assign_map.emplace("cim:ExcIEEEDC2A.efd2", &assign_ExcIEEEDC2A_efd2); - assign_map.emplace("cim:ExcIEEEDC2A.exclim", &assign_ExcIEEEDC2A_exclim); - assign_map.emplace("cim:ExcIEEEDC2A.ka", &assign_ExcIEEEDC2A_ka); - assign_map.emplace("cim:ExcIEEEDC2A.ke", &assign_ExcIEEEDC2A_ke); - assign_map.emplace("cim:ExcIEEEDC2A.kf", &assign_ExcIEEEDC2A_kf); - assign_map.emplace("cim:ExcIEEEDC2A.seefd1", &assign_ExcIEEEDC2A_seefd1); - assign_map.emplace("cim:ExcIEEEDC2A.seefd2", &assign_ExcIEEEDC2A_seefd2); - assign_map.emplace("cim:ExcIEEEDC2A.ta", &assign_ExcIEEEDC2A_ta); - assign_map.emplace("cim:ExcIEEEDC2A.tb", &assign_ExcIEEEDC2A_tb); - assign_map.emplace("cim:ExcIEEEDC2A.tc", &assign_ExcIEEEDC2A_tc); - assign_map.emplace("cim:ExcIEEEDC2A.te", &assign_ExcIEEEDC2A_te); - assign_map.emplace("cim:ExcIEEEDC2A.tf", &assign_ExcIEEEDC2A_tf); - assign_map.emplace("cim:ExcIEEEDC2A.uelin", &assign_ExcIEEEDC2A_uelin); - assign_map.emplace("cim:ExcIEEEDC2A.vrmax", &assign_ExcIEEEDC2A_vrmax); - assign_map.emplace("cim:ExcIEEEDC2A.vrmin", &assign_ExcIEEEDC2A_vrmin); + assign_map.emplace("ExcIEEEDC2A.efd1", &assign_ExcIEEEDC2A_efd1); + assign_map.emplace("ExcIEEEDC2A.efd2", &assign_ExcIEEEDC2A_efd2); + assign_map.emplace("ExcIEEEDC2A.exclim", &assign_ExcIEEEDC2A_exclim); + assign_map.emplace("ExcIEEEDC2A.ka", &assign_ExcIEEEDC2A_ka); + assign_map.emplace("ExcIEEEDC2A.ke", &assign_ExcIEEEDC2A_ke); + assign_map.emplace("ExcIEEEDC2A.kf", &assign_ExcIEEEDC2A_kf); + assign_map.emplace("ExcIEEEDC2A.seefd1", &assign_ExcIEEEDC2A_seefd1); + assign_map.emplace("ExcIEEEDC2A.seefd2", &assign_ExcIEEEDC2A_seefd2); + assign_map.emplace("ExcIEEEDC2A.ta", &assign_ExcIEEEDC2A_ta); + assign_map.emplace("ExcIEEEDC2A.tb", &assign_ExcIEEEDC2A_tb); + assign_map.emplace("ExcIEEEDC2A.tc", &assign_ExcIEEEDC2A_tc); + assign_map.emplace("ExcIEEEDC2A.te", &assign_ExcIEEEDC2A_te); + assign_map.emplace("ExcIEEEDC2A.tf", &assign_ExcIEEEDC2A_tf); + assign_map.emplace("ExcIEEEDC2A.uelin", &assign_ExcIEEEDC2A_uelin); + assign_map.emplace("ExcIEEEDC2A.vrmax", &assign_ExcIEEEDC2A_vrmax); + assign_map.emplace("ExcIEEEDC2A.vrmin", &assign_ExcIEEEDC2A_vrmin); } void ExcIEEEDC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEDC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC2A.efd1", &get_ExcIEEEDC2A_efd1); - get_map.emplace("cim:ExcIEEEDC2A.efd2", &get_ExcIEEEDC2A_efd2); - get_map.emplace("cim:ExcIEEEDC2A.exclim", &get_ExcIEEEDC2A_exclim); - get_map.emplace("cim:ExcIEEEDC2A.ka", &get_ExcIEEEDC2A_ka); - get_map.emplace("cim:ExcIEEEDC2A.ke", &get_ExcIEEEDC2A_ke); - get_map.emplace("cim:ExcIEEEDC2A.kf", &get_ExcIEEEDC2A_kf); - get_map.emplace("cim:ExcIEEEDC2A.seefd1", &get_ExcIEEEDC2A_seefd1); - get_map.emplace("cim:ExcIEEEDC2A.seefd2", &get_ExcIEEEDC2A_seefd2); - get_map.emplace("cim:ExcIEEEDC2A.ta", &get_ExcIEEEDC2A_ta); - get_map.emplace("cim:ExcIEEEDC2A.tb", &get_ExcIEEEDC2A_tb); - get_map.emplace("cim:ExcIEEEDC2A.tc", &get_ExcIEEEDC2A_tc); - get_map.emplace("cim:ExcIEEEDC2A.te", &get_ExcIEEEDC2A_te); - get_map.emplace("cim:ExcIEEEDC2A.tf", &get_ExcIEEEDC2A_tf); - get_map.emplace("cim:ExcIEEEDC2A.uelin", &get_ExcIEEEDC2A_uelin); - get_map.emplace("cim:ExcIEEEDC2A.vrmax", &get_ExcIEEEDC2A_vrmax); - get_map.emplace("cim:ExcIEEEDC2A.vrmin", &get_ExcIEEEDC2A_vrmin); + get_map.emplace("ExcIEEEDC2A.efd1", &get_ExcIEEEDC2A_efd1); + get_map.emplace("ExcIEEEDC2A.efd2", &get_ExcIEEEDC2A_efd2); + get_map.emplace("ExcIEEEDC2A.exclim", &get_ExcIEEEDC2A_exclim); + get_map.emplace("ExcIEEEDC2A.ka", &get_ExcIEEEDC2A_ka); + get_map.emplace("ExcIEEEDC2A.ke", &get_ExcIEEEDC2A_ke); + get_map.emplace("ExcIEEEDC2A.kf", &get_ExcIEEEDC2A_kf); + get_map.emplace("ExcIEEEDC2A.seefd1", &get_ExcIEEEDC2A_seefd1); + get_map.emplace("ExcIEEEDC2A.seefd2", &get_ExcIEEEDC2A_seefd2); + get_map.emplace("ExcIEEEDC2A.ta", &get_ExcIEEEDC2A_ta); + get_map.emplace("ExcIEEEDC2A.tb", &get_ExcIEEEDC2A_tb); + get_map.emplace("ExcIEEEDC2A.tc", &get_ExcIEEEDC2A_tc); + get_map.emplace("ExcIEEEDC2A.te", &get_ExcIEEEDC2A_te); + get_map.emplace("ExcIEEEDC2A.tf", &get_ExcIEEEDC2A_tf); + get_map.emplace("ExcIEEEDC2A.uelin", &get_ExcIEEEDC2A_uelin); + get_map.emplace("ExcIEEEDC2A.vrmax", &get_ExcIEEEDC2A_vrmax); + get_map.emplace("ExcIEEEDC2A.vrmin", &get_ExcIEEEDC2A_vrmin); } void ExcIEEEDC2A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEDC2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC2A::declare() { return BaseClassDefiner(ExcIEEEDC2A::addConstructToMap, ExcIEEEDC2A::addPrimitiveAssignFnsToMap, ExcIEEEDC2A::addClassAssignFnsToMap, ExcIEEEDC2A::debugName); } +std::map ExcIEEEDC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC2A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.hpp index 522fb8410..2f6149392 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEDC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC2A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.cpp index 0a3177ee8..767d339f8 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC3A.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.exclim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.kv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC3A::ExcIEEEDC3A() {} ExcIEEEDC3A::~ExcIEEEDC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC3A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC3A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.kv", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.trh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC3A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC3A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC3A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* ExcIEEEDC3A::debugString() const void ExcIEEEDC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC3A", &ExcIEEEDC3A_factory); + factory_map.emplace("ExcIEEEDC3A", &ExcIEEEDC3A_factory); } void ExcIEEEDC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC3A.efd1", &assign_ExcIEEEDC3A_efd1); - assign_map.emplace("cim:ExcIEEEDC3A.efd2", &assign_ExcIEEEDC3A_efd2); - assign_map.emplace("cim:ExcIEEEDC3A.exclim", &assign_ExcIEEEDC3A_exclim); - assign_map.emplace("cim:ExcIEEEDC3A.ke", &assign_ExcIEEEDC3A_ke); - assign_map.emplace("cim:ExcIEEEDC3A.kv", &assign_ExcIEEEDC3A_kv); - assign_map.emplace("cim:ExcIEEEDC3A.seefd1", &assign_ExcIEEEDC3A_seefd1); - assign_map.emplace("cim:ExcIEEEDC3A.seefd2", &assign_ExcIEEEDC3A_seefd2); - assign_map.emplace("cim:ExcIEEEDC3A.te", &assign_ExcIEEEDC3A_te); - assign_map.emplace("cim:ExcIEEEDC3A.trh", &assign_ExcIEEEDC3A_trh); - assign_map.emplace("cim:ExcIEEEDC3A.vrmax", &assign_ExcIEEEDC3A_vrmax); - assign_map.emplace("cim:ExcIEEEDC3A.vrmin", &assign_ExcIEEEDC3A_vrmin); + assign_map.emplace("ExcIEEEDC3A.efd1", &assign_ExcIEEEDC3A_efd1); + assign_map.emplace("ExcIEEEDC3A.efd2", &assign_ExcIEEEDC3A_efd2); + assign_map.emplace("ExcIEEEDC3A.exclim", &assign_ExcIEEEDC3A_exclim); + assign_map.emplace("ExcIEEEDC3A.ke", &assign_ExcIEEEDC3A_ke); + assign_map.emplace("ExcIEEEDC3A.kv", &assign_ExcIEEEDC3A_kv); + assign_map.emplace("ExcIEEEDC3A.seefd1", &assign_ExcIEEEDC3A_seefd1); + assign_map.emplace("ExcIEEEDC3A.seefd2", &assign_ExcIEEEDC3A_seefd2); + assign_map.emplace("ExcIEEEDC3A.te", &assign_ExcIEEEDC3A_te); + assign_map.emplace("ExcIEEEDC3A.trh", &assign_ExcIEEEDC3A_trh); + assign_map.emplace("ExcIEEEDC3A.vrmax", &assign_ExcIEEEDC3A_vrmax); + assign_map.emplace("ExcIEEEDC3A.vrmin", &assign_ExcIEEEDC3A_vrmin); } void ExcIEEEDC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void ExcIEEEDC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC3A.efd1", &get_ExcIEEEDC3A_efd1); - get_map.emplace("cim:ExcIEEEDC3A.efd2", &get_ExcIEEEDC3A_efd2); - get_map.emplace("cim:ExcIEEEDC3A.exclim", &get_ExcIEEEDC3A_exclim); - get_map.emplace("cim:ExcIEEEDC3A.ke", &get_ExcIEEEDC3A_ke); - get_map.emplace("cim:ExcIEEEDC3A.kv", &get_ExcIEEEDC3A_kv); - get_map.emplace("cim:ExcIEEEDC3A.seefd1", &get_ExcIEEEDC3A_seefd1); - get_map.emplace("cim:ExcIEEEDC3A.seefd2", &get_ExcIEEEDC3A_seefd2); - get_map.emplace("cim:ExcIEEEDC3A.te", &get_ExcIEEEDC3A_te); - get_map.emplace("cim:ExcIEEEDC3A.trh", &get_ExcIEEEDC3A_trh); - get_map.emplace("cim:ExcIEEEDC3A.vrmax", &get_ExcIEEEDC3A_vrmax); - get_map.emplace("cim:ExcIEEEDC3A.vrmin", &get_ExcIEEEDC3A_vrmin); + get_map.emplace("ExcIEEEDC3A.efd1", &get_ExcIEEEDC3A_efd1); + get_map.emplace("ExcIEEEDC3A.efd2", &get_ExcIEEEDC3A_efd2); + get_map.emplace("ExcIEEEDC3A.exclim", &get_ExcIEEEDC3A_exclim); + get_map.emplace("ExcIEEEDC3A.ke", &get_ExcIEEEDC3A_ke); + get_map.emplace("ExcIEEEDC3A.kv", &get_ExcIEEEDC3A_kv); + get_map.emplace("ExcIEEEDC3A.seefd1", &get_ExcIEEEDC3A_seefd1); + get_map.emplace("ExcIEEEDC3A.seefd2", &get_ExcIEEEDC3A_seefd2); + get_map.emplace("ExcIEEEDC3A.te", &get_ExcIEEEDC3A_te); + get_map.emplace("ExcIEEEDC3A.trh", &get_ExcIEEEDC3A_trh); + get_map.emplace("ExcIEEEDC3A.vrmax", &get_ExcIEEEDC3A_vrmax); + get_map.emplace("ExcIEEEDC3A.vrmin", &get_ExcIEEEDC3A_vrmin); } void ExcIEEEDC3A::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void ExcIEEEDC3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC3A::declare() { return BaseClassDefiner(ExcIEEEDC3A::addConstructToMap, ExcIEEEDC3A::addPrimitiveAssignFnsToMap, ExcIEEEDC3A::addClassAssignFnsToMap, ExcIEEEDC3A::debugName); } +std::map ExcIEEEDC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC3A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.hpp index 7c97b2656..aaff85bc4 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEDC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -64,8 +65,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -73,7 +81,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC3A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.cpp index 7f3838589..6943a6d89 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC4B.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.seefd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.seefd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vemin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC4B::ExcIEEEDC4B() {} ExcIEEEDC4B::~ExcIEEEDC4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEDC4B.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.td", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEDC4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEDC4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEDC4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEDC4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEDC4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEDC4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC4B_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcIEEEDC4B::debugString() const void ExcIEEEDC4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC4B", &ExcIEEEDC4B_factory); + factory_map.emplace("ExcIEEEDC4B", &ExcIEEEDC4B_factory); } void ExcIEEEDC4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC4B.efd1", &assign_ExcIEEEDC4B_efd1); - assign_map.emplace("cim:ExcIEEEDC4B.efd2", &assign_ExcIEEEDC4B_efd2); - assign_map.emplace("cim:ExcIEEEDC4B.ka", &assign_ExcIEEEDC4B_ka); - assign_map.emplace("cim:ExcIEEEDC4B.kd", &assign_ExcIEEEDC4B_kd); - assign_map.emplace("cim:ExcIEEEDC4B.ke", &assign_ExcIEEEDC4B_ke); - assign_map.emplace("cim:ExcIEEEDC4B.kf", &assign_ExcIEEEDC4B_kf); - assign_map.emplace("cim:ExcIEEEDC4B.ki", &assign_ExcIEEEDC4B_ki); - assign_map.emplace("cim:ExcIEEEDC4B.kp", &assign_ExcIEEEDC4B_kp); - assign_map.emplace("cim:ExcIEEEDC4B.oelin", &assign_ExcIEEEDC4B_oelin); - assign_map.emplace("cim:ExcIEEEDC4B.seefd1", &assign_ExcIEEEDC4B_seefd1); - assign_map.emplace("cim:ExcIEEEDC4B.seefd2", &assign_ExcIEEEDC4B_seefd2); - assign_map.emplace("cim:ExcIEEEDC4B.ta", &assign_ExcIEEEDC4B_ta); - assign_map.emplace("cim:ExcIEEEDC4B.td", &assign_ExcIEEEDC4B_td); - assign_map.emplace("cim:ExcIEEEDC4B.te", &assign_ExcIEEEDC4B_te); - assign_map.emplace("cim:ExcIEEEDC4B.tf", &assign_ExcIEEEDC4B_tf); - assign_map.emplace("cim:ExcIEEEDC4B.uelin", &assign_ExcIEEEDC4B_uelin); - assign_map.emplace("cim:ExcIEEEDC4B.vemin", &assign_ExcIEEEDC4B_vemin); - assign_map.emplace("cim:ExcIEEEDC4B.vrmax", &assign_ExcIEEEDC4B_vrmax); - assign_map.emplace("cim:ExcIEEEDC4B.vrmin", &assign_ExcIEEEDC4B_vrmin); + assign_map.emplace("ExcIEEEDC4B.efd1", &assign_ExcIEEEDC4B_efd1); + assign_map.emplace("ExcIEEEDC4B.efd2", &assign_ExcIEEEDC4B_efd2); + assign_map.emplace("ExcIEEEDC4B.ka", &assign_ExcIEEEDC4B_ka); + assign_map.emplace("ExcIEEEDC4B.kd", &assign_ExcIEEEDC4B_kd); + assign_map.emplace("ExcIEEEDC4B.ke", &assign_ExcIEEEDC4B_ke); + assign_map.emplace("ExcIEEEDC4B.kf", &assign_ExcIEEEDC4B_kf); + assign_map.emplace("ExcIEEEDC4B.ki", &assign_ExcIEEEDC4B_ki); + assign_map.emplace("ExcIEEEDC4B.kp", &assign_ExcIEEEDC4B_kp); + assign_map.emplace("ExcIEEEDC4B.oelin", &assign_ExcIEEEDC4B_oelin); + assign_map.emplace("ExcIEEEDC4B.seefd1", &assign_ExcIEEEDC4B_seefd1); + assign_map.emplace("ExcIEEEDC4B.seefd2", &assign_ExcIEEEDC4B_seefd2); + assign_map.emplace("ExcIEEEDC4B.ta", &assign_ExcIEEEDC4B_ta); + assign_map.emplace("ExcIEEEDC4B.td", &assign_ExcIEEEDC4B_td); + assign_map.emplace("ExcIEEEDC4B.te", &assign_ExcIEEEDC4B_te); + assign_map.emplace("ExcIEEEDC4B.tf", &assign_ExcIEEEDC4B_tf); + assign_map.emplace("ExcIEEEDC4B.uelin", &assign_ExcIEEEDC4B_uelin); + assign_map.emplace("ExcIEEEDC4B.vemin", &assign_ExcIEEEDC4B_vemin); + assign_map.emplace("ExcIEEEDC4B.vrmax", &assign_ExcIEEEDC4B_vrmax); + assign_map.emplace("ExcIEEEDC4B.vrmin", &assign_ExcIEEEDC4B_vrmin); } void ExcIEEEDC4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcIEEEDC4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC4B.efd1", &get_ExcIEEEDC4B_efd1); - get_map.emplace("cim:ExcIEEEDC4B.efd2", &get_ExcIEEEDC4B_efd2); - get_map.emplace("cim:ExcIEEEDC4B.ka", &get_ExcIEEEDC4B_ka); - get_map.emplace("cim:ExcIEEEDC4B.kd", &get_ExcIEEEDC4B_kd); - get_map.emplace("cim:ExcIEEEDC4B.ke", &get_ExcIEEEDC4B_ke); - get_map.emplace("cim:ExcIEEEDC4B.kf", &get_ExcIEEEDC4B_kf); - get_map.emplace("cim:ExcIEEEDC4B.ki", &get_ExcIEEEDC4B_ki); - get_map.emplace("cim:ExcIEEEDC4B.kp", &get_ExcIEEEDC4B_kp); - get_map.emplace("cim:ExcIEEEDC4B.oelin", &get_ExcIEEEDC4B_oelin); - get_map.emplace("cim:ExcIEEEDC4B.seefd1", &get_ExcIEEEDC4B_seefd1); - get_map.emplace("cim:ExcIEEEDC4B.seefd2", &get_ExcIEEEDC4B_seefd2); - get_map.emplace("cim:ExcIEEEDC4B.ta", &get_ExcIEEEDC4B_ta); - get_map.emplace("cim:ExcIEEEDC4B.td", &get_ExcIEEEDC4B_td); - get_map.emplace("cim:ExcIEEEDC4B.te", &get_ExcIEEEDC4B_te); - get_map.emplace("cim:ExcIEEEDC4B.tf", &get_ExcIEEEDC4B_tf); - get_map.emplace("cim:ExcIEEEDC4B.uelin", &get_ExcIEEEDC4B_uelin); - get_map.emplace("cim:ExcIEEEDC4B.vemin", &get_ExcIEEEDC4B_vemin); - get_map.emplace("cim:ExcIEEEDC4B.vrmax", &get_ExcIEEEDC4B_vrmax); - get_map.emplace("cim:ExcIEEEDC4B.vrmin", &get_ExcIEEEDC4B_vrmin); + get_map.emplace("ExcIEEEDC4B.efd1", &get_ExcIEEEDC4B_efd1); + get_map.emplace("ExcIEEEDC4B.efd2", &get_ExcIEEEDC4B_efd2); + get_map.emplace("ExcIEEEDC4B.ka", &get_ExcIEEEDC4B_ka); + get_map.emplace("ExcIEEEDC4B.kd", &get_ExcIEEEDC4B_kd); + get_map.emplace("ExcIEEEDC4B.ke", &get_ExcIEEEDC4B_ke); + get_map.emplace("ExcIEEEDC4B.kf", &get_ExcIEEEDC4B_kf); + get_map.emplace("ExcIEEEDC4B.ki", &get_ExcIEEEDC4B_ki); + get_map.emplace("ExcIEEEDC4B.kp", &get_ExcIEEEDC4B_kp); + get_map.emplace("ExcIEEEDC4B.oelin", &get_ExcIEEEDC4B_oelin); + get_map.emplace("ExcIEEEDC4B.seefd1", &get_ExcIEEEDC4B_seefd1); + get_map.emplace("ExcIEEEDC4B.seefd2", &get_ExcIEEEDC4B_seefd2); + get_map.emplace("ExcIEEEDC4B.ta", &get_ExcIEEEDC4B_ta); + get_map.emplace("ExcIEEEDC4B.td", &get_ExcIEEEDC4B_td); + get_map.emplace("ExcIEEEDC4B.te", &get_ExcIEEEDC4B_te); + get_map.emplace("ExcIEEEDC4B.tf", &get_ExcIEEEDC4B_tf); + get_map.emplace("ExcIEEEDC4B.uelin", &get_ExcIEEEDC4B_uelin); + get_map.emplace("ExcIEEEDC4B.vemin", &get_ExcIEEEDC4B_vemin); + get_map.emplace("ExcIEEEDC4B.vrmax", &get_ExcIEEEDC4B_vrmax); + get_map.emplace("ExcIEEEDC4B.vrmin", &get_ExcIEEEDC4B_vrmin); } void ExcIEEEDC4B::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcIEEEDC4B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC4B::declare() { return BaseClassDefiner(ExcIEEEDC4B::addConstructToMap, ExcIEEEDC4B::addPrimitiveAssignFnsToMap, ExcIEEEDC4B::addClassAssignFnsToMap, ExcIEEEDC4B::debugName); } +std::map ExcIEEEDC4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC4B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.hpp index b26843190..296cb5429 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEDC4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC4B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST1A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST1A.cpp index 17ef6c50f..279ec8bda 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST1A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST1A.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST1A.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.pssin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST1A::ExcIEEEST1A() {} ExcIEEEST1A::~ExcIEEEST1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEST1A.ilr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.klr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.pssin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tb1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEST1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEST1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEST1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEST1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEST1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEST1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST1A_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcIEEEST1A::debugString() const void ExcIEEEST1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST1A", &ExcIEEEST1A_factory); + factory_map.emplace("ExcIEEEST1A", &ExcIEEEST1A_factory); } void ExcIEEEST1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST1A.ilr", &assign_ExcIEEEST1A_ilr); - assign_map.emplace("cim:ExcIEEEST1A.ka", &assign_ExcIEEEST1A_ka); - assign_map.emplace("cim:ExcIEEEST1A.kc", &assign_ExcIEEEST1A_kc); - assign_map.emplace("cim:ExcIEEEST1A.kf", &assign_ExcIEEEST1A_kf); - assign_map.emplace("cim:ExcIEEEST1A.klr", &assign_ExcIEEEST1A_klr); - assign_map.emplace("cim:ExcIEEEST1A.pssin", &assign_ExcIEEEST1A_pssin); - assign_map.emplace("cim:ExcIEEEST1A.ta", &assign_ExcIEEEST1A_ta); - assign_map.emplace("cim:ExcIEEEST1A.tb", &assign_ExcIEEEST1A_tb); - assign_map.emplace("cim:ExcIEEEST1A.tb1", &assign_ExcIEEEST1A_tb1); - assign_map.emplace("cim:ExcIEEEST1A.tc", &assign_ExcIEEEST1A_tc); - assign_map.emplace("cim:ExcIEEEST1A.tc1", &assign_ExcIEEEST1A_tc1); - assign_map.emplace("cim:ExcIEEEST1A.tf", &assign_ExcIEEEST1A_tf); - assign_map.emplace("cim:ExcIEEEST1A.uelin", &assign_ExcIEEEST1A_uelin); - assign_map.emplace("cim:ExcIEEEST1A.vamax", &assign_ExcIEEEST1A_vamax); - assign_map.emplace("cim:ExcIEEEST1A.vamin", &assign_ExcIEEEST1A_vamin); - assign_map.emplace("cim:ExcIEEEST1A.vimax", &assign_ExcIEEEST1A_vimax); - assign_map.emplace("cim:ExcIEEEST1A.vimin", &assign_ExcIEEEST1A_vimin); - assign_map.emplace("cim:ExcIEEEST1A.vrmax", &assign_ExcIEEEST1A_vrmax); - assign_map.emplace("cim:ExcIEEEST1A.vrmin", &assign_ExcIEEEST1A_vrmin); + assign_map.emplace("ExcIEEEST1A.ilr", &assign_ExcIEEEST1A_ilr); + assign_map.emplace("ExcIEEEST1A.ka", &assign_ExcIEEEST1A_ka); + assign_map.emplace("ExcIEEEST1A.kc", &assign_ExcIEEEST1A_kc); + assign_map.emplace("ExcIEEEST1A.kf", &assign_ExcIEEEST1A_kf); + assign_map.emplace("ExcIEEEST1A.klr", &assign_ExcIEEEST1A_klr); + assign_map.emplace("ExcIEEEST1A.pssin", &assign_ExcIEEEST1A_pssin); + assign_map.emplace("ExcIEEEST1A.ta", &assign_ExcIEEEST1A_ta); + assign_map.emplace("ExcIEEEST1A.tb", &assign_ExcIEEEST1A_tb); + assign_map.emplace("ExcIEEEST1A.tb1", &assign_ExcIEEEST1A_tb1); + assign_map.emplace("ExcIEEEST1A.tc", &assign_ExcIEEEST1A_tc); + assign_map.emplace("ExcIEEEST1A.tc1", &assign_ExcIEEEST1A_tc1); + assign_map.emplace("ExcIEEEST1A.tf", &assign_ExcIEEEST1A_tf); + assign_map.emplace("ExcIEEEST1A.uelin", &assign_ExcIEEEST1A_uelin); + assign_map.emplace("ExcIEEEST1A.vamax", &assign_ExcIEEEST1A_vamax); + assign_map.emplace("ExcIEEEST1A.vamin", &assign_ExcIEEEST1A_vamin); + assign_map.emplace("ExcIEEEST1A.vimax", &assign_ExcIEEEST1A_vimax); + assign_map.emplace("ExcIEEEST1A.vimin", &assign_ExcIEEEST1A_vimin); + assign_map.emplace("ExcIEEEST1A.vrmax", &assign_ExcIEEEST1A_vrmax); + assign_map.emplace("ExcIEEEST1A.vrmin", &assign_ExcIEEEST1A_vrmin); } void ExcIEEEST1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,24 +681,24 @@ void ExcIEEEST1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST1A.ilr", &get_ExcIEEEST1A_ilr); - get_map.emplace("cim:ExcIEEEST1A.ka", &get_ExcIEEEST1A_ka); - get_map.emplace("cim:ExcIEEEST1A.kc", &get_ExcIEEEST1A_kc); - get_map.emplace("cim:ExcIEEEST1A.kf", &get_ExcIEEEST1A_kf); - get_map.emplace("cim:ExcIEEEST1A.klr", &get_ExcIEEEST1A_klr); - get_map.emplace("cim:ExcIEEEST1A.pssin", &get_ExcIEEEST1A_pssin); - get_map.emplace("cim:ExcIEEEST1A.ta", &get_ExcIEEEST1A_ta); - get_map.emplace("cim:ExcIEEEST1A.tb", &get_ExcIEEEST1A_tb); - get_map.emplace("cim:ExcIEEEST1A.tb1", &get_ExcIEEEST1A_tb1); - get_map.emplace("cim:ExcIEEEST1A.tc", &get_ExcIEEEST1A_tc); - get_map.emplace("cim:ExcIEEEST1A.tc1", &get_ExcIEEEST1A_tc1); - get_map.emplace("cim:ExcIEEEST1A.tf", &get_ExcIEEEST1A_tf); - get_map.emplace("cim:ExcIEEEST1A.vamax", &get_ExcIEEEST1A_vamax); - get_map.emplace("cim:ExcIEEEST1A.vamin", &get_ExcIEEEST1A_vamin); - get_map.emplace("cim:ExcIEEEST1A.vimax", &get_ExcIEEEST1A_vimax); - get_map.emplace("cim:ExcIEEEST1A.vimin", &get_ExcIEEEST1A_vimin); - get_map.emplace("cim:ExcIEEEST1A.vrmax", &get_ExcIEEEST1A_vrmax); - get_map.emplace("cim:ExcIEEEST1A.vrmin", &get_ExcIEEEST1A_vrmin); + get_map.emplace("ExcIEEEST1A.ilr", &get_ExcIEEEST1A_ilr); + get_map.emplace("ExcIEEEST1A.ka", &get_ExcIEEEST1A_ka); + get_map.emplace("ExcIEEEST1A.kc", &get_ExcIEEEST1A_kc); + get_map.emplace("ExcIEEEST1A.kf", &get_ExcIEEEST1A_kf); + get_map.emplace("ExcIEEEST1A.klr", &get_ExcIEEEST1A_klr); + get_map.emplace("ExcIEEEST1A.pssin", &get_ExcIEEEST1A_pssin); + get_map.emplace("ExcIEEEST1A.ta", &get_ExcIEEEST1A_ta); + get_map.emplace("ExcIEEEST1A.tb", &get_ExcIEEEST1A_tb); + get_map.emplace("ExcIEEEST1A.tb1", &get_ExcIEEEST1A_tb1); + get_map.emplace("ExcIEEEST1A.tc", &get_ExcIEEEST1A_tc); + get_map.emplace("ExcIEEEST1A.tc1", &get_ExcIEEEST1A_tc1); + get_map.emplace("ExcIEEEST1A.tf", &get_ExcIEEEST1A_tf); + get_map.emplace("ExcIEEEST1A.vamax", &get_ExcIEEEST1A_vamax); + get_map.emplace("ExcIEEEST1A.vamin", &get_ExcIEEEST1A_vamin); + get_map.emplace("ExcIEEEST1A.vimax", &get_ExcIEEEST1A_vimax); + get_map.emplace("ExcIEEEST1A.vimin", &get_ExcIEEEST1A_vimin); + get_map.emplace("ExcIEEEST1A.vrmax", &get_ExcIEEEST1A_vrmax); + get_map.emplace("ExcIEEEST1A.vrmin", &get_ExcIEEEST1A_vrmin); } void ExcIEEEST1A::addClassGetFnsToMap(std::map& get_map) const @@ -677,7 +709,13 @@ void ExcIEEEST1A::addClassGetFnsToMap(std::map& void ExcIEEEST1A::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST1A.uelin", &get_ExcIEEEST1A_uelin); + get_map.emplace("ExcIEEEST1A.uelin", &get_ExcIEEEST1A_uelin); +} + +bool ExcIEEEST1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST1A::declare() @@ -685,6 +723,14 @@ const BaseClassDefiner ExcIEEEST1A::declare() return BaseClassDefiner(ExcIEEEST1A::addConstructToMap, ExcIEEEST1A::addPrimitiveAssignFnsToMap, ExcIEEEST1A::addClassAssignFnsToMap, ExcIEEEST1A::debugName); } +std::map ExcIEEEST1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST1A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST1A.hpp index 66d916386..b8f697a20 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST1A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "ExcIEEEST1AUELselectorKind.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST2A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST2A.cpp index 0d80e5ac3..b07844550 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST2A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST2A.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST2A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST2A::ExcIEEEST2A() {} ExcIEEEST2A::~ExcIEEEST2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST2A::getClassNamespaceUrl() const { - { "cim:ExcIEEEST2A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST2A::getPossibleProfilesForClass() const +const std::string& ExcIEEEST2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST2A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST2A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcIEEEST2A::debugString() const void ExcIEEEST2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST2A", &ExcIEEEST2A_factory); + factory_map.emplace("ExcIEEEST2A", &ExcIEEEST2A_factory); } void ExcIEEEST2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST2A.efdmax", &assign_ExcIEEEST2A_efdmax); - assign_map.emplace("cim:ExcIEEEST2A.ka", &assign_ExcIEEEST2A_ka); - assign_map.emplace("cim:ExcIEEEST2A.kc", &assign_ExcIEEEST2A_kc); - assign_map.emplace("cim:ExcIEEEST2A.ke", &assign_ExcIEEEST2A_ke); - assign_map.emplace("cim:ExcIEEEST2A.kf", &assign_ExcIEEEST2A_kf); - assign_map.emplace("cim:ExcIEEEST2A.ki", &assign_ExcIEEEST2A_ki); - assign_map.emplace("cim:ExcIEEEST2A.kp", &assign_ExcIEEEST2A_kp); - assign_map.emplace("cim:ExcIEEEST2A.ta", &assign_ExcIEEEST2A_ta); - assign_map.emplace("cim:ExcIEEEST2A.te", &assign_ExcIEEEST2A_te); - assign_map.emplace("cim:ExcIEEEST2A.tf", &assign_ExcIEEEST2A_tf); - assign_map.emplace("cim:ExcIEEEST2A.uelin", &assign_ExcIEEEST2A_uelin); - assign_map.emplace("cim:ExcIEEEST2A.vrmax", &assign_ExcIEEEST2A_vrmax); - assign_map.emplace("cim:ExcIEEEST2A.vrmin", &assign_ExcIEEEST2A_vrmin); + assign_map.emplace("ExcIEEEST2A.efdmax", &assign_ExcIEEEST2A_efdmax); + assign_map.emplace("ExcIEEEST2A.ka", &assign_ExcIEEEST2A_ka); + assign_map.emplace("ExcIEEEST2A.kc", &assign_ExcIEEEST2A_kc); + assign_map.emplace("ExcIEEEST2A.ke", &assign_ExcIEEEST2A_ke); + assign_map.emplace("ExcIEEEST2A.kf", &assign_ExcIEEEST2A_kf); + assign_map.emplace("ExcIEEEST2A.ki", &assign_ExcIEEEST2A_ki); + assign_map.emplace("ExcIEEEST2A.kp", &assign_ExcIEEEST2A_kp); + assign_map.emplace("ExcIEEEST2A.ta", &assign_ExcIEEEST2A_ta); + assign_map.emplace("ExcIEEEST2A.te", &assign_ExcIEEEST2A_te); + assign_map.emplace("ExcIEEEST2A.tf", &assign_ExcIEEEST2A_tf); + assign_map.emplace("ExcIEEEST2A.uelin", &assign_ExcIEEEST2A_uelin); + assign_map.emplace("ExcIEEEST2A.vrmax", &assign_ExcIEEEST2A_vrmax); + assign_map.emplace("ExcIEEEST2A.vrmin", &assign_ExcIEEEST2A_vrmin); } void ExcIEEEST2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcIEEEST2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST2A.efdmax", &get_ExcIEEEST2A_efdmax); - get_map.emplace("cim:ExcIEEEST2A.ka", &get_ExcIEEEST2A_ka); - get_map.emplace("cim:ExcIEEEST2A.kc", &get_ExcIEEEST2A_kc); - get_map.emplace("cim:ExcIEEEST2A.ke", &get_ExcIEEEST2A_ke); - get_map.emplace("cim:ExcIEEEST2A.kf", &get_ExcIEEEST2A_kf); - get_map.emplace("cim:ExcIEEEST2A.ki", &get_ExcIEEEST2A_ki); - get_map.emplace("cim:ExcIEEEST2A.kp", &get_ExcIEEEST2A_kp); - get_map.emplace("cim:ExcIEEEST2A.ta", &get_ExcIEEEST2A_ta); - get_map.emplace("cim:ExcIEEEST2A.te", &get_ExcIEEEST2A_te); - get_map.emplace("cim:ExcIEEEST2A.tf", &get_ExcIEEEST2A_tf); - get_map.emplace("cim:ExcIEEEST2A.uelin", &get_ExcIEEEST2A_uelin); - get_map.emplace("cim:ExcIEEEST2A.vrmax", &get_ExcIEEEST2A_vrmax); - get_map.emplace("cim:ExcIEEEST2A.vrmin", &get_ExcIEEEST2A_vrmin); + get_map.emplace("ExcIEEEST2A.efdmax", &get_ExcIEEEST2A_efdmax); + get_map.emplace("ExcIEEEST2A.ka", &get_ExcIEEEST2A_ka); + get_map.emplace("ExcIEEEST2A.kc", &get_ExcIEEEST2A_kc); + get_map.emplace("ExcIEEEST2A.ke", &get_ExcIEEEST2A_ke); + get_map.emplace("ExcIEEEST2A.kf", &get_ExcIEEEST2A_kf); + get_map.emplace("ExcIEEEST2A.ki", &get_ExcIEEEST2A_ki); + get_map.emplace("ExcIEEEST2A.kp", &get_ExcIEEEST2A_kp); + get_map.emplace("ExcIEEEST2A.ta", &get_ExcIEEEST2A_ta); + get_map.emplace("ExcIEEEST2A.te", &get_ExcIEEEST2A_te); + get_map.emplace("ExcIEEEST2A.tf", &get_ExcIEEEST2A_tf); + get_map.emplace("ExcIEEEST2A.uelin", &get_ExcIEEEST2A_uelin); + get_map.emplace("ExcIEEEST2A.vrmax", &get_ExcIEEEST2A_vrmax); + get_map.emplace("ExcIEEEST2A.vrmin", &get_ExcIEEEST2A_vrmin); } void ExcIEEEST2A::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcIEEEST2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST2A::declare() { return BaseClassDefiner(ExcIEEEST2A::addConstructToMap, ExcIEEEST2A::addPrimitiveAssignFnsToMap, ExcIEEEST2A::addClassAssignFnsToMap, ExcIEEEST2A::debugName); } +std::map ExcIEEEST2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST2A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST2A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST2A.hpp index 14b7fc4ac..d61ade0b8 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST2A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST2A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST3A.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST3A.cpp index 143a70444..43ca93460 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST3A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST3A.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST3A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST3A::ExcIEEEST3A() {} ExcIEEEST3A::~ExcIEEEST3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEST3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.km", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.thetap", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tm", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEST3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEST3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEST3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEST3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEST3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEST3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST3A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -646,31 +678,31 @@ const char* ExcIEEEST3A::debugString() const void ExcIEEEST3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST3A", &ExcIEEEST3A_factory); + factory_map.emplace("ExcIEEEST3A", &ExcIEEEST3A_factory); } void ExcIEEEST3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST3A.ka", &assign_ExcIEEEST3A_ka); - assign_map.emplace("cim:ExcIEEEST3A.kc", &assign_ExcIEEEST3A_kc); - assign_map.emplace("cim:ExcIEEEST3A.kg", &assign_ExcIEEEST3A_kg); - assign_map.emplace("cim:ExcIEEEST3A.ki", &assign_ExcIEEEST3A_ki); - assign_map.emplace("cim:ExcIEEEST3A.km", &assign_ExcIEEEST3A_km); - assign_map.emplace("cim:ExcIEEEST3A.kp", &assign_ExcIEEEST3A_kp); - assign_map.emplace("cim:ExcIEEEST3A.ta", &assign_ExcIEEEST3A_ta); - assign_map.emplace("cim:ExcIEEEST3A.tb", &assign_ExcIEEEST3A_tb); - assign_map.emplace("cim:ExcIEEEST3A.tc", &assign_ExcIEEEST3A_tc); - assign_map.emplace("cim:ExcIEEEST3A.thetap", &assign_ExcIEEEST3A_thetap); - assign_map.emplace("cim:ExcIEEEST3A.tm", &assign_ExcIEEEST3A_tm); - assign_map.emplace("cim:ExcIEEEST3A.vbmax", &assign_ExcIEEEST3A_vbmax); - assign_map.emplace("cim:ExcIEEEST3A.vgmax", &assign_ExcIEEEST3A_vgmax); - assign_map.emplace("cim:ExcIEEEST3A.vimax", &assign_ExcIEEEST3A_vimax); - assign_map.emplace("cim:ExcIEEEST3A.vimin", &assign_ExcIEEEST3A_vimin); - assign_map.emplace("cim:ExcIEEEST3A.vmmax", &assign_ExcIEEEST3A_vmmax); - assign_map.emplace("cim:ExcIEEEST3A.vmmin", &assign_ExcIEEEST3A_vmmin); - assign_map.emplace("cim:ExcIEEEST3A.vrmax", &assign_ExcIEEEST3A_vrmax); - assign_map.emplace("cim:ExcIEEEST3A.vrmin", &assign_ExcIEEEST3A_vrmin); - assign_map.emplace("cim:ExcIEEEST3A.xl", &assign_ExcIEEEST3A_xl); + assign_map.emplace("ExcIEEEST3A.ka", &assign_ExcIEEEST3A_ka); + assign_map.emplace("ExcIEEEST3A.kc", &assign_ExcIEEEST3A_kc); + assign_map.emplace("ExcIEEEST3A.kg", &assign_ExcIEEEST3A_kg); + assign_map.emplace("ExcIEEEST3A.ki", &assign_ExcIEEEST3A_ki); + assign_map.emplace("ExcIEEEST3A.km", &assign_ExcIEEEST3A_km); + assign_map.emplace("ExcIEEEST3A.kp", &assign_ExcIEEEST3A_kp); + assign_map.emplace("ExcIEEEST3A.ta", &assign_ExcIEEEST3A_ta); + assign_map.emplace("ExcIEEEST3A.tb", &assign_ExcIEEEST3A_tb); + assign_map.emplace("ExcIEEEST3A.tc", &assign_ExcIEEEST3A_tc); + assign_map.emplace("ExcIEEEST3A.thetap", &assign_ExcIEEEST3A_thetap); + assign_map.emplace("ExcIEEEST3A.tm", &assign_ExcIEEEST3A_tm); + assign_map.emplace("ExcIEEEST3A.vbmax", &assign_ExcIEEEST3A_vbmax); + assign_map.emplace("ExcIEEEST3A.vgmax", &assign_ExcIEEEST3A_vgmax); + assign_map.emplace("ExcIEEEST3A.vimax", &assign_ExcIEEEST3A_vimax); + assign_map.emplace("ExcIEEEST3A.vimin", &assign_ExcIEEEST3A_vimin); + assign_map.emplace("ExcIEEEST3A.vmmax", &assign_ExcIEEEST3A_vmmax); + assign_map.emplace("ExcIEEEST3A.vmmin", &assign_ExcIEEEST3A_vmmin); + assign_map.emplace("ExcIEEEST3A.vrmax", &assign_ExcIEEEST3A_vrmax); + assign_map.emplace("ExcIEEEST3A.vrmin", &assign_ExcIEEEST3A_vrmin); + assign_map.emplace("ExcIEEEST3A.xl", &assign_ExcIEEEST3A_xl); } void ExcIEEEST3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -680,26 +712,26 @@ void ExcIEEEST3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST3A.ka", &get_ExcIEEEST3A_ka); - get_map.emplace("cim:ExcIEEEST3A.kc", &get_ExcIEEEST3A_kc); - get_map.emplace("cim:ExcIEEEST3A.kg", &get_ExcIEEEST3A_kg); - get_map.emplace("cim:ExcIEEEST3A.ki", &get_ExcIEEEST3A_ki); - get_map.emplace("cim:ExcIEEEST3A.km", &get_ExcIEEEST3A_km); - get_map.emplace("cim:ExcIEEEST3A.kp", &get_ExcIEEEST3A_kp); - get_map.emplace("cim:ExcIEEEST3A.ta", &get_ExcIEEEST3A_ta); - get_map.emplace("cim:ExcIEEEST3A.tb", &get_ExcIEEEST3A_tb); - get_map.emplace("cim:ExcIEEEST3A.tc", &get_ExcIEEEST3A_tc); - get_map.emplace("cim:ExcIEEEST3A.thetap", &get_ExcIEEEST3A_thetap); - get_map.emplace("cim:ExcIEEEST3A.tm", &get_ExcIEEEST3A_tm); - get_map.emplace("cim:ExcIEEEST3A.vbmax", &get_ExcIEEEST3A_vbmax); - get_map.emplace("cim:ExcIEEEST3A.vgmax", &get_ExcIEEEST3A_vgmax); - get_map.emplace("cim:ExcIEEEST3A.vimax", &get_ExcIEEEST3A_vimax); - get_map.emplace("cim:ExcIEEEST3A.vimin", &get_ExcIEEEST3A_vimin); - get_map.emplace("cim:ExcIEEEST3A.vmmax", &get_ExcIEEEST3A_vmmax); - get_map.emplace("cim:ExcIEEEST3A.vmmin", &get_ExcIEEEST3A_vmmin); - get_map.emplace("cim:ExcIEEEST3A.vrmax", &get_ExcIEEEST3A_vrmax); - get_map.emplace("cim:ExcIEEEST3A.vrmin", &get_ExcIEEEST3A_vrmin); - get_map.emplace("cim:ExcIEEEST3A.xl", &get_ExcIEEEST3A_xl); + get_map.emplace("ExcIEEEST3A.ka", &get_ExcIEEEST3A_ka); + get_map.emplace("ExcIEEEST3A.kc", &get_ExcIEEEST3A_kc); + get_map.emplace("ExcIEEEST3A.kg", &get_ExcIEEEST3A_kg); + get_map.emplace("ExcIEEEST3A.ki", &get_ExcIEEEST3A_ki); + get_map.emplace("ExcIEEEST3A.km", &get_ExcIEEEST3A_km); + get_map.emplace("ExcIEEEST3A.kp", &get_ExcIEEEST3A_kp); + get_map.emplace("ExcIEEEST3A.ta", &get_ExcIEEEST3A_ta); + get_map.emplace("ExcIEEEST3A.tb", &get_ExcIEEEST3A_tb); + get_map.emplace("ExcIEEEST3A.tc", &get_ExcIEEEST3A_tc); + get_map.emplace("ExcIEEEST3A.thetap", &get_ExcIEEEST3A_thetap); + get_map.emplace("ExcIEEEST3A.tm", &get_ExcIEEEST3A_tm); + get_map.emplace("ExcIEEEST3A.vbmax", &get_ExcIEEEST3A_vbmax); + get_map.emplace("ExcIEEEST3A.vgmax", &get_ExcIEEEST3A_vgmax); + get_map.emplace("ExcIEEEST3A.vimax", &get_ExcIEEEST3A_vimax); + get_map.emplace("ExcIEEEST3A.vimin", &get_ExcIEEEST3A_vimin); + get_map.emplace("ExcIEEEST3A.vmmax", &get_ExcIEEEST3A_vmmax); + get_map.emplace("ExcIEEEST3A.vmmin", &get_ExcIEEEST3A_vmmin); + get_map.emplace("ExcIEEEST3A.vrmax", &get_ExcIEEEST3A_vrmax); + get_map.emplace("ExcIEEEST3A.vrmin", &get_ExcIEEEST3A_vrmin); + get_map.emplace("ExcIEEEST3A.xl", &get_ExcIEEEST3A_xl); } void ExcIEEEST3A::addClassGetFnsToMap(std::map& get_map) const @@ -712,11 +744,25 @@ void ExcIEEEST3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST3A::declare() { return BaseClassDefiner(ExcIEEEST3A::addConstructToMap, ExcIEEEST3A::addPrimitiveAssignFnsToMap, ExcIEEEST3A::addClassAssignFnsToMap, ExcIEEEST3A::debugName); } +std::map ExcIEEEST3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST3A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST3A.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST3A.hpp index e2f7c6f05..e58fac5eb 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST3A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -90,8 +91,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -99,7 +107,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST3A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST4B.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST4B.cpp index 9912a54a6..6ffbf67f4 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST4B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST4B.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST4B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kpm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST4B::ExcIEEEST4B() {} ExcIEEEST4B::~ExcIEEEST4B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST4B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST4B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST4B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kpm", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.thetap", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.xl", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST4B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST4B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST4B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST4B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST4B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEST4B::debugString() const void ExcIEEEST4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST4B", &ExcIEEEST4B_factory); + factory_map.emplace("ExcIEEEST4B", &ExcIEEEST4B_factory); } void ExcIEEEST4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST4B.kc", &assign_ExcIEEEST4B_kc); - assign_map.emplace("cim:ExcIEEEST4B.kg", &assign_ExcIEEEST4B_kg); - assign_map.emplace("cim:ExcIEEEST4B.ki", &assign_ExcIEEEST4B_ki); - assign_map.emplace("cim:ExcIEEEST4B.kim", &assign_ExcIEEEST4B_kim); - assign_map.emplace("cim:ExcIEEEST4B.kir", &assign_ExcIEEEST4B_kir); - assign_map.emplace("cim:ExcIEEEST4B.kp", &assign_ExcIEEEST4B_kp); - assign_map.emplace("cim:ExcIEEEST4B.kpm", &assign_ExcIEEEST4B_kpm); - assign_map.emplace("cim:ExcIEEEST4B.kpr", &assign_ExcIEEEST4B_kpr); - assign_map.emplace("cim:ExcIEEEST4B.ta", &assign_ExcIEEEST4B_ta); - assign_map.emplace("cim:ExcIEEEST4B.thetap", &assign_ExcIEEEST4B_thetap); - assign_map.emplace("cim:ExcIEEEST4B.vbmax", &assign_ExcIEEEST4B_vbmax); - assign_map.emplace("cim:ExcIEEEST4B.vmmax", &assign_ExcIEEEST4B_vmmax); - assign_map.emplace("cim:ExcIEEEST4B.vmmin", &assign_ExcIEEEST4B_vmmin); - assign_map.emplace("cim:ExcIEEEST4B.vrmax", &assign_ExcIEEEST4B_vrmax); - assign_map.emplace("cim:ExcIEEEST4B.vrmin", &assign_ExcIEEEST4B_vrmin); - assign_map.emplace("cim:ExcIEEEST4B.xl", &assign_ExcIEEEST4B_xl); + assign_map.emplace("ExcIEEEST4B.kc", &assign_ExcIEEEST4B_kc); + assign_map.emplace("ExcIEEEST4B.kg", &assign_ExcIEEEST4B_kg); + assign_map.emplace("ExcIEEEST4B.ki", &assign_ExcIEEEST4B_ki); + assign_map.emplace("ExcIEEEST4B.kim", &assign_ExcIEEEST4B_kim); + assign_map.emplace("ExcIEEEST4B.kir", &assign_ExcIEEEST4B_kir); + assign_map.emplace("ExcIEEEST4B.kp", &assign_ExcIEEEST4B_kp); + assign_map.emplace("ExcIEEEST4B.kpm", &assign_ExcIEEEST4B_kpm); + assign_map.emplace("ExcIEEEST4B.kpr", &assign_ExcIEEEST4B_kpr); + assign_map.emplace("ExcIEEEST4B.ta", &assign_ExcIEEEST4B_ta); + assign_map.emplace("ExcIEEEST4B.thetap", &assign_ExcIEEEST4B_thetap); + assign_map.emplace("ExcIEEEST4B.vbmax", &assign_ExcIEEEST4B_vbmax); + assign_map.emplace("ExcIEEEST4B.vmmax", &assign_ExcIEEEST4B_vmmax); + assign_map.emplace("ExcIEEEST4B.vmmin", &assign_ExcIEEEST4B_vmmin); + assign_map.emplace("ExcIEEEST4B.vrmax", &assign_ExcIEEEST4B_vrmax); + assign_map.emplace("ExcIEEEST4B.vrmin", &assign_ExcIEEEST4B_vrmin); + assign_map.emplace("ExcIEEEST4B.xl", &assign_ExcIEEEST4B_xl); } void ExcIEEEST4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEST4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST4B.kc", &get_ExcIEEEST4B_kc); - get_map.emplace("cim:ExcIEEEST4B.kg", &get_ExcIEEEST4B_kg); - get_map.emplace("cim:ExcIEEEST4B.ki", &get_ExcIEEEST4B_ki); - get_map.emplace("cim:ExcIEEEST4B.kim", &get_ExcIEEEST4B_kim); - get_map.emplace("cim:ExcIEEEST4B.kir", &get_ExcIEEEST4B_kir); - get_map.emplace("cim:ExcIEEEST4B.kp", &get_ExcIEEEST4B_kp); - get_map.emplace("cim:ExcIEEEST4B.kpm", &get_ExcIEEEST4B_kpm); - get_map.emplace("cim:ExcIEEEST4B.kpr", &get_ExcIEEEST4B_kpr); - get_map.emplace("cim:ExcIEEEST4B.ta", &get_ExcIEEEST4B_ta); - get_map.emplace("cim:ExcIEEEST4B.thetap", &get_ExcIEEEST4B_thetap); - get_map.emplace("cim:ExcIEEEST4B.vbmax", &get_ExcIEEEST4B_vbmax); - get_map.emplace("cim:ExcIEEEST4B.vmmax", &get_ExcIEEEST4B_vmmax); - get_map.emplace("cim:ExcIEEEST4B.vmmin", &get_ExcIEEEST4B_vmmin); - get_map.emplace("cim:ExcIEEEST4B.vrmax", &get_ExcIEEEST4B_vrmax); - get_map.emplace("cim:ExcIEEEST4B.vrmin", &get_ExcIEEEST4B_vrmin); - get_map.emplace("cim:ExcIEEEST4B.xl", &get_ExcIEEEST4B_xl); + get_map.emplace("ExcIEEEST4B.kc", &get_ExcIEEEST4B_kc); + get_map.emplace("ExcIEEEST4B.kg", &get_ExcIEEEST4B_kg); + get_map.emplace("ExcIEEEST4B.ki", &get_ExcIEEEST4B_ki); + get_map.emplace("ExcIEEEST4B.kim", &get_ExcIEEEST4B_kim); + get_map.emplace("ExcIEEEST4B.kir", &get_ExcIEEEST4B_kir); + get_map.emplace("ExcIEEEST4B.kp", &get_ExcIEEEST4B_kp); + get_map.emplace("ExcIEEEST4B.kpm", &get_ExcIEEEST4B_kpm); + get_map.emplace("ExcIEEEST4B.kpr", &get_ExcIEEEST4B_kpr); + get_map.emplace("ExcIEEEST4B.ta", &get_ExcIEEEST4B_ta); + get_map.emplace("ExcIEEEST4B.thetap", &get_ExcIEEEST4B_thetap); + get_map.emplace("ExcIEEEST4B.vbmax", &get_ExcIEEEST4B_vbmax); + get_map.emplace("ExcIEEEST4B.vmmax", &get_ExcIEEEST4B_vmmax); + get_map.emplace("ExcIEEEST4B.vmmin", &get_ExcIEEEST4B_vmmin); + get_map.emplace("ExcIEEEST4B.vrmax", &get_ExcIEEEST4B_vrmax); + get_map.emplace("ExcIEEEST4B.vrmin", &get_ExcIEEEST4B_vrmin); + get_map.emplace("ExcIEEEST4B.xl", &get_ExcIEEEST4B_xl); } void ExcIEEEST4B::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEST4B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST4B::declare() { return BaseClassDefiner(ExcIEEEST4B::addConstructToMap, ExcIEEEST4B::addPrimitiveAssignFnsToMap, ExcIEEEST4B::addClassAssignFnsToMap, ExcIEEEST4B::debugName); } +std::map ExcIEEEST4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST4B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST4B.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST4B.hpp index b3ac3afe3..dab765741 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST4B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -78,8 +79,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -87,7 +95,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST4B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST5B.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST5B.cpp index 49f99553d..0f1a05d5e 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST5B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST5B.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST5B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST5B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.kr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tob1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tob2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.toc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.toc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tub1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tub2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tuc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tuc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST5B::ExcIEEEST5B() {} ExcIEEEST5B::~ExcIEEEST5B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST5B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST5B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST5B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.kr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.t1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tb1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tb2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tob1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tob2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.toc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.toc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tub1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tub2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tuc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tuc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST5B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST5B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST5B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST5B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST5B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST5B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST5B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST5B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* ExcIEEEST5B::debugString() const void ExcIEEEST5B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST5B", &ExcIEEEST5B_factory); + factory_map.emplace("ExcIEEEST5B", &ExcIEEEST5B_factory); } void ExcIEEEST5B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST5B.kc", &assign_ExcIEEEST5B_kc); - assign_map.emplace("cim:ExcIEEEST5B.kr", &assign_ExcIEEEST5B_kr); - assign_map.emplace("cim:ExcIEEEST5B.t1", &assign_ExcIEEEST5B_t1); - assign_map.emplace("cim:ExcIEEEST5B.tb1", &assign_ExcIEEEST5B_tb1); - assign_map.emplace("cim:ExcIEEEST5B.tb2", &assign_ExcIEEEST5B_tb2); - assign_map.emplace("cim:ExcIEEEST5B.tc1", &assign_ExcIEEEST5B_tc1); - assign_map.emplace("cim:ExcIEEEST5B.tc2", &assign_ExcIEEEST5B_tc2); - assign_map.emplace("cim:ExcIEEEST5B.tob1", &assign_ExcIEEEST5B_tob1); - assign_map.emplace("cim:ExcIEEEST5B.tob2", &assign_ExcIEEEST5B_tob2); - assign_map.emplace("cim:ExcIEEEST5B.toc1", &assign_ExcIEEEST5B_toc1); - assign_map.emplace("cim:ExcIEEEST5B.toc2", &assign_ExcIEEEST5B_toc2); - assign_map.emplace("cim:ExcIEEEST5B.tub1", &assign_ExcIEEEST5B_tub1); - assign_map.emplace("cim:ExcIEEEST5B.tub2", &assign_ExcIEEEST5B_tub2); - assign_map.emplace("cim:ExcIEEEST5B.tuc1", &assign_ExcIEEEST5B_tuc1); - assign_map.emplace("cim:ExcIEEEST5B.tuc2", &assign_ExcIEEEST5B_tuc2); - assign_map.emplace("cim:ExcIEEEST5B.vrmax", &assign_ExcIEEEST5B_vrmax); - assign_map.emplace("cim:ExcIEEEST5B.vrmin", &assign_ExcIEEEST5B_vrmin); + assign_map.emplace("ExcIEEEST5B.kc", &assign_ExcIEEEST5B_kc); + assign_map.emplace("ExcIEEEST5B.kr", &assign_ExcIEEEST5B_kr); + assign_map.emplace("ExcIEEEST5B.t1", &assign_ExcIEEEST5B_t1); + assign_map.emplace("ExcIEEEST5B.tb1", &assign_ExcIEEEST5B_tb1); + assign_map.emplace("ExcIEEEST5B.tb2", &assign_ExcIEEEST5B_tb2); + assign_map.emplace("ExcIEEEST5B.tc1", &assign_ExcIEEEST5B_tc1); + assign_map.emplace("ExcIEEEST5B.tc2", &assign_ExcIEEEST5B_tc2); + assign_map.emplace("ExcIEEEST5B.tob1", &assign_ExcIEEEST5B_tob1); + assign_map.emplace("ExcIEEEST5B.tob2", &assign_ExcIEEEST5B_tob2); + assign_map.emplace("ExcIEEEST5B.toc1", &assign_ExcIEEEST5B_toc1); + assign_map.emplace("ExcIEEEST5B.toc2", &assign_ExcIEEEST5B_toc2); + assign_map.emplace("ExcIEEEST5B.tub1", &assign_ExcIEEEST5B_tub1); + assign_map.emplace("ExcIEEEST5B.tub2", &assign_ExcIEEEST5B_tub2); + assign_map.emplace("ExcIEEEST5B.tuc1", &assign_ExcIEEEST5B_tuc1); + assign_map.emplace("ExcIEEEST5B.tuc2", &assign_ExcIEEEST5B_tuc2); + assign_map.emplace("ExcIEEEST5B.vrmax", &assign_ExcIEEEST5B_vrmax); + assign_map.emplace("ExcIEEEST5B.vrmin", &assign_ExcIEEEST5B_vrmin); } void ExcIEEEST5B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void ExcIEEEST5B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST5B.kc", &get_ExcIEEEST5B_kc); - get_map.emplace("cim:ExcIEEEST5B.kr", &get_ExcIEEEST5B_kr); - get_map.emplace("cim:ExcIEEEST5B.t1", &get_ExcIEEEST5B_t1); - get_map.emplace("cim:ExcIEEEST5B.tb1", &get_ExcIEEEST5B_tb1); - get_map.emplace("cim:ExcIEEEST5B.tb2", &get_ExcIEEEST5B_tb2); - get_map.emplace("cim:ExcIEEEST5B.tc1", &get_ExcIEEEST5B_tc1); - get_map.emplace("cim:ExcIEEEST5B.tc2", &get_ExcIEEEST5B_tc2); - get_map.emplace("cim:ExcIEEEST5B.tob1", &get_ExcIEEEST5B_tob1); - get_map.emplace("cim:ExcIEEEST5B.tob2", &get_ExcIEEEST5B_tob2); - get_map.emplace("cim:ExcIEEEST5B.toc1", &get_ExcIEEEST5B_toc1); - get_map.emplace("cim:ExcIEEEST5B.toc2", &get_ExcIEEEST5B_toc2); - get_map.emplace("cim:ExcIEEEST5B.tub1", &get_ExcIEEEST5B_tub1); - get_map.emplace("cim:ExcIEEEST5B.tub2", &get_ExcIEEEST5B_tub2); - get_map.emplace("cim:ExcIEEEST5B.tuc1", &get_ExcIEEEST5B_tuc1); - get_map.emplace("cim:ExcIEEEST5B.tuc2", &get_ExcIEEEST5B_tuc2); - get_map.emplace("cim:ExcIEEEST5B.vrmax", &get_ExcIEEEST5B_vrmax); - get_map.emplace("cim:ExcIEEEST5B.vrmin", &get_ExcIEEEST5B_vrmin); + get_map.emplace("ExcIEEEST5B.kc", &get_ExcIEEEST5B_kc); + get_map.emplace("ExcIEEEST5B.kr", &get_ExcIEEEST5B_kr); + get_map.emplace("ExcIEEEST5B.t1", &get_ExcIEEEST5B_t1); + get_map.emplace("ExcIEEEST5B.tb1", &get_ExcIEEEST5B_tb1); + get_map.emplace("ExcIEEEST5B.tb2", &get_ExcIEEEST5B_tb2); + get_map.emplace("ExcIEEEST5B.tc1", &get_ExcIEEEST5B_tc1); + get_map.emplace("ExcIEEEST5B.tc2", &get_ExcIEEEST5B_tc2); + get_map.emplace("ExcIEEEST5B.tob1", &get_ExcIEEEST5B_tob1); + get_map.emplace("ExcIEEEST5B.tob2", &get_ExcIEEEST5B_tob2); + get_map.emplace("ExcIEEEST5B.toc1", &get_ExcIEEEST5B_toc1); + get_map.emplace("ExcIEEEST5B.toc2", &get_ExcIEEEST5B_toc2); + get_map.emplace("ExcIEEEST5B.tub1", &get_ExcIEEEST5B_tub1); + get_map.emplace("ExcIEEEST5B.tub2", &get_ExcIEEEST5B_tub2); + get_map.emplace("ExcIEEEST5B.tuc1", &get_ExcIEEEST5B_tuc1); + get_map.emplace("ExcIEEEST5B.tuc2", &get_ExcIEEEST5B_tuc2); + get_map.emplace("ExcIEEEST5B.vrmax", &get_ExcIEEEST5B_vrmax); + get_map.emplace("ExcIEEEST5B.vrmin", &get_ExcIEEEST5B_vrmin); } void ExcIEEEST5B::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void ExcIEEEST5B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST5B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST5B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST5B::declare() { return BaseClassDefiner(ExcIEEEST5B::addConstructToMap, ExcIEEEST5B::addPrimitiveAssignFnsToMap, ExcIEEEST5B::addClassAssignFnsToMap, ExcIEEEST5B::debugName); } +std::map ExcIEEEST5B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST5B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST5B.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST5B.hpp index c099e151a..36fdfe650 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST5B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST5B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -80,8 +81,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -89,7 +97,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST5B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST6B.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST6B.cpp index 46aac194f..bd3a7fea5 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST6B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST6B.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST6B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST6B.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kci", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST6B::ExcIEEEST6B() {} ExcIEEEST6B::~ExcIEEEST6B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST6B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST6B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST6B.ilr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kci", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kff", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.klr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.km", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.tg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST6B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST6B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST6B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST6B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST6B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST6B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST6B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST6B_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcIEEEST6B::debugString() const void ExcIEEEST6B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST6B", &ExcIEEEST6B_factory); + factory_map.emplace("ExcIEEEST6B", &ExcIEEEST6B_factory); } void ExcIEEEST6B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST6B.ilr", &assign_ExcIEEEST6B_ilr); - assign_map.emplace("cim:ExcIEEEST6B.kci", &assign_ExcIEEEST6B_kci); - assign_map.emplace("cim:ExcIEEEST6B.kff", &assign_ExcIEEEST6B_kff); - assign_map.emplace("cim:ExcIEEEST6B.kg", &assign_ExcIEEEST6B_kg); - assign_map.emplace("cim:ExcIEEEST6B.kia", &assign_ExcIEEEST6B_kia); - assign_map.emplace("cim:ExcIEEEST6B.klr", &assign_ExcIEEEST6B_klr); - assign_map.emplace("cim:ExcIEEEST6B.km", &assign_ExcIEEEST6B_km); - assign_map.emplace("cim:ExcIEEEST6B.kpa", &assign_ExcIEEEST6B_kpa); - assign_map.emplace("cim:ExcIEEEST6B.oelin", &assign_ExcIEEEST6B_oelin); - assign_map.emplace("cim:ExcIEEEST6B.tg", &assign_ExcIEEEST6B_tg); - assign_map.emplace("cim:ExcIEEEST6B.vamax", &assign_ExcIEEEST6B_vamax); - assign_map.emplace("cim:ExcIEEEST6B.vamin", &assign_ExcIEEEST6B_vamin); - assign_map.emplace("cim:ExcIEEEST6B.vrmax", &assign_ExcIEEEST6B_vrmax); - assign_map.emplace("cim:ExcIEEEST6B.vrmin", &assign_ExcIEEEST6B_vrmin); + assign_map.emplace("ExcIEEEST6B.ilr", &assign_ExcIEEEST6B_ilr); + assign_map.emplace("ExcIEEEST6B.kci", &assign_ExcIEEEST6B_kci); + assign_map.emplace("ExcIEEEST6B.kff", &assign_ExcIEEEST6B_kff); + assign_map.emplace("ExcIEEEST6B.kg", &assign_ExcIEEEST6B_kg); + assign_map.emplace("ExcIEEEST6B.kia", &assign_ExcIEEEST6B_kia); + assign_map.emplace("ExcIEEEST6B.klr", &assign_ExcIEEEST6B_klr); + assign_map.emplace("ExcIEEEST6B.km", &assign_ExcIEEEST6B_km); + assign_map.emplace("ExcIEEEST6B.kpa", &assign_ExcIEEEST6B_kpa); + assign_map.emplace("ExcIEEEST6B.oelin", &assign_ExcIEEEST6B_oelin); + assign_map.emplace("ExcIEEEST6B.tg", &assign_ExcIEEEST6B_tg); + assign_map.emplace("ExcIEEEST6B.vamax", &assign_ExcIEEEST6B_vamax); + assign_map.emplace("ExcIEEEST6B.vamin", &assign_ExcIEEEST6B_vamin); + assign_map.emplace("ExcIEEEST6B.vrmax", &assign_ExcIEEEST6B_vrmax); + assign_map.emplace("ExcIEEEST6B.vrmin", &assign_ExcIEEEST6B_vrmin); } void ExcIEEEST6B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,19 +526,19 @@ void ExcIEEEST6B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST6B.ilr", &get_ExcIEEEST6B_ilr); - get_map.emplace("cim:ExcIEEEST6B.kci", &get_ExcIEEEST6B_kci); - get_map.emplace("cim:ExcIEEEST6B.kff", &get_ExcIEEEST6B_kff); - get_map.emplace("cim:ExcIEEEST6B.kg", &get_ExcIEEEST6B_kg); - get_map.emplace("cim:ExcIEEEST6B.kia", &get_ExcIEEEST6B_kia); - get_map.emplace("cim:ExcIEEEST6B.klr", &get_ExcIEEEST6B_klr); - get_map.emplace("cim:ExcIEEEST6B.km", &get_ExcIEEEST6B_km); - get_map.emplace("cim:ExcIEEEST6B.kpa", &get_ExcIEEEST6B_kpa); - get_map.emplace("cim:ExcIEEEST6B.tg", &get_ExcIEEEST6B_tg); - get_map.emplace("cim:ExcIEEEST6B.vamax", &get_ExcIEEEST6B_vamax); - get_map.emplace("cim:ExcIEEEST6B.vamin", &get_ExcIEEEST6B_vamin); - get_map.emplace("cim:ExcIEEEST6B.vrmax", &get_ExcIEEEST6B_vrmax); - get_map.emplace("cim:ExcIEEEST6B.vrmin", &get_ExcIEEEST6B_vrmin); + get_map.emplace("ExcIEEEST6B.ilr", &get_ExcIEEEST6B_ilr); + get_map.emplace("ExcIEEEST6B.kci", &get_ExcIEEEST6B_kci); + get_map.emplace("ExcIEEEST6B.kff", &get_ExcIEEEST6B_kff); + get_map.emplace("ExcIEEEST6B.kg", &get_ExcIEEEST6B_kg); + get_map.emplace("ExcIEEEST6B.kia", &get_ExcIEEEST6B_kia); + get_map.emplace("ExcIEEEST6B.klr", &get_ExcIEEEST6B_klr); + get_map.emplace("ExcIEEEST6B.km", &get_ExcIEEEST6B_km); + get_map.emplace("ExcIEEEST6B.kpa", &get_ExcIEEEST6B_kpa); + get_map.emplace("ExcIEEEST6B.tg", &get_ExcIEEEST6B_tg); + get_map.emplace("ExcIEEEST6B.vamax", &get_ExcIEEEST6B_vamax); + get_map.emplace("ExcIEEEST6B.vamin", &get_ExcIEEEST6B_vamin); + get_map.emplace("ExcIEEEST6B.vrmax", &get_ExcIEEEST6B_vrmax); + get_map.emplace("ExcIEEEST6B.vrmin", &get_ExcIEEEST6B_vrmin); } void ExcIEEEST6B::addClassGetFnsToMap(std::map& get_map) const @@ -517,7 +549,13 @@ void ExcIEEEST6B::addClassGetFnsToMap(std::map& void ExcIEEEST6B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST6B.oelin", &get_ExcIEEEST6B_oelin); + get_map.emplace("ExcIEEEST6B.oelin", &get_ExcIEEEST6B_oelin); +} + +bool ExcIEEEST6B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST6B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST6B::declare() @@ -525,6 +563,14 @@ const BaseClassDefiner ExcIEEEST6B::declare() return BaseClassDefiner(ExcIEEEST6B::addConstructToMap, ExcIEEEST6B::addPrimitiveAssignFnsToMap, ExcIEEEST6B::addClassAssignFnsToMap, ExcIEEEST6B::debugName); } +std::map ExcIEEEST6B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST6B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST6B.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST6B.hpp index 554b6609b..5c11dbc49 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST6B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST6B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST6BOELselectorKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST6B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST7B.cpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST7B.cpp index 20513a7f9..76d8c6b8a 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST7B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST7B.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST7B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST7B::ExcIEEEST7B() {} ExcIEEEST7B::~ExcIEEEST7B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST7B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST7B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST7B.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST7B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST7B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST7B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST7B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST7B_kh(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcIEEEST7B::debugString() const void ExcIEEEST7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST7B", &ExcIEEEST7B_factory); + factory_map.emplace("ExcIEEEST7B", &ExcIEEEST7B_factory); } void ExcIEEEST7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST7B.kh", &assign_ExcIEEEST7B_kh); - assign_map.emplace("cim:ExcIEEEST7B.kia", &assign_ExcIEEEST7B_kia); - assign_map.emplace("cim:ExcIEEEST7B.kl", &assign_ExcIEEEST7B_kl); - assign_map.emplace("cim:ExcIEEEST7B.kpa", &assign_ExcIEEEST7B_kpa); - assign_map.emplace("cim:ExcIEEEST7B.oelin", &assign_ExcIEEEST7B_oelin); - assign_map.emplace("cim:ExcIEEEST7B.tb", &assign_ExcIEEEST7B_tb); - assign_map.emplace("cim:ExcIEEEST7B.tc", &assign_ExcIEEEST7B_tc); - assign_map.emplace("cim:ExcIEEEST7B.tf", &assign_ExcIEEEST7B_tf); - assign_map.emplace("cim:ExcIEEEST7B.tg", &assign_ExcIEEEST7B_tg); - assign_map.emplace("cim:ExcIEEEST7B.tia", &assign_ExcIEEEST7B_tia); - assign_map.emplace("cim:ExcIEEEST7B.uelin", &assign_ExcIEEEST7B_uelin); - assign_map.emplace("cim:ExcIEEEST7B.vmax", &assign_ExcIEEEST7B_vmax); - assign_map.emplace("cim:ExcIEEEST7B.vmin", &assign_ExcIEEEST7B_vmin); - assign_map.emplace("cim:ExcIEEEST7B.vrmax", &assign_ExcIEEEST7B_vrmax); - assign_map.emplace("cim:ExcIEEEST7B.vrmin", &assign_ExcIEEEST7B_vrmin); + assign_map.emplace("ExcIEEEST7B.kh", &assign_ExcIEEEST7B_kh); + assign_map.emplace("ExcIEEEST7B.kia", &assign_ExcIEEEST7B_kia); + assign_map.emplace("ExcIEEEST7B.kl", &assign_ExcIEEEST7B_kl); + assign_map.emplace("ExcIEEEST7B.kpa", &assign_ExcIEEEST7B_kpa); + assign_map.emplace("ExcIEEEST7B.oelin", &assign_ExcIEEEST7B_oelin); + assign_map.emplace("ExcIEEEST7B.tb", &assign_ExcIEEEST7B_tb); + assign_map.emplace("ExcIEEEST7B.tc", &assign_ExcIEEEST7B_tc); + assign_map.emplace("ExcIEEEST7B.tf", &assign_ExcIEEEST7B_tf); + assign_map.emplace("ExcIEEEST7B.tg", &assign_ExcIEEEST7B_tg); + assign_map.emplace("ExcIEEEST7B.tia", &assign_ExcIEEEST7B_tia); + assign_map.emplace("ExcIEEEST7B.uelin", &assign_ExcIEEEST7B_uelin); + assign_map.emplace("ExcIEEEST7B.vmax", &assign_ExcIEEEST7B_vmax); + assign_map.emplace("ExcIEEEST7B.vmin", &assign_ExcIEEEST7B_vmin); + assign_map.emplace("ExcIEEEST7B.vrmax", &assign_ExcIEEEST7B_vrmax); + assign_map.emplace("ExcIEEEST7B.vrmin", &assign_ExcIEEEST7B_vrmin); } void ExcIEEEST7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,19 +557,19 @@ void ExcIEEEST7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST7B.kh", &get_ExcIEEEST7B_kh); - get_map.emplace("cim:ExcIEEEST7B.kia", &get_ExcIEEEST7B_kia); - get_map.emplace("cim:ExcIEEEST7B.kl", &get_ExcIEEEST7B_kl); - get_map.emplace("cim:ExcIEEEST7B.kpa", &get_ExcIEEEST7B_kpa); - get_map.emplace("cim:ExcIEEEST7B.tb", &get_ExcIEEEST7B_tb); - get_map.emplace("cim:ExcIEEEST7B.tc", &get_ExcIEEEST7B_tc); - get_map.emplace("cim:ExcIEEEST7B.tf", &get_ExcIEEEST7B_tf); - get_map.emplace("cim:ExcIEEEST7B.tg", &get_ExcIEEEST7B_tg); - get_map.emplace("cim:ExcIEEEST7B.tia", &get_ExcIEEEST7B_tia); - get_map.emplace("cim:ExcIEEEST7B.vmax", &get_ExcIEEEST7B_vmax); - get_map.emplace("cim:ExcIEEEST7B.vmin", &get_ExcIEEEST7B_vmin); - get_map.emplace("cim:ExcIEEEST7B.vrmax", &get_ExcIEEEST7B_vrmax); - get_map.emplace("cim:ExcIEEEST7B.vrmin", &get_ExcIEEEST7B_vrmin); + get_map.emplace("ExcIEEEST7B.kh", &get_ExcIEEEST7B_kh); + get_map.emplace("ExcIEEEST7B.kia", &get_ExcIEEEST7B_kia); + get_map.emplace("ExcIEEEST7B.kl", &get_ExcIEEEST7B_kl); + get_map.emplace("ExcIEEEST7B.kpa", &get_ExcIEEEST7B_kpa); + get_map.emplace("ExcIEEEST7B.tb", &get_ExcIEEEST7B_tb); + get_map.emplace("ExcIEEEST7B.tc", &get_ExcIEEEST7B_tc); + get_map.emplace("ExcIEEEST7B.tf", &get_ExcIEEEST7B_tf); + get_map.emplace("ExcIEEEST7B.tg", &get_ExcIEEEST7B_tg); + get_map.emplace("ExcIEEEST7B.tia", &get_ExcIEEEST7B_tia); + get_map.emplace("ExcIEEEST7B.vmax", &get_ExcIEEEST7B_vmax); + get_map.emplace("ExcIEEEST7B.vmin", &get_ExcIEEEST7B_vmin); + get_map.emplace("ExcIEEEST7B.vrmax", &get_ExcIEEEST7B_vrmax); + get_map.emplace("ExcIEEEST7B.vrmin", &get_ExcIEEEST7B_vrmin); } void ExcIEEEST7B::addClassGetFnsToMap(std::map& get_map) const @@ -548,8 +580,14 @@ void ExcIEEEST7B::addClassGetFnsToMap(std::map& void ExcIEEEST7B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST7B.oelin", &get_ExcIEEEST7B_oelin); - get_map.emplace("cim:ExcIEEEST7B.uelin", &get_ExcIEEEST7B_uelin); + get_map.emplace("ExcIEEEST7B.oelin", &get_ExcIEEEST7B_oelin); + get_map.emplace("ExcIEEEST7B.uelin", &get_ExcIEEEST7B_uelin); +} + +bool ExcIEEEST7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST7B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST7B::declare() @@ -557,6 +595,14 @@ const BaseClassDefiner ExcIEEEST7B::declare() return BaseClassDefiner(ExcIEEEST7B::addConstructToMap, ExcIEEEST7B::addPrimitiveAssignFnsToMap, ExcIEEEST7B::addClassAssignFnsToMap, ExcIEEEST7B::debugName); } +std::map ExcIEEEST7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST7B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcIEEEST7B.hpp b/CGMES_2.4.15_27JAN2020/ExcIEEEST7B.hpp index d1428a0fe..fa841cf57 100644 --- a/CGMES_2.4.15_27JAN2020/ExcIEEEST7B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcIEEEST7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST7BOELselectorKind.hpp" #include "ExcST7BUELselectorKind.hpp" #include "PU.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST7B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcOEX3T.cpp b/CGMES_2.4.15_27JAN2020/ExcOEX3T.cpp index 3fc422d40..d9723b03a 100644 --- a/CGMES_2.4.15_27JAN2020/ExcOEX3T.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcOEX3T.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcOEX3T(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcOEX3T.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.see1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.see2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcOEX3T::ExcOEX3T() {} ExcOEX3T::~ExcOEX3T() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcOEX3T.e1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.e2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.ka", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kc", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kd", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.ke", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kf", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.see1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.see2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t3", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t4", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t5", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t6", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.te", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.tf", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcOEX3T::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcOEX3T::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcOEX3T::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcOEX3T::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcOEX3T::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcOEX3T::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcOEX3T::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcOEX3T::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcOEX3T::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcOEX3T_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcOEX3T::debugString() const void ExcOEX3T::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcOEX3T", &ExcOEX3T_factory); + factory_map.emplace("ExcOEX3T", &ExcOEX3T_factory); } void ExcOEX3T::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcOEX3T.e1", &assign_ExcOEX3T_e1); - assign_map.emplace("cim:ExcOEX3T.e2", &assign_ExcOEX3T_e2); - assign_map.emplace("cim:ExcOEX3T.ka", &assign_ExcOEX3T_ka); - assign_map.emplace("cim:ExcOEX3T.kc", &assign_ExcOEX3T_kc); - assign_map.emplace("cim:ExcOEX3T.kd", &assign_ExcOEX3T_kd); - assign_map.emplace("cim:ExcOEX3T.ke", &assign_ExcOEX3T_ke); - assign_map.emplace("cim:ExcOEX3T.kf", &assign_ExcOEX3T_kf); - assign_map.emplace("cim:ExcOEX3T.see1", &assign_ExcOEX3T_see1); - assign_map.emplace("cim:ExcOEX3T.see2", &assign_ExcOEX3T_see2); - assign_map.emplace("cim:ExcOEX3T.t1", &assign_ExcOEX3T_t1); - assign_map.emplace("cim:ExcOEX3T.t2", &assign_ExcOEX3T_t2); - assign_map.emplace("cim:ExcOEX3T.t3", &assign_ExcOEX3T_t3); - assign_map.emplace("cim:ExcOEX3T.t4", &assign_ExcOEX3T_t4); - assign_map.emplace("cim:ExcOEX3T.t5", &assign_ExcOEX3T_t5); - assign_map.emplace("cim:ExcOEX3T.t6", &assign_ExcOEX3T_t6); - assign_map.emplace("cim:ExcOEX3T.te", &assign_ExcOEX3T_te); - assign_map.emplace("cim:ExcOEX3T.tf", &assign_ExcOEX3T_tf); - assign_map.emplace("cim:ExcOEX3T.vrmax", &assign_ExcOEX3T_vrmax); - assign_map.emplace("cim:ExcOEX3T.vrmin", &assign_ExcOEX3T_vrmin); + assign_map.emplace("ExcOEX3T.e1", &assign_ExcOEX3T_e1); + assign_map.emplace("ExcOEX3T.e2", &assign_ExcOEX3T_e2); + assign_map.emplace("ExcOEX3T.ka", &assign_ExcOEX3T_ka); + assign_map.emplace("ExcOEX3T.kc", &assign_ExcOEX3T_kc); + assign_map.emplace("ExcOEX3T.kd", &assign_ExcOEX3T_kd); + assign_map.emplace("ExcOEX3T.ke", &assign_ExcOEX3T_ke); + assign_map.emplace("ExcOEX3T.kf", &assign_ExcOEX3T_kf); + assign_map.emplace("ExcOEX3T.see1", &assign_ExcOEX3T_see1); + assign_map.emplace("ExcOEX3T.see2", &assign_ExcOEX3T_see2); + assign_map.emplace("ExcOEX3T.t1", &assign_ExcOEX3T_t1); + assign_map.emplace("ExcOEX3T.t2", &assign_ExcOEX3T_t2); + assign_map.emplace("ExcOEX3T.t3", &assign_ExcOEX3T_t3); + assign_map.emplace("ExcOEX3T.t4", &assign_ExcOEX3T_t4); + assign_map.emplace("ExcOEX3T.t5", &assign_ExcOEX3T_t5); + assign_map.emplace("ExcOEX3T.t6", &assign_ExcOEX3T_t6); + assign_map.emplace("ExcOEX3T.te", &assign_ExcOEX3T_te); + assign_map.emplace("ExcOEX3T.tf", &assign_ExcOEX3T_tf); + assign_map.emplace("ExcOEX3T.vrmax", &assign_ExcOEX3T_vrmax); + assign_map.emplace("ExcOEX3T.vrmin", &assign_ExcOEX3T_vrmin); } void ExcOEX3T::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcOEX3T::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcOEX3T.e1", &get_ExcOEX3T_e1); - get_map.emplace("cim:ExcOEX3T.e2", &get_ExcOEX3T_e2); - get_map.emplace("cim:ExcOEX3T.ka", &get_ExcOEX3T_ka); - get_map.emplace("cim:ExcOEX3T.kc", &get_ExcOEX3T_kc); - get_map.emplace("cim:ExcOEX3T.kd", &get_ExcOEX3T_kd); - get_map.emplace("cim:ExcOEX3T.ke", &get_ExcOEX3T_ke); - get_map.emplace("cim:ExcOEX3T.kf", &get_ExcOEX3T_kf); - get_map.emplace("cim:ExcOEX3T.see1", &get_ExcOEX3T_see1); - get_map.emplace("cim:ExcOEX3T.see2", &get_ExcOEX3T_see2); - get_map.emplace("cim:ExcOEX3T.t1", &get_ExcOEX3T_t1); - get_map.emplace("cim:ExcOEX3T.t2", &get_ExcOEX3T_t2); - get_map.emplace("cim:ExcOEX3T.t3", &get_ExcOEX3T_t3); - get_map.emplace("cim:ExcOEX3T.t4", &get_ExcOEX3T_t4); - get_map.emplace("cim:ExcOEX3T.t5", &get_ExcOEX3T_t5); - get_map.emplace("cim:ExcOEX3T.t6", &get_ExcOEX3T_t6); - get_map.emplace("cim:ExcOEX3T.te", &get_ExcOEX3T_te); - get_map.emplace("cim:ExcOEX3T.tf", &get_ExcOEX3T_tf); - get_map.emplace("cim:ExcOEX3T.vrmax", &get_ExcOEX3T_vrmax); - get_map.emplace("cim:ExcOEX3T.vrmin", &get_ExcOEX3T_vrmin); + get_map.emplace("ExcOEX3T.e1", &get_ExcOEX3T_e1); + get_map.emplace("ExcOEX3T.e2", &get_ExcOEX3T_e2); + get_map.emplace("ExcOEX3T.ka", &get_ExcOEX3T_ka); + get_map.emplace("ExcOEX3T.kc", &get_ExcOEX3T_kc); + get_map.emplace("ExcOEX3T.kd", &get_ExcOEX3T_kd); + get_map.emplace("ExcOEX3T.ke", &get_ExcOEX3T_ke); + get_map.emplace("ExcOEX3T.kf", &get_ExcOEX3T_kf); + get_map.emplace("ExcOEX3T.see1", &get_ExcOEX3T_see1); + get_map.emplace("ExcOEX3T.see2", &get_ExcOEX3T_see2); + get_map.emplace("ExcOEX3T.t1", &get_ExcOEX3T_t1); + get_map.emplace("ExcOEX3T.t2", &get_ExcOEX3T_t2); + get_map.emplace("ExcOEX3T.t3", &get_ExcOEX3T_t3); + get_map.emplace("ExcOEX3T.t4", &get_ExcOEX3T_t4); + get_map.emplace("ExcOEX3T.t5", &get_ExcOEX3T_t5); + get_map.emplace("ExcOEX3T.t6", &get_ExcOEX3T_t6); + get_map.emplace("ExcOEX3T.te", &get_ExcOEX3T_te); + get_map.emplace("ExcOEX3T.tf", &get_ExcOEX3T_tf); + get_map.emplace("ExcOEX3T.vrmax", &get_ExcOEX3T_vrmax); + get_map.emplace("ExcOEX3T.vrmin", &get_ExcOEX3T_vrmin); } void ExcOEX3T::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcOEX3T::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcOEX3T::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcOEX3T" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcOEX3T::declare() { return BaseClassDefiner(ExcOEX3T::addConstructToMap, ExcOEX3T::addPrimitiveAssignFnsToMap, ExcOEX3T::addClassAssignFnsToMap, ExcOEX3T::debugName); } +std::map ExcOEX3T::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcOEX3T_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcOEX3T.hpp b/CGMES_2.4.15_27JAN2020/ExcOEX3T.hpp index da7bc97eb..98f4229d5 100644 --- a/CGMES_2.4.15_27JAN2020/ExcOEX3T.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcOEX3T.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -86,8 +87,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -95,7 +103,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcOEX3T_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcPIC.cpp b/CGMES_2.4.15_27JAN2020/ExcPIC.cpp index dbace3479..3cc7cd35b 100644 --- a/CGMES_2.4.15_27JAN2020/ExcPIC.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcPIC.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcPIC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcPIC.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcPIC.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcPIC::ExcPIC() {} ExcPIC::~ExcPIC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcPIC.e1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.e2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcPIC.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ka", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kc", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ke", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kf", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ki", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kp", { CGMESProfile::DY, } }, - { "cim:ExcPIC.se1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.se2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta3", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta4", { CGMESProfile::DY, } }, - { "cim:ExcPIC.te", { CGMESProfile::DY, } }, - { "cim:ExcPIC.tf1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.tf2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vr1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vr2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcPIC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcPIC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcPIC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcPIC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcPIC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcPIC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcPIC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcPIC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcPIC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcPIC_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcPIC::debugString() const void ExcPIC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcPIC", &ExcPIC_factory); + factory_map.emplace("ExcPIC", &ExcPIC_factory); } void ExcPIC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcPIC.e1", &assign_ExcPIC_e1); - assign_map.emplace("cim:ExcPIC.e2", &assign_ExcPIC_e2); - assign_map.emplace("cim:ExcPIC.efdmax", &assign_ExcPIC_efdmax); - assign_map.emplace("cim:ExcPIC.efdmin", &assign_ExcPIC_efdmin); - assign_map.emplace("cim:ExcPIC.ka", &assign_ExcPIC_ka); - assign_map.emplace("cim:ExcPIC.kc", &assign_ExcPIC_kc); - assign_map.emplace("cim:ExcPIC.ke", &assign_ExcPIC_ke); - assign_map.emplace("cim:ExcPIC.kf", &assign_ExcPIC_kf); - assign_map.emplace("cim:ExcPIC.ki", &assign_ExcPIC_ki); - assign_map.emplace("cim:ExcPIC.kp", &assign_ExcPIC_kp); - assign_map.emplace("cim:ExcPIC.se1", &assign_ExcPIC_se1); - assign_map.emplace("cim:ExcPIC.se2", &assign_ExcPIC_se2); - assign_map.emplace("cim:ExcPIC.ta1", &assign_ExcPIC_ta1); - assign_map.emplace("cim:ExcPIC.ta2", &assign_ExcPIC_ta2); - assign_map.emplace("cim:ExcPIC.ta3", &assign_ExcPIC_ta3); - assign_map.emplace("cim:ExcPIC.ta4", &assign_ExcPIC_ta4); - assign_map.emplace("cim:ExcPIC.te", &assign_ExcPIC_te); - assign_map.emplace("cim:ExcPIC.tf1", &assign_ExcPIC_tf1); - assign_map.emplace("cim:ExcPIC.tf2", &assign_ExcPIC_tf2); - assign_map.emplace("cim:ExcPIC.vr1", &assign_ExcPIC_vr1); - assign_map.emplace("cim:ExcPIC.vr2", &assign_ExcPIC_vr2); - assign_map.emplace("cim:ExcPIC.vrmax", &assign_ExcPIC_vrmax); - assign_map.emplace("cim:ExcPIC.vrmin", &assign_ExcPIC_vrmin); + assign_map.emplace("ExcPIC.e1", &assign_ExcPIC_e1); + assign_map.emplace("ExcPIC.e2", &assign_ExcPIC_e2); + assign_map.emplace("ExcPIC.efdmax", &assign_ExcPIC_efdmax); + assign_map.emplace("ExcPIC.efdmin", &assign_ExcPIC_efdmin); + assign_map.emplace("ExcPIC.ka", &assign_ExcPIC_ka); + assign_map.emplace("ExcPIC.kc", &assign_ExcPIC_kc); + assign_map.emplace("ExcPIC.ke", &assign_ExcPIC_ke); + assign_map.emplace("ExcPIC.kf", &assign_ExcPIC_kf); + assign_map.emplace("ExcPIC.ki", &assign_ExcPIC_ki); + assign_map.emplace("ExcPIC.kp", &assign_ExcPIC_kp); + assign_map.emplace("ExcPIC.se1", &assign_ExcPIC_se1); + assign_map.emplace("ExcPIC.se2", &assign_ExcPIC_se2); + assign_map.emplace("ExcPIC.ta1", &assign_ExcPIC_ta1); + assign_map.emplace("ExcPIC.ta2", &assign_ExcPIC_ta2); + assign_map.emplace("ExcPIC.ta3", &assign_ExcPIC_ta3); + assign_map.emplace("ExcPIC.ta4", &assign_ExcPIC_ta4); + assign_map.emplace("ExcPIC.te", &assign_ExcPIC_te); + assign_map.emplace("ExcPIC.tf1", &assign_ExcPIC_tf1); + assign_map.emplace("ExcPIC.tf2", &assign_ExcPIC_tf2); + assign_map.emplace("ExcPIC.vr1", &assign_ExcPIC_vr1); + assign_map.emplace("ExcPIC.vr2", &assign_ExcPIC_vr2); + assign_map.emplace("ExcPIC.vrmax", &assign_ExcPIC_vrmax); + assign_map.emplace("ExcPIC.vrmin", &assign_ExcPIC_vrmin); } void ExcPIC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcPIC::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcPIC.e1", &get_ExcPIC_e1); - get_map.emplace("cim:ExcPIC.e2", &get_ExcPIC_e2); - get_map.emplace("cim:ExcPIC.efdmax", &get_ExcPIC_efdmax); - get_map.emplace("cim:ExcPIC.efdmin", &get_ExcPIC_efdmin); - get_map.emplace("cim:ExcPIC.ka", &get_ExcPIC_ka); - get_map.emplace("cim:ExcPIC.kc", &get_ExcPIC_kc); - get_map.emplace("cim:ExcPIC.ke", &get_ExcPIC_ke); - get_map.emplace("cim:ExcPIC.kf", &get_ExcPIC_kf); - get_map.emplace("cim:ExcPIC.ki", &get_ExcPIC_ki); - get_map.emplace("cim:ExcPIC.kp", &get_ExcPIC_kp); - get_map.emplace("cim:ExcPIC.se1", &get_ExcPIC_se1); - get_map.emplace("cim:ExcPIC.se2", &get_ExcPIC_se2); - get_map.emplace("cim:ExcPIC.ta1", &get_ExcPIC_ta1); - get_map.emplace("cim:ExcPIC.ta2", &get_ExcPIC_ta2); - get_map.emplace("cim:ExcPIC.ta3", &get_ExcPIC_ta3); - get_map.emplace("cim:ExcPIC.ta4", &get_ExcPIC_ta4); - get_map.emplace("cim:ExcPIC.te", &get_ExcPIC_te); - get_map.emplace("cim:ExcPIC.tf1", &get_ExcPIC_tf1); - get_map.emplace("cim:ExcPIC.tf2", &get_ExcPIC_tf2); - get_map.emplace("cim:ExcPIC.vr1", &get_ExcPIC_vr1); - get_map.emplace("cim:ExcPIC.vr2", &get_ExcPIC_vr2); - get_map.emplace("cim:ExcPIC.vrmax", &get_ExcPIC_vrmax); - get_map.emplace("cim:ExcPIC.vrmin", &get_ExcPIC_vrmin); + get_map.emplace("ExcPIC.e1", &get_ExcPIC_e1); + get_map.emplace("ExcPIC.e2", &get_ExcPIC_e2); + get_map.emplace("ExcPIC.efdmax", &get_ExcPIC_efdmax); + get_map.emplace("ExcPIC.efdmin", &get_ExcPIC_efdmin); + get_map.emplace("ExcPIC.ka", &get_ExcPIC_ka); + get_map.emplace("ExcPIC.kc", &get_ExcPIC_kc); + get_map.emplace("ExcPIC.ke", &get_ExcPIC_ke); + get_map.emplace("ExcPIC.kf", &get_ExcPIC_kf); + get_map.emplace("ExcPIC.ki", &get_ExcPIC_ki); + get_map.emplace("ExcPIC.kp", &get_ExcPIC_kp); + get_map.emplace("ExcPIC.se1", &get_ExcPIC_se1); + get_map.emplace("ExcPIC.se2", &get_ExcPIC_se2); + get_map.emplace("ExcPIC.ta1", &get_ExcPIC_ta1); + get_map.emplace("ExcPIC.ta2", &get_ExcPIC_ta2); + get_map.emplace("ExcPIC.ta3", &get_ExcPIC_ta3); + get_map.emplace("ExcPIC.ta4", &get_ExcPIC_ta4); + get_map.emplace("ExcPIC.te", &get_ExcPIC_te); + get_map.emplace("ExcPIC.tf1", &get_ExcPIC_tf1); + get_map.emplace("ExcPIC.tf2", &get_ExcPIC_tf2); + get_map.emplace("ExcPIC.vr1", &get_ExcPIC_vr1); + get_map.emplace("ExcPIC.vr2", &get_ExcPIC_vr2); + get_map.emplace("ExcPIC.vrmax", &get_ExcPIC_vrmax); + get_map.emplace("ExcPIC.vrmin", &get_ExcPIC_vrmin); } void ExcPIC::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcPIC::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcPIC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcPIC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcPIC::declare() { return BaseClassDefiner(ExcPIC::addConstructToMap, ExcPIC::addPrimitiveAssignFnsToMap, ExcPIC::addClassAssignFnsToMap, ExcPIC::debugName); } +std::map ExcPIC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcPIC_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcPIC.hpp b/CGMES_2.4.15_27JAN2020/ExcPIC.hpp index 152d86aa7..6d119f178 100644 --- a/CGMES_2.4.15_27JAN2020/ExcPIC.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcPIC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -98,8 +99,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -107,7 +115,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcPIC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcREXS.cpp b/CGMES_2.4.15_27JAN2020/ExcREXS.cpp index 7c198209c..caeb500dd 100644 --- a/CGMES_2.4.15_27JAN2020/ExcREXS.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcREXS.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcREXS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcREXS.e1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.e2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.fbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.flimf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kefd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kii", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvphz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.nvphz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.se1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.se2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tc2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vcmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vfmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcREXS.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcREXS::ExcREXS() {} ExcREXS::~ExcREXS() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcREXS.e1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.e2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.fbf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.flimf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kc", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kd", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ke", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kefd", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kh", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kii", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kip", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ks", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvi", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvp", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvphz", { CGMESProfile::DY, } }, - { "cim:ExcREXS.nvphz", { CGMESProfile::DY, } }, - { "cim:ExcREXS.se1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.se2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ta", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tb1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tb2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tc1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tc2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.te", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tp", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vcmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vfmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vfmin", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vimax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcREXS.xc", { CGMESProfile::DY, } }, -}; - -std::list -ExcREXS::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcREXS::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcREXS::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcREXS::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcREXS::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcREXS::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcREXS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcREXS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcREXS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcREXS_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* ExcREXS::debugString() const void ExcREXS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcREXS", &ExcREXS_factory); + factory_map.emplace("ExcREXS", &ExcREXS_factory); } void ExcREXS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcREXS.e1", &assign_ExcREXS_e1); - assign_map.emplace("cim:ExcREXS.e2", &assign_ExcREXS_e2); - assign_map.emplace("cim:ExcREXS.fbf", &assign_ExcREXS_fbf); - assign_map.emplace("cim:ExcREXS.flimf", &assign_ExcREXS_flimf); - assign_map.emplace("cim:ExcREXS.kc", &assign_ExcREXS_kc); - assign_map.emplace("cim:ExcREXS.kd", &assign_ExcREXS_kd); - assign_map.emplace("cim:ExcREXS.ke", &assign_ExcREXS_ke); - assign_map.emplace("cim:ExcREXS.kefd", &assign_ExcREXS_kefd); - assign_map.emplace("cim:ExcREXS.kf", &assign_ExcREXS_kf); - assign_map.emplace("cim:ExcREXS.kh", &assign_ExcREXS_kh); - assign_map.emplace("cim:ExcREXS.kii", &assign_ExcREXS_kii); - assign_map.emplace("cim:ExcREXS.kip", &assign_ExcREXS_kip); - assign_map.emplace("cim:ExcREXS.ks", &assign_ExcREXS_ks); - assign_map.emplace("cim:ExcREXS.kvi", &assign_ExcREXS_kvi); - assign_map.emplace("cim:ExcREXS.kvp", &assign_ExcREXS_kvp); - assign_map.emplace("cim:ExcREXS.kvphz", &assign_ExcREXS_kvphz); - assign_map.emplace("cim:ExcREXS.nvphz", &assign_ExcREXS_nvphz); - assign_map.emplace("cim:ExcREXS.se1", &assign_ExcREXS_se1); - assign_map.emplace("cim:ExcREXS.se2", &assign_ExcREXS_se2); - assign_map.emplace("cim:ExcREXS.ta", &assign_ExcREXS_ta); - assign_map.emplace("cim:ExcREXS.tb1", &assign_ExcREXS_tb1); - assign_map.emplace("cim:ExcREXS.tb2", &assign_ExcREXS_tb2); - assign_map.emplace("cim:ExcREXS.tc1", &assign_ExcREXS_tc1); - assign_map.emplace("cim:ExcREXS.tc2", &assign_ExcREXS_tc2); - assign_map.emplace("cim:ExcREXS.te", &assign_ExcREXS_te); - assign_map.emplace("cim:ExcREXS.tf", &assign_ExcREXS_tf); - assign_map.emplace("cim:ExcREXS.tf1", &assign_ExcREXS_tf1); - assign_map.emplace("cim:ExcREXS.tf2", &assign_ExcREXS_tf2); - assign_map.emplace("cim:ExcREXS.tp", &assign_ExcREXS_tp); - assign_map.emplace("cim:ExcREXS.vcmax", &assign_ExcREXS_vcmax); - assign_map.emplace("cim:ExcREXS.vfmax", &assign_ExcREXS_vfmax); - assign_map.emplace("cim:ExcREXS.vfmin", &assign_ExcREXS_vfmin); - assign_map.emplace("cim:ExcREXS.vimax", &assign_ExcREXS_vimax); - assign_map.emplace("cim:ExcREXS.vrmax", &assign_ExcREXS_vrmax); - assign_map.emplace("cim:ExcREXS.vrmin", &assign_ExcREXS_vrmin); - assign_map.emplace("cim:ExcREXS.xc", &assign_ExcREXS_xc); + assign_map.emplace("ExcREXS.e1", &assign_ExcREXS_e1); + assign_map.emplace("ExcREXS.e2", &assign_ExcREXS_e2); + assign_map.emplace("ExcREXS.fbf", &assign_ExcREXS_fbf); + assign_map.emplace("ExcREXS.flimf", &assign_ExcREXS_flimf); + assign_map.emplace("ExcREXS.kc", &assign_ExcREXS_kc); + assign_map.emplace("ExcREXS.kd", &assign_ExcREXS_kd); + assign_map.emplace("ExcREXS.ke", &assign_ExcREXS_ke); + assign_map.emplace("ExcREXS.kefd", &assign_ExcREXS_kefd); + assign_map.emplace("ExcREXS.kf", &assign_ExcREXS_kf); + assign_map.emplace("ExcREXS.kh", &assign_ExcREXS_kh); + assign_map.emplace("ExcREXS.kii", &assign_ExcREXS_kii); + assign_map.emplace("ExcREXS.kip", &assign_ExcREXS_kip); + assign_map.emplace("ExcREXS.ks", &assign_ExcREXS_ks); + assign_map.emplace("ExcREXS.kvi", &assign_ExcREXS_kvi); + assign_map.emplace("ExcREXS.kvp", &assign_ExcREXS_kvp); + assign_map.emplace("ExcREXS.kvphz", &assign_ExcREXS_kvphz); + assign_map.emplace("ExcREXS.nvphz", &assign_ExcREXS_nvphz); + assign_map.emplace("ExcREXS.se1", &assign_ExcREXS_se1); + assign_map.emplace("ExcREXS.se2", &assign_ExcREXS_se2); + assign_map.emplace("ExcREXS.ta", &assign_ExcREXS_ta); + assign_map.emplace("ExcREXS.tb1", &assign_ExcREXS_tb1); + assign_map.emplace("ExcREXS.tb2", &assign_ExcREXS_tb2); + assign_map.emplace("ExcREXS.tc1", &assign_ExcREXS_tc1); + assign_map.emplace("ExcREXS.tc2", &assign_ExcREXS_tc2); + assign_map.emplace("ExcREXS.te", &assign_ExcREXS_te); + assign_map.emplace("ExcREXS.tf", &assign_ExcREXS_tf); + assign_map.emplace("ExcREXS.tf1", &assign_ExcREXS_tf1); + assign_map.emplace("ExcREXS.tf2", &assign_ExcREXS_tf2); + assign_map.emplace("ExcREXS.tp", &assign_ExcREXS_tp); + assign_map.emplace("ExcREXS.vcmax", &assign_ExcREXS_vcmax); + assign_map.emplace("ExcREXS.vfmax", &assign_ExcREXS_vfmax); + assign_map.emplace("ExcREXS.vfmin", &assign_ExcREXS_vfmin); + assign_map.emplace("ExcREXS.vimax", &assign_ExcREXS_vimax); + assign_map.emplace("ExcREXS.vrmax", &assign_ExcREXS_vrmax); + assign_map.emplace("ExcREXS.vrmin", &assign_ExcREXS_vrmin); + assign_map.emplace("ExcREXS.xc", &assign_ExcREXS_xc); } void ExcREXS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,41 +1208,41 @@ void ExcREXS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcREXS.e1", &get_ExcREXS_e1); - get_map.emplace("cim:ExcREXS.e2", &get_ExcREXS_e2); - get_map.emplace("cim:ExcREXS.flimf", &get_ExcREXS_flimf); - get_map.emplace("cim:ExcREXS.kc", &get_ExcREXS_kc); - get_map.emplace("cim:ExcREXS.kd", &get_ExcREXS_kd); - get_map.emplace("cim:ExcREXS.ke", &get_ExcREXS_ke); - get_map.emplace("cim:ExcREXS.kefd", &get_ExcREXS_kefd); - get_map.emplace("cim:ExcREXS.kf", &get_ExcREXS_kf); - get_map.emplace("cim:ExcREXS.kh", &get_ExcREXS_kh); - get_map.emplace("cim:ExcREXS.kii", &get_ExcREXS_kii); - get_map.emplace("cim:ExcREXS.kip", &get_ExcREXS_kip); - get_map.emplace("cim:ExcREXS.ks", &get_ExcREXS_ks); - get_map.emplace("cim:ExcREXS.kvi", &get_ExcREXS_kvi); - get_map.emplace("cim:ExcREXS.kvp", &get_ExcREXS_kvp); - get_map.emplace("cim:ExcREXS.kvphz", &get_ExcREXS_kvphz); - get_map.emplace("cim:ExcREXS.nvphz", &get_ExcREXS_nvphz); - get_map.emplace("cim:ExcREXS.se1", &get_ExcREXS_se1); - get_map.emplace("cim:ExcREXS.se2", &get_ExcREXS_se2); - get_map.emplace("cim:ExcREXS.ta", &get_ExcREXS_ta); - get_map.emplace("cim:ExcREXS.tb1", &get_ExcREXS_tb1); - get_map.emplace("cim:ExcREXS.tb2", &get_ExcREXS_tb2); - get_map.emplace("cim:ExcREXS.tc1", &get_ExcREXS_tc1); - get_map.emplace("cim:ExcREXS.tc2", &get_ExcREXS_tc2); - get_map.emplace("cim:ExcREXS.te", &get_ExcREXS_te); - get_map.emplace("cim:ExcREXS.tf", &get_ExcREXS_tf); - get_map.emplace("cim:ExcREXS.tf1", &get_ExcREXS_tf1); - get_map.emplace("cim:ExcREXS.tf2", &get_ExcREXS_tf2); - get_map.emplace("cim:ExcREXS.tp", &get_ExcREXS_tp); - get_map.emplace("cim:ExcREXS.vcmax", &get_ExcREXS_vcmax); - get_map.emplace("cim:ExcREXS.vfmax", &get_ExcREXS_vfmax); - get_map.emplace("cim:ExcREXS.vfmin", &get_ExcREXS_vfmin); - get_map.emplace("cim:ExcREXS.vimax", &get_ExcREXS_vimax); - get_map.emplace("cim:ExcREXS.vrmax", &get_ExcREXS_vrmax); - get_map.emplace("cim:ExcREXS.vrmin", &get_ExcREXS_vrmin); - get_map.emplace("cim:ExcREXS.xc", &get_ExcREXS_xc); + get_map.emplace("ExcREXS.e1", &get_ExcREXS_e1); + get_map.emplace("ExcREXS.e2", &get_ExcREXS_e2); + get_map.emplace("ExcREXS.flimf", &get_ExcREXS_flimf); + get_map.emplace("ExcREXS.kc", &get_ExcREXS_kc); + get_map.emplace("ExcREXS.kd", &get_ExcREXS_kd); + get_map.emplace("ExcREXS.ke", &get_ExcREXS_ke); + get_map.emplace("ExcREXS.kefd", &get_ExcREXS_kefd); + get_map.emplace("ExcREXS.kf", &get_ExcREXS_kf); + get_map.emplace("ExcREXS.kh", &get_ExcREXS_kh); + get_map.emplace("ExcREXS.kii", &get_ExcREXS_kii); + get_map.emplace("ExcREXS.kip", &get_ExcREXS_kip); + get_map.emplace("ExcREXS.ks", &get_ExcREXS_ks); + get_map.emplace("ExcREXS.kvi", &get_ExcREXS_kvi); + get_map.emplace("ExcREXS.kvp", &get_ExcREXS_kvp); + get_map.emplace("ExcREXS.kvphz", &get_ExcREXS_kvphz); + get_map.emplace("ExcREXS.nvphz", &get_ExcREXS_nvphz); + get_map.emplace("ExcREXS.se1", &get_ExcREXS_se1); + get_map.emplace("ExcREXS.se2", &get_ExcREXS_se2); + get_map.emplace("ExcREXS.ta", &get_ExcREXS_ta); + get_map.emplace("ExcREXS.tb1", &get_ExcREXS_tb1); + get_map.emplace("ExcREXS.tb2", &get_ExcREXS_tb2); + get_map.emplace("ExcREXS.tc1", &get_ExcREXS_tc1); + get_map.emplace("ExcREXS.tc2", &get_ExcREXS_tc2); + get_map.emplace("ExcREXS.te", &get_ExcREXS_te); + get_map.emplace("ExcREXS.tf", &get_ExcREXS_tf); + get_map.emplace("ExcREXS.tf1", &get_ExcREXS_tf1); + get_map.emplace("ExcREXS.tf2", &get_ExcREXS_tf2); + get_map.emplace("ExcREXS.tp", &get_ExcREXS_tp); + get_map.emplace("ExcREXS.vcmax", &get_ExcREXS_vcmax); + get_map.emplace("ExcREXS.vfmax", &get_ExcREXS_vfmax); + get_map.emplace("ExcREXS.vfmin", &get_ExcREXS_vfmin); + get_map.emplace("ExcREXS.vimax", &get_ExcREXS_vimax); + get_map.emplace("ExcREXS.vrmax", &get_ExcREXS_vrmax); + get_map.emplace("ExcREXS.vrmin", &get_ExcREXS_vrmin); + get_map.emplace("ExcREXS.xc", &get_ExcREXS_xc); } void ExcREXS::addClassGetFnsToMap(std::map& get_map) const @@ -1221,7 +1253,13 @@ void ExcREXS::addClassGetFnsToMap(std::map& get void ExcREXS::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcREXS.fbf", &get_ExcREXS_fbf); + get_map.emplace("ExcREXS.fbf", &get_ExcREXS_fbf); +} + +bool ExcREXS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcREXS" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcREXS::declare() @@ -1229,6 +1267,14 @@ const BaseClassDefiner ExcREXS::declare() return BaseClassDefiner(ExcREXS::addConstructToMap, ExcREXS::addPrimitiveAssignFnsToMap, ExcREXS::addClassAssignFnsToMap, ExcREXS::debugName); } +std::map ExcREXS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcREXS_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcREXS.hpp b/CGMES_2.4.15_27JAN2020/ExcREXS.hpp index 18cd27ace..d513fe42b 100644 --- a/CGMES_2.4.15_27JAN2020/ExcREXS.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcREXS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcREXSFeedbackSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcREXS_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcSCRX.cpp b/CGMES_2.4.15_27JAN2020/ExcSCRX.cpp index be7b304c3..90e0114c7 100644 --- a/CGMES_2.4.15_27JAN2020/ExcSCRX.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcSCRX.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSCRX(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSCRX.cswitch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.rcrfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.tatb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSCRX.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSCRX::ExcSCRX() {} ExcSCRX::~ExcSCRX() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcSCRX::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcSCRX::getClassNamespaceUrl() const { - { "cim:ExcSCRX.cswitch", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.emax", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.emin", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.k", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.rcrfd", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.tatb", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.tb", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.te", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcSCRX::getPossibleProfilesForClass() const +const std::string& ExcSCRX::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcSCRX::getPossibleProfilesForAttributes() const +const std::list& ExcSCRX::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSCRX::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSCRX::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSCRX::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSCRX_cswitch(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* ExcSCRX::debugString() const void ExcSCRX::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSCRX", &ExcSCRX_factory); + factory_map.emplace("ExcSCRX", &ExcSCRX_factory); } void ExcSCRX::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSCRX.cswitch", &assign_ExcSCRX_cswitch); - assign_map.emplace("cim:ExcSCRX.emax", &assign_ExcSCRX_emax); - assign_map.emplace("cim:ExcSCRX.emin", &assign_ExcSCRX_emin); - assign_map.emplace("cim:ExcSCRX.k", &assign_ExcSCRX_k); - assign_map.emplace("cim:ExcSCRX.rcrfd", &assign_ExcSCRX_rcrfd); - assign_map.emplace("cim:ExcSCRX.tatb", &assign_ExcSCRX_tatb); - assign_map.emplace("cim:ExcSCRX.tb", &assign_ExcSCRX_tb); - assign_map.emplace("cim:ExcSCRX.te", &assign_ExcSCRX_te); + assign_map.emplace("ExcSCRX.cswitch", &assign_ExcSCRX_cswitch); + assign_map.emplace("ExcSCRX.emax", &assign_ExcSCRX_emax); + assign_map.emplace("ExcSCRX.emin", &assign_ExcSCRX_emin); + assign_map.emplace("ExcSCRX.k", &assign_ExcSCRX_k); + assign_map.emplace("ExcSCRX.rcrfd", &assign_ExcSCRX_rcrfd); + assign_map.emplace("ExcSCRX.tatb", &assign_ExcSCRX_tatb); + assign_map.emplace("ExcSCRX.tb", &assign_ExcSCRX_tb); + assign_map.emplace("ExcSCRX.te", &assign_ExcSCRX_te); } void ExcSCRX::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void ExcSCRX::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSCRX.cswitch", &get_ExcSCRX_cswitch); - get_map.emplace("cim:ExcSCRX.emax", &get_ExcSCRX_emax); - get_map.emplace("cim:ExcSCRX.emin", &get_ExcSCRX_emin); - get_map.emplace("cim:ExcSCRX.k", &get_ExcSCRX_k); - get_map.emplace("cim:ExcSCRX.rcrfd", &get_ExcSCRX_rcrfd); - get_map.emplace("cim:ExcSCRX.tatb", &get_ExcSCRX_tatb); - get_map.emplace("cim:ExcSCRX.tb", &get_ExcSCRX_tb); - get_map.emplace("cim:ExcSCRX.te", &get_ExcSCRX_te); + get_map.emplace("ExcSCRX.cswitch", &get_ExcSCRX_cswitch); + get_map.emplace("ExcSCRX.emax", &get_ExcSCRX_emax); + get_map.emplace("ExcSCRX.emin", &get_ExcSCRX_emin); + get_map.emplace("ExcSCRX.k", &get_ExcSCRX_k); + get_map.emplace("ExcSCRX.rcrfd", &get_ExcSCRX_rcrfd); + get_map.emplace("ExcSCRX.tatb", &get_ExcSCRX_tatb); + get_map.emplace("ExcSCRX.tb", &get_ExcSCRX_tb); + get_map.emplace("ExcSCRX.te", &get_ExcSCRX_te); } void ExcSCRX::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void ExcSCRX::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSCRX::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSCRX" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSCRX::declare() { return BaseClassDefiner(ExcSCRX::addConstructToMap, ExcSCRX::addPrimitiveAssignFnsToMap, ExcSCRX::addClassAssignFnsToMap, ExcSCRX::debugName); } +std::map ExcSCRX::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSCRX_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcSCRX.hpp b/CGMES_2.4.15_27JAN2020/ExcSCRX.hpp index 5bf3e69b6..a3ed4f0c6 100644 --- a/CGMES_2.4.15_27JAN2020/ExcSCRX.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcSCRX.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSCRX_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcSEXS.cpp b/CGMES_2.4.15_27JAN2020/ExcSEXS.cpp index e78222ab6..00fedb674 100644 --- a/CGMES_2.4.15_27JAN2020/ExcSEXS.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcSEXS.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSEXS(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSEXS.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tatb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSEXS.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSEXS::ExcSEXS() {} ExcSEXS::~ExcSEXS() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcSEXS::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcSEXS::getClassNamespaceUrl() const { - { "cim:ExcSEXS.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.emax", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.emin", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.k", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.kc", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tatb", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tb", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tc", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.te", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcSEXS::getPossibleProfilesForClass() const +const std::string& ExcSEXS::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcSEXS::getPossibleProfilesForAttributes() const +const std::list& ExcSEXS::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSEXS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSEXS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSEXS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSEXS_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcSEXS::debugString() const void ExcSEXS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSEXS", &ExcSEXS_factory); + factory_map.emplace("ExcSEXS", &ExcSEXS_factory); } void ExcSEXS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSEXS.efdmax", &assign_ExcSEXS_efdmax); - assign_map.emplace("cim:ExcSEXS.efdmin", &assign_ExcSEXS_efdmin); - assign_map.emplace("cim:ExcSEXS.emax", &assign_ExcSEXS_emax); - assign_map.emplace("cim:ExcSEXS.emin", &assign_ExcSEXS_emin); - assign_map.emplace("cim:ExcSEXS.k", &assign_ExcSEXS_k); - assign_map.emplace("cim:ExcSEXS.kc", &assign_ExcSEXS_kc); - assign_map.emplace("cim:ExcSEXS.tatb", &assign_ExcSEXS_tatb); - assign_map.emplace("cim:ExcSEXS.tb", &assign_ExcSEXS_tb); - assign_map.emplace("cim:ExcSEXS.tc", &assign_ExcSEXS_tc); - assign_map.emplace("cim:ExcSEXS.te", &assign_ExcSEXS_te); + assign_map.emplace("ExcSEXS.efdmax", &assign_ExcSEXS_efdmax); + assign_map.emplace("ExcSEXS.efdmin", &assign_ExcSEXS_efdmin); + assign_map.emplace("ExcSEXS.emax", &assign_ExcSEXS_emax); + assign_map.emplace("ExcSEXS.emin", &assign_ExcSEXS_emin); + assign_map.emplace("ExcSEXS.k", &assign_ExcSEXS_k); + assign_map.emplace("ExcSEXS.kc", &assign_ExcSEXS_kc); + assign_map.emplace("ExcSEXS.tatb", &assign_ExcSEXS_tatb); + assign_map.emplace("ExcSEXS.tb", &assign_ExcSEXS_tb); + assign_map.emplace("ExcSEXS.tc", &assign_ExcSEXS_tc); + assign_map.emplace("ExcSEXS.te", &assign_ExcSEXS_te); } void ExcSEXS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcSEXS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSEXS.efdmax", &get_ExcSEXS_efdmax); - get_map.emplace("cim:ExcSEXS.efdmin", &get_ExcSEXS_efdmin); - get_map.emplace("cim:ExcSEXS.emax", &get_ExcSEXS_emax); - get_map.emplace("cim:ExcSEXS.emin", &get_ExcSEXS_emin); - get_map.emplace("cim:ExcSEXS.k", &get_ExcSEXS_k); - get_map.emplace("cim:ExcSEXS.kc", &get_ExcSEXS_kc); - get_map.emplace("cim:ExcSEXS.tatb", &get_ExcSEXS_tatb); - get_map.emplace("cim:ExcSEXS.tb", &get_ExcSEXS_tb); - get_map.emplace("cim:ExcSEXS.tc", &get_ExcSEXS_tc); - get_map.emplace("cim:ExcSEXS.te", &get_ExcSEXS_te); + get_map.emplace("ExcSEXS.efdmax", &get_ExcSEXS_efdmax); + get_map.emplace("ExcSEXS.efdmin", &get_ExcSEXS_efdmin); + get_map.emplace("ExcSEXS.emax", &get_ExcSEXS_emax); + get_map.emplace("ExcSEXS.emin", &get_ExcSEXS_emin); + get_map.emplace("ExcSEXS.k", &get_ExcSEXS_k); + get_map.emplace("ExcSEXS.kc", &get_ExcSEXS_kc); + get_map.emplace("ExcSEXS.tatb", &get_ExcSEXS_tatb); + get_map.emplace("ExcSEXS.tb", &get_ExcSEXS_tb); + get_map.emplace("ExcSEXS.tc", &get_ExcSEXS_tc); + get_map.emplace("ExcSEXS.te", &get_ExcSEXS_te); } void ExcSEXS::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcSEXS::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSEXS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSEXS" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSEXS::declare() { return BaseClassDefiner(ExcSEXS::addConstructToMap, ExcSEXS::addPrimitiveAssignFnsToMap, ExcSEXS::addClassAssignFnsToMap, ExcSEXS::debugName); } +std::map ExcSEXS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSEXS_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcSEXS.hpp b/CGMES_2.4.15_27JAN2020/ExcSEXS.hpp index 2b957eb4e..d9bfb2a09 100644 --- a/CGMES_2.4.15_27JAN2020/ExcSEXS.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcSEXS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSEXS_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcSK.cpp b/CGMES_2.4.15_27JAN2020/ExcSK.cpp index 0c8d97812..7b1c04326 100644 --- a/CGMES_2.4.15_27JAN2020/ExcSK.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcSK.cpp @@ -11,63 +11,95 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSK(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSK.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.efdmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.emin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kgob", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqob", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.kqp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.nq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.qconoff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.qz", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.remote", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.sbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.uimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.uimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.urmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.urmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.vtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.vtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcSK.yp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSK::ExcSK() {} ExcSK::~ExcSK() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcSK.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.emax", { CGMESProfile::DY, } }, - { "cim:ExcSK.emin", { CGMESProfile::DY, } }, - { "cim:ExcSK.k", { CGMESProfile::DY, } }, - { "cim:ExcSK.k1", { CGMESProfile::DY, } }, - { "cim:ExcSK.k2", { CGMESProfile::DY, } }, - { "cim:ExcSK.kc", { CGMESProfile::DY, } }, - { "cim:ExcSK.kce", { CGMESProfile::DY, } }, - { "cim:ExcSK.kd", { CGMESProfile::DY, } }, - { "cim:ExcSK.kgob", { CGMESProfile::DY, } }, - { "cim:ExcSK.kp", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqi", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqob", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqp", { CGMESProfile::DY, } }, - { "cim:ExcSK.nq", { CGMESProfile::DY, } }, - { "cim:ExcSK.qconoff", { CGMESProfile::DY, } }, - { "cim:ExcSK.qz", { CGMESProfile::DY, } }, - { "cim:ExcSK.remote", { CGMESProfile::DY, } }, - { "cim:ExcSK.sbase", { CGMESProfile::DY, } }, - { "cim:ExcSK.tc", { CGMESProfile::DY, } }, - { "cim:ExcSK.te", { CGMESProfile::DY, } }, - { "cim:ExcSK.ti", { CGMESProfile::DY, } }, - { "cim:ExcSK.tp", { CGMESProfile::DY, } }, - { "cim:ExcSK.tr", { CGMESProfile::DY, } }, - { "cim:ExcSK.uimax", { CGMESProfile::DY, } }, - { "cim:ExcSK.uimin", { CGMESProfile::DY, } }, - { "cim:ExcSK.urmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.urmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.vtmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.vtmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.yp", { CGMESProfile::DY, } }, -}; - -std::list -ExcSK::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcSK::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcSK::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcSK::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcSK::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcSK::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSK::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSK::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSK::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSK_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1006,43 +1038,43 @@ const char* ExcSK::debugString() const void ExcSK::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSK", &ExcSK_factory); + factory_map.emplace("ExcSK", &ExcSK_factory); } void ExcSK::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSK.efdmax", &assign_ExcSK_efdmax); - assign_map.emplace("cim:ExcSK.efdmin", &assign_ExcSK_efdmin); - assign_map.emplace("cim:ExcSK.emax", &assign_ExcSK_emax); - assign_map.emplace("cim:ExcSK.emin", &assign_ExcSK_emin); - assign_map.emplace("cim:ExcSK.k", &assign_ExcSK_k); - assign_map.emplace("cim:ExcSK.k1", &assign_ExcSK_k1); - assign_map.emplace("cim:ExcSK.k2", &assign_ExcSK_k2); - assign_map.emplace("cim:ExcSK.kc", &assign_ExcSK_kc); - assign_map.emplace("cim:ExcSK.kce", &assign_ExcSK_kce); - assign_map.emplace("cim:ExcSK.kd", &assign_ExcSK_kd); - assign_map.emplace("cim:ExcSK.kgob", &assign_ExcSK_kgob); - assign_map.emplace("cim:ExcSK.kp", &assign_ExcSK_kp); - assign_map.emplace("cim:ExcSK.kqi", &assign_ExcSK_kqi); - assign_map.emplace("cim:ExcSK.kqob", &assign_ExcSK_kqob); - assign_map.emplace("cim:ExcSK.kqp", &assign_ExcSK_kqp); - assign_map.emplace("cim:ExcSK.nq", &assign_ExcSK_nq); - assign_map.emplace("cim:ExcSK.qconoff", &assign_ExcSK_qconoff); - assign_map.emplace("cim:ExcSK.qz", &assign_ExcSK_qz); - assign_map.emplace("cim:ExcSK.remote", &assign_ExcSK_remote); - assign_map.emplace("cim:ExcSK.sbase", &assign_ExcSK_sbase); - assign_map.emplace("cim:ExcSK.tc", &assign_ExcSK_tc); - assign_map.emplace("cim:ExcSK.te", &assign_ExcSK_te); - assign_map.emplace("cim:ExcSK.ti", &assign_ExcSK_ti); - assign_map.emplace("cim:ExcSK.tp", &assign_ExcSK_tp); - assign_map.emplace("cim:ExcSK.tr", &assign_ExcSK_tr); - assign_map.emplace("cim:ExcSK.uimax", &assign_ExcSK_uimax); - assign_map.emplace("cim:ExcSK.uimin", &assign_ExcSK_uimin); - assign_map.emplace("cim:ExcSK.urmax", &assign_ExcSK_urmax); - assign_map.emplace("cim:ExcSK.urmin", &assign_ExcSK_urmin); - assign_map.emplace("cim:ExcSK.vtmax", &assign_ExcSK_vtmax); - assign_map.emplace("cim:ExcSK.vtmin", &assign_ExcSK_vtmin); - assign_map.emplace("cim:ExcSK.yp", &assign_ExcSK_yp); + assign_map.emplace("ExcSK.efdmax", &assign_ExcSK_efdmax); + assign_map.emplace("ExcSK.efdmin", &assign_ExcSK_efdmin); + assign_map.emplace("ExcSK.emax", &assign_ExcSK_emax); + assign_map.emplace("ExcSK.emin", &assign_ExcSK_emin); + assign_map.emplace("ExcSK.k", &assign_ExcSK_k); + assign_map.emplace("ExcSK.k1", &assign_ExcSK_k1); + assign_map.emplace("ExcSK.k2", &assign_ExcSK_k2); + assign_map.emplace("ExcSK.kc", &assign_ExcSK_kc); + assign_map.emplace("ExcSK.kce", &assign_ExcSK_kce); + assign_map.emplace("ExcSK.kd", &assign_ExcSK_kd); + assign_map.emplace("ExcSK.kgob", &assign_ExcSK_kgob); + assign_map.emplace("ExcSK.kp", &assign_ExcSK_kp); + assign_map.emplace("ExcSK.kqi", &assign_ExcSK_kqi); + assign_map.emplace("ExcSK.kqob", &assign_ExcSK_kqob); + assign_map.emplace("ExcSK.kqp", &assign_ExcSK_kqp); + assign_map.emplace("ExcSK.nq", &assign_ExcSK_nq); + assign_map.emplace("ExcSK.qconoff", &assign_ExcSK_qconoff); + assign_map.emplace("ExcSK.qz", &assign_ExcSK_qz); + assign_map.emplace("ExcSK.remote", &assign_ExcSK_remote); + assign_map.emplace("ExcSK.sbase", &assign_ExcSK_sbase); + assign_map.emplace("ExcSK.tc", &assign_ExcSK_tc); + assign_map.emplace("ExcSK.te", &assign_ExcSK_te); + assign_map.emplace("ExcSK.ti", &assign_ExcSK_ti); + assign_map.emplace("ExcSK.tp", &assign_ExcSK_tp); + assign_map.emplace("ExcSK.tr", &assign_ExcSK_tr); + assign_map.emplace("ExcSK.uimax", &assign_ExcSK_uimax); + assign_map.emplace("ExcSK.uimin", &assign_ExcSK_uimin); + assign_map.emplace("ExcSK.urmax", &assign_ExcSK_urmax); + assign_map.emplace("ExcSK.urmin", &assign_ExcSK_urmin); + assign_map.emplace("ExcSK.vtmax", &assign_ExcSK_vtmax); + assign_map.emplace("ExcSK.vtmin", &assign_ExcSK_vtmin); + assign_map.emplace("ExcSK.yp", &assign_ExcSK_yp); } void ExcSK::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1052,38 +1084,38 @@ void ExcSK::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSK.efdmax", &get_ExcSK_efdmax); - get_map.emplace("cim:ExcSK.efdmin", &get_ExcSK_efdmin); - get_map.emplace("cim:ExcSK.emax", &get_ExcSK_emax); - get_map.emplace("cim:ExcSK.emin", &get_ExcSK_emin); - get_map.emplace("cim:ExcSK.k", &get_ExcSK_k); - get_map.emplace("cim:ExcSK.k1", &get_ExcSK_k1); - get_map.emplace("cim:ExcSK.k2", &get_ExcSK_k2); - get_map.emplace("cim:ExcSK.kc", &get_ExcSK_kc); - get_map.emplace("cim:ExcSK.kce", &get_ExcSK_kce); - get_map.emplace("cim:ExcSK.kd", &get_ExcSK_kd); - get_map.emplace("cim:ExcSK.kgob", &get_ExcSK_kgob); - get_map.emplace("cim:ExcSK.kp", &get_ExcSK_kp); - get_map.emplace("cim:ExcSK.kqi", &get_ExcSK_kqi); - get_map.emplace("cim:ExcSK.kqob", &get_ExcSK_kqob); - get_map.emplace("cim:ExcSK.kqp", &get_ExcSK_kqp); - get_map.emplace("cim:ExcSK.nq", &get_ExcSK_nq); - get_map.emplace("cim:ExcSK.qconoff", &get_ExcSK_qconoff); - get_map.emplace("cim:ExcSK.qz", &get_ExcSK_qz); - get_map.emplace("cim:ExcSK.remote", &get_ExcSK_remote); - get_map.emplace("cim:ExcSK.sbase", &get_ExcSK_sbase); - get_map.emplace("cim:ExcSK.tc", &get_ExcSK_tc); - get_map.emplace("cim:ExcSK.te", &get_ExcSK_te); - get_map.emplace("cim:ExcSK.ti", &get_ExcSK_ti); - get_map.emplace("cim:ExcSK.tp", &get_ExcSK_tp); - get_map.emplace("cim:ExcSK.tr", &get_ExcSK_tr); - get_map.emplace("cim:ExcSK.uimax", &get_ExcSK_uimax); - get_map.emplace("cim:ExcSK.uimin", &get_ExcSK_uimin); - get_map.emplace("cim:ExcSK.urmax", &get_ExcSK_urmax); - get_map.emplace("cim:ExcSK.urmin", &get_ExcSK_urmin); - get_map.emplace("cim:ExcSK.vtmax", &get_ExcSK_vtmax); - get_map.emplace("cim:ExcSK.vtmin", &get_ExcSK_vtmin); - get_map.emplace("cim:ExcSK.yp", &get_ExcSK_yp); + get_map.emplace("ExcSK.efdmax", &get_ExcSK_efdmax); + get_map.emplace("ExcSK.efdmin", &get_ExcSK_efdmin); + get_map.emplace("ExcSK.emax", &get_ExcSK_emax); + get_map.emplace("ExcSK.emin", &get_ExcSK_emin); + get_map.emplace("ExcSK.k", &get_ExcSK_k); + get_map.emplace("ExcSK.k1", &get_ExcSK_k1); + get_map.emplace("ExcSK.k2", &get_ExcSK_k2); + get_map.emplace("ExcSK.kc", &get_ExcSK_kc); + get_map.emplace("ExcSK.kce", &get_ExcSK_kce); + get_map.emplace("ExcSK.kd", &get_ExcSK_kd); + get_map.emplace("ExcSK.kgob", &get_ExcSK_kgob); + get_map.emplace("ExcSK.kp", &get_ExcSK_kp); + get_map.emplace("ExcSK.kqi", &get_ExcSK_kqi); + get_map.emplace("ExcSK.kqob", &get_ExcSK_kqob); + get_map.emplace("ExcSK.kqp", &get_ExcSK_kqp); + get_map.emplace("ExcSK.nq", &get_ExcSK_nq); + get_map.emplace("ExcSK.qconoff", &get_ExcSK_qconoff); + get_map.emplace("ExcSK.qz", &get_ExcSK_qz); + get_map.emplace("ExcSK.remote", &get_ExcSK_remote); + get_map.emplace("ExcSK.sbase", &get_ExcSK_sbase); + get_map.emplace("ExcSK.tc", &get_ExcSK_tc); + get_map.emplace("ExcSK.te", &get_ExcSK_te); + get_map.emplace("ExcSK.ti", &get_ExcSK_ti); + get_map.emplace("ExcSK.tp", &get_ExcSK_tp); + get_map.emplace("ExcSK.tr", &get_ExcSK_tr); + get_map.emplace("ExcSK.uimax", &get_ExcSK_uimax); + get_map.emplace("ExcSK.uimin", &get_ExcSK_uimin); + get_map.emplace("ExcSK.urmax", &get_ExcSK_urmax); + get_map.emplace("ExcSK.urmin", &get_ExcSK_urmin); + get_map.emplace("ExcSK.vtmax", &get_ExcSK_vtmax); + get_map.emplace("ExcSK.vtmin", &get_ExcSK_vtmin); + get_map.emplace("ExcSK.yp", &get_ExcSK_yp); } void ExcSK::addClassGetFnsToMap(std::map& get_map) const @@ -1096,11 +1128,25 @@ void ExcSK::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSK::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSK" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSK::declare() { return BaseClassDefiner(ExcSK::addConstructToMap, ExcSK::addPrimitiveAssignFnsToMap, ExcSK::addClassAssignFnsToMap, ExcSK::debugName); } +std::map ExcSK::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSK_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcSK.hpp b/CGMES_2.4.15_27JAN2020/ExcSK.hpp index 3d724e1da..669f37a1e 100644 --- a/CGMES_2.4.15_27JAN2020/ExcSK.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcSK.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -127,8 +128,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -136,7 +144,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSK_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcST1A.cpp b/CGMES_2.4.15_27JAN2020/ExcST1A.cpp index f96434060..45febb804 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST1A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcST1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST1A.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tc1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST1A.xe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST1A::ExcST1A() {} ExcST1A::~ExcST1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST1A::getClassNamespaceUrl() const { - { "cim:ExcST1A.ilr", { CGMESProfile::DY, } }, - { "cim:ExcST1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcST1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcST1A.klr", { CGMESProfile::DY, } }, - { "cim:ExcST1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tb1", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tc1", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST1A::getPossibleProfilesForClass() const +const std::string& ExcST1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST1A::getPossibleProfilesForAttributes() const +const std::list& ExcST1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST1A_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcST1A::debugString() const void ExcST1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST1A", &ExcST1A_factory); + factory_map.emplace("ExcST1A", &ExcST1A_factory); } void ExcST1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST1A.ilr", &assign_ExcST1A_ilr); - assign_map.emplace("cim:ExcST1A.ka", &assign_ExcST1A_ka); - assign_map.emplace("cim:ExcST1A.kc", &assign_ExcST1A_kc); - assign_map.emplace("cim:ExcST1A.kf", &assign_ExcST1A_kf); - assign_map.emplace("cim:ExcST1A.klr", &assign_ExcST1A_klr); - assign_map.emplace("cim:ExcST1A.ta", &assign_ExcST1A_ta); - assign_map.emplace("cim:ExcST1A.tb", &assign_ExcST1A_tb); - assign_map.emplace("cim:ExcST1A.tb1", &assign_ExcST1A_tb1); - assign_map.emplace("cim:ExcST1A.tc", &assign_ExcST1A_tc); - assign_map.emplace("cim:ExcST1A.tc1", &assign_ExcST1A_tc1); - assign_map.emplace("cim:ExcST1A.tf", &assign_ExcST1A_tf); - assign_map.emplace("cim:ExcST1A.vamax", &assign_ExcST1A_vamax); - assign_map.emplace("cim:ExcST1A.vamin", &assign_ExcST1A_vamin); - assign_map.emplace("cim:ExcST1A.vimax", &assign_ExcST1A_vimax); - assign_map.emplace("cim:ExcST1A.vimin", &assign_ExcST1A_vimin); - assign_map.emplace("cim:ExcST1A.vrmax", &assign_ExcST1A_vrmax); - assign_map.emplace("cim:ExcST1A.vrmin", &assign_ExcST1A_vrmin); - assign_map.emplace("cim:ExcST1A.xe", &assign_ExcST1A_xe); + assign_map.emplace("ExcST1A.ilr", &assign_ExcST1A_ilr); + assign_map.emplace("ExcST1A.ka", &assign_ExcST1A_ka); + assign_map.emplace("ExcST1A.kc", &assign_ExcST1A_kc); + assign_map.emplace("ExcST1A.kf", &assign_ExcST1A_kf); + assign_map.emplace("ExcST1A.klr", &assign_ExcST1A_klr); + assign_map.emplace("ExcST1A.ta", &assign_ExcST1A_ta); + assign_map.emplace("ExcST1A.tb", &assign_ExcST1A_tb); + assign_map.emplace("ExcST1A.tb1", &assign_ExcST1A_tb1); + assign_map.emplace("ExcST1A.tc", &assign_ExcST1A_tc); + assign_map.emplace("ExcST1A.tc1", &assign_ExcST1A_tc1); + assign_map.emplace("ExcST1A.tf", &assign_ExcST1A_tf); + assign_map.emplace("ExcST1A.vamax", &assign_ExcST1A_vamax); + assign_map.emplace("ExcST1A.vamin", &assign_ExcST1A_vamin); + assign_map.emplace("ExcST1A.vimax", &assign_ExcST1A_vimax); + assign_map.emplace("ExcST1A.vimin", &assign_ExcST1A_vimin); + assign_map.emplace("ExcST1A.vrmax", &assign_ExcST1A_vrmax); + assign_map.emplace("ExcST1A.vrmin", &assign_ExcST1A_vrmin); + assign_map.emplace("ExcST1A.xe", &assign_ExcST1A_xe); } void ExcST1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcST1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST1A.ilr", &get_ExcST1A_ilr); - get_map.emplace("cim:ExcST1A.ka", &get_ExcST1A_ka); - get_map.emplace("cim:ExcST1A.kc", &get_ExcST1A_kc); - get_map.emplace("cim:ExcST1A.kf", &get_ExcST1A_kf); - get_map.emplace("cim:ExcST1A.klr", &get_ExcST1A_klr); - get_map.emplace("cim:ExcST1A.ta", &get_ExcST1A_ta); - get_map.emplace("cim:ExcST1A.tb", &get_ExcST1A_tb); - get_map.emplace("cim:ExcST1A.tb1", &get_ExcST1A_tb1); - get_map.emplace("cim:ExcST1A.tc", &get_ExcST1A_tc); - get_map.emplace("cim:ExcST1A.tc1", &get_ExcST1A_tc1); - get_map.emplace("cim:ExcST1A.tf", &get_ExcST1A_tf); - get_map.emplace("cim:ExcST1A.vamax", &get_ExcST1A_vamax); - get_map.emplace("cim:ExcST1A.vamin", &get_ExcST1A_vamin); - get_map.emplace("cim:ExcST1A.vimax", &get_ExcST1A_vimax); - get_map.emplace("cim:ExcST1A.vimin", &get_ExcST1A_vimin); - get_map.emplace("cim:ExcST1A.vrmax", &get_ExcST1A_vrmax); - get_map.emplace("cim:ExcST1A.vrmin", &get_ExcST1A_vrmin); - get_map.emplace("cim:ExcST1A.xe", &get_ExcST1A_xe); + get_map.emplace("ExcST1A.ilr", &get_ExcST1A_ilr); + get_map.emplace("ExcST1A.ka", &get_ExcST1A_ka); + get_map.emplace("ExcST1A.kc", &get_ExcST1A_kc); + get_map.emplace("ExcST1A.kf", &get_ExcST1A_kf); + get_map.emplace("ExcST1A.klr", &get_ExcST1A_klr); + get_map.emplace("ExcST1A.ta", &get_ExcST1A_ta); + get_map.emplace("ExcST1A.tb", &get_ExcST1A_tb); + get_map.emplace("ExcST1A.tb1", &get_ExcST1A_tb1); + get_map.emplace("ExcST1A.tc", &get_ExcST1A_tc); + get_map.emplace("ExcST1A.tc1", &get_ExcST1A_tc1); + get_map.emplace("ExcST1A.tf", &get_ExcST1A_tf); + get_map.emplace("ExcST1A.vamax", &get_ExcST1A_vamax); + get_map.emplace("ExcST1A.vamin", &get_ExcST1A_vamin); + get_map.emplace("ExcST1A.vimax", &get_ExcST1A_vimax); + get_map.emplace("ExcST1A.vimin", &get_ExcST1A_vimin); + get_map.emplace("ExcST1A.vrmax", &get_ExcST1A_vrmax); + get_map.emplace("ExcST1A.vrmin", &get_ExcST1A_vrmin); + get_map.emplace("ExcST1A.xe", &get_ExcST1A_xe); } void ExcST1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcST1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST1A::declare() { return BaseClassDefiner(ExcST1A::addConstructToMap, ExcST1A::addPrimitiveAssignFnsToMap, ExcST1A::addClassAssignFnsToMap, ExcST1A::debugName); } +std::map ExcST1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcST1A.hpp b/CGMES_2.4.15_27JAN2020/ExcST1A.hpp index 2c1805a46..3c3094d0d 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST1A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcST1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcST2A.cpp b/CGMES_2.4.15_27JAN2020/ExcST2A.cpp index afa9e20ff..a0eba51e0 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST2A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcST2A.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST2A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST2A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST2A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST2A::ExcST2A() {} ExcST2A::~ExcST2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST2A::getClassNamespaceUrl() const { - { "cim:ExcST2A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ki", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kp", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST2A.te", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcST2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcST2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST2A::getPossibleProfilesForClass() const +const std::string& ExcST2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST2A::getPossibleProfilesForAttributes() const +const std::list& ExcST2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST2A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcST2A::debugString() const void ExcST2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST2A", &ExcST2A_factory); + factory_map.emplace("ExcST2A", &ExcST2A_factory); } void ExcST2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST2A.efdmax", &assign_ExcST2A_efdmax); - assign_map.emplace("cim:ExcST2A.ka", &assign_ExcST2A_ka); - assign_map.emplace("cim:ExcST2A.kc", &assign_ExcST2A_kc); - assign_map.emplace("cim:ExcST2A.ke", &assign_ExcST2A_ke); - assign_map.emplace("cim:ExcST2A.kf", &assign_ExcST2A_kf); - assign_map.emplace("cim:ExcST2A.ki", &assign_ExcST2A_ki); - assign_map.emplace("cim:ExcST2A.kp", &assign_ExcST2A_kp); - assign_map.emplace("cim:ExcST2A.ta", &assign_ExcST2A_ta); - assign_map.emplace("cim:ExcST2A.tb", &assign_ExcST2A_tb); - assign_map.emplace("cim:ExcST2A.tc", &assign_ExcST2A_tc); - assign_map.emplace("cim:ExcST2A.te", &assign_ExcST2A_te); - assign_map.emplace("cim:ExcST2A.tf", &assign_ExcST2A_tf); - assign_map.emplace("cim:ExcST2A.uelin", &assign_ExcST2A_uelin); - assign_map.emplace("cim:ExcST2A.vrmax", &assign_ExcST2A_vrmax); - assign_map.emplace("cim:ExcST2A.vrmin", &assign_ExcST2A_vrmin); + assign_map.emplace("ExcST2A.efdmax", &assign_ExcST2A_efdmax); + assign_map.emplace("ExcST2A.ka", &assign_ExcST2A_ka); + assign_map.emplace("ExcST2A.kc", &assign_ExcST2A_kc); + assign_map.emplace("ExcST2A.ke", &assign_ExcST2A_ke); + assign_map.emplace("ExcST2A.kf", &assign_ExcST2A_kf); + assign_map.emplace("ExcST2A.ki", &assign_ExcST2A_ki); + assign_map.emplace("ExcST2A.kp", &assign_ExcST2A_kp); + assign_map.emplace("ExcST2A.ta", &assign_ExcST2A_ta); + assign_map.emplace("ExcST2A.tb", &assign_ExcST2A_tb); + assign_map.emplace("ExcST2A.tc", &assign_ExcST2A_tc); + assign_map.emplace("ExcST2A.te", &assign_ExcST2A_te); + assign_map.emplace("ExcST2A.tf", &assign_ExcST2A_tf); + assign_map.emplace("ExcST2A.uelin", &assign_ExcST2A_uelin); + assign_map.emplace("ExcST2A.vrmax", &assign_ExcST2A_vrmax); + assign_map.emplace("ExcST2A.vrmin", &assign_ExcST2A_vrmin); } void ExcST2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void ExcST2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST2A.efdmax", &get_ExcST2A_efdmax); - get_map.emplace("cim:ExcST2A.ka", &get_ExcST2A_ka); - get_map.emplace("cim:ExcST2A.kc", &get_ExcST2A_kc); - get_map.emplace("cim:ExcST2A.ke", &get_ExcST2A_ke); - get_map.emplace("cim:ExcST2A.kf", &get_ExcST2A_kf); - get_map.emplace("cim:ExcST2A.ki", &get_ExcST2A_ki); - get_map.emplace("cim:ExcST2A.kp", &get_ExcST2A_kp); - get_map.emplace("cim:ExcST2A.ta", &get_ExcST2A_ta); - get_map.emplace("cim:ExcST2A.tb", &get_ExcST2A_tb); - get_map.emplace("cim:ExcST2A.tc", &get_ExcST2A_tc); - get_map.emplace("cim:ExcST2A.te", &get_ExcST2A_te); - get_map.emplace("cim:ExcST2A.tf", &get_ExcST2A_tf); - get_map.emplace("cim:ExcST2A.uelin", &get_ExcST2A_uelin); - get_map.emplace("cim:ExcST2A.vrmax", &get_ExcST2A_vrmax); - get_map.emplace("cim:ExcST2A.vrmin", &get_ExcST2A_vrmin); + get_map.emplace("ExcST2A.efdmax", &get_ExcST2A_efdmax); + get_map.emplace("ExcST2A.ka", &get_ExcST2A_ka); + get_map.emplace("ExcST2A.kc", &get_ExcST2A_kc); + get_map.emplace("ExcST2A.ke", &get_ExcST2A_ke); + get_map.emplace("ExcST2A.kf", &get_ExcST2A_kf); + get_map.emplace("ExcST2A.ki", &get_ExcST2A_ki); + get_map.emplace("ExcST2A.kp", &get_ExcST2A_kp); + get_map.emplace("ExcST2A.ta", &get_ExcST2A_ta); + get_map.emplace("ExcST2A.tb", &get_ExcST2A_tb); + get_map.emplace("ExcST2A.tc", &get_ExcST2A_tc); + get_map.emplace("ExcST2A.te", &get_ExcST2A_te); + get_map.emplace("ExcST2A.tf", &get_ExcST2A_tf); + get_map.emplace("ExcST2A.uelin", &get_ExcST2A_uelin); + get_map.emplace("ExcST2A.vrmax", &get_ExcST2A_vrmax); + get_map.emplace("ExcST2A.vrmin", &get_ExcST2A_vrmin); } void ExcST2A::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void ExcST2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST2A::declare() { return BaseClassDefiner(ExcST2A::addConstructToMap, ExcST2A::addPrimitiveAssignFnsToMap, ExcST2A::addClassAssignFnsToMap, ExcST2A::debugName); } +std::map ExcST2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST2A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcST2A.hpp b/CGMES_2.4.15_27JAN2020/ExcST2A.hpp index 1da9826e1..ad4dbd002 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST2A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcST2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -75,8 +76,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -84,7 +92,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST2A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcST3A.cpp b/CGMES_2.4.15_27JAN2020/ExcST3A.cpp index e31c2b37c..30bc2661a 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST3A.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcST3A.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST3A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST3A.efdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kj", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST3A.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST3A::ExcST3A() {} ExcST3A::~ExcST3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST3A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kg", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ki", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kj", { CGMESProfile::DY, } }, - { "cim:ExcST3A.km", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kp", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ks1", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST3A.thetap", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tm", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST3A.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcST3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST3A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -646,31 +678,31 @@ const char* ExcST3A::debugString() const void ExcST3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST3A", &ExcST3A_factory); + factory_map.emplace("ExcST3A", &ExcST3A_factory); } void ExcST3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST3A.efdmax", &assign_ExcST3A_efdmax); - assign_map.emplace("cim:ExcST3A.kc", &assign_ExcST3A_kc); - assign_map.emplace("cim:ExcST3A.kg", &assign_ExcST3A_kg); - assign_map.emplace("cim:ExcST3A.ki", &assign_ExcST3A_ki); - assign_map.emplace("cim:ExcST3A.kj", &assign_ExcST3A_kj); - assign_map.emplace("cim:ExcST3A.km", &assign_ExcST3A_km); - assign_map.emplace("cim:ExcST3A.kp", &assign_ExcST3A_kp); - assign_map.emplace("cim:ExcST3A.ks", &assign_ExcST3A_ks); - assign_map.emplace("cim:ExcST3A.ks1", &assign_ExcST3A_ks1); - assign_map.emplace("cim:ExcST3A.tb", &assign_ExcST3A_tb); - assign_map.emplace("cim:ExcST3A.tc", &assign_ExcST3A_tc); - assign_map.emplace("cim:ExcST3A.thetap", &assign_ExcST3A_thetap); - assign_map.emplace("cim:ExcST3A.tm", &assign_ExcST3A_tm); - assign_map.emplace("cim:ExcST3A.vbmax", &assign_ExcST3A_vbmax); - assign_map.emplace("cim:ExcST3A.vgmax", &assign_ExcST3A_vgmax); - assign_map.emplace("cim:ExcST3A.vimax", &assign_ExcST3A_vimax); - assign_map.emplace("cim:ExcST3A.vimin", &assign_ExcST3A_vimin); - assign_map.emplace("cim:ExcST3A.vrmax", &assign_ExcST3A_vrmax); - assign_map.emplace("cim:ExcST3A.vrmin", &assign_ExcST3A_vrmin); - assign_map.emplace("cim:ExcST3A.xl", &assign_ExcST3A_xl); + assign_map.emplace("ExcST3A.efdmax", &assign_ExcST3A_efdmax); + assign_map.emplace("ExcST3A.kc", &assign_ExcST3A_kc); + assign_map.emplace("ExcST3A.kg", &assign_ExcST3A_kg); + assign_map.emplace("ExcST3A.ki", &assign_ExcST3A_ki); + assign_map.emplace("ExcST3A.kj", &assign_ExcST3A_kj); + assign_map.emplace("ExcST3A.km", &assign_ExcST3A_km); + assign_map.emplace("ExcST3A.kp", &assign_ExcST3A_kp); + assign_map.emplace("ExcST3A.ks", &assign_ExcST3A_ks); + assign_map.emplace("ExcST3A.ks1", &assign_ExcST3A_ks1); + assign_map.emplace("ExcST3A.tb", &assign_ExcST3A_tb); + assign_map.emplace("ExcST3A.tc", &assign_ExcST3A_tc); + assign_map.emplace("ExcST3A.thetap", &assign_ExcST3A_thetap); + assign_map.emplace("ExcST3A.tm", &assign_ExcST3A_tm); + assign_map.emplace("ExcST3A.vbmax", &assign_ExcST3A_vbmax); + assign_map.emplace("ExcST3A.vgmax", &assign_ExcST3A_vgmax); + assign_map.emplace("ExcST3A.vimax", &assign_ExcST3A_vimax); + assign_map.emplace("ExcST3A.vimin", &assign_ExcST3A_vimin); + assign_map.emplace("ExcST3A.vrmax", &assign_ExcST3A_vrmax); + assign_map.emplace("ExcST3A.vrmin", &assign_ExcST3A_vrmin); + assign_map.emplace("ExcST3A.xl", &assign_ExcST3A_xl); } void ExcST3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -680,26 +712,26 @@ void ExcST3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST3A.efdmax", &get_ExcST3A_efdmax); - get_map.emplace("cim:ExcST3A.kc", &get_ExcST3A_kc); - get_map.emplace("cim:ExcST3A.kg", &get_ExcST3A_kg); - get_map.emplace("cim:ExcST3A.ki", &get_ExcST3A_ki); - get_map.emplace("cim:ExcST3A.kj", &get_ExcST3A_kj); - get_map.emplace("cim:ExcST3A.km", &get_ExcST3A_km); - get_map.emplace("cim:ExcST3A.kp", &get_ExcST3A_kp); - get_map.emplace("cim:ExcST3A.ks", &get_ExcST3A_ks); - get_map.emplace("cim:ExcST3A.ks1", &get_ExcST3A_ks1); - get_map.emplace("cim:ExcST3A.tb", &get_ExcST3A_tb); - get_map.emplace("cim:ExcST3A.tc", &get_ExcST3A_tc); - get_map.emplace("cim:ExcST3A.thetap", &get_ExcST3A_thetap); - get_map.emplace("cim:ExcST3A.tm", &get_ExcST3A_tm); - get_map.emplace("cim:ExcST3A.vbmax", &get_ExcST3A_vbmax); - get_map.emplace("cim:ExcST3A.vgmax", &get_ExcST3A_vgmax); - get_map.emplace("cim:ExcST3A.vimax", &get_ExcST3A_vimax); - get_map.emplace("cim:ExcST3A.vimin", &get_ExcST3A_vimin); - get_map.emplace("cim:ExcST3A.vrmax", &get_ExcST3A_vrmax); - get_map.emplace("cim:ExcST3A.vrmin", &get_ExcST3A_vrmin); - get_map.emplace("cim:ExcST3A.xl", &get_ExcST3A_xl); + get_map.emplace("ExcST3A.efdmax", &get_ExcST3A_efdmax); + get_map.emplace("ExcST3A.kc", &get_ExcST3A_kc); + get_map.emplace("ExcST3A.kg", &get_ExcST3A_kg); + get_map.emplace("ExcST3A.ki", &get_ExcST3A_ki); + get_map.emplace("ExcST3A.kj", &get_ExcST3A_kj); + get_map.emplace("ExcST3A.km", &get_ExcST3A_km); + get_map.emplace("ExcST3A.kp", &get_ExcST3A_kp); + get_map.emplace("ExcST3A.ks", &get_ExcST3A_ks); + get_map.emplace("ExcST3A.ks1", &get_ExcST3A_ks1); + get_map.emplace("ExcST3A.tb", &get_ExcST3A_tb); + get_map.emplace("ExcST3A.tc", &get_ExcST3A_tc); + get_map.emplace("ExcST3A.thetap", &get_ExcST3A_thetap); + get_map.emplace("ExcST3A.tm", &get_ExcST3A_tm); + get_map.emplace("ExcST3A.vbmax", &get_ExcST3A_vbmax); + get_map.emplace("ExcST3A.vgmax", &get_ExcST3A_vgmax); + get_map.emplace("ExcST3A.vimax", &get_ExcST3A_vimax); + get_map.emplace("ExcST3A.vimin", &get_ExcST3A_vimin); + get_map.emplace("ExcST3A.vrmax", &get_ExcST3A_vrmax); + get_map.emplace("ExcST3A.vrmin", &get_ExcST3A_vrmin); + get_map.emplace("ExcST3A.xl", &get_ExcST3A_xl); } void ExcST3A::addClassGetFnsToMap(std::map& get_map) const @@ -712,11 +744,25 @@ void ExcST3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST3A::declare() { return BaseClassDefiner(ExcST3A::addConstructToMap, ExcST3A::addPrimitiveAssignFnsToMap, ExcST3A::addClassAssignFnsToMap, ExcST3A::debugName); } +std::map ExcST3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST3A_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcST3A.hpp b/CGMES_2.4.15_27JAN2020/ExcST3A.hpp index 522bb2633..750b93987 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST3A.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcST3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -90,8 +91,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -99,7 +107,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST3A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcST4B.cpp b/CGMES_2.4.15_27JAN2020/ExcST4B.cpp index b09570552..bb7ae0dc9 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST4B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcST4B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST4B.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kir", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kpm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.kpr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.lvgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.thetap", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.uel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vbmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vgmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vmmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vmmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST4B.xl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST4B::ExcST4B() {} ExcST4B::~ExcST4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST4B.kc", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kg", { CGMESProfile::DY, } }, - { "cim:ExcST4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kim", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kir", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kpm", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcST4B.lvgate", { CGMESProfile::DY, } }, - { "cim:ExcST4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcST4B.thetap", { CGMESProfile::DY, } }, - { "cim:ExcST4B.uel", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST4B.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcST4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST4B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcST4B::debugString() const void ExcST4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST4B", &ExcST4B_factory); + factory_map.emplace("ExcST4B", &ExcST4B_factory); } void ExcST4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST4B.kc", &assign_ExcST4B_kc); - assign_map.emplace("cim:ExcST4B.kg", &assign_ExcST4B_kg); - assign_map.emplace("cim:ExcST4B.ki", &assign_ExcST4B_ki); - assign_map.emplace("cim:ExcST4B.kim", &assign_ExcST4B_kim); - assign_map.emplace("cim:ExcST4B.kir", &assign_ExcST4B_kir); - assign_map.emplace("cim:ExcST4B.kp", &assign_ExcST4B_kp); - assign_map.emplace("cim:ExcST4B.kpm", &assign_ExcST4B_kpm); - assign_map.emplace("cim:ExcST4B.kpr", &assign_ExcST4B_kpr); - assign_map.emplace("cim:ExcST4B.lvgate", &assign_ExcST4B_lvgate); - assign_map.emplace("cim:ExcST4B.ta", &assign_ExcST4B_ta); - assign_map.emplace("cim:ExcST4B.thetap", &assign_ExcST4B_thetap); - assign_map.emplace("cim:ExcST4B.uel", &assign_ExcST4B_uel); - assign_map.emplace("cim:ExcST4B.vbmax", &assign_ExcST4B_vbmax); - assign_map.emplace("cim:ExcST4B.vgmax", &assign_ExcST4B_vgmax); - assign_map.emplace("cim:ExcST4B.vmmax", &assign_ExcST4B_vmmax); - assign_map.emplace("cim:ExcST4B.vmmin", &assign_ExcST4B_vmmin); - assign_map.emplace("cim:ExcST4B.vrmax", &assign_ExcST4B_vrmax); - assign_map.emplace("cim:ExcST4B.vrmin", &assign_ExcST4B_vrmin); - assign_map.emplace("cim:ExcST4B.xl", &assign_ExcST4B_xl); + assign_map.emplace("ExcST4B.kc", &assign_ExcST4B_kc); + assign_map.emplace("ExcST4B.kg", &assign_ExcST4B_kg); + assign_map.emplace("ExcST4B.ki", &assign_ExcST4B_ki); + assign_map.emplace("ExcST4B.kim", &assign_ExcST4B_kim); + assign_map.emplace("ExcST4B.kir", &assign_ExcST4B_kir); + assign_map.emplace("ExcST4B.kp", &assign_ExcST4B_kp); + assign_map.emplace("ExcST4B.kpm", &assign_ExcST4B_kpm); + assign_map.emplace("ExcST4B.kpr", &assign_ExcST4B_kpr); + assign_map.emplace("ExcST4B.lvgate", &assign_ExcST4B_lvgate); + assign_map.emplace("ExcST4B.ta", &assign_ExcST4B_ta); + assign_map.emplace("ExcST4B.thetap", &assign_ExcST4B_thetap); + assign_map.emplace("ExcST4B.uel", &assign_ExcST4B_uel); + assign_map.emplace("ExcST4B.vbmax", &assign_ExcST4B_vbmax); + assign_map.emplace("ExcST4B.vgmax", &assign_ExcST4B_vgmax); + assign_map.emplace("ExcST4B.vmmax", &assign_ExcST4B_vmmax); + assign_map.emplace("ExcST4B.vmmin", &assign_ExcST4B_vmmin); + assign_map.emplace("ExcST4B.vrmax", &assign_ExcST4B_vrmax); + assign_map.emplace("ExcST4B.vrmin", &assign_ExcST4B_vrmin); + assign_map.emplace("ExcST4B.xl", &assign_ExcST4B_xl); } void ExcST4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcST4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST4B.kc", &get_ExcST4B_kc); - get_map.emplace("cim:ExcST4B.kg", &get_ExcST4B_kg); - get_map.emplace("cim:ExcST4B.ki", &get_ExcST4B_ki); - get_map.emplace("cim:ExcST4B.kim", &get_ExcST4B_kim); - get_map.emplace("cim:ExcST4B.kir", &get_ExcST4B_kir); - get_map.emplace("cim:ExcST4B.kp", &get_ExcST4B_kp); - get_map.emplace("cim:ExcST4B.kpm", &get_ExcST4B_kpm); - get_map.emplace("cim:ExcST4B.kpr", &get_ExcST4B_kpr); - get_map.emplace("cim:ExcST4B.lvgate", &get_ExcST4B_lvgate); - get_map.emplace("cim:ExcST4B.ta", &get_ExcST4B_ta); - get_map.emplace("cim:ExcST4B.thetap", &get_ExcST4B_thetap); - get_map.emplace("cim:ExcST4B.uel", &get_ExcST4B_uel); - get_map.emplace("cim:ExcST4B.vbmax", &get_ExcST4B_vbmax); - get_map.emplace("cim:ExcST4B.vgmax", &get_ExcST4B_vgmax); - get_map.emplace("cim:ExcST4B.vmmax", &get_ExcST4B_vmmax); - get_map.emplace("cim:ExcST4B.vmmin", &get_ExcST4B_vmmin); - get_map.emplace("cim:ExcST4B.vrmax", &get_ExcST4B_vrmax); - get_map.emplace("cim:ExcST4B.vrmin", &get_ExcST4B_vrmin); - get_map.emplace("cim:ExcST4B.xl", &get_ExcST4B_xl); + get_map.emplace("ExcST4B.kc", &get_ExcST4B_kc); + get_map.emplace("ExcST4B.kg", &get_ExcST4B_kg); + get_map.emplace("ExcST4B.ki", &get_ExcST4B_ki); + get_map.emplace("ExcST4B.kim", &get_ExcST4B_kim); + get_map.emplace("ExcST4B.kir", &get_ExcST4B_kir); + get_map.emplace("ExcST4B.kp", &get_ExcST4B_kp); + get_map.emplace("ExcST4B.kpm", &get_ExcST4B_kpm); + get_map.emplace("ExcST4B.kpr", &get_ExcST4B_kpr); + get_map.emplace("ExcST4B.lvgate", &get_ExcST4B_lvgate); + get_map.emplace("ExcST4B.ta", &get_ExcST4B_ta); + get_map.emplace("ExcST4B.thetap", &get_ExcST4B_thetap); + get_map.emplace("ExcST4B.uel", &get_ExcST4B_uel); + get_map.emplace("ExcST4B.vbmax", &get_ExcST4B_vbmax); + get_map.emplace("ExcST4B.vgmax", &get_ExcST4B_vgmax); + get_map.emplace("ExcST4B.vmmax", &get_ExcST4B_vmmax); + get_map.emplace("ExcST4B.vmmin", &get_ExcST4B_vmmin); + get_map.emplace("ExcST4B.vrmax", &get_ExcST4B_vrmax); + get_map.emplace("ExcST4B.vrmin", &get_ExcST4B_vrmin); + get_map.emplace("ExcST4B.xl", &get_ExcST4B_xl); } void ExcST4B::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcST4B::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST4B::declare() { return BaseClassDefiner(ExcST4B::addConstructToMap, ExcST4B::addPrimitiveAssignFnsToMap, ExcST4B::addClassAssignFnsToMap, ExcST4B::debugName); } +std::map ExcST4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST4B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcST4B.hpp b/CGMES_2.4.15_27JAN2020/ExcST4B.hpp index 5aa265787..f769e715a 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST4B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcST4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST4B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcST6B.cpp b/CGMES_2.4.15_27JAN2020/ExcST6B.cpp index 9942e0b7a..1eb2154cf 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST6B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcST6B.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST6B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST6B.ilr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.klr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.kvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.tvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vilim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vmult", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST6B.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST6B::ExcST6B() {} ExcST6B::~ExcST6B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST6B.ilr", { CGMESProfile::DY, } }, - { "cim:ExcST6B.k1", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kcl", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kff", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kg", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kia", { CGMESProfile::DY, } }, - { "cim:ExcST6B.klr", { CGMESProfile::DY, } }, - { "cim:ExcST6B.km", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kvd", { CGMESProfile::DY, } }, - { "cim:ExcST6B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.tg", { CGMESProfile::DY, } }, - { "cim:ExcST6B.ts", { CGMESProfile::DY, } }, - { "cim:ExcST6B.tvd", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vilim", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vmult", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.xc", { CGMESProfile::DY, } }, -}; - -std::list -ExcST6B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST6B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST6B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST6B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST6B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST6B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST6B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST6B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST6B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST6B_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcST6B::debugString() const void ExcST6B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST6B", &ExcST6B_factory); + factory_map.emplace("ExcST6B", &ExcST6B_factory); } void ExcST6B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST6B.ilr", &assign_ExcST6B_ilr); - assign_map.emplace("cim:ExcST6B.k1", &assign_ExcST6B_k1); - assign_map.emplace("cim:ExcST6B.kcl", &assign_ExcST6B_kcl); - assign_map.emplace("cim:ExcST6B.kff", &assign_ExcST6B_kff); - assign_map.emplace("cim:ExcST6B.kg", &assign_ExcST6B_kg); - assign_map.emplace("cim:ExcST6B.kia", &assign_ExcST6B_kia); - assign_map.emplace("cim:ExcST6B.klr", &assign_ExcST6B_klr); - assign_map.emplace("cim:ExcST6B.km", &assign_ExcST6B_km); - assign_map.emplace("cim:ExcST6B.kpa", &assign_ExcST6B_kpa); - assign_map.emplace("cim:ExcST6B.kvd", &assign_ExcST6B_kvd); - assign_map.emplace("cim:ExcST6B.oelin", &assign_ExcST6B_oelin); - assign_map.emplace("cim:ExcST6B.tg", &assign_ExcST6B_tg); - assign_map.emplace("cim:ExcST6B.ts", &assign_ExcST6B_ts); - assign_map.emplace("cim:ExcST6B.tvd", &assign_ExcST6B_tvd); - assign_map.emplace("cim:ExcST6B.vamax", &assign_ExcST6B_vamax); - assign_map.emplace("cim:ExcST6B.vamin", &assign_ExcST6B_vamin); - assign_map.emplace("cim:ExcST6B.vilim", &assign_ExcST6B_vilim); - assign_map.emplace("cim:ExcST6B.vimax", &assign_ExcST6B_vimax); - assign_map.emplace("cim:ExcST6B.vimin", &assign_ExcST6B_vimin); - assign_map.emplace("cim:ExcST6B.vmult", &assign_ExcST6B_vmult); - assign_map.emplace("cim:ExcST6B.vrmax", &assign_ExcST6B_vrmax); - assign_map.emplace("cim:ExcST6B.vrmin", &assign_ExcST6B_vrmin); - assign_map.emplace("cim:ExcST6B.xc", &assign_ExcST6B_xc); + assign_map.emplace("ExcST6B.ilr", &assign_ExcST6B_ilr); + assign_map.emplace("ExcST6B.k1", &assign_ExcST6B_k1); + assign_map.emplace("ExcST6B.kcl", &assign_ExcST6B_kcl); + assign_map.emplace("ExcST6B.kff", &assign_ExcST6B_kff); + assign_map.emplace("ExcST6B.kg", &assign_ExcST6B_kg); + assign_map.emplace("ExcST6B.kia", &assign_ExcST6B_kia); + assign_map.emplace("ExcST6B.klr", &assign_ExcST6B_klr); + assign_map.emplace("ExcST6B.km", &assign_ExcST6B_km); + assign_map.emplace("ExcST6B.kpa", &assign_ExcST6B_kpa); + assign_map.emplace("ExcST6B.kvd", &assign_ExcST6B_kvd); + assign_map.emplace("ExcST6B.oelin", &assign_ExcST6B_oelin); + assign_map.emplace("ExcST6B.tg", &assign_ExcST6B_tg); + assign_map.emplace("ExcST6B.ts", &assign_ExcST6B_ts); + assign_map.emplace("ExcST6B.tvd", &assign_ExcST6B_tvd); + assign_map.emplace("ExcST6B.vamax", &assign_ExcST6B_vamax); + assign_map.emplace("ExcST6B.vamin", &assign_ExcST6B_vamin); + assign_map.emplace("ExcST6B.vilim", &assign_ExcST6B_vilim); + assign_map.emplace("ExcST6B.vimax", &assign_ExcST6B_vimax); + assign_map.emplace("ExcST6B.vimin", &assign_ExcST6B_vimin); + assign_map.emplace("ExcST6B.vmult", &assign_ExcST6B_vmult); + assign_map.emplace("ExcST6B.vrmax", &assign_ExcST6B_vrmax); + assign_map.emplace("ExcST6B.vrmin", &assign_ExcST6B_vrmin); + assign_map.emplace("ExcST6B.xc", &assign_ExcST6B_xc); } void ExcST6B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,28 +805,28 @@ void ExcST6B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST6B.ilr", &get_ExcST6B_ilr); - get_map.emplace("cim:ExcST6B.k1", &get_ExcST6B_k1); - get_map.emplace("cim:ExcST6B.kcl", &get_ExcST6B_kcl); - get_map.emplace("cim:ExcST6B.kff", &get_ExcST6B_kff); - get_map.emplace("cim:ExcST6B.kg", &get_ExcST6B_kg); - get_map.emplace("cim:ExcST6B.kia", &get_ExcST6B_kia); - get_map.emplace("cim:ExcST6B.klr", &get_ExcST6B_klr); - get_map.emplace("cim:ExcST6B.km", &get_ExcST6B_km); - get_map.emplace("cim:ExcST6B.kpa", &get_ExcST6B_kpa); - get_map.emplace("cim:ExcST6B.kvd", &get_ExcST6B_kvd); - get_map.emplace("cim:ExcST6B.tg", &get_ExcST6B_tg); - get_map.emplace("cim:ExcST6B.ts", &get_ExcST6B_ts); - get_map.emplace("cim:ExcST6B.tvd", &get_ExcST6B_tvd); - get_map.emplace("cim:ExcST6B.vamax", &get_ExcST6B_vamax); - get_map.emplace("cim:ExcST6B.vamin", &get_ExcST6B_vamin); - get_map.emplace("cim:ExcST6B.vilim", &get_ExcST6B_vilim); - get_map.emplace("cim:ExcST6B.vimax", &get_ExcST6B_vimax); - get_map.emplace("cim:ExcST6B.vimin", &get_ExcST6B_vimin); - get_map.emplace("cim:ExcST6B.vmult", &get_ExcST6B_vmult); - get_map.emplace("cim:ExcST6B.vrmax", &get_ExcST6B_vrmax); - get_map.emplace("cim:ExcST6B.vrmin", &get_ExcST6B_vrmin); - get_map.emplace("cim:ExcST6B.xc", &get_ExcST6B_xc); + get_map.emplace("ExcST6B.ilr", &get_ExcST6B_ilr); + get_map.emplace("ExcST6B.k1", &get_ExcST6B_k1); + get_map.emplace("ExcST6B.kcl", &get_ExcST6B_kcl); + get_map.emplace("ExcST6B.kff", &get_ExcST6B_kff); + get_map.emplace("ExcST6B.kg", &get_ExcST6B_kg); + get_map.emplace("ExcST6B.kia", &get_ExcST6B_kia); + get_map.emplace("ExcST6B.klr", &get_ExcST6B_klr); + get_map.emplace("ExcST6B.km", &get_ExcST6B_km); + get_map.emplace("ExcST6B.kpa", &get_ExcST6B_kpa); + get_map.emplace("ExcST6B.kvd", &get_ExcST6B_kvd); + get_map.emplace("ExcST6B.tg", &get_ExcST6B_tg); + get_map.emplace("ExcST6B.ts", &get_ExcST6B_ts); + get_map.emplace("ExcST6B.tvd", &get_ExcST6B_tvd); + get_map.emplace("ExcST6B.vamax", &get_ExcST6B_vamax); + get_map.emplace("ExcST6B.vamin", &get_ExcST6B_vamin); + get_map.emplace("ExcST6B.vilim", &get_ExcST6B_vilim); + get_map.emplace("ExcST6B.vimax", &get_ExcST6B_vimax); + get_map.emplace("ExcST6B.vimin", &get_ExcST6B_vimin); + get_map.emplace("ExcST6B.vmult", &get_ExcST6B_vmult); + get_map.emplace("ExcST6B.vrmax", &get_ExcST6B_vrmax); + get_map.emplace("ExcST6B.vrmin", &get_ExcST6B_vrmin); + get_map.emplace("ExcST6B.xc", &get_ExcST6B_xc); } void ExcST6B::addClassGetFnsToMap(std::map& get_map) const @@ -805,7 +837,13 @@ void ExcST6B::addClassGetFnsToMap(std::map& get void ExcST6B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcST6B.oelin", &get_ExcST6B_oelin); + get_map.emplace("ExcST6B.oelin", &get_ExcST6B_oelin); +} + +bool ExcST6B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST6B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcST6B::declare() @@ -813,6 +851,14 @@ const BaseClassDefiner ExcST6B::declare() return BaseClassDefiner(ExcST6B::addConstructToMap, ExcST6B::addPrimitiveAssignFnsToMap, ExcST6B::addClassAssignFnsToMap, ExcST6B::debugName); } +std::map ExcST6B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST6B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcST6B.hpp b/CGMES_2.4.15_27JAN2020/ExcST6B.hpp index 5b79ac602..9a5dc81bd 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST6B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcST6B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "ExcST6BOELselectorKind.hpp" #include "PU.hpp" @@ -100,8 +101,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -109,7 +117,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST6B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcST7B.cpp b/CGMES_2.4.15_27JAN2020/ExcST7B.cpp index b353d3afa..d4ab87ebf 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST7B.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcST7B.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST7B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST7B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.kpa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.oelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.tia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.uelin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcST7B.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST7B::ExcST7B() {} ExcST7B::~ExcST7B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST7B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST7B::getClassNamespaceUrl() const { - { "cim:ExcST7B.kh", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcST7B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tb", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tc", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tg", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tia", { CGMESProfile::DY, } }, - { "cim:ExcST7B.ts", { CGMESProfile::DY, } }, - { "cim:ExcST7B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vmax", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vmin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST7B::getPossibleProfilesForClass() const +const std::string& ExcST7B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST7B::getPossibleProfilesForAttributes() const +const std::list& ExcST7B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST7B_kh(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcST7B::debugString() const void ExcST7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST7B", &ExcST7B_factory); + factory_map.emplace("ExcST7B", &ExcST7B_factory); } void ExcST7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST7B.kh", &assign_ExcST7B_kh); - assign_map.emplace("cim:ExcST7B.kia", &assign_ExcST7B_kia); - assign_map.emplace("cim:ExcST7B.kl", &assign_ExcST7B_kl); - assign_map.emplace("cim:ExcST7B.kpa", &assign_ExcST7B_kpa); - assign_map.emplace("cim:ExcST7B.oelin", &assign_ExcST7B_oelin); - assign_map.emplace("cim:ExcST7B.tb", &assign_ExcST7B_tb); - assign_map.emplace("cim:ExcST7B.tc", &assign_ExcST7B_tc); - assign_map.emplace("cim:ExcST7B.tf", &assign_ExcST7B_tf); - assign_map.emplace("cim:ExcST7B.tg", &assign_ExcST7B_tg); - assign_map.emplace("cim:ExcST7B.tia", &assign_ExcST7B_tia); - assign_map.emplace("cim:ExcST7B.ts", &assign_ExcST7B_ts); - assign_map.emplace("cim:ExcST7B.uelin", &assign_ExcST7B_uelin); - assign_map.emplace("cim:ExcST7B.vmax", &assign_ExcST7B_vmax); - assign_map.emplace("cim:ExcST7B.vmin", &assign_ExcST7B_vmin); - assign_map.emplace("cim:ExcST7B.vrmax", &assign_ExcST7B_vrmax); - assign_map.emplace("cim:ExcST7B.vrmin", &assign_ExcST7B_vrmin); + assign_map.emplace("ExcST7B.kh", &assign_ExcST7B_kh); + assign_map.emplace("ExcST7B.kia", &assign_ExcST7B_kia); + assign_map.emplace("ExcST7B.kl", &assign_ExcST7B_kl); + assign_map.emplace("ExcST7B.kpa", &assign_ExcST7B_kpa); + assign_map.emplace("ExcST7B.oelin", &assign_ExcST7B_oelin); + assign_map.emplace("ExcST7B.tb", &assign_ExcST7B_tb); + assign_map.emplace("ExcST7B.tc", &assign_ExcST7B_tc); + assign_map.emplace("ExcST7B.tf", &assign_ExcST7B_tf); + assign_map.emplace("ExcST7B.tg", &assign_ExcST7B_tg); + assign_map.emplace("ExcST7B.tia", &assign_ExcST7B_tia); + assign_map.emplace("ExcST7B.ts", &assign_ExcST7B_ts); + assign_map.emplace("ExcST7B.uelin", &assign_ExcST7B_uelin); + assign_map.emplace("ExcST7B.vmax", &assign_ExcST7B_vmax); + assign_map.emplace("ExcST7B.vmin", &assign_ExcST7B_vmin); + assign_map.emplace("ExcST7B.vrmax", &assign_ExcST7B_vrmax); + assign_map.emplace("ExcST7B.vrmin", &assign_ExcST7B_vrmin); } void ExcST7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,20 +588,20 @@ void ExcST7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST7B.kh", &get_ExcST7B_kh); - get_map.emplace("cim:ExcST7B.kia", &get_ExcST7B_kia); - get_map.emplace("cim:ExcST7B.kl", &get_ExcST7B_kl); - get_map.emplace("cim:ExcST7B.kpa", &get_ExcST7B_kpa); - get_map.emplace("cim:ExcST7B.tb", &get_ExcST7B_tb); - get_map.emplace("cim:ExcST7B.tc", &get_ExcST7B_tc); - get_map.emplace("cim:ExcST7B.tf", &get_ExcST7B_tf); - get_map.emplace("cim:ExcST7B.tg", &get_ExcST7B_tg); - get_map.emplace("cim:ExcST7B.tia", &get_ExcST7B_tia); - get_map.emplace("cim:ExcST7B.ts", &get_ExcST7B_ts); - get_map.emplace("cim:ExcST7B.vmax", &get_ExcST7B_vmax); - get_map.emplace("cim:ExcST7B.vmin", &get_ExcST7B_vmin); - get_map.emplace("cim:ExcST7B.vrmax", &get_ExcST7B_vrmax); - get_map.emplace("cim:ExcST7B.vrmin", &get_ExcST7B_vrmin); + get_map.emplace("ExcST7B.kh", &get_ExcST7B_kh); + get_map.emplace("ExcST7B.kia", &get_ExcST7B_kia); + get_map.emplace("ExcST7B.kl", &get_ExcST7B_kl); + get_map.emplace("ExcST7B.kpa", &get_ExcST7B_kpa); + get_map.emplace("ExcST7B.tb", &get_ExcST7B_tb); + get_map.emplace("ExcST7B.tc", &get_ExcST7B_tc); + get_map.emplace("ExcST7B.tf", &get_ExcST7B_tf); + get_map.emplace("ExcST7B.tg", &get_ExcST7B_tg); + get_map.emplace("ExcST7B.tia", &get_ExcST7B_tia); + get_map.emplace("ExcST7B.ts", &get_ExcST7B_ts); + get_map.emplace("ExcST7B.vmax", &get_ExcST7B_vmax); + get_map.emplace("ExcST7B.vmin", &get_ExcST7B_vmin); + get_map.emplace("ExcST7B.vrmax", &get_ExcST7B_vrmax); + get_map.emplace("ExcST7B.vrmin", &get_ExcST7B_vrmin); } void ExcST7B::addClassGetFnsToMap(std::map& get_map) const @@ -580,8 +612,14 @@ void ExcST7B::addClassGetFnsToMap(std::map& get void ExcST7B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcST7B.oelin", &get_ExcST7B_oelin); - get_map.emplace("cim:ExcST7B.uelin", &get_ExcST7B_uelin); + get_map.emplace("ExcST7B.oelin", &get_ExcST7B_oelin); + get_map.emplace("ExcST7B.uelin", &get_ExcST7B_uelin); +} + +bool ExcST7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST7B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcST7B::declare() @@ -589,6 +627,14 @@ const BaseClassDefiner ExcST7B::declare() return BaseClassDefiner(ExcST7B::addConstructToMap, ExcST7B::addPrimitiveAssignFnsToMap, ExcST7B::addClassAssignFnsToMap, ExcST7B::debugName); } +std::map ExcST7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST7B_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcST7B.hpp b/CGMES_2.4.15_27JAN2020/ExcST7B.hpp index 3a015ea97..b7d7b756c 100644 --- a/CGMES_2.4.15_27JAN2020/ExcST7B.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcST7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST7BOELselectorKind.hpp" #include "ExcST7BUELselectorKind.hpp" #include "PU.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST7B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcitationSystemDynamics.cpp b/CGMES_2.4.15_27JAN2020/ExcitationSystemDynamics.cpp index 540af8c6a..f278015d3 100644 --- a/CGMES_2.4.15_27JAN2020/ExcitationSystemDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcitationSystemDynamics.cpp @@ -19,39 +19,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcitationSystemDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.OverexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PFVArControllerType2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PowerSystemStabilizerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.UnderexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.VoltageCompensatorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcitationSystemDynamics::ExcitationSystemDynamics() : DiscontinuousExcitationControlDynamics(nullptr), OverexcitationLimiterDynamics(nullptr), PFVArControllerType1Dynamics(nullptr), PFVArControllerType2Dynamics(nullptr), PowerSystemStabilizerDynamics(nullptr), SynchronousMachineDynamics(nullptr), UnderexcitationLimiterDynamics(nullptr), VoltageCompensatorDynamics(nullptr) {} ExcitationSystemDynamics::~ExcitationSystemDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcitationSystemDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcitationSystemDynamics::getClassNamespaceUrl() const { - { "cim:ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.OverexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PFVArControllerType2Dynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PowerSystemStabilizerDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.UnderexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.VoltageCompensatorDynamics", { CGMESProfile::DY, } }, -}; - -std::list -ExcitationSystemDynamics::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcitationSystemDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcitationSystemDynamics::getPossibleProfilesForAttributes() const +const std::list& ExcitationSystemDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcitationSystemDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcitationSystemDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcitationSystemDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics(BaseClass*, BaseClass*); @@ -219,7 +251,7 @@ const char* ExcitationSystemDynamics::debugString() const void ExcitationSystemDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcitationSystemDynamics", &ExcitationSystemDynamics_factory); + factory_map.emplace("ExcitationSystemDynamics", &ExcitationSystemDynamics_factory); } void ExcitationSystemDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -228,14 +260,14 @@ void ExcitationSystemDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", &assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.OverexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PFVArControllerType1Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PFVArControllerType2Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PowerSystemStabilizerDynamics", &assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.SynchronousMachineDynamics", &assign_ExcitationSystemDynamics_SynchronousMachineDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.UnderexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.VoltageCompensatorDynamics", &assign_ExcitationSystemDynamics_VoltageCompensatorDynamics); + assign_map.emplace("ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", &assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics); + assign_map.emplace("ExcitationSystemDynamics.OverexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics); + assign_map.emplace("ExcitationSystemDynamics.PFVArControllerType1Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics); + assign_map.emplace("ExcitationSystemDynamics.PFVArControllerType2Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics); + assign_map.emplace("ExcitationSystemDynamics.PowerSystemStabilizerDynamics", &assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics); + assign_map.emplace("ExcitationSystemDynamics.SynchronousMachineDynamics", &assign_ExcitationSystemDynamics_SynchronousMachineDynamics); + assign_map.emplace("ExcitationSystemDynamics.UnderexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics); + assign_map.emplace("ExcitationSystemDynamics.VoltageCompensatorDynamics", &assign_ExcitationSystemDynamics_VoltageCompensatorDynamics); } void ExcitationSystemDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -246,7 +278,7 @@ void ExcitationSystemDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ExcitationSystemDynamics.SynchronousMachineDynamics", &get_ExcitationSystemDynamics_SynchronousMachineDynamics); + get_map.emplace("ExcitationSystemDynamics.SynchronousMachineDynamics", &get_ExcitationSystemDynamics_SynchronousMachineDynamics); } void ExcitationSystemDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -254,11 +286,25 @@ void ExcitationSystemDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExcitationSystemDynamics::declare() { return BaseClassDefiner(ExcitationSystemDynamics::addConstructToMap, ExcitationSystemDynamics::addPrimitiveAssignFnsToMap, ExcitationSystemDynamics::addClassAssignFnsToMap, ExcitationSystemDynamics::debugName); } +std::map ExcitationSystemDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcitationSystemDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcitationSystemDynamics.hpp b/CGMES_2.4.15_27JAN2020/ExcitationSystemDynamics.hpp index eb20de209..5904db177 100644 --- a/CGMES_2.4.15_27JAN2020/ExcitationSystemDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcitationSystemDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcitationSystemDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExcitationSystemUserDefined.cpp b/CGMES_2.4.15_27JAN2020/ExcitationSystemUserDefined.cpp index 362ef357e..926f5b95a 100644 --- a/CGMES_2.4.15_27JAN2020/ExcitationSystemUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/ExcitationSystemUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcitationSystemUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcitationSystemUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ExcitationSystemUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcitationSystemUserDefined::ExcitationSystemUserDefined() {} ExcitationSystemUserDefined::~ExcitationSystemUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcitationSystemUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcitationSystemUserDefined::getClassNamespaceUrl() const { - { "cim:ExcitationSystemUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcitationSystemUserDefined::getPossibleProfilesForClass() const +const std::string& ExcitationSystemUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcitationSystemUserDefined::getPossibleProfilesForAttributes() const +const std::list& ExcitationSystemUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcitationSystemUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcitationSystemUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcitationSystemUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* ExcitationSystemUserDefined::debugString() const void ExcitationSystemUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcitationSystemUserDefined", &ExcitationSystemUserDefined_factory); + factory_map.emplace("ExcitationSystemUserDefined", &ExcitationSystemUserDefined_factory); } void ExcitationSystemUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemUserDefined.proprietary", &assign_ExcitationSystemUserDefined_proprietary); + assign_map.emplace("ExcitationSystemUserDefined.proprietary", &assign_ExcitationSystemUserDefined_proprietary); } void ExcitationSystemUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemUserDefined.ProprietaryParameterDynamics", &assign_ExcitationSystemUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("ExcitationSystemUserDefined.ProprietaryParameterDynamics", &assign_ExcitationSystemUserDefined_ProprietaryParameterDynamics); } void ExcitationSystemUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcitationSystemUserDefined.proprietary", &get_ExcitationSystemUserDefined_proprietary); + get_map.emplace("ExcitationSystemUserDefined.proprietary", &get_ExcitationSystemUserDefined_proprietary); } void ExcitationSystemUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void ExcitationSystemUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExcitationSystemUserDefined::declare() { return BaseClassDefiner(ExcitationSystemUserDefined::addConstructToMap, ExcitationSystemUserDefined::addPrimitiveAssignFnsToMap, ExcitationSystemUserDefined::addClassAssignFnsToMap, ExcitationSystemUserDefined::debugName); } +std::map ExcitationSystemUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcitationSystemUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExcitationSystemUserDefined.hpp b/CGMES_2.4.15_27JAN2020/ExcitationSystemUserDefined.hpp index 02b86bd95..a1b3c317d 100644 --- a/CGMES_2.4.15_27JAN2020/ExcitationSystemUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/ExcitationSystemUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcitationSystemUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ExternalNetworkInjection.cpp b/CGMES_2.4.15_27JAN2020/ExternalNetworkInjection.cpp index 134627b99..ce5150369 100644 --- a/CGMES_2.4.15_27JAN2020/ExternalNetworkInjection.cpp +++ b/CGMES_2.4.15_27JAN2020/ExternalNetworkInjection.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExternalNetworkInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExternalNetworkInjection.governorSCD", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.ikSecond", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxInitialSymShCCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxR0ToX0Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxR1ToX1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxZ0ToZ1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minInitialSymShCCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minR0ToX0Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minR1ToX1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minZ0ToZ1Ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.referencePriority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.voltageFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ExternalNetworkInjection::ExternalNetworkInjection() {} ExternalNetworkInjection::~ExternalNetworkInjection() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExternalNetworkInjection.governorSCD", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.ikSecond", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxInitialSymShCCurrent", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxP", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxQ", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxR0ToX0Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxR1ToX1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minInitialSymShCCurrent", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minP", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minQ", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minR0ToX0Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minR1ToX1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minZ0ToZ1Ratio", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.p", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.q", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.referencePriority", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.voltageFactor", { CGMESProfile::EQ, } }, -}; - -std::list -ExternalNetworkInjection::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExternalNetworkInjection::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExternalNetworkInjection::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExternalNetworkInjection::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExternalNetworkInjection::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExternalNetworkInjection::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExternalNetworkInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExternalNetworkInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExternalNetworkInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExternalNetworkInjection_governorSCD(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -587,29 +619,29 @@ const char* ExternalNetworkInjection::debugString() const void ExternalNetworkInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExternalNetworkInjection", &ExternalNetworkInjection_factory); + factory_map.emplace("ExternalNetworkInjection", &ExternalNetworkInjection_factory); } void ExternalNetworkInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExternalNetworkInjection.governorSCD", &assign_ExternalNetworkInjection_governorSCD); - assign_map.emplace("cim:ExternalNetworkInjection.ikSecond", &assign_ExternalNetworkInjection_ikSecond); - assign_map.emplace("cim:ExternalNetworkInjection.maxInitialSymShCCurrent", &assign_ExternalNetworkInjection_maxInitialSymShCCurrent); - assign_map.emplace("cim:ExternalNetworkInjection.maxP", &assign_ExternalNetworkInjection_maxP); - assign_map.emplace("cim:ExternalNetworkInjection.maxQ", &assign_ExternalNetworkInjection_maxQ); - assign_map.emplace("cim:ExternalNetworkInjection.maxR0ToX0Ratio", &assign_ExternalNetworkInjection_maxR0ToX0Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.maxR1ToX1Ratio", &assign_ExternalNetworkInjection_maxR1ToX1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", &assign_ExternalNetworkInjection_maxZ0ToZ1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minInitialSymShCCurrent", &assign_ExternalNetworkInjection_minInitialSymShCCurrent); - assign_map.emplace("cim:ExternalNetworkInjection.minP", &assign_ExternalNetworkInjection_minP); - assign_map.emplace("cim:ExternalNetworkInjection.minQ", &assign_ExternalNetworkInjection_minQ); - assign_map.emplace("cim:ExternalNetworkInjection.minR0ToX0Ratio", &assign_ExternalNetworkInjection_minR0ToX0Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minR1ToX1Ratio", &assign_ExternalNetworkInjection_minR1ToX1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minZ0ToZ1Ratio", &assign_ExternalNetworkInjection_minZ0ToZ1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.p", &assign_ExternalNetworkInjection_p); - assign_map.emplace("cim:ExternalNetworkInjection.q", &assign_ExternalNetworkInjection_q); - assign_map.emplace("cim:ExternalNetworkInjection.referencePriority", &assign_ExternalNetworkInjection_referencePriority); - assign_map.emplace("cim:ExternalNetworkInjection.voltageFactor", &assign_ExternalNetworkInjection_voltageFactor); + assign_map.emplace("ExternalNetworkInjection.governorSCD", &assign_ExternalNetworkInjection_governorSCD); + assign_map.emplace("ExternalNetworkInjection.ikSecond", &assign_ExternalNetworkInjection_ikSecond); + assign_map.emplace("ExternalNetworkInjection.maxInitialSymShCCurrent", &assign_ExternalNetworkInjection_maxInitialSymShCCurrent); + assign_map.emplace("ExternalNetworkInjection.maxP", &assign_ExternalNetworkInjection_maxP); + assign_map.emplace("ExternalNetworkInjection.maxQ", &assign_ExternalNetworkInjection_maxQ); + assign_map.emplace("ExternalNetworkInjection.maxR0ToX0Ratio", &assign_ExternalNetworkInjection_maxR0ToX0Ratio); + assign_map.emplace("ExternalNetworkInjection.maxR1ToX1Ratio", &assign_ExternalNetworkInjection_maxR1ToX1Ratio); + assign_map.emplace("ExternalNetworkInjection.maxZ0ToZ1Ratio", &assign_ExternalNetworkInjection_maxZ0ToZ1Ratio); + assign_map.emplace("ExternalNetworkInjection.minInitialSymShCCurrent", &assign_ExternalNetworkInjection_minInitialSymShCCurrent); + assign_map.emplace("ExternalNetworkInjection.minP", &assign_ExternalNetworkInjection_minP); + assign_map.emplace("ExternalNetworkInjection.minQ", &assign_ExternalNetworkInjection_minQ); + assign_map.emplace("ExternalNetworkInjection.minR0ToX0Ratio", &assign_ExternalNetworkInjection_minR0ToX0Ratio); + assign_map.emplace("ExternalNetworkInjection.minR1ToX1Ratio", &assign_ExternalNetworkInjection_minR1ToX1Ratio); + assign_map.emplace("ExternalNetworkInjection.minZ0ToZ1Ratio", &assign_ExternalNetworkInjection_minZ0ToZ1Ratio); + assign_map.emplace("ExternalNetworkInjection.p", &assign_ExternalNetworkInjection_p); + assign_map.emplace("ExternalNetworkInjection.q", &assign_ExternalNetworkInjection_q); + assign_map.emplace("ExternalNetworkInjection.referencePriority", &assign_ExternalNetworkInjection_referencePriority); + assign_map.emplace("ExternalNetworkInjection.voltageFactor", &assign_ExternalNetworkInjection_voltageFactor); } void ExternalNetworkInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -619,24 +651,24 @@ void ExternalNetworkInjection::addClassAssignFnsToMap(std::unordered_map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExternalNetworkInjection.governorSCD", &get_ExternalNetworkInjection_governorSCD); - get_map.emplace("cim:ExternalNetworkInjection.ikSecond", &get_ExternalNetworkInjection_ikSecond); - get_map.emplace("cim:ExternalNetworkInjection.maxInitialSymShCCurrent", &get_ExternalNetworkInjection_maxInitialSymShCCurrent); - get_map.emplace("cim:ExternalNetworkInjection.maxP", &get_ExternalNetworkInjection_maxP); - get_map.emplace("cim:ExternalNetworkInjection.maxQ", &get_ExternalNetworkInjection_maxQ); - get_map.emplace("cim:ExternalNetworkInjection.maxR0ToX0Ratio", &get_ExternalNetworkInjection_maxR0ToX0Ratio); - get_map.emplace("cim:ExternalNetworkInjection.maxR1ToX1Ratio", &get_ExternalNetworkInjection_maxR1ToX1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", &get_ExternalNetworkInjection_maxZ0ToZ1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minInitialSymShCCurrent", &get_ExternalNetworkInjection_minInitialSymShCCurrent); - get_map.emplace("cim:ExternalNetworkInjection.minP", &get_ExternalNetworkInjection_minP); - get_map.emplace("cim:ExternalNetworkInjection.minQ", &get_ExternalNetworkInjection_minQ); - get_map.emplace("cim:ExternalNetworkInjection.minR0ToX0Ratio", &get_ExternalNetworkInjection_minR0ToX0Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minR1ToX1Ratio", &get_ExternalNetworkInjection_minR1ToX1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minZ0ToZ1Ratio", &get_ExternalNetworkInjection_minZ0ToZ1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.p", &get_ExternalNetworkInjection_p); - get_map.emplace("cim:ExternalNetworkInjection.q", &get_ExternalNetworkInjection_q); - get_map.emplace("cim:ExternalNetworkInjection.referencePriority", &get_ExternalNetworkInjection_referencePriority); - get_map.emplace("cim:ExternalNetworkInjection.voltageFactor", &get_ExternalNetworkInjection_voltageFactor); + get_map.emplace("ExternalNetworkInjection.governorSCD", &get_ExternalNetworkInjection_governorSCD); + get_map.emplace("ExternalNetworkInjection.ikSecond", &get_ExternalNetworkInjection_ikSecond); + get_map.emplace("ExternalNetworkInjection.maxInitialSymShCCurrent", &get_ExternalNetworkInjection_maxInitialSymShCCurrent); + get_map.emplace("ExternalNetworkInjection.maxP", &get_ExternalNetworkInjection_maxP); + get_map.emplace("ExternalNetworkInjection.maxQ", &get_ExternalNetworkInjection_maxQ); + get_map.emplace("ExternalNetworkInjection.maxR0ToX0Ratio", &get_ExternalNetworkInjection_maxR0ToX0Ratio); + get_map.emplace("ExternalNetworkInjection.maxR1ToX1Ratio", &get_ExternalNetworkInjection_maxR1ToX1Ratio); + get_map.emplace("ExternalNetworkInjection.maxZ0ToZ1Ratio", &get_ExternalNetworkInjection_maxZ0ToZ1Ratio); + get_map.emplace("ExternalNetworkInjection.minInitialSymShCCurrent", &get_ExternalNetworkInjection_minInitialSymShCCurrent); + get_map.emplace("ExternalNetworkInjection.minP", &get_ExternalNetworkInjection_minP); + get_map.emplace("ExternalNetworkInjection.minQ", &get_ExternalNetworkInjection_minQ); + get_map.emplace("ExternalNetworkInjection.minR0ToX0Ratio", &get_ExternalNetworkInjection_minR0ToX0Ratio); + get_map.emplace("ExternalNetworkInjection.minR1ToX1Ratio", &get_ExternalNetworkInjection_minR1ToX1Ratio); + get_map.emplace("ExternalNetworkInjection.minZ0ToZ1Ratio", &get_ExternalNetworkInjection_minZ0ToZ1Ratio); + get_map.emplace("ExternalNetworkInjection.p", &get_ExternalNetworkInjection_p); + get_map.emplace("ExternalNetworkInjection.q", &get_ExternalNetworkInjection_q); + get_map.emplace("ExternalNetworkInjection.referencePriority", &get_ExternalNetworkInjection_referencePriority); + get_map.emplace("ExternalNetworkInjection.voltageFactor", &get_ExternalNetworkInjection_voltageFactor); } void ExternalNetworkInjection::addClassGetFnsToMap(std::map& get_map) const @@ -649,11 +681,25 @@ void ExternalNetworkInjection::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExternalNetworkInjection::declare() { return BaseClassDefiner(ExternalNetworkInjection::addConstructToMap, ExternalNetworkInjection::addPrimitiveAssignFnsToMap, ExternalNetworkInjection::addClassAssignFnsToMap, ExternalNetworkInjection::debugName); } +std::map ExternalNetworkInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExternalNetworkInjection_factory() diff --git a/CGMES_2.4.15_27JAN2020/ExternalNetworkInjection.hpp b/CGMES_2.4.15_27JAN2020/ExternalNetworkInjection.hpp index e4e61c828..32343cc80 100644 --- a/CGMES_2.4.15_27JAN2020/ExternalNetworkInjection.hpp +++ b/CGMES_2.4.15_27JAN2020/ExternalNetworkInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ActivePowerPerFrequency.hpp" #include "Boolean.hpp" @@ -89,8 +90,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -98,7 +106,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExternalNetworkInjection_factory(); diff --git a/CGMES_2.4.15_27JAN2020/FossilFuel.cpp b/CGMES_2.4.15_27JAN2020/FossilFuel.cpp index d8564bf4d..2c4dfb3f0 100644 --- a/CGMES_2.4.15_27JAN2020/FossilFuel.cpp +++ b/CGMES_2.4.15_27JAN2020/FossilFuel.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + FossilFuel(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "FossilFuel.ThermalGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "FossilFuel.fossilFuelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + FossilFuel::FossilFuel() : ThermalGeneratingUnit(nullptr) {} FossilFuel::~FossilFuel() {} -static const std::list PossibleProfilesForClass = +const std::list& FossilFuel::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& FossilFuel::getClassNamespaceUrl() const { - { "cim:FossilFuel.ThermalGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:FossilFuel.fossilFuelType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -FossilFuel::getPossibleProfilesForClass() const +const std::string& FossilFuel::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -FossilFuel::getPossibleProfilesForAttributes() const +const std::list& FossilFuel::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& FossilFuel::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& FossilFuel::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& FossilFuel::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ThermalGeneratingUnit_FossilFuels(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* FossilFuel::debugString() const void FossilFuel::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:FossilFuel", &FossilFuel_factory); + factory_map.emplace("FossilFuel", &FossilFuel_factory); } void FossilFuel::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:FossilFuel.fossilFuelType", &assign_FossilFuel_fossilFuelType); + assign_map.emplace("FossilFuel.fossilFuelType", &assign_FossilFuel_fossilFuelType); } void FossilFuel::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:FossilFuel.ThermalGeneratingUnit", &assign_FossilFuel_ThermalGeneratingUnit); + assign_map.emplace("FossilFuel.ThermalGeneratingUnit", &assign_FossilFuel_ThermalGeneratingUnit); } void FossilFuel::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void FossilFuel::addPrimitiveGetFnsToMap(std::map& ge void FossilFuel::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:FossilFuel.ThermalGeneratingUnit", &get_FossilFuel_ThermalGeneratingUnit); + get_map.emplace("FossilFuel.ThermalGeneratingUnit", &get_FossilFuel_ThermalGeneratingUnit); } void FossilFuel::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:FossilFuel.fossilFuelType", &get_FossilFuel_fossilFuelType); + get_map.emplace("FossilFuel.fossilFuelType", &get_FossilFuel_fossilFuelType); +} + +bool FossilFuel::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "FossilFuel" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner FossilFuel::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner FossilFuel::declare() return BaseClassDefiner(FossilFuel::addConstructToMap, FossilFuel::addPrimitiveAssignFnsToMap, FossilFuel::addClassAssignFnsToMap, FossilFuel::debugName); } +std::map FossilFuel::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* FossilFuel_factory() diff --git a/CGMES_2.4.15_27JAN2020/FossilFuel.hpp b/CGMES_2.4.15_27JAN2020/FossilFuel.hpp index 8b402a908..d691f6007 100644 --- a/CGMES_2.4.15_27JAN2020/FossilFuel.hpp +++ b/CGMES_2.4.15_27JAN2020/FossilFuel.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "FuelType.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* FossilFuel_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GenICompensationForGenJ.cpp b/CGMES_2.4.15_27JAN2020/GenICompensationForGenJ.cpp index ade258b3c..6f0a817c2 100644 --- a/CGMES_2.4.15_27JAN2020/GenICompensationForGenJ.cpp +++ b/CGMES_2.4.15_27JAN2020/GenICompensationForGenJ.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GenICompensationForGenJ(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GenICompensationForGenJ.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.VcompIEEEType2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.rcij", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.xcij", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GenICompensationForGenJ::GenICompensationForGenJ() : SynchronousMachineDynamics(nullptr), VcompIEEEType2(nullptr) {} GenICompensationForGenJ::~GenICompensationForGenJ() {} -static const std::list PossibleProfilesForClass = +const std::list& GenICompensationForGenJ::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GenICompensationForGenJ::getClassNamespaceUrl() const { - { "cim:GenICompensationForGenJ.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.VcompIEEEType2", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.rcij", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.xcij", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GenICompensationForGenJ::getPossibleProfilesForClass() const +const std::string& GenICompensationForGenJ::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GenICompensationForGenJ::getPossibleProfilesForAttributes() const +const std::list& GenICompensationForGenJ::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GenICompensationForGenJ::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GenICompensationForGenJ::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GenICompensationForGenJ::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDynamics_GenICompensationForGenJ(BaseClass*, BaseClass*); @@ -172,33 +204,33 @@ const char* GenICompensationForGenJ::debugString() const void GenICompensationForGenJ::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GenICompensationForGenJ", &GenICompensationForGenJ_factory); + factory_map.emplace("GenICompensationForGenJ", &GenICompensationForGenJ_factory); } void GenICompensationForGenJ::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GenICompensationForGenJ.rcij", &assign_GenICompensationForGenJ_rcij); - assign_map.emplace("cim:GenICompensationForGenJ.xcij", &assign_GenICompensationForGenJ_xcij); + assign_map.emplace("GenICompensationForGenJ.rcij", &assign_GenICompensationForGenJ_rcij); + assign_map.emplace("GenICompensationForGenJ.xcij", &assign_GenICompensationForGenJ_xcij); } void GenICompensationForGenJ::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GenICompensationForGenJ.SynchronousMachineDynamics", &assign_GenICompensationForGenJ_SynchronousMachineDynamics); - assign_map.emplace("cim:GenICompensationForGenJ.VcompIEEEType2", &assign_GenICompensationForGenJ_VcompIEEEType2); + assign_map.emplace("GenICompensationForGenJ.SynchronousMachineDynamics", &assign_GenICompensationForGenJ_SynchronousMachineDynamics); + assign_map.emplace("GenICompensationForGenJ.VcompIEEEType2", &assign_GenICompensationForGenJ_VcompIEEEType2); } void GenICompensationForGenJ::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GenICompensationForGenJ.rcij", &get_GenICompensationForGenJ_rcij); - get_map.emplace("cim:GenICompensationForGenJ.xcij", &get_GenICompensationForGenJ_xcij); + get_map.emplace("GenICompensationForGenJ.rcij", &get_GenICompensationForGenJ_rcij); + get_map.emplace("GenICompensationForGenJ.xcij", &get_GenICompensationForGenJ_xcij); } void GenICompensationForGenJ::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:GenICompensationForGenJ.SynchronousMachineDynamics", &get_GenICompensationForGenJ_SynchronousMachineDynamics); - get_map.emplace("cim:GenICompensationForGenJ.VcompIEEEType2", &get_GenICompensationForGenJ_VcompIEEEType2); + get_map.emplace("GenICompensationForGenJ.SynchronousMachineDynamics", &get_GenICompensationForGenJ_SynchronousMachineDynamics); + get_map.emplace("GenICompensationForGenJ.VcompIEEEType2", &get_GenICompensationForGenJ_VcompIEEEType2); } void GenICompensationForGenJ::addEnumGetFnsToMap(std::map& get_map) const @@ -206,11 +238,25 @@ void GenICompensationForGenJ::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GenICompensationForGenJ::declare() { return BaseClassDefiner(GenICompensationForGenJ::addConstructToMap, GenICompensationForGenJ::addPrimitiveAssignFnsToMap, GenICompensationForGenJ::addClassAssignFnsToMap, GenICompensationForGenJ::debugName); } +std::map GenICompensationForGenJ::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GenICompensationForGenJ_factory() diff --git a/CGMES_2.4.15_27JAN2020/GenICompensationForGenJ.hpp b/CGMES_2.4.15_27JAN2020/GenICompensationForGenJ.hpp index 01a042d67..e3879d78d 100644 --- a/CGMES_2.4.15_27JAN2020/GenICompensationForGenJ.hpp +++ b/CGMES_2.4.15_27JAN2020/GenICompensationForGenJ.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GenICompensationForGenJ_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GeneratingUnit.cpp b/CGMES_2.4.15_27JAN2020/GeneratingUnit.cpp index 247f593eb..e1e929ee4 100644 --- a/CGMES_2.4.15_27JAN2020/GeneratingUnit.cpp +++ b/CGMES_2.4.15_27JAN2020/GeneratingUnit.cpp @@ -14,51 +14,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeneratingUnit.ControlAreaGeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.GrossToNetActivePowerCurves", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.RotatingMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.genControlSource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.governorSCD", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.initialP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.longPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.maxOperatingP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.maximumAllowableSpinningReserve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.minOperatingP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.nominalP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.normalPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "GeneratingUnit.ratedGrossMaxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.ratedGrossMinP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.ratedNetMaxP", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.shortPF", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.startupCost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.totalEfficiency", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.variableCost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GeneratingUnit::GeneratingUnit() {} GeneratingUnit::~GeneratingUnit() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GeneratingUnit.ControlAreaGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.GrossToNetActivePowerCurves", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.RotatingMachine", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.genControlSource", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.governorSCD", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.initialP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.longPF", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.maxOperatingP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.maximumAllowableSpinningReserve", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.minOperatingP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.nominalP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.normalPF", { CGMESProfile::SSH, } }, - { "cim:GeneratingUnit.ratedGrossMaxP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.ratedGrossMinP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.ratedNetMaxP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.shortPF", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.startupCost", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.totalEfficiency", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.variableCost", { CGMESProfile::EQ, } }, -}; - -std::list -GeneratingUnit::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GeneratingUnit::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GeneratingUnit::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GeneratingUnit::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GeneratingUnit::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlAreaGeneratingUnit_GeneratingUnit(BaseClass*, BaseClass*); @@ -587,54 +619,54 @@ const char* GeneratingUnit::debugString() const void GeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeneratingUnit", &GeneratingUnit_factory); + factory_map.emplace("GeneratingUnit", &GeneratingUnit_factory); } void GeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeneratingUnit.genControlSource", &assign_GeneratingUnit_genControlSource); - assign_map.emplace("cim:GeneratingUnit.governorSCD", &assign_GeneratingUnit_governorSCD); - assign_map.emplace("cim:GeneratingUnit.initialP", &assign_GeneratingUnit_initialP); - assign_map.emplace("cim:GeneratingUnit.longPF", &assign_GeneratingUnit_longPF); - assign_map.emplace("cim:GeneratingUnit.maxOperatingP", &assign_GeneratingUnit_maxOperatingP); - assign_map.emplace("cim:GeneratingUnit.maximumAllowableSpinningReserve", &assign_GeneratingUnit_maximumAllowableSpinningReserve); - assign_map.emplace("cim:GeneratingUnit.minOperatingP", &assign_GeneratingUnit_minOperatingP); - assign_map.emplace("cim:GeneratingUnit.nominalP", &assign_GeneratingUnit_nominalP); - assign_map.emplace("cim:GeneratingUnit.normalPF", &assign_GeneratingUnit_normalPF); - assign_map.emplace("cim:GeneratingUnit.ratedGrossMaxP", &assign_GeneratingUnit_ratedGrossMaxP); - assign_map.emplace("cim:GeneratingUnit.ratedGrossMinP", &assign_GeneratingUnit_ratedGrossMinP); - assign_map.emplace("cim:GeneratingUnit.ratedNetMaxP", &assign_GeneratingUnit_ratedNetMaxP); - assign_map.emplace("cim:GeneratingUnit.shortPF", &assign_GeneratingUnit_shortPF); - assign_map.emplace("cim:GeneratingUnit.startupCost", &assign_GeneratingUnit_startupCost); - assign_map.emplace("cim:GeneratingUnit.totalEfficiency", &assign_GeneratingUnit_totalEfficiency); - assign_map.emplace("cim:GeneratingUnit.variableCost", &assign_GeneratingUnit_variableCost); + assign_map.emplace("GeneratingUnit.genControlSource", &assign_GeneratingUnit_genControlSource); + assign_map.emplace("GeneratingUnit.governorSCD", &assign_GeneratingUnit_governorSCD); + assign_map.emplace("GeneratingUnit.initialP", &assign_GeneratingUnit_initialP); + assign_map.emplace("GeneratingUnit.longPF", &assign_GeneratingUnit_longPF); + assign_map.emplace("GeneratingUnit.maxOperatingP", &assign_GeneratingUnit_maxOperatingP); + assign_map.emplace("GeneratingUnit.maximumAllowableSpinningReserve", &assign_GeneratingUnit_maximumAllowableSpinningReserve); + assign_map.emplace("GeneratingUnit.minOperatingP", &assign_GeneratingUnit_minOperatingP); + assign_map.emplace("GeneratingUnit.nominalP", &assign_GeneratingUnit_nominalP); + assign_map.emplace("GeneratingUnit.normalPF", &assign_GeneratingUnit_normalPF); + assign_map.emplace("GeneratingUnit.ratedGrossMaxP", &assign_GeneratingUnit_ratedGrossMaxP); + assign_map.emplace("GeneratingUnit.ratedGrossMinP", &assign_GeneratingUnit_ratedGrossMinP); + assign_map.emplace("GeneratingUnit.ratedNetMaxP", &assign_GeneratingUnit_ratedNetMaxP); + assign_map.emplace("GeneratingUnit.shortPF", &assign_GeneratingUnit_shortPF); + assign_map.emplace("GeneratingUnit.startupCost", &assign_GeneratingUnit_startupCost); + assign_map.emplace("GeneratingUnit.totalEfficiency", &assign_GeneratingUnit_totalEfficiency); + assign_map.emplace("GeneratingUnit.variableCost", &assign_GeneratingUnit_variableCost); } void GeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeneratingUnit.ControlAreaGeneratingUnit", &assign_GeneratingUnit_ControlAreaGeneratingUnit); - assign_map.emplace("cim:GeneratingUnit.GrossToNetActivePowerCurves", &assign_GeneratingUnit_GrossToNetActivePowerCurves); - assign_map.emplace("cim:GeneratingUnit.RotatingMachine", &assign_GeneratingUnit_RotatingMachine); + assign_map.emplace("GeneratingUnit.ControlAreaGeneratingUnit", &assign_GeneratingUnit_ControlAreaGeneratingUnit); + assign_map.emplace("GeneratingUnit.GrossToNetActivePowerCurves", &assign_GeneratingUnit_GrossToNetActivePowerCurves); + assign_map.emplace("GeneratingUnit.RotatingMachine", &assign_GeneratingUnit_RotatingMachine); } void GeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GeneratingUnit.governorSCD", &get_GeneratingUnit_governorSCD); - get_map.emplace("cim:GeneratingUnit.initialP", &get_GeneratingUnit_initialP); - get_map.emplace("cim:GeneratingUnit.longPF", &get_GeneratingUnit_longPF); - get_map.emplace("cim:GeneratingUnit.maxOperatingP", &get_GeneratingUnit_maxOperatingP); - get_map.emplace("cim:GeneratingUnit.maximumAllowableSpinningReserve", &get_GeneratingUnit_maximumAllowableSpinningReserve); - get_map.emplace("cim:GeneratingUnit.minOperatingP", &get_GeneratingUnit_minOperatingP); - get_map.emplace("cim:GeneratingUnit.nominalP", &get_GeneratingUnit_nominalP); - get_map.emplace("cim:GeneratingUnit.normalPF", &get_GeneratingUnit_normalPF); - get_map.emplace("cim:GeneratingUnit.ratedGrossMaxP", &get_GeneratingUnit_ratedGrossMaxP); - get_map.emplace("cim:GeneratingUnit.ratedGrossMinP", &get_GeneratingUnit_ratedGrossMinP); - get_map.emplace("cim:GeneratingUnit.ratedNetMaxP", &get_GeneratingUnit_ratedNetMaxP); - get_map.emplace("cim:GeneratingUnit.shortPF", &get_GeneratingUnit_shortPF); - get_map.emplace("cim:GeneratingUnit.startupCost", &get_GeneratingUnit_startupCost); - get_map.emplace("cim:GeneratingUnit.totalEfficiency", &get_GeneratingUnit_totalEfficiency); - get_map.emplace("cim:GeneratingUnit.variableCost", &get_GeneratingUnit_variableCost); + get_map.emplace("GeneratingUnit.governorSCD", &get_GeneratingUnit_governorSCD); + get_map.emplace("GeneratingUnit.initialP", &get_GeneratingUnit_initialP); + get_map.emplace("GeneratingUnit.longPF", &get_GeneratingUnit_longPF); + get_map.emplace("GeneratingUnit.maxOperatingP", &get_GeneratingUnit_maxOperatingP); + get_map.emplace("GeneratingUnit.maximumAllowableSpinningReserve", &get_GeneratingUnit_maximumAllowableSpinningReserve); + get_map.emplace("GeneratingUnit.minOperatingP", &get_GeneratingUnit_minOperatingP); + get_map.emplace("GeneratingUnit.nominalP", &get_GeneratingUnit_nominalP); + get_map.emplace("GeneratingUnit.normalPF", &get_GeneratingUnit_normalPF); + get_map.emplace("GeneratingUnit.ratedGrossMaxP", &get_GeneratingUnit_ratedGrossMaxP); + get_map.emplace("GeneratingUnit.ratedGrossMinP", &get_GeneratingUnit_ratedGrossMinP); + get_map.emplace("GeneratingUnit.ratedNetMaxP", &get_GeneratingUnit_ratedNetMaxP); + get_map.emplace("GeneratingUnit.shortPF", &get_GeneratingUnit_shortPF); + get_map.emplace("GeneratingUnit.startupCost", &get_GeneratingUnit_startupCost); + get_map.emplace("GeneratingUnit.totalEfficiency", &get_GeneratingUnit_totalEfficiency); + get_map.emplace("GeneratingUnit.variableCost", &get_GeneratingUnit_variableCost); } void GeneratingUnit::addClassGetFnsToMap(std::map& get_map) const @@ -645,7 +677,13 @@ void GeneratingUnit::addClassGetFnsToMap(std::map& get_map) const { Equipment::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GeneratingUnit.genControlSource", &get_GeneratingUnit_genControlSource); + get_map.emplace("GeneratingUnit.genControlSource", &get_GeneratingUnit_genControlSource); +} + +bool GeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GeneratingUnit::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner GeneratingUnit::declare() return BaseClassDefiner(GeneratingUnit::addConstructToMap, GeneratingUnit::addPrimitiveAssignFnsToMap, GeneratingUnit::addClassAssignFnsToMap, GeneratingUnit::debugName); } +std::map GeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeneratingUnit_factory() diff --git a/CGMES_2.4.15_27JAN2020/GeneratingUnit.hpp b/CGMES_2.4.15_27JAN2020/GeneratingUnit.hpp index 6261629bb..1ebeda406 100644 --- a/CGMES_2.4.15_27JAN2020/GeneratingUnit.hpp +++ b/CGMES_2.4.15_27JAN2020/GeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "GeneratorControlSource.hpp" #include "Money.hpp" @@ -92,8 +93,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -101,7 +109,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeneratingUnit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GeographicalLocationVersion.cpp b/CGMES_2.4.15_27JAN2020/GeographicalLocationVersion.cpp index f7622e2dc..b6121cd23 100644 --- a/CGMES_2.4.15_27JAN2020/GeographicalLocationVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/GeographicalLocationVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeographicalLocationVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeographicalLocationVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + { "GeographicalLocationVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + GeographicalLocationVersion::GeographicalLocationVersion() {} GeographicalLocationVersion::~GeographicalLocationVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& GeographicalLocationVersion::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GeographicalLocationVersion::getClassNamespaceUrl() const { - { "cim:GeographicalLocationVersion.baseUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.baseURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.date", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.differenceModelURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.entsoeUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.entsoeURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.modelDescriptionURI", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.namespaceRDF", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.namespaceUML", { CGMESProfile::GL, } }, - { "cim:GeographicalLocationVersion.shortName", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GeographicalLocationVersion::getPossibleProfilesForClass() const +const std::string& GeographicalLocationVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GeographicalLocationVersion::getPossibleProfilesForAttributes() const +const std::list& GeographicalLocationVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeographicalLocationVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeographicalLocationVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeographicalLocationVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeographicalLocationVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* GeographicalLocationVersion::debugString() const void GeographicalLocationVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeographicalLocationVersion", &GeographicalLocationVersion_factory); + factory_map.emplace("GeographicalLocationVersion", &GeographicalLocationVersion_factory); } void GeographicalLocationVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeographicalLocationVersion.baseUML", &assign_GeographicalLocationVersion_baseUML); - assign_map.emplace("cim:GeographicalLocationVersion.baseURI", &assign_GeographicalLocationVersion_baseURI); - assign_map.emplace("cim:GeographicalLocationVersion.date", &assign_GeographicalLocationVersion_date); - assign_map.emplace("cim:GeographicalLocationVersion.differenceModelURI", &assign_GeographicalLocationVersion_differenceModelURI); - assign_map.emplace("cim:GeographicalLocationVersion.entsoeUML", &assign_GeographicalLocationVersion_entsoeUML); - assign_map.emplace("cim:GeographicalLocationVersion.entsoeURI", &assign_GeographicalLocationVersion_entsoeURI); - assign_map.emplace("cim:GeographicalLocationVersion.modelDescriptionURI", &assign_GeographicalLocationVersion_modelDescriptionURI); - assign_map.emplace("cim:GeographicalLocationVersion.namespaceRDF", &assign_GeographicalLocationVersion_namespaceRDF); - assign_map.emplace("cim:GeographicalLocationVersion.namespaceUML", &assign_GeographicalLocationVersion_namespaceUML); - assign_map.emplace("cim:GeographicalLocationVersion.shortName", &assign_GeographicalLocationVersion_shortName); + assign_map.emplace("GeographicalLocationVersion.baseUML", &assign_GeographicalLocationVersion_baseUML); + assign_map.emplace("GeographicalLocationVersion.baseURI", &assign_GeographicalLocationVersion_baseURI); + assign_map.emplace("GeographicalLocationVersion.date", &assign_GeographicalLocationVersion_date); + assign_map.emplace("GeographicalLocationVersion.differenceModelURI", &assign_GeographicalLocationVersion_differenceModelURI); + assign_map.emplace("GeographicalLocationVersion.entsoeUML", &assign_GeographicalLocationVersion_entsoeUML); + assign_map.emplace("GeographicalLocationVersion.entsoeURI", &assign_GeographicalLocationVersion_entsoeURI); + assign_map.emplace("GeographicalLocationVersion.modelDescriptionURI", &assign_GeographicalLocationVersion_modelDescriptionURI); + assign_map.emplace("GeographicalLocationVersion.namespaceRDF", &assign_GeographicalLocationVersion_namespaceRDF); + assign_map.emplace("GeographicalLocationVersion.namespaceUML", &assign_GeographicalLocationVersion_namespaceUML); + assign_map.emplace("GeographicalLocationVersion.shortName", &assign_GeographicalLocationVersion_shortName); } void GeographicalLocationVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void GeographicalLocationVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GeographicalLocationVersion.baseUML", &get_GeographicalLocationVersion_baseUML); - get_map.emplace("cim:GeographicalLocationVersion.baseURI", &get_GeographicalLocationVersion_baseURI); - get_map.emplace("cim:GeographicalLocationVersion.date", &get_GeographicalLocationVersion_date); - get_map.emplace("cim:GeographicalLocationVersion.differenceModelURI", &get_GeographicalLocationVersion_differenceModelURI); - get_map.emplace("cim:GeographicalLocationVersion.entsoeUML", &get_GeographicalLocationVersion_entsoeUML); - get_map.emplace("cim:GeographicalLocationVersion.entsoeURI", &get_GeographicalLocationVersion_entsoeURI); - get_map.emplace("cim:GeographicalLocationVersion.modelDescriptionURI", &get_GeographicalLocationVersion_modelDescriptionURI); - get_map.emplace("cim:GeographicalLocationVersion.namespaceRDF", &get_GeographicalLocationVersion_namespaceRDF); - get_map.emplace("cim:GeographicalLocationVersion.namespaceUML", &get_GeographicalLocationVersion_namespaceUML); - get_map.emplace("cim:GeographicalLocationVersion.shortName", &get_GeographicalLocationVersion_shortName); + get_map.emplace("GeographicalLocationVersion.baseUML", &get_GeographicalLocationVersion_baseUML); + get_map.emplace("GeographicalLocationVersion.baseURI", &get_GeographicalLocationVersion_baseURI); + get_map.emplace("GeographicalLocationVersion.date", &get_GeographicalLocationVersion_date); + get_map.emplace("GeographicalLocationVersion.differenceModelURI", &get_GeographicalLocationVersion_differenceModelURI); + get_map.emplace("GeographicalLocationVersion.entsoeUML", &get_GeographicalLocationVersion_entsoeUML); + get_map.emplace("GeographicalLocationVersion.entsoeURI", &get_GeographicalLocationVersion_entsoeURI); + get_map.emplace("GeographicalLocationVersion.modelDescriptionURI", &get_GeographicalLocationVersion_modelDescriptionURI); + get_map.emplace("GeographicalLocationVersion.namespaceRDF", &get_GeographicalLocationVersion_namespaceRDF); + get_map.emplace("GeographicalLocationVersion.namespaceUML", &get_GeographicalLocationVersion_namespaceUML); + get_map.emplace("GeographicalLocationVersion.shortName", &get_GeographicalLocationVersion_shortName); } void GeographicalLocationVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void GeographicalLocationVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GeographicalLocationVersion::declare() { return BaseClassDefiner(GeographicalLocationVersion::addConstructToMap, GeographicalLocationVersion::addPrimitiveAssignFnsToMap, GeographicalLocationVersion::addClassAssignFnsToMap, GeographicalLocationVersion::debugName); } +std::map GeographicalLocationVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeographicalLocationVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/GeographicalLocationVersion.hpp b/CGMES_2.4.15_27JAN2020/GeographicalLocationVersion.hpp index b8b3523b3..ed4010efc 100644 --- a/CGMES_2.4.15_27JAN2020/GeographicalLocationVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/GeographicalLocationVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeographicalLocationVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GeographicalRegion.cpp b/CGMES_2.4.15_27JAN2020/GeographicalRegion.cpp index 229df2030..803b01afc 100644 --- a/CGMES_2.4.15_27JAN2020/GeographicalRegion.cpp +++ b/CGMES_2.4.15_27JAN2020/GeographicalRegion.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeographicalRegion(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeographicalRegion.Regions", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GeographicalRegion::GeographicalRegion() {} GeographicalRegion::~GeographicalRegion() {} -static const std::list PossibleProfilesForClass = +const std::list& GeographicalRegion::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GeographicalRegion::getClassNamespaceUrl() const { - { "cim:GeographicalRegion.Regions", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GeographicalRegion::getPossibleProfilesForClass() const +const std::string& GeographicalRegion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GeographicalRegion::getPossibleProfilesForAttributes() const +const std::list& GeographicalRegion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeographicalRegion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeographicalRegion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeographicalRegion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_Region(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* GeographicalRegion::debugString() const void GeographicalRegion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeographicalRegion", &GeographicalRegion_factory); + factory_map.emplace("GeographicalRegion", &GeographicalRegion_factory); } void GeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void GeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeographicalRegion.Regions", &assign_GeographicalRegion_Regions); + assign_map.emplace("GeographicalRegion.Regions", &assign_GeographicalRegion_Regions); } void GeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void GeographicalRegion::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool GeographicalRegion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GeographicalRegion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GeographicalRegion::declare() { return BaseClassDefiner(GeographicalRegion::addConstructToMap, GeographicalRegion::addPrimitiveAssignFnsToMap, GeographicalRegion::addClassAssignFnsToMap, GeographicalRegion::debugName); } +std::map GeographicalRegion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeographicalRegion_factory() diff --git a/CGMES_2.4.15_27JAN2020/GeographicalRegion.hpp b/CGMES_2.4.15_27JAN2020/GeographicalRegion.hpp index 8e23a3694..09772a2aa 100644 --- a/CGMES_2.4.15_27JAN2020/GeographicalRegion.hpp +++ b/CGMES_2.4.15_27JAN2020/GeographicalRegion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeographicalRegion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovCT1.cpp b/CGMES_2.4.15_27JAN2020/GovCT1.cpp index c8ede5eab..14a07a1aa 100644 --- a/CGMES_2.4.15_27JAN2020/GovCT1.cpp +++ b/CGMES_2.4.15_27JAN2020/GovCT1.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovCT1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovCT1.aset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.dm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kigov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kiload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kimw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kpgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kpload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ldref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.maxerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.minerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rclose", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rdown", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ropen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rselect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.rup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tact", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.teng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tfload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tsa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.tsb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.wfnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT1.wfspd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovCT1::GovCT1() {} GovCT1::~GovCT1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovCT1.aset", { CGMESProfile::DY, } }, - { "cim:GovCT1.db", { CGMESProfile::DY, } }, - { "cim:GovCT1.dm", { CGMESProfile::DY, } }, - { "cim:GovCT1.ka", { CGMESProfile::DY, } }, - { "cim:GovCT1.kdgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kigov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kiload", { CGMESProfile::DY, } }, - { "cim:GovCT1.kimw", { CGMESProfile::DY, } }, - { "cim:GovCT1.kpgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kpload", { CGMESProfile::DY, } }, - { "cim:GovCT1.kturb", { CGMESProfile::DY, } }, - { "cim:GovCT1.ldref", { CGMESProfile::DY, } }, - { "cim:GovCT1.maxerr", { CGMESProfile::DY, } }, - { "cim:GovCT1.minerr", { CGMESProfile::DY, } }, - { "cim:GovCT1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovCT1.r", { CGMESProfile::DY, } }, - { "cim:GovCT1.rclose", { CGMESProfile::DY, } }, - { "cim:GovCT1.rdown", { CGMESProfile::DY, } }, - { "cim:GovCT1.ropen", { CGMESProfile::DY, } }, - { "cim:GovCT1.rselect", { CGMESProfile::DY, } }, - { "cim:GovCT1.rup", { CGMESProfile::DY, } }, - { "cim:GovCT1.ta", { CGMESProfile::DY, } }, - { "cim:GovCT1.tact", { CGMESProfile::DY, } }, - { "cim:GovCT1.tb", { CGMESProfile::DY, } }, - { "cim:GovCT1.tc", { CGMESProfile::DY, } }, - { "cim:GovCT1.tdgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.teng", { CGMESProfile::DY, } }, - { "cim:GovCT1.tfload", { CGMESProfile::DY, } }, - { "cim:GovCT1.tpelec", { CGMESProfile::DY, } }, - { "cim:GovCT1.tsa", { CGMESProfile::DY, } }, - { "cim:GovCT1.tsb", { CGMESProfile::DY, } }, - { "cim:GovCT1.vmax", { CGMESProfile::DY, } }, - { "cim:GovCT1.vmin", { CGMESProfile::DY, } }, - { "cim:GovCT1.wfnl", { CGMESProfile::DY, } }, - { "cim:GovCT1.wfspd", { CGMESProfile::DY, } }, -}; - -std::list -GovCT1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovCT1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovCT1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovCT1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovCT1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovCT1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovCT1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovCT1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovCT1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovCT1_aset(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovCT1::debugString() const void GovCT1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovCT1", &GovCT1_factory); + factory_map.emplace("GovCT1", &GovCT1_factory); } void GovCT1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovCT1.aset", &assign_GovCT1_aset); - assign_map.emplace("cim:GovCT1.db", &assign_GovCT1_db); - assign_map.emplace("cim:GovCT1.dm", &assign_GovCT1_dm); - assign_map.emplace("cim:GovCT1.ka", &assign_GovCT1_ka); - assign_map.emplace("cim:GovCT1.kdgov", &assign_GovCT1_kdgov); - assign_map.emplace("cim:GovCT1.kigov", &assign_GovCT1_kigov); - assign_map.emplace("cim:GovCT1.kiload", &assign_GovCT1_kiload); - assign_map.emplace("cim:GovCT1.kimw", &assign_GovCT1_kimw); - assign_map.emplace("cim:GovCT1.kpgov", &assign_GovCT1_kpgov); - assign_map.emplace("cim:GovCT1.kpload", &assign_GovCT1_kpload); - assign_map.emplace("cim:GovCT1.kturb", &assign_GovCT1_kturb); - assign_map.emplace("cim:GovCT1.ldref", &assign_GovCT1_ldref); - assign_map.emplace("cim:GovCT1.maxerr", &assign_GovCT1_maxerr); - assign_map.emplace("cim:GovCT1.minerr", &assign_GovCT1_minerr); - assign_map.emplace("cim:GovCT1.mwbase", &assign_GovCT1_mwbase); - assign_map.emplace("cim:GovCT1.r", &assign_GovCT1_r); - assign_map.emplace("cim:GovCT1.rclose", &assign_GovCT1_rclose); - assign_map.emplace("cim:GovCT1.rdown", &assign_GovCT1_rdown); - assign_map.emplace("cim:GovCT1.ropen", &assign_GovCT1_ropen); - assign_map.emplace("cim:GovCT1.rselect", &assign_GovCT1_rselect); - assign_map.emplace("cim:GovCT1.rup", &assign_GovCT1_rup); - assign_map.emplace("cim:GovCT1.ta", &assign_GovCT1_ta); - assign_map.emplace("cim:GovCT1.tact", &assign_GovCT1_tact); - assign_map.emplace("cim:GovCT1.tb", &assign_GovCT1_tb); - assign_map.emplace("cim:GovCT1.tc", &assign_GovCT1_tc); - assign_map.emplace("cim:GovCT1.tdgov", &assign_GovCT1_tdgov); - assign_map.emplace("cim:GovCT1.teng", &assign_GovCT1_teng); - assign_map.emplace("cim:GovCT1.tfload", &assign_GovCT1_tfload); - assign_map.emplace("cim:GovCT1.tpelec", &assign_GovCT1_tpelec); - assign_map.emplace("cim:GovCT1.tsa", &assign_GovCT1_tsa); - assign_map.emplace("cim:GovCT1.tsb", &assign_GovCT1_tsb); - assign_map.emplace("cim:GovCT1.vmax", &assign_GovCT1_vmax); - assign_map.emplace("cim:GovCT1.vmin", &assign_GovCT1_vmin); - assign_map.emplace("cim:GovCT1.wfnl", &assign_GovCT1_wfnl); - assign_map.emplace("cim:GovCT1.wfspd", &assign_GovCT1_wfspd); + assign_map.emplace("GovCT1.aset", &assign_GovCT1_aset); + assign_map.emplace("GovCT1.db", &assign_GovCT1_db); + assign_map.emplace("GovCT1.dm", &assign_GovCT1_dm); + assign_map.emplace("GovCT1.ka", &assign_GovCT1_ka); + assign_map.emplace("GovCT1.kdgov", &assign_GovCT1_kdgov); + assign_map.emplace("GovCT1.kigov", &assign_GovCT1_kigov); + assign_map.emplace("GovCT1.kiload", &assign_GovCT1_kiload); + assign_map.emplace("GovCT1.kimw", &assign_GovCT1_kimw); + assign_map.emplace("GovCT1.kpgov", &assign_GovCT1_kpgov); + assign_map.emplace("GovCT1.kpload", &assign_GovCT1_kpload); + assign_map.emplace("GovCT1.kturb", &assign_GovCT1_kturb); + assign_map.emplace("GovCT1.ldref", &assign_GovCT1_ldref); + assign_map.emplace("GovCT1.maxerr", &assign_GovCT1_maxerr); + assign_map.emplace("GovCT1.minerr", &assign_GovCT1_minerr); + assign_map.emplace("GovCT1.mwbase", &assign_GovCT1_mwbase); + assign_map.emplace("GovCT1.r", &assign_GovCT1_r); + assign_map.emplace("GovCT1.rclose", &assign_GovCT1_rclose); + assign_map.emplace("GovCT1.rdown", &assign_GovCT1_rdown); + assign_map.emplace("GovCT1.ropen", &assign_GovCT1_ropen); + assign_map.emplace("GovCT1.rselect", &assign_GovCT1_rselect); + assign_map.emplace("GovCT1.rup", &assign_GovCT1_rup); + assign_map.emplace("GovCT1.ta", &assign_GovCT1_ta); + assign_map.emplace("GovCT1.tact", &assign_GovCT1_tact); + assign_map.emplace("GovCT1.tb", &assign_GovCT1_tb); + assign_map.emplace("GovCT1.tc", &assign_GovCT1_tc); + assign_map.emplace("GovCT1.tdgov", &assign_GovCT1_tdgov); + assign_map.emplace("GovCT1.teng", &assign_GovCT1_teng); + assign_map.emplace("GovCT1.tfload", &assign_GovCT1_tfload); + assign_map.emplace("GovCT1.tpelec", &assign_GovCT1_tpelec); + assign_map.emplace("GovCT1.tsa", &assign_GovCT1_tsa); + assign_map.emplace("GovCT1.tsb", &assign_GovCT1_tsb); + assign_map.emplace("GovCT1.vmax", &assign_GovCT1_vmax); + assign_map.emplace("GovCT1.vmin", &assign_GovCT1_vmin); + assign_map.emplace("GovCT1.wfnl", &assign_GovCT1_wfnl); + assign_map.emplace("GovCT1.wfspd", &assign_GovCT1_wfspd); } void GovCT1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,40 +1177,40 @@ void GovCT1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovCT1.aset", &get_GovCT1_aset); - get_map.emplace("cim:GovCT1.db", &get_GovCT1_db); - get_map.emplace("cim:GovCT1.dm", &get_GovCT1_dm); - get_map.emplace("cim:GovCT1.ka", &get_GovCT1_ka); - get_map.emplace("cim:GovCT1.kdgov", &get_GovCT1_kdgov); - get_map.emplace("cim:GovCT1.kigov", &get_GovCT1_kigov); - get_map.emplace("cim:GovCT1.kiload", &get_GovCT1_kiload); - get_map.emplace("cim:GovCT1.kimw", &get_GovCT1_kimw); - get_map.emplace("cim:GovCT1.kpgov", &get_GovCT1_kpgov); - get_map.emplace("cim:GovCT1.kpload", &get_GovCT1_kpload); - get_map.emplace("cim:GovCT1.kturb", &get_GovCT1_kturb); - get_map.emplace("cim:GovCT1.ldref", &get_GovCT1_ldref); - get_map.emplace("cim:GovCT1.maxerr", &get_GovCT1_maxerr); - get_map.emplace("cim:GovCT1.minerr", &get_GovCT1_minerr); - get_map.emplace("cim:GovCT1.mwbase", &get_GovCT1_mwbase); - get_map.emplace("cim:GovCT1.r", &get_GovCT1_r); - get_map.emplace("cim:GovCT1.rclose", &get_GovCT1_rclose); - get_map.emplace("cim:GovCT1.rdown", &get_GovCT1_rdown); - get_map.emplace("cim:GovCT1.ropen", &get_GovCT1_ropen); - get_map.emplace("cim:GovCT1.rup", &get_GovCT1_rup); - get_map.emplace("cim:GovCT1.ta", &get_GovCT1_ta); - get_map.emplace("cim:GovCT1.tact", &get_GovCT1_tact); - get_map.emplace("cim:GovCT1.tb", &get_GovCT1_tb); - get_map.emplace("cim:GovCT1.tc", &get_GovCT1_tc); - get_map.emplace("cim:GovCT1.tdgov", &get_GovCT1_tdgov); - get_map.emplace("cim:GovCT1.teng", &get_GovCT1_teng); - get_map.emplace("cim:GovCT1.tfload", &get_GovCT1_tfload); - get_map.emplace("cim:GovCT1.tpelec", &get_GovCT1_tpelec); - get_map.emplace("cim:GovCT1.tsa", &get_GovCT1_tsa); - get_map.emplace("cim:GovCT1.tsb", &get_GovCT1_tsb); - get_map.emplace("cim:GovCT1.vmax", &get_GovCT1_vmax); - get_map.emplace("cim:GovCT1.vmin", &get_GovCT1_vmin); - get_map.emplace("cim:GovCT1.wfnl", &get_GovCT1_wfnl); - get_map.emplace("cim:GovCT1.wfspd", &get_GovCT1_wfspd); + get_map.emplace("GovCT1.aset", &get_GovCT1_aset); + get_map.emplace("GovCT1.db", &get_GovCT1_db); + get_map.emplace("GovCT1.dm", &get_GovCT1_dm); + get_map.emplace("GovCT1.ka", &get_GovCT1_ka); + get_map.emplace("GovCT1.kdgov", &get_GovCT1_kdgov); + get_map.emplace("GovCT1.kigov", &get_GovCT1_kigov); + get_map.emplace("GovCT1.kiload", &get_GovCT1_kiload); + get_map.emplace("GovCT1.kimw", &get_GovCT1_kimw); + get_map.emplace("GovCT1.kpgov", &get_GovCT1_kpgov); + get_map.emplace("GovCT1.kpload", &get_GovCT1_kpload); + get_map.emplace("GovCT1.kturb", &get_GovCT1_kturb); + get_map.emplace("GovCT1.ldref", &get_GovCT1_ldref); + get_map.emplace("GovCT1.maxerr", &get_GovCT1_maxerr); + get_map.emplace("GovCT1.minerr", &get_GovCT1_minerr); + get_map.emplace("GovCT1.mwbase", &get_GovCT1_mwbase); + get_map.emplace("GovCT1.r", &get_GovCT1_r); + get_map.emplace("GovCT1.rclose", &get_GovCT1_rclose); + get_map.emplace("GovCT1.rdown", &get_GovCT1_rdown); + get_map.emplace("GovCT1.ropen", &get_GovCT1_ropen); + get_map.emplace("GovCT1.rup", &get_GovCT1_rup); + get_map.emplace("GovCT1.ta", &get_GovCT1_ta); + get_map.emplace("GovCT1.tact", &get_GovCT1_tact); + get_map.emplace("GovCT1.tb", &get_GovCT1_tb); + get_map.emplace("GovCT1.tc", &get_GovCT1_tc); + get_map.emplace("GovCT1.tdgov", &get_GovCT1_tdgov); + get_map.emplace("GovCT1.teng", &get_GovCT1_teng); + get_map.emplace("GovCT1.tfload", &get_GovCT1_tfload); + get_map.emplace("GovCT1.tpelec", &get_GovCT1_tpelec); + get_map.emplace("GovCT1.tsa", &get_GovCT1_tsa); + get_map.emplace("GovCT1.tsb", &get_GovCT1_tsb); + get_map.emplace("GovCT1.vmax", &get_GovCT1_vmax); + get_map.emplace("GovCT1.vmin", &get_GovCT1_vmin); + get_map.emplace("GovCT1.wfnl", &get_GovCT1_wfnl); + get_map.emplace("GovCT1.wfspd", &get_GovCT1_wfspd); } void GovCT1::addClassGetFnsToMap(std::map& get_map) const @@ -1189,7 +1221,13 @@ void GovCT1::addClassGetFnsToMap(std::map& get_ void GovCT1::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovCT1.rselect", &get_GovCT1_rselect); + get_map.emplace("GovCT1.rselect", &get_GovCT1_rselect); +} + +bool GovCT1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovCT1" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovCT1::declare() @@ -1197,6 +1235,14 @@ const BaseClassDefiner GovCT1::declare() return BaseClassDefiner(GovCT1::addConstructToMap, GovCT1::addPrimitiveAssignFnsToMap, GovCT1::addClassAssignFnsToMap, GovCT1::debugName); } +std::map GovCT1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovCT1_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovCT1.hpp b/CGMES_2.4.15_27JAN2020/GovCT1.hpp index 4bcbc8131..fbb6bc2ac 100644 --- a/CGMES_2.4.15_27JAN2020/GovCT1.hpp +++ b/CGMES_2.4.15_27JAN2020/GovCT1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "DroopSignalFeedbackKind.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovCT1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovCT2.cpp b/CGMES_2.4.15_27JAN2020/GovCT2.cpp index 482a2691f..be77c902d 100644 --- a/CGMES_2.4.15_27JAN2020/GovCT2.cpp +++ b/CGMES_2.4.15_27JAN2020/GovCT2.cpp @@ -11,87 +11,119 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovCT2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovCT2.aset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.dm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.flim9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kigov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kiload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kimw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kpgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kpload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ldref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.maxerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.minerr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.plim9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.prate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rclose", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rdown", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ropen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rselect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.rup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tact", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tdgov", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.teng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tfload", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tsa", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.tsb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.wfnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovCT2.wfspd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovCT2::GovCT2() {} GovCT2::~GovCT2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovCT2.aset", { CGMESProfile::DY, } }, - { "cim:GovCT2.db", { CGMESProfile::DY, } }, - { "cim:GovCT2.dm", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim1", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim10", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim2", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim3", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim4", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim5", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim6", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim7", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim8", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim9", { CGMESProfile::DY, } }, - { "cim:GovCT2.ka", { CGMESProfile::DY, } }, - { "cim:GovCT2.kdgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kigov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kiload", { CGMESProfile::DY, } }, - { "cim:GovCT2.kimw", { CGMESProfile::DY, } }, - { "cim:GovCT2.kpgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kpload", { CGMESProfile::DY, } }, - { "cim:GovCT2.kturb", { CGMESProfile::DY, } }, - { "cim:GovCT2.ldref", { CGMESProfile::DY, } }, - { "cim:GovCT2.maxerr", { CGMESProfile::DY, } }, - { "cim:GovCT2.minerr", { CGMESProfile::DY, } }, - { "cim:GovCT2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim1", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim10", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim2", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim3", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim4", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim5", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim6", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim7", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim8", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim9", { CGMESProfile::DY, } }, - { "cim:GovCT2.prate", { CGMESProfile::DY, } }, - { "cim:GovCT2.r", { CGMESProfile::DY, } }, - { "cim:GovCT2.rclose", { CGMESProfile::DY, } }, - { "cim:GovCT2.rdown", { CGMESProfile::DY, } }, - { "cim:GovCT2.ropen", { CGMESProfile::DY, } }, - { "cim:GovCT2.rselect", { CGMESProfile::DY, } }, - { "cim:GovCT2.rup", { CGMESProfile::DY, } }, - { "cim:GovCT2.ta", { CGMESProfile::DY, } }, - { "cim:GovCT2.tact", { CGMESProfile::DY, } }, - { "cim:GovCT2.tb", { CGMESProfile::DY, } }, - { "cim:GovCT2.tc", { CGMESProfile::DY, } }, - { "cim:GovCT2.tdgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.teng", { CGMESProfile::DY, } }, - { "cim:GovCT2.tfload", { CGMESProfile::DY, } }, - { "cim:GovCT2.tpelec", { CGMESProfile::DY, } }, - { "cim:GovCT2.tsa", { CGMESProfile::DY, } }, - { "cim:GovCT2.tsb", { CGMESProfile::DY, } }, - { "cim:GovCT2.vmax", { CGMESProfile::DY, } }, - { "cim:GovCT2.vmin", { CGMESProfile::DY, } }, - { "cim:GovCT2.wfnl", { CGMESProfile::DY, } }, - { "cim:GovCT2.wfspd", { CGMESProfile::DY, } }, -}; - -std::list -GovCT2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovCT2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovCT2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovCT2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovCT2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovCT2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovCT2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovCT2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovCT2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovCT2_aset(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1726,67 +1758,67 @@ const char* GovCT2::debugString() const void GovCT2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovCT2", &GovCT2_factory); + factory_map.emplace("GovCT2", &GovCT2_factory); } void GovCT2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovCT2.aset", &assign_GovCT2_aset); - assign_map.emplace("cim:GovCT2.db", &assign_GovCT2_db); - assign_map.emplace("cim:GovCT2.dm", &assign_GovCT2_dm); - assign_map.emplace("cim:GovCT2.flim1", &assign_GovCT2_flim1); - assign_map.emplace("cim:GovCT2.flim10", &assign_GovCT2_flim10); - assign_map.emplace("cim:GovCT2.flim2", &assign_GovCT2_flim2); - assign_map.emplace("cim:GovCT2.flim3", &assign_GovCT2_flim3); - assign_map.emplace("cim:GovCT2.flim4", &assign_GovCT2_flim4); - assign_map.emplace("cim:GovCT2.flim5", &assign_GovCT2_flim5); - assign_map.emplace("cim:GovCT2.flim6", &assign_GovCT2_flim6); - assign_map.emplace("cim:GovCT2.flim7", &assign_GovCT2_flim7); - assign_map.emplace("cim:GovCT2.flim8", &assign_GovCT2_flim8); - assign_map.emplace("cim:GovCT2.flim9", &assign_GovCT2_flim9); - assign_map.emplace("cim:GovCT2.ka", &assign_GovCT2_ka); - assign_map.emplace("cim:GovCT2.kdgov", &assign_GovCT2_kdgov); - assign_map.emplace("cim:GovCT2.kigov", &assign_GovCT2_kigov); - assign_map.emplace("cim:GovCT2.kiload", &assign_GovCT2_kiload); - assign_map.emplace("cim:GovCT2.kimw", &assign_GovCT2_kimw); - assign_map.emplace("cim:GovCT2.kpgov", &assign_GovCT2_kpgov); - assign_map.emplace("cim:GovCT2.kpload", &assign_GovCT2_kpload); - assign_map.emplace("cim:GovCT2.kturb", &assign_GovCT2_kturb); - assign_map.emplace("cim:GovCT2.ldref", &assign_GovCT2_ldref); - assign_map.emplace("cim:GovCT2.maxerr", &assign_GovCT2_maxerr); - assign_map.emplace("cim:GovCT2.minerr", &assign_GovCT2_minerr); - assign_map.emplace("cim:GovCT2.mwbase", &assign_GovCT2_mwbase); - assign_map.emplace("cim:GovCT2.plim1", &assign_GovCT2_plim1); - assign_map.emplace("cim:GovCT2.plim10", &assign_GovCT2_plim10); - assign_map.emplace("cim:GovCT2.plim2", &assign_GovCT2_plim2); - assign_map.emplace("cim:GovCT2.plim3", &assign_GovCT2_plim3); - assign_map.emplace("cim:GovCT2.plim4", &assign_GovCT2_plim4); - assign_map.emplace("cim:GovCT2.plim5", &assign_GovCT2_plim5); - assign_map.emplace("cim:GovCT2.plim6", &assign_GovCT2_plim6); - assign_map.emplace("cim:GovCT2.plim7", &assign_GovCT2_plim7); - assign_map.emplace("cim:GovCT2.plim8", &assign_GovCT2_plim8); - assign_map.emplace("cim:GovCT2.plim9", &assign_GovCT2_plim9); - assign_map.emplace("cim:GovCT2.prate", &assign_GovCT2_prate); - assign_map.emplace("cim:GovCT2.r", &assign_GovCT2_r); - assign_map.emplace("cim:GovCT2.rclose", &assign_GovCT2_rclose); - assign_map.emplace("cim:GovCT2.rdown", &assign_GovCT2_rdown); - assign_map.emplace("cim:GovCT2.ropen", &assign_GovCT2_ropen); - assign_map.emplace("cim:GovCT2.rselect", &assign_GovCT2_rselect); - assign_map.emplace("cim:GovCT2.rup", &assign_GovCT2_rup); - assign_map.emplace("cim:GovCT2.ta", &assign_GovCT2_ta); - assign_map.emplace("cim:GovCT2.tact", &assign_GovCT2_tact); - assign_map.emplace("cim:GovCT2.tb", &assign_GovCT2_tb); - assign_map.emplace("cim:GovCT2.tc", &assign_GovCT2_tc); - assign_map.emplace("cim:GovCT2.tdgov", &assign_GovCT2_tdgov); - assign_map.emplace("cim:GovCT2.teng", &assign_GovCT2_teng); - assign_map.emplace("cim:GovCT2.tfload", &assign_GovCT2_tfload); - assign_map.emplace("cim:GovCT2.tpelec", &assign_GovCT2_tpelec); - assign_map.emplace("cim:GovCT2.tsa", &assign_GovCT2_tsa); - assign_map.emplace("cim:GovCT2.tsb", &assign_GovCT2_tsb); - assign_map.emplace("cim:GovCT2.vmax", &assign_GovCT2_vmax); - assign_map.emplace("cim:GovCT2.vmin", &assign_GovCT2_vmin); - assign_map.emplace("cim:GovCT2.wfnl", &assign_GovCT2_wfnl); - assign_map.emplace("cim:GovCT2.wfspd", &assign_GovCT2_wfspd); + assign_map.emplace("GovCT2.aset", &assign_GovCT2_aset); + assign_map.emplace("GovCT2.db", &assign_GovCT2_db); + assign_map.emplace("GovCT2.dm", &assign_GovCT2_dm); + assign_map.emplace("GovCT2.flim1", &assign_GovCT2_flim1); + assign_map.emplace("GovCT2.flim10", &assign_GovCT2_flim10); + assign_map.emplace("GovCT2.flim2", &assign_GovCT2_flim2); + assign_map.emplace("GovCT2.flim3", &assign_GovCT2_flim3); + assign_map.emplace("GovCT2.flim4", &assign_GovCT2_flim4); + assign_map.emplace("GovCT2.flim5", &assign_GovCT2_flim5); + assign_map.emplace("GovCT2.flim6", &assign_GovCT2_flim6); + assign_map.emplace("GovCT2.flim7", &assign_GovCT2_flim7); + assign_map.emplace("GovCT2.flim8", &assign_GovCT2_flim8); + assign_map.emplace("GovCT2.flim9", &assign_GovCT2_flim9); + assign_map.emplace("GovCT2.ka", &assign_GovCT2_ka); + assign_map.emplace("GovCT2.kdgov", &assign_GovCT2_kdgov); + assign_map.emplace("GovCT2.kigov", &assign_GovCT2_kigov); + assign_map.emplace("GovCT2.kiload", &assign_GovCT2_kiload); + assign_map.emplace("GovCT2.kimw", &assign_GovCT2_kimw); + assign_map.emplace("GovCT2.kpgov", &assign_GovCT2_kpgov); + assign_map.emplace("GovCT2.kpload", &assign_GovCT2_kpload); + assign_map.emplace("GovCT2.kturb", &assign_GovCT2_kturb); + assign_map.emplace("GovCT2.ldref", &assign_GovCT2_ldref); + assign_map.emplace("GovCT2.maxerr", &assign_GovCT2_maxerr); + assign_map.emplace("GovCT2.minerr", &assign_GovCT2_minerr); + assign_map.emplace("GovCT2.mwbase", &assign_GovCT2_mwbase); + assign_map.emplace("GovCT2.plim1", &assign_GovCT2_plim1); + assign_map.emplace("GovCT2.plim10", &assign_GovCT2_plim10); + assign_map.emplace("GovCT2.plim2", &assign_GovCT2_plim2); + assign_map.emplace("GovCT2.plim3", &assign_GovCT2_plim3); + assign_map.emplace("GovCT2.plim4", &assign_GovCT2_plim4); + assign_map.emplace("GovCT2.plim5", &assign_GovCT2_plim5); + assign_map.emplace("GovCT2.plim6", &assign_GovCT2_plim6); + assign_map.emplace("GovCT2.plim7", &assign_GovCT2_plim7); + assign_map.emplace("GovCT2.plim8", &assign_GovCT2_plim8); + assign_map.emplace("GovCT2.plim9", &assign_GovCT2_plim9); + assign_map.emplace("GovCT2.prate", &assign_GovCT2_prate); + assign_map.emplace("GovCT2.r", &assign_GovCT2_r); + assign_map.emplace("GovCT2.rclose", &assign_GovCT2_rclose); + assign_map.emplace("GovCT2.rdown", &assign_GovCT2_rdown); + assign_map.emplace("GovCT2.ropen", &assign_GovCT2_ropen); + assign_map.emplace("GovCT2.rselect", &assign_GovCT2_rselect); + assign_map.emplace("GovCT2.rup", &assign_GovCT2_rup); + assign_map.emplace("GovCT2.ta", &assign_GovCT2_ta); + assign_map.emplace("GovCT2.tact", &assign_GovCT2_tact); + assign_map.emplace("GovCT2.tb", &assign_GovCT2_tb); + assign_map.emplace("GovCT2.tc", &assign_GovCT2_tc); + assign_map.emplace("GovCT2.tdgov", &assign_GovCT2_tdgov); + assign_map.emplace("GovCT2.teng", &assign_GovCT2_teng); + assign_map.emplace("GovCT2.tfload", &assign_GovCT2_tfload); + assign_map.emplace("GovCT2.tpelec", &assign_GovCT2_tpelec); + assign_map.emplace("GovCT2.tsa", &assign_GovCT2_tsa); + assign_map.emplace("GovCT2.tsb", &assign_GovCT2_tsb); + assign_map.emplace("GovCT2.vmax", &assign_GovCT2_vmax); + assign_map.emplace("GovCT2.vmin", &assign_GovCT2_vmin); + assign_map.emplace("GovCT2.wfnl", &assign_GovCT2_wfnl); + assign_map.emplace("GovCT2.wfspd", &assign_GovCT2_wfspd); } void GovCT2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1796,61 +1828,61 @@ void GovCT2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovCT2.aset", &get_GovCT2_aset); - get_map.emplace("cim:GovCT2.db", &get_GovCT2_db); - get_map.emplace("cim:GovCT2.dm", &get_GovCT2_dm); - get_map.emplace("cim:GovCT2.flim1", &get_GovCT2_flim1); - get_map.emplace("cim:GovCT2.flim10", &get_GovCT2_flim10); - get_map.emplace("cim:GovCT2.flim2", &get_GovCT2_flim2); - get_map.emplace("cim:GovCT2.flim3", &get_GovCT2_flim3); - get_map.emplace("cim:GovCT2.flim4", &get_GovCT2_flim4); - get_map.emplace("cim:GovCT2.flim5", &get_GovCT2_flim5); - get_map.emplace("cim:GovCT2.flim6", &get_GovCT2_flim6); - get_map.emplace("cim:GovCT2.flim7", &get_GovCT2_flim7); - get_map.emplace("cim:GovCT2.flim8", &get_GovCT2_flim8); - get_map.emplace("cim:GovCT2.flim9", &get_GovCT2_flim9); - get_map.emplace("cim:GovCT2.ka", &get_GovCT2_ka); - get_map.emplace("cim:GovCT2.kdgov", &get_GovCT2_kdgov); - get_map.emplace("cim:GovCT2.kigov", &get_GovCT2_kigov); - get_map.emplace("cim:GovCT2.kiload", &get_GovCT2_kiload); - get_map.emplace("cim:GovCT2.kimw", &get_GovCT2_kimw); - get_map.emplace("cim:GovCT2.kpgov", &get_GovCT2_kpgov); - get_map.emplace("cim:GovCT2.kpload", &get_GovCT2_kpload); - get_map.emplace("cim:GovCT2.kturb", &get_GovCT2_kturb); - get_map.emplace("cim:GovCT2.ldref", &get_GovCT2_ldref); - get_map.emplace("cim:GovCT2.maxerr", &get_GovCT2_maxerr); - get_map.emplace("cim:GovCT2.minerr", &get_GovCT2_minerr); - get_map.emplace("cim:GovCT2.mwbase", &get_GovCT2_mwbase); - get_map.emplace("cim:GovCT2.plim1", &get_GovCT2_plim1); - get_map.emplace("cim:GovCT2.plim10", &get_GovCT2_plim10); - get_map.emplace("cim:GovCT2.plim2", &get_GovCT2_plim2); - get_map.emplace("cim:GovCT2.plim3", &get_GovCT2_plim3); - get_map.emplace("cim:GovCT2.plim4", &get_GovCT2_plim4); - get_map.emplace("cim:GovCT2.plim5", &get_GovCT2_plim5); - get_map.emplace("cim:GovCT2.plim6", &get_GovCT2_plim6); - get_map.emplace("cim:GovCT2.plim7", &get_GovCT2_plim7); - get_map.emplace("cim:GovCT2.plim8", &get_GovCT2_plim8); - get_map.emplace("cim:GovCT2.plim9", &get_GovCT2_plim9); - get_map.emplace("cim:GovCT2.prate", &get_GovCT2_prate); - get_map.emplace("cim:GovCT2.r", &get_GovCT2_r); - get_map.emplace("cim:GovCT2.rclose", &get_GovCT2_rclose); - get_map.emplace("cim:GovCT2.rdown", &get_GovCT2_rdown); - get_map.emplace("cim:GovCT2.ropen", &get_GovCT2_ropen); - get_map.emplace("cim:GovCT2.rup", &get_GovCT2_rup); - get_map.emplace("cim:GovCT2.ta", &get_GovCT2_ta); - get_map.emplace("cim:GovCT2.tact", &get_GovCT2_tact); - get_map.emplace("cim:GovCT2.tb", &get_GovCT2_tb); - get_map.emplace("cim:GovCT2.tc", &get_GovCT2_tc); - get_map.emplace("cim:GovCT2.tdgov", &get_GovCT2_tdgov); - get_map.emplace("cim:GovCT2.teng", &get_GovCT2_teng); - get_map.emplace("cim:GovCT2.tfload", &get_GovCT2_tfload); - get_map.emplace("cim:GovCT2.tpelec", &get_GovCT2_tpelec); - get_map.emplace("cim:GovCT2.tsa", &get_GovCT2_tsa); - get_map.emplace("cim:GovCT2.tsb", &get_GovCT2_tsb); - get_map.emplace("cim:GovCT2.vmax", &get_GovCT2_vmax); - get_map.emplace("cim:GovCT2.vmin", &get_GovCT2_vmin); - get_map.emplace("cim:GovCT2.wfnl", &get_GovCT2_wfnl); - get_map.emplace("cim:GovCT2.wfspd", &get_GovCT2_wfspd); + get_map.emplace("GovCT2.aset", &get_GovCT2_aset); + get_map.emplace("GovCT2.db", &get_GovCT2_db); + get_map.emplace("GovCT2.dm", &get_GovCT2_dm); + get_map.emplace("GovCT2.flim1", &get_GovCT2_flim1); + get_map.emplace("GovCT2.flim10", &get_GovCT2_flim10); + get_map.emplace("GovCT2.flim2", &get_GovCT2_flim2); + get_map.emplace("GovCT2.flim3", &get_GovCT2_flim3); + get_map.emplace("GovCT2.flim4", &get_GovCT2_flim4); + get_map.emplace("GovCT2.flim5", &get_GovCT2_flim5); + get_map.emplace("GovCT2.flim6", &get_GovCT2_flim6); + get_map.emplace("GovCT2.flim7", &get_GovCT2_flim7); + get_map.emplace("GovCT2.flim8", &get_GovCT2_flim8); + get_map.emplace("GovCT2.flim9", &get_GovCT2_flim9); + get_map.emplace("GovCT2.ka", &get_GovCT2_ka); + get_map.emplace("GovCT2.kdgov", &get_GovCT2_kdgov); + get_map.emplace("GovCT2.kigov", &get_GovCT2_kigov); + get_map.emplace("GovCT2.kiload", &get_GovCT2_kiload); + get_map.emplace("GovCT2.kimw", &get_GovCT2_kimw); + get_map.emplace("GovCT2.kpgov", &get_GovCT2_kpgov); + get_map.emplace("GovCT2.kpload", &get_GovCT2_kpload); + get_map.emplace("GovCT2.kturb", &get_GovCT2_kturb); + get_map.emplace("GovCT2.ldref", &get_GovCT2_ldref); + get_map.emplace("GovCT2.maxerr", &get_GovCT2_maxerr); + get_map.emplace("GovCT2.minerr", &get_GovCT2_minerr); + get_map.emplace("GovCT2.mwbase", &get_GovCT2_mwbase); + get_map.emplace("GovCT2.plim1", &get_GovCT2_plim1); + get_map.emplace("GovCT2.plim10", &get_GovCT2_plim10); + get_map.emplace("GovCT2.plim2", &get_GovCT2_plim2); + get_map.emplace("GovCT2.plim3", &get_GovCT2_plim3); + get_map.emplace("GovCT2.plim4", &get_GovCT2_plim4); + get_map.emplace("GovCT2.plim5", &get_GovCT2_plim5); + get_map.emplace("GovCT2.plim6", &get_GovCT2_plim6); + get_map.emplace("GovCT2.plim7", &get_GovCT2_plim7); + get_map.emplace("GovCT2.plim8", &get_GovCT2_plim8); + get_map.emplace("GovCT2.plim9", &get_GovCT2_plim9); + get_map.emplace("GovCT2.prate", &get_GovCT2_prate); + get_map.emplace("GovCT2.r", &get_GovCT2_r); + get_map.emplace("GovCT2.rclose", &get_GovCT2_rclose); + get_map.emplace("GovCT2.rdown", &get_GovCT2_rdown); + get_map.emplace("GovCT2.ropen", &get_GovCT2_ropen); + get_map.emplace("GovCT2.rup", &get_GovCT2_rup); + get_map.emplace("GovCT2.ta", &get_GovCT2_ta); + get_map.emplace("GovCT2.tact", &get_GovCT2_tact); + get_map.emplace("GovCT2.tb", &get_GovCT2_tb); + get_map.emplace("GovCT2.tc", &get_GovCT2_tc); + get_map.emplace("GovCT2.tdgov", &get_GovCT2_tdgov); + get_map.emplace("GovCT2.teng", &get_GovCT2_teng); + get_map.emplace("GovCT2.tfload", &get_GovCT2_tfload); + get_map.emplace("GovCT2.tpelec", &get_GovCT2_tpelec); + get_map.emplace("GovCT2.tsa", &get_GovCT2_tsa); + get_map.emplace("GovCT2.tsb", &get_GovCT2_tsb); + get_map.emplace("GovCT2.vmax", &get_GovCT2_vmax); + get_map.emplace("GovCT2.vmin", &get_GovCT2_vmin); + get_map.emplace("GovCT2.wfnl", &get_GovCT2_wfnl); + get_map.emplace("GovCT2.wfspd", &get_GovCT2_wfspd); } void GovCT2::addClassGetFnsToMap(std::map& get_map) const @@ -1861,7 +1893,13 @@ void GovCT2::addClassGetFnsToMap(std::map& get_ void GovCT2::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovCT2.rselect", &get_GovCT2_rselect); + get_map.emplace("GovCT2.rselect", &get_GovCT2_rselect); +} + +bool GovCT2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovCT2" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovCT2::declare() @@ -1869,6 +1907,14 @@ const BaseClassDefiner GovCT2::declare() return BaseClassDefiner(GovCT2::addConstructToMap, GovCT2::addPrimitiveAssignFnsToMap, GovCT2::addClassAssignFnsToMap, GovCT2::debugName); } +std::map GovCT2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovCT2_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovCT2.hpp b/CGMES_2.4.15_27JAN2020/GovCT2.hpp index bb33e770d..9bbc487b3 100644 --- a/CGMES_2.4.15_27JAN2020/GovCT2.hpp +++ b/CGMES_2.4.15_27JAN2020/GovCT2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "DroopSignalFeedbackKind.hpp" @@ -202,8 +203,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -211,7 +219,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovCT2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovGAST.cpp b/CGMES_2.4.15_27JAN2020/GovGAST.cpp index cc94e78ad..e25540aed 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST.cpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST::GovGAST() {} GovGAST::~GovGAST() {} -static const std::list PossibleProfilesForClass = +const std::list& GovGAST::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovGAST::getClassNamespaceUrl() const { - { "cim:GovGAST.at", { CGMESProfile::DY, } }, - { "cim:GovGAST.dturb", { CGMESProfile::DY, } }, - { "cim:GovGAST.kt", { CGMESProfile::DY, } }, - { "cim:GovGAST.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST.r", { CGMESProfile::DY, } }, - { "cim:GovGAST.t1", { CGMESProfile::DY, } }, - { "cim:GovGAST.t2", { CGMESProfile::DY, } }, - { "cim:GovGAST.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST.vmax", { CGMESProfile::DY, } }, - { "cim:GovGAST.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovGAST::getPossibleProfilesForClass() const +const std::string& GovGAST::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovGAST::getPossibleProfilesForAttributes() const +const std::list& GovGAST::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* GovGAST::debugString() const void GovGAST::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST", &GovGAST_factory); + factory_map.emplace("GovGAST", &GovGAST_factory); } void GovGAST::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST.at", &assign_GovGAST_at); - assign_map.emplace("cim:GovGAST.dturb", &assign_GovGAST_dturb); - assign_map.emplace("cim:GovGAST.kt", &assign_GovGAST_kt); - assign_map.emplace("cim:GovGAST.mwbase", &assign_GovGAST_mwbase); - assign_map.emplace("cim:GovGAST.r", &assign_GovGAST_r); - assign_map.emplace("cim:GovGAST.t1", &assign_GovGAST_t1); - assign_map.emplace("cim:GovGAST.t2", &assign_GovGAST_t2); - assign_map.emplace("cim:GovGAST.t3", &assign_GovGAST_t3); - assign_map.emplace("cim:GovGAST.vmax", &assign_GovGAST_vmax); - assign_map.emplace("cim:GovGAST.vmin", &assign_GovGAST_vmin); + assign_map.emplace("GovGAST.at", &assign_GovGAST_at); + assign_map.emplace("GovGAST.dturb", &assign_GovGAST_dturb); + assign_map.emplace("GovGAST.kt", &assign_GovGAST_kt); + assign_map.emplace("GovGAST.mwbase", &assign_GovGAST_mwbase); + assign_map.emplace("GovGAST.r", &assign_GovGAST_r); + assign_map.emplace("GovGAST.t1", &assign_GovGAST_t1); + assign_map.emplace("GovGAST.t2", &assign_GovGAST_t2); + assign_map.emplace("GovGAST.t3", &assign_GovGAST_t3); + assign_map.emplace("GovGAST.vmax", &assign_GovGAST_vmax); + assign_map.emplace("GovGAST.vmin", &assign_GovGAST_vmin); } void GovGAST::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void GovGAST::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST.at", &get_GovGAST_at); - get_map.emplace("cim:GovGAST.dturb", &get_GovGAST_dturb); - get_map.emplace("cim:GovGAST.kt", &get_GovGAST_kt); - get_map.emplace("cim:GovGAST.mwbase", &get_GovGAST_mwbase); - get_map.emplace("cim:GovGAST.r", &get_GovGAST_r); - get_map.emplace("cim:GovGAST.t1", &get_GovGAST_t1); - get_map.emplace("cim:GovGAST.t2", &get_GovGAST_t2); - get_map.emplace("cim:GovGAST.t3", &get_GovGAST_t3); - get_map.emplace("cim:GovGAST.vmax", &get_GovGAST_vmax); - get_map.emplace("cim:GovGAST.vmin", &get_GovGAST_vmin); + get_map.emplace("GovGAST.at", &get_GovGAST_at); + get_map.emplace("GovGAST.dturb", &get_GovGAST_dturb); + get_map.emplace("GovGAST.kt", &get_GovGAST_kt); + get_map.emplace("GovGAST.mwbase", &get_GovGAST_mwbase); + get_map.emplace("GovGAST.r", &get_GovGAST_r); + get_map.emplace("GovGAST.t1", &get_GovGAST_t1); + get_map.emplace("GovGAST.t2", &get_GovGAST_t2); + get_map.emplace("GovGAST.t3", &get_GovGAST_t3); + get_map.emplace("GovGAST.vmax", &get_GovGAST_vmax); + get_map.emplace("GovGAST.vmin", &get_GovGAST_vmin); } void GovGAST::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void GovGAST::addEnumGetFnsToMap(std::map& get_map) c TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST::declare() { return BaseClassDefiner(GovGAST::addConstructToMap, GovGAST::addPrimitiveAssignFnsToMap, GovGAST::addClassAssignFnsToMap, GovGAST::debugName); } +std::map GovGAST::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovGAST.hpp b/CGMES_2.4.15_27JAN2020/GovGAST.hpp index 497af8aa8..4c5e7e723 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST.hpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovGAST1.cpp b/CGMES_2.4.15_27JAN2020/GovGAST1.cpp index 4acaed7db..72360cb09 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST1.cpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST1.cpp @@ -11,65 +11,97 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST1.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.fidle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.lmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.loadinc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.ltrate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.rmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.tltr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST1.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST1::GovGAST1() {} GovGAST1::~GovGAST1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST1.a", { CGMESProfile::DY, } }, - { "cim:GovGAST1.b", { CGMESProfile::DY, } }, - { "cim:GovGAST1.db1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.db2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.eps", { CGMESProfile::DY, } }, - { "cim:GovGAST1.fidle", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv6", { CGMESProfile::DY, } }, - { "cim:GovGAST1.ka", { CGMESProfile::DY, } }, - { "cim:GovGAST1.kt", { CGMESProfile::DY, } }, - { "cim:GovGAST1.lmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.loadinc", { CGMESProfile::DY, } }, - { "cim:GovGAST1.ltrate", { CGMESProfile::DY, } }, - { "cim:GovGAST1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv6", { CGMESProfile::DY, } }, - { "cim:GovGAST1.r", { CGMESProfile::DY, } }, - { "cim:GovGAST1.rmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.tltr", { CGMESProfile::DY, } }, - { "cim:GovGAST1.vmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.vmin", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST1_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1066,45 +1098,45 @@ const char* GovGAST1::debugString() const void GovGAST1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST1", &GovGAST1_factory); + factory_map.emplace("GovGAST1", &GovGAST1_factory); } void GovGAST1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST1.a", &assign_GovGAST1_a); - assign_map.emplace("cim:GovGAST1.b", &assign_GovGAST1_b); - assign_map.emplace("cim:GovGAST1.db1", &assign_GovGAST1_db1); - assign_map.emplace("cim:GovGAST1.db2", &assign_GovGAST1_db2); - assign_map.emplace("cim:GovGAST1.eps", &assign_GovGAST1_eps); - assign_map.emplace("cim:GovGAST1.fidle", &assign_GovGAST1_fidle); - assign_map.emplace("cim:GovGAST1.gv1", &assign_GovGAST1_gv1); - assign_map.emplace("cim:GovGAST1.gv2", &assign_GovGAST1_gv2); - assign_map.emplace("cim:GovGAST1.gv3", &assign_GovGAST1_gv3); - assign_map.emplace("cim:GovGAST1.gv4", &assign_GovGAST1_gv4); - assign_map.emplace("cim:GovGAST1.gv5", &assign_GovGAST1_gv5); - assign_map.emplace("cim:GovGAST1.gv6", &assign_GovGAST1_gv6); - assign_map.emplace("cim:GovGAST1.ka", &assign_GovGAST1_ka); - assign_map.emplace("cim:GovGAST1.kt", &assign_GovGAST1_kt); - assign_map.emplace("cim:GovGAST1.lmax", &assign_GovGAST1_lmax); - assign_map.emplace("cim:GovGAST1.loadinc", &assign_GovGAST1_loadinc); - assign_map.emplace("cim:GovGAST1.ltrate", &assign_GovGAST1_ltrate); - assign_map.emplace("cim:GovGAST1.mwbase", &assign_GovGAST1_mwbase); - assign_map.emplace("cim:GovGAST1.pgv1", &assign_GovGAST1_pgv1); - assign_map.emplace("cim:GovGAST1.pgv2", &assign_GovGAST1_pgv2); - assign_map.emplace("cim:GovGAST1.pgv3", &assign_GovGAST1_pgv3); - assign_map.emplace("cim:GovGAST1.pgv4", &assign_GovGAST1_pgv4); - assign_map.emplace("cim:GovGAST1.pgv5", &assign_GovGAST1_pgv5); - assign_map.emplace("cim:GovGAST1.pgv6", &assign_GovGAST1_pgv6); - assign_map.emplace("cim:GovGAST1.r", &assign_GovGAST1_r); - assign_map.emplace("cim:GovGAST1.rmax", &assign_GovGAST1_rmax); - assign_map.emplace("cim:GovGAST1.t1", &assign_GovGAST1_t1); - assign_map.emplace("cim:GovGAST1.t2", &assign_GovGAST1_t2); - assign_map.emplace("cim:GovGAST1.t3", &assign_GovGAST1_t3); - assign_map.emplace("cim:GovGAST1.t4", &assign_GovGAST1_t4); - assign_map.emplace("cim:GovGAST1.t5", &assign_GovGAST1_t5); - assign_map.emplace("cim:GovGAST1.tltr", &assign_GovGAST1_tltr); - assign_map.emplace("cim:GovGAST1.vmax", &assign_GovGAST1_vmax); - assign_map.emplace("cim:GovGAST1.vmin", &assign_GovGAST1_vmin); + assign_map.emplace("GovGAST1.a", &assign_GovGAST1_a); + assign_map.emplace("GovGAST1.b", &assign_GovGAST1_b); + assign_map.emplace("GovGAST1.db1", &assign_GovGAST1_db1); + assign_map.emplace("GovGAST1.db2", &assign_GovGAST1_db2); + assign_map.emplace("GovGAST1.eps", &assign_GovGAST1_eps); + assign_map.emplace("GovGAST1.fidle", &assign_GovGAST1_fidle); + assign_map.emplace("GovGAST1.gv1", &assign_GovGAST1_gv1); + assign_map.emplace("GovGAST1.gv2", &assign_GovGAST1_gv2); + assign_map.emplace("GovGAST1.gv3", &assign_GovGAST1_gv3); + assign_map.emplace("GovGAST1.gv4", &assign_GovGAST1_gv4); + assign_map.emplace("GovGAST1.gv5", &assign_GovGAST1_gv5); + assign_map.emplace("GovGAST1.gv6", &assign_GovGAST1_gv6); + assign_map.emplace("GovGAST1.ka", &assign_GovGAST1_ka); + assign_map.emplace("GovGAST1.kt", &assign_GovGAST1_kt); + assign_map.emplace("GovGAST1.lmax", &assign_GovGAST1_lmax); + assign_map.emplace("GovGAST1.loadinc", &assign_GovGAST1_loadinc); + assign_map.emplace("GovGAST1.ltrate", &assign_GovGAST1_ltrate); + assign_map.emplace("GovGAST1.mwbase", &assign_GovGAST1_mwbase); + assign_map.emplace("GovGAST1.pgv1", &assign_GovGAST1_pgv1); + assign_map.emplace("GovGAST1.pgv2", &assign_GovGAST1_pgv2); + assign_map.emplace("GovGAST1.pgv3", &assign_GovGAST1_pgv3); + assign_map.emplace("GovGAST1.pgv4", &assign_GovGAST1_pgv4); + assign_map.emplace("GovGAST1.pgv5", &assign_GovGAST1_pgv5); + assign_map.emplace("GovGAST1.pgv6", &assign_GovGAST1_pgv6); + assign_map.emplace("GovGAST1.r", &assign_GovGAST1_r); + assign_map.emplace("GovGAST1.rmax", &assign_GovGAST1_rmax); + assign_map.emplace("GovGAST1.t1", &assign_GovGAST1_t1); + assign_map.emplace("GovGAST1.t2", &assign_GovGAST1_t2); + assign_map.emplace("GovGAST1.t3", &assign_GovGAST1_t3); + assign_map.emplace("GovGAST1.t4", &assign_GovGAST1_t4); + assign_map.emplace("GovGAST1.t5", &assign_GovGAST1_t5); + assign_map.emplace("GovGAST1.tltr", &assign_GovGAST1_tltr); + assign_map.emplace("GovGAST1.vmax", &assign_GovGAST1_vmax); + assign_map.emplace("GovGAST1.vmin", &assign_GovGAST1_vmin); } void GovGAST1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1114,40 +1146,40 @@ void GovGAST1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST1.a", &get_GovGAST1_a); - get_map.emplace("cim:GovGAST1.b", &get_GovGAST1_b); - get_map.emplace("cim:GovGAST1.db1", &get_GovGAST1_db1); - get_map.emplace("cim:GovGAST1.db2", &get_GovGAST1_db2); - get_map.emplace("cim:GovGAST1.eps", &get_GovGAST1_eps); - get_map.emplace("cim:GovGAST1.fidle", &get_GovGAST1_fidle); - get_map.emplace("cim:GovGAST1.gv1", &get_GovGAST1_gv1); - get_map.emplace("cim:GovGAST1.gv2", &get_GovGAST1_gv2); - get_map.emplace("cim:GovGAST1.gv3", &get_GovGAST1_gv3); - get_map.emplace("cim:GovGAST1.gv4", &get_GovGAST1_gv4); - get_map.emplace("cim:GovGAST1.gv5", &get_GovGAST1_gv5); - get_map.emplace("cim:GovGAST1.gv6", &get_GovGAST1_gv6); - get_map.emplace("cim:GovGAST1.ka", &get_GovGAST1_ka); - get_map.emplace("cim:GovGAST1.kt", &get_GovGAST1_kt); - get_map.emplace("cim:GovGAST1.lmax", &get_GovGAST1_lmax); - get_map.emplace("cim:GovGAST1.loadinc", &get_GovGAST1_loadinc); - get_map.emplace("cim:GovGAST1.ltrate", &get_GovGAST1_ltrate); - get_map.emplace("cim:GovGAST1.mwbase", &get_GovGAST1_mwbase); - get_map.emplace("cim:GovGAST1.pgv1", &get_GovGAST1_pgv1); - get_map.emplace("cim:GovGAST1.pgv2", &get_GovGAST1_pgv2); - get_map.emplace("cim:GovGAST1.pgv3", &get_GovGAST1_pgv3); - get_map.emplace("cim:GovGAST1.pgv4", &get_GovGAST1_pgv4); - get_map.emplace("cim:GovGAST1.pgv5", &get_GovGAST1_pgv5); - get_map.emplace("cim:GovGAST1.pgv6", &get_GovGAST1_pgv6); - get_map.emplace("cim:GovGAST1.r", &get_GovGAST1_r); - get_map.emplace("cim:GovGAST1.rmax", &get_GovGAST1_rmax); - get_map.emplace("cim:GovGAST1.t1", &get_GovGAST1_t1); - get_map.emplace("cim:GovGAST1.t2", &get_GovGAST1_t2); - get_map.emplace("cim:GovGAST1.t3", &get_GovGAST1_t3); - get_map.emplace("cim:GovGAST1.t4", &get_GovGAST1_t4); - get_map.emplace("cim:GovGAST1.t5", &get_GovGAST1_t5); - get_map.emplace("cim:GovGAST1.tltr", &get_GovGAST1_tltr); - get_map.emplace("cim:GovGAST1.vmax", &get_GovGAST1_vmax); - get_map.emplace("cim:GovGAST1.vmin", &get_GovGAST1_vmin); + get_map.emplace("GovGAST1.a", &get_GovGAST1_a); + get_map.emplace("GovGAST1.b", &get_GovGAST1_b); + get_map.emplace("GovGAST1.db1", &get_GovGAST1_db1); + get_map.emplace("GovGAST1.db2", &get_GovGAST1_db2); + get_map.emplace("GovGAST1.eps", &get_GovGAST1_eps); + get_map.emplace("GovGAST1.fidle", &get_GovGAST1_fidle); + get_map.emplace("GovGAST1.gv1", &get_GovGAST1_gv1); + get_map.emplace("GovGAST1.gv2", &get_GovGAST1_gv2); + get_map.emplace("GovGAST1.gv3", &get_GovGAST1_gv3); + get_map.emplace("GovGAST1.gv4", &get_GovGAST1_gv4); + get_map.emplace("GovGAST1.gv5", &get_GovGAST1_gv5); + get_map.emplace("GovGAST1.gv6", &get_GovGAST1_gv6); + get_map.emplace("GovGAST1.ka", &get_GovGAST1_ka); + get_map.emplace("GovGAST1.kt", &get_GovGAST1_kt); + get_map.emplace("GovGAST1.lmax", &get_GovGAST1_lmax); + get_map.emplace("GovGAST1.loadinc", &get_GovGAST1_loadinc); + get_map.emplace("GovGAST1.ltrate", &get_GovGAST1_ltrate); + get_map.emplace("GovGAST1.mwbase", &get_GovGAST1_mwbase); + get_map.emplace("GovGAST1.pgv1", &get_GovGAST1_pgv1); + get_map.emplace("GovGAST1.pgv2", &get_GovGAST1_pgv2); + get_map.emplace("GovGAST1.pgv3", &get_GovGAST1_pgv3); + get_map.emplace("GovGAST1.pgv4", &get_GovGAST1_pgv4); + get_map.emplace("GovGAST1.pgv5", &get_GovGAST1_pgv5); + get_map.emplace("GovGAST1.pgv6", &get_GovGAST1_pgv6); + get_map.emplace("GovGAST1.r", &get_GovGAST1_r); + get_map.emplace("GovGAST1.rmax", &get_GovGAST1_rmax); + get_map.emplace("GovGAST1.t1", &get_GovGAST1_t1); + get_map.emplace("GovGAST1.t2", &get_GovGAST1_t2); + get_map.emplace("GovGAST1.t3", &get_GovGAST1_t3); + get_map.emplace("GovGAST1.t4", &get_GovGAST1_t4); + get_map.emplace("GovGAST1.t5", &get_GovGAST1_t5); + get_map.emplace("GovGAST1.tltr", &get_GovGAST1_tltr); + get_map.emplace("GovGAST1.vmax", &get_GovGAST1_vmax); + get_map.emplace("GovGAST1.vmin", &get_GovGAST1_vmin); } void GovGAST1::addClassGetFnsToMap(std::map& get_map) const @@ -1160,11 +1192,25 @@ void GovGAST1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST1::declare() { return BaseClassDefiner(GovGAST1::addConstructToMap, GovGAST1::addPrimitiveAssignFnsToMap, GovGAST1::addClassAssignFnsToMap, GovGAST1::debugName); } +std::map GovGAST1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST1_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovGAST1.hpp b/CGMES_2.4.15_27JAN2020/GovGAST1.hpp index 2eaf845e2..a1fd4bfcc 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST1.hpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -134,8 +135,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -143,7 +151,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovGAST2.cpp b/CGMES_2.4.15_27JAN2020/GovGAST2.cpp index c78ffe45c..b2adfaa1e 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST2.cpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST2.cpp @@ -11,63 +11,95 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST2.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.af1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.af2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.bf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.bf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.c", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.cf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.ecr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.etd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.trate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.w", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.y", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST2.z", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST2::GovGAST2() {} GovGAST2::~GovGAST2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST2.a", { CGMESProfile::DY, } }, - { "cim:GovGAST2.af1", { CGMESProfile::DY, } }, - { "cim:GovGAST2.af2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.b", { CGMESProfile::DY, } }, - { "cim:GovGAST2.bf1", { CGMESProfile::DY, } }, - { "cim:GovGAST2.bf2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.c", { CGMESProfile::DY, } }, - { "cim:GovGAST2.cf2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.ecr", { CGMESProfile::DY, } }, - { "cim:GovGAST2.etd", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k3", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k4", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k5", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k6", { CGMESProfile::DY, } }, - { "cim:GovGAST2.kf", { CGMESProfile::DY, } }, - { "cim:GovGAST2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t4", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t5", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tcd", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tf", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tmax", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tmin", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tr", { CGMESProfile::DY, } }, - { "cim:GovGAST2.trate", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tt", { CGMESProfile::DY, } }, - { "cim:GovGAST2.w", { CGMESProfile::DY, } }, - { "cim:GovGAST2.x", { CGMESProfile::DY, } }, - { "cim:GovGAST2.y", { CGMESProfile::DY, } }, - { "cim:GovGAST2.z", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST2_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1006,43 +1038,43 @@ const char* GovGAST2::debugString() const void GovGAST2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST2", &GovGAST2_factory); + factory_map.emplace("GovGAST2", &GovGAST2_factory); } void GovGAST2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST2.a", &assign_GovGAST2_a); - assign_map.emplace("cim:GovGAST2.af1", &assign_GovGAST2_af1); - assign_map.emplace("cim:GovGAST2.af2", &assign_GovGAST2_af2); - assign_map.emplace("cim:GovGAST2.b", &assign_GovGAST2_b); - assign_map.emplace("cim:GovGAST2.bf1", &assign_GovGAST2_bf1); - assign_map.emplace("cim:GovGAST2.bf2", &assign_GovGAST2_bf2); - assign_map.emplace("cim:GovGAST2.c", &assign_GovGAST2_c); - assign_map.emplace("cim:GovGAST2.cf2", &assign_GovGAST2_cf2); - assign_map.emplace("cim:GovGAST2.ecr", &assign_GovGAST2_ecr); - assign_map.emplace("cim:GovGAST2.etd", &assign_GovGAST2_etd); - assign_map.emplace("cim:GovGAST2.k3", &assign_GovGAST2_k3); - assign_map.emplace("cim:GovGAST2.k4", &assign_GovGAST2_k4); - assign_map.emplace("cim:GovGAST2.k5", &assign_GovGAST2_k5); - assign_map.emplace("cim:GovGAST2.k6", &assign_GovGAST2_k6); - assign_map.emplace("cim:GovGAST2.kf", &assign_GovGAST2_kf); - assign_map.emplace("cim:GovGAST2.mwbase", &assign_GovGAST2_mwbase); - assign_map.emplace("cim:GovGAST2.t", &assign_GovGAST2_t); - assign_map.emplace("cim:GovGAST2.t3", &assign_GovGAST2_t3); - assign_map.emplace("cim:GovGAST2.t4", &assign_GovGAST2_t4); - assign_map.emplace("cim:GovGAST2.t5", &assign_GovGAST2_t5); - assign_map.emplace("cim:GovGAST2.tc", &assign_GovGAST2_tc); - assign_map.emplace("cim:GovGAST2.tcd", &assign_GovGAST2_tcd); - assign_map.emplace("cim:GovGAST2.tf", &assign_GovGAST2_tf); - assign_map.emplace("cim:GovGAST2.tmax", &assign_GovGAST2_tmax); - assign_map.emplace("cim:GovGAST2.tmin", &assign_GovGAST2_tmin); - assign_map.emplace("cim:GovGAST2.tr", &assign_GovGAST2_tr); - assign_map.emplace("cim:GovGAST2.trate", &assign_GovGAST2_trate); - assign_map.emplace("cim:GovGAST2.tt", &assign_GovGAST2_tt); - assign_map.emplace("cim:GovGAST2.w", &assign_GovGAST2_w); - assign_map.emplace("cim:GovGAST2.x", &assign_GovGAST2_x); - assign_map.emplace("cim:GovGAST2.y", &assign_GovGAST2_y); - assign_map.emplace("cim:GovGAST2.z", &assign_GovGAST2_z); + assign_map.emplace("GovGAST2.a", &assign_GovGAST2_a); + assign_map.emplace("GovGAST2.af1", &assign_GovGAST2_af1); + assign_map.emplace("GovGAST2.af2", &assign_GovGAST2_af2); + assign_map.emplace("GovGAST2.b", &assign_GovGAST2_b); + assign_map.emplace("GovGAST2.bf1", &assign_GovGAST2_bf1); + assign_map.emplace("GovGAST2.bf2", &assign_GovGAST2_bf2); + assign_map.emplace("GovGAST2.c", &assign_GovGAST2_c); + assign_map.emplace("GovGAST2.cf2", &assign_GovGAST2_cf2); + assign_map.emplace("GovGAST2.ecr", &assign_GovGAST2_ecr); + assign_map.emplace("GovGAST2.etd", &assign_GovGAST2_etd); + assign_map.emplace("GovGAST2.k3", &assign_GovGAST2_k3); + assign_map.emplace("GovGAST2.k4", &assign_GovGAST2_k4); + assign_map.emplace("GovGAST2.k5", &assign_GovGAST2_k5); + assign_map.emplace("GovGAST2.k6", &assign_GovGAST2_k6); + assign_map.emplace("GovGAST2.kf", &assign_GovGAST2_kf); + assign_map.emplace("GovGAST2.mwbase", &assign_GovGAST2_mwbase); + assign_map.emplace("GovGAST2.t", &assign_GovGAST2_t); + assign_map.emplace("GovGAST2.t3", &assign_GovGAST2_t3); + assign_map.emplace("GovGAST2.t4", &assign_GovGAST2_t4); + assign_map.emplace("GovGAST2.t5", &assign_GovGAST2_t5); + assign_map.emplace("GovGAST2.tc", &assign_GovGAST2_tc); + assign_map.emplace("GovGAST2.tcd", &assign_GovGAST2_tcd); + assign_map.emplace("GovGAST2.tf", &assign_GovGAST2_tf); + assign_map.emplace("GovGAST2.tmax", &assign_GovGAST2_tmax); + assign_map.emplace("GovGAST2.tmin", &assign_GovGAST2_tmin); + assign_map.emplace("GovGAST2.tr", &assign_GovGAST2_tr); + assign_map.emplace("GovGAST2.trate", &assign_GovGAST2_trate); + assign_map.emplace("GovGAST2.tt", &assign_GovGAST2_tt); + assign_map.emplace("GovGAST2.w", &assign_GovGAST2_w); + assign_map.emplace("GovGAST2.x", &assign_GovGAST2_x); + assign_map.emplace("GovGAST2.y", &assign_GovGAST2_y); + assign_map.emplace("GovGAST2.z", &assign_GovGAST2_z); } void GovGAST2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1052,38 +1084,38 @@ void GovGAST2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST2.a", &get_GovGAST2_a); - get_map.emplace("cim:GovGAST2.af1", &get_GovGAST2_af1); - get_map.emplace("cim:GovGAST2.af2", &get_GovGAST2_af2); - get_map.emplace("cim:GovGAST2.b", &get_GovGAST2_b); - get_map.emplace("cim:GovGAST2.bf1", &get_GovGAST2_bf1); - get_map.emplace("cim:GovGAST2.bf2", &get_GovGAST2_bf2); - get_map.emplace("cim:GovGAST2.c", &get_GovGAST2_c); - get_map.emplace("cim:GovGAST2.cf2", &get_GovGAST2_cf2); - get_map.emplace("cim:GovGAST2.ecr", &get_GovGAST2_ecr); - get_map.emplace("cim:GovGAST2.etd", &get_GovGAST2_etd); - get_map.emplace("cim:GovGAST2.k3", &get_GovGAST2_k3); - get_map.emplace("cim:GovGAST2.k4", &get_GovGAST2_k4); - get_map.emplace("cim:GovGAST2.k5", &get_GovGAST2_k5); - get_map.emplace("cim:GovGAST2.k6", &get_GovGAST2_k6); - get_map.emplace("cim:GovGAST2.kf", &get_GovGAST2_kf); - get_map.emplace("cim:GovGAST2.mwbase", &get_GovGAST2_mwbase); - get_map.emplace("cim:GovGAST2.t", &get_GovGAST2_t); - get_map.emplace("cim:GovGAST2.t3", &get_GovGAST2_t3); - get_map.emplace("cim:GovGAST2.t4", &get_GovGAST2_t4); - get_map.emplace("cim:GovGAST2.t5", &get_GovGAST2_t5); - get_map.emplace("cim:GovGAST2.tc", &get_GovGAST2_tc); - get_map.emplace("cim:GovGAST2.tcd", &get_GovGAST2_tcd); - get_map.emplace("cim:GovGAST2.tf", &get_GovGAST2_tf); - get_map.emplace("cim:GovGAST2.tmax", &get_GovGAST2_tmax); - get_map.emplace("cim:GovGAST2.tmin", &get_GovGAST2_tmin); - get_map.emplace("cim:GovGAST2.tr", &get_GovGAST2_tr); - get_map.emplace("cim:GovGAST2.trate", &get_GovGAST2_trate); - get_map.emplace("cim:GovGAST2.tt", &get_GovGAST2_tt); - get_map.emplace("cim:GovGAST2.w", &get_GovGAST2_w); - get_map.emplace("cim:GovGAST2.x", &get_GovGAST2_x); - get_map.emplace("cim:GovGAST2.y", &get_GovGAST2_y); - get_map.emplace("cim:GovGAST2.z", &get_GovGAST2_z); + get_map.emplace("GovGAST2.a", &get_GovGAST2_a); + get_map.emplace("GovGAST2.af1", &get_GovGAST2_af1); + get_map.emplace("GovGAST2.af2", &get_GovGAST2_af2); + get_map.emplace("GovGAST2.b", &get_GovGAST2_b); + get_map.emplace("GovGAST2.bf1", &get_GovGAST2_bf1); + get_map.emplace("GovGAST2.bf2", &get_GovGAST2_bf2); + get_map.emplace("GovGAST2.c", &get_GovGAST2_c); + get_map.emplace("GovGAST2.cf2", &get_GovGAST2_cf2); + get_map.emplace("GovGAST2.ecr", &get_GovGAST2_ecr); + get_map.emplace("GovGAST2.etd", &get_GovGAST2_etd); + get_map.emplace("GovGAST2.k3", &get_GovGAST2_k3); + get_map.emplace("GovGAST2.k4", &get_GovGAST2_k4); + get_map.emplace("GovGAST2.k5", &get_GovGAST2_k5); + get_map.emplace("GovGAST2.k6", &get_GovGAST2_k6); + get_map.emplace("GovGAST2.kf", &get_GovGAST2_kf); + get_map.emplace("GovGAST2.mwbase", &get_GovGAST2_mwbase); + get_map.emplace("GovGAST2.t", &get_GovGAST2_t); + get_map.emplace("GovGAST2.t3", &get_GovGAST2_t3); + get_map.emplace("GovGAST2.t4", &get_GovGAST2_t4); + get_map.emplace("GovGAST2.t5", &get_GovGAST2_t5); + get_map.emplace("GovGAST2.tc", &get_GovGAST2_tc); + get_map.emplace("GovGAST2.tcd", &get_GovGAST2_tcd); + get_map.emplace("GovGAST2.tf", &get_GovGAST2_tf); + get_map.emplace("GovGAST2.tmax", &get_GovGAST2_tmax); + get_map.emplace("GovGAST2.tmin", &get_GovGAST2_tmin); + get_map.emplace("GovGAST2.tr", &get_GovGAST2_tr); + get_map.emplace("GovGAST2.trate", &get_GovGAST2_trate); + get_map.emplace("GovGAST2.tt", &get_GovGAST2_tt); + get_map.emplace("GovGAST2.w", &get_GovGAST2_w); + get_map.emplace("GovGAST2.x", &get_GovGAST2_x); + get_map.emplace("GovGAST2.y", &get_GovGAST2_y); + get_map.emplace("GovGAST2.z", &get_GovGAST2_z); } void GovGAST2::addClassGetFnsToMap(std::map& get_map) const @@ -1096,11 +1128,25 @@ void GovGAST2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST2::declare() { return BaseClassDefiner(GovGAST2::addConstructToMap, GovGAST2::addPrimitiveAssignFnsToMap, GovGAST2::addClassAssignFnsToMap, GovGAST2::debugName); } +std::map GovGAST2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST2_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovGAST2.hpp b/CGMES_2.4.15_27JAN2020/GovGAST2.hpp index 37de9cf50..3e30ecfa1 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST2.hpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -129,8 +130,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -138,7 +146,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovGAST3.cpp b/CGMES_2.4.15_27JAN2020/GovGAST3.cpp index d80998b75..dfe7a19cf 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST3.cpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST3.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST3.bca", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ka", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.kac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.kca", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ksi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ky", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.rcmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.rcmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tfen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tsi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ttc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST3.ty", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST3::GovGAST3() {} GovGAST3::~GovGAST3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST3.bca", { CGMESProfile::DY, } }, - { "cim:GovGAST3.bp", { CGMESProfile::DY, } }, - { "cim:GovGAST3.dtc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ka", { CGMESProfile::DY, } }, - { "cim:GovGAST3.kac", { CGMESProfile::DY, } }, - { "cim:GovGAST3.kca", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ksi", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ky", { CGMESProfile::DY, } }, - { "cim:GovGAST3.mnef", { CGMESProfile::DY, } }, - { "cim:GovGAST3.mxef", { CGMESProfile::DY, } }, - { "cim:GovGAST3.rcmn", { CGMESProfile::DY, } }, - { "cim:GovGAST3.rcmx", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tac", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.td", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tfen", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tg", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tsi", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tt", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ttc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ty", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST3_bca(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* GovGAST3::debugString() const void GovGAST3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST3", &GovGAST3_factory); + factory_map.emplace("GovGAST3", &GovGAST3_factory); } void GovGAST3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST3.bca", &assign_GovGAST3_bca); - assign_map.emplace("cim:GovGAST3.bp", &assign_GovGAST3_bp); - assign_map.emplace("cim:GovGAST3.dtc", &assign_GovGAST3_dtc); - assign_map.emplace("cim:GovGAST3.ka", &assign_GovGAST3_ka); - assign_map.emplace("cim:GovGAST3.kac", &assign_GovGAST3_kac); - assign_map.emplace("cim:GovGAST3.kca", &assign_GovGAST3_kca); - assign_map.emplace("cim:GovGAST3.ksi", &assign_GovGAST3_ksi); - assign_map.emplace("cim:GovGAST3.ky", &assign_GovGAST3_ky); - assign_map.emplace("cim:GovGAST3.mnef", &assign_GovGAST3_mnef); - assign_map.emplace("cim:GovGAST3.mxef", &assign_GovGAST3_mxef); - assign_map.emplace("cim:GovGAST3.rcmn", &assign_GovGAST3_rcmn); - assign_map.emplace("cim:GovGAST3.rcmx", &assign_GovGAST3_rcmx); - assign_map.emplace("cim:GovGAST3.tac", &assign_GovGAST3_tac); - assign_map.emplace("cim:GovGAST3.tc", &assign_GovGAST3_tc); - assign_map.emplace("cim:GovGAST3.td", &assign_GovGAST3_td); - assign_map.emplace("cim:GovGAST3.tfen", &assign_GovGAST3_tfen); - assign_map.emplace("cim:GovGAST3.tg", &assign_GovGAST3_tg); - assign_map.emplace("cim:GovGAST3.tsi", &assign_GovGAST3_tsi); - assign_map.emplace("cim:GovGAST3.tt", &assign_GovGAST3_tt); - assign_map.emplace("cim:GovGAST3.ttc", &assign_GovGAST3_ttc); - assign_map.emplace("cim:GovGAST3.ty", &assign_GovGAST3_ty); + assign_map.emplace("GovGAST3.bca", &assign_GovGAST3_bca); + assign_map.emplace("GovGAST3.bp", &assign_GovGAST3_bp); + assign_map.emplace("GovGAST3.dtc", &assign_GovGAST3_dtc); + assign_map.emplace("GovGAST3.ka", &assign_GovGAST3_ka); + assign_map.emplace("GovGAST3.kac", &assign_GovGAST3_kac); + assign_map.emplace("GovGAST3.kca", &assign_GovGAST3_kca); + assign_map.emplace("GovGAST3.ksi", &assign_GovGAST3_ksi); + assign_map.emplace("GovGAST3.ky", &assign_GovGAST3_ky); + assign_map.emplace("GovGAST3.mnef", &assign_GovGAST3_mnef); + assign_map.emplace("GovGAST3.mxef", &assign_GovGAST3_mxef); + assign_map.emplace("GovGAST3.rcmn", &assign_GovGAST3_rcmn); + assign_map.emplace("GovGAST3.rcmx", &assign_GovGAST3_rcmx); + assign_map.emplace("GovGAST3.tac", &assign_GovGAST3_tac); + assign_map.emplace("GovGAST3.tc", &assign_GovGAST3_tc); + assign_map.emplace("GovGAST3.td", &assign_GovGAST3_td); + assign_map.emplace("GovGAST3.tfen", &assign_GovGAST3_tfen); + assign_map.emplace("GovGAST3.tg", &assign_GovGAST3_tg); + assign_map.emplace("GovGAST3.tsi", &assign_GovGAST3_tsi); + assign_map.emplace("GovGAST3.tt", &assign_GovGAST3_tt); + assign_map.emplace("GovGAST3.ttc", &assign_GovGAST3_ttc); + assign_map.emplace("GovGAST3.ty", &assign_GovGAST3_ty); } void GovGAST3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void GovGAST3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST3.bca", &get_GovGAST3_bca); - get_map.emplace("cim:GovGAST3.bp", &get_GovGAST3_bp); - get_map.emplace("cim:GovGAST3.dtc", &get_GovGAST3_dtc); - get_map.emplace("cim:GovGAST3.ka", &get_GovGAST3_ka); - get_map.emplace("cim:GovGAST3.kac", &get_GovGAST3_kac); - get_map.emplace("cim:GovGAST3.kca", &get_GovGAST3_kca); - get_map.emplace("cim:GovGAST3.ksi", &get_GovGAST3_ksi); - get_map.emplace("cim:GovGAST3.ky", &get_GovGAST3_ky); - get_map.emplace("cim:GovGAST3.mnef", &get_GovGAST3_mnef); - get_map.emplace("cim:GovGAST3.mxef", &get_GovGAST3_mxef); - get_map.emplace("cim:GovGAST3.rcmn", &get_GovGAST3_rcmn); - get_map.emplace("cim:GovGAST3.rcmx", &get_GovGAST3_rcmx); - get_map.emplace("cim:GovGAST3.tac", &get_GovGAST3_tac); - get_map.emplace("cim:GovGAST3.tc", &get_GovGAST3_tc); - get_map.emplace("cim:GovGAST3.td", &get_GovGAST3_td); - get_map.emplace("cim:GovGAST3.tfen", &get_GovGAST3_tfen); - get_map.emplace("cim:GovGAST3.tg", &get_GovGAST3_tg); - get_map.emplace("cim:GovGAST3.tsi", &get_GovGAST3_tsi); - get_map.emplace("cim:GovGAST3.tt", &get_GovGAST3_tt); - get_map.emplace("cim:GovGAST3.ttc", &get_GovGAST3_ttc); - get_map.emplace("cim:GovGAST3.ty", &get_GovGAST3_ty); + get_map.emplace("GovGAST3.bca", &get_GovGAST3_bca); + get_map.emplace("GovGAST3.bp", &get_GovGAST3_bp); + get_map.emplace("GovGAST3.dtc", &get_GovGAST3_dtc); + get_map.emplace("GovGAST3.ka", &get_GovGAST3_ka); + get_map.emplace("GovGAST3.kac", &get_GovGAST3_kac); + get_map.emplace("GovGAST3.kca", &get_GovGAST3_kca); + get_map.emplace("GovGAST3.ksi", &get_GovGAST3_ksi); + get_map.emplace("GovGAST3.ky", &get_GovGAST3_ky); + get_map.emplace("GovGAST3.mnef", &get_GovGAST3_mnef); + get_map.emplace("GovGAST3.mxef", &get_GovGAST3_mxef); + get_map.emplace("GovGAST3.rcmn", &get_GovGAST3_rcmn); + get_map.emplace("GovGAST3.rcmx", &get_GovGAST3_rcmx); + get_map.emplace("GovGAST3.tac", &get_GovGAST3_tac); + get_map.emplace("GovGAST3.tc", &get_GovGAST3_tc); + get_map.emplace("GovGAST3.td", &get_GovGAST3_td); + get_map.emplace("GovGAST3.tfen", &get_GovGAST3_tfen); + get_map.emplace("GovGAST3.tg", &get_GovGAST3_tg); + get_map.emplace("GovGAST3.tsi", &get_GovGAST3_tsi); + get_map.emplace("GovGAST3.tt", &get_GovGAST3_tt); + get_map.emplace("GovGAST3.ttc", &get_GovGAST3_ttc); + get_map.emplace("GovGAST3.ty", &get_GovGAST3_ty); } void GovGAST3::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void GovGAST3::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST3::declare() { return BaseClassDefiner(GovGAST3::addConstructToMap, GovGAST3::addPrimitiveAssignFnsToMap, GovGAST3::addClassAssignFnsToMap, GovGAST3::debugName); } +std::map GovGAST3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST3_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovGAST3.hpp b/CGMES_2.4.15_27JAN2020/GovGAST3.hpp index 8d460f127..1c25e73ed 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST3.hpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST3_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovGAST4.cpp b/CGMES_2.4.15_27JAN2020/GovGAST4.cpp index 43052f31f..92206c256 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST4.cpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST4.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST4.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.ktm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.rymn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.rymx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tcm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGAST4.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST4::GovGAST4() {} GovGAST4::~GovGAST4() {} -static const std::list PossibleProfilesForClass = +const std::list& GovGAST4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovGAST4::getClassNamespaceUrl() const { - { "cim:GovGAST4.bp", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ktm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.mnef", { CGMESProfile::DY, } }, - { "cim:GovGAST4.mxef", { CGMESProfile::DY, } }, - { "cim:GovGAST4.rymn", { CGMESProfile::DY, } }, - { "cim:GovGAST4.rymx", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ta", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tcm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tv", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovGAST4::getPossibleProfilesForClass() const +const std::string& GovGAST4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovGAST4::getPossibleProfilesForAttributes() const +const std::list& GovGAST4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST4_bp(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* GovGAST4::debugString() const void GovGAST4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST4", &GovGAST4_factory); + factory_map.emplace("GovGAST4", &GovGAST4_factory); } void GovGAST4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST4.bp", &assign_GovGAST4_bp); - assign_map.emplace("cim:GovGAST4.ktm", &assign_GovGAST4_ktm); - assign_map.emplace("cim:GovGAST4.mnef", &assign_GovGAST4_mnef); - assign_map.emplace("cim:GovGAST4.mxef", &assign_GovGAST4_mxef); - assign_map.emplace("cim:GovGAST4.rymn", &assign_GovGAST4_rymn); - assign_map.emplace("cim:GovGAST4.rymx", &assign_GovGAST4_rymx); - assign_map.emplace("cim:GovGAST4.ta", &assign_GovGAST4_ta); - assign_map.emplace("cim:GovGAST4.tc", &assign_GovGAST4_tc); - assign_map.emplace("cim:GovGAST4.tcm", &assign_GovGAST4_tcm); - assign_map.emplace("cim:GovGAST4.tm", &assign_GovGAST4_tm); - assign_map.emplace("cim:GovGAST4.tv", &assign_GovGAST4_tv); + assign_map.emplace("GovGAST4.bp", &assign_GovGAST4_bp); + assign_map.emplace("GovGAST4.ktm", &assign_GovGAST4_ktm); + assign_map.emplace("GovGAST4.mnef", &assign_GovGAST4_mnef); + assign_map.emplace("GovGAST4.mxef", &assign_GovGAST4_mxef); + assign_map.emplace("GovGAST4.rymn", &assign_GovGAST4_rymn); + assign_map.emplace("GovGAST4.rymx", &assign_GovGAST4_rymx); + assign_map.emplace("GovGAST4.ta", &assign_GovGAST4_ta); + assign_map.emplace("GovGAST4.tc", &assign_GovGAST4_tc); + assign_map.emplace("GovGAST4.tcm", &assign_GovGAST4_tcm); + assign_map.emplace("GovGAST4.tm", &assign_GovGAST4_tm); + assign_map.emplace("GovGAST4.tv", &assign_GovGAST4_tv); } void GovGAST4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void GovGAST4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST4.bp", &get_GovGAST4_bp); - get_map.emplace("cim:GovGAST4.ktm", &get_GovGAST4_ktm); - get_map.emplace("cim:GovGAST4.mnef", &get_GovGAST4_mnef); - get_map.emplace("cim:GovGAST4.mxef", &get_GovGAST4_mxef); - get_map.emplace("cim:GovGAST4.rymn", &get_GovGAST4_rymn); - get_map.emplace("cim:GovGAST4.rymx", &get_GovGAST4_rymx); - get_map.emplace("cim:GovGAST4.ta", &get_GovGAST4_ta); - get_map.emplace("cim:GovGAST4.tc", &get_GovGAST4_tc); - get_map.emplace("cim:GovGAST4.tcm", &get_GovGAST4_tcm); - get_map.emplace("cim:GovGAST4.tm", &get_GovGAST4_tm); - get_map.emplace("cim:GovGAST4.tv", &get_GovGAST4_tv); + get_map.emplace("GovGAST4.bp", &get_GovGAST4_bp); + get_map.emplace("GovGAST4.ktm", &get_GovGAST4_ktm); + get_map.emplace("GovGAST4.mnef", &get_GovGAST4_mnef); + get_map.emplace("GovGAST4.mxef", &get_GovGAST4_mxef); + get_map.emplace("GovGAST4.rymn", &get_GovGAST4_rymn); + get_map.emplace("GovGAST4.rymx", &get_GovGAST4_rymx); + get_map.emplace("GovGAST4.ta", &get_GovGAST4_ta); + get_map.emplace("GovGAST4.tc", &get_GovGAST4_tc); + get_map.emplace("GovGAST4.tcm", &get_GovGAST4_tcm); + get_map.emplace("GovGAST4.tm", &get_GovGAST4_tm); + get_map.emplace("GovGAST4.tv", &get_GovGAST4_tv); } void GovGAST4::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void GovGAST4::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST4::declare() { return BaseClassDefiner(GovGAST4::addConstructToMap, GovGAST4::addPrimitiveAssignFnsToMap, GovGAST4::addClassAssignFnsToMap, GovGAST4::debugName); } +std::map GovGAST4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST4_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovGAST4.hpp b/CGMES_2.4.15_27JAN2020/GovGAST4.hpp index aa017e229..4be5d773e 100644 --- a/CGMES_2.4.15_27JAN2020/GovGAST4.hpp +++ b/CGMES_2.4.15_27JAN2020/GovGAST4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST4_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovGASTWD.cpp b/CGMES_2.4.15_27JAN2020/GovGASTWD.cpp index 06560d02d..808163e83 100644 --- a/CGMES_2.4.15_27JAN2020/GovGASTWD.cpp +++ b/CGMES_2.4.15_27JAN2020/GovGASTWD.cpp @@ -11,64 +11,96 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGASTWD(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGASTWD.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.af1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.af2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.bf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.bf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.c", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.cf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.ecr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.etd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.trate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGASTWD::GovGASTWD() {} GovGASTWD::~GovGASTWD() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGASTWD.a", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.af1", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.af2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.b", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.bf1", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.bf2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.c", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.cf2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.ecr", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.etd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k3", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k4", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k5", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k6", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kdroop", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kf", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.ki", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kp", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t3", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t4", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t5", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tc", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tcd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.td", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tf", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tmax", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tmin", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tr", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.trate", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tt", { CGMESProfile::DY, } }, -}; - -std::list -GovGASTWD::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGASTWD::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGASTWD::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGASTWD::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGASTWD::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGASTWD::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGASTWD::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGASTWD::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGASTWD::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGASTWD_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1036,44 +1068,44 @@ const char* GovGASTWD::debugString() const void GovGASTWD::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGASTWD", &GovGASTWD_factory); + factory_map.emplace("GovGASTWD", &GovGASTWD_factory); } void GovGASTWD::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGASTWD.a", &assign_GovGASTWD_a); - assign_map.emplace("cim:GovGASTWD.af1", &assign_GovGASTWD_af1); - assign_map.emplace("cim:GovGASTWD.af2", &assign_GovGASTWD_af2); - assign_map.emplace("cim:GovGASTWD.b", &assign_GovGASTWD_b); - assign_map.emplace("cim:GovGASTWD.bf1", &assign_GovGASTWD_bf1); - assign_map.emplace("cim:GovGASTWD.bf2", &assign_GovGASTWD_bf2); - assign_map.emplace("cim:GovGASTWD.c", &assign_GovGASTWD_c); - assign_map.emplace("cim:GovGASTWD.cf2", &assign_GovGASTWD_cf2); - assign_map.emplace("cim:GovGASTWD.ecr", &assign_GovGASTWD_ecr); - assign_map.emplace("cim:GovGASTWD.etd", &assign_GovGASTWD_etd); - assign_map.emplace("cim:GovGASTWD.k3", &assign_GovGASTWD_k3); - assign_map.emplace("cim:GovGASTWD.k4", &assign_GovGASTWD_k4); - assign_map.emplace("cim:GovGASTWD.k5", &assign_GovGASTWD_k5); - assign_map.emplace("cim:GovGASTWD.k6", &assign_GovGASTWD_k6); - assign_map.emplace("cim:GovGASTWD.kd", &assign_GovGASTWD_kd); - assign_map.emplace("cim:GovGASTWD.kdroop", &assign_GovGASTWD_kdroop); - assign_map.emplace("cim:GovGASTWD.kf", &assign_GovGASTWD_kf); - assign_map.emplace("cim:GovGASTWD.ki", &assign_GovGASTWD_ki); - assign_map.emplace("cim:GovGASTWD.kp", &assign_GovGASTWD_kp); - assign_map.emplace("cim:GovGASTWD.mwbase", &assign_GovGASTWD_mwbase); - assign_map.emplace("cim:GovGASTWD.t", &assign_GovGASTWD_t); - assign_map.emplace("cim:GovGASTWD.t3", &assign_GovGASTWD_t3); - assign_map.emplace("cim:GovGASTWD.t4", &assign_GovGASTWD_t4); - assign_map.emplace("cim:GovGASTWD.t5", &assign_GovGASTWD_t5); - assign_map.emplace("cim:GovGASTWD.tc", &assign_GovGASTWD_tc); - assign_map.emplace("cim:GovGASTWD.tcd", &assign_GovGASTWD_tcd); - assign_map.emplace("cim:GovGASTWD.td", &assign_GovGASTWD_td); - assign_map.emplace("cim:GovGASTWD.tf", &assign_GovGASTWD_tf); - assign_map.emplace("cim:GovGASTWD.tmax", &assign_GovGASTWD_tmax); - assign_map.emplace("cim:GovGASTWD.tmin", &assign_GovGASTWD_tmin); - assign_map.emplace("cim:GovGASTWD.tr", &assign_GovGASTWD_tr); - assign_map.emplace("cim:GovGASTWD.trate", &assign_GovGASTWD_trate); - assign_map.emplace("cim:GovGASTWD.tt", &assign_GovGASTWD_tt); + assign_map.emplace("GovGASTWD.a", &assign_GovGASTWD_a); + assign_map.emplace("GovGASTWD.af1", &assign_GovGASTWD_af1); + assign_map.emplace("GovGASTWD.af2", &assign_GovGASTWD_af2); + assign_map.emplace("GovGASTWD.b", &assign_GovGASTWD_b); + assign_map.emplace("GovGASTWD.bf1", &assign_GovGASTWD_bf1); + assign_map.emplace("GovGASTWD.bf2", &assign_GovGASTWD_bf2); + assign_map.emplace("GovGASTWD.c", &assign_GovGASTWD_c); + assign_map.emplace("GovGASTWD.cf2", &assign_GovGASTWD_cf2); + assign_map.emplace("GovGASTWD.ecr", &assign_GovGASTWD_ecr); + assign_map.emplace("GovGASTWD.etd", &assign_GovGASTWD_etd); + assign_map.emplace("GovGASTWD.k3", &assign_GovGASTWD_k3); + assign_map.emplace("GovGASTWD.k4", &assign_GovGASTWD_k4); + assign_map.emplace("GovGASTWD.k5", &assign_GovGASTWD_k5); + assign_map.emplace("GovGASTWD.k6", &assign_GovGASTWD_k6); + assign_map.emplace("GovGASTWD.kd", &assign_GovGASTWD_kd); + assign_map.emplace("GovGASTWD.kdroop", &assign_GovGASTWD_kdroop); + assign_map.emplace("GovGASTWD.kf", &assign_GovGASTWD_kf); + assign_map.emplace("GovGASTWD.ki", &assign_GovGASTWD_ki); + assign_map.emplace("GovGASTWD.kp", &assign_GovGASTWD_kp); + assign_map.emplace("GovGASTWD.mwbase", &assign_GovGASTWD_mwbase); + assign_map.emplace("GovGASTWD.t", &assign_GovGASTWD_t); + assign_map.emplace("GovGASTWD.t3", &assign_GovGASTWD_t3); + assign_map.emplace("GovGASTWD.t4", &assign_GovGASTWD_t4); + assign_map.emplace("GovGASTWD.t5", &assign_GovGASTWD_t5); + assign_map.emplace("GovGASTWD.tc", &assign_GovGASTWD_tc); + assign_map.emplace("GovGASTWD.tcd", &assign_GovGASTWD_tcd); + assign_map.emplace("GovGASTWD.td", &assign_GovGASTWD_td); + assign_map.emplace("GovGASTWD.tf", &assign_GovGASTWD_tf); + assign_map.emplace("GovGASTWD.tmax", &assign_GovGASTWD_tmax); + assign_map.emplace("GovGASTWD.tmin", &assign_GovGASTWD_tmin); + assign_map.emplace("GovGASTWD.tr", &assign_GovGASTWD_tr); + assign_map.emplace("GovGASTWD.trate", &assign_GovGASTWD_trate); + assign_map.emplace("GovGASTWD.tt", &assign_GovGASTWD_tt); } void GovGASTWD::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1083,39 +1115,39 @@ void GovGASTWD::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGASTWD.a", &get_GovGASTWD_a); - get_map.emplace("cim:GovGASTWD.af1", &get_GovGASTWD_af1); - get_map.emplace("cim:GovGASTWD.af2", &get_GovGASTWD_af2); - get_map.emplace("cim:GovGASTWD.b", &get_GovGASTWD_b); - get_map.emplace("cim:GovGASTWD.bf1", &get_GovGASTWD_bf1); - get_map.emplace("cim:GovGASTWD.bf2", &get_GovGASTWD_bf2); - get_map.emplace("cim:GovGASTWD.c", &get_GovGASTWD_c); - get_map.emplace("cim:GovGASTWD.cf2", &get_GovGASTWD_cf2); - get_map.emplace("cim:GovGASTWD.ecr", &get_GovGASTWD_ecr); - get_map.emplace("cim:GovGASTWD.etd", &get_GovGASTWD_etd); - get_map.emplace("cim:GovGASTWD.k3", &get_GovGASTWD_k3); - get_map.emplace("cim:GovGASTWD.k4", &get_GovGASTWD_k4); - get_map.emplace("cim:GovGASTWD.k5", &get_GovGASTWD_k5); - get_map.emplace("cim:GovGASTWD.k6", &get_GovGASTWD_k6); - get_map.emplace("cim:GovGASTWD.kd", &get_GovGASTWD_kd); - get_map.emplace("cim:GovGASTWD.kdroop", &get_GovGASTWD_kdroop); - get_map.emplace("cim:GovGASTWD.kf", &get_GovGASTWD_kf); - get_map.emplace("cim:GovGASTWD.ki", &get_GovGASTWD_ki); - get_map.emplace("cim:GovGASTWD.kp", &get_GovGASTWD_kp); - get_map.emplace("cim:GovGASTWD.mwbase", &get_GovGASTWD_mwbase); - get_map.emplace("cim:GovGASTWD.t", &get_GovGASTWD_t); - get_map.emplace("cim:GovGASTWD.t3", &get_GovGASTWD_t3); - get_map.emplace("cim:GovGASTWD.t4", &get_GovGASTWD_t4); - get_map.emplace("cim:GovGASTWD.t5", &get_GovGASTWD_t5); - get_map.emplace("cim:GovGASTWD.tc", &get_GovGASTWD_tc); - get_map.emplace("cim:GovGASTWD.tcd", &get_GovGASTWD_tcd); - get_map.emplace("cim:GovGASTWD.td", &get_GovGASTWD_td); - get_map.emplace("cim:GovGASTWD.tf", &get_GovGASTWD_tf); - get_map.emplace("cim:GovGASTWD.tmax", &get_GovGASTWD_tmax); - get_map.emplace("cim:GovGASTWD.tmin", &get_GovGASTWD_tmin); - get_map.emplace("cim:GovGASTWD.tr", &get_GovGASTWD_tr); - get_map.emplace("cim:GovGASTWD.trate", &get_GovGASTWD_trate); - get_map.emplace("cim:GovGASTWD.tt", &get_GovGASTWD_tt); + get_map.emplace("GovGASTWD.a", &get_GovGASTWD_a); + get_map.emplace("GovGASTWD.af1", &get_GovGASTWD_af1); + get_map.emplace("GovGASTWD.af2", &get_GovGASTWD_af2); + get_map.emplace("GovGASTWD.b", &get_GovGASTWD_b); + get_map.emplace("GovGASTWD.bf1", &get_GovGASTWD_bf1); + get_map.emplace("GovGASTWD.bf2", &get_GovGASTWD_bf2); + get_map.emplace("GovGASTWD.c", &get_GovGASTWD_c); + get_map.emplace("GovGASTWD.cf2", &get_GovGASTWD_cf2); + get_map.emplace("GovGASTWD.ecr", &get_GovGASTWD_ecr); + get_map.emplace("GovGASTWD.etd", &get_GovGASTWD_etd); + get_map.emplace("GovGASTWD.k3", &get_GovGASTWD_k3); + get_map.emplace("GovGASTWD.k4", &get_GovGASTWD_k4); + get_map.emplace("GovGASTWD.k5", &get_GovGASTWD_k5); + get_map.emplace("GovGASTWD.k6", &get_GovGASTWD_k6); + get_map.emplace("GovGASTWD.kd", &get_GovGASTWD_kd); + get_map.emplace("GovGASTWD.kdroop", &get_GovGASTWD_kdroop); + get_map.emplace("GovGASTWD.kf", &get_GovGASTWD_kf); + get_map.emplace("GovGASTWD.ki", &get_GovGASTWD_ki); + get_map.emplace("GovGASTWD.kp", &get_GovGASTWD_kp); + get_map.emplace("GovGASTWD.mwbase", &get_GovGASTWD_mwbase); + get_map.emplace("GovGASTWD.t", &get_GovGASTWD_t); + get_map.emplace("GovGASTWD.t3", &get_GovGASTWD_t3); + get_map.emplace("GovGASTWD.t4", &get_GovGASTWD_t4); + get_map.emplace("GovGASTWD.t5", &get_GovGASTWD_t5); + get_map.emplace("GovGASTWD.tc", &get_GovGASTWD_tc); + get_map.emplace("GovGASTWD.tcd", &get_GovGASTWD_tcd); + get_map.emplace("GovGASTWD.td", &get_GovGASTWD_td); + get_map.emplace("GovGASTWD.tf", &get_GovGASTWD_tf); + get_map.emplace("GovGASTWD.tmax", &get_GovGASTWD_tmax); + get_map.emplace("GovGASTWD.tmin", &get_GovGASTWD_tmin); + get_map.emplace("GovGASTWD.tr", &get_GovGASTWD_tr); + get_map.emplace("GovGASTWD.trate", &get_GovGASTWD_trate); + get_map.emplace("GovGASTWD.tt", &get_GovGASTWD_tt); } void GovGASTWD::addClassGetFnsToMap(std::map& get_map) const @@ -1128,11 +1160,25 @@ void GovGASTWD::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGASTWD::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGASTWD" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGASTWD::declare() { return BaseClassDefiner(GovGASTWD::addConstructToMap, GovGASTWD::addPrimitiveAssignFnsToMap, GovGASTWD::addClassAssignFnsToMap, GovGASTWD::debugName); } +std::map GovGASTWD::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGASTWD_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovGASTWD.hpp b/CGMES_2.4.15_27JAN2020/GovGASTWD.hpp index 8623cf082..746525532 100644 --- a/CGMES_2.4.15_27JAN2020/GovGASTWD.hpp +++ b/CGMES_2.4.15_27JAN2020/GovGASTWD.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -131,8 +132,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -140,7 +148,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGASTWD_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydro1.cpp b/CGMES_2.4.15_27JAN2020/GovHydro1.cpp index ba0d33f7d..97b741f32 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydro1.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydro1.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro1.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.hdam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro1.velm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro1::GovHydro1() {} GovHydro1::~GovHydro1() {} -static const std::list PossibleProfilesForClass = +const std::list& GovHydro1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovHydro1::getClassNamespaceUrl() const { - { "cim:GovHydro1.at", { CGMESProfile::DY, } }, - { "cim:GovHydro1.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro1.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydro1.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydro1.hdam", { CGMESProfile::DY, } }, - { "cim:GovHydro1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro1.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro1.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro1.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tf", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro1.velm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovHydro1::getPossibleProfilesForClass() const +const std::string& GovHydro1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovHydro1::getPossibleProfilesForAttributes() const +const std::list& GovHydro1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro1_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* GovHydro1::debugString() const void GovHydro1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro1", &GovHydro1_factory); + factory_map.emplace("GovHydro1", &GovHydro1_factory); } void GovHydro1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro1.at", &assign_GovHydro1_at); - assign_map.emplace("cim:GovHydro1.dturb", &assign_GovHydro1_dturb); - assign_map.emplace("cim:GovHydro1.gmax", &assign_GovHydro1_gmax); - assign_map.emplace("cim:GovHydro1.gmin", &assign_GovHydro1_gmin); - assign_map.emplace("cim:GovHydro1.hdam", &assign_GovHydro1_hdam); - assign_map.emplace("cim:GovHydro1.mwbase", &assign_GovHydro1_mwbase); - assign_map.emplace("cim:GovHydro1.qnl", &assign_GovHydro1_qnl); - assign_map.emplace("cim:GovHydro1.rperm", &assign_GovHydro1_rperm); - assign_map.emplace("cim:GovHydro1.rtemp", &assign_GovHydro1_rtemp); - assign_map.emplace("cim:GovHydro1.tf", &assign_GovHydro1_tf); - assign_map.emplace("cim:GovHydro1.tg", &assign_GovHydro1_tg); - assign_map.emplace("cim:GovHydro1.tr", &assign_GovHydro1_tr); - assign_map.emplace("cim:GovHydro1.tw", &assign_GovHydro1_tw); - assign_map.emplace("cim:GovHydro1.velm", &assign_GovHydro1_velm); + assign_map.emplace("GovHydro1.at", &assign_GovHydro1_at); + assign_map.emplace("GovHydro1.dturb", &assign_GovHydro1_dturb); + assign_map.emplace("GovHydro1.gmax", &assign_GovHydro1_gmax); + assign_map.emplace("GovHydro1.gmin", &assign_GovHydro1_gmin); + assign_map.emplace("GovHydro1.hdam", &assign_GovHydro1_hdam); + assign_map.emplace("GovHydro1.mwbase", &assign_GovHydro1_mwbase); + assign_map.emplace("GovHydro1.qnl", &assign_GovHydro1_qnl); + assign_map.emplace("GovHydro1.rperm", &assign_GovHydro1_rperm); + assign_map.emplace("GovHydro1.rtemp", &assign_GovHydro1_rtemp); + assign_map.emplace("GovHydro1.tf", &assign_GovHydro1_tf); + assign_map.emplace("GovHydro1.tg", &assign_GovHydro1_tg); + assign_map.emplace("GovHydro1.tr", &assign_GovHydro1_tr); + assign_map.emplace("GovHydro1.tw", &assign_GovHydro1_tw); + assign_map.emplace("GovHydro1.velm", &assign_GovHydro1_velm); } void GovHydro1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void GovHydro1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro1.at", &get_GovHydro1_at); - get_map.emplace("cim:GovHydro1.dturb", &get_GovHydro1_dturb); - get_map.emplace("cim:GovHydro1.gmax", &get_GovHydro1_gmax); - get_map.emplace("cim:GovHydro1.gmin", &get_GovHydro1_gmin); - get_map.emplace("cim:GovHydro1.hdam", &get_GovHydro1_hdam); - get_map.emplace("cim:GovHydro1.mwbase", &get_GovHydro1_mwbase); - get_map.emplace("cim:GovHydro1.qnl", &get_GovHydro1_qnl); - get_map.emplace("cim:GovHydro1.rperm", &get_GovHydro1_rperm); - get_map.emplace("cim:GovHydro1.rtemp", &get_GovHydro1_rtemp); - get_map.emplace("cim:GovHydro1.tf", &get_GovHydro1_tf); - get_map.emplace("cim:GovHydro1.tg", &get_GovHydro1_tg); - get_map.emplace("cim:GovHydro1.tr", &get_GovHydro1_tr); - get_map.emplace("cim:GovHydro1.tw", &get_GovHydro1_tw); - get_map.emplace("cim:GovHydro1.velm", &get_GovHydro1_velm); + get_map.emplace("GovHydro1.at", &get_GovHydro1_at); + get_map.emplace("GovHydro1.dturb", &get_GovHydro1_dturb); + get_map.emplace("GovHydro1.gmax", &get_GovHydro1_gmax); + get_map.emplace("GovHydro1.gmin", &get_GovHydro1_gmin); + get_map.emplace("GovHydro1.hdam", &get_GovHydro1_hdam); + get_map.emplace("GovHydro1.mwbase", &get_GovHydro1_mwbase); + get_map.emplace("GovHydro1.qnl", &get_GovHydro1_qnl); + get_map.emplace("GovHydro1.rperm", &get_GovHydro1_rperm); + get_map.emplace("GovHydro1.rtemp", &get_GovHydro1_rtemp); + get_map.emplace("GovHydro1.tf", &get_GovHydro1_tf); + get_map.emplace("GovHydro1.tg", &get_GovHydro1_tg); + get_map.emplace("GovHydro1.tr", &get_GovHydro1_tr); + get_map.emplace("GovHydro1.tw", &get_GovHydro1_tw); + get_map.emplace("GovHydro1.velm", &get_GovHydro1_velm); } void GovHydro1::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void GovHydro1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro1::declare() { return BaseClassDefiner(GovHydro1::addConstructToMap, GovHydro1::addPrimitiveAssignFnsToMap, GovHydro1::addClassAssignFnsToMap, GovHydro1::debugName); } +std::map GovHydro1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro1_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydro1.hpp b/CGMES_2.4.15_27JAN2020/GovHydro1.hpp index f0f99628b..e608726c8 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydro1.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydro1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydro2.cpp b/CGMES_2.4.15_27JAN2020/GovHydro2.cpp index 83cb2dbf7..f3d6a9b96 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydro2.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydro2.cpp @@ -11,60 +11,92 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro2.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro2.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro2::GovHydro2() {} GovHydro2::~GovHydro2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro2.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydro2.kturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydro2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro2.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro2.uc", { CGMESProfile::DY, } }, - { "cim:GovHydro2.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro2_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -916,40 +948,40 @@ const char* GovHydro2::debugString() const void GovHydro2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro2", &GovHydro2_factory); + factory_map.emplace("GovHydro2", &GovHydro2_factory); } void GovHydro2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro2.aturb", &assign_GovHydro2_aturb); - assign_map.emplace("cim:GovHydro2.bturb", &assign_GovHydro2_bturb); - assign_map.emplace("cim:GovHydro2.db1", &assign_GovHydro2_db1); - assign_map.emplace("cim:GovHydro2.db2", &assign_GovHydro2_db2); - assign_map.emplace("cim:GovHydro2.eps", &assign_GovHydro2_eps); - assign_map.emplace("cim:GovHydro2.gv1", &assign_GovHydro2_gv1); - assign_map.emplace("cim:GovHydro2.gv2", &assign_GovHydro2_gv2); - assign_map.emplace("cim:GovHydro2.gv3", &assign_GovHydro2_gv3); - assign_map.emplace("cim:GovHydro2.gv4", &assign_GovHydro2_gv4); - assign_map.emplace("cim:GovHydro2.gv5", &assign_GovHydro2_gv5); - assign_map.emplace("cim:GovHydro2.gv6", &assign_GovHydro2_gv6); - assign_map.emplace("cim:GovHydro2.kturb", &assign_GovHydro2_kturb); - assign_map.emplace("cim:GovHydro2.mwbase", &assign_GovHydro2_mwbase); - assign_map.emplace("cim:GovHydro2.pgv1", &assign_GovHydro2_pgv1); - assign_map.emplace("cim:GovHydro2.pgv2", &assign_GovHydro2_pgv2); - assign_map.emplace("cim:GovHydro2.pgv3", &assign_GovHydro2_pgv3); - assign_map.emplace("cim:GovHydro2.pgv4", &assign_GovHydro2_pgv4); - assign_map.emplace("cim:GovHydro2.pgv5", &assign_GovHydro2_pgv5); - assign_map.emplace("cim:GovHydro2.pgv6", &assign_GovHydro2_pgv6); - assign_map.emplace("cim:GovHydro2.pmax", &assign_GovHydro2_pmax); - assign_map.emplace("cim:GovHydro2.pmin", &assign_GovHydro2_pmin); - assign_map.emplace("cim:GovHydro2.rperm", &assign_GovHydro2_rperm); - assign_map.emplace("cim:GovHydro2.rtemp", &assign_GovHydro2_rtemp); - assign_map.emplace("cim:GovHydro2.tg", &assign_GovHydro2_tg); - assign_map.emplace("cim:GovHydro2.tp", &assign_GovHydro2_tp); - assign_map.emplace("cim:GovHydro2.tr", &assign_GovHydro2_tr); - assign_map.emplace("cim:GovHydro2.tw", &assign_GovHydro2_tw); - assign_map.emplace("cim:GovHydro2.uc", &assign_GovHydro2_uc); - assign_map.emplace("cim:GovHydro2.uo", &assign_GovHydro2_uo); + assign_map.emplace("GovHydro2.aturb", &assign_GovHydro2_aturb); + assign_map.emplace("GovHydro2.bturb", &assign_GovHydro2_bturb); + assign_map.emplace("GovHydro2.db1", &assign_GovHydro2_db1); + assign_map.emplace("GovHydro2.db2", &assign_GovHydro2_db2); + assign_map.emplace("GovHydro2.eps", &assign_GovHydro2_eps); + assign_map.emplace("GovHydro2.gv1", &assign_GovHydro2_gv1); + assign_map.emplace("GovHydro2.gv2", &assign_GovHydro2_gv2); + assign_map.emplace("GovHydro2.gv3", &assign_GovHydro2_gv3); + assign_map.emplace("GovHydro2.gv4", &assign_GovHydro2_gv4); + assign_map.emplace("GovHydro2.gv5", &assign_GovHydro2_gv5); + assign_map.emplace("GovHydro2.gv6", &assign_GovHydro2_gv6); + assign_map.emplace("GovHydro2.kturb", &assign_GovHydro2_kturb); + assign_map.emplace("GovHydro2.mwbase", &assign_GovHydro2_mwbase); + assign_map.emplace("GovHydro2.pgv1", &assign_GovHydro2_pgv1); + assign_map.emplace("GovHydro2.pgv2", &assign_GovHydro2_pgv2); + assign_map.emplace("GovHydro2.pgv3", &assign_GovHydro2_pgv3); + assign_map.emplace("GovHydro2.pgv4", &assign_GovHydro2_pgv4); + assign_map.emplace("GovHydro2.pgv5", &assign_GovHydro2_pgv5); + assign_map.emplace("GovHydro2.pgv6", &assign_GovHydro2_pgv6); + assign_map.emplace("GovHydro2.pmax", &assign_GovHydro2_pmax); + assign_map.emplace("GovHydro2.pmin", &assign_GovHydro2_pmin); + assign_map.emplace("GovHydro2.rperm", &assign_GovHydro2_rperm); + assign_map.emplace("GovHydro2.rtemp", &assign_GovHydro2_rtemp); + assign_map.emplace("GovHydro2.tg", &assign_GovHydro2_tg); + assign_map.emplace("GovHydro2.tp", &assign_GovHydro2_tp); + assign_map.emplace("GovHydro2.tr", &assign_GovHydro2_tr); + assign_map.emplace("GovHydro2.tw", &assign_GovHydro2_tw); + assign_map.emplace("GovHydro2.uc", &assign_GovHydro2_uc); + assign_map.emplace("GovHydro2.uo", &assign_GovHydro2_uo); } void GovHydro2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -959,35 +991,35 @@ void GovHydro2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro2.aturb", &get_GovHydro2_aturb); - get_map.emplace("cim:GovHydro2.bturb", &get_GovHydro2_bturb); - get_map.emplace("cim:GovHydro2.db1", &get_GovHydro2_db1); - get_map.emplace("cim:GovHydro2.db2", &get_GovHydro2_db2); - get_map.emplace("cim:GovHydro2.eps", &get_GovHydro2_eps); - get_map.emplace("cim:GovHydro2.gv1", &get_GovHydro2_gv1); - get_map.emplace("cim:GovHydro2.gv2", &get_GovHydro2_gv2); - get_map.emplace("cim:GovHydro2.gv3", &get_GovHydro2_gv3); - get_map.emplace("cim:GovHydro2.gv4", &get_GovHydro2_gv4); - get_map.emplace("cim:GovHydro2.gv5", &get_GovHydro2_gv5); - get_map.emplace("cim:GovHydro2.gv6", &get_GovHydro2_gv6); - get_map.emplace("cim:GovHydro2.kturb", &get_GovHydro2_kturb); - get_map.emplace("cim:GovHydro2.mwbase", &get_GovHydro2_mwbase); - get_map.emplace("cim:GovHydro2.pgv1", &get_GovHydro2_pgv1); - get_map.emplace("cim:GovHydro2.pgv2", &get_GovHydro2_pgv2); - get_map.emplace("cim:GovHydro2.pgv3", &get_GovHydro2_pgv3); - get_map.emplace("cim:GovHydro2.pgv4", &get_GovHydro2_pgv4); - get_map.emplace("cim:GovHydro2.pgv5", &get_GovHydro2_pgv5); - get_map.emplace("cim:GovHydro2.pgv6", &get_GovHydro2_pgv6); - get_map.emplace("cim:GovHydro2.pmax", &get_GovHydro2_pmax); - get_map.emplace("cim:GovHydro2.pmin", &get_GovHydro2_pmin); - get_map.emplace("cim:GovHydro2.rperm", &get_GovHydro2_rperm); - get_map.emplace("cim:GovHydro2.rtemp", &get_GovHydro2_rtemp); - get_map.emplace("cim:GovHydro2.tg", &get_GovHydro2_tg); - get_map.emplace("cim:GovHydro2.tp", &get_GovHydro2_tp); - get_map.emplace("cim:GovHydro2.tr", &get_GovHydro2_tr); - get_map.emplace("cim:GovHydro2.tw", &get_GovHydro2_tw); - get_map.emplace("cim:GovHydro2.uc", &get_GovHydro2_uc); - get_map.emplace("cim:GovHydro2.uo", &get_GovHydro2_uo); + get_map.emplace("GovHydro2.aturb", &get_GovHydro2_aturb); + get_map.emplace("GovHydro2.bturb", &get_GovHydro2_bturb); + get_map.emplace("GovHydro2.db1", &get_GovHydro2_db1); + get_map.emplace("GovHydro2.db2", &get_GovHydro2_db2); + get_map.emplace("GovHydro2.eps", &get_GovHydro2_eps); + get_map.emplace("GovHydro2.gv1", &get_GovHydro2_gv1); + get_map.emplace("GovHydro2.gv2", &get_GovHydro2_gv2); + get_map.emplace("GovHydro2.gv3", &get_GovHydro2_gv3); + get_map.emplace("GovHydro2.gv4", &get_GovHydro2_gv4); + get_map.emplace("GovHydro2.gv5", &get_GovHydro2_gv5); + get_map.emplace("GovHydro2.gv6", &get_GovHydro2_gv6); + get_map.emplace("GovHydro2.kturb", &get_GovHydro2_kturb); + get_map.emplace("GovHydro2.mwbase", &get_GovHydro2_mwbase); + get_map.emplace("GovHydro2.pgv1", &get_GovHydro2_pgv1); + get_map.emplace("GovHydro2.pgv2", &get_GovHydro2_pgv2); + get_map.emplace("GovHydro2.pgv3", &get_GovHydro2_pgv3); + get_map.emplace("GovHydro2.pgv4", &get_GovHydro2_pgv4); + get_map.emplace("GovHydro2.pgv5", &get_GovHydro2_pgv5); + get_map.emplace("GovHydro2.pgv6", &get_GovHydro2_pgv6); + get_map.emplace("GovHydro2.pmax", &get_GovHydro2_pmax); + get_map.emplace("GovHydro2.pmin", &get_GovHydro2_pmin); + get_map.emplace("GovHydro2.rperm", &get_GovHydro2_rperm); + get_map.emplace("GovHydro2.rtemp", &get_GovHydro2_rtemp); + get_map.emplace("GovHydro2.tg", &get_GovHydro2_tg); + get_map.emplace("GovHydro2.tp", &get_GovHydro2_tp); + get_map.emplace("GovHydro2.tr", &get_GovHydro2_tr); + get_map.emplace("GovHydro2.tw", &get_GovHydro2_tw); + get_map.emplace("GovHydro2.uc", &get_GovHydro2_uc); + get_map.emplace("GovHydro2.uo", &get_GovHydro2_uo); } void GovHydro2::addClassGetFnsToMap(std::map& get_map) const @@ -1000,11 +1032,25 @@ void GovHydro2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro2::declare() { return BaseClassDefiner(GovHydro2::addConstructToMap, GovHydro2::addPrimitiveAssignFnsToMap, GovHydro2::addClassAssignFnsToMap, GovHydro2::debugName); } +std::map GovHydro2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro2_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydro2.hpp b/CGMES_2.4.15_27JAN2020/GovHydro2.hpp index 3919c3e7b..7ec8c11d5 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydro2.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydro2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -119,8 +120,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -128,7 +136,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydro3.cpp b/CGMES_2.4.15_27JAN2020/GovHydro3.cpp index e942b6ea1..1a78b8e6f 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydro3.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydro3.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro3.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.governorControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.h0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.relec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.rgate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro3.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro3::GovHydro3() {} GovHydro3::~GovHydro3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro3.at", { CGMESProfile::DY, } }, - { "cim:GovHydro3.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro3.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro3.governorControl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydro3.h0", { CGMESProfile::DY, } }, - { "cim:GovHydro3.k1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.k2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.kg", { CGMESProfile::DY, } }, - { "cim:GovHydro3.ki", { CGMESProfile::DY, } }, - { "cim:GovHydro3.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydro3.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.relec", { CGMESProfile::DY, } }, - { "cim:GovHydro3.rgate", { CGMESProfile::DY, } }, - { "cim:GovHydro3.td", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tf", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tt", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro3.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro3_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* GovHydro3::debugString() const void GovHydro3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro3", &GovHydro3_factory); + factory_map.emplace("GovHydro3", &GovHydro3_factory); } void GovHydro3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro3.at", &assign_GovHydro3_at); - assign_map.emplace("cim:GovHydro3.db1", &assign_GovHydro3_db1); - assign_map.emplace("cim:GovHydro3.db2", &assign_GovHydro3_db2); - assign_map.emplace("cim:GovHydro3.dturb", &assign_GovHydro3_dturb); - assign_map.emplace("cim:GovHydro3.eps", &assign_GovHydro3_eps); - assign_map.emplace("cim:GovHydro3.governorControl", &assign_GovHydro3_governorControl); - assign_map.emplace("cim:GovHydro3.gv1", &assign_GovHydro3_gv1); - assign_map.emplace("cim:GovHydro3.gv2", &assign_GovHydro3_gv2); - assign_map.emplace("cim:GovHydro3.gv3", &assign_GovHydro3_gv3); - assign_map.emplace("cim:GovHydro3.gv4", &assign_GovHydro3_gv4); - assign_map.emplace("cim:GovHydro3.gv5", &assign_GovHydro3_gv5); - assign_map.emplace("cim:GovHydro3.gv6", &assign_GovHydro3_gv6); - assign_map.emplace("cim:GovHydro3.h0", &assign_GovHydro3_h0); - assign_map.emplace("cim:GovHydro3.k1", &assign_GovHydro3_k1); - assign_map.emplace("cim:GovHydro3.k2", &assign_GovHydro3_k2); - assign_map.emplace("cim:GovHydro3.kg", &assign_GovHydro3_kg); - assign_map.emplace("cim:GovHydro3.ki", &assign_GovHydro3_ki); - assign_map.emplace("cim:GovHydro3.mwbase", &assign_GovHydro3_mwbase); - assign_map.emplace("cim:GovHydro3.pgv1", &assign_GovHydro3_pgv1); - assign_map.emplace("cim:GovHydro3.pgv2", &assign_GovHydro3_pgv2); - assign_map.emplace("cim:GovHydro3.pgv3", &assign_GovHydro3_pgv3); - assign_map.emplace("cim:GovHydro3.pgv4", &assign_GovHydro3_pgv4); - assign_map.emplace("cim:GovHydro3.pgv5", &assign_GovHydro3_pgv5); - assign_map.emplace("cim:GovHydro3.pgv6", &assign_GovHydro3_pgv6); - assign_map.emplace("cim:GovHydro3.pmax", &assign_GovHydro3_pmax); - assign_map.emplace("cim:GovHydro3.pmin", &assign_GovHydro3_pmin); - assign_map.emplace("cim:GovHydro3.qnl", &assign_GovHydro3_qnl); - assign_map.emplace("cim:GovHydro3.relec", &assign_GovHydro3_relec); - assign_map.emplace("cim:GovHydro3.rgate", &assign_GovHydro3_rgate); - assign_map.emplace("cim:GovHydro3.td", &assign_GovHydro3_td); - assign_map.emplace("cim:GovHydro3.tf", &assign_GovHydro3_tf); - assign_map.emplace("cim:GovHydro3.tp", &assign_GovHydro3_tp); - assign_map.emplace("cim:GovHydro3.tt", &assign_GovHydro3_tt); - assign_map.emplace("cim:GovHydro3.tw", &assign_GovHydro3_tw); - assign_map.emplace("cim:GovHydro3.velcl", &assign_GovHydro3_velcl); - assign_map.emplace("cim:GovHydro3.velop", &assign_GovHydro3_velop); + assign_map.emplace("GovHydro3.at", &assign_GovHydro3_at); + assign_map.emplace("GovHydro3.db1", &assign_GovHydro3_db1); + assign_map.emplace("GovHydro3.db2", &assign_GovHydro3_db2); + assign_map.emplace("GovHydro3.dturb", &assign_GovHydro3_dturb); + assign_map.emplace("GovHydro3.eps", &assign_GovHydro3_eps); + assign_map.emplace("GovHydro3.governorControl", &assign_GovHydro3_governorControl); + assign_map.emplace("GovHydro3.gv1", &assign_GovHydro3_gv1); + assign_map.emplace("GovHydro3.gv2", &assign_GovHydro3_gv2); + assign_map.emplace("GovHydro3.gv3", &assign_GovHydro3_gv3); + assign_map.emplace("GovHydro3.gv4", &assign_GovHydro3_gv4); + assign_map.emplace("GovHydro3.gv5", &assign_GovHydro3_gv5); + assign_map.emplace("GovHydro3.gv6", &assign_GovHydro3_gv6); + assign_map.emplace("GovHydro3.h0", &assign_GovHydro3_h0); + assign_map.emplace("GovHydro3.k1", &assign_GovHydro3_k1); + assign_map.emplace("GovHydro3.k2", &assign_GovHydro3_k2); + assign_map.emplace("GovHydro3.kg", &assign_GovHydro3_kg); + assign_map.emplace("GovHydro3.ki", &assign_GovHydro3_ki); + assign_map.emplace("GovHydro3.mwbase", &assign_GovHydro3_mwbase); + assign_map.emplace("GovHydro3.pgv1", &assign_GovHydro3_pgv1); + assign_map.emplace("GovHydro3.pgv2", &assign_GovHydro3_pgv2); + assign_map.emplace("GovHydro3.pgv3", &assign_GovHydro3_pgv3); + assign_map.emplace("GovHydro3.pgv4", &assign_GovHydro3_pgv4); + assign_map.emplace("GovHydro3.pgv5", &assign_GovHydro3_pgv5); + assign_map.emplace("GovHydro3.pgv6", &assign_GovHydro3_pgv6); + assign_map.emplace("GovHydro3.pmax", &assign_GovHydro3_pmax); + assign_map.emplace("GovHydro3.pmin", &assign_GovHydro3_pmin); + assign_map.emplace("GovHydro3.qnl", &assign_GovHydro3_qnl); + assign_map.emplace("GovHydro3.relec", &assign_GovHydro3_relec); + assign_map.emplace("GovHydro3.rgate", &assign_GovHydro3_rgate); + assign_map.emplace("GovHydro3.td", &assign_GovHydro3_td); + assign_map.emplace("GovHydro3.tf", &assign_GovHydro3_tf); + assign_map.emplace("GovHydro3.tp", &assign_GovHydro3_tp); + assign_map.emplace("GovHydro3.tt", &assign_GovHydro3_tt); + assign_map.emplace("GovHydro3.tw", &assign_GovHydro3_tw); + assign_map.emplace("GovHydro3.velcl", &assign_GovHydro3_velcl); + assign_map.emplace("GovHydro3.velop", &assign_GovHydro3_velop); } void GovHydro3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,42 +1208,42 @@ void GovHydro3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro3.at", &get_GovHydro3_at); - get_map.emplace("cim:GovHydro3.db1", &get_GovHydro3_db1); - get_map.emplace("cim:GovHydro3.db2", &get_GovHydro3_db2); - get_map.emplace("cim:GovHydro3.dturb", &get_GovHydro3_dturb); - get_map.emplace("cim:GovHydro3.eps", &get_GovHydro3_eps); - get_map.emplace("cim:GovHydro3.governorControl", &get_GovHydro3_governorControl); - get_map.emplace("cim:GovHydro3.gv1", &get_GovHydro3_gv1); - get_map.emplace("cim:GovHydro3.gv2", &get_GovHydro3_gv2); - get_map.emplace("cim:GovHydro3.gv3", &get_GovHydro3_gv3); - get_map.emplace("cim:GovHydro3.gv4", &get_GovHydro3_gv4); - get_map.emplace("cim:GovHydro3.gv5", &get_GovHydro3_gv5); - get_map.emplace("cim:GovHydro3.gv6", &get_GovHydro3_gv6); - get_map.emplace("cim:GovHydro3.h0", &get_GovHydro3_h0); - get_map.emplace("cim:GovHydro3.k1", &get_GovHydro3_k1); - get_map.emplace("cim:GovHydro3.k2", &get_GovHydro3_k2); - get_map.emplace("cim:GovHydro3.kg", &get_GovHydro3_kg); - get_map.emplace("cim:GovHydro3.ki", &get_GovHydro3_ki); - get_map.emplace("cim:GovHydro3.mwbase", &get_GovHydro3_mwbase); - get_map.emplace("cim:GovHydro3.pgv1", &get_GovHydro3_pgv1); - get_map.emplace("cim:GovHydro3.pgv2", &get_GovHydro3_pgv2); - get_map.emplace("cim:GovHydro3.pgv3", &get_GovHydro3_pgv3); - get_map.emplace("cim:GovHydro3.pgv4", &get_GovHydro3_pgv4); - get_map.emplace("cim:GovHydro3.pgv5", &get_GovHydro3_pgv5); - get_map.emplace("cim:GovHydro3.pgv6", &get_GovHydro3_pgv6); - get_map.emplace("cim:GovHydro3.pmax", &get_GovHydro3_pmax); - get_map.emplace("cim:GovHydro3.pmin", &get_GovHydro3_pmin); - get_map.emplace("cim:GovHydro3.qnl", &get_GovHydro3_qnl); - get_map.emplace("cim:GovHydro3.relec", &get_GovHydro3_relec); - get_map.emplace("cim:GovHydro3.rgate", &get_GovHydro3_rgate); - get_map.emplace("cim:GovHydro3.td", &get_GovHydro3_td); - get_map.emplace("cim:GovHydro3.tf", &get_GovHydro3_tf); - get_map.emplace("cim:GovHydro3.tp", &get_GovHydro3_tp); - get_map.emplace("cim:GovHydro3.tt", &get_GovHydro3_tt); - get_map.emplace("cim:GovHydro3.tw", &get_GovHydro3_tw); - get_map.emplace("cim:GovHydro3.velcl", &get_GovHydro3_velcl); - get_map.emplace("cim:GovHydro3.velop", &get_GovHydro3_velop); + get_map.emplace("GovHydro3.at", &get_GovHydro3_at); + get_map.emplace("GovHydro3.db1", &get_GovHydro3_db1); + get_map.emplace("GovHydro3.db2", &get_GovHydro3_db2); + get_map.emplace("GovHydro3.dturb", &get_GovHydro3_dturb); + get_map.emplace("GovHydro3.eps", &get_GovHydro3_eps); + get_map.emplace("GovHydro3.governorControl", &get_GovHydro3_governorControl); + get_map.emplace("GovHydro3.gv1", &get_GovHydro3_gv1); + get_map.emplace("GovHydro3.gv2", &get_GovHydro3_gv2); + get_map.emplace("GovHydro3.gv3", &get_GovHydro3_gv3); + get_map.emplace("GovHydro3.gv4", &get_GovHydro3_gv4); + get_map.emplace("GovHydro3.gv5", &get_GovHydro3_gv5); + get_map.emplace("GovHydro3.gv6", &get_GovHydro3_gv6); + get_map.emplace("GovHydro3.h0", &get_GovHydro3_h0); + get_map.emplace("GovHydro3.k1", &get_GovHydro3_k1); + get_map.emplace("GovHydro3.k2", &get_GovHydro3_k2); + get_map.emplace("GovHydro3.kg", &get_GovHydro3_kg); + get_map.emplace("GovHydro3.ki", &get_GovHydro3_ki); + get_map.emplace("GovHydro3.mwbase", &get_GovHydro3_mwbase); + get_map.emplace("GovHydro3.pgv1", &get_GovHydro3_pgv1); + get_map.emplace("GovHydro3.pgv2", &get_GovHydro3_pgv2); + get_map.emplace("GovHydro3.pgv3", &get_GovHydro3_pgv3); + get_map.emplace("GovHydro3.pgv4", &get_GovHydro3_pgv4); + get_map.emplace("GovHydro3.pgv5", &get_GovHydro3_pgv5); + get_map.emplace("GovHydro3.pgv6", &get_GovHydro3_pgv6); + get_map.emplace("GovHydro3.pmax", &get_GovHydro3_pmax); + get_map.emplace("GovHydro3.pmin", &get_GovHydro3_pmin); + get_map.emplace("GovHydro3.qnl", &get_GovHydro3_qnl); + get_map.emplace("GovHydro3.relec", &get_GovHydro3_relec); + get_map.emplace("GovHydro3.rgate", &get_GovHydro3_rgate); + get_map.emplace("GovHydro3.td", &get_GovHydro3_td); + get_map.emplace("GovHydro3.tf", &get_GovHydro3_tf); + get_map.emplace("GovHydro3.tp", &get_GovHydro3_tp); + get_map.emplace("GovHydro3.tt", &get_GovHydro3_tt); + get_map.emplace("GovHydro3.tw", &get_GovHydro3_tw); + get_map.emplace("GovHydro3.velcl", &get_GovHydro3_velcl); + get_map.emplace("GovHydro3.velop", &get_GovHydro3_velop); } void GovHydro3::addClassGetFnsToMap(std::map& get_map) const @@ -1224,11 +1256,25 @@ void GovHydro3::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro3::declare() { return BaseClassDefiner(GovHydro3::addConstructToMap, GovHydro3::addPrimitiveAssignFnsToMap, GovHydro3::addClassAssignFnsToMap, GovHydro3::debugName); } +std::map GovHydro3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro3_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydro3.hpp b/CGMES_2.4.15_27JAN2020/GovHydro3.hpp index d3e458631..ce2158f11 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydro3.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydro3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -141,8 +142,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -150,7 +158,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro3_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydro4.cpp b/CGMES_2.4.15_27JAN2020/GovHydro4.cpp index 4a841df9c..d2689abe8 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydro4.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydro4.cpp @@ -11,69 +11,101 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro4.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.bmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.hdam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.qn1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tblade", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydro4.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro4::GovHydro4() {} GovHydro4::~GovHydro4() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro4.at", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bmax", { CGMESProfile::DY, } }, - { "cim:GovHydro4.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro4.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.hdam", { CGMESProfile::DY, } }, - { "cim:GovHydro4.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.qn1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro4.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tblade", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro4.uc", { CGMESProfile::DY, } }, - { "cim:GovHydro4.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro4::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro4::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro4::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro4::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro4::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro4::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro4_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1186,49 +1218,49 @@ const char* GovHydro4::debugString() const void GovHydro4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro4", &GovHydro4_factory); + factory_map.emplace("GovHydro4", &GovHydro4_factory); } void GovHydro4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro4.at", &assign_GovHydro4_at); - assign_map.emplace("cim:GovHydro4.bgv0", &assign_GovHydro4_bgv0); - assign_map.emplace("cim:GovHydro4.bgv1", &assign_GovHydro4_bgv1); - assign_map.emplace("cim:GovHydro4.bgv2", &assign_GovHydro4_bgv2); - assign_map.emplace("cim:GovHydro4.bgv3", &assign_GovHydro4_bgv3); - assign_map.emplace("cim:GovHydro4.bgv4", &assign_GovHydro4_bgv4); - assign_map.emplace("cim:GovHydro4.bgv5", &assign_GovHydro4_bgv5); - assign_map.emplace("cim:GovHydro4.bmax", &assign_GovHydro4_bmax); - assign_map.emplace("cim:GovHydro4.db1", &assign_GovHydro4_db1); - assign_map.emplace("cim:GovHydro4.db2", &assign_GovHydro4_db2); - assign_map.emplace("cim:GovHydro4.dturb", &assign_GovHydro4_dturb); - assign_map.emplace("cim:GovHydro4.eps", &assign_GovHydro4_eps); - assign_map.emplace("cim:GovHydro4.gmax", &assign_GovHydro4_gmax); - assign_map.emplace("cim:GovHydro4.gmin", &assign_GovHydro4_gmin); - assign_map.emplace("cim:GovHydro4.gv0", &assign_GovHydro4_gv0); - assign_map.emplace("cim:GovHydro4.gv1", &assign_GovHydro4_gv1); - assign_map.emplace("cim:GovHydro4.gv2", &assign_GovHydro4_gv2); - assign_map.emplace("cim:GovHydro4.gv3", &assign_GovHydro4_gv3); - assign_map.emplace("cim:GovHydro4.gv4", &assign_GovHydro4_gv4); - assign_map.emplace("cim:GovHydro4.gv5", &assign_GovHydro4_gv5); - assign_map.emplace("cim:GovHydro4.hdam", &assign_GovHydro4_hdam); - assign_map.emplace("cim:GovHydro4.mwbase", &assign_GovHydro4_mwbase); - assign_map.emplace("cim:GovHydro4.pgv0", &assign_GovHydro4_pgv0); - assign_map.emplace("cim:GovHydro4.pgv1", &assign_GovHydro4_pgv1); - assign_map.emplace("cim:GovHydro4.pgv2", &assign_GovHydro4_pgv2); - assign_map.emplace("cim:GovHydro4.pgv3", &assign_GovHydro4_pgv3); - assign_map.emplace("cim:GovHydro4.pgv4", &assign_GovHydro4_pgv4); - assign_map.emplace("cim:GovHydro4.pgv5", &assign_GovHydro4_pgv5); - assign_map.emplace("cim:GovHydro4.qn1", &assign_GovHydro4_qn1); - assign_map.emplace("cim:GovHydro4.rperm", &assign_GovHydro4_rperm); - assign_map.emplace("cim:GovHydro4.rtemp", &assign_GovHydro4_rtemp); - assign_map.emplace("cim:GovHydro4.tblade", &assign_GovHydro4_tblade); - assign_map.emplace("cim:GovHydro4.tg", &assign_GovHydro4_tg); - assign_map.emplace("cim:GovHydro4.tp", &assign_GovHydro4_tp); - assign_map.emplace("cim:GovHydro4.tr", &assign_GovHydro4_tr); - assign_map.emplace("cim:GovHydro4.tw", &assign_GovHydro4_tw); - assign_map.emplace("cim:GovHydro4.uc", &assign_GovHydro4_uc); - assign_map.emplace("cim:GovHydro4.uo", &assign_GovHydro4_uo); + assign_map.emplace("GovHydro4.at", &assign_GovHydro4_at); + assign_map.emplace("GovHydro4.bgv0", &assign_GovHydro4_bgv0); + assign_map.emplace("GovHydro4.bgv1", &assign_GovHydro4_bgv1); + assign_map.emplace("GovHydro4.bgv2", &assign_GovHydro4_bgv2); + assign_map.emplace("GovHydro4.bgv3", &assign_GovHydro4_bgv3); + assign_map.emplace("GovHydro4.bgv4", &assign_GovHydro4_bgv4); + assign_map.emplace("GovHydro4.bgv5", &assign_GovHydro4_bgv5); + assign_map.emplace("GovHydro4.bmax", &assign_GovHydro4_bmax); + assign_map.emplace("GovHydro4.db1", &assign_GovHydro4_db1); + assign_map.emplace("GovHydro4.db2", &assign_GovHydro4_db2); + assign_map.emplace("GovHydro4.dturb", &assign_GovHydro4_dturb); + assign_map.emplace("GovHydro4.eps", &assign_GovHydro4_eps); + assign_map.emplace("GovHydro4.gmax", &assign_GovHydro4_gmax); + assign_map.emplace("GovHydro4.gmin", &assign_GovHydro4_gmin); + assign_map.emplace("GovHydro4.gv0", &assign_GovHydro4_gv0); + assign_map.emplace("GovHydro4.gv1", &assign_GovHydro4_gv1); + assign_map.emplace("GovHydro4.gv2", &assign_GovHydro4_gv2); + assign_map.emplace("GovHydro4.gv3", &assign_GovHydro4_gv3); + assign_map.emplace("GovHydro4.gv4", &assign_GovHydro4_gv4); + assign_map.emplace("GovHydro4.gv5", &assign_GovHydro4_gv5); + assign_map.emplace("GovHydro4.hdam", &assign_GovHydro4_hdam); + assign_map.emplace("GovHydro4.mwbase", &assign_GovHydro4_mwbase); + assign_map.emplace("GovHydro4.pgv0", &assign_GovHydro4_pgv0); + assign_map.emplace("GovHydro4.pgv1", &assign_GovHydro4_pgv1); + assign_map.emplace("GovHydro4.pgv2", &assign_GovHydro4_pgv2); + assign_map.emplace("GovHydro4.pgv3", &assign_GovHydro4_pgv3); + assign_map.emplace("GovHydro4.pgv4", &assign_GovHydro4_pgv4); + assign_map.emplace("GovHydro4.pgv5", &assign_GovHydro4_pgv5); + assign_map.emplace("GovHydro4.qn1", &assign_GovHydro4_qn1); + assign_map.emplace("GovHydro4.rperm", &assign_GovHydro4_rperm); + assign_map.emplace("GovHydro4.rtemp", &assign_GovHydro4_rtemp); + assign_map.emplace("GovHydro4.tblade", &assign_GovHydro4_tblade); + assign_map.emplace("GovHydro4.tg", &assign_GovHydro4_tg); + assign_map.emplace("GovHydro4.tp", &assign_GovHydro4_tp); + assign_map.emplace("GovHydro4.tr", &assign_GovHydro4_tr); + assign_map.emplace("GovHydro4.tw", &assign_GovHydro4_tw); + assign_map.emplace("GovHydro4.uc", &assign_GovHydro4_uc); + assign_map.emplace("GovHydro4.uo", &assign_GovHydro4_uo); } void GovHydro4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1238,44 +1270,44 @@ void GovHydro4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro4.at", &get_GovHydro4_at); - get_map.emplace("cim:GovHydro4.bgv0", &get_GovHydro4_bgv0); - get_map.emplace("cim:GovHydro4.bgv1", &get_GovHydro4_bgv1); - get_map.emplace("cim:GovHydro4.bgv2", &get_GovHydro4_bgv2); - get_map.emplace("cim:GovHydro4.bgv3", &get_GovHydro4_bgv3); - get_map.emplace("cim:GovHydro4.bgv4", &get_GovHydro4_bgv4); - get_map.emplace("cim:GovHydro4.bgv5", &get_GovHydro4_bgv5); - get_map.emplace("cim:GovHydro4.bmax", &get_GovHydro4_bmax); - get_map.emplace("cim:GovHydro4.db1", &get_GovHydro4_db1); - get_map.emplace("cim:GovHydro4.db2", &get_GovHydro4_db2); - get_map.emplace("cim:GovHydro4.dturb", &get_GovHydro4_dturb); - get_map.emplace("cim:GovHydro4.eps", &get_GovHydro4_eps); - get_map.emplace("cim:GovHydro4.gmax", &get_GovHydro4_gmax); - get_map.emplace("cim:GovHydro4.gmin", &get_GovHydro4_gmin); - get_map.emplace("cim:GovHydro4.gv0", &get_GovHydro4_gv0); - get_map.emplace("cim:GovHydro4.gv1", &get_GovHydro4_gv1); - get_map.emplace("cim:GovHydro4.gv2", &get_GovHydro4_gv2); - get_map.emplace("cim:GovHydro4.gv3", &get_GovHydro4_gv3); - get_map.emplace("cim:GovHydro4.gv4", &get_GovHydro4_gv4); - get_map.emplace("cim:GovHydro4.gv5", &get_GovHydro4_gv5); - get_map.emplace("cim:GovHydro4.hdam", &get_GovHydro4_hdam); - get_map.emplace("cim:GovHydro4.mwbase", &get_GovHydro4_mwbase); - get_map.emplace("cim:GovHydro4.pgv0", &get_GovHydro4_pgv0); - get_map.emplace("cim:GovHydro4.pgv1", &get_GovHydro4_pgv1); - get_map.emplace("cim:GovHydro4.pgv2", &get_GovHydro4_pgv2); - get_map.emplace("cim:GovHydro4.pgv3", &get_GovHydro4_pgv3); - get_map.emplace("cim:GovHydro4.pgv4", &get_GovHydro4_pgv4); - get_map.emplace("cim:GovHydro4.pgv5", &get_GovHydro4_pgv5); - get_map.emplace("cim:GovHydro4.qn1", &get_GovHydro4_qn1); - get_map.emplace("cim:GovHydro4.rperm", &get_GovHydro4_rperm); - get_map.emplace("cim:GovHydro4.rtemp", &get_GovHydro4_rtemp); - get_map.emplace("cim:GovHydro4.tblade", &get_GovHydro4_tblade); - get_map.emplace("cim:GovHydro4.tg", &get_GovHydro4_tg); - get_map.emplace("cim:GovHydro4.tp", &get_GovHydro4_tp); - get_map.emplace("cim:GovHydro4.tr", &get_GovHydro4_tr); - get_map.emplace("cim:GovHydro4.tw", &get_GovHydro4_tw); - get_map.emplace("cim:GovHydro4.uc", &get_GovHydro4_uc); - get_map.emplace("cim:GovHydro4.uo", &get_GovHydro4_uo); + get_map.emplace("GovHydro4.at", &get_GovHydro4_at); + get_map.emplace("GovHydro4.bgv0", &get_GovHydro4_bgv0); + get_map.emplace("GovHydro4.bgv1", &get_GovHydro4_bgv1); + get_map.emplace("GovHydro4.bgv2", &get_GovHydro4_bgv2); + get_map.emplace("GovHydro4.bgv3", &get_GovHydro4_bgv3); + get_map.emplace("GovHydro4.bgv4", &get_GovHydro4_bgv4); + get_map.emplace("GovHydro4.bgv5", &get_GovHydro4_bgv5); + get_map.emplace("GovHydro4.bmax", &get_GovHydro4_bmax); + get_map.emplace("GovHydro4.db1", &get_GovHydro4_db1); + get_map.emplace("GovHydro4.db2", &get_GovHydro4_db2); + get_map.emplace("GovHydro4.dturb", &get_GovHydro4_dturb); + get_map.emplace("GovHydro4.eps", &get_GovHydro4_eps); + get_map.emplace("GovHydro4.gmax", &get_GovHydro4_gmax); + get_map.emplace("GovHydro4.gmin", &get_GovHydro4_gmin); + get_map.emplace("GovHydro4.gv0", &get_GovHydro4_gv0); + get_map.emplace("GovHydro4.gv1", &get_GovHydro4_gv1); + get_map.emplace("GovHydro4.gv2", &get_GovHydro4_gv2); + get_map.emplace("GovHydro4.gv3", &get_GovHydro4_gv3); + get_map.emplace("GovHydro4.gv4", &get_GovHydro4_gv4); + get_map.emplace("GovHydro4.gv5", &get_GovHydro4_gv5); + get_map.emplace("GovHydro4.hdam", &get_GovHydro4_hdam); + get_map.emplace("GovHydro4.mwbase", &get_GovHydro4_mwbase); + get_map.emplace("GovHydro4.pgv0", &get_GovHydro4_pgv0); + get_map.emplace("GovHydro4.pgv1", &get_GovHydro4_pgv1); + get_map.emplace("GovHydro4.pgv2", &get_GovHydro4_pgv2); + get_map.emplace("GovHydro4.pgv3", &get_GovHydro4_pgv3); + get_map.emplace("GovHydro4.pgv4", &get_GovHydro4_pgv4); + get_map.emplace("GovHydro4.pgv5", &get_GovHydro4_pgv5); + get_map.emplace("GovHydro4.qn1", &get_GovHydro4_qn1); + get_map.emplace("GovHydro4.rperm", &get_GovHydro4_rperm); + get_map.emplace("GovHydro4.rtemp", &get_GovHydro4_rtemp); + get_map.emplace("GovHydro4.tblade", &get_GovHydro4_tblade); + get_map.emplace("GovHydro4.tg", &get_GovHydro4_tg); + get_map.emplace("GovHydro4.tp", &get_GovHydro4_tp); + get_map.emplace("GovHydro4.tr", &get_GovHydro4_tr); + get_map.emplace("GovHydro4.tw", &get_GovHydro4_tw); + get_map.emplace("GovHydro4.uc", &get_GovHydro4_uc); + get_map.emplace("GovHydro4.uo", &get_GovHydro4_uo); } void GovHydro4::addClassGetFnsToMap(std::map& get_map) const @@ -1288,11 +1320,25 @@ void GovHydro4::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro4::declare() { return BaseClassDefiner(GovHydro4::addConstructToMap, GovHydro4::addPrimitiveAssignFnsToMap, GovHydro4::addClassAssignFnsToMap, GovHydro4::debugName); } +std::map GovHydro4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro4_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydro4.hpp b/CGMES_2.4.15_27JAN2020/GovHydro4.hpp index f5165645e..42ec8a76a 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydro4.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydro4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Frequency.hpp" #include "PU.hpp" @@ -146,8 +147,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -155,7 +163,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro4_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroDD.cpp b/CGMES_2.4.15_27JAN2020/GovHydroDD.cpp index c7efe476c..765ab78e4 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroDD.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroDD.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroDD(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroDD.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroDD.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroDD::GovHydroDD() {} GovHydroDD::~GovHydroDD() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroDD.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.k1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.k2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.r", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.td", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tf", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroDD::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroDD::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroDD::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroDD::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroDD::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroDD::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroDD::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroDD::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroDD::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroDD_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovHydroDD::debugString() const void GovHydroDD::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroDD", &GovHydroDD_factory); + factory_map.emplace("GovHydroDD", &GovHydroDD_factory); } void GovHydroDD::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroDD.aturb", &assign_GovHydroDD_aturb); - assign_map.emplace("cim:GovHydroDD.bturb", &assign_GovHydroDD_bturb); - assign_map.emplace("cim:GovHydroDD.db1", &assign_GovHydroDD_db1); - assign_map.emplace("cim:GovHydroDD.db2", &assign_GovHydroDD_db2); - assign_map.emplace("cim:GovHydroDD.eps", &assign_GovHydroDD_eps); - assign_map.emplace("cim:GovHydroDD.gmax", &assign_GovHydroDD_gmax); - assign_map.emplace("cim:GovHydroDD.gmin", &assign_GovHydroDD_gmin); - assign_map.emplace("cim:GovHydroDD.gv1", &assign_GovHydroDD_gv1); - assign_map.emplace("cim:GovHydroDD.gv2", &assign_GovHydroDD_gv2); - assign_map.emplace("cim:GovHydroDD.gv3", &assign_GovHydroDD_gv3); - assign_map.emplace("cim:GovHydroDD.gv4", &assign_GovHydroDD_gv4); - assign_map.emplace("cim:GovHydroDD.gv5", &assign_GovHydroDD_gv5); - assign_map.emplace("cim:GovHydroDD.gv6", &assign_GovHydroDD_gv6); - assign_map.emplace("cim:GovHydroDD.inputSignal", &assign_GovHydroDD_inputSignal); - assign_map.emplace("cim:GovHydroDD.k1", &assign_GovHydroDD_k1); - assign_map.emplace("cim:GovHydroDD.k2", &assign_GovHydroDD_k2); - assign_map.emplace("cim:GovHydroDD.kg", &assign_GovHydroDD_kg); - assign_map.emplace("cim:GovHydroDD.ki", &assign_GovHydroDD_ki); - assign_map.emplace("cim:GovHydroDD.mwbase", &assign_GovHydroDD_mwbase); - assign_map.emplace("cim:GovHydroDD.pgv1", &assign_GovHydroDD_pgv1); - assign_map.emplace("cim:GovHydroDD.pgv2", &assign_GovHydroDD_pgv2); - assign_map.emplace("cim:GovHydroDD.pgv3", &assign_GovHydroDD_pgv3); - assign_map.emplace("cim:GovHydroDD.pgv4", &assign_GovHydroDD_pgv4); - assign_map.emplace("cim:GovHydroDD.pgv5", &assign_GovHydroDD_pgv5); - assign_map.emplace("cim:GovHydroDD.pgv6", &assign_GovHydroDD_pgv6); - assign_map.emplace("cim:GovHydroDD.pmax", &assign_GovHydroDD_pmax); - assign_map.emplace("cim:GovHydroDD.pmin", &assign_GovHydroDD_pmin); - assign_map.emplace("cim:GovHydroDD.r", &assign_GovHydroDD_r); - assign_map.emplace("cim:GovHydroDD.td", &assign_GovHydroDD_td); - assign_map.emplace("cim:GovHydroDD.tf", &assign_GovHydroDD_tf); - assign_map.emplace("cim:GovHydroDD.tp", &assign_GovHydroDD_tp); - assign_map.emplace("cim:GovHydroDD.tt", &assign_GovHydroDD_tt); - assign_map.emplace("cim:GovHydroDD.tturb", &assign_GovHydroDD_tturb); - assign_map.emplace("cim:GovHydroDD.velcl", &assign_GovHydroDD_velcl); - assign_map.emplace("cim:GovHydroDD.velop", &assign_GovHydroDD_velop); + assign_map.emplace("GovHydroDD.aturb", &assign_GovHydroDD_aturb); + assign_map.emplace("GovHydroDD.bturb", &assign_GovHydroDD_bturb); + assign_map.emplace("GovHydroDD.db1", &assign_GovHydroDD_db1); + assign_map.emplace("GovHydroDD.db2", &assign_GovHydroDD_db2); + assign_map.emplace("GovHydroDD.eps", &assign_GovHydroDD_eps); + assign_map.emplace("GovHydroDD.gmax", &assign_GovHydroDD_gmax); + assign_map.emplace("GovHydroDD.gmin", &assign_GovHydroDD_gmin); + assign_map.emplace("GovHydroDD.gv1", &assign_GovHydroDD_gv1); + assign_map.emplace("GovHydroDD.gv2", &assign_GovHydroDD_gv2); + assign_map.emplace("GovHydroDD.gv3", &assign_GovHydroDD_gv3); + assign_map.emplace("GovHydroDD.gv4", &assign_GovHydroDD_gv4); + assign_map.emplace("GovHydroDD.gv5", &assign_GovHydroDD_gv5); + assign_map.emplace("GovHydroDD.gv6", &assign_GovHydroDD_gv6); + assign_map.emplace("GovHydroDD.inputSignal", &assign_GovHydroDD_inputSignal); + assign_map.emplace("GovHydroDD.k1", &assign_GovHydroDD_k1); + assign_map.emplace("GovHydroDD.k2", &assign_GovHydroDD_k2); + assign_map.emplace("GovHydroDD.kg", &assign_GovHydroDD_kg); + assign_map.emplace("GovHydroDD.ki", &assign_GovHydroDD_ki); + assign_map.emplace("GovHydroDD.mwbase", &assign_GovHydroDD_mwbase); + assign_map.emplace("GovHydroDD.pgv1", &assign_GovHydroDD_pgv1); + assign_map.emplace("GovHydroDD.pgv2", &assign_GovHydroDD_pgv2); + assign_map.emplace("GovHydroDD.pgv3", &assign_GovHydroDD_pgv3); + assign_map.emplace("GovHydroDD.pgv4", &assign_GovHydroDD_pgv4); + assign_map.emplace("GovHydroDD.pgv5", &assign_GovHydroDD_pgv5); + assign_map.emplace("GovHydroDD.pgv6", &assign_GovHydroDD_pgv6); + assign_map.emplace("GovHydroDD.pmax", &assign_GovHydroDD_pmax); + assign_map.emplace("GovHydroDD.pmin", &assign_GovHydroDD_pmin); + assign_map.emplace("GovHydroDD.r", &assign_GovHydroDD_r); + assign_map.emplace("GovHydroDD.td", &assign_GovHydroDD_td); + assign_map.emplace("GovHydroDD.tf", &assign_GovHydroDD_tf); + assign_map.emplace("GovHydroDD.tp", &assign_GovHydroDD_tp); + assign_map.emplace("GovHydroDD.tt", &assign_GovHydroDD_tt); + assign_map.emplace("GovHydroDD.tturb", &assign_GovHydroDD_tturb); + assign_map.emplace("GovHydroDD.velcl", &assign_GovHydroDD_velcl); + assign_map.emplace("GovHydroDD.velop", &assign_GovHydroDD_velop); } void GovHydroDD::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,41 +1177,41 @@ void GovHydroDD::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroDD.aturb", &get_GovHydroDD_aturb); - get_map.emplace("cim:GovHydroDD.bturb", &get_GovHydroDD_bturb); - get_map.emplace("cim:GovHydroDD.db1", &get_GovHydroDD_db1); - get_map.emplace("cim:GovHydroDD.db2", &get_GovHydroDD_db2); - get_map.emplace("cim:GovHydroDD.eps", &get_GovHydroDD_eps); - get_map.emplace("cim:GovHydroDD.gmax", &get_GovHydroDD_gmax); - get_map.emplace("cim:GovHydroDD.gmin", &get_GovHydroDD_gmin); - get_map.emplace("cim:GovHydroDD.gv1", &get_GovHydroDD_gv1); - get_map.emplace("cim:GovHydroDD.gv2", &get_GovHydroDD_gv2); - get_map.emplace("cim:GovHydroDD.gv3", &get_GovHydroDD_gv3); - get_map.emplace("cim:GovHydroDD.gv4", &get_GovHydroDD_gv4); - get_map.emplace("cim:GovHydroDD.gv5", &get_GovHydroDD_gv5); - get_map.emplace("cim:GovHydroDD.gv6", &get_GovHydroDD_gv6); - get_map.emplace("cim:GovHydroDD.inputSignal", &get_GovHydroDD_inputSignal); - get_map.emplace("cim:GovHydroDD.k1", &get_GovHydroDD_k1); - get_map.emplace("cim:GovHydroDD.k2", &get_GovHydroDD_k2); - get_map.emplace("cim:GovHydroDD.kg", &get_GovHydroDD_kg); - get_map.emplace("cim:GovHydroDD.ki", &get_GovHydroDD_ki); - get_map.emplace("cim:GovHydroDD.mwbase", &get_GovHydroDD_mwbase); - get_map.emplace("cim:GovHydroDD.pgv1", &get_GovHydroDD_pgv1); - get_map.emplace("cim:GovHydroDD.pgv2", &get_GovHydroDD_pgv2); - get_map.emplace("cim:GovHydroDD.pgv3", &get_GovHydroDD_pgv3); - get_map.emplace("cim:GovHydroDD.pgv4", &get_GovHydroDD_pgv4); - get_map.emplace("cim:GovHydroDD.pgv5", &get_GovHydroDD_pgv5); - get_map.emplace("cim:GovHydroDD.pgv6", &get_GovHydroDD_pgv6); - get_map.emplace("cim:GovHydroDD.pmax", &get_GovHydroDD_pmax); - get_map.emplace("cim:GovHydroDD.pmin", &get_GovHydroDD_pmin); - get_map.emplace("cim:GovHydroDD.r", &get_GovHydroDD_r); - get_map.emplace("cim:GovHydroDD.td", &get_GovHydroDD_td); - get_map.emplace("cim:GovHydroDD.tf", &get_GovHydroDD_tf); - get_map.emplace("cim:GovHydroDD.tp", &get_GovHydroDD_tp); - get_map.emplace("cim:GovHydroDD.tt", &get_GovHydroDD_tt); - get_map.emplace("cim:GovHydroDD.tturb", &get_GovHydroDD_tturb); - get_map.emplace("cim:GovHydroDD.velcl", &get_GovHydroDD_velcl); - get_map.emplace("cim:GovHydroDD.velop", &get_GovHydroDD_velop); + get_map.emplace("GovHydroDD.aturb", &get_GovHydroDD_aturb); + get_map.emplace("GovHydroDD.bturb", &get_GovHydroDD_bturb); + get_map.emplace("GovHydroDD.db1", &get_GovHydroDD_db1); + get_map.emplace("GovHydroDD.db2", &get_GovHydroDD_db2); + get_map.emplace("GovHydroDD.eps", &get_GovHydroDD_eps); + get_map.emplace("GovHydroDD.gmax", &get_GovHydroDD_gmax); + get_map.emplace("GovHydroDD.gmin", &get_GovHydroDD_gmin); + get_map.emplace("GovHydroDD.gv1", &get_GovHydroDD_gv1); + get_map.emplace("GovHydroDD.gv2", &get_GovHydroDD_gv2); + get_map.emplace("GovHydroDD.gv3", &get_GovHydroDD_gv3); + get_map.emplace("GovHydroDD.gv4", &get_GovHydroDD_gv4); + get_map.emplace("GovHydroDD.gv5", &get_GovHydroDD_gv5); + get_map.emplace("GovHydroDD.gv6", &get_GovHydroDD_gv6); + get_map.emplace("GovHydroDD.inputSignal", &get_GovHydroDD_inputSignal); + get_map.emplace("GovHydroDD.k1", &get_GovHydroDD_k1); + get_map.emplace("GovHydroDD.k2", &get_GovHydroDD_k2); + get_map.emplace("GovHydroDD.kg", &get_GovHydroDD_kg); + get_map.emplace("GovHydroDD.ki", &get_GovHydroDD_ki); + get_map.emplace("GovHydroDD.mwbase", &get_GovHydroDD_mwbase); + get_map.emplace("GovHydroDD.pgv1", &get_GovHydroDD_pgv1); + get_map.emplace("GovHydroDD.pgv2", &get_GovHydroDD_pgv2); + get_map.emplace("GovHydroDD.pgv3", &get_GovHydroDD_pgv3); + get_map.emplace("GovHydroDD.pgv4", &get_GovHydroDD_pgv4); + get_map.emplace("GovHydroDD.pgv5", &get_GovHydroDD_pgv5); + get_map.emplace("GovHydroDD.pgv6", &get_GovHydroDD_pgv6); + get_map.emplace("GovHydroDD.pmax", &get_GovHydroDD_pmax); + get_map.emplace("GovHydroDD.pmin", &get_GovHydroDD_pmin); + get_map.emplace("GovHydroDD.r", &get_GovHydroDD_r); + get_map.emplace("GovHydroDD.td", &get_GovHydroDD_td); + get_map.emplace("GovHydroDD.tf", &get_GovHydroDD_tf); + get_map.emplace("GovHydroDD.tp", &get_GovHydroDD_tp); + get_map.emplace("GovHydroDD.tt", &get_GovHydroDD_tt); + get_map.emplace("GovHydroDD.tturb", &get_GovHydroDD_tturb); + get_map.emplace("GovHydroDD.velcl", &get_GovHydroDD_velcl); + get_map.emplace("GovHydroDD.velop", &get_GovHydroDD_velop); } void GovHydroDD::addClassGetFnsToMap(std::map& get_map) const @@ -1192,11 +1224,25 @@ void GovHydroDD::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroDD::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroDD" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroDD::declare() { return BaseClassDefiner(GovHydroDD::addConstructToMap, GovHydroDD::addPrimitiveAssignFnsToMap, GovHydroDD::addClassAssignFnsToMap, GovHydroDD::debugName); } +std::map GovHydroDD::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroDD_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroDD.hpp b/CGMES_2.4.15_27JAN2020/GovHydroDD.hpp index cca2ca2c0..f6430b09b 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroDD.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroDD.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroDD_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroFrancis.cpp b/CGMES_2.4.15_27JAN2020/GovHydroFrancis.cpp index 92cca504b..88a2c3c72 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroFrancis.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroFrancis.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroFrancis(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroFrancis.am", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.av0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.av1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.etamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.governorControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.h1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.h2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.hn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.qc0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.qn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.twnc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.twng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.tx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.va", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.valvmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.valvmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.vc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.waterTunnelSurgeChamberSimulation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.zsfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroFrancis::GovHydroFrancis() {} GovHydroFrancis::~GovHydroFrancis() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroFrancis.am", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.av0", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.av1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.bp", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.etamax", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.governorControl", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.h1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.h2", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.hn", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kt", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.qc0", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.qn", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.td", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.ts", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.twnc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.twng", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.tx", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.va", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.valvmax", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.valvmin", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.vc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.zsfc", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroFrancis::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroFrancis::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroFrancis::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroFrancis::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroFrancis::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroFrancis::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroFrancis::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroFrancis::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroFrancis::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroFrancis_am(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* GovHydroFrancis::debugString() const void GovHydroFrancis::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroFrancis", &GovHydroFrancis_factory); + factory_map.emplace("GovHydroFrancis", &GovHydroFrancis_factory); } void GovHydroFrancis::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroFrancis.am", &assign_GovHydroFrancis_am); - assign_map.emplace("cim:GovHydroFrancis.av0", &assign_GovHydroFrancis_av0); - assign_map.emplace("cim:GovHydroFrancis.av1", &assign_GovHydroFrancis_av1); - assign_map.emplace("cim:GovHydroFrancis.bp", &assign_GovHydroFrancis_bp); - assign_map.emplace("cim:GovHydroFrancis.db1", &assign_GovHydroFrancis_db1); - assign_map.emplace("cim:GovHydroFrancis.etamax", &assign_GovHydroFrancis_etamax); - assign_map.emplace("cim:GovHydroFrancis.governorControl", &assign_GovHydroFrancis_governorControl); - assign_map.emplace("cim:GovHydroFrancis.h1", &assign_GovHydroFrancis_h1); - assign_map.emplace("cim:GovHydroFrancis.h2", &assign_GovHydroFrancis_h2); - assign_map.emplace("cim:GovHydroFrancis.hn", &assign_GovHydroFrancis_hn); - assign_map.emplace("cim:GovHydroFrancis.kc", &assign_GovHydroFrancis_kc); - assign_map.emplace("cim:GovHydroFrancis.kg", &assign_GovHydroFrancis_kg); - assign_map.emplace("cim:GovHydroFrancis.kt", &assign_GovHydroFrancis_kt); - assign_map.emplace("cim:GovHydroFrancis.qc0", &assign_GovHydroFrancis_qc0); - assign_map.emplace("cim:GovHydroFrancis.qn", &assign_GovHydroFrancis_qn); - assign_map.emplace("cim:GovHydroFrancis.ta", &assign_GovHydroFrancis_ta); - assign_map.emplace("cim:GovHydroFrancis.td", &assign_GovHydroFrancis_td); - assign_map.emplace("cim:GovHydroFrancis.ts", &assign_GovHydroFrancis_ts); - assign_map.emplace("cim:GovHydroFrancis.twnc", &assign_GovHydroFrancis_twnc); - assign_map.emplace("cim:GovHydroFrancis.twng", &assign_GovHydroFrancis_twng); - assign_map.emplace("cim:GovHydroFrancis.tx", &assign_GovHydroFrancis_tx); - assign_map.emplace("cim:GovHydroFrancis.va", &assign_GovHydroFrancis_va); - assign_map.emplace("cim:GovHydroFrancis.valvmax", &assign_GovHydroFrancis_valvmax); - assign_map.emplace("cim:GovHydroFrancis.valvmin", &assign_GovHydroFrancis_valvmin); - assign_map.emplace("cim:GovHydroFrancis.vc", &assign_GovHydroFrancis_vc); - assign_map.emplace("cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", &assign_GovHydroFrancis_waterTunnelSurgeChamberSimulation); - assign_map.emplace("cim:GovHydroFrancis.zsfc", &assign_GovHydroFrancis_zsfc); + assign_map.emplace("GovHydroFrancis.am", &assign_GovHydroFrancis_am); + assign_map.emplace("GovHydroFrancis.av0", &assign_GovHydroFrancis_av0); + assign_map.emplace("GovHydroFrancis.av1", &assign_GovHydroFrancis_av1); + assign_map.emplace("GovHydroFrancis.bp", &assign_GovHydroFrancis_bp); + assign_map.emplace("GovHydroFrancis.db1", &assign_GovHydroFrancis_db1); + assign_map.emplace("GovHydroFrancis.etamax", &assign_GovHydroFrancis_etamax); + assign_map.emplace("GovHydroFrancis.governorControl", &assign_GovHydroFrancis_governorControl); + assign_map.emplace("GovHydroFrancis.h1", &assign_GovHydroFrancis_h1); + assign_map.emplace("GovHydroFrancis.h2", &assign_GovHydroFrancis_h2); + assign_map.emplace("GovHydroFrancis.hn", &assign_GovHydroFrancis_hn); + assign_map.emplace("GovHydroFrancis.kc", &assign_GovHydroFrancis_kc); + assign_map.emplace("GovHydroFrancis.kg", &assign_GovHydroFrancis_kg); + assign_map.emplace("GovHydroFrancis.kt", &assign_GovHydroFrancis_kt); + assign_map.emplace("GovHydroFrancis.qc0", &assign_GovHydroFrancis_qc0); + assign_map.emplace("GovHydroFrancis.qn", &assign_GovHydroFrancis_qn); + assign_map.emplace("GovHydroFrancis.ta", &assign_GovHydroFrancis_ta); + assign_map.emplace("GovHydroFrancis.td", &assign_GovHydroFrancis_td); + assign_map.emplace("GovHydroFrancis.ts", &assign_GovHydroFrancis_ts); + assign_map.emplace("GovHydroFrancis.twnc", &assign_GovHydroFrancis_twnc); + assign_map.emplace("GovHydroFrancis.twng", &assign_GovHydroFrancis_twng); + assign_map.emplace("GovHydroFrancis.tx", &assign_GovHydroFrancis_tx); + assign_map.emplace("GovHydroFrancis.va", &assign_GovHydroFrancis_va); + assign_map.emplace("GovHydroFrancis.valvmax", &assign_GovHydroFrancis_valvmax); + assign_map.emplace("GovHydroFrancis.valvmin", &assign_GovHydroFrancis_valvmin); + assign_map.emplace("GovHydroFrancis.vc", &assign_GovHydroFrancis_vc); + assign_map.emplace("GovHydroFrancis.waterTunnelSurgeChamberSimulation", &assign_GovHydroFrancis_waterTunnelSurgeChamberSimulation); + assign_map.emplace("GovHydroFrancis.zsfc", &assign_GovHydroFrancis_zsfc); } void GovHydroFrancis::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,32 +929,32 @@ void GovHydroFrancis::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroFrancis.am", &get_GovHydroFrancis_am); - get_map.emplace("cim:GovHydroFrancis.av0", &get_GovHydroFrancis_av0); - get_map.emplace("cim:GovHydroFrancis.av1", &get_GovHydroFrancis_av1); - get_map.emplace("cim:GovHydroFrancis.bp", &get_GovHydroFrancis_bp); - get_map.emplace("cim:GovHydroFrancis.db1", &get_GovHydroFrancis_db1); - get_map.emplace("cim:GovHydroFrancis.etamax", &get_GovHydroFrancis_etamax); - get_map.emplace("cim:GovHydroFrancis.h1", &get_GovHydroFrancis_h1); - get_map.emplace("cim:GovHydroFrancis.h2", &get_GovHydroFrancis_h2); - get_map.emplace("cim:GovHydroFrancis.hn", &get_GovHydroFrancis_hn); - get_map.emplace("cim:GovHydroFrancis.kc", &get_GovHydroFrancis_kc); - get_map.emplace("cim:GovHydroFrancis.kg", &get_GovHydroFrancis_kg); - get_map.emplace("cim:GovHydroFrancis.kt", &get_GovHydroFrancis_kt); - get_map.emplace("cim:GovHydroFrancis.qc0", &get_GovHydroFrancis_qc0); - get_map.emplace("cim:GovHydroFrancis.qn", &get_GovHydroFrancis_qn); - get_map.emplace("cim:GovHydroFrancis.ta", &get_GovHydroFrancis_ta); - get_map.emplace("cim:GovHydroFrancis.td", &get_GovHydroFrancis_td); - get_map.emplace("cim:GovHydroFrancis.ts", &get_GovHydroFrancis_ts); - get_map.emplace("cim:GovHydroFrancis.twnc", &get_GovHydroFrancis_twnc); - get_map.emplace("cim:GovHydroFrancis.twng", &get_GovHydroFrancis_twng); - get_map.emplace("cim:GovHydroFrancis.tx", &get_GovHydroFrancis_tx); - get_map.emplace("cim:GovHydroFrancis.va", &get_GovHydroFrancis_va); - get_map.emplace("cim:GovHydroFrancis.valvmax", &get_GovHydroFrancis_valvmax); - get_map.emplace("cim:GovHydroFrancis.valvmin", &get_GovHydroFrancis_valvmin); - get_map.emplace("cim:GovHydroFrancis.vc", &get_GovHydroFrancis_vc); - get_map.emplace("cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", &get_GovHydroFrancis_waterTunnelSurgeChamberSimulation); - get_map.emplace("cim:GovHydroFrancis.zsfc", &get_GovHydroFrancis_zsfc); + get_map.emplace("GovHydroFrancis.am", &get_GovHydroFrancis_am); + get_map.emplace("GovHydroFrancis.av0", &get_GovHydroFrancis_av0); + get_map.emplace("GovHydroFrancis.av1", &get_GovHydroFrancis_av1); + get_map.emplace("GovHydroFrancis.bp", &get_GovHydroFrancis_bp); + get_map.emplace("GovHydroFrancis.db1", &get_GovHydroFrancis_db1); + get_map.emplace("GovHydroFrancis.etamax", &get_GovHydroFrancis_etamax); + get_map.emplace("GovHydroFrancis.h1", &get_GovHydroFrancis_h1); + get_map.emplace("GovHydroFrancis.h2", &get_GovHydroFrancis_h2); + get_map.emplace("GovHydroFrancis.hn", &get_GovHydroFrancis_hn); + get_map.emplace("GovHydroFrancis.kc", &get_GovHydroFrancis_kc); + get_map.emplace("GovHydroFrancis.kg", &get_GovHydroFrancis_kg); + get_map.emplace("GovHydroFrancis.kt", &get_GovHydroFrancis_kt); + get_map.emplace("GovHydroFrancis.qc0", &get_GovHydroFrancis_qc0); + get_map.emplace("GovHydroFrancis.qn", &get_GovHydroFrancis_qn); + get_map.emplace("GovHydroFrancis.ta", &get_GovHydroFrancis_ta); + get_map.emplace("GovHydroFrancis.td", &get_GovHydroFrancis_td); + get_map.emplace("GovHydroFrancis.ts", &get_GovHydroFrancis_ts); + get_map.emplace("GovHydroFrancis.twnc", &get_GovHydroFrancis_twnc); + get_map.emplace("GovHydroFrancis.twng", &get_GovHydroFrancis_twng); + get_map.emplace("GovHydroFrancis.tx", &get_GovHydroFrancis_tx); + get_map.emplace("GovHydroFrancis.va", &get_GovHydroFrancis_va); + get_map.emplace("GovHydroFrancis.valvmax", &get_GovHydroFrancis_valvmax); + get_map.emplace("GovHydroFrancis.valvmin", &get_GovHydroFrancis_valvmin); + get_map.emplace("GovHydroFrancis.vc", &get_GovHydroFrancis_vc); + get_map.emplace("GovHydroFrancis.waterTunnelSurgeChamberSimulation", &get_GovHydroFrancis_waterTunnelSurgeChamberSimulation); + get_map.emplace("GovHydroFrancis.zsfc", &get_GovHydroFrancis_zsfc); } void GovHydroFrancis::addClassGetFnsToMap(std::map& get_map) const @@ -933,7 +965,13 @@ void GovHydroFrancis::addClassGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroFrancis.governorControl", &get_GovHydroFrancis_governorControl); + get_map.emplace("GovHydroFrancis.governorControl", &get_GovHydroFrancis_governorControl); +} + +bool GovHydroFrancis::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroFrancis" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovHydroFrancis::declare() @@ -941,6 +979,14 @@ const BaseClassDefiner GovHydroFrancis::declare() return BaseClassDefiner(GovHydroFrancis::addConstructToMap, GovHydroFrancis::addPrimitiveAssignFnsToMap, GovHydroFrancis::addClassAssignFnsToMap, GovHydroFrancis::debugName); } +std::map GovHydroFrancis::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroFrancis_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroFrancis.hpp b/CGMES_2.4.15_27JAN2020/GovHydroFrancis.hpp index a69654b37..172b7074c 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroFrancis.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroFrancis.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Area.hpp" #include "Boolean.hpp" #include "FrancisGovernorControlKind.hpp" @@ -117,8 +118,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -126,7 +134,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroFrancis_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroIEEE0.cpp b/CGMES_2.4.15_27JAN2020/GovHydroIEEE0.cpp index 7038d0233..193ee5e58 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroIEEE0.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroIEEE0.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroIEEE0(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroIEEE0.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroIEEE0::GovHydroIEEE0() {} GovHydroIEEE0::~GovHydroIEEE0() {} -static const std::list PossibleProfilesForClass = +const std::list& GovHydroIEEE0::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovHydroIEEE0::getClassNamespaceUrl() const { - { "cim:GovHydroIEEE0.k", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t4", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovHydroIEEE0::getPossibleProfilesForClass() const +const std::string& GovHydroIEEE0::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovHydroIEEE0::getPossibleProfilesForAttributes() const +const std::list& GovHydroIEEE0::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroIEEE0::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroIEEE0::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroIEEE0::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroIEEE0_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovHydroIEEE0::debugString() const void GovHydroIEEE0::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroIEEE0", &GovHydroIEEE0_factory); + factory_map.emplace("GovHydroIEEE0", &GovHydroIEEE0_factory); } void GovHydroIEEE0::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroIEEE0.k", &assign_GovHydroIEEE0_k); - assign_map.emplace("cim:GovHydroIEEE0.mwbase", &assign_GovHydroIEEE0_mwbase); - assign_map.emplace("cim:GovHydroIEEE0.pmax", &assign_GovHydroIEEE0_pmax); - assign_map.emplace("cim:GovHydroIEEE0.pmin", &assign_GovHydroIEEE0_pmin); - assign_map.emplace("cim:GovHydroIEEE0.t1", &assign_GovHydroIEEE0_t1); - assign_map.emplace("cim:GovHydroIEEE0.t2", &assign_GovHydroIEEE0_t2); - assign_map.emplace("cim:GovHydroIEEE0.t3", &assign_GovHydroIEEE0_t3); - assign_map.emplace("cim:GovHydroIEEE0.t4", &assign_GovHydroIEEE0_t4); + assign_map.emplace("GovHydroIEEE0.k", &assign_GovHydroIEEE0_k); + assign_map.emplace("GovHydroIEEE0.mwbase", &assign_GovHydroIEEE0_mwbase); + assign_map.emplace("GovHydroIEEE0.pmax", &assign_GovHydroIEEE0_pmax); + assign_map.emplace("GovHydroIEEE0.pmin", &assign_GovHydroIEEE0_pmin); + assign_map.emplace("GovHydroIEEE0.t1", &assign_GovHydroIEEE0_t1); + assign_map.emplace("GovHydroIEEE0.t2", &assign_GovHydroIEEE0_t2); + assign_map.emplace("GovHydroIEEE0.t3", &assign_GovHydroIEEE0_t3); + assign_map.emplace("GovHydroIEEE0.t4", &assign_GovHydroIEEE0_t4); } void GovHydroIEEE0::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovHydroIEEE0::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroIEEE0.k", &get_GovHydroIEEE0_k); - get_map.emplace("cim:GovHydroIEEE0.mwbase", &get_GovHydroIEEE0_mwbase); - get_map.emplace("cim:GovHydroIEEE0.pmax", &get_GovHydroIEEE0_pmax); - get_map.emplace("cim:GovHydroIEEE0.pmin", &get_GovHydroIEEE0_pmin); - get_map.emplace("cim:GovHydroIEEE0.t1", &get_GovHydroIEEE0_t1); - get_map.emplace("cim:GovHydroIEEE0.t2", &get_GovHydroIEEE0_t2); - get_map.emplace("cim:GovHydroIEEE0.t3", &get_GovHydroIEEE0_t3); - get_map.emplace("cim:GovHydroIEEE0.t4", &get_GovHydroIEEE0_t4); + get_map.emplace("GovHydroIEEE0.k", &get_GovHydroIEEE0_k); + get_map.emplace("GovHydroIEEE0.mwbase", &get_GovHydroIEEE0_mwbase); + get_map.emplace("GovHydroIEEE0.pmax", &get_GovHydroIEEE0_pmax); + get_map.emplace("GovHydroIEEE0.pmin", &get_GovHydroIEEE0_pmin); + get_map.emplace("GovHydroIEEE0.t1", &get_GovHydroIEEE0_t1); + get_map.emplace("GovHydroIEEE0.t2", &get_GovHydroIEEE0_t2); + get_map.emplace("GovHydroIEEE0.t3", &get_GovHydroIEEE0_t3); + get_map.emplace("GovHydroIEEE0.t4", &get_GovHydroIEEE0_t4); } void GovHydroIEEE0::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovHydroIEEE0::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroIEEE0::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroIEEE0" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroIEEE0::declare() { return BaseClassDefiner(GovHydroIEEE0::addConstructToMap, GovHydroIEEE0::addPrimitiveAssignFnsToMap, GovHydroIEEE0::addClassAssignFnsToMap, GovHydroIEEE0::debugName); } +std::map GovHydroIEEE0::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroIEEE0_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroIEEE0.hpp b/CGMES_2.4.15_27JAN2020/GovHydroIEEE0.hpp index 715982cd2..b2c0448f3 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroIEEE0.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroIEEE0.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroIEEE0_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroIEEE2.cpp b/CGMES_2.4.15_27JAN2020/GovHydroIEEE2.cpp index abbf5cf5e..1929d73d1 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroIEEE2.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroIEEE2.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroIEEE2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroIEEE2.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.kturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.rtemp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroIEEE2::GovHydroIEEE2() {} GovHydroIEEE2::~GovHydroIEEE2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroIEEE2.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.kturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tg", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tr", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.uc", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroIEEE2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroIEEE2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroIEEE2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroIEEE2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroIEEE2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroIEEE2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroIEEE2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroIEEE2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroIEEE2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroIEEE2_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* GovHydroIEEE2::debugString() const void GovHydroIEEE2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroIEEE2", &GovHydroIEEE2_factory); + factory_map.emplace("GovHydroIEEE2", &GovHydroIEEE2_factory); } void GovHydroIEEE2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroIEEE2.aturb", &assign_GovHydroIEEE2_aturb); - assign_map.emplace("cim:GovHydroIEEE2.bturb", &assign_GovHydroIEEE2_bturb); - assign_map.emplace("cim:GovHydroIEEE2.gv1", &assign_GovHydroIEEE2_gv1); - assign_map.emplace("cim:GovHydroIEEE2.gv2", &assign_GovHydroIEEE2_gv2); - assign_map.emplace("cim:GovHydroIEEE2.gv3", &assign_GovHydroIEEE2_gv3); - assign_map.emplace("cim:GovHydroIEEE2.gv4", &assign_GovHydroIEEE2_gv4); - assign_map.emplace("cim:GovHydroIEEE2.gv5", &assign_GovHydroIEEE2_gv5); - assign_map.emplace("cim:GovHydroIEEE2.gv6", &assign_GovHydroIEEE2_gv6); - assign_map.emplace("cim:GovHydroIEEE2.kturb", &assign_GovHydroIEEE2_kturb); - assign_map.emplace("cim:GovHydroIEEE2.mwbase", &assign_GovHydroIEEE2_mwbase); - assign_map.emplace("cim:GovHydroIEEE2.pgv1", &assign_GovHydroIEEE2_pgv1); - assign_map.emplace("cim:GovHydroIEEE2.pgv2", &assign_GovHydroIEEE2_pgv2); - assign_map.emplace("cim:GovHydroIEEE2.pgv3", &assign_GovHydroIEEE2_pgv3); - assign_map.emplace("cim:GovHydroIEEE2.pgv4", &assign_GovHydroIEEE2_pgv4); - assign_map.emplace("cim:GovHydroIEEE2.pgv5", &assign_GovHydroIEEE2_pgv5); - assign_map.emplace("cim:GovHydroIEEE2.pgv6", &assign_GovHydroIEEE2_pgv6); - assign_map.emplace("cim:GovHydroIEEE2.pmax", &assign_GovHydroIEEE2_pmax); - assign_map.emplace("cim:GovHydroIEEE2.pmin", &assign_GovHydroIEEE2_pmin); - assign_map.emplace("cim:GovHydroIEEE2.rperm", &assign_GovHydroIEEE2_rperm); - assign_map.emplace("cim:GovHydroIEEE2.rtemp", &assign_GovHydroIEEE2_rtemp); - assign_map.emplace("cim:GovHydroIEEE2.tg", &assign_GovHydroIEEE2_tg); - assign_map.emplace("cim:GovHydroIEEE2.tp", &assign_GovHydroIEEE2_tp); - assign_map.emplace("cim:GovHydroIEEE2.tr", &assign_GovHydroIEEE2_tr); - assign_map.emplace("cim:GovHydroIEEE2.tw", &assign_GovHydroIEEE2_tw); - assign_map.emplace("cim:GovHydroIEEE2.uc", &assign_GovHydroIEEE2_uc); - assign_map.emplace("cim:GovHydroIEEE2.uo", &assign_GovHydroIEEE2_uo); + assign_map.emplace("GovHydroIEEE2.aturb", &assign_GovHydroIEEE2_aturb); + assign_map.emplace("GovHydroIEEE2.bturb", &assign_GovHydroIEEE2_bturb); + assign_map.emplace("GovHydroIEEE2.gv1", &assign_GovHydroIEEE2_gv1); + assign_map.emplace("GovHydroIEEE2.gv2", &assign_GovHydroIEEE2_gv2); + assign_map.emplace("GovHydroIEEE2.gv3", &assign_GovHydroIEEE2_gv3); + assign_map.emplace("GovHydroIEEE2.gv4", &assign_GovHydroIEEE2_gv4); + assign_map.emplace("GovHydroIEEE2.gv5", &assign_GovHydroIEEE2_gv5); + assign_map.emplace("GovHydroIEEE2.gv6", &assign_GovHydroIEEE2_gv6); + assign_map.emplace("GovHydroIEEE2.kturb", &assign_GovHydroIEEE2_kturb); + assign_map.emplace("GovHydroIEEE2.mwbase", &assign_GovHydroIEEE2_mwbase); + assign_map.emplace("GovHydroIEEE2.pgv1", &assign_GovHydroIEEE2_pgv1); + assign_map.emplace("GovHydroIEEE2.pgv2", &assign_GovHydroIEEE2_pgv2); + assign_map.emplace("GovHydroIEEE2.pgv3", &assign_GovHydroIEEE2_pgv3); + assign_map.emplace("GovHydroIEEE2.pgv4", &assign_GovHydroIEEE2_pgv4); + assign_map.emplace("GovHydroIEEE2.pgv5", &assign_GovHydroIEEE2_pgv5); + assign_map.emplace("GovHydroIEEE2.pgv6", &assign_GovHydroIEEE2_pgv6); + assign_map.emplace("GovHydroIEEE2.pmax", &assign_GovHydroIEEE2_pmax); + assign_map.emplace("GovHydroIEEE2.pmin", &assign_GovHydroIEEE2_pmin); + assign_map.emplace("GovHydroIEEE2.rperm", &assign_GovHydroIEEE2_rperm); + assign_map.emplace("GovHydroIEEE2.rtemp", &assign_GovHydroIEEE2_rtemp); + assign_map.emplace("GovHydroIEEE2.tg", &assign_GovHydroIEEE2_tg); + assign_map.emplace("GovHydroIEEE2.tp", &assign_GovHydroIEEE2_tp); + assign_map.emplace("GovHydroIEEE2.tr", &assign_GovHydroIEEE2_tr); + assign_map.emplace("GovHydroIEEE2.tw", &assign_GovHydroIEEE2_tw); + assign_map.emplace("GovHydroIEEE2.uc", &assign_GovHydroIEEE2_uc); + assign_map.emplace("GovHydroIEEE2.uo", &assign_GovHydroIEEE2_uo); } void GovHydroIEEE2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void GovHydroIEEE2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroIEEE2.aturb", &get_GovHydroIEEE2_aturb); - get_map.emplace("cim:GovHydroIEEE2.bturb", &get_GovHydroIEEE2_bturb); - get_map.emplace("cim:GovHydroIEEE2.gv1", &get_GovHydroIEEE2_gv1); - get_map.emplace("cim:GovHydroIEEE2.gv2", &get_GovHydroIEEE2_gv2); - get_map.emplace("cim:GovHydroIEEE2.gv3", &get_GovHydroIEEE2_gv3); - get_map.emplace("cim:GovHydroIEEE2.gv4", &get_GovHydroIEEE2_gv4); - get_map.emplace("cim:GovHydroIEEE2.gv5", &get_GovHydroIEEE2_gv5); - get_map.emplace("cim:GovHydroIEEE2.gv6", &get_GovHydroIEEE2_gv6); - get_map.emplace("cim:GovHydroIEEE2.kturb", &get_GovHydroIEEE2_kturb); - get_map.emplace("cim:GovHydroIEEE2.mwbase", &get_GovHydroIEEE2_mwbase); - get_map.emplace("cim:GovHydroIEEE2.pgv1", &get_GovHydroIEEE2_pgv1); - get_map.emplace("cim:GovHydroIEEE2.pgv2", &get_GovHydroIEEE2_pgv2); - get_map.emplace("cim:GovHydroIEEE2.pgv3", &get_GovHydroIEEE2_pgv3); - get_map.emplace("cim:GovHydroIEEE2.pgv4", &get_GovHydroIEEE2_pgv4); - get_map.emplace("cim:GovHydroIEEE2.pgv5", &get_GovHydroIEEE2_pgv5); - get_map.emplace("cim:GovHydroIEEE2.pgv6", &get_GovHydroIEEE2_pgv6); - get_map.emplace("cim:GovHydroIEEE2.pmax", &get_GovHydroIEEE2_pmax); - get_map.emplace("cim:GovHydroIEEE2.pmin", &get_GovHydroIEEE2_pmin); - get_map.emplace("cim:GovHydroIEEE2.rperm", &get_GovHydroIEEE2_rperm); - get_map.emplace("cim:GovHydroIEEE2.rtemp", &get_GovHydroIEEE2_rtemp); - get_map.emplace("cim:GovHydroIEEE2.tg", &get_GovHydroIEEE2_tg); - get_map.emplace("cim:GovHydroIEEE2.tp", &get_GovHydroIEEE2_tp); - get_map.emplace("cim:GovHydroIEEE2.tr", &get_GovHydroIEEE2_tr); - get_map.emplace("cim:GovHydroIEEE2.tw", &get_GovHydroIEEE2_tw); - get_map.emplace("cim:GovHydroIEEE2.uc", &get_GovHydroIEEE2_uc); - get_map.emplace("cim:GovHydroIEEE2.uo", &get_GovHydroIEEE2_uo); + get_map.emplace("GovHydroIEEE2.aturb", &get_GovHydroIEEE2_aturb); + get_map.emplace("GovHydroIEEE2.bturb", &get_GovHydroIEEE2_bturb); + get_map.emplace("GovHydroIEEE2.gv1", &get_GovHydroIEEE2_gv1); + get_map.emplace("GovHydroIEEE2.gv2", &get_GovHydroIEEE2_gv2); + get_map.emplace("GovHydroIEEE2.gv3", &get_GovHydroIEEE2_gv3); + get_map.emplace("GovHydroIEEE2.gv4", &get_GovHydroIEEE2_gv4); + get_map.emplace("GovHydroIEEE2.gv5", &get_GovHydroIEEE2_gv5); + get_map.emplace("GovHydroIEEE2.gv6", &get_GovHydroIEEE2_gv6); + get_map.emplace("GovHydroIEEE2.kturb", &get_GovHydroIEEE2_kturb); + get_map.emplace("GovHydroIEEE2.mwbase", &get_GovHydroIEEE2_mwbase); + get_map.emplace("GovHydroIEEE2.pgv1", &get_GovHydroIEEE2_pgv1); + get_map.emplace("GovHydroIEEE2.pgv2", &get_GovHydroIEEE2_pgv2); + get_map.emplace("GovHydroIEEE2.pgv3", &get_GovHydroIEEE2_pgv3); + get_map.emplace("GovHydroIEEE2.pgv4", &get_GovHydroIEEE2_pgv4); + get_map.emplace("GovHydroIEEE2.pgv5", &get_GovHydroIEEE2_pgv5); + get_map.emplace("GovHydroIEEE2.pgv6", &get_GovHydroIEEE2_pgv6); + get_map.emplace("GovHydroIEEE2.pmax", &get_GovHydroIEEE2_pmax); + get_map.emplace("GovHydroIEEE2.pmin", &get_GovHydroIEEE2_pmin); + get_map.emplace("GovHydroIEEE2.rperm", &get_GovHydroIEEE2_rperm); + get_map.emplace("GovHydroIEEE2.rtemp", &get_GovHydroIEEE2_rtemp); + get_map.emplace("GovHydroIEEE2.tg", &get_GovHydroIEEE2_tg); + get_map.emplace("GovHydroIEEE2.tp", &get_GovHydroIEEE2_tp); + get_map.emplace("GovHydroIEEE2.tr", &get_GovHydroIEEE2_tr); + get_map.emplace("GovHydroIEEE2.tw", &get_GovHydroIEEE2_tw); + get_map.emplace("GovHydroIEEE2.uc", &get_GovHydroIEEE2_uc); + get_map.emplace("GovHydroIEEE2.uo", &get_GovHydroIEEE2_uo); } void GovHydroIEEE2::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void GovHydroIEEE2::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroIEEE2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroIEEE2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroIEEE2::declare() { return BaseClassDefiner(GovHydroIEEE2::addConstructToMap, GovHydroIEEE2::addPrimitiveAssignFnsToMap, GovHydroIEEE2::addClassAssignFnsToMap, GovHydroIEEE2::debugName); } +std::map GovHydroIEEE2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroIEEE2_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroIEEE2.hpp b/CGMES_2.4.15_27JAN2020/GovHydroIEEE2.hpp index 33d231831..c12de5be8 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroIEEE2.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroIEEE2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -109,8 +110,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -118,7 +126,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroIEEE2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroPID.cpp b/CGMES_2.4.15_27JAN2020/GovHydroPID.cpp index 45136a44f..3631e2d9b 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroPID.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroPID.cpp @@ -11,64 +11,96 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPID(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPID.aturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.bturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPID::GovHydroPID() {} GovHydroPID::~GovHydroPID() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPID.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.r", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.td", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tf", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPID::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPID::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPID::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPID::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPID::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPID::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPID::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPID::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPID::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPID_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1036,44 +1068,44 @@ const char* GovHydroPID::debugString() const void GovHydroPID::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPID", &GovHydroPID_factory); + factory_map.emplace("GovHydroPID", &GovHydroPID_factory); } void GovHydroPID::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPID.aturb", &assign_GovHydroPID_aturb); - assign_map.emplace("cim:GovHydroPID.bturb", &assign_GovHydroPID_bturb); - assign_map.emplace("cim:GovHydroPID.db1", &assign_GovHydroPID_db1); - assign_map.emplace("cim:GovHydroPID.db2", &assign_GovHydroPID_db2); - assign_map.emplace("cim:GovHydroPID.eps", &assign_GovHydroPID_eps); - assign_map.emplace("cim:GovHydroPID.gv1", &assign_GovHydroPID_gv1); - assign_map.emplace("cim:GovHydroPID.gv2", &assign_GovHydroPID_gv2); - assign_map.emplace("cim:GovHydroPID.gv3", &assign_GovHydroPID_gv3); - assign_map.emplace("cim:GovHydroPID.gv4", &assign_GovHydroPID_gv4); - assign_map.emplace("cim:GovHydroPID.gv5", &assign_GovHydroPID_gv5); - assign_map.emplace("cim:GovHydroPID.gv6", &assign_GovHydroPID_gv6); - assign_map.emplace("cim:GovHydroPID.inputSignal", &assign_GovHydroPID_inputSignal); - assign_map.emplace("cim:GovHydroPID.kd", &assign_GovHydroPID_kd); - assign_map.emplace("cim:GovHydroPID.kg", &assign_GovHydroPID_kg); - assign_map.emplace("cim:GovHydroPID.ki", &assign_GovHydroPID_ki); - assign_map.emplace("cim:GovHydroPID.kp", &assign_GovHydroPID_kp); - assign_map.emplace("cim:GovHydroPID.mwbase", &assign_GovHydroPID_mwbase); - assign_map.emplace("cim:GovHydroPID.pgv1", &assign_GovHydroPID_pgv1); - assign_map.emplace("cim:GovHydroPID.pgv2", &assign_GovHydroPID_pgv2); - assign_map.emplace("cim:GovHydroPID.pgv3", &assign_GovHydroPID_pgv3); - assign_map.emplace("cim:GovHydroPID.pgv4", &assign_GovHydroPID_pgv4); - assign_map.emplace("cim:GovHydroPID.pgv5", &assign_GovHydroPID_pgv5); - assign_map.emplace("cim:GovHydroPID.pgv6", &assign_GovHydroPID_pgv6); - assign_map.emplace("cim:GovHydroPID.pmax", &assign_GovHydroPID_pmax); - assign_map.emplace("cim:GovHydroPID.pmin", &assign_GovHydroPID_pmin); - assign_map.emplace("cim:GovHydroPID.r", &assign_GovHydroPID_r); - assign_map.emplace("cim:GovHydroPID.td", &assign_GovHydroPID_td); - assign_map.emplace("cim:GovHydroPID.tf", &assign_GovHydroPID_tf); - assign_map.emplace("cim:GovHydroPID.tp", &assign_GovHydroPID_tp); - assign_map.emplace("cim:GovHydroPID.tt", &assign_GovHydroPID_tt); - assign_map.emplace("cim:GovHydroPID.tturb", &assign_GovHydroPID_tturb); - assign_map.emplace("cim:GovHydroPID.velcl", &assign_GovHydroPID_velcl); - assign_map.emplace("cim:GovHydroPID.velop", &assign_GovHydroPID_velop); + assign_map.emplace("GovHydroPID.aturb", &assign_GovHydroPID_aturb); + assign_map.emplace("GovHydroPID.bturb", &assign_GovHydroPID_bturb); + assign_map.emplace("GovHydroPID.db1", &assign_GovHydroPID_db1); + assign_map.emplace("GovHydroPID.db2", &assign_GovHydroPID_db2); + assign_map.emplace("GovHydroPID.eps", &assign_GovHydroPID_eps); + assign_map.emplace("GovHydroPID.gv1", &assign_GovHydroPID_gv1); + assign_map.emplace("GovHydroPID.gv2", &assign_GovHydroPID_gv2); + assign_map.emplace("GovHydroPID.gv3", &assign_GovHydroPID_gv3); + assign_map.emplace("GovHydroPID.gv4", &assign_GovHydroPID_gv4); + assign_map.emplace("GovHydroPID.gv5", &assign_GovHydroPID_gv5); + assign_map.emplace("GovHydroPID.gv6", &assign_GovHydroPID_gv6); + assign_map.emplace("GovHydroPID.inputSignal", &assign_GovHydroPID_inputSignal); + assign_map.emplace("GovHydroPID.kd", &assign_GovHydroPID_kd); + assign_map.emplace("GovHydroPID.kg", &assign_GovHydroPID_kg); + assign_map.emplace("GovHydroPID.ki", &assign_GovHydroPID_ki); + assign_map.emplace("GovHydroPID.kp", &assign_GovHydroPID_kp); + assign_map.emplace("GovHydroPID.mwbase", &assign_GovHydroPID_mwbase); + assign_map.emplace("GovHydroPID.pgv1", &assign_GovHydroPID_pgv1); + assign_map.emplace("GovHydroPID.pgv2", &assign_GovHydroPID_pgv2); + assign_map.emplace("GovHydroPID.pgv3", &assign_GovHydroPID_pgv3); + assign_map.emplace("GovHydroPID.pgv4", &assign_GovHydroPID_pgv4); + assign_map.emplace("GovHydroPID.pgv5", &assign_GovHydroPID_pgv5); + assign_map.emplace("GovHydroPID.pgv6", &assign_GovHydroPID_pgv6); + assign_map.emplace("GovHydroPID.pmax", &assign_GovHydroPID_pmax); + assign_map.emplace("GovHydroPID.pmin", &assign_GovHydroPID_pmin); + assign_map.emplace("GovHydroPID.r", &assign_GovHydroPID_r); + assign_map.emplace("GovHydroPID.td", &assign_GovHydroPID_td); + assign_map.emplace("GovHydroPID.tf", &assign_GovHydroPID_tf); + assign_map.emplace("GovHydroPID.tp", &assign_GovHydroPID_tp); + assign_map.emplace("GovHydroPID.tt", &assign_GovHydroPID_tt); + assign_map.emplace("GovHydroPID.tturb", &assign_GovHydroPID_tturb); + assign_map.emplace("GovHydroPID.velcl", &assign_GovHydroPID_velcl); + assign_map.emplace("GovHydroPID.velop", &assign_GovHydroPID_velop); } void GovHydroPID::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1083,39 +1115,39 @@ void GovHydroPID::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPID.aturb", &get_GovHydroPID_aturb); - get_map.emplace("cim:GovHydroPID.bturb", &get_GovHydroPID_bturb); - get_map.emplace("cim:GovHydroPID.db1", &get_GovHydroPID_db1); - get_map.emplace("cim:GovHydroPID.db2", &get_GovHydroPID_db2); - get_map.emplace("cim:GovHydroPID.eps", &get_GovHydroPID_eps); - get_map.emplace("cim:GovHydroPID.gv1", &get_GovHydroPID_gv1); - get_map.emplace("cim:GovHydroPID.gv2", &get_GovHydroPID_gv2); - get_map.emplace("cim:GovHydroPID.gv3", &get_GovHydroPID_gv3); - get_map.emplace("cim:GovHydroPID.gv4", &get_GovHydroPID_gv4); - get_map.emplace("cim:GovHydroPID.gv5", &get_GovHydroPID_gv5); - get_map.emplace("cim:GovHydroPID.gv6", &get_GovHydroPID_gv6); - get_map.emplace("cim:GovHydroPID.inputSignal", &get_GovHydroPID_inputSignal); - get_map.emplace("cim:GovHydroPID.kd", &get_GovHydroPID_kd); - get_map.emplace("cim:GovHydroPID.kg", &get_GovHydroPID_kg); - get_map.emplace("cim:GovHydroPID.ki", &get_GovHydroPID_ki); - get_map.emplace("cim:GovHydroPID.kp", &get_GovHydroPID_kp); - get_map.emplace("cim:GovHydroPID.mwbase", &get_GovHydroPID_mwbase); - get_map.emplace("cim:GovHydroPID.pgv1", &get_GovHydroPID_pgv1); - get_map.emplace("cim:GovHydroPID.pgv2", &get_GovHydroPID_pgv2); - get_map.emplace("cim:GovHydroPID.pgv3", &get_GovHydroPID_pgv3); - get_map.emplace("cim:GovHydroPID.pgv4", &get_GovHydroPID_pgv4); - get_map.emplace("cim:GovHydroPID.pgv5", &get_GovHydroPID_pgv5); - get_map.emplace("cim:GovHydroPID.pgv6", &get_GovHydroPID_pgv6); - get_map.emplace("cim:GovHydroPID.pmax", &get_GovHydroPID_pmax); - get_map.emplace("cim:GovHydroPID.pmin", &get_GovHydroPID_pmin); - get_map.emplace("cim:GovHydroPID.r", &get_GovHydroPID_r); - get_map.emplace("cim:GovHydroPID.td", &get_GovHydroPID_td); - get_map.emplace("cim:GovHydroPID.tf", &get_GovHydroPID_tf); - get_map.emplace("cim:GovHydroPID.tp", &get_GovHydroPID_tp); - get_map.emplace("cim:GovHydroPID.tt", &get_GovHydroPID_tt); - get_map.emplace("cim:GovHydroPID.tturb", &get_GovHydroPID_tturb); - get_map.emplace("cim:GovHydroPID.velcl", &get_GovHydroPID_velcl); - get_map.emplace("cim:GovHydroPID.velop", &get_GovHydroPID_velop); + get_map.emplace("GovHydroPID.aturb", &get_GovHydroPID_aturb); + get_map.emplace("GovHydroPID.bturb", &get_GovHydroPID_bturb); + get_map.emplace("GovHydroPID.db1", &get_GovHydroPID_db1); + get_map.emplace("GovHydroPID.db2", &get_GovHydroPID_db2); + get_map.emplace("GovHydroPID.eps", &get_GovHydroPID_eps); + get_map.emplace("GovHydroPID.gv1", &get_GovHydroPID_gv1); + get_map.emplace("GovHydroPID.gv2", &get_GovHydroPID_gv2); + get_map.emplace("GovHydroPID.gv3", &get_GovHydroPID_gv3); + get_map.emplace("GovHydroPID.gv4", &get_GovHydroPID_gv4); + get_map.emplace("GovHydroPID.gv5", &get_GovHydroPID_gv5); + get_map.emplace("GovHydroPID.gv6", &get_GovHydroPID_gv6); + get_map.emplace("GovHydroPID.inputSignal", &get_GovHydroPID_inputSignal); + get_map.emplace("GovHydroPID.kd", &get_GovHydroPID_kd); + get_map.emplace("GovHydroPID.kg", &get_GovHydroPID_kg); + get_map.emplace("GovHydroPID.ki", &get_GovHydroPID_ki); + get_map.emplace("GovHydroPID.kp", &get_GovHydroPID_kp); + get_map.emplace("GovHydroPID.mwbase", &get_GovHydroPID_mwbase); + get_map.emplace("GovHydroPID.pgv1", &get_GovHydroPID_pgv1); + get_map.emplace("GovHydroPID.pgv2", &get_GovHydroPID_pgv2); + get_map.emplace("GovHydroPID.pgv3", &get_GovHydroPID_pgv3); + get_map.emplace("GovHydroPID.pgv4", &get_GovHydroPID_pgv4); + get_map.emplace("GovHydroPID.pgv5", &get_GovHydroPID_pgv5); + get_map.emplace("GovHydroPID.pgv6", &get_GovHydroPID_pgv6); + get_map.emplace("GovHydroPID.pmax", &get_GovHydroPID_pmax); + get_map.emplace("GovHydroPID.pmin", &get_GovHydroPID_pmin); + get_map.emplace("GovHydroPID.r", &get_GovHydroPID_r); + get_map.emplace("GovHydroPID.td", &get_GovHydroPID_td); + get_map.emplace("GovHydroPID.tf", &get_GovHydroPID_tf); + get_map.emplace("GovHydroPID.tp", &get_GovHydroPID_tp); + get_map.emplace("GovHydroPID.tt", &get_GovHydroPID_tt); + get_map.emplace("GovHydroPID.tturb", &get_GovHydroPID_tturb); + get_map.emplace("GovHydroPID.velcl", &get_GovHydroPID_velcl); + get_map.emplace("GovHydroPID.velop", &get_GovHydroPID_velop); } void GovHydroPID::addClassGetFnsToMap(std::map& get_map) const @@ -1128,11 +1160,25 @@ void GovHydroPID::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPID::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPID" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPID::declare() { return BaseClassDefiner(GovHydroPID::addConstructToMap, GovHydroPID::addPrimitiveAssignFnsToMap, GovHydroPID::addClassAssignFnsToMap, GovHydroPID::debugName); } +std::map GovHydroPID::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPID_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroPID.hpp b/CGMES_2.4.15_27JAN2020/GovHydroPID.hpp index 2d69e696b..e21b35713 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroPID.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroPID.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -132,8 +133,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -141,7 +149,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPID_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroPID2.cpp b/CGMES_2.4.15_27JAN2020/GovHydroPID2.cpp index 59654db7b..a7f59b9b2 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroPID2.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroPID2.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPID2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPID2.atw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.feedbackSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.rperm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.treg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.velmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.velmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPID2::GovHydroPID2() {} GovHydroPID2::~GovHydroPID2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPID2.atw", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.d", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.feedbackSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g0", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.tb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.treg", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.velmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.velmin", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPID2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPID2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPID2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPID2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPID2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPID2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPID2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPID2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPID2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPID2_atw(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* GovHydroPID2::debugString() const void GovHydroPID2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPID2", &GovHydroPID2_factory); + factory_map.emplace("GovHydroPID2", &GovHydroPID2_factory); } void GovHydroPID2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPID2.atw", &assign_GovHydroPID2_atw); - assign_map.emplace("cim:GovHydroPID2.d", &assign_GovHydroPID2_d); - assign_map.emplace("cim:GovHydroPID2.feedbackSignal", &assign_GovHydroPID2_feedbackSignal); - assign_map.emplace("cim:GovHydroPID2.g0", &assign_GovHydroPID2_g0); - assign_map.emplace("cim:GovHydroPID2.g1", &assign_GovHydroPID2_g1); - assign_map.emplace("cim:GovHydroPID2.g2", &assign_GovHydroPID2_g2); - assign_map.emplace("cim:GovHydroPID2.gmax", &assign_GovHydroPID2_gmax); - assign_map.emplace("cim:GovHydroPID2.gmin", &assign_GovHydroPID2_gmin); - assign_map.emplace("cim:GovHydroPID2.kd", &assign_GovHydroPID2_kd); - assign_map.emplace("cim:GovHydroPID2.ki", &assign_GovHydroPID2_ki); - assign_map.emplace("cim:GovHydroPID2.kp", &assign_GovHydroPID2_kp); - assign_map.emplace("cim:GovHydroPID2.mwbase", &assign_GovHydroPID2_mwbase); - assign_map.emplace("cim:GovHydroPID2.p1", &assign_GovHydroPID2_p1); - assign_map.emplace("cim:GovHydroPID2.p2", &assign_GovHydroPID2_p2); - assign_map.emplace("cim:GovHydroPID2.p3", &assign_GovHydroPID2_p3); - assign_map.emplace("cim:GovHydroPID2.rperm", &assign_GovHydroPID2_rperm); - assign_map.emplace("cim:GovHydroPID2.ta", &assign_GovHydroPID2_ta); - assign_map.emplace("cim:GovHydroPID2.tb", &assign_GovHydroPID2_tb); - assign_map.emplace("cim:GovHydroPID2.treg", &assign_GovHydroPID2_treg); - assign_map.emplace("cim:GovHydroPID2.tw", &assign_GovHydroPID2_tw); - assign_map.emplace("cim:GovHydroPID2.velmax", &assign_GovHydroPID2_velmax); - assign_map.emplace("cim:GovHydroPID2.velmin", &assign_GovHydroPID2_velmin); + assign_map.emplace("GovHydroPID2.atw", &assign_GovHydroPID2_atw); + assign_map.emplace("GovHydroPID2.d", &assign_GovHydroPID2_d); + assign_map.emplace("GovHydroPID2.feedbackSignal", &assign_GovHydroPID2_feedbackSignal); + assign_map.emplace("GovHydroPID2.g0", &assign_GovHydroPID2_g0); + assign_map.emplace("GovHydroPID2.g1", &assign_GovHydroPID2_g1); + assign_map.emplace("GovHydroPID2.g2", &assign_GovHydroPID2_g2); + assign_map.emplace("GovHydroPID2.gmax", &assign_GovHydroPID2_gmax); + assign_map.emplace("GovHydroPID2.gmin", &assign_GovHydroPID2_gmin); + assign_map.emplace("GovHydroPID2.kd", &assign_GovHydroPID2_kd); + assign_map.emplace("GovHydroPID2.ki", &assign_GovHydroPID2_ki); + assign_map.emplace("GovHydroPID2.kp", &assign_GovHydroPID2_kp); + assign_map.emplace("GovHydroPID2.mwbase", &assign_GovHydroPID2_mwbase); + assign_map.emplace("GovHydroPID2.p1", &assign_GovHydroPID2_p1); + assign_map.emplace("GovHydroPID2.p2", &assign_GovHydroPID2_p2); + assign_map.emplace("GovHydroPID2.p3", &assign_GovHydroPID2_p3); + assign_map.emplace("GovHydroPID2.rperm", &assign_GovHydroPID2_rperm); + assign_map.emplace("GovHydroPID2.ta", &assign_GovHydroPID2_ta); + assign_map.emplace("GovHydroPID2.tb", &assign_GovHydroPID2_tb); + assign_map.emplace("GovHydroPID2.treg", &assign_GovHydroPID2_treg); + assign_map.emplace("GovHydroPID2.tw", &assign_GovHydroPID2_tw); + assign_map.emplace("GovHydroPID2.velmax", &assign_GovHydroPID2_velmax); + assign_map.emplace("GovHydroPID2.velmin", &assign_GovHydroPID2_velmin); } void GovHydroPID2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void GovHydroPID2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPID2.atw", &get_GovHydroPID2_atw); - get_map.emplace("cim:GovHydroPID2.d", &get_GovHydroPID2_d); - get_map.emplace("cim:GovHydroPID2.feedbackSignal", &get_GovHydroPID2_feedbackSignal); - get_map.emplace("cim:GovHydroPID2.g0", &get_GovHydroPID2_g0); - get_map.emplace("cim:GovHydroPID2.g1", &get_GovHydroPID2_g1); - get_map.emplace("cim:GovHydroPID2.g2", &get_GovHydroPID2_g2); - get_map.emplace("cim:GovHydroPID2.gmax", &get_GovHydroPID2_gmax); - get_map.emplace("cim:GovHydroPID2.gmin", &get_GovHydroPID2_gmin); - get_map.emplace("cim:GovHydroPID2.kd", &get_GovHydroPID2_kd); - get_map.emplace("cim:GovHydroPID2.ki", &get_GovHydroPID2_ki); - get_map.emplace("cim:GovHydroPID2.kp", &get_GovHydroPID2_kp); - get_map.emplace("cim:GovHydroPID2.mwbase", &get_GovHydroPID2_mwbase); - get_map.emplace("cim:GovHydroPID2.p1", &get_GovHydroPID2_p1); - get_map.emplace("cim:GovHydroPID2.p2", &get_GovHydroPID2_p2); - get_map.emplace("cim:GovHydroPID2.p3", &get_GovHydroPID2_p3); - get_map.emplace("cim:GovHydroPID2.rperm", &get_GovHydroPID2_rperm); - get_map.emplace("cim:GovHydroPID2.ta", &get_GovHydroPID2_ta); - get_map.emplace("cim:GovHydroPID2.tb", &get_GovHydroPID2_tb); - get_map.emplace("cim:GovHydroPID2.treg", &get_GovHydroPID2_treg); - get_map.emplace("cim:GovHydroPID2.tw", &get_GovHydroPID2_tw); - get_map.emplace("cim:GovHydroPID2.velmax", &get_GovHydroPID2_velmax); - get_map.emplace("cim:GovHydroPID2.velmin", &get_GovHydroPID2_velmin); + get_map.emplace("GovHydroPID2.atw", &get_GovHydroPID2_atw); + get_map.emplace("GovHydroPID2.d", &get_GovHydroPID2_d); + get_map.emplace("GovHydroPID2.feedbackSignal", &get_GovHydroPID2_feedbackSignal); + get_map.emplace("GovHydroPID2.g0", &get_GovHydroPID2_g0); + get_map.emplace("GovHydroPID2.g1", &get_GovHydroPID2_g1); + get_map.emplace("GovHydroPID2.g2", &get_GovHydroPID2_g2); + get_map.emplace("GovHydroPID2.gmax", &get_GovHydroPID2_gmax); + get_map.emplace("GovHydroPID2.gmin", &get_GovHydroPID2_gmin); + get_map.emplace("GovHydroPID2.kd", &get_GovHydroPID2_kd); + get_map.emplace("GovHydroPID2.ki", &get_GovHydroPID2_ki); + get_map.emplace("GovHydroPID2.kp", &get_GovHydroPID2_kp); + get_map.emplace("GovHydroPID2.mwbase", &get_GovHydroPID2_mwbase); + get_map.emplace("GovHydroPID2.p1", &get_GovHydroPID2_p1); + get_map.emplace("GovHydroPID2.p2", &get_GovHydroPID2_p2); + get_map.emplace("GovHydroPID2.p3", &get_GovHydroPID2_p3); + get_map.emplace("GovHydroPID2.rperm", &get_GovHydroPID2_rperm); + get_map.emplace("GovHydroPID2.ta", &get_GovHydroPID2_ta); + get_map.emplace("GovHydroPID2.tb", &get_GovHydroPID2_tb); + get_map.emplace("GovHydroPID2.treg", &get_GovHydroPID2_treg); + get_map.emplace("GovHydroPID2.tw", &get_GovHydroPID2_tw); + get_map.emplace("GovHydroPID2.velmax", &get_GovHydroPID2_velmax); + get_map.emplace("GovHydroPID2.velmin", &get_GovHydroPID2_velmin); } void GovHydroPID2::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void GovHydroPID2::addEnumGetFnsToMap(std::map& get_m TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPID2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPID2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPID2::declare() { return BaseClassDefiner(GovHydroPID2::addConstructToMap, GovHydroPID2::addPrimitiveAssignFnsToMap, GovHydroPID2::addClassAssignFnsToMap, GovHydroPID2::debugName); } +std::map GovHydroPID2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPID2_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroPID2.hpp b/CGMES_2.4.15_27JAN2020/GovHydroPID2.hpp index 3bbeb694e..3fb6cde1e 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroPID2.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroPID2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -98,8 +99,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -107,7 +115,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPID2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroPelton.cpp b/CGMES_2.4.15_27JAN2020/GovHydroPelton.cpp index 1f8f2bbfe..495ce5f7f 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroPelton.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroPelton.cpp @@ -11,59 +11,91 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPelton(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPelton.av0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.av1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.bp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.h1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.h2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.hn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.kc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.qc0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.qn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.simplifiedPelton", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.staticCompensating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.ts", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.twnc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.twng", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.tx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.va", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.valvmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.valvmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vav", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vcv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.waterTunnelSurgeChamberSimulation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.zsfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPelton::GovHydroPelton() {} GovHydroPelton::~GovHydroPelton() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPelton.av0", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.av1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.bp", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.h1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.h2", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.hn", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.kc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.qc0", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.qn", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.simplifiedPelton", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.staticCompensating", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.ts", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.tv", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.twnc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.twng", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.tx", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.va", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.valvmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.valvmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vav", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vcv", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.zsfc", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPelton::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPelton::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPelton::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPelton::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPelton::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPelton::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPelton::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPelton::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPelton::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPelton_av0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -886,39 +918,39 @@ const char* GovHydroPelton::debugString() const void GovHydroPelton::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPelton", &GovHydroPelton_factory); + factory_map.emplace("GovHydroPelton", &GovHydroPelton_factory); } void GovHydroPelton::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPelton.av0", &assign_GovHydroPelton_av0); - assign_map.emplace("cim:GovHydroPelton.av1", &assign_GovHydroPelton_av1); - assign_map.emplace("cim:GovHydroPelton.bp", &assign_GovHydroPelton_bp); - assign_map.emplace("cim:GovHydroPelton.db1", &assign_GovHydroPelton_db1); - assign_map.emplace("cim:GovHydroPelton.db2", &assign_GovHydroPelton_db2); - assign_map.emplace("cim:GovHydroPelton.h1", &assign_GovHydroPelton_h1); - assign_map.emplace("cim:GovHydroPelton.h2", &assign_GovHydroPelton_h2); - assign_map.emplace("cim:GovHydroPelton.hn", &assign_GovHydroPelton_hn); - assign_map.emplace("cim:GovHydroPelton.kc", &assign_GovHydroPelton_kc); - assign_map.emplace("cim:GovHydroPelton.kg", &assign_GovHydroPelton_kg); - assign_map.emplace("cim:GovHydroPelton.qc0", &assign_GovHydroPelton_qc0); - assign_map.emplace("cim:GovHydroPelton.qn", &assign_GovHydroPelton_qn); - assign_map.emplace("cim:GovHydroPelton.simplifiedPelton", &assign_GovHydroPelton_simplifiedPelton); - assign_map.emplace("cim:GovHydroPelton.staticCompensating", &assign_GovHydroPelton_staticCompensating); - assign_map.emplace("cim:GovHydroPelton.ta", &assign_GovHydroPelton_ta); - assign_map.emplace("cim:GovHydroPelton.ts", &assign_GovHydroPelton_ts); - assign_map.emplace("cim:GovHydroPelton.tv", &assign_GovHydroPelton_tv); - assign_map.emplace("cim:GovHydroPelton.twnc", &assign_GovHydroPelton_twnc); - assign_map.emplace("cim:GovHydroPelton.twng", &assign_GovHydroPelton_twng); - assign_map.emplace("cim:GovHydroPelton.tx", &assign_GovHydroPelton_tx); - assign_map.emplace("cim:GovHydroPelton.va", &assign_GovHydroPelton_va); - assign_map.emplace("cim:GovHydroPelton.valvmax", &assign_GovHydroPelton_valvmax); - assign_map.emplace("cim:GovHydroPelton.valvmin", &assign_GovHydroPelton_valvmin); - assign_map.emplace("cim:GovHydroPelton.vav", &assign_GovHydroPelton_vav); - assign_map.emplace("cim:GovHydroPelton.vc", &assign_GovHydroPelton_vc); - assign_map.emplace("cim:GovHydroPelton.vcv", &assign_GovHydroPelton_vcv); - assign_map.emplace("cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", &assign_GovHydroPelton_waterTunnelSurgeChamberSimulation); - assign_map.emplace("cim:GovHydroPelton.zsfc", &assign_GovHydroPelton_zsfc); + assign_map.emplace("GovHydroPelton.av0", &assign_GovHydroPelton_av0); + assign_map.emplace("GovHydroPelton.av1", &assign_GovHydroPelton_av1); + assign_map.emplace("GovHydroPelton.bp", &assign_GovHydroPelton_bp); + assign_map.emplace("GovHydroPelton.db1", &assign_GovHydroPelton_db1); + assign_map.emplace("GovHydroPelton.db2", &assign_GovHydroPelton_db2); + assign_map.emplace("GovHydroPelton.h1", &assign_GovHydroPelton_h1); + assign_map.emplace("GovHydroPelton.h2", &assign_GovHydroPelton_h2); + assign_map.emplace("GovHydroPelton.hn", &assign_GovHydroPelton_hn); + assign_map.emplace("GovHydroPelton.kc", &assign_GovHydroPelton_kc); + assign_map.emplace("GovHydroPelton.kg", &assign_GovHydroPelton_kg); + assign_map.emplace("GovHydroPelton.qc0", &assign_GovHydroPelton_qc0); + assign_map.emplace("GovHydroPelton.qn", &assign_GovHydroPelton_qn); + assign_map.emplace("GovHydroPelton.simplifiedPelton", &assign_GovHydroPelton_simplifiedPelton); + assign_map.emplace("GovHydroPelton.staticCompensating", &assign_GovHydroPelton_staticCompensating); + assign_map.emplace("GovHydroPelton.ta", &assign_GovHydroPelton_ta); + assign_map.emplace("GovHydroPelton.ts", &assign_GovHydroPelton_ts); + assign_map.emplace("GovHydroPelton.tv", &assign_GovHydroPelton_tv); + assign_map.emplace("GovHydroPelton.twnc", &assign_GovHydroPelton_twnc); + assign_map.emplace("GovHydroPelton.twng", &assign_GovHydroPelton_twng); + assign_map.emplace("GovHydroPelton.tx", &assign_GovHydroPelton_tx); + assign_map.emplace("GovHydroPelton.va", &assign_GovHydroPelton_va); + assign_map.emplace("GovHydroPelton.valvmax", &assign_GovHydroPelton_valvmax); + assign_map.emplace("GovHydroPelton.valvmin", &assign_GovHydroPelton_valvmin); + assign_map.emplace("GovHydroPelton.vav", &assign_GovHydroPelton_vav); + assign_map.emplace("GovHydroPelton.vc", &assign_GovHydroPelton_vc); + assign_map.emplace("GovHydroPelton.vcv", &assign_GovHydroPelton_vcv); + assign_map.emplace("GovHydroPelton.waterTunnelSurgeChamberSimulation", &assign_GovHydroPelton_waterTunnelSurgeChamberSimulation); + assign_map.emplace("GovHydroPelton.zsfc", &assign_GovHydroPelton_zsfc); } void GovHydroPelton::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -928,34 +960,34 @@ void GovHydroPelton::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPelton.av0", &get_GovHydroPelton_av0); - get_map.emplace("cim:GovHydroPelton.av1", &get_GovHydroPelton_av1); - get_map.emplace("cim:GovHydroPelton.bp", &get_GovHydroPelton_bp); - get_map.emplace("cim:GovHydroPelton.db1", &get_GovHydroPelton_db1); - get_map.emplace("cim:GovHydroPelton.db2", &get_GovHydroPelton_db2); - get_map.emplace("cim:GovHydroPelton.h1", &get_GovHydroPelton_h1); - get_map.emplace("cim:GovHydroPelton.h2", &get_GovHydroPelton_h2); - get_map.emplace("cim:GovHydroPelton.hn", &get_GovHydroPelton_hn); - get_map.emplace("cim:GovHydroPelton.kc", &get_GovHydroPelton_kc); - get_map.emplace("cim:GovHydroPelton.kg", &get_GovHydroPelton_kg); - get_map.emplace("cim:GovHydroPelton.qc0", &get_GovHydroPelton_qc0); - get_map.emplace("cim:GovHydroPelton.qn", &get_GovHydroPelton_qn); - get_map.emplace("cim:GovHydroPelton.simplifiedPelton", &get_GovHydroPelton_simplifiedPelton); - get_map.emplace("cim:GovHydroPelton.staticCompensating", &get_GovHydroPelton_staticCompensating); - get_map.emplace("cim:GovHydroPelton.ta", &get_GovHydroPelton_ta); - get_map.emplace("cim:GovHydroPelton.ts", &get_GovHydroPelton_ts); - get_map.emplace("cim:GovHydroPelton.tv", &get_GovHydroPelton_tv); - get_map.emplace("cim:GovHydroPelton.twnc", &get_GovHydroPelton_twnc); - get_map.emplace("cim:GovHydroPelton.twng", &get_GovHydroPelton_twng); - get_map.emplace("cim:GovHydroPelton.tx", &get_GovHydroPelton_tx); - get_map.emplace("cim:GovHydroPelton.va", &get_GovHydroPelton_va); - get_map.emplace("cim:GovHydroPelton.valvmax", &get_GovHydroPelton_valvmax); - get_map.emplace("cim:GovHydroPelton.valvmin", &get_GovHydroPelton_valvmin); - get_map.emplace("cim:GovHydroPelton.vav", &get_GovHydroPelton_vav); - get_map.emplace("cim:GovHydroPelton.vc", &get_GovHydroPelton_vc); - get_map.emplace("cim:GovHydroPelton.vcv", &get_GovHydroPelton_vcv); - get_map.emplace("cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", &get_GovHydroPelton_waterTunnelSurgeChamberSimulation); - get_map.emplace("cim:GovHydroPelton.zsfc", &get_GovHydroPelton_zsfc); + get_map.emplace("GovHydroPelton.av0", &get_GovHydroPelton_av0); + get_map.emplace("GovHydroPelton.av1", &get_GovHydroPelton_av1); + get_map.emplace("GovHydroPelton.bp", &get_GovHydroPelton_bp); + get_map.emplace("GovHydroPelton.db1", &get_GovHydroPelton_db1); + get_map.emplace("GovHydroPelton.db2", &get_GovHydroPelton_db2); + get_map.emplace("GovHydroPelton.h1", &get_GovHydroPelton_h1); + get_map.emplace("GovHydroPelton.h2", &get_GovHydroPelton_h2); + get_map.emplace("GovHydroPelton.hn", &get_GovHydroPelton_hn); + get_map.emplace("GovHydroPelton.kc", &get_GovHydroPelton_kc); + get_map.emplace("GovHydroPelton.kg", &get_GovHydroPelton_kg); + get_map.emplace("GovHydroPelton.qc0", &get_GovHydroPelton_qc0); + get_map.emplace("GovHydroPelton.qn", &get_GovHydroPelton_qn); + get_map.emplace("GovHydroPelton.simplifiedPelton", &get_GovHydroPelton_simplifiedPelton); + get_map.emplace("GovHydroPelton.staticCompensating", &get_GovHydroPelton_staticCompensating); + get_map.emplace("GovHydroPelton.ta", &get_GovHydroPelton_ta); + get_map.emplace("GovHydroPelton.ts", &get_GovHydroPelton_ts); + get_map.emplace("GovHydroPelton.tv", &get_GovHydroPelton_tv); + get_map.emplace("GovHydroPelton.twnc", &get_GovHydroPelton_twnc); + get_map.emplace("GovHydroPelton.twng", &get_GovHydroPelton_twng); + get_map.emplace("GovHydroPelton.tx", &get_GovHydroPelton_tx); + get_map.emplace("GovHydroPelton.va", &get_GovHydroPelton_va); + get_map.emplace("GovHydroPelton.valvmax", &get_GovHydroPelton_valvmax); + get_map.emplace("GovHydroPelton.valvmin", &get_GovHydroPelton_valvmin); + get_map.emplace("GovHydroPelton.vav", &get_GovHydroPelton_vav); + get_map.emplace("GovHydroPelton.vc", &get_GovHydroPelton_vc); + get_map.emplace("GovHydroPelton.vcv", &get_GovHydroPelton_vcv); + get_map.emplace("GovHydroPelton.waterTunnelSurgeChamberSimulation", &get_GovHydroPelton_waterTunnelSurgeChamberSimulation); + get_map.emplace("GovHydroPelton.zsfc", &get_GovHydroPelton_zsfc); } void GovHydroPelton::addClassGetFnsToMap(std::map& get_map) const @@ -968,11 +1000,25 @@ void GovHydroPelton::addEnumGetFnsToMap(std::map& get TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPelton::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPelton" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPelton::declare() { return BaseClassDefiner(GovHydroPelton::addConstructToMap, GovHydroPelton::addPrimitiveAssignFnsToMap, GovHydroPelton::addClassAssignFnsToMap, GovHydroPelton::debugName); } +std::map GovHydroPelton::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPelton_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroPelton.hpp b/CGMES_2.4.15_27JAN2020/GovHydroPelton.hpp index 8536bb331..1e3880ca5 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroPelton.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroPelton.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Area.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -119,8 +120,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -128,7 +136,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPelton_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroR.cpp b/CGMES_2.4.15_27JAN2020/GovHydroR.cpp index b98e8cfc6..5d7193936 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroR.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroR.cpp @@ -11,73 +11,105 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroR(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroR.at", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.h0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.inputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.kg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.qnl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.velcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroR.velop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroR::GovHydroR() {} GovHydroR::~GovHydroR() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroR.at", { CGMESProfile::DY, } }, - { "cim:GovHydroR.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydroR.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.h0", { CGMESProfile::DY, } }, - { "cim:GovHydroR.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroR.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroR.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroR.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroR.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydroR.r", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t7", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t8", { CGMESProfile::DY, } }, - { "cim:GovHydroR.td", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroR.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroR.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroR::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroR::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroR::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroR::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroR::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroR::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroR::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroR::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroR::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroR_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1306,53 +1338,53 @@ const char* GovHydroR::debugString() const void GovHydroR::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroR", &GovHydroR_factory); + factory_map.emplace("GovHydroR", &GovHydroR_factory); } void GovHydroR::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroR.at", &assign_GovHydroR_at); - assign_map.emplace("cim:GovHydroR.db1", &assign_GovHydroR_db1); - assign_map.emplace("cim:GovHydroR.db2", &assign_GovHydroR_db2); - assign_map.emplace("cim:GovHydroR.dturb", &assign_GovHydroR_dturb); - assign_map.emplace("cim:GovHydroR.eps", &assign_GovHydroR_eps); - assign_map.emplace("cim:GovHydroR.gmax", &assign_GovHydroR_gmax); - assign_map.emplace("cim:GovHydroR.gmin", &assign_GovHydroR_gmin); - assign_map.emplace("cim:GovHydroR.gv1", &assign_GovHydroR_gv1); - assign_map.emplace("cim:GovHydroR.gv2", &assign_GovHydroR_gv2); - assign_map.emplace("cim:GovHydroR.gv3", &assign_GovHydroR_gv3); - assign_map.emplace("cim:GovHydroR.gv4", &assign_GovHydroR_gv4); - assign_map.emplace("cim:GovHydroR.gv5", &assign_GovHydroR_gv5); - assign_map.emplace("cim:GovHydroR.gv6", &assign_GovHydroR_gv6); - assign_map.emplace("cim:GovHydroR.h0", &assign_GovHydroR_h0); - assign_map.emplace("cim:GovHydroR.inputSignal", &assign_GovHydroR_inputSignal); - assign_map.emplace("cim:GovHydroR.kg", &assign_GovHydroR_kg); - assign_map.emplace("cim:GovHydroR.ki", &assign_GovHydroR_ki); - assign_map.emplace("cim:GovHydroR.mwbase", &assign_GovHydroR_mwbase); - assign_map.emplace("cim:GovHydroR.pgv1", &assign_GovHydroR_pgv1); - assign_map.emplace("cim:GovHydroR.pgv2", &assign_GovHydroR_pgv2); - assign_map.emplace("cim:GovHydroR.pgv3", &assign_GovHydroR_pgv3); - assign_map.emplace("cim:GovHydroR.pgv4", &assign_GovHydroR_pgv4); - assign_map.emplace("cim:GovHydroR.pgv5", &assign_GovHydroR_pgv5); - assign_map.emplace("cim:GovHydroR.pgv6", &assign_GovHydroR_pgv6); - assign_map.emplace("cim:GovHydroR.pmax", &assign_GovHydroR_pmax); - assign_map.emplace("cim:GovHydroR.pmin", &assign_GovHydroR_pmin); - assign_map.emplace("cim:GovHydroR.qnl", &assign_GovHydroR_qnl); - assign_map.emplace("cim:GovHydroR.r", &assign_GovHydroR_r); - assign_map.emplace("cim:GovHydroR.t1", &assign_GovHydroR_t1); - assign_map.emplace("cim:GovHydroR.t2", &assign_GovHydroR_t2); - assign_map.emplace("cim:GovHydroR.t3", &assign_GovHydroR_t3); - assign_map.emplace("cim:GovHydroR.t4", &assign_GovHydroR_t4); - assign_map.emplace("cim:GovHydroR.t5", &assign_GovHydroR_t5); - assign_map.emplace("cim:GovHydroR.t6", &assign_GovHydroR_t6); - assign_map.emplace("cim:GovHydroR.t7", &assign_GovHydroR_t7); - assign_map.emplace("cim:GovHydroR.t8", &assign_GovHydroR_t8); - assign_map.emplace("cim:GovHydroR.td", &assign_GovHydroR_td); - assign_map.emplace("cim:GovHydroR.tp", &assign_GovHydroR_tp); - assign_map.emplace("cim:GovHydroR.tt", &assign_GovHydroR_tt); - assign_map.emplace("cim:GovHydroR.tw", &assign_GovHydroR_tw); - assign_map.emplace("cim:GovHydroR.velcl", &assign_GovHydroR_velcl); - assign_map.emplace("cim:GovHydroR.velop", &assign_GovHydroR_velop); + assign_map.emplace("GovHydroR.at", &assign_GovHydroR_at); + assign_map.emplace("GovHydroR.db1", &assign_GovHydroR_db1); + assign_map.emplace("GovHydroR.db2", &assign_GovHydroR_db2); + assign_map.emplace("GovHydroR.dturb", &assign_GovHydroR_dturb); + assign_map.emplace("GovHydroR.eps", &assign_GovHydroR_eps); + assign_map.emplace("GovHydroR.gmax", &assign_GovHydroR_gmax); + assign_map.emplace("GovHydroR.gmin", &assign_GovHydroR_gmin); + assign_map.emplace("GovHydroR.gv1", &assign_GovHydroR_gv1); + assign_map.emplace("GovHydroR.gv2", &assign_GovHydroR_gv2); + assign_map.emplace("GovHydroR.gv3", &assign_GovHydroR_gv3); + assign_map.emplace("GovHydroR.gv4", &assign_GovHydroR_gv4); + assign_map.emplace("GovHydroR.gv5", &assign_GovHydroR_gv5); + assign_map.emplace("GovHydroR.gv6", &assign_GovHydroR_gv6); + assign_map.emplace("GovHydroR.h0", &assign_GovHydroR_h0); + assign_map.emplace("GovHydroR.inputSignal", &assign_GovHydroR_inputSignal); + assign_map.emplace("GovHydroR.kg", &assign_GovHydroR_kg); + assign_map.emplace("GovHydroR.ki", &assign_GovHydroR_ki); + assign_map.emplace("GovHydroR.mwbase", &assign_GovHydroR_mwbase); + assign_map.emplace("GovHydroR.pgv1", &assign_GovHydroR_pgv1); + assign_map.emplace("GovHydroR.pgv2", &assign_GovHydroR_pgv2); + assign_map.emplace("GovHydroR.pgv3", &assign_GovHydroR_pgv3); + assign_map.emplace("GovHydroR.pgv4", &assign_GovHydroR_pgv4); + assign_map.emplace("GovHydroR.pgv5", &assign_GovHydroR_pgv5); + assign_map.emplace("GovHydroR.pgv6", &assign_GovHydroR_pgv6); + assign_map.emplace("GovHydroR.pmax", &assign_GovHydroR_pmax); + assign_map.emplace("GovHydroR.pmin", &assign_GovHydroR_pmin); + assign_map.emplace("GovHydroR.qnl", &assign_GovHydroR_qnl); + assign_map.emplace("GovHydroR.r", &assign_GovHydroR_r); + assign_map.emplace("GovHydroR.t1", &assign_GovHydroR_t1); + assign_map.emplace("GovHydroR.t2", &assign_GovHydroR_t2); + assign_map.emplace("GovHydroR.t3", &assign_GovHydroR_t3); + assign_map.emplace("GovHydroR.t4", &assign_GovHydroR_t4); + assign_map.emplace("GovHydroR.t5", &assign_GovHydroR_t5); + assign_map.emplace("GovHydroR.t6", &assign_GovHydroR_t6); + assign_map.emplace("GovHydroR.t7", &assign_GovHydroR_t7); + assign_map.emplace("GovHydroR.t8", &assign_GovHydroR_t8); + assign_map.emplace("GovHydroR.td", &assign_GovHydroR_td); + assign_map.emplace("GovHydroR.tp", &assign_GovHydroR_tp); + assign_map.emplace("GovHydroR.tt", &assign_GovHydroR_tt); + assign_map.emplace("GovHydroR.tw", &assign_GovHydroR_tw); + assign_map.emplace("GovHydroR.velcl", &assign_GovHydroR_velcl); + assign_map.emplace("GovHydroR.velop", &assign_GovHydroR_velop); } void GovHydroR::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1362,48 +1394,48 @@ void GovHydroR::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroR.at", &get_GovHydroR_at); - get_map.emplace("cim:GovHydroR.db1", &get_GovHydroR_db1); - get_map.emplace("cim:GovHydroR.db2", &get_GovHydroR_db2); - get_map.emplace("cim:GovHydroR.dturb", &get_GovHydroR_dturb); - get_map.emplace("cim:GovHydroR.eps", &get_GovHydroR_eps); - get_map.emplace("cim:GovHydroR.gmax", &get_GovHydroR_gmax); - get_map.emplace("cim:GovHydroR.gmin", &get_GovHydroR_gmin); - get_map.emplace("cim:GovHydroR.gv1", &get_GovHydroR_gv1); - get_map.emplace("cim:GovHydroR.gv2", &get_GovHydroR_gv2); - get_map.emplace("cim:GovHydroR.gv3", &get_GovHydroR_gv3); - get_map.emplace("cim:GovHydroR.gv4", &get_GovHydroR_gv4); - get_map.emplace("cim:GovHydroR.gv5", &get_GovHydroR_gv5); - get_map.emplace("cim:GovHydroR.gv6", &get_GovHydroR_gv6); - get_map.emplace("cim:GovHydroR.h0", &get_GovHydroR_h0); - get_map.emplace("cim:GovHydroR.inputSignal", &get_GovHydroR_inputSignal); - get_map.emplace("cim:GovHydroR.kg", &get_GovHydroR_kg); - get_map.emplace("cim:GovHydroR.ki", &get_GovHydroR_ki); - get_map.emplace("cim:GovHydroR.mwbase", &get_GovHydroR_mwbase); - get_map.emplace("cim:GovHydroR.pgv1", &get_GovHydroR_pgv1); - get_map.emplace("cim:GovHydroR.pgv2", &get_GovHydroR_pgv2); - get_map.emplace("cim:GovHydroR.pgv3", &get_GovHydroR_pgv3); - get_map.emplace("cim:GovHydroR.pgv4", &get_GovHydroR_pgv4); - get_map.emplace("cim:GovHydroR.pgv5", &get_GovHydroR_pgv5); - get_map.emplace("cim:GovHydroR.pgv6", &get_GovHydroR_pgv6); - get_map.emplace("cim:GovHydroR.pmax", &get_GovHydroR_pmax); - get_map.emplace("cim:GovHydroR.pmin", &get_GovHydroR_pmin); - get_map.emplace("cim:GovHydroR.qnl", &get_GovHydroR_qnl); - get_map.emplace("cim:GovHydroR.r", &get_GovHydroR_r); - get_map.emplace("cim:GovHydroR.t1", &get_GovHydroR_t1); - get_map.emplace("cim:GovHydroR.t2", &get_GovHydroR_t2); - get_map.emplace("cim:GovHydroR.t3", &get_GovHydroR_t3); - get_map.emplace("cim:GovHydroR.t4", &get_GovHydroR_t4); - get_map.emplace("cim:GovHydroR.t5", &get_GovHydroR_t5); - get_map.emplace("cim:GovHydroR.t6", &get_GovHydroR_t6); - get_map.emplace("cim:GovHydroR.t7", &get_GovHydroR_t7); - get_map.emplace("cim:GovHydroR.t8", &get_GovHydroR_t8); - get_map.emplace("cim:GovHydroR.td", &get_GovHydroR_td); - get_map.emplace("cim:GovHydroR.tp", &get_GovHydroR_tp); - get_map.emplace("cim:GovHydroR.tt", &get_GovHydroR_tt); - get_map.emplace("cim:GovHydroR.tw", &get_GovHydroR_tw); - get_map.emplace("cim:GovHydroR.velcl", &get_GovHydroR_velcl); - get_map.emplace("cim:GovHydroR.velop", &get_GovHydroR_velop); + get_map.emplace("GovHydroR.at", &get_GovHydroR_at); + get_map.emplace("GovHydroR.db1", &get_GovHydroR_db1); + get_map.emplace("GovHydroR.db2", &get_GovHydroR_db2); + get_map.emplace("GovHydroR.dturb", &get_GovHydroR_dturb); + get_map.emplace("GovHydroR.eps", &get_GovHydroR_eps); + get_map.emplace("GovHydroR.gmax", &get_GovHydroR_gmax); + get_map.emplace("GovHydroR.gmin", &get_GovHydroR_gmin); + get_map.emplace("GovHydroR.gv1", &get_GovHydroR_gv1); + get_map.emplace("GovHydroR.gv2", &get_GovHydroR_gv2); + get_map.emplace("GovHydroR.gv3", &get_GovHydroR_gv3); + get_map.emplace("GovHydroR.gv4", &get_GovHydroR_gv4); + get_map.emplace("GovHydroR.gv5", &get_GovHydroR_gv5); + get_map.emplace("GovHydroR.gv6", &get_GovHydroR_gv6); + get_map.emplace("GovHydroR.h0", &get_GovHydroR_h0); + get_map.emplace("GovHydroR.inputSignal", &get_GovHydroR_inputSignal); + get_map.emplace("GovHydroR.kg", &get_GovHydroR_kg); + get_map.emplace("GovHydroR.ki", &get_GovHydroR_ki); + get_map.emplace("GovHydroR.mwbase", &get_GovHydroR_mwbase); + get_map.emplace("GovHydroR.pgv1", &get_GovHydroR_pgv1); + get_map.emplace("GovHydroR.pgv2", &get_GovHydroR_pgv2); + get_map.emplace("GovHydroR.pgv3", &get_GovHydroR_pgv3); + get_map.emplace("GovHydroR.pgv4", &get_GovHydroR_pgv4); + get_map.emplace("GovHydroR.pgv5", &get_GovHydroR_pgv5); + get_map.emplace("GovHydroR.pgv6", &get_GovHydroR_pgv6); + get_map.emplace("GovHydroR.pmax", &get_GovHydroR_pmax); + get_map.emplace("GovHydroR.pmin", &get_GovHydroR_pmin); + get_map.emplace("GovHydroR.qnl", &get_GovHydroR_qnl); + get_map.emplace("GovHydroR.r", &get_GovHydroR_r); + get_map.emplace("GovHydroR.t1", &get_GovHydroR_t1); + get_map.emplace("GovHydroR.t2", &get_GovHydroR_t2); + get_map.emplace("GovHydroR.t3", &get_GovHydroR_t3); + get_map.emplace("GovHydroR.t4", &get_GovHydroR_t4); + get_map.emplace("GovHydroR.t5", &get_GovHydroR_t5); + get_map.emplace("GovHydroR.t6", &get_GovHydroR_t6); + get_map.emplace("GovHydroR.t7", &get_GovHydroR_t7); + get_map.emplace("GovHydroR.t8", &get_GovHydroR_t8); + get_map.emplace("GovHydroR.td", &get_GovHydroR_td); + get_map.emplace("GovHydroR.tp", &get_GovHydroR_tp); + get_map.emplace("GovHydroR.tt", &get_GovHydroR_tt); + get_map.emplace("GovHydroR.tw", &get_GovHydroR_tw); + get_map.emplace("GovHydroR.velcl", &get_GovHydroR_velcl); + get_map.emplace("GovHydroR.velop", &get_GovHydroR_velop); } void GovHydroR::addClassGetFnsToMap(std::map& get_map) const @@ -1416,11 +1448,25 @@ void GovHydroR::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroR::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroR" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroR::declare() { return BaseClassDefiner(GovHydroR::addConstructToMap, GovHydroR::addPrimitiveAssignFnsToMap, GovHydroR::addClassAssignFnsToMap, GovHydroR::debugName); } +std::map GovHydroR::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroR_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroR.hpp b/CGMES_2.4.15_27JAN2020/GovHydroR.hpp index a14a39e56..584c41f87 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroR.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroR.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -159,8 +160,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -168,7 +176,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroR_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroWEH.cpp b/CGMES_2.4.15_27JAN2020/GovHydroWEH.cpp index a59096688..c237f3167 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroWEH.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroWEH.cpp @@ -11,82 +11,114 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroWEH(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroWEH.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dicn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dpv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dturb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.feedbackSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gtmxcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gtmxop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.rpg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.rpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tdv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroWEH::GovHydroWEH() {} GovHydroWEH::~GovHydroWEH() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroWEH.db", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dicn", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dpv", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.feedbackSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp10", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp6", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp7", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp8", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp9", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gtmxcl", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gtmxop", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss10", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss6", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss7", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss8", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss9", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.rpg", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.rpp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.td", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tdv", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tg", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tpe", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tw", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroWEH::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroWEH::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroWEH::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroWEH::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroWEH::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroWEH::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroWEH::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroWEH::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroWEH::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroWEH_db(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1576,62 +1608,62 @@ const char* GovHydroWEH::debugString() const void GovHydroWEH::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroWEH", &GovHydroWEH_factory); + factory_map.emplace("GovHydroWEH", &GovHydroWEH_factory); } void GovHydroWEH::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroWEH.db", &assign_GovHydroWEH_db); - assign_map.emplace("cim:GovHydroWEH.dicn", &assign_GovHydroWEH_dicn); - assign_map.emplace("cim:GovHydroWEH.dpv", &assign_GovHydroWEH_dpv); - assign_map.emplace("cim:GovHydroWEH.dturb", &assign_GovHydroWEH_dturb); - assign_map.emplace("cim:GovHydroWEH.feedbackSignal", &assign_GovHydroWEH_feedbackSignal); - assign_map.emplace("cim:GovHydroWEH.fl1", &assign_GovHydroWEH_fl1); - assign_map.emplace("cim:GovHydroWEH.fl2", &assign_GovHydroWEH_fl2); - assign_map.emplace("cim:GovHydroWEH.fl3", &assign_GovHydroWEH_fl3); - assign_map.emplace("cim:GovHydroWEH.fl4", &assign_GovHydroWEH_fl4); - assign_map.emplace("cim:GovHydroWEH.fl5", &assign_GovHydroWEH_fl5); - assign_map.emplace("cim:GovHydroWEH.fp1", &assign_GovHydroWEH_fp1); - assign_map.emplace("cim:GovHydroWEH.fp10", &assign_GovHydroWEH_fp10); - assign_map.emplace("cim:GovHydroWEH.fp2", &assign_GovHydroWEH_fp2); - assign_map.emplace("cim:GovHydroWEH.fp3", &assign_GovHydroWEH_fp3); - assign_map.emplace("cim:GovHydroWEH.fp4", &assign_GovHydroWEH_fp4); - assign_map.emplace("cim:GovHydroWEH.fp5", &assign_GovHydroWEH_fp5); - assign_map.emplace("cim:GovHydroWEH.fp6", &assign_GovHydroWEH_fp6); - assign_map.emplace("cim:GovHydroWEH.fp7", &assign_GovHydroWEH_fp7); - assign_map.emplace("cim:GovHydroWEH.fp8", &assign_GovHydroWEH_fp8); - assign_map.emplace("cim:GovHydroWEH.fp9", &assign_GovHydroWEH_fp9); - assign_map.emplace("cim:GovHydroWEH.gmax", &assign_GovHydroWEH_gmax); - assign_map.emplace("cim:GovHydroWEH.gmin", &assign_GovHydroWEH_gmin); - assign_map.emplace("cim:GovHydroWEH.gtmxcl", &assign_GovHydroWEH_gtmxcl); - assign_map.emplace("cim:GovHydroWEH.gtmxop", &assign_GovHydroWEH_gtmxop); - assign_map.emplace("cim:GovHydroWEH.gv1", &assign_GovHydroWEH_gv1); - assign_map.emplace("cim:GovHydroWEH.gv2", &assign_GovHydroWEH_gv2); - assign_map.emplace("cim:GovHydroWEH.gv3", &assign_GovHydroWEH_gv3); - assign_map.emplace("cim:GovHydroWEH.gv4", &assign_GovHydroWEH_gv4); - assign_map.emplace("cim:GovHydroWEH.gv5", &assign_GovHydroWEH_gv5); - assign_map.emplace("cim:GovHydroWEH.kd", &assign_GovHydroWEH_kd); - assign_map.emplace("cim:GovHydroWEH.ki", &assign_GovHydroWEH_ki); - assign_map.emplace("cim:GovHydroWEH.kp", &assign_GovHydroWEH_kp); - assign_map.emplace("cim:GovHydroWEH.mwbase", &assign_GovHydroWEH_mwbase); - assign_map.emplace("cim:GovHydroWEH.pmss1", &assign_GovHydroWEH_pmss1); - assign_map.emplace("cim:GovHydroWEH.pmss10", &assign_GovHydroWEH_pmss10); - assign_map.emplace("cim:GovHydroWEH.pmss2", &assign_GovHydroWEH_pmss2); - assign_map.emplace("cim:GovHydroWEH.pmss3", &assign_GovHydroWEH_pmss3); - assign_map.emplace("cim:GovHydroWEH.pmss4", &assign_GovHydroWEH_pmss4); - assign_map.emplace("cim:GovHydroWEH.pmss5", &assign_GovHydroWEH_pmss5); - assign_map.emplace("cim:GovHydroWEH.pmss6", &assign_GovHydroWEH_pmss6); - assign_map.emplace("cim:GovHydroWEH.pmss7", &assign_GovHydroWEH_pmss7); - assign_map.emplace("cim:GovHydroWEH.pmss8", &assign_GovHydroWEH_pmss8); - assign_map.emplace("cim:GovHydroWEH.pmss9", &assign_GovHydroWEH_pmss9); - assign_map.emplace("cim:GovHydroWEH.rpg", &assign_GovHydroWEH_rpg); - assign_map.emplace("cim:GovHydroWEH.rpp", &assign_GovHydroWEH_rpp); - assign_map.emplace("cim:GovHydroWEH.td", &assign_GovHydroWEH_td); - assign_map.emplace("cim:GovHydroWEH.tdv", &assign_GovHydroWEH_tdv); - assign_map.emplace("cim:GovHydroWEH.tg", &assign_GovHydroWEH_tg); - assign_map.emplace("cim:GovHydroWEH.tp", &assign_GovHydroWEH_tp); - assign_map.emplace("cim:GovHydroWEH.tpe", &assign_GovHydroWEH_tpe); - assign_map.emplace("cim:GovHydroWEH.tw", &assign_GovHydroWEH_tw); + assign_map.emplace("GovHydroWEH.db", &assign_GovHydroWEH_db); + assign_map.emplace("GovHydroWEH.dicn", &assign_GovHydroWEH_dicn); + assign_map.emplace("GovHydroWEH.dpv", &assign_GovHydroWEH_dpv); + assign_map.emplace("GovHydroWEH.dturb", &assign_GovHydroWEH_dturb); + assign_map.emplace("GovHydroWEH.feedbackSignal", &assign_GovHydroWEH_feedbackSignal); + assign_map.emplace("GovHydroWEH.fl1", &assign_GovHydroWEH_fl1); + assign_map.emplace("GovHydroWEH.fl2", &assign_GovHydroWEH_fl2); + assign_map.emplace("GovHydroWEH.fl3", &assign_GovHydroWEH_fl3); + assign_map.emplace("GovHydroWEH.fl4", &assign_GovHydroWEH_fl4); + assign_map.emplace("GovHydroWEH.fl5", &assign_GovHydroWEH_fl5); + assign_map.emplace("GovHydroWEH.fp1", &assign_GovHydroWEH_fp1); + assign_map.emplace("GovHydroWEH.fp10", &assign_GovHydroWEH_fp10); + assign_map.emplace("GovHydroWEH.fp2", &assign_GovHydroWEH_fp2); + assign_map.emplace("GovHydroWEH.fp3", &assign_GovHydroWEH_fp3); + assign_map.emplace("GovHydroWEH.fp4", &assign_GovHydroWEH_fp4); + assign_map.emplace("GovHydroWEH.fp5", &assign_GovHydroWEH_fp5); + assign_map.emplace("GovHydroWEH.fp6", &assign_GovHydroWEH_fp6); + assign_map.emplace("GovHydroWEH.fp7", &assign_GovHydroWEH_fp7); + assign_map.emplace("GovHydroWEH.fp8", &assign_GovHydroWEH_fp8); + assign_map.emplace("GovHydroWEH.fp9", &assign_GovHydroWEH_fp9); + assign_map.emplace("GovHydroWEH.gmax", &assign_GovHydroWEH_gmax); + assign_map.emplace("GovHydroWEH.gmin", &assign_GovHydroWEH_gmin); + assign_map.emplace("GovHydroWEH.gtmxcl", &assign_GovHydroWEH_gtmxcl); + assign_map.emplace("GovHydroWEH.gtmxop", &assign_GovHydroWEH_gtmxop); + assign_map.emplace("GovHydroWEH.gv1", &assign_GovHydroWEH_gv1); + assign_map.emplace("GovHydroWEH.gv2", &assign_GovHydroWEH_gv2); + assign_map.emplace("GovHydroWEH.gv3", &assign_GovHydroWEH_gv3); + assign_map.emplace("GovHydroWEH.gv4", &assign_GovHydroWEH_gv4); + assign_map.emplace("GovHydroWEH.gv5", &assign_GovHydroWEH_gv5); + assign_map.emplace("GovHydroWEH.kd", &assign_GovHydroWEH_kd); + assign_map.emplace("GovHydroWEH.ki", &assign_GovHydroWEH_ki); + assign_map.emplace("GovHydroWEH.kp", &assign_GovHydroWEH_kp); + assign_map.emplace("GovHydroWEH.mwbase", &assign_GovHydroWEH_mwbase); + assign_map.emplace("GovHydroWEH.pmss1", &assign_GovHydroWEH_pmss1); + assign_map.emplace("GovHydroWEH.pmss10", &assign_GovHydroWEH_pmss10); + assign_map.emplace("GovHydroWEH.pmss2", &assign_GovHydroWEH_pmss2); + assign_map.emplace("GovHydroWEH.pmss3", &assign_GovHydroWEH_pmss3); + assign_map.emplace("GovHydroWEH.pmss4", &assign_GovHydroWEH_pmss4); + assign_map.emplace("GovHydroWEH.pmss5", &assign_GovHydroWEH_pmss5); + assign_map.emplace("GovHydroWEH.pmss6", &assign_GovHydroWEH_pmss6); + assign_map.emplace("GovHydroWEH.pmss7", &assign_GovHydroWEH_pmss7); + assign_map.emplace("GovHydroWEH.pmss8", &assign_GovHydroWEH_pmss8); + assign_map.emplace("GovHydroWEH.pmss9", &assign_GovHydroWEH_pmss9); + assign_map.emplace("GovHydroWEH.rpg", &assign_GovHydroWEH_rpg); + assign_map.emplace("GovHydroWEH.rpp", &assign_GovHydroWEH_rpp); + assign_map.emplace("GovHydroWEH.td", &assign_GovHydroWEH_td); + assign_map.emplace("GovHydroWEH.tdv", &assign_GovHydroWEH_tdv); + assign_map.emplace("GovHydroWEH.tg", &assign_GovHydroWEH_tg); + assign_map.emplace("GovHydroWEH.tp", &assign_GovHydroWEH_tp); + assign_map.emplace("GovHydroWEH.tpe", &assign_GovHydroWEH_tpe); + assign_map.emplace("GovHydroWEH.tw", &assign_GovHydroWEH_tw); } void GovHydroWEH::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1641,57 +1673,57 @@ void GovHydroWEH::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroWEH.db", &get_GovHydroWEH_db); - get_map.emplace("cim:GovHydroWEH.dicn", &get_GovHydroWEH_dicn); - get_map.emplace("cim:GovHydroWEH.dpv", &get_GovHydroWEH_dpv); - get_map.emplace("cim:GovHydroWEH.dturb", &get_GovHydroWEH_dturb); - get_map.emplace("cim:GovHydroWEH.feedbackSignal", &get_GovHydroWEH_feedbackSignal); - get_map.emplace("cim:GovHydroWEH.fl1", &get_GovHydroWEH_fl1); - get_map.emplace("cim:GovHydroWEH.fl2", &get_GovHydroWEH_fl2); - get_map.emplace("cim:GovHydroWEH.fl3", &get_GovHydroWEH_fl3); - get_map.emplace("cim:GovHydroWEH.fl4", &get_GovHydroWEH_fl4); - get_map.emplace("cim:GovHydroWEH.fl5", &get_GovHydroWEH_fl5); - get_map.emplace("cim:GovHydroWEH.fp1", &get_GovHydroWEH_fp1); - get_map.emplace("cim:GovHydroWEH.fp10", &get_GovHydroWEH_fp10); - get_map.emplace("cim:GovHydroWEH.fp2", &get_GovHydroWEH_fp2); - get_map.emplace("cim:GovHydroWEH.fp3", &get_GovHydroWEH_fp3); - get_map.emplace("cim:GovHydroWEH.fp4", &get_GovHydroWEH_fp4); - get_map.emplace("cim:GovHydroWEH.fp5", &get_GovHydroWEH_fp5); - get_map.emplace("cim:GovHydroWEH.fp6", &get_GovHydroWEH_fp6); - get_map.emplace("cim:GovHydroWEH.fp7", &get_GovHydroWEH_fp7); - get_map.emplace("cim:GovHydroWEH.fp8", &get_GovHydroWEH_fp8); - get_map.emplace("cim:GovHydroWEH.fp9", &get_GovHydroWEH_fp9); - get_map.emplace("cim:GovHydroWEH.gmax", &get_GovHydroWEH_gmax); - get_map.emplace("cim:GovHydroWEH.gmin", &get_GovHydroWEH_gmin); - get_map.emplace("cim:GovHydroWEH.gtmxcl", &get_GovHydroWEH_gtmxcl); - get_map.emplace("cim:GovHydroWEH.gtmxop", &get_GovHydroWEH_gtmxop); - get_map.emplace("cim:GovHydroWEH.gv1", &get_GovHydroWEH_gv1); - get_map.emplace("cim:GovHydroWEH.gv2", &get_GovHydroWEH_gv2); - get_map.emplace("cim:GovHydroWEH.gv3", &get_GovHydroWEH_gv3); - get_map.emplace("cim:GovHydroWEH.gv4", &get_GovHydroWEH_gv4); - get_map.emplace("cim:GovHydroWEH.gv5", &get_GovHydroWEH_gv5); - get_map.emplace("cim:GovHydroWEH.kd", &get_GovHydroWEH_kd); - get_map.emplace("cim:GovHydroWEH.ki", &get_GovHydroWEH_ki); - get_map.emplace("cim:GovHydroWEH.kp", &get_GovHydroWEH_kp); - get_map.emplace("cim:GovHydroWEH.mwbase", &get_GovHydroWEH_mwbase); - get_map.emplace("cim:GovHydroWEH.pmss1", &get_GovHydroWEH_pmss1); - get_map.emplace("cim:GovHydroWEH.pmss10", &get_GovHydroWEH_pmss10); - get_map.emplace("cim:GovHydroWEH.pmss2", &get_GovHydroWEH_pmss2); - get_map.emplace("cim:GovHydroWEH.pmss3", &get_GovHydroWEH_pmss3); - get_map.emplace("cim:GovHydroWEH.pmss4", &get_GovHydroWEH_pmss4); - get_map.emplace("cim:GovHydroWEH.pmss5", &get_GovHydroWEH_pmss5); - get_map.emplace("cim:GovHydroWEH.pmss6", &get_GovHydroWEH_pmss6); - get_map.emplace("cim:GovHydroWEH.pmss7", &get_GovHydroWEH_pmss7); - get_map.emplace("cim:GovHydroWEH.pmss8", &get_GovHydroWEH_pmss8); - get_map.emplace("cim:GovHydroWEH.pmss9", &get_GovHydroWEH_pmss9); - get_map.emplace("cim:GovHydroWEH.rpg", &get_GovHydroWEH_rpg); - get_map.emplace("cim:GovHydroWEH.rpp", &get_GovHydroWEH_rpp); - get_map.emplace("cim:GovHydroWEH.td", &get_GovHydroWEH_td); - get_map.emplace("cim:GovHydroWEH.tdv", &get_GovHydroWEH_tdv); - get_map.emplace("cim:GovHydroWEH.tg", &get_GovHydroWEH_tg); - get_map.emplace("cim:GovHydroWEH.tp", &get_GovHydroWEH_tp); - get_map.emplace("cim:GovHydroWEH.tpe", &get_GovHydroWEH_tpe); - get_map.emplace("cim:GovHydroWEH.tw", &get_GovHydroWEH_tw); + get_map.emplace("GovHydroWEH.db", &get_GovHydroWEH_db); + get_map.emplace("GovHydroWEH.dicn", &get_GovHydroWEH_dicn); + get_map.emplace("GovHydroWEH.dpv", &get_GovHydroWEH_dpv); + get_map.emplace("GovHydroWEH.dturb", &get_GovHydroWEH_dturb); + get_map.emplace("GovHydroWEH.feedbackSignal", &get_GovHydroWEH_feedbackSignal); + get_map.emplace("GovHydroWEH.fl1", &get_GovHydroWEH_fl1); + get_map.emplace("GovHydroWEH.fl2", &get_GovHydroWEH_fl2); + get_map.emplace("GovHydroWEH.fl3", &get_GovHydroWEH_fl3); + get_map.emplace("GovHydroWEH.fl4", &get_GovHydroWEH_fl4); + get_map.emplace("GovHydroWEH.fl5", &get_GovHydroWEH_fl5); + get_map.emplace("GovHydroWEH.fp1", &get_GovHydroWEH_fp1); + get_map.emplace("GovHydroWEH.fp10", &get_GovHydroWEH_fp10); + get_map.emplace("GovHydroWEH.fp2", &get_GovHydroWEH_fp2); + get_map.emplace("GovHydroWEH.fp3", &get_GovHydroWEH_fp3); + get_map.emplace("GovHydroWEH.fp4", &get_GovHydroWEH_fp4); + get_map.emplace("GovHydroWEH.fp5", &get_GovHydroWEH_fp5); + get_map.emplace("GovHydroWEH.fp6", &get_GovHydroWEH_fp6); + get_map.emplace("GovHydroWEH.fp7", &get_GovHydroWEH_fp7); + get_map.emplace("GovHydroWEH.fp8", &get_GovHydroWEH_fp8); + get_map.emplace("GovHydroWEH.fp9", &get_GovHydroWEH_fp9); + get_map.emplace("GovHydroWEH.gmax", &get_GovHydroWEH_gmax); + get_map.emplace("GovHydroWEH.gmin", &get_GovHydroWEH_gmin); + get_map.emplace("GovHydroWEH.gtmxcl", &get_GovHydroWEH_gtmxcl); + get_map.emplace("GovHydroWEH.gtmxop", &get_GovHydroWEH_gtmxop); + get_map.emplace("GovHydroWEH.gv1", &get_GovHydroWEH_gv1); + get_map.emplace("GovHydroWEH.gv2", &get_GovHydroWEH_gv2); + get_map.emplace("GovHydroWEH.gv3", &get_GovHydroWEH_gv3); + get_map.emplace("GovHydroWEH.gv4", &get_GovHydroWEH_gv4); + get_map.emplace("GovHydroWEH.gv5", &get_GovHydroWEH_gv5); + get_map.emplace("GovHydroWEH.kd", &get_GovHydroWEH_kd); + get_map.emplace("GovHydroWEH.ki", &get_GovHydroWEH_ki); + get_map.emplace("GovHydroWEH.kp", &get_GovHydroWEH_kp); + get_map.emplace("GovHydroWEH.mwbase", &get_GovHydroWEH_mwbase); + get_map.emplace("GovHydroWEH.pmss1", &get_GovHydroWEH_pmss1); + get_map.emplace("GovHydroWEH.pmss10", &get_GovHydroWEH_pmss10); + get_map.emplace("GovHydroWEH.pmss2", &get_GovHydroWEH_pmss2); + get_map.emplace("GovHydroWEH.pmss3", &get_GovHydroWEH_pmss3); + get_map.emplace("GovHydroWEH.pmss4", &get_GovHydroWEH_pmss4); + get_map.emplace("GovHydroWEH.pmss5", &get_GovHydroWEH_pmss5); + get_map.emplace("GovHydroWEH.pmss6", &get_GovHydroWEH_pmss6); + get_map.emplace("GovHydroWEH.pmss7", &get_GovHydroWEH_pmss7); + get_map.emplace("GovHydroWEH.pmss8", &get_GovHydroWEH_pmss8); + get_map.emplace("GovHydroWEH.pmss9", &get_GovHydroWEH_pmss9); + get_map.emplace("GovHydroWEH.rpg", &get_GovHydroWEH_rpg); + get_map.emplace("GovHydroWEH.rpp", &get_GovHydroWEH_rpp); + get_map.emplace("GovHydroWEH.td", &get_GovHydroWEH_td); + get_map.emplace("GovHydroWEH.tdv", &get_GovHydroWEH_tdv); + get_map.emplace("GovHydroWEH.tg", &get_GovHydroWEH_tg); + get_map.emplace("GovHydroWEH.tp", &get_GovHydroWEH_tp); + get_map.emplace("GovHydroWEH.tpe", &get_GovHydroWEH_tpe); + get_map.emplace("GovHydroWEH.tw", &get_GovHydroWEH_tw); } void GovHydroWEH::addClassGetFnsToMap(std::map& get_map) const @@ -1704,11 +1736,25 @@ void GovHydroWEH::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroWEH::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroWEH" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroWEH::declare() { return BaseClassDefiner(GovHydroWEH::addConstructToMap, GovHydroWEH::addPrimitiveAssignFnsToMap, GovHydroWEH::addClassAssignFnsToMap, GovHydroWEH::debugName); } +std::map GovHydroWEH::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroWEH_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroWEH.hpp b/CGMES_2.4.15_27JAN2020/GovHydroWEH.hpp index 8417378d5..8c260f25e 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroWEH.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroWEH.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -185,8 +186,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -194,7 +202,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroWEH_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovHydroWPID.cpp b/CGMES_2.4.15_27JAN2020/GovHydroWPID.cpp index 52c605514..d4cd92336 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroWPID.cpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroWPID.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroWPID(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroWPID.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gatmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gatmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.reg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.treg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.velmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.velmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroWPID::GovHydroWPID() {} GovHydroWPID::~GovHydroWPID() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroWPID.d", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gatmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gatmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.reg", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.tb", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.treg", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.velmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.velmin", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroWPID::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroWPID::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroWPID::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroWPID::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroWPID::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroWPID::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroWPID::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroWPID::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroWPID::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroWPID_d(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* GovHydroWPID::debugString() const void GovHydroWPID::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroWPID", &GovHydroWPID_factory); + factory_map.emplace("GovHydroWPID", &GovHydroWPID_factory); } void GovHydroWPID::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroWPID.d", &assign_GovHydroWPID_d); - assign_map.emplace("cim:GovHydroWPID.gatmax", &assign_GovHydroWPID_gatmax); - assign_map.emplace("cim:GovHydroWPID.gatmin", &assign_GovHydroWPID_gatmin); - assign_map.emplace("cim:GovHydroWPID.gv1", &assign_GovHydroWPID_gv1); - assign_map.emplace("cim:GovHydroWPID.gv2", &assign_GovHydroWPID_gv2); - assign_map.emplace("cim:GovHydroWPID.gv3", &assign_GovHydroWPID_gv3); - assign_map.emplace("cim:GovHydroWPID.kd", &assign_GovHydroWPID_kd); - assign_map.emplace("cim:GovHydroWPID.ki", &assign_GovHydroWPID_ki); - assign_map.emplace("cim:GovHydroWPID.kp", &assign_GovHydroWPID_kp); - assign_map.emplace("cim:GovHydroWPID.mwbase", &assign_GovHydroWPID_mwbase); - assign_map.emplace("cim:GovHydroWPID.pgv1", &assign_GovHydroWPID_pgv1); - assign_map.emplace("cim:GovHydroWPID.pgv2", &assign_GovHydroWPID_pgv2); - assign_map.emplace("cim:GovHydroWPID.pgv3", &assign_GovHydroWPID_pgv3); - assign_map.emplace("cim:GovHydroWPID.pmax", &assign_GovHydroWPID_pmax); - assign_map.emplace("cim:GovHydroWPID.pmin", &assign_GovHydroWPID_pmin); - assign_map.emplace("cim:GovHydroWPID.reg", &assign_GovHydroWPID_reg); - assign_map.emplace("cim:GovHydroWPID.ta", &assign_GovHydroWPID_ta); - assign_map.emplace("cim:GovHydroWPID.tb", &assign_GovHydroWPID_tb); - assign_map.emplace("cim:GovHydroWPID.treg", &assign_GovHydroWPID_treg); - assign_map.emplace("cim:GovHydroWPID.tw", &assign_GovHydroWPID_tw); - assign_map.emplace("cim:GovHydroWPID.velmax", &assign_GovHydroWPID_velmax); - assign_map.emplace("cim:GovHydroWPID.velmin", &assign_GovHydroWPID_velmin); + assign_map.emplace("GovHydroWPID.d", &assign_GovHydroWPID_d); + assign_map.emplace("GovHydroWPID.gatmax", &assign_GovHydroWPID_gatmax); + assign_map.emplace("GovHydroWPID.gatmin", &assign_GovHydroWPID_gatmin); + assign_map.emplace("GovHydroWPID.gv1", &assign_GovHydroWPID_gv1); + assign_map.emplace("GovHydroWPID.gv2", &assign_GovHydroWPID_gv2); + assign_map.emplace("GovHydroWPID.gv3", &assign_GovHydroWPID_gv3); + assign_map.emplace("GovHydroWPID.kd", &assign_GovHydroWPID_kd); + assign_map.emplace("GovHydroWPID.ki", &assign_GovHydroWPID_ki); + assign_map.emplace("GovHydroWPID.kp", &assign_GovHydroWPID_kp); + assign_map.emplace("GovHydroWPID.mwbase", &assign_GovHydroWPID_mwbase); + assign_map.emplace("GovHydroWPID.pgv1", &assign_GovHydroWPID_pgv1); + assign_map.emplace("GovHydroWPID.pgv2", &assign_GovHydroWPID_pgv2); + assign_map.emplace("GovHydroWPID.pgv3", &assign_GovHydroWPID_pgv3); + assign_map.emplace("GovHydroWPID.pmax", &assign_GovHydroWPID_pmax); + assign_map.emplace("GovHydroWPID.pmin", &assign_GovHydroWPID_pmin); + assign_map.emplace("GovHydroWPID.reg", &assign_GovHydroWPID_reg); + assign_map.emplace("GovHydroWPID.ta", &assign_GovHydroWPID_ta); + assign_map.emplace("GovHydroWPID.tb", &assign_GovHydroWPID_tb); + assign_map.emplace("GovHydroWPID.treg", &assign_GovHydroWPID_treg); + assign_map.emplace("GovHydroWPID.tw", &assign_GovHydroWPID_tw); + assign_map.emplace("GovHydroWPID.velmax", &assign_GovHydroWPID_velmax); + assign_map.emplace("GovHydroWPID.velmin", &assign_GovHydroWPID_velmin); } void GovHydroWPID::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void GovHydroWPID::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroWPID.d", &get_GovHydroWPID_d); - get_map.emplace("cim:GovHydroWPID.gatmax", &get_GovHydroWPID_gatmax); - get_map.emplace("cim:GovHydroWPID.gatmin", &get_GovHydroWPID_gatmin); - get_map.emplace("cim:GovHydroWPID.gv1", &get_GovHydroWPID_gv1); - get_map.emplace("cim:GovHydroWPID.gv2", &get_GovHydroWPID_gv2); - get_map.emplace("cim:GovHydroWPID.gv3", &get_GovHydroWPID_gv3); - get_map.emplace("cim:GovHydroWPID.kd", &get_GovHydroWPID_kd); - get_map.emplace("cim:GovHydroWPID.ki", &get_GovHydroWPID_ki); - get_map.emplace("cim:GovHydroWPID.kp", &get_GovHydroWPID_kp); - get_map.emplace("cim:GovHydroWPID.mwbase", &get_GovHydroWPID_mwbase); - get_map.emplace("cim:GovHydroWPID.pgv1", &get_GovHydroWPID_pgv1); - get_map.emplace("cim:GovHydroWPID.pgv2", &get_GovHydroWPID_pgv2); - get_map.emplace("cim:GovHydroWPID.pgv3", &get_GovHydroWPID_pgv3); - get_map.emplace("cim:GovHydroWPID.pmax", &get_GovHydroWPID_pmax); - get_map.emplace("cim:GovHydroWPID.pmin", &get_GovHydroWPID_pmin); - get_map.emplace("cim:GovHydroWPID.reg", &get_GovHydroWPID_reg); - get_map.emplace("cim:GovHydroWPID.ta", &get_GovHydroWPID_ta); - get_map.emplace("cim:GovHydroWPID.tb", &get_GovHydroWPID_tb); - get_map.emplace("cim:GovHydroWPID.treg", &get_GovHydroWPID_treg); - get_map.emplace("cim:GovHydroWPID.tw", &get_GovHydroWPID_tw); - get_map.emplace("cim:GovHydroWPID.velmax", &get_GovHydroWPID_velmax); - get_map.emplace("cim:GovHydroWPID.velmin", &get_GovHydroWPID_velmin); + get_map.emplace("GovHydroWPID.d", &get_GovHydroWPID_d); + get_map.emplace("GovHydroWPID.gatmax", &get_GovHydroWPID_gatmax); + get_map.emplace("GovHydroWPID.gatmin", &get_GovHydroWPID_gatmin); + get_map.emplace("GovHydroWPID.gv1", &get_GovHydroWPID_gv1); + get_map.emplace("GovHydroWPID.gv2", &get_GovHydroWPID_gv2); + get_map.emplace("GovHydroWPID.gv3", &get_GovHydroWPID_gv3); + get_map.emplace("GovHydroWPID.kd", &get_GovHydroWPID_kd); + get_map.emplace("GovHydroWPID.ki", &get_GovHydroWPID_ki); + get_map.emplace("GovHydroWPID.kp", &get_GovHydroWPID_kp); + get_map.emplace("GovHydroWPID.mwbase", &get_GovHydroWPID_mwbase); + get_map.emplace("GovHydroWPID.pgv1", &get_GovHydroWPID_pgv1); + get_map.emplace("GovHydroWPID.pgv2", &get_GovHydroWPID_pgv2); + get_map.emplace("GovHydroWPID.pgv3", &get_GovHydroWPID_pgv3); + get_map.emplace("GovHydroWPID.pmax", &get_GovHydroWPID_pmax); + get_map.emplace("GovHydroWPID.pmin", &get_GovHydroWPID_pmin); + get_map.emplace("GovHydroWPID.reg", &get_GovHydroWPID_reg); + get_map.emplace("GovHydroWPID.ta", &get_GovHydroWPID_ta); + get_map.emplace("GovHydroWPID.tb", &get_GovHydroWPID_tb); + get_map.emplace("GovHydroWPID.treg", &get_GovHydroWPID_treg); + get_map.emplace("GovHydroWPID.tw", &get_GovHydroWPID_tw); + get_map.emplace("GovHydroWPID.velmax", &get_GovHydroWPID_velmax); + get_map.emplace("GovHydroWPID.velmin", &get_GovHydroWPID_velmin); } void GovHydroWPID::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void GovHydroWPID::addEnumGetFnsToMap(std::map& get_m TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroWPID::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroWPID" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroWPID::declare() { return BaseClassDefiner(GovHydroWPID::addConstructToMap, GovHydroWPID::addPrimitiveAssignFnsToMap, GovHydroWPID::addClassAssignFnsToMap, GovHydroWPID::debugName); } +std::map GovHydroWPID::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroWPID_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovHydroWPID.hpp b/CGMES_2.4.15_27JAN2020/GovHydroWPID.hpp index 7c5d870fa..c3f3dfb58 100644 --- a/CGMES_2.4.15_27JAN2020/GovHydroWPID.hpp +++ b/CGMES_2.4.15_27JAN2020/GovHydroWPID.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -96,8 +97,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -105,7 +113,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroWPID_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteam0.cpp b/CGMES_2.4.15_27JAN2020/GovSteam0.cpp index cc1c74f62..dfefb61c1 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteam0.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteam0.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam0(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam0.dt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam0.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam0::GovSteam0() {} GovSteam0::~GovSteam0() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteam0::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteam0::getClassNamespaceUrl() const { - { "cim:GovSteam0.dt", { CGMESProfile::DY, } }, - { "cim:GovSteam0.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteam0.r", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t2", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t3", { CGMESProfile::DY, } }, - { "cim:GovSteam0.vmax", { CGMESProfile::DY, } }, - { "cim:GovSteam0.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteam0::getPossibleProfilesForClass() const +const std::string& GovSteam0::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteam0::getPossibleProfilesForAttributes() const +const std::list& GovSteam0::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam0::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam0::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam0::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam0_dt(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovSteam0::debugString() const void GovSteam0::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam0", &GovSteam0_factory); + factory_map.emplace("GovSteam0", &GovSteam0_factory); } void GovSteam0::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam0.dt", &assign_GovSteam0_dt); - assign_map.emplace("cim:GovSteam0.mwbase", &assign_GovSteam0_mwbase); - assign_map.emplace("cim:GovSteam0.r", &assign_GovSteam0_r); - assign_map.emplace("cim:GovSteam0.t1", &assign_GovSteam0_t1); - assign_map.emplace("cim:GovSteam0.t2", &assign_GovSteam0_t2); - assign_map.emplace("cim:GovSteam0.t3", &assign_GovSteam0_t3); - assign_map.emplace("cim:GovSteam0.vmax", &assign_GovSteam0_vmax); - assign_map.emplace("cim:GovSteam0.vmin", &assign_GovSteam0_vmin); + assign_map.emplace("GovSteam0.dt", &assign_GovSteam0_dt); + assign_map.emplace("GovSteam0.mwbase", &assign_GovSteam0_mwbase); + assign_map.emplace("GovSteam0.r", &assign_GovSteam0_r); + assign_map.emplace("GovSteam0.t1", &assign_GovSteam0_t1); + assign_map.emplace("GovSteam0.t2", &assign_GovSteam0_t2); + assign_map.emplace("GovSteam0.t3", &assign_GovSteam0_t3); + assign_map.emplace("GovSteam0.vmax", &assign_GovSteam0_vmax); + assign_map.emplace("GovSteam0.vmin", &assign_GovSteam0_vmin); } void GovSteam0::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovSteam0::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam0.dt", &get_GovSteam0_dt); - get_map.emplace("cim:GovSteam0.mwbase", &get_GovSteam0_mwbase); - get_map.emplace("cim:GovSteam0.r", &get_GovSteam0_r); - get_map.emplace("cim:GovSteam0.t1", &get_GovSteam0_t1); - get_map.emplace("cim:GovSteam0.t2", &get_GovSteam0_t2); - get_map.emplace("cim:GovSteam0.t3", &get_GovSteam0_t3); - get_map.emplace("cim:GovSteam0.vmax", &get_GovSteam0_vmax); - get_map.emplace("cim:GovSteam0.vmin", &get_GovSteam0_vmin); + get_map.emplace("GovSteam0.dt", &get_GovSteam0_dt); + get_map.emplace("GovSteam0.mwbase", &get_GovSteam0_mwbase); + get_map.emplace("GovSteam0.r", &get_GovSteam0_r); + get_map.emplace("GovSteam0.t1", &get_GovSteam0_t1); + get_map.emplace("GovSteam0.t2", &get_GovSteam0_t2); + get_map.emplace("GovSteam0.t3", &get_GovSteam0_t3); + get_map.emplace("GovSteam0.vmax", &get_GovSteam0_vmax); + get_map.emplace("GovSteam0.vmin", &get_GovSteam0_vmin); } void GovSteam0::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovSteam0::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam0::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam0" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam0::declare() { return BaseClassDefiner(GovSteam0::addConstructToMap, GovSteam0::addPrimitiveAssignFnsToMap, GovSteam0::addClassAssignFnsToMap, GovSteam0::debugName); } +std::map GovSteam0::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam0_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteam0.hpp b/CGMES_2.4.15_27JAN2020/GovSteam0.hpp index 9929fe7ad..115d2321b 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteam0.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteam0.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam0_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteam1.cpp b/CGMES_2.4.15_27JAN2020/GovSteam1.cpp index 9f3c107a5..b2e9a8ee0 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteam1.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteam1.cpp @@ -11,70 +11,102 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam1.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.eps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.k8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.sdb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.sdb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam1.valve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam1::GovSteam1() {} GovSteam1::~GovSteam1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteam1.db1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.db2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.eps", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k7", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k8", { CGMESProfile::DY, } }, - { "cim:GovSteam1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteam1.sdb1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.sdb2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t7", { CGMESProfile::DY, } }, - { "cim:GovSteam1.uc", { CGMESProfile::DY, } }, - { "cim:GovSteam1.uo", { CGMESProfile::DY, } }, - { "cim:GovSteam1.valve", { CGMESProfile::DY, } }, -}; - -std::list -GovSteam1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteam1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteam1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteam1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteam1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteam1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam1_db1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1216,50 +1248,50 @@ const char* GovSteam1::debugString() const void GovSteam1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam1", &GovSteam1_factory); + factory_map.emplace("GovSteam1", &GovSteam1_factory); } void GovSteam1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam1.db1", &assign_GovSteam1_db1); - assign_map.emplace("cim:GovSteam1.db2", &assign_GovSteam1_db2); - assign_map.emplace("cim:GovSteam1.eps", &assign_GovSteam1_eps); - assign_map.emplace("cim:GovSteam1.gv1", &assign_GovSteam1_gv1); - assign_map.emplace("cim:GovSteam1.gv2", &assign_GovSteam1_gv2); - assign_map.emplace("cim:GovSteam1.gv3", &assign_GovSteam1_gv3); - assign_map.emplace("cim:GovSteam1.gv4", &assign_GovSteam1_gv4); - assign_map.emplace("cim:GovSteam1.gv5", &assign_GovSteam1_gv5); - assign_map.emplace("cim:GovSteam1.gv6", &assign_GovSteam1_gv6); - assign_map.emplace("cim:GovSteam1.k", &assign_GovSteam1_k); - assign_map.emplace("cim:GovSteam1.k1", &assign_GovSteam1_k1); - assign_map.emplace("cim:GovSteam1.k2", &assign_GovSteam1_k2); - assign_map.emplace("cim:GovSteam1.k3", &assign_GovSteam1_k3); - assign_map.emplace("cim:GovSteam1.k4", &assign_GovSteam1_k4); - assign_map.emplace("cim:GovSteam1.k5", &assign_GovSteam1_k5); - assign_map.emplace("cim:GovSteam1.k6", &assign_GovSteam1_k6); - assign_map.emplace("cim:GovSteam1.k7", &assign_GovSteam1_k7); - assign_map.emplace("cim:GovSteam1.k8", &assign_GovSteam1_k8); - assign_map.emplace("cim:GovSteam1.mwbase", &assign_GovSteam1_mwbase); - assign_map.emplace("cim:GovSteam1.pgv1", &assign_GovSteam1_pgv1); - assign_map.emplace("cim:GovSteam1.pgv2", &assign_GovSteam1_pgv2); - assign_map.emplace("cim:GovSteam1.pgv3", &assign_GovSteam1_pgv3); - assign_map.emplace("cim:GovSteam1.pgv4", &assign_GovSteam1_pgv4); - assign_map.emplace("cim:GovSteam1.pgv5", &assign_GovSteam1_pgv5); - assign_map.emplace("cim:GovSteam1.pgv6", &assign_GovSteam1_pgv6); - assign_map.emplace("cim:GovSteam1.pmax", &assign_GovSteam1_pmax); - assign_map.emplace("cim:GovSteam1.pmin", &assign_GovSteam1_pmin); - assign_map.emplace("cim:GovSteam1.sdb1", &assign_GovSteam1_sdb1); - assign_map.emplace("cim:GovSteam1.sdb2", &assign_GovSteam1_sdb2); - assign_map.emplace("cim:GovSteam1.t1", &assign_GovSteam1_t1); - assign_map.emplace("cim:GovSteam1.t2", &assign_GovSteam1_t2); - assign_map.emplace("cim:GovSteam1.t3", &assign_GovSteam1_t3); - assign_map.emplace("cim:GovSteam1.t4", &assign_GovSteam1_t4); - assign_map.emplace("cim:GovSteam1.t5", &assign_GovSteam1_t5); - assign_map.emplace("cim:GovSteam1.t6", &assign_GovSteam1_t6); - assign_map.emplace("cim:GovSteam1.t7", &assign_GovSteam1_t7); - assign_map.emplace("cim:GovSteam1.uc", &assign_GovSteam1_uc); - assign_map.emplace("cim:GovSteam1.uo", &assign_GovSteam1_uo); - assign_map.emplace("cim:GovSteam1.valve", &assign_GovSteam1_valve); + assign_map.emplace("GovSteam1.db1", &assign_GovSteam1_db1); + assign_map.emplace("GovSteam1.db2", &assign_GovSteam1_db2); + assign_map.emplace("GovSteam1.eps", &assign_GovSteam1_eps); + assign_map.emplace("GovSteam1.gv1", &assign_GovSteam1_gv1); + assign_map.emplace("GovSteam1.gv2", &assign_GovSteam1_gv2); + assign_map.emplace("GovSteam1.gv3", &assign_GovSteam1_gv3); + assign_map.emplace("GovSteam1.gv4", &assign_GovSteam1_gv4); + assign_map.emplace("GovSteam1.gv5", &assign_GovSteam1_gv5); + assign_map.emplace("GovSteam1.gv6", &assign_GovSteam1_gv6); + assign_map.emplace("GovSteam1.k", &assign_GovSteam1_k); + assign_map.emplace("GovSteam1.k1", &assign_GovSteam1_k1); + assign_map.emplace("GovSteam1.k2", &assign_GovSteam1_k2); + assign_map.emplace("GovSteam1.k3", &assign_GovSteam1_k3); + assign_map.emplace("GovSteam1.k4", &assign_GovSteam1_k4); + assign_map.emplace("GovSteam1.k5", &assign_GovSteam1_k5); + assign_map.emplace("GovSteam1.k6", &assign_GovSteam1_k6); + assign_map.emplace("GovSteam1.k7", &assign_GovSteam1_k7); + assign_map.emplace("GovSteam1.k8", &assign_GovSteam1_k8); + assign_map.emplace("GovSteam1.mwbase", &assign_GovSteam1_mwbase); + assign_map.emplace("GovSteam1.pgv1", &assign_GovSteam1_pgv1); + assign_map.emplace("GovSteam1.pgv2", &assign_GovSteam1_pgv2); + assign_map.emplace("GovSteam1.pgv3", &assign_GovSteam1_pgv3); + assign_map.emplace("GovSteam1.pgv4", &assign_GovSteam1_pgv4); + assign_map.emplace("GovSteam1.pgv5", &assign_GovSteam1_pgv5); + assign_map.emplace("GovSteam1.pgv6", &assign_GovSteam1_pgv6); + assign_map.emplace("GovSteam1.pmax", &assign_GovSteam1_pmax); + assign_map.emplace("GovSteam1.pmin", &assign_GovSteam1_pmin); + assign_map.emplace("GovSteam1.sdb1", &assign_GovSteam1_sdb1); + assign_map.emplace("GovSteam1.sdb2", &assign_GovSteam1_sdb2); + assign_map.emplace("GovSteam1.t1", &assign_GovSteam1_t1); + assign_map.emplace("GovSteam1.t2", &assign_GovSteam1_t2); + assign_map.emplace("GovSteam1.t3", &assign_GovSteam1_t3); + assign_map.emplace("GovSteam1.t4", &assign_GovSteam1_t4); + assign_map.emplace("GovSteam1.t5", &assign_GovSteam1_t5); + assign_map.emplace("GovSteam1.t6", &assign_GovSteam1_t6); + assign_map.emplace("GovSteam1.t7", &assign_GovSteam1_t7); + assign_map.emplace("GovSteam1.uc", &assign_GovSteam1_uc); + assign_map.emplace("GovSteam1.uo", &assign_GovSteam1_uo); + assign_map.emplace("GovSteam1.valve", &assign_GovSteam1_valve); } void GovSteam1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1269,45 +1301,45 @@ void GovSteam1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam1.db1", &get_GovSteam1_db1); - get_map.emplace("cim:GovSteam1.db2", &get_GovSteam1_db2); - get_map.emplace("cim:GovSteam1.eps", &get_GovSteam1_eps); - get_map.emplace("cim:GovSteam1.gv1", &get_GovSteam1_gv1); - get_map.emplace("cim:GovSteam1.gv2", &get_GovSteam1_gv2); - get_map.emplace("cim:GovSteam1.gv3", &get_GovSteam1_gv3); - get_map.emplace("cim:GovSteam1.gv4", &get_GovSteam1_gv4); - get_map.emplace("cim:GovSteam1.gv5", &get_GovSteam1_gv5); - get_map.emplace("cim:GovSteam1.gv6", &get_GovSteam1_gv6); - get_map.emplace("cim:GovSteam1.k", &get_GovSteam1_k); - get_map.emplace("cim:GovSteam1.k1", &get_GovSteam1_k1); - get_map.emplace("cim:GovSteam1.k2", &get_GovSteam1_k2); - get_map.emplace("cim:GovSteam1.k3", &get_GovSteam1_k3); - get_map.emplace("cim:GovSteam1.k4", &get_GovSteam1_k4); - get_map.emplace("cim:GovSteam1.k5", &get_GovSteam1_k5); - get_map.emplace("cim:GovSteam1.k6", &get_GovSteam1_k6); - get_map.emplace("cim:GovSteam1.k7", &get_GovSteam1_k7); - get_map.emplace("cim:GovSteam1.k8", &get_GovSteam1_k8); - get_map.emplace("cim:GovSteam1.mwbase", &get_GovSteam1_mwbase); - get_map.emplace("cim:GovSteam1.pgv1", &get_GovSteam1_pgv1); - get_map.emplace("cim:GovSteam1.pgv2", &get_GovSteam1_pgv2); - get_map.emplace("cim:GovSteam1.pgv3", &get_GovSteam1_pgv3); - get_map.emplace("cim:GovSteam1.pgv4", &get_GovSteam1_pgv4); - get_map.emplace("cim:GovSteam1.pgv5", &get_GovSteam1_pgv5); - get_map.emplace("cim:GovSteam1.pgv6", &get_GovSteam1_pgv6); - get_map.emplace("cim:GovSteam1.pmax", &get_GovSteam1_pmax); - get_map.emplace("cim:GovSteam1.pmin", &get_GovSteam1_pmin); - get_map.emplace("cim:GovSteam1.sdb1", &get_GovSteam1_sdb1); - get_map.emplace("cim:GovSteam1.sdb2", &get_GovSteam1_sdb2); - get_map.emplace("cim:GovSteam1.t1", &get_GovSteam1_t1); - get_map.emplace("cim:GovSteam1.t2", &get_GovSteam1_t2); - get_map.emplace("cim:GovSteam1.t3", &get_GovSteam1_t3); - get_map.emplace("cim:GovSteam1.t4", &get_GovSteam1_t4); - get_map.emplace("cim:GovSteam1.t5", &get_GovSteam1_t5); - get_map.emplace("cim:GovSteam1.t6", &get_GovSteam1_t6); - get_map.emplace("cim:GovSteam1.t7", &get_GovSteam1_t7); - get_map.emplace("cim:GovSteam1.uc", &get_GovSteam1_uc); - get_map.emplace("cim:GovSteam1.uo", &get_GovSteam1_uo); - get_map.emplace("cim:GovSteam1.valve", &get_GovSteam1_valve); + get_map.emplace("GovSteam1.db1", &get_GovSteam1_db1); + get_map.emplace("GovSteam1.db2", &get_GovSteam1_db2); + get_map.emplace("GovSteam1.eps", &get_GovSteam1_eps); + get_map.emplace("GovSteam1.gv1", &get_GovSteam1_gv1); + get_map.emplace("GovSteam1.gv2", &get_GovSteam1_gv2); + get_map.emplace("GovSteam1.gv3", &get_GovSteam1_gv3); + get_map.emplace("GovSteam1.gv4", &get_GovSteam1_gv4); + get_map.emplace("GovSteam1.gv5", &get_GovSteam1_gv5); + get_map.emplace("GovSteam1.gv6", &get_GovSteam1_gv6); + get_map.emplace("GovSteam1.k", &get_GovSteam1_k); + get_map.emplace("GovSteam1.k1", &get_GovSteam1_k1); + get_map.emplace("GovSteam1.k2", &get_GovSteam1_k2); + get_map.emplace("GovSteam1.k3", &get_GovSteam1_k3); + get_map.emplace("GovSteam1.k4", &get_GovSteam1_k4); + get_map.emplace("GovSteam1.k5", &get_GovSteam1_k5); + get_map.emplace("GovSteam1.k6", &get_GovSteam1_k6); + get_map.emplace("GovSteam1.k7", &get_GovSteam1_k7); + get_map.emplace("GovSteam1.k8", &get_GovSteam1_k8); + get_map.emplace("GovSteam1.mwbase", &get_GovSteam1_mwbase); + get_map.emplace("GovSteam1.pgv1", &get_GovSteam1_pgv1); + get_map.emplace("GovSteam1.pgv2", &get_GovSteam1_pgv2); + get_map.emplace("GovSteam1.pgv3", &get_GovSteam1_pgv3); + get_map.emplace("GovSteam1.pgv4", &get_GovSteam1_pgv4); + get_map.emplace("GovSteam1.pgv5", &get_GovSteam1_pgv5); + get_map.emplace("GovSteam1.pgv6", &get_GovSteam1_pgv6); + get_map.emplace("GovSteam1.pmax", &get_GovSteam1_pmax); + get_map.emplace("GovSteam1.pmin", &get_GovSteam1_pmin); + get_map.emplace("GovSteam1.sdb1", &get_GovSteam1_sdb1); + get_map.emplace("GovSteam1.sdb2", &get_GovSteam1_sdb2); + get_map.emplace("GovSteam1.t1", &get_GovSteam1_t1); + get_map.emplace("GovSteam1.t2", &get_GovSteam1_t2); + get_map.emplace("GovSteam1.t3", &get_GovSteam1_t3); + get_map.emplace("GovSteam1.t4", &get_GovSteam1_t4); + get_map.emplace("GovSteam1.t5", &get_GovSteam1_t5); + get_map.emplace("GovSteam1.t6", &get_GovSteam1_t6); + get_map.emplace("GovSteam1.t7", &get_GovSteam1_t7); + get_map.emplace("GovSteam1.uc", &get_GovSteam1_uc); + get_map.emplace("GovSteam1.uo", &get_GovSteam1_uo); + get_map.emplace("GovSteam1.valve", &get_GovSteam1_valve); } void GovSteam1::addClassGetFnsToMap(std::map& get_map) const @@ -1320,11 +1352,25 @@ void GovSteam1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam1::declare() { return BaseClassDefiner(GovSteam1::addConstructToMap, GovSteam1::addPrimitiveAssignFnsToMap, GovSteam1::addClassAssignFnsToMap, GovSteam1::debugName); } +std::map GovSteam1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam1_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteam1.hpp b/CGMES_2.4.15_27JAN2020/GovSteam1.hpp index da362ba99..36a730424 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteam1.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteam1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Frequency.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteam2.cpp b/CGMES_2.4.15_27JAN2020/GovSteam2.cpp index 8696d39ab..9bea48947 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteam2.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteam2.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam2.dbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteam2.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam2::GovSteam2() {} GovSteam2::~GovSteam2() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteam2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteam2::getClassNamespaceUrl() const { - { "cim:GovSteam2.dbf", { CGMESProfile::DY, } }, - { "cim:GovSteam2.k", { CGMESProfile::DY, } }, - { "cim:GovSteam2.mnef", { CGMESProfile::DY, } }, - { "cim:GovSteam2.mxef", { CGMESProfile::DY, } }, - { "cim:GovSteam2.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteam2.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteam2.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam2.t2", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteam2::getPossibleProfilesForClass() const +const std::string& GovSteam2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteam2::getPossibleProfilesForAttributes() const +const std::list& GovSteam2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam2_dbf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovSteam2::debugString() const void GovSteam2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam2", &GovSteam2_factory); + factory_map.emplace("GovSteam2", &GovSteam2_factory); } void GovSteam2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam2.dbf", &assign_GovSteam2_dbf); - assign_map.emplace("cim:GovSteam2.k", &assign_GovSteam2_k); - assign_map.emplace("cim:GovSteam2.mnef", &assign_GovSteam2_mnef); - assign_map.emplace("cim:GovSteam2.mxef", &assign_GovSteam2_mxef); - assign_map.emplace("cim:GovSteam2.pmax", &assign_GovSteam2_pmax); - assign_map.emplace("cim:GovSteam2.pmin", &assign_GovSteam2_pmin); - assign_map.emplace("cim:GovSteam2.t1", &assign_GovSteam2_t1); - assign_map.emplace("cim:GovSteam2.t2", &assign_GovSteam2_t2); + assign_map.emplace("GovSteam2.dbf", &assign_GovSteam2_dbf); + assign_map.emplace("GovSteam2.k", &assign_GovSteam2_k); + assign_map.emplace("GovSteam2.mnef", &assign_GovSteam2_mnef); + assign_map.emplace("GovSteam2.mxef", &assign_GovSteam2_mxef); + assign_map.emplace("GovSteam2.pmax", &assign_GovSteam2_pmax); + assign_map.emplace("GovSteam2.pmin", &assign_GovSteam2_pmin); + assign_map.emplace("GovSteam2.t1", &assign_GovSteam2_t1); + assign_map.emplace("GovSteam2.t2", &assign_GovSteam2_t2); } void GovSteam2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovSteam2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam2.dbf", &get_GovSteam2_dbf); - get_map.emplace("cim:GovSteam2.k", &get_GovSteam2_k); - get_map.emplace("cim:GovSteam2.mnef", &get_GovSteam2_mnef); - get_map.emplace("cim:GovSteam2.mxef", &get_GovSteam2_mxef); - get_map.emplace("cim:GovSteam2.pmax", &get_GovSteam2_pmax); - get_map.emplace("cim:GovSteam2.pmin", &get_GovSteam2_pmin); - get_map.emplace("cim:GovSteam2.t1", &get_GovSteam2_t1); - get_map.emplace("cim:GovSteam2.t2", &get_GovSteam2_t2); + get_map.emplace("GovSteam2.dbf", &get_GovSteam2_dbf); + get_map.emplace("GovSteam2.k", &get_GovSteam2_k); + get_map.emplace("GovSteam2.mnef", &get_GovSteam2_mnef); + get_map.emplace("GovSteam2.mxef", &get_GovSteam2_mxef); + get_map.emplace("GovSteam2.pmax", &get_GovSteam2_pmax); + get_map.emplace("GovSteam2.pmin", &get_GovSteam2_pmin); + get_map.emplace("GovSteam2.t1", &get_GovSteam2_t1); + get_map.emplace("GovSteam2.t2", &get_GovSteam2_t2); } void GovSteam2::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovSteam2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam2::declare() { return BaseClassDefiner(GovSteam2::addConstructToMap, GovSteam2::addPrimitiveAssignFnsToMap, GovSteam2::addClassAssignFnsToMap, GovSteam2::debugName); } +std::map GovSteam2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam2_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteam2.hpp b/CGMES_2.4.15_27JAN2020/GovSteam2.hpp index 1968c0eb3..81c3b632d 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteam2.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteam2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteamCC.cpp b/CGMES_2.4.15_27JAN2020/GovSteamCC.cpp index 9d214c83b..adc213ef1 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamCC.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamCC.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamCC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamCC.dhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.dlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.fhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.flp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.pmaxhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.pmaxlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.rhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.rlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t1hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t1lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t3hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t3lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t4hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t4lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t5hp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t5lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamCC::GovSteamCC() {} GovSteamCC::~GovSteamCC() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamCC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamCC::getClassNamespaceUrl() const { - { "cim:GovSteamCC.dhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.dlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.fhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.flp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.pmaxhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.pmaxlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.rhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.rlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t1hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t1lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t3hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t3lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t4hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t4lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t5hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t5lp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamCC::getPossibleProfilesForClass() const +const std::string& GovSteamCC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamCC::getPossibleProfilesForAttributes() const +const std::list& GovSteamCC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamCC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamCC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamCC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamCC_dhp(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* GovSteamCC::debugString() const void GovSteamCC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamCC", &GovSteamCC_factory); + factory_map.emplace("GovSteamCC", &GovSteamCC_factory); } void GovSteamCC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamCC.dhp", &assign_GovSteamCC_dhp); - assign_map.emplace("cim:GovSteamCC.dlp", &assign_GovSteamCC_dlp); - assign_map.emplace("cim:GovSteamCC.fhp", &assign_GovSteamCC_fhp); - assign_map.emplace("cim:GovSteamCC.flp", &assign_GovSteamCC_flp); - assign_map.emplace("cim:GovSteamCC.mwbase", &assign_GovSteamCC_mwbase); - assign_map.emplace("cim:GovSteamCC.pmaxhp", &assign_GovSteamCC_pmaxhp); - assign_map.emplace("cim:GovSteamCC.pmaxlp", &assign_GovSteamCC_pmaxlp); - assign_map.emplace("cim:GovSteamCC.rhp", &assign_GovSteamCC_rhp); - assign_map.emplace("cim:GovSteamCC.rlp", &assign_GovSteamCC_rlp); - assign_map.emplace("cim:GovSteamCC.t1hp", &assign_GovSteamCC_t1hp); - assign_map.emplace("cim:GovSteamCC.t1lp", &assign_GovSteamCC_t1lp); - assign_map.emplace("cim:GovSteamCC.t3hp", &assign_GovSteamCC_t3hp); - assign_map.emplace("cim:GovSteamCC.t3lp", &assign_GovSteamCC_t3lp); - assign_map.emplace("cim:GovSteamCC.t4hp", &assign_GovSteamCC_t4hp); - assign_map.emplace("cim:GovSteamCC.t4lp", &assign_GovSteamCC_t4lp); - assign_map.emplace("cim:GovSteamCC.t5hp", &assign_GovSteamCC_t5hp); - assign_map.emplace("cim:GovSteamCC.t5lp", &assign_GovSteamCC_t5lp); + assign_map.emplace("GovSteamCC.dhp", &assign_GovSteamCC_dhp); + assign_map.emplace("GovSteamCC.dlp", &assign_GovSteamCC_dlp); + assign_map.emplace("GovSteamCC.fhp", &assign_GovSteamCC_fhp); + assign_map.emplace("GovSteamCC.flp", &assign_GovSteamCC_flp); + assign_map.emplace("GovSteamCC.mwbase", &assign_GovSteamCC_mwbase); + assign_map.emplace("GovSteamCC.pmaxhp", &assign_GovSteamCC_pmaxhp); + assign_map.emplace("GovSteamCC.pmaxlp", &assign_GovSteamCC_pmaxlp); + assign_map.emplace("GovSteamCC.rhp", &assign_GovSteamCC_rhp); + assign_map.emplace("GovSteamCC.rlp", &assign_GovSteamCC_rlp); + assign_map.emplace("GovSteamCC.t1hp", &assign_GovSteamCC_t1hp); + assign_map.emplace("GovSteamCC.t1lp", &assign_GovSteamCC_t1lp); + assign_map.emplace("GovSteamCC.t3hp", &assign_GovSteamCC_t3hp); + assign_map.emplace("GovSteamCC.t3lp", &assign_GovSteamCC_t3lp); + assign_map.emplace("GovSteamCC.t4hp", &assign_GovSteamCC_t4hp); + assign_map.emplace("GovSteamCC.t4lp", &assign_GovSteamCC_t4lp); + assign_map.emplace("GovSteamCC.t5hp", &assign_GovSteamCC_t5hp); + assign_map.emplace("GovSteamCC.t5lp", &assign_GovSteamCC_t5lp); } void GovSteamCC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void GovSteamCC::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamCC.dhp", &get_GovSteamCC_dhp); - get_map.emplace("cim:GovSteamCC.dlp", &get_GovSteamCC_dlp); - get_map.emplace("cim:GovSteamCC.fhp", &get_GovSteamCC_fhp); - get_map.emplace("cim:GovSteamCC.flp", &get_GovSteamCC_flp); - get_map.emplace("cim:GovSteamCC.mwbase", &get_GovSteamCC_mwbase); - get_map.emplace("cim:GovSteamCC.pmaxhp", &get_GovSteamCC_pmaxhp); - get_map.emplace("cim:GovSteamCC.pmaxlp", &get_GovSteamCC_pmaxlp); - get_map.emplace("cim:GovSteamCC.rhp", &get_GovSteamCC_rhp); - get_map.emplace("cim:GovSteamCC.rlp", &get_GovSteamCC_rlp); - get_map.emplace("cim:GovSteamCC.t1hp", &get_GovSteamCC_t1hp); - get_map.emplace("cim:GovSteamCC.t1lp", &get_GovSteamCC_t1lp); - get_map.emplace("cim:GovSteamCC.t3hp", &get_GovSteamCC_t3hp); - get_map.emplace("cim:GovSteamCC.t3lp", &get_GovSteamCC_t3lp); - get_map.emplace("cim:GovSteamCC.t4hp", &get_GovSteamCC_t4hp); - get_map.emplace("cim:GovSteamCC.t4lp", &get_GovSteamCC_t4lp); - get_map.emplace("cim:GovSteamCC.t5hp", &get_GovSteamCC_t5hp); - get_map.emplace("cim:GovSteamCC.t5lp", &get_GovSteamCC_t5lp); + get_map.emplace("GovSteamCC.dhp", &get_GovSteamCC_dhp); + get_map.emplace("GovSteamCC.dlp", &get_GovSteamCC_dlp); + get_map.emplace("GovSteamCC.fhp", &get_GovSteamCC_fhp); + get_map.emplace("GovSteamCC.flp", &get_GovSteamCC_flp); + get_map.emplace("GovSteamCC.mwbase", &get_GovSteamCC_mwbase); + get_map.emplace("GovSteamCC.pmaxhp", &get_GovSteamCC_pmaxhp); + get_map.emplace("GovSteamCC.pmaxlp", &get_GovSteamCC_pmaxlp); + get_map.emplace("GovSteamCC.rhp", &get_GovSteamCC_rhp); + get_map.emplace("GovSteamCC.rlp", &get_GovSteamCC_rlp); + get_map.emplace("GovSteamCC.t1hp", &get_GovSteamCC_t1hp); + get_map.emplace("GovSteamCC.t1lp", &get_GovSteamCC_t1lp); + get_map.emplace("GovSteamCC.t3hp", &get_GovSteamCC_t3hp); + get_map.emplace("GovSteamCC.t3lp", &get_GovSteamCC_t3lp); + get_map.emplace("GovSteamCC.t4hp", &get_GovSteamCC_t4hp); + get_map.emplace("GovSteamCC.t4lp", &get_GovSteamCC_t4lp); + get_map.emplace("GovSteamCC.t5hp", &get_GovSteamCC_t5hp); + get_map.emplace("GovSteamCC.t5lp", &get_GovSteamCC_t5lp); } void GovSteamCC::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void GovSteamCC::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamCC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamCC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamCC::declare() { return BaseClassDefiner(GovSteamCC::addConstructToMap, GovSteamCC::addPrimitiveAssignFnsToMap, GovSteamCC::addClassAssignFnsToMap, GovSteamCC::debugName); } +std::map GovSteamCC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamCC_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteamCC.hpp b/CGMES_2.4.15_27JAN2020/GovSteamCC.hpp index 1e7c7a97d..adf6cad62 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamCC.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamCC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -81,8 +82,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -90,7 +98,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamCC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteamEU.cpp b/CGMES_2.4.15_27JAN2020/GovSteamEU.cpp index 79c47df8b..ca8ca6e82 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamEU.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamEU.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamEU(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamEU.chc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cho", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.db1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.db2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.hhpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.ke", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.kfcor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.khp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.klp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.kwcor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.prhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.simx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tdp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.ten", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tfp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.thp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tlp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tvhp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tvip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wfmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wfmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wmax1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wmax2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wwmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wwmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamEU::GovSteamEU() {} GovSteamEU::~GovSteamEU() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamEU.chc", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cho", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cic", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cio", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.db1", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.db2", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.hhpmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.ke", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.kfcor", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.khp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.klp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.kwcor", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.prhmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.simx", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tdp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.ten", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tf", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tfp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.thp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tip", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tlp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.trh", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tvhp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tvip", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tw", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wfmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wfmin", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wmax1", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wmax2", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wwmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wwmin", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamEU::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamEU::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamEU::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamEU::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamEU::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamEU::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamEU::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamEU::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamEU::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamEU_chc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovSteamEU::debugString() const void GovSteamEU::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamEU", &GovSteamEU_factory); + factory_map.emplace("GovSteamEU", &GovSteamEU_factory); } void GovSteamEU::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamEU.chc", &assign_GovSteamEU_chc); - assign_map.emplace("cim:GovSteamEU.cho", &assign_GovSteamEU_cho); - assign_map.emplace("cim:GovSteamEU.cic", &assign_GovSteamEU_cic); - assign_map.emplace("cim:GovSteamEU.cio", &assign_GovSteamEU_cio); - assign_map.emplace("cim:GovSteamEU.db1", &assign_GovSteamEU_db1); - assign_map.emplace("cim:GovSteamEU.db2", &assign_GovSteamEU_db2); - assign_map.emplace("cim:GovSteamEU.hhpmax", &assign_GovSteamEU_hhpmax); - assign_map.emplace("cim:GovSteamEU.ke", &assign_GovSteamEU_ke); - assign_map.emplace("cim:GovSteamEU.kfcor", &assign_GovSteamEU_kfcor); - assign_map.emplace("cim:GovSteamEU.khp", &assign_GovSteamEU_khp); - assign_map.emplace("cim:GovSteamEU.klp", &assign_GovSteamEU_klp); - assign_map.emplace("cim:GovSteamEU.kwcor", &assign_GovSteamEU_kwcor); - assign_map.emplace("cim:GovSteamEU.mwbase", &assign_GovSteamEU_mwbase); - assign_map.emplace("cim:GovSteamEU.pmax", &assign_GovSteamEU_pmax); - assign_map.emplace("cim:GovSteamEU.prhmax", &assign_GovSteamEU_prhmax); - assign_map.emplace("cim:GovSteamEU.simx", &assign_GovSteamEU_simx); - assign_map.emplace("cim:GovSteamEU.tb", &assign_GovSteamEU_tb); - assign_map.emplace("cim:GovSteamEU.tdp", &assign_GovSteamEU_tdp); - assign_map.emplace("cim:GovSteamEU.ten", &assign_GovSteamEU_ten); - assign_map.emplace("cim:GovSteamEU.tf", &assign_GovSteamEU_tf); - assign_map.emplace("cim:GovSteamEU.tfp", &assign_GovSteamEU_tfp); - assign_map.emplace("cim:GovSteamEU.thp", &assign_GovSteamEU_thp); - assign_map.emplace("cim:GovSteamEU.tip", &assign_GovSteamEU_tip); - assign_map.emplace("cim:GovSteamEU.tlp", &assign_GovSteamEU_tlp); - assign_map.emplace("cim:GovSteamEU.tp", &assign_GovSteamEU_tp); - assign_map.emplace("cim:GovSteamEU.trh", &assign_GovSteamEU_trh); - assign_map.emplace("cim:GovSteamEU.tvhp", &assign_GovSteamEU_tvhp); - assign_map.emplace("cim:GovSteamEU.tvip", &assign_GovSteamEU_tvip); - assign_map.emplace("cim:GovSteamEU.tw", &assign_GovSteamEU_tw); - assign_map.emplace("cim:GovSteamEU.wfmax", &assign_GovSteamEU_wfmax); - assign_map.emplace("cim:GovSteamEU.wfmin", &assign_GovSteamEU_wfmin); - assign_map.emplace("cim:GovSteamEU.wmax1", &assign_GovSteamEU_wmax1); - assign_map.emplace("cim:GovSteamEU.wmax2", &assign_GovSteamEU_wmax2); - assign_map.emplace("cim:GovSteamEU.wwmax", &assign_GovSteamEU_wwmax); - assign_map.emplace("cim:GovSteamEU.wwmin", &assign_GovSteamEU_wwmin); + assign_map.emplace("GovSteamEU.chc", &assign_GovSteamEU_chc); + assign_map.emplace("GovSteamEU.cho", &assign_GovSteamEU_cho); + assign_map.emplace("GovSteamEU.cic", &assign_GovSteamEU_cic); + assign_map.emplace("GovSteamEU.cio", &assign_GovSteamEU_cio); + assign_map.emplace("GovSteamEU.db1", &assign_GovSteamEU_db1); + assign_map.emplace("GovSteamEU.db2", &assign_GovSteamEU_db2); + assign_map.emplace("GovSteamEU.hhpmax", &assign_GovSteamEU_hhpmax); + assign_map.emplace("GovSteamEU.ke", &assign_GovSteamEU_ke); + assign_map.emplace("GovSteamEU.kfcor", &assign_GovSteamEU_kfcor); + assign_map.emplace("GovSteamEU.khp", &assign_GovSteamEU_khp); + assign_map.emplace("GovSteamEU.klp", &assign_GovSteamEU_klp); + assign_map.emplace("GovSteamEU.kwcor", &assign_GovSteamEU_kwcor); + assign_map.emplace("GovSteamEU.mwbase", &assign_GovSteamEU_mwbase); + assign_map.emplace("GovSteamEU.pmax", &assign_GovSteamEU_pmax); + assign_map.emplace("GovSteamEU.prhmax", &assign_GovSteamEU_prhmax); + assign_map.emplace("GovSteamEU.simx", &assign_GovSteamEU_simx); + assign_map.emplace("GovSteamEU.tb", &assign_GovSteamEU_tb); + assign_map.emplace("GovSteamEU.tdp", &assign_GovSteamEU_tdp); + assign_map.emplace("GovSteamEU.ten", &assign_GovSteamEU_ten); + assign_map.emplace("GovSteamEU.tf", &assign_GovSteamEU_tf); + assign_map.emplace("GovSteamEU.tfp", &assign_GovSteamEU_tfp); + assign_map.emplace("GovSteamEU.thp", &assign_GovSteamEU_thp); + assign_map.emplace("GovSteamEU.tip", &assign_GovSteamEU_tip); + assign_map.emplace("GovSteamEU.tlp", &assign_GovSteamEU_tlp); + assign_map.emplace("GovSteamEU.tp", &assign_GovSteamEU_tp); + assign_map.emplace("GovSteamEU.trh", &assign_GovSteamEU_trh); + assign_map.emplace("GovSteamEU.tvhp", &assign_GovSteamEU_tvhp); + assign_map.emplace("GovSteamEU.tvip", &assign_GovSteamEU_tvip); + assign_map.emplace("GovSteamEU.tw", &assign_GovSteamEU_tw); + assign_map.emplace("GovSteamEU.wfmax", &assign_GovSteamEU_wfmax); + assign_map.emplace("GovSteamEU.wfmin", &assign_GovSteamEU_wfmin); + assign_map.emplace("GovSteamEU.wmax1", &assign_GovSteamEU_wmax1); + assign_map.emplace("GovSteamEU.wmax2", &assign_GovSteamEU_wmax2); + assign_map.emplace("GovSteamEU.wwmax", &assign_GovSteamEU_wwmax); + assign_map.emplace("GovSteamEU.wwmin", &assign_GovSteamEU_wwmin); } void GovSteamEU::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,41 +1177,41 @@ void GovSteamEU::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamEU.chc", &get_GovSteamEU_chc); - get_map.emplace("cim:GovSteamEU.cho", &get_GovSteamEU_cho); - get_map.emplace("cim:GovSteamEU.cic", &get_GovSteamEU_cic); - get_map.emplace("cim:GovSteamEU.cio", &get_GovSteamEU_cio); - get_map.emplace("cim:GovSteamEU.db1", &get_GovSteamEU_db1); - get_map.emplace("cim:GovSteamEU.db2", &get_GovSteamEU_db2); - get_map.emplace("cim:GovSteamEU.hhpmax", &get_GovSteamEU_hhpmax); - get_map.emplace("cim:GovSteamEU.ke", &get_GovSteamEU_ke); - get_map.emplace("cim:GovSteamEU.kfcor", &get_GovSteamEU_kfcor); - get_map.emplace("cim:GovSteamEU.khp", &get_GovSteamEU_khp); - get_map.emplace("cim:GovSteamEU.klp", &get_GovSteamEU_klp); - get_map.emplace("cim:GovSteamEU.kwcor", &get_GovSteamEU_kwcor); - get_map.emplace("cim:GovSteamEU.mwbase", &get_GovSteamEU_mwbase); - get_map.emplace("cim:GovSteamEU.pmax", &get_GovSteamEU_pmax); - get_map.emplace("cim:GovSteamEU.prhmax", &get_GovSteamEU_prhmax); - get_map.emplace("cim:GovSteamEU.simx", &get_GovSteamEU_simx); - get_map.emplace("cim:GovSteamEU.tb", &get_GovSteamEU_tb); - get_map.emplace("cim:GovSteamEU.tdp", &get_GovSteamEU_tdp); - get_map.emplace("cim:GovSteamEU.ten", &get_GovSteamEU_ten); - get_map.emplace("cim:GovSteamEU.tf", &get_GovSteamEU_tf); - get_map.emplace("cim:GovSteamEU.tfp", &get_GovSteamEU_tfp); - get_map.emplace("cim:GovSteamEU.thp", &get_GovSteamEU_thp); - get_map.emplace("cim:GovSteamEU.tip", &get_GovSteamEU_tip); - get_map.emplace("cim:GovSteamEU.tlp", &get_GovSteamEU_tlp); - get_map.emplace("cim:GovSteamEU.tp", &get_GovSteamEU_tp); - get_map.emplace("cim:GovSteamEU.trh", &get_GovSteamEU_trh); - get_map.emplace("cim:GovSteamEU.tvhp", &get_GovSteamEU_tvhp); - get_map.emplace("cim:GovSteamEU.tvip", &get_GovSteamEU_tvip); - get_map.emplace("cim:GovSteamEU.tw", &get_GovSteamEU_tw); - get_map.emplace("cim:GovSteamEU.wfmax", &get_GovSteamEU_wfmax); - get_map.emplace("cim:GovSteamEU.wfmin", &get_GovSteamEU_wfmin); - get_map.emplace("cim:GovSteamEU.wmax1", &get_GovSteamEU_wmax1); - get_map.emplace("cim:GovSteamEU.wmax2", &get_GovSteamEU_wmax2); - get_map.emplace("cim:GovSteamEU.wwmax", &get_GovSteamEU_wwmax); - get_map.emplace("cim:GovSteamEU.wwmin", &get_GovSteamEU_wwmin); + get_map.emplace("GovSteamEU.chc", &get_GovSteamEU_chc); + get_map.emplace("GovSteamEU.cho", &get_GovSteamEU_cho); + get_map.emplace("GovSteamEU.cic", &get_GovSteamEU_cic); + get_map.emplace("GovSteamEU.cio", &get_GovSteamEU_cio); + get_map.emplace("GovSteamEU.db1", &get_GovSteamEU_db1); + get_map.emplace("GovSteamEU.db2", &get_GovSteamEU_db2); + get_map.emplace("GovSteamEU.hhpmax", &get_GovSteamEU_hhpmax); + get_map.emplace("GovSteamEU.ke", &get_GovSteamEU_ke); + get_map.emplace("GovSteamEU.kfcor", &get_GovSteamEU_kfcor); + get_map.emplace("GovSteamEU.khp", &get_GovSteamEU_khp); + get_map.emplace("GovSteamEU.klp", &get_GovSteamEU_klp); + get_map.emplace("GovSteamEU.kwcor", &get_GovSteamEU_kwcor); + get_map.emplace("GovSteamEU.mwbase", &get_GovSteamEU_mwbase); + get_map.emplace("GovSteamEU.pmax", &get_GovSteamEU_pmax); + get_map.emplace("GovSteamEU.prhmax", &get_GovSteamEU_prhmax); + get_map.emplace("GovSteamEU.simx", &get_GovSteamEU_simx); + get_map.emplace("GovSteamEU.tb", &get_GovSteamEU_tb); + get_map.emplace("GovSteamEU.tdp", &get_GovSteamEU_tdp); + get_map.emplace("GovSteamEU.ten", &get_GovSteamEU_ten); + get_map.emplace("GovSteamEU.tf", &get_GovSteamEU_tf); + get_map.emplace("GovSteamEU.tfp", &get_GovSteamEU_tfp); + get_map.emplace("GovSteamEU.thp", &get_GovSteamEU_thp); + get_map.emplace("GovSteamEU.tip", &get_GovSteamEU_tip); + get_map.emplace("GovSteamEU.tlp", &get_GovSteamEU_tlp); + get_map.emplace("GovSteamEU.tp", &get_GovSteamEU_tp); + get_map.emplace("GovSteamEU.trh", &get_GovSteamEU_trh); + get_map.emplace("GovSteamEU.tvhp", &get_GovSteamEU_tvhp); + get_map.emplace("GovSteamEU.tvip", &get_GovSteamEU_tvip); + get_map.emplace("GovSteamEU.tw", &get_GovSteamEU_tw); + get_map.emplace("GovSteamEU.wfmax", &get_GovSteamEU_wfmax); + get_map.emplace("GovSteamEU.wfmin", &get_GovSteamEU_wfmin); + get_map.emplace("GovSteamEU.wmax1", &get_GovSteamEU_wmax1); + get_map.emplace("GovSteamEU.wmax2", &get_GovSteamEU_wmax2); + get_map.emplace("GovSteamEU.wwmax", &get_GovSteamEU_wwmax); + get_map.emplace("GovSteamEU.wwmin", &get_GovSteamEU_wwmin); } void GovSteamEU::addClassGetFnsToMap(std::map& get_map) const @@ -1192,11 +1224,25 @@ void GovSteamEU::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamEU::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamEU" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamEU::declare() { return BaseClassDefiner(GovSteamEU::addConstructToMap, GovSteamEU::addPrimitiveAssignFnsToMap, GovSteamEU::addClassAssignFnsToMap, GovSteamEU::debugName); } +std::map GovSteamEU::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamEU_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteamEU.hpp b/CGMES_2.4.15_27JAN2020/GovSteamEU.hpp index 8a76be166..c1a98cc47 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamEU.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamEU.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -136,8 +137,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -145,7 +153,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamEU_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteamFV2.cpp b/CGMES_2.4.15_27JAN2020/GovSteamFV2.cpp index 2859415ca..6ed7f507a 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamFV2.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamFV2.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV2.dt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.ti", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.vmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.vmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV2::GovSteamFV2() {} GovSteamFV2::~GovSteamFV2() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamFV2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamFV2::getClassNamespaceUrl() const { - { "cim:GovSteamFV2.dt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.k", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.r", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.ti", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.vmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamFV2::getPossibleProfilesForClass() const +const std::string& GovSteamFV2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamFV2::getPossibleProfilesForAttributes() const +const std::list& GovSteamFV2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV2_dt(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* GovSteamFV2::debugString() const void GovSteamFV2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV2", &GovSteamFV2_factory); + factory_map.emplace("GovSteamFV2", &GovSteamFV2_factory); } void GovSteamFV2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV2.dt", &assign_GovSteamFV2_dt); - assign_map.emplace("cim:GovSteamFV2.k", &assign_GovSteamFV2_k); - assign_map.emplace("cim:GovSteamFV2.mwbase", &assign_GovSteamFV2_mwbase); - assign_map.emplace("cim:GovSteamFV2.r", &assign_GovSteamFV2_r); - assign_map.emplace("cim:GovSteamFV2.t1", &assign_GovSteamFV2_t1); - assign_map.emplace("cim:GovSteamFV2.t3", &assign_GovSteamFV2_t3); - assign_map.emplace("cim:GovSteamFV2.ta", &assign_GovSteamFV2_ta); - assign_map.emplace("cim:GovSteamFV2.tb", &assign_GovSteamFV2_tb); - assign_map.emplace("cim:GovSteamFV2.tc", &assign_GovSteamFV2_tc); - assign_map.emplace("cim:GovSteamFV2.ti", &assign_GovSteamFV2_ti); - assign_map.emplace("cim:GovSteamFV2.tt", &assign_GovSteamFV2_tt); - assign_map.emplace("cim:GovSteamFV2.vmax", &assign_GovSteamFV2_vmax); - assign_map.emplace("cim:GovSteamFV2.vmin", &assign_GovSteamFV2_vmin); + assign_map.emplace("GovSteamFV2.dt", &assign_GovSteamFV2_dt); + assign_map.emplace("GovSteamFV2.k", &assign_GovSteamFV2_k); + assign_map.emplace("GovSteamFV2.mwbase", &assign_GovSteamFV2_mwbase); + assign_map.emplace("GovSteamFV2.r", &assign_GovSteamFV2_r); + assign_map.emplace("GovSteamFV2.t1", &assign_GovSteamFV2_t1); + assign_map.emplace("GovSteamFV2.t3", &assign_GovSteamFV2_t3); + assign_map.emplace("GovSteamFV2.ta", &assign_GovSteamFV2_ta); + assign_map.emplace("GovSteamFV2.tb", &assign_GovSteamFV2_tb); + assign_map.emplace("GovSteamFV2.tc", &assign_GovSteamFV2_tc); + assign_map.emplace("GovSteamFV2.ti", &assign_GovSteamFV2_ti); + assign_map.emplace("GovSteamFV2.tt", &assign_GovSteamFV2_tt); + assign_map.emplace("GovSteamFV2.vmax", &assign_GovSteamFV2_vmax); + assign_map.emplace("GovSteamFV2.vmin", &assign_GovSteamFV2_vmin); } void GovSteamFV2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void GovSteamFV2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV2.dt", &get_GovSteamFV2_dt); - get_map.emplace("cim:GovSteamFV2.k", &get_GovSteamFV2_k); - get_map.emplace("cim:GovSteamFV2.mwbase", &get_GovSteamFV2_mwbase); - get_map.emplace("cim:GovSteamFV2.r", &get_GovSteamFV2_r); - get_map.emplace("cim:GovSteamFV2.t1", &get_GovSteamFV2_t1); - get_map.emplace("cim:GovSteamFV2.t3", &get_GovSteamFV2_t3); - get_map.emplace("cim:GovSteamFV2.ta", &get_GovSteamFV2_ta); - get_map.emplace("cim:GovSteamFV2.tb", &get_GovSteamFV2_tb); - get_map.emplace("cim:GovSteamFV2.tc", &get_GovSteamFV2_tc); - get_map.emplace("cim:GovSteamFV2.ti", &get_GovSteamFV2_ti); - get_map.emplace("cim:GovSteamFV2.tt", &get_GovSteamFV2_tt); - get_map.emplace("cim:GovSteamFV2.vmax", &get_GovSteamFV2_vmax); - get_map.emplace("cim:GovSteamFV2.vmin", &get_GovSteamFV2_vmin); + get_map.emplace("GovSteamFV2.dt", &get_GovSteamFV2_dt); + get_map.emplace("GovSteamFV2.k", &get_GovSteamFV2_k); + get_map.emplace("GovSteamFV2.mwbase", &get_GovSteamFV2_mwbase); + get_map.emplace("GovSteamFV2.r", &get_GovSteamFV2_r); + get_map.emplace("GovSteamFV2.t1", &get_GovSteamFV2_t1); + get_map.emplace("GovSteamFV2.t3", &get_GovSteamFV2_t3); + get_map.emplace("GovSteamFV2.ta", &get_GovSteamFV2_ta); + get_map.emplace("GovSteamFV2.tb", &get_GovSteamFV2_tb); + get_map.emplace("GovSteamFV2.tc", &get_GovSteamFV2_tc); + get_map.emplace("GovSteamFV2.ti", &get_GovSteamFV2_ti); + get_map.emplace("GovSteamFV2.tt", &get_GovSteamFV2_tt); + get_map.emplace("GovSteamFV2.vmax", &get_GovSteamFV2_vmax); + get_map.emplace("GovSteamFV2.vmin", &get_GovSteamFV2_vmin); } void GovSteamFV2::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void GovSteamFV2::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV2::declare() { return BaseClassDefiner(GovSteamFV2::addConstructToMap, GovSteamFV2::addPrimitiveAssignFnsToMap, GovSteamFV2::addClassAssignFnsToMap, GovSteamFV2::debugName); } +std::map GovSteamFV2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV2_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteamFV2.hpp b/CGMES_2.4.15_27JAN2020/GovSteamFV2.hpp index 7df266adb..7aa432394 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamFV2.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamFV2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteamFV3.cpp b/CGMES_2.4.15_27JAN2020/GovSteamFV3.cpp index 871238fb7..dcabd7beb 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamFV3.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamFV3.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV3.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.prmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV3::GovSteamFV3() {} GovSteamFV3::~GovSteamFV3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamFV3.k", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.prmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.uc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamFV3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamFV3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamFV3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamFV3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamFV3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamFV3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV3_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* GovSteamFV3::debugString() const void GovSteamFV3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV3", &GovSteamFV3_factory); + factory_map.emplace("GovSteamFV3", &GovSteamFV3_factory); } void GovSteamFV3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV3.k", &assign_GovSteamFV3_k); - assign_map.emplace("cim:GovSteamFV3.k1", &assign_GovSteamFV3_k1); - assign_map.emplace("cim:GovSteamFV3.k2", &assign_GovSteamFV3_k2); - assign_map.emplace("cim:GovSteamFV3.k3", &assign_GovSteamFV3_k3); - assign_map.emplace("cim:GovSteamFV3.mwbase", &assign_GovSteamFV3_mwbase); - assign_map.emplace("cim:GovSteamFV3.pmax", &assign_GovSteamFV3_pmax); - assign_map.emplace("cim:GovSteamFV3.pmin", &assign_GovSteamFV3_pmin); - assign_map.emplace("cim:GovSteamFV3.prmax", &assign_GovSteamFV3_prmax); - assign_map.emplace("cim:GovSteamFV3.t1", &assign_GovSteamFV3_t1); - assign_map.emplace("cim:GovSteamFV3.t2", &assign_GovSteamFV3_t2); - assign_map.emplace("cim:GovSteamFV3.t3", &assign_GovSteamFV3_t3); - assign_map.emplace("cim:GovSteamFV3.t4", &assign_GovSteamFV3_t4); - assign_map.emplace("cim:GovSteamFV3.t5", &assign_GovSteamFV3_t5); - assign_map.emplace("cim:GovSteamFV3.t6", &assign_GovSteamFV3_t6); - assign_map.emplace("cim:GovSteamFV3.ta", &assign_GovSteamFV3_ta); - assign_map.emplace("cim:GovSteamFV3.tb", &assign_GovSteamFV3_tb); - assign_map.emplace("cim:GovSteamFV3.tc", &assign_GovSteamFV3_tc); - assign_map.emplace("cim:GovSteamFV3.uc", &assign_GovSteamFV3_uc); - assign_map.emplace("cim:GovSteamFV3.uo", &assign_GovSteamFV3_uo); + assign_map.emplace("GovSteamFV3.k", &assign_GovSteamFV3_k); + assign_map.emplace("GovSteamFV3.k1", &assign_GovSteamFV3_k1); + assign_map.emplace("GovSteamFV3.k2", &assign_GovSteamFV3_k2); + assign_map.emplace("GovSteamFV3.k3", &assign_GovSteamFV3_k3); + assign_map.emplace("GovSteamFV3.mwbase", &assign_GovSteamFV3_mwbase); + assign_map.emplace("GovSteamFV3.pmax", &assign_GovSteamFV3_pmax); + assign_map.emplace("GovSteamFV3.pmin", &assign_GovSteamFV3_pmin); + assign_map.emplace("GovSteamFV3.prmax", &assign_GovSteamFV3_prmax); + assign_map.emplace("GovSteamFV3.t1", &assign_GovSteamFV3_t1); + assign_map.emplace("GovSteamFV3.t2", &assign_GovSteamFV3_t2); + assign_map.emplace("GovSteamFV3.t3", &assign_GovSteamFV3_t3); + assign_map.emplace("GovSteamFV3.t4", &assign_GovSteamFV3_t4); + assign_map.emplace("GovSteamFV3.t5", &assign_GovSteamFV3_t5); + assign_map.emplace("GovSteamFV3.t6", &assign_GovSteamFV3_t6); + assign_map.emplace("GovSteamFV3.ta", &assign_GovSteamFV3_ta); + assign_map.emplace("GovSteamFV3.tb", &assign_GovSteamFV3_tb); + assign_map.emplace("GovSteamFV3.tc", &assign_GovSteamFV3_tc); + assign_map.emplace("GovSteamFV3.uc", &assign_GovSteamFV3_uc); + assign_map.emplace("GovSteamFV3.uo", &assign_GovSteamFV3_uo); } void GovSteamFV3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void GovSteamFV3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV3.k", &get_GovSteamFV3_k); - get_map.emplace("cim:GovSteamFV3.k1", &get_GovSteamFV3_k1); - get_map.emplace("cim:GovSteamFV3.k2", &get_GovSteamFV3_k2); - get_map.emplace("cim:GovSteamFV3.k3", &get_GovSteamFV3_k3); - get_map.emplace("cim:GovSteamFV3.mwbase", &get_GovSteamFV3_mwbase); - get_map.emplace("cim:GovSteamFV3.pmax", &get_GovSteamFV3_pmax); - get_map.emplace("cim:GovSteamFV3.pmin", &get_GovSteamFV3_pmin); - get_map.emplace("cim:GovSteamFV3.prmax", &get_GovSteamFV3_prmax); - get_map.emplace("cim:GovSteamFV3.t1", &get_GovSteamFV3_t1); - get_map.emplace("cim:GovSteamFV3.t2", &get_GovSteamFV3_t2); - get_map.emplace("cim:GovSteamFV3.t3", &get_GovSteamFV3_t3); - get_map.emplace("cim:GovSteamFV3.t4", &get_GovSteamFV3_t4); - get_map.emplace("cim:GovSteamFV3.t5", &get_GovSteamFV3_t5); - get_map.emplace("cim:GovSteamFV3.t6", &get_GovSteamFV3_t6); - get_map.emplace("cim:GovSteamFV3.ta", &get_GovSteamFV3_ta); - get_map.emplace("cim:GovSteamFV3.tb", &get_GovSteamFV3_tb); - get_map.emplace("cim:GovSteamFV3.tc", &get_GovSteamFV3_tc); - get_map.emplace("cim:GovSteamFV3.uc", &get_GovSteamFV3_uc); - get_map.emplace("cim:GovSteamFV3.uo", &get_GovSteamFV3_uo); + get_map.emplace("GovSteamFV3.k", &get_GovSteamFV3_k); + get_map.emplace("GovSteamFV3.k1", &get_GovSteamFV3_k1); + get_map.emplace("GovSteamFV3.k2", &get_GovSteamFV3_k2); + get_map.emplace("GovSteamFV3.k3", &get_GovSteamFV3_k3); + get_map.emplace("GovSteamFV3.mwbase", &get_GovSteamFV3_mwbase); + get_map.emplace("GovSteamFV3.pmax", &get_GovSteamFV3_pmax); + get_map.emplace("GovSteamFV3.pmin", &get_GovSteamFV3_pmin); + get_map.emplace("GovSteamFV3.prmax", &get_GovSteamFV3_prmax); + get_map.emplace("GovSteamFV3.t1", &get_GovSteamFV3_t1); + get_map.emplace("GovSteamFV3.t2", &get_GovSteamFV3_t2); + get_map.emplace("GovSteamFV3.t3", &get_GovSteamFV3_t3); + get_map.emplace("GovSteamFV3.t4", &get_GovSteamFV3_t4); + get_map.emplace("GovSteamFV3.t5", &get_GovSteamFV3_t5); + get_map.emplace("GovSteamFV3.t6", &get_GovSteamFV3_t6); + get_map.emplace("GovSteamFV3.ta", &get_GovSteamFV3_ta); + get_map.emplace("GovSteamFV3.tb", &get_GovSteamFV3_tb); + get_map.emplace("GovSteamFV3.tc", &get_GovSteamFV3_tc); + get_map.emplace("GovSteamFV3.uc", &get_GovSteamFV3_uc); + get_map.emplace("GovSteamFV3.uo", &get_GovSteamFV3_uo); } void GovSteamFV3::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void GovSteamFV3::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV3::declare() { return BaseClassDefiner(GovSteamFV3::addConstructToMap, GovSteamFV3::addPrimitiveAssignFnsToMap, GovSteamFV3::addClassAssignFnsToMap, GovSteamFV3::debugName); } +std::map GovSteamFV3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV3_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteamFV3.hpp b/CGMES_2.4.15_27JAN2020/GovSteamFV3.hpp index d69d84dd6..9fad1f0cb 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamFV3.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamFV3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV3_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteamFV4.cpp b/CGMES_2.4.15_27JAN2020/GovSteamFV4.cpp index 18cb0f39c..ca28d88c8 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamFV4.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamFV4.cpp @@ -11,82 +11,114 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV4.cpsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.cpsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.crmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.crmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kf3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.khp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kmp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kmp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.krc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ksh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.lpi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.lps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.mnef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.mxef", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.pr1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.pr2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.psmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rsmimn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rsmimx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rvgmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rvgmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srsmp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.svmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.svmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tam", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tcm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tdc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tf1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.thp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tmp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.trh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ty", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.y", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.yhpmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.yhpmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ympmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ympmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV4::GovSteamFV4() {} GovSteamFV4::~GovSteamFV4() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamFV4.cpsmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.cpsmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.crmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.crmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kdc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kf1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kf3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.khp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kic", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kip", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kit", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kmp1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kmp2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.krc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ksh", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.lpi", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.lps", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.mnef", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.mxef", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.pr1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.pr2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.psmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rsmimn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rsmimx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rvgmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rvgmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srsmp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.svmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.svmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tam", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tcm", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tdc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tf1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tf2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.thp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tmp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.trh", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tv", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ty", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.y", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.yhpmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.yhpmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ympmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ympmx", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamFV4::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamFV4::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamFV4::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamFV4::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamFV4::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamFV4::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV4_cpsmn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1576,62 +1608,62 @@ const char* GovSteamFV4::debugString() const void GovSteamFV4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV4", &GovSteamFV4_factory); + factory_map.emplace("GovSteamFV4", &GovSteamFV4_factory); } void GovSteamFV4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV4.cpsmn", &assign_GovSteamFV4_cpsmn); - assign_map.emplace("cim:GovSteamFV4.cpsmx", &assign_GovSteamFV4_cpsmx); - assign_map.emplace("cim:GovSteamFV4.crmn", &assign_GovSteamFV4_crmn); - assign_map.emplace("cim:GovSteamFV4.crmx", &assign_GovSteamFV4_crmx); - assign_map.emplace("cim:GovSteamFV4.kdc", &assign_GovSteamFV4_kdc); - assign_map.emplace("cim:GovSteamFV4.kf1", &assign_GovSteamFV4_kf1); - assign_map.emplace("cim:GovSteamFV4.kf3", &assign_GovSteamFV4_kf3); - assign_map.emplace("cim:GovSteamFV4.khp", &assign_GovSteamFV4_khp); - assign_map.emplace("cim:GovSteamFV4.kic", &assign_GovSteamFV4_kic); - assign_map.emplace("cim:GovSteamFV4.kip", &assign_GovSteamFV4_kip); - assign_map.emplace("cim:GovSteamFV4.kit", &assign_GovSteamFV4_kit); - assign_map.emplace("cim:GovSteamFV4.kmp1", &assign_GovSteamFV4_kmp1); - assign_map.emplace("cim:GovSteamFV4.kmp2", &assign_GovSteamFV4_kmp2); - assign_map.emplace("cim:GovSteamFV4.kpc", &assign_GovSteamFV4_kpc); - assign_map.emplace("cim:GovSteamFV4.kpp", &assign_GovSteamFV4_kpp); - assign_map.emplace("cim:GovSteamFV4.kpt", &assign_GovSteamFV4_kpt); - assign_map.emplace("cim:GovSteamFV4.krc", &assign_GovSteamFV4_krc); - assign_map.emplace("cim:GovSteamFV4.ksh", &assign_GovSteamFV4_ksh); - assign_map.emplace("cim:GovSteamFV4.lpi", &assign_GovSteamFV4_lpi); - assign_map.emplace("cim:GovSteamFV4.lps", &assign_GovSteamFV4_lps); - assign_map.emplace("cim:GovSteamFV4.mnef", &assign_GovSteamFV4_mnef); - assign_map.emplace("cim:GovSteamFV4.mxef", &assign_GovSteamFV4_mxef); - assign_map.emplace("cim:GovSteamFV4.pr1", &assign_GovSteamFV4_pr1); - assign_map.emplace("cim:GovSteamFV4.pr2", &assign_GovSteamFV4_pr2); - assign_map.emplace("cim:GovSteamFV4.psmn", &assign_GovSteamFV4_psmn); - assign_map.emplace("cim:GovSteamFV4.rsmimn", &assign_GovSteamFV4_rsmimn); - assign_map.emplace("cim:GovSteamFV4.rsmimx", &assign_GovSteamFV4_rsmimx); - assign_map.emplace("cim:GovSteamFV4.rvgmn", &assign_GovSteamFV4_rvgmn); - assign_map.emplace("cim:GovSteamFV4.rvgmx", &assign_GovSteamFV4_rvgmx); - assign_map.emplace("cim:GovSteamFV4.srmn", &assign_GovSteamFV4_srmn); - assign_map.emplace("cim:GovSteamFV4.srmx", &assign_GovSteamFV4_srmx); - assign_map.emplace("cim:GovSteamFV4.srsmp", &assign_GovSteamFV4_srsmp); - assign_map.emplace("cim:GovSteamFV4.svmn", &assign_GovSteamFV4_svmn); - assign_map.emplace("cim:GovSteamFV4.svmx", &assign_GovSteamFV4_svmx); - assign_map.emplace("cim:GovSteamFV4.ta", &assign_GovSteamFV4_ta); - assign_map.emplace("cim:GovSteamFV4.tam", &assign_GovSteamFV4_tam); - assign_map.emplace("cim:GovSteamFV4.tc", &assign_GovSteamFV4_tc); - assign_map.emplace("cim:GovSteamFV4.tcm", &assign_GovSteamFV4_tcm); - assign_map.emplace("cim:GovSteamFV4.tdc", &assign_GovSteamFV4_tdc); - assign_map.emplace("cim:GovSteamFV4.tf1", &assign_GovSteamFV4_tf1); - assign_map.emplace("cim:GovSteamFV4.tf2", &assign_GovSteamFV4_tf2); - assign_map.emplace("cim:GovSteamFV4.thp", &assign_GovSteamFV4_thp); - assign_map.emplace("cim:GovSteamFV4.tmp", &assign_GovSteamFV4_tmp); - assign_map.emplace("cim:GovSteamFV4.trh", &assign_GovSteamFV4_trh); - assign_map.emplace("cim:GovSteamFV4.tv", &assign_GovSteamFV4_tv); - assign_map.emplace("cim:GovSteamFV4.ty", &assign_GovSteamFV4_ty); - assign_map.emplace("cim:GovSteamFV4.y", &assign_GovSteamFV4_y); - assign_map.emplace("cim:GovSteamFV4.yhpmn", &assign_GovSteamFV4_yhpmn); - assign_map.emplace("cim:GovSteamFV4.yhpmx", &assign_GovSteamFV4_yhpmx); - assign_map.emplace("cim:GovSteamFV4.ympmn", &assign_GovSteamFV4_ympmn); - assign_map.emplace("cim:GovSteamFV4.ympmx", &assign_GovSteamFV4_ympmx); + assign_map.emplace("GovSteamFV4.cpsmn", &assign_GovSteamFV4_cpsmn); + assign_map.emplace("GovSteamFV4.cpsmx", &assign_GovSteamFV4_cpsmx); + assign_map.emplace("GovSteamFV4.crmn", &assign_GovSteamFV4_crmn); + assign_map.emplace("GovSteamFV4.crmx", &assign_GovSteamFV4_crmx); + assign_map.emplace("GovSteamFV4.kdc", &assign_GovSteamFV4_kdc); + assign_map.emplace("GovSteamFV4.kf1", &assign_GovSteamFV4_kf1); + assign_map.emplace("GovSteamFV4.kf3", &assign_GovSteamFV4_kf3); + assign_map.emplace("GovSteamFV4.khp", &assign_GovSteamFV4_khp); + assign_map.emplace("GovSteamFV4.kic", &assign_GovSteamFV4_kic); + assign_map.emplace("GovSteamFV4.kip", &assign_GovSteamFV4_kip); + assign_map.emplace("GovSteamFV4.kit", &assign_GovSteamFV4_kit); + assign_map.emplace("GovSteamFV4.kmp1", &assign_GovSteamFV4_kmp1); + assign_map.emplace("GovSteamFV4.kmp2", &assign_GovSteamFV4_kmp2); + assign_map.emplace("GovSteamFV4.kpc", &assign_GovSteamFV4_kpc); + assign_map.emplace("GovSteamFV4.kpp", &assign_GovSteamFV4_kpp); + assign_map.emplace("GovSteamFV4.kpt", &assign_GovSteamFV4_kpt); + assign_map.emplace("GovSteamFV4.krc", &assign_GovSteamFV4_krc); + assign_map.emplace("GovSteamFV4.ksh", &assign_GovSteamFV4_ksh); + assign_map.emplace("GovSteamFV4.lpi", &assign_GovSteamFV4_lpi); + assign_map.emplace("GovSteamFV4.lps", &assign_GovSteamFV4_lps); + assign_map.emplace("GovSteamFV4.mnef", &assign_GovSteamFV4_mnef); + assign_map.emplace("GovSteamFV4.mxef", &assign_GovSteamFV4_mxef); + assign_map.emplace("GovSteamFV4.pr1", &assign_GovSteamFV4_pr1); + assign_map.emplace("GovSteamFV4.pr2", &assign_GovSteamFV4_pr2); + assign_map.emplace("GovSteamFV4.psmn", &assign_GovSteamFV4_psmn); + assign_map.emplace("GovSteamFV4.rsmimn", &assign_GovSteamFV4_rsmimn); + assign_map.emplace("GovSteamFV4.rsmimx", &assign_GovSteamFV4_rsmimx); + assign_map.emplace("GovSteamFV4.rvgmn", &assign_GovSteamFV4_rvgmn); + assign_map.emplace("GovSteamFV4.rvgmx", &assign_GovSteamFV4_rvgmx); + assign_map.emplace("GovSteamFV4.srmn", &assign_GovSteamFV4_srmn); + assign_map.emplace("GovSteamFV4.srmx", &assign_GovSteamFV4_srmx); + assign_map.emplace("GovSteamFV4.srsmp", &assign_GovSteamFV4_srsmp); + assign_map.emplace("GovSteamFV4.svmn", &assign_GovSteamFV4_svmn); + assign_map.emplace("GovSteamFV4.svmx", &assign_GovSteamFV4_svmx); + assign_map.emplace("GovSteamFV4.ta", &assign_GovSteamFV4_ta); + assign_map.emplace("GovSteamFV4.tam", &assign_GovSteamFV4_tam); + assign_map.emplace("GovSteamFV4.tc", &assign_GovSteamFV4_tc); + assign_map.emplace("GovSteamFV4.tcm", &assign_GovSteamFV4_tcm); + assign_map.emplace("GovSteamFV4.tdc", &assign_GovSteamFV4_tdc); + assign_map.emplace("GovSteamFV4.tf1", &assign_GovSteamFV4_tf1); + assign_map.emplace("GovSteamFV4.tf2", &assign_GovSteamFV4_tf2); + assign_map.emplace("GovSteamFV4.thp", &assign_GovSteamFV4_thp); + assign_map.emplace("GovSteamFV4.tmp", &assign_GovSteamFV4_tmp); + assign_map.emplace("GovSteamFV4.trh", &assign_GovSteamFV4_trh); + assign_map.emplace("GovSteamFV4.tv", &assign_GovSteamFV4_tv); + assign_map.emplace("GovSteamFV4.ty", &assign_GovSteamFV4_ty); + assign_map.emplace("GovSteamFV4.y", &assign_GovSteamFV4_y); + assign_map.emplace("GovSteamFV4.yhpmn", &assign_GovSteamFV4_yhpmn); + assign_map.emplace("GovSteamFV4.yhpmx", &assign_GovSteamFV4_yhpmx); + assign_map.emplace("GovSteamFV4.ympmn", &assign_GovSteamFV4_ympmn); + assign_map.emplace("GovSteamFV4.ympmx", &assign_GovSteamFV4_ympmx); } void GovSteamFV4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1641,57 +1673,57 @@ void GovSteamFV4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV4.cpsmn", &get_GovSteamFV4_cpsmn); - get_map.emplace("cim:GovSteamFV4.cpsmx", &get_GovSteamFV4_cpsmx); - get_map.emplace("cim:GovSteamFV4.crmn", &get_GovSteamFV4_crmn); - get_map.emplace("cim:GovSteamFV4.crmx", &get_GovSteamFV4_crmx); - get_map.emplace("cim:GovSteamFV4.kdc", &get_GovSteamFV4_kdc); - get_map.emplace("cim:GovSteamFV4.kf1", &get_GovSteamFV4_kf1); - get_map.emplace("cim:GovSteamFV4.kf3", &get_GovSteamFV4_kf3); - get_map.emplace("cim:GovSteamFV4.khp", &get_GovSteamFV4_khp); - get_map.emplace("cim:GovSteamFV4.kic", &get_GovSteamFV4_kic); - get_map.emplace("cim:GovSteamFV4.kip", &get_GovSteamFV4_kip); - get_map.emplace("cim:GovSteamFV4.kit", &get_GovSteamFV4_kit); - get_map.emplace("cim:GovSteamFV4.kmp1", &get_GovSteamFV4_kmp1); - get_map.emplace("cim:GovSteamFV4.kmp2", &get_GovSteamFV4_kmp2); - get_map.emplace("cim:GovSteamFV4.kpc", &get_GovSteamFV4_kpc); - get_map.emplace("cim:GovSteamFV4.kpp", &get_GovSteamFV4_kpp); - get_map.emplace("cim:GovSteamFV4.kpt", &get_GovSteamFV4_kpt); - get_map.emplace("cim:GovSteamFV4.krc", &get_GovSteamFV4_krc); - get_map.emplace("cim:GovSteamFV4.ksh", &get_GovSteamFV4_ksh); - get_map.emplace("cim:GovSteamFV4.lpi", &get_GovSteamFV4_lpi); - get_map.emplace("cim:GovSteamFV4.lps", &get_GovSteamFV4_lps); - get_map.emplace("cim:GovSteamFV4.mnef", &get_GovSteamFV4_mnef); - get_map.emplace("cim:GovSteamFV4.mxef", &get_GovSteamFV4_mxef); - get_map.emplace("cim:GovSteamFV4.pr1", &get_GovSteamFV4_pr1); - get_map.emplace("cim:GovSteamFV4.pr2", &get_GovSteamFV4_pr2); - get_map.emplace("cim:GovSteamFV4.psmn", &get_GovSteamFV4_psmn); - get_map.emplace("cim:GovSteamFV4.rsmimn", &get_GovSteamFV4_rsmimn); - get_map.emplace("cim:GovSteamFV4.rsmimx", &get_GovSteamFV4_rsmimx); - get_map.emplace("cim:GovSteamFV4.rvgmn", &get_GovSteamFV4_rvgmn); - get_map.emplace("cim:GovSteamFV4.rvgmx", &get_GovSteamFV4_rvgmx); - get_map.emplace("cim:GovSteamFV4.srmn", &get_GovSteamFV4_srmn); - get_map.emplace("cim:GovSteamFV4.srmx", &get_GovSteamFV4_srmx); - get_map.emplace("cim:GovSteamFV4.srsmp", &get_GovSteamFV4_srsmp); - get_map.emplace("cim:GovSteamFV4.svmn", &get_GovSteamFV4_svmn); - get_map.emplace("cim:GovSteamFV4.svmx", &get_GovSteamFV4_svmx); - get_map.emplace("cim:GovSteamFV4.ta", &get_GovSteamFV4_ta); - get_map.emplace("cim:GovSteamFV4.tam", &get_GovSteamFV4_tam); - get_map.emplace("cim:GovSteamFV4.tc", &get_GovSteamFV4_tc); - get_map.emplace("cim:GovSteamFV4.tcm", &get_GovSteamFV4_tcm); - get_map.emplace("cim:GovSteamFV4.tdc", &get_GovSteamFV4_tdc); - get_map.emplace("cim:GovSteamFV4.tf1", &get_GovSteamFV4_tf1); - get_map.emplace("cim:GovSteamFV4.tf2", &get_GovSteamFV4_tf2); - get_map.emplace("cim:GovSteamFV4.thp", &get_GovSteamFV4_thp); - get_map.emplace("cim:GovSteamFV4.tmp", &get_GovSteamFV4_tmp); - get_map.emplace("cim:GovSteamFV4.trh", &get_GovSteamFV4_trh); - get_map.emplace("cim:GovSteamFV4.tv", &get_GovSteamFV4_tv); - get_map.emplace("cim:GovSteamFV4.ty", &get_GovSteamFV4_ty); - get_map.emplace("cim:GovSteamFV4.y", &get_GovSteamFV4_y); - get_map.emplace("cim:GovSteamFV4.yhpmn", &get_GovSteamFV4_yhpmn); - get_map.emplace("cim:GovSteamFV4.yhpmx", &get_GovSteamFV4_yhpmx); - get_map.emplace("cim:GovSteamFV4.ympmn", &get_GovSteamFV4_ympmn); - get_map.emplace("cim:GovSteamFV4.ympmx", &get_GovSteamFV4_ympmx); + get_map.emplace("GovSteamFV4.cpsmn", &get_GovSteamFV4_cpsmn); + get_map.emplace("GovSteamFV4.cpsmx", &get_GovSteamFV4_cpsmx); + get_map.emplace("GovSteamFV4.crmn", &get_GovSteamFV4_crmn); + get_map.emplace("GovSteamFV4.crmx", &get_GovSteamFV4_crmx); + get_map.emplace("GovSteamFV4.kdc", &get_GovSteamFV4_kdc); + get_map.emplace("GovSteamFV4.kf1", &get_GovSteamFV4_kf1); + get_map.emplace("GovSteamFV4.kf3", &get_GovSteamFV4_kf3); + get_map.emplace("GovSteamFV4.khp", &get_GovSteamFV4_khp); + get_map.emplace("GovSteamFV4.kic", &get_GovSteamFV4_kic); + get_map.emplace("GovSteamFV4.kip", &get_GovSteamFV4_kip); + get_map.emplace("GovSteamFV4.kit", &get_GovSteamFV4_kit); + get_map.emplace("GovSteamFV4.kmp1", &get_GovSteamFV4_kmp1); + get_map.emplace("GovSteamFV4.kmp2", &get_GovSteamFV4_kmp2); + get_map.emplace("GovSteamFV4.kpc", &get_GovSteamFV4_kpc); + get_map.emplace("GovSteamFV4.kpp", &get_GovSteamFV4_kpp); + get_map.emplace("GovSteamFV4.kpt", &get_GovSteamFV4_kpt); + get_map.emplace("GovSteamFV4.krc", &get_GovSteamFV4_krc); + get_map.emplace("GovSteamFV4.ksh", &get_GovSteamFV4_ksh); + get_map.emplace("GovSteamFV4.lpi", &get_GovSteamFV4_lpi); + get_map.emplace("GovSteamFV4.lps", &get_GovSteamFV4_lps); + get_map.emplace("GovSteamFV4.mnef", &get_GovSteamFV4_mnef); + get_map.emplace("GovSteamFV4.mxef", &get_GovSteamFV4_mxef); + get_map.emplace("GovSteamFV4.pr1", &get_GovSteamFV4_pr1); + get_map.emplace("GovSteamFV4.pr2", &get_GovSteamFV4_pr2); + get_map.emplace("GovSteamFV4.psmn", &get_GovSteamFV4_psmn); + get_map.emplace("GovSteamFV4.rsmimn", &get_GovSteamFV4_rsmimn); + get_map.emplace("GovSteamFV4.rsmimx", &get_GovSteamFV4_rsmimx); + get_map.emplace("GovSteamFV4.rvgmn", &get_GovSteamFV4_rvgmn); + get_map.emplace("GovSteamFV4.rvgmx", &get_GovSteamFV4_rvgmx); + get_map.emplace("GovSteamFV4.srmn", &get_GovSteamFV4_srmn); + get_map.emplace("GovSteamFV4.srmx", &get_GovSteamFV4_srmx); + get_map.emplace("GovSteamFV4.srsmp", &get_GovSteamFV4_srsmp); + get_map.emplace("GovSteamFV4.svmn", &get_GovSteamFV4_svmn); + get_map.emplace("GovSteamFV4.svmx", &get_GovSteamFV4_svmx); + get_map.emplace("GovSteamFV4.ta", &get_GovSteamFV4_ta); + get_map.emplace("GovSteamFV4.tam", &get_GovSteamFV4_tam); + get_map.emplace("GovSteamFV4.tc", &get_GovSteamFV4_tc); + get_map.emplace("GovSteamFV4.tcm", &get_GovSteamFV4_tcm); + get_map.emplace("GovSteamFV4.tdc", &get_GovSteamFV4_tdc); + get_map.emplace("GovSteamFV4.tf1", &get_GovSteamFV4_tf1); + get_map.emplace("GovSteamFV4.tf2", &get_GovSteamFV4_tf2); + get_map.emplace("GovSteamFV4.thp", &get_GovSteamFV4_thp); + get_map.emplace("GovSteamFV4.tmp", &get_GovSteamFV4_tmp); + get_map.emplace("GovSteamFV4.trh", &get_GovSteamFV4_trh); + get_map.emplace("GovSteamFV4.tv", &get_GovSteamFV4_tv); + get_map.emplace("GovSteamFV4.ty", &get_GovSteamFV4_ty); + get_map.emplace("GovSteamFV4.y", &get_GovSteamFV4_y); + get_map.emplace("GovSteamFV4.yhpmn", &get_GovSteamFV4_yhpmn); + get_map.emplace("GovSteamFV4.yhpmx", &get_GovSteamFV4_yhpmx); + get_map.emplace("GovSteamFV4.ympmn", &get_GovSteamFV4_ympmn); + get_map.emplace("GovSteamFV4.ympmx", &get_GovSteamFV4_ympmx); } void GovSteamFV4::addClassGetFnsToMap(std::map& get_map) const @@ -1704,11 +1736,25 @@ void GovSteamFV4::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV4::declare() { return BaseClassDefiner(GovSteamFV4::addConstructToMap, GovSteamFV4::addPrimitiveAssignFnsToMap, GovSteamFV4::addClassAssignFnsToMap, GovSteamFV4::debugName); } +std::map GovSteamFV4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV4_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteamFV4.hpp b/CGMES_2.4.15_27JAN2020/GovSteamFV4.hpp index 1a9e91160..629f2e3f7 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamFV4.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamFV4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -183,8 +184,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -192,7 +200,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV4_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteamIEEE1.cpp b/CGMES_2.4.15_27JAN2020/GovSteamIEEE1.cpp index 8dafb5bc6..4104cb890 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamIEEE1.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamIEEE1.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamIEEE1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamIEEE1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.uc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.uo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamIEEE1::GovSteamIEEE1() {} GovSteamIEEE1::~GovSteamIEEE1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamIEEE1.k", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k4", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k5", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k6", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k7", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k8", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t7", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.uc", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamIEEE1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamIEEE1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamIEEE1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamIEEE1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamIEEE1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamIEEE1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamIEEE1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamIEEE1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamIEEE1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamIEEE1_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* GovSteamIEEE1::debugString() const void GovSteamIEEE1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamIEEE1", &GovSteamIEEE1_factory); + factory_map.emplace("GovSteamIEEE1", &GovSteamIEEE1_factory); } void GovSteamIEEE1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamIEEE1.k", &assign_GovSteamIEEE1_k); - assign_map.emplace("cim:GovSteamIEEE1.k1", &assign_GovSteamIEEE1_k1); - assign_map.emplace("cim:GovSteamIEEE1.k2", &assign_GovSteamIEEE1_k2); - assign_map.emplace("cim:GovSteamIEEE1.k3", &assign_GovSteamIEEE1_k3); - assign_map.emplace("cim:GovSteamIEEE1.k4", &assign_GovSteamIEEE1_k4); - assign_map.emplace("cim:GovSteamIEEE1.k5", &assign_GovSteamIEEE1_k5); - assign_map.emplace("cim:GovSteamIEEE1.k6", &assign_GovSteamIEEE1_k6); - assign_map.emplace("cim:GovSteamIEEE1.k7", &assign_GovSteamIEEE1_k7); - assign_map.emplace("cim:GovSteamIEEE1.k8", &assign_GovSteamIEEE1_k8); - assign_map.emplace("cim:GovSteamIEEE1.mwbase", &assign_GovSteamIEEE1_mwbase); - assign_map.emplace("cim:GovSteamIEEE1.pmax", &assign_GovSteamIEEE1_pmax); - assign_map.emplace("cim:GovSteamIEEE1.pmin", &assign_GovSteamIEEE1_pmin); - assign_map.emplace("cim:GovSteamIEEE1.t1", &assign_GovSteamIEEE1_t1); - assign_map.emplace("cim:GovSteamIEEE1.t2", &assign_GovSteamIEEE1_t2); - assign_map.emplace("cim:GovSteamIEEE1.t3", &assign_GovSteamIEEE1_t3); - assign_map.emplace("cim:GovSteamIEEE1.t4", &assign_GovSteamIEEE1_t4); - assign_map.emplace("cim:GovSteamIEEE1.t5", &assign_GovSteamIEEE1_t5); - assign_map.emplace("cim:GovSteamIEEE1.t6", &assign_GovSteamIEEE1_t6); - assign_map.emplace("cim:GovSteamIEEE1.t7", &assign_GovSteamIEEE1_t7); - assign_map.emplace("cim:GovSteamIEEE1.uc", &assign_GovSteamIEEE1_uc); - assign_map.emplace("cim:GovSteamIEEE1.uo", &assign_GovSteamIEEE1_uo); + assign_map.emplace("GovSteamIEEE1.k", &assign_GovSteamIEEE1_k); + assign_map.emplace("GovSteamIEEE1.k1", &assign_GovSteamIEEE1_k1); + assign_map.emplace("GovSteamIEEE1.k2", &assign_GovSteamIEEE1_k2); + assign_map.emplace("GovSteamIEEE1.k3", &assign_GovSteamIEEE1_k3); + assign_map.emplace("GovSteamIEEE1.k4", &assign_GovSteamIEEE1_k4); + assign_map.emplace("GovSteamIEEE1.k5", &assign_GovSteamIEEE1_k5); + assign_map.emplace("GovSteamIEEE1.k6", &assign_GovSteamIEEE1_k6); + assign_map.emplace("GovSteamIEEE1.k7", &assign_GovSteamIEEE1_k7); + assign_map.emplace("GovSteamIEEE1.k8", &assign_GovSteamIEEE1_k8); + assign_map.emplace("GovSteamIEEE1.mwbase", &assign_GovSteamIEEE1_mwbase); + assign_map.emplace("GovSteamIEEE1.pmax", &assign_GovSteamIEEE1_pmax); + assign_map.emplace("GovSteamIEEE1.pmin", &assign_GovSteamIEEE1_pmin); + assign_map.emplace("GovSteamIEEE1.t1", &assign_GovSteamIEEE1_t1); + assign_map.emplace("GovSteamIEEE1.t2", &assign_GovSteamIEEE1_t2); + assign_map.emplace("GovSteamIEEE1.t3", &assign_GovSteamIEEE1_t3); + assign_map.emplace("GovSteamIEEE1.t4", &assign_GovSteamIEEE1_t4); + assign_map.emplace("GovSteamIEEE1.t5", &assign_GovSteamIEEE1_t5); + assign_map.emplace("GovSteamIEEE1.t6", &assign_GovSteamIEEE1_t6); + assign_map.emplace("GovSteamIEEE1.t7", &assign_GovSteamIEEE1_t7); + assign_map.emplace("GovSteamIEEE1.uc", &assign_GovSteamIEEE1_uc); + assign_map.emplace("GovSteamIEEE1.uo", &assign_GovSteamIEEE1_uo); } void GovSteamIEEE1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void GovSteamIEEE1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamIEEE1.k", &get_GovSteamIEEE1_k); - get_map.emplace("cim:GovSteamIEEE1.k1", &get_GovSteamIEEE1_k1); - get_map.emplace("cim:GovSteamIEEE1.k2", &get_GovSteamIEEE1_k2); - get_map.emplace("cim:GovSteamIEEE1.k3", &get_GovSteamIEEE1_k3); - get_map.emplace("cim:GovSteamIEEE1.k4", &get_GovSteamIEEE1_k4); - get_map.emplace("cim:GovSteamIEEE1.k5", &get_GovSteamIEEE1_k5); - get_map.emplace("cim:GovSteamIEEE1.k6", &get_GovSteamIEEE1_k6); - get_map.emplace("cim:GovSteamIEEE1.k7", &get_GovSteamIEEE1_k7); - get_map.emplace("cim:GovSteamIEEE1.k8", &get_GovSteamIEEE1_k8); - get_map.emplace("cim:GovSteamIEEE1.mwbase", &get_GovSteamIEEE1_mwbase); - get_map.emplace("cim:GovSteamIEEE1.pmax", &get_GovSteamIEEE1_pmax); - get_map.emplace("cim:GovSteamIEEE1.pmin", &get_GovSteamIEEE1_pmin); - get_map.emplace("cim:GovSteamIEEE1.t1", &get_GovSteamIEEE1_t1); - get_map.emplace("cim:GovSteamIEEE1.t2", &get_GovSteamIEEE1_t2); - get_map.emplace("cim:GovSteamIEEE1.t3", &get_GovSteamIEEE1_t3); - get_map.emplace("cim:GovSteamIEEE1.t4", &get_GovSteamIEEE1_t4); - get_map.emplace("cim:GovSteamIEEE1.t5", &get_GovSteamIEEE1_t5); - get_map.emplace("cim:GovSteamIEEE1.t6", &get_GovSteamIEEE1_t6); - get_map.emplace("cim:GovSteamIEEE1.t7", &get_GovSteamIEEE1_t7); - get_map.emplace("cim:GovSteamIEEE1.uc", &get_GovSteamIEEE1_uc); - get_map.emplace("cim:GovSteamIEEE1.uo", &get_GovSteamIEEE1_uo); + get_map.emplace("GovSteamIEEE1.k", &get_GovSteamIEEE1_k); + get_map.emplace("GovSteamIEEE1.k1", &get_GovSteamIEEE1_k1); + get_map.emplace("GovSteamIEEE1.k2", &get_GovSteamIEEE1_k2); + get_map.emplace("GovSteamIEEE1.k3", &get_GovSteamIEEE1_k3); + get_map.emplace("GovSteamIEEE1.k4", &get_GovSteamIEEE1_k4); + get_map.emplace("GovSteamIEEE1.k5", &get_GovSteamIEEE1_k5); + get_map.emplace("GovSteamIEEE1.k6", &get_GovSteamIEEE1_k6); + get_map.emplace("GovSteamIEEE1.k7", &get_GovSteamIEEE1_k7); + get_map.emplace("GovSteamIEEE1.k8", &get_GovSteamIEEE1_k8); + get_map.emplace("GovSteamIEEE1.mwbase", &get_GovSteamIEEE1_mwbase); + get_map.emplace("GovSteamIEEE1.pmax", &get_GovSteamIEEE1_pmax); + get_map.emplace("GovSteamIEEE1.pmin", &get_GovSteamIEEE1_pmin); + get_map.emplace("GovSteamIEEE1.t1", &get_GovSteamIEEE1_t1); + get_map.emplace("GovSteamIEEE1.t2", &get_GovSteamIEEE1_t2); + get_map.emplace("GovSteamIEEE1.t3", &get_GovSteamIEEE1_t3); + get_map.emplace("GovSteamIEEE1.t4", &get_GovSteamIEEE1_t4); + get_map.emplace("GovSteamIEEE1.t5", &get_GovSteamIEEE1_t5); + get_map.emplace("GovSteamIEEE1.t6", &get_GovSteamIEEE1_t6); + get_map.emplace("GovSteamIEEE1.t7", &get_GovSteamIEEE1_t7); + get_map.emplace("GovSteamIEEE1.uc", &get_GovSteamIEEE1_uc); + get_map.emplace("GovSteamIEEE1.uo", &get_GovSteamIEEE1_uo); } void GovSteamIEEE1::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void GovSteamIEEE1::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamIEEE1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamIEEE1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamIEEE1::declare() { return BaseClassDefiner(GovSteamIEEE1::addConstructToMap, GovSteamIEEE1::addPrimitiveAssignFnsToMap, GovSteamIEEE1::addClassAssignFnsToMap, GovSteamIEEE1::debugName); } +std::map GovSteamIEEE1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamIEEE1_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteamIEEE1.hpp b/CGMES_2.4.15_27JAN2020/GovSteamIEEE1.hpp index 23784774a..f6a96cf0d 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamIEEE1.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamIEEE1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamIEEE1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GovSteamSGO.cpp b/CGMES_2.4.15_27JAN2020/GovSteamSGO.cpp index 8b1ecdec7..2bba143af 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamSGO.cpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamSGO.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamSGO(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamSGO.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.pmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamSGO::GovSteamSGO() {} GovSteamSGO::~GovSteamSGO() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamSGO::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamSGO::getClassNamespaceUrl() const { - { "cim:GovSteamSGO.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t6", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamSGO::getPossibleProfilesForClass() const +const std::string& GovSteamSGO::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamSGO::getPossibleProfilesForAttributes() const +const std::list& GovSteamSGO::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamSGO::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamSGO::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamSGO::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamSGO_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* GovSteamSGO::debugString() const void GovSteamSGO::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamSGO", &GovSteamSGO_factory); + factory_map.emplace("GovSteamSGO", &GovSteamSGO_factory); } void GovSteamSGO::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamSGO.k1", &assign_GovSteamSGO_k1); - assign_map.emplace("cim:GovSteamSGO.k2", &assign_GovSteamSGO_k2); - assign_map.emplace("cim:GovSteamSGO.k3", &assign_GovSteamSGO_k3); - assign_map.emplace("cim:GovSteamSGO.mwbase", &assign_GovSteamSGO_mwbase); - assign_map.emplace("cim:GovSteamSGO.pmax", &assign_GovSteamSGO_pmax); - assign_map.emplace("cim:GovSteamSGO.pmin", &assign_GovSteamSGO_pmin); - assign_map.emplace("cim:GovSteamSGO.t1", &assign_GovSteamSGO_t1); - assign_map.emplace("cim:GovSteamSGO.t2", &assign_GovSteamSGO_t2); - assign_map.emplace("cim:GovSteamSGO.t3", &assign_GovSteamSGO_t3); - assign_map.emplace("cim:GovSteamSGO.t4", &assign_GovSteamSGO_t4); - assign_map.emplace("cim:GovSteamSGO.t5", &assign_GovSteamSGO_t5); - assign_map.emplace("cim:GovSteamSGO.t6", &assign_GovSteamSGO_t6); + assign_map.emplace("GovSteamSGO.k1", &assign_GovSteamSGO_k1); + assign_map.emplace("GovSteamSGO.k2", &assign_GovSteamSGO_k2); + assign_map.emplace("GovSteamSGO.k3", &assign_GovSteamSGO_k3); + assign_map.emplace("GovSteamSGO.mwbase", &assign_GovSteamSGO_mwbase); + assign_map.emplace("GovSteamSGO.pmax", &assign_GovSteamSGO_pmax); + assign_map.emplace("GovSteamSGO.pmin", &assign_GovSteamSGO_pmin); + assign_map.emplace("GovSteamSGO.t1", &assign_GovSteamSGO_t1); + assign_map.emplace("GovSteamSGO.t2", &assign_GovSteamSGO_t2); + assign_map.emplace("GovSteamSGO.t3", &assign_GovSteamSGO_t3); + assign_map.emplace("GovSteamSGO.t4", &assign_GovSteamSGO_t4); + assign_map.emplace("GovSteamSGO.t5", &assign_GovSteamSGO_t5); + assign_map.emplace("GovSteamSGO.t6", &assign_GovSteamSGO_t6); } void GovSteamSGO::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void GovSteamSGO::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamSGO.k1", &get_GovSteamSGO_k1); - get_map.emplace("cim:GovSteamSGO.k2", &get_GovSteamSGO_k2); - get_map.emplace("cim:GovSteamSGO.k3", &get_GovSteamSGO_k3); - get_map.emplace("cim:GovSteamSGO.mwbase", &get_GovSteamSGO_mwbase); - get_map.emplace("cim:GovSteamSGO.pmax", &get_GovSteamSGO_pmax); - get_map.emplace("cim:GovSteamSGO.pmin", &get_GovSteamSGO_pmin); - get_map.emplace("cim:GovSteamSGO.t1", &get_GovSteamSGO_t1); - get_map.emplace("cim:GovSteamSGO.t2", &get_GovSteamSGO_t2); - get_map.emplace("cim:GovSteamSGO.t3", &get_GovSteamSGO_t3); - get_map.emplace("cim:GovSteamSGO.t4", &get_GovSteamSGO_t4); - get_map.emplace("cim:GovSteamSGO.t5", &get_GovSteamSGO_t5); - get_map.emplace("cim:GovSteamSGO.t6", &get_GovSteamSGO_t6); + get_map.emplace("GovSteamSGO.k1", &get_GovSteamSGO_k1); + get_map.emplace("GovSteamSGO.k2", &get_GovSteamSGO_k2); + get_map.emplace("GovSteamSGO.k3", &get_GovSteamSGO_k3); + get_map.emplace("GovSteamSGO.mwbase", &get_GovSteamSGO_mwbase); + get_map.emplace("GovSteamSGO.pmax", &get_GovSteamSGO_pmax); + get_map.emplace("GovSteamSGO.pmin", &get_GovSteamSGO_pmin); + get_map.emplace("GovSteamSGO.t1", &get_GovSteamSGO_t1); + get_map.emplace("GovSteamSGO.t2", &get_GovSteamSGO_t2); + get_map.emplace("GovSteamSGO.t3", &get_GovSteamSGO_t3); + get_map.emplace("GovSteamSGO.t4", &get_GovSteamSGO_t4); + get_map.emplace("GovSteamSGO.t5", &get_GovSteamSGO_t5); + get_map.emplace("GovSteamSGO.t6", &get_GovSteamSGO_t6); } void GovSteamSGO::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void GovSteamSGO::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamSGO::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamSGO" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamSGO::declare() { return BaseClassDefiner(GovSteamSGO::addConstructToMap, GovSteamSGO::addPrimitiveAssignFnsToMap, GovSteamSGO::addClassAssignFnsToMap, GovSteamSGO::debugName); } +std::map GovSteamSGO::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamSGO_factory() diff --git a/CGMES_2.4.15_27JAN2020/GovSteamSGO.hpp b/CGMES_2.4.15_27JAN2020/GovSteamSGO.hpp index 337ba6a63..1de9573a5 100644 --- a/CGMES_2.4.15_27JAN2020/GovSteamSGO.hpp +++ b/CGMES_2.4.15_27JAN2020/GovSteamSGO.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamSGO_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GrossToNetActivePowerCurve.cpp b/CGMES_2.4.15_27JAN2020/GrossToNetActivePowerCurve.cpp index 8e293b959..7a92732fe 100644 --- a/CGMES_2.4.15_27JAN2020/GrossToNetActivePowerCurve.cpp +++ b/CGMES_2.4.15_27JAN2020/GrossToNetActivePowerCurve.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GrossToNetActivePowerCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GrossToNetActivePowerCurve.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GrossToNetActivePowerCurve::GrossToNetActivePowerCurve() : GeneratingUnit(nullptr) {} GrossToNetActivePowerCurve::~GrossToNetActivePowerCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& GrossToNetActivePowerCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GrossToNetActivePowerCurve::getClassNamespaceUrl() const { - { "cim:GrossToNetActivePowerCurve.GeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GrossToNetActivePowerCurve::getPossibleProfilesForClass() const +const std::string& GrossToNetActivePowerCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GrossToNetActivePowerCurve::getPossibleProfilesForAttributes() const +const std::list& GrossToNetActivePowerCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GrossToNetActivePowerCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GrossToNetActivePowerCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GrossToNetActivePowerCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeneratingUnit_GrossToNetActivePowerCurves(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* GrossToNetActivePowerCurve::debugString() const void GrossToNetActivePowerCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GrossToNetActivePowerCurve", &GrossToNetActivePowerCurve_factory); + factory_map.emplace("GrossToNetActivePowerCurve", &GrossToNetActivePowerCurve_factory); } void GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GrossToNetActivePowerCurve.GeneratingUnit", &assign_GrossToNetActivePowerCurve_GeneratingUnit); + assign_map.emplace("GrossToNetActivePowerCurve.GeneratingUnit", &assign_GrossToNetActivePowerCurve_GeneratingUnit); } void GrossToNetActivePowerCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void GrossToNetActivePowerCurve::addPrimitiveGetFnsToMap(std::map& get_map) const { Curve::addClassGetFnsToMap(get_map); - get_map.emplace("cim:GrossToNetActivePowerCurve.GeneratingUnit", &get_GrossToNetActivePowerCurve_GeneratingUnit); + get_map.emplace("GrossToNetActivePowerCurve.GeneratingUnit", &get_GrossToNetActivePowerCurve_GeneratingUnit); } void GrossToNetActivePowerCurve::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void GrossToNetActivePowerCurve::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GrossToNetActivePowerCurve::declare() { return BaseClassDefiner(GrossToNetActivePowerCurve::addConstructToMap, GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap, GrossToNetActivePowerCurve::addClassAssignFnsToMap, GrossToNetActivePowerCurve::debugName); } +std::map GrossToNetActivePowerCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GrossToNetActivePowerCurve_factory() diff --git a/CGMES_2.4.15_27JAN2020/GrossToNetActivePowerCurve.hpp b/CGMES_2.4.15_27JAN2020/GrossToNetActivePowerCurve.hpp index eb1b8ea60..e3b30d932 100644 --- a/CGMES_2.4.15_27JAN2020/GrossToNetActivePowerCurve.hpp +++ b/CGMES_2.4.15_27JAN2020/GrossToNetActivePowerCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GrossToNetActivePowerCurve_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Ground.cpp b/CGMES_2.4.15_27JAN2020/Ground.cpp index e2e2a0868..6d74bce19 100644 --- a/CGMES_2.4.15_27JAN2020/Ground.cpp +++ b/CGMES_2.4.15_27JAN2020/Ground.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Ground(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Ground::Ground() {} Ground::~Ground() {} -static const std::list PossibleProfilesForClass = +const std::list& Ground::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Ground::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Ground::getPossibleProfilesForClass() const +const std::string& Ground::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Ground::getPossibleProfilesForAttributes() const +const std::list& Ground::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Ground::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Ground::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Ground::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Ground::debugName[] = "Ground"; @@ -46,7 +78,7 @@ const char* Ground::debugString() const void Ground::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Ground", &Ground_factory); + factory_map.emplace("Ground", &Ground_factory); } void Ground::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Ground::addEnumGetFnsToMap(std::map& get_map) co ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Ground::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Ground" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Ground::declare() { return BaseClassDefiner(Ground::addConstructToMap, Ground::addPrimitiveAssignFnsToMap, Ground::addClassAssignFnsToMap, Ground::debugName); } +std::map Ground::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Ground_factory() diff --git a/CGMES_2.4.15_27JAN2020/Ground.hpp b/CGMES_2.4.15_27JAN2020/Ground.hpp index 56bd33323..0d91fea23 100644 --- a/CGMES_2.4.15_27JAN2020/Ground.hpp +++ b/CGMES_2.4.15_27JAN2020/Ground.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Ground_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GroundDisconnector.cpp b/CGMES_2.4.15_27JAN2020/GroundDisconnector.cpp index 1926b56f9..68c739329 100644 --- a/CGMES_2.4.15_27JAN2020/GroundDisconnector.cpp +++ b/CGMES_2.4.15_27JAN2020/GroundDisconnector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GroundDisconnector(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + GroundDisconnector::GroundDisconnector() {} GroundDisconnector::~GroundDisconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& GroundDisconnector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GroundDisconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GroundDisconnector::getPossibleProfilesForClass() const +const std::string& GroundDisconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GroundDisconnector::getPossibleProfilesForAttributes() const +const std::list& GroundDisconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GroundDisconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GroundDisconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GroundDisconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char GroundDisconnector::debugName[] = "GroundDisconnector"; @@ -47,7 +79,7 @@ const char* GroundDisconnector::debugString() const void GroundDisconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GroundDisconnector", &GroundDisconnector_factory); + factory_map.emplace("GroundDisconnector", &GroundDisconnector_factory); } void GroundDisconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void GroundDisconnector::addEnumGetFnsToMap(std::map& Switch::addEnumGetFnsToMap(get_map); } +bool GroundDisconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GroundDisconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GroundDisconnector::declare() { return BaseClassDefiner(GroundDisconnector::addConstructToMap, GroundDisconnector::addPrimitiveAssignFnsToMap, GroundDisconnector::addClassAssignFnsToMap, GroundDisconnector::debugName); } +std::map GroundDisconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GroundDisconnector_factory() diff --git a/CGMES_2.4.15_27JAN2020/GroundDisconnector.hpp b/CGMES_2.4.15_27JAN2020/GroundDisconnector.hpp index ccf2b2c27..69caa93ce 100644 --- a/CGMES_2.4.15_27JAN2020/GroundDisconnector.hpp +++ b/CGMES_2.4.15_27JAN2020/GroundDisconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GroundDisconnector_factory(); diff --git a/CGMES_2.4.15_27JAN2020/GroundingImpedance.cpp b/CGMES_2.4.15_27JAN2020/GroundingImpedance.cpp index db7a16992..4fd437b9e 100644 --- a/CGMES_2.4.15_27JAN2020/GroundingImpedance.cpp +++ b/CGMES_2.4.15_27JAN2020/GroundingImpedance.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GroundingImpedance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GroundingImpedance.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GroundingImpedance::GroundingImpedance() {} GroundingImpedance::~GroundingImpedance() {} -static const std::list PossibleProfilesForClass = +const std::list& GroundingImpedance::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GroundingImpedance::getClassNamespaceUrl() const { - { "cim:GroundingImpedance.x", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GroundingImpedance::getPossibleProfilesForClass() const +const std::string& GroundingImpedance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GroundingImpedance::getPossibleProfilesForAttributes() const +const std::list& GroundingImpedance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EarthFaultCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GroundingImpedance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GroundingImpedance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GroundingImpedance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GroundingImpedance_x(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* GroundingImpedance::debugString() const void GroundingImpedance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GroundingImpedance", &GroundingImpedance_factory); + factory_map.emplace("GroundingImpedance", &GroundingImpedance_factory); } void GroundingImpedance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GroundingImpedance.x", &assign_GroundingImpedance_x); + assign_map.emplace("GroundingImpedance.x", &assign_GroundingImpedance_x); } void GroundingImpedance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void GroundingImpedance::addClassAssignFnsToMap(std::unordered_map& get_map) const { EarthFaultCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GroundingImpedance.x", &get_GroundingImpedance_x); + get_map.emplace("GroundingImpedance.x", &get_GroundingImpedance_x); } void GroundingImpedance::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void GroundingImpedance::addEnumGetFnsToMap(std::map& EarthFaultCompensator::addEnumGetFnsToMap(get_map); } +bool GroundingImpedance::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GroundingImpedance" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GroundingImpedance::declare() { return BaseClassDefiner(GroundingImpedance::addConstructToMap, GroundingImpedance::addPrimitiveAssignFnsToMap, GroundingImpedance::addClassAssignFnsToMap, GroundingImpedance::debugName); } +std::map GroundingImpedance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EarthFaultCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GroundingImpedance_factory() diff --git a/CGMES_2.4.15_27JAN2020/GroundingImpedance.hpp b/CGMES_2.4.15_27JAN2020/GroundingImpedance.hpp index ad05b5aaa..f0d8f26e9 100644 --- a/CGMES_2.4.15_27JAN2020/GroundingImpedance.hpp +++ b/CGMES_2.4.15_27JAN2020/GroundingImpedance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EarthFaultCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GroundingImpedance_factory(); diff --git a/CGMES_2.4.15_27JAN2020/HydroGeneratingUnit.cpp b/CGMES_2.4.15_27JAN2020/HydroGeneratingUnit.cpp index 13c3f4210..13327edd9 100644 --- a/CGMES_2.4.15_27JAN2020/HydroGeneratingUnit.cpp +++ b/CGMES_2.4.15_27JAN2020/HydroGeneratingUnit.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroGeneratingUnit.HydroPowerPlant", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroGeneratingUnit.energyConversionCapability", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroGeneratingUnit::HydroGeneratingUnit() : HydroPowerPlant(nullptr) {} HydroGeneratingUnit::~HydroGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroGeneratingUnit::getClassNamespaceUrl() const { - { "cim:HydroGeneratingUnit.HydroPowerPlant", { CGMESProfile::EQ, } }, - { "cim:HydroGeneratingUnit.energyConversionCapability", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroGeneratingUnit::getPossibleProfilesForClass() const +const std::string& HydroGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& HydroGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroPowerPlant_HydroGeneratingUnits(BaseClass*, BaseClass*); @@ -110,17 +142,17 @@ const char* HydroGeneratingUnit::debugString() const void HydroGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroGeneratingUnit", &HydroGeneratingUnit_factory); + factory_map.emplace("HydroGeneratingUnit", &HydroGeneratingUnit_factory); } void HydroGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroGeneratingUnit.energyConversionCapability", &assign_HydroGeneratingUnit_energyConversionCapability); + assign_map.emplace("HydroGeneratingUnit.energyConversionCapability", &assign_HydroGeneratingUnit_energyConversionCapability); } void HydroGeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroGeneratingUnit.HydroPowerPlant", &assign_HydroGeneratingUnit_HydroPowerPlant); + assign_map.emplace("HydroGeneratingUnit.HydroPowerPlant", &assign_HydroGeneratingUnit_HydroPowerPlant); } void HydroGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -131,13 +163,19 @@ void HydroGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { GeneratingUnit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.HydroPowerPlant", &get_HydroGeneratingUnit_HydroPowerPlant); + get_map.emplace("HydroGeneratingUnit.HydroPowerPlant", &get_HydroGeneratingUnit_HydroPowerPlant); } void HydroGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const { GeneratingUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.energyConversionCapability", &get_HydroGeneratingUnit_energyConversionCapability); + get_map.emplace("HydroGeneratingUnit.energyConversionCapability", &get_HydroGeneratingUnit_energyConversionCapability); +} + +bool HydroGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner HydroGeneratingUnit::declare() @@ -145,6 +183,14 @@ const BaseClassDefiner HydroGeneratingUnit::declare() return BaseClassDefiner(HydroGeneratingUnit::addConstructToMap, HydroGeneratingUnit::addPrimitiveAssignFnsToMap, HydroGeneratingUnit::addClassAssignFnsToMap, HydroGeneratingUnit::debugName); } +std::map HydroGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroGeneratingUnit_factory() diff --git a/CGMES_2.4.15_27JAN2020/HydroGeneratingUnit.hpp b/CGMES_2.4.15_27JAN2020/HydroGeneratingUnit.hpp index 74455c5e9..1ca522d48 100644 --- a/CGMES_2.4.15_27JAN2020/HydroGeneratingUnit.hpp +++ b/CGMES_2.4.15_27JAN2020/HydroGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "HydroEnergyConversionKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/HydroPowerPlant.cpp b/CGMES_2.4.15_27JAN2020/HydroPowerPlant.cpp index ad177ac88..e6ed79aeb 100644 --- a/CGMES_2.4.15_27JAN2020/HydroPowerPlant.cpp +++ b/CGMES_2.4.15_27JAN2020/HydroPowerPlant.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroPowerPlant(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroPowerPlant.HydroGeneratingUnits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPowerPlant.HydroPumps", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPowerPlant.hydroPlantStorageType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroPowerPlant::HydroPowerPlant() {} HydroPowerPlant::~HydroPowerPlant() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroPowerPlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroPowerPlant::getClassNamespaceUrl() const { - { "cim:HydroPowerPlant.HydroGeneratingUnits", { CGMESProfile::EQ, } }, - { "cim:HydroPowerPlant.HydroPumps", { CGMESProfile::EQ, } }, - { "cim:HydroPowerPlant.hydroPlantStorageType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroPowerPlant::getPossibleProfilesForClass() const +const std::string& HydroPowerPlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroPowerPlant::getPossibleProfilesForAttributes() const +const std::list& HydroPowerPlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroPowerPlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroPowerPlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroPowerPlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroGeneratingUnit_HydroPowerPlant(BaseClass*, BaseClass*); @@ -116,18 +148,18 @@ const char* HydroPowerPlant::debugString() const void HydroPowerPlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroPowerPlant", &HydroPowerPlant_factory); + factory_map.emplace("HydroPowerPlant", &HydroPowerPlant_factory); } void HydroPowerPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPowerPlant.hydroPlantStorageType", &assign_HydroPowerPlant_hydroPlantStorageType); + assign_map.emplace("HydroPowerPlant.hydroPlantStorageType", &assign_HydroPowerPlant_hydroPlantStorageType); } void HydroPowerPlant::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPowerPlant.HydroGeneratingUnits", &assign_HydroPowerPlant_HydroGeneratingUnits); - assign_map.emplace("cim:HydroPowerPlant.HydroPumps", &assign_HydroPowerPlant_HydroPumps); + assign_map.emplace("HydroPowerPlant.HydroGeneratingUnits", &assign_HydroPowerPlant_HydroGeneratingUnits); + assign_map.emplace("HydroPowerPlant.HydroPumps", &assign_HydroPowerPlant_HydroPumps); } void HydroPowerPlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -143,7 +175,13 @@ void HydroPowerPlant::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:HydroPowerPlant.hydroPlantStorageType", &get_HydroPowerPlant_hydroPlantStorageType); + get_map.emplace("HydroPowerPlant.hydroPlantStorageType", &get_HydroPowerPlant_hydroPlantStorageType); +} + +bool HydroPowerPlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroPowerPlant" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner HydroPowerPlant::declare() @@ -151,6 +189,14 @@ const BaseClassDefiner HydroPowerPlant::declare() return BaseClassDefiner(HydroPowerPlant::addConstructToMap, HydroPowerPlant::addPrimitiveAssignFnsToMap, HydroPowerPlant::addClassAssignFnsToMap, HydroPowerPlant::debugName); } +std::map HydroPowerPlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroPowerPlant_factory() diff --git a/CGMES_2.4.15_27JAN2020/HydroPowerPlant.hpp b/CGMES_2.4.15_27JAN2020/HydroPowerPlant.hpp index ab7712608..dc3babd9d 100644 --- a/CGMES_2.4.15_27JAN2020/HydroPowerPlant.hpp +++ b/CGMES_2.4.15_27JAN2020/HydroPowerPlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "HydroPlantStorageKind.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroPowerPlant_factory(); diff --git a/CGMES_2.4.15_27JAN2020/HydroPump.cpp b/CGMES_2.4.15_27JAN2020/HydroPump.cpp index 8d0613e79..92e2ecc57 100644 --- a/CGMES_2.4.15_27JAN2020/HydroPump.cpp +++ b/CGMES_2.4.15_27JAN2020/HydroPump.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroPump(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroPump.HydroPowerPlant", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "HydroPump.RotatingMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroPump::HydroPump() : HydroPowerPlant(nullptr), RotatingMachine(nullptr) {} HydroPump::~HydroPump() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroPump::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroPump::getClassNamespaceUrl() const { - { "cim:HydroPump.HydroPowerPlant", { CGMESProfile::EQ, } }, - { "cim:HydroPump.RotatingMachine", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroPump::getPossibleProfilesForClass() const +const std::string& HydroPump::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroPump::getPossibleProfilesForAttributes() const +const std::list& HydroPump::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroPump::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroPump::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroPump::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroPowerPlant_HydroPumps(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* HydroPump::debugString() const void HydroPump::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroPump", &HydroPump_factory); + factory_map.emplace("HydroPump", &HydroPump_factory); } void HydroPump::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void HydroPump::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPump.HydroPowerPlant", &assign_HydroPump_HydroPowerPlant); - assign_map.emplace("cim:HydroPump.RotatingMachine", &assign_HydroPump_RotatingMachine); + assign_map.emplace("HydroPump.HydroPowerPlant", &assign_HydroPump_HydroPowerPlant); + assign_map.emplace("HydroPump.RotatingMachine", &assign_HydroPump_RotatingMachine); } void HydroPump::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void HydroPump::addPrimitiveGetFnsToMap(std::map& get void HydroPump::addClassGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:HydroPump.HydroPowerPlant", &get_HydroPump_HydroPowerPlant); - get_map.emplace("cim:HydroPump.RotatingMachine", &get_HydroPump_RotatingMachine); + get_map.emplace("HydroPump.HydroPowerPlant", &get_HydroPump_HydroPowerPlant); + get_map.emplace("HydroPump.RotatingMachine", &get_HydroPump_RotatingMachine); } void HydroPump::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void HydroPump::addEnumGetFnsToMap(std::map& get_map) Equipment::addEnumGetFnsToMap(get_map); } +bool HydroPump::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroPump" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner HydroPump::declare() { return BaseClassDefiner(HydroPump::addConstructToMap, HydroPump::addPrimitiveAssignFnsToMap, HydroPump::addClassAssignFnsToMap, HydroPump::debugName); } +std::map HydroPump::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroPump_factory() diff --git a/CGMES_2.4.15_27JAN2020/HydroPump.hpp b/CGMES_2.4.15_27JAN2020/HydroPump.hpp index 9830eee7a..eaac31638 100644 --- a/CGMES_2.4.15_27JAN2020/HydroPump.hpp +++ b/CGMES_2.4.15_27JAN2020/HydroPump.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroPump_factory(); diff --git a/CGMES_2.4.15_27JAN2020/IdentifiedObject.cpp b/CGMES_2.4.15_27JAN2020/IdentifiedObject.cpp index b32ec2f29..6dee90ce3 100644 --- a/CGMES_2.4.15_27JAN2020/IdentifiedObject.cpp +++ b/CGMES_2.4.15_27JAN2020/IdentifiedObject.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + IdentifiedObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::GL, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "IdentifiedObject.DiagramObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "IdentifiedObject.description", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.energyIdentCodeEic", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.mRID", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.name", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "IdentifiedObject.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + IdentifiedObject::IdentifiedObject() {} IdentifiedObject::~IdentifiedObject() {} -static const std::list PossibleProfilesForClass = +const std::list& IdentifiedObject::getAttributeNames() const { - CGMESProfile::DL, - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::GL, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; - -static const std::map> PossibleProfilesForAttributes = + return getCimClassDetails().AttrNamesList; +} + +const std::string& IdentifiedObject::getClassNamespaceUrl() const { - { "cim:IdentifiedObject.DiagramObjects", { CGMESProfile::DL, } }, - { "cim:IdentifiedObject.description", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.energyIdentCodeEic", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.mRID", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.name", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::GL, CGMESProfile::SV, CGMESProfile::SSH, CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.shortName", { CGMESProfile::EQ_BD, CGMESProfile::EQ, CGMESProfile::TP_BD, CGMESProfile::TP, } }, -}; - -std::list -IdentifiedObject::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& IdentifiedObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -IdentifiedObject::getPossibleProfilesForAttributes() const +const std::list& IdentifiedObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& IdentifiedObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& IdentifiedObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& IdentifiedObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_IdentifiedObject(BaseClass*, BaseClass*); @@ -224,31 +256,31 @@ const char* IdentifiedObject::debugString() const void IdentifiedObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:IdentifiedObject", &IdentifiedObject_factory); + factory_map.emplace("IdentifiedObject", &IdentifiedObject_factory); } void IdentifiedObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:IdentifiedObject.description", &assign_IdentifiedObject_description); - assign_map.emplace("cim:IdentifiedObject.energyIdentCodeEic", &assign_IdentifiedObject_energyIdentCodeEic); - assign_map.emplace("cim:IdentifiedObject.mRID", &assign_IdentifiedObject_mRID); - assign_map.emplace("cim:IdentifiedObject.name", &assign_IdentifiedObject_name); - assign_map.emplace("cim:IdentifiedObject.shortName", &assign_IdentifiedObject_shortName); + assign_map.emplace("IdentifiedObject.description", &assign_IdentifiedObject_description); + assign_map.emplace("IdentifiedObject.energyIdentCodeEic", &assign_IdentifiedObject_energyIdentCodeEic); + assign_map.emplace("IdentifiedObject.mRID", &assign_IdentifiedObject_mRID); + assign_map.emplace("IdentifiedObject.name", &assign_IdentifiedObject_name); + assign_map.emplace("IdentifiedObject.shortName", &assign_IdentifiedObject_shortName); } void IdentifiedObject::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:IdentifiedObject.DiagramObjects", &assign_IdentifiedObject_DiagramObjects); + assign_map.emplace("IdentifiedObject.DiagramObjects", &assign_IdentifiedObject_DiagramObjects); } void IdentifiedObject::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:IdentifiedObject.description", &get_IdentifiedObject_description); - get_map.emplace("cim:IdentifiedObject.energyIdentCodeEic", &get_IdentifiedObject_energyIdentCodeEic); - get_map.emplace("cim:IdentifiedObject.mRID", &get_IdentifiedObject_mRID); - get_map.emplace("cim:IdentifiedObject.name", &get_IdentifiedObject_name); - get_map.emplace("cim:IdentifiedObject.shortName", &get_IdentifiedObject_shortName); + get_map.emplace("IdentifiedObject.description", &get_IdentifiedObject_description); + get_map.emplace("IdentifiedObject.energyIdentCodeEic", &get_IdentifiedObject_energyIdentCodeEic); + get_map.emplace("IdentifiedObject.mRID", &get_IdentifiedObject_mRID); + get_map.emplace("IdentifiedObject.name", &get_IdentifiedObject_name); + get_map.emplace("IdentifiedObject.shortName", &get_IdentifiedObject_shortName); } void IdentifiedObject::addClassGetFnsToMap(std::map& get_map) const @@ -261,11 +293,25 @@ void IdentifiedObject::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool IdentifiedObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "IdentifiedObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner IdentifiedObject::declare() { return BaseClassDefiner(IdentifiedObject::addConstructToMap, IdentifiedObject::addPrimitiveAssignFnsToMap, IdentifiedObject::addClassAssignFnsToMap, IdentifiedObject::debugName); } +std::map IdentifiedObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* IdentifiedObject_factory() diff --git a/CGMES_2.4.15_27JAN2020/IdentifiedObject.hpp b/CGMES_2.4.15_27JAN2020/IdentifiedObject.hpp index 43941ab22..d6dcf27a1 100644 --- a/CGMES_2.4.15_27JAN2020/IdentifiedObject.hpp +++ b/CGMES_2.4.15_27JAN2020/IdentifiedObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* IdentifiedObject_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Junction.cpp b/CGMES_2.4.15_27JAN2020/Junction.cpp index cd2b7c69d..b66050dd3 100644 --- a/CGMES_2.4.15_27JAN2020/Junction.cpp +++ b/CGMES_2.4.15_27JAN2020/Junction.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Junction(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Junction::Junction() {} Junction::~Junction() {} -static const std::list PossibleProfilesForClass = +const std::list& Junction::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Junction::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Junction::getPossibleProfilesForClass() const +const std::string& Junction::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Junction::getPossibleProfilesForAttributes() const +const std::list& Junction::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Connector::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Junction::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Junction::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Junction::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Junction::debugName[] = "Junction"; @@ -47,7 +79,7 @@ const char* Junction::debugString() const void Junction::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Junction", &Junction_factory); + factory_map.emplace("Junction", &Junction_factory); } void Junction::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Junction::addEnumGetFnsToMap(std::map& get_map) Connector::addEnumGetFnsToMap(get_map); } +bool Junction::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Junction" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Junction::declare() { return BaseClassDefiner(Junction::addConstructToMap, Junction::addPrimitiveAssignFnsToMap, Junction::addClassAssignFnsToMap, Junction::debugName); } +std::map Junction::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Connector::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Junction_factory() diff --git a/CGMES_2.4.15_27JAN2020/Junction.hpp b/CGMES_2.4.15_27JAN2020/Junction.hpp index 4f48dfc33..36e05a59e 100644 --- a/CGMES_2.4.15_27JAN2020/Junction.hpp +++ b/CGMES_2.4.15_27JAN2020/Junction.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Connector.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Junction_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Limit.cpp b/CGMES_2.4.15_27JAN2020/Limit.cpp index a83eaee0d..d2a7473d3 100644 --- a/CGMES_2.4.15_27JAN2020/Limit.cpp +++ b/CGMES_2.4.15_27JAN2020/Limit.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Limit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Limit::Limit() {} Limit::~Limit() {} -static const std::list PossibleProfilesForClass = +const std::list& Limit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Limit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Limit::getPossibleProfilesForClass() const +const std::string& Limit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Limit::getPossibleProfilesForAttributes() const +const std::list& Limit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Limit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Limit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Limit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Limit::debugName[] = "Limit"; @@ -46,7 +78,7 @@ const char* Limit::debugString() const void Limit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Limit", &Limit_factory); + factory_map.emplace("Limit", &Limit_factory); } void Limit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Limit::addEnumGetFnsToMap(std::map& get_map) con IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Limit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Limit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Limit::declare() { return BaseClassDefiner(Limit::addConstructToMap, Limit::addPrimitiveAssignFnsToMap, Limit::addClassAssignFnsToMap, Limit::debugName); } +std::map Limit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Limit_factory() diff --git a/CGMES_2.4.15_27JAN2020/Limit.hpp b/CGMES_2.4.15_27JAN2020/Limit.hpp index 76b2b4799..80c9039b8 100644 --- a/CGMES_2.4.15_27JAN2020/Limit.hpp +++ b/CGMES_2.4.15_27JAN2020/Limit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Limit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LimitSet.cpp b/CGMES_2.4.15_27JAN2020/LimitSet.cpp index 77176570f..3c36dc742 100644 --- a/CGMES_2.4.15_27JAN2020/LimitSet.cpp +++ b/CGMES_2.4.15_27JAN2020/LimitSet.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LimitSet.isPercentageLimits", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LimitSet::LimitSet() {} LimitSet::~LimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& LimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LimitSet::getClassNamespaceUrl() const { - { "cim:LimitSet.isPercentageLimits", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LimitSet::getPossibleProfilesForClass() const +const std::string& LimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LimitSet::getPossibleProfilesForAttributes() const +const std::list& LimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LimitSet_isPercentageLimits(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* LimitSet::debugString() const void LimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LimitSet", &LimitSet_factory); + factory_map.emplace("LimitSet", &LimitSet_factory); } void LimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LimitSet.isPercentageLimits", &assign_LimitSet_isPercentageLimits); + assign_map.emplace("LimitSet.isPercentageLimits", &assign_LimitSet_isPercentageLimits); } void LimitSet::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void LimitSet::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LimitSet.isPercentageLimits", &get_LimitSet_isPercentageLimits); + get_map.emplace("LimitSet.isPercentageLimits", &get_LimitSet_isPercentageLimits); } void LimitSet::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void LimitSet::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LimitSet::declare() { return BaseClassDefiner(LimitSet::addConstructToMap, LimitSet::addPrimitiveAssignFnsToMap, LimitSet::addClassAssignFnsToMap, LimitSet::debugName); } +std::map LimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LimitSet_factory() diff --git a/CGMES_2.4.15_27JAN2020/LimitSet.hpp b/CGMES_2.4.15_27JAN2020/LimitSet.hpp index ee31c5731..9090fb55e 100644 --- a/CGMES_2.4.15_27JAN2020/LimitSet.hpp +++ b/CGMES_2.4.15_27JAN2020/LimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LimitSet_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Line.cpp b/CGMES_2.4.15_27JAN2020/Line.cpp index 098452102..62ecbb3ad 100644 --- a/CGMES_2.4.15_27JAN2020/Line.cpp +++ b/CGMES_2.4.15_27JAN2020/Line.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Line(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Line.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Line::Line() : Region(nullptr) {} Line::~Line() {} -static const std::list PossibleProfilesForClass = +const std::list& Line::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Line::getClassNamespaceUrl() const { - { "cim:Line.Region", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Line::getPossibleProfilesForClass() const +const std::string& Line::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Line::getPossibleProfilesForAttributes() const +const std::list& Line::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Line::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Line::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Line::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_Lines(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* Line::debugString() const void Line::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Line", &Line_factory); + factory_map.emplace("Line", &Line_factory); } void Line::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void Line::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Line.Region", &assign_Line_Region); + assign_map.emplace("Line.Region", &assign_Line_Region); } void Line::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void Line::addPrimitiveGetFnsToMap(std::map& get_map) void Line::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Line.Region", &get_Line_Region); + get_map.emplace("Line.Region", &get_Line_Region); } void Line::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void Line::addEnumGetFnsToMap(std::map& get_map) cons EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Line::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Line" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Line::declare() { return BaseClassDefiner(Line::addConstructToMap, Line::addPrimitiveAssignFnsToMap, Line::addClassAssignFnsToMap, Line::debugName); } +std::map Line::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Line_factory() diff --git a/CGMES_2.4.15_27JAN2020/Line.hpp b/CGMES_2.4.15_27JAN2020/Line.hpp index 5a544c8ac..6e35dc11d 100644 --- a/CGMES_2.4.15_27JAN2020/Line.hpp +++ b/CGMES_2.4.15_27JAN2020/Line.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Line_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LinearShuntCompensator.cpp b/CGMES_2.4.15_27JAN2020/LinearShuntCompensator.cpp index e8914787f..a70a188c3 100644 --- a/CGMES_2.4.15_27JAN2020/LinearShuntCompensator.cpp +++ b/CGMES_2.4.15_27JAN2020/LinearShuntCompensator.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LinearShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LinearShuntCompensator.b0PerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.bPerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.g0PerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.gPerSection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LinearShuntCompensator::LinearShuntCompensator() {} LinearShuntCompensator::~LinearShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& LinearShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LinearShuntCompensator::getClassNamespaceUrl() const { - { "cim:LinearShuntCompensator.b0PerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.bPerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.g0PerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.gPerSection", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LinearShuntCompensator::getPossibleProfilesForClass() const +const std::string& LinearShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LinearShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& LinearShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ShuntCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LinearShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LinearShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LinearShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LinearShuntCompensator_b0PerSection(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -167,15 +199,15 @@ const char* LinearShuntCompensator::debugString() const void LinearShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LinearShuntCompensator", &LinearShuntCompensator_factory); + factory_map.emplace("LinearShuntCompensator", &LinearShuntCompensator_factory); } void LinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LinearShuntCompensator.b0PerSection", &assign_LinearShuntCompensator_b0PerSection); - assign_map.emplace("cim:LinearShuntCompensator.bPerSection", &assign_LinearShuntCompensator_bPerSection); - assign_map.emplace("cim:LinearShuntCompensator.g0PerSection", &assign_LinearShuntCompensator_g0PerSection); - assign_map.emplace("cim:LinearShuntCompensator.gPerSection", &assign_LinearShuntCompensator_gPerSection); + assign_map.emplace("LinearShuntCompensator.b0PerSection", &assign_LinearShuntCompensator_b0PerSection); + assign_map.emplace("LinearShuntCompensator.bPerSection", &assign_LinearShuntCompensator_bPerSection); + assign_map.emplace("LinearShuntCompensator.g0PerSection", &assign_LinearShuntCompensator_g0PerSection); + assign_map.emplace("LinearShuntCompensator.gPerSection", &assign_LinearShuntCompensator_gPerSection); } void LinearShuntCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -185,10 +217,10 @@ void LinearShuntCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ShuntCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LinearShuntCompensator.b0PerSection", &get_LinearShuntCompensator_b0PerSection); - get_map.emplace("cim:LinearShuntCompensator.bPerSection", &get_LinearShuntCompensator_bPerSection); - get_map.emplace("cim:LinearShuntCompensator.g0PerSection", &get_LinearShuntCompensator_g0PerSection); - get_map.emplace("cim:LinearShuntCompensator.gPerSection", &get_LinearShuntCompensator_gPerSection); + get_map.emplace("LinearShuntCompensator.b0PerSection", &get_LinearShuntCompensator_b0PerSection); + get_map.emplace("LinearShuntCompensator.bPerSection", &get_LinearShuntCompensator_bPerSection); + get_map.emplace("LinearShuntCompensator.g0PerSection", &get_LinearShuntCompensator_g0PerSection); + get_map.emplace("LinearShuntCompensator.gPerSection", &get_LinearShuntCompensator_gPerSection); } void LinearShuntCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -201,11 +233,25 @@ void LinearShuntCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner LinearShuntCompensator::declare() { return BaseClassDefiner(LinearShuntCompensator::addConstructToMap, LinearShuntCompensator::addPrimitiveAssignFnsToMap, LinearShuntCompensator::addClassAssignFnsToMap, LinearShuntCompensator::debugName); } +std::map LinearShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ShuntCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LinearShuntCompensator_factory() diff --git a/CGMES_2.4.15_27JAN2020/LinearShuntCompensator.hpp b/CGMES_2.4.15_27JAN2020/LinearShuntCompensator.hpp index 135910c4f..6b76b41f5 100644 --- a/CGMES_2.4.15_27JAN2020/LinearShuntCompensator.hpp +++ b/CGMES_2.4.15_27JAN2020/LinearShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ShuntCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Susceptance.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LinearShuntCompensator_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadAggregate.cpp b/CGMES_2.4.15_27JAN2020/LoadAggregate.cpp index 56bc69716..9a415d843 100644 --- a/CGMES_2.4.15_27JAN2020/LoadAggregate.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadAggregate.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadAggregate(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadAggregate.LoadMotor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadAggregate.LoadStatic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadAggregate::LoadAggregate() : LoadMotor(nullptr), LoadStatic(nullptr) {} LoadAggregate::~LoadAggregate() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadAggregate::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadAggregate::getClassNamespaceUrl() const { - { "cim:LoadAggregate.LoadMotor", { CGMESProfile::DY, } }, - { "cim:LoadAggregate.LoadStatic", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadAggregate::getPossibleProfilesForClass() const +const std::string& LoadAggregate::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadAggregate::getPossibleProfilesForAttributes() const +const std::list& LoadAggregate::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadAggregate::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadAggregate::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadAggregate::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadMotor_LoadAggregate(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* LoadAggregate::debugString() const void LoadAggregate::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadAggregate", &LoadAggregate_factory); + factory_map.emplace("LoadAggregate", &LoadAggregate_factory); } void LoadAggregate::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void LoadAggregate::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadAggregate.LoadMotor", &assign_LoadAggregate_LoadMotor); - assign_map.emplace("cim:LoadAggregate.LoadStatic", &assign_LoadAggregate_LoadStatic); + assign_map.emplace("LoadAggregate.LoadMotor", &assign_LoadAggregate_LoadMotor); + assign_map.emplace("LoadAggregate.LoadStatic", &assign_LoadAggregate_LoadStatic); } void LoadAggregate::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void LoadAggregate::addEnumGetFnsToMap(std::map& get_ LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadAggregate::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadAggregate" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadAggregate::declare() { return BaseClassDefiner(LoadAggregate::addConstructToMap, LoadAggregate::addPrimitiveAssignFnsToMap, LoadAggregate::addClassAssignFnsToMap, LoadAggregate::debugName); } +std::map LoadAggregate::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadAggregate_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadAggregate.hpp b/CGMES_2.4.15_27JAN2020/LoadAggregate.hpp index 4fb10931d..68255e577 100644 --- a/CGMES_2.4.15_27JAN2020/LoadAggregate.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadAggregate.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadAggregate_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadArea.cpp b/CGMES_2.4.15_27JAN2020/LoadArea.cpp index 8154b9035..34a421bbd 100644 --- a/CGMES_2.4.15_27JAN2020/LoadArea.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadArea.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadArea.SubLoadAreas", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadArea::LoadArea() {} LoadArea::~LoadArea() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadArea::getClassNamespaceUrl() const { - { "cim:LoadArea.SubLoadAreas", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadArea::getPossibleProfilesForClass() const +const std::string& LoadArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadArea::getPossibleProfilesForAttributes() const +const std::list& LoadArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyArea::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubLoadArea_LoadArea(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* LoadArea::debugString() const void LoadArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadArea", &LoadArea_factory); + factory_map.emplace("LoadArea", &LoadArea_factory); } void LoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void LoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadArea.SubLoadAreas", &assign_LoadArea_SubLoadAreas); + assign_map.emplace("LoadArea.SubLoadAreas", &assign_LoadArea_SubLoadAreas); } void LoadArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void LoadArea::addEnumGetFnsToMap(std::map& get_map) EnergyArea::addEnumGetFnsToMap(get_map); } +bool LoadArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadArea::declare() { return BaseClassDefiner(LoadArea::addConstructToMap, LoadArea::addPrimitiveAssignFnsToMap, LoadArea::addClassAssignFnsToMap, LoadArea::debugName); } +std::map LoadArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyArea::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadArea_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadArea.hpp b/CGMES_2.4.15_27JAN2020/LoadArea.hpp index 9142620cd..0212922f5 100644 --- a/CGMES_2.4.15_27JAN2020/LoadArea.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyArea.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadArea_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadBreakSwitch.cpp b/CGMES_2.4.15_27JAN2020/LoadBreakSwitch.cpp index 881f3cd8a..d4278e70b 100644 --- a/CGMES_2.4.15_27JAN2020/LoadBreakSwitch.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadBreakSwitch.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadBreakSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + LoadBreakSwitch::LoadBreakSwitch() {} LoadBreakSwitch::~LoadBreakSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadBreakSwitch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadBreakSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadBreakSwitch::getPossibleProfilesForClass() const +const std::string& LoadBreakSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadBreakSwitch::getPossibleProfilesForAttributes() const +const std::list& LoadBreakSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ProtectedSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadBreakSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadBreakSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadBreakSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char LoadBreakSwitch::debugName[] = "LoadBreakSwitch"; @@ -47,7 +79,7 @@ const char* LoadBreakSwitch::debugString() const void LoadBreakSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadBreakSwitch", &LoadBreakSwitch_factory); + factory_map.emplace("LoadBreakSwitch", &LoadBreakSwitch_factory); } void LoadBreakSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void LoadBreakSwitch::addEnumGetFnsToMap(std::map& ge ProtectedSwitch::addEnumGetFnsToMap(get_map); } +bool LoadBreakSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadBreakSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadBreakSwitch::declare() { return BaseClassDefiner(LoadBreakSwitch::addConstructToMap, LoadBreakSwitch::addPrimitiveAssignFnsToMap, LoadBreakSwitch::addClassAssignFnsToMap, LoadBreakSwitch::debugName); } +std::map LoadBreakSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ProtectedSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadBreakSwitch_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadBreakSwitch.hpp b/CGMES_2.4.15_27JAN2020/LoadBreakSwitch.hpp index e6c20cc50..64a04bd2e 100644 --- a/CGMES_2.4.15_27JAN2020/LoadBreakSwitch.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadBreakSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ProtectedSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadBreakSwitch_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadComposite.cpp b/CGMES_2.4.15_27JAN2020/LoadComposite.cpp index 3502dc5ba..7505b5544 100644 --- a/CGMES_2.4.15_27JAN2020/LoadComposite.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadComposite.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadComposite(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadComposite.epfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epfs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.epvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqfs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqvd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.h", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.lfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadComposite.pfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadComposite::LoadComposite() {} LoadComposite::~LoadComposite() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadComposite::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadComposite::getClassNamespaceUrl() const { - { "cim:LoadComposite.epfd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epfs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epvd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epvs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqfd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqfs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqvd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqvs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.h", { CGMESProfile::DY, } }, - { "cim:LoadComposite.lfrac", { CGMESProfile::DY, } }, - { "cim:LoadComposite.pfrac", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadComposite::getPossibleProfilesForClass() const +const std::string& LoadComposite::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadComposite::getPossibleProfilesForAttributes() const +const std::list& LoadComposite::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadComposite::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadComposite::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadComposite::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadComposite_epfd(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* LoadComposite::debugString() const void LoadComposite::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadComposite", &LoadComposite_factory); + factory_map.emplace("LoadComposite", &LoadComposite_factory); } void LoadComposite::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadComposite.epfd", &assign_LoadComposite_epfd); - assign_map.emplace("cim:LoadComposite.epfs", &assign_LoadComposite_epfs); - assign_map.emplace("cim:LoadComposite.epvd", &assign_LoadComposite_epvd); - assign_map.emplace("cim:LoadComposite.epvs", &assign_LoadComposite_epvs); - assign_map.emplace("cim:LoadComposite.eqfd", &assign_LoadComposite_eqfd); - assign_map.emplace("cim:LoadComposite.eqfs", &assign_LoadComposite_eqfs); - assign_map.emplace("cim:LoadComposite.eqvd", &assign_LoadComposite_eqvd); - assign_map.emplace("cim:LoadComposite.eqvs", &assign_LoadComposite_eqvs); - assign_map.emplace("cim:LoadComposite.h", &assign_LoadComposite_h); - assign_map.emplace("cim:LoadComposite.lfrac", &assign_LoadComposite_lfrac); - assign_map.emplace("cim:LoadComposite.pfrac", &assign_LoadComposite_pfrac); + assign_map.emplace("LoadComposite.epfd", &assign_LoadComposite_epfd); + assign_map.emplace("LoadComposite.epfs", &assign_LoadComposite_epfs); + assign_map.emplace("LoadComposite.epvd", &assign_LoadComposite_epvd); + assign_map.emplace("LoadComposite.epvs", &assign_LoadComposite_epvs); + assign_map.emplace("LoadComposite.eqfd", &assign_LoadComposite_eqfd); + assign_map.emplace("LoadComposite.eqfs", &assign_LoadComposite_eqfs); + assign_map.emplace("LoadComposite.eqvd", &assign_LoadComposite_eqvd); + assign_map.emplace("LoadComposite.eqvs", &assign_LoadComposite_eqvs); + assign_map.emplace("LoadComposite.h", &assign_LoadComposite_h); + assign_map.emplace("LoadComposite.lfrac", &assign_LoadComposite_lfrac); + assign_map.emplace("LoadComposite.pfrac", &assign_LoadComposite_pfrac); } void LoadComposite::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void LoadComposite::addClassAssignFnsToMap(std::unordered_map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadComposite.epfd", &get_LoadComposite_epfd); - get_map.emplace("cim:LoadComposite.epfs", &get_LoadComposite_epfs); - get_map.emplace("cim:LoadComposite.epvd", &get_LoadComposite_epvd); - get_map.emplace("cim:LoadComposite.epvs", &get_LoadComposite_epvs); - get_map.emplace("cim:LoadComposite.eqfd", &get_LoadComposite_eqfd); - get_map.emplace("cim:LoadComposite.eqfs", &get_LoadComposite_eqfs); - get_map.emplace("cim:LoadComposite.eqvd", &get_LoadComposite_eqvd); - get_map.emplace("cim:LoadComposite.eqvs", &get_LoadComposite_eqvs); - get_map.emplace("cim:LoadComposite.h", &get_LoadComposite_h); - get_map.emplace("cim:LoadComposite.lfrac", &get_LoadComposite_lfrac); - get_map.emplace("cim:LoadComposite.pfrac", &get_LoadComposite_pfrac); + get_map.emplace("LoadComposite.epfd", &get_LoadComposite_epfd); + get_map.emplace("LoadComposite.epfs", &get_LoadComposite_epfs); + get_map.emplace("LoadComposite.epvd", &get_LoadComposite_epvd); + get_map.emplace("LoadComposite.epvs", &get_LoadComposite_epvs); + get_map.emplace("LoadComposite.eqfd", &get_LoadComposite_eqfd); + get_map.emplace("LoadComposite.eqfs", &get_LoadComposite_eqfs); + get_map.emplace("LoadComposite.eqvd", &get_LoadComposite_eqvd); + get_map.emplace("LoadComposite.eqvs", &get_LoadComposite_eqvs); + get_map.emplace("LoadComposite.h", &get_LoadComposite_h); + get_map.emplace("LoadComposite.lfrac", &get_LoadComposite_lfrac); + get_map.emplace("LoadComposite.pfrac", &get_LoadComposite_pfrac); } void LoadComposite::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void LoadComposite::addEnumGetFnsToMap(std::map& get_ LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadComposite::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadComposite" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadComposite::declare() { return BaseClassDefiner(LoadComposite::addConstructToMap, LoadComposite::addPrimitiveAssignFnsToMap, LoadComposite::addClassAssignFnsToMap, LoadComposite::debugName); } +std::map LoadComposite::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadComposite_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadComposite.hpp b/CGMES_2.4.15_27JAN2020/LoadComposite.hpp index 37bbc8ac6..df72bbcfa 100644 --- a/CGMES_2.4.15_27JAN2020/LoadComposite.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadComposite.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadComposite_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadDynamics.cpp b/CGMES_2.4.15_27JAN2020/LoadDynamics.cpp index 35cf6f647..2cbed6743 100644 --- a/CGMES_2.4.15_27JAN2020/LoadDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadDynamics.EnergyConsumer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadDynamics::LoadDynamics() {} LoadDynamics::~LoadDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadDynamics::getClassNamespaceUrl() const { - { "cim:LoadDynamics.EnergyConsumer", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadDynamics::getPossibleProfilesForClass() const +const std::string& LoadDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadDynamics::getPossibleProfilesForAttributes() const +const std::list& LoadDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergyConsumer_LoadDynamics(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* LoadDynamics::debugString() const void LoadDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadDynamics", &LoadDynamics_factory); + factory_map.emplace("LoadDynamics", &LoadDynamics_factory); } void LoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void LoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadDynamics.EnergyConsumer", &assign_LoadDynamics_EnergyConsumer); + assign_map.emplace("LoadDynamics.EnergyConsumer", &assign_LoadDynamics_EnergyConsumer); } void LoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void LoadDynamics::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadDynamics::declare() { return BaseClassDefiner(LoadDynamics::addConstructToMap, LoadDynamics::addPrimitiveAssignFnsToMap, LoadDynamics::addClassAssignFnsToMap, LoadDynamics::debugName); } +std::map LoadDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadDynamics.hpp b/CGMES_2.4.15_27JAN2020/LoadDynamics.hpp index ffaa8be53..216b42208 100644 --- a/CGMES_2.4.15_27JAN2020/LoadDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadGenericNonLinear.cpp b/CGMES_2.4.15_27JAN2020/LoadGenericNonLinear.cpp index 9bae002fa..3ea34eb20 100644 --- a/CGMES_2.4.15_27JAN2020/LoadGenericNonLinear.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadGenericNonLinear.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadGenericNonLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadGenericNonLinear.bs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.bt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.genericNonLinearLoadModelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.ls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.lt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.pt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.qt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.tq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadGenericNonLinear::LoadGenericNonLinear() {} LoadGenericNonLinear::~LoadGenericNonLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadGenericNonLinear::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadGenericNonLinear::getClassNamespaceUrl() const { - { "cim:LoadGenericNonLinear.bs", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.bt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.genericNonLinearLoadModelType", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.ls", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.lt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.pt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.qt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.tp", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.tq", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadGenericNonLinear::getPossibleProfilesForClass() const +const std::string& LoadGenericNonLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadGenericNonLinear::getPossibleProfilesForAttributes() const +const std::list& LoadGenericNonLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadGenericNonLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadGenericNonLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadGenericNonLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadGenericNonLinear_bs(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* LoadGenericNonLinear::debugString() const void LoadGenericNonLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadGenericNonLinear", &LoadGenericNonLinear_factory); + factory_map.emplace("LoadGenericNonLinear", &LoadGenericNonLinear_factory); } void LoadGenericNonLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadGenericNonLinear.bs", &assign_LoadGenericNonLinear_bs); - assign_map.emplace("cim:LoadGenericNonLinear.bt", &assign_LoadGenericNonLinear_bt); - assign_map.emplace("cim:LoadGenericNonLinear.genericNonLinearLoadModelType", &assign_LoadGenericNonLinear_genericNonLinearLoadModelType); - assign_map.emplace("cim:LoadGenericNonLinear.ls", &assign_LoadGenericNonLinear_ls); - assign_map.emplace("cim:LoadGenericNonLinear.lt", &assign_LoadGenericNonLinear_lt); - assign_map.emplace("cim:LoadGenericNonLinear.pt", &assign_LoadGenericNonLinear_pt); - assign_map.emplace("cim:LoadGenericNonLinear.qt", &assign_LoadGenericNonLinear_qt); - assign_map.emplace("cim:LoadGenericNonLinear.tp", &assign_LoadGenericNonLinear_tp); - assign_map.emplace("cim:LoadGenericNonLinear.tq", &assign_LoadGenericNonLinear_tq); + assign_map.emplace("LoadGenericNonLinear.bs", &assign_LoadGenericNonLinear_bs); + assign_map.emplace("LoadGenericNonLinear.bt", &assign_LoadGenericNonLinear_bt); + assign_map.emplace("LoadGenericNonLinear.genericNonLinearLoadModelType", &assign_LoadGenericNonLinear_genericNonLinearLoadModelType); + assign_map.emplace("LoadGenericNonLinear.ls", &assign_LoadGenericNonLinear_ls); + assign_map.emplace("LoadGenericNonLinear.lt", &assign_LoadGenericNonLinear_lt); + assign_map.emplace("LoadGenericNonLinear.pt", &assign_LoadGenericNonLinear_pt); + assign_map.emplace("LoadGenericNonLinear.qt", &assign_LoadGenericNonLinear_qt); + assign_map.emplace("LoadGenericNonLinear.tp", &assign_LoadGenericNonLinear_tp); + assign_map.emplace("LoadGenericNonLinear.tq", &assign_LoadGenericNonLinear_tq); } void LoadGenericNonLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,14 +371,14 @@ void LoadGenericNonLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadGenericNonLinear.bs", &get_LoadGenericNonLinear_bs); - get_map.emplace("cim:LoadGenericNonLinear.bt", &get_LoadGenericNonLinear_bt); - get_map.emplace("cim:LoadGenericNonLinear.ls", &get_LoadGenericNonLinear_ls); - get_map.emplace("cim:LoadGenericNonLinear.lt", &get_LoadGenericNonLinear_lt); - get_map.emplace("cim:LoadGenericNonLinear.pt", &get_LoadGenericNonLinear_pt); - get_map.emplace("cim:LoadGenericNonLinear.qt", &get_LoadGenericNonLinear_qt); - get_map.emplace("cim:LoadGenericNonLinear.tp", &get_LoadGenericNonLinear_tp); - get_map.emplace("cim:LoadGenericNonLinear.tq", &get_LoadGenericNonLinear_tq); + get_map.emplace("LoadGenericNonLinear.bs", &get_LoadGenericNonLinear_bs); + get_map.emplace("LoadGenericNonLinear.bt", &get_LoadGenericNonLinear_bt); + get_map.emplace("LoadGenericNonLinear.ls", &get_LoadGenericNonLinear_ls); + get_map.emplace("LoadGenericNonLinear.lt", &get_LoadGenericNonLinear_lt); + get_map.emplace("LoadGenericNonLinear.pt", &get_LoadGenericNonLinear_pt); + get_map.emplace("LoadGenericNonLinear.qt", &get_LoadGenericNonLinear_qt); + get_map.emplace("LoadGenericNonLinear.tp", &get_LoadGenericNonLinear_tp); + get_map.emplace("LoadGenericNonLinear.tq", &get_LoadGenericNonLinear_tq); } void LoadGenericNonLinear::addClassGetFnsToMap(std::map& get_map) const @@ -357,7 +389,13 @@ void LoadGenericNonLinear::addClassGetFnsToMap(std::map& get_map) const { LoadDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:LoadGenericNonLinear.genericNonLinearLoadModelType", &get_LoadGenericNonLinear_genericNonLinearLoadModelType); + get_map.emplace("LoadGenericNonLinear.genericNonLinearLoadModelType", &get_LoadGenericNonLinear_genericNonLinearLoadModelType); +} + +bool LoadGenericNonLinear::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadGenericNonLinear" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner LoadGenericNonLinear::declare() @@ -365,6 +403,14 @@ const BaseClassDefiner LoadGenericNonLinear::declare() return BaseClassDefiner(LoadGenericNonLinear::addConstructToMap, LoadGenericNonLinear::addPrimitiveAssignFnsToMap, LoadGenericNonLinear::addClassAssignFnsToMap, LoadGenericNonLinear::debugName); } +std::map LoadGenericNonLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadGenericNonLinear_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadGenericNonLinear.hpp b/CGMES_2.4.15_27JAN2020/LoadGenericNonLinear.hpp index c291b52e3..8e557e9e2 100644 --- a/CGMES_2.4.15_27JAN2020/LoadGenericNonLinear.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadGenericNonLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "GenericNonLinearLoadModelKind.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -57,8 +58,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -66,7 +74,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadGenericNonLinear_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadGroup.cpp b/CGMES_2.4.15_27JAN2020/LoadGroup.cpp index 142619bf7..7775c7576 100644 --- a/CGMES_2.4.15_27JAN2020/LoadGroup.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadGroup.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadGroup.SubLoadArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadGroup::LoadGroup() : SubLoadArea(nullptr) {} LoadGroup::~LoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadGroup::getClassNamespaceUrl() const { - { "cim:LoadGroup.SubLoadArea", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadGroup::getPossibleProfilesForClass() const +const std::string& LoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadGroup::getPossibleProfilesForAttributes() const +const std::list& LoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubLoadArea_LoadGroups(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* LoadGroup::debugString() const void LoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadGroup", &LoadGroup_factory); + factory_map.emplace("LoadGroup", &LoadGroup_factory); } void LoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void LoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadGroup.SubLoadArea", &assign_LoadGroup_SubLoadArea); + assign_map.emplace("LoadGroup.SubLoadArea", &assign_LoadGroup_SubLoadArea); } void LoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void LoadGroup::addPrimitiveGetFnsToMap(std::map& get void LoadGroup::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadGroup.SubLoadArea", &get_LoadGroup_SubLoadArea); + get_map.emplace("LoadGroup.SubLoadArea", &get_LoadGroup_SubLoadArea); } void LoadGroup::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void LoadGroup::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadGroup::declare() { return BaseClassDefiner(LoadGroup::addConstructToMap, LoadGroup::addPrimitiveAssignFnsToMap, LoadGroup::addClassAssignFnsToMap, LoadGroup::debugName); } +std::map LoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadGroup_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadGroup.hpp b/CGMES_2.4.15_27JAN2020/LoadGroup.hpp index d0fa3dd27..f3684c780 100644 --- a/CGMES_2.4.15_27JAN2020/LoadGroup.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadGroup_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadMotor.cpp b/CGMES_2.4.15_27JAN2020/LoadMotor.cpp index b1eddcd2a..bb8e8631f 100644 --- a/CGMES_2.4.15_27JAN2020/LoadMotor.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadMotor.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadMotor(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadMotor.LoadAggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.h", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lfac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.lpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.ls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.pfrac", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.ra", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tbkr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tpo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tppo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.tv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadMotor.vt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadMotor::LoadMotor() : LoadAggregate(nullptr) {} LoadMotor::~LoadMotor() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadMotor::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadMotor::getClassNamespaceUrl() const { - { "cim:LoadMotor.LoadAggregate", { CGMESProfile::DY, } }, - { "cim:LoadMotor.d", { CGMESProfile::DY, } }, - { "cim:LoadMotor.h", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lfac", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lp", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lpp", { CGMESProfile::DY, } }, - { "cim:LoadMotor.ls", { CGMESProfile::DY, } }, - { "cim:LoadMotor.pfrac", { CGMESProfile::DY, } }, - { "cim:LoadMotor.ra", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tbkr", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tpo", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tppo", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tv", { CGMESProfile::DY, } }, - { "cim:LoadMotor.vt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadMotor::getPossibleProfilesForClass() const +const std::string& LoadMotor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadMotor::getPossibleProfilesForAttributes() const +const std::list& LoadMotor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadMotor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadMotor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadMotor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadAggregate_LoadMotor(BaseClass*, BaseClass*); @@ -469,53 +501,53 @@ const char* LoadMotor::debugString() const void LoadMotor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadMotor", &LoadMotor_factory); + factory_map.emplace("LoadMotor", &LoadMotor_factory); } void LoadMotor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadMotor.d", &assign_LoadMotor_d); - assign_map.emplace("cim:LoadMotor.h", &assign_LoadMotor_h); - assign_map.emplace("cim:LoadMotor.lfac", &assign_LoadMotor_lfac); - assign_map.emplace("cim:LoadMotor.lp", &assign_LoadMotor_lp); - assign_map.emplace("cim:LoadMotor.lpp", &assign_LoadMotor_lpp); - assign_map.emplace("cim:LoadMotor.ls", &assign_LoadMotor_ls); - assign_map.emplace("cim:LoadMotor.pfrac", &assign_LoadMotor_pfrac); - assign_map.emplace("cim:LoadMotor.ra", &assign_LoadMotor_ra); - assign_map.emplace("cim:LoadMotor.tbkr", &assign_LoadMotor_tbkr); - assign_map.emplace("cim:LoadMotor.tpo", &assign_LoadMotor_tpo); - assign_map.emplace("cim:LoadMotor.tppo", &assign_LoadMotor_tppo); - assign_map.emplace("cim:LoadMotor.tv", &assign_LoadMotor_tv); - assign_map.emplace("cim:LoadMotor.vt", &assign_LoadMotor_vt); + assign_map.emplace("LoadMotor.d", &assign_LoadMotor_d); + assign_map.emplace("LoadMotor.h", &assign_LoadMotor_h); + assign_map.emplace("LoadMotor.lfac", &assign_LoadMotor_lfac); + assign_map.emplace("LoadMotor.lp", &assign_LoadMotor_lp); + assign_map.emplace("LoadMotor.lpp", &assign_LoadMotor_lpp); + assign_map.emplace("LoadMotor.ls", &assign_LoadMotor_ls); + assign_map.emplace("LoadMotor.pfrac", &assign_LoadMotor_pfrac); + assign_map.emplace("LoadMotor.ra", &assign_LoadMotor_ra); + assign_map.emplace("LoadMotor.tbkr", &assign_LoadMotor_tbkr); + assign_map.emplace("LoadMotor.tpo", &assign_LoadMotor_tpo); + assign_map.emplace("LoadMotor.tppo", &assign_LoadMotor_tppo); + assign_map.emplace("LoadMotor.tv", &assign_LoadMotor_tv); + assign_map.emplace("LoadMotor.vt", &assign_LoadMotor_vt); } void LoadMotor::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadMotor.LoadAggregate", &assign_LoadMotor_LoadAggregate); + assign_map.emplace("LoadMotor.LoadAggregate", &assign_LoadMotor_LoadAggregate); } void LoadMotor::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadMotor.d", &get_LoadMotor_d); - get_map.emplace("cim:LoadMotor.h", &get_LoadMotor_h); - get_map.emplace("cim:LoadMotor.lfac", &get_LoadMotor_lfac); - get_map.emplace("cim:LoadMotor.lp", &get_LoadMotor_lp); - get_map.emplace("cim:LoadMotor.lpp", &get_LoadMotor_lpp); - get_map.emplace("cim:LoadMotor.ls", &get_LoadMotor_ls); - get_map.emplace("cim:LoadMotor.pfrac", &get_LoadMotor_pfrac); - get_map.emplace("cim:LoadMotor.ra", &get_LoadMotor_ra); - get_map.emplace("cim:LoadMotor.tbkr", &get_LoadMotor_tbkr); - get_map.emplace("cim:LoadMotor.tpo", &get_LoadMotor_tpo); - get_map.emplace("cim:LoadMotor.tppo", &get_LoadMotor_tppo); - get_map.emplace("cim:LoadMotor.tv", &get_LoadMotor_tv); - get_map.emplace("cim:LoadMotor.vt", &get_LoadMotor_vt); + get_map.emplace("LoadMotor.d", &get_LoadMotor_d); + get_map.emplace("LoadMotor.h", &get_LoadMotor_h); + get_map.emplace("LoadMotor.lfac", &get_LoadMotor_lfac); + get_map.emplace("LoadMotor.lp", &get_LoadMotor_lp); + get_map.emplace("LoadMotor.lpp", &get_LoadMotor_lpp); + get_map.emplace("LoadMotor.ls", &get_LoadMotor_ls); + get_map.emplace("LoadMotor.pfrac", &get_LoadMotor_pfrac); + get_map.emplace("LoadMotor.ra", &get_LoadMotor_ra); + get_map.emplace("LoadMotor.tbkr", &get_LoadMotor_tbkr); + get_map.emplace("LoadMotor.tpo", &get_LoadMotor_tpo); + get_map.emplace("LoadMotor.tppo", &get_LoadMotor_tppo); + get_map.emplace("LoadMotor.tv", &get_LoadMotor_tv); + get_map.emplace("LoadMotor.vt", &get_LoadMotor_vt); } void LoadMotor::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadMotor.LoadAggregate", &get_LoadMotor_LoadAggregate); + get_map.emplace("LoadMotor.LoadAggregate", &get_LoadMotor_LoadAggregate); } void LoadMotor::addEnumGetFnsToMap(std::map& get_map) const @@ -523,11 +555,25 @@ void LoadMotor::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadMotor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadMotor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadMotor::declare() { return BaseClassDefiner(LoadMotor::addConstructToMap, LoadMotor::addPrimitiveAssignFnsToMap, LoadMotor::addClassAssignFnsToMap, LoadMotor::debugName); } +std::map LoadMotor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadMotor_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadMotor.hpp b/CGMES_2.4.15_27JAN2020/LoadMotor.hpp index 66ad36cff..3bf4bea2b 100644 --- a/CGMES_2.4.15_27JAN2020/LoadMotor.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadMotor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadMotor_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadResponseCharacteristic.cpp b/CGMES_2.4.15_27JAN2020/LoadResponseCharacteristic.cpp index f4c2368ce..92e394bae 100644 --- a/CGMES_2.4.15_27JAN2020/LoadResponseCharacteristic.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadResponseCharacteristic.cpp @@ -12,43 +12,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadResponseCharacteristic(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadResponseCharacteristic.EnergyConsumer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.exponentModel", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantImpedance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pFrequencyExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pVoltageExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantImpedance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantPower", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qFrequencyExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qVoltageExponent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadResponseCharacteristic::LoadResponseCharacteristic() {} LoadResponseCharacteristic::~LoadResponseCharacteristic() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadResponseCharacteristic::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadResponseCharacteristic::getClassNamespaceUrl() const { - { "cim:LoadResponseCharacteristic.EnergyConsumer", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.exponentModel", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantCurrent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantImpedance", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantPower", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pFrequencyExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pVoltageExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantCurrent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantImpedance", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantPower", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qFrequencyExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qVoltageExponent", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadResponseCharacteristic::getPossibleProfilesForClass() const +const std::string& LoadResponseCharacteristic::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadResponseCharacteristic::getPossibleProfilesForAttributes() const +const std::list& LoadResponseCharacteristic::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadResponseCharacteristic::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadResponseCharacteristic::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadResponseCharacteristic::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergyConsumer_LoadResponse(BaseClass*, BaseClass*); @@ -396,43 +428,43 @@ const char* LoadResponseCharacteristic::debugString() const void LoadResponseCharacteristic::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadResponseCharacteristic", &LoadResponseCharacteristic_factory); + factory_map.emplace("LoadResponseCharacteristic", &LoadResponseCharacteristic_factory); } void LoadResponseCharacteristic::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadResponseCharacteristic.exponentModel", &assign_LoadResponseCharacteristic_exponentModel); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantCurrent", &assign_LoadResponseCharacteristic_pConstantCurrent); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantImpedance", &assign_LoadResponseCharacteristic_pConstantImpedance); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantPower", &assign_LoadResponseCharacteristic_pConstantPower); - assign_map.emplace("cim:LoadResponseCharacteristic.pFrequencyExponent", &assign_LoadResponseCharacteristic_pFrequencyExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.pVoltageExponent", &assign_LoadResponseCharacteristic_pVoltageExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantCurrent", &assign_LoadResponseCharacteristic_qConstantCurrent); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantImpedance", &assign_LoadResponseCharacteristic_qConstantImpedance); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantPower", &assign_LoadResponseCharacteristic_qConstantPower); - assign_map.emplace("cim:LoadResponseCharacteristic.qFrequencyExponent", &assign_LoadResponseCharacteristic_qFrequencyExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.qVoltageExponent", &assign_LoadResponseCharacteristic_qVoltageExponent); + assign_map.emplace("LoadResponseCharacteristic.exponentModel", &assign_LoadResponseCharacteristic_exponentModel); + assign_map.emplace("LoadResponseCharacteristic.pConstantCurrent", &assign_LoadResponseCharacteristic_pConstantCurrent); + assign_map.emplace("LoadResponseCharacteristic.pConstantImpedance", &assign_LoadResponseCharacteristic_pConstantImpedance); + assign_map.emplace("LoadResponseCharacteristic.pConstantPower", &assign_LoadResponseCharacteristic_pConstantPower); + assign_map.emplace("LoadResponseCharacteristic.pFrequencyExponent", &assign_LoadResponseCharacteristic_pFrequencyExponent); + assign_map.emplace("LoadResponseCharacteristic.pVoltageExponent", &assign_LoadResponseCharacteristic_pVoltageExponent); + assign_map.emplace("LoadResponseCharacteristic.qConstantCurrent", &assign_LoadResponseCharacteristic_qConstantCurrent); + assign_map.emplace("LoadResponseCharacteristic.qConstantImpedance", &assign_LoadResponseCharacteristic_qConstantImpedance); + assign_map.emplace("LoadResponseCharacteristic.qConstantPower", &assign_LoadResponseCharacteristic_qConstantPower); + assign_map.emplace("LoadResponseCharacteristic.qFrequencyExponent", &assign_LoadResponseCharacteristic_qFrequencyExponent); + assign_map.emplace("LoadResponseCharacteristic.qVoltageExponent", &assign_LoadResponseCharacteristic_qVoltageExponent); } void LoadResponseCharacteristic::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadResponseCharacteristic.EnergyConsumer", &assign_LoadResponseCharacteristic_EnergyConsumer); + assign_map.emplace("LoadResponseCharacteristic.EnergyConsumer", &assign_LoadResponseCharacteristic_EnergyConsumer); } void LoadResponseCharacteristic::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadResponseCharacteristic.exponentModel", &get_LoadResponseCharacteristic_exponentModel); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantCurrent", &get_LoadResponseCharacteristic_pConstantCurrent); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantImpedance", &get_LoadResponseCharacteristic_pConstantImpedance); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantPower", &get_LoadResponseCharacteristic_pConstantPower); - get_map.emplace("cim:LoadResponseCharacteristic.pFrequencyExponent", &get_LoadResponseCharacteristic_pFrequencyExponent); - get_map.emplace("cim:LoadResponseCharacteristic.pVoltageExponent", &get_LoadResponseCharacteristic_pVoltageExponent); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantCurrent", &get_LoadResponseCharacteristic_qConstantCurrent); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantImpedance", &get_LoadResponseCharacteristic_qConstantImpedance); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantPower", &get_LoadResponseCharacteristic_qConstantPower); - get_map.emplace("cim:LoadResponseCharacteristic.qFrequencyExponent", &get_LoadResponseCharacteristic_qFrequencyExponent); - get_map.emplace("cim:LoadResponseCharacteristic.qVoltageExponent", &get_LoadResponseCharacteristic_qVoltageExponent); + get_map.emplace("LoadResponseCharacteristic.exponentModel", &get_LoadResponseCharacteristic_exponentModel); + get_map.emplace("LoadResponseCharacteristic.pConstantCurrent", &get_LoadResponseCharacteristic_pConstantCurrent); + get_map.emplace("LoadResponseCharacteristic.pConstantImpedance", &get_LoadResponseCharacteristic_pConstantImpedance); + get_map.emplace("LoadResponseCharacteristic.pConstantPower", &get_LoadResponseCharacteristic_pConstantPower); + get_map.emplace("LoadResponseCharacteristic.pFrequencyExponent", &get_LoadResponseCharacteristic_pFrequencyExponent); + get_map.emplace("LoadResponseCharacteristic.pVoltageExponent", &get_LoadResponseCharacteristic_pVoltageExponent); + get_map.emplace("LoadResponseCharacteristic.qConstantCurrent", &get_LoadResponseCharacteristic_qConstantCurrent); + get_map.emplace("LoadResponseCharacteristic.qConstantImpedance", &get_LoadResponseCharacteristic_qConstantImpedance); + get_map.emplace("LoadResponseCharacteristic.qConstantPower", &get_LoadResponseCharacteristic_qConstantPower); + get_map.emplace("LoadResponseCharacteristic.qFrequencyExponent", &get_LoadResponseCharacteristic_qFrequencyExponent); + get_map.emplace("LoadResponseCharacteristic.qVoltageExponent", &get_LoadResponseCharacteristic_qVoltageExponent); } void LoadResponseCharacteristic::addClassGetFnsToMap(std::map& get_map) const @@ -445,11 +477,25 @@ void LoadResponseCharacteristic::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner LoadResponseCharacteristic::declare() { return BaseClassDefiner(LoadResponseCharacteristic::addConstructToMap, LoadResponseCharacteristic::addPrimitiveAssignFnsToMap, LoadResponseCharacteristic::addClassAssignFnsToMap, LoadResponseCharacteristic::debugName); } +std::map LoadResponseCharacteristic::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadResponseCharacteristic_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadResponseCharacteristic.hpp b/CGMES_2.4.15_27JAN2020/LoadResponseCharacteristic.hpp index 48e1ab3ae..72d7f6099 100644 --- a/CGMES_2.4.15_27JAN2020/LoadResponseCharacteristic.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadResponseCharacteristic.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Simple_Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadResponseCharacteristic_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadStatic.cpp b/CGMES_2.4.15_27JAN2020/LoadStatic.cpp index 1ae8c3ffb..ea16665cd 100644 --- a/CGMES_2.4.15_27JAN2020/LoadStatic.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadStatic.cpp @@ -12,49 +12,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadStatic(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadStatic.LoadAggregate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kpf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.kqf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadStatic.staticLoadModelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadStatic::LoadStatic() : LoadAggregate(nullptr) {} LoadStatic::~LoadStatic() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadStatic::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadStatic::getClassNamespaceUrl() const { - { "cim:LoadStatic.LoadAggregate", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp4", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kpf", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq4", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kqf", { CGMESProfile::DY, } }, - { "cim:LoadStatic.staticLoadModelType", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadStatic::getPossibleProfilesForClass() const +const std::string& LoadStatic::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadStatic::getPossibleProfilesForAttributes() const +const std::list& LoadStatic::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadStatic::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadStatic::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadStatic::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadAggregate_LoadStatic(BaseClass*, BaseClass*); @@ -589,66 +621,72 @@ const char* LoadStatic::debugString() const void LoadStatic::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadStatic", &LoadStatic_factory); + factory_map.emplace("LoadStatic", &LoadStatic_factory); } void LoadStatic::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadStatic.ep1", &assign_LoadStatic_ep1); - assign_map.emplace("cim:LoadStatic.ep2", &assign_LoadStatic_ep2); - assign_map.emplace("cim:LoadStatic.ep3", &assign_LoadStatic_ep3); - assign_map.emplace("cim:LoadStatic.eq1", &assign_LoadStatic_eq1); - assign_map.emplace("cim:LoadStatic.eq2", &assign_LoadStatic_eq2); - assign_map.emplace("cim:LoadStatic.eq3", &assign_LoadStatic_eq3); - assign_map.emplace("cim:LoadStatic.kp1", &assign_LoadStatic_kp1); - assign_map.emplace("cim:LoadStatic.kp2", &assign_LoadStatic_kp2); - assign_map.emplace("cim:LoadStatic.kp3", &assign_LoadStatic_kp3); - assign_map.emplace("cim:LoadStatic.kp4", &assign_LoadStatic_kp4); - assign_map.emplace("cim:LoadStatic.kpf", &assign_LoadStatic_kpf); - assign_map.emplace("cim:LoadStatic.kq1", &assign_LoadStatic_kq1); - assign_map.emplace("cim:LoadStatic.kq2", &assign_LoadStatic_kq2); - assign_map.emplace("cim:LoadStatic.kq3", &assign_LoadStatic_kq3); - assign_map.emplace("cim:LoadStatic.kq4", &assign_LoadStatic_kq4); - assign_map.emplace("cim:LoadStatic.kqf", &assign_LoadStatic_kqf); - assign_map.emplace("cim:LoadStatic.staticLoadModelType", &assign_LoadStatic_staticLoadModelType); + assign_map.emplace("LoadStatic.ep1", &assign_LoadStatic_ep1); + assign_map.emplace("LoadStatic.ep2", &assign_LoadStatic_ep2); + assign_map.emplace("LoadStatic.ep3", &assign_LoadStatic_ep3); + assign_map.emplace("LoadStatic.eq1", &assign_LoadStatic_eq1); + assign_map.emplace("LoadStatic.eq2", &assign_LoadStatic_eq2); + assign_map.emplace("LoadStatic.eq3", &assign_LoadStatic_eq3); + assign_map.emplace("LoadStatic.kp1", &assign_LoadStatic_kp1); + assign_map.emplace("LoadStatic.kp2", &assign_LoadStatic_kp2); + assign_map.emplace("LoadStatic.kp3", &assign_LoadStatic_kp3); + assign_map.emplace("LoadStatic.kp4", &assign_LoadStatic_kp4); + assign_map.emplace("LoadStatic.kpf", &assign_LoadStatic_kpf); + assign_map.emplace("LoadStatic.kq1", &assign_LoadStatic_kq1); + assign_map.emplace("LoadStatic.kq2", &assign_LoadStatic_kq2); + assign_map.emplace("LoadStatic.kq3", &assign_LoadStatic_kq3); + assign_map.emplace("LoadStatic.kq4", &assign_LoadStatic_kq4); + assign_map.emplace("LoadStatic.kqf", &assign_LoadStatic_kqf); + assign_map.emplace("LoadStatic.staticLoadModelType", &assign_LoadStatic_staticLoadModelType); } void LoadStatic::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadStatic.LoadAggregate", &assign_LoadStatic_LoadAggregate); + assign_map.emplace("LoadStatic.LoadAggregate", &assign_LoadStatic_LoadAggregate); } void LoadStatic::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.ep1", &get_LoadStatic_ep1); - get_map.emplace("cim:LoadStatic.ep2", &get_LoadStatic_ep2); - get_map.emplace("cim:LoadStatic.ep3", &get_LoadStatic_ep3); - get_map.emplace("cim:LoadStatic.eq1", &get_LoadStatic_eq1); - get_map.emplace("cim:LoadStatic.eq2", &get_LoadStatic_eq2); - get_map.emplace("cim:LoadStatic.eq3", &get_LoadStatic_eq3); - get_map.emplace("cim:LoadStatic.kp1", &get_LoadStatic_kp1); - get_map.emplace("cim:LoadStatic.kp2", &get_LoadStatic_kp2); - get_map.emplace("cim:LoadStatic.kp3", &get_LoadStatic_kp3); - get_map.emplace("cim:LoadStatic.kp4", &get_LoadStatic_kp4); - get_map.emplace("cim:LoadStatic.kpf", &get_LoadStatic_kpf); - get_map.emplace("cim:LoadStatic.kq1", &get_LoadStatic_kq1); - get_map.emplace("cim:LoadStatic.kq2", &get_LoadStatic_kq2); - get_map.emplace("cim:LoadStatic.kq3", &get_LoadStatic_kq3); - get_map.emplace("cim:LoadStatic.kq4", &get_LoadStatic_kq4); - get_map.emplace("cim:LoadStatic.kqf", &get_LoadStatic_kqf); + get_map.emplace("LoadStatic.ep1", &get_LoadStatic_ep1); + get_map.emplace("LoadStatic.ep2", &get_LoadStatic_ep2); + get_map.emplace("LoadStatic.ep3", &get_LoadStatic_ep3); + get_map.emplace("LoadStatic.eq1", &get_LoadStatic_eq1); + get_map.emplace("LoadStatic.eq2", &get_LoadStatic_eq2); + get_map.emplace("LoadStatic.eq3", &get_LoadStatic_eq3); + get_map.emplace("LoadStatic.kp1", &get_LoadStatic_kp1); + get_map.emplace("LoadStatic.kp2", &get_LoadStatic_kp2); + get_map.emplace("LoadStatic.kp3", &get_LoadStatic_kp3); + get_map.emplace("LoadStatic.kp4", &get_LoadStatic_kp4); + get_map.emplace("LoadStatic.kpf", &get_LoadStatic_kpf); + get_map.emplace("LoadStatic.kq1", &get_LoadStatic_kq1); + get_map.emplace("LoadStatic.kq2", &get_LoadStatic_kq2); + get_map.emplace("LoadStatic.kq3", &get_LoadStatic_kq3); + get_map.emplace("LoadStatic.kq4", &get_LoadStatic_kq4); + get_map.emplace("LoadStatic.kqf", &get_LoadStatic_kqf); } void LoadStatic::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.LoadAggregate", &get_LoadStatic_LoadAggregate); + get_map.emplace("LoadStatic.LoadAggregate", &get_LoadStatic_LoadAggregate); } void LoadStatic::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.staticLoadModelType", &get_LoadStatic_staticLoadModelType); + get_map.emplace("LoadStatic.staticLoadModelType", &get_LoadStatic_staticLoadModelType); +} + +bool LoadStatic::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadStatic" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner LoadStatic::declare() @@ -656,6 +694,14 @@ const BaseClassDefiner LoadStatic::declare() return BaseClassDefiner(LoadStatic::addConstructToMap, LoadStatic::addPrimitiveAssignFnsToMap, LoadStatic::addClassAssignFnsToMap, LoadStatic::debugName); } +std::map LoadStatic::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadStatic_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadStatic.hpp b/CGMES_2.4.15_27JAN2020/LoadStatic.hpp index 7cea8b85f..a8def85f7 100644 --- a/CGMES_2.4.15_27JAN2020/LoadStatic.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadStatic.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" #include "StaticLoadModelKind.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadStatic_factory(); diff --git a/CGMES_2.4.15_27JAN2020/LoadUserDefined.cpp b/CGMES_2.4.15_27JAN2020/LoadUserDefined.cpp index ad0a491aa..2f53daa3f 100644 --- a/CGMES_2.4.15_27JAN2020/LoadUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/LoadUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "LoadUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadUserDefined::LoadUserDefined() {} LoadUserDefined::~LoadUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadUserDefined::getClassNamespaceUrl() const { - { "cim:LoadUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:LoadUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadUserDefined::getPossibleProfilesForClass() const +const std::string& LoadUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadUserDefined::getPossibleProfilesForAttributes() const +const std::list& LoadUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_LoadUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* LoadUserDefined::debugString() const void LoadUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadUserDefined", &LoadUserDefined_factory); + factory_map.emplace("LoadUserDefined", &LoadUserDefined_factory); } void LoadUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadUserDefined.proprietary", &assign_LoadUserDefined_proprietary); + assign_map.emplace("LoadUserDefined.proprietary", &assign_LoadUserDefined_proprietary); } void LoadUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadUserDefined.ProprietaryParameterDynamics", &assign_LoadUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("LoadUserDefined.ProprietaryParameterDynamics", &assign_LoadUserDefined_ProprietaryParameterDynamics); } void LoadUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadUserDefined.proprietary", &get_LoadUserDefined_proprietary); + get_map.emplace("LoadUserDefined.proprietary", &get_LoadUserDefined_proprietary); } void LoadUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void LoadUserDefined::addEnumGetFnsToMap(std::map& ge LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadUserDefined::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadUserDefined" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadUserDefined::declare() { return BaseClassDefiner(LoadUserDefined::addConstructToMap, LoadUserDefined::addPrimitiveAssignFnsToMap, LoadUserDefined::addClassAssignFnsToMap, LoadUserDefined::debugName); } +std::map LoadUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/LoadUserDefined.hpp b/CGMES_2.4.15_27JAN2020/LoadUserDefined.hpp index d9bea6707..b6de8e825 100644 --- a/CGMES_2.4.15_27JAN2020/LoadUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/LoadUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Location.cpp b/CGMES_2.4.15_27JAN2020/Location.cpp index d57fd2700..bc0ed5451 100644 --- a/CGMES_2.4.15_27JAN2020/Location.cpp +++ b/CGMES_2.4.15_27JAN2020/Location.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Location(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Location.CoordinateSystem", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "Location.PositionPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "Location.PowerSystemResources", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + Location::Location() : CoordinateSystem(nullptr), PowerSystemResources(nullptr) {} Location::~Location() {} -static const std::list PossibleProfilesForClass = +const std::list& Location::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Location::getClassNamespaceUrl() const { - { "cim:Location.CoordinateSystem", { CGMESProfile::GL, } }, - { "cim:Location.PositionPoints", { CGMESProfile::GL, } }, - { "cim:Location.PowerSystemResources", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Location::getPossibleProfilesForClass() const +const std::string& Location::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Location::getPossibleProfilesForAttributes() const +const std::list& Location::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Location::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Location::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Location::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CoordinateSystem_Location(BaseClass*, BaseClass*); @@ -132,7 +164,7 @@ const char* Location::debugString() const void Location::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Location", &Location_factory); + factory_map.emplace("Location", &Location_factory); } void Location::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -141,9 +173,9 @@ void Location::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Location.CoordinateSystem", &assign_Location_CoordinateSystem); - assign_map.emplace("cim:Location.PositionPoints", &assign_Location_PositionPoints); - assign_map.emplace("cim:Location.PowerSystemResources", &assign_Location_PowerSystemResources); + assign_map.emplace("Location.CoordinateSystem", &assign_Location_CoordinateSystem); + assign_map.emplace("Location.PositionPoints", &assign_Location_PositionPoints); + assign_map.emplace("Location.PowerSystemResources", &assign_Location_PowerSystemResources); } void Location::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -154,8 +186,8 @@ void Location::addPrimitiveGetFnsToMap(std::map& get_ void Location::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Location.CoordinateSystem", &get_Location_CoordinateSystem); - get_map.emplace("cim:Location.PowerSystemResources", &get_Location_PowerSystemResources); + get_map.emplace("Location.CoordinateSystem", &get_Location_CoordinateSystem); + get_map.emplace("Location.PowerSystemResources", &get_Location_PowerSystemResources); } void Location::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void Location::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Location::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Location" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Location::declare() { return BaseClassDefiner(Location::addConstructToMap, Location::addPrimitiveAssignFnsToMap, Location::addClassAssignFnsToMap, Location::debugName); } +std::map Location::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Location_factory() diff --git a/CGMES_2.4.15_27JAN2020/Location.hpp b/CGMES_2.4.15_27JAN2020/Location.hpp index 4d10bdb15..51bf89bd6 100644 --- a/CGMES_2.4.15_27JAN2020/Location.hpp +++ b/CGMES_2.4.15_27JAN2020/Location.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Location_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Measurement.cpp b/CGMES_2.4.15_27JAN2020/Measurement.cpp index 87a4ea88d..1aff8a057 100644 --- a/CGMES_2.4.15_27JAN2020/Measurement.cpp +++ b/CGMES_2.4.15_27JAN2020/Measurement.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Measurement(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Measurement.PowerSystemResource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.measurementType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.phases", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.unitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Measurement.unitSymbol", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Measurement::Measurement() : PowerSystemResource(nullptr), Terminal(nullptr) {} Measurement::~Measurement() {} -static const std::list PossibleProfilesForClass = +const std::list& Measurement::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Measurement::getClassNamespaceUrl() const { - { "cim:Measurement.PowerSystemResource", { CGMESProfile::EQ, } }, - { "cim:Measurement.Terminal", { CGMESProfile::EQ, } }, - { "cim:Measurement.measurementType", { CGMESProfile::EQ, } }, - { "cim:Measurement.phases", { CGMESProfile::EQ, } }, - { "cim:Measurement.unitMultiplier", { CGMESProfile::EQ, } }, - { "cim:Measurement.unitSymbol", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Measurement::getPossibleProfilesForClass() const +const std::string& Measurement::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Measurement::getPossibleProfilesForAttributes() const +const std::list& Measurement::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Measurement::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Measurement::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Measurement::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerSystemResource_Measurements(BaseClass*, BaseClass*); @@ -232,42 +264,48 @@ const char* Measurement::debugString() const void Measurement::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Measurement", &Measurement_factory); + factory_map.emplace("Measurement", &Measurement_factory); } void Measurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Measurement.measurementType", &assign_Measurement_measurementType); - assign_map.emplace("cim:Measurement.phases", &assign_Measurement_phases); - assign_map.emplace("cim:Measurement.unitMultiplier", &assign_Measurement_unitMultiplier); - assign_map.emplace("cim:Measurement.unitSymbol", &assign_Measurement_unitSymbol); + assign_map.emplace("Measurement.measurementType", &assign_Measurement_measurementType); + assign_map.emplace("Measurement.phases", &assign_Measurement_phases); + assign_map.emplace("Measurement.unitMultiplier", &assign_Measurement_unitMultiplier); + assign_map.emplace("Measurement.unitSymbol", &assign_Measurement_unitSymbol); } void Measurement::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Measurement.PowerSystemResource", &assign_Measurement_PowerSystemResource); - assign_map.emplace("cim:Measurement.Terminal", &assign_Measurement_Terminal); + assign_map.emplace("Measurement.PowerSystemResource", &assign_Measurement_PowerSystemResource); + assign_map.emplace("Measurement.Terminal", &assign_Measurement_Terminal); } void Measurement::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.measurementType", &get_Measurement_measurementType); + get_map.emplace("Measurement.measurementType", &get_Measurement_measurementType); } void Measurement::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.PowerSystemResource", &get_Measurement_PowerSystemResource); - get_map.emplace("cim:Measurement.Terminal", &get_Measurement_Terminal); + get_map.emplace("Measurement.PowerSystemResource", &get_Measurement_PowerSystemResource); + get_map.emplace("Measurement.Terminal", &get_Measurement_Terminal); } void Measurement::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.phases", &get_Measurement_phases); - get_map.emplace("cim:Measurement.unitMultiplier", &get_Measurement_unitMultiplier); - get_map.emplace("cim:Measurement.unitSymbol", &get_Measurement_unitSymbol); + get_map.emplace("Measurement.phases", &get_Measurement_phases); + get_map.emplace("Measurement.unitMultiplier", &get_Measurement_unitMultiplier); + get_map.emplace("Measurement.unitSymbol", &get_Measurement_unitSymbol); +} + +bool Measurement::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Measurement" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Measurement::declare() @@ -275,6 +313,14 @@ const BaseClassDefiner Measurement::declare() return BaseClassDefiner(Measurement::addConstructToMap, Measurement::addPrimitiveAssignFnsToMap, Measurement::addClassAssignFnsToMap, Measurement::debugName); } +std::map Measurement::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Measurement_factory() diff --git a/CGMES_2.4.15_27JAN2020/Measurement.hpp b/CGMES_2.4.15_27JAN2020/Measurement.hpp index 60b15fbaf..614134b99 100644 --- a/CGMES_2.4.15_27JAN2020/Measurement.hpp +++ b/CGMES_2.4.15_27JAN2020/Measurement.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PhaseCode.hpp" #include "String.hpp" #include "UnitMultiplier.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Measurement_factory(); diff --git a/CGMES_2.4.15_27JAN2020/MeasurementValue.cpp b/CGMES_2.4.15_27JAN2020/MeasurementValue.cpp index ed6bb5624..ad0d43310 100644 --- a/CGMES_2.4.15_27JAN2020/MeasurementValue.cpp +++ b/CGMES_2.4.15_27JAN2020/MeasurementValue.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValue.MeasurementValueQuality", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.MeasurementValueSource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.sensorAccuracy", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MeasurementValue.timeStamp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValue::MeasurementValue() : MeasurementValueQuality(nullptr), MeasurementValueSource(nullptr) {} MeasurementValue::~MeasurementValue() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValue::getClassNamespaceUrl() const { - { "cim:MeasurementValue.MeasurementValueQuality", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.MeasurementValueSource", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.sensorAccuracy", { CGMESProfile::EQ, } }, - { "cim:MeasurementValue.timeStamp", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValue::getPossibleProfilesForClass() const +const std::string& MeasurementValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValue::getPossibleProfilesForAttributes() const +const std::list& MeasurementValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValueQuality_MeasurementValue(BaseClass*, BaseClass*); @@ -159,32 +191,32 @@ const char* MeasurementValue::debugString() const void MeasurementValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValue", &MeasurementValue_factory); + factory_map.emplace("MeasurementValue", &MeasurementValue_factory); } void MeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValue.sensorAccuracy", &assign_MeasurementValue_sensorAccuracy); - assign_map.emplace("cim:MeasurementValue.timeStamp", &assign_MeasurementValue_timeStamp); + assign_map.emplace("MeasurementValue.sensorAccuracy", &assign_MeasurementValue_sensorAccuracy); + assign_map.emplace("MeasurementValue.timeStamp", &assign_MeasurementValue_timeStamp); } void MeasurementValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValue.MeasurementValueQuality", &assign_MeasurementValue_MeasurementValueQuality); - assign_map.emplace("cim:MeasurementValue.MeasurementValueSource", &assign_MeasurementValue_MeasurementValueSource); + assign_map.emplace("MeasurementValue.MeasurementValueQuality", &assign_MeasurementValue_MeasurementValueQuality); + assign_map.emplace("MeasurementValue.MeasurementValueSource", &assign_MeasurementValue_MeasurementValueSource); } void MeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValue.sensorAccuracy", &get_MeasurementValue_sensorAccuracy); - get_map.emplace("cim:MeasurementValue.timeStamp", &get_MeasurementValue_timeStamp); + get_map.emplace("MeasurementValue.sensorAccuracy", &get_MeasurementValue_sensorAccuracy); + get_map.emplace("MeasurementValue.timeStamp", &get_MeasurementValue_timeStamp); } void MeasurementValue::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValue.MeasurementValueSource", &get_MeasurementValue_MeasurementValueSource); + get_map.emplace("MeasurementValue.MeasurementValueSource", &get_MeasurementValue_MeasurementValueSource); } void MeasurementValue::addEnumGetFnsToMap(std::map& get_map) const @@ -192,11 +224,25 @@ void MeasurementValue::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool MeasurementValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MeasurementValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValue::declare() { return BaseClassDefiner(MeasurementValue::addConstructToMap, MeasurementValue::addPrimitiveAssignFnsToMap, MeasurementValue::addClassAssignFnsToMap, MeasurementValue::debugName); } +std::map MeasurementValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValue_factory() diff --git a/CGMES_2.4.15_27JAN2020/MeasurementValue.hpp b/CGMES_2.4.15_27JAN2020/MeasurementValue.hpp index 5e4745ae7..78ffcfb9b 100644 --- a/CGMES_2.4.15_27JAN2020/MeasurementValue.hpp +++ b/CGMES_2.4.15_27JAN2020/MeasurementValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "PerCent.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValue_factory(); diff --git a/CGMES_2.4.15_27JAN2020/MeasurementValueQuality.cpp b/CGMES_2.4.15_27JAN2020/MeasurementValueQuality.cpp index 2137766e7..fbb0d686d 100644 --- a/CGMES_2.4.15_27JAN2020/MeasurementValueQuality.cpp +++ b/CGMES_2.4.15_27JAN2020/MeasurementValueQuality.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValueQuality(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValueQuality.MeasurementValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValueQuality::MeasurementValueQuality() : MeasurementValue(nullptr) {} MeasurementValueQuality::~MeasurementValueQuality() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValueQuality::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValueQuality::getClassNamespaceUrl() const { - { "cim:MeasurementValueQuality.MeasurementValue", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValueQuality::getPossibleProfilesForClass() const +const std::string& MeasurementValueQuality::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValueQuality::getPossibleProfilesForAttributes() const +const std::list& MeasurementValueQuality::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Quality61850::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValueQuality::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValueQuality::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValueQuality::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValue_MeasurementValueQuality(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* MeasurementValueQuality::debugString() const void MeasurementValueQuality::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValueQuality", &MeasurementValueQuality_factory); + factory_map.emplace("MeasurementValueQuality", &MeasurementValueQuality_factory); } void MeasurementValueQuality::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void MeasurementValueQuality::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValueQuality.MeasurementValue", &assign_MeasurementValueQuality_MeasurementValue); + assign_map.emplace("MeasurementValueQuality.MeasurementValue", &assign_MeasurementValueQuality_MeasurementValue); } void MeasurementValueQuality::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void MeasurementValueQuality::addPrimitiveGetFnsToMap(std::map& get_map) const { Quality61850::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValueQuality.MeasurementValue", &get_MeasurementValueQuality_MeasurementValue); + get_map.emplace("MeasurementValueQuality.MeasurementValue", &get_MeasurementValueQuality_MeasurementValue); } void MeasurementValueQuality::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void MeasurementValueQuality::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValueQuality::declare() { return BaseClassDefiner(MeasurementValueQuality::addConstructToMap, MeasurementValueQuality::addPrimitiveAssignFnsToMap, MeasurementValueQuality::addClassAssignFnsToMap, MeasurementValueQuality::debugName); } +std::map MeasurementValueQuality::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Quality61850::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValueQuality_factory() diff --git a/CGMES_2.4.15_27JAN2020/MeasurementValueQuality.hpp b/CGMES_2.4.15_27JAN2020/MeasurementValueQuality.hpp index bc0991186..c182f0a94 100644 --- a/CGMES_2.4.15_27JAN2020/MeasurementValueQuality.hpp +++ b/CGMES_2.4.15_27JAN2020/MeasurementValueQuality.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Quality61850.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValueQuality_factory(); diff --git a/CGMES_2.4.15_27JAN2020/MeasurementValueSource.cpp b/CGMES_2.4.15_27JAN2020/MeasurementValueSource.cpp index b276344bf..caf90c82a 100644 --- a/CGMES_2.4.15_27JAN2020/MeasurementValueSource.cpp +++ b/CGMES_2.4.15_27JAN2020/MeasurementValueSource.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValueSource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValueSource.MeasurementValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValueSource::MeasurementValueSource() {} MeasurementValueSource::~MeasurementValueSource() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValueSource::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValueSource::getClassNamespaceUrl() const { - { "cim:MeasurementValueSource.MeasurementValues", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValueSource::getPossibleProfilesForClass() const +const std::string& MeasurementValueSource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValueSource::getPossibleProfilesForAttributes() const +const std::list& MeasurementValueSource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValueSource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValueSource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValueSource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValue_MeasurementValueSource(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* MeasurementValueSource::debugString() const void MeasurementValueSource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValueSource", &MeasurementValueSource_factory); + factory_map.emplace("MeasurementValueSource", &MeasurementValueSource_factory); } void MeasurementValueSource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void MeasurementValueSource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValueSource.MeasurementValues", &assign_MeasurementValueSource_MeasurementValues); + assign_map.emplace("MeasurementValueSource.MeasurementValues", &assign_MeasurementValueSource_MeasurementValues); } void MeasurementValueSource::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void MeasurementValueSource::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValueSource::declare() { return BaseClassDefiner(MeasurementValueSource::addConstructToMap, MeasurementValueSource::addPrimitiveAssignFnsToMap, MeasurementValueSource::addClassAssignFnsToMap, MeasurementValueSource::debugName); } +std::map MeasurementValueSource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValueSource_factory() diff --git a/CGMES_2.4.15_27JAN2020/MeasurementValueSource.hpp b/CGMES_2.4.15_27JAN2020/MeasurementValueSource.hpp index 3411d326b..c61ca176e 100644 --- a/CGMES_2.4.15_27JAN2020/MeasurementValueSource.hpp +++ b/CGMES_2.4.15_27JAN2020/MeasurementValueSource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValueSource_factory(); diff --git a/CGMES_2.4.15_27JAN2020/MechLoad1.cpp b/CGMES_2.4.15_27JAN2020/MechLoad1.cpp index 7016b3c19..b043b7472 100644 --- a/CGMES_2.4.15_27JAN2020/MechLoad1.cpp +++ b/CGMES_2.4.15_27JAN2020/MechLoad1.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechLoad1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechLoad1.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechLoad1.e", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechLoad1::MechLoad1() {} MechLoad1::~MechLoad1() {} -static const std::list PossibleProfilesForClass = +const std::list& MechLoad1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechLoad1::getClassNamespaceUrl() const { - { "cim:MechLoad1.a", { CGMESProfile::DY, } }, - { "cim:MechLoad1.b", { CGMESProfile::DY, } }, - { "cim:MechLoad1.d", { CGMESProfile::DY, } }, - { "cim:MechLoad1.e", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechLoad1::getPossibleProfilesForClass() const +const std::string& MechLoad1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechLoad1::getPossibleProfilesForAttributes() const +const std::list& MechLoad1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MechanicalLoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechLoad1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechLoad1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechLoad1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MechLoad1_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* MechLoad1::debugString() const void MechLoad1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechLoad1", &MechLoad1_factory); + factory_map.emplace("MechLoad1", &MechLoad1_factory); } void MechLoad1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechLoad1.a", &assign_MechLoad1_a); - assign_map.emplace("cim:MechLoad1.b", &assign_MechLoad1_b); - assign_map.emplace("cim:MechLoad1.d", &assign_MechLoad1_d); - assign_map.emplace("cim:MechLoad1.e", &assign_MechLoad1_e); + assign_map.emplace("MechLoad1.a", &assign_MechLoad1_a); + assign_map.emplace("MechLoad1.b", &assign_MechLoad1_b); + assign_map.emplace("MechLoad1.d", &assign_MechLoad1_d); + assign_map.emplace("MechLoad1.e", &assign_MechLoad1_e); } void MechLoad1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void MechLoad1::addClassAssignFnsToMap(std::unordered_map& get_map) const { MechanicalLoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MechLoad1.a", &get_MechLoad1_a); - get_map.emplace("cim:MechLoad1.b", &get_MechLoad1_b); - get_map.emplace("cim:MechLoad1.d", &get_MechLoad1_d); - get_map.emplace("cim:MechLoad1.e", &get_MechLoad1_e); + get_map.emplace("MechLoad1.a", &get_MechLoad1_a); + get_map.emplace("MechLoad1.b", &get_MechLoad1_b); + get_map.emplace("MechLoad1.d", &get_MechLoad1_d); + get_map.emplace("MechLoad1.e", &get_MechLoad1_e); } void MechLoad1::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void MechLoad1::addEnumGetFnsToMap(std::map& get_map) MechanicalLoadDynamics::addEnumGetFnsToMap(get_map); } +bool MechLoad1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MechLoad1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MechLoad1::declare() { return BaseClassDefiner(MechLoad1::addConstructToMap, MechLoad1::addPrimitiveAssignFnsToMap, MechLoad1::addClassAssignFnsToMap, MechLoad1::debugName); } +std::map MechLoad1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MechanicalLoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechLoad1_factory() diff --git a/CGMES_2.4.15_27JAN2020/MechLoad1.hpp b/CGMES_2.4.15_27JAN2020/MechLoad1.hpp index 9b16f17c2..96d802554 100644 --- a/CGMES_2.4.15_27JAN2020/MechLoad1.hpp +++ b/CGMES_2.4.15_27JAN2020/MechLoad1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MechanicalLoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -40,8 +41,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -49,7 +57,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechLoad1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/MechanicalLoadDynamics.cpp b/CGMES_2.4.15_27JAN2020/MechanicalLoadDynamics.cpp index dc44cac2d..34eec6f9d 100644 --- a/CGMES_2.4.15_27JAN2020/MechanicalLoadDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/MechanicalLoadDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechanicalLoadDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechanicalLoadDynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechanicalLoadDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechanicalLoadDynamics::MechanicalLoadDynamics() : AsynchronousMachineDynamics(nullptr), SynchronousMachineDynamics(nullptr) {} MechanicalLoadDynamics::~MechanicalLoadDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& MechanicalLoadDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechanicalLoadDynamics::getClassNamespaceUrl() const { - { "cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:MechanicalLoadDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechanicalLoadDynamics::getPossibleProfilesForClass() const +const std::string& MechanicalLoadDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechanicalLoadDynamics::getPossibleProfilesForAttributes() const +const std::list& MechanicalLoadDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechanicalLoadDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechanicalLoadDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechanicalLoadDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_MechanicalLoadDynamics(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* MechanicalLoadDynamics::debugString() const void MechanicalLoadDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechanicalLoadDynamics", &MechanicalLoadDynamics_factory); + factory_map.emplace("MechanicalLoadDynamics", &MechanicalLoadDynamics_factory); } void MechanicalLoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void MechanicalLoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", &assign_MechanicalLoadDynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:MechanicalLoadDynamics.SynchronousMachineDynamics", &assign_MechanicalLoadDynamics_SynchronousMachineDynamics); + assign_map.emplace("MechanicalLoadDynamics.AsynchronousMachineDynamics", &assign_MechanicalLoadDynamics_AsynchronousMachineDynamics); + assign_map.emplace("MechanicalLoadDynamics.SynchronousMachineDynamics", &assign_MechanicalLoadDynamics_SynchronousMachineDynamics); } void MechanicalLoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void MechanicalLoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", &get_MechanicalLoadDynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:MechanicalLoadDynamics.SynchronousMachineDynamics", &get_MechanicalLoadDynamics_SynchronousMachineDynamics); + get_map.emplace("MechanicalLoadDynamics.AsynchronousMachineDynamics", &get_MechanicalLoadDynamics_AsynchronousMachineDynamics); + get_map.emplace("MechanicalLoadDynamics.SynchronousMachineDynamics", &get_MechanicalLoadDynamics_SynchronousMachineDynamics); } void MechanicalLoadDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void MechanicalLoadDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MechanicalLoadDynamics::declare() { return BaseClassDefiner(MechanicalLoadDynamics::addConstructToMap, MechanicalLoadDynamics::addPrimitiveAssignFnsToMap, MechanicalLoadDynamics::addClassAssignFnsToMap, MechanicalLoadDynamics::debugName); } +std::map MechanicalLoadDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechanicalLoadDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/MechanicalLoadDynamics.hpp b/CGMES_2.4.15_27JAN2020/MechanicalLoadDynamics.hpp index 57b474f87..e7b0679fc 100644 --- a/CGMES_2.4.15_27JAN2020/MechanicalLoadDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/MechanicalLoadDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechanicalLoadDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/MechanicalLoadUserDefined.cpp b/CGMES_2.4.15_27JAN2020/MechanicalLoadUserDefined.cpp index 0fcdb6dee..17264b942 100644 --- a/CGMES_2.4.15_27JAN2020/MechanicalLoadUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/MechanicalLoadUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechanicalLoadUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechanicalLoadUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "MechanicalLoadUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechanicalLoadUserDefined::MechanicalLoadUserDefined() {} MechanicalLoadUserDefined::~MechanicalLoadUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& MechanicalLoadUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechanicalLoadUserDefined::getClassNamespaceUrl() const { - { "cim:MechanicalLoadUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:MechanicalLoadUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechanicalLoadUserDefined::getPossibleProfilesForClass() const +const std::string& MechanicalLoadUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechanicalLoadUserDefined::getPossibleProfilesForAttributes() const +const std::list& MechanicalLoadUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MechanicalLoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechanicalLoadUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechanicalLoadUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechanicalLoadUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* MechanicalLoadUserDefined::debugString() const void MechanicalLoadUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechanicalLoadUserDefined", &MechanicalLoadUserDefined_factory); + factory_map.emplace("MechanicalLoadUserDefined", &MechanicalLoadUserDefined_factory); } void MechanicalLoadUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadUserDefined.proprietary", &assign_MechanicalLoadUserDefined_proprietary); + assign_map.emplace("MechanicalLoadUserDefined.proprietary", &assign_MechanicalLoadUserDefined_proprietary); } void MechanicalLoadUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadUserDefined.ProprietaryParameterDynamics", &assign_MechanicalLoadUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("MechanicalLoadUserDefined.ProprietaryParameterDynamics", &assign_MechanicalLoadUserDefined_ProprietaryParameterDynamics); } void MechanicalLoadUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { MechanicalLoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MechanicalLoadUserDefined.proprietary", &get_MechanicalLoadUserDefined_proprietary); + get_map.emplace("MechanicalLoadUserDefined.proprietary", &get_MechanicalLoadUserDefined_proprietary); } void MechanicalLoadUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void MechanicalLoadUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MechanicalLoadUserDefined::declare() { return BaseClassDefiner(MechanicalLoadUserDefined::addConstructToMap, MechanicalLoadUserDefined::addPrimitiveAssignFnsToMap, MechanicalLoadUserDefined::addClassAssignFnsToMap, MechanicalLoadUserDefined::debugName); } +std::map MechanicalLoadUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MechanicalLoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechanicalLoadUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/MechanicalLoadUserDefined.hpp b/CGMES_2.4.15_27JAN2020/MechanicalLoadUserDefined.hpp index 474c01c3d..aa86fd0a6 100644 --- a/CGMES_2.4.15_27JAN2020/MechanicalLoadUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/MechanicalLoadUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MechanicalLoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechanicalLoadUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/MutualCoupling.cpp b/CGMES_2.4.15_27JAN2020/MutualCoupling.cpp index 0b97f5f70..1a199f9e4 100644 --- a/CGMES_2.4.15_27JAN2020/MutualCoupling.cpp +++ b/CGMES_2.4.15_27JAN2020/MutualCoupling.cpp @@ -12,41 +12,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MutualCoupling(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MutualCoupling.First_Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.Second_Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.b0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance21", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.distance22", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.g0ch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "MutualCoupling.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + MutualCoupling::MutualCoupling() : First_Terminal(nullptr), Second_Terminal(nullptr) {} MutualCoupling::~MutualCoupling() {} -static const std::list PossibleProfilesForClass = +const std::list& MutualCoupling::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MutualCoupling::getClassNamespaceUrl() const { - { "cim:MutualCoupling.First_Terminal", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.Second_Terminal", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.b0ch", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance11", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance12", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance21", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.distance22", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.g0ch", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.r0", { CGMESProfile::EQ, } }, - { "cim:MutualCoupling.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MutualCoupling::getPossibleProfilesForClass() const +const std::string& MutualCoupling::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MutualCoupling::getPossibleProfilesForAttributes() const +const std::list& MutualCoupling::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MutualCoupling::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MutualCoupling::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MutualCoupling::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_HasFirstMutualCoupling(BaseClass*, BaseClass*); @@ -351,45 +383,45 @@ const char* MutualCoupling::debugString() const void MutualCoupling::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MutualCoupling", &MutualCoupling_factory); + factory_map.emplace("MutualCoupling", &MutualCoupling_factory); } void MutualCoupling::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MutualCoupling.b0ch", &assign_MutualCoupling_b0ch); - assign_map.emplace("cim:MutualCoupling.distance11", &assign_MutualCoupling_distance11); - assign_map.emplace("cim:MutualCoupling.distance12", &assign_MutualCoupling_distance12); - assign_map.emplace("cim:MutualCoupling.distance21", &assign_MutualCoupling_distance21); - assign_map.emplace("cim:MutualCoupling.distance22", &assign_MutualCoupling_distance22); - assign_map.emplace("cim:MutualCoupling.g0ch", &assign_MutualCoupling_g0ch); - assign_map.emplace("cim:MutualCoupling.r0", &assign_MutualCoupling_r0); - assign_map.emplace("cim:MutualCoupling.x0", &assign_MutualCoupling_x0); + assign_map.emplace("MutualCoupling.b0ch", &assign_MutualCoupling_b0ch); + assign_map.emplace("MutualCoupling.distance11", &assign_MutualCoupling_distance11); + assign_map.emplace("MutualCoupling.distance12", &assign_MutualCoupling_distance12); + assign_map.emplace("MutualCoupling.distance21", &assign_MutualCoupling_distance21); + assign_map.emplace("MutualCoupling.distance22", &assign_MutualCoupling_distance22); + assign_map.emplace("MutualCoupling.g0ch", &assign_MutualCoupling_g0ch); + assign_map.emplace("MutualCoupling.r0", &assign_MutualCoupling_r0); + assign_map.emplace("MutualCoupling.x0", &assign_MutualCoupling_x0); } void MutualCoupling::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MutualCoupling.First_Terminal", &assign_MutualCoupling_First_Terminal); - assign_map.emplace("cim:MutualCoupling.Second_Terminal", &assign_MutualCoupling_Second_Terminal); + assign_map.emplace("MutualCoupling.First_Terminal", &assign_MutualCoupling_First_Terminal); + assign_map.emplace("MutualCoupling.Second_Terminal", &assign_MutualCoupling_Second_Terminal); } void MutualCoupling::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MutualCoupling.b0ch", &get_MutualCoupling_b0ch); - get_map.emplace("cim:MutualCoupling.distance11", &get_MutualCoupling_distance11); - get_map.emplace("cim:MutualCoupling.distance12", &get_MutualCoupling_distance12); - get_map.emplace("cim:MutualCoupling.distance21", &get_MutualCoupling_distance21); - get_map.emplace("cim:MutualCoupling.distance22", &get_MutualCoupling_distance22); - get_map.emplace("cim:MutualCoupling.g0ch", &get_MutualCoupling_g0ch); - get_map.emplace("cim:MutualCoupling.r0", &get_MutualCoupling_r0); - get_map.emplace("cim:MutualCoupling.x0", &get_MutualCoupling_x0); + get_map.emplace("MutualCoupling.b0ch", &get_MutualCoupling_b0ch); + get_map.emplace("MutualCoupling.distance11", &get_MutualCoupling_distance11); + get_map.emplace("MutualCoupling.distance12", &get_MutualCoupling_distance12); + get_map.emplace("MutualCoupling.distance21", &get_MutualCoupling_distance21); + get_map.emplace("MutualCoupling.distance22", &get_MutualCoupling_distance22); + get_map.emplace("MutualCoupling.g0ch", &get_MutualCoupling_g0ch); + get_map.emplace("MutualCoupling.r0", &get_MutualCoupling_r0); + get_map.emplace("MutualCoupling.x0", &get_MutualCoupling_x0); } void MutualCoupling::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MutualCoupling.First_Terminal", &get_MutualCoupling_First_Terminal); - get_map.emplace("cim:MutualCoupling.Second_Terminal", &get_MutualCoupling_Second_Terminal); + get_map.emplace("MutualCoupling.First_Terminal", &get_MutualCoupling_First_Terminal); + get_map.emplace("MutualCoupling.Second_Terminal", &get_MutualCoupling_Second_Terminal); } void MutualCoupling::addEnumGetFnsToMap(std::map& get_map) const @@ -397,11 +429,25 @@ void MutualCoupling::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool MutualCoupling::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MutualCoupling" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MutualCoupling::declare() { return BaseClassDefiner(MutualCoupling::addConstructToMap, MutualCoupling::addPrimitiveAssignFnsToMap, MutualCoupling::addClassAssignFnsToMap, MutualCoupling::debugName); } +std::map MutualCoupling::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MutualCoupling_factory() diff --git a/CGMES_2.4.15_27JAN2020/MutualCoupling.hpp b/CGMES_2.4.15_27JAN2020/MutualCoupling.hpp index 00b130bed..62296a486 100644 --- a/CGMES_2.4.15_27JAN2020/MutualCoupling.hpp +++ b/CGMES_2.4.15_27JAN2020/MutualCoupling.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Length.hpp" #include "Reactance.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MutualCoupling_factory(); diff --git a/CGMES_2.4.15_27JAN2020/NonConformLoad.cpp b/CGMES_2.4.15_27JAN2020/NonConformLoad.cpp index 00d77b1ae..c0f600b3d 100644 --- a/CGMES_2.4.15_27JAN2020/NonConformLoad.cpp +++ b/CGMES_2.4.15_27JAN2020/NonConformLoad.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoad(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoad.LoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoad::NonConformLoad() : LoadGroup(nullptr) {} NonConformLoad::~NonConformLoad() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoad::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoad::getClassNamespaceUrl() const { - { "cim:NonConformLoad.LoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoad::getPossibleProfilesForClass() const +const std::string& NonConformLoad::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoad::getPossibleProfilesForAttributes() const +const std::list& NonConformLoad::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoad::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoad::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoad::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoadGroup_EnergyConsumers(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* NonConformLoad::debugString() const void NonConformLoad::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoad", &NonConformLoad_factory); + factory_map.emplace("NonConformLoad", &NonConformLoad_factory); } void NonConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void NonConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoad.LoadGroup", &assign_NonConformLoad_LoadGroup); + assign_map.emplace("NonConformLoad.LoadGroup", &assign_NonConformLoad_LoadGroup); } void NonConformLoad::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void NonConformLoad::addPrimitiveGetFnsToMap(std::map void NonConformLoad::addClassGetFnsToMap(std::map& get_map) const { EnergyConsumer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonConformLoad.LoadGroup", &get_NonConformLoad_LoadGroup); + get_map.emplace("NonConformLoad.LoadGroup", &get_NonConformLoad_LoadGroup); } void NonConformLoad::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void NonConformLoad::addEnumGetFnsToMap(std::map& get EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool NonConformLoad::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "NonConformLoad" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoad::declare() { return BaseClassDefiner(NonConformLoad::addConstructToMap, NonConformLoad::addPrimitiveAssignFnsToMap, NonConformLoad::addClassAssignFnsToMap, NonConformLoad::debugName); } +std::map NonConformLoad::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoad_factory() diff --git a/CGMES_2.4.15_27JAN2020/NonConformLoad.hpp b/CGMES_2.4.15_27JAN2020/NonConformLoad.hpp index d30929052..b198682bc 100644 --- a/CGMES_2.4.15_27JAN2020/NonConformLoad.hpp +++ b/CGMES_2.4.15_27JAN2020/NonConformLoad.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoad_factory(); diff --git a/CGMES_2.4.15_27JAN2020/NonConformLoadGroup.cpp b/CGMES_2.4.15_27JAN2020/NonConformLoadGroup.cpp index 0ffa2111f..1c08e2f93 100644 --- a/CGMES_2.4.15_27JAN2020/NonConformLoadGroup.cpp +++ b/CGMES_2.4.15_27JAN2020/NonConformLoadGroup.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoadGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoadGroup.EnergyConsumers", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonConformLoadGroup.NonConformLoadSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoadGroup::NonConformLoadGroup() {} NonConformLoadGroup::~NonConformLoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoadGroup::getClassNamespaceUrl() const { - { "cim:NonConformLoadGroup.EnergyConsumers", { CGMESProfile::EQ, } }, - { "cim:NonConformLoadGroup.NonConformLoadSchedules", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoadGroup::getPossibleProfilesForClass() const +const std::string& NonConformLoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoadGroup::getPossibleProfilesForAttributes() const +const std::list& NonConformLoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadGroup::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoad_LoadGroup(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* NonConformLoadGroup::debugString() const void NonConformLoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoadGroup", &NonConformLoadGroup_factory); + factory_map.emplace("NonConformLoadGroup", &NonConformLoadGroup_factory); } void NonConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void NonConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoadGroup.EnergyConsumers", &assign_NonConformLoadGroup_EnergyConsumers); - assign_map.emplace("cim:NonConformLoadGroup.NonConformLoadSchedules", &assign_NonConformLoadGroup_NonConformLoadSchedules); + assign_map.emplace("NonConformLoadGroup.EnergyConsumers", &assign_NonConformLoadGroup_EnergyConsumers); + assign_map.emplace("NonConformLoadGroup.NonConformLoadSchedules", &assign_NonConformLoadGroup_NonConformLoadSchedules); } void NonConformLoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void NonConformLoadGroup::addEnumGetFnsToMap(std::map LoadGroup::addEnumGetFnsToMap(get_map); } +bool NonConformLoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "NonConformLoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoadGroup::declare() { return BaseClassDefiner(NonConformLoadGroup::addConstructToMap, NonConformLoadGroup::addPrimitiveAssignFnsToMap, NonConformLoadGroup::addClassAssignFnsToMap, NonConformLoadGroup::debugName); } +std::map NonConformLoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadGroup::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoadGroup_factory() diff --git a/CGMES_2.4.15_27JAN2020/NonConformLoadGroup.hpp b/CGMES_2.4.15_27JAN2020/NonConformLoadGroup.hpp index 928188af7..78f437d42 100644 --- a/CGMES_2.4.15_27JAN2020/NonConformLoadGroup.hpp +++ b/CGMES_2.4.15_27JAN2020/NonConformLoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadGroup.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoadGroup_factory(); diff --git a/CGMES_2.4.15_27JAN2020/NonConformLoadSchedule.cpp b/CGMES_2.4.15_27JAN2020/NonConformLoadSchedule.cpp index f4a6a8203..3da2bba29 100644 --- a/CGMES_2.4.15_27JAN2020/NonConformLoadSchedule.cpp +++ b/CGMES_2.4.15_27JAN2020/NonConformLoadSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoadSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoadSchedule.NonConformLoadGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoadSchedule::NonConformLoadSchedule() : NonConformLoadGroup(nullptr) {} NonConformLoadSchedule::~NonConformLoadSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoadSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoadSchedule::getClassNamespaceUrl() const { - { "cim:NonConformLoadSchedule.NonConformLoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoadSchedule::getPossibleProfilesForClass() const +const std::string& NonConformLoadSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoadSchedule::getPossibleProfilesForAttributes() const +const std::list& NonConformLoadSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoadSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoadSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoadSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoadGroup_NonConformLoadSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* NonConformLoadSchedule::debugString() const void NonConformLoadSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoadSchedule", &NonConformLoadSchedule_factory); + factory_map.emplace("NonConformLoadSchedule", &NonConformLoadSchedule_factory); } void NonConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void NonConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoadSchedule.NonConformLoadGroup", &assign_NonConformLoadSchedule_NonConformLoadGroup); + assign_map.emplace("NonConformLoadSchedule.NonConformLoadGroup", &assign_NonConformLoadSchedule_NonConformLoadGroup); } void NonConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void NonConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonConformLoadSchedule.NonConformLoadGroup", &get_NonConformLoadSchedule_NonConformLoadGroup); + get_map.emplace("NonConformLoadSchedule.NonConformLoadGroup", &get_NonConformLoadSchedule_NonConformLoadGroup); } void NonConformLoadSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void NonConformLoadSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoadSchedule::declare() { return BaseClassDefiner(NonConformLoadSchedule::addConstructToMap, NonConformLoadSchedule::addPrimitiveAssignFnsToMap, NonConformLoadSchedule::addClassAssignFnsToMap, NonConformLoadSchedule::debugName); } +std::map NonConformLoadSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoadSchedule_factory() diff --git a/CGMES_2.4.15_27JAN2020/NonConformLoadSchedule.hpp b/CGMES_2.4.15_27JAN2020/NonConformLoadSchedule.hpp index c0ae51ebb..5400ec0f1 100644 --- a/CGMES_2.4.15_27JAN2020/NonConformLoadSchedule.hpp +++ b/CGMES_2.4.15_27JAN2020/NonConformLoadSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoadSchedule_factory(); diff --git a/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensator.cpp b/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensator.cpp index 5fd272895..02b5fb4dd 100644 --- a/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensator.cpp +++ b/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensator.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonlinearShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonlinearShuntCompensator::NonlinearShuntCompensator() {} NonlinearShuntCompensator::~NonlinearShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& NonlinearShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonlinearShuntCompensator::getClassNamespaceUrl() const { - { "cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonlinearShuntCompensator::getPossibleProfilesForClass() const +const std::string& NonlinearShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonlinearShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& NonlinearShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ShuntCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonlinearShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonlinearShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonlinearShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* NonlinearShuntCompensator::debugString() const void NonlinearShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonlinearShuntCompensator", &NonlinearShuntCompensator_factory); + factory_map.emplace("NonlinearShuntCompensator", &NonlinearShuntCompensator_factory); } void NonlinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void NonlinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", &assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints); + assign_map.emplace("NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", &assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints); } void NonlinearShuntCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void NonlinearShuntCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonlinearShuntCompensator::declare() { return BaseClassDefiner(NonlinearShuntCompensator::addConstructToMap, NonlinearShuntCompensator::addPrimitiveAssignFnsToMap, NonlinearShuntCompensator::addClassAssignFnsToMap, NonlinearShuntCompensator::debugName); } +std::map NonlinearShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ShuntCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonlinearShuntCompensator_factory() diff --git a/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensator.hpp b/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensator.hpp index c39f1cb1f..eeb89d1e2 100644 --- a/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensator.hpp +++ b/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ShuntCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonlinearShuntCompensator_factory(); diff --git a/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensatorPoint.cpp b/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensatorPoint.cpp index 39f049438..5acbc9bc6 100644 --- a/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensatorPoint.cpp +++ b/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensatorPoint.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonlinearShuntCompensatorPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.sectionNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonlinearShuntCompensatorPoint::NonlinearShuntCompensatorPoint() : NonlinearShuntCompensator(nullptr) {} NonlinearShuntCompensatorPoint::~NonlinearShuntCompensatorPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& NonlinearShuntCompensatorPoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonlinearShuntCompensatorPoint::getClassNamespaceUrl() const { - { "cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.b", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.b0", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.g", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.g0", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.sectionNumber", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonlinearShuntCompensatorPoint::getPossibleProfilesForClass() const +const std::string& NonlinearShuntCompensatorPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonlinearShuntCompensatorPoint::getPossibleProfilesForAttributes() const +const std::list& NonlinearShuntCompensatorPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonlinearShuntCompensatorPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonlinearShuntCompensatorPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonlinearShuntCompensatorPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints(BaseClass*, BaseClass*); @@ -229,37 +261,37 @@ const char* NonlinearShuntCompensatorPoint::debugString() const void NonlinearShuntCompensatorPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonlinearShuntCompensatorPoint", &NonlinearShuntCompensatorPoint_factory); + factory_map.emplace("NonlinearShuntCompensatorPoint", &NonlinearShuntCompensatorPoint_factory); } void NonlinearShuntCompensatorPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.b", &assign_NonlinearShuntCompensatorPoint_b); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.b0", &assign_NonlinearShuntCompensatorPoint_b0); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.g", &assign_NonlinearShuntCompensatorPoint_g); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.g0", &assign_NonlinearShuntCompensatorPoint_g0); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.sectionNumber", &assign_NonlinearShuntCompensatorPoint_sectionNumber); + assign_map.emplace("NonlinearShuntCompensatorPoint.b", &assign_NonlinearShuntCompensatorPoint_b); + assign_map.emplace("NonlinearShuntCompensatorPoint.b0", &assign_NonlinearShuntCompensatorPoint_b0); + assign_map.emplace("NonlinearShuntCompensatorPoint.g", &assign_NonlinearShuntCompensatorPoint_g); + assign_map.emplace("NonlinearShuntCompensatorPoint.g0", &assign_NonlinearShuntCompensatorPoint_g0); + assign_map.emplace("NonlinearShuntCompensatorPoint.sectionNumber", &assign_NonlinearShuntCompensatorPoint_sectionNumber); } void NonlinearShuntCompensatorPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); + assign_map.emplace("NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); } void NonlinearShuntCompensatorPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.b", &get_NonlinearShuntCompensatorPoint_b); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.b0", &get_NonlinearShuntCompensatorPoint_b0); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.g", &get_NonlinearShuntCompensatorPoint_g); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.g0", &get_NonlinearShuntCompensatorPoint_g0); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.sectionNumber", &get_NonlinearShuntCompensatorPoint_sectionNumber); + get_map.emplace("NonlinearShuntCompensatorPoint.b", &get_NonlinearShuntCompensatorPoint_b); + get_map.emplace("NonlinearShuntCompensatorPoint.b0", &get_NonlinearShuntCompensatorPoint_b0); + get_map.emplace("NonlinearShuntCompensatorPoint.g", &get_NonlinearShuntCompensatorPoint_g); + get_map.emplace("NonlinearShuntCompensatorPoint.g0", &get_NonlinearShuntCompensatorPoint_g0); + get_map.emplace("NonlinearShuntCompensatorPoint.sectionNumber", &get_NonlinearShuntCompensatorPoint_sectionNumber); } void NonlinearShuntCompensatorPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &get_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); + get_map.emplace("NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &get_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); } void NonlinearShuntCompensatorPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -267,11 +299,25 @@ void NonlinearShuntCompensatorPoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonlinearShuntCompensatorPoint::declare() { return BaseClassDefiner(NonlinearShuntCompensatorPoint::addConstructToMap, NonlinearShuntCompensatorPoint::addPrimitiveAssignFnsToMap, NonlinearShuntCompensatorPoint::addClassAssignFnsToMap, NonlinearShuntCompensatorPoint::debugName); } +std::map NonlinearShuntCompensatorPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonlinearShuntCompensatorPoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensatorPoint.hpp b/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensatorPoint.hpp index eaf108691..e0247aef0 100644 --- a/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensatorPoint.hpp +++ b/CGMES_2.4.15_27JAN2020/NonlinearShuntCompensatorPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Integer.hpp" #include "Susceptance.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonlinearShuntCompensatorPoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/NuclearGeneratingUnit.cpp b/CGMES_2.4.15_27JAN2020/NuclearGeneratingUnit.cpp index 3ce0ed75a..cbe9457e1 100644 --- a/CGMES_2.4.15_27JAN2020/NuclearGeneratingUnit.cpp +++ b/CGMES_2.4.15_27JAN2020/NuclearGeneratingUnit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NuclearGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + NuclearGeneratingUnit::NuclearGeneratingUnit() {} NuclearGeneratingUnit::~NuclearGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& NuclearGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NuclearGeneratingUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NuclearGeneratingUnit::getPossibleProfilesForClass() const +const std::string& NuclearGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NuclearGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& NuclearGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NuclearGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NuclearGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NuclearGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char NuclearGeneratingUnit::debugName[] = "NuclearGeneratingUnit"; @@ -47,7 +79,7 @@ const char* NuclearGeneratingUnit::debugString() const void NuclearGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NuclearGeneratingUnit", &NuclearGeneratingUnit_factory); + factory_map.emplace("NuclearGeneratingUnit", &NuclearGeneratingUnit_factory); } void NuclearGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void NuclearGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NuclearGeneratingUnit::declare() { return BaseClassDefiner(NuclearGeneratingUnit::addConstructToMap, NuclearGeneratingUnit::addPrimitiveAssignFnsToMap, NuclearGeneratingUnit::addClassAssignFnsToMap, NuclearGeneratingUnit::debugName); } +std::map NuclearGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NuclearGeneratingUnit_factory() diff --git a/CGMES_2.4.15_27JAN2020/NuclearGeneratingUnit.hpp b/CGMES_2.4.15_27JAN2020/NuclearGeneratingUnit.hpp index 81ab7cd3d..11f7283f8 100644 --- a/CGMES_2.4.15_27JAN2020/NuclearGeneratingUnit.hpp +++ b/CGMES_2.4.15_27JAN2020/NuclearGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NuclearGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OperationalLimit.cpp b/CGMES_2.4.15_27JAN2020/OperationalLimit.cpp index 2f6e5f3f8..23beaf71c 100644 --- a/CGMES_2.4.15_27JAN2020/OperationalLimit.cpp +++ b/CGMES_2.4.15_27JAN2020/OperationalLimit.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimit.OperationalLimitSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimit.OperationalLimitType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimit::OperationalLimit() : OperationalLimitSet(nullptr), OperationalLimitType(nullptr) {} OperationalLimit::~OperationalLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimit::getClassNamespaceUrl() const { - { "cim:OperationalLimit.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:OperationalLimit.OperationalLimitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimit::getPossibleProfilesForClass() const +const std::string& OperationalLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimit::getPossibleProfilesForAttributes() const +const std::list& OperationalLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OperationalLimitSet_OperationalLimitValue(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* OperationalLimit::debugString() const void OperationalLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimit", &OperationalLimit_factory); + factory_map.emplace("OperationalLimit", &OperationalLimit_factory); } void OperationalLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void OperationalLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimit.OperationalLimitSet", &assign_OperationalLimit_OperationalLimitSet); - assign_map.emplace("cim:OperationalLimit.OperationalLimitType", &assign_OperationalLimit_OperationalLimitType); + assign_map.emplace("OperationalLimit.OperationalLimitSet", &assign_OperationalLimit_OperationalLimitSet); + assign_map.emplace("OperationalLimit.OperationalLimitType", &assign_OperationalLimit_OperationalLimitType); } void OperationalLimit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void OperationalLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimit.OperationalLimitSet", &get_OperationalLimit_OperationalLimitSet); - get_map.emplace("cim:OperationalLimit.OperationalLimitType", &get_OperationalLimit_OperationalLimitType); + get_map.emplace("OperationalLimit.OperationalLimitSet", &get_OperationalLimit_OperationalLimitSet); + get_map.emplace("OperationalLimit.OperationalLimitType", &get_OperationalLimit_OperationalLimitType); } void OperationalLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void OperationalLimit::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool OperationalLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OperationalLimit::declare() { return BaseClassDefiner(OperationalLimit::addConstructToMap, OperationalLimit::addPrimitiveAssignFnsToMap, OperationalLimit::addClassAssignFnsToMap, OperationalLimit::debugName); } +std::map OperationalLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimit_factory() diff --git a/CGMES_2.4.15_27JAN2020/OperationalLimit.hpp b/CGMES_2.4.15_27JAN2020/OperationalLimit.hpp index 1e167b812..c66fa91e2 100644 --- a/CGMES_2.4.15_27JAN2020/OperationalLimit.hpp +++ b/CGMES_2.4.15_27JAN2020/OperationalLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OperationalLimitSet.cpp b/CGMES_2.4.15_27JAN2020/OperationalLimitSet.cpp index b2d24e3d4..7a5c65292 100644 --- a/CGMES_2.4.15_27JAN2020/OperationalLimitSet.cpp +++ b/CGMES_2.4.15_27JAN2020/OperationalLimitSet.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimitSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimitSet.Equipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitSet.OperationalLimitValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitSet.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimitSet::OperationalLimitSet() : Equipment(nullptr), Terminal(nullptr) {} OperationalLimitSet::~OperationalLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimitSet::getClassNamespaceUrl() const { - { "cim:OperationalLimitSet.Equipment", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitSet.OperationalLimitValue", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitSet.Terminal", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimitSet::getPossibleProfilesForClass() const +const std::string& OperationalLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimitSet::getPossibleProfilesForAttributes() const +const std::list& OperationalLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Equipment_OperationalLimitSet(BaseClass*, BaseClass*); @@ -132,7 +164,7 @@ const char* OperationalLimitSet::debugString() const void OperationalLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimitSet", &OperationalLimitSet_factory); + factory_map.emplace("OperationalLimitSet", &OperationalLimitSet_factory); } void OperationalLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -141,9 +173,9 @@ void OperationalLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitSet.Equipment", &assign_OperationalLimitSet_Equipment); - assign_map.emplace("cim:OperationalLimitSet.OperationalLimitValue", &assign_OperationalLimitSet_OperationalLimitValue); - assign_map.emplace("cim:OperationalLimitSet.Terminal", &assign_OperationalLimitSet_Terminal); + assign_map.emplace("OperationalLimitSet.Equipment", &assign_OperationalLimitSet_Equipment); + assign_map.emplace("OperationalLimitSet.OperationalLimitValue", &assign_OperationalLimitSet_OperationalLimitValue); + assign_map.emplace("OperationalLimitSet.Terminal", &assign_OperationalLimitSet_Terminal); } void OperationalLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -154,8 +186,8 @@ void OperationalLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitSet.Equipment", &get_OperationalLimitSet_Equipment); - get_map.emplace("cim:OperationalLimitSet.Terminal", &get_OperationalLimitSet_Terminal); + get_map.emplace("OperationalLimitSet.Equipment", &get_OperationalLimitSet_Equipment); + get_map.emplace("OperationalLimitSet.Terminal", &get_OperationalLimitSet_Terminal); } void OperationalLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void OperationalLimitSet::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool OperationalLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OperationalLimitSet::declare() { return BaseClassDefiner(OperationalLimitSet::addConstructToMap, OperationalLimitSet::addPrimitiveAssignFnsToMap, OperationalLimitSet::addClassAssignFnsToMap, OperationalLimitSet::debugName); } +std::map OperationalLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimitSet_factory() diff --git a/CGMES_2.4.15_27JAN2020/OperationalLimitSet.hpp b/CGMES_2.4.15_27JAN2020/OperationalLimitSet.hpp index 97bb28d50..b559ccac8 100644 --- a/CGMES_2.4.15_27JAN2020/OperationalLimitSet.hpp +++ b/CGMES_2.4.15_27JAN2020/OperationalLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimitSet_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OperationalLimitType.cpp b/CGMES_2.4.15_27JAN2020/OperationalLimitType.cpp index d487e6145..08abe600d 100644 --- a/CGMES_2.4.15_27JAN2020/OperationalLimitType.cpp +++ b/CGMES_2.4.15_27JAN2020/OperationalLimitType.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimitType(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimitType.OperationalLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.acceptableDuration", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.direction", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.limitType", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimitType::OperationalLimitType() {} OperationalLimitType::~OperationalLimitType() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimitType::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimitType::getClassNamespaceUrl() const { - { "cim:OperationalLimitType.OperationalLimit", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.acceptableDuration", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.direction", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.limitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimitType::getPossibleProfilesForClass() const +const std::string& OperationalLimitType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimitType::getPossibleProfilesForAttributes() const +const std::list& OperationalLimitType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimitType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimitType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimitType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OperationalLimit_OperationalLimitType(BaseClass*, BaseClass*); @@ -156,25 +188,25 @@ const char* OperationalLimitType::debugString() const void OperationalLimitType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimitType", &OperationalLimitType_factory); + factory_map.emplace("OperationalLimitType", &OperationalLimitType_factory); } void OperationalLimitType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitType.acceptableDuration", &assign_OperationalLimitType_acceptableDuration); - assign_map.emplace("cim:OperationalLimitType.direction", &assign_OperationalLimitType_direction); - assign_map.emplace("cim:OperationalLimitType.limitType", &assign_OperationalLimitType_limitType); + assign_map.emplace("OperationalLimitType.acceptableDuration", &assign_OperationalLimitType_acceptableDuration); + assign_map.emplace("OperationalLimitType.direction", &assign_OperationalLimitType_direction); + assign_map.emplace("OperationalLimitType.limitType", &assign_OperationalLimitType_limitType); } void OperationalLimitType::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitType.OperationalLimit", &assign_OperationalLimitType_OperationalLimit); + assign_map.emplace("OperationalLimitType.OperationalLimit", &assign_OperationalLimitType_OperationalLimit); } void OperationalLimitType::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitType.acceptableDuration", &get_OperationalLimitType_acceptableDuration); + get_map.emplace("OperationalLimitType.acceptableDuration", &get_OperationalLimitType_acceptableDuration); } void OperationalLimitType::addClassGetFnsToMap(std::map& get_map) const @@ -185,8 +217,14 @@ void OperationalLimitType::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitType.direction", &get_OperationalLimitType_direction); - get_map.emplace("cim:OperationalLimitType.limitType", &get_OperationalLimitType_limitType); + get_map.emplace("OperationalLimitType.direction", &get_OperationalLimitType_direction); + get_map.emplace("OperationalLimitType.limitType", &get_OperationalLimitType_limitType); +} + +bool OperationalLimitType::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimitType" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner OperationalLimitType::declare() @@ -194,6 +232,14 @@ const BaseClassDefiner OperationalLimitType::declare() return BaseClassDefiner(OperationalLimitType::addConstructToMap, OperationalLimitType::addPrimitiveAssignFnsToMap, OperationalLimitType::addClassAssignFnsToMap, OperationalLimitType::debugName); } +std::map OperationalLimitType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimitType_factory() diff --git a/CGMES_2.4.15_27JAN2020/OperationalLimitType.hpp b/CGMES_2.4.15_27JAN2020/OperationalLimitType.hpp index 3b07eb447..0da7dd7f2 100644 --- a/CGMES_2.4.15_27JAN2020/OperationalLimitType.hpp +++ b/CGMES_2.4.15_27JAN2020/OperationalLimitType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "LimitTypeKind.hpp" #include "OperationalLimitDirectionKind.hpp" #include "Seconds.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimitType_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OverexcLim2.cpp b/CGMES_2.4.15_27JAN2020/OverexcLim2.cpp index 2e9009b9b..cc454e86a 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcLim2.cpp +++ b/CGMES_2.4.15_27JAN2020/OverexcLim2.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLim2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLim2.ifdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.koi", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.voimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLim2.voimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLim2::OverexcLim2() {} OverexcLim2::~OverexcLim2() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLim2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLim2::getClassNamespaceUrl() const { - { "cim:OverexcLim2.ifdlim", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.koi", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.voimax", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.voimin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLim2::getPossibleProfilesForClass() const +const std::string& OverexcLim2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLim2::getPossibleProfilesForAttributes() const +const std::list& OverexcLim2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLim2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLim2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLim2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLim2_ifdlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* OverexcLim2::debugString() const void OverexcLim2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLim2", &OverexcLim2_factory); + factory_map.emplace("OverexcLim2", &OverexcLim2_factory); } void OverexcLim2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLim2.ifdlim", &assign_OverexcLim2_ifdlim); - assign_map.emplace("cim:OverexcLim2.koi", &assign_OverexcLim2_koi); - assign_map.emplace("cim:OverexcLim2.voimax", &assign_OverexcLim2_voimax); - assign_map.emplace("cim:OverexcLim2.voimin", &assign_OverexcLim2_voimin); + assign_map.emplace("OverexcLim2.ifdlim", &assign_OverexcLim2_ifdlim); + assign_map.emplace("OverexcLim2.koi", &assign_OverexcLim2_koi); + assign_map.emplace("OverexcLim2.voimax", &assign_OverexcLim2_voimax); + assign_map.emplace("OverexcLim2.voimin", &assign_OverexcLim2_voimin); } void OverexcLim2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void OverexcLim2::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLim2.ifdlim", &get_OverexcLim2_ifdlim); - get_map.emplace("cim:OverexcLim2.koi", &get_OverexcLim2_koi); - get_map.emplace("cim:OverexcLim2.voimax", &get_OverexcLim2_voimax); - get_map.emplace("cim:OverexcLim2.voimin", &get_OverexcLim2_voimin); + get_map.emplace("OverexcLim2.ifdlim", &get_OverexcLim2_ifdlim); + get_map.emplace("OverexcLim2.koi", &get_OverexcLim2_koi); + get_map.emplace("OverexcLim2.voimax", &get_OverexcLim2_voimax); + get_map.emplace("OverexcLim2.voimin", &get_OverexcLim2_voimin); } void OverexcLim2::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void OverexcLim2::addEnumGetFnsToMap(std::map& get_ma OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLim2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLim2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLim2::declare() { return BaseClassDefiner(OverexcLim2::addConstructToMap, OverexcLim2::addPrimitiveAssignFnsToMap, OverexcLim2::addClassAssignFnsToMap, OverexcLim2::debugName); } +std::map OverexcLim2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLim2_factory() diff --git a/CGMES_2.4.15_27JAN2020/OverexcLim2.hpp b/CGMES_2.4.15_27JAN2020/OverexcLim2.hpp index 0278bfc7e..26c3617d8 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcLim2.hpp +++ b/CGMES_2.4.15_27JAN2020/OverexcLim2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -40,8 +41,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -49,7 +57,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLim2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OverexcLimIEEE.cpp b/CGMES_2.4.15_27JAN2020/OverexcLimIEEE.cpp index 0fb3e9857..a1ef0ebcb 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcLimIEEE.cpp +++ b/CGMES_2.4.15_27JAN2020/OverexcLimIEEE.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimIEEE(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimIEEE.hyst", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.ifdlim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.ifdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.itfpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.kcd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.kramp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimIEEE::OverexcLimIEEE() {} OverexcLimIEEE::~OverexcLimIEEE() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimIEEE::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimIEEE::getClassNamespaceUrl() const { - { "cim:OverexcLimIEEE.hyst", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.ifdlim", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.ifdmax", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.itfpu", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.kcd", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.kramp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimIEEE::getPossibleProfilesForClass() const +const std::string& OverexcLimIEEE::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimIEEE::getPossibleProfilesForAttributes() const +const std::list& OverexcLimIEEE::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimIEEE::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimIEEE::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimIEEE::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimIEEE_hyst(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* OverexcLimIEEE::debugString() const void OverexcLimIEEE::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimIEEE", &OverexcLimIEEE_factory); + factory_map.emplace("OverexcLimIEEE", &OverexcLimIEEE_factory); } void OverexcLimIEEE::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimIEEE.hyst", &assign_OverexcLimIEEE_hyst); - assign_map.emplace("cim:OverexcLimIEEE.ifdlim", &assign_OverexcLimIEEE_ifdlim); - assign_map.emplace("cim:OverexcLimIEEE.ifdmax", &assign_OverexcLimIEEE_ifdmax); - assign_map.emplace("cim:OverexcLimIEEE.itfpu", &assign_OverexcLimIEEE_itfpu); - assign_map.emplace("cim:OverexcLimIEEE.kcd", &assign_OverexcLimIEEE_kcd); - assign_map.emplace("cim:OverexcLimIEEE.kramp", &assign_OverexcLimIEEE_kramp); + assign_map.emplace("OverexcLimIEEE.hyst", &assign_OverexcLimIEEE_hyst); + assign_map.emplace("OverexcLimIEEE.ifdlim", &assign_OverexcLimIEEE_ifdlim); + assign_map.emplace("OverexcLimIEEE.ifdmax", &assign_OverexcLimIEEE_ifdmax); + assign_map.emplace("OverexcLimIEEE.itfpu", &assign_OverexcLimIEEE_itfpu); + assign_map.emplace("OverexcLimIEEE.kcd", &assign_OverexcLimIEEE_kcd); + assign_map.emplace("OverexcLimIEEE.kramp", &assign_OverexcLimIEEE_kramp); } void OverexcLimIEEE::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void OverexcLimIEEE::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimIEEE.hyst", &get_OverexcLimIEEE_hyst); - get_map.emplace("cim:OverexcLimIEEE.ifdlim", &get_OverexcLimIEEE_ifdlim); - get_map.emplace("cim:OverexcLimIEEE.ifdmax", &get_OverexcLimIEEE_ifdmax); - get_map.emplace("cim:OverexcLimIEEE.itfpu", &get_OverexcLimIEEE_itfpu); - get_map.emplace("cim:OverexcLimIEEE.kcd", &get_OverexcLimIEEE_kcd); - get_map.emplace("cim:OverexcLimIEEE.kramp", &get_OverexcLimIEEE_kramp); + get_map.emplace("OverexcLimIEEE.hyst", &get_OverexcLimIEEE_hyst); + get_map.emplace("OverexcLimIEEE.ifdlim", &get_OverexcLimIEEE_ifdlim); + get_map.emplace("OverexcLimIEEE.ifdmax", &get_OverexcLimIEEE_ifdmax); + get_map.emplace("OverexcLimIEEE.itfpu", &get_OverexcLimIEEE_itfpu); + get_map.emplace("OverexcLimIEEE.kcd", &get_OverexcLimIEEE_kcd); + get_map.emplace("OverexcLimIEEE.kramp", &get_OverexcLimIEEE_kramp); } void OverexcLimIEEE::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void OverexcLimIEEE::addEnumGetFnsToMap(std::map& get OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimIEEE::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimIEEE" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimIEEE::declare() { return BaseClassDefiner(OverexcLimIEEE::addConstructToMap, OverexcLimIEEE::addPrimitiveAssignFnsToMap, OverexcLimIEEE::addClassAssignFnsToMap, OverexcLimIEEE::debugName); } +std::map OverexcLimIEEE::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimIEEE_factory() diff --git a/CGMES_2.4.15_27JAN2020/OverexcLimIEEE.hpp b/CGMES_2.4.15_27JAN2020/OverexcLimIEEE.hpp index de8e58374..79f15f03f 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcLimIEEE.hpp +++ b/CGMES_2.4.15_27JAN2020/OverexcLimIEEE.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimIEEE_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OverexcLimX1.cpp b/CGMES_2.4.15_27JAN2020/OverexcLimX1.cpp index c299b0d73..ca39a5f5b 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcLimX1.cpp +++ b/CGMES_2.4.15_27JAN2020/OverexcLimX1.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimX1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimX1.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efd3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efddes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efdrated", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.kmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.vlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimX1::OverexcLimX1() {} OverexcLimX1::~OverexcLimX1() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimX1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimX1::getClassNamespaceUrl() const { - { "cim:OverexcLimX1.efd1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efd2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efd3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efddes", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efdrated", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.kmx", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.vlow", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimX1::getPossibleProfilesForClass() const +const std::string& OverexcLimX1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimX1::getPossibleProfilesForAttributes() const +const std::list& OverexcLimX1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimX1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimX1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimX1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimX1_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* OverexcLimX1::debugString() const void OverexcLimX1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimX1", &OverexcLimX1_factory); + factory_map.emplace("OverexcLimX1", &OverexcLimX1_factory); } void OverexcLimX1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimX1.efd1", &assign_OverexcLimX1_efd1); - assign_map.emplace("cim:OverexcLimX1.efd2", &assign_OverexcLimX1_efd2); - assign_map.emplace("cim:OverexcLimX1.efd3", &assign_OverexcLimX1_efd3); - assign_map.emplace("cim:OverexcLimX1.efddes", &assign_OverexcLimX1_efddes); - assign_map.emplace("cim:OverexcLimX1.efdrated", &assign_OverexcLimX1_efdrated); - assign_map.emplace("cim:OverexcLimX1.kmx", &assign_OverexcLimX1_kmx); - assign_map.emplace("cim:OverexcLimX1.t1", &assign_OverexcLimX1_t1); - assign_map.emplace("cim:OverexcLimX1.t2", &assign_OverexcLimX1_t2); - assign_map.emplace("cim:OverexcLimX1.t3", &assign_OverexcLimX1_t3); - assign_map.emplace("cim:OverexcLimX1.vlow", &assign_OverexcLimX1_vlow); + assign_map.emplace("OverexcLimX1.efd1", &assign_OverexcLimX1_efd1); + assign_map.emplace("OverexcLimX1.efd2", &assign_OverexcLimX1_efd2); + assign_map.emplace("OverexcLimX1.efd3", &assign_OverexcLimX1_efd3); + assign_map.emplace("OverexcLimX1.efddes", &assign_OverexcLimX1_efddes); + assign_map.emplace("OverexcLimX1.efdrated", &assign_OverexcLimX1_efdrated); + assign_map.emplace("OverexcLimX1.kmx", &assign_OverexcLimX1_kmx); + assign_map.emplace("OverexcLimX1.t1", &assign_OverexcLimX1_t1); + assign_map.emplace("OverexcLimX1.t2", &assign_OverexcLimX1_t2); + assign_map.emplace("OverexcLimX1.t3", &assign_OverexcLimX1_t3); + assign_map.emplace("OverexcLimX1.vlow", &assign_OverexcLimX1_vlow); } void OverexcLimX1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void OverexcLimX1::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimX1.efd1", &get_OverexcLimX1_efd1); - get_map.emplace("cim:OverexcLimX1.efd2", &get_OverexcLimX1_efd2); - get_map.emplace("cim:OverexcLimX1.efd3", &get_OverexcLimX1_efd3); - get_map.emplace("cim:OverexcLimX1.efddes", &get_OverexcLimX1_efddes); - get_map.emplace("cim:OverexcLimX1.efdrated", &get_OverexcLimX1_efdrated); - get_map.emplace("cim:OverexcLimX1.kmx", &get_OverexcLimX1_kmx); - get_map.emplace("cim:OverexcLimX1.t1", &get_OverexcLimX1_t1); - get_map.emplace("cim:OverexcLimX1.t2", &get_OverexcLimX1_t2); - get_map.emplace("cim:OverexcLimX1.t3", &get_OverexcLimX1_t3); - get_map.emplace("cim:OverexcLimX1.vlow", &get_OverexcLimX1_vlow); + get_map.emplace("OverexcLimX1.efd1", &get_OverexcLimX1_efd1); + get_map.emplace("OverexcLimX1.efd2", &get_OverexcLimX1_efd2); + get_map.emplace("OverexcLimX1.efd3", &get_OverexcLimX1_efd3); + get_map.emplace("OverexcLimX1.efddes", &get_OverexcLimX1_efddes); + get_map.emplace("OverexcLimX1.efdrated", &get_OverexcLimX1_efdrated); + get_map.emplace("OverexcLimX1.kmx", &get_OverexcLimX1_kmx); + get_map.emplace("OverexcLimX1.t1", &get_OverexcLimX1_t1); + get_map.emplace("OverexcLimX1.t2", &get_OverexcLimX1_t2); + get_map.emplace("OverexcLimX1.t3", &get_OverexcLimX1_t3); + get_map.emplace("OverexcLimX1.vlow", &get_OverexcLimX1_vlow); } void OverexcLimX1::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void OverexcLimX1::addEnumGetFnsToMap(std::map& get_m OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimX1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimX1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimX1::declare() { return BaseClassDefiner(OverexcLimX1::addConstructToMap, OverexcLimX1::addPrimitiveAssignFnsToMap, OverexcLimX1::addClassAssignFnsToMap, OverexcLimX1::debugName); } +std::map OverexcLimX1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimX1_factory() diff --git a/CGMES_2.4.15_27JAN2020/OverexcLimX1.hpp b/CGMES_2.4.15_27JAN2020/OverexcLimX1.hpp index b0ac52a6c..9c0d3c1bd 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcLimX1.hpp +++ b/CGMES_2.4.15_27JAN2020/OverexcLimX1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimX1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OverexcLimX2.cpp b/CGMES_2.4.15_27JAN2020/OverexcLimX2.cpp index 0a0443e80..ec28d7143 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcLimX2.cpp +++ b/CGMES_2.4.15_27JAN2020/OverexcLimX2.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimX2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimX2.efd1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efd2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efd3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efddes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efdrated", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.kmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.vlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimX2::OverexcLimX2() {} OverexcLimX2::~OverexcLimX2() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimX2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimX2::getClassNamespaceUrl() const { - { "cim:OverexcLimX2.efd1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efd2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efd3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efddes", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efdrated", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.kmx", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.m", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.vlow", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimX2::getPossibleProfilesForClass() const +const std::string& OverexcLimX2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimX2::getPossibleProfilesForAttributes() const +const std::list& OverexcLimX2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimX2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimX2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimX2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimX2_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* OverexcLimX2::debugString() const void OverexcLimX2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimX2", &OverexcLimX2_factory); + factory_map.emplace("OverexcLimX2", &OverexcLimX2_factory); } void OverexcLimX2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimX2.efd1", &assign_OverexcLimX2_efd1); - assign_map.emplace("cim:OverexcLimX2.efd2", &assign_OverexcLimX2_efd2); - assign_map.emplace("cim:OverexcLimX2.efd3", &assign_OverexcLimX2_efd3); - assign_map.emplace("cim:OverexcLimX2.efddes", &assign_OverexcLimX2_efddes); - assign_map.emplace("cim:OverexcLimX2.efdrated", &assign_OverexcLimX2_efdrated); - assign_map.emplace("cim:OverexcLimX2.kmx", &assign_OverexcLimX2_kmx); - assign_map.emplace("cim:OverexcLimX2.m", &assign_OverexcLimX2_m); - assign_map.emplace("cim:OverexcLimX2.t1", &assign_OverexcLimX2_t1); - assign_map.emplace("cim:OverexcLimX2.t2", &assign_OverexcLimX2_t2); - assign_map.emplace("cim:OverexcLimX2.t3", &assign_OverexcLimX2_t3); - assign_map.emplace("cim:OverexcLimX2.vlow", &assign_OverexcLimX2_vlow); + assign_map.emplace("OverexcLimX2.efd1", &assign_OverexcLimX2_efd1); + assign_map.emplace("OverexcLimX2.efd2", &assign_OverexcLimX2_efd2); + assign_map.emplace("OverexcLimX2.efd3", &assign_OverexcLimX2_efd3); + assign_map.emplace("OverexcLimX2.efddes", &assign_OverexcLimX2_efddes); + assign_map.emplace("OverexcLimX2.efdrated", &assign_OverexcLimX2_efdrated); + assign_map.emplace("OverexcLimX2.kmx", &assign_OverexcLimX2_kmx); + assign_map.emplace("OverexcLimX2.m", &assign_OverexcLimX2_m); + assign_map.emplace("OverexcLimX2.t1", &assign_OverexcLimX2_t1); + assign_map.emplace("OverexcLimX2.t2", &assign_OverexcLimX2_t2); + assign_map.emplace("OverexcLimX2.t3", &assign_OverexcLimX2_t3); + assign_map.emplace("OverexcLimX2.vlow", &assign_OverexcLimX2_vlow); } void OverexcLimX2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void OverexcLimX2::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimX2.efd1", &get_OverexcLimX2_efd1); - get_map.emplace("cim:OverexcLimX2.efd2", &get_OverexcLimX2_efd2); - get_map.emplace("cim:OverexcLimX2.efd3", &get_OverexcLimX2_efd3); - get_map.emplace("cim:OverexcLimX2.efddes", &get_OverexcLimX2_efddes); - get_map.emplace("cim:OverexcLimX2.efdrated", &get_OverexcLimX2_efdrated); - get_map.emplace("cim:OverexcLimX2.kmx", &get_OverexcLimX2_kmx); - get_map.emplace("cim:OverexcLimX2.m", &get_OverexcLimX2_m); - get_map.emplace("cim:OverexcLimX2.t1", &get_OverexcLimX2_t1); - get_map.emplace("cim:OverexcLimX2.t2", &get_OverexcLimX2_t2); - get_map.emplace("cim:OverexcLimX2.t3", &get_OverexcLimX2_t3); - get_map.emplace("cim:OverexcLimX2.vlow", &get_OverexcLimX2_vlow); + get_map.emplace("OverexcLimX2.efd1", &get_OverexcLimX2_efd1); + get_map.emplace("OverexcLimX2.efd2", &get_OverexcLimX2_efd2); + get_map.emplace("OverexcLimX2.efd3", &get_OverexcLimX2_efd3); + get_map.emplace("OverexcLimX2.efddes", &get_OverexcLimX2_efddes); + get_map.emplace("OverexcLimX2.efdrated", &get_OverexcLimX2_efdrated); + get_map.emplace("OverexcLimX2.kmx", &get_OverexcLimX2_kmx); + get_map.emplace("OverexcLimX2.m", &get_OverexcLimX2_m); + get_map.emplace("OverexcLimX2.t1", &get_OverexcLimX2_t1); + get_map.emplace("OverexcLimX2.t2", &get_OverexcLimX2_t2); + get_map.emplace("OverexcLimX2.t3", &get_OverexcLimX2_t3); + get_map.emplace("OverexcLimX2.vlow", &get_OverexcLimX2_vlow); } void OverexcLimX2::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void OverexcLimX2::addEnumGetFnsToMap(std::map& get_m OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimX2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimX2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimX2::declare() { return BaseClassDefiner(OverexcLimX2::addConstructToMap, OverexcLimX2::addPrimitiveAssignFnsToMap, OverexcLimX2::addClassAssignFnsToMap, OverexcLimX2::debugName); } +std::map OverexcLimX2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimX2_factory() diff --git a/CGMES_2.4.15_27JAN2020/OverexcLimX2.hpp b/CGMES_2.4.15_27JAN2020/OverexcLimX2.hpp index c361d076c..c9e1f2727 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcLimX2.hpp +++ b/CGMES_2.4.15_27JAN2020/OverexcLimX2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimX2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OverexcitationLimiterDynamics.cpp b/CGMES_2.4.15_27JAN2020/OverexcitationLimiterDynamics.cpp index bab89ee82..75fe225b5 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcitationLimiterDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/OverexcitationLimiterDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcitationLimiterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcitationLimiterDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcitationLimiterDynamics::OverexcitationLimiterDynamics() : ExcitationSystemDynamics(nullptr) {} OverexcitationLimiterDynamics::~OverexcitationLimiterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcitationLimiterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcitationLimiterDynamics::getClassNamespaceUrl() const { - { "cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcitationLimiterDynamics::getPossibleProfilesForClass() const +const std::string& OverexcitationLimiterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcitationLimiterDynamics::getPossibleProfilesForAttributes() const +const std::list& OverexcitationLimiterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcitationLimiterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcitationLimiterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcitationLimiterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* OverexcitationLimiterDynamics::debugString() const void OverexcitationLimiterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcitationLimiterDynamics", &OverexcitationLimiterDynamics_factory); + factory_map.emplace("OverexcitationLimiterDynamics", &OverexcitationLimiterDynamics_factory); } void OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void OverexcitationLimiterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_OverexcitationLimiterDynamics_ExcitationSystemDynamics); + assign_map.emplace("OverexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_OverexcitationLimiterDynamics_ExcitationSystemDynamics); } void OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", &get_OverexcitationLimiterDynamics_ExcitationSystemDynamics); + get_map.emplace("OverexcitationLimiterDynamics.ExcitationSystemDynamics", &get_OverexcitationLimiterDynamics_ExcitationSystemDynamics); } void OverexcitationLimiterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void OverexcitationLimiterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner OverexcitationLimiterDynamics::declare() { return BaseClassDefiner(OverexcitationLimiterDynamics::addConstructToMap, OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap, OverexcitationLimiterDynamics::addClassAssignFnsToMap, OverexcitationLimiterDynamics::debugName); } +std::map OverexcitationLimiterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcitationLimiterDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/OverexcitationLimiterDynamics.hpp b/CGMES_2.4.15_27JAN2020/OverexcitationLimiterDynamics.hpp index ec4713524..d68d986a1 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcitationLimiterDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/OverexcitationLimiterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcitationLimiterDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/OverexcitationLimiterUserDefined.cpp b/CGMES_2.4.15_27JAN2020/OverexcitationLimiterUserDefined.cpp index 18a97fc36..efc5084c1 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcitationLimiterUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/OverexcitationLimiterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcitationLimiterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "OverexcitationLimiterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcitationLimiterUserDefined::OverexcitationLimiterUserDefined() {} OverexcitationLimiterUserDefined::~OverexcitationLimiterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcitationLimiterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcitationLimiterUserDefined::getClassNamespaceUrl() const { - { "cim:OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:OverexcitationLimiterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcitationLimiterUserDefined::getPossibleProfilesForClass() const +const std::string& OverexcitationLimiterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcitationLimiterUserDefined::getPossibleProfilesForAttributes() const +const std::list& OverexcitationLimiterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcitationLimiterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcitationLimiterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcitationLimiterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* OverexcitationLimiterUserDefined::debugString() const void OverexcitationLimiterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcitationLimiterUserDefined", &OverexcitationLimiterUserDefined_factory); + factory_map.emplace("OverexcitationLimiterUserDefined", &OverexcitationLimiterUserDefined_factory); } void OverexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterUserDefined.proprietary", &assign_OverexcitationLimiterUserDefined_proprietary); + assign_map.emplace("OverexcitationLimiterUserDefined.proprietary", &assign_OverexcitationLimiterUserDefined_proprietary); } void OverexcitationLimiterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_OverexcitationLimiterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_OverexcitationLimiterUserDefined_ProprietaryParameterDynamics); } void OverexcitationLimiterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcitationLimiterUserDefined.proprietary", &get_OverexcitationLimiterUserDefined_proprietary); + get_map.emplace("OverexcitationLimiterUserDefined.proprietary", &get_OverexcitationLimiterUserDefined_proprietary); } void OverexcitationLimiterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void OverexcitationLimiterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner OverexcitationLimiterUserDefined::declare() { return BaseClassDefiner(OverexcitationLimiterUserDefined::addConstructToMap, OverexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap, OverexcitationLimiterUserDefined::addClassAssignFnsToMap, OverexcitationLimiterUserDefined::debugName); } +std::map OverexcitationLimiterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcitationLimiterUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/OverexcitationLimiterUserDefined.hpp b/CGMES_2.4.15_27JAN2020/OverexcitationLimiterUserDefined.hpp index 385c02fb4..201dbcdad 100644 --- a/CGMES_2.4.15_27JAN2020/OverexcitationLimiterUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/OverexcitationLimiterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcitationLimiterUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArControllerType1Dynamics.cpp b/CGMES_2.4.15_27JAN2020/PFVArControllerType1Dynamics.cpp index a9e1de1b5..171203216 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArControllerType1Dynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArControllerType1Dynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType1Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType1Dynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1Dynamics.VoltageAdjusterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType1Dynamics::PFVArControllerType1Dynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr), VoltageAdjusterDynamics(nullptr) {} PFVArControllerType1Dynamics::~PFVArControllerType1Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType1Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType1Dynamics::getClassNamespaceUrl() const { - { "cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1Dynamics.VoltageAdjusterDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType1Dynamics::getPossibleProfilesForClass() const +const std::string& PFVArControllerType1Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType1Dynamics::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType1Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType1Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType1Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType1Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics(BaseClass*, BaseClass*); @@ -119,7 +151,7 @@ const char* PFVArControllerType1Dynamics::debugString() const void PFVArControllerType1Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType1Dynamics", &PFVArControllerType1Dynamics_factory); + factory_map.emplace("PFVArControllerType1Dynamics", &PFVArControllerType1Dynamics_factory); } void PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -128,9 +160,9 @@ void PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map void PFVArControllerType1Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType1Dynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:PFVArControllerType1Dynamics.RemoteInputSignal", &assign_PFVArControllerType1Dynamics_RemoteInputSignal); - assign_map.emplace("cim:PFVArControllerType1Dynamics.VoltageAdjusterDynamics", &assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics); + assign_map.emplace("PFVArControllerType1Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType1Dynamics_ExcitationSystemDynamics); + assign_map.emplace("PFVArControllerType1Dynamics.RemoteInputSignal", &assign_PFVArControllerType1Dynamics_RemoteInputSignal); + assign_map.emplace("PFVArControllerType1Dynamics.VoltageAdjusterDynamics", &assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics); } void PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -141,7 +173,7 @@ void PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType1Dynamics_ExcitationSystemDynamics); + get_map.emplace("PFVArControllerType1Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType1Dynamics_ExcitationSystemDynamics); } void PFVArControllerType1Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -149,11 +181,25 @@ void PFVArControllerType1Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType1Dynamics::declare() { return BaseClassDefiner(PFVArControllerType1Dynamics::addConstructToMap, PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap, PFVArControllerType1Dynamics::addClassAssignFnsToMap, PFVArControllerType1Dynamics::debugName); } +std::map PFVArControllerType1Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType1Dynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArControllerType1Dynamics.hpp b/CGMES_2.4.15_27JAN2020/PFVArControllerType1Dynamics.hpp index 722dc238b..370559ca9 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArControllerType1Dynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArControllerType1Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType1Dynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArControllerType1UserDefined.cpp b/CGMES_2.4.15_27JAN2020/PFVArControllerType1UserDefined.cpp index 10b773647..51f44e3a8 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArControllerType1UserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArControllerType1UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType1UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType1UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType1UserDefined::PFVArControllerType1UserDefined() {} PFVArControllerType1UserDefined::~PFVArControllerType1UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType1UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType1UserDefined::getClassNamespaceUrl() const { - { "cim:PFVArControllerType1UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType1UserDefined::getPossibleProfilesForClass() const +const std::string& PFVArControllerType1UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType1UserDefined::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType1UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType1UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType1UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType1UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PFVArControllerType1UserDefined::debugString() const void PFVArControllerType1UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType1UserDefined", &PFVArControllerType1UserDefined_factory); + factory_map.emplace("PFVArControllerType1UserDefined", &PFVArControllerType1UserDefined_factory); } void PFVArControllerType1UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1UserDefined.proprietary", &assign_PFVArControllerType1UserDefined_proprietary); + assign_map.emplace("PFVArControllerType1UserDefined.proprietary", &assign_PFVArControllerType1UserDefined_proprietary); } void PFVArControllerType1UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType1UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PFVArControllerType1UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType1UserDefined_ProprietaryParameterDynamics); } void PFVArControllerType1UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType1UserDefined.proprietary", &get_PFVArControllerType1UserDefined_proprietary); + get_map.emplace("PFVArControllerType1UserDefined.proprietary", &get_PFVArControllerType1UserDefined_proprietary); } void PFVArControllerType1UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PFVArControllerType1UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType1UserDefined::declare() { return BaseClassDefiner(PFVArControllerType1UserDefined::addConstructToMap, PFVArControllerType1UserDefined::addPrimitiveAssignFnsToMap, PFVArControllerType1UserDefined::addClassAssignFnsToMap, PFVArControllerType1UserDefined::debugName); } +std::map PFVArControllerType1UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType1UserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArControllerType1UserDefined.hpp b/CGMES_2.4.15_27JAN2020/PFVArControllerType1UserDefined.hpp index c324b0c9f..6aa0afd40 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArControllerType1UserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArControllerType1UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType1UserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArControllerType2Dynamics.cpp b/CGMES_2.4.15_27JAN2020/PFVArControllerType2Dynamics.cpp index e6c875b3a..60885d0c7 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArControllerType2Dynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArControllerType2Dynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType2Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType2Dynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType2Dynamics::PFVArControllerType2Dynamics() : ExcitationSystemDynamics(nullptr) {} PFVArControllerType2Dynamics::~PFVArControllerType2Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType2Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType2Dynamics::getClassNamespaceUrl() const { - { "cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType2Dynamics::getPossibleProfilesForClass() const +const std::string& PFVArControllerType2Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType2Dynamics::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType2Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType2Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType2Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType2Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* PFVArControllerType2Dynamics::debugString() const void PFVArControllerType2Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType2Dynamics", &PFVArControllerType2Dynamics_factory); + factory_map.emplace("PFVArControllerType2Dynamics", &PFVArControllerType2Dynamics_factory); } void PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map void PFVArControllerType2Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType2Dynamics_ExcitationSystemDynamics); + assign_map.emplace("PFVArControllerType2Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType2Dynamics_ExcitationSystemDynamics); } void PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType2Dynamics_ExcitationSystemDynamics); + get_map.emplace("PFVArControllerType2Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType2Dynamics_ExcitationSystemDynamics); } void PFVArControllerType2Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void PFVArControllerType2Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType2Dynamics::declare() { return BaseClassDefiner(PFVArControllerType2Dynamics::addConstructToMap, PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap, PFVArControllerType2Dynamics::addClassAssignFnsToMap, PFVArControllerType2Dynamics::debugName); } +std::map PFVArControllerType2Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType2Dynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArControllerType2Dynamics.hpp b/CGMES_2.4.15_27JAN2020/PFVArControllerType2Dynamics.hpp index 28e466647..b945ca07f 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArControllerType2Dynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArControllerType2Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType2Dynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArControllerType2UserDefined.cpp b/CGMES_2.4.15_27JAN2020/PFVArControllerType2UserDefined.cpp index 166ceecea..a7370aaca 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArControllerType2UserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArControllerType2UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType2UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType2UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArControllerType2UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType2UserDefined::PFVArControllerType2UserDefined() {} PFVArControllerType2UserDefined::~PFVArControllerType2UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType2UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType2UserDefined::getClassNamespaceUrl() const { - { "cim:PFVArControllerType2UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType2UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType2UserDefined::getPossibleProfilesForClass() const +const std::string& PFVArControllerType2UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType2UserDefined::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType2UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType2UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType2UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType2UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PFVArControllerType2UserDefined::debugString() const void PFVArControllerType2UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType2UserDefined", &PFVArControllerType2UserDefined_factory); + factory_map.emplace("PFVArControllerType2UserDefined", &PFVArControllerType2UserDefined_factory); } void PFVArControllerType2UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2UserDefined.proprietary", &assign_PFVArControllerType2UserDefined_proprietary); + assign_map.emplace("PFVArControllerType2UserDefined.proprietary", &assign_PFVArControllerType2UserDefined_proprietary); } void PFVArControllerType2UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType2UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PFVArControllerType2UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType2UserDefined_ProprietaryParameterDynamics); } void PFVArControllerType2UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType2UserDefined.proprietary", &get_PFVArControllerType2UserDefined_proprietary); + get_map.emplace("PFVArControllerType2UserDefined.proprietary", &get_PFVArControllerType2UserDefined_proprietary); } void PFVArControllerType2UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PFVArControllerType2UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType2UserDefined::declare() { return BaseClassDefiner(PFVArControllerType2UserDefined::addConstructToMap, PFVArControllerType2UserDefined::addPrimitiveAssignFnsToMap, PFVArControllerType2UserDefined::addClassAssignFnsToMap, PFVArControllerType2UserDefined::debugName); } +std::map PFVArControllerType2UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType2UserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArControllerType2UserDefined.hpp b/CGMES_2.4.15_27JAN2020/PFVArControllerType2UserDefined.hpp index 7a58fa35b..af723ff2e 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArControllerType2UserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArControllerType2UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType2UserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArType1IEEEPFController.cpp b/CGMES_2.4.15_27JAN2020/PFVArType1IEEEPFController.cpp index 0bce66721..76e634baa 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType1IEEEPFController.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType1IEEEPFController.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType1IEEEPFController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType1IEEEPFController.ovex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.tpfc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vitmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpfcbw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpfref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vvtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vvtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType1IEEEPFController::PFVArType1IEEEPFController() {} PFVArType1IEEEPFController::~PFVArType1IEEEPFController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType1IEEEPFController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType1IEEEPFController::getClassNamespaceUrl() const { - { "cim:PFVArType1IEEEPFController.ovex", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.tpfc", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vitmin", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpf", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpfcbw", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpfref", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vvtmax", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vvtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType1IEEEPFController::getPossibleProfilesForClass() const +const std::string& PFVArType1IEEEPFController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType1IEEEPFController::getPossibleProfilesForAttributes() const +const std::list& PFVArType1IEEEPFController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType1IEEEPFController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType1IEEEPFController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType1IEEEPFController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType1IEEEPFController_ovex(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* PFVArType1IEEEPFController::debugString() const void PFVArType1IEEEPFController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType1IEEEPFController", &PFVArType1IEEEPFController_factory); + factory_map.emplace("PFVArType1IEEEPFController", &PFVArType1IEEEPFController_factory); } void PFVArType1IEEEPFController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType1IEEEPFController.ovex", &assign_PFVArType1IEEEPFController_ovex); - assign_map.emplace("cim:PFVArType1IEEEPFController.tpfc", &assign_PFVArType1IEEEPFController_tpfc); - assign_map.emplace("cim:PFVArType1IEEEPFController.vitmin", &assign_PFVArType1IEEEPFController_vitmin); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpf", &assign_PFVArType1IEEEPFController_vpf); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpfcbw", &assign_PFVArType1IEEEPFController_vpfcbw); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpfref", &assign_PFVArType1IEEEPFController_vpfref); - assign_map.emplace("cim:PFVArType1IEEEPFController.vvtmax", &assign_PFVArType1IEEEPFController_vvtmax); - assign_map.emplace("cim:PFVArType1IEEEPFController.vvtmin", &assign_PFVArType1IEEEPFController_vvtmin); + assign_map.emplace("PFVArType1IEEEPFController.ovex", &assign_PFVArType1IEEEPFController_ovex); + assign_map.emplace("PFVArType1IEEEPFController.tpfc", &assign_PFVArType1IEEEPFController_tpfc); + assign_map.emplace("PFVArType1IEEEPFController.vitmin", &assign_PFVArType1IEEEPFController_vitmin); + assign_map.emplace("PFVArType1IEEEPFController.vpf", &assign_PFVArType1IEEEPFController_vpf); + assign_map.emplace("PFVArType1IEEEPFController.vpfcbw", &assign_PFVArType1IEEEPFController_vpfcbw); + assign_map.emplace("PFVArType1IEEEPFController.vpfref", &assign_PFVArType1IEEEPFController_vpfref); + assign_map.emplace("PFVArType1IEEEPFController.vvtmax", &assign_PFVArType1IEEEPFController_vvtmax); + assign_map.emplace("PFVArType1IEEEPFController.vvtmin", &assign_PFVArType1IEEEPFController_vvtmin); } void PFVArType1IEEEPFController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void PFVArType1IEEEPFController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType1IEEEPFController.ovex", &get_PFVArType1IEEEPFController_ovex); - get_map.emplace("cim:PFVArType1IEEEPFController.tpfc", &get_PFVArType1IEEEPFController_tpfc); - get_map.emplace("cim:PFVArType1IEEEPFController.vitmin", &get_PFVArType1IEEEPFController_vitmin); - get_map.emplace("cim:PFVArType1IEEEPFController.vpf", &get_PFVArType1IEEEPFController_vpf); - get_map.emplace("cim:PFVArType1IEEEPFController.vpfcbw", &get_PFVArType1IEEEPFController_vpfcbw); - get_map.emplace("cim:PFVArType1IEEEPFController.vpfref", &get_PFVArType1IEEEPFController_vpfref); - get_map.emplace("cim:PFVArType1IEEEPFController.vvtmax", &get_PFVArType1IEEEPFController_vvtmax); - get_map.emplace("cim:PFVArType1IEEEPFController.vvtmin", &get_PFVArType1IEEEPFController_vvtmin); + get_map.emplace("PFVArType1IEEEPFController.ovex", &get_PFVArType1IEEEPFController_ovex); + get_map.emplace("PFVArType1IEEEPFController.tpfc", &get_PFVArType1IEEEPFController_tpfc); + get_map.emplace("PFVArType1IEEEPFController.vitmin", &get_PFVArType1IEEEPFController_vitmin); + get_map.emplace("PFVArType1IEEEPFController.vpf", &get_PFVArType1IEEEPFController_vpf); + get_map.emplace("PFVArType1IEEEPFController.vpfcbw", &get_PFVArType1IEEEPFController_vpfcbw); + get_map.emplace("PFVArType1IEEEPFController.vpfref", &get_PFVArType1IEEEPFController_vpfref); + get_map.emplace("PFVArType1IEEEPFController.vvtmax", &get_PFVArType1IEEEPFController_vvtmax); + get_map.emplace("PFVArType1IEEEPFController.vvtmin", &get_PFVArType1IEEEPFController_vvtmin); } void PFVArType1IEEEPFController::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void PFVArType1IEEEPFController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType1IEEEPFController::declare() { return BaseClassDefiner(PFVArType1IEEEPFController::addConstructToMap, PFVArType1IEEEPFController::addPrimitiveAssignFnsToMap, PFVArType1IEEEPFController::addClassAssignFnsToMap, PFVArType1IEEEPFController::debugName); } +std::map PFVArType1IEEEPFController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType1IEEEPFController_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArType1IEEEPFController.hpp b/CGMES_2.4.15_27JAN2020/PFVArType1IEEEPFController.hpp index 752d31f36..f7a82252e 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType1IEEEPFController.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType1IEEEPFController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType1IEEEPFController_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArType1IEEEVArController.cpp b/CGMES_2.4.15_27JAN2020/PFVArType1IEEEVArController.cpp index 589dd60a6..c900b080a 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType1IEEEVArController.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType1IEEEVArController.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType1IEEEVArController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType1IEEEVArController.tvarc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvar", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvarcbw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvarref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvtmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvtmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType1IEEEVArController::PFVArType1IEEEVArController() {} PFVArType1IEEEVArController::~PFVArType1IEEEVArController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType1IEEEVArController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType1IEEEVArController::getClassNamespaceUrl() const { - { "cim:PFVArType1IEEEVArController.tvarc", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvar", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvarcbw", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvarref", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvtmax", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType1IEEEVArController::getPossibleProfilesForClass() const +const std::string& PFVArType1IEEEVArController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType1IEEEVArController::getPossibleProfilesForAttributes() const +const std::list& PFVArType1IEEEVArController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType1IEEEVArController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType1IEEEVArController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType1IEEEVArController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType1IEEEVArController_tvarc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* PFVArType1IEEEVArController::debugString() const void PFVArType1IEEEVArController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType1IEEEVArController", &PFVArType1IEEEVArController_factory); + factory_map.emplace("PFVArType1IEEEVArController", &PFVArType1IEEEVArController_factory); } void PFVArType1IEEEVArController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType1IEEEVArController.tvarc", &assign_PFVArType1IEEEVArController_tvarc); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvar", &assign_PFVArType1IEEEVArController_vvar); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvarcbw", &assign_PFVArType1IEEEVArController_vvarcbw); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvarref", &assign_PFVArType1IEEEVArController_vvarref); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvtmax", &assign_PFVArType1IEEEVArController_vvtmax); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvtmin", &assign_PFVArType1IEEEVArController_vvtmin); + assign_map.emplace("PFVArType1IEEEVArController.tvarc", &assign_PFVArType1IEEEVArController_tvarc); + assign_map.emplace("PFVArType1IEEEVArController.vvar", &assign_PFVArType1IEEEVArController_vvar); + assign_map.emplace("PFVArType1IEEEVArController.vvarcbw", &assign_PFVArType1IEEEVArController_vvarcbw); + assign_map.emplace("PFVArType1IEEEVArController.vvarref", &assign_PFVArType1IEEEVArController_vvarref); + assign_map.emplace("PFVArType1IEEEVArController.vvtmax", &assign_PFVArType1IEEEVArController_vvtmax); + assign_map.emplace("PFVArType1IEEEVArController.vvtmin", &assign_PFVArType1IEEEVArController_vvtmin); } void PFVArType1IEEEVArController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void PFVArType1IEEEVArController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType1IEEEVArController.tvarc", &get_PFVArType1IEEEVArController_tvarc); - get_map.emplace("cim:PFVArType1IEEEVArController.vvar", &get_PFVArType1IEEEVArController_vvar); - get_map.emplace("cim:PFVArType1IEEEVArController.vvarcbw", &get_PFVArType1IEEEVArController_vvarcbw); - get_map.emplace("cim:PFVArType1IEEEVArController.vvarref", &get_PFVArType1IEEEVArController_vvarref); - get_map.emplace("cim:PFVArType1IEEEVArController.vvtmax", &get_PFVArType1IEEEVArController_vvtmax); - get_map.emplace("cim:PFVArType1IEEEVArController.vvtmin", &get_PFVArType1IEEEVArController_vvtmin); + get_map.emplace("PFVArType1IEEEVArController.tvarc", &get_PFVArType1IEEEVArController_tvarc); + get_map.emplace("PFVArType1IEEEVArController.vvar", &get_PFVArType1IEEEVArController_vvar); + get_map.emplace("PFVArType1IEEEVArController.vvarcbw", &get_PFVArType1IEEEVArController_vvarcbw); + get_map.emplace("PFVArType1IEEEVArController.vvarref", &get_PFVArType1IEEEVArController_vvarref); + get_map.emplace("PFVArType1IEEEVArController.vvtmax", &get_PFVArType1IEEEVArController_vvtmax); + get_map.emplace("PFVArType1IEEEVArController.vvtmin", &get_PFVArType1IEEEVArController_vvtmin); } void PFVArType1IEEEVArController::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void PFVArType1IEEEVArController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType1IEEEVArController::declare() { return BaseClassDefiner(PFVArType1IEEEVArController::addConstructToMap, PFVArType1IEEEVArController::addPrimitiveAssignFnsToMap, PFVArType1IEEEVArController::addClassAssignFnsToMap, PFVArType1IEEEVArController::debugName); } +std::map PFVArType1IEEEVArController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType1IEEEVArController_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArType1IEEEVArController.hpp b/CGMES_2.4.15_27JAN2020/PFVArType1IEEEVArController.hpp index ccc74b4a4..88c05d87b 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType1IEEEVArController.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType1IEEEVArController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType1IEEEVArController_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArType2Common1.cpp b/CGMES_2.4.15_27JAN2020/PFVArType2Common1.cpp index 8bd6aecd5..a45e2b666 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType2Common1.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType2Common1.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2Common1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2Common1.j", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.ref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2Common1::PFVArType2Common1() {} PFVArType2Common1::~PFVArType2Common1() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2Common1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2Common1::getClassNamespaceUrl() const { - { "cim:PFVArType2Common1.j", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.max", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.ref", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2Common1::getPossibleProfilesForClass() const +const std::string& PFVArType2Common1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2Common1::getPossibleProfilesForAttributes() const +const std::list& PFVArType2Common1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2Common1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2Common1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2Common1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2Common1_j(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* PFVArType2Common1::debugString() const void PFVArType2Common1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2Common1", &PFVArType2Common1_factory); + factory_map.emplace("PFVArType2Common1", &PFVArType2Common1_factory); } void PFVArType2Common1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2Common1.j", &assign_PFVArType2Common1_j); - assign_map.emplace("cim:PFVArType2Common1.ki", &assign_PFVArType2Common1_ki); - assign_map.emplace("cim:PFVArType2Common1.kp", &assign_PFVArType2Common1_kp); - assign_map.emplace("cim:PFVArType2Common1.max", &assign_PFVArType2Common1_max); - assign_map.emplace("cim:PFVArType2Common1.ref", &assign_PFVArType2Common1_ref); + assign_map.emplace("PFVArType2Common1.j", &assign_PFVArType2Common1_j); + assign_map.emplace("PFVArType2Common1.ki", &assign_PFVArType2Common1_ki); + assign_map.emplace("PFVArType2Common1.kp", &assign_PFVArType2Common1_kp); + assign_map.emplace("PFVArType2Common1.max", &assign_PFVArType2Common1_max); + assign_map.emplace("PFVArType2Common1.ref", &assign_PFVArType2Common1_ref); } void PFVArType2Common1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void PFVArType2Common1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2Common1.j", &get_PFVArType2Common1_j); - get_map.emplace("cim:PFVArType2Common1.ki", &get_PFVArType2Common1_ki); - get_map.emplace("cim:PFVArType2Common1.kp", &get_PFVArType2Common1_kp); - get_map.emplace("cim:PFVArType2Common1.max", &get_PFVArType2Common1_max); - get_map.emplace("cim:PFVArType2Common1.ref", &get_PFVArType2Common1_ref); + get_map.emplace("PFVArType2Common1.j", &get_PFVArType2Common1_j); + get_map.emplace("PFVArType2Common1.ki", &get_PFVArType2Common1_ki); + get_map.emplace("PFVArType2Common1.kp", &get_PFVArType2Common1_kp); + get_map.emplace("PFVArType2Common1.max", &get_PFVArType2Common1_max); + get_map.emplace("PFVArType2Common1.ref", &get_PFVArType2Common1_ref); } void PFVArType2Common1::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void PFVArType2Common1::addEnumGetFnsToMap(std::map& PFVArControllerType2Dynamics::addEnumGetFnsToMap(get_map); } +bool PFVArType2Common1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PFVArType2Common1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2Common1::declare() { return BaseClassDefiner(PFVArType2Common1::addConstructToMap, PFVArType2Common1::addPrimitiveAssignFnsToMap, PFVArType2Common1::addClassAssignFnsToMap, PFVArType2Common1::debugName); } +std::map PFVArType2Common1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2Common1_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArType2Common1.hpp b/CGMES_2.4.15_27JAN2020/PFVArType2Common1.hpp index e6ccc4d7a..8fdc553db 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType2Common1.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType2Common1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2Common1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArType2IEEEPFController.cpp b/CGMES_2.4.15_27JAN2020/PFVArType2IEEEPFController.cpp index bdf95df85..854d75aeb 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType2IEEEPFController.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType2IEEEPFController.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2IEEEPFController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2IEEEPFController.exlon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.pfref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vclmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2IEEEPFController::PFVArType2IEEEPFController() {} PFVArType2IEEEPFController::~PFVArType2IEEEPFController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2IEEEPFController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2IEEEPFController::getClassNamespaceUrl() const { - { "cim:PFVArType2IEEEPFController.exlon", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.pfref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vclmt", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2IEEEPFController::getPossibleProfilesForClass() const +const std::string& PFVArType2IEEEPFController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2IEEEPFController::getPossibleProfilesForAttributes() const +const std::list& PFVArType2IEEEPFController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2IEEEPFController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2IEEEPFController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2IEEEPFController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2IEEEPFController_exlon(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PFVArType2IEEEPFController::debugString() const void PFVArType2IEEEPFController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2IEEEPFController", &PFVArType2IEEEPFController_factory); + factory_map.emplace("PFVArType2IEEEPFController", &PFVArType2IEEEPFController_factory); } void PFVArType2IEEEPFController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2IEEEPFController.exlon", &assign_PFVArType2IEEEPFController_exlon); - assign_map.emplace("cim:PFVArType2IEEEPFController.ki", &assign_PFVArType2IEEEPFController_ki); - assign_map.emplace("cim:PFVArType2IEEEPFController.kp", &assign_PFVArType2IEEEPFController_kp); - assign_map.emplace("cim:PFVArType2IEEEPFController.pfref", &assign_PFVArType2IEEEPFController_pfref); - assign_map.emplace("cim:PFVArType2IEEEPFController.vclmt", &assign_PFVArType2IEEEPFController_vclmt); - assign_map.emplace("cim:PFVArType2IEEEPFController.vref", &assign_PFVArType2IEEEPFController_vref); - assign_map.emplace("cim:PFVArType2IEEEPFController.vs", &assign_PFVArType2IEEEPFController_vs); + assign_map.emplace("PFVArType2IEEEPFController.exlon", &assign_PFVArType2IEEEPFController_exlon); + assign_map.emplace("PFVArType2IEEEPFController.ki", &assign_PFVArType2IEEEPFController_ki); + assign_map.emplace("PFVArType2IEEEPFController.kp", &assign_PFVArType2IEEEPFController_kp); + assign_map.emplace("PFVArType2IEEEPFController.pfref", &assign_PFVArType2IEEEPFController_pfref); + assign_map.emplace("PFVArType2IEEEPFController.vclmt", &assign_PFVArType2IEEEPFController_vclmt); + assign_map.emplace("PFVArType2IEEEPFController.vref", &assign_PFVArType2IEEEPFController_vref); + assign_map.emplace("PFVArType2IEEEPFController.vs", &assign_PFVArType2IEEEPFController_vs); } void PFVArType2IEEEPFController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void PFVArType2IEEEPFController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2IEEEPFController.exlon", &get_PFVArType2IEEEPFController_exlon); - get_map.emplace("cim:PFVArType2IEEEPFController.ki", &get_PFVArType2IEEEPFController_ki); - get_map.emplace("cim:PFVArType2IEEEPFController.kp", &get_PFVArType2IEEEPFController_kp); - get_map.emplace("cim:PFVArType2IEEEPFController.pfref", &get_PFVArType2IEEEPFController_pfref); - get_map.emplace("cim:PFVArType2IEEEPFController.vclmt", &get_PFVArType2IEEEPFController_vclmt); - get_map.emplace("cim:PFVArType2IEEEPFController.vref", &get_PFVArType2IEEEPFController_vref); - get_map.emplace("cim:PFVArType2IEEEPFController.vs", &get_PFVArType2IEEEPFController_vs); + get_map.emplace("PFVArType2IEEEPFController.exlon", &get_PFVArType2IEEEPFController_exlon); + get_map.emplace("PFVArType2IEEEPFController.ki", &get_PFVArType2IEEEPFController_ki); + get_map.emplace("PFVArType2IEEEPFController.kp", &get_PFVArType2IEEEPFController_kp); + get_map.emplace("PFVArType2IEEEPFController.pfref", &get_PFVArType2IEEEPFController_pfref); + get_map.emplace("PFVArType2IEEEPFController.vclmt", &get_PFVArType2IEEEPFController_vclmt); + get_map.emplace("PFVArType2IEEEPFController.vref", &get_PFVArType2IEEEPFController_vref); + get_map.emplace("PFVArType2IEEEPFController.vs", &get_PFVArType2IEEEPFController_vs); } void PFVArType2IEEEPFController::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void PFVArType2IEEEPFController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2IEEEPFController::declare() { return BaseClassDefiner(PFVArType2IEEEPFController::addConstructToMap, PFVArType2IEEEPFController::addPrimitiveAssignFnsToMap, PFVArType2IEEEPFController::addClassAssignFnsToMap, PFVArType2IEEEPFController::debugName); } +std::map PFVArType2IEEEPFController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2IEEEPFController_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArType2IEEEPFController.hpp b/CGMES_2.4.15_27JAN2020/PFVArType2IEEEPFController.hpp index b75160448..91ba33e8c 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType2IEEEPFController.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType2IEEEPFController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2IEEEPFController_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PFVArType2IEEEVArController.cpp b/CGMES_2.4.15_27JAN2020/PFVArType2IEEEVArController.cpp index 56e3c29b0..876ee7302 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType2IEEEVArController.cpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType2IEEEVArController.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2IEEEVArController(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2IEEEVArController.exlon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.qref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vclmt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2IEEEVArController::PFVArType2IEEEVArController() {} PFVArType2IEEEVArController::~PFVArType2IEEEVArController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2IEEEVArController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2IEEEVArController::getClassNamespaceUrl() const { - { "cim:PFVArType2IEEEVArController.exlon", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.qref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vclmt", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2IEEEVArController::getPossibleProfilesForClass() const +const std::string& PFVArType2IEEEVArController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2IEEEVArController::getPossibleProfilesForAttributes() const +const std::list& PFVArType2IEEEVArController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2IEEEVArController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2IEEEVArController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2IEEEVArController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2IEEEVArController_exlon(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PFVArType2IEEEVArController::debugString() const void PFVArType2IEEEVArController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2IEEEVArController", &PFVArType2IEEEVArController_factory); + factory_map.emplace("PFVArType2IEEEVArController", &PFVArType2IEEEVArController_factory); } void PFVArType2IEEEVArController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2IEEEVArController.exlon", &assign_PFVArType2IEEEVArController_exlon); - assign_map.emplace("cim:PFVArType2IEEEVArController.ki", &assign_PFVArType2IEEEVArController_ki); - assign_map.emplace("cim:PFVArType2IEEEVArController.kp", &assign_PFVArType2IEEEVArController_kp); - assign_map.emplace("cim:PFVArType2IEEEVArController.qref", &assign_PFVArType2IEEEVArController_qref); - assign_map.emplace("cim:PFVArType2IEEEVArController.vclmt", &assign_PFVArType2IEEEVArController_vclmt); - assign_map.emplace("cim:PFVArType2IEEEVArController.vref", &assign_PFVArType2IEEEVArController_vref); - assign_map.emplace("cim:PFVArType2IEEEVArController.vs", &assign_PFVArType2IEEEVArController_vs); + assign_map.emplace("PFVArType2IEEEVArController.exlon", &assign_PFVArType2IEEEVArController_exlon); + assign_map.emplace("PFVArType2IEEEVArController.ki", &assign_PFVArType2IEEEVArController_ki); + assign_map.emplace("PFVArType2IEEEVArController.kp", &assign_PFVArType2IEEEVArController_kp); + assign_map.emplace("PFVArType2IEEEVArController.qref", &assign_PFVArType2IEEEVArController_qref); + assign_map.emplace("PFVArType2IEEEVArController.vclmt", &assign_PFVArType2IEEEVArController_vclmt); + assign_map.emplace("PFVArType2IEEEVArController.vref", &assign_PFVArType2IEEEVArController_vref); + assign_map.emplace("PFVArType2IEEEVArController.vs", &assign_PFVArType2IEEEVArController_vs); } void PFVArType2IEEEVArController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void PFVArType2IEEEVArController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2IEEEVArController.exlon", &get_PFVArType2IEEEVArController_exlon); - get_map.emplace("cim:PFVArType2IEEEVArController.ki", &get_PFVArType2IEEEVArController_ki); - get_map.emplace("cim:PFVArType2IEEEVArController.kp", &get_PFVArType2IEEEVArController_kp); - get_map.emplace("cim:PFVArType2IEEEVArController.qref", &get_PFVArType2IEEEVArController_qref); - get_map.emplace("cim:PFVArType2IEEEVArController.vclmt", &get_PFVArType2IEEEVArController_vclmt); - get_map.emplace("cim:PFVArType2IEEEVArController.vref", &get_PFVArType2IEEEVArController_vref); - get_map.emplace("cim:PFVArType2IEEEVArController.vs", &get_PFVArType2IEEEVArController_vs); + get_map.emplace("PFVArType2IEEEVArController.exlon", &get_PFVArType2IEEEVArController_exlon); + get_map.emplace("PFVArType2IEEEVArController.ki", &get_PFVArType2IEEEVArController_ki); + get_map.emplace("PFVArType2IEEEVArController.kp", &get_PFVArType2IEEEVArController_kp); + get_map.emplace("PFVArType2IEEEVArController.qref", &get_PFVArType2IEEEVArController_qref); + get_map.emplace("PFVArType2IEEEVArController.vclmt", &get_PFVArType2IEEEVArController_vclmt); + get_map.emplace("PFVArType2IEEEVArController.vref", &get_PFVArType2IEEEVArController_vref); + get_map.emplace("PFVArType2IEEEVArController.vs", &get_PFVArType2IEEEVArController_vs); } void PFVArType2IEEEVArController::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void PFVArType2IEEEVArController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2IEEEVArController::declare() { return BaseClassDefiner(PFVArType2IEEEVArController::addConstructToMap, PFVArType2IEEEVArController::addPrimitiveAssignFnsToMap, PFVArType2IEEEVArController::addClassAssignFnsToMap, PFVArType2IEEEVArController::debugName); } +std::map PFVArType2IEEEVArController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2IEEEVArController_factory() diff --git a/CGMES_2.4.15_27JAN2020/PFVArType2IEEEVArController.hpp b/CGMES_2.4.15_27JAN2020/PFVArType2IEEEVArController.hpp index e5a578551..6b01e5312 100644 --- a/CGMES_2.4.15_27JAN2020/PFVArType2IEEEVArController.hpp +++ b/CGMES_2.4.15_27JAN2020/PFVArType2IEEEVArController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Simple_Float.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2IEEEVArController_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PerLengthDCLineParameter.cpp b/CGMES_2.4.15_27JAN2020/PerLengthDCLineParameter.cpp index f92329e76..4d3f659ab 100644 --- a/CGMES_2.4.15_27JAN2020/PerLengthDCLineParameter.cpp +++ b/CGMES_2.4.15_27JAN2020/PerLengthDCLineParameter.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PerLengthDCLineParameter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PerLengthDCLineParameter.DCLineSegments", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.capacitance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.inductance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PerLengthDCLineParameter.resistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PerLengthDCLineParameter::PerLengthDCLineParameter() {} PerLengthDCLineParameter::~PerLengthDCLineParameter() {} -static const std::list PossibleProfilesForClass = +const std::list& PerLengthDCLineParameter::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PerLengthDCLineParameter::getClassNamespaceUrl() const { - { "cim:PerLengthDCLineParameter.DCLineSegments", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.capacitance", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.inductance", { CGMESProfile::EQ, } }, - { "cim:PerLengthDCLineParameter.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PerLengthDCLineParameter::getPossibleProfilesForClass() const +const std::string& PerLengthDCLineParameter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PerLengthDCLineParameter::getPossibleProfilesForAttributes() const +const std::list& PerLengthDCLineParameter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PerLengthDCLineParameter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PerLengthDCLineParameter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PerLengthDCLineParameter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCLineSegment_PerLengthParameter(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* PerLengthDCLineParameter::debugString() const void PerLengthDCLineParameter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PerLengthDCLineParameter", &PerLengthDCLineParameter_factory); + factory_map.emplace("PerLengthDCLineParameter", &PerLengthDCLineParameter_factory); } void PerLengthDCLineParameter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PerLengthDCLineParameter.capacitance", &assign_PerLengthDCLineParameter_capacitance); - assign_map.emplace("cim:PerLengthDCLineParameter.inductance", &assign_PerLengthDCLineParameter_inductance); - assign_map.emplace("cim:PerLengthDCLineParameter.resistance", &assign_PerLengthDCLineParameter_resistance); + assign_map.emplace("PerLengthDCLineParameter.capacitance", &assign_PerLengthDCLineParameter_capacitance); + assign_map.emplace("PerLengthDCLineParameter.inductance", &assign_PerLengthDCLineParameter_inductance); + assign_map.emplace("PerLengthDCLineParameter.resistance", &assign_PerLengthDCLineParameter_resistance); } void PerLengthDCLineParameter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PerLengthDCLineParameter.DCLineSegments", &assign_PerLengthDCLineParameter_DCLineSegments); + assign_map.emplace("PerLengthDCLineParameter.DCLineSegments", &assign_PerLengthDCLineParameter_DCLineSegments); } void PerLengthDCLineParameter::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PerLengthDCLineParameter.capacitance", &get_PerLengthDCLineParameter_capacitance); - get_map.emplace("cim:PerLengthDCLineParameter.inductance", &get_PerLengthDCLineParameter_inductance); - get_map.emplace("cim:PerLengthDCLineParameter.resistance", &get_PerLengthDCLineParameter_resistance); + get_map.emplace("PerLengthDCLineParameter.capacitance", &get_PerLengthDCLineParameter_capacitance); + get_map.emplace("PerLengthDCLineParameter.inductance", &get_PerLengthDCLineParameter_inductance); + get_map.emplace("PerLengthDCLineParameter.resistance", &get_PerLengthDCLineParameter_resistance); } void PerLengthDCLineParameter::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void PerLengthDCLineParameter::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PerLengthDCLineParameter::declare() { return BaseClassDefiner(PerLengthDCLineParameter::addConstructToMap, PerLengthDCLineParameter::addPrimitiveAssignFnsToMap, PerLengthDCLineParameter::addClassAssignFnsToMap, PerLengthDCLineParameter::debugName); } +std::map PerLengthDCLineParameter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PerLengthDCLineParameter_factory() diff --git a/CGMES_2.4.15_27JAN2020/PerLengthDCLineParameter.hpp b/CGMES_2.4.15_27JAN2020/PerLengthDCLineParameter.hpp index 5f5cadcde..b77b89271 100644 --- a/CGMES_2.4.15_27JAN2020/PerLengthDCLineParameter.hpp +++ b/CGMES_2.4.15_27JAN2020/PerLengthDCLineParameter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CapacitancePerLength.hpp" #include "InductancePerLength.hpp" #include "ResistancePerLength.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PerLengthDCLineParameter_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PetersenCoil.cpp b/CGMES_2.4.15_27JAN2020/PetersenCoil.cpp index d19f1fbad..3117b743e 100644 --- a/CGMES_2.4.15_27JAN2020/PetersenCoil.cpp +++ b/CGMES_2.4.15_27JAN2020/PetersenCoil.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PetersenCoil(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PetersenCoil.mode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.nominalU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.offsetCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.positionCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PetersenCoil.xGroundNominal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PetersenCoil::PetersenCoil() {} PetersenCoil::~PetersenCoil() {} -static const std::list PossibleProfilesForClass = +const std::list& PetersenCoil::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PetersenCoil::getClassNamespaceUrl() const { - { "cim:PetersenCoil.mode", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.nominalU", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.offsetCurrent", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.positionCurrent", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundMax", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundMin", { CGMESProfile::EQ, } }, - { "cim:PetersenCoil.xGroundNominal", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PetersenCoil::getPossibleProfilesForClass() const +const std::string& PetersenCoil::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PetersenCoil::getPossibleProfilesForAttributes() const +const std::list& PetersenCoil::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EarthFaultCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PetersenCoil::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PetersenCoil::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PetersenCoil::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PetersenCoil_mode(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PetersenCoil::debugString() const void PetersenCoil::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PetersenCoil", &PetersenCoil_factory); + factory_map.emplace("PetersenCoil", &PetersenCoil_factory); } void PetersenCoil::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PetersenCoil.mode", &assign_PetersenCoil_mode); - assign_map.emplace("cim:PetersenCoil.nominalU", &assign_PetersenCoil_nominalU); - assign_map.emplace("cim:PetersenCoil.offsetCurrent", &assign_PetersenCoil_offsetCurrent); - assign_map.emplace("cim:PetersenCoil.positionCurrent", &assign_PetersenCoil_positionCurrent); - assign_map.emplace("cim:PetersenCoil.xGroundMax", &assign_PetersenCoil_xGroundMax); - assign_map.emplace("cim:PetersenCoil.xGroundMin", &assign_PetersenCoil_xGroundMin); - assign_map.emplace("cim:PetersenCoil.xGroundNominal", &assign_PetersenCoil_xGroundNominal); + assign_map.emplace("PetersenCoil.mode", &assign_PetersenCoil_mode); + assign_map.emplace("PetersenCoil.nominalU", &assign_PetersenCoil_nominalU); + assign_map.emplace("PetersenCoil.offsetCurrent", &assign_PetersenCoil_offsetCurrent); + assign_map.emplace("PetersenCoil.positionCurrent", &assign_PetersenCoil_positionCurrent); + assign_map.emplace("PetersenCoil.xGroundMax", &assign_PetersenCoil_xGroundMax); + assign_map.emplace("PetersenCoil.xGroundMin", &assign_PetersenCoil_xGroundMin); + assign_map.emplace("PetersenCoil.xGroundNominal", &assign_PetersenCoil_xGroundNominal); } void PetersenCoil::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,12 +309,12 @@ void PetersenCoil::addClassAssignFnsToMap(std::unordered_map& get_map) const { EarthFaultCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PetersenCoil.nominalU", &get_PetersenCoil_nominalU); - get_map.emplace("cim:PetersenCoil.offsetCurrent", &get_PetersenCoil_offsetCurrent); - get_map.emplace("cim:PetersenCoil.positionCurrent", &get_PetersenCoil_positionCurrent); - get_map.emplace("cim:PetersenCoil.xGroundMax", &get_PetersenCoil_xGroundMax); - get_map.emplace("cim:PetersenCoil.xGroundMin", &get_PetersenCoil_xGroundMin); - get_map.emplace("cim:PetersenCoil.xGroundNominal", &get_PetersenCoil_xGroundNominal); + get_map.emplace("PetersenCoil.nominalU", &get_PetersenCoil_nominalU); + get_map.emplace("PetersenCoil.offsetCurrent", &get_PetersenCoil_offsetCurrent); + get_map.emplace("PetersenCoil.positionCurrent", &get_PetersenCoil_positionCurrent); + get_map.emplace("PetersenCoil.xGroundMax", &get_PetersenCoil_xGroundMax); + get_map.emplace("PetersenCoil.xGroundMin", &get_PetersenCoil_xGroundMin); + get_map.emplace("PetersenCoil.xGroundNominal", &get_PetersenCoil_xGroundNominal); } void PetersenCoil::addClassGetFnsToMap(std::map& get_map) const @@ -293,7 +325,13 @@ void PetersenCoil::addClassGetFnsToMap(std::map void PetersenCoil::addEnumGetFnsToMap(std::map& get_map) const { EarthFaultCompensator::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PetersenCoil.mode", &get_PetersenCoil_mode); + get_map.emplace("PetersenCoil.mode", &get_PetersenCoil_mode); +} + +bool PetersenCoil::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PetersenCoil" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PetersenCoil::declare() @@ -301,6 +339,14 @@ const BaseClassDefiner PetersenCoil::declare() return BaseClassDefiner(PetersenCoil::addConstructToMap, PetersenCoil::addPrimitiveAssignFnsToMap, PetersenCoil::addClassAssignFnsToMap, PetersenCoil::debugName); } +std::map PetersenCoil::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EarthFaultCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PetersenCoil_factory() diff --git a/CGMES_2.4.15_27JAN2020/PetersenCoil.hpp b/CGMES_2.4.15_27JAN2020/PetersenCoil.hpp index 3fcf3a91b..f775112be 100644 --- a/CGMES_2.4.15_27JAN2020/PetersenCoil.hpp +++ b/CGMES_2.4.15_27JAN2020/PetersenCoil.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EarthFaultCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" #include "PetersenCoilModeKind.hpp" #include "Reactance.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PetersenCoil_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChanger.cpp b/CGMES_2.4.15_27JAN2020/PhaseTapChanger.cpp index 7e542043f..3222bd6bd 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChanger.cpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChanger.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChanger.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChanger::PhaseTapChanger() : TransformerEnd(nullptr) {} PhaseTapChanger::~PhaseTapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChanger::getClassNamespaceUrl() const { - { "cim:PhaseTapChanger.TransformerEnd", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChanger::getPossibleProfilesForClass() const +const std::string& PhaseTapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChanger::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TransformerEnd_PhaseTapChanger(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* PhaseTapChanger::debugString() const void PhaseTapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChanger", &PhaseTapChanger_factory); + factory_map.emplace("PhaseTapChanger", &PhaseTapChanger_factory); } void PhaseTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void PhaseTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChanger.TransformerEnd", &assign_PhaseTapChanger_TransformerEnd); + assign_map.emplace("PhaseTapChanger.TransformerEnd", &assign_PhaseTapChanger_TransformerEnd); } void PhaseTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void PhaseTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChanger.TransformerEnd", &get_PhaseTapChanger_TransformerEnd); + get_map.emplace("PhaseTapChanger.TransformerEnd", &get_PhaseTapChanger_TransformerEnd); } void PhaseTapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void PhaseTapChanger::addEnumGetFnsToMap(std::map& ge TapChanger::addEnumGetFnsToMap(get_map); } +bool PhaseTapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PhaseTapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChanger::declare() { return BaseClassDefiner(PhaseTapChanger::addConstructToMap, PhaseTapChanger::addPrimitiveAssignFnsToMap, PhaseTapChanger::addClassAssignFnsToMap, PhaseTapChanger::debugName); } +std::map PhaseTapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChanger_factory() diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChanger.hpp b/CGMES_2.4.15_27JAN2020/PhaseTapChanger.hpp index 9fdaa4aa7..57a5f48f0 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChanger.hpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChanger_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerAsymmetrical.cpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerAsymmetrical.cpp index c8b178100..f0320297a 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerAsymmetrical.cpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerAsymmetrical.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerAsymmetrical(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerAsymmetrical.windingConnectionAngle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerAsymmetrical::PhaseTapChangerAsymmetrical() {} PhaseTapChangerAsymmetrical::~PhaseTapChangerAsymmetrical() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerAsymmetrical::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerAsymmetrical::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerAsymmetrical::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerAsymmetrical::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerAsymmetrical::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerAsymmetrical::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChangerNonLinear::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerAsymmetrical::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerAsymmetrical::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerAsymmetrical::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerAsymmetrical_windingConnectionAngle(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* PhaseTapChangerAsymmetrical::debugString() const void PhaseTapChangerAsymmetrical::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerAsymmetrical", &PhaseTapChangerAsymmetrical_factory); + factory_map.emplace("PhaseTapChangerAsymmetrical", &PhaseTapChangerAsymmetrical_factory); } void PhaseTapChangerAsymmetrical::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", &assign_PhaseTapChangerAsymmetrical_windingConnectionAngle); + assign_map.emplace("PhaseTapChangerAsymmetrical.windingConnectionAngle", &assign_PhaseTapChangerAsymmetrical_windingConnectionAngle); } void PhaseTapChangerAsymmetrical::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -92,7 +124,7 @@ void PhaseTapChangerAsymmetrical::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChangerNonLinear::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", &get_PhaseTapChangerAsymmetrical_windingConnectionAngle); + get_map.emplace("PhaseTapChangerAsymmetrical.windingConnectionAngle", &get_PhaseTapChangerAsymmetrical_windingConnectionAngle); } void PhaseTapChangerAsymmetrical::addClassGetFnsToMap(std::map& get_map) const @@ -105,11 +137,25 @@ void PhaseTapChangerAsymmetrical::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerAsymmetrical::declare() { return BaseClassDefiner(PhaseTapChangerAsymmetrical::addConstructToMap, PhaseTapChangerAsymmetrical::addPrimitiveAssignFnsToMap, PhaseTapChangerAsymmetrical::addClassAssignFnsToMap, PhaseTapChangerAsymmetrical::debugName); } +std::map PhaseTapChangerAsymmetrical::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChangerNonLinear::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerAsymmetrical_factory() diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerAsymmetrical.hpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerAsymmetrical.hpp index 580e7ca49..7b8b2f6e5 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerAsymmetrical.hpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerAsymmetrical.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChangerNonLinear.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerAsymmetrical_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerLinear.cpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerLinear.cpp index a54861567..a0f00663d 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerLinear.cpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerLinear.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerLinear.stepPhaseShiftIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerLinear.xMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerLinear.xMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerLinear::PhaseTapChangerLinear() {} PhaseTapChangerLinear::~PhaseTapChangerLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerLinear::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerLinear::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerLinear.xMax", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerLinear.xMin", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerLinear::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerLinear::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerLinear_stepPhaseShiftIncrement(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -137,14 +169,14 @@ const char* PhaseTapChangerLinear::debugString() const void PhaseTapChangerLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerLinear", &PhaseTapChangerLinear_factory); + factory_map.emplace("PhaseTapChangerLinear", &PhaseTapChangerLinear_factory); } void PhaseTapChangerLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", &assign_PhaseTapChangerLinear_stepPhaseShiftIncrement); - assign_map.emplace("cim:PhaseTapChangerLinear.xMax", &assign_PhaseTapChangerLinear_xMax); - assign_map.emplace("cim:PhaseTapChangerLinear.xMin", &assign_PhaseTapChangerLinear_xMin); + assign_map.emplace("PhaseTapChangerLinear.stepPhaseShiftIncrement", &assign_PhaseTapChangerLinear_stepPhaseShiftIncrement); + assign_map.emplace("PhaseTapChangerLinear.xMax", &assign_PhaseTapChangerLinear_xMax); + assign_map.emplace("PhaseTapChangerLinear.xMin", &assign_PhaseTapChangerLinear_xMin); } void PhaseTapChangerLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void PhaseTapChangerLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", &get_PhaseTapChangerLinear_stepPhaseShiftIncrement); - get_map.emplace("cim:PhaseTapChangerLinear.xMax", &get_PhaseTapChangerLinear_xMax); - get_map.emplace("cim:PhaseTapChangerLinear.xMin", &get_PhaseTapChangerLinear_xMin); + get_map.emplace("PhaseTapChangerLinear.stepPhaseShiftIncrement", &get_PhaseTapChangerLinear_stepPhaseShiftIncrement); + get_map.emplace("PhaseTapChangerLinear.xMax", &get_PhaseTapChangerLinear_xMax); + get_map.emplace("PhaseTapChangerLinear.xMin", &get_PhaseTapChangerLinear_xMin); } void PhaseTapChangerLinear::addClassGetFnsToMap(std::map& get_map) const @@ -169,11 +201,25 @@ void PhaseTapChangerLinear::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerLinear::declare() { return BaseClassDefiner(PhaseTapChangerLinear::addConstructToMap, PhaseTapChangerLinear::addPrimitiveAssignFnsToMap, PhaseTapChangerLinear::addClassAssignFnsToMap, PhaseTapChangerLinear::debugName); } +std::map PhaseTapChangerLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerLinear_factory() diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerLinear.hpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerLinear.hpp index fb4655393..b7e39e2a9 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerLinear.hpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Reactance.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerLinear_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerNonLinear.cpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerNonLinear.cpp index 349dad6b6..b4821f785 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerNonLinear.cpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerNonLinear.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerNonLinear(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerNonLinear.voltageStepIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerNonLinear.xMax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerNonLinear.xMin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerNonLinear::PhaseTapChangerNonLinear() {} PhaseTapChangerNonLinear::~PhaseTapChangerNonLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerNonLinear::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerNonLinear::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerNonLinear.voltageStepIncrement", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerNonLinear.xMax", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerNonLinear.xMin", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerNonLinear::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerNonLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerNonLinear::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerNonLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerNonLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerNonLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerNonLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerNonLinear_voltageStepIncrement(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -137,14 +169,14 @@ const char* PhaseTapChangerNonLinear::debugString() const void PhaseTapChangerNonLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerNonLinear", &PhaseTapChangerNonLinear_factory); + factory_map.emplace("PhaseTapChangerNonLinear", &PhaseTapChangerNonLinear_factory); } void PhaseTapChangerNonLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerNonLinear.voltageStepIncrement", &assign_PhaseTapChangerNonLinear_voltageStepIncrement); - assign_map.emplace("cim:PhaseTapChangerNonLinear.xMax", &assign_PhaseTapChangerNonLinear_xMax); - assign_map.emplace("cim:PhaseTapChangerNonLinear.xMin", &assign_PhaseTapChangerNonLinear_xMin); + assign_map.emplace("PhaseTapChangerNonLinear.voltageStepIncrement", &assign_PhaseTapChangerNonLinear_voltageStepIncrement); + assign_map.emplace("PhaseTapChangerNonLinear.xMax", &assign_PhaseTapChangerNonLinear_xMax); + assign_map.emplace("PhaseTapChangerNonLinear.xMin", &assign_PhaseTapChangerNonLinear_xMin); } void PhaseTapChangerNonLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void PhaseTapChangerNonLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerNonLinear.voltageStepIncrement", &get_PhaseTapChangerNonLinear_voltageStepIncrement); - get_map.emplace("cim:PhaseTapChangerNonLinear.xMax", &get_PhaseTapChangerNonLinear_xMax); - get_map.emplace("cim:PhaseTapChangerNonLinear.xMin", &get_PhaseTapChangerNonLinear_xMin); + get_map.emplace("PhaseTapChangerNonLinear.voltageStepIncrement", &get_PhaseTapChangerNonLinear_voltageStepIncrement); + get_map.emplace("PhaseTapChangerNonLinear.xMax", &get_PhaseTapChangerNonLinear_xMax); + get_map.emplace("PhaseTapChangerNonLinear.xMin", &get_PhaseTapChangerNonLinear_xMin); } void PhaseTapChangerNonLinear::addClassGetFnsToMap(std::map& get_map) const @@ -169,11 +201,25 @@ void PhaseTapChangerNonLinear::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerNonLinear::declare() { return BaseClassDefiner(PhaseTapChangerNonLinear::addConstructToMap, PhaseTapChangerNonLinear::addPrimitiveAssignFnsToMap, PhaseTapChangerNonLinear::addClassAssignFnsToMap, PhaseTapChangerNonLinear::debugName); } +std::map PhaseTapChangerNonLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerNonLinear_factory() diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerNonLinear.hpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerNonLinear.hpp index f45bdb493..69843cc58 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerNonLinear.hpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerNonLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PerCent.hpp" #include "Reactance.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerNonLinear_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerSymmetrical.cpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerSymmetrical.cpp index 11987b7ee..c5f0570b1 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerSymmetrical.cpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerSymmetrical.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerSymmetrical(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerSymmetrical::PhaseTapChangerSymmetrical() {} PhaseTapChangerSymmetrical::~PhaseTapChangerSymmetrical() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerSymmetrical::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerSymmetrical::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerSymmetrical::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerSymmetrical::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerSymmetrical::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerSymmetrical::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChangerNonLinear::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerSymmetrical::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerSymmetrical::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerSymmetrical::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char PhaseTapChangerSymmetrical::debugName[] = "PhaseTapChangerSymmetrical"; @@ -47,7 +79,7 @@ const char* PhaseTapChangerSymmetrical::debugString() const void PhaseTapChangerSymmetrical::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerSymmetrical", &PhaseTapChangerSymmetrical_factory); + factory_map.emplace("PhaseTapChangerSymmetrical", &PhaseTapChangerSymmetrical_factory); } void PhaseTapChangerSymmetrical::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void PhaseTapChangerSymmetrical::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerSymmetrical::declare() { return BaseClassDefiner(PhaseTapChangerSymmetrical::addConstructToMap, PhaseTapChangerSymmetrical::addPrimitiveAssignFnsToMap, PhaseTapChangerSymmetrical::addClassAssignFnsToMap, PhaseTapChangerSymmetrical::debugName); } +std::map PhaseTapChangerSymmetrical::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChangerNonLinear::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerSymmetrical_factory() diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerSymmetrical.hpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerSymmetrical.hpp index ee1910790..87115edd0 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerSymmetrical.hpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerSymmetrical.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChangerNonLinear.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerSymmetrical_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTable.cpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTable.cpp index 81e747699..567dc203d 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTable.cpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTable.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTable.PhaseTapChangerTablePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerTable.PhaseTapChangerTabular", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTable::PhaseTapChangerTable() {} PhaseTapChangerTable::~PhaseTapChangerTable() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTable::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTable::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerTable.PhaseTapChangerTabular", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTable::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTable::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTablePoint_PhaseTapChangerTable(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* PhaseTapChangerTable::debugString() const void PhaseTapChangerTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTable", &PhaseTapChangerTable_factory); + factory_map.emplace("PhaseTapChangerTable", &PhaseTapChangerTable_factory); } void PhaseTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void PhaseTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", &assign_PhaseTapChangerTable_PhaseTapChangerTablePoint); - assign_map.emplace("cim:PhaseTapChangerTable.PhaseTapChangerTabular", &assign_PhaseTapChangerTable_PhaseTapChangerTabular); + assign_map.emplace("PhaseTapChangerTable.PhaseTapChangerTablePoint", &assign_PhaseTapChangerTable_PhaseTapChangerTablePoint); + assign_map.emplace("PhaseTapChangerTable.PhaseTapChangerTabular", &assign_PhaseTapChangerTable_PhaseTapChangerTabular); } void PhaseTapChangerTable::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void PhaseTapChangerTable::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTable::declare() { return BaseClassDefiner(PhaseTapChangerTable::addConstructToMap, PhaseTapChangerTable::addPrimitiveAssignFnsToMap, PhaseTapChangerTable::addClassAssignFnsToMap, PhaseTapChangerTable::debugName); } +std::map PhaseTapChangerTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTable_factory() diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTable.hpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTable.hpp index 9b76ee650..3cebfaef0 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTable.hpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTable_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTablePoint.cpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTablePoint.cpp index e4c877019..2926432a6 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTablePoint.cpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTablePoint.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTablePoint.PhaseTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerTablePoint.angle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTablePoint::PhaseTapChangerTablePoint() : PhaseTapChangerTable(nullptr) {} PhaseTapChangerTablePoint::~PhaseTapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerTablePoint.angle", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChangerTablePoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTable_PhaseTapChangerTablePoint(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* PhaseTapChangerTablePoint::debugString() const void PhaseTapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTablePoint", &PhaseTapChangerTablePoint_factory); + factory_map.emplace("PhaseTapChangerTablePoint", &PhaseTapChangerTablePoint_factory); } void PhaseTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTablePoint.angle", &assign_PhaseTapChangerTablePoint_angle); + assign_map.emplace("PhaseTapChangerTablePoint.angle", &assign_PhaseTapChangerTablePoint_angle); } void PhaseTapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", &assign_PhaseTapChangerTablePoint_PhaseTapChangerTable); + assign_map.emplace("PhaseTapChangerTablePoint.PhaseTapChangerTable", &assign_PhaseTapChangerTablePoint_PhaseTapChangerTable); } void PhaseTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTablePoint.angle", &get_PhaseTapChangerTablePoint_angle); + get_map.emplace("PhaseTapChangerTablePoint.angle", &get_PhaseTapChangerTablePoint_angle); } void PhaseTapChangerTablePoint::addClassGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", &get_PhaseTapChangerTablePoint_PhaseTapChangerTable); + get_map.emplace("PhaseTapChangerTablePoint.PhaseTapChangerTable", &get_PhaseTapChangerTablePoint_PhaseTapChangerTable); } void PhaseTapChangerTablePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void PhaseTapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTablePoint::declare() { return BaseClassDefiner(PhaseTapChangerTablePoint::addConstructToMap, PhaseTapChangerTablePoint::addPrimitiveAssignFnsToMap, PhaseTapChangerTablePoint::addClassAssignFnsToMap, PhaseTapChangerTablePoint::debugName); } +std::map PhaseTapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChangerTablePoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTablePoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTablePoint.hpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTablePoint.hpp index 451bb17ad..d2d72b54a 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTablePoint.hpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChangerTablePoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTablePoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTabular.cpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTabular.cpp index 34a8103ba..58e864fa3 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTabular.cpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTabular.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTabular(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTabular.PhaseTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTabular::PhaseTapChangerTabular() : PhaseTapChangerTable(nullptr) {} PhaseTapChangerTabular::~PhaseTapChangerTabular() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTabular::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTabular::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTabular.PhaseTapChangerTable", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTabular::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTabular::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTabular::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTabular::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTabular::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTabular::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTabular::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTable_PhaseTapChangerTabular(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* PhaseTapChangerTabular::debugString() const void PhaseTapChangerTabular::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTabular", &PhaseTapChangerTabular_factory); + factory_map.emplace("PhaseTapChangerTabular", &PhaseTapChangerTabular_factory); } void PhaseTapChangerTabular::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void PhaseTapChangerTabular::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTabular.PhaseTapChangerTable", &assign_PhaseTapChangerTabular_PhaseTapChangerTable); + assign_map.emplace("PhaseTapChangerTabular.PhaseTapChangerTable", &assign_PhaseTapChangerTabular_PhaseTapChangerTable); } void PhaseTapChangerTabular::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void PhaseTapChangerTabular::addPrimitiveGetFnsToMap(std::map& get_map) const { PhaseTapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTabular.PhaseTapChangerTable", &get_PhaseTapChangerTabular_PhaseTapChangerTable); + get_map.emplace("PhaseTapChangerTabular.PhaseTapChangerTable", &get_PhaseTapChangerTabular_PhaseTapChangerTable); } void PhaseTapChangerTabular::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void PhaseTapChangerTabular::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTabular::declare() { return BaseClassDefiner(PhaseTapChangerTabular::addConstructToMap, PhaseTapChangerTabular::addPrimitiveAssignFnsToMap, PhaseTapChangerTabular::addClassAssignFnsToMap, PhaseTapChangerTabular::debugName); } +std::map PhaseTapChangerTabular::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTabular_factory() diff --git a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTabular.hpp b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTabular.hpp index 85b69cbec..f779f0918 100644 --- a/CGMES_2.4.15_27JAN2020/PhaseTapChangerTabular.hpp +++ b/CGMES_2.4.15_27JAN2020/PhaseTapChangerTabular.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -30,8 +31,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -39,7 +47,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTabular_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PositionPoint.cpp b/CGMES_2.4.15_27JAN2020/PositionPoint.cpp index 9fbc902cc..33f097ca3 100644 --- a/CGMES_2.4.15_27JAN2020/PositionPoint.cpp +++ b/CGMES_2.4.15_27JAN2020/PositionPoint.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PositionPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PositionPoint.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.xPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.yPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PositionPoint.zPosition", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + PositionPoint::PositionPoint() : Location(nullptr) {} PositionPoint::~PositionPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& PositionPoint::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PositionPoint::getClassNamespaceUrl() const { - { "cim:PositionPoint.Location", { CGMESProfile::GL, } }, - { "cim:PositionPoint.sequenceNumber", { CGMESProfile::GL, } }, - { "cim:PositionPoint.xPosition", { CGMESProfile::GL, } }, - { "cim:PositionPoint.yPosition", { CGMESProfile::GL, } }, - { "cim:PositionPoint.zPosition", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PositionPoint::getPossibleProfilesForClass() const +const std::string& PositionPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PositionPoint::getPossibleProfilesForAttributes() const +const std::list& PositionPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PositionPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PositionPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PositionPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Location_PositionPoints(BaseClass*, BaseClass*); @@ -199,35 +231,35 @@ const char* PositionPoint::debugString() const void PositionPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PositionPoint", &PositionPoint_factory); + factory_map.emplace("PositionPoint", &PositionPoint_factory); } void PositionPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PositionPoint.sequenceNumber", &assign_PositionPoint_sequenceNumber); - assign_map.emplace("cim:PositionPoint.xPosition", &assign_PositionPoint_xPosition); - assign_map.emplace("cim:PositionPoint.yPosition", &assign_PositionPoint_yPosition); - assign_map.emplace("cim:PositionPoint.zPosition", &assign_PositionPoint_zPosition); + assign_map.emplace("PositionPoint.sequenceNumber", &assign_PositionPoint_sequenceNumber); + assign_map.emplace("PositionPoint.xPosition", &assign_PositionPoint_xPosition); + assign_map.emplace("PositionPoint.yPosition", &assign_PositionPoint_yPosition); + assign_map.emplace("PositionPoint.zPosition", &assign_PositionPoint_zPosition); } void PositionPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PositionPoint.Location", &assign_PositionPoint_Location); + assign_map.emplace("PositionPoint.Location", &assign_PositionPoint_Location); } void PositionPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PositionPoint.sequenceNumber", &get_PositionPoint_sequenceNumber); - get_map.emplace("cim:PositionPoint.xPosition", &get_PositionPoint_xPosition); - get_map.emplace("cim:PositionPoint.yPosition", &get_PositionPoint_yPosition); - get_map.emplace("cim:PositionPoint.zPosition", &get_PositionPoint_zPosition); + get_map.emplace("PositionPoint.sequenceNumber", &get_PositionPoint_sequenceNumber); + get_map.emplace("PositionPoint.xPosition", &get_PositionPoint_xPosition); + get_map.emplace("PositionPoint.yPosition", &get_PositionPoint_yPosition); + get_map.emplace("PositionPoint.zPosition", &get_PositionPoint_zPosition); } void PositionPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PositionPoint.Location", &get_PositionPoint_Location); + get_map.emplace("PositionPoint.Location", &get_PositionPoint_Location); } void PositionPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -235,11 +267,25 @@ void PositionPoint::addEnumGetFnsToMap(std::map& get_ BaseClass::addEnumGetFnsToMap(get_map); } +bool PositionPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PositionPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PositionPoint::declare() { return BaseClassDefiner(PositionPoint::addConstructToMap, PositionPoint::addPrimitiveAssignFnsToMap, PositionPoint::addClassAssignFnsToMap, PositionPoint::debugName); } +std::map PositionPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PositionPoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/PositionPoint.hpp b/CGMES_2.4.15_27JAN2020/PositionPoint.hpp index b7eead20b..e712636e2 100644 --- a/CGMES_2.4.15_27JAN2020/PositionPoint.hpp +++ b/CGMES_2.4.15_27JAN2020/PositionPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "String.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PositionPoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PowerSystemResource.cpp b/CGMES_2.4.15_27JAN2020/PowerSystemResource.cpp index dd4878f2c..83bc348a9 100644 --- a/CGMES_2.4.15_27JAN2020/PowerSystemResource.cpp +++ b/CGMES_2.4.15_27JAN2020/PowerSystemResource.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemResource(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::GL, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemResource.Controls", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerSystemResource.Location", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::GL, } } }, + { "PowerSystemResource.Measurements", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemResource::PowerSystemResource() : Location(nullptr) {} PowerSystemResource::~PowerSystemResource() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemResource::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::GL, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemResource::getClassNamespaceUrl() const { - { "cim:PowerSystemResource.Controls", { CGMESProfile::EQ, } }, - { "cim:PowerSystemResource.Location", { CGMESProfile::GL, } }, - { "cim:PowerSystemResource.Measurements", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemResource::getPossibleProfilesForClass() const +const std::string& PowerSystemResource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemResource::getPossibleProfilesForAttributes() const +const std::list& PowerSystemResource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemResource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemResource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemResource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Control_PowerSystemResource(BaseClass*, BaseClass*); @@ -110,7 +142,7 @@ const char* PowerSystemResource::debugString() const void PowerSystemResource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemResource", &PowerSystemResource_factory); + factory_map.emplace("PowerSystemResource", &PowerSystemResource_factory); } void PowerSystemResource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -119,9 +151,9 @@ void PowerSystemResource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemResource.Controls", &assign_PowerSystemResource_Controls); - assign_map.emplace("cim:PowerSystemResource.Location", &assign_PowerSystemResource_Location); - assign_map.emplace("cim:PowerSystemResource.Measurements", &assign_PowerSystemResource_Measurements); + assign_map.emplace("PowerSystemResource.Controls", &assign_PowerSystemResource_Controls); + assign_map.emplace("PowerSystemResource.Location", &assign_PowerSystemResource_Location); + assign_map.emplace("PowerSystemResource.Measurements", &assign_PowerSystemResource_Measurements); } void PowerSystemResource::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void PowerSystemResource::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool PowerSystemResource::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerSystemResource" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemResource::declare() { return BaseClassDefiner(PowerSystemResource::addConstructToMap, PowerSystemResource::addPrimitiveAssignFnsToMap, PowerSystemResource::addClassAssignFnsToMap, PowerSystemResource::debugName); } +std::map PowerSystemResource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemResource_factory() diff --git a/CGMES_2.4.15_27JAN2020/PowerSystemResource.hpp b/CGMES_2.4.15_27JAN2020/PowerSystemResource.hpp index ddf8d2070..4fc04a52d 100644 --- a/CGMES_2.4.15_27JAN2020/PowerSystemResource.hpp +++ b/CGMES_2.4.15_27JAN2020/PowerSystemResource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemResource_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerDynamics.cpp b/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerDynamics.cpp index fb50d8a2e..096271c1f 100644 --- a/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemStabilizerDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemStabilizerDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PowerSystemStabilizerDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemStabilizerDynamics::PowerSystemStabilizerDynamics() : ExcitationSystemDynamics(nullptr) {} PowerSystemStabilizerDynamics::~PowerSystemStabilizerDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemStabilizerDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemStabilizerDynamics::getClassNamespaceUrl() const { - { "cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:PowerSystemStabilizerDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemStabilizerDynamics::getPossibleProfilesForClass() const +const std::string& PowerSystemStabilizerDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes() const +const std::list& PowerSystemStabilizerDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemStabilizerDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemStabilizerDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemStabilizerDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* PowerSystemStabilizerDynamics::debugString() const void PowerSystemStabilizerDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemStabilizerDynamics", &PowerSystemStabilizerDynamics_factory); + factory_map.emplace("PowerSystemStabilizerDynamics", &PowerSystemStabilizerDynamics_factory); } void PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void PowerSystemStabilizerDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &assign_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:PowerSystemStabilizerDynamics.RemoteInputSignal", &assign_PowerSystemStabilizerDynamics_RemoteInputSignal); + assign_map.emplace("PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &assign_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); + assign_map.emplace("PowerSystemStabilizerDynamics.RemoteInputSignal", &assign_PowerSystemStabilizerDynamics_RemoteInputSignal); } void PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &get_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); + get_map.emplace("PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &get_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); } void PowerSystemStabilizerDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void PowerSystemStabilizerDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemStabilizerDynamics::declare() { return BaseClassDefiner(PowerSystemStabilizerDynamics::addConstructToMap, PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap, PowerSystemStabilizerDynamics::addClassAssignFnsToMap, PowerSystemStabilizerDynamics::debugName); } +std::map PowerSystemStabilizerDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemStabilizerDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerDynamics.hpp b/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerDynamics.hpp index 949c55171..99a1a149c 100644 --- a/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemStabilizerDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerUserDefined.cpp b/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerUserDefined.cpp index a444c0d8b..316f0a69f 100644 --- a/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemStabilizerUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PowerSystemStabilizerUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemStabilizerUserDefined::PowerSystemStabilizerUserDefined() {} PowerSystemStabilizerUserDefined::~PowerSystemStabilizerUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemStabilizerUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemStabilizerUserDefined::getClassNamespaceUrl() const { - { "cim:PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PowerSystemStabilizerUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemStabilizerUserDefined::getPossibleProfilesForClass() const +const std::string& PowerSystemStabilizerUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemStabilizerUserDefined::getPossibleProfilesForAttributes() const +const std::list& PowerSystemStabilizerUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemStabilizerUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemStabilizerUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemStabilizerUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PowerSystemStabilizerUserDefined::debugString() const void PowerSystemStabilizerUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemStabilizerUserDefined", &PowerSystemStabilizerUserDefined_factory); + factory_map.emplace("PowerSystemStabilizerUserDefined", &PowerSystemStabilizerUserDefined_factory); } void PowerSystemStabilizerUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerUserDefined.proprietary", &assign_PowerSystemStabilizerUserDefined_proprietary); + assign_map.emplace("PowerSystemStabilizerUserDefined.proprietary", &assign_PowerSystemStabilizerUserDefined_proprietary); } void PowerSystemStabilizerUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", &assign_PowerSystemStabilizerUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", &assign_PowerSystemStabilizerUserDefined_ProprietaryParameterDynamics); } void PowerSystemStabilizerUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerSystemStabilizerUserDefined.proprietary", &get_PowerSystemStabilizerUserDefined_proprietary); + get_map.emplace("PowerSystemStabilizerUserDefined.proprietary", &get_PowerSystemStabilizerUserDefined_proprietary); } void PowerSystemStabilizerUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PowerSystemStabilizerUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemStabilizerUserDefined::declare() { return BaseClassDefiner(PowerSystemStabilizerUserDefined::addConstructToMap, PowerSystemStabilizerUserDefined::addPrimitiveAssignFnsToMap, PowerSystemStabilizerUserDefined::addClassAssignFnsToMap, PowerSystemStabilizerUserDefined::debugName); } +std::map PowerSystemStabilizerUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemStabilizerUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerUserDefined.hpp b/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerUserDefined.hpp index db8af6276..2a7ca42a2 100644 --- a/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/PowerSystemStabilizerUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemStabilizerUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PowerTransformer.cpp b/CGMES_2.4.15_27JAN2020/PowerTransformer.cpp index 80ac17033..16e4fc975 100644 --- a/CGMES_2.4.15_27JAN2020/PowerTransformer.cpp +++ b/CGMES_2.4.15_27JAN2020/PowerTransformer.cpp @@ -12,38 +12,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerTransformer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerTransformer.PowerTransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShCircuitHighestOperatingCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShCircuitHighestOperatingVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShortCircuitAnglePf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.highSideMinOperatingU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.isPartOfGeneratorUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.operationalValuesConsidered", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerTransformer::PowerTransformer() {} PowerTransformer::~PowerTransformer() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerTransformer::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerTransformer::getClassNamespaceUrl() const { - { "cim:PowerTransformer.PowerTransformerEnd", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShortCircuitAnglePf", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.highSideMinOperatingU", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.isPartOfGeneratorUnit", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.operationalValuesConsidered", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerTransformer::getPossibleProfilesForClass() const +const std::string& PowerTransformer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerTransformer::getPossibleProfilesForAttributes() const +const std::list& PowerTransformer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerTransformer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerTransformer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerTransformer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerTransformerEnd_PowerTransformer(BaseClass*, BaseClass*); @@ -246,33 +278,33 @@ const char* PowerTransformer::debugString() const void PowerTransformer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerTransformer", &PowerTransformer_factory); + factory_map.emplace("PowerTransformer", &PowerTransformer_factory); } void PowerTransformer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", &assign_PowerTransformer_beforeShCircuitHighestOperatingCurrent); - assign_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", &assign_PowerTransformer_beforeShCircuitHighestOperatingVoltage); - assign_map.emplace("cim:PowerTransformer.beforeShortCircuitAnglePf", &assign_PowerTransformer_beforeShortCircuitAnglePf); - assign_map.emplace("cim:PowerTransformer.highSideMinOperatingU", &assign_PowerTransformer_highSideMinOperatingU); - assign_map.emplace("cim:PowerTransformer.isPartOfGeneratorUnit", &assign_PowerTransformer_isPartOfGeneratorUnit); - assign_map.emplace("cim:PowerTransformer.operationalValuesConsidered", &assign_PowerTransformer_operationalValuesConsidered); + assign_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingCurrent", &assign_PowerTransformer_beforeShCircuitHighestOperatingCurrent); + assign_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingVoltage", &assign_PowerTransformer_beforeShCircuitHighestOperatingVoltage); + assign_map.emplace("PowerTransformer.beforeShortCircuitAnglePf", &assign_PowerTransformer_beforeShortCircuitAnglePf); + assign_map.emplace("PowerTransformer.highSideMinOperatingU", &assign_PowerTransformer_highSideMinOperatingU); + assign_map.emplace("PowerTransformer.isPartOfGeneratorUnit", &assign_PowerTransformer_isPartOfGeneratorUnit); + assign_map.emplace("PowerTransformer.operationalValuesConsidered", &assign_PowerTransformer_operationalValuesConsidered); } void PowerTransformer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformer.PowerTransformerEnd", &assign_PowerTransformer_PowerTransformerEnd); + assign_map.emplace("PowerTransformer.PowerTransformerEnd", &assign_PowerTransformer_PowerTransformerEnd); } void PowerTransformer::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", &get_PowerTransformer_beforeShCircuitHighestOperatingCurrent); - get_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", &get_PowerTransformer_beforeShCircuitHighestOperatingVoltage); - get_map.emplace("cim:PowerTransformer.beforeShortCircuitAnglePf", &get_PowerTransformer_beforeShortCircuitAnglePf); - get_map.emplace("cim:PowerTransformer.highSideMinOperatingU", &get_PowerTransformer_highSideMinOperatingU); - get_map.emplace("cim:PowerTransformer.isPartOfGeneratorUnit", &get_PowerTransformer_isPartOfGeneratorUnit); - get_map.emplace("cim:PowerTransformer.operationalValuesConsidered", &get_PowerTransformer_operationalValuesConsidered); + get_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingCurrent", &get_PowerTransformer_beforeShCircuitHighestOperatingCurrent); + get_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingVoltage", &get_PowerTransformer_beforeShCircuitHighestOperatingVoltage); + get_map.emplace("PowerTransformer.beforeShortCircuitAnglePf", &get_PowerTransformer_beforeShortCircuitAnglePf); + get_map.emplace("PowerTransformer.highSideMinOperatingU", &get_PowerTransformer_highSideMinOperatingU); + get_map.emplace("PowerTransformer.isPartOfGeneratorUnit", &get_PowerTransformer_isPartOfGeneratorUnit); + get_map.emplace("PowerTransformer.operationalValuesConsidered", &get_PowerTransformer_operationalValuesConsidered); } void PowerTransformer::addClassGetFnsToMap(std::map& get_map) const @@ -285,11 +317,25 @@ void PowerTransformer::addEnumGetFnsToMap(std::map& g ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool PowerTransformer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerTransformer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PowerTransformer::declare() { return BaseClassDefiner(PowerTransformer::addConstructToMap, PowerTransformer::addPrimitiveAssignFnsToMap, PowerTransformer::addClassAssignFnsToMap, PowerTransformer::debugName); } +std::map PowerTransformer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerTransformer_factory() diff --git a/CGMES_2.4.15_27JAN2020/PowerTransformer.hpp b/CGMES_2.4.15_27JAN2020/PowerTransformer.hpp index 0970df0d5..1b1abe544 100644 --- a/CGMES_2.4.15_27JAN2020/PowerTransformer.hpp +++ b/CGMES_2.4.15_27JAN2020/PowerTransformer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerTransformer_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PowerTransformerEnd.cpp b/CGMES_2.4.15_27JAN2020/PowerTransformerEnd.cpp index cb0bb8628..f5267297b 100644 --- a/CGMES_2.4.15_27JAN2020/PowerTransformerEnd.cpp +++ b/CGMES_2.4.15_27JAN2020/PowerTransformerEnd.cpp @@ -12,44 +12,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerTransformerEnd(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerTransformerEnd.PowerTransformer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.connectionKind", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.g0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.phaseAngleClock", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.ratedS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.ratedU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerTransformerEnd::PowerTransformerEnd() : PowerTransformer(nullptr) {} PowerTransformerEnd::~PowerTransformerEnd() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerTransformerEnd::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerTransformerEnd::getClassNamespaceUrl() const { - { "cim:PowerTransformerEnd.PowerTransformer", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.b", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.b0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.connectionKind", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.g", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.g0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.phaseAngleClock", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.r", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.r0", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.ratedS", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.ratedU", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.x", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerTransformerEnd::getPossibleProfilesForClass() const +const std::string& PowerTransformerEnd::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerTransformerEnd::getPossibleProfilesForAttributes() const +const std::list& PowerTransformerEnd::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TransformerEnd::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerTransformerEnd::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerTransformerEnd::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerTransformerEnd::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerTransformer_PowerTransformerEnd(BaseClass*, BaseClass*); @@ -439,56 +471,62 @@ const char* PowerTransformerEnd::debugString() const void PowerTransformerEnd::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerTransformerEnd", &PowerTransformerEnd_factory); + factory_map.emplace("PowerTransformerEnd", &PowerTransformerEnd_factory); } void PowerTransformerEnd::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformerEnd.b", &assign_PowerTransformerEnd_b); - assign_map.emplace("cim:PowerTransformerEnd.b0", &assign_PowerTransformerEnd_b0); - assign_map.emplace("cim:PowerTransformerEnd.connectionKind", &assign_PowerTransformerEnd_connectionKind); - assign_map.emplace("cim:PowerTransformerEnd.g", &assign_PowerTransformerEnd_g); - assign_map.emplace("cim:PowerTransformerEnd.g0", &assign_PowerTransformerEnd_g0); - assign_map.emplace("cim:PowerTransformerEnd.phaseAngleClock", &assign_PowerTransformerEnd_phaseAngleClock); - assign_map.emplace("cim:PowerTransformerEnd.r", &assign_PowerTransformerEnd_r); - assign_map.emplace("cim:PowerTransformerEnd.r0", &assign_PowerTransformerEnd_r0); - assign_map.emplace("cim:PowerTransformerEnd.ratedS", &assign_PowerTransformerEnd_ratedS); - assign_map.emplace("cim:PowerTransformerEnd.ratedU", &assign_PowerTransformerEnd_ratedU); - assign_map.emplace("cim:PowerTransformerEnd.x", &assign_PowerTransformerEnd_x); - assign_map.emplace("cim:PowerTransformerEnd.x0", &assign_PowerTransformerEnd_x0); + assign_map.emplace("PowerTransformerEnd.b", &assign_PowerTransformerEnd_b); + assign_map.emplace("PowerTransformerEnd.b0", &assign_PowerTransformerEnd_b0); + assign_map.emplace("PowerTransformerEnd.connectionKind", &assign_PowerTransformerEnd_connectionKind); + assign_map.emplace("PowerTransformerEnd.g", &assign_PowerTransformerEnd_g); + assign_map.emplace("PowerTransformerEnd.g0", &assign_PowerTransformerEnd_g0); + assign_map.emplace("PowerTransformerEnd.phaseAngleClock", &assign_PowerTransformerEnd_phaseAngleClock); + assign_map.emplace("PowerTransformerEnd.r", &assign_PowerTransformerEnd_r); + assign_map.emplace("PowerTransformerEnd.r0", &assign_PowerTransformerEnd_r0); + assign_map.emplace("PowerTransformerEnd.ratedS", &assign_PowerTransformerEnd_ratedS); + assign_map.emplace("PowerTransformerEnd.ratedU", &assign_PowerTransformerEnd_ratedU); + assign_map.emplace("PowerTransformerEnd.x", &assign_PowerTransformerEnd_x); + assign_map.emplace("PowerTransformerEnd.x0", &assign_PowerTransformerEnd_x0); } void PowerTransformerEnd::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformerEnd.PowerTransformer", &assign_PowerTransformerEnd_PowerTransformer); + assign_map.emplace("PowerTransformerEnd.PowerTransformer", &assign_PowerTransformerEnd_PowerTransformer); } void PowerTransformerEnd::addPrimitiveGetFnsToMap(std::map& get_map) const { TransformerEnd::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.b", &get_PowerTransformerEnd_b); - get_map.emplace("cim:PowerTransformerEnd.b0", &get_PowerTransformerEnd_b0); - get_map.emplace("cim:PowerTransformerEnd.g", &get_PowerTransformerEnd_g); - get_map.emplace("cim:PowerTransformerEnd.g0", &get_PowerTransformerEnd_g0); - get_map.emplace("cim:PowerTransformerEnd.phaseAngleClock", &get_PowerTransformerEnd_phaseAngleClock); - get_map.emplace("cim:PowerTransformerEnd.r", &get_PowerTransformerEnd_r); - get_map.emplace("cim:PowerTransformerEnd.r0", &get_PowerTransformerEnd_r0); - get_map.emplace("cim:PowerTransformerEnd.ratedS", &get_PowerTransformerEnd_ratedS); - get_map.emplace("cim:PowerTransformerEnd.ratedU", &get_PowerTransformerEnd_ratedU); - get_map.emplace("cim:PowerTransformerEnd.x", &get_PowerTransformerEnd_x); - get_map.emplace("cim:PowerTransformerEnd.x0", &get_PowerTransformerEnd_x0); + get_map.emplace("PowerTransformerEnd.b", &get_PowerTransformerEnd_b); + get_map.emplace("PowerTransformerEnd.b0", &get_PowerTransformerEnd_b0); + get_map.emplace("PowerTransformerEnd.g", &get_PowerTransformerEnd_g); + get_map.emplace("PowerTransformerEnd.g0", &get_PowerTransformerEnd_g0); + get_map.emplace("PowerTransformerEnd.phaseAngleClock", &get_PowerTransformerEnd_phaseAngleClock); + get_map.emplace("PowerTransformerEnd.r", &get_PowerTransformerEnd_r); + get_map.emplace("PowerTransformerEnd.r0", &get_PowerTransformerEnd_r0); + get_map.emplace("PowerTransformerEnd.ratedS", &get_PowerTransformerEnd_ratedS); + get_map.emplace("PowerTransformerEnd.ratedU", &get_PowerTransformerEnd_ratedU); + get_map.emplace("PowerTransformerEnd.x", &get_PowerTransformerEnd_x); + get_map.emplace("PowerTransformerEnd.x0", &get_PowerTransformerEnd_x0); } void PowerTransformerEnd::addClassGetFnsToMap(std::map& get_map) const { TransformerEnd::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.PowerTransformer", &get_PowerTransformerEnd_PowerTransformer); + get_map.emplace("PowerTransformerEnd.PowerTransformer", &get_PowerTransformerEnd_PowerTransformer); } void PowerTransformerEnd::addEnumGetFnsToMap(std::map& get_map) const { TransformerEnd::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.connectionKind", &get_PowerTransformerEnd_connectionKind); + get_map.emplace("PowerTransformerEnd.connectionKind", &get_PowerTransformerEnd_connectionKind); +} + +bool PowerTransformerEnd::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerTransformerEnd" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PowerTransformerEnd::declare() @@ -496,6 +534,14 @@ const BaseClassDefiner PowerTransformerEnd::declare() return BaseClassDefiner(PowerTransformerEnd::addConstructToMap, PowerTransformerEnd::addPrimitiveAssignFnsToMap, PowerTransformerEnd::addClassAssignFnsToMap, PowerTransformerEnd::debugName); } +std::map PowerTransformerEnd::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TransformerEnd::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerTransformerEnd_factory() diff --git a/CGMES_2.4.15_27JAN2020/PowerTransformerEnd.hpp b/CGMES_2.4.15_27JAN2020/PowerTransformerEnd.hpp index b4f4de48e..b4eced55b 100644 --- a/CGMES_2.4.15_27JAN2020/PowerTransformerEnd.hpp +++ b/CGMES_2.4.15_27JAN2020/PowerTransformerEnd.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TransformerEnd.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" #include "Conductance.hpp" #include "Integer.hpp" @@ -75,8 +76,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -84,7 +92,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerTransformerEnd_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ProprietaryParameterDynamics.cpp b/CGMES_2.4.15_27JAN2020/ProprietaryParameterDynamics.cpp index cc1ac6f02..95b79809e 100644 --- a/CGMES_2.4.15_27JAN2020/ProprietaryParameterDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/ProprietaryParameterDynamics.cpp @@ -29,53 +29,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ProprietaryParameterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ProprietaryParameterDynamics.AsynchronousMachineUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.ExcitationSystemUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.LoadUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.MechanicalLoadUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PFVArControllerType1UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PFVArControllerType2UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.SynchronousMachineUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.TurbineGovernorUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VoltageAdjusterUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VoltageCompensatorUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindPlantUserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindType1or2UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindType3or4UserDefined", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.booleanParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.floatParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.integerParameterValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.parameterNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ProprietaryParameterDynamics::ProprietaryParameterDynamics() : AsynchronousMachineUserDefined(nullptr), DiscontinuousExcitationControlUserDefined(nullptr), ExcitationSystemUserDefined(nullptr), LoadUserDefined(nullptr), MechanicalLoadUserDefined(nullptr), OverexcitationLimiterUserDefined(nullptr), PFVArControllerType1UserDefined(nullptr), PFVArControllerType2UserDefined(nullptr), PowerSystemStabilizerUserDefined(nullptr), SynchronousMachineUserDefined(nullptr), TurbineGovernorUserDefined(nullptr), TurbineLoadControllerUserDefined(nullptr), UnderexcitationLimiterUserDefined(nullptr), VoltageAdjusterUserDefined(nullptr), VoltageCompensatorUserDefined(nullptr), WindPlantUserDefined(nullptr), WindType1or2UserDefined(nullptr), WindType3or4UserDefined(nullptr) {} ProprietaryParameterDynamics::~ProprietaryParameterDynamics() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.LoadUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindPlantUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindType1or2UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindType3or4UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.booleanParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.floatParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.integerParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.parameterNumber", { CGMESProfile::DY, } }, -}; - -std::list -ProprietaryParameterDynamics::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ProprietaryParameterDynamics::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ProprietaryParameterDynamics::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ProprietaryParameterDynamics::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ProprietaryParameterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ProprietaryParameterDynamics::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ProprietaryParameterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ProprietaryParameterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ProprietaryParameterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics(BaseClass*, BaseClass*); @@ -760,69 +792,69 @@ const char* ProprietaryParameterDynamics::debugString() const void ProprietaryParameterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ProprietaryParameterDynamics", &ProprietaryParameterDynamics_factory); + factory_map.emplace("ProprietaryParameterDynamics", &ProprietaryParameterDynamics_factory); } void ProprietaryParameterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ProprietaryParameterDynamics.booleanParameterValue", &assign_ProprietaryParameterDynamics_booleanParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.floatParameterValue", &assign_ProprietaryParameterDynamics_floatParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.integerParameterValue", &assign_ProprietaryParameterDynamics_integerParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.parameterNumber", &assign_ProprietaryParameterDynamics_parameterNumber); + assign_map.emplace("ProprietaryParameterDynamics.booleanParameterValue", &assign_ProprietaryParameterDynamics_booleanParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.floatParameterValue", &assign_ProprietaryParameterDynamics_floatParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.integerParameterValue", &assign_ProprietaryParameterDynamics_integerParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.parameterNumber", &assign_ProprietaryParameterDynamics_parameterNumber); } void ProprietaryParameterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", &assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.LoadUserDefined", &assign_ProprietaryParameterDynamics_LoadUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", &assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", &assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindPlantUserDefined", &assign_ProprietaryParameterDynamics_WindPlantUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindType1or2UserDefined", &assign_ProprietaryParameterDynamics_WindType1or2UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindType3or4UserDefined", &assign_ProprietaryParameterDynamics_WindType3or4UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.ExcitationSystemUserDefined", &assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.LoadUserDefined", &assign_ProprietaryParameterDynamics_LoadUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.MechanicalLoadUserDefined", &assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.SynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.TurbineGovernorUserDefined", &assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindPlantUserDefined", &assign_ProprietaryParameterDynamics_WindPlantUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindType1or2UserDefined", &assign_ProprietaryParameterDynamics_WindType1or2UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindType3or4UserDefined", &assign_ProprietaryParameterDynamics_WindType3or4UserDefined); } void ProprietaryParameterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ProprietaryParameterDynamics.booleanParameterValue", &get_ProprietaryParameterDynamics_booleanParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.floatParameterValue", &get_ProprietaryParameterDynamics_floatParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.integerParameterValue", &get_ProprietaryParameterDynamics_integerParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.parameterNumber", &get_ProprietaryParameterDynamics_parameterNumber); + get_map.emplace("ProprietaryParameterDynamics.booleanParameterValue", &get_ProprietaryParameterDynamics_booleanParameterValue); + get_map.emplace("ProprietaryParameterDynamics.floatParameterValue", &get_ProprietaryParameterDynamics_floatParameterValue); + get_map.emplace("ProprietaryParameterDynamics.integerParameterValue", &get_ProprietaryParameterDynamics_integerParameterValue); + get_map.emplace("ProprietaryParameterDynamics.parameterNumber", &get_ProprietaryParameterDynamics_parameterNumber); } void ProprietaryParameterDynamics::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &get_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", &get_ProprietaryParameterDynamics_ExcitationSystemUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.LoadUserDefined", &get_ProprietaryParameterDynamics_LoadUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", &get_ProprietaryParameterDynamics_MechanicalLoadUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &get_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_SynchronousMachineUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", &get_ProprietaryParameterDynamics_TurbineGovernorUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &get_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &get_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &get_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindPlantUserDefined", &get_ProprietaryParameterDynamics_WindPlantUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindType1or2UserDefined", &get_ProprietaryParameterDynamics_WindType1or2UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindType3or4UserDefined", &get_ProprietaryParameterDynamics_WindType3or4UserDefined); + get_map.emplace("ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); + get_map.emplace("ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &get_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); + get_map.emplace("ProprietaryParameterDynamics.ExcitationSystemUserDefined", &get_ProprietaryParameterDynamics_ExcitationSystemUserDefined); + get_map.emplace("ProprietaryParameterDynamics.LoadUserDefined", &get_ProprietaryParameterDynamics_LoadUserDefined); + get_map.emplace("ProprietaryParameterDynamics.MechanicalLoadUserDefined", &get_ProprietaryParameterDynamics_MechanicalLoadUserDefined); + get_map.emplace("ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); + get_map.emplace("ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); + get_map.emplace("ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &get_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); + get_map.emplace("ProprietaryParameterDynamics.SynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_SynchronousMachineUserDefined); + get_map.emplace("ProprietaryParameterDynamics.TurbineGovernorUserDefined", &get_ProprietaryParameterDynamics_TurbineGovernorUserDefined); + get_map.emplace("ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &get_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); + get_map.emplace("ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &get_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &get_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindPlantUserDefined", &get_ProprietaryParameterDynamics_WindPlantUserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindType1or2UserDefined", &get_ProprietaryParameterDynamics_WindType1or2UserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindType3or4UserDefined", &get_ProprietaryParameterDynamics_WindType3or4UserDefined); } void ProprietaryParameterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -830,11 +862,25 @@ void ProprietaryParameterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ProprietaryParameterDynamics::declare() { return BaseClassDefiner(ProprietaryParameterDynamics::addConstructToMap, ProprietaryParameterDynamics::addPrimitiveAssignFnsToMap, ProprietaryParameterDynamics::addClassAssignFnsToMap, ProprietaryParameterDynamics::debugName); } +std::map ProprietaryParameterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ProprietaryParameterDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/ProprietaryParameterDynamics.hpp b/CGMES_2.4.15_27JAN2020/ProprietaryParameterDynamics.hpp index 3aa47cdc9..68b680143 100644 --- a/CGMES_2.4.15_27JAN2020/ProprietaryParameterDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/ProprietaryParameterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -114,8 +115,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -123,7 +131,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ProprietaryParameterDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ProtectedSwitch.cpp b/CGMES_2.4.15_27JAN2020/ProtectedSwitch.cpp index 2b6f24097..ee53270e8 100644 --- a/CGMES_2.4.15_27JAN2020/ProtectedSwitch.cpp +++ b/CGMES_2.4.15_27JAN2020/ProtectedSwitch.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ProtectedSwitch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + ProtectedSwitch::ProtectedSwitch() {} ProtectedSwitch::~ProtectedSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& ProtectedSwitch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ProtectedSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ProtectedSwitch::getPossibleProfilesForClass() const +const std::string& ProtectedSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ProtectedSwitch::getPossibleProfilesForAttributes() const +const std::list& ProtectedSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ProtectedSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ProtectedSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ProtectedSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char ProtectedSwitch::debugName[] = "ProtectedSwitch"; @@ -47,7 +79,7 @@ const char* ProtectedSwitch::debugString() const void ProtectedSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ProtectedSwitch", &ProtectedSwitch_factory); + factory_map.emplace("ProtectedSwitch", &ProtectedSwitch_factory); } void ProtectedSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void ProtectedSwitch::addEnumGetFnsToMap(std::map& ge Switch::addEnumGetFnsToMap(get_map); } +bool ProtectedSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ProtectedSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ProtectedSwitch::declare() { return BaseClassDefiner(ProtectedSwitch::addConstructToMap, ProtectedSwitch::addPrimitiveAssignFnsToMap, ProtectedSwitch::addClassAssignFnsToMap, ProtectedSwitch::debugName); } +std::map ProtectedSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ProtectedSwitch_factory() diff --git a/CGMES_2.4.15_27JAN2020/ProtectedSwitch.hpp b/CGMES_2.4.15_27JAN2020/ProtectedSwitch.hpp index e7161aa71..b76b5fc1b 100644 --- a/CGMES_2.4.15_27JAN2020/ProtectedSwitch.hpp +++ b/CGMES_2.4.15_27JAN2020/ProtectedSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ProtectedSwitch_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Pss1.cpp b/CGMES_2.4.15_27JAN2020/Pss1.cpp index a1bc68391..32430e875 100644 --- a/CGMES_2.4.15_27JAN2020/Pss1.cpp +++ b/CGMES_2.4.15_27JAN2020/Pss1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss1.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.kpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.kw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vadat", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1.vsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss1::Pss1() {} Pss1::~Pss1() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss1::getClassNamespaceUrl() const { - { "cim:Pss1.kf", { CGMESProfile::DY, } }, - { "cim:Pss1.kpe", { CGMESProfile::DY, } }, - { "cim:Pss1.ks", { CGMESProfile::DY, } }, - { "cim:Pss1.kw", { CGMESProfile::DY, } }, - { "cim:Pss1.pmin", { CGMESProfile::DY, } }, - { "cim:Pss1.t10", { CGMESProfile::DY, } }, - { "cim:Pss1.t5", { CGMESProfile::DY, } }, - { "cim:Pss1.t6", { CGMESProfile::DY, } }, - { "cim:Pss1.t7", { CGMESProfile::DY, } }, - { "cim:Pss1.t8", { CGMESProfile::DY, } }, - { "cim:Pss1.t9", { CGMESProfile::DY, } }, - { "cim:Pss1.tpe", { CGMESProfile::DY, } }, - { "cim:Pss1.vadat", { CGMESProfile::DY, } }, - { "cim:Pss1.vsmn", { CGMESProfile::DY, } }, - { "cim:Pss1.vsmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss1::getPossibleProfilesForClass() const +const std::string& Pss1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss1::getPossibleProfilesForAttributes() const +const std::list& Pss1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss1_kf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* Pss1::debugString() const void Pss1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss1", &Pss1_factory); + factory_map.emplace("Pss1", &Pss1_factory); } void Pss1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss1.kf", &assign_Pss1_kf); - assign_map.emplace("cim:Pss1.kpe", &assign_Pss1_kpe); - assign_map.emplace("cim:Pss1.ks", &assign_Pss1_ks); - assign_map.emplace("cim:Pss1.kw", &assign_Pss1_kw); - assign_map.emplace("cim:Pss1.pmin", &assign_Pss1_pmin); - assign_map.emplace("cim:Pss1.t10", &assign_Pss1_t10); - assign_map.emplace("cim:Pss1.t5", &assign_Pss1_t5); - assign_map.emplace("cim:Pss1.t6", &assign_Pss1_t6); - assign_map.emplace("cim:Pss1.t7", &assign_Pss1_t7); - assign_map.emplace("cim:Pss1.t8", &assign_Pss1_t8); - assign_map.emplace("cim:Pss1.t9", &assign_Pss1_t9); - assign_map.emplace("cim:Pss1.tpe", &assign_Pss1_tpe); - assign_map.emplace("cim:Pss1.vadat", &assign_Pss1_vadat); - assign_map.emplace("cim:Pss1.vsmn", &assign_Pss1_vsmn); - assign_map.emplace("cim:Pss1.vsmx", &assign_Pss1_vsmx); + assign_map.emplace("Pss1.kf", &assign_Pss1_kf); + assign_map.emplace("Pss1.kpe", &assign_Pss1_kpe); + assign_map.emplace("Pss1.ks", &assign_Pss1_ks); + assign_map.emplace("Pss1.kw", &assign_Pss1_kw); + assign_map.emplace("Pss1.pmin", &assign_Pss1_pmin); + assign_map.emplace("Pss1.t10", &assign_Pss1_t10); + assign_map.emplace("Pss1.t5", &assign_Pss1_t5); + assign_map.emplace("Pss1.t6", &assign_Pss1_t6); + assign_map.emplace("Pss1.t7", &assign_Pss1_t7); + assign_map.emplace("Pss1.t8", &assign_Pss1_t8); + assign_map.emplace("Pss1.t9", &assign_Pss1_t9); + assign_map.emplace("Pss1.tpe", &assign_Pss1_tpe); + assign_map.emplace("Pss1.vadat", &assign_Pss1_vadat); + assign_map.emplace("Pss1.vsmn", &assign_Pss1_vsmn); + assign_map.emplace("Pss1.vsmx", &assign_Pss1_vsmx); } void Pss1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void Pss1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss1.kf", &get_Pss1_kf); - get_map.emplace("cim:Pss1.kpe", &get_Pss1_kpe); - get_map.emplace("cim:Pss1.ks", &get_Pss1_ks); - get_map.emplace("cim:Pss1.kw", &get_Pss1_kw); - get_map.emplace("cim:Pss1.pmin", &get_Pss1_pmin); - get_map.emplace("cim:Pss1.t10", &get_Pss1_t10); - get_map.emplace("cim:Pss1.t5", &get_Pss1_t5); - get_map.emplace("cim:Pss1.t6", &get_Pss1_t6); - get_map.emplace("cim:Pss1.t7", &get_Pss1_t7); - get_map.emplace("cim:Pss1.t8", &get_Pss1_t8); - get_map.emplace("cim:Pss1.t9", &get_Pss1_t9); - get_map.emplace("cim:Pss1.tpe", &get_Pss1_tpe); - get_map.emplace("cim:Pss1.vadat", &get_Pss1_vadat); - get_map.emplace("cim:Pss1.vsmn", &get_Pss1_vsmn); - get_map.emplace("cim:Pss1.vsmx", &get_Pss1_vsmx); + get_map.emplace("Pss1.kf", &get_Pss1_kf); + get_map.emplace("Pss1.kpe", &get_Pss1_kpe); + get_map.emplace("Pss1.ks", &get_Pss1_ks); + get_map.emplace("Pss1.kw", &get_Pss1_kw); + get_map.emplace("Pss1.pmin", &get_Pss1_pmin); + get_map.emplace("Pss1.t10", &get_Pss1_t10); + get_map.emplace("Pss1.t5", &get_Pss1_t5); + get_map.emplace("Pss1.t6", &get_Pss1_t6); + get_map.emplace("Pss1.t7", &get_Pss1_t7); + get_map.emplace("Pss1.t8", &get_Pss1_t8); + get_map.emplace("Pss1.t9", &get_Pss1_t9); + get_map.emplace("Pss1.tpe", &get_Pss1_tpe); + get_map.emplace("Pss1.vadat", &get_Pss1_vadat); + get_map.emplace("Pss1.vsmn", &get_Pss1_vsmn); + get_map.emplace("Pss1.vsmx", &get_Pss1_vsmx); } void Pss1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void Pss1::addEnumGetFnsToMap(std::map& get_map) cons PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss1::declare() { return BaseClassDefiner(Pss1::addConstructToMap, Pss1::addPrimitiveAssignFnsToMap, Pss1::addClassAssignFnsToMap, Pss1::debugName); } +std::map Pss1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss1_factory() diff --git a/CGMES_2.4.15_27JAN2020/Pss1.hpp b/CGMES_2.4.15_27JAN2020/Pss1.hpp index d0b00aadb..d4666f841 100644 --- a/CGMES_2.4.15_27JAN2020/Pss1.hpp +++ b/CGMES_2.4.15_27JAN2020/Pss1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Pss1A.cpp b/CGMES_2.4.15_27JAN2020/Pss1A.cpp index 219c3f935..8470f2e76 100644 --- a/CGMES_2.4.15_27JAN2020/Pss1A.cpp +++ b/CGMES_2.4.15_27JAN2020/Pss1A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss1A.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.a8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.inputSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.kd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.tdelay", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss1A::Pss1A() {} Pss1A::~Pss1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Pss1A.a1", { CGMESProfile::DY, } }, - { "cim:Pss1A.a2", { CGMESProfile::DY, } }, - { "cim:Pss1A.a3", { CGMESProfile::DY, } }, - { "cim:Pss1A.a4", { CGMESProfile::DY, } }, - { "cim:Pss1A.a5", { CGMESProfile::DY, } }, - { "cim:Pss1A.a6", { CGMESProfile::DY, } }, - { "cim:Pss1A.a7", { CGMESProfile::DY, } }, - { "cim:Pss1A.a8", { CGMESProfile::DY, } }, - { "cim:Pss1A.inputSignalType", { CGMESProfile::DY, } }, - { "cim:Pss1A.kd", { CGMESProfile::DY, } }, - { "cim:Pss1A.ks", { CGMESProfile::DY, } }, - { "cim:Pss1A.t1", { CGMESProfile::DY, } }, - { "cim:Pss1A.t2", { CGMESProfile::DY, } }, - { "cim:Pss1A.t3", { CGMESProfile::DY, } }, - { "cim:Pss1A.t4", { CGMESProfile::DY, } }, - { "cim:Pss1A.t5", { CGMESProfile::DY, } }, - { "cim:Pss1A.t6", { CGMESProfile::DY, } }, - { "cim:Pss1A.tdelay", { CGMESProfile::DY, } }, - { "cim:Pss1A.vcl", { CGMESProfile::DY, } }, - { "cim:Pss1A.vcu", { CGMESProfile::DY, } }, - { "cim:Pss1A.vrmax", { CGMESProfile::DY, } }, - { "cim:Pss1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -Pss1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Pss1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Pss1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Pss1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Pss1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Pss1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss1A_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* Pss1A::debugString() const void Pss1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss1A", &Pss1A_factory); + factory_map.emplace("Pss1A", &Pss1A_factory); } void Pss1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss1A.a1", &assign_Pss1A_a1); - assign_map.emplace("cim:Pss1A.a2", &assign_Pss1A_a2); - assign_map.emplace("cim:Pss1A.a3", &assign_Pss1A_a3); - assign_map.emplace("cim:Pss1A.a4", &assign_Pss1A_a4); - assign_map.emplace("cim:Pss1A.a5", &assign_Pss1A_a5); - assign_map.emplace("cim:Pss1A.a6", &assign_Pss1A_a6); - assign_map.emplace("cim:Pss1A.a7", &assign_Pss1A_a7); - assign_map.emplace("cim:Pss1A.a8", &assign_Pss1A_a8); - assign_map.emplace("cim:Pss1A.inputSignalType", &assign_Pss1A_inputSignalType); - assign_map.emplace("cim:Pss1A.kd", &assign_Pss1A_kd); - assign_map.emplace("cim:Pss1A.ks", &assign_Pss1A_ks); - assign_map.emplace("cim:Pss1A.t1", &assign_Pss1A_t1); - assign_map.emplace("cim:Pss1A.t2", &assign_Pss1A_t2); - assign_map.emplace("cim:Pss1A.t3", &assign_Pss1A_t3); - assign_map.emplace("cim:Pss1A.t4", &assign_Pss1A_t4); - assign_map.emplace("cim:Pss1A.t5", &assign_Pss1A_t5); - assign_map.emplace("cim:Pss1A.t6", &assign_Pss1A_t6); - assign_map.emplace("cim:Pss1A.tdelay", &assign_Pss1A_tdelay); - assign_map.emplace("cim:Pss1A.vcl", &assign_Pss1A_vcl); - assign_map.emplace("cim:Pss1A.vcu", &assign_Pss1A_vcu); - assign_map.emplace("cim:Pss1A.vrmax", &assign_Pss1A_vrmax); - assign_map.emplace("cim:Pss1A.vrmin", &assign_Pss1A_vrmin); + assign_map.emplace("Pss1A.a1", &assign_Pss1A_a1); + assign_map.emplace("Pss1A.a2", &assign_Pss1A_a2); + assign_map.emplace("Pss1A.a3", &assign_Pss1A_a3); + assign_map.emplace("Pss1A.a4", &assign_Pss1A_a4); + assign_map.emplace("Pss1A.a5", &assign_Pss1A_a5); + assign_map.emplace("Pss1A.a6", &assign_Pss1A_a6); + assign_map.emplace("Pss1A.a7", &assign_Pss1A_a7); + assign_map.emplace("Pss1A.a8", &assign_Pss1A_a8); + assign_map.emplace("Pss1A.inputSignalType", &assign_Pss1A_inputSignalType); + assign_map.emplace("Pss1A.kd", &assign_Pss1A_kd); + assign_map.emplace("Pss1A.ks", &assign_Pss1A_ks); + assign_map.emplace("Pss1A.t1", &assign_Pss1A_t1); + assign_map.emplace("Pss1A.t2", &assign_Pss1A_t2); + assign_map.emplace("Pss1A.t3", &assign_Pss1A_t3); + assign_map.emplace("Pss1A.t4", &assign_Pss1A_t4); + assign_map.emplace("Pss1A.t5", &assign_Pss1A_t5); + assign_map.emplace("Pss1A.t6", &assign_Pss1A_t6); + assign_map.emplace("Pss1A.tdelay", &assign_Pss1A_tdelay); + assign_map.emplace("Pss1A.vcl", &assign_Pss1A_vcl); + assign_map.emplace("Pss1A.vcu", &assign_Pss1A_vcu); + assign_map.emplace("Pss1A.vrmax", &assign_Pss1A_vrmax); + assign_map.emplace("Pss1A.vrmin", &assign_Pss1A_vrmin); } void Pss1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,27 +774,27 @@ void Pss1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss1A.a1", &get_Pss1A_a1); - get_map.emplace("cim:Pss1A.a2", &get_Pss1A_a2); - get_map.emplace("cim:Pss1A.a3", &get_Pss1A_a3); - get_map.emplace("cim:Pss1A.a4", &get_Pss1A_a4); - get_map.emplace("cim:Pss1A.a5", &get_Pss1A_a5); - get_map.emplace("cim:Pss1A.a6", &get_Pss1A_a6); - get_map.emplace("cim:Pss1A.a7", &get_Pss1A_a7); - get_map.emplace("cim:Pss1A.a8", &get_Pss1A_a8); - get_map.emplace("cim:Pss1A.kd", &get_Pss1A_kd); - get_map.emplace("cim:Pss1A.ks", &get_Pss1A_ks); - get_map.emplace("cim:Pss1A.t1", &get_Pss1A_t1); - get_map.emplace("cim:Pss1A.t2", &get_Pss1A_t2); - get_map.emplace("cim:Pss1A.t3", &get_Pss1A_t3); - get_map.emplace("cim:Pss1A.t4", &get_Pss1A_t4); - get_map.emplace("cim:Pss1A.t5", &get_Pss1A_t5); - get_map.emplace("cim:Pss1A.t6", &get_Pss1A_t6); - get_map.emplace("cim:Pss1A.tdelay", &get_Pss1A_tdelay); - get_map.emplace("cim:Pss1A.vcl", &get_Pss1A_vcl); - get_map.emplace("cim:Pss1A.vcu", &get_Pss1A_vcu); - get_map.emplace("cim:Pss1A.vrmax", &get_Pss1A_vrmax); - get_map.emplace("cim:Pss1A.vrmin", &get_Pss1A_vrmin); + get_map.emplace("Pss1A.a1", &get_Pss1A_a1); + get_map.emplace("Pss1A.a2", &get_Pss1A_a2); + get_map.emplace("Pss1A.a3", &get_Pss1A_a3); + get_map.emplace("Pss1A.a4", &get_Pss1A_a4); + get_map.emplace("Pss1A.a5", &get_Pss1A_a5); + get_map.emplace("Pss1A.a6", &get_Pss1A_a6); + get_map.emplace("Pss1A.a7", &get_Pss1A_a7); + get_map.emplace("Pss1A.a8", &get_Pss1A_a8); + get_map.emplace("Pss1A.kd", &get_Pss1A_kd); + get_map.emplace("Pss1A.ks", &get_Pss1A_ks); + get_map.emplace("Pss1A.t1", &get_Pss1A_t1); + get_map.emplace("Pss1A.t2", &get_Pss1A_t2); + get_map.emplace("Pss1A.t3", &get_Pss1A_t3); + get_map.emplace("Pss1A.t4", &get_Pss1A_t4); + get_map.emplace("Pss1A.t5", &get_Pss1A_t5); + get_map.emplace("Pss1A.t6", &get_Pss1A_t6); + get_map.emplace("Pss1A.tdelay", &get_Pss1A_tdelay); + get_map.emplace("Pss1A.vcl", &get_Pss1A_vcl); + get_map.emplace("Pss1A.vcu", &get_Pss1A_vcu); + get_map.emplace("Pss1A.vrmax", &get_Pss1A_vrmax); + get_map.emplace("Pss1A.vrmin", &get_Pss1A_vrmin); } void Pss1A::addClassGetFnsToMap(std::map& get_map) const @@ -773,7 +805,13 @@ void Pss1A::addClassGetFnsToMap(std::map& get_m void Pss1A::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss1A.inputSignalType", &get_Pss1A_inputSignalType); + get_map.emplace("Pss1A.inputSignalType", &get_Pss1A_inputSignalType); +} + +bool Pss1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss1A::declare() @@ -781,6 +819,14 @@ const BaseClassDefiner Pss1A::declare() return BaseClassDefiner(Pss1A::addConstructToMap, Pss1A::addPrimitiveAssignFnsToMap, Pss1A::addClassAssignFnsToMap, Pss1A::debugName); } +std::map Pss1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/Pss1A.hpp b/CGMES_2.4.15_27JAN2020/Pss1A.hpp index e1b282d6d..168b59604 100644 --- a/CGMES_2.4.15_27JAN2020/Pss1A.hpp +++ b/CGMES_2.4.15_27JAN2020/Pss1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Pss2B.cpp b/CGMES_2.4.15_27JAN2020/Pss2B.cpp index 71b0429d6..4c06f307d 100644 --- a/CGMES_2.4.15_27JAN2020/Pss2B.cpp +++ b/CGMES_2.4.15_27JAN2020/Pss2B.cpp @@ -11,62 +11,94 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss2B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss2B.a", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ks4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.n", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.tw4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi1min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi2max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi2min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss2B::Pss2B() {} Pss2B::~Pss2B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Pss2B.a", { CGMESProfile::DY, } }, - { "cim:Pss2B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:Pss2B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks1", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks2", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks3", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks4", { CGMESProfile::DY, } }, - { "cim:Pss2B.m", { CGMESProfile::DY, } }, - { "cim:Pss2B.n", { CGMESProfile::DY, } }, - { "cim:Pss2B.t1", { CGMESProfile::DY, } }, - { "cim:Pss2B.t10", { CGMESProfile::DY, } }, - { "cim:Pss2B.t11", { CGMESProfile::DY, } }, - { "cim:Pss2B.t2", { CGMESProfile::DY, } }, - { "cim:Pss2B.t3", { CGMESProfile::DY, } }, - { "cim:Pss2B.t4", { CGMESProfile::DY, } }, - { "cim:Pss2B.t6", { CGMESProfile::DY, } }, - { "cim:Pss2B.t7", { CGMESProfile::DY, } }, - { "cim:Pss2B.t8", { CGMESProfile::DY, } }, - { "cim:Pss2B.t9", { CGMESProfile::DY, } }, - { "cim:Pss2B.ta", { CGMESProfile::DY, } }, - { "cim:Pss2B.tb", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw1", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw2", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw3", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw4", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi1max", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi1min", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi2max", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi2min", { CGMESProfile::DY, } }, - { "cim:Pss2B.vstmax", { CGMESProfile::DY, } }, - { "cim:Pss2B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -Pss2B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Pss2B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Pss2B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Pss2B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Pss2B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Pss2B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss2B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss2B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss2B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss2B_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -976,42 +1008,42 @@ const char* Pss2B::debugString() const void Pss2B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss2B", &Pss2B_factory); + factory_map.emplace("Pss2B", &Pss2B_factory); } void Pss2B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss2B.a", &assign_Pss2B_a); - assign_map.emplace("cim:Pss2B.inputSignal1Type", &assign_Pss2B_inputSignal1Type); - assign_map.emplace("cim:Pss2B.inputSignal2Type", &assign_Pss2B_inputSignal2Type); - assign_map.emplace("cim:Pss2B.ks1", &assign_Pss2B_ks1); - assign_map.emplace("cim:Pss2B.ks2", &assign_Pss2B_ks2); - assign_map.emplace("cim:Pss2B.ks3", &assign_Pss2B_ks3); - assign_map.emplace("cim:Pss2B.ks4", &assign_Pss2B_ks4); - assign_map.emplace("cim:Pss2B.m", &assign_Pss2B_m); - assign_map.emplace("cim:Pss2B.n", &assign_Pss2B_n); - assign_map.emplace("cim:Pss2B.t1", &assign_Pss2B_t1); - assign_map.emplace("cim:Pss2B.t10", &assign_Pss2B_t10); - assign_map.emplace("cim:Pss2B.t11", &assign_Pss2B_t11); - assign_map.emplace("cim:Pss2B.t2", &assign_Pss2B_t2); - assign_map.emplace("cim:Pss2B.t3", &assign_Pss2B_t3); - assign_map.emplace("cim:Pss2B.t4", &assign_Pss2B_t4); - assign_map.emplace("cim:Pss2B.t6", &assign_Pss2B_t6); - assign_map.emplace("cim:Pss2B.t7", &assign_Pss2B_t7); - assign_map.emplace("cim:Pss2B.t8", &assign_Pss2B_t8); - assign_map.emplace("cim:Pss2B.t9", &assign_Pss2B_t9); - assign_map.emplace("cim:Pss2B.ta", &assign_Pss2B_ta); - assign_map.emplace("cim:Pss2B.tb", &assign_Pss2B_tb); - assign_map.emplace("cim:Pss2B.tw1", &assign_Pss2B_tw1); - assign_map.emplace("cim:Pss2B.tw2", &assign_Pss2B_tw2); - assign_map.emplace("cim:Pss2B.tw3", &assign_Pss2B_tw3); - assign_map.emplace("cim:Pss2B.tw4", &assign_Pss2B_tw4); - assign_map.emplace("cim:Pss2B.vsi1max", &assign_Pss2B_vsi1max); - assign_map.emplace("cim:Pss2B.vsi1min", &assign_Pss2B_vsi1min); - assign_map.emplace("cim:Pss2B.vsi2max", &assign_Pss2B_vsi2max); - assign_map.emplace("cim:Pss2B.vsi2min", &assign_Pss2B_vsi2min); - assign_map.emplace("cim:Pss2B.vstmax", &assign_Pss2B_vstmax); - assign_map.emplace("cim:Pss2B.vstmin", &assign_Pss2B_vstmin); + assign_map.emplace("Pss2B.a", &assign_Pss2B_a); + assign_map.emplace("Pss2B.inputSignal1Type", &assign_Pss2B_inputSignal1Type); + assign_map.emplace("Pss2B.inputSignal2Type", &assign_Pss2B_inputSignal2Type); + assign_map.emplace("Pss2B.ks1", &assign_Pss2B_ks1); + assign_map.emplace("Pss2B.ks2", &assign_Pss2B_ks2); + assign_map.emplace("Pss2B.ks3", &assign_Pss2B_ks3); + assign_map.emplace("Pss2B.ks4", &assign_Pss2B_ks4); + assign_map.emplace("Pss2B.m", &assign_Pss2B_m); + assign_map.emplace("Pss2B.n", &assign_Pss2B_n); + assign_map.emplace("Pss2B.t1", &assign_Pss2B_t1); + assign_map.emplace("Pss2B.t10", &assign_Pss2B_t10); + assign_map.emplace("Pss2B.t11", &assign_Pss2B_t11); + assign_map.emplace("Pss2B.t2", &assign_Pss2B_t2); + assign_map.emplace("Pss2B.t3", &assign_Pss2B_t3); + assign_map.emplace("Pss2B.t4", &assign_Pss2B_t4); + assign_map.emplace("Pss2B.t6", &assign_Pss2B_t6); + assign_map.emplace("Pss2B.t7", &assign_Pss2B_t7); + assign_map.emplace("Pss2B.t8", &assign_Pss2B_t8); + assign_map.emplace("Pss2B.t9", &assign_Pss2B_t9); + assign_map.emplace("Pss2B.ta", &assign_Pss2B_ta); + assign_map.emplace("Pss2B.tb", &assign_Pss2B_tb); + assign_map.emplace("Pss2B.tw1", &assign_Pss2B_tw1); + assign_map.emplace("Pss2B.tw2", &assign_Pss2B_tw2); + assign_map.emplace("Pss2B.tw3", &assign_Pss2B_tw3); + assign_map.emplace("Pss2B.tw4", &assign_Pss2B_tw4); + assign_map.emplace("Pss2B.vsi1max", &assign_Pss2B_vsi1max); + assign_map.emplace("Pss2B.vsi1min", &assign_Pss2B_vsi1min); + assign_map.emplace("Pss2B.vsi2max", &assign_Pss2B_vsi2max); + assign_map.emplace("Pss2B.vsi2min", &assign_Pss2B_vsi2min); + assign_map.emplace("Pss2B.vstmax", &assign_Pss2B_vstmax); + assign_map.emplace("Pss2B.vstmin", &assign_Pss2B_vstmin); } void Pss2B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1021,35 +1053,35 @@ void Pss2B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss2B.a", &get_Pss2B_a); - get_map.emplace("cim:Pss2B.ks1", &get_Pss2B_ks1); - get_map.emplace("cim:Pss2B.ks2", &get_Pss2B_ks2); - get_map.emplace("cim:Pss2B.ks3", &get_Pss2B_ks3); - get_map.emplace("cim:Pss2B.ks4", &get_Pss2B_ks4); - get_map.emplace("cim:Pss2B.m", &get_Pss2B_m); - get_map.emplace("cim:Pss2B.n", &get_Pss2B_n); - get_map.emplace("cim:Pss2B.t1", &get_Pss2B_t1); - get_map.emplace("cim:Pss2B.t10", &get_Pss2B_t10); - get_map.emplace("cim:Pss2B.t11", &get_Pss2B_t11); - get_map.emplace("cim:Pss2B.t2", &get_Pss2B_t2); - get_map.emplace("cim:Pss2B.t3", &get_Pss2B_t3); - get_map.emplace("cim:Pss2B.t4", &get_Pss2B_t4); - get_map.emplace("cim:Pss2B.t6", &get_Pss2B_t6); - get_map.emplace("cim:Pss2B.t7", &get_Pss2B_t7); - get_map.emplace("cim:Pss2B.t8", &get_Pss2B_t8); - get_map.emplace("cim:Pss2B.t9", &get_Pss2B_t9); - get_map.emplace("cim:Pss2B.ta", &get_Pss2B_ta); - get_map.emplace("cim:Pss2B.tb", &get_Pss2B_tb); - get_map.emplace("cim:Pss2B.tw1", &get_Pss2B_tw1); - get_map.emplace("cim:Pss2B.tw2", &get_Pss2B_tw2); - get_map.emplace("cim:Pss2B.tw3", &get_Pss2B_tw3); - get_map.emplace("cim:Pss2B.tw4", &get_Pss2B_tw4); - get_map.emplace("cim:Pss2B.vsi1max", &get_Pss2B_vsi1max); - get_map.emplace("cim:Pss2B.vsi1min", &get_Pss2B_vsi1min); - get_map.emplace("cim:Pss2B.vsi2max", &get_Pss2B_vsi2max); - get_map.emplace("cim:Pss2B.vsi2min", &get_Pss2B_vsi2min); - get_map.emplace("cim:Pss2B.vstmax", &get_Pss2B_vstmax); - get_map.emplace("cim:Pss2B.vstmin", &get_Pss2B_vstmin); + get_map.emplace("Pss2B.a", &get_Pss2B_a); + get_map.emplace("Pss2B.ks1", &get_Pss2B_ks1); + get_map.emplace("Pss2B.ks2", &get_Pss2B_ks2); + get_map.emplace("Pss2B.ks3", &get_Pss2B_ks3); + get_map.emplace("Pss2B.ks4", &get_Pss2B_ks4); + get_map.emplace("Pss2B.m", &get_Pss2B_m); + get_map.emplace("Pss2B.n", &get_Pss2B_n); + get_map.emplace("Pss2B.t1", &get_Pss2B_t1); + get_map.emplace("Pss2B.t10", &get_Pss2B_t10); + get_map.emplace("Pss2B.t11", &get_Pss2B_t11); + get_map.emplace("Pss2B.t2", &get_Pss2B_t2); + get_map.emplace("Pss2B.t3", &get_Pss2B_t3); + get_map.emplace("Pss2B.t4", &get_Pss2B_t4); + get_map.emplace("Pss2B.t6", &get_Pss2B_t6); + get_map.emplace("Pss2B.t7", &get_Pss2B_t7); + get_map.emplace("Pss2B.t8", &get_Pss2B_t8); + get_map.emplace("Pss2B.t9", &get_Pss2B_t9); + get_map.emplace("Pss2B.ta", &get_Pss2B_ta); + get_map.emplace("Pss2B.tb", &get_Pss2B_tb); + get_map.emplace("Pss2B.tw1", &get_Pss2B_tw1); + get_map.emplace("Pss2B.tw2", &get_Pss2B_tw2); + get_map.emplace("Pss2B.tw3", &get_Pss2B_tw3); + get_map.emplace("Pss2B.tw4", &get_Pss2B_tw4); + get_map.emplace("Pss2B.vsi1max", &get_Pss2B_vsi1max); + get_map.emplace("Pss2B.vsi1min", &get_Pss2B_vsi1min); + get_map.emplace("Pss2B.vsi2max", &get_Pss2B_vsi2max); + get_map.emplace("Pss2B.vsi2min", &get_Pss2B_vsi2min); + get_map.emplace("Pss2B.vstmax", &get_Pss2B_vstmax); + get_map.emplace("Pss2B.vstmin", &get_Pss2B_vstmin); } void Pss2B::addClassGetFnsToMap(std::map& get_map) const @@ -1060,8 +1092,14 @@ void Pss2B::addClassGetFnsToMap(std::map& get_m void Pss2B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss2B.inputSignal1Type", &get_Pss2B_inputSignal1Type); - get_map.emplace("cim:Pss2B.inputSignal2Type", &get_Pss2B_inputSignal2Type); + get_map.emplace("Pss2B.inputSignal1Type", &get_Pss2B_inputSignal1Type); + get_map.emplace("Pss2B.inputSignal2Type", &get_Pss2B_inputSignal2Type); +} + +bool Pss2B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss2B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss2B::declare() @@ -1069,6 +1107,14 @@ const BaseClassDefiner Pss2B::declare() return BaseClassDefiner(Pss2B::addConstructToMap, Pss2B::addPrimitiveAssignFnsToMap, Pss2B::addClassAssignFnsToMap, Pss2B::debugName); } +std::map Pss2B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss2B_factory() diff --git a/CGMES_2.4.15_27JAN2020/Pss2B.hpp b/CGMES_2.4.15_27JAN2020/Pss2B.hpp index 90e74ab8e..a31855343 100644 --- a/CGMES_2.4.15_27JAN2020/Pss2B.hpp +++ b/CGMES_2.4.15_27JAN2020/Pss2B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -125,8 +126,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -134,7 +142,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss2B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Pss2ST.cpp b/CGMES_2.4.15_27JAN2020/Pss2ST.cpp index 9a42e067c..330a46ab4 100644 --- a/CGMES_2.4.15_27JAN2020/Pss2ST.cpp +++ b/CGMES_2.4.15_27JAN2020/Pss2ST.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss2ST(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss2ST.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.lsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.lsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss2ST.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss2ST::Pss2ST() {} Pss2ST::~Pss2ST() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss2ST::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss2ST::getClassNamespaceUrl() const { - { "cim:Pss2ST.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:Pss2ST.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:Pss2ST.k1", { CGMESProfile::DY, } }, - { "cim:Pss2ST.k2", { CGMESProfile::DY, } }, - { "cim:Pss2ST.lsmax", { CGMESProfile::DY, } }, - { "cim:Pss2ST.lsmin", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t1", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t10", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t2", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t3", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t4", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t5", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t6", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t7", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t8", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t9", { CGMESProfile::DY, } }, - { "cim:Pss2ST.vcl", { CGMESProfile::DY, } }, - { "cim:Pss2ST.vcu", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss2ST::getPossibleProfilesForClass() const +const std::string& Pss2ST::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss2ST::getPossibleProfilesForAttributes() const +const std::list& Pss2ST::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss2ST::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss2ST::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss2ST::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss2ST_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* Pss2ST::debugString() const void Pss2ST::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss2ST", &Pss2ST_factory); + factory_map.emplace("Pss2ST", &Pss2ST_factory); } void Pss2ST::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss2ST.inputSignal1Type", &assign_Pss2ST_inputSignal1Type); - assign_map.emplace("cim:Pss2ST.inputSignal2Type", &assign_Pss2ST_inputSignal2Type); - assign_map.emplace("cim:Pss2ST.k1", &assign_Pss2ST_k1); - assign_map.emplace("cim:Pss2ST.k2", &assign_Pss2ST_k2); - assign_map.emplace("cim:Pss2ST.lsmax", &assign_Pss2ST_lsmax); - assign_map.emplace("cim:Pss2ST.lsmin", &assign_Pss2ST_lsmin); - assign_map.emplace("cim:Pss2ST.t1", &assign_Pss2ST_t1); - assign_map.emplace("cim:Pss2ST.t10", &assign_Pss2ST_t10); - assign_map.emplace("cim:Pss2ST.t2", &assign_Pss2ST_t2); - assign_map.emplace("cim:Pss2ST.t3", &assign_Pss2ST_t3); - assign_map.emplace("cim:Pss2ST.t4", &assign_Pss2ST_t4); - assign_map.emplace("cim:Pss2ST.t5", &assign_Pss2ST_t5); - assign_map.emplace("cim:Pss2ST.t6", &assign_Pss2ST_t6); - assign_map.emplace("cim:Pss2ST.t7", &assign_Pss2ST_t7); - assign_map.emplace("cim:Pss2ST.t8", &assign_Pss2ST_t8); - assign_map.emplace("cim:Pss2ST.t9", &assign_Pss2ST_t9); - assign_map.emplace("cim:Pss2ST.vcl", &assign_Pss2ST_vcl); - assign_map.emplace("cim:Pss2ST.vcu", &assign_Pss2ST_vcu); + assign_map.emplace("Pss2ST.inputSignal1Type", &assign_Pss2ST_inputSignal1Type); + assign_map.emplace("Pss2ST.inputSignal2Type", &assign_Pss2ST_inputSignal2Type); + assign_map.emplace("Pss2ST.k1", &assign_Pss2ST_k1); + assign_map.emplace("Pss2ST.k2", &assign_Pss2ST_k2); + assign_map.emplace("Pss2ST.lsmax", &assign_Pss2ST_lsmax); + assign_map.emplace("Pss2ST.lsmin", &assign_Pss2ST_lsmin); + assign_map.emplace("Pss2ST.t1", &assign_Pss2ST_t1); + assign_map.emplace("Pss2ST.t10", &assign_Pss2ST_t10); + assign_map.emplace("Pss2ST.t2", &assign_Pss2ST_t2); + assign_map.emplace("Pss2ST.t3", &assign_Pss2ST_t3); + assign_map.emplace("Pss2ST.t4", &assign_Pss2ST_t4); + assign_map.emplace("Pss2ST.t5", &assign_Pss2ST_t5); + assign_map.emplace("Pss2ST.t6", &assign_Pss2ST_t6); + assign_map.emplace("Pss2ST.t7", &assign_Pss2ST_t7); + assign_map.emplace("Pss2ST.t8", &assign_Pss2ST_t8); + assign_map.emplace("Pss2ST.t9", &assign_Pss2ST_t9); + assign_map.emplace("Pss2ST.vcl", &assign_Pss2ST_vcl); + assign_map.emplace("Pss2ST.vcu", &assign_Pss2ST_vcu); } void Pss2ST::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,22 +650,22 @@ void Pss2ST::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss2ST.k1", &get_Pss2ST_k1); - get_map.emplace("cim:Pss2ST.k2", &get_Pss2ST_k2); - get_map.emplace("cim:Pss2ST.lsmax", &get_Pss2ST_lsmax); - get_map.emplace("cim:Pss2ST.lsmin", &get_Pss2ST_lsmin); - get_map.emplace("cim:Pss2ST.t1", &get_Pss2ST_t1); - get_map.emplace("cim:Pss2ST.t10", &get_Pss2ST_t10); - get_map.emplace("cim:Pss2ST.t2", &get_Pss2ST_t2); - get_map.emplace("cim:Pss2ST.t3", &get_Pss2ST_t3); - get_map.emplace("cim:Pss2ST.t4", &get_Pss2ST_t4); - get_map.emplace("cim:Pss2ST.t5", &get_Pss2ST_t5); - get_map.emplace("cim:Pss2ST.t6", &get_Pss2ST_t6); - get_map.emplace("cim:Pss2ST.t7", &get_Pss2ST_t7); - get_map.emplace("cim:Pss2ST.t8", &get_Pss2ST_t8); - get_map.emplace("cim:Pss2ST.t9", &get_Pss2ST_t9); - get_map.emplace("cim:Pss2ST.vcl", &get_Pss2ST_vcl); - get_map.emplace("cim:Pss2ST.vcu", &get_Pss2ST_vcu); + get_map.emplace("Pss2ST.k1", &get_Pss2ST_k1); + get_map.emplace("Pss2ST.k2", &get_Pss2ST_k2); + get_map.emplace("Pss2ST.lsmax", &get_Pss2ST_lsmax); + get_map.emplace("Pss2ST.lsmin", &get_Pss2ST_lsmin); + get_map.emplace("Pss2ST.t1", &get_Pss2ST_t1); + get_map.emplace("Pss2ST.t10", &get_Pss2ST_t10); + get_map.emplace("Pss2ST.t2", &get_Pss2ST_t2); + get_map.emplace("Pss2ST.t3", &get_Pss2ST_t3); + get_map.emplace("Pss2ST.t4", &get_Pss2ST_t4); + get_map.emplace("Pss2ST.t5", &get_Pss2ST_t5); + get_map.emplace("Pss2ST.t6", &get_Pss2ST_t6); + get_map.emplace("Pss2ST.t7", &get_Pss2ST_t7); + get_map.emplace("Pss2ST.t8", &get_Pss2ST_t8); + get_map.emplace("Pss2ST.t9", &get_Pss2ST_t9); + get_map.emplace("Pss2ST.vcl", &get_Pss2ST_vcl); + get_map.emplace("Pss2ST.vcu", &get_Pss2ST_vcu); } void Pss2ST::addClassGetFnsToMap(std::map& get_map) const @@ -644,8 +676,14 @@ void Pss2ST::addClassGetFnsToMap(std::map& get_ void Pss2ST::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss2ST.inputSignal1Type", &get_Pss2ST_inputSignal1Type); - get_map.emplace("cim:Pss2ST.inputSignal2Type", &get_Pss2ST_inputSignal2Type); + get_map.emplace("Pss2ST.inputSignal1Type", &get_Pss2ST_inputSignal1Type); + get_map.emplace("Pss2ST.inputSignal2Type", &get_Pss2ST_inputSignal2Type); +} + +bool Pss2ST::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss2ST" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss2ST::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner Pss2ST::declare() return BaseClassDefiner(Pss2ST::addConstructToMap, Pss2ST::addPrimitiveAssignFnsToMap, Pss2ST::addClassAssignFnsToMap, Pss2ST::debugName); } +std::map Pss2ST::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss2ST_factory() diff --git a/CGMES_2.4.15_27JAN2020/Pss2ST.hpp b/CGMES_2.4.15_27JAN2020/Pss2ST.hpp index abd31dcb0..542d90d64 100644 --- a/CGMES_2.4.15_27JAN2020/Pss2ST.hpp +++ b/CGMES_2.4.15_27JAN2020/Pss2ST.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss2ST_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Pss5.cpp b/CGMES_2.4.15_27JAN2020/Pss5.cpp index 41a4f0631..628fb4ac7 100644 --- a/CGMES_2.4.15_27JAN2020/Pss5.cpp +++ b/CGMES_2.4.15_27JAN2020/Pss5.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss5(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss5.ctw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.deadband", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.isfreq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.kpss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.pmm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vadat", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vsmn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Pss5.vsmx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss5::Pss5() {} Pss5::~Pss5() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss5::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss5::getClassNamespaceUrl() const { - { "cim:Pss5.ctw2", { CGMESProfile::DY, } }, - { "cim:Pss5.deadband", { CGMESProfile::DY, } }, - { "cim:Pss5.isfreq", { CGMESProfile::DY, } }, - { "cim:Pss5.kf", { CGMESProfile::DY, } }, - { "cim:Pss5.kpe", { CGMESProfile::DY, } }, - { "cim:Pss5.kpss", { CGMESProfile::DY, } }, - { "cim:Pss5.pmm", { CGMESProfile::DY, } }, - { "cim:Pss5.tl1", { CGMESProfile::DY, } }, - { "cim:Pss5.tl2", { CGMESProfile::DY, } }, - { "cim:Pss5.tl3", { CGMESProfile::DY, } }, - { "cim:Pss5.tl4", { CGMESProfile::DY, } }, - { "cim:Pss5.tpe", { CGMESProfile::DY, } }, - { "cim:Pss5.tw1", { CGMESProfile::DY, } }, - { "cim:Pss5.tw2", { CGMESProfile::DY, } }, - { "cim:Pss5.vadat", { CGMESProfile::DY, } }, - { "cim:Pss5.vsmn", { CGMESProfile::DY, } }, - { "cim:Pss5.vsmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss5::getPossibleProfilesForClass() const +const std::string& Pss5::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss5::getPossibleProfilesForAttributes() const +const std::list& Pss5::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss5::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss5::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss5::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss5_ctw2(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* Pss5::debugString() const void Pss5::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss5", &Pss5_factory); + factory_map.emplace("Pss5", &Pss5_factory); } void Pss5::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss5.ctw2", &assign_Pss5_ctw2); - assign_map.emplace("cim:Pss5.deadband", &assign_Pss5_deadband); - assign_map.emplace("cim:Pss5.isfreq", &assign_Pss5_isfreq); - assign_map.emplace("cim:Pss5.kf", &assign_Pss5_kf); - assign_map.emplace("cim:Pss5.kpe", &assign_Pss5_kpe); - assign_map.emplace("cim:Pss5.kpss", &assign_Pss5_kpss); - assign_map.emplace("cim:Pss5.pmm", &assign_Pss5_pmm); - assign_map.emplace("cim:Pss5.tl1", &assign_Pss5_tl1); - assign_map.emplace("cim:Pss5.tl2", &assign_Pss5_tl2); - assign_map.emplace("cim:Pss5.tl3", &assign_Pss5_tl3); - assign_map.emplace("cim:Pss5.tl4", &assign_Pss5_tl4); - assign_map.emplace("cim:Pss5.tpe", &assign_Pss5_tpe); - assign_map.emplace("cim:Pss5.tw1", &assign_Pss5_tw1); - assign_map.emplace("cim:Pss5.tw2", &assign_Pss5_tw2); - assign_map.emplace("cim:Pss5.vadat", &assign_Pss5_vadat); - assign_map.emplace("cim:Pss5.vsmn", &assign_Pss5_vsmn); - assign_map.emplace("cim:Pss5.vsmx", &assign_Pss5_vsmx); + assign_map.emplace("Pss5.ctw2", &assign_Pss5_ctw2); + assign_map.emplace("Pss5.deadband", &assign_Pss5_deadband); + assign_map.emplace("Pss5.isfreq", &assign_Pss5_isfreq); + assign_map.emplace("Pss5.kf", &assign_Pss5_kf); + assign_map.emplace("Pss5.kpe", &assign_Pss5_kpe); + assign_map.emplace("Pss5.kpss", &assign_Pss5_kpss); + assign_map.emplace("Pss5.pmm", &assign_Pss5_pmm); + assign_map.emplace("Pss5.tl1", &assign_Pss5_tl1); + assign_map.emplace("Pss5.tl2", &assign_Pss5_tl2); + assign_map.emplace("Pss5.tl3", &assign_Pss5_tl3); + assign_map.emplace("Pss5.tl4", &assign_Pss5_tl4); + assign_map.emplace("Pss5.tpe", &assign_Pss5_tpe); + assign_map.emplace("Pss5.tw1", &assign_Pss5_tw1); + assign_map.emplace("Pss5.tw2", &assign_Pss5_tw2); + assign_map.emplace("Pss5.vadat", &assign_Pss5_vadat); + assign_map.emplace("Pss5.vsmn", &assign_Pss5_vsmn); + assign_map.emplace("Pss5.vsmx", &assign_Pss5_vsmx); } void Pss5::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void Pss5::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss5.ctw2", &get_Pss5_ctw2); - get_map.emplace("cim:Pss5.deadband", &get_Pss5_deadband); - get_map.emplace("cim:Pss5.isfreq", &get_Pss5_isfreq); - get_map.emplace("cim:Pss5.kf", &get_Pss5_kf); - get_map.emplace("cim:Pss5.kpe", &get_Pss5_kpe); - get_map.emplace("cim:Pss5.kpss", &get_Pss5_kpss); - get_map.emplace("cim:Pss5.pmm", &get_Pss5_pmm); - get_map.emplace("cim:Pss5.tl1", &get_Pss5_tl1); - get_map.emplace("cim:Pss5.tl2", &get_Pss5_tl2); - get_map.emplace("cim:Pss5.tl3", &get_Pss5_tl3); - get_map.emplace("cim:Pss5.tl4", &get_Pss5_tl4); - get_map.emplace("cim:Pss5.tpe", &get_Pss5_tpe); - get_map.emplace("cim:Pss5.tw1", &get_Pss5_tw1); - get_map.emplace("cim:Pss5.tw2", &get_Pss5_tw2); - get_map.emplace("cim:Pss5.vadat", &get_Pss5_vadat); - get_map.emplace("cim:Pss5.vsmn", &get_Pss5_vsmn); - get_map.emplace("cim:Pss5.vsmx", &get_Pss5_vsmx); + get_map.emplace("Pss5.ctw2", &get_Pss5_ctw2); + get_map.emplace("Pss5.deadband", &get_Pss5_deadband); + get_map.emplace("Pss5.isfreq", &get_Pss5_isfreq); + get_map.emplace("Pss5.kf", &get_Pss5_kf); + get_map.emplace("Pss5.kpe", &get_Pss5_kpe); + get_map.emplace("Pss5.kpss", &get_Pss5_kpss); + get_map.emplace("Pss5.pmm", &get_Pss5_pmm); + get_map.emplace("Pss5.tl1", &get_Pss5_tl1); + get_map.emplace("Pss5.tl2", &get_Pss5_tl2); + get_map.emplace("Pss5.tl3", &get_Pss5_tl3); + get_map.emplace("Pss5.tl4", &get_Pss5_tl4); + get_map.emplace("Pss5.tpe", &get_Pss5_tpe); + get_map.emplace("Pss5.tw1", &get_Pss5_tw1); + get_map.emplace("Pss5.tw2", &get_Pss5_tw2); + get_map.emplace("Pss5.vadat", &get_Pss5_vadat); + get_map.emplace("Pss5.vsmn", &get_Pss5_vsmn); + get_map.emplace("Pss5.vsmx", &get_Pss5_vsmx); } void Pss5::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void Pss5::addEnumGetFnsToMap(std::map& get_map) cons PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss5::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss5" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss5::declare() { return BaseClassDefiner(Pss5::addConstructToMap, Pss5::addPrimitiveAssignFnsToMap, Pss5::addClassAssignFnsToMap, Pss5::debugName); } +std::map Pss5::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss5_factory() diff --git a/CGMES_2.4.15_27JAN2020/Pss5.hpp b/CGMES_2.4.15_27JAN2020/Pss5.hpp index 9855524fa..6f0fdfed6 100644 --- a/CGMES_2.4.15_27JAN2020/Pss5.hpp +++ b/CGMES_2.4.15_27JAN2020/Pss5.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -82,8 +83,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -91,7 +99,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss5_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssELIN2.cpp b/CGMES_2.4.15_27JAN2020/PssELIN2.cpp index 394cf185f..3ac940e75 100644 --- a/CGMES_2.4.15_27JAN2020/PssELIN2.cpp +++ b/CGMES_2.4.15_27JAN2020/PssELIN2.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssELIN2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssELIN2.apss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ppss", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.psslim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssELIN2::PssELIN2() {} PssELIN2::~PssELIN2() {} -static const std::list PossibleProfilesForClass = +const std::list& PssELIN2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssELIN2::getClassNamespaceUrl() const { - { "cim:PssELIN2.apss", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ks1", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ks2", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ppss", { CGMESProfile::DY, } }, - { "cim:PssELIN2.psslim", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts1", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts2", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts3", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts4", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts5", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts6", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssELIN2::getPossibleProfilesForClass() const +const std::string& PssELIN2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssELIN2::getPossibleProfilesForAttributes() const +const std::list& PssELIN2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssELIN2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssELIN2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssELIN2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssELIN2_apss(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssELIN2::debugString() const void PssELIN2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssELIN2", &PssELIN2_factory); + factory_map.emplace("PssELIN2", &PssELIN2_factory); } void PssELIN2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssELIN2.apss", &assign_PssELIN2_apss); - assign_map.emplace("cim:PssELIN2.ks1", &assign_PssELIN2_ks1); - assign_map.emplace("cim:PssELIN2.ks2", &assign_PssELIN2_ks2); - assign_map.emplace("cim:PssELIN2.ppss", &assign_PssELIN2_ppss); - assign_map.emplace("cim:PssELIN2.psslim", &assign_PssELIN2_psslim); - assign_map.emplace("cim:PssELIN2.ts1", &assign_PssELIN2_ts1); - assign_map.emplace("cim:PssELIN2.ts2", &assign_PssELIN2_ts2); - assign_map.emplace("cim:PssELIN2.ts3", &assign_PssELIN2_ts3); - assign_map.emplace("cim:PssELIN2.ts4", &assign_PssELIN2_ts4); - assign_map.emplace("cim:PssELIN2.ts5", &assign_PssELIN2_ts5); - assign_map.emplace("cim:PssELIN2.ts6", &assign_PssELIN2_ts6); + assign_map.emplace("PssELIN2.apss", &assign_PssELIN2_apss); + assign_map.emplace("PssELIN2.ks1", &assign_PssELIN2_ks1); + assign_map.emplace("PssELIN2.ks2", &assign_PssELIN2_ks2); + assign_map.emplace("PssELIN2.ppss", &assign_PssELIN2_ppss); + assign_map.emplace("PssELIN2.psslim", &assign_PssELIN2_psslim); + assign_map.emplace("PssELIN2.ts1", &assign_PssELIN2_ts1); + assign_map.emplace("PssELIN2.ts2", &assign_PssELIN2_ts2); + assign_map.emplace("PssELIN2.ts3", &assign_PssELIN2_ts3); + assign_map.emplace("PssELIN2.ts4", &assign_PssELIN2_ts4); + assign_map.emplace("PssELIN2.ts5", &assign_PssELIN2_ts5); + assign_map.emplace("PssELIN2.ts6", &assign_PssELIN2_ts6); } void PssELIN2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssELIN2::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssELIN2.apss", &get_PssELIN2_apss); - get_map.emplace("cim:PssELIN2.ks1", &get_PssELIN2_ks1); - get_map.emplace("cim:PssELIN2.ks2", &get_PssELIN2_ks2); - get_map.emplace("cim:PssELIN2.ppss", &get_PssELIN2_ppss); - get_map.emplace("cim:PssELIN2.psslim", &get_PssELIN2_psslim); - get_map.emplace("cim:PssELIN2.ts1", &get_PssELIN2_ts1); - get_map.emplace("cim:PssELIN2.ts2", &get_PssELIN2_ts2); - get_map.emplace("cim:PssELIN2.ts3", &get_PssELIN2_ts3); - get_map.emplace("cim:PssELIN2.ts4", &get_PssELIN2_ts4); - get_map.emplace("cim:PssELIN2.ts5", &get_PssELIN2_ts5); - get_map.emplace("cim:PssELIN2.ts6", &get_PssELIN2_ts6); + get_map.emplace("PssELIN2.apss", &get_PssELIN2_apss); + get_map.emplace("PssELIN2.ks1", &get_PssELIN2_ks1); + get_map.emplace("PssELIN2.ks2", &get_PssELIN2_ks2); + get_map.emplace("PssELIN2.ppss", &get_PssELIN2_ppss); + get_map.emplace("PssELIN2.psslim", &get_PssELIN2_psslim); + get_map.emplace("PssELIN2.ts1", &get_PssELIN2_ts1); + get_map.emplace("PssELIN2.ts2", &get_PssELIN2_ts2); + get_map.emplace("PssELIN2.ts3", &get_PssELIN2_ts3); + get_map.emplace("PssELIN2.ts4", &get_PssELIN2_ts4); + get_map.emplace("PssELIN2.ts5", &get_PssELIN2_ts5); + get_map.emplace("PssELIN2.ts6", &get_PssELIN2_ts6); } void PssELIN2::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssELIN2::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssELIN2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssELIN2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssELIN2::declare() { return BaseClassDefiner(PssELIN2::addConstructToMap, PssELIN2::addPrimitiveAssignFnsToMap, PssELIN2::addClassAssignFnsToMap, PssELIN2::debugName); } +std::map PssELIN2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssELIN2_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssELIN2.hpp b/CGMES_2.4.15_27JAN2020/PssELIN2.hpp index d5ebed820..1518be45a 100644 --- a/CGMES_2.4.15_27JAN2020/PssELIN2.hpp +++ b/CGMES_2.4.15_27JAN2020/PssELIN2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssELIN2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssIEEE1A.cpp b/CGMES_2.4.15_27JAN2020/PssIEEE1A.cpp index 7387ba08e..4b4e47077 100644 --- a/CGMES_2.4.15_27JAN2020/PssIEEE1A.cpp +++ b/CGMES_2.4.15_27JAN2020/PssIEEE1A.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE1A(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE1A.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.inputSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.vrmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.vrmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE1A::PssIEEE1A() {} PssIEEE1A::~PssIEEE1A() {} -static const std::list PossibleProfilesForClass = +const std::list& PssIEEE1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssIEEE1A::getClassNamespaceUrl() const { - { "cim:PssIEEE1A.a1", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.a2", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.inputSignalType", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.ks", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t3", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t4", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t5", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t6", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.vrmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssIEEE1A::getPossibleProfilesForClass() const +const std::string& PssIEEE1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssIEEE1A::getPossibleProfilesForAttributes() const +const std::list& PssIEEE1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE1A_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* PssIEEE1A::debugString() const void PssIEEE1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE1A", &PssIEEE1A_factory); + factory_map.emplace("PssIEEE1A", &PssIEEE1A_factory); } void PssIEEE1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE1A.a1", &assign_PssIEEE1A_a1); - assign_map.emplace("cim:PssIEEE1A.a2", &assign_PssIEEE1A_a2); - assign_map.emplace("cim:PssIEEE1A.inputSignalType", &assign_PssIEEE1A_inputSignalType); - assign_map.emplace("cim:PssIEEE1A.ks", &assign_PssIEEE1A_ks); - assign_map.emplace("cim:PssIEEE1A.t1", &assign_PssIEEE1A_t1); - assign_map.emplace("cim:PssIEEE1A.t2", &assign_PssIEEE1A_t2); - assign_map.emplace("cim:PssIEEE1A.t3", &assign_PssIEEE1A_t3); - assign_map.emplace("cim:PssIEEE1A.t4", &assign_PssIEEE1A_t4); - assign_map.emplace("cim:PssIEEE1A.t5", &assign_PssIEEE1A_t5); - assign_map.emplace("cim:PssIEEE1A.t6", &assign_PssIEEE1A_t6); - assign_map.emplace("cim:PssIEEE1A.vrmax", &assign_PssIEEE1A_vrmax); - assign_map.emplace("cim:PssIEEE1A.vrmin", &assign_PssIEEE1A_vrmin); + assign_map.emplace("PssIEEE1A.a1", &assign_PssIEEE1A_a1); + assign_map.emplace("PssIEEE1A.a2", &assign_PssIEEE1A_a2); + assign_map.emplace("PssIEEE1A.inputSignalType", &assign_PssIEEE1A_inputSignalType); + assign_map.emplace("PssIEEE1A.ks", &assign_PssIEEE1A_ks); + assign_map.emplace("PssIEEE1A.t1", &assign_PssIEEE1A_t1); + assign_map.emplace("PssIEEE1A.t2", &assign_PssIEEE1A_t2); + assign_map.emplace("PssIEEE1A.t3", &assign_PssIEEE1A_t3); + assign_map.emplace("PssIEEE1A.t4", &assign_PssIEEE1A_t4); + assign_map.emplace("PssIEEE1A.t5", &assign_PssIEEE1A_t5); + assign_map.emplace("PssIEEE1A.t6", &assign_PssIEEE1A_t6); + assign_map.emplace("PssIEEE1A.vrmax", &assign_PssIEEE1A_vrmax); + assign_map.emplace("PssIEEE1A.vrmin", &assign_PssIEEE1A_vrmin); } void PssIEEE1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,17 +464,17 @@ void PssIEEE1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE1A.a1", &get_PssIEEE1A_a1); - get_map.emplace("cim:PssIEEE1A.a2", &get_PssIEEE1A_a2); - get_map.emplace("cim:PssIEEE1A.ks", &get_PssIEEE1A_ks); - get_map.emplace("cim:PssIEEE1A.t1", &get_PssIEEE1A_t1); - get_map.emplace("cim:PssIEEE1A.t2", &get_PssIEEE1A_t2); - get_map.emplace("cim:PssIEEE1A.t3", &get_PssIEEE1A_t3); - get_map.emplace("cim:PssIEEE1A.t4", &get_PssIEEE1A_t4); - get_map.emplace("cim:PssIEEE1A.t5", &get_PssIEEE1A_t5); - get_map.emplace("cim:PssIEEE1A.t6", &get_PssIEEE1A_t6); - get_map.emplace("cim:PssIEEE1A.vrmax", &get_PssIEEE1A_vrmax); - get_map.emplace("cim:PssIEEE1A.vrmin", &get_PssIEEE1A_vrmin); + get_map.emplace("PssIEEE1A.a1", &get_PssIEEE1A_a1); + get_map.emplace("PssIEEE1A.a2", &get_PssIEEE1A_a2); + get_map.emplace("PssIEEE1A.ks", &get_PssIEEE1A_ks); + get_map.emplace("PssIEEE1A.t1", &get_PssIEEE1A_t1); + get_map.emplace("PssIEEE1A.t2", &get_PssIEEE1A_t2); + get_map.emplace("PssIEEE1A.t3", &get_PssIEEE1A_t3); + get_map.emplace("PssIEEE1A.t4", &get_PssIEEE1A_t4); + get_map.emplace("PssIEEE1A.t5", &get_PssIEEE1A_t5); + get_map.emplace("PssIEEE1A.t6", &get_PssIEEE1A_t6); + get_map.emplace("PssIEEE1A.vrmax", &get_PssIEEE1A_vrmax); + get_map.emplace("PssIEEE1A.vrmin", &get_PssIEEE1A_vrmin); } void PssIEEE1A::addClassGetFnsToMap(std::map& get_map) const @@ -453,7 +485,13 @@ void PssIEEE1A::addClassGetFnsToMap(std::map& g void PssIEEE1A::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE1A.inputSignalType", &get_PssIEEE1A_inputSignalType); + get_map.emplace("PssIEEE1A.inputSignalType", &get_PssIEEE1A_inputSignalType); +} + +bool PssIEEE1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE1A::declare() @@ -461,6 +499,14 @@ const BaseClassDefiner PssIEEE1A::declare() return BaseClassDefiner(PssIEEE1A::addConstructToMap, PssIEEE1A::addPrimitiveAssignFnsToMap, PssIEEE1A::addClassAssignFnsToMap, PssIEEE1A::debugName); } +std::map PssIEEE1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE1A_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssIEEE1A.hpp b/CGMES_2.4.15_27JAN2020/PssIEEE1A.hpp index 783b9d15e..37e50f8eb 100644 --- a/CGMES_2.4.15_27JAN2020/PssIEEE1A.hpp +++ b/CGMES_2.4.15_27JAN2020/PssIEEE1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE1A_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssIEEE2B.cpp b/CGMES_2.4.15_27JAN2020/PssIEEE2B.cpp index 7b46362be..830d84764 100644 --- a/CGMES_2.4.15_27JAN2020/PssIEEE2B.cpp +++ b/CGMES_2.4.15_27JAN2020/PssIEEE2B.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE2B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE2B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.n", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi1max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi1min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi2max", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi2min", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE2B::PssIEEE2B() {} PssIEEE2B::~PssIEEE2B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE2B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.m", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.n", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t10", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t11", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t4", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t6", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t7", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t8", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t9", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw4", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi1max", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi1min", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi2max", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi2min", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE2B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE2B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE2B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE2B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE2B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE2B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE2B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE2B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE2B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE2B_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* PssIEEE2B::debugString() const void PssIEEE2B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE2B", &PssIEEE2B_factory); + factory_map.emplace("PssIEEE2B", &PssIEEE2B_factory); } void PssIEEE2B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE2B.inputSignal1Type", &assign_PssIEEE2B_inputSignal1Type); - assign_map.emplace("cim:PssIEEE2B.inputSignal2Type", &assign_PssIEEE2B_inputSignal2Type); - assign_map.emplace("cim:PssIEEE2B.ks1", &assign_PssIEEE2B_ks1); - assign_map.emplace("cim:PssIEEE2B.ks2", &assign_PssIEEE2B_ks2); - assign_map.emplace("cim:PssIEEE2B.ks3", &assign_PssIEEE2B_ks3); - assign_map.emplace("cim:PssIEEE2B.m", &assign_PssIEEE2B_m); - assign_map.emplace("cim:PssIEEE2B.n", &assign_PssIEEE2B_n); - assign_map.emplace("cim:PssIEEE2B.t1", &assign_PssIEEE2B_t1); - assign_map.emplace("cim:PssIEEE2B.t10", &assign_PssIEEE2B_t10); - assign_map.emplace("cim:PssIEEE2B.t11", &assign_PssIEEE2B_t11); - assign_map.emplace("cim:PssIEEE2B.t2", &assign_PssIEEE2B_t2); - assign_map.emplace("cim:PssIEEE2B.t3", &assign_PssIEEE2B_t3); - assign_map.emplace("cim:PssIEEE2B.t4", &assign_PssIEEE2B_t4); - assign_map.emplace("cim:PssIEEE2B.t6", &assign_PssIEEE2B_t6); - assign_map.emplace("cim:PssIEEE2B.t7", &assign_PssIEEE2B_t7); - assign_map.emplace("cim:PssIEEE2B.t8", &assign_PssIEEE2B_t8); - assign_map.emplace("cim:PssIEEE2B.t9", &assign_PssIEEE2B_t9); - assign_map.emplace("cim:PssIEEE2B.tw1", &assign_PssIEEE2B_tw1); - assign_map.emplace("cim:PssIEEE2B.tw2", &assign_PssIEEE2B_tw2); - assign_map.emplace("cim:PssIEEE2B.tw3", &assign_PssIEEE2B_tw3); - assign_map.emplace("cim:PssIEEE2B.tw4", &assign_PssIEEE2B_tw4); - assign_map.emplace("cim:PssIEEE2B.vsi1max", &assign_PssIEEE2B_vsi1max); - assign_map.emplace("cim:PssIEEE2B.vsi1min", &assign_PssIEEE2B_vsi1min); - assign_map.emplace("cim:PssIEEE2B.vsi2max", &assign_PssIEEE2B_vsi2max); - assign_map.emplace("cim:PssIEEE2B.vsi2min", &assign_PssIEEE2B_vsi2min); - assign_map.emplace("cim:PssIEEE2B.vstmax", &assign_PssIEEE2B_vstmax); - assign_map.emplace("cim:PssIEEE2B.vstmin", &assign_PssIEEE2B_vstmin); + assign_map.emplace("PssIEEE2B.inputSignal1Type", &assign_PssIEEE2B_inputSignal1Type); + assign_map.emplace("PssIEEE2B.inputSignal2Type", &assign_PssIEEE2B_inputSignal2Type); + assign_map.emplace("PssIEEE2B.ks1", &assign_PssIEEE2B_ks1); + assign_map.emplace("PssIEEE2B.ks2", &assign_PssIEEE2B_ks2); + assign_map.emplace("PssIEEE2B.ks3", &assign_PssIEEE2B_ks3); + assign_map.emplace("PssIEEE2B.m", &assign_PssIEEE2B_m); + assign_map.emplace("PssIEEE2B.n", &assign_PssIEEE2B_n); + assign_map.emplace("PssIEEE2B.t1", &assign_PssIEEE2B_t1); + assign_map.emplace("PssIEEE2B.t10", &assign_PssIEEE2B_t10); + assign_map.emplace("PssIEEE2B.t11", &assign_PssIEEE2B_t11); + assign_map.emplace("PssIEEE2B.t2", &assign_PssIEEE2B_t2); + assign_map.emplace("PssIEEE2B.t3", &assign_PssIEEE2B_t3); + assign_map.emplace("PssIEEE2B.t4", &assign_PssIEEE2B_t4); + assign_map.emplace("PssIEEE2B.t6", &assign_PssIEEE2B_t6); + assign_map.emplace("PssIEEE2B.t7", &assign_PssIEEE2B_t7); + assign_map.emplace("PssIEEE2B.t8", &assign_PssIEEE2B_t8); + assign_map.emplace("PssIEEE2B.t9", &assign_PssIEEE2B_t9); + assign_map.emplace("PssIEEE2B.tw1", &assign_PssIEEE2B_tw1); + assign_map.emplace("PssIEEE2B.tw2", &assign_PssIEEE2B_tw2); + assign_map.emplace("PssIEEE2B.tw3", &assign_PssIEEE2B_tw3); + assign_map.emplace("PssIEEE2B.tw4", &assign_PssIEEE2B_tw4); + assign_map.emplace("PssIEEE2B.vsi1max", &assign_PssIEEE2B_vsi1max); + assign_map.emplace("PssIEEE2B.vsi1min", &assign_PssIEEE2B_vsi1min); + assign_map.emplace("PssIEEE2B.vsi2max", &assign_PssIEEE2B_vsi2max); + assign_map.emplace("PssIEEE2B.vsi2min", &assign_PssIEEE2B_vsi2min); + assign_map.emplace("PssIEEE2B.vstmax", &assign_PssIEEE2B_vstmax); + assign_map.emplace("PssIEEE2B.vstmin", &assign_PssIEEE2B_vstmin); } void PssIEEE2B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,31 +929,31 @@ void PssIEEE2B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE2B.ks1", &get_PssIEEE2B_ks1); - get_map.emplace("cim:PssIEEE2B.ks2", &get_PssIEEE2B_ks2); - get_map.emplace("cim:PssIEEE2B.ks3", &get_PssIEEE2B_ks3); - get_map.emplace("cim:PssIEEE2B.m", &get_PssIEEE2B_m); - get_map.emplace("cim:PssIEEE2B.n", &get_PssIEEE2B_n); - get_map.emplace("cim:PssIEEE2B.t1", &get_PssIEEE2B_t1); - get_map.emplace("cim:PssIEEE2B.t10", &get_PssIEEE2B_t10); - get_map.emplace("cim:PssIEEE2B.t11", &get_PssIEEE2B_t11); - get_map.emplace("cim:PssIEEE2B.t2", &get_PssIEEE2B_t2); - get_map.emplace("cim:PssIEEE2B.t3", &get_PssIEEE2B_t3); - get_map.emplace("cim:PssIEEE2B.t4", &get_PssIEEE2B_t4); - get_map.emplace("cim:PssIEEE2B.t6", &get_PssIEEE2B_t6); - get_map.emplace("cim:PssIEEE2B.t7", &get_PssIEEE2B_t7); - get_map.emplace("cim:PssIEEE2B.t8", &get_PssIEEE2B_t8); - get_map.emplace("cim:PssIEEE2B.t9", &get_PssIEEE2B_t9); - get_map.emplace("cim:PssIEEE2B.tw1", &get_PssIEEE2B_tw1); - get_map.emplace("cim:PssIEEE2B.tw2", &get_PssIEEE2B_tw2); - get_map.emplace("cim:PssIEEE2B.tw3", &get_PssIEEE2B_tw3); - get_map.emplace("cim:PssIEEE2B.tw4", &get_PssIEEE2B_tw4); - get_map.emplace("cim:PssIEEE2B.vsi1max", &get_PssIEEE2B_vsi1max); - get_map.emplace("cim:PssIEEE2B.vsi1min", &get_PssIEEE2B_vsi1min); - get_map.emplace("cim:PssIEEE2B.vsi2max", &get_PssIEEE2B_vsi2max); - get_map.emplace("cim:PssIEEE2B.vsi2min", &get_PssIEEE2B_vsi2min); - get_map.emplace("cim:PssIEEE2B.vstmax", &get_PssIEEE2B_vstmax); - get_map.emplace("cim:PssIEEE2B.vstmin", &get_PssIEEE2B_vstmin); + get_map.emplace("PssIEEE2B.ks1", &get_PssIEEE2B_ks1); + get_map.emplace("PssIEEE2B.ks2", &get_PssIEEE2B_ks2); + get_map.emplace("PssIEEE2B.ks3", &get_PssIEEE2B_ks3); + get_map.emplace("PssIEEE2B.m", &get_PssIEEE2B_m); + get_map.emplace("PssIEEE2B.n", &get_PssIEEE2B_n); + get_map.emplace("PssIEEE2B.t1", &get_PssIEEE2B_t1); + get_map.emplace("PssIEEE2B.t10", &get_PssIEEE2B_t10); + get_map.emplace("PssIEEE2B.t11", &get_PssIEEE2B_t11); + get_map.emplace("PssIEEE2B.t2", &get_PssIEEE2B_t2); + get_map.emplace("PssIEEE2B.t3", &get_PssIEEE2B_t3); + get_map.emplace("PssIEEE2B.t4", &get_PssIEEE2B_t4); + get_map.emplace("PssIEEE2B.t6", &get_PssIEEE2B_t6); + get_map.emplace("PssIEEE2B.t7", &get_PssIEEE2B_t7); + get_map.emplace("PssIEEE2B.t8", &get_PssIEEE2B_t8); + get_map.emplace("PssIEEE2B.t9", &get_PssIEEE2B_t9); + get_map.emplace("PssIEEE2B.tw1", &get_PssIEEE2B_tw1); + get_map.emplace("PssIEEE2B.tw2", &get_PssIEEE2B_tw2); + get_map.emplace("PssIEEE2B.tw3", &get_PssIEEE2B_tw3); + get_map.emplace("PssIEEE2B.tw4", &get_PssIEEE2B_tw4); + get_map.emplace("PssIEEE2B.vsi1max", &get_PssIEEE2B_vsi1max); + get_map.emplace("PssIEEE2B.vsi1min", &get_PssIEEE2B_vsi1min); + get_map.emplace("PssIEEE2B.vsi2max", &get_PssIEEE2B_vsi2max); + get_map.emplace("PssIEEE2B.vsi2min", &get_PssIEEE2B_vsi2min); + get_map.emplace("PssIEEE2B.vstmax", &get_PssIEEE2B_vstmax); + get_map.emplace("PssIEEE2B.vstmin", &get_PssIEEE2B_vstmin); } void PssIEEE2B::addClassGetFnsToMap(std::map& get_map) const @@ -932,8 +964,14 @@ void PssIEEE2B::addClassGetFnsToMap(std::map& g void PssIEEE2B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE2B.inputSignal1Type", &get_PssIEEE2B_inputSignal1Type); - get_map.emplace("cim:PssIEEE2B.inputSignal2Type", &get_PssIEEE2B_inputSignal2Type); + get_map.emplace("PssIEEE2B.inputSignal1Type", &get_PssIEEE2B_inputSignal1Type); + get_map.emplace("PssIEEE2B.inputSignal2Type", &get_PssIEEE2B_inputSignal2Type); +} + +bool PssIEEE2B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE2B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE2B::declare() @@ -941,6 +979,14 @@ const BaseClassDefiner PssIEEE2B::declare() return BaseClassDefiner(PssIEEE2B::addConstructToMap, PssIEEE2B::addPrimitiveAssignFnsToMap, PssIEEE2B::addClassAssignFnsToMap, PssIEEE2B::debugName); } +std::map PssIEEE2B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE2B_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssIEEE2B.hpp b/CGMES_2.4.15_27JAN2020/PssIEEE2B.hpp index 0a629b803..e00091033 100644 --- a/CGMES_2.4.15_27JAN2020/PssIEEE2B.hpp +++ b/CGMES_2.4.15_27JAN2020/PssIEEE2B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -112,8 +113,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -121,7 +129,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE2B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssIEEE3B.cpp b/CGMES_2.4.15_27JAN2020/PssIEEE3B.cpp index f4cf47980..374ec16c3 100644 --- a/CGMES_2.4.15_27JAN2020/PssIEEE3B.cpp +++ b/CGMES_2.4.15_27JAN2020/PssIEEE3B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE3B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE3B.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.ks1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.ks2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE3B::PssIEEE3B() {} PssIEEE3B::~PssIEEE3B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE3B.a1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a3", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a4", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a5", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a6", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a7", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a8", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.ks1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.ks2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw3", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE3B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE3B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE3B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE3B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE3B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE3B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE3B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE3B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE3B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE3B_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* PssIEEE3B::debugString() const void PssIEEE3B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE3B", &PssIEEE3B_factory); + factory_map.emplace("PssIEEE3B", &PssIEEE3B_factory); } void PssIEEE3B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE3B.a1", &assign_PssIEEE3B_a1); - assign_map.emplace("cim:PssIEEE3B.a2", &assign_PssIEEE3B_a2); - assign_map.emplace("cim:PssIEEE3B.a3", &assign_PssIEEE3B_a3); - assign_map.emplace("cim:PssIEEE3B.a4", &assign_PssIEEE3B_a4); - assign_map.emplace("cim:PssIEEE3B.a5", &assign_PssIEEE3B_a5); - assign_map.emplace("cim:PssIEEE3B.a6", &assign_PssIEEE3B_a6); - assign_map.emplace("cim:PssIEEE3B.a7", &assign_PssIEEE3B_a7); - assign_map.emplace("cim:PssIEEE3B.a8", &assign_PssIEEE3B_a8); - assign_map.emplace("cim:PssIEEE3B.inputSignal1Type", &assign_PssIEEE3B_inputSignal1Type); - assign_map.emplace("cim:PssIEEE3B.inputSignal2Type", &assign_PssIEEE3B_inputSignal2Type); - assign_map.emplace("cim:PssIEEE3B.ks1", &assign_PssIEEE3B_ks1); - assign_map.emplace("cim:PssIEEE3B.ks2", &assign_PssIEEE3B_ks2); - assign_map.emplace("cim:PssIEEE3B.t1", &assign_PssIEEE3B_t1); - assign_map.emplace("cim:PssIEEE3B.t2", &assign_PssIEEE3B_t2); - assign_map.emplace("cim:PssIEEE3B.tw1", &assign_PssIEEE3B_tw1); - assign_map.emplace("cim:PssIEEE3B.tw2", &assign_PssIEEE3B_tw2); - assign_map.emplace("cim:PssIEEE3B.tw3", &assign_PssIEEE3B_tw3); - assign_map.emplace("cim:PssIEEE3B.vstmax", &assign_PssIEEE3B_vstmax); - assign_map.emplace("cim:PssIEEE3B.vstmin", &assign_PssIEEE3B_vstmin); + assign_map.emplace("PssIEEE3B.a1", &assign_PssIEEE3B_a1); + assign_map.emplace("PssIEEE3B.a2", &assign_PssIEEE3B_a2); + assign_map.emplace("PssIEEE3B.a3", &assign_PssIEEE3B_a3); + assign_map.emplace("PssIEEE3B.a4", &assign_PssIEEE3B_a4); + assign_map.emplace("PssIEEE3B.a5", &assign_PssIEEE3B_a5); + assign_map.emplace("PssIEEE3B.a6", &assign_PssIEEE3B_a6); + assign_map.emplace("PssIEEE3B.a7", &assign_PssIEEE3B_a7); + assign_map.emplace("PssIEEE3B.a8", &assign_PssIEEE3B_a8); + assign_map.emplace("PssIEEE3B.inputSignal1Type", &assign_PssIEEE3B_inputSignal1Type); + assign_map.emplace("PssIEEE3B.inputSignal2Type", &assign_PssIEEE3B_inputSignal2Type); + assign_map.emplace("PssIEEE3B.ks1", &assign_PssIEEE3B_ks1); + assign_map.emplace("PssIEEE3B.ks2", &assign_PssIEEE3B_ks2); + assign_map.emplace("PssIEEE3B.t1", &assign_PssIEEE3B_t1); + assign_map.emplace("PssIEEE3B.t2", &assign_PssIEEE3B_t2); + assign_map.emplace("PssIEEE3B.tw1", &assign_PssIEEE3B_tw1); + assign_map.emplace("PssIEEE3B.tw2", &assign_PssIEEE3B_tw2); + assign_map.emplace("PssIEEE3B.tw3", &assign_PssIEEE3B_tw3); + assign_map.emplace("PssIEEE3B.vstmax", &assign_PssIEEE3B_vstmax); + assign_map.emplace("PssIEEE3B.vstmin", &assign_PssIEEE3B_vstmin); } void PssIEEE3B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,23 +681,23 @@ void PssIEEE3B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE3B.a1", &get_PssIEEE3B_a1); - get_map.emplace("cim:PssIEEE3B.a2", &get_PssIEEE3B_a2); - get_map.emplace("cim:PssIEEE3B.a3", &get_PssIEEE3B_a3); - get_map.emplace("cim:PssIEEE3B.a4", &get_PssIEEE3B_a4); - get_map.emplace("cim:PssIEEE3B.a5", &get_PssIEEE3B_a5); - get_map.emplace("cim:PssIEEE3B.a6", &get_PssIEEE3B_a6); - get_map.emplace("cim:PssIEEE3B.a7", &get_PssIEEE3B_a7); - get_map.emplace("cim:PssIEEE3B.a8", &get_PssIEEE3B_a8); - get_map.emplace("cim:PssIEEE3B.ks1", &get_PssIEEE3B_ks1); - get_map.emplace("cim:PssIEEE3B.ks2", &get_PssIEEE3B_ks2); - get_map.emplace("cim:PssIEEE3B.t1", &get_PssIEEE3B_t1); - get_map.emplace("cim:PssIEEE3B.t2", &get_PssIEEE3B_t2); - get_map.emplace("cim:PssIEEE3B.tw1", &get_PssIEEE3B_tw1); - get_map.emplace("cim:PssIEEE3B.tw2", &get_PssIEEE3B_tw2); - get_map.emplace("cim:PssIEEE3B.tw3", &get_PssIEEE3B_tw3); - get_map.emplace("cim:PssIEEE3B.vstmax", &get_PssIEEE3B_vstmax); - get_map.emplace("cim:PssIEEE3B.vstmin", &get_PssIEEE3B_vstmin); + get_map.emplace("PssIEEE3B.a1", &get_PssIEEE3B_a1); + get_map.emplace("PssIEEE3B.a2", &get_PssIEEE3B_a2); + get_map.emplace("PssIEEE3B.a3", &get_PssIEEE3B_a3); + get_map.emplace("PssIEEE3B.a4", &get_PssIEEE3B_a4); + get_map.emplace("PssIEEE3B.a5", &get_PssIEEE3B_a5); + get_map.emplace("PssIEEE3B.a6", &get_PssIEEE3B_a6); + get_map.emplace("PssIEEE3B.a7", &get_PssIEEE3B_a7); + get_map.emplace("PssIEEE3B.a8", &get_PssIEEE3B_a8); + get_map.emplace("PssIEEE3B.ks1", &get_PssIEEE3B_ks1); + get_map.emplace("PssIEEE3B.ks2", &get_PssIEEE3B_ks2); + get_map.emplace("PssIEEE3B.t1", &get_PssIEEE3B_t1); + get_map.emplace("PssIEEE3B.t2", &get_PssIEEE3B_t2); + get_map.emplace("PssIEEE3B.tw1", &get_PssIEEE3B_tw1); + get_map.emplace("PssIEEE3B.tw2", &get_PssIEEE3B_tw2); + get_map.emplace("PssIEEE3B.tw3", &get_PssIEEE3B_tw3); + get_map.emplace("PssIEEE3B.vstmax", &get_PssIEEE3B_vstmax); + get_map.emplace("PssIEEE3B.vstmin", &get_PssIEEE3B_vstmin); } void PssIEEE3B::addClassGetFnsToMap(std::map& get_map) const @@ -676,8 +708,14 @@ void PssIEEE3B::addClassGetFnsToMap(std::map& g void PssIEEE3B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE3B.inputSignal1Type", &get_PssIEEE3B_inputSignal1Type); - get_map.emplace("cim:PssIEEE3B.inputSignal2Type", &get_PssIEEE3B_inputSignal2Type); + get_map.emplace("PssIEEE3B.inputSignal1Type", &get_PssIEEE3B_inputSignal1Type); + get_map.emplace("PssIEEE3B.inputSignal2Type", &get_PssIEEE3B_inputSignal2Type); +} + +bool PssIEEE3B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE3B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE3B::declare() @@ -685,6 +723,14 @@ const BaseClassDefiner PssIEEE3B::declare() return BaseClassDefiner(PssIEEE3B::addConstructToMap, PssIEEE3B::addPrimitiveAssignFnsToMap, PssIEEE3B::addClassAssignFnsToMap, PssIEEE3B::debugName); } +std::map PssIEEE3B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE3B_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssIEEE3B.hpp b/CGMES_2.4.15_27JAN2020/PssIEEE3B.hpp index 8f5a867f9..2c7b8b8e0 100644 --- a/CGMES_2.4.15_27JAN2020/PssIEEE3B.hpp +++ b/CGMES_2.4.15_27JAN2020/PssIEEE3B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -87,8 +88,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -96,7 +104,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE3B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssIEEE4B.cpp b/CGMES_2.4.15_27JAN2020/PssIEEE4B.cpp index 6eb537c95..715b43e6d 100644 --- a/CGMES_2.4.15_27JAN2020/PssIEEE4B.cpp +++ b/CGMES_2.4.15_27JAN2020/PssIEEE4B.cpp @@ -11,98 +11,130 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE4B(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE4B.bwh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwh2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl17", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganh2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl11", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl12", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vhmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vhmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vlmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vlmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vstmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vstmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE4B::PssIEEE4B() {} PssIEEE4B::~PssIEEE4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE4B.bwh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vhmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vhmin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vimax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vimin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vlmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vlmin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE4B_bwh1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -2056,78 +2088,78 @@ const char* PssIEEE4B::debugString() const void PssIEEE4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE4B", &PssIEEE4B_factory); + factory_map.emplace("PssIEEE4B", &PssIEEE4B_factory); } void PssIEEE4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE4B.bwh1", &assign_PssIEEE4B_bwh1); - assign_map.emplace("cim:PssIEEE4B.bwh2", &assign_PssIEEE4B_bwh2); - assign_map.emplace("cim:PssIEEE4B.bwl1", &assign_PssIEEE4B_bwl1); - assign_map.emplace("cim:PssIEEE4B.bwl2", &assign_PssIEEE4B_bwl2); - assign_map.emplace("cim:PssIEEE4B.kh", &assign_PssIEEE4B_kh); - assign_map.emplace("cim:PssIEEE4B.kh1", &assign_PssIEEE4B_kh1); - assign_map.emplace("cim:PssIEEE4B.kh11", &assign_PssIEEE4B_kh11); - assign_map.emplace("cim:PssIEEE4B.kh17", &assign_PssIEEE4B_kh17); - assign_map.emplace("cim:PssIEEE4B.kh2", &assign_PssIEEE4B_kh2); - assign_map.emplace("cim:PssIEEE4B.ki", &assign_PssIEEE4B_ki); - assign_map.emplace("cim:PssIEEE4B.ki1", &assign_PssIEEE4B_ki1); - assign_map.emplace("cim:PssIEEE4B.ki11", &assign_PssIEEE4B_ki11); - assign_map.emplace("cim:PssIEEE4B.ki17", &assign_PssIEEE4B_ki17); - assign_map.emplace("cim:PssIEEE4B.ki2", &assign_PssIEEE4B_ki2); - assign_map.emplace("cim:PssIEEE4B.kl", &assign_PssIEEE4B_kl); - assign_map.emplace("cim:PssIEEE4B.kl1", &assign_PssIEEE4B_kl1); - assign_map.emplace("cim:PssIEEE4B.kl11", &assign_PssIEEE4B_kl11); - assign_map.emplace("cim:PssIEEE4B.kl17", &assign_PssIEEE4B_kl17); - assign_map.emplace("cim:PssIEEE4B.kl2", &assign_PssIEEE4B_kl2); - assign_map.emplace("cim:PssIEEE4B.omeganh1", &assign_PssIEEE4B_omeganh1); - assign_map.emplace("cim:PssIEEE4B.omeganh2", &assign_PssIEEE4B_omeganh2); - assign_map.emplace("cim:PssIEEE4B.omeganl1", &assign_PssIEEE4B_omeganl1); - assign_map.emplace("cim:PssIEEE4B.omeganl2", &assign_PssIEEE4B_omeganl2); - assign_map.emplace("cim:PssIEEE4B.th1", &assign_PssIEEE4B_th1); - assign_map.emplace("cim:PssIEEE4B.th10", &assign_PssIEEE4B_th10); - assign_map.emplace("cim:PssIEEE4B.th11", &assign_PssIEEE4B_th11); - assign_map.emplace("cim:PssIEEE4B.th12", &assign_PssIEEE4B_th12); - assign_map.emplace("cim:PssIEEE4B.th2", &assign_PssIEEE4B_th2); - assign_map.emplace("cim:PssIEEE4B.th3", &assign_PssIEEE4B_th3); - assign_map.emplace("cim:PssIEEE4B.th4", &assign_PssIEEE4B_th4); - assign_map.emplace("cim:PssIEEE4B.th5", &assign_PssIEEE4B_th5); - assign_map.emplace("cim:PssIEEE4B.th6", &assign_PssIEEE4B_th6); - assign_map.emplace("cim:PssIEEE4B.th7", &assign_PssIEEE4B_th7); - assign_map.emplace("cim:PssIEEE4B.th8", &assign_PssIEEE4B_th8); - assign_map.emplace("cim:PssIEEE4B.th9", &assign_PssIEEE4B_th9); - assign_map.emplace("cim:PssIEEE4B.ti1", &assign_PssIEEE4B_ti1); - assign_map.emplace("cim:PssIEEE4B.ti10", &assign_PssIEEE4B_ti10); - assign_map.emplace("cim:PssIEEE4B.ti11", &assign_PssIEEE4B_ti11); - assign_map.emplace("cim:PssIEEE4B.ti12", &assign_PssIEEE4B_ti12); - assign_map.emplace("cim:PssIEEE4B.ti2", &assign_PssIEEE4B_ti2); - assign_map.emplace("cim:PssIEEE4B.ti3", &assign_PssIEEE4B_ti3); - assign_map.emplace("cim:PssIEEE4B.ti4", &assign_PssIEEE4B_ti4); - assign_map.emplace("cim:PssIEEE4B.ti5", &assign_PssIEEE4B_ti5); - assign_map.emplace("cim:PssIEEE4B.ti6", &assign_PssIEEE4B_ti6); - assign_map.emplace("cim:PssIEEE4B.ti7", &assign_PssIEEE4B_ti7); - assign_map.emplace("cim:PssIEEE4B.ti8", &assign_PssIEEE4B_ti8); - assign_map.emplace("cim:PssIEEE4B.ti9", &assign_PssIEEE4B_ti9); - assign_map.emplace("cim:PssIEEE4B.tl1", &assign_PssIEEE4B_tl1); - assign_map.emplace("cim:PssIEEE4B.tl10", &assign_PssIEEE4B_tl10); - assign_map.emplace("cim:PssIEEE4B.tl11", &assign_PssIEEE4B_tl11); - assign_map.emplace("cim:PssIEEE4B.tl12", &assign_PssIEEE4B_tl12); - assign_map.emplace("cim:PssIEEE4B.tl2", &assign_PssIEEE4B_tl2); - assign_map.emplace("cim:PssIEEE4B.tl3", &assign_PssIEEE4B_tl3); - assign_map.emplace("cim:PssIEEE4B.tl4", &assign_PssIEEE4B_tl4); - assign_map.emplace("cim:PssIEEE4B.tl5", &assign_PssIEEE4B_tl5); - assign_map.emplace("cim:PssIEEE4B.tl6", &assign_PssIEEE4B_tl6); - assign_map.emplace("cim:PssIEEE4B.tl7", &assign_PssIEEE4B_tl7); - assign_map.emplace("cim:PssIEEE4B.tl8", &assign_PssIEEE4B_tl8); - assign_map.emplace("cim:PssIEEE4B.tl9", &assign_PssIEEE4B_tl9); - assign_map.emplace("cim:PssIEEE4B.vhmax", &assign_PssIEEE4B_vhmax); - assign_map.emplace("cim:PssIEEE4B.vhmin", &assign_PssIEEE4B_vhmin); - assign_map.emplace("cim:PssIEEE4B.vimax", &assign_PssIEEE4B_vimax); - assign_map.emplace("cim:PssIEEE4B.vimin", &assign_PssIEEE4B_vimin); - assign_map.emplace("cim:PssIEEE4B.vlmax", &assign_PssIEEE4B_vlmax); - assign_map.emplace("cim:PssIEEE4B.vlmin", &assign_PssIEEE4B_vlmin); - assign_map.emplace("cim:PssIEEE4B.vstmax", &assign_PssIEEE4B_vstmax); - assign_map.emplace("cim:PssIEEE4B.vstmin", &assign_PssIEEE4B_vstmin); + assign_map.emplace("PssIEEE4B.bwh1", &assign_PssIEEE4B_bwh1); + assign_map.emplace("PssIEEE4B.bwh2", &assign_PssIEEE4B_bwh2); + assign_map.emplace("PssIEEE4B.bwl1", &assign_PssIEEE4B_bwl1); + assign_map.emplace("PssIEEE4B.bwl2", &assign_PssIEEE4B_bwl2); + assign_map.emplace("PssIEEE4B.kh", &assign_PssIEEE4B_kh); + assign_map.emplace("PssIEEE4B.kh1", &assign_PssIEEE4B_kh1); + assign_map.emplace("PssIEEE4B.kh11", &assign_PssIEEE4B_kh11); + assign_map.emplace("PssIEEE4B.kh17", &assign_PssIEEE4B_kh17); + assign_map.emplace("PssIEEE4B.kh2", &assign_PssIEEE4B_kh2); + assign_map.emplace("PssIEEE4B.ki", &assign_PssIEEE4B_ki); + assign_map.emplace("PssIEEE4B.ki1", &assign_PssIEEE4B_ki1); + assign_map.emplace("PssIEEE4B.ki11", &assign_PssIEEE4B_ki11); + assign_map.emplace("PssIEEE4B.ki17", &assign_PssIEEE4B_ki17); + assign_map.emplace("PssIEEE4B.ki2", &assign_PssIEEE4B_ki2); + assign_map.emplace("PssIEEE4B.kl", &assign_PssIEEE4B_kl); + assign_map.emplace("PssIEEE4B.kl1", &assign_PssIEEE4B_kl1); + assign_map.emplace("PssIEEE4B.kl11", &assign_PssIEEE4B_kl11); + assign_map.emplace("PssIEEE4B.kl17", &assign_PssIEEE4B_kl17); + assign_map.emplace("PssIEEE4B.kl2", &assign_PssIEEE4B_kl2); + assign_map.emplace("PssIEEE4B.omeganh1", &assign_PssIEEE4B_omeganh1); + assign_map.emplace("PssIEEE4B.omeganh2", &assign_PssIEEE4B_omeganh2); + assign_map.emplace("PssIEEE4B.omeganl1", &assign_PssIEEE4B_omeganl1); + assign_map.emplace("PssIEEE4B.omeganl2", &assign_PssIEEE4B_omeganl2); + assign_map.emplace("PssIEEE4B.th1", &assign_PssIEEE4B_th1); + assign_map.emplace("PssIEEE4B.th10", &assign_PssIEEE4B_th10); + assign_map.emplace("PssIEEE4B.th11", &assign_PssIEEE4B_th11); + assign_map.emplace("PssIEEE4B.th12", &assign_PssIEEE4B_th12); + assign_map.emplace("PssIEEE4B.th2", &assign_PssIEEE4B_th2); + assign_map.emplace("PssIEEE4B.th3", &assign_PssIEEE4B_th3); + assign_map.emplace("PssIEEE4B.th4", &assign_PssIEEE4B_th4); + assign_map.emplace("PssIEEE4B.th5", &assign_PssIEEE4B_th5); + assign_map.emplace("PssIEEE4B.th6", &assign_PssIEEE4B_th6); + assign_map.emplace("PssIEEE4B.th7", &assign_PssIEEE4B_th7); + assign_map.emplace("PssIEEE4B.th8", &assign_PssIEEE4B_th8); + assign_map.emplace("PssIEEE4B.th9", &assign_PssIEEE4B_th9); + assign_map.emplace("PssIEEE4B.ti1", &assign_PssIEEE4B_ti1); + assign_map.emplace("PssIEEE4B.ti10", &assign_PssIEEE4B_ti10); + assign_map.emplace("PssIEEE4B.ti11", &assign_PssIEEE4B_ti11); + assign_map.emplace("PssIEEE4B.ti12", &assign_PssIEEE4B_ti12); + assign_map.emplace("PssIEEE4B.ti2", &assign_PssIEEE4B_ti2); + assign_map.emplace("PssIEEE4B.ti3", &assign_PssIEEE4B_ti3); + assign_map.emplace("PssIEEE4B.ti4", &assign_PssIEEE4B_ti4); + assign_map.emplace("PssIEEE4B.ti5", &assign_PssIEEE4B_ti5); + assign_map.emplace("PssIEEE4B.ti6", &assign_PssIEEE4B_ti6); + assign_map.emplace("PssIEEE4B.ti7", &assign_PssIEEE4B_ti7); + assign_map.emplace("PssIEEE4B.ti8", &assign_PssIEEE4B_ti8); + assign_map.emplace("PssIEEE4B.ti9", &assign_PssIEEE4B_ti9); + assign_map.emplace("PssIEEE4B.tl1", &assign_PssIEEE4B_tl1); + assign_map.emplace("PssIEEE4B.tl10", &assign_PssIEEE4B_tl10); + assign_map.emplace("PssIEEE4B.tl11", &assign_PssIEEE4B_tl11); + assign_map.emplace("PssIEEE4B.tl12", &assign_PssIEEE4B_tl12); + assign_map.emplace("PssIEEE4B.tl2", &assign_PssIEEE4B_tl2); + assign_map.emplace("PssIEEE4B.tl3", &assign_PssIEEE4B_tl3); + assign_map.emplace("PssIEEE4B.tl4", &assign_PssIEEE4B_tl4); + assign_map.emplace("PssIEEE4B.tl5", &assign_PssIEEE4B_tl5); + assign_map.emplace("PssIEEE4B.tl6", &assign_PssIEEE4B_tl6); + assign_map.emplace("PssIEEE4B.tl7", &assign_PssIEEE4B_tl7); + assign_map.emplace("PssIEEE4B.tl8", &assign_PssIEEE4B_tl8); + assign_map.emplace("PssIEEE4B.tl9", &assign_PssIEEE4B_tl9); + assign_map.emplace("PssIEEE4B.vhmax", &assign_PssIEEE4B_vhmax); + assign_map.emplace("PssIEEE4B.vhmin", &assign_PssIEEE4B_vhmin); + assign_map.emplace("PssIEEE4B.vimax", &assign_PssIEEE4B_vimax); + assign_map.emplace("PssIEEE4B.vimin", &assign_PssIEEE4B_vimin); + assign_map.emplace("PssIEEE4B.vlmax", &assign_PssIEEE4B_vlmax); + assign_map.emplace("PssIEEE4B.vlmin", &assign_PssIEEE4B_vlmin); + assign_map.emplace("PssIEEE4B.vstmax", &assign_PssIEEE4B_vstmax); + assign_map.emplace("PssIEEE4B.vstmin", &assign_PssIEEE4B_vstmin); } void PssIEEE4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -2137,73 +2169,73 @@ void PssIEEE4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE4B.bwh1", &get_PssIEEE4B_bwh1); - get_map.emplace("cim:PssIEEE4B.bwh2", &get_PssIEEE4B_bwh2); - get_map.emplace("cim:PssIEEE4B.bwl1", &get_PssIEEE4B_bwl1); - get_map.emplace("cim:PssIEEE4B.bwl2", &get_PssIEEE4B_bwl2); - get_map.emplace("cim:PssIEEE4B.kh", &get_PssIEEE4B_kh); - get_map.emplace("cim:PssIEEE4B.kh1", &get_PssIEEE4B_kh1); - get_map.emplace("cim:PssIEEE4B.kh11", &get_PssIEEE4B_kh11); - get_map.emplace("cim:PssIEEE4B.kh17", &get_PssIEEE4B_kh17); - get_map.emplace("cim:PssIEEE4B.kh2", &get_PssIEEE4B_kh2); - get_map.emplace("cim:PssIEEE4B.ki", &get_PssIEEE4B_ki); - get_map.emplace("cim:PssIEEE4B.ki1", &get_PssIEEE4B_ki1); - get_map.emplace("cim:PssIEEE4B.ki11", &get_PssIEEE4B_ki11); - get_map.emplace("cim:PssIEEE4B.ki17", &get_PssIEEE4B_ki17); - get_map.emplace("cim:PssIEEE4B.ki2", &get_PssIEEE4B_ki2); - get_map.emplace("cim:PssIEEE4B.kl", &get_PssIEEE4B_kl); - get_map.emplace("cim:PssIEEE4B.kl1", &get_PssIEEE4B_kl1); - get_map.emplace("cim:PssIEEE4B.kl11", &get_PssIEEE4B_kl11); - get_map.emplace("cim:PssIEEE4B.kl17", &get_PssIEEE4B_kl17); - get_map.emplace("cim:PssIEEE4B.kl2", &get_PssIEEE4B_kl2); - get_map.emplace("cim:PssIEEE4B.omeganh1", &get_PssIEEE4B_omeganh1); - get_map.emplace("cim:PssIEEE4B.omeganh2", &get_PssIEEE4B_omeganh2); - get_map.emplace("cim:PssIEEE4B.omeganl1", &get_PssIEEE4B_omeganl1); - get_map.emplace("cim:PssIEEE4B.omeganl2", &get_PssIEEE4B_omeganl2); - get_map.emplace("cim:PssIEEE4B.th1", &get_PssIEEE4B_th1); - get_map.emplace("cim:PssIEEE4B.th10", &get_PssIEEE4B_th10); - get_map.emplace("cim:PssIEEE4B.th11", &get_PssIEEE4B_th11); - get_map.emplace("cim:PssIEEE4B.th12", &get_PssIEEE4B_th12); - get_map.emplace("cim:PssIEEE4B.th2", &get_PssIEEE4B_th2); - get_map.emplace("cim:PssIEEE4B.th3", &get_PssIEEE4B_th3); - get_map.emplace("cim:PssIEEE4B.th4", &get_PssIEEE4B_th4); - get_map.emplace("cim:PssIEEE4B.th5", &get_PssIEEE4B_th5); - get_map.emplace("cim:PssIEEE4B.th6", &get_PssIEEE4B_th6); - get_map.emplace("cim:PssIEEE4B.th7", &get_PssIEEE4B_th7); - get_map.emplace("cim:PssIEEE4B.th8", &get_PssIEEE4B_th8); - get_map.emplace("cim:PssIEEE4B.th9", &get_PssIEEE4B_th9); - get_map.emplace("cim:PssIEEE4B.ti1", &get_PssIEEE4B_ti1); - get_map.emplace("cim:PssIEEE4B.ti10", &get_PssIEEE4B_ti10); - get_map.emplace("cim:PssIEEE4B.ti11", &get_PssIEEE4B_ti11); - get_map.emplace("cim:PssIEEE4B.ti12", &get_PssIEEE4B_ti12); - get_map.emplace("cim:PssIEEE4B.ti2", &get_PssIEEE4B_ti2); - get_map.emplace("cim:PssIEEE4B.ti3", &get_PssIEEE4B_ti3); - get_map.emplace("cim:PssIEEE4B.ti4", &get_PssIEEE4B_ti4); - get_map.emplace("cim:PssIEEE4B.ti5", &get_PssIEEE4B_ti5); - get_map.emplace("cim:PssIEEE4B.ti6", &get_PssIEEE4B_ti6); - get_map.emplace("cim:PssIEEE4B.ti7", &get_PssIEEE4B_ti7); - get_map.emplace("cim:PssIEEE4B.ti8", &get_PssIEEE4B_ti8); - get_map.emplace("cim:PssIEEE4B.ti9", &get_PssIEEE4B_ti9); - get_map.emplace("cim:PssIEEE4B.tl1", &get_PssIEEE4B_tl1); - get_map.emplace("cim:PssIEEE4B.tl10", &get_PssIEEE4B_tl10); - get_map.emplace("cim:PssIEEE4B.tl11", &get_PssIEEE4B_tl11); - get_map.emplace("cim:PssIEEE4B.tl12", &get_PssIEEE4B_tl12); - get_map.emplace("cim:PssIEEE4B.tl2", &get_PssIEEE4B_tl2); - get_map.emplace("cim:PssIEEE4B.tl3", &get_PssIEEE4B_tl3); - get_map.emplace("cim:PssIEEE4B.tl4", &get_PssIEEE4B_tl4); - get_map.emplace("cim:PssIEEE4B.tl5", &get_PssIEEE4B_tl5); - get_map.emplace("cim:PssIEEE4B.tl6", &get_PssIEEE4B_tl6); - get_map.emplace("cim:PssIEEE4B.tl7", &get_PssIEEE4B_tl7); - get_map.emplace("cim:PssIEEE4B.tl8", &get_PssIEEE4B_tl8); - get_map.emplace("cim:PssIEEE4B.tl9", &get_PssIEEE4B_tl9); - get_map.emplace("cim:PssIEEE4B.vhmax", &get_PssIEEE4B_vhmax); - get_map.emplace("cim:PssIEEE4B.vhmin", &get_PssIEEE4B_vhmin); - get_map.emplace("cim:PssIEEE4B.vimax", &get_PssIEEE4B_vimax); - get_map.emplace("cim:PssIEEE4B.vimin", &get_PssIEEE4B_vimin); - get_map.emplace("cim:PssIEEE4B.vlmax", &get_PssIEEE4B_vlmax); - get_map.emplace("cim:PssIEEE4B.vlmin", &get_PssIEEE4B_vlmin); - get_map.emplace("cim:PssIEEE4B.vstmax", &get_PssIEEE4B_vstmax); - get_map.emplace("cim:PssIEEE4B.vstmin", &get_PssIEEE4B_vstmin); + get_map.emplace("PssIEEE4B.bwh1", &get_PssIEEE4B_bwh1); + get_map.emplace("PssIEEE4B.bwh2", &get_PssIEEE4B_bwh2); + get_map.emplace("PssIEEE4B.bwl1", &get_PssIEEE4B_bwl1); + get_map.emplace("PssIEEE4B.bwl2", &get_PssIEEE4B_bwl2); + get_map.emplace("PssIEEE4B.kh", &get_PssIEEE4B_kh); + get_map.emplace("PssIEEE4B.kh1", &get_PssIEEE4B_kh1); + get_map.emplace("PssIEEE4B.kh11", &get_PssIEEE4B_kh11); + get_map.emplace("PssIEEE4B.kh17", &get_PssIEEE4B_kh17); + get_map.emplace("PssIEEE4B.kh2", &get_PssIEEE4B_kh2); + get_map.emplace("PssIEEE4B.ki", &get_PssIEEE4B_ki); + get_map.emplace("PssIEEE4B.ki1", &get_PssIEEE4B_ki1); + get_map.emplace("PssIEEE4B.ki11", &get_PssIEEE4B_ki11); + get_map.emplace("PssIEEE4B.ki17", &get_PssIEEE4B_ki17); + get_map.emplace("PssIEEE4B.ki2", &get_PssIEEE4B_ki2); + get_map.emplace("PssIEEE4B.kl", &get_PssIEEE4B_kl); + get_map.emplace("PssIEEE4B.kl1", &get_PssIEEE4B_kl1); + get_map.emplace("PssIEEE4B.kl11", &get_PssIEEE4B_kl11); + get_map.emplace("PssIEEE4B.kl17", &get_PssIEEE4B_kl17); + get_map.emplace("PssIEEE4B.kl2", &get_PssIEEE4B_kl2); + get_map.emplace("PssIEEE4B.omeganh1", &get_PssIEEE4B_omeganh1); + get_map.emplace("PssIEEE4B.omeganh2", &get_PssIEEE4B_omeganh2); + get_map.emplace("PssIEEE4B.omeganl1", &get_PssIEEE4B_omeganl1); + get_map.emplace("PssIEEE4B.omeganl2", &get_PssIEEE4B_omeganl2); + get_map.emplace("PssIEEE4B.th1", &get_PssIEEE4B_th1); + get_map.emplace("PssIEEE4B.th10", &get_PssIEEE4B_th10); + get_map.emplace("PssIEEE4B.th11", &get_PssIEEE4B_th11); + get_map.emplace("PssIEEE4B.th12", &get_PssIEEE4B_th12); + get_map.emplace("PssIEEE4B.th2", &get_PssIEEE4B_th2); + get_map.emplace("PssIEEE4B.th3", &get_PssIEEE4B_th3); + get_map.emplace("PssIEEE4B.th4", &get_PssIEEE4B_th4); + get_map.emplace("PssIEEE4B.th5", &get_PssIEEE4B_th5); + get_map.emplace("PssIEEE4B.th6", &get_PssIEEE4B_th6); + get_map.emplace("PssIEEE4B.th7", &get_PssIEEE4B_th7); + get_map.emplace("PssIEEE4B.th8", &get_PssIEEE4B_th8); + get_map.emplace("PssIEEE4B.th9", &get_PssIEEE4B_th9); + get_map.emplace("PssIEEE4B.ti1", &get_PssIEEE4B_ti1); + get_map.emplace("PssIEEE4B.ti10", &get_PssIEEE4B_ti10); + get_map.emplace("PssIEEE4B.ti11", &get_PssIEEE4B_ti11); + get_map.emplace("PssIEEE4B.ti12", &get_PssIEEE4B_ti12); + get_map.emplace("PssIEEE4B.ti2", &get_PssIEEE4B_ti2); + get_map.emplace("PssIEEE4B.ti3", &get_PssIEEE4B_ti3); + get_map.emplace("PssIEEE4B.ti4", &get_PssIEEE4B_ti4); + get_map.emplace("PssIEEE4B.ti5", &get_PssIEEE4B_ti5); + get_map.emplace("PssIEEE4B.ti6", &get_PssIEEE4B_ti6); + get_map.emplace("PssIEEE4B.ti7", &get_PssIEEE4B_ti7); + get_map.emplace("PssIEEE4B.ti8", &get_PssIEEE4B_ti8); + get_map.emplace("PssIEEE4B.ti9", &get_PssIEEE4B_ti9); + get_map.emplace("PssIEEE4B.tl1", &get_PssIEEE4B_tl1); + get_map.emplace("PssIEEE4B.tl10", &get_PssIEEE4B_tl10); + get_map.emplace("PssIEEE4B.tl11", &get_PssIEEE4B_tl11); + get_map.emplace("PssIEEE4B.tl12", &get_PssIEEE4B_tl12); + get_map.emplace("PssIEEE4B.tl2", &get_PssIEEE4B_tl2); + get_map.emplace("PssIEEE4B.tl3", &get_PssIEEE4B_tl3); + get_map.emplace("PssIEEE4B.tl4", &get_PssIEEE4B_tl4); + get_map.emplace("PssIEEE4B.tl5", &get_PssIEEE4B_tl5); + get_map.emplace("PssIEEE4B.tl6", &get_PssIEEE4B_tl6); + get_map.emplace("PssIEEE4B.tl7", &get_PssIEEE4B_tl7); + get_map.emplace("PssIEEE4B.tl8", &get_PssIEEE4B_tl8); + get_map.emplace("PssIEEE4B.tl9", &get_PssIEEE4B_tl9); + get_map.emplace("PssIEEE4B.vhmax", &get_PssIEEE4B_vhmax); + get_map.emplace("PssIEEE4B.vhmin", &get_PssIEEE4B_vhmin); + get_map.emplace("PssIEEE4B.vimax", &get_PssIEEE4B_vimax); + get_map.emplace("PssIEEE4B.vimin", &get_PssIEEE4B_vimin); + get_map.emplace("PssIEEE4B.vlmax", &get_PssIEEE4B_vlmax); + get_map.emplace("PssIEEE4B.vlmin", &get_PssIEEE4B_vlmin); + get_map.emplace("PssIEEE4B.vstmax", &get_PssIEEE4B_vstmax); + get_map.emplace("PssIEEE4B.vstmin", &get_PssIEEE4B_vstmin); } void PssIEEE4B::addClassGetFnsToMap(std::map& get_map) const @@ -2216,11 +2248,25 @@ void PssIEEE4B::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssIEEE4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssIEEE4B::declare() { return BaseClassDefiner(PssIEEE4B::addConstructToMap, PssIEEE4B::addPrimitiveAssignFnsToMap, PssIEEE4B::addClassAssignFnsToMap, PssIEEE4B::debugName); } +std::map PssIEEE4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE4B_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssIEEE4B.hpp b/CGMES_2.4.15_27JAN2020/PssIEEE4B.hpp index f984ccfa7..e393aa806 100644 --- a/CGMES_2.4.15_27JAN2020/PssIEEE4B.hpp +++ b/CGMES_2.4.15_27JAN2020/PssIEEE4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -231,8 +232,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -240,7 +248,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE4B_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssPTIST1.cpp b/CGMES_2.4.15_27JAN2020/PssPTIST1.cpp index beea82b09..141b61775 100644 --- a/CGMES_2.4.15_27JAN2020/PssPTIST1.cpp +++ b/CGMES_2.4.15_27JAN2020/PssPTIST1.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssPTIST1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssPTIST1.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.dtf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.dtp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST1.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssPTIST1::PssPTIST1() {} PssPTIST1::~PssPTIST1() {} -static const std::list PossibleProfilesForClass = +const std::list& PssPTIST1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssPTIST1::getClassNamespaceUrl() const { - { "cim:PssPTIST1.dtc", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.dtf", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.dtp", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.k", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.m", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t1", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t2", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t3", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t4", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.tf", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.tp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssPTIST1::getPossibleProfilesForClass() const +const std::string& PssPTIST1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssPTIST1::getPossibleProfilesForAttributes() const +const std::list& PssPTIST1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssPTIST1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssPTIST1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssPTIST1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssPTIST1_dtc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssPTIST1::debugString() const void PssPTIST1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssPTIST1", &PssPTIST1_factory); + factory_map.emplace("PssPTIST1", &PssPTIST1_factory); } void PssPTIST1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssPTIST1.dtc", &assign_PssPTIST1_dtc); - assign_map.emplace("cim:PssPTIST1.dtf", &assign_PssPTIST1_dtf); - assign_map.emplace("cim:PssPTIST1.dtp", &assign_PssPTIST1_dtp); - assign_map.emplace("cim:PssPTIST1.k", &assign_PssPTIST1_k); - assign_map.emplace("cim:PssPTIST1.m", &assign_PssPTIST1_m); - assign_map.emplace("cim:PssPTIST1.t1", &assign_PssPTIST1_t1); - assign_map.emplace("cim:PssPTIST1.t2", &assign_PssPTIST1_t2); - assign_map.emplace("cim:PssPTIST1.t3", &assign_PssPTIST1_t3); - assign_map.emplace("cim:PssPTIST1.t4", &assign_PssPTIST1_t4); - assign_map.emplace("cim:PssPTIST1.tf", &assign_PssPTIST1_tf); - assign_map.emplace("cim:PssPTIST1.tp", &assign_PssPTIST1_tp); + assign_map.emplace("PssPTIST1.dtc", &assign_PssPTIST1_dtc); + assign_map.emplace("PssPTIST1.dtf", &assign_PssPTIST1_dtf); + assign_map.emplace("PssPTIST1.dtp", &assign_PssPTIST1_dtp); + assign_map.emplace("PssPTIST1.k", &assign_PssPTIST1_k); + assign_map.emplace("PssPTIST1.m", &assign_PssPTIST1_m); + assign_map.emplace("PssPTIST1.t1", &assign_PssPTIST1_t1); + assign_map.emplace("PssPTIST1.t2", &assign_PssPTIST1_t2); + assign_map.emplace("PssPTIST1.t3", &assign_PssPTIST1_t3); + assign_map.emplace("PssPTIST1.t4", &assign_PssPTIST1_t4); + assign_map.emplace("PssPTIST1.tf", &assign_PssPTIST1_tf); + assign_map.emplace("PssPTIST1.tp", &assign_PssPTIST1_tp); } void PssPTIST1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssPTIST1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssPTIST1.dtc", &get_PssPTIST1_dtc); - get_map.emplace("cim:PssPTIST1.dtf", &get_PssPTIST1_dtf); - get_map.emplace("cim:PssPTIST1.dtp", &get_PssPTIST1_dtp); - get_map.emplace("cim:PssPTIST1.k", &get_PssPTIST1_k); - get_map.emplace("cim:PssPTIST1.m", &get_PssPTIST1_m); - get_map.emplace("cim:PssPTIST1.t1", &get_PssPTIST1_t1); - get_map.emplace("cim:PssPTIST1.t2", &get_PssPTIST1_t2); - get_map.emplace("cim:PssPTIST1.t3", &get_PssPTIST1_t3); - get_map.emplace("cim:PssPTIST1.t4", &get_PssPTIST1_t4); - get_map.emplace("cim:PssPTIST1.tf", &get_PssPTIST1_tf); - get_map.emplace("cim:PssPTIST1.tp", &get_PssPTIST1_tp); + get_map.emplace("PssPTIST1.dtc", &get_PssPTIST1_dtc); + get_map.emplace("PssPTIST1.dtf", &get_PssPTIST1_dtf); + get_map.emplace("PssPTIST1.dtp", &get_PssPTIST1_dtp); + get_map.emplace("PssPTIST1.k", &get_PssPTIST1_k); + get_map.emplace("PssPTIST1.m", &get_PssPTIST1_m); + get_map.emplace("PssPTIST1.t1", &get_PssPTIST1_t1); + get_map.emplace("PssPTIST1.t2", &get_PssPTIST1_t2); + get_map.emplace("PssPTIST1.t3", &get_PssPTIST1_t3); + get_map.emplace("PssPTIST1.t4", &get_PssPTIST1_t4); + get_map.emplace("PssPTIST1.tf", &get_PssPTIST1_tf); + get_map.emplace("PssPTIST1.tp", &get_PssPTIST1_tp); } void PssPTIST1::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssPTIST1::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssPTIST1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssPTIST1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssPTIST1::declare() { return BaseClassDefiner(PssPTIST1::addConstructToMap, PssPTIST1::addPrimitiveAssignFnsToMap, PssPTIST1::addClassAssignFnsToMap, PssPTIST1::debugName); } +std::map PssPTIST1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssPTIST1_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssPTIST1.hpp b/CGMES_2.4.15_27JAN2020/PssPTIST1.hpp index b48716169..34308b1e6 100644 --- a/CGMES_2.4.15_27JAN2020/PssPTIST1.hpp +++ b/CGMES_2.4.15_27JAN2020/PssPTIST1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssPTIST1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssPTIST3.cpp b/CGMES_2.4.15_27JAN2020/PssPTIST3.cpp index 42a3072e3..025073330 100644 --- a/CGMES_2.4.15_27JAN2020/PssPTIST3.cpp +++ b/CGMES_2.4.15_27JAN2020/PssPTIST3.cpp @@ -11,65 +11,97 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssPTIST3(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssPTIST3.a0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.al", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.athres", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.isw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.lthres", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.m", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.nav", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.ncl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.ncr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.pmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.tf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssPTIST3.tp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssPTIST3::PssPTIST3() {} PssPTIST3::~PssPTIST3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssPTIST3.a0", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.al", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.athres", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b0", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dl", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtc", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtf", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtp", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.isw", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.k", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.lthres", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.m", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.nav", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.ncl", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.ncr", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.pmin", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t6", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.tf", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.tp", { CGMESProfile::DY, } }, -}; - -std::list -PssPTIST3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssPTIST3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssPTIST3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssPTIST3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssPTIST3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssPTIST3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssPTIST3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssPTIST3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssPTIST3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssPTIST3_a0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1066,45 +1098,45 @@ const char* PssPTIST3::debugString() const void PssPTIST3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssPTIST3", &PssPTIST3_factory); + factory_map.emplace("PssPTIST3", &PssPTIST3_factory); } void PssPTIST3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssPTIST3.a0", &assign_PssPTIST3_a0); - assign_map.emplace("cim:PssPTIST3.a1", &assign_PssPTIST3_a1); - assign_map.emplace("cim:PssPTIST3.a2", &assign_PssPTIST3_a2); - assign_map.emplace("cim:PssPTIST3.a3", &assign_PssPTIST3_a3); - assign_map.emplace("cim:PssPTIST3.a4", &assign_PssPTIST3_a4); - assign_map.emplace("cim:PssPTIST3.a5", &assign_PssPTIST3_a5); - assign_map.emplace("cim:PssPTIST3.al", &assign_PssPTIST3_al); - assign_map.emplace("cim:PssPTIST3.athres", &assign_PssPTIST3_athres); - assign_map.emplace("cim:PssPTIST3.b0", &assign_PssPTIST3_b0); - assign_map.emplace("cim:PssPTIST3.b1", &assign_PssPTIST3_b1); - assign_map.emplace("cim:PssPTIST3.b2", &assign_PssPTIST3_b2); - assign_map.emplace("cim:PssPTIST3.b3", &assign_PssPTIST3_b3); - assign_map.emplace("cim:PssPTIST3.b4", &assign_PssPTIST3_b4); - assign_map.emplace("cim:PssPTIST3.b5", &assign_PssPTIST3_b5); - assign_map.emplace("cim:PssPTIST3.dl", &assign_PssPTIST3_dl); - assign_map.emplace("cim:PssPTIST3.dtc", &assign_PssPTIST3_dtc); - assign_map.emplace("cim:PssPTIST3.dtf", &assign_PssPTIST3_dtf); - assign_map.emplace("cim:PssPTIST3.dtp", &assign_PssPTIST3_dtp); - assign_map.emplace("cim:PssPTIST3.isw", &assign_PssPTIST3_isw); - assign_map.emplace("cim:PssPTIST3.k", &assign_PssPTIST3_k); - assign_map.emplace("cim:PssPTIST3.lthres", &assign_PssPTIST3_lthres); - assign_map.emplace("cim:PssPTIST3.m", &assign_PssPTIST3_m); - assign_map.emplace("cim:PssPTIST3.nav", &assign_PssPTIST3_nav); - assign_map.emplace("cim:PssPTIST3.ncl", &assign_PssPTIST3_ncl); - assign_map.emplace("cim:PssPTIST3.ncr", &assign_PssPTIST3_ncr); - assign_map.emplace("cim:PssPTIST3.pmin", &assign_PssPTIST3_pmin); - assign_map.emplace("cim:PssPTIST3.t1", &assign_PssPTIST3_t1); - assign_map.emplace("cim:PssPTIST3.t2", &assign_PssPTIST3_t2); - assign_map.emplace("cim:PssPTIST3.t3", &assign_PssPTIST3_t3); - assign_map.emplace("cim:PssPTIST3.t4", &assign_PssPTIST3_t4); - assign_map.emplace("cim:PssPTIST3.t5", &assign_PssPTIST3_t5); - assign_map.emplace("cim:PssPTIST3.t6", &assign_PssPTIST3_t6); - assign_map.emplace("cim:PssPTIST3.tf", &assign_PssPTIST3_tf); - assign_map.emplace("cim:PssPTIST3.tp", &assign_PssPTIST3_tp); + assign_map.emplace("PssPTIST3.a0", &assign_PssPTIST3_a0); + assign_map.emplace("PssPTIST3.a1", &assign_PssPTIST3_a1); + assign_map.emplace("PssPTIST3.a2", &assign_PssPTIST3_a2); + assign_map.emplace("PssPTIST3.a3", &assign_PssPTIST3_a3); + assign_map.emplace("PssPTIST3.a4", &assign_PssPTIST3_a4); + assign_map.emplace("PssPTIST3.a5", &assign_PssPTIST3_a5); + assign_map.emplace("PssPTIST3.al", &assign_PssPTIST3_al); + assign_map.emplace("PssPTIST3.athres", &assign_PssPTIST3_athres); + assign_map.emplace("PssPTIST3.b0", &assign_PssPTIST3_b0); + assign_map.emplace("PssPTIST3.b1", &assign_PssPTIST3_b1); + assign_map.emplace("PssPTIST3.b2", &assign_PssPTIST3_b2); + assign_map.emplace("PssPTIST3.b3", &assign_PssPTIST3_b3); + assign_map.emplace("PssPTIST3.b4", &assign_PssPTIST3_b4); + assign_map.emplace("PssPTIST3.b5", &assign_PssPTIST3_b5); + assign_map.emplace("PssPTIST3.dl", &assign_PssPTIST3_dl); + assign_map.emplace("PssPTIST3.dtc", &assign_PssPTIST3_dtc); + assign_map.emplace("PssPTIST3.dtf", &assign_PssPTIST3_dtf); + assign_map.emplace("PssPTIST3.dtp", &assign_PssPTIST3_dtp); + assign_map.emplace("PssPTIST3.isw", &assign_PssPTIST3_isw); + assign_map.emplace("PssPTIST3.k", &assign_PssPTIST3_k); + assign_map.emplace("PssPTIST3.lthres", &assign_PssPTIST3_lthres); + assign_map.emplace("PssPTIST3.m", &assign_PssPTIST3_m); + assign_map.emplace("PssPTIST3.nav", &assign_PssPTIST3_nav); + assign_map.emplace("PssPTIST3.ncl", &assign_PssPTIST3_ncl); + assign_map.emplace("PssPTIST3.ncr", &assign_PssPTIST3_ncr); + assign_map.emplace("PssPTIST3.pmin", &assign_PssPTIST3_pmin); + assign_map.emplace("PssPTIST3.t1", &assign_PssPTIST3_t1); + assign_map.emplace("PssPTIST3.t2", &assign_PssPTIST3_t2); + assign_map.emplace("PssPTIST3.t3", &assign_PssPTIST3_t3); + assign_map.emplace("PssPTIST3.t4", &assign_PssPTIST3_t4); + assign_map.emplace("PssPTIST3.t5", &assign_PssPTIST3_t5); + assign_map.emplace("PssPTIST3.t6", &assign_PssPTIST3_t6); + assign_map.emplace("PssPTIST3.tf", &assign_PssPTIST3_tf); + assign_map.emplace("PssPTIST3.tp", &assign_PssPTIST3_tp); } void PssPTIST3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1114,40 +1146,40 @@ void PssPTIST3::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssPTIST3.a0", &get_PssPTIST3_a0); - get_map.emplace("cim:PssPTIST3.a1", &get_PssPTIST3_a1); - get_map.emplace("cim:PssPTIST3.a2", &get_PssPTIST3_a2); - get_map.emplace("cim:PssPTIST3.a3", &get_PssPTIST3_a3); - get_map.emplace("cim:PssPTIST3.a4", &get_PssPTIST3_a4); - get_map.emplace("cim:PssPTIST3.a5", &get_PssPTIST3_a5); - get_map.emplace("cim:PssPTIST3.al", &get_PssPTIST3_al); - get_map.emplace("cim:PssPTIST3.athres", &get_PssPTIST3_athres); - get_map.emplace("cim:PssPTIST3.b0", &get_PssPTIST3_b0); - get_map.emplace("cim:PssPTIST3.b1", &get_PssPTIST3_b1); - get_map.emplace("cim:PssPTIST3.b2", &get_PssPTIST3_b2); - get_map.emplace("cim:PssPTIST3.b3", &get_PssPTIST3_b3); - get_map.emplace("cim:PssPTIST3.b4", &get_PssPTIST3_b4); - get_map.emplace("cim:PssPTIST3.b5", &get_PssPTIST3_b5); - get_map.emplace("cim:PssPTIST3.dl", &get_PssPTIST3_dl); - get_map.emplace("cim:PssPTIST3.dtc", &get_PssPTIST3_dtc); - get_map.emplace("cim:PssPTIST3.dtf", &get_PssPTIST3_dtf); - get_map.emplace("cim:PssPTIST3.dtp", &get_PssPTIST3_dtp); - get_map.emplace("cim:PssPTIST3.isw", &get_PssPTIST3_isw); - get_map.emplace("cim:PssPTIST3.k", &get_PssPTIST3_k); - get_map.emplace("cim:PssPTIST3.lthres", &get_PssPTIST3_lthres); - get_map.emplace("cim:PssPTIST3.m", &get_PssPTIST3_m); - get_map.emplace("cim:PssPTIST3.nav", &get_PssPTIST3_nav); - get_map.emplace("cim:PssPTIST3.ncl", &get_PssPTIST3_ncl); - get_map.emplace("cim:PssPTIST3.ncr", &get_PssPTIST3_ncr); - get_map.emplace("cim:PssPTIST3.pmin", &get_PssPTIST3_pmin); - get_map.emplace("cim:PssPTIST3.t1", &get_PssPTIST3_t1); - get_map.emplace("cim:PssPTIST3.t2", &get_PssPTIST3_t2); - get_map.emplace("cim:PssPTIST3.t3", &get_PssPTIST3_t3); - get_map.emplace("cim:PssPTIST3.t4", &get_PssPTIST3_t4); - get_map.emplace("cim:PssPTIST3.t5", &get_PssPTIST3_t5); - get_map.emplace("cim:PssPTIST3.t6", &get_PssPTIST3_t6); - get_map.emplace("cim:PssPTIST3.tf", &get_PssPTIST3_tf); - get_map.emplace("cim:PssPTIST3.tp", &get_PssPTIST3_tp); + get_map.emplace("PssPTIST3.a0", &get_PssPTIST3_a0); + get_map.emplace("PssPTIST3.a1", &get_PssPTIST3_a1); + get_map.emplace("PssPTIST3.a2", &get_PssPTIST3_a2); + get_map.emplace("PssPTIST3.a3", &get_PssPTIST3_a3); + get_map.emplace("PssPTIST3.a4", &get_PssPTIST3_a4); + get_map.emplace("PssPTIST3.a5", &get_PssPTIST3_a5); + get_map.emplace("PssPTIST3.al", &get_PssPTIST3_al); + get_map.emplace("PssPTIST3.athres", &get_PssPTIST3_athres); + get_map.emplace("PssPTIST3.b0", &get_PssPTIST3_b0); + get_map.emplace("PssPTIST3.b1", &get_PssPTIST3_b1); + get_map.emplace("PssPTIST3.b2", &get_PssPTIST3_b2); + get_map.emplace("PssPTIST3.b3", &get_PssPTIST3_b3); + get_map.emplace("PssPTIST3.b4", &get_PssPTIST3_b4); + get_map.emplace("PssPTIST3.b5", &get_PssPTIST3_b5); + get_map.emplace("PssPTIST3.dl", &get_PssPTIST3_dl); + get_map.emplace("PssPTIST3.dtc", &get_PssPTIST3_dtc); + get_map.emplace("PssPTIST3.dtf", &get_PssPTIST3_dtf); + get_map.emplace("PssPTIST3.dtp", &get_PssPTIST3_dtp); + get_map.emplace("PssPTIST3.isw", &get_PssPTIST3_isw); + get_map.emplace("PssPTIST3.k", &get_PssPTIST3_k); + get_map.emplace("PssPTIST3.lthres", &get_PssPTIST3_lthres); + get_map.emplace("PssPTIST3.m", &get_PssPTIST3_m); + get_map.emplace("PssPTIST3.nav", &get_PssPTIST3_nav); + get_map.emplace("PssPTIST3.ncl", &get_PssPTIST3_ncl); + get_map.emplace("PssPTIST3.ncr", &get_PssPTIST3_ncr); + get_map.emplace("PssPTIST3.pmin", &get_PssPTIST3_pmin); + get_map.emplace("PssPTIST3.t1", &get_PssPTIST3_t1); + get_map.emplace("PssPTIST3.t2", &get_PssPTIST3_t2); + get_map.emplace("PssPTIST3.t3", &get_PssPTIST3_t3); + get_map.emplace("PssPTIST3.t4", &get_PssPTIST3_t4); + get_map.emplace("PssPTIST3.t5", &get_PssPTIST3_t5); + get_map.emplace("PssPTIST3.t6", &get_PssPTIST3_t6); + get_map.emplace("PssPTIST3.tf", &get_PssPTIST3_tf); + get_map.emplace("PssPTIST3.tp", &get_PssPTIST3_tp); } void PssPTIST3::addClassGetFnsToMap(std::map& get_map) const @@ -1160,11 +1192,25 @@ void PssPTIST3::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssPTIST3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssPTIST3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssPTIST3::declare() { return BaseClassDefiner(PssPTIST3::addConstructToMap, PssPTIST3::addPrimitiveAssignFnsToMap, PssPTIST3::addClassAssignFnsToMap, PssPTIST3::debugName); } +std::map PssPTIST3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssPTIST3_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssPTIST3.hpp b/CGMES_2.4.15_27JAN2020/PssPTIST3.hpp index 84ac9463b..7e2500c65 100644 --- a/CGMES_2.4.15_27JAN2020/PssPTIST3.hpp +++ b/CGMES_2.4.15_27JAN2020/PssPTIST3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -133,8 +134,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -142,7 +150,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssPTIST3_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssSB4.cpp b/CGMES_2.4.15_27JAN2020/PssSB4.cpp index ff54c429f..d4b073f9e 100644 --- a/CGMES_2.4.15_27JAN2020/PssSB4.cpp +++ b/CGMES_2.4.15_27JAN2020/PssSB4.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSB4(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSB4.kx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.ta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.te", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tx1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.tx2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSB4.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSB4::PssSB4() {} PssSB4::~PssSB4() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSB4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSB4::getClassNamespaceUrl() const { - { "cim:PssSB4.kx", { CGMESProfile::DY, } }, - { "cim:PssSB4.ta", { CGMESProfile::DY, } }, - { "cim:PssSB4.tb", { CGMESProfile::DY, } }, - { "cim:PssSB4.tc", { CGMESProfile::DY, } }, - { "cim:PssSB4.td", { CGMESProfile::DY, } }, - { "cim:PssSB4.te", { CGMESProfile::DY, } }, - { "cim:PssSB4.tt", { CGMESProfile::DY, } }, - { "cim:PssSB4.tx1", { CGMESProfile::DY, } }, - { "cim:PssSB4.tx2", { CGMESProfile::DY, } }, - { "cim:PssSB4.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSB4.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSB4::getPossibleProfilesForClass() const +const std::string& PssSB4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSB4::getPossibleProfilesForAttributes() const +const std::list& PssSB4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSB4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSB4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSB4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSB4_kx(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssSB4::debugString() const void PssSB4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSB4", &PssSB4_factory); + factory_map.emplace("PssSB4", &PssSB4_factory); } void PssSB4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSB4.kx", &assign_PssSB4_kx); - assign_map.emplace("cim:PssSB4.ta", &assign_PssSB4_ta); - assign_map.emplace("cim:PssSB4.tb", &assign_PssSB4_tb); - assign_map.emplace("cim:PssSB4.tc", &assign_PssSB4_tc); - assign_map.emplace("cim:PssSB4.td", &assign_PssSB4_td); - assign_map.emplace("cim:PssSB4.te", &assign_PssSB4_te); - assign_map.emplace("cim:PssSB4.tt", &assign_PssSB4_tt); - assign_map.emplace("cim:PssSB4.tx1", &assign_PssSB4_tx1); - assign_map.emplace("cim:PssSB4.tx2", &assign_PssSB4_tx2); - assign_map.emplace("cim:PssSB4.vsmax", &assign_PssSB4_vsmax); - assign_map.emplace("cim:PssSB4.vsmin", &assign_PssSB4_vsmin); + assign_map.emplace("PssSB4.kx", &assign_PssSB4_kx); + assign_map.emplace("PssSB4.ta", &assign_PssSB4_ta); + assign_map.emplace("PssSB4.tb", &assign_PssSB4_tb); + assign_map.emplace("PssSB4.tc", &assign_PssSB4_tc); + assign_map.emplace("PssSB4.td", &assign_PssSB4_td); + assign_map.emplace("PssSB4.te", &assign_PssSB4_te); + assign_map.emplace("PssSB4.tt", &assign_PssSB4_tt); + assign_map.emplace("PssSB4.tx1", &assign_PssSB4_tx1); + assign_map.emplace("PssSB4.tx2", &assign_PssSB4_tx2); + assign_map.emplace("PssSB4.vsmax", &assign_PssSB4_vsmax); + assign_map.emplace("PssSB4.vsmin", &assign_PssSB4_vsmin); } void PssSB4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssSB4::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSB4.kx", &get_PssSB4_kx); - get_map.emplace("cim:PssSB4.ta", &get_PssSB4_ta); - get_map.emplace("cim:PssSB4.tb", &get_PssSB4_tb); - get_map.emplace("cim:PssSB4.tc", &get_PssSB4_tc); - get_map.emplace("cim:PssSB4.td", &get_PssSB4_td); - get_map.emplace("cim:PssSB4.te", &get_PssSB4_te); - get_map.emplace("cim:PssSB4.tt", &get_PssSB4_tt); - get_map.emplace("cim:PssSB4.tx1", &get_PssSB4_tx1); - get_map.emplace("cim:PssSB4.tx2", &get_PssSB4_tx2); - get_map.emplace("cim:PssSB4.vsmax", &get_PssSB4_vsmax); - get_map.emplace("cim:PssSB4.vsmin", &get_PssSB4_vsmin); + get_map.emplace("PssSB4.kx", &get_PssSB4_kx); + get_map.emplace("PssSB4.ta", &get_PssSB4_ta); + get_map.emplace("PssSB4.tb", &get_PssSB4_tb); + get_map.emplace("PssSB4.tc", &get_PssSB4_tc); + get_map.emplace("PssSB4.td", &get_PssSB4_td); + get_map.emplace("PssSB4.te", &get_PssSB4_te); + get_map.emplace("PssSB4.tt", &get_PssSB4_tt); + get_map.emplace("PssSB4.tx1", &get_PssSB4_tx1); + get_map.emplace("PssSB4.tx2", &get_PssSB4_tx2); + get_map.emplace("PssSB4.vsmax", &get_PssSB4_vsmax); + get_map.emplace("PssSB4.vsmin", &get_PssSB4_vsmin); } void PssSB4::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssSB4::addEnumGetFnsToMap(std::map& get_map) co PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSB4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSB4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSB4::declare() { return BaseClassDefiner(PssSB4::addConstructToMap, PssSB4::addPrimitiveAssignFnsToMap, PssSB4::addClassAssignFnsToMap, PssSB4::debugName); } +std::map PssSB4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSB4_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssSB4.hpp b/CGMES_2.4.15_27JAN2020/PssSB4.hpp index 4fb9cc24a..7a000fd42 100644 --- a/CGMES_2.4.15_27JAN2020/PssSB4.hpp +++ b/CGMES_2.4.15_27JAN2020/PssSB4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSB4_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssSH.cpp b/CGMES_2.4.15_27JAN2020/PssSH.cpp index 5e06369a1..1bda16622 100644 --- a/CGMES_2.4.15_27JAN2020/PssSH.cpp +++ b/CGMES_2.4.15_27JAN2020/PssSH.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSH(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSH.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.k4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.td", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSH.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSH::PssSH() {} PssSH::~PssSH() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSH::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSH::getClassNamespaceUrl() const { - { "cim:PssSH.k", { CGMESProfile::DY, } }, - { "cim:PssSH.k0", { CGMESProfile::DY, } }, - { "cim:PssSH.k1", { CGMESProfile::DY, } }, - { "cim:PssSH.k2", { CGMESProfile::DY, } }, - { "cim:PssSH.k3", { CGMESProfile::DY, } }, - { "cim:PssSH.k4", { CGMESProfile::DY, } }, - { "cim:PssSH.t1", { CGMESProfile::DY, } }, - { "cim:PssSH.t2", { CGMESProfile::DY, } }, - { "cim:PssSH.t3", { CGMESProfile::DY, } }, - { "cim:PssSH.t4", { CGMESProfile::DY, } }, - { "cim:PssSH.td", { CGMESProfile::DY, } }, - { "cim:PssSH.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSH.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSH::getPossibleProfilesForClass() const +const std::string& PssSH::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSH::getPossibleProfilesForAttributes() const +const std::list& PssSH::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSH::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSH::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSH::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSH_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* PssSH::debugString() const void PssSH::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSH", &PssSH_factory); + factory_map.emplace("PssSH", &PssSH_factory); } void PssSH::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSH.k", &assign_PssSH_k); - assign_map.emplace("cim:PssSH.k0", &assign_PssSH_k0); - assign_map.emplace("cim:PssSH.k1", &assign_PssSH_k1); - assign_map.emplace("cim:PssSH.k2", &assign_PssSH_k2); - assign_map.emplace("cim:PssSH.k3", &assign_PssSH_k3); - assign_map.emplace("cim:PssSH.k4", &assign_PssSH_k4); - assign_map.emplace("cim:PssSH.t1", &assign_PssSH_t1); - assign_map.emplace("cim:PssSH.t2", &assign_PssSH_t2); - assign_map.emplace("cim:PssSH.t3", &assign_PssSH_t3); - assign_map.emplace("cim:PssSH.t4", &assign_PssSH_t4); - assign_map.emplace("cim:PssSH.td", &assign_PssSH_td); - assign_map.emplace("cim:PssSH.vsmax", &assign_PssSH_vsmax); - assign_map.emplace("cim:PssSH.vsmin", &assign_PssSH_vsmin); + assign_map.emplace("PssSH.k", &assign_PssSH_k); + assign_map.emplace("PssSH.k0", &assign_PssSH_k0); + assign_map.emplace("PssSH.k1", &assign_PssSH_k1); + assign_map.emplace("PssSH.k2", &assign_PssSH_k2); + assign_map.emplace("PssSH.k3", &assign_PssSH_k3); + assign_map.emplace("PssSH.k4", &assign_PssSH_k4); + assign_map.emplace("PssSH.t1", &assign_PssSH_t1); + assign_map.emplace("PssSH.t2", &assign_PssSH_t2); + assign_map.emplace("PssSH.t3", &assign_PssSH_t3); + assign_map.emplace("PssSH.t4", &assign_PssSH_t4); + assign_map.emplace("PssSH.td", &assign_PssSH_td); + assign_map.emplace("PssSH.vsmax", &assign_PssSH_vsmax); + assign_map.emplace("PssSH.vsmin", &assign_PssSH_vsmin); } void PssSH::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void PssSH::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSH.k", &get_PssSH_k); - get_map.emplace("cim:PssSH.k0", &get_PssSH_k0); - get_map.emplace("cim:PssSH.k1", &get_PssSH_k1); - get_map.emplace("cim:PssSH.k2", &get_PssSH_k2); - get_map.emplace("cim:PssSH.k3", &get_PssSH_k3); - get_map.emplace("cim:PssSH.k4", &get_PssSH_k4); - get_map.emplace("cim:PssSH.t1", &get_PssSH_t1); - get_map.emplace("cim:PssSH.t2", &get_PssSH_t2); - get_map.emplace("cim:PssSH.t3", &get_PssSH_t3); - get_map.emplace("cim:PssSH.t4", &get_PssSH_t4); - get_map.emplace("cim:PssSH.td", &get_PssSH_td); - get_map.emplace("cim:PssSH.vsmax", &get_PssSH_vsmax); - get_map.emplace("cim:PssSH.vsmin", &get_PssSH_vsmin); + get_map.emplace("PssSH.k", &get_PssSH_k); + get_map.emplace("PssSH.k0", &get_PssSH_k0); + get_map.emplace("PssSH.k1", &get_PssSH_k1); + get_map.emplace("PssSH.k2", &get_PssSH_k2); + get_map.emplace("PssSH.k3", &get_PssSH_k3); + get_map.emplace("PssSH.k4", &get_PssSH_k4); + get_map.emplace("PssSH.t1", &get_PssSH_t1); + get_map.emplace("PssSH.t2", &get_PssSH_t2); + get_map.emplace("PssSH.t3", &get_PssSH_t3); + get_map.emplace("PssSH.t4", &get_PssSH_t4); + get_map.emplace("PssSH.td", &get_PssSH_td); + get_map.emplace("PssSH.vsmax", &get_PssSH_vsmax); + get_map.emplace("PssSH.vsmin", &get_PssSH_vsmin); } void PssSH::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void PssSH::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSH::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSH" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSH::declare() { return BaseClassDefiner(PssSH::addConstructToMap, PssSH::addPrimitiveAssignFnsToMap, PssSH::addClassAssignFnsToMap, PssSH::debugName); } +std::map PssSH::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSH_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssSH.hpp b/CGMES_2.4.15_27JAN2020/PssSH.hpp index f93e0ee7b..38ce015a2 100644 --- a/CGMES_2.4.15_27JAN2020/PssSH.hpp +++ b/CGMES_2.4.15_27JAN2020/PssSH.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -68,8 +69,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -77,7 +85,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSH_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssSK.cpp b/CGMES_2.4.15_27JAN2020/PssSK.cpp index 1c23f5dbd..91d14434d 100644 --- a/CGMES_2.4.15_27JAN2020/PssSK.cpp +++ b/CGMES_2.4.15_27JAN2020/PssSK.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSK(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSK.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.k3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssSK.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSK::PssSK() {} PssSK::~PssSK() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSK::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSK::getClassNamespaceUrl() const { - { "cim:PssSK.k1", { CGMESProfile::DY, } }, - { "cim:PssSK.k2", { CGMESProfile::DY, } }, - { "cim:PssSK.k3", { CGMESProfile::DY, } }, - { "cim:PssSK.t1", { CGMESProfile::DY, } }, - { "cim:PssSK.t2", { CGMESProfile::DY, } }, - { "cim:PssSK.t3", { CGMESProfile::DY, } }, - { "cim:PssSK.t4", { CGMESProfile::DY, } }, - { "cim:PssSK.t5", { CGMESProfile::DY, } }, - { "cim:PssSK.t6", { CGMESProfile::DY, } }, - { "cim:PssSK.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSK.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSK::getPossibleProfilesForClass() const +const std::string& PssSK::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSK::getPossibleProfilesForAttributes() const +const std::list& PssSK::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSK::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSK::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSK::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSK_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssSK::debugString() const void PssSK::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSK", &PssSK_factory); + factory_map.emplace("PssSK", &PssSK_factory); } void PssSK::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSK.k1", &assign_PssSK_k1); - assign_map.emplace("cim:PssSK.k2", &assign_PssSK_k2); - assign_map.emplace("cim:PssSK.k3", &assign_PssSK_k3); - assign_map.emplace("cim:PssSK.t1", &assign_PssSK_t1); - assign_map.emplace("cim:PssSK.t2", &assign_PssSK_t2); - assign_map.emplace("cim:PssSK.t3", &assign_PssSK_t3); - assign_map.emplace("cim:PssSK.t4", &assign_PssSK_t4); - assign_map.emplace("cim:PssSK.t5", &assign_PssSK_t5); - assign_map.emplace("cim:PssSK.t6", &assign_PssSK_t6); - assign_map.emplace("cim:PssSK.vsmax", &assign_PssSK_vsmax); - assign_map.emplace("cim:PssSK.vsmin", &assign_PssSK_vsmin); + assign_map.emplace("PssSK.k1", &assign_PssSK_k1); + assign_map.emplace("PssSK.k2", &assign_PssSK_k2); + assign_map.emplace("PssSK.k3", &assign_PssSK_k3); + assign_map.emplace("PssSK.t1", &assign_PssSK_t1); + assign_map.emplace("PssSK.t2", &assign_PssSK_t2); + assign_map.emplace("PssSK.t3", &assign_PssSK_t3); + assign_map.emplace("PssSK.t4", &assign_PssSK_t4); + assign_map.emplace("PssSK.t5", &assign_PssSK_t5); + assign_map.emplace("PssSK.t6", &assign_PssSK_t6); + assign_map.emplace("PssSK.vsmax", &assign_PssSK_vsmax); + assign_map.emplace("PssSK.vsmin", &assign_PssSK_vsmin); } void PssSK::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssSK::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSK.k1", &get_PssSK_k1); - get_map.emplace("cim:PssSK.k2", &get_PssSK_k2); - get_map.emplace("cim:PssSK.k3", &get_PssSK_k3); - get_map.emplace("cim:PssSK.t1", &get_PssSK_t1); - get_map.emplace("cim:PssSK.t2", &get_PssSK_t2); - get_map.emplace("cim:PssSK.t3", &get_PssSK_t3); - get_map.emplace("cim:PssSK.t4", &get_PssSK_t4); - get_map.emplace("cim:PssSK.t5", &get_PssSK_t5); - get_map.emplace("cim:PssSK.t6", &get_PssSK_t6); - get_map.emplace("cim:PssSK.vsmax", &get_PssSK_vsmax); - get_map.emplace("cim:PssSK.vsmin", &get_PssSK_vsmin); + get_map.emplace("PssSK.k1", &get_PssSK_k1); + get_map.emplace("PssSK.k2", &get_PssSK_k2); + get_map.emplace("PssSK.k3", &get_PssSK_k3); + get_map.emplace("PssSK.t1", &get_PssSK_t1); + get_map.emplace("PssSK.t2", &get_PssSK_t2); + get_map.emplace("PssSK.t3", &get_PssSK_t3); + get_map.emplace("PssSK.t4", &get_PssSK_t4); + get_map.emplace("PssSK.t5", &get_PssSK_t5); + get_map.emplace("PssSK.t6", &get_PssSK_t6); + get_map.emplace("PssSK.vsmax", &get_PssSK_vsmax); + get_map.emplace("PssSK.vsmin", &get_PssSK_vsmin); } void PssSK::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssSK::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSK::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSK" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSK::declare() { return BaseClassDefiner(PssSK::addConstructToMap, PssSK::addPrimitiveAssignFnsToMap, PssSK::addClassAssignFnsToMap, PssSK::debugName); } +std::map PssSK::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSK_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssSK.hpp b/CGMES_2.4.15_27JAN2020/PssSK.hpp index 1af0641d1..0b9b9689d 100644 --- a/CGMES_2.4.15_27JAN2020/PssSK.hpp +++ b/CGMES_2.4.15_27JAN2020/PssSK.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSK_factory(); diff --git a/CGMES_2.4.15_27JAN2020/PssWECC.cpp b/CGMES_2.4.15_27JAN2020/PssWECC.cpp index e3044b133..4ef4d6e65 100644 --- a/CGMES_2.4.15_27JAN2020/PssWECC.cpp +++ b/CGMES_2.4.15_27JAN2020/PssWECC.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssWECC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssWECC.inputSignal1Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.inputSignal2Type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.t9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vcl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vcu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vsmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "PssWECC.vsmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssWECC::PssWECC() {} PssWECC::~PssWECC() {} -static const std::list PossibleProfilesForClass = +const std::list& PssWECC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssWECC::getClassNamespaceUrl() const { - { "cim:PssWECC.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssWECC.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssWECC.k1", { CGMESProfile::DY, } }, - { "cim:PssWECC.k2", { CGMESProfile::DY, } }, - { "cim:PssWECC.t1", { CGMESProfile::DY, } }, - { "cim:PssWECC.t10", { CGMESProfile::DY, } }, - { "cim:PssWECC.t2", { CGMESProfile::DY, } }, - { "cim:PssWECC.t3", { CGMESProfile::DY, } }, - { "cim:PssWECC.t4", { CGMESProfile::DY, } }, - { "cim:PssWECC.t5", { CGMESProfile::DY, } }, - { "cim:PssWECC.t6", { CGMESProfile::DY, } }, - { "cim:PssWECC.t7", { CGMESProfile::DY, } }, - { "cim:PssWECC.t8", { CGMESProfile::DY, } }, - { "cim:PssWECC.t9", { CGMESProfile::DY, } }, - { "cim:PssWECC.vcl", { CGMESProfile::DY, } }, - { "cim:PssWECC.vcu", { CGMESProfile::DY, } }, - { "cim:PssWECC.vsmax", { CGMESProfile::DY, } }, - { "cim:PssWECC.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssWECC::getPossibleProfilesForClass() const +const std::string& PssWECC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssWECC::getPossibleProfilesForAttributes() const +const std::list& PssWECC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssWECC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssWECC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssWECC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssWECC_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* PssWECC::debugString() const void PssWECC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssWECC", &PssWECC_factory); + factory_map.emplace("PssWECC", &PssWECC_factory); } void PssWECC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssWECC.inputSignal1Type", &assign_PssWECC_inputSignal1Type); - assign_map.emplace("cim:PssWECC.inputSignal2Type", &assign_PssWECC_inputSignal2Type); - assign_map.emplace("cim:PssWECC.k1", &assign_PssWECC_k1); - assign_map.emplace("cim:PssWECC.k2", &assign_PssWECC_k2); - assign_map.emplace("cim:PssWECC.t1", &assign_PssWECC_t1); - assign_map.emplace("cim:PssWECC.t10", &assign_PssWECC_t10); - assign_map.emplace("cim:PssWECC.t2", &assign_PssWECC_t2); - assign_map.emplace("cim:PssWECC.t3", &assign_PssWECC_t3); - assign_map.emplace("cim:PssWECC.t4", &assign_PssWECC_t4); - assign_map.emplace("cim:PssWECC.t5", &assign_PssWECC_t5); - assign_map.emplace("cim:PssWECC.t6", &assign_PssWECC_t6); - assign_map.emplace("cim:PssWECC.t7", &assign_PssWECC_t7); - assign_map.emplace("cim:PssWECC.t8", &assign_PssWECC_t8); - assign_map.emplace("cim:PssWECC.t9", &assign_PssWECC_t9); - assign_map.emplace("cim:PssWECC.vcl", &assign_PssWECC_vcl); - assign_map.emplace("cim:PssWECC.vcu", &assign_PssWECC_vcu); - assign_map.emplace("cim:PssWECC.vsmax", &assign_PssWECC_vsmax); - assign_map.emplace("cim:PssWECC.vsmin", &assign_PssWECC_vsmin); + assign_map.emplace("PssWECC.inputSignal1Type", &assign_PssWECC_inputSignal1Type); + assign_map.emplace("PssWECC.inputSignal2Type", &assign_PssWECC_inputSignal2Type); + assign_map.emplace("PssWECC.k1", &assign_PssWECC_k1); + assign_map.emplace("PssWECC.k2", &assign_PssWECC_k2); + assign_map.emplace("PssWECC.t1", &assign_PssWECC_t1); + assign_map.emplace("PssWECC.t10", &assign_PssWECC_t10); + assign_map.emplace("PssWECC.t2", &assign_PssWECC_t2); + assign_map.emplace("PssWECC.t3", &assign_PssWECC_t3); + assign_map.emplace("PssWECC.t4", &assign_PssWECC_t4); + assign_map.emplace("PssWECC.t5", &assign_PssWECC_t5); + assign_map.emplace("PssWECC.t6", &assign_PssWECC_t6); + assign_map.emplace("PssWECC.t7", &assign_PssWECC_t7); + assign_map.emplace("PssWECC.t8", &assign_PssWECC_t8); + assign_map.emplace("PssWECC.t9", &assign_PssWECC_t9); + assign_map.emplace("PssWECC.vcl", &assign_PssWECC_vcl); + assign_map.emplace("PssWECC.vcu", &assign_PssWECC_vcu); + assign_map.emplace("PssWECC.vsmax", &assign_PssWECC_vsmax); + assign_map.emplace("PssWECC.vsmin", &assign_PssWECC_vsmin); } void PssWECC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,22 +650,22 @@ void PssWECC::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssWECC.k1", &get_PssWECC_k1); - get_map.emplace("cim:PssWECC.k2", &get_PssWECC_k2); - get_map.emplace("cim:PssWECC.t1", &get_PssWECC_t1); - get_map.emplace("cim:PssWECC.t10", &get_PssWECC_t10); - get_map.emplace("cim:PssWECC.t2", &get_PssWECC_t2); - get_map.emplace("cim:PssWECC.t3", &get_PssWECC_t3); - get_map.emplace("cim:PssWECC.t4", &get_PssWECC_t4); - get_map.emplace("cim:PssWECC.t5", &get_PssWECC_t5); - get_map.emplace("cim:PssWECC.t6", &get_PssWECC_t6); - get_map.emplace("cim:PssWECC.t7", &get_PssWECC_t7); - get_map.emplace("cim:PssWECC.t8", &get_PssWECC_t8); - get_map.emplace("cim:PssWECC.t9", &get_PssWECC_t9); - get_map.emplace("cim:PssWECC.vcl", &get_PssWECC_vcl); - get_map.emplace("cim:PssWECC.vcu", &get_PssWECC_vcu); - get_map.emplace("cim:PssWECC.vsmax", &get_PssWECC_vsmax); - get_map.emplace("cim:PssWECC.vsmin", &get_PssWECC_vsmin); + get_map.emplace("PssWECC.k1", &get_PssWECC_k1); + get_map.emplace("PssWECC.k2", &get_PssWECC_k2); + get_map.emplace("PssWECC.t1", &get_PssWECC_t1); + get_map.emplace("PssWECC.t10", &get_PssWECC_t10); + get_map.emplace("PssWECC.t2", &get_PssWECC_t2); + get_map.emplace("PssWECC.t3", &get_PssWECC_t3); + get_map.emplace("PssWECC.t4", &get_PssWECC_t4); + get_map.emplace("PssWECC.t5", &get_PssWECC_t5); + get_map.emplace("PssWECC.t6", &get_PssWECC_t6); + get_map.emplace("PssWECC.t7", &get_PssWECC_t7); + get_map.emplace("PssWECC.t8", &get_PssWECC_t8); + get_map.emplace("PssWECC.t9", &get_PssWECC_t9); + get_map.emplace("PssWECC.vcl", &get_PssWECC_vcl); + get_map.emplace("PssWECC.vcu", &get_PssWECC_vcu); + get_map.emplace("PssWECC.vsmax", &get_PssWECC_vsmax); + get_map.emplace("PssWECC.vsmin", &get_PssWECC_vsmin); } void PssWECC::addClassGetFnsToMap(std::map& get_map) const @@ -644,8 +676,14 @@ void PssWECC::addClassGetFnsToMap(std::map& get void PssWECC::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssWECC.inputSignal1Type", &get_PssWECC_inputSignal1Type); - get_map.emplace("cim:PssWECC.inputSignal2Type", &get_PssWECC_inputSignal2Type); + get_map.emplace("PssWECC.inputSignal1Type", &get_PssWECC_inputSignal1Type); + get_map.emplace("PssWECC.inputSignal2Type", &get_PssWECC_inputSignal2Type); +} + +bool PssWECC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssWECC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssWECC::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner PssWECC::declare() return BaseClassDefiner(PssWECC::addConstructToMap, PssWECC::addPrimitiveAssignFnsToMap, PssWECC::addClassAssignFnsToMap, PssWECC::debugName); } +std::map PssWECC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssWECC_factory() diff --git a/CGMES_2.4.15_27JAN2020/PssWECC.hpp b/CGMES_2.4.15_27JAN2020/PssWECC.hpp index a5bb2c5de..1d6a8455e 100644 --- a/CGMES_2.4.15_27JAN2020/PssWECC.hpp +++ b/CGMES_2.4.15_27JAN2020/PssWECC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssWECC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Quality61850.cpp b/CGMES_2.4.15_27JAN2020/Quality61850.cpp index 99169f619..1300c82c0 100644 --- a/CGMES_2.4.15_27JAN2020/Quality61850.cpp +++ b/CGMES_2.4.15_27JAN2020/Quality61850.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Quality61850(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Quality61850.badReference", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.estimatorReplaced", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.failure", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.oldData", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.operatorBlocked", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.oscillatory", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.outOfRange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.overFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.source", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.suspect", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.test", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Quality61850.validity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Quality61850::Quality61850() {} Quality61850::~Quality61850() {} -static const std::list PossibleProfilesForClass = +const std::list& Quality61850::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Quality61850::getClassNamespaceUrl() const { - { "cim:Quality61850.badReference", { CGMESProfile::EQ, } }, - { "cim:Quality61850.estimatorReplaced", { CGMESProfile::EQ, } }, - { "cim:Quality61850.failure", { CGMESProfile::EQ, } }, - { "cim:Quality61850.oldData", { CGMESProfile::EQ, } }, - { "cim:Quality61850.operatorBlocked", { CGMESProfile::EQ, } }, - { "cim:Quality61850.oscillatory", { CGMESProfile::EQ, } }, - { "cim:Quality61850.outOfRange", { CGMESProfile::EQ, } }, - { "cim:Quality61850.overFlow", { CGMESProfile::EQ, } }, - { "cim:Quality61850.source", { CGMESProfile::EQ, } }, - { "cim:Quality61850.suspect", { CGMESProfile::EQ, } }, - { "cim:Quality61850.test", { CGMESProfile::EQ, } }, - { "cim:Quality61850.validity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Quality61850::getPossibleProfilesForClass() const +const std::string& Quality61850::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Quality61850::getPossibleProfilesForAttributes() const +const std::list& Quality61850::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Quality61850::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Quality61850::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Quality61850::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Quality61850_badReference(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* Quality61850::debugString() const void Quality61850::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Quality61850", &Quality61850_factory); + factory_map.emplace("Quality61850", &Quality61850_factory); } void Quality61850::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Quality61850.badReference", &assign_Quality61850_badReference); - assign_map.emplace("cim:Quality61850.estimatorReplaced", &assign_Quality61850_estimatorReplaced); - assign_map.emplace("cim:Quality61850.failure", &assign_Quality61850_failure); - assign_map.emplace("cim:Quality61850.oldData", &assign_Quality61850_oldData); - assign_map.emplace("cim:Quality61850.operatorBlocked", &assign_Quality61850_operatorBlocked); - assign_map.emplace("cim:Quality61850.oscillatory", &assign_Quality61850_oscillatory); - assign_map.emplace("cim:Quality61850.outOfRange", &assign_Quality61850_outOfRange); - assign_map.emplace("cim:Quality61850.overFlow", &assign_Quality61850_overFlow); - assign_map.emplace("cim:Quality61850.source", &assign_Quality61850_source); - assign_map.emplace("cim:Quality61850.suspect", &assign_Quality61850_suspect); - assign_map.emplace("cim:Quality61850.test", &assign_Quality61850_test); - assign_map.emplace("cim:Quality61850.validity", &assign_Quality61850_validity); + assign_map.emplace("Quality61850.badReference", &assign_Quality61850_badReference); + assign_map.emplace("Quality61850.estimatorReplaced", &assign_Quality61850_estimatorReplaced); + assign_map.emplace("Quality61850.failure", &assign_Quality61850_failure); + assign_map.emplace("Quality61850.oldData", &assign_Quality61850_oldData); + assign_map.emplace("Quality61850.operatorBlocked", &assign_Quality61850_operatorBlocked); + assign_map.emplace("Quality61850.oscillatory", &assign_Quality61850_oscillatory); + assign_map.emplace("Quality61850.outOfRange", &assign_Quality61850_outOfRange); + assign_map.emplace("Quality61850.overFlow", &assign_Quality61850_overFlow); + assign_map.emplace("Quality61850.source", &assign_Quality61850_source); + assign_map.emplace("Quality61850.suspect", &assign_Quality61850_suspect); + assign_map.emplace("Quality61850.test", &assign_Quality61850_test); + assign_map.emplace("Quality61850.validity", &assign_Quality61850_validity); } void Quality61850::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,16 +464,16 @@ void Quality61850::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Quality61850.badReference", &get_Quality61850_badReference); - get_map.emplace("cim:Quality61850.estimatorReplaced", &get_Quality61850_estimatorReplaced); - get_map.emplace("cim:Quality61850.failure", &get_Quality61850_failure); - get_map.emplace("cim:Quality61850.oldData", &get_Quality61850_oldData); - get_map.emplace("cim:Quality61850.operatorBlocked", &get_Quality61850_operatorBlocked); - get_map.emplace("cim:Quality61850.oscillatory", &get_Quality61850_oscillatory); - get_map.emplace("cim:Quality61850.outOfRange", &get_Quality61850_outOfRange); - get_map.emplace("cim:Quality61850.overFlow", &get_Quality61850_overFlow); - get_map.emplace("cim:Quality61850.suspect", &get_Quality61850_suspect); - get_map.emplace("cim:Quality61850.test", &get_Quality61850_test); + get_map.emplace("Quality61850.badReference", &get_Quality61850_badReference); + get_map.emplace("Quality61850.estimatorReplaced", &get_Quality61850_estimatorReplaced); + get_map.emplace("Quality61850.failure", &get_Quality61850_failure); + get_map.emplace("Quality61850.oldData", &get_Quality61850_oldData); + get_map.emplace("Quality61850.operatorBlocked", &get_Quality61850_operatorBlocked); + get_map.emplace("Quality61850.oscillatory", &get_Quality61850_oscillatory); + get_map.emplace("Quality61850.outOfRange", &get_Quality61850_outOfRange); + get_map.emplace("Quality61850.overFlow", &get_Quality61850_overFlow); + get_map.emplace("Quality61850.suspect", &get_Quality61850_suspect); + get_map.emplace("Quality61850.test", &get_Quality61850_test); } void Quality61850::addClassGetFnsToMap(std::map& get_map) const @@ -452,8 +484,14 @@ void Quality61850::addClassGetFnsToMap(std::map void Quality61850::addEnumGetFnsToMap(std::map& get_map) const { BaseClass::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Quality61850.source", &get_Quality61850_source); - get_map.emplace("cim:Quality61850.validity", &get_Quality61850_validity); + get_map.emplace("Quality61850.source", &get_Quality61850_source); + get_map.emplace("Quality61850.validity", &get_Quality61850_validity); +} + +bool Quality61850::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Quality61850" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Quality61850::declare() @@ -461,6 +499,14 @@ const BaseClassDefiner Quality61850::declare() return BaseClassDefiner(Quality61850::addConstructToMap, Quality61850::addPrimitiveAssignFnsToMap, Quality61850::addClassAssignFnsToMap, Quality61850::debugName); } +std::map Quality61850::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Quality61850_factory() diff --git a/CGMES_2.4.15_27JAN2020/Quality61850.hpp b/CGMES_2.4.15_27JAN2020/Quality61850.hpp index 455802f53..8aebdac29 100644 --- a/CGMES_2.4.15_27JAN2020/Quality61850.hpp +++ b/CGMES_2.4.15_27JAN2020/Quality61850.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Source.hpp" #include "Validity.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Quality61850_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RaiseLowerCommand.cpp b/CGMES_2.4.15_27JAN2020/RaiseLowerCommand.cpp index 59622eff6..0047281a2 100644 --- a/CGMES_2.4.15_27JAN2020/RaiseLowerCommand.cpp +++ b/CGMES_2.4.15_27JAN2020/RaiseLowerCommand.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RaiseLowerCommand(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RaiseLowerCommand.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RaiseLowerCommand::RaiseLowerCommand() : ValueAliasSet(nullptr) {} RaiseLowerCommand::~RaiseLowerCommand() {} -static const std::list PossibleProfilesForClass = +const std::list& RaiseLowerCommand::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RaiseLowerCommand::getClassNamespaceUrl() const { - { "cim:RaiseLowerCommand.ValueAliasSet", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RaiseLowerCommand::getPossibleProfilesForClass() const +const std::string& RaiseLowerCommand::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RaiseLowerCommand::getPossibleProfilesForAttributes() const +const std::list& RaiseLowerCommand::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AnalogControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RaiseLowerCommand::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RaiseLowerCommand::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RaiseLowerCommand::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ValueAliasSet_RaiseLowerCommands(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RaiseLowerCommand::debugString() const void RaiseLowerCommand::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RaiseLowerCommand", &RaiseLowerCommand_factory); + factory_map.emplace("RaiseLowerCommand", &RaiseLowerCommand_factory); } void RaiseLowerCommand::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RaiseLowerCommand::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RaiseLowerCommand.ValueAliasSet", &assign_RaiseLowerCommand_ValueAliasSet); + assign_map.emplace("RaiseLowerCommand.ValueAliasSet", &assign_RaiseLowerCommand_ValueAliasSet); } void RaiseLowerCommand::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RaiseLowerCommand::addPrimitiveGetFnsToMap(std::map& get_map) const { AnalogControl::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RaiseLowerCommand.ValueAliasSet", &get_RaiseLowerCommand_ValueAliasSet); + get_map.emplace("RaiseLowerCommand.ValueAliasSet", &get_RaiseLowerCommand_ValueAliasSet); } void RaiseLowerCommand::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RaiseLowerCommand::addEnumGetFnsToMap(std::map& AnalogControl::addEnumGetFnsToMap(get_map); } +bool RaiseLowerCommand::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RaiseLowerCommand" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RaiseLowerCommand::declare() { return BaseClassDefiner(RaiseLowerCommand::addConstructToMap, RaiseLowerCommand::addPrimitiveAssignFnsToMap, RaiseLowerCommand::addClassAssignFnsToMap, RaiseLowerCommand::debugName); } +std::map RaiseLowerCommand::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AnalogControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RaiseLowerCommand_factory() diff --git a/CGMES_2.4.15_27JAN2020/RaiseLowerCommand.hpp b/CGMES_2.4.15_27JAN2020/RaiseLowerCommand.hpp index 97530d3cb..760034bcb 100644 --- a/CGMES_2.4.15_27JAN2020/RaiseLowerCommand.hpp +++ b/CGMES_2.4.15_27JAN2020/RaiseLowerCommand.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AnalogControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RaiseLowerCommand_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RatioTapChanger.cpp b/CGMES_2.4.15_27JAN2020/RatioTapChanger.cpp index f67722c8a..d0813b6df 100644 --- a/CGMES_2.4.15_27JAN2020/RatioTapChanger.cpp +++ b/CGMES_2.4.15_27JAN2020/RatioTapChanger.cpp @@ -13,36 +13,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChanger.RatioTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.stepVoltageIncrement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.tculControlMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChanger::RatioTapChanger() : RatioTapChangerTable(nullptr), TransformerEnd(nullptr) {} RatioTapChanger::~RatioTapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChanger::getClassNamespaceUrl() const { - { "cim:RatioTapChanger.RatioTapChangerTable", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.TransformerEnd", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.stepVoltageIncrement", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.tculControlMode", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChanger::getPossibleProfilesForClass() const +const std::string& RatioTapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChanger::getPossibleProfilesForAttributes() const +const std::list& RatioTapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChangerTable_RatioTapChanger(BaseClass*, BaseClass*); @@ -173,38 +205,44 @@ const char* RatioTapChanger::debugString() const void RatioTapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChanger", &RatioTapChanger_factory); + factory_map.emplace("RatioTapChanger", &RatioTapChanger_factory); } void RatioTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChanger.stepVoltageIncrement", &assign_RatioTapChanger_stepVoltageIncrement); - assign_map.emplace("cim:RatioTapChanger.tculControlMode", &assign_RatioTapChanger_tculControlMode); + assign_map.emplace("RatioTapChanger.stepVoltageIncrement", &assign_RatioTapChanger_stepVoltageIncrement); + assign_map.emplace("RatioTapChanger.tculControlMode", &assign_RatioTapChanger_tculControlMode); } void RatioTapChanger::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChanger.RatioTapChangerTable", &assign_RatioTapChanger_RatioTapChangerTable); - assign_map.emplace("cim:RatioTapChanger.TransformerEnd", &assign_RatioTapChanger_TransformerEnd); + assign_map.emplace("RatioTapChanger.RatioTapChangerTable", &assign_RatioTapChanger_RatioTapChangerTable); + assign_map.emplace("RatioTapChanger.TransformerEnd", &assign_RatioTapChanger_TransformerEnd); } void RatioTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.stepVoltageIncrement", &get_RatioTapChanger_stepVoltageIncrement); + get_map.emplace("RatioTapChanger.stepVoltageIncrement", &get_RatioTapChanger_stepVoltageIncrement); } void RatioTapChanger::addClassGetFnsToMap(std::map& get_map) const { TapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.RatioTapChangerTable", &get_RatioTapChanger_RatioTapChangerTable); - get_map.emplace("cim:RatioTapChanger.TransformerEnd", &get_RatioTapChanger_TransformerEnd); + get_map.emplace("RatioTapChanger.RatioTapChangerTable", &get_RatioTapChanger_RatioTapChangerTable); + get_map.emplace("RatioTapChanger.TransformerEnd", &get_RatioTapChanger_TransformerEnd); } void RatioTapChanger::addEnumGetFnsToMap(std::map& get_map) const { TapChanger::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.tculControlMode", &get_RatioTapChanger_tculControlMode); + get_map.emplace("RatioTapChanger.tculControlMode", &get_RatioTapChanger_tculControlMode); +} + +bool RatioTapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RatioTapChanger" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RatioTapChanger::declare() @@ -212,6 +250,14 @@ const BaseClassDefiner RatioTapChanger::declare() return BaseClassDefiner(RatioTapChanger::addConstructToMap, RatioTapChanger::addPrimitiveAssignFnsToMap, RatioTapChanger::addClassAssignFnsToMap, RatioTapChanger::debugName); } +std::map RatioTapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChanger_factory() diff --git a/CGMES_2.4.15_27JAN2020/RatioTapChanger.hpp b/CGMES_2.4.15_27JAN2020/RatioTapChanger.hpp index fafbcad25..244ea7e1b 100644 --- a/CGMES_2.4.15_27JAN2020/RatioTapChanger.hpp +++ b/CGMES_2.4.15_27JAN2020/RatioTapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PerCent.hpp" #include "TransformerControlMode.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChanger_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RatioTapChangerTable.cpp b/CGMES_2.4.15_27JAN2020/RatioTapChangerTable.cpp index 1c743986f..983eade16 100644 --- a/CGMES_2.4.15_27JAN2020/RatioTapChangerTable.cpp +++ b/CGMES_2.4.15_27JAN2020/RatioTapChangerTable.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChangerTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChangerTable.RatioTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RatioTapChangerTable.RatioTapChangerTablePoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChangerTable::RatioTapChangerTable() {} RatioTapChangerTable::~RatioTapChangerTable() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChangerTable::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChangerTable::getClassNamespaceUrl() const { - { "cim:RatioTapChangerTable.RatioTapChanger", { CGMESProfile::EQ, } }, - { "cim:RatioTapChangerTable.RatioTapChangerTablePoint", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChangerTable::getPossibleProfilesForClass() const +const std::string& RatioTapChangerTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChangerTable::getPossibleProfilesForAttributes() const +const std::list& RatioTapChangerTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChangerTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChangerTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChangerTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChanger_RatioTapChangerTable(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* RatioTapChangerTable::debugString() const void RatioTapChangerTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChangerTable", &RatioTapChangerTable_factory); + factory_map.emplace("RatioTapChangerTable", &RatioTapChangerTable_factory); } void RatioTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void RatioTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChangerTable.RatioTapChanger", &assign_RatioTapChangerTable_RatioTapChanger); - assign_map.emplace("cim:RatioTapChangerTable.RatioTapChangerTablePoint", &assign_RatioTapChangerTable_RatioTapChangerTablePoint); + assign_map.emplace("RatioTapChangerTable.RatioTapChanger", &assign_RatioTapChangerTable_RatioTapChanger); + assign_map.emplace("RatioTapChangerTable.RatioTapChangerTablePoint", &assign_RatioTapChangerTable_RatioTapChangerTablePoint); } void RatioTapChangerTable::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void RatioTapChangerTable::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChangerTable::declare() { return BaseClassDefiner(RatioTapChangerTable::addConstructToMap, RatioTapChangerTable::addPrimitiveAssignFnsToMap, RatioTapChangerTable::addClassAssignFnsToMap, RatioTapChangerTable::debugName); } +std::map RatioTapChangerTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChangerTable_factory() diff --git a/CGMES_2.4.15_27JAN2020/RatioTapChangerTable.hpp b/CGMES_2.4.15_27JAN2020/RatioTapChangerTable.hpp index fdb0e4be4..aab5b4c6c 100644 --- a/CGMES_2.4.15_27JAN2020/RatioTapChangerTable.hpp +++ b/CGMES_2.4.15_27JAN2020/RatioTapChangerTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChangerTable_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RatioTapChangerTablePoint.cpp b/CGMES_2.4.15_27JAN2020/RatioTapChangerTablePoint.cpp index fb837e687..94844c4de 100644 --- a/CGMES_2.4.15_27JAN2020/RatioTapChangerTablePoint.cpp +++ b/CGMES_2.4.15_27JAN2020/RatioTapChangerTablePoint.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChangerTablePoint.RatioTapChangerTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChangerTablePoint::RatioTapChangerTablePoint() : RatioTapChangerTable(nullptr) {} RatioTapChangerTablePoint::~RatioTapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:RatioTapChangerTablePoint.RatioTapChangerTable", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& RatioTapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& RatioTapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChangerTablePoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChangerTable_RatioTapChangerTablePoint(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RatioTapChangerTablePoint::debugString() const void RatioTapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChangerTablePoint", &RatioTapChangerTablePoint_factory); + factory_map.emplace("RatioTapChangerTablePoint", &RatioTapChangerTablePoint_factory); } void RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChangerTablePoint.RatioTapChangerTable", &assign_RatioTapChangerTablePoint_RatioTapChangerTable); + assign_map.emplace("RatioTapChangerTablePoint.RatioTapChangerTable", &assign_RatioTapChangerTablePoint_RatioTapChangerTable); } void RatioTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RatioTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChangerTablePoint.RatioTapChangerTable", &get_RatioTapChangerTablePoint_RatioTapChangerTable); + get_map.emplace("RatioTapChangerTablePoint.RatioTapChangerTable", &get_RatioTapChangerTablePoint_RatioTapChangerTable); } void RatioTapChangerTablePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RatioTapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChangerTablePoint::declare() { return BaseClassDefiner(RatioTapChangerTablePoint::addConstructToMap, RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap, RatioTapChangerTablePoint::addClassAssignFnsToMap, RatioTapChangerTablePoint::debugName); } +std::map RatioTapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChangerTablePoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChangerTablePoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/RatioTapChangerTablePoint.hpp b/CGMES_2.4.15_27JAN2020/RatioTapChangerTablePoint.hpp index a2a695328..137133055 100644 --- a/CGMES_2.4.15_27JAN2020/RatioTapChangerTablePoint.hpp +++ b/CGMES_2.4.15_27JAN2020/RatioTapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChangerTablePoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChangerTablePoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ReactiveCapabilityCurve.cpp b/CGMES_2.4.15_27JAN2020/ReactiveCapabilityCurve.cpp index 5d3fe1f54..5966386e3 100644 --- a/CGMES_2.4.15_27JAN2020/ReactiveCapabilityCurve.cpp +++ b/CGMES_2.4.15_27JAN2020/ReactiveCapabilityCurve.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ReactiveCapabilityCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ReactiveCapabilityCurve.EquivalentInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ReactiveCapabilityCurve::ReactiveCapabilityCurve() {} ReactiveCapabilityCurve::~ReactiveCapabilityCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& ReactiveCapabilityCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ReactiveCapabilityCurve::getClassNamespaceUrl() const { - { "cim:ReactiveCapabilityCurve.EquivalentInjection", { CGMESProfile::EQ, } }, - { "cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ReactiveCapabilityCurve::getPossibleProfilesForClass() const +const std::string& ReactiveCapabilityCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ReactiveCapabilityCurve::getPossibleProfilesForAttributes() const +const std::list& ReactiveCapabilityCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ReactiveCapabilityCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ReactiveCapabilityCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ReactiveCapabilityCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentInjection_ReactiveCapabilityCurve(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* ReactiveCapabilityCurve::debugString() const void ReactiveCapabilityCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ReactiveCapabilityCurve", &ReactiveCapabilityCurve_factory); + factory_map.emplace("ReactiveCapabilityCurve", &ReactiveCapabilityCurve_factory); } void ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ReactiveCapabilityCurve.EquivalentInjection", &assign_ReactiveCapabilityCurve_EquivalentInjection); - assign_map.emplace("cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", &assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines); + assign_map.emplace("ReactiveCapabilityCurve.EquivalentInjection", &assign_ReactiveCapabilityCurve_EquivalentInjection); + assign_map.emplace("ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", &assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines); } void ReactiveCapabilityCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void ReactiveCapabilityCurve::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ReactiveCapabilityCurve::declare() { return BaseClassDefiner(ReactiveCapabilityCurve::addConstructToMap, ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap, ReactiveCapabilityCurve::addClassAssignFnsToMap, ReactiveCapabilityCurve::debugName); } +std::map ReactiveCapabilityCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ReactiveCapabilityCurve_factory() diff --git a/CGMES_2.4.15_27JAN2020/ReactiveCapabilityCurve.hpp b/CGMES_2.4.15_27JAN2020/ReactiveCapabilityCurve.hpp index e843629e2..45c2c1e08 100644 --- a/CGMES_2.4.15_27JAN2020/ReactiveCapabilityCurve.hpp +++ b/CGMES_2.4.15_27JAN2020/ReactiveCapabilityCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ReactiveCapabilityCurve_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RegularIntervalSchedule.cpp b/CGMES_2.4.15_27JAN2020/RegularIntervalSchedule.cpp index 604197cd4..788e95446 100644 --- a/CGMES_2.4.15_27JAN2020/RegularIntervalSchedule.cpp +++ b/CGMES_2.4.15_27JAN2020/RegularIntervalSchedule.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegularIntervalSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegularIntervalSchedule.TimePoints", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularIntervalSchedule.endTime", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularIntervalSchedule.timeStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegularIntervalSchedule::RegularIntervalSchedule() {} RegularIntervalSchedule::~RegularIntervalSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& RegularIntervalSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegularIntervalSchedule::getClassNamespaceUrl() const { - { "cim:RegularIntervalSchedule.TimePoints", { CGMESProfile::EQ, } }, - { "cim:RegularIntervalSchedule.endTime", { CGMESProfile::EQ, } }, - { "cim:RegularIntervalSchedule.timeStep", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegularIntervalSchedule::getPossibleProfilesForClass() const +const std::string& RegularIntervalSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegularIntervalSchedule::getPossibleProfilesForAttributes() const +const std::list& RegularIntervalSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BasicIntervalSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegularIntervalSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegularIntervalSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegularIntervalSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegularTimePoint_IntervalSchedule(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* RegularIntervalSchedule::debugString() const void RegularIntervalSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegularIntervalSchedule", &RegularIntervalSchedule_factory); + factory_map.emplace("RegularIntervalSchedule", &RegularIntervalSchedule_factory); } void RegularIntervalSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularIntervalSchedule.endTime", &assign_RegularIntervalSchedule_endTime); - assign_map.emplace("cim:RegularIntervalSchedule.timeStep", &assign_RegularIntervalSchedule_timeStep); + assign_map.emplace("RegularIntervalSchedule.endTime", &assign_RegularIntervalSchedule_endTime); + assign_map.emplace("RegularIntervalSchedule.timeStep", &assign_RegularIntervalSchedule_timeStep); } void RegularIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularIntervalSchedule.TimePoints", &assign_RegularIntervalSchedule_TimePoints); + assign_map.emplace("RegularIntervalSchedule.TimePoints", &assign_RegularIntervalSchedule_TimePoints); } void RegularIntervalSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { BasicIntervalSchedule::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegularIntervalSchedule.endTime", &get_RegularIntervalSchedule_endTime); - get_map.emplace("cim:RegularIntervalSchedule.timeStep", &get_RegularIntervalSchedule_timeStep); + get_map.emplace("RegularIntervalSchedule.endTime", &get_RegularIntervalSchedule_endTime); + get_map.emplace("RegularIntervalSchedule.timeStep", &get_RegularIntervalSchedule_timeStep); } void RegularIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void RegularIntervalSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RegularIntervalSchedule::declare() { return BaseClassDefiner(RegularIntervalSchedule::addConstructToMap, RegularIntervalSchedule::addPrimitiveAssignFnsToMap, RegularIntervalSchedule::addClassAssignFnsToMap, RegularIntervalSchedule::debugName); } +std::map RegularIntervalSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BasicIntervalSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegularIntervalSchedule_factory() diff --git a/CGMES_2.4.15_27JAN2020/RegularIntervalSchedule.hpp b/CGMES_2.4.15_27JAN2020/RegularIntervalSchedule.hpp index d34235f88..cb96c5f83 100644 --- a/CGMES_2.4.15_27JAN2020/RegularIntervalSchedule.hpp +++ b/CGMES_2.4.15_27JAN2020/RegularIntervalSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BasicIntervalSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "Seconds.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegularIntervalSchedule_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RegularTimePoint.cpp b/CGMES_2.4.15_27JAN2020/RegularTimePoint.cpp index 5903ad467..b7b1c62f3 100644 --- a/CGMES_2.4.15_27JAN2020/RegularTimePoint.cpp +++ b/CGMES_2.4.15_27JAN2020/RegularTimePoint.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegularTimePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegularTimePoint.IntervalSchedule", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.sequenceNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.value1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.value2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegularTimePoint::RegularTimePoint() : IntervalSchedule(nullptr) {} RegularTimePoint::~RegularTimePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& RegularTimePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegularTimePoint::getClassNamespaceUrl() const { - { "cim:RegularTimePoint.IntervalSchedule", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.sequenceNumber", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.value1", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.value2", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegularTimePoint::getPossibleProfilesForClass() const +const std::string& RegularTimePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegularTimePoint::getPossibleProfilesForAttributes() const +const std::list& RegularTimePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegularTimePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegularTimePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegularTimePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegularIntervalSchedule_TimePoints(BaseClass*, BaseClass*); @@ -169,33 +201,33 @@ const char* RegularTimePoint::debugString() const void RegularTimePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegularTimePoint", &RegularTimePoint_factory); + factory_map.emplace("RegularTimePoint", &RegularTimePoint_factory); } void RegularTimePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularTimePoint.sequenceNumber", &assign_RegularTimePoint_sequenceNumber); - assign_map.emplace("cim:RegularTimePoint.value1", &assign_RegularTimePoint_value1); - assign_map.emplace("cim:RegularTimePoint.value2", &assign_RegularTimePoint_value2); + assign_map.emplace("RegularTimePoint.sequenceNumber", &assign_RegularTimePoint_sequenceNumber); + assign_map.emplace("RegularTimePoint.value1", &assign_RegularTimePoint_value1); + assign_map.emplace("RegularTimePoint.value2", &assign_RegularTimePoint_value2); } void RegularTimePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularTimePoint.IntervalSchedule", &assign_RegularTimePoint_IntervalSchedule); + assign_map.emplace("RegularTimePoint.IntervalSchedule", &assign_RegularTimePoint_IntervalSchedule); } void RegularTimePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegularTimePoint.sequenceNumber", &get_RegularTimePoint_sequenceNumber); - get_map.emplace("cim:RegularTimePoint.value1", &get_RegularTimePoint_value1); - get_map.emplace("cim:RegularTimePoint.value2", &get_RegularTimePoint_value2); + get_map.emplace("RegularTimePoint.sequenceNumber", &get_RegularTimePoint_sequenceNumber); + get_map.emplace("RegularTimePoint.value1", &get_RegularTimePoint_value1); + get_map.emplace("RegularTimePoint.value2", &get_RegularTimePoint_value2); } void RegularTimePoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegularTimePoint.IntervalSchedule", &get_RegularTimePoint_IntervalSchedule); + get_map.emplace("RegularTimePoint.IntervalSchedule", &get_RegularTimePoint_IntervalSchedule); } void RegularTimePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -203,11 +235,25 @@ void RegularTimePoint::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool RegularTimePoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegularTimePoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegularTimePoint::declare() { return BaseClassDefiner(RegularTimePoint::addConstructToMap, RegularTimePoint::addPrimitiveAssignFnsToMap, RegularTimePoint::addClassAssignFnsToMap, RegularTimePoint::debugName); } +std::map RegularTimePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegularTimePoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/RegularTimePoint.hpp b/CGMES_2.4.15_27JAN2020/RegularTimePoint.hpp index 1d84dddda..6de1abd40 100644 --- a/CGMES_2.4.15_27JAN2020/RegularTimePoint.hpp +++ b/CGMES_2.4.15_27JAN2020/RegularTimePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegularTimePoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RegulatingCondEq.cpp b/CGMES_2.4.15_27JAN2020/RegulatingCondEq.cpp index 19a2d09e9..221355dab 100644 --- a/CGMES_2.4.15_27JAN2020/RegulatingCondEq.cpp +++ b/CGMES_2.4.15_27JAN2020/RegulatingCondEq.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulatingCondEq(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulatingCondEq.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingCondEq.controlEnabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + RegulatingCondEq::RegulatingCondEq() : RegulatingControl(nullptr) {} RegulatingCondEq::~RegulatingCondEq() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulatingCondEq::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulatingCondEq::getClassNamespaceUrl() const { - { "cim:RegulatingCondEq.RegulatingControl", { CGMESProfile::EQ, } }, - { "cim:RegulatingCondEq.controlEnabled", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulatingCondEq::getPossibleProfilesForClass() const +const std::string& RegulatingCondEq::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulatingCondEq::getPossibleProfilesForAttributes() const +const std::list& RegulatingCondEq::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulatingCondEq::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulatingCondEq::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulatingCondEq::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingControl_RegulatingCondEq(BaseClass*, BaseClass*); @@ -111,29 +143,29 @@ const char* RegulatingCondEq::debugString() const void RegulatingCondEq::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulatingCondEq", &RegulatingCondEq_factory); + factory_map.emplace("RegulatingCondEq", &RegulatingCondEq_factory); } void RegulatingCondEq::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingCondEq.controlEnabled", &assign_RegulatingCondEq_controlEnabled); + assign_map.emplace("RegulatingCondEq.controlEnabled", &assign_RegulatingCondEq_controlEnabled); } void RegulatingCondEq::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingCondEq.RegulatingControl", &assign_RegulatingCondEq_RegulatingControl); + assign_map.emplace("RegulatingCondEq.RegulatingControl", &assign_RegulatingCondEq_RegulatingControl); } void RegulatingCondEq::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingCondEq.controlEnabled", &get_RegulatingCondEq_controlEnabled); + get_map.emplace("RegulatingCondEq.controlEnabled", &get_RegulatingCondEq_controlEnabled); } void RegulatingCondEq::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingCondEq.RegulatingControl", &get_RegulatingCondEq_RegulatingControl); + get_map.emplace("RegulatingCondEq.RegulatingControl", &get_RegulatingCondEq_RegulatingControl); } void RegulatingCondEq::addEnumGetFnsToMap(std::map& get_map) const @@ -141,11 +173,25 @@ void RegulatingCondEq::addEnumGetFnsToMap(std::map& g ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool RegulatingCondEq::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulatingCondEq" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegulatingCondEq::declare() { return BaseClassDefiner(RegulatingCondEq::addConstructToMap, RegulatingCondEq::addPrimitiveAssignFnsToMap, RegulatingCondEq::addClassAssignFnsToMap, RegulatingCondEq::debugName); } +std::map RegulatingCondEq::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulatingCondEq_factory() diff --git a/CGMES_2.4.15_27JAN2020/RegulatingCondEq.hpp b/CGMES_2.4.15_27JAN2020/RegulatingCondEq.hpp index 9df3386a1..6459405d2 100644 --- a/CGMES_2.4.15_27JAN2020/RegulatingCondEq.hpp +++ b/CGMES_2.4.15_27JAN2020/RegulatingCondEq.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulatingCondEq_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RegulatingControl.cpp b/CGMES_2.4.15_27JAN2020/RegulatingControl.cpp index 7f14bad90..297410404 100644 --- a/CGMES_2.4.15_27JAN2020/RegulatingControl.cpp +++ b/CGMES_2.4.15_27JAN2020/RegulatingControl.cpp @@ -14,41 +14,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulatingControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulatingControl.RegulatingCondEq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.RegulationSchedule", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.discrete", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.enabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.mode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.targetDeadband", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.targetValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.targetValueUnitMultiplier", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + RegulatingControl::RegulatingControl() : Terminal(nullptr) {} RegulatingControl::~RegulatingControl() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulatingControl::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulatingControl::getClassNamespaceUrl() const { - { "cim:RegulatingControl.RegulatingCondEq", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.RegulationSchedule", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.Terminal", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.discrete", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.enabled", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.mode", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.targetDeadband", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.targetValue", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.targetValueUnitMultiplier", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulatingControl::getPossibleProfilesForClass() const +const std::string& RegulatingControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulatingControl::getPossibleProfilesForAttributes() const +const std::list& RegulatingControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulatingControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulatingControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulatingControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingCondEq_RegulatingControl(BaseClass*, BaseClass*); @@ -300,46 +332,52 @@ const char* RegulatingControl::debugString() const void RegulatingControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulatingControl", &RegulatingControl_factory); + factory_map.emplace("RegulatingControl", &RegulatingControl_factory); } void RegulatingControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingControl.discrete", &assign_RegulatingControl_discrete); - assign_map.emplace("cim:RegulatingControl.enabled", &assign_RegulatingControl_enabled); - assign_map.emplace("cim:RegulatingControl.mode", &assign_RegulatingControl_mode); - assign_map.emplace("cim:RegulatingControl.targetDeadband", &assign_RegulatingControl_targetDeadband); - assign_map.emplace("cim:RegulatingControl.targetValue", &assign_RegulatingControl_targetValue); - assign_map.emplace("cim:RegulatingControl.targetValueUnitMultiplier", &assign_RegulatingControl_targetValueUnitMultiplier); + assign_map.emplace("RegulatingControl.discrete", &assign_RegulatingControl_discrete); + assign_map.emplace("RegulatingControl.enabled", &assign_RegulatingControl_enabled); + assign_map.emplace("RegulatingControl.mode", &assign_RegulatingControl_mode); + assign_map.emplace("RegulatingControl.targetDeadband", &assign_RegulatingControl_targetDeadband); + assign_map.emplace("RegulatingControl.targetValue", &assign_RegulatingControl_targetValue); + assign_map.emplace("RegulatingControl.targetValueUnitMultiplier", &assign_RegulatingControl_targetValueUnitMultiplier); } void RegulatingControl::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingControl.RegulatingCondEq", &assign_RegulatingControl_RegulatingCondEq); - assign_map.emplace("cim:RegulatingControl.RegulationSchedule", &assign_RegulatingControl_RegulationSchedule); - assign_map.emplace("cim:RegulatingControl.Terminal", &assign_RegulatingControl_Terminal); + assign_map.emplace("RegulatingControl.RegulatingCondEq", &assign_RegulatingControl_RegulatingCondEq); + assign_map.emplace("RegulatingControl.RegulationSchedule", &assign_RegulatingControl_RegulationSchedule); + assign_map.emplace("RegulatingControl.Terminal", &assign_RegulatingControl_Terminal); } void RegulatingControl::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.discrete", &get_RegulatingControl_discrete); - get_map.emplace("cim:RegulatingControl.enabled", &get_RegulatingControl_enabled); - get_map.emplace("cim:RegulatingControl.targetDeadband", &get_RegulatingControl_targetDeadband); - get_map.emplace("cim:RegulatingControl.targetValue", &get_RegulatingControl_targetValue); + get_map.emplace("RegulatingControl.discrete", &get_RegulatingControl_discrete); + get_map.emplace("RegulatingControl.enabled", &get_RegulatingControl_enabled); + get_map.emplace("RegulatingControl.targetDeadband", &get_RegulatingControl_targetDeadband); + get_map.emplace("RegulatingControl.targetValue", &get_RegulatingControl_targetValue); } void RegulatingControl::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.Terminal", &get_RegulatingControl_Terminal); + get_map.emplace("RegulatingControl.Terminal", &get_RegulatingControl_Terminal); } void RegulatingControl::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.mode", &get_RegulatingControl_mode); - get_map.emplace("cim:RegulatingControl.targetValueUnitMultiplier", &get_RegulatingControl_targetValueUnitMultiplier); + get_map.emplace("RegulatingControl.mode", &get_RegulatingControl_mode); + get_map.emplace("RegulatingControl.targetValueUnitMultiplier", &get_RegulatingControl_targetValueUnitMultiplier); +} + +bool RegulatingControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulatingControl" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RegulatingControl::declare() @@ -347,6 +385,14 @@ const BaseClassDefiner RegulatingControl::declare() return BaseClassDefiner(RegulatingControl::addConstructToMap, RegulatingControl::addPrimitiveAssignFnsToMap, RegulatingControl::addClassAssignFnsToMap, RegulatingControl::debugName); } +std::map RegulatingControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulatingControl_factory() diff --git a/CGMES_2.4.15_27JAN2020/RegulatingControl.hpp b/CGMES_2.4.15_27JAN2020/RegulatingControl.hpp index f6be989fc..48ec796c5 100644 --- a/CGMES_2.4.15_27JAN2020/RegulatingControl.hpp +++ b/CGMES_2.4.15_27JAN2020/RegulatingControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "RegulatingControlModeKind.hpp" #include "Simple_Float.hpp" @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulatingControl_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RegulationSchedule.cpp b/CGMES_2.4.15_27JAN2020/RegulationSchedule.cpp index 8750abb1a..eecf20fd5 100644 --- a/CGMES_2.4.15_27JAN2020/RegulationSchedule.cpp +++ b/CGMES_2.4.15_27JAN2020/RegulationSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulationSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulationSchedule.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegulationSchedule::RegulationSchedule() : RegulatingControl(nullptr) {} RegulationSchedule::~RegulationSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulationSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulationSchedule::getClassNamespaceUrl() const { - { "cim:RegulationSchedule.RegulatingControl", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulationSchedule::getPossibleProfilesForClass() const +const std::string& RegulationSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulationSchedule::getPossibleProfilesForAttributes() const +const std::list& RegulationSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulationSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulationSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulationSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingControl_RegulationSchedule(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RegulationSchedule::debugString() const void RegulationSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulationSchedule", &RegulationSchedule_factory); + factory_map.emplace("RegulationSchedule", &RegulationSchedule_factory); } void RegulationSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RegulationSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulationSchedule.RegulatingControl", &assign_RegulationSchedule_RegulatingControl); + assign_map.emplace("RegulationSchedule.RegulatingControl", &assign_RegulationSchedule_RegulatingControl); } void RegulationSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RegulationSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulationSchedule.RegulatingControl", &get_RegulationSchedule_RegulatingControl); + get_map.emplace("RegulationSchedule.RegulatingControl", &get_RegulationSchedule_RegulatingControl); } void RegulationSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RegulationSchedule::addEnumGetFnsToMap(std::map& SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool RegulationSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulationSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegulationSchedule::declare() { return BaseClassDefiner(RegulationSchedule::addConstructToMap, RegulationSchedule::addPrimitiveAssignFnsToMap, RegulationSchedule::addClassAssignFnsToMap, RegulationSchedule::debugName); } +std::map RegulationSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulationSchedule_factory() diff --git a/CGMES_2.4.15_27JAN2020/RegulationSchedule.hpp b/CGMES_2.4.15_27JAN2020/RegulationSchedule.hpp index 4b0f45cec..1fa0a5a27 100644 --- a/CGMES_2.4.15_27JAN2020/RegulationSchedule.hpp +++ b/CGMES_2.4.15_27JAN2020/RegulationSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulationSchedule_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RemoteInputSignal.cpp b/CGMES_2.4.15_27JAN2020/RemoteInputSignal.cpp index f187b941e..24bcf22b4 100644 --- a/CGMES_2.4.15_27JAN2020/RemoteInputSignal.cpp +++ b/CGMES_2.4.15_27JAN2020/RemoteInputSignal.cpp @@ -20,41 +20,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RemoteInputSignal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RemoteInputSignal.DiscontinuousExcitationControlDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.PowerSystemStabilizerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.UnderexcitationLimiterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.VoltageCompensatorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindPlantDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindTurbineType1or2Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.remoteSignalType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + RemoteInputSignal::RemoteInputSignal() : DiscontinuousExcitationControlDynamics(nullptr), PFVArControllerType1Dynamics(nullptr), PowerSystemStabilizerDynamics(nullptr), Terminal(nullptr), UnderexcitationLimiterDynamics(nullptr), VoltageCompensatorDynamics(nullptr), WindPlantDynamics(nullptr), WindTurbineType1or2Dynamics(nullptr), WindTurbineType3or4Dynamics(nullptr) {} RemoteInputSignal::~RemoteInputSignal() {} -static const std::list PossibleProfilesForClass = +const std::list& RemoteInputSignal::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RemoteInputSignal::getClassNamespaceUrl() const { - { "cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.PowerSystemStabilizerDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.Terminal", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.UnderexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.VoltageCompensatorDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindPlantDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindTurbineType1or2Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.remoteSignalType", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RemoteInputSignal::getPossibleProfilesForClass() const +const std::string& RemoteInputSignal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RemoteInputSignal::getPossibleProfilesForAttributes() const +const std::list& RemoteInputSignal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RemoteInputSignal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RemoteInputSignal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RemoteInputSignal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal(BaseClass*, BaseClass*); @@ -334,25 +366,25 @@ const char* RemoteInputSignal::debugString() const void RemoteInputSignal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RemoteInputSignal", &RemoteInputSignal_factory); + factory_map.emplace("RemoteInputSignal", &RemoteInputSignal_factory); } void RemoteInputSignal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RemoteInputSignal.remoteSignalType", &assign_RemoteInputSignal_remoteSignalType); + assign_map.emplace("RemoteInputSignal.remoteSignalType", &assign_RemoteInputSignal_remoteSignalType); } void RemoteInputSignal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", &assign_RemoteInputSignal_DiscontinuousExcitationControlDynamics); - assign_map.emplace("cim:RemoteInputSignal.PFVArControllerType1Dynamics", &assign_RemoteInputSignal_PFVArControllerType1Dynamics); - assign_map.emplace("cim:RemoteInputSignal.PowerSystemStabilizerDynamics", &assign_RemoteInputSignal_PowerSystemStabilizerDynamics); - assign_map.emplace("cim:RemoteInputSignal.Terminal", &assign_RemoteInputSignal_Terminal); - assign_map.emplace("cim:RemoteInputSignal.UnderexcitationLimiterDynamics", &assign_RemoteInputSignal_UnderexcitationLimiterDynamics); - assign_map.emplace("cim:RemoteInputSignal.VoltageCompensatorDynamics", &assign_RemoteInputSignal_VoltageCompensatorDynamics); - assign_map.emplace("cim:RemoteInputSignal.WindPlantDynamics", &assign_RemoteInputSignal_WindPlantDynamics); - assign_map.emplace("cim:RemoteInputSignal.WindTurbineType1or2Dynamics", &assign_RemoteInputSignal_WindTurbineType1or2Dynamics); - assign_map.emplace("cim:RemoteInputSignal.WindTurbineType3or4Dynamics", &assign_RemoteInputSignal_WindTurbineType3or4Dynamics); + assign_map.emplace("RemoteInputSignal.DiscontinuousExcitationControlDynamics", &assign_RemoteInputSignal_DiscontinuousExcitationControlDynamics); + assign_map.emplace("RemoteInputSignal.PFVArControllerType1Dynamics", &assign_RemoteInputSignal_PFVArControllerType1Dynamics); + assign_map.emplace("RemoteInputSignal.PowerSystemStabilizerDynamics", &assign_RemoteInputSignal_PowerSystemStabilizerDynamics); + assign_map.emplace("RemoteInputSignal.Terminal", &assign_RemoteInputSignal_Terminal); + assign_map.emplace("RemoteInputSignal.UnderexcitationLimiterDynamics", &assign_RemoteInputSignal_UnderexcitationLimiterDynamics); + assign_map.emplace("RemoteInputSignal.VoltageCompensatorDynamics", &assign_RemoteInputSignal_VoltageCompensatorDynamics); + assign_map.emplace("RemoteInputSignal.WindPlantDynamics", &assign_RemoteInputSignal_WindPlantDynamics); + assign_map.emplace("RemoteInputSignal.WindTurbineType1or2Dynamics", &assign_RemoteInputSignal_WindTurbineType1or2Dynamics); + assign_map.emplace("RemoteInputSignal.WindTurbineType3or4Dynamics", &assign_RemoteInputSignal_WindTurbineType3or4Dynamics); } void RemoteInputSignal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -363,18 +395,24 @@ void RemoteInputSignal::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", &get_RemoteInputSignal_DiscontinuousExcitationControlDynamics); - get_map.emplace("cim:RemoteInputSignal.PFVArControllerType1Dynamics", &get_RemoteInputSignal_PFVArControllerType1Dynamics); - get_map.emplace("cim:RemoteInputSignal.PowerSystemStabilizerDynamics", &get_RemoteInputSignal_PowerSystemStabilizerDynamics); - get_map.emplace("cim:RemoteInputSignal.Terminal", &get_RemoteInputSignal_Terminal); - get_map.emplace("cim:RemoteInputSignal.UnderexcitationLimiterDynamics", &get_RemoteInputSignal_UnderexcitationLimiterDynamics); - get_map.emplace("cim:RemoteInputSignal.VoltageCompensatorDynamics", &get_RemoteInputSignal_VoltageCompensatorDynamics); + get_map.emplace("RemoteInputSignal.DiscontinuousExcitationControlDynamics", &get_RemoteInputSignal_DiscontinuousExcitationControlDynamics); + get_map.emplace("RemoteInputSignal.PFVArControllerType1Dynamics", &get_RemoteInputSignal_PFVArControllerType1Dynamics); + get_map.emplace("RemoteInputSignal.PowerSystemStabilizerDynamics", &get_RemoteInputSignal_PowerSystemStabilizerDynamics); + get_map.emplace("RemoteInputSignal.Terminal", &get_RemoteInputSignal_Terminal); + get_map.emplace("RemoteInputSignal.UnderexcitationLimiterDynamics", &get_RemoteInputSignal_UnderexcitationLimiterDynamics); + get_map.emplace("RemoteInputSignal.VoltageCompensatorDynamics", &get_RemoteInputSignal_VoltageCompensatorDynamics); } void RemoteInputSignal::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RemoteInputSignal.remoteSignalType", &get_RemoteInputSignal_remoteSignalType); + get_map.emplace("RemoteInputSignal.remoteSignalType", &get_RemoteInputSignal_remoteSignalType); +} + +bool RemoteInputSignal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RemoteInputSignal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RemoteInputSignal::declare() @@ -382,6 +420,14 @@ const BaseClassDefiner RemoteInputSignal::declare() return BaseClassDefiner(RemoteInputSignal::addConstructToMap, RemoteInputSignal::addPrimitiveAssignFnsToMap, RemoteInputSignal::addClassAssignFnsToMap, RemoteInputSignal::debugName); } +std::map RemoteInputSignal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RemoteInputSignal_factory() diff --git a/CGMES_2.4.15_27JAN2020/RemoteInputSignal.hpp b/CGMES_2.4.15_27JAN2020/RemoteInputSignal.hpp index f33baab80..ff55f1ed4 100644 --- a/CGMES_2.4.15_27JAN2020/RemoteInputSignal.hpp +++ b/CGMES_2.4.15_27JAN2020/RemoteInputSignal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "RemoteSignalKind.hpp" namespace CIMPP @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RemoteInputSignal_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ReportingGroup.cpp b/CGMES_2.4.15_27JAN2020/ReportingGroup.cpp index 5a8463cce..81ee0ce6b 100644 --- a/CGMES_2.4.15_27JAN2020/ReportingGroup.cpp +++ b/CGMES_2.4.15_27JAN2020/ReportingGroup.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ReportingGroup(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ReportingGroup.BusNameMarker", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ReportingGroup.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ReportingGroup::ReportingGroup() {} ReportingGroup::~ReportingGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& ReportingGroup::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ReportingGroup::getClassNamespaceUrl() const { - { "cim:ReportingGroup.BusNameMarker", { CGMESProfile::EQ, } }, - { "cim:ReportingGroup.TopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ReportingGroup::getPossibleProfilesForClass() const +const std::string& ReportingGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ReportingGroup::getPossibleProfilesForAttributes() const +const std::list& ReportingGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ReportingGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ReportingGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ReportingGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusNameMarker_ReportingGroup(BaseClass*, BaseClass*); @@ -87,7 +119,7 @@ const char* ReportingGroup::debugString() const void ReportingGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ReportingGroup", &ReportingGroup_factory); + factory_map.emplace("ReportingGroup", &ReportingGroup_factory); } void ReportingGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -96,8 +128,8 @@ void ReportingGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ReportingGroup.BusNameMarker", &assign_ReportingGroup_BusNameMarker); - assign_map.emplace("cim:ReportingGroup.TopologicalNode", &assign_ReportingGroup_TopologicalNode); + assign_map.emplace("ReportingGroup.BusNameMarker", &assign_ReportingGroup_BusNameMarker); + assign_map.emplace("ReportingGroup.TopologicalNode", &assign_ReportingGroup_TopologicalNode); } void ReportingGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -115,11 +147,25 @@ void ReportingGroup::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ReportingGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ReportingGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ReportingGroup::declare() { return BaseClassDefiner(ReportingGroup::addConstructToMap, ReportingGroup::addPrimitiveAssignFnsToMap, ReportingGroup::addClassAssignFnsToMap, ReportingGroup::debugName); } +std::map ReportingGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ReportingGroup_factory() diff --git a/CGMES_2.4.15_27JAN2020/ReportingGroup.hpp b/CGMES_2.4.15_27JAN2020/ReportingGroup.hpp index bed31d9d8..94230e4bf 100644 --- a/CGMES_2.4.15_27JAN2020/ReportingGroup.hpp +++ b/CGMES_2.4.15_27JAN2020/ReportingGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ReportingGroup_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RotatingMachine.cpp b/CGMES_2.4.15_27JAN2020/RotatingMachine.cpp index 167772853..d13a6824f 100644 --- a/CGMES_2.4.15_27JAN2020/RotatingMachine.cpp +++ b/CGMES_2.4.15_27JAN2020/RotatingMachine.cpp @@ -13,40 +13,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RotatingMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RotatingMachine.GeneratingUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.HydroPump", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RotatingMachine.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "RotatingMachine.ratedPowerFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.ratedS", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.ratedU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RotatingMachine::RotatingMachine() : GeneratingUnit(nullptr), HydroPump(nullptr) {} RotatingMachine::~RotatingMachine() {} -static const std::list PossibleProfilesForClass = +const std::list& RotatingMachine::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RotatingMachine::getClassNamespaceUrl() const { - { "cim:RotatingMachine.GeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.HydroPump", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.p", { CGMESProfile::SSH, } }, - { "cim:RotatingMachine.q", { CGMESProfile::SSH, } }, - { "cim:RotatingMachine.ratedPowerFactor", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.ratedS", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.ratedU", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RotatingMachine::getPossibleProfilesForClass() const +const std::string& RotatingMachine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RotatingMachine::getPossibleProfilesForAttributes() const +const std::list& RotatingMachine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RotatingMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RotatingMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RotatingMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeneratingUnit_RotatingMachine(BaseClass*, BaseClass*); @@ -251,38 +283,38 @@ const char* RotatingMachine::debugString() const void RotatingMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RotatingMachine", &RotatingMachine_factory); + factory_map.emplace("RotatingMachine", &RotatingMachine_factory); } void RotatingMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachine.p", &assign_RotatingMachine_p); - assign_map.emplace("cim:RotatingMachine.q", &assign_RotatingMachine_q); - assign_map.emplace("cim:RotatingMachine.ratedPowerFactor", &assign_RotatingMachine_ratedPowerFactor); - assign_map.emplace("cim:RotatingMachine.ratedS", &assign_RotatingMachine_ratedS); - assign_map.emplace("cim:RotatingMachine.ratedU", &assign_RotatingMachine_ratedU); + assign_map.emplace("RotatingMachine.p", &assign_RotatingMachine_p); + assign_map.emplace("RotatingMachine.q", &assign_RotatingMachine_q); + assign_map.emplace("RotatingMachine.ratedPowerFactor", &assign_RotatingMachine_ratedPowerFactor); + assign_map.emplace("RotatingMachine.ratedS", &assign_RotatingMachine_ratedS); + assign_map.emplace("RotatingMachine.ratedU", &assign_RotatingMachine_ratedU); } void RotatingMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachine.GeneratingUnit", &assign_RotatingMachine_GeneratingUnit); - assign_map.emplace("cim:RotatingMachine.HydroPump", &assign_RotatingMachine_HydroPump); + assign_map.emplace("RotatingMachine.GeneratingUnit", &assign_RotatingMachine_GeneratingUnit); + assign_map.emplace("RotatingMachine.HydroPump", &assign_RotatingMachine_HydroPump); } void RotatingMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachine.p", &get_RotatingMachine_p); - get_map.emplace("cim:RotatingMachine.q", &get_RotatingMachine_q); - get_map.emplace("cim:RotatingMachine.ratedPowerFactor", &get_RotatingMachine_ratedPowerFactor); - get_map.emplace("cim:RotatingMachine.ratedS", &get_RotatingMachine_ratedS); - get_map.emplace("cim:RotatingMachine.ratedU", &get_RotatingMachine_ratedU); + get_map.emplace("RotatingMachine.p", &get_RotatingMachine_p); + get_map.emplace("RotatingMachine.q", &get_RotatingMachine_q); + get_map.emplace("RotatingMachine.ratedPowerFactor", &get_RotatingMachine_ratedPowerFactor); + get_map.emplace("RotatingMachine.ratedS", &get_RotatingMachine_ratedS); + get_map.emplace("RotatingMachine.ratedU", &get_RotatingMachine_ratedU); } void RotatingMachine::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachine.GeneratingUnit", &get_RotatingMachine_GeneratingUnit); + get_map.emplace("RotatingMachine.GeneratingUnit", &get_RotatingMachine_GeneratingUnit); } void RotatingMachine::addEnumGetFnsToMap(std::map& get_map) const @@ -290,11 +322,25 @@ void RotatingMachine::addEnumGetFnsToMap(std::map& ge RegulatingCondEq::addEnumGetFnsToMap(get_map); } +bool RotatingMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RotatingMachine" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RotatingMachine::declare() { return BaseClassDefiner(RotatingMachine::addConstructToMap, RotatingMachine::addPrimitiveAssignFnsToMap, RotatingMachine::addClassAssignFnsToMap, RotatingMachine::debugName); } +std::map RotatingMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RotatingMachine_factory() diff --git a/CGMES_2.4.15_27JAN2020/RotatingMachine.hpp b/CGMES_2.4.15_27JAN2020/RotatingMachine.hpp index 94e3078ed..b2df4fa3c 100644 --- a/CGMES_2.4.15_27JAN2020/RotatingMachine.hpp +++ b/CGMES_2.4.15_27JAN2020/RotatingMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ApparentPower.hpp" #include "ReactivePower.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RotatingMachine_factory(); diff --git a/CGMES_2.4.15_27JAN2020/RotatingMachineDynamics.cpp b/CGMES_2.4.15_27JAN2020/RotatingMachineDynamics.cpp index 57dd9d608..cd79785cb 100644 --- a/CGMES_2.4.15_27JAN2020/RotatingMachineDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/RotatingMachineDynamics.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RotatingMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RotatingMachineDynamics.damping", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.inertia", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.saturationFactor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.saturationFactor120", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.statorLeakageReactance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.statorResistance", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + RotatingMachineDynamics::RotatingMachineDynamics() {} RotatingMachineDynamics::~RotatingMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& RotatingMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RotatingMachineDynamics::getClassNamespaceUrl() const { - { "cim:RotatingMachineDynamics.damping", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.inertia", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.saturationFactor", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.saturationFactor120", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.statorLeakageReactance", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.statorResistance", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RotatingMachineDynamics::getPossibleProfilesForClass() const +const std::string& RotatingMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RotatingMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& RotatingMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RotatingMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RotatingMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RotatingMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RotatingMachineDynamics_damping(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* RotatingMachineDynamics::debugString() const void RotatingMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RotatingMachineDynamics", &RotatingMachineDynamics_factory); + factory_map.emplace("RotatingMachineDynamics", &RotatingMachineDynamics_factory); } void RotatingMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachineDynamics.damping", &assign_RotatingMachineDynamics_damping); - assign_map.emplace("cim:RotatingMachineDynamics.inertia", &assign_RotatingMachineDynamics_inertia); - assign_map.emplace("cim:RotatingMachineDynamics.saturationFactor", &assign_RotatingMachineDynamics_saturationFactor); - assign_map.emplace("cim:RotatingMachineDynamics.saturationFactor120", &assign_RotatingMachineDynamics_saturationFactor120); - assign_map.emplace("cim:RotatingMachineDynamics.statorLeakageReactance", &assign_RotatingMachineDynamics_statorLeakageReactance); - assign_map.emplace("cim:RotatingMachineDynamics.statorResistance", &assign_RotatingMachineDynamics_statorResistance); + assign_map.emplace("RotatingMachineDynamics.damping", &assign_RotatingMachineDynamics_damping); + assign_map.emplace("RotatingMachineDynamics.inertia", &assign_RotatingMachineDynamics_inertia); + assign_map.emplace("RotatingMachineDynamics.saturationFactor", &assign_RotatingMachineDynamics_saturationFactor); + assign_map.emplace("RotatingMachineDynamics.saturationFactor120", &assign_RotatingMachineDynamics_saturationFactor120); + assign_map.emplace("RotatingMachineDynamics.statorLeakageReactance", &assign_RotatingMachineDynamics_statorLeakageReactance); + assign_map.emplace("RotatingMachineDynamics.statorResistance", &assign_RotatingMachineDynamics_statorResistance); } void RotatingMachineDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void RotatingMachineDynamics::addClassAssignFnsToMap(std::unordered_map& get_map) const { DynamicsFunctionBlock::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachineDynamics.damping", &get_RotatingMachineDynamics_damping); - get_map.emplace("cim:RotatingMachineDynamics.inertia", &get_RotatingMachineDynamics_inertia); - get_map.emplace("cim:RotatingMachineDynamics.saturationFactor", &get_RotatingMachineDynamics_saturationFactor); - get_map.emplace("cim:RotatingMachineDynamics.saturationFactor120", &get_RotatingMachineDynamics_saturationFactor120); - get_map.emplace("cim:RotatingMachineDynamics.statorLeakageReactance", &get_RotatingMachineDynamics_statorLeakageReactance); - get_map.emplace("cim:RotatingMachineDynamics.statorResistance", &get_RotatingMachineDynamics_statorResistance); + get_map.emplace("RotatingMachineDynamics.damping", &get_RotatingMachineDynamics_damping); + get_map.emplace("RotatingMachineDynamics.inertia", &get_RotatingMachineDynamics_inertia); + get_map.emplace("RotatingMachineDynamics.saturationFactor", &get_RotatingMachineDynamics_saturationFactor); + get_map.emplace("RotatingMachineDynamics.saturationFactor120", &get_RotatingMachineDynamics_saturationFactor120); + get_map.emplace("RotatingMachineDynamics.statorLeakageReactance", &get_RotatingMachineDynamics_statorLeakageReactance); + get_map.emplace("RotatingMachineDynamics.statorResistance", &get_RotatingMachineDynamics_statorResistance); } void RotatingMachineDynamics::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void RotatingMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RotatingMachineDynamics::declare() { return BaseClassDefiner(RotatingMachineDynamics::addConstructToMap, RotatingMachineDynamics::addPrimitiveAssignFnsToMap, RotatingMachineDynamics::addClassAssignFnsToMap, RotatingMachineDynamics::debugName); } +std::map RotatingMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RotatingMachineDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/RotatingMachineDynamics.hpp b/CGMES_2.4.15_27JAN2020/RotatingMachineDynamics.hpp index 97a2d57c7..269643a8e 100644 --- a/CGMES_2.4.15_27JAN2020/RotatingMachineDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/RotatingMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RotatingMachineDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Season.cpp b/CGMES_2.4.15_27JAN2020/Season.cpp index bd79ad860..2165d9b90 100644 --- a/CGMES_2.4.15_27JAN2020/Season.cpp +++ b/CGMES_2.4.15_27JAN2020/Season.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Season(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Season.SeasonDayTypeSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Season.endDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Season.startDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Season::Season() {} Season::~Season() {} -static const std::list PossibleProfilesForClass = +const std::list& Season::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Season::getClassNamespaceUrl() const { - { "cim:Season.SeasonDayTypeSchedules", { CGMESProfile::EQ, } }, - { "cim:Season.endDate", { CGMESProfile::EQ, } }, - { "cim:Season.startDate", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Season::getPossibleProfilesForClass() const +const std::string& Season::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Season::getPossibleProfilesForAttributes() const +const std::list& Season::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Season::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Season::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Season::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeasonDayTypeSchedule_Season(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* Season::debugString() const void Season::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Season", &Season_factory); + factory_map.emplace("Season", &Season_factory); } void Season::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Season.endDate", &assign_Season_endDate); - assign_map.emplace("cim:Season.startDate", &assign_Season_startDate); + assign_map.emplace("Season.endDate", &assign_Season_endDate); + assign_map.emplace("Season.startDate", &assign_Season_startDate); } void Season::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Season.SeasonDayTypeSchedules", &assign_Season_SeasonDayTypeSchedules); + assign_map.emplace("Season.SeasonDayTypeSchedules", &assign_Season_SeasonDayTypeSchedules); } void Season::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Season.endDate", &get_Season_endDate); - get_map.emplace("cim:Season.startDate", &get_Season_startDate); + get_map.emplace("Season.endDate", &get_Season_endDate); + get_map.emplace("Season.startDate", &get_Season_startDate); } void Season::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void Season::addEnumGetFnsToMap(std::map& get_map) co IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Season::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Season" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Season::declare() { return BaseClassDefiner(Season::addConstructToMap, Season::addPrimitiveAssignFnsToMap, Season::addClassAssignFnsToMap, Season::debugName); } +std::map Season::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Season_factory() diff --git a/CGMES_2.4.15_27JAN2020/Season.hpp b/CGMES_2.4.15_27JAN2020/Season.hpp index 884a07e64..3ec092251 100644 --- a/CGMES_2.4.15_27JAN2020/Season.hpp +++ b/CGMES_2.4.15_27JAN2020/Season.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "MonthDay.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Season_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SeasonDayTypeSchedule.cpp b/CGMES_2.4.15_27JAN2020/SeasonDayTypeSchedule.cpp index dcc36cca0..94301acf8 100644 --- a/CGMES_2.4.15_27JAN2020/SeasonDayTypeSchedule.cpp +++ b/CGMES_2.4.15_27JAN2020/SeasonDayTypeSchedule.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SeasonDayTypeSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SeasonDayTypeSchedule.DayType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeasonDayTypeSchedule.Season", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SeasonDayTypeSchedule::SeasonDayTypeSchedule() : DayType(nullptr), Season(nullptr) {} SeasonDayTypeSchedule::~SeasonDayTypeSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& SeasonDayTypeSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SeasonDayTypeSchedule::getClassNamespaceUrl() const { - { "cim:SeasonDayTypeSchedule.DayType", { CGMESProfile::EQ, } }, - { "cim:SeasonDayTypeSchedule.Season", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SeasonDayTypeSchedule::getPossibleProfilesForClass() const +const std::string& SeasonDayTypeSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SeasonDayTypeSchedule::getPossibleProfilesForAttributes() const +const std::list& SeasonDayTypeSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegularIntervalSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SeasonDayTypeSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SeasonDayTypeSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SeasonDayTypeSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DayType_SeasonDayTypeSchedules(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* SeasonDayTypeSchedule::debugString() const void SeasonDayTypeSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SeasonDayTypeSchedule", &SeasonDayTypeSchedule_factory); + factory_map.emplace("SeasonDayTypeSchedule", &SeasonDayTypeSchedule_factory); } void SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SeasonDayTypeSchedule.DayType", &assign_SeasonDayTypeSchedule_DayType); - assign_map.emplace("cim:SeasonDayTypeSchedule.Season", &assign_SeasonDayTypeSchedule_Season); + assign_map.emplace("SeasonDayTypeSchedule.DayType", &assign_SeasonDayTypeSchedule_DayType); + assign_map.emplace("SeasonDayTypeSchedule.Season", &assign_SeasonDayTypeSchedule_Season); } void SeasonDayTypeSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void SeasonDayTypeSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { RegularIntervalSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SeasonDayTypeSchedule.DayType", &get_SeasonDayTypeSchedule_DayType); - get_map.emplace("cim:SeasonDayTypeSchedule.Season", &get_SeasonDayTypeSchedule_Season); + get_map.emplace("SeasonDayTypeSchedule.DayType", &get_SeasonDayTypeSchedule_DayType); + get_map.emplace("SeasonDayTypeSchedule.Season", &get_SeasonDayTypeSchedule_Season); } void SeasonDayTypeSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void SeasonDayTypeSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SeasonDayTypeSchedule::declare() { return BaseClassDefiner(SeasonDayTypeSchedule::addConstructToMap, SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap, SeasonDayTypeSchedule::addClassAssignFnsToMap, SeasonDayTypeSchedule::debugName); } +std::map SeasonDayTypeSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegularIntervalSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SeasonDayTypeSchedule_factory() diff --git a/CGMES_2.4.15_27JAN2020/SeasonDayTypeSchedule.hpp b/CGMES_2.4.15_27JAN2020/SeasonDayTypeSchedule.hpp index bb3b41a35..42c4c4e94 100644 --- a/CGMES_2.4.15_27JAN2020/SeasonDayTypeSchedule.hpp +++ b/CGMES_2.4.15_27JAN2020/SeasonDayTypeSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegularIntervalSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SeasonDayTypeSchedule_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SeriesCompensator.cpp b/CGMES_2.4.15_27JAN2020/SeriesCompensator.cpp index 291e18404..59ed1c685 100644 --- a/CGMES_2.4.15_27JAN2020/SeriesCompensator.cpp +++ b/CGMES_2.4.15_27JAN2020/SeriesCompensator.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SeriesCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SeriesCompensator.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorPresent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorRatedCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.varistorVoltageThreshold", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SeriesCompensator::SeriesCompensator() {} SeriesCompensator::~SeriesCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& SeriesCompensator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SeriesCompensator::getClassNamespaceUrl() const { - { "cim:SeriesCompensator.r", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.r0", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorPresent", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorRatedCurrent", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.varistorVoltageThreshold", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.x", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.x0", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SeriesCompensator::getPossibleProfilesForClass() const +const std::string& SeriesCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SeriesCompensator::getPossibleProfilesForAttributes() const +const std::list& SeriesCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SeriesCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SeriesCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SeriesCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeriesCompensator_r(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* SeriesCompensator::debugString() const void SeriesCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SeriesCompensator", &SeriesCompensator_factory); + factory_map.emplace("SeriesCompensator", &SeriesCompensator_factory); } void SeriesCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SeriesCompensator.r", &assign_SeriesCompensator_r); - assign_map.emplace("cim:SeriesCompensator.r0", &assign_SeriesCompensator_r0); - assign_map.emplace("cim:SeriesCompensator.varistorPresent", &assign_SeriesCompensator_varistorPresent); - assign_map.emplace("cim:SeriesCompensator.varistorRatedCurrent", &assign_SeriesCompensator_varistorRatedCurrent); - assign_map.emplace("cim:SeriesCompensator.varistorVoltageThreshold", &assign_SeriesCompensator_varistorVoltageThreshold); - assign_map.emplace("cim:SeriesCompensator.x", &assign_SeriesCompensator_x); - assign_map.emplace("cim:SeriesCompensator.x0", &assign_SeriesCompensator_x0); + assign_map.emplace("SeriesCompensator.r", &assign_SeriesCompensator_r); + assign_map.emplace("SeriesCompensator.r0", &assign_SeriesCompensator_r0); + assign_map.emplace("SeriesCompensator.varistorPresent", &assign_SeriesCompensator_varistorPresent); + assign_map.emplace("SeriesCompensator.varistorRatedCurrent", &assign_SeriesCompensator_varistorRatedCurrent); + assign_map.emplace("SeriesCompensator.varistorVoltageThreshold", &assign_SeriesCompensator_varistorVoltageThreshold); + assign_map.emplace("SeriesCompensator.x", &assign_SeriesCompensator_x); + assign_map.emplace("SeriesCompensator.x0", &assign_SeriesCompensator_x0); } void SeriesCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void SeriesCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SeriesCompensator.r", &get_SeriesCompensator_r); - get_map.emplace("cim:SeriesCompensator.r0", &get_SeriesCompensator_r0); - get_map.emplace("cim:SeriesCompensator.varistorPresent", &get_SeriesCompensator_varistorPresent); - get_map.emplace("cim:SeriesCompensator.varistorRatedCurrent", &get_SeriesCompensator_varistorRatedCurrent); - get_map.emplace("cim:SeriesCompensator.varistorVoltageThreshold", &get_SeriesCompensator_varistorVoltageThreshold); - get_map.emplace("cim:SeriesCompensator.x", &get_SeriesCompensator_x); - get_map.emplace("cim:SeriesCompensator.x0", &get_SeriesCompensator_x0); + get_map.emplace("SeriesCompensator.r", &get_SeriesCompensator_r); + get_map.emplace("SeriesCompensator.r0", &get_SeriesCompensator_r0); + get_map.emplace("SeriesCompensator.varistorPresent", &get_SeriesCompensator_varistorPresent); + get_map.emplace("SeriesCompensator.varistorRatedCurrent", &get_SeriesCompensator_varistorRatedCurrent); + get_map.emplace("SeriesCompensator.varistorVoltageThreshold", &get_SeriesCompensator_varistorVoltageThreshold); + get_map.emplace("SeriesCompensator.x", &get_SeriesCompensator_x); + get_map.emplace("SeriesCompensator.x0", &get_SeriesCompensator_x0); } void SeriesCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void SeriesCompensator::addEnumGetFnsToMap(std::map& ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool SeriesCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SeriesCompensator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SeriesCompensator::declare() { return BaseClassDefiner(SeriesCompensator::addConstructToMap, SeriesCompensator::addPrimitiveAssignFnsToMap, SeriesCompensator::addClassAssignFnsToMap, SeriesCompensator::debugName); } +std::map SeriesCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SeriesCompensator_factory() diff --git a/CGMES_2.4.15_27JAN2020/SeriesCompensator.hpp b/CGMES_2.4.15_27JAN2020/SeriesCompensator.hpp index 8d77b514a..861e5a359 100644 --- a/CGMES_2.4.15_27JAN2020/SeriesCompensator.hpp +++ b/CGMES_2.4.15_27JAN2020/SeriesCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" #include "Reactance.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SeriesCompensator_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SetPoint.cpp b/CGMES_2.4.15_27JAN2020/SetPoint.cpp index 5282827e5..bf0e4e778 100644 --- a/CGMES_2.4.15_27JAN2020/SetPoint.cpp +++ b/CGMES_2.4.15_27JAN2020/SetPoint.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SetPoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SetPoint.normalValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SetPoint.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SetPoint::SetPoint() {} SetPoint::~SetPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& SetPoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SetPoint::getClassNamespaceUrl() const { - { "cim:SetPoint.normalValue", { CGMESProfile::EQ, } }, - { "cim:SetPoint.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SetPoint::getPossibleProfilesForClass() const +const std::string& SetPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SetPoint::getPossibleProfilesForAttributes() const +const std::list& SetPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AnalogControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SetPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SetPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SetPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SetPoint_normalValue(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* SetPoint::debugString() const void SetPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SetPoint", &SetPoint_factory); + factory_map.emplace("SetPoint", &SetPoint_factory); } void SetPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SetPoint.normalValue", &assign_SetPoint_normalValue); - assign_map.emplace("cim:SetPoint.value", &assign_SetPoint_value); + assign_map.emplace("SetPoint.normalValue", &assign_SetPoint_normalValue); + assign_map.emplace("SetPoint.value", &assign_SetPoint_value); } void SetPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void SetPoint::addClassAssignFnsToMap(std::unordered_map& get_map) const { AnalogControl::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SetPoint.normalValue", &get_SetPoint_normalValue); - get_map.emplace("cim:SetPoint.value", &get_SetPoint_value); + get_map.emplace("SetPoint.normalValue", &get_SetPoint_normalValue); + get_map.emplace("SetPoint.value", &get_SetPoint_value); } void SetPoint::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void SetPoint::addEnumGetFnsToMap(std::map& get_map) AnalogControl::addEnumGetFnsToMap(get_map); } +bool SetPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SetPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SetPoint::declare() { return BaseClassDefiner(SetPoint::addConstructToMap, SetPoint::addPrimitiveAssignFnsToMap, SetPoint::addClassAssignFnsToMap, SetPoint::debugName); } +std::map SetPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AnalogControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SetPoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/SetPoint.hpp b/CGMES_2.4.15_27JAN2020/SetPoint.hpp index 373731845..30b3a12a0 100644 --- a/CGMES_2.4.15_27JAN2020/SetPoint.hpp +++ b/CGMES_2.4.15_27JAN2020/SetPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AnalogControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SetPoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ShuntCompensator.cpp b/CGMES_2.4.15_27JAN2020/ShuntCompensator.cpp index 53878ebfa..57cca14f2 100644 --- a/CGMES_2.4.15_27JAN2020/ShuntCompensator.cpp +++ b/CGMES_2.4.15_27JAN2020/ShuntCompensator.cpp @@ -12,43 +12,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ShuntCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ShuntCompensator.SvShuntCompensatorSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "ShuntCompensator.aVRDelay", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.grounded", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.maximumSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.nomU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.normalSections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.sections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "ShuntCompensator.switchOnCount", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.switchOnDate", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.voltageSensitivity", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ShuntCompensator::ShuntCompensator() : SvShuntCompensatorSections(nullptr) {} ShuntCompensator::~ShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& ShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ShuntCompensator::getClassNamespaceUrl() const { - { "cim:ShuntCompensator.SvShuntCompensatorSections", { CGMESProfile::SV, } }, - { "cim:ShuntCompensator.aVRDelay", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.grounded", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.maximumSections", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.nomU", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.normalSections", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.sections", { CGMESProfile::SSH, } }, - { "cim:ShuntCompensator.switchOnCount", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.switchOnDate", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.voltageSensitivity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ShuntCompensator::getPossibleProfilesForClass() const +const std::string& ShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& ShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvShuntCompensatorSections_ShuntCompensator(BaseClass*, BaseClass*); @@ -338,39 +370,39 @@ const char* ShuntCompensator::debugString() const void ShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ShuntCompensator", &ShuntCompensator_factory); + factory_map.emplace("ShuntCompensator", &ShuntCompensator_factory); } void ShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ShuntCompensator.aVRDelay", &assign_ShuntCompensator_aVRDelay); - assign_map.emplace("cim:ShuntCompensator.grounded", &assign_ShuntCompensator_grounded); - assign_map.emplace("cim:ShuntCompensator.maximumSections", &assign_ShuntCompensator_maximumSections); - assign_map.emplace("cim:ShuntCompensator.nomU", &assign_ShuntCompensator_nomU); - assign_map.emplace("cim:ShuntCompensator.normalSections", &assign_ShuntCompensator_normalSections); - assign_map.emplace("cim:ShuntCompensator.sections", &assign_ShuntCompensator_sections); - assign_map.emplace("cim:ShuntCompensator.switchOnCount", &assign_ShuntCompensator_switchOnCount); - assign_map.emplace("cim:ShuntCompensator.switchOnDate", &assign_ShuntCompensator_switchOnDate); - assign_map.emplace("cim:ShuntCompensator.voltageSensitivity", &assign_ShuntCompensator_voltageSensitivity); + assign_map.emplace("ShuntCompensator.aVRDelay", &assign_ShuntCompensator_aVRDelay); + assign_map.emplace("ShuntCompensator.grounded", &assign_ShuntCompensator_grounded); + assign_map.emplace("ShuntCompensator.maximumSections", &assign_ShuntCompensator_maximumSections); + assign_map.emplace("ShuntCompensator.nomU", &assign_ShuntCompensator_nomU); + assign_map.emplace("ShuntCompensator.normalSections", &assign_ShuntCompensator_normalSections); + assign_map.emplace("ShuntCompensator.sections", &assign_ShuntCompensator_sections); + assign_map.emplace("ShuntCompensator.switchOnCount", &assign_ShuntCompensator_switchOnCount); + assign_map.emplace("ShuntCompensator.switchOnDate", &assign_ShuntCompensator_switchOnDate); + assign_map.emplace("ShuntCompensator.voltageSensitivity", &assign_ShuntCompensator_voltageSensitivity); } void ShuntCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ShuntCompensator.SvShuntCompensatorSections", &assign_ShuntCompensator_SvShuntCompensatorSections); + assign_map.emplace("ShuntCompensator.SvShuntCompensatorSections", &assign_ShuntCompensator_SvShuntCompensatorSections); } void ShuntCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ShuntCompensator.aVRDelay", &get_ShuntCompensator_aVRDelay); - get_map.emplace("cim:ShuntCompensator.grounded", &get_ShuntCompensator_grounded); - get_map.emplace("cim:ShuntCompensator.maximumSections", &get_ShuntCompensator_maximumSections); - get_map.emplace("cim:ShuntCompensator.nomU", &get_ShuntCompensator_nomU); - get_map.emplace("cim:ShuntCompensator.normalSections", &get_ShuntCompensator_normalSections); - get_map.emplace("cim:ShuntCompensator.sections", &get_ShuntCompensator_sections); - get_map.emplace("cim:ShuntCompensator.switchOnCount", &get_ShuntCompensator_switchOnCount); - get_map.emplace("cim:ShuntCompensator.switchOnDate", &get_ShuntCompensator_switchOnDate); - get_map.emplace("cim:ShuntCompensator.voltageSensitivity", &get_ShuntCompensator_voltageSensitivity); + get_map.emplace("ShuntCompensator.aVRDelay", &get_ShuntCompensator_aVRDelay); + get_map.emplace("ShuntCompensator.grounded", &get_ShuntCompensator_grounded); + get_map.emplace("ShuntCompensator.maximumSections", &get_ShuntCompensator_maximumSections); + get_map.emplace("ShuntCompensator.nomU", &get_ShuntCompensator_nomU); + get_map.emplace("ShuntCompensator.normalSections", &get_ShuntCompensator_normalSections); + get_map.emplace("ShuntCompensator.sections", &get_ShuntCompensator_sections); + get_map.emplace("ShuntCompensator.switchOnCount", &get_ShuntCompensator_switchOnCount); + get_map.emplace("ShuntCompensator.switchOnDate", &get_ShuntCompensator_switchOnDate); + get_map.emplace("ShuntCompensator.voltageSensitivity", &get_ShuntCompensator_voltageSensitivity); } void ShuntCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -383,11 +415,25 @@ void ShuntCompensator::addEnumGetFnsToMap(std::map& g RegulatingCondEq::addEnumGetFnsToMap(get_map); } +bool ShuntCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ShuntCompensator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ShuntCompensator::declare() { return BaseClassDefiner(ShuntCompensator::addConstructToMap, ShuntCompensator::addPrimitiveAssignFnsToMap, ShuntCompensator::addClassAssignFnsToMap, ShuntCompensator::debugName); } +std::map ShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ShuntCompensator_factory() diff --git a/CGMES_2.4.15_27JAN2020/ShuntCompensator.hpp b/CGMES_2.4.15_27JAN2020/ShuntCompensator.hpp index 96927b2f6..80400623c 100644 --- a/CGMES_2.4.15_27JAN2020/ShuntCompensator.hpp +++ b/CGMES_2.4.15_27JAN2020/ShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "DateTime.hpp" #include "Integer.hpp" @@ -65,8 +66,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -74,7 +82,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ShuntCompensator_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SolarGeneratingUnit.cpp b/CGMES_2.4.15_27JAN2020/SolarGeneratingUnit.cpp index 0887d1cbb..4a1e14b5f 100644 --- a/CGMES_2.4.15_27JAN2020/SolarGeneratingUnit.cpp +++ b/CGMES_2.4.15_27JAN2020/SolarGeneratingUnit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SolarGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + SolarGeneratingUnit::SolarGeneratingUnit() {} SolarGeneratingUnit::~SolarGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& SolarGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SolarGeneratingUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SolarGeneratingUnit::getPossibleProfilesForClass() const +const std::string& SolarGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SolarGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& SolarGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SolarGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SolarGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SolarGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char SolarGeneratingUnit::debugName[] = "SolarGeneratingUnit"; @@ -47,7 +79,7 @@ const char* SolarGeneratingUnit::debugString() const void SolarGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SolarGeneratingUnit", &SolarGeneratingUnit_factory); + factory_map.emplace("SolarGeneratingUnit", &SolarGeneratingUnit_factory); } void SolarGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void SolarGeneratingUnit::addEnumGetFnsToMap(std::map GeneratingUnit::addEnumGetFnsToMap(get_map); } +bool SolarGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SolarGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SolarGeneratingUnit::declare() { return BaseClassDefiner(SolarGeneratingUnit::addConstructToMap, SolarGeneratingUnit::addPrimitiveAssignFnsToMap, SolarGeneratingUnit::addClassAssignFnsToMap, SolarGeneratingUnit::debugName); } +std::map SolarGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SolarGeneratingUnit_factory() diff --git a/CGMES_2.4.15_27JAN2020/SolarGeneratingUnit.hpp b/CGMES_2.4.15_27JAN2020/SolarGeneratingUnit.hpp index 30f338f85..3fb135e04 100644 --- a/CGMES_2.4.15_27JAN2020/SolarGeneratingUnit.hpp +++ b/CGMES_2.4.15_27JAN2020/SolarGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SolarGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/StateVariablesVersion.cpp b/CGMES_2.4.15_27JAN2020/StateVariablesVersion.cpp index f123f86d6..cf235f5a6 100644 --- a/CGMES_2.4.15_27JAN2020/StateVariablesVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/StateVariablesVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StateVariablesVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StateVariablesVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + { "StateVariablesVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + StateVariablesVersion::StateVariablesVersion() {} StateVariablesVersion::~StateVariablesVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& StateVariablesVersion::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StateVariablesVersion::getClassNamespaceUrl() const { - { "cim:StateVariablesVersion.baseUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.baseURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.date", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.differenceModelURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.entsoeUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.entsoeURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.modelDescriptionURI", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.namespaceRDF", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.namespaceUML", { CGMESProfile::SV, } }, - { "cim:StateVariablesVersion.shortName", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StateVariablesVersion::getPossibleProfilesForClass() const +const std::string& StateVariablesVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StateVariablesVersion::getPossibleProfilesForAttributes() const +const std::list& StateVariablesVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StateVariablesVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StateVariablesVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StateVariablesVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StateVariablesVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* StateVariablesVersion::debugString() const void StateVariablesVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StateVariablesVersion", &StateVariablesVersion_factory); + factory_map.emplace("StateVariablesVersion", &StateVariablesVersion_factory); } void StateVariablesVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StateVariablesVersion.baseUML", &assign_StateVariablesVersion_baseUML); - assign_map.emplace("cim:StateVariablesVersion.baseURI", &assign_StateVariablesVersion_baseURI); - assign_map.emplace("cim:StateVariablesVersion.date", &assign_StateVariablesVersion_date); - assign_map.emplace("cim:StateVariablesVersion.differenceModelURI", &assign_StateVariablesVersion_differenceModelURI); - assign_map.emplace("cim:StateVariablesVersion.entsoeUML", &assign_StateVariablesVersion_entsoeUML); - assign_map.emplace("cim:StateVariablesVersion.entsoeURI", &assign_StateVariablesVersion_entsoeURI); - assign_map.emplace("cim:StateVariablesVersion.modelDescriptionURI", &assign_StateVariablesVersion_modelDescriptionURI); - assign_map.emplace("cim:StateVariablesVersion.namespaceRDF", &assign_StateVariablesVersion_namespaceRDF); - assign_map.emplace("cim:StateVariablesVersion.namespaceUML", &assign_StateVariablesVersion_namespaceUML); - assign_map.emplace("cim:StateVariablesVersion.shortName", &assign_StateVariablesVersion_shortName); + assign_map.emplace("StateVariablesVersion.baseUML", &assign_StateVariablesVersion_baseUML); + assign_map.emplace("StateVariablesVersion.baseURI", &assign_StateVariablesVersion_baseURI); + assign_map.emplace("StateVariablesVersion.date", &assign_StateVariablesVersion_date); + assign_map.emplace("StateVariablesVersion.differenceModelURI", &assign_StateVariablesVersion_differenceModelURI); + assign_map.emplace("StateVariablesVersion.entsoeUML", &assign_StateVariablesVersion_entsoeUML); + assign_map.emplace("StateVariablesVersion.entsoeURI", &assign_StateVariablesVersion_entsoeURI); + assign_map.emplace("StateVariablesVersion.modelDescriptionURI", &assign_StateVariablesVersion_modelDescriptionURI); + assign_map.emplace("StateVariablesVersion.namespaceRDF", &assign_StateVariablesVersion_namespaceRDF); + assign_map.emplace("StateVariablesVersion.namespaceUML", &assign_StateVariablesVersion_namespaceUML); + assign_map.emplace("StateVariablesVersion.shortName", &assign_StateVariablesVersion_shortName); } void StateVariablesVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void StateVariablesVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StateVariablesVersion.baseUML", &get_StateVariablesVersion_baseUML); - get_map.emplace("cim:StateVariablesVersion.baseURI", &get_StateVariablesVersion_baseURI); - get_map.emplace("cim:StateVariablesVersion.date", &get_StateVariablesVersion_date); - get_map.emplace("cim:StateVariablesVersion.differenceModelURI", &get_StateVariablesVersion_differenceModelURI); - get_map.emplace("cim:StateVariablesVersion.entsoeUML", &get_StateVariablesVersion_entsoeUML); - get_map.emplace("cim:StateVariablesVersion.entsoeURI", &get_StateVariablesVersion_entsoeURI); - get_map.emplace("cim:StateVariablesVersion.modelDescriptionURI", &get_StateVariablesVersion_modelDescriptionURI); - get_map.emplace("cim:StateVariablesVersion.namespaceRDF", &get_StateVariablesVersion_namespaceRDF); - get_map.emplace("cim:StateVariablesVersion.namespaceUML", &get_StateVariablesVersion_namespaceUML); - get_map.emplace("cim:StateVariablesVersion.shortName", &get_StateVariablesVersion_shortName); + get_map.emplace("StateVariablesVersion.baseUML", &get_StateVariablesVersion_baseUML); + get_map.emplace("StateVariablesVersion.baseURI", &get_StateVariablesVersion_baseURI); + get_map.emplace("StateVariablesVersion.date", &get_StateVariablesVersion_date); + get_map.emplace("StateVariablesVersion.differenceModelURI", &get_StateVariablesVersion_differenceModelURI); + get_map.emplace("StateVariablesVersion.entsoeUML", &get_StateVariablesVersion_entsoeUML); + get_map.emplace("StateVariablesVersion.entsoeURI", &get_StateVariablesVersion_entsoeURI); + get_map.emplace("StateVariablesVersion.modelDescriptionURI", &get_StateVariablesVersion_modelDescriptionURI); + get_map.emplace("StateVariablesVersion.namespaceRDF", &get_StateVariablesVersion_namespaceRDF); + get_map.emplace("StateVariablesVersion.namespaceUML", &get_StateVariablesVersion_namespaceUML); + get_map.emplace("StateVariablesVersion.shortName", &get_StateVariablesVersion_shortName); } void StateVariablesVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void StateVariablesVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner StateVariablesVersion::declare() { return BaseClassDefiner(StateVariablesVersion::addConstructToMap, StateVariablesVersion::addPrimitiveAssignFnsToMap, StateVariablesVersion::addClassAssignFnsToMap, StateVariablesVersion::debugName); } +std::map StateVariablesVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StateVariablesVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/StateVariablesVersion.hpp b/CGMES_2.4.15_27JAN2020/StateVariablesVersion.hpp index d6263d5d7..b665e46c1 100644 --- a/CGMES_2.4.15_27JAN2020/StateVariablesVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/StateVariablesVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StateVariablesVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/StaticVarCompensator.cpp b/CGMES_2.4.15_27JAN2020/StaticVarCompensator.cpp index ae413174a..7061f39e2 100644 --- a/CGMES_2.4.15_27JAN2020/StaticVarCompensator.cpp +++ b/CGMES_2.4.15_27JAN2020/StaticVarCompensator.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StaticVarCompensator(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StaticVarCompensator.capacitiveRating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.inductiveRating", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "StaticVarCompensator.sVCControlMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.slope", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.voltageSetPoint", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StaticVarCompensator::StaticVarCompensator() {} StaticVarCompensator::~StaticVarCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& StaticVarCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StaticVarCompensator::getClassNamespaceUrl() const { - { "cim:StaticVarCompensator.capacitiveRating", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.inductiveRating", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.q", { CGMESProfile::SSH, } }, - { "cim:StaticVarCompensator.sVCControlMode", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.slope", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.voltageSetPoint", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StaticVarCompensator::getPossibleProfilesForClass() const +const std::string& StaticVarCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StaticVarCompensator::getPossibleProfilesForAttributes() const +const std::list& StaticVarCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StaticVarCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StaticVarCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StaticVarCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StaticVarCompensator_capacitiveRating(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -227,17 +259,17 @@ const char* StaticVarCompensator::debugString() const void StaticVarCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StaticVarCompensator", &StaticVarCompensator_factory); + factory_map.emplace("StaticVarCompensator", &StaticVarCompensator_factory); } void StaticVarCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StaticVarCompensator.capacitiveRating", &assign_StaticVarCompensator_capacitiveRating); - assign_map.emplace("cim:StaticVarCompensator.inductiveRating", &assign_StaticVarCompensator_inductiveRating); - assign_map.emplace("cim:StaticVarCompensator.q", &assign_StaticVarCompensator_q); - assign_map.emplace("cim:StaticVarCompensator.sVCControlMode", &assign_StaticVarCompensator_sVCControlMode); - assign_map.emplace("cim:StaticVarCompensator.slope", &assign_StaticVarCompensator_slope); - assign_map.emplace("cim:StaticVarCompensator.voltageSetPoint", &assign_StaticVarCompensator_voltageSetPoint); + assign_map.emplace("StaticVarCompensator.capacitiveRating", &assign_StaticVarCompensator_capacitiveRating); + assign_map.emplace("StaticVarCompensator.inductiveRating", &assign_StaticVarCompensator_inductiveRating); + assign_map.emplace("StaticVarCompensator.q", &assign_StaticVarCompensator_q); + assign_map.emplace("StaticVarCompensator.sVCControlMode", &assign_StaticVarCompensator_sVCControlMode); + assign_map.emplace("StaticVarCompensator.slope", &assign_StaticVarCompensator_slope); + assign_map.emplace("StaticVarCompensator.voltageSetPoint", &assign_StaticVarCompensator_voltageSetPoint); } void StaticVarCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -247,11 +279,11 @@ void StaticVarCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensator.capacitiveRating", &get_StaticVarCompensator_capacitiveRating); - get_map.emplace("cim:StaticVarCompensator.inductiveRating", &get_StaticVarCompensator_inductiveRating); - get_map.emplace("cim:StaticVarCompensator.q", &get_StaticVarCompensator_q); - get_map.emplace("cim:StaticVarCompensator.slope", &get_StaticVarCompensator_slope); - get_map.emplace("cim:StaticVarCompensator.voltageSetPoint", &get_StaticVarCompensator_voltageSetPoint); + get_map.emplace("StaticVarCompensator.capacitiveRating", &get_StaticVarCompensator_capacitiveRating); + get_map.emplace("StaticVarCompensator.inductiveRating", &get_StaticVarCompensator_inductiveRating); + get_map.emplace("StaticVarCompensator.q", &get_StaticVarCompensator_q); + get_map.emplace("StaticVarCompensator.slope", &get_StaticVarCompensator_slope); + get_map.emplace("StaticVarCompensator.voltageSetPoint", &get_StaticVarCompensator_voltageSetPoint); } void StaticVarCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -262,7 +294,13 @@ void StaticVarCompensator::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensator.sVCControlMode", &get_StaticVarCompensator_sVCControlMode); + get_map.emplace("StaticVarCompensator.sVCControlMode", &get_StaticVarCompensator_sVCControlMode); +} + +bool StaticVarCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StaticVarCompensator" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner StaticVarCompensator::declare() @@ -270,6 +308,14 @@ const BaseClassDefiner StaticVarCompensator::declare() return BaseClassDefiner(StaticVarCompensator::addConstructToMap, StaticVarCompensator::addPrimitiveAssignFnsToMap, StaticVarCompensator::addClassAssignFnsToMap, StaticVarCompensator::debugName); } +std::map StaticVarCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StaticVarCompensator_factory() diff --git a/CGMES_2.4.15_27JAN2020/StaticVarCompensator.hpp b/CGMES_2.4.15_27JAN2020/StaticVarCompensator.hpp index b6770d818..5be986cb6 100644 --- a/CGMES_2.4.15_27JAN2020/StaticVarCompensator.hpp +++ b/CGMES_2.4.15_27JAN2020/StaticVarCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" #include "ReactivePower.hpp" #include "SVCControlMode.hpp" @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StaticVarCompensator_factory(); diff --git a/CGMES_2.4.15_27JAN2020/StationSupply.cpp b/CGMES_2.4.15_27JAN2020/StationSupply.cpp index 71ca77084..8848c92ab 100644 --- a/CGMES_2.4.15_27JAN2020/StationSupply.cpp +++ b/CGMES_2.4.15_27JAN2020/StationSupply.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StationSupply(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + StationSupply::StationSupply() {} StationSupply::~StationSupply() {} -static const std::list PossibleProfilesForClass = +const std::list& StationSupply::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StationSupply::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StationSupply::getPossibleProfilesForClass() const +const std::string& StationSupply::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StationSupply::getPossibleProfilesForAttributes() const +const std::list& StationSupply::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StationSupply::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StationSupply::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StationSupply::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char StationSupply::debugName[] = "StationSupply"; @@ -47,7 +79,7 @@ const char* StationSupply::debugString() const void StationSupply::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StationSupply", &StationSupply_factory); + factory_map.emplace("StationSupply", &StationSupply_factory); } void StationSupply::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void StationSupply::addEnumGetFnsToMap(std::map& get_ EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool StationSupply::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StationSupply" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StationSupply::declare() { return BaseClassDefiner(StationSupply::addConstructToMap, StationSupply::addPrimitiveAssignFnsToMap, StationSupply::addClassAssignFnsToMap, StationSupply::debugName); } +std::map StationSupply::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StationSupply_factory() diff --git a/CGMES_2.4.15_27JAN2020/StationSupply.hpp b/CGMES_2.4.15_27JAN2020/StationSupply.hpp index f95e7ce94..7c688152c 100644 --- a/CGMES_2.4.15_27JAN2020/StationSupply.hpp +++ b/CGMES_2.4.15_27JAN2020/StationSupply.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StationSupply_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SteadyStateHypothesisVersion.cpp b/CGMES_2.4.15_27JAN2020/SteadyStateHypothesisVersion.cpp index 3a521cfe8..cd79b7af1 100644 --- a/CGMES_2.4.15_27JAN2020/SteadyStateHypothesisVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/SteadyStateHypothesisVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SteadyStateHypothesisVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::SSH, + }, + CGMESProfile::SSH + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SteadyStateHypothesisVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + { "SteadyStateHypothesisVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + SteadyStateHypothesisVersion::SteadyStateHypothesisVersion() {} SteadyStateHypothesisVersion::~SteadyStateHypothesisVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& SteadyStateHypothesisVersion::getAttributeNames() const { - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SteadyStateHypothesisVersion::getClassNamespaceUrl() const { - { "cim:SteadyStateHypothesisVersion.baseUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.baseURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.date", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.differenceModelURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.entsoeUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.entsoeURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.modelDescriptionURI", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.namespaceRDF", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.namespaceUML", { CGMESProfile::SSH, } }, - { "cim:SteadyStateHypothesisVersion.shortName", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SteadyStateHypothesisVersion::getPossibleProfilesForClass() const +const std::string& SteadyStateHypothesisVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SteadyStateHypothesisVersion::getPossibleProfilesForAttributes() const +const std::list& SteadyStateHypothesisVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SteadyStateHypothesisVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SteadyStateHypothesisVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SteadyStateHypothesisVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SteadyStateHypothesisVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* SteadyStateHypothesisVersion::debugString() const void SteadyStateHypothesisVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SteadyStateHypothesisVersion", &SteadyStateHypothesisVersion_factory); + factory_map.emplace("SteadyStateHypothesisVersion", &SteadyStateHypothesisVersion_factory); } void SteadyStateHypothesisVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SteadyStateHypothesisVersion.baseUML", &assign_SteadyStateHypothesisVersion_baseUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.baseURI", &assign_SteadyStateHypothesisVersion_baseURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.date", &assign_SteadyStateHypothesisVersion_date); - assign_map.emplace("cim:SteadyStateHypothesisVersion.differenceModelURI", &assign_SteadyStateHypothesisVersion_differenceModelURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.entsoeUML", &assign_SteadyStateHypothesisVersion_entsoeUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.entsoeURI", &assign_SteadyStateHypothesisVersion_entsoeURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.modelDescriptionURI", &assign_SteadyStateHypothesisVersion_modelDescriptionURI); - assign_map.emplace("cim:SteadyStateHypothesisVersion.namespaceRDF", &assign_SteadyStateHypothesisVersion_namespaceRDF); - assign_map.emplace("cim:SteadyStateHypothesisVersion.namespaceUML", &assign_SteadyStateHypothesisVersion_namespaceUML); - assign_map.emplace("cim:SteadyStateHypothesisVersion.shortName", &assign_SteadyStateHypothesisVersion_shortName); + assign_map.emplace("SteadyStateHypothesisVersion.baseUML", &assign_SteadyStateHypothesisVersion_baseUML); + assign_map.emplace("SteadyStateHypothesisVersion.baseURI", &assign_SteadyStateHypothesisVersion_baseURI); + assign_map.emplace("SteadyStateHypothesisVersion.date", &assign_SteadyStateHypothesisVersion_date); + assign_map.emplace("SteadyStateHypothesisVersion.differenceModelURI", &assign_SteadyStateHypothesisVersion_differenceModelURI); + assign_map.emplace("SteadyStateHypothesisVersion.entsoeUML", &assign_SteadyStateHypothesisVersion_entsoeUML); + assign_map.emplace("SteadyStateHypothesisVersion.entsoeURI", &assign_SteadyStateHypothesisVersion_entsoeURI); + assign_map.emplace("SteadyStateHypothesisVersion.modelDescriptionURI", &assign_SteadyStateHypothesisVersion_modelDescriptionURI); + assign_map.emplace("SteadyStateHypothesisVersion.namespaceRDF", &assign_SteadyStateHypothesisVersion_namespaceRDF); + assign_map.emplace("SteadyStateHypothesisVersion.namespaceUML", &assign_SteadyStateHypothesisVersion_namespaceUML); + assign_map.emplace("SteadyStateHypothesisVersion.shortName", &assign_SteadyStateHypothesisVersion_shortName); } void SteadyStateHypothesisVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void SteadyStateHypothesisVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SteadyStateHypothesisVersion.baseUML", &get_SteadyStateHypothesisVersion_baseUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.baseURI", &get_SteadyStateHypothesisVersion_baseURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.date", &get_SteadyStateHypothesisVersion_date); - get_map.emplace("cim:SteadyStateHypothesisVersion.differenceModelURI", &get_SteadyStateHypothesisVersion_differenceModelURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.entsoeUML", &get_SteadyStateHypothesisVersion_entsoeUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.entsoeURI", &get_SteadyStateHypothesisVersion_entsoeURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.modelDescriptionURI", &get_SteadyStateHypothesisVersion_modelDescriptionURI); - get_map.emplace("cim:SteadyStateHypothesisVersion.namespaceRDF", &get_SteadyStateHypothesisVersion_namespaceRDF); - get_map.emplace("cim:SteadyStateHypothesisVersion.namespaceUML", &get_SteadyStateHypothesisVersion_namespaceUML); - get_map.emplace("cim:SteadyStateHypothesisVersion.shortName", &get_SteadyStateHypothesisVersion_shortName); + get_map.emplace("SteadyStateHypothesisVersion.baseUML", &get_SteadyStateHypothesisVersion_baseUML); + get_map.emplace("SteadyStateHypothesisVersion.baseURI", &get_SteadyStateHypothesisVersion_baseURI); + get_map.emplace("SteadyStateHypothesisVersion.date", &get_SteadyStateHypothesisVersion_date); + get_map.emplace("SteadyStateHypothesisVersion.differenceModelURI", &get_SteadyStateHypothesisVersion_differenceModelURI); + get_map.emplace("SteadyStateHypothesisVersion.entsoeUML", &get_SteadyStateHypothesisVersion_entsoeUML); + get_map.emplace("SteadyStateHypothesisVersion.entsoeURI", &get_SteadyStateHypothesisVersion_entsoeURI); + get_map.emplace("SteadyStateHypothesisVersion.modelDescriptionURI", &get_SteadyStateHypothesisVersion_modelDescriptionURI); + get_map.emplace("SteadyStateHypothesisVersion.namespaceRDF", &get_SteadyStateHypothesisVersion_namespaceRDF); + get_map.emplace("SteadyStateHypothesisVersion.namespaceUML", &get_SteadyStateHypothesisVersion_namespaceUML); + get_map.emplace("SteadyStateHypothesisVersion.shortName", &get_SteadyStateHypothesisVersion_shortName); } void SteadyStateHypothesisVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void SteadyStateHypothesisVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SteadyStateHypothesisVersion::declare() { return BaseClassDefiner(SteadyStateHypothesisVersion::addConstructToMap, SteadyStateHypothesisVersion::addPrimitiveAssignFnsToMap, SteadyStateHypothesisVersion::addClassAssignFnsToMap, SteadyStateHypothesisVersion::debugName); } +std::map SteadyStateHypothesisVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SteadyStateHypothesisVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/SteadyStateHypothesisVersion.hpp b/CGMES_2.4.15_27JAN2020/SteadyStateHypothesisVersion.hpp index a856a19e7..3ec922a1b 100644 --- a/CGMES_2.4.15_27JAN2020/SteadyStateHypothesisVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/SteadyStateHypothesisVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SteadyStateHypothesisVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/StringMeasurement.cpp b/CGMES_2.4.15_27JAN2020/StringMeasurement.cpp index ca7025e57..7af90f7c4 100644 --- a/CGMES_2.4.15_27JAN2020/StringMeasurement.cpp +++ b/CGMES_2.4.15_27JAN2020/StringMeasurement.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StringMeasurement(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StringMeasurement.StringMeasurementValues", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StringMeasurement::StringMeasurement() {} StringMeasurement::~StringMeasurement() {} -static const std::list PossibleProfilesForClass = +const std::list& StringMeasurement::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StringMeasurement::getClassNamespaceUrl() const { - { "cim:StringMeasurement.StringMeasurementValues", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StringMeasurement::getPossibleProfilesForClass() const +const std::string& StringMeasurement::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StringMeasurement::getPossibleProfilesForAttributes() const +const std::list& StringMeasurement::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StringMeasurement::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StringMeasurement::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StringMeasurement::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StringMeasurementValue_StringMeasurement(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* StringMeasurement::debugString() const void StringMeasurement::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StringMeasurement", &StringMeasurement_factory); + factory_map.emplace("StringMeasurement", &StringMeasurement_factory); } void StringMeasurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void StringMeasurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurement.StringMeasurementValues", &assign_StringMeasurement_StringMeasurementValues); + assign_map.emplace("StringMeasurement.StringMeasurementValues", &assign_StringMeasurement_StringMeasurementValues); } void StringMeasurement::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void StringMeasurement::addEnumGetFnsToMap(std::map& Measurement::addEnumGetFnsToMap(get_map); } +bool StringMeasurement::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StringMeasurement" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StringMeasurement::declare() { return BaseClassDefiner(StringMeasurement::addConstructToMap, StringMeasurement::addPrimitiveAssignFnsToMap, StringMeasurement::addClassAssignFnsToMap, StringMeasurement::debugName); } +std::map StringMeasurement::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StringMeasurement_factory() diff --git a/CGMES_2.4.15_27JAN2020/StringMeasurement.hpp b/CGMES_2.4.15_27JAN2020/StringMeasurement.hpp index 21841ff08..baf309b1a 100644 --- a/CGMES_2.4.15_27JAN2020/StringMeasurement.hpp +++ b/CGMES_2.4.15_27JAN2020/StringMeasurement.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StringMeasurement_factory(); diff --git a/CGMES_2.4.15_27JAN2020/StringMeasurementValue.cpp b/CGMES_2.4.15_27JAN2020/StringMeasurementValue.cpp index 217c82c6c..6cd70b363 100644 --- a/CGMES_2.4.15_27JAN2020/StringMeasurementValue.cpp +++ b/CGMES_2.4.15_27JAN2020/StringMeasurementValue.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StringMeasurementValue(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StringMeasurementValue.StringMeasurement", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "StringMeasurementValue.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StringMeasurementValue::StringMeasurementValue() : StringMeasurement(nullptr) {} StringMeasurementValue::~StringMeasurementValue() {} -static const std::list PossibleProfilesForClass = +const std::list& StringMeasurementValue::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StringMeasurementValue::getClassNamespaceUrl() const { - { "cim:StringMeasurementValue.StringMeasurement", { CGMESProfile::EQ, } }, - { "cim:StringMeasurementValue.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StringMeasurementValue::getPossibleProfilesForClass() const +const std::string& StringMeasurementValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StringMeasurementValue::getPossibleProfilesForAttributes() const +const std::list& StringMeasurementValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StringMeasurementValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StringMeasurementValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StringMeasurementValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StringMeasurement_StringMeasurementValues(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* StringMeasurementValue::debugString() const void StringMeasurementValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StringMeasurementValue", &StringMeasurementValue_factory); + factory_map.emplace("StringMeasurementValue", &StringMeasurementValue_factory); } void StringMeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurementValue.value", &assign_StringMeasurementValue_value); + assign_map.emplace("StringMeasurementValue.value", &assign_StringMeasurementValue_value); } void StringMeasurementValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurementValue.StringMeasurement", &assign_StringMeasurementValue_StringMeasurement); + assign_map.emplace("StringMeasurementValue.StringMeasurement", &assign_StringMeasurementValue_StringMeasurement); } void StringMeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StringMeasurementValue.value", &get_StringMeasurementValue_value); + get_map.emplace("StringMeasurementValue.value", &get_StringMeasurementValue_value); } void StringMeasurementValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:StringMeasurementValue.StringMeasurement", &get_StringMeasurementValue_StringMeasurement); + get_map.emplace("StringMeasurementValue.StringMeasurement", &get_StringMeasurementValue_StringMeasurement); } void StringMeasurementValue::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void StringMeasurementValue::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner StringMeasurementValue::declare() { return BaseClassDefiner(StringMeasurementValue::addConstructToMap, StringMeasurementValue::addPrimitiveAssignFnsToMap, StringMeasurementValue::addClassAssignFnsToMap, StringMeasurementValue::debugName); } +std::map StringMeasurementValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StringMeasurementValue_factory() diff --git a/CGMES_2.4.15_27JAN2020/StringMeasurementValue.hpp b/CGMES_2.4.15_27JAN2020/StringMeasurementValue.hpp index 1207671b5..ba0cd81e3 100644 --- a/CGMES_2.4.15_27JAN2020/StringMeasurementValue.hpp +++ b/CGMES_2.4.15_27JAN2020/StringMeasurementValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StringMeasurementValue_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SubGeographicalRegion.cpp b/CGMES_2.4.15_27JAN2020/SubGeographicalRegion.cpp index 2bc1a8c1b..0e6392751 100644 --- a/CGMES_2.4.15_27JAN2020/SubGeographicalRegion.cpp +++ b/CGMES_2.4.15_27JAN2020/SubGeographicalRegion.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SubGeographicalRegion(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SubGeographicalRegion.DCLines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Lines", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Substations", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SubGeographicalRegion::SubGeographicalRegion() : Region(nullptr) {} SubGeographicalRegion::~SubGeographicalRegion() {} -static const std::list PossibleProfilesForClass = +const std::list& SubGeographicalRegion::getAttributeNames() const { - CGMESProfile::EQ_BD, - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SubGeographicalRegion::getClassNamespaceUrl() const { - { "cim:SubGeographicalRegion.DCLines", { CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Lines", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Region", { CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Substations", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SubGeographicalRegion::getPossibleProfilesForClass() const +const std::string& SubGeographicalRegion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SubGeographicalRegion::getPossibleProfilesForAttributes() const +const std::list& SubGeographicalRegion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SubGeographicalRegion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SubGeographicalRegion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SubGeographicalRegion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCLine_Region(BaseClass*, BaseClass*); @@ -140,7 +172,7 @@ const char* SubGeographicalRegion::debugString() const void SubGeographicalRegion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SubGeographicalRegion", &SubGeographicalRegion_factory); + factory_map.emplace("SubGeographicalRegion", &SubGeographicalRegion_factory); } void SubGeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -149,10 +181,10 @@ void SubGeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SubGeographicalRegion.DCLines", &assign_SubGeographicalRegion_DCLines); - assign_map.emplace("cim:SubGeographicalRegion.Lines", &assign_SubGeographicalRegion_Lines); - assign_map.emplace("cim:SubGeographicalRegion.Region", &assign_SubGeographicalRegion_Region); - assign_map.emplace("cim:SubGeographicalRegion.Substations", &assign_SubGeographicalRegion_Substations); + assign_map.emplace("SubGeographicalRegion.DCLines", &assign_SubGeographicalRegion_DCLines); + assign_map.emplace("SubGeographicalRegion.Lines", &assign_SubGeographicalRegion_Lines); + assign_map.emplace("SubGeographicalRegion.Region", &assign_SubGeographicalRegion_Region); + assign_map.emplace("SubGeographicalRegion.Substations", &assign_SubGeographicalRegion_Substations); } void SubGeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -163,7 +195,7 @@ void SubGeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SubGeographicalRegion.Region", &get_SubGeographicalRegion_Region); + get_map.emplace("SubGeographicalRegion.Region", &get_SubGeographicalRegion_Region); } void SubGeographicalRegion::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SubGeographicalRegion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SubGeographicalRegion::declare() { return BaseClassDefiner(SubGeographicalRegion::addConstructToMap, SubGeographicalRegion::addPrimitiveAssignFnsToMap, SubGeographicalRegion::addClassAssignFnsToMap, SubGeographicalRegion::debugName); } +std::map SubGeographicalRegion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SubGeographicalRegion_factory() diff --git a/CGMES_2.4.15_27JAN2020/SubGeographicalRegion.hpp b/CGMES_2.4.15_27JAN2020/SubGeographicalRegion.hpp index 27232b895..de32c9260 100644 --- a/CGMES_2.4.15_27JAN2020/SubGeographicalRegion.hpp +++ b/CGMES_2.4.15_27JAN2020/SubGeographicalRegion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SubGeographicalRegion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SubLoadArea.cpp b/CGMES_2.4.15_27JAN2020/SubLoadArea.cpp index b14f7db79..d1dc1d1a5 100644 --- a/CGMES_2.4.15_27JAN2020/SubLoadArea.cpp +++ b/CGMES_2.4.15_27JAN2020/SubLoadArea.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SubLoadArea(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SubLoadArea.LoadArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SubLoadArea.LoadGroups", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SubLoadArea::SubLoadArea() : LoadArea(nullptr) {} SubLoadArea::~SubLoadArea() {} -static const std::list PossibleProfilesForClass = +const std::list& SubLoadArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SubLoadArea::getClassNamespaceUrl() const { - { "cim:SubLoadArea.LoadArea", { CGMESProfile::EQ, } }, - { "cim:SubLoadArea.LoadGroups", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SubLoadArea::getPossibleProfilesForClass() const +const std::string& SubLoadArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SubLoadArea::getPossibleProfilesForAttributes() const +const std::list& SubLoadArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyArea::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SubLoadArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SubLoadArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SubLoadArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadArea_SubLoadAreas(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* SubLoadArea::debugString() const void SubLoadArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SubLoadArea", &SubLoadArea_factory); + factory_map.emplace("SubLoadArea", &SubLoadArea_factory); } void SubLoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void SubLoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SubLoadArea.LoadArea", &assign_SubLoadArea_LoadArea); - assign_map.emplace("cim:SubLoadArea.LoadGroups", &assign_SubLoadArea_LoadGroups); + assign_map.emplace("SubLoadArea.LoadArea", &assign_SubLoadArea_LoadArea); + assign_map.emplace("SubLoadArea.LoadGroups", &assign_SubLoadArea_LoadGroups); } void SubLoadArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void SubLoadArea::addPrimitiveGetFnsToMap(std::map& g void SubLoadArea::addClassGetFnsToMap(std::map& get_map) const { EnergyArea::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SubLoadArea.LoadArea", &get_SubLoadArea_LoadArea); + get_map.emplace("SubLoadArea.LoadArea", &get_SubLoadArea_LoadArea); } void SubLoadArea::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void SubLoadArea::addEnumGetFnsToMap(std::map& get_ma EnergyArea::addEnumGetFnsToMap(get_map); } +bool SubLoadArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SubLoadArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SubLoadArea::declare() { return BaseClassDefiner(SubLoadArea::addConstructToMap, SubLoadArea::addPrimitiveAssignFnsToMap, SubLoadArea::addClassAssignFnsToMap, SubLoadArea::debugName); } +std::map SubLoadArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyArea::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SubLoadArea_factory() diff --git a/CGMES_2.4.15_27JAN2020/SubLoadArea.hpp b/CGMES_2.4.15_27JAN2020/SubLoadArea.hpp index eb2947510..523b31541 100644 --- a/CGMES_2.4.15_27JAN2020/SubLoadArea.hpp +++ b/CGMES_2.4.15_27JAN2020/SubLoadArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyArea.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SubLoadArea_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Substation.cpp b/CGMES_2.4.15_27JAN2020/Substation.cpp index d0d5471ff..3ea60e191 100644 --- a/CGMES_2.4.15_27JAN2020/Substation.cpp +++ b/CGMES_2.4.15_27JAN2020/Substation.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Substation(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Substation.DCConverterUnit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Substation.Region", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Substation.VoltageLevels", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Substation::Substation() : Region(nullptr) {} Substation::~Substation() {} -static const std::list PossibleProfilesForClass = +const std::list& Substation::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Substation::getClassNamespaceUrl() const { - { "cim:Substation.DCConverterUnit", { CGMESProfile::EQ, } }, - { "cim:Substation.Region", { CGMESProfile::EQ, } }, - { "cim:Substation.VoltageLevels", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Substation::getPossibleProfilesForClass() const +const std::string& Substation::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Substation::getPossibleProfilesForAttributes() const +const std::list& Substation::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Substation::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Substation::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Substation::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCConverterUnit_Substation(BaseClass*, BaseClass*); @@ -119,7 +151,7 @@ const char* Substation::debugString() const void Substation::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Substation", &Substation_factory); + factory_map.emplace("Substation", &Substation_factory); } void Substation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -128,9 +160,9 @@ void Substation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Substation.DCConverterUnit", &assign_Substation_DCConverterUnit); - assign_map.emplace("cim:Substation.Region", &assign_Substation_Region); - assign_map.emplace("cim:Substation.VoltageLevels", &assign_Substation_VoltageLevels); + assign_map.emplace("Substation.DCConverterUnit", &assign_Substation_DCConverterUnit); + assign_map.emplace("Substation.Region", &assign_Substation_Region); + assign_map.emplace("Substation.VoltageLevels", &assign_Substation_VoltageLevels); } void Substation::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -141,7 +173,7 @@ void Substation::addPrimitiveGetFnsToMap(std::map& ge void Substation::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Substation.Region", &get_Substation_Region); + get_map.emplace("Substation.Region", &get_Substation_Region); } void Substation::addEnumGetFnsToMap(std::map& get_map) const @@ -149,11 +181,25 @@ void Substation::addEnumGetFnsToMap(std::map& get_map EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Substation::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Substation" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Substation::declare() { return BaseClassDefiner(Substation::addConstructToMap, Substation::addPrimitiveAssignFnsToMap, Substation::addClassAssignFnsToMap, Substation::debugName); } +std::map Substation::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Substation_factory() diff --git a/CGMES_2.4.15_27JAN2020/Substation.hpp b/CGMES_2.4.15_27JAN2020/Substation.hpp index 57ef9396c..369df004b 100644 --- a/CGMES_2.4.15_27JAN2020/Substation.hpp +++ b/CGMES_2.4.15_27JAN2020/Substation.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Substation_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SvInjection.cpp b/CGMES_2.4.15_27JAN2020/SvInjection.cpp index 4b2198756..e0c0be0f5 100644 --- a/CGMES_2.4.15_27JAN2020/SvInjection.cpp +++ b/CGMES_2.4.15_27JAN2020/SvInjection.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvInjection(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvInjection.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvInjection.pInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvInjection.qInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvInjection::SvInjection() : TopologicalNode(nullptr) {} SvInjection::~SvInjection() {} -static const std::list PossibleProfilesForClass = +const std::list& SvInjection::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvInjection::getClassNamespaceUrl() const { - { "cim:SvInjection.TopologicalNode", { CGMESProfile::SV, } }, - { "cim:SvInjection.pInjection", { CGMESProfile::SV, } }, - { "cim:SvInjection.qInjection", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvInjection::getPossibleProfilesForClass() const +const std::string& SvInjection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvInjection::getPossibleProfilesForAttributes() const +const std::list& SvInjection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_SvInjection(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvInjection::debugString() const void SvInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvInjection", &SvInjection_factory); + factory_map.emplace("SvInjection", &SvInjection_factory); } void SvInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvInjection.pInjection", &assign_SvInjection_pInjection); - assign_map.emplace("cim:SvInjection.qInjection", &assign_SvInjection_qInjection); + assign_map.emplace("SvInjection.pInjection", &assign_SvInjection_pInjection); + assign_map.emplace("SvInjection.qInjection", &assign_SvInjection_qInjection); } void SvInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvInjection.TopologicalNode", &assign_SvInjection_TopologicalNode); + assign_map.emplace("SvInjection.TopologicalNode", &assign_SvInjection_TopologicalNode); } void SvInjection::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvInjection.pInjection", &get_SvInjection_pInjection); - get_map.emplace("cim:SvInjection.qInjection", &get_SvInjection_qInjection); + get_map.emplace("SvInjection.pInjection", &get_SvInjection_pInjection); + get_map.emplace("SvInjection.qInjection", &get_SvInjection_qInjection); } void SvInjection::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvInjection.TopologicalNode", &get_SvInjection_TopologicalNode); + get_map.emplace("SvInjection.TopologicalNode", &get_SvInjection_TopologicalNode); } void SvInjection::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvInjection::addEnumGetFnsToMap(std::map& get_ma BaseClass::addEnumGetFnsToMap(get_map); } +bool SvInjection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvInjection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvInjection::declare() { return BaseClassDefiner(SvInjection::addConstructToMap, SvInjection::addPrimitiveAssignFnsToMap, SvInjection::addClassAssignFnsToMap, SvInjection::debugName); } +std::map SvInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvInjection_factory() diff --git a/CGMES_2.4.15_27JAN2020/SvInjection.hpp b/CGMES_2.4.15_27JAN2020/SvInjection.hpp index 73b97137a..45176fdc3 100644 --- a/CGMES_2.4.15_27JAN2020/SvInjection.hpp +++ b/CGMES_2.4.15_27JAN2020/SvInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ReactivePower.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvInjection_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SvPowerFlow.cpp b/CGMES_2.4.15_27JAN2020/SvPowerFlow.cpp index dfc4eab2e..91318fcf3 100644 --- a/CGMES_2.4.15_27JAN2020/SvPowerFlow.cpp +++ b/CGMES_2.4.15_27JAN2020/SvPowerFlow.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvPowerFlow(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvPowerFlow.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvPowerFlow.p", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvPowerFlow.q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvPowerFlow::SvPowerFlow() : Terminal(nullptr) {} SvPowerFlow::~SvPowerFlow() {} -static const std::list PossibleProfilesForClass = +const std::list& SvPowerFlow::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvPowerFlow::getClassNamespaceUrl() const { - { "cim:SvPowerFlow.Terminal", { CGMESProfile::SV, } }, - { "cim:SvPowerFlow.p", { CGMESProfile::SV, } }, - { "cim:SvPowerFlow.q", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvPowerFlow::getPossibleProfilesForClass() const +const std::string& SvPowerFlow::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvPowerFlow::getPossibleProfilesForAttributes() const +const std::list& SvPowerFlow::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvPowerFlow::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvPowerFlow::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvPowerFlow::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_SvPowerFlow(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvPowerFlow::debugString() const void SvPowerFlow::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvPowerFlow", &SvPowerFlow_factory); + factory_map.emplace("SvPowerFlow", &SvPowerFlow_factory); } void SvPowerFlow::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvPowerFlow.p", &assign_SvPowerFlow_p); - assign_map.emplace("cim:SvPowerFlow.q", &assign_SvPowerFlow_q); + assign_map.emplace("SvPowerFlow.p", &assign_SvPowerFlow_p); + assign_map.emplace("SvPowerFlow.q", &assign_SvPowerFlow_q); } void SvPowerFlow::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvPowerFlow.Terminal", &assign_SvPowerFlow_Terminal); + assign_map.emplace("SvPowerFlow.Terminal", &assign_SvPowerFlow_Terminal); } void SvPowerFlow::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvPowerFlow.p", &get_SvPowerFlow_p); - get_map.emplace("cim:SvPowerFlow.q", &get_SvPowerFlow_q); + get_map.emplace("SvPowerFlow.p", &get_SvPowerFlow_p); + get_map.emplace("SvPowerFlow.q", &get_SvPowerFlow_q); } void SvPowerFlow::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvPowerFlow.Terminal", &get_SvPowerFlow_Terminal); + get_map.emplace("SvPowerFlow.Terminal", &get_SvPowerFlow_Terminal); } void SvPowerFlow::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvPowerFlow::addEnumGetFnsToMap(std::map& get_ma BaseClass::addEnumGetFnsToMap(get_map); } +bool SvPowerFlow::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvPowerFlow" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvPowerFlow::declare() { return BaseClassDefiner(SvPowerFlow::addConstructToMap, SvPowerFlow::addPrimitiveAssignFnsToMap, SvPowerFlow::addClassAssignFnsToMap, SvPowerFlow::debugName); } +std::map SvPowerFlow::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvPowerFlow_factory() diff --git a/CGMES_2.4.15_27JAN2020/SvPowerFlow.hpp b/CGMES_2.4.15_27JAN2020/SvPowerFlow.hpp index a27cce2a2..77b1b40d0 100644 --- a/CGMES_2.4.15_27JAN2020/SvPowerFlow.hpp +++ b/CGMES_2.4.15_27JAN2020/SvPowerFlow.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ReactivePower.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvPowerFlow_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SvShuntCompensatorSections.cpp b/CGMES_2.4.15_27JAN2020/SvShuntCompensatorSections.cpp index a14be0d1b..c71aaf424 100644 --- a/CGMES_2.4.15_27JAN2020/SvShuntCompensatorSections.cpp +++ b/CGMES_2.4.15_27JAN2020/SvShuntCompensatorSections.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvShuntCompensatorSections(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvShuntCompensatorSections.ShuntCompensator", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvShuntCompensatorSections.sections", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvShuntCompensatorSections::SvShuntCompensatorSections() : ShuntCompensator(nullptr) {} SvShuntCompensatorSections::~SvShuntCompensatorSections() {} -static const std::list PossibleProfilesForClass = +const std::list& SvShuntCompensatorSections::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvShuntCompensatorSections::getClassNamespaceUrl() const { - { "cim:SvShuntCompensatorSections.ShuntCompensator", { CGMESProfile::SV, } }, - { "cim:SvShuntCompensatorSections.sections", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvShuntCompensatorSections::getPossibleProfilesForClass() const +const std::string& SvShuntCompensatorSections::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvShuntCompensatorSections::getPossibleProfilesForAttributes() const +const std::list& SvShuntCompensatorSections::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvShuntCompensatorSections::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvShuntCompensatorSections::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvShuntCompensatorSections::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ShuntCompensator_SvShuntCompensatorSections(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvShuntCompensatorSections::debugString() const void SvShuntCompensatorSections::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvShuntCompensatorSections", &SvShuntCompensatorSections_factory); + factory_map.emplace("SvShuntCompensatorSections", &SvShuntCompensatorSections_factory); } void SvShuntCompensatorSections::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvShuntCompensatorSections.sections", &assign_SvShuntCompensatorSections_sections); + assign_map.emplace("SvShuntCompensatorSections.sections", &assign_SvShuntCompensatorSections_sections); } void SvShuntCompensatorSections::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvShuntCompensatorSections.ShuntCompensator", &assign_SvShuntCompensatorSections_ShuntCompensator); + assign_map.emplace("SvShuntCompensatorSections.ShuntCompensator", &assign_SvShuntCompensatorSections_ShuntCompensator); } void SvShuntCompensatorSections::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvShuntCompensatorSections.sections", &get_SvShuntCompensatorSections_sections); + get_map.emplace("SvShuntCompensatorSections.sections", &get_SvShuntCompensatorSections_sections); } void SvShuntCompensatorSections::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvShuntCompensatorSections.ShuntCompensator", &get_SvShuntCompensatorSections_ShuntCompensator); + get_map.emplace("SvShuntCompensatorSections.ShuntCompensator", &get_SvShuntCompensatorSections_ShuntCompensator); } void SvShuntCompensatorSections::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvShuntCompensatorSections::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SvShuntCompensatorSections::declare() { return BaseClassDefiner(SvShuntCompensatorSections::addConstructToMap, SvShuntCompensatorSections::addPrimitiveAssignFnsToMap, SvShuntCompensatorSections::addClassAssignFnsToMap, SvShuntCompensatorSections::debugName); } +std::map SvShuntCompensatorSections::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvShuntCompensatorSections_factory() diff --git a/CGMES_2.4.15_27JAN2020/SvShuntCompensatorSections.hpp b/CGMES_2.4.15_27JAN2020/SvShuntCompensatorSections.hpp index 357a98c95..e816118b8 100644 --- a/CGMES_2.4.15_27JAN2020/SvShuntCompensatorSections.hpp +++ b/CGMES_2.4.15_27JAN2020/SvShuntCompensatorSections.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvShuntCompensatorSections_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SvStatus.cpp b/CGMES_2.4.15_27JAN2020/SvStatus.cpp index 17aca7359..f75af6579 100644 --- a/CGMES_2.4.15_27JAN2020/SvStatus.cpp +++ b/CGMES_2.4.15_27JAN2020/SvStatus.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvStatus(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvStatus.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvStatus.inService", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvStatus::SvStatus() : ConductingEquipment(nullptr) {} SvStatus::~SvStatus() {} -static const std::list PossibleProfilesForClass = +const std::list& SvStatus::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvStatus::getClassNamespaceUrl() const { - { "cim:SvStatus.ConductingEquipment", { CGMESProfile::SV, } }, - { "cim:SvStatus.inService", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvStatus::getPossibleProfilesForClass() const +const std::string& SvStatus::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvStatus::getPossibleProfilesForAttributes() const +const std::list& SvStatus::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvStatus::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvStatus::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvStatus::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_SvStatus(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvStatus::debugString() const void SvStatus::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvStatus", &SvStatus_factory); + factory_map.emplace("SvStatus", &SvStatus_factory); } void SvStatus::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvStatus.inService", &assign_SvStatus_inService); + assign_map.emplace("SvStatus.inService", &assign_SvStatus_inService); } void SvStatus::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvStatus.ConductingEquipment", &assign_SvStatus_ConductingEquipment); + assign_map.emplace("SvStatus.ConductingEquipment", &assign_SvStatus_ConductingEquipment); } void SvStatus::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvStatus.inService", &get_SvStatus_inService); + get_map.emplace("SvStatus.inService", &get_SvStatus_inService); } void SvStatus::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvStatus.ConductingEquipment", &get_SvStatus_ConductingEquipment); + get_map.emplace("SvStatus.ConductingEquipment", &get_SvStatus_ConductingEquipment); } void SvStatus::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvStatus::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvStatus::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvStatus" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvStatus::declare() { return BaseClassDefiner(SvStatus::addConstructToMap, SvStatus::addPrimitiveAssignFnsToMap, SvStatus::addClassAssignFnsToMap, SvStatus::debugName); } +std::map SvStatus::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvStatus_factory() diff --git a/CGMES_2.4.15_27JAN2020/SvStatus.hpp b/CGMES_2.4.15_27JAN2020/SvStatus.hpp index e1b7266b5..71352e540 100644 --- a/CGMES_2.4.15_27JAN2020/SvStatus.hpp +++ b/CGMES_2.4.15_27JAN2020/SvStatus.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvStatus_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SvTapStep.cpp b/CGMES_2.4.15_27JAN2020/SvTapStep.cpp index 717c92b1a..f3923a9db 100644 --- a/CGMES_2.4.15_27JAN2020/SvTapStep.cpp +++ b/CGMES_2.4.15_27JAN2020/SvTapStep.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvTapStep(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvTapStep.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvTapStep.position", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvTapStep::SvTapStep() : TapChanger(nullptr) {} SvTapStep::~SvTapStep() {} -static const std::list PossibleProfilesForClass = +const std::list& SvTapStep::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvTapStep::getClassNamespaceUrl() const { - { "cim:SvTapStep.TapChanger", { CGMESProfile::SV, } }, - { "cim:SvTapStep.position", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvTapStep::getPossibleProfilesForClass() const +const std::string& SvTapStep::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvTapStep::getPossibleProfilesForAttributes() const +const std::list& SvTapStep::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvTapStep::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvTapStep::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvTapStep::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_SvTapStep(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvTapStep::debugString() const void SvTapStep::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvTapStep", &SvTapStep_factory); + factory_map.emplace("SvTapStep", &SvTapStep_factory); } void SvTapStep::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvTapStep.position", &assign_SvTapStep_position); + assign_map.emplace("SvTapStep.position", &assign_SvTapStep_position); } void SvTapStep::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvTapStep.TapChanger", &assign_SvTapStep_TapChanger); + assign_map.emplace("SvTapStep.TapChanger", &assign_SvTapStep_TapChanger); } void SvTapStep::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvTapStep.position", &get_SvTapStep_position); + get_map.emplace("SvTapStep.position", &get_SvTapStep_position); } void SvTapStep::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvTapStep.TapChanger", &get_SvTapStep_TapChanger); + get_map.emplace("SvTapStep.TapChanger", &get_SvTapStep_TapChanger); } void SvTapStep::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvTapStep::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvTapStep::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvTapStep" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvTapStep::declare() { return BaseClassDefiner(SvTapStep::addConstructToMap, SvTapStep::addPrimitiveAssignFnsToMap, SvTapStep::addClassAssignFnsToMap, SvTapStep::debugName); } +std::map SvTapStep::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvTapStep_factory() diff --git a/CGMES_2.4.15_27JAN2020/SvTapStep.hpp b/CGMES_2.4.15_27JAN2020/SvTapStep.hpp index 57f08cda1..36b669fa4 100644 --- a/CGMES_2.4.15_27JAN2020/SvTapStep.hpp +++ b/CGMES_2.4.15_27JAN2020/SvTapStep.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Simple_Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvTapStep_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SvVoltage.cpp b/CGMES_2.4.15_27JAN2020/SvVoltage.cpp index 697cd57c5..19a3cb781 100644 --- a/CGMES_2.4.15_27JAN2020/SvVoltage.cpp +++ b/CGMES_2.4.15_27JAN2020/SvVoltage.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvVoltage(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvVoltage.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvVoltage.angle", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "SvVoltage.v", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvVoltage::SvVoltage() : TopologicalNode(nullptr) {} SvVoltage::~SvVoltage() {} -static const std::list PossibleProfilesForClass = +const std::list& SvVoltage::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvVoltage::getClassNamespaceUrl() const { - { "cim:SvVoltage.TopologicalNode", { CGMESProfile::SV, } }, - { "cim:SvVoltage.angle", { CGMESProfile::SV, } }, - { "cim:SvVoltage.v", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvVoltage::getPossibleProfilesForClass() const +const std::string& SvVoltage::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvVoltage::getPossibleProfilesForAttributes() const +const std::list& SvVoltage::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvVoltage::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvVoltage::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvVoltage::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_SvVoltage(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvVoltage::debugString() const void SvVoltage::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvVoltage", &SvVoltage_factory); + factory_map.emplace("SvVoltage", &SvVoltage_factory); } void SvVoltage::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvVoltage.angle", &assign_SvVoltage_angle); - assign_map.emplace("cim:SvVoltage.v", &assign_SvVoltage_v); + assign_map.emplace("SvVoltage.angle", &assign_SvVoltage_angle); + assign_map.emplace("SvVoltage.v", &assign_SvVoltage_v); } void SvVoltage::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvVoltage.TopologicalNode", &assign_SvVoltage_TopologicalNode); + assign_map.emplace("SvVoltage.TopologicalNode", &assign_SvVoltage_TopologicalNode); } void SvVoltage::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvVoltage.angle", &get_SvVoltage_angle); - get_map.emplace("cim:SvVoltage.v", &get_SvVoltage_v); + get_map.emplace("SvVoltage.angle", &get_SvVoltage_angle); + get_map.emplace("SvVoltage.v", &get_SvVoltage_v); } void SvVoltage::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvVoltage.TopologicalNode", &get_SvVoltage_TopologicalNode); + get_map.emplace("SvVoltage.TopologicalNode", &get_SvVoltage_TopologicalNode); } void SvVoltage::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvVoltage::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvVoltage::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvVoltage" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvVoltage::declare() { return BaseClassDefiner(SvVoltage::addConstructToMap, SvVoltage::addPrimitiveAssignFnsToMap, SvVoltage::addClassAssignFnsToMap, SvVoltage::debugName); } +std::map SvVoltage::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvVoltage_factory() diff --git a/CGMES_2.4.15_27JAN2020/SvVoltage.hpp b/CGMES_2.4.15_27JAN2020/SvVoltage.hpp index 04595982a..9e86b5574 100644 --- a/CGMES_2.4.15_27JAN2020/SvVoltage.hpp +++ b/CGMES_2.4.15_27JAN2020/SvVoltage.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvVoltage_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Switch.cpp b/CGMES_2.4.15_27JAN2020/Switch.cpp index 5f84a2d7a..c2a33270a 100644 --- a/CGMES_2.4.15_27JAN2020/Switch.cpp +++ b/CGMES_2.4.15_27JAN2020/Switch.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Switch(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Switch.SwitchSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.normalOpen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.open", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "Switch.ratedCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Switch.retained", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Switch::Switch() {} Switch::~Switch() {} -static const std::list PossibleProfilesForClass = +const std::list& Switch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Switch::getClassNamespaceUrl() const { - { "cim:Switch.SwitchSchedules", { CGMESProfile::EQ, } }, - { "cim:Switch.normalOpen", { CGMESProfile::EQ, } }, - { "cim:Switch.open", { CGMESProfile::SSH, } }, - { "cim:Switch.ratedCurrent", { CGMESProfile::EQ, } }, - { "cim:Switch.retained", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Switch::getPossibleProfilesForClass() const +const std::string& Switch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Switch::getPossibleProfilesForAttributes() const +const std::list& Switch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Switch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Switch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Switch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SwitchSchedule_Switch(BaseClass*, BaseClass*); @@ -187,29 +219,29 @@ const char* Switch::debugString() const void Switch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Switch", &Switch_factory); + factory_map.emplace("Switch", &Switch_factory); } void Switch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Switch.normalOpen", &assign_Switch_normalOpen); - assign_map.emplace("cim:Switch.open", &assign_Switch_open); - assign_map.emplace("cim:Switch.ratedCurrent", &assign_Switch_ratedCurrent); - assign_map.emplace("cim:Switch.retained", &assign_Switch_retained); + assign_map.emplace("Switch.normalOpen", &assign_Switch_normalOpen); + assign_map.emplace("Switch.open", &assign_Switch_open); + assign_map.emplace("Switch.ratedCurrent", &assign_Switch_ratedCurrent); + assign_map.emplace("Switch.retained", &assign_Switch_retained); } void Switch::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Switch.SwitchSchedules", &assign_Switch_SwitchSchedules); + assign_map.emplace("Switch.SwitchSchedules", &assign_Switch_SwitchSchedules); } void Switch::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Switch.normalOpen", &get_Switch_normalOpen); - get_map.emplace("cim:Switch.open", &get_Switch_open); - get_map.emplace("cim:Switch.ratedCurrent", &get_Switch_ratedCurrent); - get_map.emplace("cim:Switch.retained", &get_Switch_retained); + get_map.emplace("Switch.normalOpen", &get_Switch_normalOpen); + get_map.emplace("Switch.open", &get_Switch_open); + get_map.emplace("Switch.ratedCurrent", &get_Switch_ratedCurrent); + get_map.emplace("Switch.retained", &get_Switch_retained); } void Switch::addClassGetFnsToMap(std::map& get_map) const @@ -222,11 +254,25 @@ void Switch::addEnumGetFnsToMap(std::map& get_map) co ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Switch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Switch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Switch::declare() { return BaseClassDefiner(Switch::addConstructToMap, Switch::addPrimitiveAssignFnsToMap, Switch::addClassAssignFnsToMap, Switch::debugName); } +std::map Switch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Switch_factory() diff --git a/CGMES_2.4.15_27JAN2020/Switch.hpp b/CGMES_2.4.15_27JAN2020/Switch.hpp index 1b8c13160..4a75f2cee 100644 --- a/CGMES_2.4.15_27JAN2020/Switch.hpp +++ b/CGMES_2.4.15_27JAN2020/Switch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Switch_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SwitchSchedule.cpp b/CGMES_2.4.15_27JAN2020/SwitchSchedule.cpp index 17357887b..fdac545f0 100644 --- a/CGMES_2.4.15_27JAN2020/SwitchSchedule.cpp +++ b/CGMES_2.4.15_27JAN2020/SwitchSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SwitchSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SwitchSchedule.Switch", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SwitchSchedule::SwitchSchedule() : Switch(nullptr) {} SwitchSchedule::~SwitchSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& SwitchSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SwitchSchedule::getClassNamespaceUrl() const { - { "cim:SwitchSchedule.Switch", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SwitchSchedule::getPossibleProfilesForClass() const +const std::string& SwitchSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SwitchSchedule::getPossibleProfilesForAttributes() const +const std::list& SwitchSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SwitchSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SwitchSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SwitchSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Switch_SwitchSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* SwitchSchedule::debugString() const void SwitchSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SwitchSchedule", &SwitchSchedule_factory); + factory_map.emplace("SwitchSchedule", &SwitchSchedule_factory); } void SwitchSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void SwitchSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SwitchSchedule.Switch", &assign_SwitchSchedule_Switch); + assign_map.emplace("SwitchSchedule.Switch", &assign_SwitchSchedule_Switch); } void SwitchSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void SwitchSchedule::addPrimitiveGetFnsToMap(std::map void SwitchSchedule::addClassGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SwitchSchedule.Switch", &get_SwitchSchedule_Switch); + get_map.emplace("SwitchSchedule.Switch", &get_SwitchSchedule_Switch); } void SwitchSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void SwitchSchedule::addEnumGetFnsToMap(std::map& get SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool SwitchSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SwitchSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SwitchSchedule::declare() { return BaseClassDefiner(SwitchSchedule::addConstructToMap, SwitchSchedule::addPrimitiveAssignFnsToMap, SwitchSchedule::addClassAssignFnsToMap, SwitchSchedule::debugName); } +std::map SwitchSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SwitchSchedule_factory() diff --git a/CGMES_2.4.15_27JAN2020/SwitchSchedule.hpp b/CGMES_2.4.15_27JAN2020/SwitchSchedule.hpp index 929ce0e77..00c43be39 100644 --- a/CGMES_2.4.15_27JAN2020/SwitchSchedule.hpp +++ b/CGMES_2.4.15_27JAN2020/SwitchSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SwitchSchedule_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachine.cpp b/CGMES_2.4.15_27JAN2020/SynchronousMachine.cpp index deb1e1cca..6895b4d29 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachine.cpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachine.cpp @@ -13,56 +13,88 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachine(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachine.InitialReactiveCapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachine.earthing", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.earthingStarPointR", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.earthingStarPointX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.ikk", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.maxQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.minQ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.mu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.operatingMode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "SynchronousMachine.qPercent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.referencePriority", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "SynchronousMachine.satDirectSubtransX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.satDirectSyncX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.satDirectTransX", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.shortCircuitRotorType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.type", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.voltageRegulationRange", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.x0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.x2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachine::SynchronousMachine() : InitialReactiveCapabilityCurve(nullptr), SynchronousMachineDynamics(nullptr) {} SynchronousMachine::~SynchronousMachine() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:SynchronousMachine.InitialReactiveCapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachine.earthing", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.earthingStarPointR", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.earthingStarPointX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.ikk", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.maxQ", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.minQ", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.mu", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.operatingMode", { CGMESProfile::SSH, } }, - { "cim:SynchronousMachine.qPercent", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r0", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r2", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.referencePriority", { CGMESProfile::SSH, } }, - { "cim:SynchronousMachine.satDirectSubtransX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.satDirectSyncX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.satDirectTransX", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.shortCircuitRotorType", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.type", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.voltageRegulationRange", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.x0", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.x2", { CGMESProfile::EQ, } }, -}; - -std::list -SynchronousMachine::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -SynchronousMachine::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachine::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& SynchronousMachine::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& SynchronousMachine::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& SynchronousMachine::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& SynchronousMachine::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines(BaseClass*, BaseClass*); @@ -731,75 +763,81 @@ const char* SynchronousMachine::debugString() const void SynchronousMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachine", &SynchronousMachine_factory); + factory_map.emplace("SynchronousMachine", &SynchronousMachine_factory); } void SynchronousMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachine.earthing", &assign_SynchronousMachine_earthing); - assign_map.emplace("cim:SynchronousMachine.earthingStarPointR", &assign_SynchronousMachine_earthingStarPointR); - assign_map.emplace("cim:SynchronousMachine.earthingStarPointX", &assign_SynchronousMachine_earthingStarPointX); - assign_map.emplace("cim:SynchronousMachine.ikk", &assign_SynchronousMachine_ikk); - assign_map.emplace("cim:SynchronousMachine.maxQ", &assign_SynchronousMachine_maxQ); - assign_map.emplace("cim:SynchronousMachine.minQ", &assign_SynchronousMachine_minQ); - assign_map.emplace("cim:SynchronousMachine.mu", &assign_SynchronousMachine_mu); - assign_map.emplace("cim:SynchronousMachine.operatingMode", &assign_SynchronousMachine_operatingMode); - assign_map.emplace("cim:SynchronousMachine.qPercent", &assign_SynchronousMachine_qPercent); - assign_map.emplace("cim:SynchronousMachine.r", &assign_SynchronousMachine_r); - assign_map.emplace("cim:SynchronousMachine.r0", &assign_SynchronousMachine_r0); - assign_map.emplace("cim:SynchronousMachine.r2", &assign_SynchronousMachine_r2); - assign_map.emplace("cim:SynchronousMachine.referencePriority", &assign_SynchronousMachine_referencePriority); - assign_map.emplace("cim:SynchronousMachine.satDirectSubtransX", &assign_SynchronousMachine_satDirectSubtransX); - assign_map.emplace("cim:SynchronousMachine.satDirectSyncX", &assign_SynchronousMachine_satDirectSyncX); - assign_map.emplace("cim:SynchronousMachine.satDirectTransX", &assign_SynchronousMachine_satDirectTransX); - assign_map.emplace("cim:SynchronousMachine.shortCircuitRotorType", &assign_SynchronousMachine_shortCircuitRotorType); - assign_map.emplace("cim:SynchronousMachine.type", &assign_SynchronousMachine_type); - assign_map.emplace("cim:SynchronousMachine.voltageRegulationRange", &assign_SynchronousMachine_voltageRegulationRange); - assign_map.emplace("cim:SynchronousMachine.x0", &assign_SynchronousMachine_x0); - assign_map.emplace("cim:SynchronousMachine.x2", &assign_SynchronousMachine_x2); + assign_map.emplace("SynchronousMachine.earthing", &assign_SynchronousMachine_earthing); + assign_map.emplace("SynchronousMachine.earthingStarPointR", &assign_SynchronousMachine_earthingStarPointR); + assign_map.emplace("SynchronousMachine.earthingStarPointX", &assign_SynchronousMachine_earthingStarPointX); + assign_map.emplace("SynchronousMachine.ikk", &assign_SynchronousMachine_ikk); + assign_map.emplace("SynchronousMachine.maxQ", &assign_SynchronousMachine_maxQ); + assign_map.emplace("SynchronousMachine.minQ", &assign_SynchronousMachine_minQ); + assign_map.emplace("SynchronousMachine.mu", &assign_SynchronousMachine_mu); + assign_map.emplace("SynchronousMachine.operatingMode", &assign_SynchronousMachine_operatingMode); + assign_map.emplace("SynchronousMachine.qPercent", &assign_SynchronousMachine_qPercent); + assign_map.emplace("SynchronousMachine.r", &assign_SynchronousMachine_r); + assign_map.emplace("SynchronousMachine.r0", &assign_SynchronousMachine_r0); + assign_map.emplace("SynchronousMachine.r2", &assign_SynchronousMachine_r2); + assign_map.emplace("SynchronousMachine.referencePriority", &assign_SynchronousMachine_referencePriority); + assign_map.emplace("SynchronousMachine.satDirectSubtransX", &assign_SynchronousMachine_satDirectSubtransX); + assign_map.emplace("SynchronousMachine.satDirectSyncX", &assign_SynchronousMachine_satDirectSyncX); + assign_map.emplace("SynchronousMachine.satDirectTransX", &assign_SynchronousMachine_satDirectTransX); + assign_map.emplace("SynchronousMachine.shortCircuitRotorType", &assign_SynchronousMachine_shortCircuitRotorType); + assign_map.emplace("SynchronousMachine.type", &assign_SynchronousMachine_type); + assign_map.emplace("SynchronousMachine.voltageRegulationRange", &assign_SynchronousMachine_voltageRegulationRange); + assign_map.emplace("SynchronousMachine.x0", &assign_SynchronousMachine_x0); + assign_map.emplace("SynchronousMachine.x2", &assign_SynchronousMachine_x2); } void SynchronousMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachine.InitialReactiveCapabilityCurve", &assign_SynchronousMachine_InitialReactiveCapabilityCurve); - assign_map.emplace("cim:SynchronousMachine.SynchronousMachineDynamics", &assign_SynchronousMachine_SynchronousMachineDynamics); + assign_map.emplace("SynchronousMachine.InitialReactiveCapabilityCurve", &assign_SynchronousMachine_InitialReactiveCapabilityCurve); + assign_map.emplace("SynchronousMachine.SynchronousMachineDynamics", &assign_SynchronousMachine_SynchronousMachineDynamics); } void SynchronousMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachine::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.earthing", &get_SynchronousMachine_earthing); - get_map.emplace("cim:SynchronousMachine.earthingStarPointR", &get_SynchronousMachine_earthingStarPointR); - get_map.emplace("cim:SynchronousMachine.earthingStarPointX", &get_SynchronousMachine_earthingStarPointX); - get_map.emplace("cim:SynchronousMachine.ikk", &get_SynchronousMachine_ikk); - get_map.emplace("cim:SynchronousMachine.maxQ", &get_SynchronousMachine_maxQ); - get_map.emplace("cim:SynchronousMachine.minQ", &get_SynchronousMachine_minQ); - get_map.emplace("cim:SynchronousMachine.mu", &get_SynchronousMachine_mu); - get_map.emplace("cim:SynchronousMachine.qPercent", &get_SynchronousMachine_qPercent); - get_map.emplace("cim:SynchronousMachine.r", &get_SynchronousMachine_r); - get_map.emplace("cim:SynchronousMachine.r0", &get_SynchronousMachine_r0); - get_map.emplace("cim:SynchronousMachine.r2", &get_SynchronousMachine_r2); - get_map.emplace("cim:SynchronousMachine.referencePriority", &get_SynchronousMachine_referencePriority); - get_map.emplace("cim:SynchronousMachine.satDirectSubtransX", &get_SynchronousMachine_satDirectSubtransX); - get_map.emplace("cim:SynchronousMachine.satDirectSyncX", &get_SynchronousMachine_satDirectSyncX); - get_map.emplace("cim:SynchronousMachine.satDirectTransX", &get_SynchronousMachine_satDirectTransX); - get_map.emplace("cim:SynchronousMachine.voltageRegulationRange", &get_SynchronousMachine_voltageRegulationRange); - get_map.emplace("cim:SynchronousMachine.x0", &get_SynchronousMachine_x0); - get_map.emplace("cim:SynchronousMachine.x2", &get_SynchronousMachine_x2); + get_map.emplace("SynchronousMachine.earthing", &get_SynchronousMachine_earthing); + get_map.emplace("SynchronousMachine.earthingStarPointR", &get_SynchronousMachine_earthingStarPointR); + get_map.emplace("SynchronousMachine.earthingStarPointX", &get_SynchronousMachine_earthingStarPointX); + get_map.emplace("SynchronousMachine.ikk", &get_SynchronousMachine_ikk); + get_map.emplace("SynchronousMachine.maxQ", &get_SynchronousMachine_maxQ); + get_map.emplace("SynchronousMachine.minQ", &get_SynchronousMachine_minQ); + get_map.emplace("SynchronousMachine.mu", &get_SynchronousMachine_mu); + get_map.emplace("SynchronousMachine.qPercent", &get_SynchronousMachine_qPercent); + get_map.emplace("SynchronousMachine.r", &get_SynchronousMachine_r); + get_map.emplace("SynchronousMachine.r0", &get_SynchronousMachine_r0); + get_map.emplace("SynchronousMachine.r2", &get_SynchronousMachine_r2); + get_map.emplace("SynchronousMachine.referencePriority", &get_SynchronousMachine_referencePriority); + get_map.emplace("SynchronousMachine.satDirectSubtransX", &get_SynchronousMachine_satDirectSubtransX); + get_map.emplace("SynchronousMachine.satDirectSyncX", &get_SynchronousMachine_satDirectSyncX); + get_map.emplace("SynchronousMachine.satDirectTransX", &get_SynchronousMachine_satDirectTransX); + get_map.emplace("SynchronousMachine.voltageRegulationRange", &get_SynchronousMachine_voltageRegulationRange); + get_map.emplace("SynchronousMachine.x0", &get_SynchronousMachine_x0); + get_map.emplace("SynchronousMachine.x2", &get_SynchronousMachine_x2); } void SynchronousMachine::addClassGetFnsToMap(std::map& get_map) const { RotatingMachine::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.InitialReactiveCapabilityCurve", &get_SynchronousMachine_InitialReactiveCapabilityCurve); + get_map.emplace("SynchronousMachine.InitialReactiveCapabilityCurve", &get_SynchronousMachine_InitialReactiveCapabilityCurve); } void SynchronousMachine::addEnumGetFnsToMap(std::map& get_map) const { RotatingMachine::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.operatingMode", &get_SynchronousMachine_operatingMode); - get_map.emplace("cim:SynchronousMachine.shortCircuitRotorType", &get_SynchronousMachine_shortCircuitRotorType); - get_map.emplace("cim:SynchronousMachine.type", &get_SynchronousMachine_type); + get_map.emplace("SynchronousMachine.operatingMode", &get_SynchronousMachine_operatingMode); + get_map.emplace("SynchronousMachine.shortCircuitRotorType", &get_SynchronousMachine_shortCircuitRotorType); + get_map.emplace("SynchronousMachine.type", &get_SynchronousMachine_type); +} + +bool SynchronousMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachine" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachine::declare() @@ -807,6 +845,14 @@ const BaseClassDefiner SynchronousMachine::declare() return BaseClassDefiner(SynchronousMachine::addConstructToMap, SynchronousMachine::addPrimitiveAssignFnsToMap, SynchronousMachine::addClassAssignFnsToMap, SynchronousMachine::debugName); } +std::map SynchronousMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachine::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachine_factory() diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachine.hpp b/CGMES_2.4.15_27JAN2020/SynchronousMachine.hpp index 91fe2995e..670ee1e17 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachine.hpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachine.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" #include "Integer.hpp" @@ -110,8 +111,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -119,7 +127,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachine_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineDetailed.cpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineDetailed.cpp index b24f3e4d9..26da5a8cc 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineDetailed.cpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineDetailed.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineDetailed(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineDetailed.efdBaseRatio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.ifdBaseType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.ifdBaseValue", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.saturationFactor120QAxis", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.saturationFactorQAxis", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineDetailed::SynchronousMachineDetailed() {} SynchronousMachineDetailed::~SynchronousMachineDetailed() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineDetailed::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineDetailed::getClassNamespaceUrl() const { - { "cim:SynchronousMachineDetailed.efdBaseRatio", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.ifdBaseType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.ifdBaseValue", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.saturationFactor120QAxis", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.saturationFactorQAxis", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineDetailed::getPossibleProfilesForClass() const +const std::string& SynchronousMachineDetailed::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineDetailed::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineDetailed::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineDetailed::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineDetailed::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineDetailed::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDetailed_efdBaseRatio(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* SynchronousMachineDetailed::debugString() const void SynchronousMachineDetailed::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineDetailed", &SynchronousMachineDetailed_factory); + factory_map.emplace("SynchronousMachineDetailed", &SynchronousMachineDetailed_factory); } void SynchronousMachineDetailed::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineDetailed.efdBaseRatio", &assign_SynchronousMachineDetailed_efdBaseRatio); - assign_map.emplace("cim:SynchronousMachineDetailed.ifdBaseType", &assign_SynchronousMachineDetailed_ifdBaseType); - assign_map.emplace("cim:SynchronousMachineDetailed.ifdBaseValue", &assign_SynchronousMachineDetailed_ifdBaseValue); - assign_map.emplace("cim:SynchronousMachineDetailed.saturationFactor120QAxis", &assign_SynchronousMachineDetailed_saturationFactor120QAxis); - assign_map.emplace("cim:SynchronousMachineDetailed.saturationFactorQAxis", &assign_SynchronousMachineDetailed_saturationFactorQAxis); + assign_map.emplace("SynchronousMachineDetailed.efdBaseRatio", &assign_SynchronousMachineDetailed_efdBaseRatio); + assign_map.emplace("SynchronousMachineDetailed.ifdBaseType", &assign_SynchronousMachineDetailed_ifdBaseType); + assign_map.emplace("SynchronousMachineDetailed.ifdBaseValue", &assign_SynchronousMachineDetailed_ifdBaseValue); + assign_map.emplace("SynchronousMachineDetailed.saturationFactor120QAxis", &assign_SynchronousMachineDetailed_saturationFactor120QAxis); + assign_map.emplace("SynchronousMachineDetailed.saturationFactorQAxis", &assign_SynchronousMachineDetailed_saturationFactorQAxis); } void SynchronousMachineDetailed::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,10 +247,10 @@ void SynchronousMachineDetailed::addClassAssignFnsToMap(std::unordered_map& get_map) const { SynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDetailed.efdBaseRatio", &get_SynchronousMachineDetailed_efdBaseRatio); - get_map.emplace("cim:SynchronousMachineDetailed.ifdBaseValue", &get_SynchronousMachineDetailed_ifdBaseValue); - get_map.emplace("cim:SynchronousMachineDetailed.saturationFactor120QAxis", &get_SynchronousMachineDetailed_saturationFactor120QAxis); - get_map.emplace("cim:SynchronousMachineDetailed.saturationFactorQAxis", &get_SynchronousMachineDetailed_saturationFactorQAxis); + get_map.emplace("SynchronousMachineDetailed.efdBaseRatio", &get_SynchronousMachineDetailed_efdBaseRatio); + get_map.emplace("SynchronousMachineDetailed.ifdBaseValue", &get_SynchronousMachineDetailed_ifdBaseValue); + get_map.emplace("SynchronousMachineDetailed.saturationFactor120QAxis", &get_SynchronousMachineDetailed_saturationFactor120QAxis); + get_map.emplace("SynchronousMachineDetailed.saturationFactorQAxis", &get_SynchronousMachineDetailed_saturationFactorQAxis); } void SynchronousMachineDetailed::addClassGetFnsToMap(std::map& get_map) const @@ -229,7 +261,13 @@ void SynchronousMachineDetailed::addClassGetFnsToMap(std::map& get_map) const { SynchronousMachineDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDetailed.ifdBaseType", &get_SynchronousMachineDetailed_ifdBaseType); + get_map.emplace("SynchronousMachineDetailed.ifdBaseType", &get_SynchronousMachineDetailed_ifdBaseType); +} + +bool SynchronousMachineDetailed::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachineDetailed" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachineDetailed::declare() @@ -237,6 +275,14 @@ const BaseClassDefiner SynchronousMachineDetailed::declare() return BaseClassDefiner(SynchronousMachineDetailed::addConstructToMap, SynchronousMachineDetailed::addPrimitiveAssignFnsToMap, SynchronousMachineDetailed::addClassAssignFnsToMap, SynchronousMachineDetailed::debugName); } +std::map SynchronousMachineDetailed::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineDetailed_factory() diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineDetailed.hpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineDetailed.hpp index 877ee12bc..3821d27b7 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineDetailed.hpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineDetailed.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" #include "IfdBaseKind.hpp" #include "Simple_Float.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineDetailed_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineDynamics.cpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineDynamics.cpp index c26909c88..fe2c41adc 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineDynamics.cpp @@ -16,36 +16,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.GenICompensationForGenJ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.MechanicalLoadDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.SynchronousMachine", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineDynamics::SynchronousMachineDynamics() : ExcitationSystemDynamics(nullptr), MechanicalLoadDynamics(nullptr), SynchronousMachine(nullptr) {} SynchronousMachineDynamics::~SynchronousMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineDynamics::getClassNamespaceUrl() const { - { "cim:SynchronousMachineDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.GenICompensationForGenJ", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.MechanicalLoadDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.SynchronousMachine", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineDynamics::getPossibleProfilesForClass() const +const std::string& SynchronousMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_SynchronousMachineDynamics(BaseClass*, BaseClass*); @@ -159,7 +191,7 @@ const char* SynchronousMachineDynamics::debugString() const void SynchronousMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineDynamics", &SynchronousMachineDynamics_factory); + factory_map.emplace("SynchronousMachineDynamics", &SynchronousMachineDynamics_factory); } void SynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -168,11 +200,11 @@ void SynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineDynamics.ExcitationSystemDynamics", &assign_SynchronousMachineDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.GenICompensationForGenJ", &assign_SynchronousMachineDynamics_GenICompensationForGenJ); - assign_map.emplace("cim:SynchronousMachineDynamics.MechanicalLoadDynamics", &assign_SynchronousMachineDynamics_MechanicalLoadDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.SynchronousMachine", &assign_SynchronousMachineDynamics_SynchronousMachine); - assign_map.emplace("cim:SynchronousMachineDynamics.TurbineGovernorDynamics", &assign_SynchronousMachineDynamics_TurbineGovernorDynamics); + assign_map.emplace("SynchronousMachineDynamics.ExcitationSystemDynamics", &assign_SynchronousMachineDynamics_ExcitationSystemDynamics); + assign_map.emplace("SynchronousMachineDynamics.GenICompensationForGenJ", &assign_SynchronousMachineDynamics_GenICompensationForGenJ); + assign_map.emplace("SynchronousMachineDynamics.MechanicalLoadDynamics", &assign_SynchronousMachineDynamics_MechanicalLoadDynamics); + assign_map.emplace("SynchronousMachineDynamics.SynchronousMachine", &assign_SynchronousMachineDynamics_SynchronousMachine); + assign_map.emplace("SynchronousMachineDynamics.TurbineGovernorDynamics", &assign_SynchronousMachineDynamics_TurbineGovernorDynamics); } void SynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -183,7 +215,7 @@ void SynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachineDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDynamics.SynchronousMachine", &get_SynchronousMachineDynamics_SynchronousMachine); + get_map.emplace("SynchronousMachineDynamics.SynchronousMachine", &get_SynchronousMachineDynamics_SynchronousMachine); } void SynchronousMachineDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -191,11 +223,25 @@ void SynchronousMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineDynamics::declare() { return BaseClassDefiner(SynchronousMachineDynamics::addConstructToMap, SynchronousMachineDynamics::addPrimitiveAssignFnsToMap, SynchronousMachineDynamics::addClassAssignFnsToMap, SynchronousMachineDynamics::debugName); } +std::map SynchronousMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineDynamics.hpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineDynamics.hpp index 77e6df94e..5a7ac9c73 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineEquivalentCircuit.cpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineEquivalentCircuit.cpp index 7ef58f9f7..0c2c01451 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineEquivalentCircuit.cpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineEquivalentCircuit.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineEquivalentCircuit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineEquivalentCircuit.r1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.r1q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.r2q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.rfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x1q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x2q", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xad", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xaq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xf1d", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xfd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineEquivalentCircuit::SynchronousMachineEquivalentCircuit() {} SynchronousMachineEquivalentCircuit::~SynchronousMachineEquivalentCircuit() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineEquivalentCircuit::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineEquivalentCircuit::getClassNamespaceUrl() const { - { "cim:SynchronousMachineEquivalentCircuit.r1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.r1q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.r2q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.rfd", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x1q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x2q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xad", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xaq", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xf1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xfd", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineEquivalentCircuit::getPossibleProfilesForClass() const +const std::string& SynchronousMachineEquivalentCircuit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineEquivalentCircuit::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineEquivalentCircuit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDetailed::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineEquivalentCircuit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineEquivalentCircuit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineEquivalentCircuit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineEquivalentCircuit_r1d(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* SynchronousMachineEquivalentCircuit::debugString() const void SynchronousMachineEquivalentCircuit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineEquivalentCircuit", &SynchronousMachineEquivalentCircuit_factory); + factory_map.emplace("SynchronousMachineEquivalentCircuit", &SynchronousMachineEquivalentCircuit_factory); } void SynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1d", &assign_SynchronousMachineEquivalentCircuit_r1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1q", &assign_SynchronousMachineEquivalentCircuit_r1q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r2q", &assign_SynchronousMachineEquivalentCircuit_r2q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.rfd", &assign_SynchronousMachineEquivalentCircuit_rfd); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1d", &assign_SynchronousMachineEquivalentCircuit_x1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1q", &assign_SynchronousMachineEquivalentCircuit_x1q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x2q", &assign_SynchronousMachineEquivalentCircuit_x2q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xad", &assign_SynchronousMachineEquivalentCircuit_xad); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xaq", &assign_SynchronousMachineEquivalentCircuit_xaq); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xf1d", &assign_SynchronousMachineEquivalentCircuit_xf1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xfd", &assign_SynchronousMachineEquivalentCircuit_xfd); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r1d", &assign_SynchronousMachineEquivalentCircuit_r1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r1q", &assign_SynchronousMachineEquivalentCircuit_r1q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r2q", &assign_SynchronousMachineEquivalentCircuit_r2q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.rfd", &assign_SynchronousMachineEquivalentCircuit_rfd); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x1d", &assign_SynchronousMachineEquivalentCircuit_x1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x1q", &assign_SynchronousMachineEquivalentCircuit_x1q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x2q", &assign_SynchronousMachineEquivalentCircuit_x2q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xad", &assign_SynchronousMachineEquivalentCircuit_xad); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xaq", &assign_SynchronousMachineEquivalentCircuit_xaq); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xf1d", &assign_SynchronousMachineEquivalentCircuit_xf1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xfd", &assign_SynchronousMachineEquivalentCircuit_xfd); } void SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_ void SynchronousMachineEquivalentCircuit::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1d", &get_SynchronousMachineEquivalentCircuit_r1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1q", &get_SynchronousMachineEquivalentCircuit_r1q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r2q", &get_SynchronousMachineEquivalentCircuit_r2q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.rfd", &get_SynchronousMachineEquivalentCircuit_rfd); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1d", &get_SynchronousMachineEquivalentCircuit_x1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1q", &get_SynchronousMachineEquivalentCircuit_x1q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x2q", &get_SynchronousMachineEquivalentCircuit_x2q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xad", &get_SynchronousMachineEquivalentCircuit_xad); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xaq", &get_SynchronousMachineEquivalentCircuit_xaq); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xf1d", &get_SynchronousMachineEquivalentCircuit_xf1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xfd", &get_SynchronousMachineEquivalentCircuit_xfd); + get_map.emplace("SynchronousMachineEquivalentCircuit.r1d", &get_SynchronousMachineEquivalentCircuit_r1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.r1q", &get_SynchronousMachineEquivalentCircuit_r1q); + get_map.emplace("SynchronousMachineEquivalentCircuit.r2q", &get_SynchronousMachineEquivalentCircuit_r2q); + get_map.emplace("SynchronousMachineEquivalentCircuit.rfd", &get_SynchronousMachineEquivalentCircuit_rfd); + get_map.emplace("SynchronousMachineEquivalentCircuit.x1d", &get_SynchronousMachineEquivalentCircuit_x1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.x1q", &get_SynchronousMachineEquivalentCircuit_x1q); + get_map.emplace("SynchronousMachineEquivalentCircuit.x2q", &get_SynchronousMachineEquivalentCircuit_x2q); + get_map.emplace("SynchronousMachineEquivalentCircuit.xad", &get_SynchronousMachineEquivalentCircuit_xad); + get_map.emplace("SynchronousMachineEquivalentCircuit.xaq", &get_SynchronousMachineEquivalentCircuit_xaq); + get_map.emplace("SynchronousMachineEquivalentCircuit.xf1d", &get_SynchronousMachineEquivalentCircuit_xf1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.xfd", &get_SynchronousMachineEquivalentCircuit_xfd); } void SynchronousMachineEquivalentCircuit::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void SynchronousMachineEquivalentCircuit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineEquivalentCircuit::declare() { return BaseClassDefiner(SynchronousMachineEquivalentCircuit::addConstructToMap, SynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap, SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap, SynchronousMachineEquivalentCircuit::debugName); } +std::map SynchronousMachineEquivalentCircuit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDetailed::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineEquivalentCircuit_factory() diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineEquivalentCircuit.hpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineEquivalentCircuit.hpp index bc55bc9cd..c9b662081 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineEquivalentCircuit.hpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineEquivalentCircuit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDetailed.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineEquivalentCircuit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineSimplified.cpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineSimplified.cpp index 565a93b19..92f7e9639 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineSimplified.cpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineSimplified.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineSimplified(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + SynchronousMachineSimplified::SynchronousMachineSimplified() {} SynchronousMachineSimplified::~SynchronousMachineSimplified() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineSimplified::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineSimplified::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineSimplified::getPossibleProfilesForClass() const +const std::string& SynchronousMachineSimplified::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineSimplified::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineSimplified::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineSimplified::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineSimplified::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineSimplified::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char SynchronousMachineSimplified::debugName[] = "SynchronousMachineSimplified"; @@ -46,7 +78,7 @@ const char* SynchronousMachineSimplified::debugString() const void SynchronousMachineSimplified::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineSimplified", &SynchronousMachineSimplified_factory); + factory_map.emplace("SynchronousMachineSimplified", &SynchronousMachineSimplified_factory); } void SynchronousMachineSimplified::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void SynchronousMachineSimplified::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineSimplified::declare() { return BaseClassDefiner(SynchronousMachineSimplified::addConstructToMap, SynchronousMachineSimplified::addPrimitiveAssignFnsToMap, SynchronousMachineSimplified::addClassAssignFnsToMap, SynchronousMachineSimplified::debugName); } +std::map SynchronousMachineSimplified::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineSimplified_factory() diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineSimplified.hpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineSimplified.hpp index 0de0ea229..3a5ac4fac 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineSimplified.hpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineSimplified.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineSimplified_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineTimeConstantReactance.cpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineTimeConstantReactance.cpp index 0abb79508..ab9ae715f 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineTimeConstantReactance.cpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineTimeConstantReactance.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineTimeConstantReactance(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineTimeConstantReactance.ks", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.modelType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.rotorType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tpdo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tppdo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tppqo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tpqo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectSubtrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectSync", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectTrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadSubtrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadSync", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadTrans", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineTimeConstantReactance::SynchronousMachineTimeConstantReactance() {} SynchronousMachineTimeConstantReactance::~SynchronousMachineTimeConstantReactance() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineTimeConstantReactance::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineTimeConstantReactance::getClassNamespaceUrl() const { - { "cim:SynchronousMachineTimeConstantReactance.ks", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.modelType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.rotorType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tc", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tpdo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tppdo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tppqo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tpqo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectSync", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectTrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadSync", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadTrans", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineTimeConstantReactance::getPossibleProfilesForClass() const +const std::string& SynchronousMachineTimeConstantReactance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineTimeConstantReactance::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineTimeConstantReactance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDetailed::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineTimeConstantReactance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineTimeConstantReactance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineTimeConstantReactance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineTimeConstantReactance_ks(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* SynchronousMachineTimeConstantReactance::debugString() const void SynchronousMachineTimeConstantReactance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineTimeConstantReactance", &SynchronousMachineTimeConstantReactance_factory); + factory_map.emplace("SynchronousMachineTimeConstantReactance", &SynchronousMachineTimeConstantReactance_factory); } void SynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.ks", &assign_SynchronousMachineTimeConstantReactance_ks); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.modelType", &assign_SynchronousMachineTimeConstantReactance_modelType); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.rotorType", &assign_SynchronousMachineTimeConstantReactance_rotorType); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tc", &assign_SynchronousMachineTimeConstantReactance_tc); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpdo", &assign_SynchronousMachineTimeConstantReactance_tpdo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppdo", &assign_SynchronousMachineTimeConstantReactance_tppdo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppqo", &assign_SynchronousMachineTimeConstantReactance_tppqo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpqo", &assign_SynchronousMachineTimeConstantReactance_tpqo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", &assign_SynchronousMachineTimeConstantReactance_xDirectSubtrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSync", &assign_SynchronousMachineTimeConstantReactance_xDirectSync); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectTrans", &assign_SynchronousMachineTimeConstantReactance_xDirectTrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", &assign_SynchronousMachineTimeConstantReactance_xQuadSubtrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSync", &assign_SynchronousMachineTimeConstantReactance_xQuadSync); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadTrans", &assign_SynchronousMachineTimeConstantReactance_xQuadTrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.ks", &assign_SynchronousMachineTimeConstantReactance_ks); + assign_map.emplace("SynchronousMachineTimeConstantReactance.modelType", &assign_SynchronousMachineTimeConstantReactance_modelType); + assign_map.emplace("SynchronousMachineTimeConstantReactance.rotorType", &assign_SynchronousMachineTimeConstantReactance_rotorType); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tc", &assign_SynchronousMachineTimeConstantReactance_tc); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tpdo", &assign_SynchronousMachineTimeConstantReactance_tpdo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tppdo", &assign_SynchronousMachineTimeConstantReactance_tppdo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tppqo", &assign_SynchronousMachineTimeConstantReactance_tppqo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tpqo", &assign_SynchronousMachineTimeConstantReactance_tpqo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSubtrans", &assign_SynchronousMachineTimeConstantReactance_xDirectSubtrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSync", &assign_SynchronousMachineTimeConstantReactance_xDirectSync); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectTrans", &assign_SynchronousMachineTimeConstantReactance_xDirectTrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSubtrans", &assign_SynchronousMachineTimeConstantReactance_xQuadSubtrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSync", &assign_SynchronousMachineTimeConstantReactance_xQuadSync); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadTrans", &assign_SynchronousMachineTimeConstantReactance_xQuadTrans); } void SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,18 +526,18 @@ void SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unorde void SynchronousMachineTimeConstantReactance::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.ks", &get_SynchronousMachineTimeConstantReactance_ks); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tc", &get_SynchronousMachineTimeConstantReactance_tc); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpdo", &get_SynchronousMachineTimeConstantReactance_tpdo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppdo", &get_SynchronousMachineTimeConstantReactance_tppdo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppqo", &get_SynchronousMachineTimeConstantReactance_tppqo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpqo", &get_SynchronousMachineTimeConstantReactance_tpqo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", &get_SynchronousMachineTimeConstantReactance_xDirectSubtrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSync", &get_SynchronousMachineTimeConstantReactance_xDirectSync); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectTrans", &get_SynchronousMachineTimeConstantReactance_xDirectTrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", &get_SynchronousMachineTimeConstantReactance_xQuadSubtrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSync", &get_SynchronousMachineTimeConstantReactance_xQuadSync); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadTrans", &get_SynchronousMachineTimeConstantReactance_xQuadTrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.ks", &get_SynchronousMachineTimeConstantReactance_ks); + get_map.emplace("SynchronousMachineTimeConstantReactance.tc", &get_SynchronousMachineTimeConstantReactance_tc); + get_map.emplace("SynchronousMachineTimeConstantReactance.tpdo", &get_SynchronousMachineTimeConstantReactance_tpdo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tppdo", &get_SynchronousMachineTimeConstantReactance_tppdo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tppqo", &get_SynchronousMachineTimeConstantReactance_tppqo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tpqo", &get_SynchronousMachineTimeConstantReactance_tpqo); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSubtrans", &get_SynchronousMachineTimeConstantReactance_xDirectSubtrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSync", &get_SynchronousMachineTimeConstantReactance_xDirectSync); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectTrans", &get_SynchronousMachineTimeConstantReactance_xDirectTrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSubtrans", &get_SynchronousMachineTimeConstantReactance_xQuadSubtrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSync", &get_SynchronousMachineTimeConstantReactance_xQuadSync); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadTrans", &get_SynchronousMachineTimeConstantReactance_xQuadTrans); } void SynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const @@ -516,8 +548,14 @@ void SynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.modelType", &get_SynchronousMachineTimeConstantReactance_modelType); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.rotorType", &get_SynchronousMachineTimeConstantReactance_rotorType); + get_map.emplace("SynchronousMachineTimeConstantReactance.modelType", &get_SynchronousMachineTimeConstantReactance_modelType); + get_map.emplace("SynchronousMachineTimeConstantReactance.rotorType", &get_SynchronousMachineTimeConstantReactance_rotorType); +} + +bool SynchronousMachineTimeConstantReactance::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachineTimeConstantReactance" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachineTimeConstantReactance::declare() @@ -525,6 +563,14 @@ const BaseClassDefiner SynchronousMachineTimeConstantReactance::declare() return BaseClassDefiner(SynchronousMachineTimeConstantReactance::addConstructToMap, SynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap, SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap, SynchronousMachineTimeConstantReactance::debugName); } +std::map SynchronousMachineTimeConstantReactance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDetailed::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineTimeConstantReactance_factory() diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineTimeConstantReactance.hpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineTimeConstantReactance.hpp index 51a881b24..94290495c 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineTimeConstantReactance.hpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineTimeConstantReactance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDetailed.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "RotorKind.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineTimeConstantReactance_factory(); diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineUserDefined.cpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineUserDefined.cpp index 9bdfab19d..ad7469e11 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "SynchronousMachineUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineUserDefined::SynchronousMachineUserDefined() {} SynchronousMachineUserDefined::~SynchronousMachineUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineUserDefined::getClassNamespaceUrl() const { - { "cim:SynchronousMachineUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineUserDefined::getPossibleProfilesForClass() const +const std::string& SynchronousMachineUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineUserDefined::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* SynchronousMachineUserDefined::debugString() const void SynchronousMachineUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineUserDefined", &SynchronousMachineUserDefined_factory); + factory_map.emplace("SynchronousMachineUserDefined", &SynchronousMachineUserDefined_factory); } void SynchronousMachineUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineUserDefined.proprietary", &assign_SynchronousMachineUserDefined_proprietary); + assign_map.emplace("SynchronousMachineUserDefined.proprietary", &assign_SynchronousMachineUserDefined_proprietary); } void SynchronousMachineUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_SynchronousMachineUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("SynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_SynchronousMachineUserDefined_ProprietaryParameterDynamics); } void SynchronousMachineUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineUserDefined.proprietary", &get_SynchronousMachineUserDefined_proprietary); + get_map.emplace("SynchronousMachineUserDefined.proprietary", &get_SynchronousMachineUserDefined_proprietary); } void SynchronousMachineUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void SynchronousMachineUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineUserDefined::declare() { return BaseClassDefiner(SynchronousMachineUserDefined::addConstructToMap, SynchronousMachineUserDefined::addPrimitiveAssignFnsToMap, SynchronousMachineUserDefined::addClassAssignFnsToMap, SynchronousMachineUserDefined::debugName); } +std::map SynchronousMachineUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/SynchronousMachineUserDefined.hpp b/CGMES_2.4.15_27JAN2020/SynchronousMachineUserDefined.hpp index 6a9b6c7f7..9ce056aa5 100644 --- a/CGMES_2.4.15_27JAN2020/SynchronousMachineUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/SynchronousMachineUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TapChanger.cpp b/CGMES_2.4.15_27JAN2020/TapChanger.cpp index eeecf62b0..48238a8c2 100644 --- a/CGMES_2.4.15_27JAN2020/TapChanger.cpp +++ b/CGMES_2.4.15_27JAN2020/TapChanger.cpp @@ -14,44 +14,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChanger(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChanger.SvTapStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TapChanger.TapChangerControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.TapSchedules", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.controlEnabled", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "TapChanger.highStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.lowStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.ltcFlag", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.neutralStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.neutralU", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.normalStep", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChanger.step", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + TapChanger::TapChanger() : SvTapStep(nullptr), TapChangerControl(nullptr) {} TapChanger::~TapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChanger::getClassNamespaceUrl() const { - { "cim:TapChanger.SvTapStep", { CGMESProfile::SV, } }, - { "cim:TapChanger.TapChangerControl", { CGMESProfile::EQ, } }, - { "cim:TapChanger.TapSchedules", { CGMESProfile::EQ, } }, - { "cim:TapChanger.controlEnabled", { CGMESProfile::SSH, } }, - { "cim:TapChanger.highStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.lowStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.ltcFlag", { CGMESProfile::EQ, } }, - { "cim:TapChanger.neutralStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.neutralU", { CGMESProfile::EQ, } }, - { "cim:TapChanger.normalStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.step", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChanger::getPossibleProfilesForClass() const +const std::string& TapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChanger::getPossibleProfilesForAttributes() const +const std::list& TapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvTapStep_TapChanger(BaseClass*, BaseClass*); @@ -361,45 +393,45 @@ const char* TapChanger::debugString() const void TapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChanger", &TapChanger_factory); + factory_map.emplace("TapChanger", &TapChanger_factory); } void TapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChanger.controlEnabled", &assign_TapChanger_controlEnabled); - assign_map.emplace("cim:TapChanger.highStep", &assign_TapChanger_highStep); - assign_map.emplace("cim:TapChanger.lowStep", &assign_TapChanger_lowStep); - assign_map.emplace("cim:TapChanger.ltcFlag", &assign_TapChanger_ltcFlag); - assign_map.emplace("cim:TapChanger.neutralStep", &assign_TapChanger_neutralStep); - assign_map.emplace("cim:TapChanger.neutralU", &assign_TapChanger_neutralU); - assign_map.emplace("cim:TapChanger.normalStep", &assign_TapChanger_normalStep); - assign_map.emplace("cim:TapChanger.step", &assign_TapChanger_step); + assign_map.emplace("TapChanger.controlEnabled", &assign_TapChanger_controlEnabled); + assign_map.emplace("TapChanger.highStep", &assign_TapChanger_highStep); + assign_map.emplace("TapChanger.lowStep", &assign_TapChanger_lowStep); + assign_map.emplace("TapChanger.ltcFlag", &assign_TapChanger_ltcFlag); + assign_map.emplace("TapChanger.neutralStep", &assign_TapChanger_neutralStep); + assign_map.emplace("TapChanger.neutralU", &assign_TapChanger_neutralU); + assign_map.emplace("TapChanger.normalStep", &assign_TapChanger_normalStep); + assign_map.emplace("TapChanger.step", &assign_TapChanger_step); } void TapChanger::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChanger.SvTapStep", &assign_TapChanger_SvTapStep); - assign_map.emplace("cim:TapChanger.TapChangerControl", &assign_TapChanger_TapChangerControl); - assign_map.emplace("cim:TapChanger.TapSchedules", &assign_TapChanger_TapSchedules); + assign_map.emplace("TapChanger.SvTapStep", &assign_TapChanger_SvTapStep); + assign_map.emplace("TapChanger.TapChangerControl", &assign_TapChanger_TapChangerControl); + assign_map.emplace("TapChanger.TapSchedules", &assign_TapChanger_TapSchedules); } void TapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TapChanger.controlEnabled", &get_TapChanger_controlEnabled); - get_map.emplace("cim:TapChanger.highStep", &get_TapChanger_highStep); - get_map.emplace("cim:TapChanger.lowStep", &get_TapChanger_lowStep); - get_map.emplace("cim:TapChanger.ltcFlag", &get_TapChanger_ltcFlag); - get_map.emplace("cim:TapChanger.neutralStep", &get_TapChanger_neutralStep); - get_map.emplace("cim:TapChanger.neutralU", &get_TapChanger_neutralU); - get_map.emplace("cim:TapChanger.normalStep", &get_TapChanger_normalStep); - get_map.emplace("cim:TapChanger.step", &get_TapChanger_step); + get_map.emplace("TapChanger.controlEnabled", &get_TapChanger_controlEnabled); + get_map.emplace("TapChanger.highStep", &get_TapChanger_highStep); + get_map.emplace("TapChanger.lowStep", &get_TapChanger_lowStep); + get_map.emplace("TapChanger.ltcFlag", &get_TapChanger_ltcFlag); + get_map.emplace("TapChanger.neutralStep", &get_TapChanger_neutralStep); + get_map.emplace("TapChanger.neutralU", &get_TapChanger_neutralU); + get_map.emplace("TapChanger.normalStep", &get_TapChanger_normalStep); + get_map.emplace("TapChanger.step", &get_TapChanger_step); } void TapChanger::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TapChanger.TapChangerControl", &get_TapChanger_TapChangerControl); + get_map.emplace("TapChanger.TapChangerControl", &get_TapChanger_TapChangerControl); } void TapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -407,11 +439,25 @@ void TapChanger::addEnumGetFnsToMap(std::map& get_map PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool TapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapChanger::declare() { return BaseClassDefiner(TapChanger::addConstructToMap, TapChanger::addPrimitiveAssignFnsToMap, TapChanger::addClassAssignFnsToMap, TapChanger::debugName); } +std::map TapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChanger_factory() diff --git a/CGMES_2.4.15_27JAN2020/TapChanger.hpp b/CGMES_2.4.15_27JAN2020/TapChanger.hpp index f76517308..5f1807583 100644 --- a/CGMES_2.4.15_27JAN2020/TapChanger.hpp +++ b/CGMES_2.4.15_27JAN2020/TapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChanger_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TapChangerControl.cpp b/CGMES_2.4.15_27JAN2020/TapChangerControl.cpp index 167b0d3a7..a9527bf47 100644 --- a/CGMES_2.4.15_27JAN2020/TapChangerControl.cpp +++ b/CGMES_2.4.15_27JAN2020/TapChangerControl.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChangerControl(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChangerControl.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapChangerControl::TapChangerControl() {} TapChangerControl::~TapChangerControl() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChangerControl::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChangerControl::getClassNamespaceUrl() const { - { "cim:TapChangerControl.TapChanger", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChangerControl::getPossibleProfilesForClass() const +const std::string& TapChangerControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChangerControl::getPossibleProfilesForAttributes() const +const std::list& TapChangerControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChangerControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChangerControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChangerControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_TapChangerControl(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* TapChangerControl::debugString() const void TapChangerControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChangerControl", &TapChangerControl_factory); + factory_map.emplace("TapChangerControl", &TapChangerControl_factory); } void TapChangerControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void TapChangerControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChangerControl.TapChanger", &assign_TapChangerControl_TapChanger); + assign_map.emplace("TapChangerControl.TapChanger", &assign_TapChangerControl_TapChanger); } void TapChangerControl::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void TapChangerControl::addEnumGetFnsToMap(std::map& RegulatingControl::addEnumGetFnsToMap(get_map); } +bool TapChangerControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapChangerControl" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapChangerControl::declare() { return BaseClassDefiner(TapChangerControl::addConstructToMap, TapChangerControl::addPrimitiveAssignFnsToMap, TapChangerControl::addClassAssignFnsToMap, TapChangerControl::debugName); } +std::map TapChangerControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChangerControl_factory() diff --git a/CGMES_2.4.15_27JAN2020/TapChangerControl.hpp b/CGMES_2.4.15_27JAN2020/TapChangerControl.hpp index ee70475dc..6d4e53403 100644 --- a/CGMES_2.4.15_27JAN2020/TapChangerControl.hpp +++ b/CGMES_2.4.15_27JAN2020/TapChangerControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChangerControl_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TapChangerTablePoint.cpp b/CGMES_2.4.15_27JAN2020/TapChangerTablePoint.cpp index 2044a9212..89de93074 100644 --- a/CGMES_2.4.15_27JAN2020/TapChangerTablePoint.cpp +++ b/CGMES_2.4.15_27JAN2020/TapChangerTablePoint.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChangerTablePoint(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChangerTablePoint.b", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.g", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.ratio", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.step", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.x", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapChangerTablePoint::TapChangerTablePoint() {} TapChangerTablePoint::~TapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:TapChangerTablePoint.b", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.g", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.r", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.ratio", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.step", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.x", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& TapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& TapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChangerTablePoint_b(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* TapChangerTablePoint::debugString() const void TapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChangerTablePoint", &TapChangerTablePoint_factory); + factory_map.emplace("TapChangerTablePoint", &TapChangerTablePoint_factory); } void TapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChangerTablePoint.b", &assign_TapChangerTablePoint_b); - assign_map.emplace("cim:TapChangerTablePoint.g", &assign_TapChangerTablePoint_g); - assign_map.emplace("cim:TapChangerTablePoint.r", &assign_TapChangerTablePoint_r); - assign_map.emplace("cim:TapChangerTablePoint.ratio", &assign_TapChangerTablePoint_ratio); - assign_map.emplace("cim:TapChangerTablePoint.step", &assign_TapChangerTablePoint_step); - assign_map.emplace("cim:TapChangerTablePoint.x", &assign_TapChangerTablePoint_x); + assign_map.emplace("TapChangerTablePoint.b", &assign_TapChangerTablePoint_b); + assign_map.emplace("TapChangerTablePoint.g", &assign_TapChangerTablePoint_g); + assign_map.emplace("TapChangerTablePoint.r", &assign_TapChangerTablePoint_r); + assign_map.emplace("TapChangerTablePoint.ratio", &assign_TapChangerTablePoint_ratio); + assign_map.emplace("TapChangerTablePoint.step", &assign_TapChangerTablePoint_step); + assign_map.emplace("TapChangerTablePoint.x", &assign_TapChangerTablePoint_x); } void TapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void TapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TapChangerTablePoint.b", &get_TapChangerTablePoint_b); - get_map.emplace("cim:TapChangerTablePoint.g", &get_TapChangerTablePoint_g); - get_map.emplace("cim:TapChangerTablePoint.r", &get_TapChangerTablePoint_r); - get_map.emplace("cim:TapChangerTablePoint.ratio", &get_TapChangerTablePoint_ratio); - get_map.emplace("cim:TapChangerTablePoint.step", &get_TapChangerTablePoint_step); - get_map.emplace("cim:TapChangerTablePoint.x", &get_TapChangerTablePoint_x); + get_map.emplace("TapChangerTablePoint.b", &get_TapChangerTablePoint_b); + get_map.emplace("TapChangerTablePoint.g", &get_TapChangerTablePoint_g); + get_map.emplace("TapChangerTablePoint.r", &get_TapChangerTablePoint_r); + get_map.emplace("TapChangerTablePoint.ratio", &get_TapChangerTablePoint_ratio); + get_map.emplace("TapChangerTablePoint.step", &get_TapChangerTablePoint_step); + get_map.emplace("TapChangerTablePoint.x", &get_TapChangerTablePoint_x); } void TapChangerTablePoint::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void TapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TapChangerTablePoint::declare() { return BaseClassDefiner(TapChangerTablePoint::addConstructToMap, TapChangerTablePoint::addPrimitiveAssignFnsToMap, TapChangerTablePoint::addClassAssignFnsToMap, TapChangerTablePoint::debugName); } +std::map TapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChangerTablePoint_factory() diff --git a/CGMES_2.4.15_27JAN2020/TapChangerTablePoint.hpp b/CGMES_2.4.15_27JAN2020/TapChangerTablePoint.hpp index aa6327644..5502418a9 100644 --- a/CGMES_2.4.15_27JAN2020/TapChangerTablePoint.hpp +++ b/CGMES_2.4.15_27JAN2020/TapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "PerCent.hpp" #include "Simple_Float.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChangerTablePoint_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TapSchedule.cpp b/CGMES_2.4.15_27JAN2020/TapSchedule.cpp index 039a79967..38ab32889 100644 --- a/CGMES_2.4.15_27JAN2020/TapSchedule.cpp +++ b/CGMES_2.4.15_27JAN2020/TapSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapSchedule(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapSchedule.TapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapSchedule::TapSchedule() : TapChanger(nullptr) {} TapSchedule::~TapSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& TapSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapSchedule::getClassNamespaceUrl() const { - { "cim:TapSchedule.TapChanger", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapSchedule::getPossibleProfilesForClass() const +const std::string& TapSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapSchedule::getPossibleProfilesForAttributes() const +const std::list& TapSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_TapSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* TapSchedule::debugString() const void TapSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapSchedule", &TapSchedule_factory); + factory_map.emplace("TapSchedule", &TapSchedule_factory); } void TapSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void TapSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapSchedule.TapChanger", &assign_TapSchedule_TapChanger); + assign_map.emplace("TapSchedule.TapChanger", &assign_TapSchedule_TapChanger); } void TapSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void TapSchedule::addPrimitiveGetFnsToMap(std::map& g void TapSchedule::addClassGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TapSchedule.TapChanger", &get_TapSchedule_TapChanger); + get_map.emplace("TapSchedule.TapChanger", &get_TapSchedule_TapChanger); } void TapSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void TapSchedule::addEnumGetFnsToMap(std::map& get_ma SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool TapSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapSchedule::declare() { return BaseClassDefiner(TapSchedule::addConstructToMap, TapSchedule::addPrimitiveAssignFnsToMap, TapSchedule::addClassAssignFnsToMap, TapSchedule::debugName); } +std::map TapSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapSchedule_factory() diff --git a/CGMES_2.4.15_27JAN2020/TapSchedule.hpp b/CGMES_2.4.15_27JAN2020/TapSchedule.hpp index 70565884c..9fb6edc8b 100644 --- a/CGMES_2.4.15_27JAN2020/TapSchedule.hpp +++ b/CGMES_2.4.15_27JAN2020/TapSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapSchedule_factory(); diff --git a/CGMES_2.4.15_27JAN2020/Terminal.cpp b/CGMES_2.4.15_27JAN2020/Terminal.cpp index 25d0c3a25..53edba775 100644 --- a/CGMES_2.4.15_27JAN2020/Terminal.cpp +++ b/CGMES_2.4.15_27JAN2020/Terminal.cpp @@ -21,48 +21,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Terminal(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + CGMESProfile::EQ_BD, + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Terminal.ConductingEquipment", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } } }, + { "Terminal.ConnectivityNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.ConverterDCSides", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.HasFirstMutualCoupling", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.HasSecondMutualCoupling", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.RegulatingControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "Terminal.SvPowerFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "Terminal.TieFlow", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.TopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "Terminal.TransformerEnd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "Terminal.phases", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Terminal::Terminal() : ConductingEquipment(nullptr), ConnectivityNode(nullptr), RegulatingControl(nullptr), SvPowerFlow(nullptr), TopologicalNode(nullptr) {} Terminal::~Terminal() {} -static const std::list PossibleProfilesForClass = +const std::list& Terminal::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ_BD, - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Terminal::getClassNamespaceUrl() const { - { "cim:Terminal.ConductingEquipment", { CGMESProfile::DY, CGMESProfile::EQ_BD, CGMESProfile::EQ, } }, - { "cim:Terminal.ConnectivityNode", { CGMESProfile::EQ, } }, - { "cim:Terminal.ConverterDCSides", { CGMESProfile::EQ, } }, - { "cim:Terminal.HasFirstMutualCoupling", { CGMESProfile::EQ, } }, - { "cim:Terminal.HasSecondMutualCoupling", { CGMESProfile::EQ, } }, - { "cim:Terminal.RegulatingControl", { CGMESProfile::EQ, } }, - { "cim:Terminal.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:Terminal.SvPowerFlow", { CGMESProfile::SV, } }, - { "cim:Terminal.TieFlow", { CGMESProfile::EQ, } }, - { "cim:Terminal.TopologicalNode", { CGMESProfile::TP, } }, - { "cim:Terminal.TransformerEnd", { CGMESProfile::EQ, } }, - { "cim:Terminal.phases", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Terminal::getPossibleProfilesForClass() const +const std::string& Terminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Terminal::getPossibleProfilesForAttributes() const +const std::list& Terminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Terminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Terminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Terminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_Terminals(BaseClass*, BaseClass*); @@ -339,27 +371,27 @@ const char* Terminal::debugString() const void Terminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Terminal", &Terminal_factory); + factory_map.emplace("Terminal", &Terminal_factory); } void Terminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Terminal.phases", &assign_Terminal_phases); + assign_map.emplace("Terminal.phases", &assign_Terminal_phases); } void Terminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Terminal.ConductingEquipment", &assign_Terminal_ConductingEquipment); - assign_map.emplace("cim:Terminal.ConnectivityNode", &assign_Terminal_ConnectivityNode); - assign_map.emplace("cim:Terminal.ConverterDCSides", &assign_Terminal_ConverterDCSides); - assign_map.emplace("cim:Terminal.HasFirstMutualCoupling", &assign_Terminal_HasFirstMutualCoupling); - assign_map.emplace("cim:Terminal.HasSecondMutualCoupling", &assign_Terminal_HasSecondMutualCoupling); - assign_map.emplace("cim:Terminal.RegulatingControl", &assign_Terminal_RegulatingControl); - assign_map.emplace("cim:Terminal.RemoteInputSignal", &assign_Terminal_RemoteInputSignal); - assign_map.emplace("cim:Terminal.SvPowerFlow", &assign_Terminal_SvPowerFlow); - assign_map.emplace("cim:Terminal.TieFlow", &assign_Terminal_TieFlow); - assign_map.emplace("cim:Terminal.TopologicalNode", &assign_Terminal_TopologicalNode); - assign_map.emplace("cim:Terminal.TransformerEnd", &assign_Terminal_TransformerEnd); + assign_map.emplace("Terminal.ConductingEquipment", &assign_Terminal_ConductingEquipment); + assign_map.emplace("Terminal.ConnectivityNode", &assign_Terminal_ConnectivityNode); + assign_map.emplace("Terminal.ConverterDCSides", &assign_Terminal_ConverterDCSides); + assign_map.emplace("Terminal.HasFirstMutualCoupling", &assign_Terminal_HasFirstMutualCoupling); + assign_map.emplace("Terminal.HasSecondMutualCoupling", &assign_Terminal_HasSecondMutualCoupling); + assign_map.emplace("Terminal.RegulatingControl", &assign_Terminal_RegulatingControl); + assign_map.emplace("Terminal.RemoteInputSignal", &assign_Terminal_RemoteInputSignal); + assign_map.emplace("Terminal.SvPowerFlow", &assign_Terminal_SvPowerFlow); + assign_map.emplace("Terminal.TieFlow", &assign_Terminal_TieFlow); + assign_map.emplace("Terminal.TopologicalNode", &assign_Terminal_TopologicalNode); + assign_map.emplace("Terminal.TransformerEnd", &assign_Terminal_TransformerEnd); } void Terminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -370,15 +402,21 @@ void Terminal::addPrimitiveGetFnsToMap(std::map& get_ void Terminal::addClassGetFnsToMap(std::map& get_map) const { ACDCTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Terminal.ConductingEquipment", &get_Terminal_ConductingEquipment); - get_map.emplace("cim:Terminal.ConnectivityNode", &get_Terminal_ConnectivityNode); - get_map.emplace("cim:Terminal.TopologicalNode", &get_Terminal_TopologicalNode); + get_map.emplace("Terminal.ConductingEquipment", &get_Terminal_ConductingEquipment); + get_map.emplace("Terminal.ConnectivityNode", &get_Terminal_ConnectivityNode); + get_map.emplace("Terminal.TopologicalNode", &get_Terminal_TopologicalNode); } void Terminal::addEnumGetFnsToMap(std::map& get_map) const { ACDCTerminal::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Terminal.phases", &get_Terminal_phases); + get_map.emplace("Terminal.phases", &get_Terminal_phases); +} + +bool Terminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Terminal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Terminal::declare() @@ -386,6 +424,14 @@ const BaseClassDefiner Terminal::declare() return BaseClassDefiner(Terminal::addConstructToMap, Terminal::addPrimitiveAssignFnsToMap, Terminal::addClassAssignFnsToMap, Terminal::debugName); } +std::map Terminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Terminal_factory() diff --git a/CGMES_2.4.15_27JAN2020/Terminal.hpp b/CGMES_2.4.15_27JAN2020/Terminal.hpp index 58895e261..d2a2fbc22 100644 --- a/CGMES_2.4.15_27JAN2020/Terminal.hpp +++ b/CGMES_2.4.15_27JAN2020/Terminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PhaseCode.hpp" namespace CIMPP @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Terminal_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TextDiagramObject.cpp b/CGMES_2.4.15_27JAN2020/TextDiagramObject.cpp index 684542b39..e7492c696 100644 --- a/CGMES_2.4.15_27JAN2020/TextDiagramObject.cpp +++ b/CGMES_2.4.15_27JAN2020/TextDiagramObject.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TextDiagramObject(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TextDiagramObject.text", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + TextDiagramObject::TextDiagramObject() {} TextDiagramObject::~TextDiagramObject() {} -static const std::list PossibleProfilesForClass = +const std::list& TextDiagramObject::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TextDiagramObject::getClassNamespaceUrl() const { - { "cim:TextDiagramObject.text", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TextDiagramObject::getPossibleProfilesForClass() const +const std::string& TextDiagramObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TextDiagramObject::getPossibleProfilesForAttributes() const +const std::list& TextDiagramObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiagramObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TextDiagramObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TextDiagramObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TextDiagramObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TextDiagramObject_text(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* TextDiagramObject::debugString() const void TextDiagramObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TextDiagramObject", &TextDiagramObject_factory); + factory_map.emplace("TextDiagramObject", &TextDiagramObject_factory); } void TextDiagramObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TextDiagramObject.text", &assign_TextDiagramObject_text); + assign_map.emplace("TextDiagramObject.text", &assign_TextDiagramObject_text); } void TextDiagramObject::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void TextDiagramObject::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiagramObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TextDiagramObject.text", &get_TextDiagramObject_text); + get_map.emplace("TextDiagramObject.text", &get_TextDiagramObject_text); } void TextDiagramObject::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void TextDiagramObject::addEnumGetFnsToMap(std::map& DiagramObject::addEnumGetFnsToMap(get_map); } +bool TextDiagramObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TextDiagramObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TextDiagramObject::declare() { return BaseClassDefiner(TextDiagramObject::addConstructToMap, TextDiagramObject::addPrimitiveAssignFnsToMap, TextDiagramObject::addClassAssignFnsToMap, TextDiagramObject::debugName); } +std::map TextDiagramObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiagramObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TextDiagramObject_factory() diff --git a/CGMES_2.4.15_27JAN2020/TextDiagramObject.hpp b/CGMES_2.4.15_27JAN2020/TextDiagramObject.hpp index 188381ff3..c62abdc11 100644 --- a/CGMES_2.4.15_27JAN2020/TextDiagramObject.hpp +++ b/CGMES_2.4.15_27JAN2020/TextDiagramObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiagramObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TextDiagramObject_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ThermalGeneratingUnit.cpp b/CGMES_2.4.15_27JAN2020/ThermalGeneratingUnit.cpp index ee36322aa..833073d42 100644 --- a/CGMES_2.4.15_27JAN2020/ThermalGeneratingUnit.cpp +++ b/CGMES_2.4.15_27JAN2020/ThermalGeneratingUnit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ThermalGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ThermalGeneratingUnit.FossilFuels", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ThermalGeneratingUnit::ThermalGeneratingUnit() {} ThermalGeneratingUnit::~ThermalGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& ThermalGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ThermalGeneratingUnit::getClassNamespaceUrl() const { - { "cim:ThermalGeneratingUnit.FossilFuels", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ThermalGeneratingUnit::getPossibleProfilesForClass() const +const std::string& ThermalGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ThermalGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& ThermalGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ThermalGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ThermalGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ThermalGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_FossilFuel_ThermalGeneratingUnit(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* ThermalGeneratingUnit::debugString() const void ThermalGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ThermalGeneratingUnit", &ThermalGeneratingUnit_factory); + factory_map.emplace("ThermalGeneratingUnit", &ThermalGeneratingUnit_factory); } void ThermalGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void ThermalGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ThermalGeneratingUnit.FossilFuels", &assign_ThermalGeneratingUnit_FossilFuels); + assign_map.emplace("ThermalGeneratingUnit.FossilFuels", &assign_ThermalGeneratingUnit_FossilFuels); } void ThermalGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void ThermalGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ThermalGeneratingUnit::declare() { return BaseClassDefiner(ThermalGeneratingUnit::addConstructToMap, ThermalGeneratingUnit::addPrimitiveAssignFnsToMap, ThermalGeneratingUnit::addClassAssignFnsToMap, ThermalGeneratingUnit::debugName); } +std::map ThermalGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ThermalGeneratingUnit_factory() diff --git a/CGMES_2.4.15_27JAN2020/ThermalGeneratingUnit.hpp b/CGMES_2.4.15_27JAN2020/ThermalGeneratingUnit.hpp index 2bbb34a5f..a53f99495 100644 --- a/CGMES_2.4.15_27JAN2020/ThermalGeneratingUnit.hpp +++ b/CGMES_2.4.15_27JAN2020/ThermalGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ThermalGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TieFlow.cpp b/CGMES_2.4.15_27JAN2020/TieFlow.cpp index 324dce327..08751bb20 100644 --- a/CGMES_2.4.15_27JAN2020/TieFlow.cpp +++ b/CGMES_2.4.15_27JAN2020/TieFlow.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TieFlow(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TieFlow.ControlArea", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TieFlow.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TieFlow.positiveFlowIn", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TieFlow::TieFlow() : ControlArea(nullptr), Terminal(nullptr) {} TieFlow::~TieFlow() {} -static const std::list PossibleProfilesForClass = +const std::list& TieFlow::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TieFlow::getClassNamespaceUrl() const { - { "cim:TieFlow.ControlArea", { CGMESProfile::EQ, } }, - { "cim:TieFlow.Terminal", { CGMESProfile::EQ, } }, - { "cim:TieFlow.positiveFlowIn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TieFlow::getPossibleProfilesForClass() const +const std::string& TieFlow::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TieFlow::getPossibleProfilesForAttributes() const +const std::list& TieFlow::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TieFlow::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TieFlow::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TieFlow::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_TieFlow(BaseClass*, BaseClass*); @@ -142,31 +174,31 @@ const char* TieFlow::debugString() const void TieFlow::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TieFlow", &TieFlow_factory); + factory_map.emplace("TieFlow", &TieFlow_factory); } void TieFlow::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TieFlow.positiveFlowIn", &assign_TieFlow_positiveFlowIn); + assign_map.emplace("TieFlow.positiveFlowIn", &assign_TieFlow_positiveFlowIn); } void TieFlow::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TieFlow.ControlArea", &assign_TieFlow_ControlArea); - assign_map.emplace("cim:TieFlow.Terminal", &assign_TieFlow_Terminal); + assign_map.emplace("TieFlow.ControlArea", &assign_TieFlow_ControlArea); + assign_map.emplace("TieFlow.Terminal", &assign_TieFlow_Terminal); } void TieFlow::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TieFlow.positiveFlowIn", &get_TieFlow_positiveFlowIn); + get_map.emplace("TieFlow.positiveFlowIn", &get_TieFlow_positiveFlowIn); } void TieFlow::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TieFlow.ControlArea", &get_TieFlow_ControlArea); - get_map.emplace("cim:TieFlow.Terminal", &get_TieFlow_Terminal); + get_map.emplace("TieFlow.ControlArea", &get_TieFlow_ControlArea); + get_map.emplace("TieFlow.Terminal", &get_TieFlow_Terminal); } void TieFlow::addEnumGetFnsToMap(std::map& get_map) const @@ -174,11 +206,25 @@ void TieFlow::addEnumGetFnsToMap(std::map& get_map) c BaseClass::addEnumGetFnsToMap(get_map); } +bool TieFlow::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TieFlow" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TieFlow::declare() { return BaseClassDefiner(TieFlow::addConstructToMap, TieFlow::addPrimitiveAssignFnsToMap, TieFlow::addClassAssignFnsToMap, TieFlow::debugName); } +std::map TieFlow::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TieFlow_factory() diff --git a/CGMES_2.4.15_27JAN2020/TieFlow.hpp b/CGMES_2.4.15_27JAN2020/TieFlow.hpp index b25ac939b..60fbe5ced 100644 --- a/CGMES_2.4.15_27JAN2020/TieFlow.hpp +++ b/CGMES_2.4.15_27JAN2020/TieFlow.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TieFlow_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TopologicalIsland.cpp b/CGMES_2.4.15_27JAN2020/TopologicalIsland.cpp index 46b353666..3b19dc682 100644 --- a/CGMES_2.4.15_27JAN2020/TopologicalIsland.cpp +++ b/CGMES_2.4.15_27JAN2020/TopologicalIsland.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologicalIsland(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologicalIsland.AngleRefTopologicalNode", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalIsland.TopologicalNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + TopologicalIsland::TopologicalIsland() : AngleRefTopologicalNode(nullptr) {} TopologicalIsland::~TopologicalIsland() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologicalIsland::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologicalIsland::getClassNamespaceUrl() const { - { "cim:TopologicalIsland.AngleRefTopologicalNode", { CGMESProfile::SV, } }, - { "cim:TopologicalIsland.TopologicalNodes", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologicalIsland::getPossibleProfilesForClass() const +const std::string& TopologicalIsland::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologicalIsland::getPossibleProfilesForAttributes() const +const std::list& TopologicalIsland::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologicalIsland::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologicalIsland::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologicalIsland::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_AngleRefTopologicalIsland(BaseClass*, BaseClass*); @@ -108,7 +140,7 @@ const char* TopologicalIsland::debugString() const void TopologicalIsland::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologicalIsland", &TopologicalIsland_factory); + factory_map.emplace("TopologicalIsland", &TopologicalIsland_factory); } void TopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -117,8 +149,8 @@ void TopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalIsland.AngleRefTopologicalNode", &assign_TopologicalIsland_AngleRefTopologicalNode); - assign_map.emplace("cim:TopologicalIsland.TopologicalNodes", &assign_TopologicalIsland_TopologicalNodes); + assign_map.emplace("TopologicalIsland.AngleRefTopologicalNode", &assign_TopologicalIsland_AngleRefTopologicalNode); + assign_map.emplace("TopologicalIsland.TopologicalNodes", &assign_TopologicalIsland_TopologicalNodes); } void TopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -129,8 +161,8 @@ void TopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalIsland.AngleRefTopologicalNode", &get_TopologicalIsland_AngleRefTopologicalNode); - get_map.emplace("cim:TopologicalIsland.TopologicalNodes", &get_TopologicalIsland_TopologicalNodes); + get_map.emplace("TopologicalIsland.AngleRefTopologicalNode", &get_TopologicalIsland_AngleRefTopologicalNode); + get_map.emplace("TopologicalIsland.TopologicalNodes", &get_TopologicalIsland_TopologicalNodes); } void TopologicalIsland::addEnumGetFnsToMap(std::map& get_map) const @@ -138,11 +170,25 @@ void TopologicalIsland::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TopologicalIsland::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologicalIsland" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologicalIsland::declare() { return BaseClassDefiner(TopologicalIsland::addConstructToMap, TopologicalIsland::addPrimitiveAssignFnsToMap, TopologicalIsland::addClassAssignFnsToMap, TopologicalIsland::debugName); } +std::map TopologicalIsland::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologicalIsland_factory() diff --git a/CGMES_2.4.15_27JAN2020/TopologicalIsland.hpp b/CGMES_2.4.15_27JAN2020/TopologicalIsland.hpp index a6c5a898c..312406394 100644 --- a/CGMES_2.4.15_27JAN2020/TopologicalIsland.hpp +++ b/CGMES_2.4.15_27JAN2020/TopologicalIsland.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologicalIsland_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TopologicalNode.cpp b/CGMES_2.4.15_27JAN2020/TopologicalNode.cpp index 962a0d94b..cdaacb4d5 100644 --- a/CGMES_2.4.15_27JAN2020/TopologicalNode.cpp +++ b/CGMES_2.4.15_27JAN2020/TopologicalNode.cpp @@ -19,49 +19,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologicalNode(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::SV, + CGMESProfile::TP_BD, + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologicalNode.AngleRefTopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ConnectivityNodeContainer", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ConnectivityNodes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP_BD, CGMESProfile::TP, } } }, + { "TopologicalNode.ReportingGroup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "TopologicalNode.SvInjection", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.SvVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::TP, } } }, + { "TopologicalNode.TopologicalIsland", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "TopologicalNode.boundaryPoint", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.fromEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndIsoCode", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologicalNode.toEndNameTso", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + }; + return ClassAttrDetailsMap; +} + TopologicalNode::TopologicalNode() : AngleRefTopologicalIsland(nullptr), BaseVoltage(nullptr), ConnectivityNodeContainer(nullptr), ReportingGroup(nullptr), SvInjection(nullptr), SvVoltage(nullptr), TopologicalIsland(nullptr) {} TopologicalNode::~TopologicalNode() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologicalNode::getAttributeNames() const { - CGMESProfile::SV, - CGMESProfile::TP_BD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologicalNode::getClassNamespaceUrl() const { - { "cim:TopologicalNode.AngleRefTopologicalIsland", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.BaseVoltage", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ConnectivityNodeContainer", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ConnectivityNodes", { CGMESProfile::TP_BD, CGMESProfile::TP, } }, - { "cim:TopologicalNode.ReportingGroup", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.SvInjection", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.SvVoltage", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.Terminal", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.TopologicalIsland", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.boundaryPoint", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndIsoCode", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndName", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.fromEndNameTso", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndIsoCode", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndName", { CGMESProfile::TP_BD, } }, - { "cim:TopologicalNode.toEndNameTso", { CGMESProfile::TP_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologicalNode::getPossibleProfilesForClass() const +const std::string& TopologicalNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologicalNode::getPossibleProfilesForAttributes() const +const std::list& TopologicalNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologicalNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologicalNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologicalNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalIsland_AngleRefTopologicalNode(BaseClass*, BaseClass*); @@ -476,51 +508,51 @@ const char* TopologicalNode::debugString() const void TopologicalNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologicalNode", &TopologicalNode_factory); + factory_map.emplace("TopologicalNode", &TopologicalNode_factory); } void TopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalNode.boundaryPoint", &assign_TopologicalNode_boundaryPoint); - assign_map.emplace("cim:TopologicalNode.fromEndIsoCode", &assign_TopologicalNode_fromEndIsoCode); - assign_map.emplace("cim:TopologicalNode.fromEndName", &assign_TopologicalNode_fromEndName); - assign_map.emplace("cim:TopologicalNode.fromEndNameTso", &assign_TopologicalNode_fromEndNameTso); - assign_map.emplace("cim:TopologicalNode.toEndIsoCode", &assign_TopologicalNode_toEndIsoCode); - assign_map.emplace("cim:TopologicalNode.toEndName", &assign_TopologicalNode_toEndName); - assign_map.emplace("cim:TopologicalNode.toEndNameTso", &assign_TopologicalNode_toEndNameTso); + assign_map.emplace("TopologicalNode.boundaryPoint", &assign_TopologicalNode_boundaryPoint); + assign_map.emplace("TopologicalNode.fromEndIsoCode", &assign_TopologicalNode_fromEndIsoCode); + assign_map.emplace("TopologicalNode.fromEndName", &assign_TopologicalNode_fromEndName); + assign_map.emplace("TopologicalNode.fromEndNameTso", &assign_TopologicalNode_fromEndNameTso); + assign_map.emplace("TopologicalNode.toEndIsoCode", &assign_TopologicalNode_toEndIsoCode); + assign_map.emplace("TopologicalNode.toEndName", &assign_TopologicalNode_toEndName); + assign_map.emplace("TopologicalNode.toEndNameTso", &assign_TopologicalNode_toEndNameTso); } void TopologicalNode::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalNode.AngleRefTopologicalIsland", &assign_TopologicalNode_AngleRefTopologicalIsland); - assign_map.emplace("cim:TopologicalNode.BaseVoltage", &assign_TopologicalNode_BaseVoltage); - assign_map.emplace("cim:TopologicalNode.ConnectivityNodeContainer", &assign_TopologicalNode_ConnectivityNodeContainer); - assign_map.emplace("cim:TopologicalNode.ConnectivityNodes", &assign_TopologicalNode_ConnectivityNodes); - assign_map.emplace("cim:TopologicalNode.ReportingGroup", &assign_TopologicalNode_ReportingGroup); - assign_map.emplace("cim:TopologicalNode.SvInjection", &assign_TopologicalNode_SvInjection); - assign_map.emplace("cim:TopologicalNode.SvVoltage", &assign_TopologicalNode_SvVoltage); - assign_map.emplace("cim:TopologicalNode.Terminal", &assign_TopologicalNode_Terminal); - assign_map.emplace("cim:TopologicalNode.TopologicalIsland", &assign_TopologicalNode_TopologicalIsland); + assign_map.emplace("TopologicalNode.AngleRefTopologicalIsland", &assign_TopologicalNode_AngleRefTopologicalIsland); + assign_map.emplace("TopologicalNode.BaseVoltage", &assign_TopologicalNode_BaseVoltage); + assign_map.emplace("TopologicalNode.ConnectivityNodeContainer", &assign_TopologicalNode_ConnectivityNodeContainer); + assign_map.emplace("TopologicalNode.ConnectivityNodes", &assign_TopologicalNode_ConnectivityNodes); + assign_map.emplace("TopologicalNode.ReportingGroup", &assign_TopologicalNode_ReportingGroup); + assign_map.emplace("TopologicalNode.SvInjection", &assign_TopologicalNode_SvInjection); + assign_map.emplace("TopologicalNode.SvVoltage", &assign_TopologicalNode_SvVoltage); + assign_map.emplace("TopologicalNode.Terminal", &assign_TopologicalNode_Terminal); + assign_map.emplace("TopologicalNode.TopologicalIsland", &assign_TopologicalNode_TopologicalIsland); } void TopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalNode.boundaryPoint", &get_TopologicalNode_boundaryPoint); - get_map.emplace("cim:TopologicalNode.fromEndIsoCode", &get_TopologicalNode_fromEndIsoCode); - get_map.emplace("cim:TopologicalNode.fromEndName", &get_TopologicalNode_fromEndName); - get_map.emplace("cim:TopologicalNode.fromEndNameTso", &get_TopologicalNode_fromEndNameTso); - get_map.emplace("cim:TopologicalNode.toEndIsoCode", &get_TopologicalNode_toEndIsoCode); - get_map.emplace("cim:TopologicalNode.toEndName", &get_TopologicalNode_toEndName); - get_map.emplace("cim:TopologicalNode.toEndNameTso", &get_TopologicalNode_toEndNameTso); + get_map.emplace("TopologicalNode.boundaryPoint", &get_TopologicalNode_boundaryPoint); + get_map.emplace("TopologicalNode.fromEndIsoCode", &get_TopologicalNode_fromEndIsoCode); + get_map.emplace("TopologicalNode.fromEndName", &get_TopologicalNode_fromEndName); + get_map.emplace("TopologicalNode.fromEndNameTso", &get_TopologicalNode_fromEndNameTso); + get_map.emplace("TopologicalNode.toEndIsoCode", &get_TopologicalNode_toEndIsoCode); + get_map.emplace("TopologicalNode.toEndName", &get_TopologicalNode_toEndName); + get_map.emplace("TopologicalNode.toEndNameTso", &get_TopologicalNode_toEndNameTso); } void TopologicalNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalNode.BaseVoltage", &get_TopologicalNode_BaseVoltage); - get_map.emplace("cim:TopologicalNode.ConnectivityNodeContainer", &get_TopologicalNode_ConnectivityNodeContainer); - get_map.emplace("cim:TopologicalNode.ReportingGroup", &get_TopologicalNode_ReportingGroup); + get_map.emplace("TopologicalNode.BaseVoltage", &get_TopologicalNode_BaseVoltage); + get_map.emplace("TopologicalNode.ConnectivityNodeContainer", &get_TopologicalNode_ConnectivityNodeContainer); + get_map.emplace("TopologicalNode.ReportingGroup", &get_TopologicalNode_ReportingGroup); } void TopologicalNode::addEnumGetFnsToMap(std::map& get_map) const @@ -528,11 +560,25 @@ void TopologicalNode::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TopologicalNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologicalNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologicalNode::declare() { return BaseClassDefiner(TopologicalNode::addConstructToMap, TopologicalNode::addPrimitiveAssignFnsToMap, TopologicalNode::addClassAssignFnsToMap, TopologicalNode::debugName); } +std::map TopologicalNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologicalNode_factory() diff --git a/CGMES_2.4.15_27JAN2020/TopologicalNode.hpp b/CGMES_2.4.15_27JAN2020/TopologicalNode.hpp index b9eecea3e..361b52e5d 100644 --- a/CGMES_2.4.15_27JAN2020/TopologicalNode.hpp +++ b/CGMES_2.4.15_27JAN2020/TopologicalNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "String.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologicalNode_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TopologyBoundaryVersion.cpp b/CGMES_2.4.15_27JAN2020/TopologyBoundaryVersion.cpp index ca78ca44d..f3f67b1df 100644 --- a/CGMES_2.4.15_27JAN2020/TopologyBoundaryVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/TopologyBoundaryVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologyBoundaryVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::TP_BD, + }, + CGMESProfile::TP_BD + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologyBoundaryVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + { "TopologyBoundaryVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP_BD, } } }, + }; + return ClassAttrDetailsMap; +} + TopologyBoundaryVersion::TopologyBoundaryVersion() {} TopologyBoundaryVersion::~TopologyBoundaryVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologyBoundaryVersion::getAttributeNames() const { - CGMESProfile::TP_BD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologyBoundaryVersion::getClassNamespaceUrl() const { - { "cim:TopologyBoundaryVersion.baseUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.baseURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.date", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.differenceModelURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.entsoeUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.entsoeURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.modelDescriptionURI", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.namespaceRDF", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.namespaceUML", { CGMESProfile::TP_BD, } }, - { "cim:TopologyBoundaryVersion.shortName", { CGMESProfile::TP_BD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologyBoundaryVersion::getPossibleProfilesForClass() const +const std::string& TopologyBoundaryVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologyBoundaryVersion::getPossibleProfilesForAttributes() const +const std::list& TopologyBoundaryVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologyBoundaryVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologyBoundaryVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologyBoundaryVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologyBoundaryVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* TopologyBoundaryVersion::debugString() const void TopologyBoundaryVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologyBoundaryVersion", &TopologyBoundaryVersion_factory); + factory_map.emplace("TopologyBoundaryVersion", &TopologyBoundaryVersion_factory); } void TopologyBoundaryVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologyBoundaryVersion.baseUML", &assign_TopologyBoundaryVersion_baseUML); - assign_map.emplace("cim:TopologyBoundaryVersion.baseURI", &assign_TopologyBoundaryVersion_baseURI); - assign_map.emplace("cim:TopologyBoundaryVersion.date", &assign_TopologyBoundaryVersion_date); - assign_map.emplace("cim:TopologyBoundaryVersion.differenceModelURI", &assign_TopologyBoundaryVersion_differenceModelURI); - assign_map.emplace("cim:TopologyBoundaryVersion.entsoeUML", &assign_TopologyBoundaryVersion_entsoeUML); - assign_map.emplace("cim:TopologyBoundaryVersion.entsoeURI", &assign_TopologyBoundaryVersion_entsoeURI); - assign_map.emplace("cim:TopologyBoundaryVersion.modelDescriptionURI", &assign_TopologyBoundaryVersion_modelDescriptionURI); - assign_map.emplace("cim:TopologyBoundaryVersion.namespaceRDF", &assign_TopologyBoundaryVersion_namespaceRDF); - assign_map.emplace("cim:TopologyBoundaryVersion.namespaceUML", &assign_TopologyBoundaryVersion_namespaceUML); - assign_map.emplace("cim:TopologyBoundaryVersion.shortName", &assign_TopologyBoundaryVersion_shortName); + assign_map.emplace("TopologyBoundaryVersion.baseUML", &assign_TopologyBoundaryVersion_baseUML); + assign_map.emplace("TopologyBoundaryVersion.baseURI", &assign_TopologyBoundaryVersion_baseURI); + assign_map.emplace("TopologyBoundaryVersion.date", &assign_TopologyBoundaryVersion_date); + assign_map.emplace("TopologyBoundaryVersion.differenceModelURI", &assign_TopologyBoundaryVersion_differenceModelURI); + assign_map.emplace("TopologyBoundaryVersion.entsoeUML", &assign_TopologyBoundaryVersion_entsoeUML); + assign_map.emplace("TopologyBoundaryVersion.entsoeURI", &assign_TopologyBoundaryVersion_entsoeURI); + assign_map.emplace("TopologyBoundaryVersion.modelDescriptionURI", &assign_TopologyBoundaryVersion_modelDescriptionURI); + assign_map.emplace("TopologyBoundaryVersion.namespaceRDF", &assign_TopologyBoundaryVersion_namespaceRDF); + assign_map.emplace("TopologyBoundaryVersion.namespaceUML", &assign_TopologyBoundaryVersion_namespaceUML); + assign_map.emplace("TopologyBoundaryVersion.shortName", &assign_TopologyBoundaryVersion_shortName); } void TopologyBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void TopologyBoundaryVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologyBoundaryVersion.baseUML", &get_TopologyBoundaryVersion_baseUML); - get_map.emplace("cim:TopologyBoundaryVersion.baseURI", &get_TopologyBoundaryVersion_baseURI); - get_map.emplace("cim:TopologyBoundaryVersion.date", &get_TopologyBoundaryVersion_date); - get_map.emplace("cim:TopologyBoundaryVersion.differenceModelURI", &get_TopologyBoundaryVersion_differenceModelURI); - get_map.emplace("cim:TopologyBoundaryVersion.entsoeUML", &get_TopologyBoundaryVersion_entsoeUML); - get_map.emplace("cim:TopologyBoundaryVersion.entsoeURI", &get_TopologyBoundaryVersion_entsoeURI); - get_map.emplace("cim:TopologyBoundaryVersion.modelDescriptionURI", &get_TopologyBoundaryVersion_modelDescriptionURI); - get_map.emplace("cim:TopologyBoundaryVersion.namespaceRDF", &get_TopologyBoundaryVersion_namespaceRDF); - get_map.emplace("cim:TopologyBoundaryVersion.namespaceUML", &get_TopologyBoundaryVersion_namespaceUML); - get_map.emplace("cim:TopologyBoundaryVersion.shortName", &get_TopologyBoundaryVersion_shortName); + get_map.emplace("TopologyBoundaryVersion.baseUML", &get_TopologyBoundaryVersion_baseUML); + get_map.emplace("TopologyBoundaryVersion.baseURI", &get_TopologyBoundaryVersion_baseURI); + get_map.emplace("TopologyBoundaryVersion.date", &get_TopologyBoundaryVersion_date); + get_map.emplace("TopologyBoundaryVersion.differenceModelURI", &get_TopologyBoundaryVersion_differenceModelURI); + get_map.emplace("TopologyBoundaryVersion.entsoeUML", &get_TopologyBoundaryVersion_entsoeUML); + get_map.emplace("TopologyBoundaryVersion.entsoeURI", &get_TopologyBoundaryVersion_entsoeURI); + get_map.emplace("TopologyBoundaryVersion.modelDescriptionURI", &get_TopologyBoundaryVersion_modelDescriptionURI); + get_map.emplace("TopologyBoundaryVersion.namespaceRDF", &get_TopologyBoundaryVersion_namespaceRDF); + get_map.emplace("TopologyBoundaryVersion.namespaceUML", &get_TopologyBoundaryVersion_namespaceUML); + get_map.emplace("TopologyBoundaryVersion.shortName", &get_TopologyBoundaryVersion_shortName); } void TopologyBoundaryVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void TopologyBoundaryVersion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TopologyBoundaryVersion::declare() { return BaseClassDefiner(TopologyBoundaryVersion::addConstructToMap, TopologyBoundaryVersion::addPrimitiveAssignFnsToMap, TopologyBoundaryVersion::addClassAssignFnsToMap, TopologyBoundaryVersion::debugName); } +std::map TopologyBoundaryVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologyBoundaryVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/TopologyBoundaryVersion.hpp b/CGMES_2.4.15_27JAN2020/TopologyBoundaryVersion.hpp index 54e049f56..3ef399d4e 100644 --- a/CGMES_2.4.15_27JAN2020/TopologyBoundaryVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/TopologyBoundaryVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologyBoundaryVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TopologyVersion.cpp b/CGMES_2.4.15_27JAN2020/TopologyVersion.cpp index e54da7674..9f43f1568 100644 --- a/CGMES_2.4.15_27JAN2020/TopologyVersion.cpp +++ b/CGMES_2.4.15_27JAN2020/TopologyVersion.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologyVersion(), + "http://entsoe.eu/CIM/SchemaExtension/3/1#", + { + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologyVersion.baseUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.baseURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.date", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.differenceModelURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.entsoeUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.entsoeURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.modelDescriptionURI", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.namespaceRDF", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.namespaceUML", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + { "TopologyVersion.shortName", { "http://entsoe.eu/CIM/SchemaExtension/3/1#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + TopologyVersion::TopologyVersion() {} TopologyVersion::~TopologyVersion() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologyVersion::getAttributeNames() const { - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologyVersion::getClassNamespaceUrl() const { - { "cim:TopologyVersion.baseUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.baseURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.date", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.differenceModelURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.entsoeUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.entsoeURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.modelDescriptionURI", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.namespaceRDF", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.namespaceUML", { CGMESProfile::TP, } }, - { "cim:TopologyVersion.shortName", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologyVersion::getPossibleProfilesForClass() const +const std::string& TopologyVersion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologyVersion::getPossibleProfilesForAttributes() const +const std::list& TopologyVersion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologyVersion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologyVersion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologyVersion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologyVersion_baseUML(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* TopologyVersion::debugString() const void TopologyVersion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologyVersion", &TopologyVersion_factory); + factory_map.emplace("TopologyVersion", &TopologyVersion_factory); } void TopologyVersion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologyVersion.baseUML", &assign_TopologyVersion_baseUML); - assign_map.emplace("cim:TopologyVersion.baseURI", &assign_TopologyVersion_baseURI); - assign_map.emplace("cim:TopologyVersion.date", &assign_TopologyVersion_date); - assign_map.emplace("cim:TopologyVersion.differenceModelURI", &assign_TopologyVersion_differenceModelURI); - assign_map.emplace("cim:TopologyVersion.entsoeUML", &assign_TopologyVersion_entsoeUML); - assign_map.emplace("cim:TopologyVersion.entsoeURI", &assign_TopologyVersion_entsoeURI); - assign_map.emplace("cim:TopologyVersion.modelDescriptionURI", &assign_TopologyVersion_modelDescriptionURI); - assign_map.emplace("cim:TopologyVersion.namespaceRDF", &assign_TopologyVersion_namespaceRDF); - assign_map.emplace("cim:TopologyVersion.namespaceUML", &assign_TopologyVersion_namespaceUML); - assign_map.emplace("cim:TopologyVersion.shortName", &assign_TopologyVersion_shortName); + assign_map.emplace("TopologyVersion.baseUML", &assign_TopologyVersion_baseUML); + assign_map.emplace("TopologyVersion.baseURI", &assign_TopologyVersion_baseURI); + assign_map.emplace("TopologyVersion.date", &assign_TopologyVersion_date); + assign_map.emplace("TopologyVersion.differenceModelURI", &assign_TopologyVersion_differenceModelURI); + assign_map.emplace("TopologyVersion.entsoeUML", &assign_TopologyVersion_entsoeUML); + assign_map.emplace("TopologyVersion.entsoeURI", &assign_TopologyVersion_entsoeURI); + assign_map.emplace("TopologyVersion.modelDescriptionURI", &assign_TopologyVersion_modelDescriptionURI); + assign_map.emplace("TopologyVersion.namespaceRDF", &assign_TopologyVersion_namespaceRDF); + assign_map.emplace("TopologyVersion.namespaceUML", &assign_TopologyVersion_namespaceUML); + assign_map.emplace("TopologyVersion.shortName", &assign_TopologyVersion_shortName); } void TopologyVersion::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void TopologyVersion::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TopologyVersion.baseUML", &get_TopologyVersion_baseUML); - get_map.emplace("cim:TopologyVersion.baseURI", &get_TopologyVersion_baseURI); - get_map.emplace("cim:TopologyVersion.date", &get_TopologyVersion_date); - get_map.emplace("cim:TopologyVersion.differenceModelURI", &get_TopologyVersion_differenceModelURI); - get_map.emplace("cim:TopologyVersion.entsoeUML", &get_TopologyVersion_entsoeUML); - get_map.emplace("cim:TopologyVersion.entsoeURI", &get_TopologyVersion_entsoeURI); - get_map.emplace("cim:TopologyVersion.modelDescriptionURI", &get_TopologyVersion_modelDescriptionURI); - get_map.emplace("cim:TopologyVersion.namespaceRDF", &get_TopologyVersion_namespaceRDF); - get_map.emplace("cim:TopologyVersion.namespaceUML", &get_TopologyVersion_namespaceUML); - get_map.emplace("cim:TopologyVersion.shortName", &get_TopologyVersion_shortName); + get_map.emplace("TopologyVersion.baseUML", &get_TopologyVersion_baseUML); + get_map.emplace("TopologyVersion.baseURI", &get_TopologyVersion_baseURI); + get_map.emplace("TopologyVersion.date", &get_TopologyVersion_date); + get_map.emplace("TopologyVersion.differenceModelURI", &get_TopologyVersion_differenceModelURI); + get_map.emplace("TopologyVersion.entsoeUML", &get_TopologyVersion_entsoeUML); + get_map.emplace("TopologyVersion.entsoeURI", &get_TopologyVersion_entsoeURI); + get_map.emplace("TopologyVersion.modelDescriptionURI", &get_TopologyVersion_modelDescriptionURI); + get_map.emplace("TopologyVersion.namespaceRDF", &get_TopologyVersion_namespaceRDF); + get_map.emplace("TopologyVersion.namespaceUML", &get_TopologyVersion_namespaceUML); + get_map.emplace("TopologyVersion.shortName", &get_TopologyVersion_shortName); } void TopologyVersion::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void TopologyVersion::addEnumGetFnsToMap(std::map& ge BaseClass::addEnumGetFnsToMap(get_map); } +bool TopologyVersion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologyVersion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologyVersion::declare() { return BaseClassDefiner(TopologyVersion::addConstructToMap, TopologyVersion::addPrimitiveAssignFnsToMap, TopologyVersion::addClassAssignFnsToMap, TopologyVersion::debugName); } +std::map TopologyVersion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologyVersion_factory() diff --git a/CGMES_2.4.15_27JAN2020/TopologyVersion.hpp b/CGMES_2.4.15_27JAN2020/TopologyVersion.hpp index 5c9119a35..685c05503 100644 --- a/CGMES_2.4.15_27JAN2020/TopologyVersion.hpp +++ b/CGMES_2.4.15_27JAN2020/TopologyVersion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Date.hpp" #include "String.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologyVersion_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TransformerEnd.cpp b/CGMES_2.4.15_27JAN2020/TransformerEnd.cpp index 86e31752c..532d409ed 100644 --- a/CGMES_2.4.15_27JAN2020/TransformerEnd.cpp +++ b/CGMES_2.4.15_27JAN2020/TransformerEnd.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TransformerEnd(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TransformerEnd.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.PhaseTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.RatioTapChanger", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.Terminal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.endNumber", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.grounded", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.rground", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.xground", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TransformerEnd::TransformerEnd() : BaseVoltage(nullptr), PhaseTapChanger(nullptr), RatioTapChanger(nullptr), Terminal(nullptr) {} TransformerEnd::~TransformerEnd() {} -static const std::list PossibleProfilesForClass = +const std::list& TransformerEnd::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TransformerEnd::getClassNamespaceUrl() const { - { "cim:TransformerEnd.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.PhaseTapChanger", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.RatioTapChanger", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.Terminal", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.endNumber", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.grounded", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.rground", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.xground", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TransformerEnd::getPossibleProfilesForClass() const +const std::string& TransformerEnd::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TransformerEnd::getPossibleProfilesForAttributes() const +const std::list& TransformerEnd::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TransformerEnd::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TransformerEnd::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TransformerEnd::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_TransformerEnds(BaseClass*, BaseClass*); @@ -272,39 +304,39 @@ const char* TransformerEnd::debugString() const void TransformerEnd::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TransformerEnd", &TransformerEnd_factory); + factory_map.emplace("TransformerEnd", &TransformerEnd_factory); } void TransformerEnd::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TransformerEnd.endNumber", &assign_TransformerEnd_endNumber); - assign_map.emplace("cim:TransformerEnd.grounded", &assign_TransformerEnd_grounded); - assign_map.emplace("cim:TransformerEnd.rground", &assign_TransformerEnd_rground); - assign_map.emplace("cim:TransformerEnd.xground", &assign_TransformerEnd_xground); + assign_map.emplace("TransformerEnd.endNumber", &assign_TransformerEnd_endNumber); + assign_map.emplace("TransformerEnd.grounded", &assign_TransformerEnd_grounded); + assign_map.emplace("TransformerEnd.rground", &assign_TransformerEnd_rground); + assign_map.emplace("TransformerEnd.xground", &assign_TransformerEnd_xground); } void TransformerEnd::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TransformerEnd.BaseVoltage", &assign_TransformerEnd_BaseVoltage); - assign_map.emplace("cim:TransformerEnd.PhaseTapChanger", &assign_TransformerEnd_PhaseTapChanger); - assign_map.emplace("cim:TransformerEnd.RatioTapChanger", &assign_TransformerEnd_RatioTapChanger); - assign_map.emplace("cim:TransformerEnd.Terminal", &assign_TransformerEnd_Terminal); + assign_map.emplace("TransformerEnd.BaseVoltage", &assign_TransformerEnd_BaseVoltage); + assign_map.emplace("TransformerEnd.PhaseTapChanger", &assign_TransformerEnd_PhaseTapChanger); + assign_map.emplace("TransformerEnd.RatioTapChanger", &assign_TransformerEnd_RatioTapChanger); + assign_map.emplace("TransformerEnd.Terminal", &assign_TransformerEnd_Terminal); } void TransformerEnd::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TransformerEnd.endNumber", &get_TransformerEnd_endNumber); - get_map.emplace("cim:TransformerEnd.grounded", &get_TransformerEnd_grounded); - get_map.emplace("cim:TransformerEnd.rground", &get_TransformerEnd_rground); - get_map.emplace("cim:TransformerEnd.xground", &get_TransformerEnd_xground); + get_map.emplace("TransformerEnd.endNumber", &get_TransformerEnd_endNumber); + get_map.emplace("TransformerEnd.grounded", &get_TransformerEnd_grounded); + get_map.emplace("TransformerEnd.rground", &get_TransformerEnd_rground); + get_map.emplace("TransformerEnd.xground", &get_TransformerEnd_xground); } void TransformerEnd::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TransformerEnd.BaseVoltage", &get_TransformerEnd_BaseVoltage); - get_map.emplace("cim:TransformerEnd.Terminal", &get_TransformerEnd_Terminal); + get_map.emplace("TransformerEnd.BaseVoltage", &get_TransformerEnd_BaseVoltage); + get_map.emplace("TransformerEnd.Terminal", &get_TransformerEnd_Terminal); } void TransformerEnd::addEnumGetFnsToMap(std::map& get_map) const @@ -312,11 +344,25 @@ void TransformerEnd::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TransformerEnd::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TransformerEnd" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TransformerEnd::declare() { return BaseClassDefiner(TransformerEnd::addConstructToMap, TransformerEnd::addPrimitiveAssignFnsToMap, TransformerEnd::addClassAssignFnsToMap, TransformerEnd::debugName); } +std::map TransformerEnd::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TransformerEnd_factory() diff --git a/CGMES_2.4.15_27JAN2020/TransformerEnd.hpp b/CGMES_2.4.15_27JAN2020/TransformerEnd.hpp index 163603fd7..147a110e7 100644 --- a/CGMES_2.4.15_27JAN2020/TransformerEnd.hpp +++ b/CGMES_2.4.15_27JAN2020/TransformerEnd.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Reactance.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TransformerEnd_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TurbLCFB1.cpp b/CGMES_2.4.15_27JAN2020/TurbLCFB1.cpp index 338c975ef..3d9c3d666 100644 --- a/CGMES_2.4.15_27JAN2020/TurbLCFB1.cpp +++ b/CGMES_2.4.15_27JAN2020/TurbLCFB1.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbLCFB1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbLCFB1.db", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.emax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.fb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.fbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.irmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.ki", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.kp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.mwbase", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.pbf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.pmwset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.speedReferenceGovernor", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.tpelec", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbLCFB1::TurbLCFB1() {} TurbLCFB1::~TurbLCFB1() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbLCFB1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbLCFB1::getClassNamespaceUrl() const { - { "cim:TurbLCFB1.db", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.emax", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.fb", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.fbf", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.irmax", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.ki", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.kp", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.mwbase", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.pbf", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.pmwset", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.speedReferenceGovernor", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.tpelec", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbLCFB1::getPossibleProfilesForClass() const +const std::string& TurbLCFB1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbLCFB1::getPossibleProfilesForAttributes() const +const std::list& TurbLCFB1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineLoadControllerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbLCFB1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbLCFB1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbLCFB1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TurbLCFB1_db(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* TurbLCFB1::debugString() const void TurbLCFB1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbLCFB1", &TurbLCFB1_factory); + factory_map.emplace("TurbLCFB1", &TurbLCFB1_factory); } void TurbLCFB1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbLCFB1.db", &assign_TurbLCFB1_db); - assign_map.emplace("cim:TurbLCFB1.emax", &assign_TurbLCFB1_emax); - assign_map.emplace("cim:TurbLCFB1.fb", &assign_TurbLCFB1_fb); - assign_map.emplace("cim:TurbLCFB1.fbf", &assign_TurbLCFB1_fbf); - assign_map.emplace("cim:TurbLCFB1.irmax", &assign_TurbLCFB1_irmax); - assign_map.emplace("cim:TurbLCFB1.ki", &assign_TurbLCFB1_ki); - assign_map.emplace("cim:TurbLCFB1.kp", &assign_TurbLCFB1_kp); - assign_map.emplace("cim:TurbLCFB1.mwbase", &assign_TurbLCFB1_mwbase); - assign_map.emplace("cim:TurbLCFB1.pbf", &assign_TurbLCFB1_pbf); - assign_map.emplace("cim:TurbLCFB1.pmwset", &assign_TurbLCFB1_pmwset); - assign_map.emplace("cim:TurbLCFB1.speedReferenceGovernor", &assign_TurbLCFB1_speedReferenceGovernor); - assign_map.emplace("cim:TurbLCFB1.tpelec", &assign_TurbLCFB1_tpelec); + assign_map.emplace("TurbLCFB1.db", &assign_TurbLCFB1_db); + assign_map.emplace("TurbLCFB1.emax", &assign_TurbLCFB1_emax); + assign_map.emplace("TurbLCFB1.fb", &assign_TurbLCFB1_fb); + assign_map.emplace("TurbLCFB1.fbf", &assign_TurbLCFB1_fbf); + assign_map.emplace("TurbLCFB1.irmax", &assign_TurbLCFB1_irmax); + assign_map.emplace("TurbLCFB1.ki", &assign_TurbLCFB1_ki); + assign_map.emplace("TurbLCFB1.kp", &assign_TurbLCFB1_kp); + assign_map.emplace("TurbLCFB1.mwbase", &assign_TurbLCFB1_mwbase); + assign_map.emplace("TurbLCFB1.pbf", &assign_TurbLCFB1_pbf); + assign_map.emplace("TurbLCFB1.pmwset", &assign_TurbLCFB1_pmwset); + assign_map.emplace("TurbLCFB1.speedReferenceGovernor", &assign_TurbLCFB1_speedReferenceGovernor); + assign_map.emplace("TurbLCFB1.tpelec", &assign_TurbLCFB1_tpelec); } void TurbLCFB1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void TurbLCFB1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbLCFB1.db", &get_TurbLCFB1_db); - get_map.emplace("cim:TurbLCFB1.emax", &get_TurbLCFB1_emax); - get_map.emplace("cim:TurbLCFB1.fb", &get_TurbLCFB1_fb); - get_map.emplace("cim:TurbLCFB1.fbf", &get_TurbLCFB1_fbf); - get_map.emplace("cim:TurbLCFB1.irmax", &get_TurbLCFB1_irmax); - get_map.emplace("cim:TurbLCFB1.ki", &get_TurbLCFB1_ki); - get_map.emplace("cim:TurbLCFB1.kp", &get_TurbLCFB1_kp); - get_map.emplace("cim:TurbLCFB1.mwbase", &get_TurbLCFB1_mwbase); - get_map.emplace("cim:TurbLCFB1.pbf", &get_TurbLCFB1_pbf); - get_map.emplace("cim:TurbLCFB1.pmwset", &get_TurbLCFB1_pmwset); - get_map.emplace("cim:TurbLCFB1.speedReferenceGovernor", &get_TurbLCFB1_speedReferenceGovernor); - get_map.emplace("cim:TurbLCFB1.tpelec", &get_TurbLCFB1_tpelec); + get_map.emplace("TurbLCFB1.db", &get_TurbLCFB1_db); + get_map.emplace("TurbLCFB1.emax", &get_TurbLCFB1_emax); + get_map.emplace("TurbLCFB1.fb", &get_TurbLCFB1_fb); + get_map.emplace("TurbLCFB1.fbf", &get_TurbLCFB1_fbf); + get_map.emplace("TurbLCFB1.irmax", &get_TurbLCFB1_irmax); + get_map.emplace("TurbLCFB1.ki", &get_TurbLCFB1_ki); + get_map.emplace("TurbLCFB1.kp", &get_TurbLCFB1_kp); + get_map.emplace("TurbLCFB1.mwbase", &get_TurbLCFB1_mwbase); + get_map.emplace("TurbLCFB1.pbf", &get_TurbLCFB1_pbf); + get_map.emplace("TurbLCFB1.pmwset", &get_TurbLCFB1_pmwset); + get_map.emplace("TurbLCFB1.speedReferenceGovernor", &get_TurbLCFB1_speedReferenceGovernor); + get_map.emplace("TurbLCFB1.tpelec", &get_TurbLCFB1_tpelec); } void TurbLCFB1::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void TurbLCFB1::addEnumGetFnsToMap(std::map& get_map) TurbineLoadControllerDynamics::addEnumGetFnsToMap(get_map); } +bool TurbLCFB1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TurbLCFB1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TurbLCFB1::declare() { return BaseClassDefiner(TurbLCFB1::addConstructToMap, TurbLCFB1::addPrimitiveAssignFnsToMap, TurbLCFB1::addClassAssignFnsToMap, TurbLCFB1::debugName); } +std::map TurbLCFB1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineLoadControllerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbLCFB1_factory() diff --git a/CGMES_2.4.15_27JAN2020/TurbLCFB1.hpp b/CGMES_2.4.15_27JAN2020/TurbLCFB1.hpp index f45fd978f..38b0d7ec5 100644 --- a/CGMES_2.4.15_27JAN2020/TurbLCFB1.hpp +++ b/CGMES_2.4.15_27JAN2020/TurbLCFB1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineLoadControllerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbLCFB1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TurbineGovernorDynamics.cpp b/CGMES_2.4.15_27JAN2020/TurbineGovernorDynamics.cpp index cebece4b4..a2b509d19 100644 --- a/CGMES_2.4.15_27JAN2020/TurbineGovernorDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/TurbineGovernorDynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineGovernorDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineGovernorDynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorDynamics.TurbineLoadControllerDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineGovernorDynamics::TurbineGovernorDynamics() : AsynchronousMachineDynamics(nullptr), TurbineLoadControllerDynamics(nullptr) {} TurbineGovernorDynamics::~TurbineGovernorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineGovernorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineGovernorDynamics::getClassNamespaceUrl() const { - { "cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorDynamics.TurbineLoadControllerDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineGovernorDynamics::getPossibleProfilesForClass() const +const std::string& TurbineGovernorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineGovernorDynamics::getPossibleProfilesForAttributes() const +const std::list& TurbineGovernorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineGovernorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineGovernorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineGovernorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_TurbineGovernorDynamics(BaseClass*, BaseClass*); @@ -129,7 +161,7 @@ const char* TurbineGovernorDynamics::debugString() const void TurbineGovernorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineGovernorDynamics", &TurbineGovernorDynamics_factory); + factory_map.emplace("TurbineGovernorDynamics", &TurbineGovernorDynamics_factory); } void TurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -138,9 +170,9 @@ void TurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", &assign_TurbineGovernorDynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:TurbineGovernorDynamics.SynchronousMachineDynamics", &assign_TurbineGovernorDynamics_SynchronousMachineDynamics); - assign_map.emplace("cim:TurbineGovernorDynamics.TurbineLoadControllerDynamics", &assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics); + assign_map.emplace("TurbineGovernorDynamics.AsynchronousMachineDynamics", &assign_TurbineGovernorDynamics_AsynchronousMachineDynamics); + assign_map.emplace("TurbineGovernorDynamics.SynchronousMachineDynamics", &assign_TurbineGovernorDynamics_SynchronousMachineDynamics); + assign_map.emplace("TurbineGovernorDynamics.TurbineLoadControllerDynamics", &assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics); } void TurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -151,8 +183,8 @@ void TurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", &get_TurbineGovernorDynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:TurbineGovernorDynamics.SynchronousMachineDynamics", &get_TurbineGovernorDynamics_SynchronousMachineDynamics); + get_map.emplace("TurbineGovernorDynamics.AsynchronousMachineDynamics", &get_TurbineGovernorDynamics_AsynchronousMachineDynamics); + get_map.emplace("TurbineGovernorDynamics.SynchronousMachineDynamics", &get_TurbineGovernorDynamics_SynchronousMachineDynamics); } void TurbineGovernorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void TurbineGovernorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineGovernorDynamics::declare() { return BaseClassDefiner(TurbineGovernorDynamics::addConstructToMap, TurbineGovernorDynamics::addPrimitiveAssignFnsToMap, TurbineGovernorDynamics::addClassAssignFnsToMap, TurbineGovernorDynamics::debugName); } +std::map TurbineGovernorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineGovernorDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/TurbineGovernorDynamics.hpp b/CGMES_2.4.15_27JAN2020/TurbineGovernorDynamics.hpp index dda79cfd7..80082c3d2 100644 --- a/CGMES_2.4.15_27JAN2020/TurbineGovernorDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/TurbineGovernorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineGovernorDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TurbineGovernorUserDefined.cpp b/CGMES_2.4.15_27JAN2020/TurbineGovernorUserDefined.cpp index ad7d7ef5f..424d7e661 100644 --- a/CGMES_2.4.15_27JAN2020/TurbineGovernorUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/TurbineGovernorUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineGovernorUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineGovernorUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineGovernorUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineGovernorUserDefined::TurbineGovernorUserDefined() {} TurbineGovernorUserDefined::~TurbineGovernorUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineGovernorUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineGovernorUserDefined::getClassNamespaceUrl() const { - { "cim:TurbineGovernorUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineGovernorUserDefined::getPossibleProfilesForClass() const +const std::string& TurbineGovernorUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineGovernorUserDefined::getPossibleProfilesForAttributes() const +const std::list& TurbineGovernorUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineGovernorUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineGovernorUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineGovernorUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* TurbineGovernorUserDefined::debugString() const void TurbineGovernorUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineGovernorUserDefined", &TurbineGovernorUserDefined_factory); + factory_map.emplace("TurbineGovernorUserDefined", &TurbineGovernorUserDefined_factory); } void TurbineGovernorUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorUserDefined.proprietary", &assign_TurbineGovernorUserDefined_proprietary); + assign_map.emplace("TurbineGovernorUserDefined.proprietary", &assign_TurbineGovernorUserDefined_proprietary); } void TurbineGovernorUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorUserDefined.ProprietaryParameterDynamics", &assign_TurbineGovernorUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("TurbineGovernorUserDefined.ProprietaryParameterDynamics", &assign_TurbineGovernorUserDefined_ProprietaryParameterDynamics); } void TurbineGovernorUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbineGovernorUserDefined.proprietary", &get_TurbineGovernorUserDefined_proprietary); + get_map.emplace("TurbineGovernorUserDefined.proprietary", &get_TurbineGovernorUserDefined_proprietary); } void TurbineGovernorUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void TurbineGovernorUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineGovernorUserDefined::declare() { return BaseClassDefiner(TurbineGovernorUserDefined::addConstructToMap, TurbineGovernorUserDefined::addPrimitiveAssignFnsToMap, TurbineGovernorUserDefined::addClassAssignFnsToMap, TurbineGovernorUserDefined::debugName); } +std::map TurbineGovernorUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineGovernorUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/TurbineGovernorUserDefined.hpp b/CGMES_2.4.15_27JAN2020/TurbineGovernorUserDefined.hpp index 47aa48210..22cc9ca41 100644 --- a/CGMES_2.4.15_27JAN2020/TurbineGovernorUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/TurbineGovernorUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineGovernorUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TurbineLoadControllerDynamics.cpp b/CGMES_2.4.15_27JAN2020/TurbineLoadControllerDynamics.cpp index d9ae03d4f..1ff0ad3ec 100644 --- a/CGMES_2.4.15_27JAN2020/TurbineLoadControllerDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/TurbineLoadControllerDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineLoadControllerDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineLoadControllerDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineLoadControllerDynamics::TurbineLoadControllerDynamics() : TurbineGovernorDynamics(nullptr) {} TurbineLoadControllerDynamics::~TurbineLoadControllerDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineLoadControllerDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineLoadControllerDynamics::getClassNamespaceUrl() const { - { "cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineLoadControllerDynamics::getPossibleProfilesForClass() const +const std::string& TurbineLoadControllerDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineLoadControllerDynamics::getPossibleProfilesForAttributes() const +const std::list& TurbineLoadControllerDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineLoadControllerDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineLoadControllerDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineLoadControllerDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* TurbineLoadControllerDynamics::debugString() const void TurbineLoadControllerDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineLoadControllerDynamics", &TurbineLoadControllerDynamics_factory); + factory_map.emplace("TurbineLoadControllerDynamics", &TurbineLoadControllerDynamics_factory); } void TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void TurbineLoadControllerDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", &assign_TurbineLoadControllerDynamics_TurbineGovernorDynamics); + assign_map.emplace("TurbineLoadControllerDynamics.TurbineGovernorDynamics", &assign_TurbineLoadControllerDynamics_TurbineGovernorDynamics); } void TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", &get_TurbineLoadControllerDynamics_TurbineGovernorDynamics); + get_map.emplace("TurbineLoadControllerDynamics.TurbineGovernorDynamics", &get_TurbineLoadControllerDynamics_TurbineGovernorDynamics); } void TurbineLoadControllerDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void TurbineLoadControllerDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineLoadControllerDynamics::declare() { return BaseClassDefiner(TurbineLoadControllerDynamics::addConstructToMap, TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap, TurbineLoadControllerDynamics::addClassAssignFnsToMap, TurbineLoadControllerDynamics::debugName); } +std::map TurbineLoadControllerDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineLoadControllerDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/TurbineLoadControllerDynamics.hpp b/CGMES_2.4.15_27JAN2020/TurbineLoadControllerDynamics.hpp index 12ec05aec..6cf21de3b 100644 --- a/CGMES_2.4.15_27JAN2020/TurbineLoadControllerDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/TurbineLoadControllerDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineLoadControllerDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/TurbineLoadControllerUserDefined.cpp b/CGMES_2.4.15_27JAN2020/TurbineLoadControllerUserDefined.cpp index 842adf4c4..d75df90a9 100644 --- a/CGMES_2.4.15_27JAN2020/TurbineLoadControllerUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/TurbineLoadControllerUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineLoadControllerUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "TurbineLoadControllerUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineLoadControllerUserDefined::TurbineLoadControllerUserDefined() {} TurbineLoadControllerUserDefined::~TurbineLoadControllerUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineLoadControllerUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineLoadControllerUserDefined::getClassNamespaceUrl() const { - { "cim:TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineLoadControllerUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineLoadControllerUserDefined::getPossibleProfilesForClass() const +const std::string& TurbineLoadControllerUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineLoadControllerUserDefined::getPossibleProfilesForAttributes() const +const std::list& TurbineLoadControllerUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineLoadControllerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineLoadControllerUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineLoadControllerUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineLoadControllerUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* TurbineLoadControllerUserDefined::debugString() const void TurbineLoadControllerUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineLoadControllerUserDefined", &TurbineLoadControllerUserDefined_factory); + factory_map.emplace("TurbineLoadControllerUserDefined", &TurbineLoadControllerUserDefined_factory); } void TurbineLoadControllerUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerUserDefined.proprietary", &assign_TurbineLoadControllerUserDefined_proprietary); + assign_map.emplace("TurbineLoadControllerUserDefined.proprietary", &assign_TurbineLoadControllerUserDefined_proprietary); } void TurbineLoadControllerUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", &assign_TurbineLoadControllerUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", &assign_TurbineLoadControllerUserDefined_ProprietaryParameterDynamics); } void TurbineLoadControllerUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbineLoadControllerUserDefined.proprietary", &get_TurbineLoadControllerUserDefined_proprietary); + get_map.emplace("TurbineLoadControllerUserDefined.proprietary", &get_TurbineLoadControllerUserDefined_proprietary); } void TurbineLoadControllerUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void TurbineLoadControllerUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineLoadControllerUserDefined::declare() { return BaseClassDefiner(TurbineLoadControllerUserDefined::addConstructToMap, TurbineLoadControllerUserDefined::addPrimitiveAssignFnsToMap, TurbineLoadControllerUserDefined::addClassAssignFnsToMap, TurbineLoadControllerUserDefined::debugName); } +std::map TurbineLoadControllerUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineLoadControllerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineLoadControllerUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/TurbineLoadControllerUserDefined.hpp b/CGMES_2.4.15_27JAN2020/TurbineLoadControllerUserDefined.hpp index ce15803d0..3eea58184 100644 --- a/CGMES_2.4.15_27JAN2020/TurbineLoadControllerUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/TurbineLoadControllerUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineLoadControllerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineLoadControllerUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLim2Simplified.cpp b/CGMES_2.4.15_27JAN2020/UnderexcLim2Simplified.cpp index d3524b97d..4f74c548d 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLim2Simplified.cpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLim2Simplified.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLim2Simplified(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLim2Simplified.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.p0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.q0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.q1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLim2Simplified::UnderexcLim2Simplified() {} UnderexcLim2Simplified::~UnderexcLim2Simplified() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLim2Simplified::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLim2Simplified::getClassNamespaceUrl() const { - { "cim:UnderexcLim2Simplified.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.p0", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.p1", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.q0", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.q1", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.vuimin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLim2Simplified::getPossibleProfilesForClass() const +const std::string& UnderexcLim2Simplified::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLim2Simplified::getPossibleProfilesForAttributes() const +const std::list& UnderexcLim2Simplified::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLim2Simplified::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLim2Simplified::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLim2Simplified::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLim2Simplified_kui(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* UnderexcLim2Simplified::debugString() const void UnderexcLim2Simplified::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLim2Simplified", &UnderexcLim2Simplified_factory); + factory_map.emplace("UnderexcLim2Simplified", &UnderexcLim2Simplified_factory); } void UnderexcLim2Simplified::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLim2Simplified.kui", &assign_UnderexcLim2Simplified_kui); - assign_map.emplace("cim:UnderexcLim2Simplified.p0", &assign_UnderexcLim2Simplified_p0); - assign_map.emplace("cim:UnderexcLim2Simplified.p1", &assign_UnderexcLim2Simplified_p1); - assign_map.emplace("cim:UnderexcLim2Simplified.q0", &assign_UnderexcLim2Simplified_q0); - assign_map.emplace("cim:UnderexcLim2Simplified.q1", &assign_UnderexcLim2Simplified_q1); - assign_map.emplace("cim:UnderexcLim2Simplified.vuimax", &assign_UnderexcLim2Simplified_vuimax); - assign_map.emplace("cim:UnderexcLim2Simplified.vuimin", &assign_UnderexcLim2Simplified_vuimin); + assign_map.emplace("UnderexcLim2Simplified.kui", &assign_UnderexcLim2Simplified_kui); + assign_map.emplace("UnderexcLim2Simplified.p0", &assign_UnderexcLim2Simplified_p0); + assign_map.emplace("UnderexcLim2Simplified.p1", &assign_UnderexcLim2Simplified_p1); + assign_map.emplace("UnderexcLim2Simplified.q0", &assign_UnderexcLim2Simplified_q0); + assign_map.emplace("UnderexcLim2Simplified.q1", &assign_UnderexcLim2Simplified_q1); + assign_map.emplace("UnderexcLim2Simplified.vuimax", &assign_UnderexcLim2Simplified_vuimax); + assign_map.emplace("UnderexcLim2Simplified.vuimin", &assign_UnderexcLim2Simplified_vuimin); } void UnderexcLim2Simplified::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void UnderexcLim2Simplified::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLim2Simplified.kui", &get_UnderexcLim2Simplified_kui); - get_map.emplace("cim:UnderexcLim2Simplified.p0", &get_UnderexcLim2Simplified_p0); - get_map.emplace("cim:UnderexcLim2Simplified.p1", &get_UnderexcLim2Simplified_p1); - get_map.emplace("cim:UnderexcLim2Simplified.q0", &get_UnderexcLim2Simplified_q0); - get_map.emplace("cim:UnderexcLim2Simplified.q1", &get_UnderexcLim2Simplified_q1); - get_map.emplace("cim:UnderexcLim2Simplified.vuimax", &get_UnderexcLim2Simplified_vuimax); - get_map.emplace("cim:UnderexcLim2Simplified.vuimin", &get_UnderexcLim2Simplified_vuimin); + get_map.emplace("UnderexcLim2Simplified.kui", &get_UnderexcLim2Simplified_kui); + get_map.emplace("UnderexcLim2Simplified.p0", &get_UnderexcLim2Simplified_p0); + get_map.emplace("UnderexcLim2Simplified.p1", &get_UnderexcLim2Simplified_p1); + get_map.emplace("UnderexcLim2Simplified.q0", &get_UnderexcLim2Simplified_q0); + get_map.emplace("UnderexcLim2Simplified.q1", &get_UnderexcLim2Simplified_q1); + get_map.emplace("UnderexcLim2Simplified.vuimax", &get_UnderexcLim2Simplified_vuimax); + get_map.emplace("UnderexcLim2Simplified.vuimin", &get_UnderexcLim2Simplified_vuimin); } void UnderexcLim2Simplified::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void UnderexcLim2Simplified::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLim2Simplified::declare() { return BaseClassDefiner(UnderexcLim2Simplified::addConstructToMap, UnderexcLim2Simplified::addPrimitiveAssignFnsToMap, UnderexcLim2Simplified::addClassAssignFnsToMap, UnderexcLim2Simplified::debugName); } +std::map UnderexcLim2Simplified::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLim2Simplified_factory() diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLim2Simplified.hpp b/CGMES_2.4.15_27JAN2020/UnderexcLim2Simplified.hpp index 5c1e361db..b4405a3f4 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLim2Simplified.hpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLim2Simplified.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLim2Simplified_factory(); diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.cpp b/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.cpp index ed960945f..6370e072e 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.cpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimIEEE1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimIEEE1.kuc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kuf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kur", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vucmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vulmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vulmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vurmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimIEEE1::UnderexcLimIEEE1() {} UnderexcLimIEEE1::~UnderexcLimIEEE1() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimIEEE1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimIEEE1::getClassNamespaceUrl() const { - { "cim:UnderexcLimIEEE1.kuc", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kuf", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kur", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vucmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vuimin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vulmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vulmin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vurmax", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimIEEE1::getPossibleProfilesForClass() const +const std::string& UnderexcLimIEEE1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimIEEE1::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimIEEE1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimIEEE1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimIEEE1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimIEEE1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimIEEE1_kuc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* UnderexcLimIEEE1::debugString() const void UnderexcLimIEEE1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimIEEE1", &UnderexcLimIEEE1_factory); + factory_map.emplace("UnderexcLimIEEE1", &UnderexcLimIEEE1_factory); } void UnderexcLimIEEE1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimIEEE1.kuc", &assign_UnderexcLimIEEE1_kuc); - assign_map.emplace("cim:UnderexcLimIEEE1.kuf", &assign_UnderexcLimIEEE1_kuf); - assign_map.emplace("cim:UnderexcLimIEEE1.kui", &assign_UnderexcLimIEEE1_kui); - assign_map.emplace("cim:UnderexcLimIEEE1.kul", &assign_UnderexcLimIEEE1_kul); - assign_map.emplace("cim:UnderexcLimIEEE1.kur", &assign_UnderexcLimIEEE1_kur); - assign_map.emplace("cim:UnderexcLimIEEE1.tu1", &assign_UnderexcLimIEEE1_tu1); - assign_map.emplace("cim:UnderexcLimIEEE1.tu2", &assign_UnderexcLimIEEE1_tu2); - assign_map.emplace("cim:UnderexcLimIEEE1.tu3", &assign_UnderexcLimIEEE1_tu3); - assign_map.emplace("cim:UnderexcLimIEEE1.tu4", &assign_UnderexcLimIEEE1_tu4); - assign_map.emplace("cim:UnderexcLimIEEE1.vucmax", &assign_UnderexcLimIEEE1_vucmax); - assign_map.emplace("cim:UnderexcLimIEEE1.vuimax", &assign_UnderexcLimIEEE1_vuimax); - assign_map.emplace("cim:UnderexcLimIEEE1.vuimin", &assign_UnderexcLimIEEE1_vuimin); - assign_map.emplace("cim:UnderexcLimIEEE1.vulmax", &assign_UnderexcLimIEEE1_vulmax); - assign_map.emplace("cim:UnderexcLimIEEE1.vulmin", &assign_UnderexcLimIEEE1_vulmin); - assign_map.emplace("cim:UnderexcLimIEEE1.vurmax", &assign_UnderexcLimIEEE1_vurmax); + assign_map.emplace("UnderexcLimIEEE1.kuc", &assign_UnderexcLimIEEE1_kuc); + assign_map.emplace("UnderexcLimIEEE1.kuf", &assign_UnderexcLimIEEE1_kuf); + assign_map.emplace("UnderexcLimIEEE1.kui", &assign_UnderexcLimIEEE1_kui); + assign_map.emplace("UnderexcLimIEEE1.kul", &assign_UnderexcLimIEEE1_kul); + assign_map.emplace("UnderexcLimIEEE1.kur", &assign_UnderexcLimIEEE1_kur); + assign_map.emplace("UnderexcLimIEEE1.tu1", &assign_UnderexcLimIEEE1_tu1); + assign_map.emplace("UnderexcLimIEEE1.tu2", &assign_UnderexcLimIEEE1_tu2); + assign_map.emplace("UnderexcLimIEEE1.tu3", &assign_UnderexcLimIEEE1_tu3); + assign_map.emplace("UnderexcLimIEEE1.tu4", &assign_UnderexcLimIEEE1_tu4); + assign_map.emplace("UnderexcLimIEEE1.vucmax", &assign_UnderexcLimIEEE1_vucmax); + assign_map.emplace("UnderexcLimIEEE1.vuimax", &assign_UnderexcLimIEEE1_vuimax); + assign_map.emplace("UnderexcLimIEEE1.vuimin", &assign_UnderexcLimIEEE1_vuimin); + assign_map.emplace("UnderexcLimIEEE1.vulmax", &assign_UnderexcLimIEEE1_vulmax); + assign_map.emplace("UnderexcLimIEEE1.vulmin", &assign_UnderexcLimIEEE1_vulmin); + assign_map.emplace("UnderexcLimIEEE1.vurmax", &assign_UnderexcLimIEEE1_vurmax); } void UnderexcLimIEEE1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void UnderexcLimIEEE1::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimIEEE1.kuc", &get_UnderexcLimIEEE1_kuc); - get_map.emplace("cim:UnderexcLimIEEE1.kuf", &get_UnderexcLimIEEE1_kuf); - get_map.emplace("cim:UnderexcLimIEEE1.kui", &get_UnderexcLimIEEE1_kui); - get_map.emplace("cim:UnderexcLimIEEE1.kul", &get_UnderexcLimIEEE1_kul); - get_map.emplace("cim:UnderexcLimIEEE1.kur", &get_UnderexcLimIEEE1_kur); - get_map.emplace("cim:UnderexcLimIEEE1.tu1", &get_UnderexcLimIEEE1_tu1); - get_map.emplace("cim:UnderexcLimIEEE1.tu2", &get_UnderexcLimIEEE1_tu2); - get_map.emplace("cim:UnderexcLimIEEE1.tu3", &get_UnderexcLimIEEE1_tu3); - get_map.emplace("cim:UnderexcLimIEEE1.tu4", &get_UnderexcLimIEEE1_tu4); - get_map.emplace("cim:UnderexcLimIEEE1.vucmax", &get_UnderexcLimIEEE1_vucmax); - get_map.emplace("cim:UnderexcLimIEEE1.vuimax", &get_UnderexcLimIEEE1_vuimax); - get_map.emplace("cim:UnderexcLimIEEE1.vuimin", &get_UnderexcLimIEEE1_vuimin); - get_map.emplace("cim:UnderexcLimIEEE1.vulmax", &get_UnderexcLimIEEE1_vulmax); - get_map.emplace("cim:UnderexcLimIEEE1.vulmin", &get_UnderexcLimIEEE1_vulmin); - get_map.emplace("cim:UnderexcLimIEEE1.vurmax", &get_UnderexcLimIEEE1_vurmax); + get_map.emplace("UnderexcLimIEEE1.kuc", &get_UnderexcLimIEEE1_kuc); + get_map.emplace("UnderexcLimIEEE1.kuf", &get_UnderexcLimIEEE1_kuf); + get_map.emplace("UnderexcLimIEEE1.kui", &get_UnderexcLimIEEE1_kui); + get_map.emplace("UnderexcLimIEEE1.kul", &get_UnderexcLimIEEE1_kul); + get_map.emplace("UnderexcLimIEEE1.kur", &get_UnderexcLimIEEE1_kur); + get_map.emplace("UnderexcLimIEEE1.tu1", &get_UnderexcLimIEEE1_tu1); + get_map.emplace("UnderexcLimIEEE1.tu2", &get_UnderexcLimIEEE1_tu2); + get_map.emplace("UnderexcLimIEEE1.tu3", &get_UnderexcLimIEEE1_tu3); + get_map.emplace("UnderexcLimIEEE1.tu4", &get_UnderexcLimIEEE1_tu4); + get_map.emplace("UnderexcLimIEEE1.vucmax", &get_UnderexcLimIEEE1_vucmax); + get_map.emplace("UnderexcLimIEEE1.vuimax", &get_UnderexcLimIEEE1_vuimax); + get_map.emplace("UnderexcLimIEEE1.vuimin", &get_UnderexcLimIEEE1_vuimin); + get_map.emplace("UnderexcLimIEEE1.vulmax", &get_UnderexcLimIEEE1_vulmax); + get_map.emplace("UnderexcLimIEEE1.vulmin", &get_UnderexcLimIEEE1_vulmin); + get_map.emplace("UnderexcLimIEEE1.vurmax", &get_UnderexcLimIEEE1_vurmax); } void UnderexcLimIEEE1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void UnderexcLimIEEE1::addEnumGetFnsToMap(std::map& g UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimIEEE1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimIEEE1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimIEEE1::declare() { return BaseClassDefiner(UnderexcLimIEEE1::addConstructToMap, UnderexcLimIEEE1::addPrimitiveAssignFnsToMap, UnderexcLimIEEE1::addClassAssignFnsToMap, UnderexcLimIEEE1::debugName); } +std::map UnderexcLimIEEE1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimIEEE1_factory() diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.hpp b/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.hpp index 7e60e75df..9c613d40a 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.hpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimIEEE1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.cpp b/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.cpp index da9274105..52d906247 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.cpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.cpp @@ -11,71 +11,103 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimIEEE2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimIEEE2.k1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.k2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kfb", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kuf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kui", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q10", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q5", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q6", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q7", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q8", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q9", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu3", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu4", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tul", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tup", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tuq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tuv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vuimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vuimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vulmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vulmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimIEEE2::UnderexcLimIEEE2() {} UnderexcLimIEEE2::~UnderexcLimIEEE2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:UnderexcLimIEEE2.k1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.k2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kfb", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kuf", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p0", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p10", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p5", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p6", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p7", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p8", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p9", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q0", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q10", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q5", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q6", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q7", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q8", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q9", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tup", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tuq", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tuv", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vuimin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vulmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vulmin", { CGMESProfile::DY, } }, -}; - -std::list -UnderexcLimIEEE2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -UnderexcLimIEEE2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& UnderexcLimIEEE2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& UnderexcLimIEEE2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& UnderexcLimIEEE2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& UnderexcLimIEEE2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimIEEE2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimIEEE2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimIEEE2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimIEEE2_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1246,51 +1278,51 @@ const char* UnderexcLimIEEE2::debugString() const void UnderexcLimIEEE2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimIEEE2", &UnderexcLimIEEE2_factory); + factory_map.emplace("UnderexcLimIEEE2", &UnderexcLimIEEE2_factory); } void UnderexcLimIEEE2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimIEEE2.k1", &assign_UnderexcLimIEEE2_k1); - assign_map.emplace("cim:UnderexcLimIEEE2.k2", &assign_UnderexcLimIEEE2_k2); - assign_map.emplace("cim:UnderexcLimIEEE2.kfb", &assign_UnderexcLimIEEE2_kfb); - assign_map.emplace("cim:UnderexcLimIEEE2.kuf", &assign_UnderexcLimIEEE2_kuf); - assign_map.emplace("cim:UnderexcLimIEEE2.kui", &assign_UnderexcLimIEEE2_kui); - assign_map.emplace("cim:UnderexcLimIEEE2.kul", &assign_UnderexcLimIEEE2_kul); - assign_map.emplace("cim:UnderexcLimIEEE2.p0", &assign_UnderexcLimIEEE2_p0); - assign_map.emplace("cim:UnderexcLimIEEE2.p1", &assign_UnderexcLimIEEE2_p1); - assign_map.emplace("cim:UnderexcLimIEEE2.p10", &assign_UnderexcLimIEEE2_p10); - assign_map.emplace("cim:UnderexcLimIEEE2.p2", &assign_UnderexcLimIEEE2_p2); - assign_map.emplace("cim:UnderexcLimIEEE2.p3", &assign_UnderexcLimIEEE2_p3); - assign_map.emplace("cim:UnderexcLimIEEE2.p4", &assign_UnderexcLimIEEE2_p4); - assign_map.emplace("cim:UnderexcLimIEEE2.p5", &assign_UnderexcLimIEEE2_p5); - assign_map.emplace("cim:UnderexcLimIEEE2.p6", &assign_UnderexcLimIEEE2_p6); - assign_map.emplace("cim:UnderexcLimIEEE2.p7", &assign_UnderexcLimIEEE2_p7); - assign_map.emplace("cim:UnderexcLimIEEE2.p8", &assign_UnderexcLimIEEE2_p8); - assign_map.emplace("cim:UnderexcLimIEEE2.p9", &assign_UnderexcLimIEEE2_p9); - assign_map.emplace("cim:UnderexcLimIEEE2.q0", &assign_UnderexcLimIEEE2_q0); - assign_map.emplace("cim:UnderexcLimIEEE2.q1", &assign_UnderexcLimIEEE2_q1); - assign_map.emplace("cim:UnderexcLimIEEE2.q10", &assign_UnderexcLimIEEE2_q10); - assign_map.emplace("cim:UnderexcLimIEEE2.q2", &assign_UnderexcLimIEEE2_q2); - assign_map.emplace("cim:UnderexcLimIEEE2.q3", &assign_UnderexcLimIEEE2_q3); - assign_map.emplace("cim:UnderexcLimIEEE2.q4", &assign_UnderexcLimIEEE2_q4); - assign_map.emplace("cim:UnderexcLimIEEE2.q5", &assign_UnderexcLimIEEE2_q5); - assign_map.emplace("cim:UnderexcLimIEEE2.q6", &assign_UnderexcLimIEEE2_q6); - assign_map.emplace("cim:UnderexcLimIEEE2.q7", &assign_UnderexcLimIEEE2_q7); - assign_map.emplace("cim:UnderexcLimIEEE2.q8", &assign_UnderexcLimIEEE2_q8); - assign_map.emplace("cim:UnderexcLimIEEE2.q9", &assign_UnderexcLimIEEE2_q9); - assign_map.emplace("cim:UnderexcLimIEEE2.tu1", &assign_UnderexcLimIEEE2_tu1); - assign_map.emplace("cim:UnderexcLimIEEE2.tu2", &assign_UnderexcLimIEEE2_tu2); - assign_map.emplace("cim:UnderexcLimIEEE2.tu3", &assign_UnderexcLimIEEE2_tu3); - assign_map.emplace("cim:UnderexcLimIEEE2.tu4", &assign_UnderexcLimIEEE2_tu4); - assign_map.emplace("cim:UnderexcLimIEEE2.tul", &assign_UnderexcLimIEEE2_tul); - assign_map.emplace("cim:UnderexcLimIEEE2.tup", &assign_UnderexcLimIEEE2_tup); - assign_map.emplace("cim:UnderexcLimIEEE2.tuq", &assign_UnderexcLimIEEE2_tuq); - assign_map.emplace("cim:UnderexcLimIEEE2.tuv", &assign_UnderexcLimIEEE2_tuv); - assign_map.emplace("cim:UnderexcLimIEEE2.vuimax", &assign_UnderexcLimIEEE2_vuimax); - assign_map.emplace("cim:UnderexcLimIEEE2.vuimin", &assign_UnderexcLimIEEE2_vuimin); - assign_map.emplace("cim:UnderexcLimIEEE2.vulmax", &assign_UnderexcLimIEEE2_vulmax); - assign_map.emplace("cim:UnderexcLimIEEE2.vulmin", &assign_UnderexcLimIEEE2_vulmin); + assign_map.emplace("UnderexcLimIEEE2.k1", &assign_UnderexcLimIEEE2_k1); + assign_map.emplace("UnderexcLimIEEE2.k2", &assign_UnderexcLimIEEE2_k2); + assign_map.emplace("UnderexcLimIEEE2.kfb", &assign_UnderexcLimIEEE2_kfb); + assign_map.emplace("UnderexcLimIEEE2.kuf", &assign_UnderexcLimIEEE2_kuf); + assign_map.emplace("UnderexcLimIEEE2.kui", &assign_UnderexcLimIEEE2_kui); + assign_map.emplace("UnderexcLimIEEE2.kul", &assign_UnderexcLimIEEE2_kul); + assign_map.emplace("UnderexcLimIEEE2.p0", &assign_UnderexcLimIEEE2_p0); + assign_map.emplace("UnderexcLimIEEE2.p1", &assign_UnderexcLimIEEE2_p1); + assign_map.emplace("UnderexcLimIEEE2.p10", &assign_UnderexcLimIEEE2_p10); + assign_map.emplace("UnderexcLimIEEE2.p2", &assign_UnderexcLimIEEE2_p2); + assign_map.emplace("UnderexcLimIEEE2.p3", &assign_UnderexcLimIEEE2_p3); + assign_map.emplace("UnderexcLimIEEE2.p4", &assign_UnderexcLimIEEE2_p4); + assign_map.emplace("UnderexcLimIEEE2.p5", &assign_UnderexcLimIEEE2_p5); + assign_map.emplace("UnderexcLimIEEE2.p6", &assign_UnderexcLimIEEE2_p6); + assign_map.emplace("UnderexcLimIEEE2.p7", &assign_UnderexcLimIEEE2_p7); + assign_map.emplace("UnderexcLimIEEE2.p8", &assign_UnderexcLimIEEE2_p8); + assign_map.emplace("UnderexcLimIEEE2.p9", &assign_UnderexcLimIEEE2_p9); + assign_map.emplace("UnderexcLimIEEE2.q0", &assign_UnderexcLimIEEE2_q0); + assign_map.emplace("UnderexcLimIEEE2.q1", &assign_UnderexcLimIEEE2_q1); + assign_map.emplace("UnderexcLimIEEE2.q10", &assign_UnderexcLimIEEE2_q10); + assign_map.emplace("UnderexcLimIEEE2.q2", &assign_UnderexcLimIEEE2_q2); + assign_map.emplace("UnderexcLimIEEE2.q3", &assign_UnderexcLimIEEE2_q3); + assign_map.emplace("UnderexcLimIEEE2.q4", &assign_UnderexcLimIEEE2_q4); + assign_map.emplace("UnderexcLimIEEE2.q5", &assign_UnderexcLimIEEE2_q5); + assign_map.emplace("UnderexcLimIEEE2.q6", &assign_UnderexcLimIEEE2_q6); + assign_map.emplace("UnderexcLimIEEE2.q7", &assign_UnderexcLimIEEE2_q7); + assign_map.emplace("UnderexcLimIEEE2.q8", &assign_UnderexcLimIEEE2_q8); + assign_map.emplace("UnderexcLimIEEE2.q9", &assign_UnderexcLimIEEE2_q9); + assign_map.emplace("UnderexcLimIEEE2.tu1", &assign_UnderexcLimIEEE2_tu1); + assign_map.emplace("UnderexcLimIEEE2.tu2", &assign_UnderexcLimIEEE2_tu2); + assign_map.emplace("UnderexcLimIEEE2.tu3", &assign_UnderexcLimIEEE2_tu3); + assign_map.emplace("UnderexcLimIEEE2.tu4", &assign_UnderexcLimIEEE2_tu4); + assign_map.emplace("UnderexcLimIEEE2.tul", &assign_UnderexcLimIEEE2_tul); + assign_map.emplace("UnderexcLimIEEE2.tup", &assign_UnderexcLimIEEE2_tup); + assign_map.emplace("UnderexcLimIEEE2.tuq", &assign_UnderexcLimIEEE2_tuq); + assign_map.emplace("UnderexcLimIEEE2.tuv", &assign_UnderexcLimIEEE2_tuv); + assign_map.emplace("UnderexcLimIEEE2.vuimax", &assign_UnderexcLimIEEE2_vuimax); + assign_map.emplace("UnderexcLimIEEE2.vuimin", &assign_UnderexcLimIEEE2_vuimin); + assign_map.emplace("UnderexcLimIEEE2.vulmax", &assign_UnderexcLimIEEE2_vulmax); + assign_map.emplace("UnderexcLimIEEE2.vulmin", &assign_UnderexcLimIEEE2_vulmin); } void UnderexcLimIEEE2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1300,46 +1332,46 @@ void UnderexcLimIEEE2::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimIEEE2.k1", &get_UnderexcLimIEEE2_k1); - get_map.emplace("cim:UnderexcLimIEEE2.k2", &get_UnderexcLimIEEE2_k2); - get_map.emplace("cim:UnderexcLimIEEE2.kfb", &get_UnderexcLimIEEE2_kfb); - get_map.emplace("cim:UnderexcLimIEEE2.kuf", &get_UnderexcLimIEEE2_kuf); - get_map.emplace("cim:UnderexcLimIEEE2.kui", &get_UnderexcLimIEEE2_kui); - get_map.emplace("cim:UnderexcLimIEEE2.kul", &get_UnderexcLimIEEE2_kul); - get_map.emplace("cim:UnderexcLimIEEE2.p0", &get_UnderexcLimIEEE2_p0); - get_map.emplace("cim:UnderexcLimIEEE2.p1", &get_UnderexcLimIEEE2_p1); - get_map.emplace("cim:UnderexcLimIEEE2.p10", &get_UnderexcLimIEEE2_p10); - get_map.emplace("cim:UnderexcLimIEEE2.p2", &get_UnderexcLimIEEE2_p2); - get_map.emplace("cim:UnderexcLimIEEE2.p3", &get_UnderexcLimIEEE2_p3); - get_map.emplace("cim:UnderexcLimIEEE2.p4", &get_UnderexcLimIEEE2_p4); - get_map.emplace("cim:UnderexcLimIEEE2.p5", &get_UnderexcLimIEEE2_p5); - get_map.emplace("cim:UnderexcLimIEEE2.p6", &get_UnderexcLimIEEE2_p6); - get_map.emplace("cim:UnderexcLimIEEE2.p7", &get_UnderexcLimIEEE2_p7); - get_map.emplace("cim:UnderexcLimIEEE2.p8", &get_UnderexcLimIEEE2_p8); - get_map.emplace("cim:UnderexcLimIEEE2.p9", &get_UnderexcLimIEEE2_p9); - get_map.emplace("cim:UnderexcLimIEEE2.q0", &get_UnderexcLimIEEE2_q0); - get_map.emplace("cim:UnderexcLimIEEE2.q1", &get_UnderexcLimIEEE2_q1); - get_map.emplace("cim:UnderexcLimIEEE2.q10", &get_UnderexcLimIEEE2_q10); - get_map.emplace("cim:UnderexcLimIEEE2.q2", &get_UnderexcLimIEEE2_q2); - get_map.emplace("cim:UnderexcLimIEEE2.q3", &get_UnderexcLimIEEE2_q3); - get_map.emplace("cim:UnderexcLimIEEE2.q4", &get_UnderexcLimIEEE2_q4); - get_map.emplace("cim:UnderexcLimIEEE2.q5", &get_UnderexcLimIEEE2_q5); - get_map.emplace("cim:UnderexcLimIEEE2.q6", &get_UnderexcLimIEEE2_q6); - get_map.emplace("cim:UnderexcLimIEEE2.q7", &get_UnderexcLimIEEE2_q7); - get_map.emplace("cim:UnderexcLimIEEE2.q8", &get_UnderexcLimIEEE2_q8); - get_map.emplace("cim:UnderexcLimIEEE2.q9", &get_UnderexcLimIEEE2_q9); - get_map.emplace("cim:UnderexcLimIEEE2.tu1", &get_UnderexcLimIEEE2_tu1); - get_map.emplace("cim:UnderexcLimIEEE2.tu2", &get_UnderexcLimIEEE2_tu2); - get_map.emplace("cim:UnderexcLimIEEE2.tu3", &get_UnderexcLimIEEE2_tu3); - get_map.emplace("cim:UnderexcLimIEEE2.tu4", &get_UnderexcLimIEEE2_tu4); - get_map.emplace("cim:UnderexcLimIEEE2.tul", &get_UnderexcLimIEEE2_tul); - get_map.emplace("cim:UnderexcLimIEEE2.tup", &get_UnderexcLimIEEE2_tup); - get_map.emplace("cim:UnderexcLimIEEE2.tuq", &get_UnderexcLimIEEE2_tuq); - get_map.emplace("cim:UnderexcLimIEEE2.tuv", &get_UnderexcLimIEEE2_tuv); - get_map.emplace("cim:UnderexcLimIEEE2.vuimax", &get_UnderexcLimIEEE2_vuimax); - get_map.emplace("cim:UnderexcLimIEEE2.vuimin", &get_UnderexcLimIEEE2_vuimin); - get_map.emplace("cim:UnderexcLimIEEE2.vulmax", &get_UnderexcLimIEEE2_vulmax); - get_map.emplace("cim:UnderexcLimIEEE2.vulmin", &get_UnderexcLimIEEE2_vulmin); + get_map.emplace("UnderexcLimIEEE2.k1", &get_UnderexcLimIEEE2_k1); + get_map.emplace("UnderexcLimIEEE2.k2", &get_UnderexcLimIEEE2_k2); + get_map.emplace("UnderexcLimIEEE2.kfb", &get_UnderexcLimIEEE2_kfb); + get_map.emplace("UnderexcLimIEEE2.kuf", &get_UnderexcLimIEEE2_kuf); + get_map.emplace("UnderexcLimIEEE2.kui", &get_UnderexcLimIEEE2_kui); + get_map.emplace("UnderexcLimIEEE2.kul", &get_UnderexcLimIEEE2_kul); + get_map.emplace("UnderexcLimIEEE2.p0", &get_UnderexcLimIEEE2_p0); + get_map.emplace("UnderexcLimIEEE2.p1", &get_UnderexcLimIEEE2_p1); + get_map.emplace("UnderexcLimIEEE2.p10", &get_UnderexcLimIEEE2_p10); + get_map.emplace("UnderexcLimIEEE2.p2", &get_UnderexcLimIEEE2_p2); + get_map.emplace("UnderexcLimIEEE2.p3", &get_UnderexcLimIEEE2_p3); + get_map.emplace("UnderexcLimIEEE2.p4", &get_UnderexcLimIEEE2_p4); + get_map.emplace("UnderexcLimIEEE2.p5", &get_UnderexcLimIEEE2_p5); + get_map.emplace("UnderexcLimIEEE2.p6", &get_UnderexcLimIEEE2_p6); + get_map.emplace("UnderexcLimIEEE2.p7", &get_UnderexcLimIEEE2_p7); + get_map.emplace("UnderexcLimIEEE2.p8", &get_UnderexcLimIEEE2_p8); + get_map.emplace("UnderexcLimIEEE2.p9", &get_UnderexcLimIEEE2_p9); + get_map.emplace("UnderexcLimIEEE2.q0", &get_UnderexcLimIEEE2_q0); + get_map.emplace("UnderexcLimIEEE2.q1", &get_UnderexcLimIEEE2_q1); + get_map.emplace("UnderexcLimIEEE2.q10", &get_UnderexcLimIEEE2_q10); + get_map.emplace("UnderexcLimIEEE2.q2", &get_UnderexcLimIEEE2_q2); + get_map.emplace("UnderexcLimIEEE2.q3", &get_UnderexcLimIEEE2_q3); + get_map.emplace("UnderexcLimIEEE2.q4", &get_UnderexcLimIEEE2_q4); + get_map.emplace("UnderexcLimIEEE2.q5", &get_UnderexcLimIEEE2_q5); + get_map.emplace("UnderexcLimIEEE2.q6", &get_UnderexcLimIEEE2_q6); + get_map.emplace("UnderexcLimIEEE2.q7", &get_UnderexcLimIEEE2_q7); + get_map.emplace("UnderexcLimIEEE2.q8", &get_UnderexcLimIEEE2_q8); + get_map.emplace("UnderexcLimIEEE2.q9", &get_UnderexcLimIEEE2_q9); + get_map.emplace("UnderexcLimIEEE2.tu1", &get_UnderexcLimIEEE2_tu1); + get_map.emplace("UnderexcLimIEEE2.tu2", &get_UnderexcLimIEEE2_tu2); + get_map.emplace("UnderexcLimIEEE2.tu3", &get_UnderexcLimIEEE2_tu3); + get_map.emplace("UnderexcLimIEEE2.tu4", &get_UnderexcLimIEEE2_tu4); + get_map.emplace("UnderexcLimIEEE2.tul", &get_UnderexcLimIEEE2_tul); + get_map.emplace("UnderexcLimIEEE2.tup", &get_UnderexcLimIEEE2_tup); + get_map.emplace("UnderexcLimIEEE2.tuq", &get_UnderexcLimIEEE2_tuq); + get_map.emplace("UnderexcLimIEEE2.tuv", &get_UnderexcLimIEEE2_tuv); + get_map.emplace("UnderexcLimIEEE2.vuimax", &get_UnderexcLimIEEE2_vuimax); + get_map.emplace("UnderexcLimIEEE2.vuimin", &get_UnderexcLimIEEE2_vuimin); + get_map.emplace("UnderexcLimIEEE2.vulmax", &get_UnderexcLimIEEE2_vulmax); + get_map.emplace("UnderexcLimIEEE2.vulmin", &get_UnderexcLimIEEE2_vulmin); } void UnderexcLimIEEE2::addClassGetFnsToMap(std::map& get_map) const @@ -1352,11 +1384,25 @@ void UnderexcLimIEEE2::addEnumGetFnsToMap(std::map& g UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimIEEE2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimIEEE2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimIEEE2::declare() { return BaseClassDefiner(UnderexcLimIEEE2::addConstructToMap, UnderexcLimIEEE2::addPrimitiveAssignFnsToMap, UnderexcLimIEEE2::addClassAssignFnsToMap, UnderexcLimIEEE2::debugName); } +std::map UnderexcLimIEEE2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimIEEE2_factory() diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.hpp b/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.hpp index 1a95ced19..527543df7 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.hpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLimIEEE2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimIEEE2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLimX1.cpp b/CGMES_2.4.15_27JAN2020/UnderexcLimX1.cpp index a14d1ce69..6f8ef9284 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLimX1.cpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLimX1.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimX1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimX1.k", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.melmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimX1::UnderexcLimX1() {} UnderexcLimX1::~UnderexcLimX1() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimX1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimX1::getClassNamespaceUrl() const { - { "cim:UnderexcLimX1.k", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.kf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.km", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.melmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.tf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.tm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimX1::getPossibleProfilesForClass() const +const std::string& UnderexcLimX1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimX1::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimX1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimX1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimX1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimX1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimX1_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* UnderexcLimX1::debugString() const void UnderexcLimX1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimX1", &UnderexcLimX1_factory); + factory_map.emplace("UnderexcLimX1", &UnderexcLimX1_factory); } void UnderexcLimX1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimX1.k", &assign_UnderexcLimX1_k); - assign_map.emplace("cim:UnderexcLimX1.kf2", &assign_UnderexcLimX1_kf2); - assign_map.emplace("cim:UnderexcLimX1.km", &assign_UnderexcLimX1_km); - assign_map.emplace("cim:UnderexcLimX1.melmax", &assign_UnderexcLimX1_melmax); - assign_map.emplace("cim:UnderexcLimX1.tf2", &assign_UnderexcLimX1_tf2); - assign_map.emplace("cim:UnderexcLimX1.tm", &assign_UnderexcLimX1_tm); + assign_map.emplace("UnderexcLimX1.k", &assign_UnderexcLimX1_k); + assign_map.emplace("UnderexcLimX1.kf2", &assign_UnderexcLimX1_kf2); + assign_map.emplace("UnderexcLimX1.km", &assign_UnderexcLimX1_km); + assign_map.emplace("UnderexcLimX1.melmax", &assign_UnderexcLimX1_melmax); + assign_map.emplace("UnderexcLimX1.tf2", &assign_UnderexcLimX1_tf2); + assign_map.emplace("UnderexcLimX1.tm", &assign_UnderexcLimX1_tm); } void UnderexcLimX1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void UnderexcLimX1::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimX1.k", &get_UnderexcLimX1_k); - get_map.emplace("cim:UnderexcLimX1.kf2", &get_UnderexcLimX1_kf2); - get_map.emplace("cim:UnderexcLimX1.km", &get_UnderexcLimX1_km); - get_map.emplace("cim:UnderexcLimX1.melmax", &get_UnderexcLimX1_melmax); - get_map.emplace("cim:UnderexcLimX1.tf2", &get_UnderexcLimX1_tf2); - get_map.emplace("cim:UnderexcLimX1.tm", &get_UnderexcLimX1_tm); + get_map.emplace("UnderexcLimX1.k", &get_UnderexcLimX1_k); + get_map.emplace("UnderexcLimX1.kf2", &get_UnderexcLimX1_kf2); + get_map.emplace("UnderexcLimX1.km", &get_UnderexcLimX1_km); + get_map.emplace("UnderexcLimX1.melmax", &get_UnderexcLimX1_melmax); + get_map.emplace("UnderexcLimX1.tf2", &get_UnderexcLimX1_tf2); + get_map.emplace("UnderexcLimX1.tm", &get_UnderexcLimX1_tm); } void UnderexcLimX1::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void UnderexcLimX1::addEnumGetFnsToMap(std::map& get_ UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimX1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimX1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimX1::declare() { return BaseClassDefiner(UnderexcLimX1::addConstructToMap, UnderexcLimX1::addPrimitiveAssignFnsToMap, UnderexcLimX1::addClassAssignFnsToMap, UnderexcLimX1::debugName); } +std::map UnderexcLimX1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimX1_factory() diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLimX1.hpp b/CGMES_2.4.15_27JAN2020/UnderexcLimX1.hpp index cd15dda37..306bb56bc 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLimX1.hpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLimX1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimX1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLimX2.cpp b/CGMES_2.4.15_27JAN2020/UnderexcLimX2.cpp index 64bf7f3c5..ea9b015c6 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLimX2.cpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLimX2.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimX2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimX2.kf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.km", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.melmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.qo", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.r", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.tf2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.tm", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimX2::UnderexcLimX2() {} UnderexcLimX2::~UnderexcLimX2() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimX2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimX2::getClassNamespaceUrl() const { - { "cim:UnderexcLimX2.kf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.km", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.melmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.qo", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.r", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.tf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.tm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimX2::getPossibleProfilesForClass() const +const std::string& UnderexcLimX2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimX2::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimX2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimX2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimX2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimX2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimX2_kf2(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* UnderexcLimX2::debugString() const void UnderexcLimX2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimX2", &UnderexcLimX2_factory); + factory_map.emplace("UnderexcLimX2", &UnderexcLimX2_factory); } void UnderexcLimX2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimX2.kf2", &assign_UnderexcLimX2_kf2); - assign_map.emplace("cim:UnderexcLimX2.km", &assign_UnderexcLimX2_km); - assign_map.emplace("cim:UnderexcLimX2.melmax", &assign_UnderexcLimX2_melmax); - assign_map.emplace("cim:UnderexcLimX2.qo", &assign_UnderexcLimX2_qo); - assign_map.emplace("cim:UnderexcLimX2.r", &assign_UnderexcLimX2_r); - assign_map.emplace("cim:UnderexcLimX2.tf2", &assign_UnderexcLimX2_tf2); - assign_map.emplace("cim:UnderexcLimX2.tm", &assign_UnderexcLimX2_tm); + assign_map.emplace("UnderexcLimX2.kf2", &assign_UnderexcLimX2_kf2); + assign_map.emplace("UnderexcLimX2.km", &assign_UnderexcLimX2_km); + assign_map.emplace("UnderexcLimX2.melmax", &assign_UnderexcLimX2_melmax); + assign_map.emplace("UnderexcLimX2.qo", &assign_UnderexcLimX2_qo); + assign_map.emplace("UnderexcLimX2.r", &assign_UnderexcLimX2_r); + assign_map.emplace("UnderexcLimX2.tf2", &assign_UnderexcLimX2_tf2); + assign_map.emplace("UnderexcLimX2.tm", &assign_UnderexcLimX2_tm); } void UnderexcLimX2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void UnderexcLimX2::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimX2.kf2", &get_UnderexcLimX2_kf2); - get_map.emplace("cim:UnderexcLimX2.km", &get_UnderexcLimX2_km); - get_map.emplace("cim:UnderexcLimX2.melmax", &get_UnderexcLimX2_melmax); - get_map.emplace("cim:UnderexcLimX2.qo", &get_UnderexcLimX2_qo); - get_map.emplace("cim:UnderexcLimX2.r", &get_UnderexcLimX2_r); - get_map.emplace("cim:UnderexcLimX2.tf2", &get_UnderexcLimX2_tf2); - get_map.emplace("cim:UnderexcLimX2.tm", &get_UnderexcLimX2_tm); + get_map.emplace("UnderexcLimX2.kf2", &get_UnderexcLimX2_kf2); + get_map.emplace("UnderexcLimX2.km", &get_UnderexcLimX2_km); + get_map.emplace("UnderexcLimX2.melmax", &get_UnderexcLimX2_melmax); + get_map.emplace("UnderexcLimX2.qo", &get_UnderexcLimX2_qo); + get_map.emplace("UnderexcLimX2.r", &get_UnderexcLimX2_r); + get_map.emplace("UnderexcLimX2.tf2", &get_UnderexcLimX2_tf2); + get_map.emplace("UnderexcLimX2.tm", &get_UnderexcLimX2_tm); } void UnderexcLimX2::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void UnderexcLimX2::addEnumGetFnsToMap(std::map& get_ UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimX2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimX2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimX2::declare() { return BaseClassDefiner(UnderexcLimX2::addConstructToMap, UnderexcLimX2::addPrimitiveAssignFnsToMap, UnderexcLimX2::addClassAssignFnsToMap, UnderexcLimX2::debugName); } +std::map UnderexcLimX2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimX2_factory() diff --git a/CGMES_2.4.15_27JAN2020/UnderexcLimX2.hpp b/CGMES_2.4.15_27JAN2020/UnderexcLimX2.hpp index 43f2bfa49..14f9a19a2 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcLimX2.hpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcLimX2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimX2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterDynamics.cpp b/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterDynamics.cpp index 18ef7b3ec..ec64d21b1 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcitationLimiterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcitationLimiterDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcitationLimiterDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcitationLimiterDynamics::UnderexcitationLimiterDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} UnderexcitationLimiterDynamics::~UnderexcitationLimiterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcitationLimiterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcitationLimiterDynamics::getClassNamespaceUrl() const { - { "cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:UnderexcitationLimiterDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcitationLimiterDynamics::getPossibleProfilesForClass() const +const std::string& UnderexcitationLimiterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes() const +const std::list& UnderexcitationLimiterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcitationLimiterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcitationLimiterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcitationLimiterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* UnderexcitationLimiterDynamics::debugString() const void UnderexcitationLimiterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcitationLimiterDynamics", &UnderexcitationLimiterDynamics_factory); + factory_map.emplace("UnderexcitationLimiterDynamics", &UnderexcitationLimiterDynamics_factory); } void UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_m void UnderexcitationLimiterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:UnderexcitationLimiterDynamics.RemoteInputSignal", &assign_UnderexcitationLimiterDynamics_RemoteInputSignal); + assign_map.emplace("UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); + assign_map.emplace("UnderexcitationLimiterDynamics.RemoteInputSignal", &assign_UnderexcitationLimiterDynamics_RemoteInputSignal); } void UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &get_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); + get_map.emplace("UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &get_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); } void UnderexcitationLimiterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void UnderexcitationLimiterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcitationLimiterDynamics::declare() { return BaseClassDefiner(UnderexcitationLimiterDynamics::addConstructToMap, UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap, UnderexcitationLimiterDynamics::addClassAssignFnsToMap, UnderexcitationLimiterDynamics::debugName); } +std::map UnderexcitationLimiterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcitationLimiterDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterDynamics.hpp b/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterDynamics.hpp index 3836bf4cc..630ff3a92 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcitationLimiterDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterUserDefined.cpp b/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterUserDefined.cpp index fb5ad61c2..11c33ca94 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcitationLimiterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "UnderexcitationLimiterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcitationLimiterUserDefined::UnderexcitationLimiterUserDefined() {} UnderexcitationLimiterUserDefined::~UnderexcitationLimiterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcitationLimiterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcitationLimiterUserDefined::getClassNamespaceUrl() const { - { "cim:UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:UnderexcitationLimiterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcitationLimiterUserDefined::getPossibleProfilesForClass() const +const std::string& UnderexcitationLimiterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcitationLimiterUserDefined::getPossibleProfilesForAttributes() const +const std::list& UnderexcitationLimiterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcitationLimiterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcitationLimiterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcitationLimiterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* UnderexcitationLimiterUserDefined::debugString() const void UnderexcitationLimiterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcitationLimiterUserDefined", &UnderexcitationLimiterUserDefined_factory); + factory_map.emplace("UnderexcitationLimiterUserDefined", &UnderexcitationLimiterUserDefined_factory); } void UnderexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterUserDefined.proprietary", &assign_UnderexcitationLimiterUserDefined_proprietary); + assign_map.emplace("UnderexcitationLimiterUserDefined.proprietary", &assign_UnderexcitationLimiterUserDefined_proprietary); } void UnderexcitationLimiterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_UnderexcitationLimiterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_UnderexcitationLimiterUserDefined_ProprietaryParameterDynamics); } void UnderexcitationLimiterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcitationLimiterUserDefined.proprietary", &get_UnderexcitationLimiterUserDefined_proprietary); + get_map.emplace("UnderexcitationLimiterUserDefined.proprietary", &get_UnderexcitationLimiterUserDefined_proprietary); } void UnderexcitationLimiterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void UnderexcitationLimiterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcitationLimiterUserDefined::declare() { return BaseClassDefiner(UnderexcitationLimiterUserDefined::addConstructToMap, UnderexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap, UnderexcitationLimiterUserDefined::addClassAssignFnsToMap, UnderexcitationLimiterUserDefined::debugName); } +std::map UnderexcitationLimiterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcitationLimiterUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterUserDefined.hpp b/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterUserDefined.hpp index 5971269bc..f96e03a10 100644 --- a/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/UnderexcitationLimiterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcitationLimiterUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VAdjIEEE.cpp b/CGMES_2.4.15_27JAN2020/VAdjIEEE.cpp index f62f88f4f..597fccfdd 100644 --- a/CGMES_2.4.15_27JAN2020/VAdjIEEE.cpp +++ b/CGMES_2.4.15_27JAN2020/VAdjIEEE.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VAdjIEEE(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VAdjIEEE.adjslew", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.taoff", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.taon", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VAdjIEEE::VAdjIEEE() {} VAdjIEEE::~VAdjIEEE() {} -static const std::list PossibleProfilesForClass = +const std::list& VAdjIEEE::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VAdjIEEE::getClassNamespaceUrl() const { - { "cim:VAdjIEEE.adjslew", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.taoff", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.taon", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjf", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjmax", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VAdjIEEE::getPossibleProfilesForClass() const +const std::string& VAdjIEEE::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VAdjIEEE::getPossibleProfilesForAttributes() const +const std::list& VAdjIEEE::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageAdjusterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VAdjIEEE::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VAdjIEEE::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VAdjIEEE::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VAdjIEEE_adjslew(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* VAdjIEEE::debugString() const void VAdjIEEE::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VAdjIEEE", &VAdjIEEE_factory); + factory_map.emplace("VAdjIEEE", &VAdjIEEE_factory); } void VAdjIEEE::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VAdjIEEE.adjslew", &assign_VAdjIEEE_adjslew); - assign_map.emplace("cim:VAdjIEEE.taoff", &assign_VAdjIEEE_taoff); - assign_map.emplace("cim:VAdjIEEE.taon", &assign_VAdjIEEE_taon); - assign_map.emplace("cim:VAdjIEEE.vadjf", &assign_VAdjIEEE_vadjf); - assign_map.emplace("cim:VAdjIEEE.vadjmax", &assign_VAdjIEEE_vadjmax); - assign_map.emplace("cim:VAdjIEEE.vadjmin", &assign_VAdjIEEE_vadjmin); + assign_map.emplace("VAdjIEEE.adjslew", &assign_VAdjIEEE_adjslew); + assign_map.emplace("VAdjIEEE.taoff", &assign_VAdjIEEE_taoff); + assign_map.emplace("VAdjIEEE.taon", &assign_VAdjIEEE_taon); + assign_map.emplace("VAdjIEEE.vadjf", &assign_VAdjIEEE_vadjf); + assign_map.emplace("VAdjIEEE.vadjmax", &assign_VAdjIEEE_vadjmax); + assign_map.emplace("VAdjIEEE.vadjmin", &assign_VAdjIEEE_vadjmin); } void VAdjIEEE::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void VAdjIEEE::addClassAssignFnsToMap(std::unordered_map& get_map) const { VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VAdjIEEE.adjslew", &get_VAdjIEEE_adjslew); - get_map.emplace("cim:VAdjIEEE.taoff", &get_VAdjIEEE_taoff); - get_map.emplace("cim:VAdjIEEE.taon", &get_VAdjIEEE_taon); - get_map.emplace("cim:VAdjIEEE.vadjf", &get_VAdjIEEE_vadjf); - get_map.emplace("cim:VAdjIEEE.vadjmax", &get_VAdjIEEE_vadjmax); - get_map.emplace("cim:VAdjIEEE.vadjmin", &get_VAdjIEEE_vadjmin); + get_map.emplace("VAdjIEEE.adjslew", &get_VAdjIEEE_adjslew); + get_map.emplace("VAdjIEEE.taoff", &get_VAdjIEEE_taoff); + get_map.emplace("VAdjIEEE.taon", &get_VAdjIEEE_taon); + get_map.emplace("VAdjIEEE.vadjf", &get_VAdjIEEE_vadjf); + get_map.emplace("VAdjIEEE.vadjmax", &get_VAdjIEEE_vadjmax); + get_map.emplace("VAdjIEEE.vadjmin", &get_VAdjIEEE_vadjmin); } void VAdjIEEE::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void VAdjIEEE::addEnumGetFnsToMap(std::map& get_map) VoltageAdjusterDynamics::addEnumGetFnsToMap(get_map); } +bool VAdjIEEE::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VAdjIEEE" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VAdjIEEE::declare() { return BaseClassDefiner(VAdjIEEE::addConstructToMap, VAdjIEEE::addPrimitiveAssignFnsToMap, VAdjIEEE::addClassAssignFnsToMap, VAdjIEEE::debugName); } +std::map VAdjIEEE::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageAdjusterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VAdjIEEE_factory() diff --git a/CGMES_2.4.15_27JAN2020/VAdjIEEE.hpp b/CGMES_2.4.15_27JAN2020/VAdjIEEE.hpp index 8ada8dfb7..30153dbbf 100644 --- a/CGMES_2.4.15_27JAN2020/VAdjIEEE.hpp +++ b/CGMES_2.4.15_27JAN2020/VAdjIEEE.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageAdjusterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VAdjIEEE_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VCompIEEEType1.cpp b/CGMES_2.4.15_27JAN2020/VCompIEEEType1.cpp index 92cbabebb..a87383c71 100644 --- a/CGMES_2.4.15_27JAN2020/VCompIEEEType1.cpp +++ b/CGMES_2.4.15_27JAN2020/VCompIEEEType1.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VCompIEEEType1(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VCompIEEEType1.rc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType1.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType1.xc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VCompIEEEType1::VCompIEEEType1() {} VCompIEEEType1::~VCompIEEEType1() {} -static const std::list PossibleProfilesForClass = +const std::list& VCompIEEEType1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VCompIEEEType1::getClassNamespaceUrl() const { - { "cim:VCompIEEEType1.rc", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType1.tr", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType1.xc", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VCompIEEEType1::getPossibleProfilesForClass() const +const std::string& VCompIEEEType1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VCompIEEEType1::getPossibleProfilesForAttributes() const +const std::list& VCompIEEEType1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VCompIEEEType1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VCompIEEEType1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VCompIEEEType1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VCompIEEEType1_rc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* VCompIEEEType1::debugString() const void VCompIEEEType1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VCompIEEEType1", &VCompIEEEType1_factory); + factory_map.emplace("VCompIEEEType1", &VCompIEEEType1_factory); } void VCompIEEEType1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType1.rc", &assign_VCompIEEEType1_rc); - assign_map.emplace("cim:VCompIEEEType1.tr", &assign_VCompIEEEType1_tr); - assign_map.emplace("cim:VCompIEEEType1.xc", &assign_VCompIEEEType1_xc); + assign_map.emplace("VCompIEEEType1.rc", &assign_VCompIEEEType1_rc); + assign_map.emplace("VCompIEEEType1.tr", &assign_VCompIEEEType1_tr); + assign_map.emplace("VCompIEEEType1.xc", &assign_VCompIEEEType1_xc); } void VCompIEEEType1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void VCompIEEEType1::addClassAssignFnsToMap(std::unordered_map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VCompIEEEType1.rc", &get_VCompIEEEType1_rc); - get_map.emplace("cim:VCompIEEEType1.tr", &get_VCompIEEEType1_tr); - get_map.emplace("cim:VCompIEEEType1.xc", &get_VCompIEEEType1_xc); + get_map.emplace("VCompIEEEType1.rc", &get_VCompIEEEType1_rc); + get_map.emplace("VCompIEEEType1.tr", &get_VCompIEEEType1_tr); + get_map.emplace("VCompIEEEType1.xc", &get_VCompIEEEType1_xc); } void VCompIEEEType1::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void VCompIEEEType1::addEnumGetFnsToMap(std::map& get VoltageCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool VCompIEEEType1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VCompIEEEType1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VCompIEEEType1::declare() { return BaseClassDefiner(VCompIEEEType1::addConstructToMap, VCompIEEEType1::addPrimitiveAssignFnsToMap, VCompIEEEType1::addClassAssignFnsToMap, VCompIEEEType1::debugName); } +std::map VCompIEEEType1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VCompIEEEType1_factory() diff --git a/CGMES_2.4.15_27JAN2020/VCompIEEEType1.hpp b/CGMES_2.4.15_27JAN2020/VCompIEEEType1.hpp index d5232a748..4ecf35e09 100644 --- a/CGMES_2.4.15_27JAN2020/VCompIEEEType1.hpp +++ b/CGMES_2.4.15_27JAN2020/VCompIEEEType1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VCompIEEEType1_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VCompIEEEType2.cpp b/CGMES_2.4.15_27JAN2020/VCompIEEEType2.cpp index 1377d7b30..49cf86194 100644 --- a/CGMES_2.4.15_27JAN2020/VCompIEEEType2.cpp +++ b/CGMES_2.4.15_27JAN2020/VCompIEEEType2.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VCompIEEEType2(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VCompIEEEType2.GenICompensationForGenJ", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VCompIEEEType2.tr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VCompIEEEType2::VCompIEEEType2() {} VCompIEEEType2::~VCompIEEEType2() {} -static const std::list PossibleProfilesForClass = +const std::list& VCompIEEEType2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VCompIEEEType2::getClassNamespaceUrl() const { - { "cim:VCompIEEEType2.GenICompensationForGenJ", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType2.tr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VCompIEEEType2::getPossibleProfilesForClass() const +const std::string& VCompIEEEType2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VCompIEEEType2::getPossibleProfilesForAttributes() const +const std::list& VCompIEEEType2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VCompIEEEType2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VCompIEEEType2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VCompIEEEType2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GenICompensationForGenJ_VcompIEEEType2(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VCompIEEEType2::debugString() const void VCompIEEEType2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VCompIEEEType2", &VCompIEEEType2_factory); + factory_map.emplace("VCompIEEEType2", &VCompIEEEType2_factory); } void VCompIEEEType2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType2.tr", &assign_VCompIEEEType2_tr); + assign_map.emplace("VCompIEEEType2.tr", &assign_VCompIEEEType2_tr); } void VCompIEEEType2::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType2.GenICompensationForGenJ", &assign_VCompIEEEType2_GenICompensationForGenJ); + assign_map.emplace("VCompIEEEType2.GenICompensationForGenJ", &assign_VCompIEEEType2_GenICompensationForGenJ); } void VCompIEEEType2::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VCompIEEEType2.tr", &get_VCompIEEEType2_tr); + get_map.emplace("VCompIEEEType2.tr", &get_VCompIEEEType2_tr); } void VCompIEEEType2::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VCompIEEEType2::addEnumGetFnsToMap(std::map& get VoltageCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool VCompIEEEType2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VCompIEEEType2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VCompIEEEType2::declare() { return BaseClassDefiner(VCompIEEEType2::addConstructToMap, VCompIEEEType2::addPrimitiveAssignFnsToMap, VCompIEEEType2::addClassAssignFnsToMap, VCompIEEEType2::debugName); } +std::map VCompIEEEType2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VCompIEEEType2_factory() diff --git a/CGMES_2.4.15_27JAN2020/VCompIEEEType2.hpp b/CGMES_2.4.15_27JAN2020/VCompIEEEType2.hpp index 67fe38c34..caf63301e 100644 --- a/CGMES_2.4.15_27JAN2020/VCompIEEEType2.hpp +++ b/CGMES_2.4.15_27JAN2020/VCompIEEEType2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Seconds.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VCompIEEEType2_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ValueAliasSet.cpp b/CGMES_2.4.15_27JAN2020/ValueAliasSet.cpp index 1ba46808c..d6718438f 100644 --- a/CGMES_2.4.15_27JAN2020/ValueAliasSet.cpp +++ b/CGMES_2.4.15_27JAN2020/ValueAliasSet.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ValueAliasSet(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ValueAliasSet.Commands", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.Discretes", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.RaiseLowerCommands", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueAliasSet.Values", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ValueAliasSet::ValueAliasSet() {} ValueAliasSet::~ValueAliasSet() {} -static const std::list PossibleProfilesForClass = +const std::list& ValueAliasSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ValueAliasSet::getClassNamespaceUrl() const { - { "cim:ValueAliasSet.Commands", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.Discretes", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.RaiseLowerCommands", { CGMESProfile::EQ, } }, - { "cim:ValueAliasSet.Values", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ValueAliasSet::getPossibleProfilesForClass() const +const std::string& ValueAliasSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ValueAliasSet::getPossibleProfilesForAttributes() const +const std::list& ValueAliasSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ValueAliasSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ValueAliasSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ValueAliasSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Command_ValueAliasSet(BaseClass*, BaseClass*); @@ -126,7 +158,7 @@ const char* ValueAliasSet::debugString() const void ValueAliasSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ValueAliasSet", &ValueAliasSet_factory); + factory_map.emplace("ValueAliasSet", &ValueAliasSet_factory); } void ValueAliasSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -135,10 +167,10 @@ void ValueAliasSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueAliasSet.Commands", &assign_ValueAliasSet_Commands); - assign_map.emplace("cim:ValueAliasSet.Discretes", &assign_ValueAliasSet_Discretes); - assign_map.emplace("cim:ValueAliasSet.RaiseLowerCommands", &assign_ValueAliasSet_RaiseLowerCommands); - assign_map.emplace("cim:ValueAliasSet.Values", &assign_ValueAliasSet_Values); + assign_map.emplace("ValueAliasSet.Commands", &assign_ValueAliasSet_Commands); + assign_map.emplace("ValueAliasSet.Discretes", &assign_ValueAliasSet_Discretes); + assign_map.emplace("ValueAliasSet.RaiseLowerCommands", &assign_ValueAliasSet_RaiseLowerCommands); + assign_map.emplace("ValueAliasSet.Values", &assign_ValueAliasSet_Values); } void ValueAliasSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -156,11 +188,25 @@ void ValueAliasSet::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ValueAliasSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ValueAliasSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ValueAliasSet::declare() { return BaseClassDefiner(ValueAliasSet::addConstructToMap, ValueAliasSet::addPrimitiveAssignFnsToMap, ValueAliasSet::addClassAssignFnsToMap, ValueAliasSet::debugName); } +std::map ValueAliasSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ValueAliasSet_factory() diff --git a/CGMES_2.4.15_27JAN2020/ValueAliasSet.hpp b/CGMES_2.4.15_27JAN2020/ValueAliasSet.hpp index 80a9bad49..6d764ad5d 100644 --- a/CGMES_2.4.15_27JAN2020/ValueAliasSet.hpp +++ b/CGMES_2.4.15_27JAN2020/ValueAliasSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ValueAliasSet_factory(); diff --git a/CGMES_2.4.15_27JAN2020/ValueToAlias.cpp b/CGMES_2.4.15_27JAN2020/ValueToAlias.cpp index e0b3ae3d9..d48cf648c 100644 --- a/CGMES_2.4.15_27JAN2020/ValueToAlias.cpp +++ b/CGMES_2.4.15_27JAN2020/ValueToAlias.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ValueToAlias(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ValueToAlias.ValueAliasSet", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "ValueToAlias.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ValueToAlias::ValueToAlias() : ValueAliasSet(nullptr) {} ValueToAlias::~ValueToAlias() {} -static const std::list PossibleProfilesForClass = +const std::list& ValueToAlias::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ValueToAlias::getClassNamespaceUrl() const { - { "cim:ValueToAlias.ValueAliasSet", { CGMESProfile::EQ, } }, - { "cim:ValueToAlias.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ValueToAlias::getPossibleProfilesForClass() const +const std::string& ValueToAlias::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ValueToAlias::getPossibleProfilesForAttributes() const +const std::list& ValueToAlias::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ValueToAlias::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ValueToAlias::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ValueToAlias::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ValueAliasSet_Values(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* ValueToAlias::debugString() const void ValueToAlias::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ValueToAlias", &ValueToAlias_factory); + factory_map.emplace("ValueToAlias", &ValueToAlias_factory); } void ValueToAlias::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueToAlias.value", &assign_ValueToAlias_value); + assign_map.emplace("ValueToAlias.value", &assign_ValueToAlias_value); } void ValueToAlias::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueToAlias.ValueAliasSet", &assign_ValueToAlias_ValueAliasSet); + assign_map.emplace("ValueToAlias.ValueAliasSet", &assign_ValueToAlias_ValueAliasSet); } void ValueToAlias::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ValueToAlias.value", &get_ValueToAlias_value); + get_map.emplace("ValueToAlias.value", &get_ValueToAlias_value); } void ValueToAlias::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ValueToAlias.ValueAliasSet", &get_ValueToAlias_ValueAliasSet); + get_map.emplace("ValueToAlias.ValueAliasSet", &get_ValueToAlias_ValueAliasSet); } void ValueToAlias::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void ValueToAlias::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ValueToAlias::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ValueToAlias" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ValueToAlias::declare() { return BaseClassDefiner(ValueToAlias::addConstructToMap, ValueToAlias::addPrimitiveAssignFnsToMap, ValueToAlias::addClassAssignFnsToMap, ValueToAlias::debugName); } +std::map ValueToAlias::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ValueToAlias_factory() diff --git a/CGMES_2.4.15_27JAN2020/ValueToAlias.hpp b/CGMES_2.4.15_27JAN2020/ValueToAlias.hpp index f2faa5f11..534c09e29 100644 --- a/CGMES_2.4.15_27JAN2020/ValueToAlias.hpp +++ b/CGMES_2.4.15_27JAN2020/ValueToAlias.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ValueToAlias_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VisibilityLayer.cpp b/CGMES_2.4.15_27JAN2020/VisibilityLayer.cpp index 342592e16..f0939cc6d 100644 --- a/CGMES_2.4.15_27JAN2020/VisibilityLayer.cpp +++ b/CGMES_2.4.15_27JAN2020/VisibilityLayer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VisibilityLayer(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VisibilityLayer.VisibleObjects", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + { "VisibilityLayer.drawingOrder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + VisibilityLayer::VisibilityLayer() {} VisibilityLayer::~VisibilityLayer() {} -static const std::list PossibleProfilesForClass = +const std::list& VisibilityLayer::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VisibilityLayer::getClassNamespaceUrl() const { - { "cim:VisibilityLayer.VisibleObjects", { CGMESProfile::DL, } }, - { "cim:VisibilityLayer.drawingOrder", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VisibilityLayer::getPossibleProfilesForClass() const +const std::string& VisibilityLayer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VisibilityLayer::getPossibleProfilesForAttributes() const +const std::list& VisibilityLayer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VisibilityLayer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VisibilityLayer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VisibilityLayer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_VisibilityLayers(BaseClass*, BaseClass*); @@ -106,29 +138,29 @@ const char* VisibilityLayer::debugString() const void VisibilityLayer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VisibilityLayer", &VisibilityLayer_factory); + factory_map.emplace("VisibilityLayer", &VisibilityLayer_factory); } void VisibilityLayer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VisibilityLayer.drawingOrder", &assign_VisibilityLayer_drawingOrder); + assign_map.emplace("VisibilityLayer.drawingOrder", &assign_VisibilityLayer_drawingOrder); } void VisibilityLayer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VisibilityLayer.VisibleObjects", &assign_VisibilityLayer_VisibleObjects); + assign_map.emplace("VisibilityLayer.VisibleObjects", &assign_VisibilityLayer_VisibleObjects); } void VisibilityLayer::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VisibilityLayer.drawingOrder", &get_VisibilityLayer_drawingOrder); + get_map.emplace("VisibilityLayer.drawingOrder", &get_VisibilityLayer_drawingOrder); } void VisibilityLayer::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VisibilityLayer.VisibleObjects", &get_VisibilityLayer_VisibleObjects); + get_map.emplace("VisibilityLayer.VisibleObjects", &get_VisibilityLayer_VisibleObjects); } void VisibilityLayer::addEnumGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void VisibilityLayer::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool VisibilityLayer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VisibilityLayer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VisibilityLayer::declare() { return BaseClassDefiner(VisibilityLayer::addConstructToMap, VisibilityLayer::addPrimitiveAssignFnsToMap, VisibilityLayer::addClassAssignFnsToMap, VisibilityLayer::debugName); } +std::map VisibilityLayer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VisibilityLayer_factory() diff --git a/CGMES_2.4.15_27JAN2020/VisibilityLayer.hpp b/CGMES_2.4.15_27JAN2020/VisibilityLayer.hpp index 20a6810e6..2dbedfd90 100644 --- a/CGMES_2.4.15_27JAN2020/VisibilityLayer.hpp +++ b/CGMES_2.4.15_27JAN2020/VisibilityLayer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VisibilityLayer_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VoltageAdjusterDynamics.cpp b/CGMES_2.4.15_27JAN2020/VoltageAdjusterDynamics.cpp index 5ab8b68ac..2b81de1c4 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageAdjusterDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/VoltageAdjusterDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageAdjusterDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageAdjusterDynamics.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageAdjusterDynamics::VoltageAdjusterDynamics() : PFVArControllerType1Dynamics(nullptr) {} VoltageAdjusterDynamics::~VoltageAdjusterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageAdjusterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageAdjusterDynamics::getClassNamespaceUrl() const { - { "cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageAdjusterDynamics::getPossibleProfilesForClass() const +const std::string& VoltageAdjusterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageAdjusterDynamics::getPossibleProfilesForAttributes() const +const std::list& VoltageAdjusterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageAdjusterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageAdjusterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageAdjusterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* VoltageAdjusterDynamics::debugString() const void VoltageAdjusterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageAdjusterDynamics", &VoltageAdjusterDynamics_factory); + factory_map.emplace("VoltageAdjusterDynamics", &VoltageAdjusterDynamics_factory); } void VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &assign_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); + assign_map.emplace("VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &assign_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); } void VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &get_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); + get_map.emplace("VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &get_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); } void VoltageAdjusterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void VoltageAdjusterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageAdjusterDynamics::declare() { return BaseClassDefiner(VoltageAdjusterDynamics::addConstructToMap, VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap, VoltageAdjusterDynamics::addClassAssignFnsToMap, VoltageAdjusterDynamics::debugName); } +std::map VoltageAdjusterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageAdjusterDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/VoltageAdjusterDynamics.hpp b/CGMES_2.4.15_27JAN2020/VoltageAdjusterDynamics.hpp index 38c64482e..e59008548 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageAdjusterDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/VoltageAdjusterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageAdjusterDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VoltageAdjusterUserDefined.cpp b/CGMES_2.4.15_27JAN2020/VoltageAdjusterUserDefined.cpp index c89e76a0e..72d0a50ad 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageAdjusterUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/VoltageAdjusterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageAdjusterUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageAdjusterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageAdjusterUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageAdjusterUserDefined::VoltageAdjusterUserDefined() {} VoltageAdjusterUserDefined::~VoltageAdjusterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageAdjusterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageAdjusterUserDefined::getClassNamespaceUrl() const { - { "cim:VoltageAdjusterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageAdjusterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageAdjusterUserDefined::getPossibleProfilesForClass() const +const std::string& VoltageAdjusterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageAdjusterUserDefined::getPossibleProfilesForAttributes() const +const std::list& VoltageAdjusterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageAdjusterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageAdjusterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageAdjusterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageAdjusterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VoltageAdjusterUserDefined::debugString() const void VoltageAdjusterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageAdjusterUserDefined", &VoltageAdjusterUserDefined_factory); + factory_map.emplace("VoltageAdjusterUserDefined", &VoltageAdjusterUserDefined_factory); } void VoltageAdjusterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterUserDefined.proprietary", &assign_VoltageAdjusterUserDefined_proprietary); + assign_map.emplace("VoltageAdjusterUserDefined.proprietary", &assign_VoltageAdjusterUserDefined_proprietary); } void VoltageAdjusterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterUserDefined.ProprietaryParameterDynamics", &assign_VoltageAdjusterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VoltageAdjusterUserDefined.ProprietaryParameterDynamics", &assign_VoltageAdjusterUserDefined_ProprietaryParameterDynamics); } void VoltageAdjusterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageAdjusterUserDefined.proprietary", &get_VoltageAdjusterUserDefined_proprietary); + get_map.emplace("VoltageAdjusterUserDefined.proprietary", &get_VoltageAdjusterUserDefined_proprietary); } void VoltageAdjusterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VoltageAdjusterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageAdjusterUserDefined::declare() { return BaseClassDefiner(VoltageAdjusterUserDefined::addConstructToMap, VoltageAdjusterUserDefined::addPrimitiveAssignFnsToMap, VoltageAdjusterUserDefined::addClassAssignFnsToMap, VoltageAdjusterUserDefined::debugName); } +std::map VoltageAdjusterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageAdjusterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageAdjusterUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/VoltageAdjusterUserDefined.hpp b/CGMES_2.4.15_27JAN2020/VoltageAdjusterUserDefined.hpp index b1e9da031..bf333519c 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageAdjusterUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/VoltageAdjusterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageAdjusterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageAdjusterUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VoltageCompensatorDynamics.cpp b/CGMES_2.4.15_27JAN2020/VoltageCompensatorDynamics.cpp index b1b3c20fd..bd3180085 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageCompensatorDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/VoltageCompensatorDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageCompensatorDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageCompensatorDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageCompensatorDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageCompensatorDynamics::VoltageCompensatorDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} VoltageCompensatorDynamics::~VoltageCompensatorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageCompensatorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageCompensatorDynamics::getClassNamespaceUrl() const { - { "cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageCompensatorDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageCompensatorDynamics::getPossibleProfilesForClass() const +const std::string& VoltageCompensatorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageCompensatorDynamics::getPossibleProfilesForAttributes() const +const std::list& VoltageCompensatorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageCompensatorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageCompensatorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageCompensatorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_VoltageCompensatorDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* VoltageCompensatorDynamics::debugString() const void VoltageCompensatorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageCompensatorDynamics", &VoltageCompensatorDynamics_factory); + factory_map.emplace("VoltageCompensatorDynamics", &VoltageCompensatorDynamics_factory); } void VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", &assign_VoltageCompensatorDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:VoltageCompensatorDynamics.RemoteInputSignal", &assign_VoltageCompensatorDynamics_RemoteInputSignal); + assign_map.emplace("VoltageCompensatorDynamics.ExcitationSystemDynamics", &assign_VoltageCompensatorDynamics_ExcitationSystemDynamics); + assign_map.emplace("VoltageCompensatorDynamics.RemoteInputSignal", &assign_VoltageCompensatorDynamics_RemoteInputSignal); } void VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", &get_VoltageCompensatorDynamics_ExcitationSystemDynamics); + get_map.emplace("VoltageCompensatorDynamics.ExcitationSystemDynamics", &get_VoltageCompensatorDynamics_ExcitationSystemDynamics); } void VoltageCompensatorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void VoltageCompensatorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageCompensatorDynamics::declare() { return BaseClassDefiner(VoltageCompensatorDynamics::addConstructToMap, VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap, VoltageCompensatorDynamics::addClassAssignFnsToMap, VoltageCompensatorDynamics::debugName); } +std::map VoltageCompensatorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageCompensatorDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/VoltageCompensatorDynamics.hpp b/CGMES_2.4.15_27JAN2020/VoltageCompensatorDynamics.hpp index 858af27b2..96c4ffaab 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageCompensatorDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/VoltageCompensatorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageCompensatorDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VoltageCompensatorUserDefined.cpp b/CGMES_2.4.15_27JAN2020/VoltageCompensatorUserDefined.cpp index dc3b5ff50..09fb2904f 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageCompensatorUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/VoltageCompensatorUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageCompensatorUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageCompensatorUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "VoltageCompensatorUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageCompensatorUserDefined::VoltageCompensatorUserDefined() {} VoltageCompensatorUserDefined::~VoltageCompensatorUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageCompensatorUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageCompensatorUserDefined::getClassNamespaceUrl() const { - { "cim:VoltageCompensatorUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageCompensatorUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageCompensatorUserDefined::getPossibleProfilesForClass() const +const std::string& VoltageCompensatorUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageCompensatorUserDefined::getPossibleProfilesForAttributes() const +const std::list& VoltageCompensatorUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageCompensatorUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageCompensatorUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageCompensatorUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VoltageCompensatorUserDefined::debugString() const void VoltageCompensatorUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageCompensatorUserDefined", &VoltageCompensatorUserDefined_factory); + factory_map.emplace("VoltageCompensatorUserDefined", &VoltageCompensatorUserDefined_factory); } void VoltageCompensatorUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorUserDefined.proprietary", &assign_VoltageCompensatorUserDefined_proprietary); + assign_map.emplace("VoltageCompensatorUserDefined.proprietary", &assign_VoltageCompensatorUserDefined_proprietary); } void VoltageCompensatorUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorUserDefined.ProprietaryParameterDynamics", &assign_VoltageCompensatorUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VoltageCompensatorUserDefined.ProprietaryParameterDynamics", &assign_VoltageCompensatorUserDefined_ProprietaryParameterDynamics); } void VoltageCompensatorUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageCompensatorUserDefined.proprietary", &get_VoltageCompensatorUserDefined_proprietary); + get_map.emplace("VoltageCompensatorUserDefined.proprietary", &get_VoltageCompensatorUserDefined_proprietary); } void VoltageCompensatorUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VoltageCompensatorUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageCompensatorUserDefined::declare() { return BaseClassDefiner(VoltageCompensatorUserDefined::addConstructToMap, VoltageCompensatorUserDefined::addPrimitiveAssignFnsToMap, VoltageCompensatorUserDefined::addClassAssignFnsToMap, VoltageCompensatorUserDefined::debugName); } +std::map VoltageCompensatorUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageCompensatorUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/VoltageCompensatorUserDefined.hpp b/CGMES_2.4.15_27JAN2020/VoltageCompensatorUserDefined.hpp index 7f6055be5..62b0ad2f8 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageCompensatorUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/VoltageCompensatorUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageCompensatorUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VoltageLevel.cpp b/CGMES_2.4.15_27JAN2020/VoltageLevel.cpp index 31ba7dc6a..64c9b4093 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageLevel.cpp +++ b/CGMES_2.4.15_27JAN2020/VoltageLevel.cpp @@ -14,36 +14,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageLevel(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageLevel.BaseVoltage", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.Bays", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.Substation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.highVoltageLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VoltageLevel.lowVoltageLimit", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageLevel::VoltageLevel() : BaseVoltage(nullptr), Substation(nullptr) {} VoltageLevel::~VoltageLevel() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageLevel::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageLevel::getClassNamespaceUrl() const { - { "cim:VoltageLevel.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.Bays", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.Substation", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.highVoltageLimit", { CGMESProfile::EQ, } }, - { "cim:VoltageLevel.lowVoltageLimit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageLevel::getPossibleProfilesForClass() const +const std::string& VoltageLevel::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageLevel::getPossibleProfilesForAttributes() const +const std::list& VoltageLevel::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageLevel::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageLevel::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageLevel::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_VoltageLevel(BaseClass*, BaseClass*); @@ -192,34 +224,34 @@ const char* VoltageLevel::debugString() const void VoltageLevel::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageLevel", &VoltageLevel_factory); + factory_map.emplace("VoltageLevel", &VoltageLevel_factory); } void VoltageLevel::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLevel.highVoltageLimit", &assign_VoltageLevel_highVoltageLimit); - assign_map.emplace("cim:VoltageLevel.lowVoltageLimit", &assign_VoltageLevel_lowVoltageLimit); + assign_map.emplace("VoltageLevel.highVoltageLimit", &assign_VoltageLevel_highVoltageLimit); + assign_map.emplace("VoltageLevel.lowVoltageLimit", &assign_VoltageLevel_lowVoltageLimit); } void VoltageLevel::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLevel.BaseVoltage", &assign_VoltageLevel_BaseVoltage); - assign_map.emplace("cim:VoltageLevel.Bays", &assign_VoltageLevel_Bays); - assign_map.emplace("cim:VoltageLevel.Substation", &assign_VoltageLevel_Substation); + assign_map.emplace("VoltageLevel.BaseVoltage", &assign_VoltageLevel_BaseVoltage); + assign_map.emplace("VoltageLevel.Bays", &assign_VoltageLevel_Bays); + assign_map.emplace("VoltageLevel.Substation", &assign_VoltageLevel_Substation); } void VoltageLevel::addPrimitiveGetFnsToMap(std::map& get_map) const { EquipmentContainer::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLevel.highVoltageLimit", &get_VoltageLevel_highVoltageLimit); - get_map.emplace("cim:VoltageLevel.lowVoltageLimit", &get_VoltageLevel_lowVoltageLimit); + get_map.emplace("VoltageLevel.highVoltageLimit", &get_VoltageLevel_highVoltageLimit); + get_map.emplace("VoltageLevel.lowVoltageLimit", &get_VoltageLevel_lowVoltageLimit); } void VoltageLevel::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLevel.BaseVoltage", &get_VoltageLevel_BaseVoltage); - get_map.emplace("cim:VoltageLevel.Substation", &get_VoltageLevel_Substation); + get_map.emplace("VoltageLevel.BaseVoltage", &get_VoltageLevel_BaseVoltage); + get_map.emplace("VoltageLevel.Substation", &get_VoltageLevel_Substation); } void VoltageLevel::addEnumGetFnsToMap(std::map& get_map) const @@ -227,11 +259,25 @@ void VoltageLevel::addEnumGetFnsToMap(std::map& get_m EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool VoltageLevel::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VoltageLevel" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VoltageLevel::declare() { return BaseClassDefiner(VoltageLevel::addConstructToMap, VoltageLevel::addPrimitiveAssignFnsToMap, VoltageLevel::addClassAssignFnsToMap, VoltageLevel::debugName); } +std::map VoltageLevel::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageLevel_factory() diff --git a/CGMES_2.4.15_27JAN2020/VoltageLevel.hpp b/CGMES_2.4.15_27JAN2020/VoltageLevel.hpp index 5b32798e6..93897d206 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageLevel.hpp +++ b/CGMES_2.4.15_27JAN2020/VoltageLevel.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageLevel_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VoltageLimit.cpp b/CGMES_2.4.15_27JAN2020/VoltageLimit.cpp index b8a2d59db..6dea63e2c 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageLimit.cpp +++ b/CGMES_2.4.15_27JAN2020/VoltageLimit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageLimit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageLimit.value", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageLimit::VoltageLimit() {} VoltageLimit::~VoltageLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageLimit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageLimit::getClassNamespaceUrl() const { - { "cim:VoltageLimit.value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageLimit::getPossibleProfilesForClass() const +const std::string& VoltageLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageLimit::getPossibleProfilesForAttributes() const +const std::list& VoltageLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VoltageLimit_value(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* VoltageLimit::debugString() const void VoltageLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageLimit", &VoltageLimit_factory); + factory_map.emplace("VoltageLimit", &VoltageLimit_factory); } void VoltageLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLimit.value", &assign_VoltageLimit_value); + assign_map.emplace("VoltageLimit.value", &assign_VoltageLimit_value); } void VoltageLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void VoltageLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLimit.value", &get_VoltageLimit_value); + get_map.emplace("VoltageLimit.value", &get_VoltageLimit_value); } void VoltageLimit::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void VoltageLimit::addEnumGetFnsToMap(std::map& get_m OperationalLimit::addEnumGetFnsToMap(get_map); } +bool VoltageLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VoltageLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VoltageLimit::declare() { return BaseClassDefiner(VoltageLimit::addConstructToMap, VoltageLimit::addPrimitiveAssignFnsToMap, VoltageLimit::addClassAssignFnsToMap, VoltageLimit::debugName); } +std::map VoltageLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageLimit_factory() diff --git a/CGMES_2.4.15_27JAN2020/VoltageLimit.hpp b/CGMES_2.4.15_27JAN2020/VoltageLimit.hpp index 7f2ddc83a..98ce422f7 100644 --- a/CGMES_2.4.15_27JAN2020/VoltageLimit.hpp +++ b/CGMES_2.4.15_27JAN2020/VoltageLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageLimit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VsCapabilityCurve.cpp b/CGMES_2.4.15_27JAN2020/VsCapabilityCurve.cpp index 5a75f1880..5f7f65088 100644 --- a/CGMES_2.4.15_27JAN2020/VsCapabilityCurve.cpp +++ b/CGMES_2.4.15_27JAN2020/VsCapabilityCurve.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VsCapabilityCurve(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VsCapabilityCurve.VsConverterDCSides", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VsCapabilityCurve::VsCapabilityCurve() {} VsCapabilityCurve::~VsCapabilityCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& VsCapabilityCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VsCapabilityCurve::getClassNamespaceUrl() const { - { "cim:VsCapabilityCurve.VsConverterDCSides", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VsCapabilityCurve::getPossibleProfilesForClass() const +const std::string& VsCapabilityCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VsCapabilityCurve::getPossibleProfilesForAttributes() const +const std::list& VsCapabilityCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VsCapabilityCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VsCapabilityCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VsCapabilityCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsConverter_CapabilityCurve(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* VsCapabilityCurve::debugString() const void VsCapabilityCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VsCapabilityCurve", &VsCapabilityCurve_factory); + factory_map.emplace("VsCapabilityCurve", &VsCapabilityCurve_factory); } void VsCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void VsCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsCapabilityCurve.VsConverterDCSides", &assign_VsCapabilityCurve_VsConverterDCSides); + assign_map.emplace("VsCapabilityCurve.VsConverterDCSides", &assign_VsCapabilityCurve_VsConverterDCSides); } void VsCapabilityCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void VsCapabilityCurve::addEnumGetFnsToMap(std::map& Curve::addEnumGetFnsToMap(get_map); } +bool VsCapabilityCurve::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VsCapabilityCurve" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VsCapabilityCurve::declare() { return BaseClassDefiner(VsCapabilityCurve::addConstructToMap, VsCapabilityCurve::addPrimitiveAssignFnsToMap, VsCapabilityCurve::addClassAssignFnsToMap, VsCapabilityCurve::debugName); } +std::map VsCapabilityCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VsCapabilityCurve_factory() diff --git a/CGMES_2.4.15_27JAN2020/VsCapabilityCurve.hpp b/CGMES_2.4.15_27JAN2020/VsCapabilityCurve.hpp index 9eaa77b41..5d16bdc4d 100644 --- a/CGMES_2.4.15_27JAN2020/VsCapabilityCurve.hpp +++ b/CGMES_2.4.15_27JAN2020/VsCapabilityCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VsCapabilityCurve_factory(); diff --git a/CGMES_2.4.15_27JAN2020/VsConverter.cpp b/CGMES_2.4.15_27JAN2020/VsConverter.cpp index 3cc9a7c0c..2f093f148 100644 --- a/CGMES_2.4.15_27JAN2020/VsConverter.cpp +++ b/CGMES_2.4.15_27JAN2020/VsConverter.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VsConverter(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SV, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VsConverter.CapabilityCurve", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.delta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + { "VsConverter.droop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.droopCompensation", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.maxModulationIndex", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.maxValveCurrent", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + { "VsConverter.pPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.qPccControl", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.qShare", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetQpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetUpcc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SSH, } } }, + { "VsConverter.uf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + VsConverter::VsConverter() : CapabilityCurve(nullptr) {} VsConverter::~VsConverter() {} -static const std::list PossibleProfilesForClass = +const std::list& VsConverter::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SV, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VsConverter::getClassNamespaceUrl() const { - { "cim:VsConverter.CapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:VsConverter.delta", { CGMESProfile::SV, } }, - { "cim:VsConverter.droop", { CGMESProfile::SSH, } }, - { "cim:VsConverter.droopCompensation", { CGMESProfile::SSH, } }, - { "cim:VsConverter.maxModulationIndex", { CGMESProfile::EQ, } }, - { "cim:VsConverter.maxValveCurrent", { CGMESProfile::EQ, } }, - { "cim:VsConverter.pPccControl", { CGMESProfile::SSH, } }, - { "cim:VsConverter.qPccControl", { CGMESProfile::SSH, } }, - { "cim:VsConverter.qShare", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetQpcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetUpcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.uf", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VsConverter::getPossibleProfilesForClass() const +const std::string& VsConverter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VsConverter::getPossibleProfilesForAttributes() const +const std::list& VsConverter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCConverter::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VsConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VsConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VsConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsCapabilityCurve_VsConverterDCSides(BaseClass*, BaseClass*); @@ -411,54 +443,60 @@ const char* VsConverter::debugString() const void VsConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VsConverter", &VsConverter_factory); + factory_map.emplace("VsConverter", &VsConverter_factory); } void VsConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsConverter.delta", &assign_VsConverter_delta); - assign_map.emplace("cim:VsConverter.droop", &assign_VsConverter_droop); - assign_map.emplace("cim:VsConverter.droopCompensation", &assign_VsConverter_droopCompensation); - assign_map.emplace("cim:VsConverter.maxModulationIndex", &assign_VsConverter_maxModulationIndex); - assign_map.emplace("cim:VsConverter.maxValveCurrent", &assign_VsConverter_maxValveCurrent); - assign_map.emplace("cim:VsConverter.pPccControl", &assign_VsConverter_pPccControl); - assign_map.emplace("cim:VsConverter.qPccControl", &assign_VsConverter_qPccControl); - assign_map.emplace("cim:VsConverter.qShare", &assign_VsConverter_qShare); - assign_map.emplace("cim:VsConverter.targetQpcc", &assign_VsConverter_targetQpcc); - assign_map.emplace("cim:VsConverter.targetUpcc", &assign_VsConverter_targetUpcc); - assign_map.emplace("cim:VsConverter.uf", &assign_VsConverter_uf); + assign_map.emplace("VsConverter.delta", &assign_VsConverter_delta); + assign_map.emplace("VsConverter.droop", &assign_VsConverter_droop); + assign_map.emplace("VsConverter.droopCompensation", &assign_VsConverter_droopCompensation); + assign_map.emplace("VsConverter.maxModulationIndex", &assign_VsConverter_maxModulationIndex); + assign_map.emplace("VsConverter.maxValveCurrent", &assign_VsConverter_maxValveCurrent); + assign_map.emplace("VsConverter.pPccControl", &assign_VsConverter_pPccControl); + assign_map.emplace("VsConverter.qPccControl", &assign_VsConverter_qPccControl); + assign_map.emplace("VsConverter.qShare", &assign_VsConverter_qShare); + assign_map.emplace("VsConverter.targetQpcc", &assign_VsConverter_targetQpcc); + assign_map.emplace("VsConverter.targetUpcc", &assign_VsConverter_targetUpcc); + assign_map.emplace("VsConverter.uf", &assign_VsConverter_uf); } void VsConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsConverter.CapabilityCurve", &assign_VsConverter_CapabilityCurve); + assign_map.emplace("VsConverter.CapabilityCurve", &assign_VsConverter_CapabilityCurve); } void VsConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ACDCConverter::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.delta", &get_VsConverter_delta); - get_map.emplace("cim:VsConverter.droop", &get_VsConverter_droop); - get_map.emplace("cim:VsConverter.droopCompensation", &get_VsConverter_droopCompensation); - get_map.emplace("cim:VsConverter.maxModulationIndex", &get_VsConverter_maxModulationIndex); - get_map.emplace("cim:VsConverter.maxValveCurrent", &get_VsConverter_maxValveCurrent); - get_map.emplace("cim:VsConverter.qShare", &get_VsConverter_qShare); - get_map.emplace("cim:VsConverter.targetQpcc", &get_VsConverter_targetQpcc); - get_map.emplace("cim:VsConverter.targetUpcc", &get_VsConverter_targetUpcc); - get_map.emplace("cim:VsConverter.uf", &get_VsConverter_uf); + get_map.emplace("VsConverter.delta", &get_VsConverter_delta); + get_map.emplace("VsConverter.droop", &get_VsConverter_droop); + get_map.emplace("VsConverter.droopCompensation", &get_VsConverter_droopCompensation); + get_map.emplace("VsConverter.maxModulationIndex", &get_VsConverter_maxModulationIndex); + get_map.emplace("VsConverter.maxValveCurrent", &get_VsConverter_maxValveCurrent); + get_map.emplace("VsConverter.qShare", &get_VsConverter_qShare); + get_map.emplace("VsConverter.targetQpcc", &get_VsConverter_targetQpcc); + get_map.emplace("VsConverter.targetUpcc", &get_VsConverter_targetUpcc); + get_map.emplace("VsConverter.uf", &get_VsConverter_uf); } void VsConverter::addClassGetFnsToMap(std::map& get_map) const { ACDCConverter::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.CapabilityCurve", &get_VsConverter_CapabilityCurve); + get_map.emplace("VsConverter.CapabilityCurve", &get_VsConverter_CapabilityCurve); } void VsConverter::addEnumGetFnsToMap(std::map& get_map) const { ACDCConverter::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.pPccControl", &get_VsConverter_pPccControl); - get_map.emplace("cim:VsConverter.qPccControl", &get_VsConverter_qPccControl); + get_map.emplace("VsConverter.pPccControl", &get_VsConverter_pPccControl); + get_map.emplace("VsConverter.qPccControl", &get_VsConverter_qPccControl); +} + +bool VsConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VsConverter" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner VsConverter::declare() @@ -466,6 +504,14 @@ const BaseClassDefiner VsConverter::declare() return BaseClassDefiner(VsConverter::addConstructToMap, VsConverter::addPrimitiveAssignFnsToMap, VsConverter::addClassAssignFnsToMap, VsConverter::debugName); } +std::map VsConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCConverter::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VsConverter_factory() diff --git a/CGMES_2.4.15_27JAN2020/VsConverter.hpp b/CGMES_2.4.15_27JAN2020/VsConverter.hpp index 046abdfd8..8d1b12e58 100644 --- a/CGMES_2.4.15_27JAN2020/VsConverter.hpp +++ b/CGMES_2.4.15_27JAN2020/VsConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCConverter.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "CurrentFlow.hpp" #include "PU.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VsConverter_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindAeroConstIEC.cpp b/CGMES_2.4.15_27JAN2020/WindAeroConstIEC.cpp index 62ae00aaa..105daeb72 100644 --- a/CGMES_2.4.15_27JAN2020/WindAeroConstIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindAeroConstIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroConstIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroConstIEC.WindGenTurbineType1IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroConstIEC::WindAeroConstIEC() : WindGenTurbineType1IEC(nullptr) {} WindAeroConstIEC::~WindAeroConstIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroConstIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroConstIEC::getClassNamespaceUrl() const { - { "cim:WindAeroConstIEC.WindGenTurbineType1IEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindAeroConstIEC::getPossibleProfilesForClass() const +const std::string& WindAeroConstIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroConstIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroConstIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroConstIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroConstIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroConstIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType1IEC_WindAeroConstIEC(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* WindAeroConstIEC::debugString() const void WindAeroConstIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroConstIEC", &WindAeroConstIEC_factory); + factory_map.emplace("WindAeroConstIEC", &WindAeroConstIEC_factory); } void WindAeroConstIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void WindAeroConstIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroConstIEC.WindGenTurbineType1IEC", &assign_WindAeroConstIEC_WindGenTurbineType1IEC); + assign_map.emplace("WindAeroConstIEC.WindGenTurbineType1IEC", &assign_WindAeroConstIEC_WindGenTurbineType1IEC); } void WindAeroConstIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void WindAeroConstIEC::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroConstIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroConstIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroConstIEC::declare() { return BaseClassDefiner(WindAeroConstIEC::addConstructToMap, WindAeroConstIEC::addPrimitiveAssignFnsToMap, WindAeroConstIEC::addClassAssignFnsToMap, WindAeroConstIEC::debugName); } +std::map WindAeroConstIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroConstIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindAeroConstIEC.hpp b/CGMES_2.4.15_27JAN2020/WindAeroConstIEC.hpp index f6ed16d26..5a8be2770 100644 --- a/CGMES_2.4.15_27JAN2020/WindAeroConstIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindAeroConstIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroConstIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.cpp b/CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.cpp index 9301ffa49..98f5d4a79 100644 --- a/CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroLinearIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroLinearIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.dpomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.dptheta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.omegazero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.pavail", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindAeroLinearIEC.thetazero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroLinearIEC::WindAeroLinearIEC() : WindGenTurbineType3IEC(nullptr) {} WindAeroLinearIEC::~WindAeroLinearIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroLinearIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroLinearIEC::getClassNamespaceUrl() const { - { "cim:WindAeroLinearIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.dpomega", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.dptheta", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.omegazero", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.pavail", { CGMESProfile::DY, } }, - { "cim:WindAeroLinearIEC.thetazero", { CGMESProfile::DY, } }, -}; - -std::list -WindAeroLinearIEC::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindAeroLinearIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroLinearIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroLinearIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroLinearIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroLinearIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroLinearIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindAeroLinearIEC(BaseClass*, BaseClass*); @@ -216,31 +248,31 @@ const char* WindAeroLinearIEC::debugString() const void WindAeroLinearIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroLinearIEC", &WindAeroLinearIEC_factory); + factory_map.emplace("WindAeroLinearIEC", &WindAeroLinearIEC_factory); } void WindAeroLinearIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroLinearIEC.dpomega", &assign_WindAeroLinearIEC_dpomega); - assign_map.emplace("cim:WindAeroLinearIEC.dptheta", &assign_WindAeroLinearIEC_dptheta); - assign_map.emplace("cim:WindAeroLinearIEC.omegazero", &assign_WindAeroLinearIEC_omegazero); - assign_map.emplace("cim:WindAeroLinearIEC.pavail", &assign_WindAeroLinearIEC_pavail); - assign_map.emplace("cim:WindAeroLinearIEC.thetazero", &assign_WindAeroLinearIEC_thetazero); + assign_map.emplace("WindAeroLinearIEC.dpomega", &assign_WindAeroLinearIEC_dpomega); + assign_map.emplace("WindAeroLinearIEC.dptheta", &assign_WindAeroLinearIEC_dptheta); + assign_map.emplace("WindAeroLinearIEC.omegazero", &assign_WindAeroLinearIEC_omegazero); + assign_map.emplace("WindAeroLinearIEC.pavail", &assign_WindAeroLinearIEC_pavail); + assign_map.emplace("WindAeroLinearIEC.thetazero", &assign_WindAeroLinearIEC_thetazero); } void WindAeroLinearIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroLinearIEC.WindGenTurbineType3IEC", &assign_WindAeroLinearIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindAeroLinearIEC.WindGenTurbineType3IEC", &assign_WindAeroLinearIEC_WindGenTurbineType3IEC); } void WindAeroLinearIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindAeroLinearIEC.dpomega", &get_WindAeroLinearIEC_dpomega); - get_map.emplace("cim:WindAeroLinearIEC.dptheta", &get_WindAeroLinearIEC_dptheta); - get_map.emplace("cim:WindAeroLinearIEC.omegazero", &get_WindAeroLinearIEC_omegazero); - get_map.emplace("cim:WindAeroLinearIEC.pavail", &get_WindAeroLinearIEC_pavail); - get_map.emplace("cim:WindAeroLinearIEC.thetazero", &get_WindAeroLinearIEC_thetazero); + get_map.emplace("WindAeroLinearIEC.dpomega", &get_WindAeroLinearIEC_dpomega); + get_map.emplace("WindAeroLinearIEC.dptheta", &get_WindAeroLinearIEC_dptheta); + get_map.emplace("WindAeroLinearIEC.omegazero", &get_WindAeroLinearIEC_omegazero); + get_map.emplace("WindAeroLinearIEC.pavail", &get_WindAeroLinearIEC_pavail); + get_map.emplace("WindAeroLinearIEC.thetazero", &get_WindAeroLinearIEC_thetazero); } void WindAeroLinearIEC::addClassGetFnsToMap(std::map& get_map) const @@ -253,11 +285,25 @@ void WindAeroLinearIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroLinearIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroLinearIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroLinearIEC::declare() { return BaseClassDefiner(WindAeroLinearIEC::addConstructToMap, WindAeroLinearIEC::addPrimitiveAssignFnsToMap, WindAeroLinearIEC::addClassAssignFnsToMap, WindAeroLinearIEC::debugName); } +std::map WindAeroLinearIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroLinearIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.hpp b/CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.hpp index 0e71d0eb4..b77ffcc00 100644 --- a/CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindAeroLinearIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroLinearIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.cpp b/CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.cpp index 68e2ece08..142a48cbf 100644 --- a/CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.cpp @@ -13,38 +13,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContCurrLimIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContCurrLimIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.imax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.imaxdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.mdfslim", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.mqpri", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContCurrLimIEC::WindContCurrLimIEC() : WindTurbineType3or4IEC(nullptr) {} WindContCurrLimIEC::~WindContCurrLimIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContCurrLimIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContCurrLimIEC::getClassNamespaceUrl() const { - { "cim:WindContCurrLimIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.imax", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.imaxdip", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.mdfslim", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.mqpri", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContCurrLimIEC::getPossibleProfilesForClass() const +const std::string& WindContCurrLimIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContCurrLimIEC::getPossibleProfilesForAttributes() const +const std::list& WindContCurrLimIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContCurrLimIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContCurrLimIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContCurrLimIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContCurrLimIEC(BaseClass*, BaseClass*); @@ -236,32 +268,32 @@ const char* WindContCurrLimIEC::debugString() const void WindContCurrLimIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContCurrLimIEC", &WindContCurrLimIEC_factory); + factory_map.emplace("WindContCurrLimIEC", &WindContCurrLimIEC_factory); } void WindContCurrLimIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContCurrLimIEC.imax", &assign_WindContCurrLimIEC_imax); - assign_map.emplace("cim:WindContCurrLimIEC.imaxdip", &assign_WindContCurrLimIEC_imaxdip); - assign_map.emplace("cim:WindContCurrLimIEC.mdfslim", &assign_WindContCurrLimIEC_mdfslim); - assign_map.emplace("cim:WindContCurrLimIEC.mqpri", &assign_WindContCurrLimIEC_mqpri); - assign_map.emplace("cim:WindContCurrLimIEC.tufilt", &assign_WindContCurrLimIEC_tufilt); + assign_map.emplace("WindContCurrLimIEC.imax", &assign_WindContCurrLimIEC_imax); + assign_map.emplace("WindContCurrLimIEC.imaxdip", &assign_WindContCurrLimIEC_imaxdip); + assign_map.emplace("WindContCurrLimIEC.mdfslim", &assign_WindContCurrLimIEC_mdfslim); + assign_map.emplace("WindContCurrLimIEC.mqpri", &assign_WindContCurrLimIEC_mqpri); + assign_map.emplace("WindContCurrLimIEC.tufilt", &assign_WindContCurrLimIEC_tufilt); } void WindContCurrLimIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContCurrLimIEC.WindDynamicsLookupTable", &assign_WindContCurrLimIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContCurrLimIEC.WindTurbineType3or4IEC", &assign_WindContCurrLimIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContCurrLimIEC.WindDynamicsLookupTable", &assign_WindContCurrLimIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContCurrLimIEC.WindTurbineType3or4IEC", &assign_WindContCurrLimIEC_WindTurbineType3or4IEC); } void WindContCurrLimIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContCurrLimIEC.imax", &get_WindContCurrLimIEC_imax); - get_map.emplace("cim:WindContCurrLimIEC.imaxdip", &get_WindContCurrLimIEC_imaxdip); - get_map.emplace("cim:WindContCurrLimIEC.mdfslim", &get_WindContCurrLimIEC_mdfslim); - get_map.emplace("cim:WindContCurrLimIEC.mqpri", &get_WindContCurrLimIEC_mqpri); - get_map.emplace("cim:WindContCurrLimIEC.tufilt", &get_WindContCurrLimIEC_tufilt); + get_map.emplace("WindContCurrLimIEC.imax", &get_WindContCurrLimIEC_imax); + get_map.emplace("WindContCurrLimIEC.imaxdip", &get_WindContCurrLimIEC_imaxdip); + get_map.emplace("WindContCurrLimIEC.mdfslim", &get_WindContCurrLimIEC_mdfslim); + get_map.emplace("WindContCurrLimIEC.mqpri", &get_WindContCurrLimIEC_mqpri); + get_map.emplace("WindContCurrLimIEC.tufilt", &get_WindContCurrLimIEC_tufilt); } void WindContCurrLimIEC::addClassGetFnsToMap(std::map& get_map) const @@ -274,11 +306,25 @@ void WindContCurrLimIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContCurrLimIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContCurrLimIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContCurrLimIEC::declare() { return BaseClassDefiner(WindContCurrLimIEC::addConstructToMap, WindContCurrLimIEC::addPrimitiveAssignFnsToMap, WindContCurrLimIEC::addClassAssignFnsToMap, WindContCurrLimIEC::debugName); } +std::map WindContCurrLimIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContCurrLimIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.hpp b/CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.hpp index eee20358c..4be4be47e 100644 --- a/CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindContCurrLimIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContCurrLimIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindContPType3IEC.cpp b/CGMES_2.4.15_27JAN2020/WindContPType3IEC.cpp index 441be1a61..55af17e37 100644 --- a/CGMES_2.4.15_27JAN2020/WindContPType3IEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindContPType3IEC.cpp @@ -13,54 +13,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType3IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType3IEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dtrisemaxlvrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kdtd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.mplvrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.omegaoffset", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.pdtdmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.rramp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tdvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.temin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tomegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tuscale", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.twref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.udvs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.updip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.wdtd", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.zeta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType3IEC::WindContPType3IEC() : WindGenTurbineType3IEC(nullptr) {} WindContPType3IEC::~WindContPType3IEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindContPType3IEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dtrisemaxlvrt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kdtd", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kip", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kpp", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.mplvrt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.omegaoffset", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.pdtdmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.rramp", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tdvs", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.temin", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tomegafilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tpfilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tufilt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tuscale", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.twref", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.udvs", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.updip", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.wdtd", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.zeta", { CGMESProfile::DY, } }, -}; - -std::list -WindContPType3IEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindContPType3IEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindContPType3IEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindContPType3IEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindContPType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindContPType3IEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContPType3IEC(BaseClass*, BaseClass*); @@ -716,64 +748,64 @@ const char* WindContPType3IEC::debugString() const void WindContPType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType3IEC", &WindContPType3IEC_factory); + factory_map.emplace("WindContPType3IEC", &WindContPType3IEC_factory); } void WindContPType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType3IEC.dpmax", &assign_WindContPType3IEC_dpmax); - assign_map.emplace("cim:WindContPType3IEC.dtrisemaxlvrt", &assign_WindContPType3IEC_dtrisemaxlvrt); - assign_map.emplace("cim:WindContPType3IEC.kdtd", &assign_WindContPType3IEC_kdtd); - assign_map.emplace("cim:WindContPType3IEC.kip", &assign_WindContPType3IEC_kip); - assign_map.emplace("cim:WindContPType3IEC.kpp", &assign_WindContPType3IEC_kpp); - assign_map.emplace("cim:WindContPType3IEC.mplvrt", &assign_WindContPType3IEC_mplvrt); - assign_map.emplace("cim:WindContPType3IEC.omegaoffset", &assign_WindContPType3IEC_omegaoffset); - assign_map.emplace("cim:WindContPType3IEC.pdtdmax", &assign_WindContPType3IEC_pdtdmax); - assign_map.emplace("cim:WindContPType3IEC.rramp", &assign_WindContPType3IEC_rramp); - assign_map.emplace("cim:WindContPType3IEC.tdvs", &assign_WindContPType3IEC_tdvs); - assign_map.emplace("cim:WindContPType3IEC.temin", &assign_WindContPType3IEC_temin); - assign_map.emplace("cim:WindContPType3IEC.tomegafilt", &assign_WindContPType3IEC_tomegafilt); - assign_map.emplace("cim:WindContPType3IEC.tpfilt", &assign_WindContPType3IEC_tpfilt); - assign_map.emplace("cim:WindContPType3IEC.tpord", &assign_WindContPType3IEC_tpord); - assign_map.emplace("cim:WindContPType3IEC.tufilt", &assign_WindContPType3IEC_tufilt); - assign_map.emplace("cim:WindContPType3IEC.tuscale", &assign_WindContPType3IEC_tuscale); - assign_map.emplace("cim:WindContPType3IEC.twref", &assign_WindContPType3IEC_twref); - assign_map.emplace("cim:WindContPType3IEC.udvs", &assign_WindContPType3IEC_udvs); - assign_map.emplace("cim:WindContPType3IEC.updip", &assign_WindContPType3IEC_updip); - assign_map.emplace("cim:WindContPType3IEC.wdtd", &assign_WindContPType3IEC_wdtd); - assign_map.emplace("cim:WindContPType3IEC.zeta", &assign_WindContPType3IEC_zeta); + assign_map.emplace("WindContPType3IEC.dpmax", &assign_WindContPType3IEC_dpmax); + assign_map.emplace("WindContPType3IEC.dtrisemaxlvrt", &assign_WindContPType3IEC_dtrisemaxlvrt); + assign_map.emplace("WindContPType3IEC.kdtd", &assign_WindContPType3IEC_kdtd); + assign_map.emplace("WindContPType3IEC.kip", &assign_WindContPType3IEC_kip); + assign_map.emplace("WindContPType3IEC.kpp", &assign_WindContPType3IEC_kpp); + assign_map.emplace("WindContPType3IEC.mplvrt", &assign_WindContPType3IEC_mplvrt); + assign_map.emplace("WindContPType3IEC.omegaoffset", &assign_WindContPType3IEC_omegaoffset); + assign_map.emplace("WindContPType3IEC.pdtdmax", &assign_WindContPType3IEC_pdtdmax); + assign_map.emplace("WindContPType3IEC.rramp", &assign_WindContPType3IEC_rramp); + assign_map.emplace("WindContPType3IEC.tdvs", &assign_WindContPType3IEC_tdvs); + assign_map.emplace("WindContPType3IEC.temin", &assign_WindContPType3IEC_temin); + assign_map.emplace("WindContPType3IEC.tomegafilt", &assign_WindContPType3IEC_tomegafilt); + assign_map.emplace("WindContPType3IEC.tpfilt", &assign_WindContPType3IEC_tpfilt); + assign_map.emplace("WindContPType3IEC.tpord", &assign_WindContPType3IEC_tpord); + assign_map.emplace("WindContPType3IEC.tufilt", &assign_WindContPType3IEC_tufilt); + assign_map.emplace("WindContPType3IEC.tuscale", &assign_WindContPType3IEC_tuscale); + assign_map.emplace("WindContPType3IEC.twref", &assign_WindContPType3IEC_twref); + assign_map.emplace("WindContPType3IEC.udvs", &assign_WindContPType3IEC_udvs); + assign_map.emplace("WindContPType3IEC.updip", &assign_WindContPType3IEC_updip); + assign_map.emplace("WindContPType3IEC.wdtd", &assign_WindContPType3IEC_wdtd); + assign_map.emplace("WindContPType3IEC.zeta", &assign_WindContPType3IEC_zeta); } void WindContPType3IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType3IEC.WindDynamicsLookupTable", &assign_WindContPType3IEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContPType3IEC.WindGenTurbineType3IEC", &assign_WindContPType3IEC_WindGenTurbineType3IEC); + assign_map.emplace("WindContPType3IEC.WindDynamicsLookupTable", &assign_WindContPType3IEC_WindDynamicsLookupTable); + assign_map.emplace("WindContPType3IEC.WindGenTurbineType3IEC", &assign_WindContPType3IEC_WindGenTurbineType3IEC); } void WindContPType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType3IEC.dpmax", &get_WindContPType3IEC_dpmax); - get_map.emplace("cim:WindContPType3IEC.dtrisemaxlvrt", &get_WindContPType3IEC_dtrisemaxlvrt); - get_map.emplace("cim:WindContPType3IEC.kdtd", &get_WindContPType3IEC_kdtd); - get_map.emplace("cim:WindContPType3IEC.kip", &get_WindContPType3IEC_kip); - get_map.emplace("cim:WindContPType3IEC.kpp", &get_WindContPType3IEC_kpp); - get_map.emplace("cim:WindContPType3IEC.mplvrt", &get_WindContPType3IEC_mplvrt); - get_map.emplace("cim:WindContPType3IEC.omegaoffset", &get_WindContPType3IEC_omegaoffset); - get_map.emplace("cim:WindContPType3IEC.pdtdmax", &get_WindContPType3IEC_pdtdmax); - get_map.emplace("cim:WindContPType3IEC.rramp", &get_WindContPType3IEC_rramp); - get_map.emplace("cim:WindContPType3IEC.tdvs", &get_WindContPType3IEC_tdvs); - get_map.emplace("cim:WindContPType3IEC.temin", &get_WindContPType3IEC_temin); - get_map.emplace("cim:WindContPType3IEC.tomegafilt", &get_WindContPType3IEC_tomegafilt); - get_map.emplace("cim:WindContPType3IEC.tpfilt", &get_WindContPType3IEC_tpfilt); - get_map.emplace("cim:WindContPType3IEC.tpord", &get_WindContPType3IEC_tpord); - get_map.emplace("cim:WindContPType3IEC.tufilt", &get_WindContPType3IEC_tufilt); - get_map.emplace("cim:WindContPType3IEC.tuscale", &get_WindContPType3IEC_tuscale); - get_map.emplace("cim:WindContPType3IEC.twref", &get_WindContPType3IEC_twref); - get_map.emplace("cim:WindContPType3IEC.udvs", &get_WindContPType3IEC_udvs); - get_map.emplace("cim:WindContPType3IEC.updip", &get_WindContPType3IEC_updip); - get_map.emplace("cim:WindContPType3IEC.wdtd", &get_WindContPType3IEC_wdtd); - get_map.emplace("cim:WindContPType3IEC.zeta", &get_WindContPType3IEC_zeta); + get_map.emplace("WindContPType3IEC.dpmax", &get_WindContPType3IEC_dpmax); + get_map.emplace("WindContPType3IEC.dtrisemaxlvrt", &get_WindContPType3IEC_dtrisemaxlvrt); + get_map.emplace("WindContPType3IEC.kdtd", &get_WindContPType3IEC_kdtd); + get_map.emplace("WindContPType3IEC.kip", &get_WindContPType3IEC_kip); + get_map.emplace("WindContPType3IEC.kpp", &get_WindContPType3IEC_kpp); + get_map.emplace("WindContPType3IEC.mplvrt", &get_WindContPType3IEC_mplvrt); + get_map.emplace("WindContPType3IEC.omegaoffset", &get_WindContPType3IEC_omegaoffset); + get_map.emplace("WindContPType3IEC.pdtdmax", &get_WindContPType3IEC_pdtdmax); + get_map.emplace("WindContPType3IEC.rramp", &get_WindContPType3IEC_rramp); + get_map.emplace("WindContPType3IEC.tdvs", &get_WindContPType3IEC_tdvs); + get_map.emplace("WindContPType3IEC.temin", &get_WindContPType3IEC_temin); + get_map.emplace("WindContPType3IEC.tomegafilt", &get_WindContPType3IEC_tomegafilt); + get_map.emplace("WindContPType3IEC.tpfilt", &get_WindContPType3IEC_tpfilt); + get_map.emplace("WindContPType3IEC.tpord", &get_WindContPType3IEC_tpord); + get_map.emplace("WindContPType3IEC.tufilt", &get_WindContPType3IEC_tufilt); + get_map.emplace("WindContPType3IEC.tuscale", &get_WindContPType3IEC_tuscale); + get_map.emplace("WindContPType3IEC.twref", &get_WindContPType3IEC_twref); + get_map.emplace("WindContPType3IEC.udvs", &get_WindContPType3IEC_udvs); + get_map.emplace("WindContPType3IEC.updip", &get_WindContPType3IEC_updip); + get_map.emplace("WindContPType3IEC.wdtd", &get_WindContPType3IEC_wdtd); + get_map.emplace("WindContPType3IEC.zeta", &get_WindContPType3IEC_zeta); } void WindContPType3IEC::addClassGetFnsToMap(std::map& get_map) const @@ -786,11 +818,25 @@ void WindContPType3IEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType3IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType3IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType3IEC::declare() { return BaseClassDefiner(WindContPType3IEC::addConstructToMap, WindContPType3IEC::addPrimitiveAssignFnsToMap, WindContPType3IEC::addClassAssignFnsToMap, WindContPType3IEC::debugName); } +std::map WindContPType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType3IEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindContPType3IEC.hpp b/CGMES_2.4.15_27JAN2020/WindContPType3IEC.hpp index f73e04869..54e920640 100644 --- a/CGMES_2.4.15_27JAN2020/WindContPType3IEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindContPType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -102,8 +103,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -111,7 +119,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType3IEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindContPType4aIEC.cpp b/CGMES_2.4.15_27JAN2020/WindContPType4aIEC.cpp index 1c26a76c5..fd0e796ca 100644 --- a/CGMES_2.4.15_27JAN2020/WindContPType4aIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindContPType4aIEC.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType4aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType4aIEC.WindTurbineType4aIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType4aIEC::WindContPType4aIEC() : WindTurbineType4aIEC(nullptr) {} WindContPType4aIEC::~WindContPType4aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPType4aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPType4aIEC::getClassNamespaceUrl() const { - { "cim:WindContPType4aIEC.WindTurbineType4aIEC", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPType4aIEC::getPossibleProfilesForClass() const +const std::string& WindContPType4aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPType4aIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPType4aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType4aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType4aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType4aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4aIEC_WindContPType4aIEC(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* WindContPType4aIEC::debugString() const void WindContPType4aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType4aIEC", &WindContPType4aIEC_factory); + factory_map.emplace("WindContPType4aIEC", &WindContPType4aIEC_factory); } void WindContPType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4aIEC.dpmax", &assign_WindContPType4aIEC_dpmax); - assign_map.emplace("cim:WindContPType4aIEC.tpord", &assign_WindContPType4aIEC_tpord); - assign_map.emplace("cim:WindContPType4aIEC.tufilt", &assign_WindContPType4aIEC_tufilt); + assign_map.emplace("WindContPType4aIEC.dpmax", &assign_WindContPType4aIEC_dpmax); + assign_map.emplace("WindContPType4aIEC.tpord", &assign_WindContPType4aIEC_tpord); + assign_map.emplace("WindContPType4aIEC.tufilt", &assign_WindContPType4aIEC_tufilt); } void WindContPType4aIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4aIEC.WindTurbineType4aIEC", &assign_WindContPType4aIEC_WindTurbineType4aIEC); + assign_map.emplace("WindContPType4aIEC.WindTurbineType4aIEC", &assign_WindContPType4aIEC_WindTurbineType4aIEC); } void WindContPType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType4aIEC.dpmax", &get_WindContPType4aIEC_dpmax); - get_map.emplace("cim:WindContPType4aIEC.tpord", &get_WindContPType4aIEC_tpord); - get_map.emplace("cim:WindContPType4aIEC.tufilt", &get_WindContPType4aIEC_tufilt); + get_map.emplace("WindContPType4aIEC.dpmax", &get_WindContPType4aIEC_dpmax); + get_map.emplace("WindContPType4aIEC.tpord", &get_WindContPType4aIEC_tpord); + get_map.emplace("WindContPType4aIEC.tufilt", &get_WindContPType4aIEC_tufilt); } void WindContPType4aIEC::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void WindContPType4aIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType4aIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType4aIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType4aIEC::declare() { return BaseClassDefiner(WindContPType4aIEC::addConstructToMap, WindContPType4aIEC::addPrimitiveAssignFnsToMap, WindContPType4aIEC::addClassAssignFnsToMap, WindContPType4aIEC::debugName); } +std::map WindContPType4aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType4aIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindContPType4aIEC.hpp b/CGMES_2.4.15_27JAN2020/WindContPType4aIEC.hpp index da1dc150e..2b2799ad1 100644 --- a/CGMES_2.4.15_27JAN2020/WindContPType4aIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindContPType4aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType4aIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindContPType4bIEC.cpp b/CGMES_2.4.15_27JAN2020/WindContPType4bIEC.cpp index 63bf79cac..ce1989784 100644 --- a/CGMES_2.4.15_27JAN2020/WindContPType4bIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindContPType4bIEC.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType4bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType4bIEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.dpmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tpaero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tpord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType4bIEC::WindContPType4bIEC() : WindTurbineType4bIEC(nullptr) {} WindContPType4bIEC::~WindContPType4bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPType4bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPType4bIEC::getClassNamespaceUrl() const { - { "cim:WindContPType4bIEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tpaero", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tufilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPType4bIEC::getPossibleProfilesForClass() const +const std::string& WindContPType4bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPType4bIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPType4bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType4bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType4bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType4bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4bIEC_WindContPType4bIEC(BaseClass*, BaseClass*); @@ -186,29 +218,29 @@ const char* WindContPType4bIEC::debugString() const void WindContPType4bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType4bIEC", &WindContPType4bIEC_factory); + factory_map.emplace("WindContPType4bIEC", &WindContPType4bIEC_factory); } void WindContPType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4bIEC.dpmax", &assign_WindContPType4bIEC_dpmax); - assign_map.emplace("cim:WindContPType4bIEC.tpaero", &assign_WindContPType4bIEC_tpaero); - assign_map.emplace("cim:WindContPType4bIEC.tpord", &assign_WindContPType4bIEC_tpord); - assign_map.emplace("cim:WindContPType4bIEC.tufilt", &assign_WindContPType4bIEC_tufilt); + assign_map.emplace("WindContPType4bIEC.dpmax", &assign_WindContPType4bIEC_dpmax); + assign_map.emplace("WindContPType4bIEC.tpaero", &assign_WindContPType4bIEC_tpaero); + assign_map.emplace("WindContPType4bIEC.tpord", &assign_WindContPType4bIEC_tpord); + assign_map.emplace("WindContPType4bIEC.tufilt", &assign_WindContPType4bIEC_tufilt); } void WindContPType4bIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4bIEC.WindTurbineType4bIEC", &assign_WindContPType4bIEC_WindTurbineType4bIEC); + assign_map.emplace("WindContPType4bIEC.WindTurbineType4bIEC", &assign_WindContPType4bIEC_WindTurbineType4bIEC); } void WindContPType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType4bIEC.dpmax", &get_WindContPType4bIEC_dpmax); - get_map.emplace("cim:WindContPType4bIEC.tpaero", &get_WindContPType4bIEC_tpaero); - get_map.emplace("cim:WindContPType4bIEC.tpord", &get_WindContPType4bIEC_tpord); - get_map.emplace("cim:WindContPType4bIEC.tufilt", &get_WindContPType4bIEC_tufilt); + get_map.emplace("WindContPType4bIEC.dpmax", &get_WindContPType4bIEC_dpmax); + get_map.emplace("WindContPType4bIEC.tpaero", &get_WindContPType4bIEC_tpaero); + get_map.emplace("WindContPType4bIEC.tpord", &get_WindContPType4bIEC_tpord); + get_map.emplace("WindContPType4bIEC.tufilt", &get_WindContPType4bIEC_tufilt); } void WindContPType4bIEC::addClassGetFnsToMap(std::map& get_map) const @@ -221,11 +253,25 @@ void WindContPType4bIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType4bIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType4bIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType4bIEC::declare() { return BaseClassDefiner(WindContPType4bIEC::addConstructToMap, WindContPType4bIEC::addPrimitiveAssignFnsToMap, WindContPType4bIEC::addClassAssignFnsToMap, WindContPType4bIEC::debugName); } +std::map WindContPType4bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType4bIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindContPType4bIEC.hpp b/CGMES_2.4.15_27JAN2020/WindContPType4bIEC.hpp index 945825f0c..4e1cdbfe0 100644 --- a/CGMES_2.4.15_27JAN2020/WindContPType4bIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindContPType4bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType4bIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindContPitchAngleIEC.cpp b/CGMES_2.4.15_27JAN2020/WindContPitchAngleIEC.cpp index 055ba9674..3671be1e1 100644 --- a/CGMES_2.4.15_27JAN2020/WindContPitchAngleIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindContPitchAngleIEC.cpp @@ -12,42 +12,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPitchAngleIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPitchAngleIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.dthetamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.dthetamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kiomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpomega", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.thetamax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.thetamin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.ttheta", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPitchAngleIEC::WindContPitchAngleIEC() : WindGenTurbineType3IEC(nullptr) {} WindContPitchAngleIEC::~WindContPitchAngleIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPitchAngleIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPitchAngleIEC::getClassNamespaceUrl() const { - { "cim:WindContPitchAngleIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.dthetamax", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.dthetamin", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kic", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kiomega", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpc", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpomega", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpx", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.thetamax", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.thetamin", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.ttheta", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPitchAngleIEC::getPossibleProfilesForClass() const +const std::string& WindContPitchAngleIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPitchAngleIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPitchAngleIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPitchAngleIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPitchAngleIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPitchAngleIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindContPitchAngleIEC(BaseClass*, BaseClass*); @@ -366,41 +398,41 @@ const char* WindContPitchAngleIEC::debugString() const void WindContPitchAngleIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPitchAngleIEC", &WindContPitchAngleIEC_factory); + factory_map.emplace("WindContPitchAngleIEC", &WindContPitchAngleIEC_factory); } void WindContPitchAngleIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPitchAngleIEC.dthetamax", &assign_WindContPitchAngleIEC_dthetamax); - assign_map.emplace("cim:WindContPitchAngleIEC.dthetamin", &assign_WindContPitchAngleIEC_dthetamin); - assign_map.emplace("cim:WindContPitchAngleIEC.kic", &assign_WindContPitchAngleIEC_kic); - assign_map.emplace("cim:WindContPitchAngleIEC.kiomega", &assign_WindContPitchAngleIEC_kiomega); - assign_map.emplace("cim:WindContPitchAngleIEC.kpc", &assign_WindContPitchAngleIEC_kpc); - assign_map.emplace("cim:WindContPitchAngleIEC.kpomega", &assign_WindContPitchAngleIEC_kpomega); - assign_map.emplace("cim:WindContPitchAngleIEC.kpx", &assign_WindContPitchAngleIEC_kpx); - assign_map.emplace("cim:WindContPitchAngleIEC.thetamax", &assign_WindContPitchAngleIEC_thetamax); - assign_map.emplace("cim:WindContPitchAngleIEC.thetamin", &assign_WindContPitchAngleIEC_thetamin); - assign_map.emplace("cim:WindContPitchAngleIEC.ttheta", &assign_WindContPitchAngleIEC_ttheta); + assign_map.emplace("WindContPitchAngleIEC.dthetamax", &assign_WindContPitchAngleIEC_dthetamax); + assign_map.emplace("WindContPitchAngleIEC.dthetamin", &assign_WindContPitchAngleIEC_dthetamin); + assign_map.emplace("WindContPitchAngleIEC.kic", &assign_WindContPitchAngleIEC_kic); + assign_map.emplace("WindContPitchAngleIEC.kiomega", &assign_WindContPitchAngleIEC_kiomega); + assign_map.emplace("WindContPitchAngleIEC.kpc", &assign_WindContPitchAngleIEC_kpc); + assign_map.emplace("WindContPitchAngleIEC.kpomega", &assign_WindContPitchAngleIEC_kpomega); + assign_map.emplace("WindContPitchAngleIEC.kpx", &assign_WindContPitchAngleIEC_kpx); + assign_map.emplace("WindContPitchAngleIEC.thetamax", &assign_WindContPitchAngleIEC_thetamax); + assign_map.emplace("WindContPitchAngleIEC.thetamin", &assign_WindContPitchAngleIEC_thetamin); + assign_map.emplace("WindContPitchAngleIEC.ttheta", &assign_WindContPitchAngleIEC_ttheta); } void WindContPitchAngleIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPitchAngleIEC.WindGenTurbineType3IEC", &assign_WindContPitchAngleIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindContPitchAngleIEC.WindGenTurbineType3IEC", &assign_WindContPitchAngleIEC_WindGenTurbineType3IEC); } void WindContPitchAngleIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPitchAngleIEC.dthetamax", &get_WindContPitchAngleIEC_dthetamax); - get_map.emplace("cim:WindContPitchAngleIEC.dthetamin", &get_WindContPitchAngleIEC_dthetamin); - get_map.emplace("cim:WindContPitchAngleIEC.kic", &get_WindContPitchAngleIEC_kic); - get_map.emplace("cim:WindContPitchAngleIEC.kiomega", &get_WindContPitchAngleIEC_kiomega); - get_map.emplace("cim:WindContPitchAngleIEC.kpc", &get_WindContPitchAngleIEC_kpc); - get_map.emplace("cim:WindContPitchAngleIEC.kpomega", &get_WindContPitchAngleIEC_kpomega); - get_map.emplace("cim:WindContPitchAngleIEC.kpx", &get_WindContPitchAngleIEC_kpx); - get_map.emplace("cim:WindContPitchAngleIEC.thetamax", &get_WindContPitchAngleIEC_thetamax); - get_map.emplace("cim:WindContPitchAngleIEC.thetamin", &get_WindContPitchAngleIEC_thetamin); - get_map.emplace("cim:WindContPitchAngleIEC.ttheta", &get_WindContPitchAngleIEC_ttheta); + get_map.emplace("WindContPitchAngleIEC.dthetamax", &get_WindContPitchAngleIEC_dthetamax); + get_map.emplace("WindContPitchAngleIEC.dthetamin", &get_WindContPitchAngleIEC_dthetamin); + get_map.emplace("WindContPitchAngleIEC.kic", &get_WindContPitchAngleIEC_kic); + get_map.emplace("WindContPitchAngleIEC.kiomega", &get_WindContPitchAngleIEC_kiomega); + get_map.emplace("WindContPitchAngleIEC.kpc", &get_WindContPitchAngleIEC_kpc); + get_map.emplace("WindContPitchAngleIEC.kpomega", &get_WindContPitchAngleIEC_kpomega); + get_map.emplace("WindContPitchAngleIEC.kpx", &get_WindContPitchAngleIEC_kpx); + get_map.emplace("WindContPitchAngleIEC.thetamax", &get_WindContPitchAngleIEC_thetamax); + get_map.emplace("WindContPitchAngleIEC.thetamin", &get_WindContPitchAngleIEC_thetamin); + get_map.emplace("WindContPitchAngleIEC.ttheta", &get_WindContPitchAngleIEC_ttheta); } void WindContPitchAngleIEC::addClassGetFnsToMap(std::map& get_map) const @@ -413,11 +445,25 @@ void WindContPitchAngleIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindContPitchAngleIEC::declare() { return BaseClassDefiner(WindContPitchAngleIEC::addConstructToMap, WindContPitchAngleIEC::addPrimitiveAssignFnsToMap, WindContPitchAngleIEC::addClassAssignFnsToMap, WindContPitchAngleIEC::debugName); } +std::map WindContPitchAngleIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPitchAngleIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindContPitchAngleIEC.hpp b/CGMES_2.4.15_27JAN2020/WindContPitchAngleIEC.hpp index 57dd765dc..9a17e92bb 100644 --- a/CGMES_2.4.15_27JAN2020/WindContPitchAngleIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindContPitchAngleIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -65,8 +66,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -74,7 +82,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPitchAngleIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindContQIEC.cpp b/CGMES_2.4.15_27JAN2020/WindContQIEC.cpp index 2b20f6ee7..84e8dafcf 100644 --- a/CGMES_2.4.15_27JAN2020/WindContQIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindContQIEC.cpp @@ -12,58 +12,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContQIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContQIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqh1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqpost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kiq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kiu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kpq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kqv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.qmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.qmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.rdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tiq", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tpost", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tqord", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.udb1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.udb2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.umax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.umin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.uqdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.uref0", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.windLVRTQcontrolModesType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.windQcontrolModesType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContQIEC.xdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContQIEC::WindContQIEC() : WindTurbineType3or4IEC(nullptr) {} WindContQIEC::~WindContQIEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindContQIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqh1", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqmax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqmin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqpost", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kiq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kiu", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kpq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kpu", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kqv", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.qmax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.qmin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.rdroop", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tiq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tpfilt", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tpost", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tqord", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tufilt", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.udb1", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.udb2", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.umax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.umin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.uqdip", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.uref0", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.windLVRTQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.windQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.xdroop", { CGMESProfile::DY, } }, -}; - -std::list -WindContQIEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindContQIEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindContQIEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindContQIEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindContQIEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindContQIEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContQIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContQIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContQIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3or4IEC_WIndContQIEC(BaseClass*, BaseClass*); @@ -846,71 +878,71 @@ const char* WindContQIEC::debugString() const void WindContQIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContQIEC", &WindContQIEC_factory); + factory_map.emplace("WindContQIEC", &WindContQIEC_factory); } void WindContQIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQIEC.iqh1", &assign_WindContQIEC_iqh1); - assign_map.emplace("cim:WindContQIEC.iqmax", &assign_WindContQIEC_iqmax); - assign_map.emplace("cim:WindContQIEC.iqmin", &assign_WindContQIEC_iqmin); - assign_map.emplace("cim:WindContQIEC.iqpost", &assign_WindContQIEC_iqpost); - assign_map.emplace("cim:WindContQIEC.kiq", &assign_WindContQIEC_kiq); - assign_map.emplace("cim:WindContQIEC.kiu", &assign_WindContQIEC_kiu); - assign_map.emplace("cim:WindContQIEC.kpq", &assign_WindContQIEC_kpq); - assign_map.emplace("cim:WindContQIEC.kpu", &assign_WindContQIEC_kpu); - assign_map.emplace("cim:WindContQIEC.kqv", &assign_WindContQIEC_kqv); - assign_map.emplace("cim:WindContQIEC.qmax", &assign_WindContQIEC_qmax); - assign_map.emplace("cim:WindContQIEC.qmin", &assign_WindContQIEC_qmin); - assign_map.emplace("cim:WindContQIEC.rdroop", &assign_WindContQIEC_rdroop); - assign_map.emplace("cim:WindContQIEC.tiq", &assign_WindContQIEC_tiq); - assign_map.emplace("cim:WindContQIEC.tpfilt", &assign_WindContQIEC_tpfilt); - assign_map.emplace("cim:WindContQIEC.tpost", &assign_WindContQIEC_tpost); - assign_map.emplace("cim:WindContQIEC.tqord", &assign_WindContQIEC_tqord); - assign_map.emplace("cim:WindContQIEC.tufilt", &assign_WindContQIEC_tufilt); - assign_map.emplace("cim:WindContQIEC.udb1", &assign_WindContQIEC_udb1); - assign_map.emplace("cim:WindContQIEC.udb2", &assign_WindContQIEC_udb2); - assign_map.emplace("cim:WindContQIEC.umax", &assign_WindContQIEC_umax); - assign_map.emplace("cim:WindContQIEC.umin", &assign_WindContQIEC_umin); - assign_map.emplace("cim:WindContQIEC.uqdip", &assign_WindContQIEC_uqdip); - assign_map.emplace("cim:WindContQIEC.uref0", &assign_WindContQIEC_uref0); - assign_map.emplace("cim:WindContQIEC.windLVRTQcontrolModesType", &assign_WindContQIEC_windLVRTQcontrolModesType); - assign_map.emplace("cim:WindContQIEC.windQcontrolModesType", &assign_WindContQIEC_windQcontrolModesType); - assign_map.emplace("cim:WindContQIEC.xdroop", &assign_WindContQIEC_xdroop); + assign_map.emplace("WindContQIEC.iqh1", &assign_WindContQIEC_iqh1); + assign_map.emplace("WindContQIEC.iqmax", &assign_WindContQIEC_iqmax); + assign_map.emplace("WindContQIEC.iqmin", &assign_WindContQIEC_iqmin); + assign_map.emplace("WindContQIEC.iqpost", &assign_WindContQIEC_iqpost); + assign_map.emplace("WindContQIEC.kiq", &assign_WindContQIEC_kiq); + assign_map.emplace("WindContQIEC.kiu", &assign_WindContQIEC_kiu); + assign_map.emplace("WindContQIEC.kpq", &assign_WindContQIEC_kpq); + assign_map.emplace("WindContQIEC.kpu", &assign_WindContQIEC_kpu); + assign_map.emplace("WindContQIEC.kqv", &assign_WindContQIEC_kqv); + assign_map.emplace("WindContQIEC.qmax", &assign_WindContQIEC_qmax); + assign_map.emplace("WindContQIEC.qmin", &assign_WindContQIEC_qmin); + assign_map.emplace("WindContQIEC.rdroop", &assign_WindContQIEC_rdroop); + assign_map.emplace("WindContQIEC.tiq", &assign_WindContQIEC_tiq); + assign_map.emplace("WindContQIEC.tpfilt", &assign_WindContQIEC_tpfilt); + assign_map.emplace("WindContQIEC.tpost", &assign_WindContQIEC_tpost); + assign_map.emplace("WindContQIEC.tqord", &assign_WindContQIEC_tqord); + assign_map.emplace("WindContQIEC.tufilt", &assign_WindContQIEC_tufilt); + assign_map.emplace("WindContQIEC.udb1", &assign_WindContQIEC_udb1); + assign_map.emplace("WindContQIEC.udb2", &assign_WindContQIEC_udb2); + assign_map.emplace("WindContQIEC.umax", &assign_WindContQIEC_umax); + assign_map.emplace("WindContQIEC.umin", &assign_WindContQIEC_umin); + assign_map.emplace("WindContQIEC.uqdip", &assign_WindContQIEC_uqdip); + assign_map.emplace("WindContQIEC.uref0", &assign_WindContQIEC_uref0); + assign_map.emplace("WindContQIEC.windLVRTQcontrolModesType", &assign_WindContQIEC_windLVRTQcontrolModesType); + assign_map.emplace("WindContQIEC.windQcontrolModesType", &assign_WindContQIEC_windQcontrolModesType); + assign_map.emplace("WindContQIEC.xdroop", &assign_WindContQIEC_xdroop); } void WindContQIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQIEC.WindTurbineType3or4IEC", &assign_WindContQIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContQIEC.WindTurbineType3or4IEC", &assign_WindContQIEC_WindTurbineType3or4IEC); } void WindContQIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContQIEC.iqh1", &get_WindContQIEC_iqh1); - get_map.emplace("cim:WindContQIEC.iqmax", &get_WindContQIEC_iqmax); - get_map.emplace("cim:WindContQIEC.iqmin", &get_WindContQIEC_iqmin); - get_map.emplace("cim:WindContQIEC.iqpost", &get_WindContQIEC_iqpost); - get_map.emplace("cim:WindContQIEC.kiq", &get_WindContQIEC_kiq); - get_map.emplace("cim:WindContQIEC.kiu", &get_WindContQIEC_kiu); - get_map.emplace("cim:WindContQIEC.kpq", &get_WindContQIEC_kpq); - get_map.emplace("cim:WindContQIEC.kpu", &get_WindContQIEC_kpu); - get_map.emplace("cim:WindContQIEC.kqv", &get_WindContQIEC_kqv); - get_map.emplace("cim:WindContQIEC.qmax", &get_WindContQIEC_qmax); - get_map.emplace("cim:WindContQIEC.qmin", &get_WindContQIEC_qmin); - get_map.emplace("cim:WindContQIEC.rdroop", &get_WindContQIEC_rdroop); - get_map.emplace("cim:WindContQIEC.tiq", &get_WindContQIEC_tiq); - get_map.emplace("cim:WindContQIEC.tpfilt", &get_WindContQIEC_tpfilt); - get_map.emplace("cim:WindContQIEC.tpost", &get_WindContQIEC_tpost); - get_map.emplace("cim:WindContQIEC.tqord", &get_WindContQIEC_tqord); - get_map.emplace("cim:WindContQIEC.tufilt", &get_WindContQIEC_tufilt); - get_map.emplace("cim:WindContQIEC.udb1", &get_WindContQIEC_udb1); - get_map.emplace("cim:WindContQIEC.udb2", &get_WindContQIEC_udb2); - get_map.emplace("cim:WindContQIEC.umax", &get_WindContQIEC_umax); - get_map.emplace("cim:WindContQIEC.umin", &get_WindContQIEC_umin); - get_map.emplace("cim:WindContQIEC.uqdip", &get_WindContQIEC_uqdip); - get_map.emplace("cim:WindContQIEC.uref0", &get_WindContQIEC_uref0); - get_map.emplace("cim:WindContQIEC.xdroop", &get_WindContQIEC_xdroop); + get_map.emplace("WindContQIEC.iqh1", &get_WindContQIEC_iqh1); + get_map.emplace("WindContQIEC.iqmax", &get_WindContQIEC_iqmax); + get_map.emplace("WindContQIEC.iqmin", &get_WindContQIEC_iqmin); + get_map.emplace("WindContQIEC.iqpost", &get_WindContQIEC_iqpost); + get_map.emplace("WindContQIEC.kiq", &get_WindContQIEC_kiq); + get_map.emplace("WindContQIEC.kiu", &get_WindContQIEC_kiu); + get_map.emplace("WindContQIEC.kpq", &get_WindContQIEC_kpq); + get_map.emplace("WindContQIEC.kpu", &get_WindContQIEC_kpu); + get_map.emplace("WindContQIEC.kqv", &get_WindContQIEC_kqv); + get_map.emplace("WindContQIEC.qmax", &get_WindContQIEC_qmax); + get_map.emplace("WindContQIEC.qmin", &get_WindContQIEC_qmin); + get_map.emplace("WindContQIEC.rdroop", &get_WindContQIEC_rdroop); + get_map.emplace("WindContQIEC.tiq", &get_WindContQIEC_tiq); + get_map.emplace("WindContQIEC.tpfilt", &get_WindContQIEC_tpfilt); + get_map.emplace("WindContQIEC.tpost", &get_WindContQIEC_tpost); + get_map.emplace("WindContQIEC.tqord", &get_WindContQIEC_tqord); + get_map.emplace("WindContQIEC.tufilt", &get_WindContQIEC_tufilt); + get_map.emplace("WindContQIEC.udb1", &get_WindContQIEC_udb1); + get_map.emplace("WindContQIEC.udb2", &get_WindContQIEC_udb2); + get_map.emplace("WindContQIEC.umax", &get_WindContQIEC_umax); + get_map.emplace("WindContQIEC.umin", &get_WindContQIEC_umin); + get_map.emplace("WindContQIEC.uqdip", &get_WindContQIEC_uqdip); + get_map.emplace("WindContQIEC.uref0", &get_WindContQIEC_uref0); + get_map.emplace("WindContQIEC.xdroop", &get_WindContQIEC_xdroop); } void WindContQIEC::addClassGetFnsToMap(std::map& get_map) const @@ -921,8 +953,14 @@ void WindContQIEC::addClassGetFnsToMap(std::map void WindContQIEC::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindContQIEC.windLVRTQcontrolModesType", &get_WindContQIEC_windLVRTQcontrolModesType); - get_map.emplace("cim:WindContQIEC.windQcontrolModesType", &get_WindContQIEC_windQcontrolModesType); + get_map.emplace("WindContQIEC.windLVRTQcontrolModesType", &get_WindContQIEC_windLVRTQcontrolModesType); + get_map.emplace("WindContQIEC.windQcontrolModesType", &get_WindContQIEC_windQcontrolModesType); +} + +bool WindContQIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContQIEC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindContQIEC::declare() @@ -930,6 +968,14 @@ const BaseClassDefiner WindContQIEC::declare() return BaseClassDefiner(WindContQIEC::addConstructToMap, WindContQIEC::addPrimitiveAssignFnsToMap, WindContQIEC::addClassAssignFnsToMap, WindContQIEC::debugName); } +std::map WindContQIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContQIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindContQIEC.hpp b/CGMES_2.4.15_27JAN2020/WindContQIEC.hpp index 024e73ccd..c9bf74258 100644 --- a/CGMES_2.4.15_27JAN2020/WindContQIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindContQIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "WindLVRTQcontrolModesKind.hpp" @@ -113,8 +114,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -122,7 +130,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContQIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindContRotorRIEC.cpp b/CGMES_2.4.15_27JAN2020/WindContRotorRIEC.cpp index 67c95d633..0ab35767e 100644 --- a/CGMES_2.4.15_27JAN2020/WindContRotorRIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindContRotorRIEC.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContRotorRIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContRotorRIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.WindGenTurbineType2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kirr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.komegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kprr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.rmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.rmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.tomegafilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.tpfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContRotorRIEC::WindContRotorRIEC() : WindGenTurbineType2IEC(nullptr) {} WindContRotorRIEC::~WindContRotorRIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContRotorRIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContRotorRIEC::getClassNamespaceUrl() const { - { "cim:WindContRotorRIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.WindGenTurbineType2IEC", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kirr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.komegafilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kpfilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kprr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.rmax", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.rmin", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.tomegafilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.tpfilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContRotorRIEC::getPossibleProfilesForClass() const +const std::string& WindContRotorRIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContRotorRIEC::getPossibleProfilesForAttributes() const +const std::list& WindContRotorRIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContRotorRIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContRotorRIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContRotorRIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContRotorRIEC(BaseClass*, BaseClass*); @@ -326,38 +358,38 @@ const char* WindContRotorRIEC::debugString() const void WindContRotorRIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContRotorRIEC", &WindContRotorRIEC_factory); + factory_map.emplace("WindContRotorRIEC", &WindContRotorRIEC_factory); } void WindContRotorRIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContRotorRIEC.kirr", &assign_WindContRotorRIEC_kirr); - assign_map.emplace("cim:WindContRotorRIEC.komegafilt", &assign_WindContRotorRIEC_komegafilt); - assign_map.emplace("cim:WindContRotorRIEC.kpfilt", &assign_WindContRotorRIEC_kpfilt); - assign_map.emplace("cim:WindContRotorRIEC.kprr", &assign_WindContRotorRIEC_kprr); - assign_map.emplace("cim:WindContRotorRIEC.rmax", &assign_WindContRotorRIEC_rmax); - assign_map.emplace("cim:WindContRotorRIEC.rmin", &assign_WindContRotorRIEC_rmin); - assign_map.emplace("cim:WindContRotorRIEC.tomegafilt", &assign_WindContRotorRIEC_tomegafilt); - assign_map.emplace("cim:WindContRotorRIEC.tpfilt", &assign_WindContRotorRIEC_tpfilt); + assign_map.emplace("WindContRotorRIEC.kirr", &assign_WindContRotorRIEC_kirr); + assign_map.emplace("WindContRotorRIEC.komegafilt", &assign_WindContRotorRIEC_komegafilt); + assign_map.emplace("WindContRotorRIEC.kpfilt", &assign_WindContRotorRIEC_kpfilt); + assign_map.emplace("WindContRotorRIEC.kprr", &assign_WindContRotorRIEC_kprr); + assign_map.emplace("WindContRotorRIEC.rmax", &assign_WindContRotorRIEC_rmax); + assign_map.emplace("WindContRotorRIEC.rmin", &assign_WindContRotorRIEC_rmin); + assign_map.emplace("WindContRotorRIEC.tomegafilt", &assign_WindContRotorRIEC_tomegafilt); + assign_map.emplace("WindContRotorRIEC.tpfilt", &assign_WindContRotorRIEC_tpfilt); } void WindContRotorRIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContRotorRIEC.WindDynamicsLookupTable", &assign_WindContRotorRIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContRotorRIEC.WindGenTurbineType2IEC", &assign_WindContRotorRIEC_WindGenTurbineType2IEC); + assign_map.emplace("WindContRotorRIEC.WindDynamicsLookupTable", &assign_WindContRotorRIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContRotorRIEC.WindGenTurbineType2IEC", &assign_WindContRotorRIEC_WindGenTurbineType2IEC); } void WindContRotorRIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContRotorRIEC.kirr", &get_WindContRotorRIEC_kirr); - get_map.emplace("cim:WindContRotorRIEC.komegafilt", &get_WindContRotorRIEC_komegafilt); - get_map.emplace("cim:WindContRotorRIEC.kpfilt", &get_WindContRotorRIEC_kpfilt); - get_map.emplace("cim:WindContRotorRIEC.kprr", &get_WindContRotorRIEC_kprr); - get_map.emplace("cim:WindContRotorRIEC.rmax", &get_WindContRotorRIEC_rmax); - get_map.emplace("cim:WindContRotorRIEC.rmin", &get_WindContRotorRIEC_rmin); - get_map.emplace("cim:WindContRotorRIEC.tomegafilt", &get_WindContRotorRIEC_tomegafilt); - get_map.emplace("cim:WindContRotorRIEC.tpfilt", &get_WindContRotorRIEC_tpfilt); + get_map.emplace("WindContRotorRIEC.kirr", &get_WindContRotorRIEC_kirr); + get_map.emplace("WindContRotorRIEC.komegafilt", &get_WindContRotorRIEC_komegafilt); + get_map.emplace("WindContRotorRIEC.kpfilt", &get_WindContRotorRIEC_kpfilt); + get_map.emplace("WindContRotorRIEC.kprr", &get_WindContRotorRIEC_kprr); + get_map.emplace("WindContRotorRIEC.rmax", &get_WindContRotorRIEC_rmax); + get_map.emplace("WindContRotorRIEC.rmin", &get_WindContRotorRIEC_rmin); + get_map.emplace("WindContRotorRIEC.tomegafilt", &get_WindContRotorRIEC_tomegafilt); + get_map.emplace("WindContRotorRIEC.tpfilt", &get_WindContRotorRIEC_tpfilt); } void WindContRotorRIEC::addClassGetFnsToMap(std::map& get_map) const @@ -370,11 +402,25 @@ void WindContRotorRIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContRotorRIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContRotorRIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContRotorRIEC::declare() { return BaseClassDefiner(WindContRotorRIEC::addConstructToMap, WindContRotorRIEC::addPrimitiveAssignFnsToMap, WindContRotorRIEC::addClassAssignFnsToMap, WindContRotorRIEC::debugName); } +std::map WindContRotorRIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContRotorRIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindContRotorRIEC.hpp b/CGMES_2.4.15_27JAN2020/WindContRotorRIEC.hpp index 50c215acb..f8e2d5159 100644 --- a/CGMES_2.4.15_27JAN2020/WindContRotorRIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindContRotorRIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContRotorRIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindDynamicsLookupTable.cpp b/CGMES_2.4.15_27JAN2020/WindDynamicsLookupTable.cpp index e88345af5..ee3945b8e 100644 --- a/CGMES_2.4.15_27JAN2020/WindDynamicsLookupTable.cpp +++ b/CGMES_2.4.15_27JAN2020/WindDynamicsLookupTable.cpp @@ -15,39 +15,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindDynamicsLookupTable(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindDynamicsLookupTable.WindContCurrLimIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContPType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContRotorRIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.input", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.lookupTableFunctionType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.output", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.sequence", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindDynamicsLookupTable::WindDynamicsLookupTable() : WindContCurrLimIEC(nullptr), WindContPType3IEC(nullptr), WindContRotorRIEC(nullptr), WindPlantFreqPcontrolIEC(nullptr) {} WindDynamicsLookupTable::~WindDynamicsLookupTable() {} -static const std::list PossibleProfilesForClass = +const std::list& WindDynamicsLookupTable::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindDynamicsLookupTable::getClassNamespaceUrl() const { - { "cim:WindDynamicsLookupTable.WindContCurrLimIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContPType3IEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContRotorRIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.input", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.lookupTableFunctionType", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.output", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.sequence", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindDynamicsLookupTable::getPossibleProfilesForClass() const +const std::string& WindDynamicsLookupTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindDynamicsLookupTable::getPossibleProfilesForAttributes() const +const std::list& WindDynamicsLookupTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindDynamicsLookupTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindDynamicsLookupTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindDynamicsLookupTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContCurrLimIEC_WindDynamicsLookupTable(BaseClass*, BaseClass*); @@ -298,46 +330,52 @@ const char* WindDynamicsLookupTable::debugString() const void WindDynamicsLookupTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindDynamicsLookupTable", &WindDynamicsLookupTable_factory); + factory_map.emplace("WindDynamicsLookupTable", &WindDynamicsLookupTable_factory); } void WindDynamicsLookupTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindDynamicsLookupTable.input", &assign_WindDynamicsLookupTable_input); - assign_map.emplace("cim:WindDynamicsLookupTable.lookupTableFunctionType", &assign_WindDynamicsLookupTable_lookupTableFunctionType); - assign_map.emplace("cim:WindDynamicsLookupTable.output", &assign_WindDynamicsLookupTable_output); - assign_map.emplace("cim:WindDynamicsLookupTable.sequence", &assign_WindDynamicsLookupTable_sequence); + assign_map.emplace("WindDynamicsLookupTable.input", &assign_WindDynamicsLookupTable_input); + assign_map.emplace("WindDynamicsLookupTable.lookupTableFunctionType", &assign_WindDynamicsLookupTable_lookupTableFunctionType); + assign_map.emplace("WindDynamicsLookupTable.output", &assign_WindDynamicsLookupTable_output); + assign_map.emplace("WindDynamicsLookupTable.sequence", &assign_WindDynamicsLookupTable_sequence); } void WindDynamicsLookupTable::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindDynamicsLookupTable.WindContCurrLimIEC", &assign_WindDynamicsLookupTable_WindContCurrLimIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContPType3IEC", &assign_WindDynamicsLookupTable_WindContPType3IEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContRotorRIEC", &assign_WindDynamicsLookupTable_WindContRotorRIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContCurrLimIEC", &assign_WindDynamicsLookupTable_WindContCurrLimIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContPType3IEC", &assign_WindDynamicsLookupTable_WindContPType3IEC); + assign_map.emplace("WindDynamicsLookupTable.WindContRotorRIEC", &assign_WindDynamicsLookupTable_WindContRotorRIEC); + assign_map.emplace("WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); } void WindDynamicsLookupTable::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.input", &get_WindDynamicsLookupTable_input); - get_map.emplace("cim:WindDynamicsLookupTable.output", &get_WindDynamicsLookupTable_output); - get_map.emplace("cim:WindDynamicsLookupTable.sequence", &get_WindDynamicsLookupTable_sequence); + get_map.emplace("WindDynamicsLookupTable.input", &get_WindDynamicsLookupTable_input); + get_map.emplace("WindDynamicsLookupTable.output", &get_WindDynamicsLookupTable_output); + get_map.emplace("WindDynamicsLookupTable.sequence", &get_WindDynamicsLookupTable_sequence); } void WindDynamicsLookupTable::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.WindContCurrLimIEC", &get_WindDynamicsLookupTable_WindContCurrLimIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContPType3IEC", &get_WindDynamicsLookupTable_WindContPType3IEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContRotorRIEC", &get_WindDynamicsLookupTable_WindContRotorRIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &get_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); + get_map.emplace("WindDynamicsLookupTable.WindContCurrLimIEC", &get_WindDynamicsLookupTable_WindContCurrLimIEC); + get_map.emplace("WindDynamicsLookupTable.WindContPType3IEC", &get_WindDynamicsLookupTable_WindContPType3IEC); + get_map.emplace("WindDynamicsLookupTable.WindContRotorRIEC", &get_WindDynamicsLookupTable_WindContRotorRIEC); + get_map.emplace("WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &get_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); } void WindDynamicsLookupTable::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.lookupTableFunctionType", &get_WindDynamicsLookupTable_lookupTableFunctionType); + get_map.emplace("WindDynamicsLookupTable.lookupTableFunctionType", &get_WindDynamicsLookupTable_lookupTableFunctionType); +} + +bool WindDynamicsLookupTable::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindDynamicsLookupTable" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindDynamicsLookupTable::declare() @@ -345,6 +383,14 @@ const BaseClassDefiner WindDynamicsLookupTable::declare() return BaseClassDefiner(WindDynamicsLookupTable::addConstructToMap, WindDynamicsLookupTable::addPrimitiveAssignFnsToMap, WindDynamicsLookupTable::addClassAssignFnsToMap, WindDynamicsLookupTable::debugName); } +std::map WindDynamicsLookupTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindDynamicsLookupTable_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindDynamicsLookupTable.hpp b/CGMES_2.4.15_27JAN2020/WindDynamicsLookupTable.hpp index 06d99ff11..71230cd72 100644 --- a/CGMES_2.4.15_27JAN2020/WindDynamicsLookupTable.hpp +++ b/CGMES_2.4.15_27JAN2020/WindDynamicsLookupTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "Simple_Float.hpp" #include "WindLookupTableFunctionKind.hpp" @@ -58,8 +59,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -67,7 +75,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindDynamicsLookupTable_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType1IEC.cpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType1IEC.cpp index 3b78fca73..dde7510e8 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType1IEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType1IEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType1IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType1IEC.WindAeroConstIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType1IEC::WindGenTurbineType1IEC() : WindAeroConstIEC(nullptr) {} WindGenTurbineType1IEC::~WindGenTurbineType1IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType1IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType1IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType1IEC.WindAeroConstIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType1IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType1IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType1IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType1IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType1IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType1IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType1IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindAeroConstIEC_WindGenTurbineType1IEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindGenTurbineType1IEC::debugString() const void WindGenTurbineType1IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType1IEC", &WindGenTurbineType1IEC_factory); + factory_map.emplace("WindGenTurbineType1IEC", &WindGenTurbineType1IEC_factory); } void WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType1IEC.WindAeroConstIEC", &assign_WindGenTurbineType1IEC_WindAeroConstIEC); + assign_map.emplace("WindGenTurbineType1IEC.WindAeroConstIEC", &assign_WindGenTurbineType1IEC_WindAeroConstIEC); } void WindGenTurbineType1IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindGenTurbineType1IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType1IEC.WindAeroConstIEC", &get_WindGenTurbineType1IEC_WindAeroConstIEC); + get_map.emplace("WindGenTurbineType1IEC.WindAeroConstIEC", &get_WindGenTurbineType1IEC_WindAeroConstIEC); } void WindGenTurbineType1IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindGenTurbineType1IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType1IEC::declare() { return BaseClassDefiner(WindGenTurbineType1IEC::addConstructToMap, WindGenTurbineType1IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType1IEC::addClassAssignFnsToMap, WindGenTurbineType1IEC::debugName); } +std::map WindGenTurbineType1IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType1IEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType1IEC.hpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType1IEC.hpp index d4e30e4cc..c469ff6f2 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType1IEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType1IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType1IEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType2IEC.cpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType2IEC.cpp index 145486473..f9a53cf20 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType2IEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType2IEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType2IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType2IEC.WindContRotorRIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType2IEC.WindPitchContEmulIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType2IEC::WindGenTurbineType2IEC() : WindContRotorRIEC(nullptr), WindPitchContEmulIEC(nullptr) {} WindGenTurbineType2IEC::~WindGenTurbineType2IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType2IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType2IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType2IEC.WindContRotorRIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType2IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType2IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType2IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType2IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType2IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType2IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType2IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContRotorRIEC_WindGenTurbineType2IEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindGenTurbineType2IEC::debugString() const void WindGenTurbineType2IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType2IEC", &WindGenTurbineType2IEC_factory); + factory_map.emplace("WindGenTurbineType2IEC", &WindGenTurbineType2IEC_factory); } void WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType2IEC.WindContRotorRIEC", &assign_WindGenTurbineType2IEC_WindContRotorRIEC); - assign_map.emplace("cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", &assign_WindGenTurbineType2IEC_WindPitchContEmulIEC); + assign_map.emplace("WindGenTurbineType2IEC.WindContRotorRIEC", &assign_WindGenTurbineType2IEC_WindContRotorRIEC); + assign_map.emplace("WindGenTurbineType2IEC.WindPitchContEmulIEC", &assign_WindGenTurbineType2IEC_WindPitchContEmulIEC); } void WindGenTurbineType2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindGenTurbineType2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType2IEC.WindContRotorRIEC", &get_WindGenTurbineType2IEC_WindContRotorRIEC); - get_map.emplace("cim:WindGenTurbineType2IEC.WindPitchContEmulIEC", &get_WindGenTurbineType2IEC_WindPitchContEmulIEC); + get_map.emplace("WindGenTurbineType2IEC.WindContRotorRIEC", &get_WindGenTurbineType2IEC_WindContRotorRIEC); + get_map.emplace("WindGenTurbineType2IEC.WindPitchContEmulIEC", &get_WindGenTurbineType2IEC_WindPitchContEmulIEC); } void WindGenTurbineType2IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindGenTurbineType2IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType2IEC::declare() { return BaseClassDefiner(WindGenTurbineType2IEC::addConstructToMap, WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType2IEC::addClassAssignFnsToMap, WindGenTurbineType2IEC::debugName); } +std::map WindGenTurbineType2IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType2IEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType2IEC.hpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType2IEC.hpp index 435504800..0a5c2d6ae 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType2IEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType2IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType2IEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3IEC.cpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3IEC.cpp index 06d7e4bf4..da9ae19ad 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3IEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3IEC.cpp @@ -15,37 +15,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3IEC.WindAeroLinearIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindContPType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindContPitchAngleIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.dipmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3IEC.diqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3IEC::WindGenTurbineType3IEC() : WindAeroLinearIEC(nullptr), WindContPType3IEC(nullptr), WindContPitchAngleIEC(nullptr), WindMechIEC(nullptr) {} WindGenTurbineType3IEC::~WindGenTurbineType3IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3IEC.WindAeroLinearIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindContPType3IEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.WindMechIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.dipmax", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3IEC.diqmax", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindAeroLinearIEC_WindGenTurbineType3IEC(BaseClass*, BaseClass*); @@ -238,37 +270,37 @@ const char* WindGenTurbineType3IEC::debugString() const void WindGenTurbineType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3IEC", &WindGenTurbineType3IEC_factory); + factory_map.emplace("WindGenTurbineType3IEC", &WindGenTurbineType3IEC_factory); } void WindGenTurbineType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3IEC.dipmax", &assign_WindGenTurbineType3IEC_dipmax); - assign_map.emplace("cim:WindGenTurbineType3IEC.diqmax", &assign_WindGenTurbineType3IEC_diqmax); + assign_map.emplace("WindGenTurbineType3IEC.dipmax", &assign_WindGenTurbineType3IEC_dipmax); + assign_map.emplace("WindGenTurbineType3IEC.diqmax", &assign_WindGenTurbineType3IEC_diqmax); } void WindGenTurbineType3IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3IEC.WindAeroLinearIEC", &assign_WindGenTurbineType3IEC_WindAeroLinearIEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindContPType3IEC", &assign_WindGenTurbineType3IEC_WindContPType3IEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", &assign_WindGenTurbineType3IEC_WindContPitchAngleIEC); - assign_map.emplace("cim:WindGenTurbineType3IEC.WindMechIEC", &assign_WindGenTurbineType3IEC_WindMechIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindAeroLinearIEC", &assign_WindGenTurbineType3IEC_WindAeroLinearIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindContPType3IEC", &assign_WindGenTurbineType3IEC_WindContPType3IEC); + assign_map.emplace("WindGenTurbineType3IEC.WindContPitchAngleIEC", &assign_WindGenTurbineType3IEC_WindContPitchAngleIEC); + assign_map.emplace("WindGenTurbineType3IEC.WindMechIEC", &assign_WindGenTurbineType3IEC_WindMechIEC); } void WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3IEC.dipmax", &get_WindGenTurbineType3IEC_dipmax); - get_map.emplace("cim:WindGenTurbineType3IEC.diqmax", &get_WindGenTurbineType3IEC_diqmax); + get_map.emplace("WindGenTurbineType3IEC.dipmax", &get_WindGenTurbineType3IEC_dipmax); + get_map.emplace("WindGenTurbineType3IEC.diqmax", &get_WindGenTurbineType3IEC_diqmax); } void WindGenTurbineType3IEC::addClassGetFnsToMap(std::map& get_map) const { WindTurbineType3or4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3IEC.WindAeroLinearIEC", &get_WindGenTurbineType3IEC_WindAeroLinearIEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindContPType3IEC", &get_WindGenTurbineType3IEC_WindContPType3IEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindContPitchAngleIEC", &get_WindGenTurbineType3IEC_WindContPitchAngleIEC); - get_map.emplace("cim:WindGenTurbineType3IEC.WindMechIEC", &get_WindGenTurbineType3IEC_WindMechIEC); + get_map.emplace("WindGenTurbineType3IEC.WindAeroLinearIEC", &get_WindGenTurbineType3IEC_WindAeroLinearIEC); + get_map.emplace("WindGenTurbineType3IEC.WindContPType3IEC", &get_WindGenTurbineType3IEC_WindContPType3IEC); + get_map.emplace("WindGenTurbineType3IEC.WindContPitchAngleIEC", &get_WindGenTurbineType3IEC_WindContPitchAngleIEC); + get_map.emplace("WindGenTurbineType3IEC.WindMechIEC", &get_WindGenTurbineType3IEC_WindMechIEC); } void WindGenTurbineType3IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -276,11 +308,25 @@ void WindGenTurbineType3IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3IEC::declare() { return BaseClassDefiner(WindGenTurbineType3IEC::addConstructToMap, WindGenTurbineType3IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3IEC::addClassAssignFnsToMap, WindGenTurbineType3IEC::debugName); } +std::map WindGenTurbineType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3IEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3IEC.hpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3IEC.hpp index f51005682..d3c7402cb 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3IEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3IEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3aIEC.cpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3aIEC.cpp index e72c76ed4..8056b7497 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3aIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3aIEC.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3aIEC.kpc", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3aIEC.tic", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3aIEC.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3aIEC::WindGenTurbineType3aIEC() {} WindGenTurbineType3aIEC::~WindGenTurbineType3aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3aIEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3aIEC.kpc", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3aIEC.tic", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3aIEC.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3aIEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3aIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenTurbineType3IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3aIEC_kpc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* WindGenTurbineType3aIEC::debugString() const void WindGenTurbineType3aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3aIEC", &WindGenTurbineType3aIEC_factory); + factory_map.emplace("WindGenTurbineType3aIEC", &WindGenTurbineType3aIEC_factory); } void WindGenTurbineType3aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3aIEC.kpc", &assign_WindGenTurbineType3aIEC_kpc); - assign_map.emplace("cim:WindGenTurbineType3aIEC.tic", &assign_WindGenTurbineType3aIEC_tic); - assign_map.emplace("cim:WindGenTurbineType3aIEC.xs", &assign_WindGenTurbineType3aIEC_xs); + assign_map.emplace("WindGenTurbineType3aIEC.kpc", &assign_WindGenTurbineType3aIEC_kpc); + assign_map.emplace("WindGenTurbineType3aIEC.tic", &assign_WindGenTurbineType3aIEC_tic); + assign_map.emplace("WindGenTurbineType3aIEC.xs", &assign_WindGenTurbineType3aIEC_xs); } void WindGenTurbineType3aIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void WindGenTurbineType3aIEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3aIEC.kpc", &get_WindGenTurbineType3aIEC_kpc); - get_map.emplace("cim:WindGenTurbineType3aIEC.tic", &get_WindGenTurbineType3aIEC_tic); - get_map.emplace("cim:WindGenTurbineType3aIEC.xs", &get_WindGenTurbineType3aIEC_xs); + get_map.emplace("WindGenTurbineType3aIEC.kpc", &get_WindGenTurbineType3aIEC_kpc); + get_map.emplace("WindGenTurbineType3aIEC.tic", &get_WindGenTurbineType3aIEC_tic); + get_map.emplace("WindGenTurbineType3aIEC.xs", &get_WindGenTurbineType3aIEC_xs); } void WindGenTurbineType3aIEC::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void WindGenTurbineType3aIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3aIEC::declare() { return BaseClassDefiner(WindGenTurbineType3aIEC::addConstructToMap, WindGenTurbineType3aIEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3aIEC::addClassAssignFnsToMap, WindGenTurbineType3aIEC::debugName); } +std::map WindGenTurbineType3aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenTurbineType3IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3aIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3aIEC.hpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3aIEC.hpp index 027ac9e1b..328515783 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3aIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenTurbineType3IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3aIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3bIEC.cpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3bIEC.cpp index bd7b7fba3..72cbd0d02 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3bIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3bIEC.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType3bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType3bIEC.fducw", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.mwtcwp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.two", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType3bIEC.xs", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType3bIEC::WindGenTurbineType3bIEC() {} WindGenTurbineType3bIEC::~WindGenTurbineType3bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType3bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType3bIEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType3bIEC.fducw", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.mwtcwp", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.tg", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.two", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType3bIEC.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType3bIEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType3bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType3bIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType3bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenTurbineType3IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType3bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType3bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType3bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3bIEC_fducw(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* WindGenTurbineType3bIEC::debugString() const void WindGenTurbineType3bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType3bIEC", &WindGenTurbineType3bIEC_factory); + factory_map.emplace("WindGenTurbineType3bIEC", &WindGenTurbineType3bIEC_factory); } void WindGenTurbineType3bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType3bIEC.fducw", &assign_WindGenTurbineType3bIEC_fducw); - assign_map.emplace("cim:WindGenTurbineType3bIEC.mwtcwp", &assign_WindGenTurbineType3bIEC_mwtcwp); - assign_map.emplace("cim:WindGenTurbineType3bIEC.tg", &assign_WindGenTurbineType3bIEC_tg); - assign_map.emplace("cim:WindGenTurbineType3bIEC.two", &assign_WindGenTurbineType3bIEC_two); - assign_map.emplace("cim:WindGenTurbineType3bIEC.xs", &assign_WindGenTurbineType3bIEC_xs); + assign_map.emplace("WindGenTurbineType3bIEC.fducw", &assign_WindGenTurbineType3bIEC_fducw); + assign_map.emplace("WindGenTurbineType3bIEC.mwtcwp", &assign_WindGenTurbineType3bIEC_mwtcwp); + assign_map.emplace("WindGenTurbineType3bIEC.tg", &assign_WindGenTurbineType3bIEC_tg); + assign_map.emplace("WindGenTurbineType3bIEC.two", &assign_WindGenTurbineType3bIEC_two); + assign_map.emplace("WindGenTurbineType3bIEC.xs", &assign_WindGenTurbineType3bIEC_xs); } void WindGenTurbineType3bIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void WindGenTurbineType3bIEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindGenTurbineType3IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType3bIEC.fducw", &get_WindGenTurbineType3bIEC_fducw); - get_map.emplace("cim:WindGenTurbineType3bIEC.mwtcwp", &get_WindGenTurbineType3bIEC_mwtcwp); - get_map.emplace("cim:WindGenTurbineType3bIEC.tg", &get_WindGenTurbineType3bIEC_tg); - get_map.emplace("cim:WindGenTurbineType3bIEC.two", &get_WindGenTurbineType3bIEC_two); - get_map.emplace("cim:WindGenTurbineType3bIEC.xs", &get_WindGenTurbineType3bIEC_xs); + get_map.emplace("WindGenTurbineType3bIEC.fducw", &get_WindGenTurbineType3bIEC_fducw); + get_map.emplace("WindGenTurbineType3bIEC.mwtcwp", &get_WindGenTurbineType3bIEC_mwtcwp); + get_map.emplace("WindGenTurbineType3bIEC.tg", &get_WindGenTurbineType3bIEC_tg); + get_map.emplace("WindGenTurbineType3bIEC.two", &get_WindGenTurbineType3bIEC_two); + get_map.emplace("WindGenTurbineType3bIEC.xs", &get_WindGenTurbineType3bIEC_xs); } void WindGenTurbineType3bIEC::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void WindGenTurbineType3bIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType3bIEC::declare() { return BaseClassDefiner(WindGenTurbineType3bIEC::addConstructToMap, WindGenTurbineType3bIEC::addPrimitiveAssignFnsToMap, WindGenTurbineType3bIEC::addClassAssignFnsToMap, WindGenTurbineType3bIEC::debugName); } +std::map WindGenTurbineType3bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenTurbineType3IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType3bIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3bIEC.hpp b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3bIEC.hpp index 37a684772..1b188e7bd 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenTurbineType3bIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindGenTurbineType3bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenTurbineType3IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType3bIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindGenType4IEC.cpp b/CGMES_2.4.15_27JAN2020/WindGenType4IEC.cpp index 103b066bf..241babd14 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenType4IEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindGenType4IEC.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenType4IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenType4IEC.dipmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.diqmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.diqmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.tg", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenType4IEC::WindGenType4IEC() {} WindGenType4IEC::~WindGenType4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenType4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenType4IEC::getClassNamespaceUrl() const { - { "cim:WindGenType4IEC.dipmax", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.diqmax", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.diqmin", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.tg", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenType4IEC::getPossibleProfilesForClass() const +const std::string& WindGenType4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenType4IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenType4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenType4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenType4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenType4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenType4IEC_dipmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* WindGenType4IEC::debugString() const void WindGenType4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenType4IEC", &WindGenType4IEC_factory); + factory_map.emplace("WindGenType4IEC", &WindGenType4IEC_factory); } void WindGenType4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType4IEC.dipmax", &assign_WindGenType4IEC_dipmax); - assign_map.emplace("cim:WindGenType4IEC.diqmax", &assign_WindGenType4IEC_diqmax); - assign_map.emplace("cim:WindGenType4IEC.diqmin", &assign_WindGenType4IEC_diqmin); - assign_map.emplace("cim:WindGenType4IEC.tg", &assign_WindGenType4IEC_tg); + assign_map.emplace("WindGenType4IEC.dipmax", &assign_WindGenType4IEC_dipmax); + assign_map.emplace("WindGenType4IEC.diqmax", &assign_WindGenType4IEC_diqmax); + assign_map.emplace("WindGenType4IEC.diqmin", &assign_WindGenType4IEC_diqmin); + assign_map.emplace("WindGenType4IEC.tg", &assign_WindGenType4IEC_tg); } void WindGenType4IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void WindGenType4IEC::addClassAssignFnsToMap(std::unordered_map& get_map) const { WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenType4IEC.dipmax", &get_WindGenType4IEC_dipmax); - get_map.emplace("cim:WindGenType4IEC.diqmax", &get_WindGenType4IEC_diqmax); - get_map.emplace("cim:WindGenType4IEC.diqmin", &get_WindGenType4IEC_diqmin); - get_map.emplace("cim:WindGenType4IEC.tg", &get_WindGenType4IEC_tg); + get_map.emplace("WindGenType4IEC.dipmax", &get_WindGenType4IEC_dipmax); + get_map.emplace("WindGenType4IEC.diqmax", &get_WindGenType4IEC_diqmax); + get_map.emplace("WindGenType4IEC.diqmin", &get_WindGenType4IEC_diqmin); + get_map.emplace("WindGenType4IEC.tg", &get_WindGenType4IEC_tg); } void WindGenType4IEC::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void WindGenType4IEC::addEnumGetFnsToMap(std::map& ge WindTurbineType3or4IEC::addEnumGetFnsToMap(get_map); } +bool WindGenType4IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGenType4IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindGenType4IEC::declare() { return BaseClassDefiner(WindGenType4IEC::addConstructToMap, WindGenType4IEC::addPrimitiveAssignFnsToMap, WindGenType4IEC::addClassAssignFnsToMap, WindGenType4IEC::debugName); } +std::map WindGenType4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenType4IEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindGenType4IEC.hpp b/CGMES_2.4.15_27JAN2020/WindGenType4IEC.hpp index f76748389..7692b857f 100644 --- a/CGMES_2.4.15_27JAN2020/WindGenType4IEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindGenType4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenType4IEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindGeneratingUnit.cpp b/CGMES_2.4.15_27JAN2020/WindGeneratingUnit.cpp index d2764afc7..b9e3c8117 100644 --- a/CGMES_2.4.15_27JAN2020/WindGeneratingUnit.cpp +++ b/CGMES_2.4.15_27JAN2020/WindGeneratingUnit.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGeneratingUnit(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGeneratingUnit.windGenUnitType", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + WindGeneratingUnit::WindGeneratingUnit() {} WindGeneratingUnit::~WindGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGeneratingUnit::getClassNamespaceUrl() const { - { "cim:WindGeneratingUnit.windGenUnitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGeneratingUnit::getPossibleProfilesForClass() const +const std::string& WindGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& WindGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGeneratingUnit_windGenUnitType(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* WindGeneratingUnit::debugString() const void WindGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGeneratingUnit", &WindGeneratingUnit_factory); + factory_map.emplace("WindGeneratingUnit", &WindGeneratingUnit_factory); } void WindGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGeneratingUnit.windGenUnitType", &assign_WindGeneratingUnit_windGenUnitType); + assign_map.emplace("WindGeneratingUnit.windGenUnitType", &assign_WindGeneratingUnit_windGenUnitType); } void WindGeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -102,7 +134,13 @@ void WindGeneratingUnit::addClassGetFnsToMap(std::map& get_map) const { GeneratingUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindGeneratingUnit.windGenUnitType", &get_WindGeneratingUnit_windGenUnitType); + get_map.emplace("WindGeneratingUnit.windGenUnitType", &get_WindGeneratingUnit_windGenUnitType); +} + +bool WindGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindGeneratingUnit::declare() @@ -110,6 +148,14 @@ const BaseClassDefiner WindGeneratingUnit::declare() return BaseClassDefiner(WindGeneratingUnit::addConstructToMap, WindGeneratingUnit::addPrimitiveAssignFnsToMap, WindGeneratingUnit::addClassAssignFnsToMap, WindGeneratingUnit::debugName); } +std::map WindGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGeneratingUnit_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindGeneratingUnit.hpp b/CGMES_2.4.15_27JAN2020/WindGeneratingUnit.hpp index d6f2ffd7f..c69fb48e7 100644 --- a/CGMES_2.4.15_27JAN2020/WindGeneratingUnit.hpp +++ b/CGMES_2.4.15_27JAN2020/WindGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "WindGenUnitKind.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGeneratingUnit_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindMechIEC.cpp b/CGMES_2.4.15_27JAN2020/WindMechIEC.cpp index 358889264..7cf7cdaae 100644 --- a/CGMES_2.4.15_27JAN2020/WindMechIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindMechIEC.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindMechIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindMechIEC.WindGenTurbineType3IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.WindTurbineType1or2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.cdrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.hgen", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.hwtr", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindMechIEC.kdrt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindMechIEC::WindMechIEC() : WindGenTurbineType3IEC(nullptr), WindTurbineType1or2IEC(nullptr), WindTurbineType4bIEC(nullptr) {} WindMechIEC::~WindMechIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindMechIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindMechIEC::getClassNamespaceUrl() const { - { "cim:WindMechIEC.WindGenTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.WindTurbineType1or2IEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.cdrt", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.hgen", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.hwtr", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.kdrt", { CGMESProfile::DY, } }, -}; - -std::list -WindMechIEC::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindMechIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindMechIEC::getPossibleProfilesForAttributes() const +const std::list& WindMechIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindMechIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindMechIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindMechIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType3IEC_WindMechIEC(BaseClass*, BaseClass*); @@ -226,31 +258,31 @@ const char* WindMechIEC::debugString() const void WindMechIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindMechIEC", &WindMechIEC_factory); + factory_map.emplace("WindMechIEC", &WindMechIEC_factory); } void WindMechIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindMechIEC.cdrt", &assign_WindMechIEC_cdrt); - assign_map.emplace("cim:WindMechIEC.hgen", &assign_WindMechIEC_hgen); - assign_map.emplace("cim:WindMechIEC.hwtr", &assign_WindMechIEC_hwtr); - assign_map.emplace("cim:WindMechIEC.kdrt", &assign_WindMechIEC_kdrt); + assign_map.emplace("WindMechIEC.cdrt", &assign_WindMechIEC_cdrt); + assign_map.emplace("WindMechIEC.hgen", &assign_WindMechIEC_hgen); + assign_map.emplace("WindMechIEC.hwtr", &assign_WindMechIEC_hwtr); + assign_map.emplace("WindMechIEC.kdrt", &assign_WindMechIEC_kdrt); } void WindMechIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindMechIEC.WindGenTurbineType3IEC", &assign_WindMechIEC_WindGenTurbineType3IEC); - assign_map.emplace("cim:WindMechIEC.WindTurbineType1or2IEC", &assign_WindMechIEC_WindTurbineType1or2IEC); - assign_map.emplace("cim:WindMechIEC.WindTurbineType4bIEC", &assign_WindMechIEC_WindTurbineType4bIEC); + assign_map.emplace("WindMechIEC.WindGenTurbineType3IEC", &assign_WindMechIEC_WindGenTurbineType3IEC); + assign_map.emplace("WindMechIEC.WindTurbineType1or2IEC", &assign_WindMechIEC_WindTurbineType1or2IEC); + assign_map.emplace("WindMechIEC.WindTurbineType4bIEC", &assign_WindMechIEC_WindTurbineType4bIEC); } void WindMechIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindMechIEC.cdrt", &get_WindMechIEC_cdrt); - get_map.emplace("cim:WindMechIEC.hgen", &get_WindMechIEC_hgen); - get_map.emplace("cim:WindMechIEC.hwtr", &get_WindMechIEC_hwtr); - get_map.emplace("cim:WindMechIEC.kdrt", &get_WindMechIEC_kdrt); + get_map.emplace("WindMechIEC.cdrt", &get_WindMechIEC_cdrt); + get_map.emplace("WindMechIEC.hgen", &get_WindMechIEC_hgen); + get_map.emplace("WindMechIEC.hwtr", &get_WindMechIEC_hwtr); + get_map.emplace("WindMechIEC.kdrt", &get_WindMechIEC_kdrt); } void WindMechIEC::addClassGetFnsToMap(std::map& get_map) const @@ -263,11 +295,25 @@ void WindMechIEC::addEnumGetFnsToMap(std::map& get_ma IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindMechIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindMechIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindMechIEC::declare() { return BaseClassDefiner(WindMechIEC::addConstructToMap, WindMechIEC::addPrimitiveAssignFnsToMap, WindMechIEC::addClassAssignFnsToMap, WindMechIEC::debugName); } +std::map WindMechIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindMechIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindMechIEC.hpp b/CGMES_2.4.15_27JAN2020/WindMechIEC.hpp index 59019c1ae..5c7e6f3ee 100644 --- a/CGMES_2.4.15_27JAN2020/WindMechIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindMechIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindMechIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindPitchContEmulIEC.cpp b/CGMES_2.4.15_27JAN2020/WindPitchContEmulIEC.cpp index c78632e74..5f607c3fb 100644 --- a/CGMES_2.4.15_27JAN2020/WindPitchContEmulIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindPitchContEmulIEC.cpp @@ -12,42 +12,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPitchContEmulIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPitchContEmulIEC.WindGenTurbineType2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kdroop", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kipce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.komegaaero", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.kppce", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.omegaref", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.pimax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.pimin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.t1", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.t2", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPitchContEmulIEC.tpe", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPitchContEmulIEC::WindPitchContEmulIEC() : WindGenTurbineType2IEC(nullptr) {} WindPitchContEmulIEC::~WindPitchContEmulIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPitchContEmulIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPitchContEmulIEC::getClassNamespaceUrl() const { - { "cim:WindPitchContEmulIEC.WindGenTurbineType2IEC", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kdroop", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kipce", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.komegaaero", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.kppce", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.omegaref", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.pimax", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.pimin", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.t1", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.t2", { CGMESProfile::DY, } }, - { "cim:WindPitchContEmulIEC.tpe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPitchContEmulIEC::getPossibleProfilesForClass() const +const std::string& WindPitchContEmulIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPitchContEmulIEC::getPossibleProfilesForAttributes() const +const std::list& WindPitchContEmulIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPitchContEmulIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPitchContEmulIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPitchContEmulIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType2IEC_WindPitchContEmulIEC(BaseClass*, BaseClass*); @@ -366,41 +398,41 @@ const char* WindPitchContEmulIEC::debugString() const void WindPitchContEmulIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPitchContEmulIEC", &WindPitchContEmulIEC_factory); + factory_map.emplace("WindPitchContEmulIEC", &WindPitchContEmulIEC_factory); } void WindPitchContEmulIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPitchContEmulIEC.kdroop", &assign_WindPitchContEmulIEC_kdroop); - assign_map.emplace("cim:WindPitchContEmulIEC.kipce", &assign_WindPitchContEmulIEC_kipce); - assign_map.emplace("cim:WindPitchContEmulIEC.komegaaero", &assign_WindPitchContEmulIEC_komegaaero); - assign_map.emplace("cim:WindPitchContEmulIEC.kppce", &assign_WindPitchContEmulIEC_kppce); - assign_map.emplace("cim:WindPitchContEmulIEC.omegaref", &assign_WindPitchContEmulIEC_omegaref); - assign_map.emplace("cim:WindPitchContEmulIEC.pimax", &assign_WindPitchContEmulIEC_pimax); - assign_map.emplace("cim:WindPitchContEmulIEC.pimin", &assign_WindPitchContEmulIEC_pimin); - assign_map.emplace("cim:WindPitchContEmulIEC.t1", &assign_WindPitchContEmulIEC_t1); - assign_map.emplace("cim:WindPitchContEmulIEC.t2", &assign_WindPitchContEmulIEC_t2); - assign_map.emplace("cim:WindPitchContEmulIEC.tpe", &assign_WindPitchContEmulIEC_tpe); + assign_map.emplace("WindPitchContEmulIEC.kdroop", &assign_WindPitchContEmulIEC_kdroop); + assign_map.emplace("WindPitchContEmulIEC.kipce", &assign_WindPitchContEmulIEC_kipce); + assign_map.emplace("WindPitchContEmulIEC.komegaaero", &assign_WindPitchContEmulIEC_komegaaero); + assign_map.emplace("WindPitchContEmulIEC.kppce", &assign_WindPitchContEmulIEC_kppce); + assign_map.emplace("WindPitchContEmulIEC.omegaref", &assign_WindPitchContEmulIEC_omegaref); + assign_map.emplace("WindPitchContEmulIEC.pimax", &assign_WindPitchContEmulIEC_pimax); + assign_map.emplace("WindPitchContEmulIEC.pimin", &assign_WindPitchContEmulIEC_pimin); + assign_map.emplace("WindPitchContEmulIEC.t1", &assign_WindPitchContEmulIEC_t1); + assign_map.emplace("WindPitchContEmulIEC.t2", &assign_WindPitchContEmulIEC_t2); + assign_map.emplace("WindPitchContEmulIEC.tpe", &assign_WindPitchContEmulIEC_tpe); } void WindPitchContEmulIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPitchContEmulIEC.WindGenTurbineType2IEC", &assign_WindPitchContEmulIEC_WindGenTurbineType2IEC); + assign_map.emplace("WindPitchContEmulIEC.WindGenTurbineType2IEC", &assign_WindPitchContEmulIEC_WindGenTurbineType2IEC); } void WindPitchContEmulIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPitchContEmulIEC.kdroop", &get_WindPitchContEmulIEC_kdroop); - get_map.emplace("cim:WindPitchContEmulIEC.kipce", &get_WindPitchContEmulIEC_kipce); - get_map.emplace("cim:WindPitchContEmulIEC.komegaaero", &get_WindPitchContEmulIEC_komegaaero); - get_map.emplace("cim:WindPitchContEmulIEC.kppce", &get_WindPitchContEmulIEC_kppce); - get_map.emplace("cim:WindPitchContEmulIEC.omegaref", &get_WindPitchContEmulIEC_omegaref); - get_map.emplace("cim:WindPitchContEmulIEC.pimax", &get_WindPitchContEmulIEC_pimax); - get_map.emplace("cim:WindPitchContEmulIEC.pimin", &get_WindPitchContEmulIEC_pimin); - get_map.emplace("cim:WindPitchContEmulIEC.t1", &get_WindPitchContEmulIEC_t1); - get_map.emplace("cim:WindPitchContEmulIEC.t2", &get_WindPitchContEmulIEC_t2); - get_map.emplace("cim:WindPitchContEmulIEC.tpe", &get_WindPitchContEmulIEC_tpe); + get_map.emplace("WindPitchContEmulIEC.kdroop", &get_WindPitchContEmulIEC_kdroop); + get_map.emplace("WindPitchContEmulIEC.kipce", &get_WindPitchContEmulIEC_kipce); + get_map.emplace("WindPitchContEmulIEC.komegaaero", &get_WindPitchContEmulIEC_komegaaero); + get_map.emplace("WindPitchContEmulIEC.kppce", &get_WindPitchContEmulIEC_kppce); + get_map.emplace("WindPitchContEmulIEC.omegaref", &get_WindPitchContEmulIEC_omegaref); + get_map.emplace("WindPitchContEmulIEC.pimax", &get_WindPitchContEmulIEC_pimax); + get_map.emplace("WindPitchContEmulIEC.pimin", &get_WindPitchContEmulIEC_pimin); + get_map.emplace("WindPitchContEmulIEC.t1", &get_WindPitchContEmulIEC_t1); + get_map.emplace("WindPitchContEmulIEC.t2", &get_WindPitchContEmulIEC_t2); + get_map.emplace("WindPitchContEmulIEC.tpe", &get_WindPitchContEmulIEC_tpe); } void WindPitchContEmulIEC::addClassGetFnsToMap(std::map& get_map) const @@ -413,11 +445,25 @@ void WindPitchContEmulIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPitchContEmulIEC::declare() { return BaseClassDefiner(WindPitchContEmulIEC::addConstructToMap, WindPitchContEmulIEC::addPrimitiveAssignFnsToMap, WindPitchContEmulIEC::addClassAssignFnsToMap, WindPitchContEmulIEC::debugName); } +std::map WindPitchContEmulIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPitchContEmulIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindPitchContEmulIEC.hpp b/CGMES_2.4.15_27JAN2020/WindPitchContEmulIEC.hpp index dcdefc9bb..a6fccbc9e 100644 --- a/CGMES_2.4.15_27JAN2020/WindPitchContEmulIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindPitchContEmulIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -64,8 +65,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -73,7 +81,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPitchContEmulIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindPlantDynamics.cpp b/CGMES_2.4.15_27JAN2020/WindPlantDynamics.cpp index c89fc1bb8..311a379e3 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantDynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantDynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantDynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantDynamics.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantDynamics::WindPlantDynamics() : RemoteInputSignal(nullptr) {} WindPlantDynamics::~WindPlantDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantDynamics::getClassNamespaceUrl() const { - { "cim:WindPlantDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:WindPlantDynamics.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantDynamics::getPossibleProfilesForClass() const +const std::string& WindPlantDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantDynamics::getPossibleProfilesForAttributes() const +const std::list& WindPlantDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RemoteInputSignal_WindPlantDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* WindPlantDynamics::debugString() const void WindPlantDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantDynamics", &WindPlantDynamics_factory); + factory_map.emplace("WindPlantDynamics", &WindPlantDynamics_factory); } void WindPlantDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void WindPlantDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantDynamics.RemoteInputSignal", &assign_WindPlantDynamics_RemoteInputSignal); - assign_map.emplace("cim:WindPlantDynamics.WindTurbineType3or4Dynamics", &assign_WindPlantDynamics_WindTurbineType3or4Dynamics); + assign_map.emplace("WindPlantDynamics.RemoteInputSignal", &assign_WindPlantDynamics_RemoteInputSignal); + assign_map.emplace("WindPlantDynamics.WindTurbineType3or4Dynamics", &assign_WindPlantDynamics_WindTurbineType3or4Dynamics); } void WindPlantDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void WindPlantDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantDynamics.RemoteInputSignal", &get_WindPlantDynamics_RemoteInputSignal); + get_map.emplace("WindPlantDynamics.RemoteInputSignal", &get_WindPlantDynamics_RemoteInputSignal); } void WindPlantDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void WindPlantDynamics::addEnumGetFnsToMap(std::map& DynamicsFunctionBlock::addEnumGetFnsToMap(get_map); } +bool WindPlantDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantDynamics::declare() { return BaseClassDefiner(WindPlantDynamics::addConstructToMap, WindPlantDynamics::addPrimitiveAssignFnsToMap, WindPlantDynamics::addClassAssignFnsToMap, WindPlantDynamics::debugName); } +std::map WindPlantDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantDynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindPlantDynamics.hpp b/CGMES_2.4.15_27JAN2020/WindPlantDynamics.hpp index 0b8314fc3..444cfe5c0 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantDynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantDynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindPlantFreqPcontrolIEC.cpp b/CGMES_2.4.15_27JAN2020/WindPlantFreqPcontrolIEC.cpp index f21322dd3..feb127f01 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantFreqPcontrolIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantFreqPcontrolIEC.cpp @@ -13,43 +13,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantFreqPcontrolIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.WindPlantIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dprefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dprefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kiwpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kpwpp", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.prefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.prefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.tpft", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.tpfv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.twpffilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.twppfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantFreqPcontrolIEC::WindPlantFreqPcontrolIEC() : WindPlantIEC(nullptr) {} WindPlantFreqPcontrolIEC::~WindPlantFreqPcontrolIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantFreqPcontrolIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantFreqPcontrolIEC::getClassNamespaceUrl() const { - { "cim:WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.WindPlantIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dprefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dprefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kiwpp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kpwpp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.prefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.prefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.tpft", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.tpfv", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.twpffilt", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.twppfilt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantFreqPcontrolIEC::getPossibleProfilesForClass() const +const std::string& WindPlantFreqPcontrolIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantFreqPcontrolIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantFreqPcontrolIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantFreqPcontrolIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantFreqPcontrolIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantFreqPcontrolIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC(BaseClass*, BaseClass*); @@ -386,42 +418,42 @@ const char* WindPlantFreqPcontrolIEC::debugString() const void WindPlantFreqPcontrolIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantFreqPcontrolIEC", &WindPlantFreqPcontrolIEC_factory); + factory_map.emplace("WindPlantFreqPcontrolIEC", &WindPlantFreqPcontrolIEC_factory); } void WindPlantFreqPcontrolIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmax", &assign_WindPlantFreqPcontrolIEC_dprefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmin", &assign_WindPlantFreqPcontrolIEC_dprefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwpp", &assign_WindPlantFreqPcontrolIEC_kiwpp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kpwpp", &assign_WindPlantFreqPcontrolIEC_kpwpp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmax", &assign_WindPlantFreqPcontrolIEC_prefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmin", &assign_WindPlantFreqPcontrolIEC_prefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.tpft", &assign_WindPlantFreqPcontrolIEC_tpft); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.tpfv", &assign_WindPlantFreqPcontrolIEC_tpfv); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.twpffilt", &assign_WindPlantFreqPcontrolIEC_twpffilt); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.twppfilt", &assign_WindPlantFreqPcontrolIEC_twppfilt); + assign_map.emplace("WindPlantFreqPcontrolIEC.dprefmax", &assign_WindPlantFreqPcontrolIEC_dprefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.dprefmin", &assign_WindPlantFreqPcontrolIEC_dprefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.kiwpp", &assign_WindPlantFreqPcontrolIEC_kiwpp); + assign_map.emplace("WindPlantFreqPcontrolIEC.kpwpp", &assign_WindPlantFreqPcontrolIEC_kpwpp); + assign_map.emplace("WindPlantFreqPcontrolIEC.prefmax", &assign_WindPlantFreqPcontrolIEC_prefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.prefmin", &assign_WindPlantFreqPcontrolIEC_prefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.tpft", &assign_WindPlantFreqPcontrolIEC_tpft); + assign_map.emplace("WindPlantFreqPcontrolIEC.tpfv", &assign_WindPlantFreqPcontrolIEC_tpfv); + assign_map.emplace("WindPlantFreqPcontrolIEC.twpffilt", &assign_WindPlantFreqPcontrolIEC_twpffilt); + assign_map.emplace("WindPlantFreqPcontrolIEC.twppfilt", &assign_WindPlantFreqPcontrolIEC_twppfilt); } void WindPlantFreqPcontrolIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", &assign_WindPlantFreqPcontrolIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.WindPlantIEC", &assign_WindPlantFreqPcontrolIEC_WindPlantIEC); + assign_map.emplace("WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", &assign_WindPlantFreqPcontrolIEC_WindDynamicsLookupTable); + assign_map.emplace("WindPlantFreqPcontrolIEC.WindPlantIEC", &assign_WindPlantFreqPcontrolIEC_WindPlantIEC); } void WindPlantFreqPcontrolIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmax", &get_WindPlantFreqPcontrolIEC_dprefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmin", &get_WindPlantFreqPcontrolIEC_dprefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwpp", &get_WindPlantFreqPcontrolIEC_kiwpp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kpwpp", &get_WindPlantFreqPcontrolIEC_kpwpp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmax", &get_WindPlantFreqPcontrolIEC_prefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmin", &get_WindPlantFreqPcontrolIEC_prefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.tpft", &get_WindPlantFreqPcontrolIEC_tpft); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.tpfv", &get_WindPlantFreqPcontrolIEC_tpfv); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.twpffilt", &get_WindPlantFreqPcontrolIEC_twpffilt); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.twppfilt", &get_WindPlantFreqPcontrolIEC_twppfilt); + get_map.emplace("WindPlantFreqPcontrolIEC.dprefmax", &get_WindPlantFreqPcontrolIEC_dprefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.dprefmin", &get_WindPlantFreqPcontrolIEC_dprefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.kiwpp", &get_WindPlantFreqPcontrolIEC_kiwpp); + get_map.emplace("WindPlantFreqPcontrolIEC.kpwpp", &get_WindPlantFreqPcontrolIEC_kpwpp); + get_map.emplace("WindPlantFreqPcontrolIEC.prefmax", &get_WindPlantFreqPcontrolIEC_prefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.prefmin", &get_WindPlantFreqPcontrolIEC_prefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.tpft", &get_WindPlantFreqPcontrolIEC_tpft); + get_map.emplace("WindPlantFreqPcontrolIEC.tpfv", &get_WindPlantFreqPcontrolIEC_tpfv); + get_map.emplace("WindPlantFreqPcontrolIEC.twpffilt", &get_WindPlantFreqPcontrolIEC_twpffilt); + get_map.emplace("WindPlantFreqPcontrolIEC.twppfilt", &get_WindPlantFreqPcontrolIEC_twppfilt); } void WindPlantFreqPcontrolIEC::addClassGetFnsToMap(std::map& get_map) const @@ -434,11 +466,25 @@ void WindPlantFreqPcontrolIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantFreqPcontrolIEC::declare() { return BaseClassDefiner(WindPlantFreqPcontrolIEC::addConstructToMap, WindPlantFreqPcontrolIEC::addPrimitiveAssignFnsToMap, WindPlantFreqPcontrolIEC::addClassAssignFnsToMap, WindPlantFreqPcontrolIEC::debugName); } +std::map WindPlantFreqPcontrolIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantFreqPcontrolIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindPlantFreqPcontrolIEC.hpp b/CGMES_2.4.15_27JAN2020/WindPlantFreqPcontrolIEC.hpp index 069d958c9..623773754 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantFreqPcontrolIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantFreqPcontrolIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "Simple_Float.hpp" @@ -68,8 +69,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -77,7 +85,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantFreqPcontrolIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindPlantIEC.cpp b/CGMES_2.4.15_27JAN2020/WindPlantIEC.cpp index b455a5284..ad2bfe277 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantIEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantIEC.WindPlantFreqPcontrolIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantIEC.WindPlantReactiveControlIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantIEC::WindPlantIEC() : WindPlantFreqPcontrolIEC(nullptr), WindPlantReactiveControlIEC(nullptr) {} WindPlantIEC::~WindPlantIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantIEC::getClassNamespaceUrl() const { - { "cim:WindPlantIEC.WindPlantFreqPcontrolIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantIEC.WindPlantReactiveControlIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantIEC::getPossibleProfilesForClass() const +const std::string& WindPlantIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindPlantDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPlantFreqPcontrolIEC_WindPlantIEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindPlantIEC::debugString() const void WindPlantIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantIEC", &WindPlantIEC_factory); + factory_map.emplace("WindPlantIEC", &WindPlantIEC_factory); } void WindPlantIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindPlantIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantIEC.WindPlantFreqPcontrolIEC", &assign_WindPlantIEC_WindPlantFreqPcontrolIEC); - assign_map.emplace("cim:WindPlantIEC.WindPlantReactiveControlIEC", &assign_WindPlantIEC_WindPlantReactiveControlIEC); + assign_map.emplace("WindPlantIEC.WindPlantFreqPcontrolIEC", &assign_WindPlantIEC_WindPlantFreqPcontrolIEC); + assign_map.emplace("WindPlantIEC.WindPlantReactiveControlIEC", &assign_WindPlantIEC_WindPlantReactiveControlIEC); } void WindPlantIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindPlantIEC::addPrimitiveGetFnsToMap(std::map& void WindPlantIEC::addClassGetFnsToMap(std::map& get_map) const { WindPlantDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantIEC.WindPlantFreqPcontrolIEC", &get_WindPlantIEC_WindPlantFreqPcontrolIEC); - get_map.emplace("cim:WindPlantIEC.WindPlantReactiveControlIEC", &get_WindPlantIEC_WindPlantReactiveControlIEC); + get_map.emplace("WindPlantIEC.WindPlantFreqPcontrolIEC", &get_WindPlantIEC_WindPlantFreqPcontrolIEC); + get_map.emplace("WindPlantIEC.WindPlantReactiveControlIEC", &get_WindPlantIEC_WindPlantReactiveControlIEC); } void WindPlantIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindPlantIEC::addEnumGetFnsToMap(std::map& get_m WindPlantDynamics::addEnumGetFnsToMap(get_map); } +bool WindPlantIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantIEC::declare() { return BaseClassDefiner(WindPlantIEC::addConstructToMap, WindPlantIEC::addPrimitiveAssignFnsToMap, WindPlantIEC::addClassAssignFnsToMap, WindPlantIEC::debugName); } +std::map WindPlantIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindPlantDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindPlantIEC.hpp b/CGMES_2.4.15_27JAN2020/WindPlantIEC.hpp index 8f277cafa..6809f8d09 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindPlantDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindPlantReactiveControlIEC.cpp b/CGMES_2.4.15_27JAN2020/WindPlantReactiveControlIEC.cpp index 8135d692c..05730f33a 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantReactiveControlIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantReactiveControlIEC.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantReactiveControlIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantReactiveControlIEC.WindPlantIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kiwpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kpwpx", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kwpqu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.mwppf", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.mwpu", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twppfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twpqfilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twpufilt", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.txft", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.txfv", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.uwpqdip", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.xrefmax", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.xrefmin", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantReactiveControlIEC::WindPlantReactiveControlIEC() : WindPlantIEC(nullptr) {} WindPlantReactiveControlIEC::~WindPlantReactiveControlIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantReactiveControlIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantReactiveControlIEC::getClassNamespaceUrl() const { - { "cim:WindPlantReactiveControlIEC.WindPlantIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kiwpx", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kpwpx", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kwpqu", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.mwppf", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.mwpu", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twppfilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twpqfilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twpufilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.txft", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.txfv", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.uwpqdip", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.xrefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.xrefmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantReactiveControlIEC::getPossibleProfilesForClass() const +const std::string& WindPlantReactiveControlIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantReactiveControlIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantReactiveControlIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantReactiveControlIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantReactiveControlIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantReactiveControlIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPlantIEC_WindPlantReactiveControlIEC(BaseClass*, BaseClass*); @@ -456,47 +488,47 @@ const char* WindPlantReactiveControlIEC::debugString() const void WindPlantReactiveControlIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantReactiveControlIEC", &WindPlantReactiveControlIEC_factory); + factory_map.emplace("WindPlantReactiveControlIEC", &WindPlantReactiveControlIEC_factory); } void WindPlantReactiveControlIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantReactiveControlIEC.kiwpx", &assign_WindPlantReactiveControlIEC_kiwpx); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kpwpx", &assign_WindPlantReactiveControlIEC_kpwpx); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kwpqu", &assign_WindPlantReactiveControlIEC_kwpqu); - assign_map.emplace("cim:WindPlantReactiveControlIEC.mwppf", &assign_WindPlantReactiveControlIEC_mwppf); - assign_map.emplace("cim:WindPlantReactiveControlIEC.mwpu", &assign_WindPlantReactiveControlIEC_mwpu); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twppfilt", &assign_WindPlantReactiveControlIEC_twppfilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twpqfilt", &assign_WindPlantReactiveControlIEC_twpqfilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twpufilt", &assign_WindPlantReactiveControlIEC_twpufilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.txft", &assign_WindPlantReactiveControlIEC_txft); - assign_map.emplace("cim:WindPlantReactiveControlIEC.txfv", &assign_WindPlantReactiveControlIEC_txfv); - assign_map.emplace("cim:WindPlantReactiveControlIEC.uwpqdip", &assign_WindPlantReactiveControlIEC_uwpqdip); - assign_map.emplace("cim:WindPlantReactiveControlIEC.xrefmax", &assign_WindPlantReactiveControlIEC_xrefmax); - assign_map.emplace("cim:WindPlantReactiveControlIEC.xrefmin", &assign_WindPlantReactiveControlIEC_xrefmin); + assign_map.emplace("WindPlantReactiveControlIEC.kiwpx", &assign_WindPlantReactiveControlIEC_kiwpx); + assign_map.emplace("WindPlantReactiveControlIEC.kpwpx", &assign_WindPlantReactiveControlIEC_kpwpx); + assign_map.emplace("WindPlantReactiveControlIEC.kwpqu", &assign_WindPlantReactiveControlIEC_kwpqu); + assign_map.emplace("WindPlantReactiveControlIEC.mwppf", &assign_WindPlantReactiveControlIEC_mwppf); + assign_map.emplace("WindPlantReactiveControlIEC.mwpu", &assign_WindPlantReactiveControlIEC_mwpu); + assign_map.emplace("WindPlantReactiveControlIEC.twppfilt", &assign_WindPlantReactiveControlIEC_twppfilt); + assign_map.emplace("WindPlantReactiveControlIEC.twpqfilt", &assign_WindPlantReactiveControlIEC_twpqfilt); + assign_map.emplace("WindPlantReactiveControlIEC.twpufilt", &assign_WindPlantReactiveControlIEC_twpufilt); + assign_map.emplace("WindPlantReactiveControlIEC.txft", &assign_WindPlantReactiveControlIEC_txft); + assign_map.emplace("WindPlantReactiveControlIEC.txfv", &assign_WindPlantReactiveControlIEC_txfv); + assign_map.emplace("WindPlantReactiveControlIEC.uwpqdip", &assign_WindPlantReactiveControlIEC_uwpqdip); + assign_map.emplace("WindPlantReactiveControlIEC.xrefmax", &assign_WindPlantReactiveControlIEC_xrefmax); + assign_map.emplace("WindPlantReactiveControlIEC.xrefmin", &assign_WindPlantReactiveControlIEC_xrefmin); } void WindPlantReactiveControlIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantReactiveControlIEC.WindPlantIEC", &assign_WindPlantReactiveControlIEC_WindPlantIEC); + assign_map.emplace("WindPlantReactiveControlIEC.WindPlantIEC", &assign_WindPlantReactiveControlIEC_WindPlantIEC); } void WindPlantReactiveControlIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantReactiveControlIEC.kiwpx", &get_WindPlantReactiveControlIEC_kiwpx); - get_map.emplace("cim:WindPlantReactiveControlIEC.kpwpx", &get_WindPlantReactiveControlIEC_kpwpx); - get_map.emplace("cim:WindPlantReactiveControlIEC.kwpqu", &get_WindPlantReactiveControlIEC_kwpqu); - get_map.emplace("cim:WindPlantReactiveControlIEC.mwppf", &get_WindPlantReactiveControlIEC_mwppf); - get_map.emplace("cim:WindPlantReactiveControlIEC.mwpu", &get_WindPlantReactiveControlIEC_mwpu); - get_map.emplace("cim:WindPlantReactiveControlIEC.twppfilt", &get_WindPlantReactiveControlIEC_twppfilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.twpqfilt", &get_WindPlantReactiveControlIEC_twpqfilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.twpufilt", &get_WindPlantReactiveControlIEC_twpufilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.txft", &get_WindPlantReactiveControlIEC_txft); - get_map.emplace("cim:WindPlantReactiveControlIEC.txfv", &get_WindPlantReactiveControlIEC_txfv); - get_map.emplace("cim:WindPlantReactiveControlIEC.uwpqdip", &get_WindPlantReactiveControlIEC_uwpqdip); - get_map.emplace("cim:WindPlantReactiveControlIEC.xrefmax", &get_WindPlantReactiveControlIEC_xrefmax); - get_map.emplace("cim:WindPlantReactiveControlIEC.xrefmin", &get_WindPlantReactiveControlIEC_xrefmin); + get_map.emplace("WindPlantReactiveControlIEC.kiwpx", &get_WindPlantReactiveControlIEC_kiwpx); + get_map.emplace("WindPlantReactiveControlIEC.kpwpx", &get_WindPlantReactiveControlIEC_kpwpx); + get_map.emplace("WindPlantReactiveControlIEC.kwpqu", &get_WindPlantReactiveControlIEC_kwpqu); + get_map.emplace("WindPlantReactiveControlIEC.mwppf", &get_WindPlantReactiveControlIEC_mwppf); + get_map.emplace("WindPlantReactiveControlIEC.mwpu", &get_WindPlantReactiveControlIEC_mwpu); + get_map.emplace("WindPlantReactiveControlIEC.twppfilt", &get_WindPlantReactiveControlIEC_twppfilt); + get_map.emplace("WindPlantReactiveControlIEC.twpqfilt", &get_WindPlantReactiveControlIEC_twpqfilt); + get_map.emplace("WindPlantReactiveControlIEC.twpufilt", &get_WindPlantReactiveControlIEC_twpufilt); + get_map.emplace("WindPlantReactiveControlIEC.txft", &get_WindPlantReactiveControlIEC_txft); + get_map.emplace("WindPlantReactiveControlIEC.txfv", &get_WindPlantReactiveControlIEC_txfv); + get_map.emplace("WindPlantReactiveControlIEC.uwpqdip", &get_WindPlantReactiveControlIEC_uwpqdip); + get_map.emplace("WindPlantReactiveControlIEC.xrefmax", &get_WindPlantReactiveControlIEC_xrefmax); + get_map.emplace("WindPlantReactiveControlIEC.xrefmin", &get_WindPlantReactiveControlIEC_xrefmin); } void WindPlantReactiveControlIEC::addClassGetFnsToMap(std::map& get_map) const @@ -509,11 +541,25 @@ void WindPlantReactiveControlIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantReactiveControlIEC::declare() { return BaseClassDefiner(WindPlantReactiveControlIEC::addConstructToMap, WindPlantReactiveControlIEC::addPrimitiveAssignFnsToMap, WindPlantReactiveControlIEC::addClassAssignFnsToMap, WindPlantReactiveControlIEC::debugName); } +std::map WindPlantReactiveControlIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantReactiveControlIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindPlantReactiveControlIEC.hpp b/CGMES_2.4.15_27JAN2020/WindPlantReactiveControlIEC.hpp index fdcfe8416..882f6e8ad 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantReactiveControlIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantReactiveControlIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantReactiveControlIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindPlantUserDefined.cpp b/CGMES_2.4.15_27JAN2020/WindPlantUserDefined.cpp index 549a06449..d1ad6fadf 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantUserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantUserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindPlantUserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantUserDefined::WindPlantUserDefined() {} WindPlantUserDefined::~WindPlantUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantUserDefined::getClassNamespaceUrl() const { - { "cim:WindPlantUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindPlantUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantUserDefined::getPossibleProfilesForClass() const +const std::string& WindPlantUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantUserDefined::getPossibleProfilesForAttributes() const +const std::list& WindPlantUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindPlantDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindPlantUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindPlantUserDefined::debugString() const void WindPlantUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantUserDefined", &WindPlantUserDefined_factory); + factory_map.emplace("WindPlantUserDefined", &WindPlantUserDefined_factory); } void WindPlantUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantUserDefined.proprietary", &assign_WindPlantUserDefined_proprietary); + assign_map.emplace("WindPlantUserDefined.proprietary", &assign_WindPlantUserDefined_proprietary); } void WindPlantUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantUserDefined.ProprietaryParameterDynamics", &assign_WindPlantUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindPlantUserDefined.ProprietaryParameterDynamics", &assign_WindPlantUserDefined_ProprietaryParameterDynamics); } void WindPlantUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindPlantDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantUserDefined.proprietary", &get_WindPlantUserDefined_proprietary); + get_map.emplace("WindPlantUserDefined.proprietary", &get_WindPlantUserDefined_proprietary); } void WindPlantUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindPlantUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantUserDefined::declare() { return BaseClassDefiner(WindPlantUserDefined::addConstructToMap, WindPlantUserDefined::addPrimitiveAssignFnsToMap, WindPlantUserDefined::addClassAssignFnsToMap, WindPlantUserDefined::debugName); } +std::map WindPlantUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindPlantDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantUserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindPlantUserDefined.hpp b/CGMES_2.4.15_27JAN2020/WindPlantUserDefined.hpp index d64898dfb..bdf208b9e 100644 --- a/CGMES_2.4.15_27JAN2020/WindPlantUserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/WindPlantUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindPlantDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantUserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindProtectionIEC.cpp b/CGMES_2.4.15_27JAN2020/WindProtectionIEC.cpp index b9bcdc44e..e4f39300f 100644 --- a/CGMES_2.4.15_27JAN2020/WindProtectionIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindProtectionIEC.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindProtectionIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindProtectionIEC.WindTurbineType1or2IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.fover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.funder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tfover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tfunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tuover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tuunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.uover", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.uunder", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindProtectionIEC::WindProtectionIEC() : WindTurbineType1or2IEC(nullptr), WindTurbineType3or4IEC(nullptr) {} WindProtectionIEC::~WindProtectionIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindProtectionIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindProtectionIEC::getClassNamespaceUrl() const { - { "cim:WindProtectionIEC.WindTurbineType1or2IEC", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.fover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.funder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tfover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tfunder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tuover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tuunder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.uover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.uunder", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindProtectionIEC::getPossibleProfilesForClass() const +const std::string& WindProtectionIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindProtectionIEC::getPossibleProfilesForAttributes() const +const std::list& WindProtectionIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindProtectionIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindProtectionIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindProtectionIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType1or2IEC_WindProtectionIEC(BaseClass*, BaseClass*); @@ -326,38 +358,38 @@ const char* WindProtectionIEC::debugString() const void WindProtectionIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindProtectionIEC", &WindProtectionIEC_factory); + factory_map.emplace("WindProtectionIEC", &WindProtectionIEC_factory); } void WindProtectionIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindProtectionIEC.fover", &assign_WindProtectionIEC_fover); - assign_map.emplace("cim:WindProtectionIEC.funder", &assign_WindProtectionIEC_funder); - assign_map.emplace("cim:WindProtectionIEC.tfover", &assign_WindProtectionIEC_tfover); - assign_map.emplace("cim:WindProtectionIEC.tfunder", &assign_WindProtectionIEC_tfunder); - assign_map.emplace("cim:WindProtectionIEC.tuover", &assign_WindProtectionIEC_tuover); - assign_map.emplace("cim:WindProtectionIEC.tuunder", &assign_WindProtectionIEC_tuunder); - assign_map.emplace("cim:WindProtectionIEC.uover", &assign_WindProtectionIEC_uover); - assign_map.emplace("cim:WindProtectionIEC.uunder", &assign_WindProtectionIEC_uunder); + assign_map.emplace("WindProtectionIEC.fover", &assign_WindProtectionIEC_fover); + assign_map.emplace("WindProtectionIEC.funder", &assign_WindProtectionIEC_funder); + assign_map.emplace("WindProtectionIEC.tfover", &assign_WindProtectionIEC_tfover); + assign_map.emplace("WindProtectionIEC.tfunder", &assign_WindProtectionIEC_tfunder); + assign_map.emplace("WindProtectionIEC.tuover", &assign_WindProtectionIEC_tuover); + assign_map.emplace("WindProtectionIEC.tuunder", &assign_WindProtectionIEC_tuunder); + assign_map.emplace("WindProtectionIEC.uover", &assign_WindProtectionIEC_uover); + assign_map.emplace("WindProtectionIEC.uunder", &assign_WindProtectionIEC_uunder); } void WindProtectionIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindProtectionIEC.WindTurbineType1or2IEC", &assign_WindProtectionIEC_WindTurbineType1or2IEC); - assign_map.emplace("cim:WindProtectionIEC.WindTurbineType3or4IEC", &assign_WindProtectionIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindProtectionIEC.WindTurbineType1or2IEC", &assign_WindProtectionIEC_WindTurbineType1or2IEC); + assign_map.emplace("WindProtectionIEC.WindTurbineType3or4IEC", &assign_WindProtectionIEC_WindTurbineType3or4IEC); } void WindProtectionIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindProtectionIEC.fover", &get_WindProtectionIEC_fover); - get_map.emplace("cim:WindProtectionIEC.funder", &get_WindProtectionIEC_funder); - get_map.emplace("cim:WindProtectionIEC.tfover", &get_WindProtectionIEC_tfover); - get_map.emplace("cim:WindProtectionIEC.tfunder", &get_WindProtectionIEC_tfunder); - get_map.emplace("cim:WindProtectionIEC.tuover", &get_WindProtectionIEC_tuover); - get_map.emplace("cim:WindProtectionIEC.tuunder", &get_WindProtectionIEC_tuunder); - get_map.emplace("cim:WindProtectionIEC.uover", &get_WindProtectionIEC_uover); - get_map.emplace("cim:WindProtectionIEC.uunder", &get_WindProtectionIEC_uunder); + get_map.emplace("WindProtectionIEC.fover", &get_WindProtectionIEC_fover); + get_map.emplace("WindProtectionIEC.funder", &get_WindProtectionIEC_funder); + get_map.emplace("WindProtectionIEC.tfover", &get_WindProtectionIEC_tfover); + get_map.emplace("WindProtectionIEC.tfunder", &get_WindProtectionIEC_tfunder); + get_map.emplace("WindProtectionIEC.tuover", &get_WindProtectionIEC_tuover); + get_map.emplace("WindProtectionIEC.tuunder", &get_WindProtectionIEC_tuunder); + get_map.emplace("WindProtectionIEC.uover", &get_WindProtectionIEC_uover); + get_map.emplace("WindProtectionIEC.uunder", &get_WindProtectionIEC_uunder); } void WindProtectionIEC::addClassGetFnsToMap(std::map& get_map) const @@ -370,11 +402,25 @@ void WindProtectionIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindProtectionIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindProtectionIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindProtectionIEC::declare() { return BaseClassDefiner(WindProtectionIEC::addConstructToMap, WindProtectionIEC::addPrimitiveAssignFnsToMap, WindProtectionIEC::addClassAssignFnsToMap, WindProtectionIEC::debugName); } +std::map WindProtectionIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindProtectionIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindProtectionIEC.hpp b/CGMES_2.4.15_27JAN2020/WindProtectionIEC.hpp index 38c2e8b1a..0a10bbe49 100644 --- a/CGMES_2.4.15_27JAN2020/WindProtectionIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindProtectionIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindProtectionIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType1or2Dynamics.cpp b/CGMES_2.4.15_27JAN2020/WindTurbineType1or2Dynamics.cpp index 2d438018b..289d480e4 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType1or2Dynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType1or2Dynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType1or2Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType1or2Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType1or2Dynamics::WindTurbineType1or2Dynamics() : AsynchronousMachineDynamics(nullptr), RemoteInputSignal(nullptr) {} WindTurbineType1or2Dynamics::~WindTurbineType1or2Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType1or2Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType1or2Dynamics::getClassNamespaceUrl() const { - { "cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:WindTurbineType1or2Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType1or2Dynamics::getPossibleProfilesForClass() const +const std::string& WindTurbineType1or2Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType1or2Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType1or2Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType1or2Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType1or2Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType1or2Dynamics::debugString() const void WindTurbineType1or2Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType1or2Dynamics", &WindTurbineType1or2Dynamics_factory); + factory_map.emplace("WindTurbineType1or2Dynamics", &WindTurbineType1or2Dynamics_factory); } void WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void WindTurbineType1or2Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &assign_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:WindTurbineType1or2Dynamics.RemoteInputSignal", &assign_WindTurbineType1or2Dynamics_RemoteInputSignal); + assign_map.emplace("WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &assign_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); + assign_map.emplace("WindTurbineType1or2Dynamics.RemoteInputSignal", &assign_WindTurbineType1or2Dynamics_RemoteInputSignal); } void WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &get_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:WindTurbineType1or2Dynamics.RemoteInputSignal", &get_WindTurbineType1or2Dynamics_RemoteInputSignal); + get_map.emplace("WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &get_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); + get_map.emplace("WindTurbineType1or2Dynamics.RemoteInputSignal", &get_WindTurbineType1or2Dynamics_RemoteInputSignal); } void WindTurbineType1or2Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType1or2Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType1or2Dynamics::declare() { return BaseClassDefiner(WindTurbineType1or2Dynamics::addConstructToMap, WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap, WindTurbineType1or2Dynamics::addClassAssignFnsToMap, WindTurbineType1or2Dynamics::debugName); } +std::map WindTurbineType1or2Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType1or2Dynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType1or2Dynamics.hpp b/CGMES_2.4.15_27JAN2020/WindTurbineType1or2Dynamics.hpp index 9cd8ce493..993bd2144 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType1or2Dynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType1or2Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType1or2Dynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType1or2IEC.cpp b/CGMES_2.4.15_27JAN2020/WindTurbineType1or2IEC.cpp index 251c07766..450f079b6 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType1or2IEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType1or2IEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType1or2IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType1or2IEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType1or2IEC.WindProtectionIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType1or2IEC::WindTurbineType1or2IEC() : WindMechIEC(nullptr), WindProtectionIEC(nullptr) {} WindTurbineType1or2IEC::~WindTurbineType1or2IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType1or2IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType1or2IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType1or2IEC.WindMechIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType1or2IEC.WindProtectionIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType1or2IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType1or2IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType1or2IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType1or2IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType1or2IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType1or2IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType1or2IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindMechIEC_WindTurbineType1or2IEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType1or2IEC::debugString() const void WindTurbineType1or2IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType1or2IEC", &WindTurbineType1or2IEC_factory); + factory_map.emplace("WindTurbineType1or2IEC", &WindTurbineType1or2IEC_factory); } void WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType1or2IEC.WindMechIEC", &assign_WindTurbineType1or2IEC_WindMechIEC); - assign_map.emplace("cim:WindTurbineType1or2IEC.WindProtectionIEC", &assign_WindTurbineType1or2IEC_WindProtectionIEC); + assign_map.emplace("WindTurbineType1or2IEC.WindMechIEC", &assign_WindTurbineType1or2IEC_WindMechIEC); + assign_map.emplace("WindTurbineType1or2IEC.WindProtectionIEC", &assign_WindTurbineType1or2IEC_WindProtectionIEC); } void WindTurbineType1or2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType1or2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2Dynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType1or2IEC.WindMechIEC", &get_WindTurbineType1or2IEC_WindMechIEC); - get_map.emplace("cim:WindTurbineType1or2IEC.WindProtectionIEC", &get_WindTurbineType1or2IEC_WindProtectionIEC); + get_map.emplace("WindTurbineType1or2IEC.WindMechIEC", &get_WindTurbineType1or2IEC_WindMechIEC); + get_map.emplace("WindTurbineType1or2IEC.WindProtectionIEC", &get_WindTurbineType1or2IEC_WindProtectionIEC); } void WindTurbineType1or2IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType1or2IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType1or2IEC::declare() { return BaseClassDefiner(WindTurbineType1or2IEC::addConstructToMap, WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap, WindTurbineType1or2IEC::addClassAssignFnsToMap, WindTurbineType1or2IEC::debugName); } +std::map WindTurbineType1or2IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType1or2IEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType1or2IEC.hpp b/CGMES_2.4.15_27JAN2020/WindTurbineType1or2IEC.hpp index 909b188a3..3ca0b2b85 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType1or2IEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType1or2IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType1or2IEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType3or4Dynamics.cpp b/CGMES_2.4.15_27JAN2020/WindTurbineType3or4Dynamics.cpp index 921087b71..ca22748d2 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType3or4Dynamics.cpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType3or4Dynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3or4Dynamics(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3or4Dynamics.EnergySource", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4Dynamics.WindPlantDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3or4Dynamics::WindTurbineType3or4Dynamics() : EnergySource(nullptr), RemoteInputSignal(nullptr), WindPlantDynamics(nullptr) {} WindTurbineType3or4Dynamics::~WindTurbineType3or4Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3or4Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3or4Dynamics::getClassNamespaceUrl() const { - { "cim:WindTurbineType3or4Dynamics.EnergySource", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4Dynamics.WindPlantDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3or4Dynamics::getPossibleProfilesForClass() const +const std::string& WindTurbineType3or4Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3or4Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3or4Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3or4Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3or4Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySource_WindTurbineType3or4Dynamics(BaseClass*, BaseClass*); @@ -145,7 +177,7 @@ const char* WindTurbineType3or4Dynamics::debugString() const void WindTurbineType3or4Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3or4Dynamics", &WindTurbineType3or4Dynamics_factory); + factory_map.emplace("WindTurbineType3or4Dynamics", &WindTurbineType3or4Dynamics_factory); } void WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void WindTurbineType3or4Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3or4Dynamics.EnergySource", &assign_WindTurbineType3or4Dynamics_EnergySource); - assign_map.emplace("cim:WindTurbineType3or4Dynamics.RemoteInputSignal", &assign_WindTurbineType3or4Dynamics_RemoteInputSignal); - assign_map.emplace("cim:WindTurbineType3or4Dynamics.WindPlantDynamics", &assign_WindTurbineType3or4Dynamics_WindPlantDynamics); + assign_map.emplace("WindTurbineType3or4Dynamics.EnergySource", &assign_WindTurbineType3or4Dynamics_EnergySource); + assign_map.emplace("WindTurbineType3or4Dynamics.RemoteInputSignal", &assign_WindTurbineType3or4Dynamics_RemoteInputSignal); + assign_map.emplace("WindTurbineType3or4Dynamics.WindPlantDynamics", &assign_WindTurbineType3or4Dynamics_WindPlantDynamics); } void WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -167,9 +199,9 @@ void WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3or4Dynamics.EnergySource", &get_WindTurbineType3or4Dynamics_EnergySource); - get_map.emplace("cim:WindTurbineType3or4Dynamics.RemoteInputSignal", &get_WindTurbineType3or4Dynamics_RemoteInputSignal); - get_map.emplace("cim:WindTurbineType3or4Dynamics.WindPlantDynamics", &get_WindTurbineType3or4Dynamics_WindPlantDynamics); + get_map.emplace("WindTurbineType3or4Dynamics.EnergySource", &get_WindTurbineType3or4Dynamics_EnergySource); + get_map.emplace("WindTurbineType3or4Dynamics.RemoteInputSignal", &get_WindTurbineType3or4Dynamics_RemoteInputSignal); + get_map.emplace("WindTurbineType3or4Dynamics.WindPlantDynamics", &get_WindTurbineType3or4Dynamics_WindPlantDynamics); } void WindTurbineType3or4Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -177,11 +209,25 @@ void WindTurbineType3or4Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3or4Dynamics::declare() { return BaseClassDefiner(WindTurbineType3or4Dynamics::addConstructToMap, WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap, WindTurbineType3or4Dynamics::addClassAssignFnsToMap, WindTurbineType3or4Dynamics::debugName); } +std::map WindTurbineType3or4Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3or4Dynamics_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType3or4Dynamics.hpp b/CGMES_2.4.15_27JAN2020/WindTurbineType3or4Dynamics.hpp index 9c123fe1d..f8ec8e372 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType3or4Dynamics.hpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType3or4Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3or4Dynamics_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType3or4IEC.cpp b/CGMES_2.4.15_27JAN2020/WindTurbineType3or4IEC.cpp index 7dd415768..f3afce157 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType3or4IEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType3or4IEC.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3or4IEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3or4IEC.WIndContQIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindContCurrLimIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindProtectionIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3or4IEC::WindTurbineType3or4IEC() : WIndContQIEC(nullptr), WindContCurrLimIEC(nullptr), WindProtectionIEC(nullptr) {} WindTurbineType3or4IEC::~WindTurbineType3or4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3or4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3or4IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType3or4IEC.WIndContQIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindContCurrLimIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindProtectionIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3or4IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType3or4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3or4IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3or4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3or4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3or4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3or4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContQIEC_WindTurbineType3or4IEC(BaseClass*, BaseClass*); @@ -145,7 +177,7 @@ const char* WindTurbineType3or4IEC::debugString() const void WindTurbineType3or4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3or4IEC", &WindTurbineType3or4IEC_factory); + factory_map.emplace("WindTurbineType3or4IEC", &WindTurbineType3or4IEC_factory); } void WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3or4IEC.WIndContQIEC", &assign_WindTurbineType3or4IEC_WIndContQIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindContCurrLimIEC", &assign_WindTurbineType3or4IEC_WindContCurrLimIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindProtectionIEC", &assign_WindTurbineType3or4IEC_WindProtectionIEC); + assign_map.emplace("WindTurbineType3or4IEC.WIndContQIEC", &assign_WindTurbineType3or4IEC_WIndContQIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindContCurrLimIEC", &assign_WindTurbineType3or4IEC_WindContCurrLimIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindProtectionIEC", &assign_WindTurbineType3or4IEC_WindProtectionIEC); } void WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -167,9 +199,9 @@ void WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4Dynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3or4IEC.WIndContQIEC", &get_WindTurbineType3or4IEC_WIndContQIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindContCurrLimIEC", &get_WindTurbineType3or4IEC_WindContCurrLimIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindProtectionIEC", &get_WindTurbineType3or4IEC_WindProtectionIEC); + get_map.emplace("WindTurbineType3or4IEC.WIndContQIEC", &get_WindTurbineType3or4IEC_WIndContQIEC); + get_map.emplace("WindTurbineType3or4IEC.WindContCurrLimIEC", &get_WindTurbineType3or4IEC_WindContCurrLimIEC); + get_map.emplace("WindTurbineType3or4IEC.WindProtectionIEC", &get_WindTurbineType3or4IEC_WindProtectionIEC); } void WindTurbineType3or4IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -177,11 +209,25 @@ void WindTurbineType3or4IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3or4IEC::declare() { return BaseClassDefiner(WindTurbineType3or4IEC::addConstructToMap, WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap, WindTurbineType3or4IEC::addClassAssignFnsToMap, WindTurbineType3or4IEC::debugName); } +std::map WindTurbineType3or4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3or4IEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType3or4IEC.hpp b/CGMES_2.4.15_27JAN2020/WindTurbineType3or4IEC.hpp index 8246ead01..38ece5191 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType3or4IEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType3or4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3or4IEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType4aIEC.cpp b/CGMES_2.4.15_27JAN2020/WindTurbineType4aIEC.cpp index 19a53dd03..9f0e06240 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType4aIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType4aIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4aIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4aIEC.WindContPType4aIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4aIEC::WindTurbineType4aIEC() : WindContPType4aIEC(nullptr) {} WindTurbineType4aIEC::~WindTurbineType4aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4aIEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4aIEC.WindContPType4aIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4aIEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4aIEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenType4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContPType4aIEC_WindTurbineType4aIEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindTurbineType4aIEC::debugString() const void WindTurbineType4aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4aIEC", &WindTurbineType4aIEC_factory); + factory_map.emplace("WindTurbineType4aIEC", &WindTurbineType4aIEC_factory); } void WindTurbineType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindTurbineType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4aIEC.WindContPType4aIEC", &assign_WindTurbineType4aIEC_WindContPType4aIEC); + assign_map.emplace("WindTurbineType4aIEC.WindContPType4aIEC", &assign_WindTurbineType4aIEC_WindContPType4aIEC); } void WindTurbineType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindTurbineType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindGenType4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4aIEC.WindContPType4aIEC", &get_WindTurbineType4aIEC_WindContPType4aIEC); + get_map.emplace("WindTurbineType4aIEC.WindContPType4aIEC", &get_WindTurbineType4aIEC_WindContPType4aIEC); } void WindTurbineType4aIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindTurbineType4aIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4aIEC::declare() { return BaseClassDefiner(WindTurbineType4aIEC::addConstructToMap, WindTurbineType4aIEC::addPrimitiveAssignFnsToMap, WindTurbineType4aIEC::addClassAssignFnsToMap, WindTurbineType4aIEC::debugName); } +std::map WindTurbineType4aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenType4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4aIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType4aIEC.hpp b/CGMES_2.4.15_27JAN2020/WindTurbineType4aIEC.hpp index 67bcd203b..86ca66414 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType4aIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType4aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenType4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4aIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType4bIEC.cpp b/CGMES_2.4.15_27JAN2020/WindTurbineType4bIEC.cpp index ad7a668db..51d6e5758 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType4bIEC.cpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType4bIEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4bIEC(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4bIEC.WindContPType4bIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindTurbineType4bIEC.WindMechIEC", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4bIEC::WindTurbineType4bIEC() : WindContPType4bIEC(nullptr), WindMechIEC(nullptr) {} WindTurbineType4bIEC::~WindTurbineType4bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4bIEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4bIEC.WindContPType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType4bIEC.WindMechIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4bIEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4bIEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenType4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContPType4bIEC_WindTurbineType4bIEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType4bIEC::debugString() const void WindTurbineType4bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4bIEC", &WindTurbineType4bIEC_factory); + factory_map.emplace("WindTurbineType4bIEC", &WindTurbineType4bIEC_factory); } void WindTurbineType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4bIEC.WindContPType4bIEC", &assign_WindTurbineType4bIEC_WindContPType4bIEC); - assign_map.emplace("cim:WindTurbineType4bIEC.WindMechIEC", &assign_WindTurbineType4bIEC_WindMechIEC); + assign_map.emplace("WindTurbineType4bIEC.WindContPType4bIEC", &assign_WindTurbineType4bIEC_WindContPType4bIEC); + assign_map.emplace("WindTurbineType4bIEC.WindMechIEC", &assign_WindTurbineType4bIEC_WindMechIEC); } void WindTurbineType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindGenType4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4bIEC.WindContPType4bIEC", &get_WindTurbineType4bIEC_WindContPType4bIEC); - get_map.emplace("cim:WindTurbineType4bIEC.WindMechIEC", &get_WindTurbineType4bIEC_WindMechIEC); + get_map.emplace("WindTurbineType4bIEC.WindContPType4bIEC", &get_WindTurbineType4bIEC_WindContPType4bIEC); + get_map.emplace("WindTurbineType4bIEC.WindMechIEC", &get_WindTurbineType4bIEC_WindMechIEC); } void WindTurbineType4bIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType4bIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4bIEC::declare() { return BaseClassDefiner(WindTurbineType4bIEC::addConstructToMap, WindTurbineType4bIEC::addPrimitiveAssignFnsToMap, WindTurbineType4bIEC::addClassAssignFnsToMap, WindTurbineType4bIEC::debugName); } +std::map WindTurbineType4bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenType4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4bIEC_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindTurbineType4bIEC.hpp b/CGMES_2.4.15_27JAN2020/WindTurbineType4bIEC.hpp index 26da27746..5670138a5 100644 --- a/CGMES_2.4.15_27JAN2020/WindTurbineType4bIEC.hpp +++ b/CGMES_2.4.15_27JAN2020/WindTurbineType4bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenType4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4bIEC_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindType1or2UserDefined.cpp b/CGMES_2.4.15_27JAN2020/WindType1or2UserDefined.cpp index be1daa797..07fe6914f 100644 --- a/CGMES_2.4.15_27JAN2020/WindType1or2UserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/WindType1or2UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindType1or2UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindType1or2UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindType1or2UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindType1or2UserDefined::WindType1or2UserDefined() {} WindType1or2UserDefined::~WindType1or2UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindType1or2UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindType1or2UserDefined::getClassNamespaceUrl() const { - { "cim:WindType1or2UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindType1or2UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindType1or2UserDefined::getPossibleProfilesForClass() const +const std::string& WindType1or2UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindType1or2UserDefined::getPossibleProfilesForAttributes() const +const std::list& WindType1or2UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindType1or2UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindType1or2UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindType1or2UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindType1or2UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindType1or2UserDefined::debugString() const void WindType1or2UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindType1or2UserDefined", &WindType1or2UserDefined_factory); + factory_map.emplace("WindType1or2UserDefined", &WindType1or2UserDefined_factory); } void WindType1or2UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType1or2UserDefined.proprietary", &assign_WindType1or2UserDefined_proprietary); + assign_map.emplace("WindType1or2UserDefined.proprietary", &assign_WindType1or2UserDefined_proprietary); } void WindType1or2UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType1or2UserDefined.ProprietaryParameterDynamics", &assign_WindType1or2UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindType1or2UserDefined.ProprietaryParameterDynamics", &assign_WindType1or2UserDefined_ProprietaryParameterDynamics); } void WindType1or2UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindType1or2UserDefined.proprietary", &get_WindType1or2UserDefined_proprietary); + get_map.emplace("WindType1or2UserDefined.proprietary", &get_WindType1or2UserDefined_proprietary); } void WindType1or2UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindType1or2UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindType1or2UserDefined::declare() { return BaseClassDefiner(WindType1or2UserDefined::addConstructToMap, WindType1or2UserDefined::addPrimitiveAssignFnsToMap, WindType1or2UserDefined::addClassAssignFnsToMap, WindType1or2UserDefined::debugName); } +std::map WindType1or2UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindType1or2UserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindType1or2UserDefined.hpp b/CGMES_2.4.15_27JAN2020/WindType1or2UserDefined.hpp index dc0abcc62..58540ba50 100644 --- a/CGMES_2.4.15_27JAN2020/WindType1or2UserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/WindType1or2UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindType1or2UserDefined_factory(); diff --git a/CGMES_2.4.15_27JAN2020/WindType3or4UserDefined.cpp b/CGMES_2.4.15_27JAN2020/WindType3or4UserDefined.cpp index 300908ba4..516e50bfe 100644 --- a/CGMES_2.4.15_27JAN2020/WindType3or4UserDefined.cpp +++ b/CGMES_2.4.15_27JAN2020/WindType3or4UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindType3or4UserDefined(), + "http://iec.ch/TC57/2013/CIM-schema-cim16#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindType3or4UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + { "WindType3or4UserDefined.proprietary", { "http://iec.ch/TC57/2013/CIM-schema-cim16#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindType3or4UserDefined::WindType3or4UserDefined() {} WindType3or4UserDefined::~WindType3or4UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindType3or4UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindType3or4UserDefined::getClassNamespaceUrl() const { - { "cim:WindType3or4UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindType3or4UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindType3or4UserDefined::getPossibleProfilesForClass() const +const std::string& WindType3or4UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindType3or4UserDefined::getPossibleProfilesForAttributes() const +const std::list& WindType3or4UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindType3or4UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindType3or4UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindType3or4UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindType3or4UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindType3or4UserDefined::debugString() const void WindType3or4UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindType3or4UserDefined", &WindType3or4UserDefined_factory); + factory_map.emplace("WindType3or4UserDefined", &WindType3or4UserDefined_factory); } void WindType3or4UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType3or4UserDefined.proprietary", &assign_WindType3or4UserDefined_proprietary); + assign_map.emplace("WindType3or4UserDefined.proprietary", &assign_WindType3or4UserDefined_proprietary); } void WindType3or4UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType3or4UserDefined.ProprietaryParameterDynamics", &assign_WindType3or4UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindType3or4UserDefined.ProprietaryParameterDynamics", &assign_WindType3or4UserDefined_ProprietaryParameterDynamics); } void WindType3or4UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindType3or4UserDefined.proprietary", &get_WindType3or4UserDefined_proprietary); + get_map.emplace("WindType3or4UserDefined.proprietary", &get_WindType3or4UserDefined_proprietary); } void WindType3or4UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindType3or4UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindType3or4UserDefined::declare() { return BaseClassDefiner(WindType3or4UserDefined::addConstructToMap, WindType3or4UserDefined::addPrimitiveAssignFnsToMap, WindType3or4UserDefined::addClassAssignFnsToMap, WindType3or4UserDefined::debugName); } +std::map WindType3or4UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindType3or4UserDefined_factory() diff --git a/CGMES_2.4.15_27JAN2020/WindType3or4UserDefined.hpp b/CGMES_2.4.15_27JAN2020/WindType3or4UserDefined.hpp index 5259b5916..c894aab4b 100644 --- a/CGMES_2.4.15_27JAN2020/WindType3or4UserDefined.hpp +++ b/CGMES_2.4.15_27JAN2020/WindType3or4UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindType3or4UserDefined_factory(); diff --git a/CGMES_3.0.0/ACDCConverter.cpp b/CGMES_3.0.0/ACDCConverter.cpp index 7928158c3..a4bc254f7 100644 --- a/CGMES_3.0.0/ACDCConverter.cpp +++ b/CGMES_3.0.0/ACDCConverter.cpp @@ -13,55 +13,87 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCConverter(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::SV, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCConverter.DCTerminals", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.PccTerminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.baseS", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.idc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "ACDCConverter.idleLoss", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.maxP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.maxUdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.minP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.minUdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.numberOfValves", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.p", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.poleLossP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "ACDCConverter.q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.ratedUdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.resistiveLoss", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.switchingLoss", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverter.targetPpcc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.targetUdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ACDCConverter.uc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "ACDCConverter.udc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "ACDCConverter.valveU0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCConverter::ACDCConverter() : PccTerminal(nullptr) {} ACDCConverter::~ACDCConverter() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::SV, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ACDCConverter.DCTerminals", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.PccTerminal", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.baseS", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.idc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.idleLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.maxP", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.maxUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.minP", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.minUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.numberOfValves", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.p", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.poleLossP", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.q", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.ratedUdc", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.resistiveLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.switchingLoss", { CGMESProfile::EQ, } }, - { "cim:ACDCConverter.targetPpcc", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.targetUdc", { CGMESProfile::SSH, } }, - { "cim:ACDCConverter.uc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.udc", { CGMESProfile::SV, } }, - { "cim:ACDCConverter.valveU0", { CGMESProfile::EQ, } }, -}; - -std::list -ACDCConverter::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ACDCConverter::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ACDCConverter::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ACDCConverter::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ACDCConverter::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ACDCConverter::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACDCConverterDCTerminal_DCConductingEquipment(BaseClass*, BaseClass*); @@ -672,66 +704,66 @@ const char* ACDCConverter::debugString() const void ACDCConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCConverter", &ACDCConverter_factory); + factory_map.emplace("ACDCConverter", &ACDCConverter_factory); } void ACDCConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverter.baseS", &assign_ACDCConverter_baseS); - assign_map.emplace("cim:ACDCConverter.idc", &assign_ACDCConverter_idc); - assign_map.emplace("cim:ACDCConverter.idleLoss", &assign_ACDCConverter_idleLoss); - assign_map.emplace("cim:ACDCConverter.maxP", &assign_ACDCConverter_maxP); - assign_map.emplace("cim:ACDCConverter.maxUdc", &assign_ACDCConverter_maxUdc); - assign_map.emplace("cim:ACDCConverter.minP", &assign_ACDCConverter_minP); - assign_map.emplace("cim:ACDCConverter.minUdc", &assign_ACDCConverter_minUdc); - assign_map.emplace("cim:ACDCConverter.numberOfValves", &assign_ACDCConverter_numberOfValves); - assign_map.emplace("cim:ACDCConverter.p", &assign_ACDCConverter_p); - assign_map.emplace("cim:ACDCConverter.poleLossP", &assign_ACDCConverter_poleLossP); - assign_map.emplace("cim:ACDCConverter.q", &assign_ACDCConverter_q); - assign_map.emplace("cim:ACDCConverter.ratedUdc", &assign_ACDCConverter_ratedUdc); - assign_map.emplace("cim:ACDCConverter.resistiveLoss", &assign_ACDCConverter_resistiveLoss); - assign_map.emplace("cim:ACDCConverter.switchingLoss", &assign_ACDCConverter_switchingLoss); - assign_map.emplace("cim:ACDCConverter.targetPpcc", &assign_ACDCConverter_targetPpcc); - assign_map.emplace("cim:ACDCConverter.targetUdc", &assign_ACDCConverter_targetUdc); - assign_map.emplace("cim:ACDCConverter.uc", &assign_ACDCConverter_uc); - assign_map.emplace("cim:ACDCConverter.udc", &assign_ACDCConverter_udc); - assign_map.emplace("cim:ACDCConverter.valveU0", &assign_ACDCConverter_valveU0); + assign_map.emplace("ACDCConverter.baseS", &assign_ACDCConverter_baseS); + assign_map.emplace("ACDCConverter.idc", &assign_ACDCConverter_idc); + assign_map.emplace("ACDCConverter.idleLoss", &assign_ACDCConverter_idleLoss); + assign_map.emplace("ACDCConverter.maxP", &assign_ACDCConverter_maxP); + assign_map.emplace("ACDCConverter.maxUdc", &assign_ACDCConverter_maxUdc); + assign_map.emplace("ACDCConverter.minP", &assign_ACDCConverter_minP); + assign_map.emplace("ACDCConverter.minUdc", &assign_ACDCConverter_minUdc); + assign_map.emplace("ACDCConverter.numberOfValves", &assign_ACDCConverter_numberOfValves); + assign_map.emplace("ACDCConverter.p", &assign_ACDCConverter_p); + assign_map.emplace("ACDCConverter.poleLossP", &assign_ACDCConverter_poleLossP); + assign_map.emplace("ACDCConverter.q", &assign_ACDCConverter_q); + assign_map.emplace("ACDCConverter.ratedUdc", &assign_ACDCConverter_ratedUdc); + assign_map.emplace("ACDCConverter.resistiveLoss", &assign_ACDCConverter_resistiveLoss); + assign_map.emplace("ACDCConverter.switchingLoss", &assign_ACDCConverter_switchingLoss); + assign_map.emplace("ACDCConverter.targetPpcc", &assign_ACDCConverter_targetPpcc); + assign_map.emplace("ACDCConverter.targetUdc", &assign_ACDCConverter_targetUdc); + assign_map.emplace("ACDCConverter.uc", &assign_ACDCConverter_uc); + assign_map.emplace("ACDCConverter.udc", &assign_ACDCConverter_udc); + assign_map.emplace("ACDCConverter.valveU0", &assign_ACDCConverter_valveU0); } void ACDCConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverter.DCTerminals", &assign_ACDCConverter_DCTerminals); - assign_map.emplace("cim:ACDCConverter.PccTerminal", &assign_ACDCConverter_PccTerminal); + assign_map.emplace("ACDCConverter.DCTerminals", &assign_ACDCConverter_DCTerminals); + assign_map.emplace("ACDCConverter.PccTerminal", &assign_ACDCConverter_PccTerminal); } void ACDCConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverter.baseS", &get_ACDCConverter_baseS); - get_map.emplace("cim:ACDCConverter.idc", &get_ACDCConverter_idc); - get_map.emplace("cim:ACDCConverter.idleLoss", &get_ACDCConverter_idleLoss); - get_map.emplace("cim:ACDCConverter.maxP", &get_ACDCConverter_maxP); - get_map.emplace("cim:ACDCConverter.maxUdc", &get_ACDCConverter_maxUdc); - get_map.emplace("cim:ACDCConverter.minP", &get_ACDCConverter_minP); - get_map.emplace("cim:ACDCConverter.minUdc", &get_ACDCConverter_minUdc); - get_map.emplace("cim:ACDCConverter.numberOfValves", &get_ACDCConverter_numberOfValves); - get_map.emplace("cim:ACDCConverter.p", &get_ACDCConverter_p); - get_map.emplace("cim:ACDCConverter.poleLossP", &get_ACDCConverter_poleLossP); - get_map.emplace("cim:ACDCConverter.q", &get_ACDCConverter_q); - get_map.emplace("cim:ACDCConverter.ratedUdc", &get_ACDCConverter_ratedUdc); - get_map.emplace("cim:ACDCConverter.resistiveLoss", &get_ACDCConverter_resistiveLoss); - get_map.emplace("cim:ACDCConverter.switchingLoss", &get_ACDCConverter_switchingLoss); - get_map.emplace("cim:ACDCConverter.targetPpcc", &get_ACDCConverter_targetPpcc); - get_map.emplace("cim:ACDCConverter.targetUdc", &get_ACDCConverter_targetUdc); - get_map.emplace("cim:ACDCConverter.uc", &get_ACDCConverter_uc); - get_map.emplace("cim:ACDCConverter.udc", &get_ACDCConverter_udc); - get_map.emplace("cim:ACDCConverter.valveU0", &get_ACDCConverter_valveU0); + get_map.emplace("ACDCConverter.baseS", &get_ACDCConverter_baseS); + get_map.emplace("ACDCConverter.idc", &get_ACDCConverter_idc); + get_map.emplace("ACDCConverter.idleLoss", &get_ACDCConverter_idleLoss); + get_map.emplace("ACDCConverter.maxP", &get_ACDCConverter_maxP); + get_map.emplace("ACDCConverter.maxUdc", &get_ACDCConverter_maxUdc); + get_map.emplace("ACDCConverter.minP", &get_ACDCConverter_minP); + get_map.emplace("ACDCConverter.minUdc", &get_ACDCConverter_minUdc); + get_map.emplace("ACDCConverter.numberOfValves", &get_ACDCConverter_numberOfValves); + get_map.emplace("ACDCConverter.p", &get_ACDCConverter_p); + get_map.emplace("ACDCConverter.poleLossP", &get_ACDCConverter_poleLossP); + get_map.emplace("ACDCConverter.q", &get_ACDCConverter_q); + get_map.emplace("ACDCConverter.ratedUdc", &get_ACDCConverter_ratedUdc); + get_map.emplace("ACDCConverter.resistiveLoss", &get_ACDCConverter_resistiveLoss); + get_map.emplace("ACDCConverter.switchingLoss", &get_ACDCConverter_switchingLoss); + get_map.emplace("ACDCConverter.targetPpcc", &get_ACDCConverter_targetPpcc); + get_map.emplace("ACDCConverter.targetUdc", &get_ACDCConverter_targetUdc); + get_map.emplace("ACDCConverter.uc", &get_ACDCConverter_uc); + get_map.emplace("ACDCConverter.udc", &get_ACDCConverter_udc); + get_map.emplace("ACDCConverter.valveU0", &get_ACDCConverter_valveU0); } void ACDCConverter::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverter.PccTerminal", &get_ACDCConverter_PccTerminal); + get_map.emplace("ACDCConverter.PccTerminal", &get_ACDCConverter_PccTerminal); } void ACDCConverter::addEnumGetFnsToMap(std::map& get_map) const @@ -739,11 +771,25 @@ void ACDCConverter::addEnumGetFnsToMap(std::map& get_ ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool ACDCConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCConverter" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACDCConverter::declare() { return BaseClassDefiner(ACDCConverter::addConstructToMap, ACDCConverter::addPrimitiveAssignFnsToMap, ACDCConverter::addClassAssignFnsToMap, ACDCConverter::debugName); } +std::map ACDCConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCConverter_factory() diff --git a/CGMES_3.0.0/ACDCConverter.hpp b/CGMES_3.0.0/ACDCConverter.hpp index 85235adf6..de4855d2b 100644 --- a/CGMES_3.0.0/ACDCConverter.hpp +++ b/CGMES_3.0.0/ACDCConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ActivePowerPerCurrentFlow.hpp" #include "ApparentPower.hpp" @@ -100,8 +101,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -109,7 +117,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCConverter_factory(); diff --git a/CGMES_3.0.0/ACDCConverterDCTerminal.cpp b/CGMES_3.0.0/ACDCConverterDCTerminal.cpp index 1f445f5c1..f25adc05e 100644 --- a/CGMES_3.0.0/ACDCConverterDCTerminal.cpp +++ b/CGMES_3.0.0/ACDCConverterDCTerminal.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCConverterDCTerminal(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCConverterDCTerminal.DCConductingEquipment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCConverterDCTerminal.polarity", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCConverterDCTerminal::ACDCConverterDCTerminal() : DCConductingEquipment(nullptr) {} ACDCConverterDCTerminal::~ACDCConverterDCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& ACDCConverterDCTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACDCConverterDCTerminal::getClassNamespaceUrl() const { - { "cim:ACDCConverterDCTerminal.DCConductingEquipment", { CGMESProfile::EQ, } }, - { "cim:ACDCConverterDCTerminal.polarity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACDCConverterDCTerminal::getPossibleProfilesForClass() const +const std::string& ACDCConverterDCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACDCConverterDCTerminal::getPossibleProfilesForAttributes() const +const std::list& ACDCConverterDCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCBaseTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCConverterDCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCConverterDCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCConverterDCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACDCConverter_DCTerminals(BaseClass*, BaseClass*); @@ -111,17 +143,17 @@ const char* ACDCConverterDCTerminal::debugString() const void ACDCConverterDCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCConverterDCTerminal", &ACDCConverterDCTerminal_factory); + factory_map.emplace("ACDCConverterDCTerminal", &ACDCConverterDCTerminal_factory); } void ACDCConverterDCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverterDCTerminal.polarity", &assign_ACDCConverterDCTerminal_polarity); + assign_map.emplace("ACDCConverterDCTerminal.polarity", &assign_ACDCConverterDCTerminal_polarity); } void ACDCConverterDCTerminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCConverterDCTerminal.DCConductingEquipment", &assign_ACDCConverterDCTerminal_DCConductingEquipment); + assign_map.emplace("ACDCConverterDCTerminal.DCConductingEquipment", &assign_ACDCConverterDCTerminal_DCConductingEquipment); } void ACDCConverterDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -132,13 +164,19 @@ void ACDCConverterDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverterDCTerminal.DCConductingEquipment", &get_ACDCConverterDCTerminal_DCConductingEquipment); + get_map.emplace("ACDCConverterDCTerminal.DCConductingEquipment", &get_ACDCConverterDCTerminal_DCConductingEquipment); } void ACDCConverterDCTerminal::addEnumGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ACDCConverterDCTerminal.polarity", &get_ACDCConverterDCTerminal_polarity); + get_map.emplace("ACDCConverterDCTerminal.polarity", &get_ACDCConverterDCTerminal_polarity); +} + +bool ACDCConverterDCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCConverterDCTerminal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ACDCConverterDCTerminal::declare() @@ -146,6 +184,14 @@ const BaseClassDefiner ACDCConverterDCTerminal::declare() return BaseClassDefiner(ACDCConverterDCTerminal::addConstructToMap, ACDCConverterDCTerminal::addPrimitiveAssignFnsToMap, ACDCConverterDCTerminal::addClassAssignFnsToMap, ACDCConverterDCTerminal::debugName); } +std::map ACDCConverterDCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCBaseTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCConverterDCTerminal_factory() diff --git a/CGMES_3.0.0/ACDCConverterDCTerminal.hpp b/CGMES_3.0.0/ACDCConverterDCTerminal.hpp index 8a967d40b..4c4fa36e5 100644 --- a/CGMES_3.0.0/ACDCConverterDCTerminal.hpp +++ b/CGMES_3.0.0/ACDCConverterDCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCBaseTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DCPolarityKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCConverterDCTerminal_factory(); diff --git a/CGMES_3.0.0/ACDCTerminal.cpp b/CGMES_3.0.0/ACDCTerminal.cpp index e6f7c4a24..11c30f165 100644 --- a/CGMES_3.0.0/ACDCTerminal.cpp +++ b/CGMES_3.0.0/ACDCTerminal.cpp @@ -14,43 +14,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACDCTerminal(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::OP, + CGMESProfile::SC, + CGMESProfile::SSH, + CGMESProfile::SV, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACDCTerminal.BusNameMarker", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.Measurements", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "ACDCTerminal.OperationalLimitSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACDCTerminal.connected", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ACDCTerminal.sequenceNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ACDCTerminal::ACDCTerminal() : BusNameMarker(nullptr) {} ACDCTerminal::~ACDCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& ACDCTerminal::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::OP, - CGMESProfile::SC, - CGMESProfile::SSH, - CGMESProfile::SV, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACDCTerminal::getClassNamespaceUrl() const { - { "cim:ACDCTerminal.BusNameMarker", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.Measurements", { CGMESProfile::OP, } }, - { "cim:ACDCTerminal.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:ACDCTerminal.connected", { CGMESProfile::SSH, } }, - { "cim:ACDCTerminal.sequenceNumber", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACDCTerminal::getPossibleProfilesForClass() const +const std::string& ACDCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACDCTerminal::getPossibleProfilesForAttributes() const +const std::list& ACDCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACDCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACDCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACDCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusNameMarker_Terminal(BaseClass*, BaseClass*); @@ -186,33 +218,33 @@ const char* ACDCTerminal::debugString() const void ACDCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACDCTerminal", &ACDCTerminal_factory); + factory_map.emplace("ACDCTerminal", &ACDCTerminal_factory); } void ACDCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCTerminal.connected", &assign_ACDCTerminal_connected); - assign_map.emplace("cim:ACDCTerminal.sequenceNumber", &assign_ACDCTerminal_sequenceNumber); + assign_map.emplace("ACDCTerminal.connected", &assign_ACDCTerminal_connected); + assign_map.emplace("ACDCTerminal.sequenceNumber", &assign_ACDCTerminal_sequenceNumber); } void ACDCTerminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACDCTerminal.BusNameMarker", &assign_ACDCTerminal_BusNameMarker); - assign_map.emplace("cim:ACDCTerminal.Measurements", &assign_ACDCTerminal_Measurements); - assign_map.emplace("cim:ACDCTerminal.OperationalLimitSet", &assign_ACDCTerminal_OperationalLimitSet); + assign_map.emplace("ACDCTerminal.BusNameMarker", &assign_ACDCTerminal_BusNameMarker); + assign_map.emplace("ACDCTerminal.Measurements", &assign_ACDCTerminal_Measurements); + assign_map.emplace("ACDCTerminal.OperationalLimitSet", &assign_ACDCTerminal_OperationalLimitSet); } void ACDCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACDCTerminal.connected", &get_ACDCTerminal_connected); - get_map.emplace("cim:ACDCTerminal.sequenceNumber", &get_ACDCTerminal_sequenceNumber); + get_map.emplace("ACDCTerminal.connected", &get_ACDCTerminal_connected); + get_map.emplace("ACDCTerminal.sequenceNumber", &get_ACDCTerminal_sequenceNumber); } void ACDCTerminal::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ACDCTerminal.BusNameMarker", &get_ACDCTerminal_BusNameMarker); + get_map.emplace("ACDCTerminal.BusNameMarker", &get_ACDCTerminal_BusNameMarker); } void ACDCTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -220,11 +252,25 @@ void ACDCTerminal::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ACDCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACDCTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACDCTerminal::declare() { return BaseClassDefiner(ACDCTerminal::addConstructToMap, ACDCTerminal::addPrimitiveAssignFnsToMap, ACDCTerminal::addClassAssignFnsToMap, ACDCTerminal::debugName); } +std::map ACDCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACDCTerminal_factory() diff --git a/CGMES_3.0.0/ACDCTerminal.hpp b/CGMES_3.0.0/ACDCTerminal.hpp index a54555603..767a297cf 100644 --- a/CGMES_3.0.0/ACDCTerminal.hpp +++ b/CGMES_3.0.0/ACDCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACDCTerminal_factory(); diff --git a/CGMES_3.0.0/ACLineSegment.cpp b/CGMES_3.0.0/ACLineSegment.cpp index b9b82b046..152401a9a 100644 --- a/CGMES_3.0.0/ACLineSegment.cpp +++ b/CGMES_3.0.0/ACLineSegment.cpp @@ -13,43 +13,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ACLineSegment(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ACLineSegment.Clamp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.Cut", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.b0ch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ACLineSegment.bch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.g0ch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ACLineSegment.gch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.r0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ACLineSegment.shortCircuitEndTemperature", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ACLineSegment.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ACLineSegment.x0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + ACLineSegment::ACLineSegment() {} ACLineSegment::~ACLineSegment() {} -static const std::list PossibleProfilesForClass = +const std::list& ACLineSegment::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ACLineSegment::getClassNamespaceUrl() const { - { "cim:ACLineSegment.Clamp", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.Cut", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.b0ch", { CGMESProfile::SC, } }, - { "cim:ACLineSegment.bch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.g0ch", { CGMESProfile::SC, } }, - { "cim:ACLineSegment.gch", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.r", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.r0", { CGMESProfile::SC, } }, - { "cim:ACLineSegment.shortCircuitEndTemperature", { CGMESProfile::SC, } }, - { "cim:ACLineSegment.x", { CGMESProfile::EQ, } }, - { "cim:ACLineSegment.x0", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ACLineSegment::getPossibleProfilesForClass() const +const std::string& ACLineSegment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ACLineSegment::getPossibleProfilesForAttributes() const +const std::list& ACLineSegment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Conductor::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ACLineSegment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ACLineSegment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ACLineSegment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Clamp_ACLineSegment(BaseClass*, BaseClass*); @@ -357,40 +389,40 @@ const char* ACLineSegment::debugString() const void ACLineSegment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ACLineSegment", &ACLineSegment_factory); + factory_map.emplace("ACLineSegment", &ACLineSegment_factory); } void ACLineSegment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACLineSegment.b0ch", &assign_ACLineSegment_b0ch); - assign_map.emplace("cim:ACLineSegment.bch", &assign_ACLineSegment_bch); - assign_map.emplace("cim:ACLineSegment.g0ch", &assign_ACLineSegment_g0ch); - assign_map.emplace("cim:ACLineSegment.gch", &assign_ACLineSegment_gch); - assign_map.emplace("cim:ACLineSegment.r", &assign_ACLineSegment_r); - assign_map.emplace("cim:ACLineSegment.r0", &assign_ACLineSegment_r0); - assign_map.emplace("cim:ACLineSegment.shortCircuitEndTemperature", &assign_ACLineSegment_shortCircuitEndTemperature); - assign_map.emplace("cim:ACLineSegment.x", &assign_ACLineSegment_x); - assign_map.emplace("cim:ACLineSegment.x0", &assign_ACLineSegment_x0); + assign_map.emplace("ACLineSegment.b0ch", &assign_ACLineSegment_b0ch); + assign_map.emplace("ACLineSegment.bch", &assign_ACLineSegment_bch); + assign_map.emplace("ACLineSegment.g0ch", &assign_ACLineSegment_g0ch); + assign_map.emplace("ACLineSegment.gch", &assign_ACLineSegment_gch); + assign_map.emplace("ACLineSegment.r", &assign_ACLineSegment_r); + assign_map.emplace("ACLineSegment.r0", &assign_ACLineSegment_r0); + assign_map.emplace("ACLineSegment.shortCircuitEndTemperature", &assign_ACLineSegment_shortCircuitEndTemperature); + assign_map.emplace("ACLineSegment.x", &assign_ACLineSegment_x); + assign_map.emplace("ACLineSegment.x0", &assign_ACLineSegment_x0); } void ACLineSegment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ACLineSegment.Clamp", &assign_ACLineSegment_Clamp); - assign_map.emplace("cim:ACLineSegment.Cut", &assign_ACLineSegment_Cut); + assign_map.emplace("ACLineSegment.Clamp", &assign_ACLineSegment_Clamp); + assign_map.emplace("ACLineSegment.Cut", &assign_ACLineSegment_Cut); } void ACLineSegment::addPrimitiveGetFnsToMap(std::map& get_map) const { Conductor::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ACLineSegment.b0ch", &get_ACLineSegment_b0ch); - get_map.emplace("cim:ACLineSegment.bch", &get_ACLineSegment_bch); - get_map.emplace("cim:ACLineSegment.g0ch", &get_ACLineSegment_g0ch); - get_map.emplace("cim:ACLineSegment.gch", &get_ACLineSegment_gch); - get_map.emplace("cim:ACLineSegment.r", &get_ACLineSegment_r); - get_map.emplace("cim:ACLineSegment.r0", &get_ACLineSegment_r0); - get_map.emplace("cim:ACLineSegment.shortCircuitEndTemperature", &get_ACLineSegment_shortCircuitEndTemperature); - get_map.emplace("cim:ACLineSegment.x", &get_ACLineSegment_x); - get_map.emplace("cim:ACLineSegment.x0", &get_ACLineSegment_x0); + get_map.emplace("ACLineSegment.b0ch", &get_ACLineSegment_b0ch); + get_map.emplace("ACLineSegment.bch", &get_ACLineSegment_bch); + get_map.emplace("ACLineSegment.g0ch", &get_ACLineSegment_g0ch); + get_map.emplace("ACLineSegment.gch", &get_ACLineSegment_gch); + get_map.emplace("ACLineSegment.r", &get_ACLineSegment_r); + get_map.emplace("ACLineSegment.r0", &get_ACLineSegment_r0); + get_map.emplace("ACLineSegment.shortCircuitEndTemperature", &get_ACLineSegment_shortCircuitEndTemperature); + get_map.emplace("ACLineSegment.x", &get_ACLineSegment_x); + get_map.emplace("ACLineSegment.x0", &get_ACLineSegment_x0); } void ACLineSegment::addClassGetFnsToMap(std::map& get_map) const @@ -403,11 +435,25 @@ void ACLineSegment::addEnumGetFnsToMap(std::map& get_ Conductor::addEnumGetFnsToMap(get_map); } +bool ACLineSegment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ACLineSegment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ACLineSegment::declare() { return BaseClassDefiner(ACLineSegment::addConstructToMap, ACLineSegment::addPrimitiveAssignFnsToMap, ACLineSegment::addClassAssignFnsToMap, ACLineSegment::debugName); } +std::map ACLineSegment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Conductor::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ACLineSegment_factory() diff --git a/CGMES_3.0.0/ACLineSegment.hpp b/CGMES_3.0.0/ACLineSegment.hpp index a39e180b1..dc1c20d68 100644 --- a/CGMES_3.0.0/ACLineSegment.hpp +++ b/CGMES_3.0.0/ACLineSegment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Conductor.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Reactance.hpp" #include "Resistance.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ACLineSegment_factory(); diff --git a/CGMES_3.0.0/Accumulator.cpp b/CGMES_3.0.0/Accumulator.cpp index c6ad3cc55..03fadfbee 100644 --- a/CGMES_3.0.0/Accumulator.cpp +++ b/CGMES_3.0.0/Accumulator.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Accumulator(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Accumulator.AccumulatorValues", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Accumulator.LimitSets", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + Accumulator::Accumulator() {} Accumulator::~Accumulator() {} -static const std::list PossibleProfilesForClass = +const std::list& Accumulator::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Accumulator::getClassNamespaceUrl() const { - { "cim:Accumulator.AccumulatorValues", { CGMESProfile::OP, } }, - { "cim:Accumulator.LimitSets", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Accumulator::getPossibleProfilesForClass() const +const std::string& Accumulator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Accumulator::getPossibleProfilesForAttributes() const +const std::list& Accumulator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Accumulator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Accumulator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Accumulator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorValue_Accumulator(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* Accumulator::debugString() const void Accumulator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Accumulator", &Accumulator_factory); + factory_map.emplace("Accumulator", &Accumulator_factory); } void Accumulator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void Accumulator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Accumulator.AccumulatorValues", &assign_Accumulator_AccumulatorValues); - assign_map.emplace("cim:Accumulator.LimitSets", &assign_Accumulator_LimitSets); + assign_map.emplace("Accumulator.AccumulatorValues", &assign_Accumulator_AccumulatorValues); + assign_map.emplace("Accumulator.LimitSets", &assign_Accumulator_LimitSets); } void Accumulator::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void Accumulator::addEnumGetFnsToMap(std::map& get_ma Measurement::addEnumGetFnsToMap(get_map); } +bool Accumulator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Accumulator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Accumulator::declare() { return BaseClassDefiner(Accumulator::addConstructToMap, Accumulator::addPrimitiveAssignFnsToMap, Accumulator::addClassAssignFnsToMap, Accumulator::debugName); } +std::map Accumulator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Accumulator_factory() diff --git a/CGMES_3.0.0/Accumulator.hpp b/CGMES_3.0.0/Accumulator.hpp index feed1d527..eb1fd2153 100644 --- a/CGMES_3.0.0/Accumulator.hpp +++ b/CGMES_3.0.0/Accumulator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Accumulator_factory(); diff --git a/CGMES_3.0.0/AccumulatorLimit.cpp b/CGMES_3.0.0/AccumulatorLimit.cpp index d06cd184b..ae1f6741c 100644 --- a/CGMES_3.0.0/AccumulatorLimit.cpp +++ b/CGMES_3.0.0/AccumulatorLimit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorLimit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorLimit.LimitSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "AccumulatorLimit.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorLimit::AccumulatorLimit() : LimitSet(nullptr) {} AccumulatorLimit::~AccumulatorLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorLimit::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorLimit::getClassNamespaceUrl() const { - { "cim:AccumulatorLimit.LimitSet", { CGMESProfile::OP, } }, - { "cim:AccumulatorLimit.value", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorLimit::getPossibleProfilesForClass() const +const std::string& AccumulatorLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorLimit::getPossibleProfilesForAttributes() const +const std::list& AccumulatorLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Limit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorLimitSet_Limits(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* AccumulatorLimit::debugString() const void AccumulatorLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorLimit", &AccumulatorLimit_factory); + factory_map.emplace("AccumulatorLimit", &AccumulatorLimit_factory); } void AccumulatorLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimit.value", &assign_AccumulatorLimit_value); + assign_map.emplace("AccumulatorLimit.value", &assign_AccumulatorLimit_value); } void AccumulatorLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimit.LimitSet", &assign_AccumulatorLimit_LimitSet); + assign_map.emplace("AccumulatorLimit.LimitSet", &assign_AccumulatorLimit_LimitSet); } void AccumulatorLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { Limit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimit.value", &get_AccumulatorLimit_value); + get_map.emplace("AccumulatorLimit.value", &get_AccumulatorLimit_value); } void AccumulatorLimit::addClassGetFnsToMap(std::map& get_map) const { Limit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimit.LimitSet", &get_AccumulatorLimit_LimitSet); + get_map.emplace("AccumulatorLimit.LimitSet", &get_AccumulatorLimit_LimitSet); } void AccumulatorLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void AccumulatorLimit::addEnumGetFnsToMap(std::map& g Limit::addEnumGetFnsToMap(get_map); } +bool AccumulatorLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorLimit::declare() { return BaseClassDefiner(AccumulatorLimit::addConstructToMap, AccumulatorLimit::addPrimitiveAssignFnsToMap, AccumulatorLimit::addClassAssignFnsToMap, AccumulatorLimit::debugName); } +std::map AccumulatorLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Limit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorLimit_factory() diff --git a/CGMES_3.0.0/AccumulatorLimit.hpp b/CGMES_3.0.0/AccumulatorLimit.hpp index c72bcab6f..ac446db53 100644 --- a/CGMES_3.0.0/AccumulatorLimit.hpp +++ b/CGMES_3.0.0/AccumulatorLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Limit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorLimit_factory(); diff --git a/CGMES_3.0.0/AccumulatorLimitSet.cpp b/CGMES_3.0.0/AccumulatorLimitSet.cpp index ecc611925..8beac8278 100644 --- a/CGMES_3.0.0/AccumulatorLimitSet.cpp +++ b/CGMES_3.0.0/AccumulatorLimitSet.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorLimitSet(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorLimitSet.Limits", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "AccumulatorLimitSet.Measurements", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorLimitSet::AccumulatorLimitSet() {} AccumulatorLimitSet::~AccumulatorLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorLimitSet::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorLimitSet::getClassNamespaceUrl() const { - { "cim:AccumulatorLimitSet.Limits", { CGMESProfile::OP, } }, - { "cim:AccumulatorLimitSet.Measurements", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorLimitSet::getPossibleProfilesForClass() const +const std::string& AccumulatorLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorLimitSet::getPossibleProfilesForAttributes() const +const std::list& AccumulatorLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LimitSet::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorLimit_LimitSet(BaseClass*, BaseClass*); @@ -96,7 +128,7 @@ const char* AccumulatorLimitSet::debugString() const void AccumulatorLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorLimitSet", &AccumulatorLimitSet_factory); + factory_map.emplace("AccumulatorLimitSet", &AccumulatorLimitSet_factory); } void AccumulatorLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -105,8 +137,8 @@ void AccumulatorLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorLimitSet.Limits", &assign_AccumulatorLimitSet_Limits); - assign_map.emplace("cim:AccumulatorLimitSet.Measurements", &assign_AccumulatorLimitSet_Measurements); + assign_map.emplace("AccumulatorLimitSet.Limits", &assign_AccumulatorLimitSet_Limits); + assign_map.emplace("AccumulatorLimitSet.Measurements", &assign_AccumulatorLimitSet_Measurements); } void AccumulatorLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,7 +149,7 @@ void AccumulatorLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { LimitSet::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorLimitSet.Measurements", &get_AccumulatorLimitSet_Measurements); + get_map.emplace("AccumulatorLimitSet.Measurements", &get_AccumulatorLimitSet_Measurements); } void AccumulatorLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AccumulatorLimitSet::addEnumGetFnsToMap(std::map LimitSet::addEnumGetFnsToMap(get_map); } +bool AccumulatorLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorLimitSet::declare() { return BaseClassDefiner(AccumulatorLimitSet::addConstructToMap, AccumulatorLimitSet::addPrimitiveAssignFnsToMap, AccumulatorLimitSet::addClassAssignFnsToMap, AccumulatorLimitSet::debugName); } +std::map AccumulatorLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LimitSet::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorLimitSet_factory() diff --git a/CGMES_3.0.0/AccumulatorLimitSet.hpp b/CGMES_3.0.0/AccumulatorLimitSet.hpp index d945f69e2..c1b24f8f1 100644 --- a/CGMES_3.0.0/AccumulatorLimitSet.hpp +++ b/CGMES_3.0.0/AccumulatorLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LimitSet.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorLimitSet_factory(); diff --git a/CGMES_3.0.0/AccumulatorReset.cpp b/CGMES_3.0.0/AccumulatorReset.cpp index 4d6c7af0f..1506092dd 100644 --- a/CGMES_3.0.0/AccumulatorReset.cpp +++ b/CGMES_3.0.0/AccumulatorReset.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorReset(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorReset.AccumulatorValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorReset::AccumulatorReset() : AccumulatorValue(nullptr) {} AccumulatorReset::~AccumulatorReset() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorReset::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorReset::getClassNamespaceUrl() const { - { "cim:AccumulatorReset.AccumulatorValue", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorReset::getPossibleProfilesForClass() const +const std::string& AccumulatorReset::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorReset::getPossibleProfilesForAttributes() const +const std::list& AccumulatorReset::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorReset::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorReset::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorReset::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AccumulatorValue_AccumulatorReset(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* AccumulatorReset::debugString() const void AccumulatorReset::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorReset", &AccumulatorReset_factory); + factory_map.emplace("AccumulatorReset", &AccumulatorReset_factory); } void AccumulatorReset::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void AccumulatorReset::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorReset.AccumulatorValue", &assign_AccumulatorReset_AccumulatorValue); + assign_map.emplace("AccumulatorReset.AccumulatorValue", &assign_AccumulatorReset_AccumulatorValue); } void AccumulatorReset::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void AccumulatorReset::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorReset.AccumulatorValue", &get_AccumulatorReset_AccumulatorValue); + get_map.emplace("AccumulatorReset.AccumulatorValue", &get_AccumulatorReset_AccumulatorValue); } void AccumulatorReset::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void AccumulatorReset::addEnumGetFnsToMap(std::map& g Control::addEnumGetFnsToMap(get_map); } +bool AccumulatorReset::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorReset" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorReset::declare() { return BaseClassDefiner(AccumulatorReset::addConstructToMap, AccumulatorReset::addPrimitiveAssignFnsToMap, AccumulatorReset::addClassAssignFnsToMap, AccumulatorReset::debugName); } +std::map AccumulatorReset::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorReset_factory() diff --git a/CGMES_3.0.0/AccumulatorReset.hpp b/CGMES_3.0.0/AccumulatorReset.hpp index 72cdd232a..05fb52daa 100644 --- a/CGMES_3.0.0/AccumulatorReset.hpp +++ b/CGMES_3.0.0/AccumulatorReset.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorReset_factory(); diff --git a/CGMES_3.0.0/AccumulatorValue.cpp b/CGMES_3.0.0/AccumulatorValue.cpp index 291ba1e5d..5eb3b9058 100644 --- a/CGMES_3.0.0/AccumulatorValue.cpp +++ b/CGMES_3.0.0/AccumulatorValue.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AccumulatorValue(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AccumulatorValue.Accumulator", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "AccumulatorValue.AccumulatorReset", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + AccumulatorValue::AccumulatorValue() : Accumulator(nullptr), AccumulatorReset(nullptr) {} AccumulatorValue::~AccumulatorValue() {} -static const std::list PossibleProfilesForClass = +const std::list& AccumulatorValue::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AccumulatorValue::getClassNamespaceUrl() const { - { "cim:AccumulatorValue.Accumulator", { CGMESProfile::OP, } }, - { "cim:AccumulatorValue.AccumulatorReset", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AccumulatorValue::getPossibleProfilesForClass() const +const std::string& AccumulatorValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AccumulatorValue::getPossibleProfilesForAttributes() const +const std::list& AccumulatorValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AccumulatorValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AccumulatorValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AccumulatorValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Accumulator_AccumulatorValues(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* AccumulatorValue::debugString() const void AccumulatorValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AccumulatorValue", &AccumulatorValue_factory); + factory_map.emplace("AccumulatorValue", &AccumulatorValue_factory); } void AccumulatorValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void AccumulatorValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AccumulatorValue.Accumulator", &assign_AccumulatorValue_Accumulator); - assign_map.emplace("cim:AccumulatorValue.AccumulatorReset", &assign_AccumulatorValue_AccumulatorReset); + assign_map.emplace("AccumulatorValue.Accumulator", &assign_AccumulatorValue_Accumulator); + assign_map.emplace("AccumulatorValue.AccumulatorReset", &assign_AccumulatorValue_AccumulatorReset); } void AccumulatorValue::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void AccumulatorValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AccumulatorValue.Accumulator", &get_AccumulatorValue_Accumulator); + get_map.emplace("AccumulatorValue.Accumulator", &get_AccumulatorValue_Accumulator); } void AccumulatorValue::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void AccumulatorValue::addEnumGetFnsToMap(std::map& g MeasurementValue::addEnumGetFnsToMap(get_map); } +bool AccumulatorValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AccumulatorValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AccumulatorValue::declare() { return BaseClassDefiner(AccumulatorValue::addConstructToMap, AccumulatorValue::addPrimitiveAssignFnsToMap, AccumulatorValue::addClassAssignFnsToMap, AccumulatorValue::debugName); } +std::map AccumulatorValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AccumulatorValue_factory() diff --git a/CGMES_3.0.0/AccumulatorValue.hpp b/CGMES_3.0.0/AccumulatorValue.hpp index 2a0273503..fb9420b31 100644 --- a/CGMES_3.0.0/AccumulatorValue.hpp +++ b/CGMES_3.0.0/AccumulatorValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AccumulatorValue_factory(); diff --git a/CGMES_3.0.0/ActivePowerLimit.cpp b/CGMES_3.0.0/ActivePowerLimit.cpp index 0ae1a565e..2a03f4359 100644 --- a/CGMES_3.0.0/ActivePowerLimit.cpp +++ b/CGMES_3.0.0/ActivePowerLimit.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ActivePowerLimit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ActivePowerLimit.normalValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ActivePowerLimit.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + ActivePowerLimit::ActivePowerLimit() {} ActivePowerLimit::~ActivePowerLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& ActivePowerLimit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ActivePowerLimit::getClassNamespaceUrl() const { - { "cim:ActivePowerLimit.normalValue", { CGMESProfile::EQ, } }, - { "cim:ActivePowerLimit.value", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ActivePowerLimit::getPossibleProfilesForClass() const +const std::string& ActivePowerLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ActivePowerLimit::getPossibleProfilesForAttributes() const +const std::list& ActivePowerLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ActivePowerLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ActivePowerLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ActivePowerLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ActivePowerLimit_normalValue(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -107,13 +139,13 @@ const char* ActivePowerLimit::debugString() const void ActivePowerLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ActivePowerLimit", &ActivePowerLimit_factory); + factory_map.emplace("ActivePowerLimit", &ActivePowerLimit_factory); } void ActivePowerLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ActivePowerLimit.normalValue", &assign_ActivePowerLimit_normalValue); - assign_map.emplace("cim:ActivePowerLimit.value", &assign_ActivePowerLimit_value); + assign_map.emplace("ActivePowerLimit.normalValue", &assign_ActivePowerLimit_normalValue); + assign_map.emplace("ActivePowerLimit.value", &assign_ActivePowerLimit_value); } void ActivePowerLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -123,8 +155,8 @@ void ActivePowerLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ActivePowerLimit.normalValue", &get_ActivePowerLimit_normalValue); - get_map.emplace("cim:ActivePowerLimit.value", &get_ActivePowerLimit_value); + get_map.emplace("ActivePowerLimit.normalValue", &get_ActivePowerLimit_normalValue); + get_map.emplace("ActivePowerLimit.value", &get_ActivePowerLimit_value); } void ActivePowerLimit::addClassGetFnsToMap(std::map& get_map) const @@ -137,11 +169,25 @@ void ActivePowerLimit::addEnumGetFnsToMap(std::map& g OperationalLimit::addEnumGetFnsToMap(get_map); } +bool ActivePowerLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ActivePowerLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ActivePowerLimit::declare() { return BaseClassDefiner(ActivePowerLimit::addConstructToMap, ActivePowerLimit::addPrimitiveAssignFnsToMap, ActivePowerLimit::addClassAssignFnsToMap, ActivePowerLimit::debugName); } +std::map ActivePowerLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ActivePowerLimit_factory() diff --git a/CGMES_3.0.0/ActivePowerLimit.hpp b/CGMES_3.0.0/ActivePowerLimit.hpp index 460a9d322..785ff7b8c 100644 --- a/CGMES_3.0.0/ActivePowerLimit.hpp +++ b/CGMES_3.0.0/ActivePowerLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ActivePowerLimit_factory(); diff --git a/CGMES_3.0.0/Analog.cpp b/CGMES_3.0.0/Analog.cpp index 5bdba8ca4..bef396bcf 100644 --- a/CGMES_3.0.0/Analog.cpp +++ b/CGMES_3.0.0/Analog.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Analog(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Analog.AnalogValues", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Analog.LimitSets", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Analog.positiveFlowIn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + Analog::Analog() {} Analog::~Analog() {} -static const std::list PossibleProfilesForClass = +const std::list& Analog::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Analog::getClassNamespaceUrl() const { - { "cim:Analog.AnalogValues", { CGMESProfile::OP, } }, - { "cim:Analog.LimitSets", { CGMESProfile::OP, } }, - { "cim:Analog.positiveFlowIn", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Analog::getPossibleProfilesForClass() const +const std::string& Analog::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Analog::getPossibleProfilesForAttributes() const +const std::list& Analog::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Analog::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Analog::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Analog::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogValue_Analog(BaseClass*, BaseClass*); @@ -116,24 +148,24 @@ const char* Analog::debugString() const void Analog::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Analog", &Analog_factory); + factory_map.emplace("Analog", &Analog_factory); } void Analog::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Analog.positiveFlowIn", &assign_Analog_positiveFlowIn); + assign_map.emplace("Analog.positiveFlowIn", &assign_Analog_positiveFlowIn); } void Analog::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Analog.AnalogValues", &assign_Analog_AnalogValues); - assign_map.emplace("cim:Analog.LimitSets", &assign_Analog_LimitSets); + assign_map.emplace("Analog.AnalogValues", &assign_Analog_AnalogValues); + assign_map.emplace("Analog.LimitSets", &assign_Analog_LimitSets); } void Analog::addPrimitiveGetFnsToMap(std::map& get_map) const { Measurement::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Analog.positiveFlowIn", &get_Analog_positiveFlowIn); + get_map.emplace("Analog.positiveFlowIn", &get_Analog_positiveFlowIn); } void Analog::addClassGetFnsToMap(std::map& get_map) const @@ -146,11 +178,25 @@ void Analog::addEnumGetFnsToMap(std::map& get_map) co Measurement::addEnumGetFnsToMap(get_map); } +bool Analog::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Analog" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Analog::declare() { return BaseClassDefiner(Analog::addConstructToMap, Analog::addPrimitiveAssignFnsToMap, Analog::addClassAssignFnsToMap, Analog::debugName); } +std::map Analog::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Analog_factory() diff --git a/CGMES_3.0.0/Analog.hpp b/CGMES_3.0.0/Analog.hpp index 03d53749e..751fc3bb0 100644 --- a/CGMES_3.0.0/Analog.hpp +++ b/CGMES_3.0.0/Analog.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Analog_factory(); diff --git a/CGMES_3.0.0/AnalogControl.cpp b/CGMES_3.0.0/AnalogControl.cpp index e2715bec0..5eb998c9a 100644 --- a/CGMES_3.0.0/AnalogControl.cpp +++ b/CGMES_3.0.0/AnalogControl.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogControl(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogControl.AnalogValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "AnalogControl.maxValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "AnalogControl.minValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogControl::AnalogControl() : AnalogValue(nullptr) {} AnalogControl::~AnalogControl() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogControl::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogControl::getClassNamespaceUrl() const { - { "cim:AnalogControl.AnalogValue", { CGMESProfile::OP, } }, - { "cim:AnalogControl.maxValue", { CGMESProfile::OP, } }, - { "cim:AnalogControl.minValue", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogControl::getPossibleProfilesForClass() const +const std::string& AnalogControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogControl::getPossibleProfilesForAttributes() const +const std::list& AnalogControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogValue_AnalogControl(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* AnalogControl::debugString() const void AnalogControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogControl", &AnalogControl_factory); + factory_map.emplace("AnalogControl", &AnalogControl_factory); } void AnalogControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogControl.maxValue", &assign_AnalogControl_maxValue); - assign_map.emplace("cim:AnalogControl.minValue", &assign_AnalogControl_minValue); + assign_map.emplace("AnalogControl.maxValue", &assign_AnalogControl_maxValue); + assign_map.emplace("AnalogControl.minValue", &assign_AnalogControl_minValue); } void AnalogControl::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogControl.AnalogValue", &assign_AnalogControl_AnalogValue); + assign_map.emplace("AnalogControl.AnalogValue", &assign_AnalogControl_AnalogValue); } void AnalogControl::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogControl.maxValue", &get_AnalogControl_maxValue); - get_map.emplace("cim:AnalogControl.minValue", &get_AnalogControl_minValue); + get_map.emplace("AnalogControl.maxValue", &get_AnalogControl_maxValue); + get_map.emplace("AnalogControl.minValue", &get_AnalogControl_minValue); } void AnalogControl::addClassGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogControl.AnalogValue", &get_AnalogControl_AnalogValue); + get_map.emplace("AnalogControl.AnalogValue", &get_AnalogControl_AnalogValue); } void AnalogControl::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void AnalogControl::addEnumGetFnsToMap(std::map& get_ Control::addEnumGetFnsToMap(get_map); } +bool AnalogControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogControl" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogControl::declare() { return BaseClassDefiner(AnalogControl::addConstructToMap, AnalogControl::addPrimitiveAssignFnsToMap, AnalogControl::addClassAssignFnsToMap, AnalogControl::debugName); } +std::map AnalogControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogControl_factory() diff --git a/CGMES_3.0.0/AnalogControl.hpp b/CGMES_3.0.0/AnalogControl.hpp index 93d5d22ee..734027a06 100644 --- a/CGMES_3.0.0/AnalogControl.hpp +++ b/CGMES_3.0.0/AnalogControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogControl_factory(); diff --git a/CGMES_3.0.0/AnalogLimit.cpp b/CGMES_3.0.0/AnalogLimit.cpp index 416324bcf..859919135 100644 --- a/CGMES_3.0.0/AnalogLimit.cpp +++ b/CGMES_3.0.0/AnalogLimit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogLimit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogLimit.LimitSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "AnalogLimit.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogLimit::AnalogLimit() : LimitSet(nullptr) {} AnalogLimit::~AnalogLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogLimit::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogLimit::getClassNamespaceUrl() const { - { "cim:AnalogLimit.LimitSet", { CGMESProfile::OP, } }, - { "cim:AnalogLimit.value", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogLimit::getPossibleProfilesForClass() const +const std::string& AnalogLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogLimit::getPossibleProfilesForAttributes() const +const std::list& AnalogLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Limit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogLimitSet_Limits(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* AnalogLimit::debugString() const void AnalogLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogLimit", &AnalogLimit_factory); + factory_map.emplace("AnalogLimit", &AnalogLimit_factory); } void AnalogLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimit.value", &assign_AnalogLimit_value); + assign_map.emplace("AnalogLimit.value", &assign_AnalogLimit_value); } void AnalogLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimit.LimitSet", &assign_AnalogLimit_LimitSet); + assign_map.emplace("AnalogLimit.LimitSet", &assign_AnalogLimit_LimitSet); } void AnalogLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { Limit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimit.value", &get_AnalogLimit_value); + get_map.emplace("AnalogLimit.value", &get_AnalogLimit_value); } void AnalogLimit::addClassGetFnsToMap(std::map& get_map) const { Limit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimit.LimitSet", &get_AnalogLimit_LimitSet); + get_map.emplace("AnalogLimit.LimitSet", &get_AnalogLimit_LimitSet); } void AnalogLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void AnalogLimit::addEnumGetFnsToMap(std::map& get_ma Limit::addEnumGetFnsToMap(get_map); } +bool AnalogLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogLimit::declare() { return BaseClassDefiner(AnalogLimit::addConstructToMap, AnalogLimit::addPrimitiveAssignFnsToMap, AnalogLimit::addClassAssignFnsToMap, AnalogLimit::debugName); } +std::map AnalogLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Limit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogLimit_factory() diff --git a/CGMES_3.0.0/AnalogLimit.hpp b/CGMES_3.0.0/AnalogLimit.hpp index 39170f133..54cc03d80 100644 --- a/CGMES_3.0.0/AnalogLimit.hpp +++ b/CGMES_3.0.0/AnalogLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Limit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogLimit_factory(); diff --git a/CGMES_3.0.0/AnalogLimitSet.cpp b/CGMES_3.0.0/AnalogLimitSet.cpp index 40231fdd4..9b9d5b967 100644 --- a/CGMES_3.0.0/AnalogLimitSet.cpp +++ b/CGMES_3.0.0/AnalogLimitSet.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogLimitSet(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogLimitSet.Limits", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "AnalogLimitSet.Measurements", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogLimitSet::AnalogLimitSet() {} AnalogLimitSet::~AnalogLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogLimitSet::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogLimitSet::getClassNamespaceUrl() const { - { "cim:AnalogLimitSet.Limits", { CGMESProfile::OP, } }, - { "cim:AnalogLimitSet.Measurements", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogLimitSet::getPossibleProfilesForClass() const +const std::string& AnalogLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogLimitSet::getPossibleProfilesForAttributes() const +const std::list& AnalogLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LimitSet::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AnalogLimit_LimitSet(BaseClass*, BaseClass*); @@ -96,7 +128,7 @@ const char* AnalogLimitSet::debugString() const void AnalogLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogLimitSet", &AnalogLimitSet_factory); + factory_map.emplace("AnalogLimitSet", &AnalogLimitSet_factory); } void AnalogLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -105,8 +137,8 @@ void AnalogLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogLimitSet.Limits", &assign_AnalogLimitSet_Limits); - assign_map.emplace("cim:AnalogLimitSet.Measurements", &assign_AnalogLimitSet_Measurements); + assign_map.emplace("AnalogLimitSet.Limits", &assign_AnalogLimitSet_Limits); + assign_map.emplace("AnalogLimitSet.Measurements", &assign_AnalogLimitSet_Measurements); } void AnalogLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -117,7 +149,7 @@ void AnalogLimitSet::addPrimitiveGetFnsToMap(std::map void AnalogLimitSet::addClassGetFnsToMap(std::map& get_map) const { LimitSet::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogLimitSet.Measurements", &get_AnalogLimitSet_Measurements); + get_map.emplace("AnalogLimitSet.Measurements", &get_AnalogLimitSet_Measurements); } void AnalogLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AnalogLimitSet::addEnumGetFnsToMap(std::map& get LimitSet::addEnumGetFnsToMap(get_map); } +bool AnalogLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogLimitSet::declare() { return BaseClassDefiner(AnalogLimitSet::addConstructToMap, AnalogLimitSet::addPrimitiveAssignFnsToMap, AnalogLimitSet::addClassAssignFnsToMap, AnalogLimitSet::debugName); } +std::map AnalogLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LimitSet::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogLimitSet_factory() diff --git a/CGMES_3.0.0/AnalogLimitSet.hpp b/CGMES_3.0.0/AnalogLimitSet.hpp index 9578bccd6..ecee16dab 100644 --- a/CGMES_3.0.0/AnalogLimitSet.hpp +++ b/CGMES_3.0.0/AnalogLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LimitSet.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogLimitSet_factory(); diff --git a/CGMES_3.0.0/AnalogValue.cpp b/CGMES_3.0.0/AnalogValue.cpp index e7b125791..4f8ec6034 100644 --- a/CGMES_3.0.0/AnalogValue.cpp +++ b/CGMES_3.0.0/AnalogValue.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AnalogValue(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AnalogValue.Analog", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "AnalogValue.AnalogControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + AnalogValue::AnalogValue() : Analog(nullptr), AnalogControl(nullptr) {} AnalogValue::~AnalogValue() {} -static const std::list PossibleProfilesForClass = +const std::list& AnalogValue::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AnalogValue::getClassNamespaceUrl() const { - { "cim:AnalogValue.Analog", { CGMESProfile::OP, } }, - { "cim:AnalogValue.AnalogControl", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AnalogValue::getPossibleProfilesForClass() const +const std::string& AnalogValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AnalogValue::getPossibleProfilesForAttributes() const +const std::list& AnalogValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AnalogValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AnalogValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AnalogValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Analog_AnalogValues(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* AnalogValue::debugString() const void AnalogValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AnalogValue", &AnalogValue_factory); + factory_map.emplace("AnalogValue", &AnalogValue_factory); } void AnalogValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void AnalogValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AnalogValue.Analog", &assign_AnalogValue_Analog); - assign_map.emplace("cim:AnalogValue.AnalogControl", &assign_AnalogValue_AnalogControl); + assign_map.emplace("AnalogValue.Analog", &assign_AnalogValue_Analog); + assign_map.emplace("AnalogValue.AnalogControl", &assign_AnalogValue_AnalogControl); } void AnalogValue::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void AnalogValue::addPrimitiveGetFnsToMap(std::map& g void AnalogValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AnalogValue.Analog", &get_AnalogValue_Analog); + get_map.emplace("AnalogValue.Analog", &get_AnalogValue_Analog); } void AnalogValue::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void AnalogValue::addEnumGetFnsToMap(std::map& get_ma MeasurementValue::addEnumGetFnsToMap(get_map); } +bool AnalogValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AnalogValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AnalogValue::declare() { return BaseClassDefiner(AnalogValue::addConstructToMap, AnalogValue::addPrimitiveAssignFnsToMap, AnalogValue::addClassAssignFnsToMap, AnalogValue::debugName); } +std::map AnalogValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AnalogValue_factory() diff --git a/CGMES_3.0.0/AnalogValue.hpp b/CGMES_3.0.0/AnalogValue.hpp index d08665c53..97e018ce7 100644 --- a/CGMES_3.0.0/AnalogValue.hpp +++ b/CGMES_3.0.0/AnalogValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AnalogValue_factory(); diff --git a/CGMES_3.0.0/ApparentPowerLimit.cpp b/CGMES_3.0.0/ApparentPowerLimit.cpp index e204319d7..3aeea961a 100644 --- a/CGMES_3.0.0/ApparentPowerLimit.cpp +++ b/CGMES_3.0.0/ApparentPowerLimit.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ApparentPowerLimit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ApparentPowerLimit.normalValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ApparentPowerLimit.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + ApparentPowerLimit::ApparentPowerLimit() {} ApparentPowerLimit::~ApparentPowerLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& ApparentPowerLimit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ApparentPowerLimit::getClassNamespaceUrl() const { - { "cim:ApparentPowerLimit.normalValue", { CGMESProfile::EQ, } }, - { "cim:ApparentPowerLimit.value", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ApparentPowerLimit::getPossibleProfilesForClass() const +const std::string& ApparentPowerLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ApparentPowerLimit::getPossibleProfilesForAttributes() const +const std::list& ApparentPowerLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ApparentPowerLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ApparentPowerLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ApparentPowerLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ApparentPowerLimit_normalValue(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -107,13 +139,13 @@ const char* ApparentPowerLimit::debugString() const void ApparentPowerLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ApparentPowerLimit", &ApparentPowerLimit_factory); + factory_map.emplace("ApparentPowerLimit", &ApparentPowerLimit_factory); } void ApparentPowerLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ApparentPowerLimit.normalValue", &assign_ApparentPowerLimit_normalValue); - assign_map.emplace("cim:ApparentPowerLimit.value", &assign_ApparentPowerLimit_value); + assign_map.emplace("ApparentPowerLimit.normalValue", &assign_ApparentPowerLimit_normalValue); + assign_map.emplace("ApparentPowerLimit.value", &assign_ApparentPowerLimit_value); } void ApparentPowerLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -123,8 +155,8 @@ void ApparentPowerLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ApparentPowerLimit.normalValue", &get_ApparentPowerLimit_normalValue); - get_map.emplace("cim:ApparentPowerLimit.value", &get_ApparentPowerLimit_value); + get_map.emplace("ApparentPowerLimit.normalValue", &get_ApparentPowerLimit_normalValue); + get_map.emplace("ApparentPowerLimit.value", &get_ApparentPowerLimit_value); } void ApparentPowerLimit::addClassGetFnsToMap(std::map& get_map) const @@ -137,11 +169,25 @@ void ApparentPowerLimit::addEnumGetFnsToMap(std::map& OperationalLimit::addEnumGetFnsToMap(get_map); } +bool ApparentPowerLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ApparentPowerLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ApparentPowerLimit::declare() { return BaseClassDefiner(ApparentPowerLimit::addConstructToMap, ApparentPowerLimit::addPrimitiveAssignFnsToMap, ApparentPowerLimit::addClassAssignFnsToMap, ApparentPowerLimit::debugName); } +std::map ApparentPowerLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ApparentPowerLimit_factory() diff --git a/CGMES_3.0.0/ApparentPowerLimit.hpp b/CGMES_3.0.0/ApparentPowerLimit.hpp index c118d7e3e..71f0a2645 100644 --- a/CGMES_3.0.0/ApparentPowerLimit.hpp +++ b/CGMES_3.0.0/ApparentPowerLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ApparentPowerLimit_factory(); diff --git a/CGMES_3.0.0/AsynchronousMachine.cpp b/CGMES_3.0.0/AsynchronousMachine.cpp index 85fbc9c4b..a9b22a294 100644 --- a/CGMES_3.0.0/AsynchronousMachine.cpp +++ b/CGMES_3.0.0/AsynchronousMachine.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachine(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachine.AsynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachine.asynchronousMachineType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "AsynchronousMachine.converterFedDrive", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "AsynchronousMachine.efficiency", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "AsynchronousMachine.iaIrRatio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "AsynchronousMachine.nominalFrequency", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.nominalSpeed", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "AsynchronousMachine.polePairNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "AsynchronousMachine.ratedMechanicalPower", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "AsynchronousMachine.reversible", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "AsynchronousMachine.rxLockedRotorRatio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachine::AsynchronousMachine() : AsynchronousMachineDynamics(nullptr) {} AsynchronousMachine::~AsynchronousMachine() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachine::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachine::getClassNamespaceUrl() const { - { "cim:AsynchronousMachine.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachine.asynchronousMachineType", { CGMESProfile::SSH, } }, - { "cim:AsynchronousMachine.converterFedDrive", { CGMESProfile::SC, } }, - { "cim:AsynchronousMachine.efficiency", { CGMESProfile::SC, } }, - { "cim:AsynchronousMachine.iaIrRatio", { CGMESProfile::SC, } }, - { "cim:AsynchronousMachine.nominalFrequency", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.nominalSpeed", { CGMESProfile::EQ, } }, - { "cim:AsynchronousMachine.polePairNumber", { CGMESProfile::SC, } }, - { "cim:AsynchronousMachine.ratedMechanicalPower", { CGMESProfile::SC, } }, - { "cim:AsynchronousMachine.reversible", { CGMESProfile::SC, } }, - { "cim:AsynchronousMachine.rxLockedRotorRatio", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachine::getPossibleProfilesForClass() const +const std::string& AsynchronousMachine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachine::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachine::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_AsynchronousMachine(BaseClass*, BaseClass*); @@ -369,40 +401,40 @@ const char* AsynchronousMachine::debugString() const void AsynchronousMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachine", &AsynchronousMachine_factory); + factory_map.emplace("AsynchronousMachine", &AsynchronousMachine_factory); } void AsynchronousMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachine.asynchronousMachineType", &assign_AsynchronousMachine_asynchronousMachineType); - assign_map.emplace("cim:AsynchronousMachine.converterFedDrive", &assign_AsynchronousMachine_converterFedDrive); - assign_map.emplace("cim:AsynchronousMachine.efficiency", &assign_AsynchronousMachine_efficiency); - assign_map.emplace("cim:AsynchronousMachine.iaIrRatio", &assign_AsynchronousMachine_iaIrRatio); - assign_map.emplace("cim:AsynchronousMachine.nominalFrequency", &assign_AsynchronousMachine_nominalFrequency); - assign_map.emplace("cim:AsynchronousMachine.nominalSpeed", &assign_AsynchronousMachine_nominalSpeed); - assign_map.emplace("cim:AsynchronousMachine.polePairNumber", &assign_AsynchronousMachine_polePairNumber); - assign_map.emplace("cim:AsynchronousMachine.ratedMechanicalPower", &assign_AsynchronousMachine_ratedMechanicalPower); - assign_map.emplace("cim:AsynchronousMachine.reversible", &assign_AsynchronousMachine_reversible); - assign_map.emplace("cim:AsynchronousMachine.rxLockedRotorRatio", &assign_AsynchronousMachine_rxLockedRotorRatio); + assign_map.emplace("AsynchronousMachine.asynchronousMachineType", &assign_AsynchronousMachine_asynchronousMachineType); + assign_map.emplace("AsynchronousMachine.converterFedDrive", &assign_AsynchronousMachine_converterFedDrive); + assign_map.emplace("AsynchronousMachine.efficiency", &assign_AsynchronousMachine_efficiency); + assign_map.emplace("AsynchronousMachine.iaIrRatio", &assign_AsynchronousMachine_iaIrRatio); + assign_map.emplace("AsynchronousMachine.nominalFrequency", &assign_AsynchronousMachine_nominalFrequency); + assign_map.emplace("AsynchronousMachine.nominalSpeed", &assign_AsynchronousMachine_nominalSpeed); + assign_map.emplace("AsynchronousMachine.polePairNumber", &assign_AsynchronousMachine_polePairNumber); + assign_map.emplace("AsynchronousMachine.ratedMechanicalPower", &assign_AsynchronousMachine_ratedMechanicalPower); + assign_map.emplace("AsynchronousMachine.reversible", &assign_AsynchronousMachine_reversible); + assign_map.emplace("AsynchronousMachine.rxLockedRotorRatio", &assign_AsynchronousMachine_rxLockedRotorRatio); } void AsynchronousMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachine.AsynchronousMachineDynamics", &assign_AsynchronousMachine_AsynchronousMachineDynamics); + assign_map.emplace("AsynchronousMachine.AsynchronousMachineDynamics", &assign_AsynchronousMachine_AsynchronousMachineDynamics); } void AsynchronousMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachine::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachine.converterFedDrive", &get_AsynchronousMachine_converterFedDrive); - get_map.emplace("cim:AsynchronousMachine.efficiency", &get_AsynchronousMachine_efficiency); - get_map.emplace("cim:AsynchronousMachine.iaIrRatio", &get_AsynchronousMachine_iaIrRatio); - get_map.emplace("cim:AsynchronousMachine.nominalFrequency", &get_AsynchronousMachine_nominalFrequency); - get_map.emplace("cim:AsynchronousMachine.nominalSpeed", &get_AsynchronousMachine_nominalSpeed); - get_map.emplace("cim:AsynchronousMachine.polePairNumber", &get_AsynchronousMachine_polePairNumber); - get_map.emplace("cim:AsynchronousMachine.ratedMechanicalPower", &get_AsynchronousMachine_ratedMechanicalPower); - get_map.emplace("cim:AsynchronousMachine.reversible", &get_AsynchronousMachine_reversible); - get_map.emplace("cim:AsynchronousMachine.rxLockedRotorRatio", &get_AsynchronousMachine_rxLockedRotorRatio); + get_map.emplace("AsynchronousMachine.converterFedDrive", &get_AsynchronousMachine_converterFedDrive); + get_map.emplace("AsynchronousMachine.efficiency", &get_AsynchronousMachine_efficiency); + get_map.emplace("AsynchronousMachine.iaIrRatio", &get_AsynchronousMachine_iaIrRatio); + get_map.emplace("AsynchronousMachine.nominalFrequency", &get_AsynchronousMachine_nominalFrequency); + get_map.emplace("AsynchronousMachine.nominalSpeed", &get_AsynchronousMachine_nominalSpeed); + get_map.emplace("AsynchronousMachine.polePairNumber", &get_AsynchronousMachine_polePairNumber); + get_map.emplace("AsynchronousMachine.ratedMechanicalPower", &get_AsynchronousMachine_ratedMechanicalPower); + get_map.emplace("AsynchronousMachine.reversible", &get_AsynchronousMachine_reversible); + get_map.emplace("AsynchronousMachine.rxLockedRotorRatio", &get_AsynchronousMachine_rxLockedRotorRatio); } void AsynchronousMachine::addClassGetFnsToMap(std::map& get_map) const @@ -413,7 +445,13 @@ void AsynchronousMachine::addClassGetFnsToMap(std::map& get_map) const { RotatingMachine::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachine.asynchronousMachineType", &get_AsynchronousMachine_asynchronousMachineType); + get_map.emplace("AsynchronousMachine.asynchronousMachineType", &get_AsynchronousMachine_asynchronousMachineType); +} + +bool AsynchronousMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AsynchronousMachine" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner AsynchronousMachine::declare() @@ -421,6 +459,14 @@ const BaseClassDefiner AsynchronousMachine::declare() return BaseClassDefiner(AsynchronousMachine::addConstructToMap, AsynchronousMachine::addPrimitiveAssignFnsToMap, AsynchronousMachine::addClassAssignFnsToMap, AsynchronousMachine::debugName); } +std::map AsynchronousMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachine::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachine_factory() diff --git a/CGMES_3.0.0/AsynchronousMachine.hpp b/CGMES_3.0.0/AsynchronousMachine.hpp index 3ae526452..988e99bbd 100644 --- a/CGMES_3.0.0/AsynchronousMachine.hpp +++ b/CGMES_3.0.0/AsynchronousMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachine.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "AsynchronousMachineKind.hpp" #include "Boolean.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachine_factory(); diff --git a/CGMES_3.0.0/AsynchronousMachineDynamics.cpp b/CGMES_3.0.0/AsynchronousMachineDynamics.cpp index a7e89471f..379ae690a 100644 --- a/CGMES_3.0.0/AsynchronousMachineDynamics.cpp +++ b/CGMES_3.0.0/AsynchronousMachineDynamics.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineDynamics.AsynchronousMachine", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.MechanicalLoadDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineDynamics::AsynchronousMachineDynamics() : AsynchronousMachine(nullptr), MechanicalLoadDynamics(nullptr), TurbineGovernorDynamics(nullptr), WindTurbineType1or2Dynamics(nullptr) {} AsynchronousMachineDynamics::~AsynchronousMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineDynamics::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineDynamics.AsynchronousMachine", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.MechanicalLoadDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineDynamics::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachine_AsynchronousMachineDynamics(BaseClass*, BaseClass*); @@ -139,7 +171,7 @@ const char* AsynchronousMachineDynamics::debugString() const void AsynchronousMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineDynamics", &AsynchronousMachineDynamics_factory); + factory_map.emplace("AsynchronousMachineDynamics", &AsynchronousMachineDynamics_factory); } void AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -148,10 +180,10 @@ void AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void AsynchronousMachineDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineDynamics.AsynchronousMachine", &assign_AsynchronousMachineDynamics_AsynchronousMachine); - assign_map.emplace("cim:AsynchronousMachineDynamics.MechanicalLoadDynamics", &assign_AsynchronousMachineDynamics_MechanicalLoadDynamics); - assign_map.emplace("cim:AsynchronousMachineDynamics.TurbineGovernorDynamics", &assign_AsynchronousMachineDynamics_TurbineGovernorDynamics); - assign_map.emplace("cim:AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", &assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics); + assign_map.emplace("AsynchronousMachineDynamics.AsynchronousMachine", &assign_AsynchronousMachineDynamics_AsynchronousMachine); + assign_map.emplace("AsynchronousMachineDynamics.MechanicalLoadDynamics", &assign_AsynchronousMachineDynamics_MechanicalLoadDynamics); + assign_map.emplace("AsynchronousMachineDynamics.TurbineGovernorDynamics", &assign_AsynchronousMachineDynamics_TurbineGovernorDynamics); + assign_map.emplace("AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", &assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics); } void AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -162,7 +194,7 @@ void AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachineDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineDynamics.AsynchronousMachine", &get_AsynchronousMachineDynamics_AsynchronousMachine); + get_map.emplace("AsynchronousMachineDynamics.AsynchronousMachine", &get_AsynchronousMachineDynamics_AsynchronousMachine); } void AsynchronousMachineDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -170,11 +202,25 @@ void AsynchronousMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineDynamics::declare() { return BaseClassDefiner(AsynchronousMachineDynamics::addConstructToMap, AsynchronousMachineDynamics::addPrimitiveAssignFnsToMap, AsynchronousMachineDynamics::addClassAssignFnsToMap, AsynchronousMachineDynamics::debugName); } +std::map AsynchronousMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineDynamics_factory() diff --git a/CGMES_3.0.0/AsynchronousMachineDynamics.hpp b/CGMES_3.0.0/AsynchronousMachineDynamics.hpp index 7be25edc8..e007e87b8 100644 --- a/CGMES_3.0.0/AsynchronousMachineDynamics.hpp +++ b/CGMES_3.0.0/AsynchronousMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineDynamics_factory(); diff --git a/CGMES_3.0.0/AsynchronousMachineEquivalentCircuit.cpp b/CGMES_3.0.0/AsynchronousMachineEquivalentCircuit.cpp index 5ed52c82d..6357476c0 100644 --- a/CGMES_3.0.0/AsynchronousMachineEquivalentCircuit.cpp +++ b/CGMES_3.0.0/AsynchronousMachineEquivalentCircuit.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineEquivalentCircuit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineEquivalentCircuit.rr1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.rr2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xlr1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xlr2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineEquivalentCircuit.xm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineEquivalentCircuit::AsynchronousMachineEquivalentCircuit() {} AsynchronousMachineEquivalentCircuit::~AsynchronousMachineEquivalentCircuit() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineEquivalentCircuit::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineEquivalentCircuit::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineEquivalentCircuit.rr1", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.rr2", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xlr1", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xlr2", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineEquivalentCircuit.xm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineEquivalentCircuit::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineEquivalentCircuit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineEquivalentCircuit::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineEquivalentCircuit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineEquivalentCircuit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineEquivalentCircuit_rr1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* AsynchronousMachineEquivalentCircuit::debugString() const void AsynchronousMachineEquivalentCircuit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineEquivalentCircuit", &AsynchronousMachineEquivalentCircuit_factory); + factory_map.emplace("AsynchronousMachineEquivalentCircuit", &AsynchronousMachineEquivalentCircuit_factory); } void AsynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr1", &assign_AsynchronousMachineEquivalentCircuit_rr1); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr2", &assign_AsynchronousMachineEquivalentCircuit_rr2); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr1", &assign_AsynchronousMachineEquivalentCircuit_xlr1); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr2", &assign_AsynchronousMachineEquivalentCircuit_xlr2); - assign_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xm", &assign_AsynchronousMachineEquivalentCircuit_xm); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.rr1", &assign_AsynchronousMachineEquivalentCircuit_rr1); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.rr2", &assign_AsynchronousMachineEquivalentCircuit_rr2); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xlr1", &assign_AsynchronousMachineEquivalentCircuit_xlr1); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xlr2", &assign_AsynchronousMachineEquivalentCircuit_xlr2); + assign_map.emplace("AsynchronousMachineEquivalentCircuit.xm", &assign_AsynchronousMachineEquivalentCircuit_xm); } void AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered void AsynchronousMachineEquivalentCircuit::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr1", &get_AsynchronousMachineEquivalentCircuit_rr1); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.rr2", &get_AsynchronousMachineEquivalentCircuit_rr2); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr1", &get_AsynchronousMachineEquivalentCircuit_xlr1); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xlr2", &get_AsynchronousMachineEquivalentCircuit_xlr2); - get_map.emplace("cim:AsynchronousMachineEquivalentCircuit.xm", &get_AsynchronousMachineEquivalentCircuit_xm); + get_map.emplace("AsynchronousMachineEquivalentCircuit.rr1", &get_AsynchronousMachineEquivalentCircuit_rr1); + get_map.emplace("AsynchronousMachineEquivalentCircuit.rr2", &get_AsynchronousMachineEquivalentCircuit_rr2); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xlr1", &get_AsynchronousMachineEquivalentCircuit_xlr1); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xlr2", &get_AsynchronousMachineEquivalentCircuit_xlr2); + get_map.emplace("AsynchronousMachineEquivalentCircuit.xm", &get_AsynchronousMachineEquivalentCircuit_xm); } void AsynchronousMachineEquivalentCircuit::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void AsynchronousMachineEquivalentCircuit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineEquivalentCircuit::declare() { return BaseClassDefiner(AsynchronousMachineEquivalentCircuit::addConstructToMap, AsynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap, AsynchronousMachineEquivalentCircuit::addClassAssignFnsToMap, AsynchronousMachineEquivalentCircuit::debugName); } +std::map AsynchronousMachineEquivalentCircuit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineEquivalentCircuit_factory() diff --git a/CGMES_3.0.0/AsynchronousMachineEquivalentCircuit.hpp b/CGMES_3.0.0/AsynchronousMachineEquivalentCircuit.hpp index 2da0252af..e1095e149 100644 --- a/CGMES_3.0.0/AsynchronousMachineEquivalentCircuit.hpp +++ b/CGMES_3.0.0/AsynchronousMachineEquivalentCircuit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineEquivalentCircuit_factory(); diff --git a/CGMES_3.0.0/AsynchronousMachineTimeConstantReactance.cpp b/CGMES_3.0.0/AsynchronousMachineTimeConstantReactance.cpp index 4f8d1492d..816f1ff4c 100644 --- a/CGMES_3.0.0/AsynchronousMachineTimeConstantReactance.cpp +++ b/CGMES_3.0.0/AsynchronousMachineTimeConstantReactance.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineTimeConstantReactance(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineTimeConstantReactance.tpo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.tppo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xpp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineTimeConstantReactance.xs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineTimeConstantReactance::AsynchronousMachineTimeConstantReactance() {} AsynchronousMachineTimeConstantReactance::~AsynchronousMachineTimeConstantReactance() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineTimeConstantReactance::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineTimeConstantReactance::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineTimeConstantReactance.tpo", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.tppo", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xp", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xpp", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineTimeConstantReactance.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineTimeConstantReactance::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineTimeConstantReactance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineTimeConstantReactance::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineTimeConstantReactance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineTimeConstantReactance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineTimeConstantReactance_tpo(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* AsynchronousMachineTimeConstantReactance::debugString() const void AsynchronousMachineTimeConstantReactance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineTimeConstantReactance", &AsynchronousMachineTimeConstantReactance_factory); + factory_map.emplace("AsynchronousMachineTimeConstantReactance", &AsynchronousMachineTimeConstantReactance_factory); } void AsynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tpo", &assign_AsynchronousMachineTimeConstantReactance_tpo); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tppo", &assign_AsynchronousMachineTimeConstantReactance_tppo); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xp", &assign_AsynchronousMachineTimeConstantReactance_xp); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xpp", &assign_AsynchronousMachineTimeConstantReactance_xpp); - assign_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xs", &assign_AsynchronousMachineTimeConstantReactance_xs); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.tpo", &assign_AsynchronousMachineTimeConstantReactance_tpo); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.tppo", &assign_AsynchronousMachineTimeConstantReactance_tppo); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xp", &assign_AsynchronousMachineTimeConstantReactance_xp); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xpp", &assign_AsynchronousMachineTimeConstantReactance_xpp); + assign_map.emplace("AsynchronousMachineTimeConstantReactance.xs", &assign_AsynchronousMachineTimeConstantReactance_xs); } void AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unord void AsynchronousMachineTimeConstantReactance::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tpo", &get_AsynchronousMachineTimeConstantReactance_tpo); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.tppo", &get_AsynchronousMachineTimeConstantReactance_tppo); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xp", &get_AsynchronousMachineTimeConstantReactance_xp); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xpp", &get_AsynchronousMachineTimeConstantReactance_xpp); - get_map.emplace("cim:AsynchronousMachineTimeConstantReactance.xs", &get_AsynchronousMachineTimeConstantReactance_xs); + get_map.emplace("AsynchronousMachineTimeConstantReactance.tpo", &get_AsynchronousMachineTimeConstantReactance_tpo); + get_map.emplace("AsynchronousMachineTimeConstantReactance.tppo", &get_AsynchronousMachineTimeConstantReactance_tppo); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xp", &get_AsynchronousMachineTimeConstantReactance_xp); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xpp", &get_AsynchronousMachineTimeConstantReactance_xpp); + get_map.emplace("AsynchronousMachineTimeConstantReactance.xs", &get_AsynchronousMachineTimeConstantReactance_xs); } void AsynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void AsynchronousMachineTimeConstantReactance::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineTimeConstantReactance::declare() { return BaseClassDefiner(AsynchronousMachineTimeConstantReactance::addConstructToMap, AsynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap, AsynchronousMachineTimeConstantReactance::addClassAssignFnsToMap, AsynchronousMachineTimeConstantReactance::debugName); } +std::map AsynchronousMachineTimeConstantReactance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineTimeConstantReactance_factory() diff --git a/CGMES_3.0.0/AsynchronousMachineTimeConstantReactance.hpp b/CGMES_3.0.0/AsynchronousMachineTimeConstantReactance.hpp index 4d32e602d..1469d8635 100644 --- a/CGMES_3.0.0/AsynchronousMachineTimeConstantReactance.hpp +++ b/CGMES_3.0.0/AsynchronousMachineTimeConstantReactance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineTimeConstantReactance_factory(); diff --git a/CGMES_3.0.0/AsynchronousMachineUserDefined.cpp b/CGMES_3.0.0/AsynchronousMachineUserDefined.cpp index df2454abf..f7f6bf41c 100644 --- a/CGMES_3.0.0/AsynchronousMachineUserDefined.cpp +++ b/CGMES_3.0.0/AsynchronousMachineUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AsynchronousMachineUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AsynchronousMachineUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "AsynchronousMachineUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + AsynchronousMachineUserDefined::AsynchronousMachineUserDefined() {} AsynchronousMachineUserDefined::~AsynchronousMachineUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& AsynchronousMachineUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AsynchronousMachineUserDefined::getClassNamespaceUrl() const { - { "cim:AsynchronousMachineUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:AsynchronousMachineUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AsynchronousMachineUserDefined::getPossibleProfilesForClass() const +const std::string& AsynchronousMachineUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AsynchronousMachineUserDefined::getPossibleProfilesForAttributes() const +const std::list& AsynchronousMachineUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AsynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AsynchronousMachineUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AsynchronousMachineUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AsynchronousMachineUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* AsynchronousMachineUserDefined::debugString() const void AsynchronousMachineUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AsynchronousMachineUserDefined", &AsynchronousMachineUserDefined_factory); + factory_map.emplace("AsynchronousMachineUserDefined", &AsynchronousMachineUserDefined_factory); } void AsynchronousMachineUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineUserDefined.proprietary", &assign_AsynchronousMachineUserDefined_proprietary); + assign_map.emplace("AsynchronousMachineUserDefined.proprietary", &assign_AsynchronousMachineUserDefined_proprietary); } void AsynchronousMachineUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AsynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("AsynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics); } void AsynchronousMachineUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { AsynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:AsynchronousMachineUserDefined.proprietary", &get_AsynchronousMachineUserDefined_proprietary); + get_map.emplace("AsynchronousMachineUserDefined.proprietary", &get_AsynchronousMachineUserDefined_proprietary); } void AsynchronousMachineUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void AsynchronousMachineUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner AsynchronousMachineUserDefined::declare() { return BaseClassDefiner(AsynchronousMachineUserDefined::addConstructToMap, AsynchronousMachineUserDefined::addPrimitiveAssignFnsToMap, AsynchronousMachineUserDefined::addClassAssignFnsToMap, AsynchronousMachineUserDefined::debugName); } +std::map AsynchronousMachineUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AsynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AsynchronousMachineUserDefined_factory() diff --git a/CGMES_3.0.0/AsynchronousMachineUserDefined.hpp b/CGMES_3.0.0/AsynchronousMachineUserDefined.hpp index bc914b662..ccf30b083 100644 --- a/CGMES_3.0.0/AsynchronousMachineUserDefined.hpp +++ b/CGMES_3.0.0/AsynchronousMachineUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AsynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AsynchronousMachineUserDefined_factory(); diff --git a/CGMES_3.0.0/AuxiliaryEquipment.cpp b/CGMES_3.0.0/AuxiliaryEquipment.cpp index 1ec47768f..a8a05cd57 100644 --- a/CGMES_3.0.0/AuxiliaryEquipment.cpp +++ b/CGMES_3.0.0/AuxiliaryEquipment.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + AuxiliaryEquipment(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "AuxiliaryEquipment.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + AuxiliaryEquipment::AuxiliaryEquipment() : Terminal(nullptr) {} AuxiliaryEquipment::~AuxiliaryEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& AuxiliaryEquipment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& AuxiliaryEquipment::getClassNamespaceUrl() const { - { "cim:AuxiliaryEquipment.Terminal", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -AuxiliaryEquipment::getPossibleProfilesForClass() const +const std::string& AuxiliaryEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -AuxiliaryEquipment::getPossibleProfilesForAttributes() const +const std::list& AuxiliaryEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& AuxiliaryEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& AuxiliaryEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& AuxiliaryEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_AuxiliaryEquipment(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* AuxiliaryEquipment::debugString() const void AuxiliaryEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:AuxiliaryEquipment", &AuxiliaryEquipment_factory); + factory_map.emplace("AuxiliaryEquipment", &AuxiliaryEquipment_factory); } void AuxiliaryEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void AuxiliaryEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:AuxiliaryEquipment.Terminal", &assign_AuxiliaryEquipment_Terminal); + assign_map.emplace("AuxiliaryEquipment.Terminal", &assign_AuxiliaryEquipment_Terminal); } void AuxiliaryEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void AuxiliaryEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:AuxiliaryEquipment.Terminal", &get_AuxiliaryEquipment_Terminal); + get_map.emplace("AuxiliaryEquipment.Terminal", &get_AuxiliaryEquipment_Terminal); } void AuxiliaryEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void AuxiliaryEquipment::addEnumGetFnsToMap(std::map& Equipment::addEnumGetFnsToMap(get_map); } +bool AuxiliaryEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "AuxiliaryEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner AuxiliaryEquipment::declare() { return BaseClassDefiner(AuxiliaryEquipment::addConstructToMap, AuxiliaryEquipment::addPrimitiveAssignFnsToMap, AuxiliaryEquipment::addClassAssignFnsToMap, AuxiliaryEquipment::debugName); } +std::map AuxiliaryEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* AuxiliaryEquipment_factory() diff --git a/CGMES_3.0.0/AuxiliaryEquipment.hpp b/CGMES_3.0.0/AuxiliaryEquipment.hpp index bfe248080..c1577d13c 100644 --- a/CGMES_3.0.0/AuxiliaryEquipment.hpp +++ b/CGMES_3.0.0/AuxiliaryEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* AuxiliaryEquipment_factory(); diff --git a/CGMES_3.0.0/BaseVoltage.cpp b/CGMES_3.0.0/BaseVoltage.cpp index b772d9a60..797513115 100644 --- a/CGMES_3.0.0/BaseVoltage.cpp +++ b/CGMES_3.0.0/BaseVoltage.cpp @@ -15,38 +15,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BaseVoltage(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BaseVoltage.ConductingEquipment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.TopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "BaseVoltage.TransformerEnds", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "BaseVoltage.VoltageLevel", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BaseVoltage.nominalVoltage", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + BaseVoltage::BaseVoltage() {} BaseVoltage::~BaseVoltage() {} -static const std::list PossibleProfilesForClass = +const std::list& BaseVoltage::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BaseVoltage::getClassNamespaceUrl() const { - { "cim:BaseVoltage.ConductingEquipment", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.TopologicalNode", { CGMESProfile::TP, } }, - { "cim:BaseVoltage.TransformerEnds", { CGMESProfile::EQ, } }, - { "cim:BaseVoltage.VoltageLevel", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BaseVoltage.nominalVoltage", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BaseVoltage::getPossibleProfilesForClass() const +const std::string& BaseVoltage::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BaseVoltage::getPossibleProfilesForAttributes() const +const std::list& BaseVoltage::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BaseVoltage::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BaseVoltage::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BaseVoltage::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_BaseVoltage(BaseClass*, BaseClass*); @@ -158,26 +190,26 @@ const char* BaseVoltage::debugString() const void BaseVoltage::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BaseVoltage", &BaseVoltage_factory); + factory_map.emplace("BaseVoltage", &BaseVoltage_factory); } void BaseVoltage::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BaseVoltage.nominalVoltage", &assign_BaseVoltage_nominalVoltage); + assign_map.emplace("BaseVoltage.nominalVoltage", &assign_BaseVoltage_nominalVoltage); } void BaseVoltage::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BaseVoltage.ConductingEquipment", &assign_BaseVoltage_ConductingEquipment); - assign_map.emplace("cim:BaseVoltage.TopologicalNode", &assign_BaseVoltage_TopologicalNode); - assign_map.emplace("cim:BaseVoltage.TransformerEnds", &assign_BaseVoltage_TransformerEnds); - assign_map.emplace("cim:BaseVoltage.VoltageLevel", &assign_BaseVoltage_VoltageLevel); + assign_map.emplace("BaseVoltage.ConductingEquipment", &assign_BaseVoltage_ConductingEquipment); + assign_map.emplace("BaseVoltage.TopologicalNode", &assign_BaseVoltage_TopologicalNode); + assign_map.emplace("BaseVoltage.TransformerEnds", &assign_BaseVoltage_TransformerEnds); + assign_map.emplace("BaseVoltage.VoltageLevel", &assign_BaseVoltage_VoltageLevel); } void BaseVoltage::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BaseVoltage.nominalVoltage", &get_BaseVoltage_nominalVoltage); + get_map.emplace("BaseVoltage.nominalVoltage", &get_BaseVoltage_nominalVoltage); } void BaseVoltage::addClassGetFnsToMap(std::map& get_map) const @@ -190,11 +222,25 @@ void BaseVoltage::addEnumGetFnsToMap(std::map& get_ma IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool BaseVoltage::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BaseVoltage" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BaseVoltage::declare() { return BaseClassDefiner(BaseVoltage::addConstructToMap, BaseVoltage::addPrimitiveAssignFnsToMap, BaseVoltage::addClassAssignFnsToMap, BaseVoltage::debugName); } +std::map BaseVoltage::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BaseVoltage_factory() diff --git a/CGMES_3.0.0/BaseVoltage.hpp b/CGMES_3.0.0/BaseVoltage.hpp index 1cc73887e..4f4822e46 100644 --- a/CGMES_3.0.0/BaseVoltage.hpp +++ b/CGMES_3.0.0/BaseVoltage.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BaseVoltage_factory(); diff --git a/CGMES_3.0.0/BasicIntervalSchedule.cpp b/CGMES_3.0.0/BasicIntervalSchedule.cpp index 2daa4c674..98f0cf76e 100644 --- a/CGMES_3.0.0/BasicIntervalSchedule.cpp +++ b/CGMES_3.0.0/BasicIntervalSchedule.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BasicIntervalSchedule(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BasicIntervalSchedule.startTime", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "BasicIntervalSchedule.value1Unit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "BasicIntervalSchedule.value2Unit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BasicIntervalSchedule::BasicIntervalSchedule() {} BasicIntervalSchedule::~BasicIntervalSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& BasicIntervalSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BasicIntervalSchedule::getClassNamespaceUrl() const { - { "cim:BasicIntervalSchedule.startTime", { CGMESProfile::EQ, } }, - { "cim:BasicIntervalSchedule.value1Unit", { CGMESProfile::EQ, } }, - { "cim:BasicIntervalSchedule.value2Unit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BasicIntervalSchedule::getPossibleProfilesForClass() const +const std::string& BasicIntervalSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BasicIntervalSchedule::getPossibleProfilesForAttributes() const +const std::list& BasicIntervalSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BasicIntervalSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BasicIntervalSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BasicIntervalSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BasicIntervalSchedule_startTime(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* BasicIntervalSchedule::debugString() const void BasicIntervalSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BasicIntervalSchedule", &BasicIntervalSchedule_factory); + factory_map.emplace("BasicIntervalSchedule", &BasicIntervalSchedule_factory); } void BasicIntervalSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BasicIntervalSchedule.startTime", &assign_BasicIntervalSchedule_startTime); - assign_map.emplace("cim:BasicIntervalSchedule.value1Unit", &assign_BasicIntervalSchedule_value1Unit); - assign_map.emplace("cim:BasicIntervalSchedule.value2Unit", &assign_BasicIntervalSchedule_value2Unit); + assign_map.emplace("BasicIntervalSchedule.startTime", &assign_BasicIntervalSchedule_startTime); + assign_map.emplace("BasicIntervalSchedule.value1Unit", &assign_BasicIntervalSchedule_value1Unit); + assign_map.emplace("BasicIntervalSchedule.value2Unit", &assign_BasicIntervalSchedule_value2Unit); } void BasicIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,7 +185,7 @@ void BasicIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BasicIntervalSchedule.startTime", &get_BasicIntervalSchedule_startTime); + get_map.emplace("BasicIntervalSchedule.startTime", &get_BasicIntervalSchedule_startTime); } void BasicIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const @@ -164,8 +196,14 @@ void BasicIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:BasicIntervalSchedule.value1Unit", &get_BasicIntervalSchedule_value1Unit); - get_map.emplace("cim:BasicIntervalSchedule.value2Unit", &get_BasicIntervalSchedule_value2Unit); + get_map.emplace("BasicIntervalSchedule.value1Unit", &get_BasicIntervalSchedule_value1Unit); + get_map.emplace("BasicIntervalSchedule.value2Unit", &get_BasicIntervalSchedule_value2Unit); +} + +bool BasicIntervalSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BasicIntervalSchedule" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner BasicIntervalSchedule::declare() @@ -173,6 +211,14 @@ const BaseClassDefiner BasicIntervalSchedule::declare() return BaseClassDefiner(BasicIntervalSchedule::addConstructToMap, BasicIntervalSchedule::addPrimitiveAssignFnsToMap, BasicIntervalSchedule::addClassAssignFnsToMap, BasicIntervalSchedule::debugName); } +std::map BasicIntervalSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BasicIntervalSchedule_factory() diff --git a/CGMES_3.0.0/BasicIntervalSchedule.hpp b/CGMES_3.0.0/BasicIntervalSchedule.hpp index a11e4b0b6..bf972c8e1 100644 --- a/CGMES_3.0.0/BasicIntervalSchedule.hpp +++ b/CGMES_3.0.0/BasicIntervalSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "UnitSymbol.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BasicIntervalSchedule_factory(); diff --git a/CGMES_3.0.0/BatteryUnit.cpp b/CGMES_3.0.0/BatteryUnit.cpp index 06255ee27..22ebd60a5 100644 --- a/CGMES_3.0.0/BatteryUnit.cpp +++ b/CGMES_3.0.0/BatteryUnit.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BatteryUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BatteryUnit.batteryState", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "BatteryUnit.ratedE", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "BatteryUnit.storedE", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + BatteryUnit::BatteryUnit() {} BatteryUnit::~BatteryUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& BatteryUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BatteryUnit::getClassNamespaceUrl() const { - { "cim:BatteryUnit.batteryState", { CGMESProfile::SSH, } }, - { "cim:BatteryUnit.ratedE", { CGMESProfile::EQ, } }, - { "cim:BatteryUnit.storedE", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BatteryUnit::getPossibleProfilesForClass() const +const std::string& BatteryUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BatteryUnit::getPossibleProfilesForAttributes() const +const std::list& BatteryUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerElectronicsUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BatteryUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BatteryUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BatteryUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BatteryUnit_batteryState(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -137,14 +169,14 @@ const char* BatteryUnit::debugString() const void BatteryUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BatteryUnit", &BatteryUnit_factory); + factory_map.emplace("BatteryUnit", &BatteryUnit_factory); } void BatteryUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BatteryUnit.batteryState", &assign_BatteryUnit_batteryState); - assign_map.emplace("cim:BatteryUnit.ratedE", &assign_BatteryUnit_ratedE); - assign_map.emplace("cim:BatteryUnit.storedE", &assign_BatteryUnit_storedE); + assign_map.emplace("BatteryUnit.batteryState", &assign_BatteryUnit_batteryState); + assign_map.emplace("BatteryUnit.ratedE", &assign_BatteryUnit_ratedE); + assign_map.emplace("BatteryUnit.storedE", &assign_BatteryUnit_storedE); } void BatteryUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -154,8 +186,8 @@ void BatteryUnit::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerElectronicsUnit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BatteryUnit.ratedE", &get_BatteryUnit_ratedE); - get_map.emplace("cim:BatteryUnit.storedE", &get_BatteryUnit_storedE); + get_map.emplace("BatteryUnit.ratedE", &get_BatteryUnit_ratedE); + get_map.emplace("BatteryUnit.storedE", &get_BatteryUnit_storedE); } void BatteryUnit::addClassGetFnsToMap(std::map& get_map) const @@ -166,7 +198,13 @@ void BatteryUnit::addClassGetFnsToMap(std::map& void BatteryUnit::addEnumGetFnsToMap(std::map& get_map) const { PowerElectronicsUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:BatteryUnit.batteryState", &get_BatteryUnit_batteryState); + get_map.emplace("BatteryUnit.batteryState", &get_BatteryUnit_batteryState); +} + +bool BatteryUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BatteryUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner BatteryUnit::declare() @@ -174,6 +212,14 @@ const BaseClassDefiner BatteryUnit::declare() return BaseClassDefiner(BatteryUnit::addConstructToMap, BatteryUnit::addPrimitiveAssignFnsToMap, BatteryUnit::addClassAssignFnsToMap, BatteryUnit::debugName); } +std::map BatteryUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerElectronicsUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BatteryUnit_factory() diff --git a/CGMES_3.0.0/BatteryUnit.hpp b/CGMES_3.0.0/BatteryUnit.hpp index 8ef3fb527..59ee1d744 100644 --- a/CGMES_3.0.0/BatteryUnit.hpp +++ b/CGMES_3.0.0/BatteryUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerElectronicsUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "BatteryStateKind.hpp" #include "RealEnergy.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BatteryUnit_factory(); diff --git a/CGMES_3.0.0/Bay.cpp b/CGMES_3.0.0/Bay.cpp index b14257a28..b42a1becc 100644 --- a/CGMES_3.0.0/Bay.cpp +++ b/CGMES_3.0.0/Bay.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Bay(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Bay.VoltageLevel", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + Bay::Bay() : VoltageLevel(nullptr) {} Bay::~Bay() {} -static const std::list PossibleProfilesForClass = +const std::list& Bay::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Bay::getClassNamespaceUrl() const { - { "cim:Bay.VoltageLevel", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Bay::getPossibleProfilesForClass() const +const std::string& Bay::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Bay::getPossibleProfilesForAttributes() const +const std::list& Bay::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Bay::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Bay::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Bay::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VoltageLevel_Bays(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* Bay::debugString() const void Bay::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Bay", &Bay_factory); + factory_map.emplace("Bay", &Bay_factory); } void Bay::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void Bay::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Bay.VoltageLevel", &assign_Bay_VoltageLevel); + assign_map.emplace("Bay.VoltageLevel", &assign_Bay_VoltageLevel); } void Bay::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void Bay::addPrimitiveGetFnsToMap(std::map& get_map) void Bay::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Bay.VoltageLevel", &get_Bay_VoltageLevel); + get_map.emplace("Bay.VoltageLevel", &get_Bay_VoltageLevel); } void Bay::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void Bay::addEnumGetFnsToMap(std::map& get_map) const EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Bay::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Bay" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Bay::declare() { return BaseClassDefiner(Bay::addConstructToMap, Bay::addPrimitiveAssignFnsToMap, Bay::addClassAssignFnsToMap, Bay::debugName); } +std::map Bay::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Bay_factory() diff --git a/CGMES_3.0.0/Bay.hpp b/CGMES_3.0.0/Bay.hpp index 7d30425e4..2ec947982 100644 --- a/CGMES_3.0.0/Bay.hpp +++ b/CGMES_3.0.0/Bay.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Bay_factory(); diff --git a/CGMES_3.0.0/BoundaryPoint.cpp b/CGMES_3.0.0/BoundaryPoint.cpp index c251d2bfd..ff9c4183c 100644 --- a/CGMES_3.0.0/BoundaryPoint.cpp +++ b/CGMES_3.0.0/BoundaryPoint.cpp @@ -12,41 +12,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BoundaryPoint(), + "http://iec.ch/TC57/CIM100-European#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BoundaryPoint.ConnectivityNode", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BoundaryPoint.fromEndIsoCode", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BoundaryPoint.fromEndName", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BoundaryPoint.fromEndNameTso", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BoundaryPoint.isDirectCurrent", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BoundaryPoint.isExcludedFromAreaInterchange", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BoundaryPoint.toEndIsoCode", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BoundaryPoint.toEndName", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "BoundaryPoint.toEndNameTso", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + BoundaryPoint::BoundaryPoint() : ConnectivityNode(nullptr) {} BoundaryPoint::~BoundaryPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& BoundaryPoint::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BoundaryPoint::getClassNamespaceUrl() const { - { "cim:BoundaryPoint.ConnectivityNode", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BoundaryPoint.fromEndIsoCode", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BoundaryPoint.fromEndName", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BoundaryPoint.fromEndNameTso", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BoundaryPoint.isDirectCurrent", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BoundaryPoint.isExcludedFromAreaInterchange", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BoundaryPoint.toEndIsoCode", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BoundaryPoint.toEndName", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:BoundaryPoint.toEndNameTso", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BoundaryPoint::getPossibleProfilesForClass() const +const std::string& BoundaryPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BoundaryPoint::getPossibleProfilesForAttributes() const +const std::list& BoundaryPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BoundaryPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BoundaryPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BoundaryPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConnectivityNode_BoundaryPoint(BaseClass*, BaseClass*); @@ -320,43 +352,43 @@ const char* BoundaryPoint::debugString() const void BoundaryPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BoundaryPoint", &BoundaryPoint_factory); + factory_map.emplace("BoundaryPoint", &BoundaryPoint_factory); } void BoundaryPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BoundaryPoint.fromEndIsoCode", &assign_BoundaryPoint_fromEndIsoCode); - assign_map.emplace("cim:BoundaryPoint.fromEndName", &assign_BoundaryPoint_fromEndName); - assign_map.emplace("cim:BoundaryPoint.fromEndNameTso", &assign_BoundaryPoint_fromEndNameTso); - assign_map.emplace("cim:BoundaryPoint.isDirectCurrent", &assign_BoundaryPoint_isDirectCurrent); - assign_map.emplace("cim:BoundaryPoint.isExcludedFromAreaInterchange", &assign_BoundaryPoint_isExcludedFromAreaInterchange); - assign_map.emplace("cim:BoundaryPoint.toEndIsoCode", &assign_BoundaryPoint_toEndIsoCode); - assign_map.emplace("cim:BoundaryPoint.toEndName", &assign_BoundaryPoint_toEndName); - assign_map.emplace("cim:BoundaryPoint.toEndNameTso", &assign_BoundaryPoint_toEndNameTso); + assign_map.emplace("BoundaryPoint.fromEndIsoCode", &assign_BoundaryPoint_fromEndIsoCode); + assign_map.emplace("BoundaryPoint.fromEndName", &assign_BoundaryPoint_fromEndName); + assign_map.emplace("BoundaryPoint.fromEndNameTso", &assign_BoundaryPoint_fromEndNameTso); + assign_map.emplace("BoundaryPoint.isDirectCurrent", &assign_BoundaryPoint_isDirectCurrent); + assign_map.emplace("BoundaryPoint.isExcludedFromAreaInterchange", &assign_BoundaryPoint_isExcludedFromAreaInterchange); + assign_map.emplace("BoundaryPoint.toEndIsoCode", &assign_BoundaryPoint_toEndIsoCode); + assign_map.emplace("BoundaryPoint.toEndName", &assign_BoundaryPoint_toEndName); + assign_map.emplace("BoundaryPoint.toEndNameTso", &assign_BoundaryPoint_toEndNameTso); } void BoundaryPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BoundaryPoint.ConnectivityNode", &assign_BoundaryPoint_ConnectivityNode); + assign_map.emplace("BoundaryPoint.ConnectivityNode", &assign_BoundaryPoint_ConnectivityNode); } void BoundaryPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BoundaryPoint.fromEndIsoCode", &get_BoundaryPoint_fromEndIsoCode); - get_map.emplace("cim:BoundaryPoint.fromEndName", &get_BoundaryPoint_fromEndName); - get_map.emplace("cim:BoundaryPoint.fromEndNameTso", &get_BoundaryPoint_fromEndNameTso); - get_map.emplace("cim:BoundaryPoint.isDirectCurrent", &get_BoundaryPoint_isDirectCurrent); - get_map.emplace("cim:BoundaryPoint.isExcludedFromAreaInterchange", &get_BoundaryPoint_isExcludedFromAreaInterchange); - get_map.emplace("cim:BoundaryPoint.toEndIsoCode", &get_BoundaryPoint_toEndIsoCode); - get_map.emplace("cim:BoundaryPoint.toEndName", &get_BoundaryPoint_toEndName); - get_map.emplace("cim:BoundaryPoint.toEndNameTso", &get_BoundaryPoint_toEndNameTso); + get_map.emplace("BoundaryPoint.fromEndIsoCode", &get_BoundaryPoint_fromEndIsoCode); + get_map.emplace("BoundaryPoint.fromEndName", &get_BoundaryPoint_fromEndName); + get_map.emplace("BoundaryPoint.fromEndNameTso", &get_BoundaryPoint_fromEndNameTso); + get_map.emplace("BoundaryPoint.isDirectCurrent", &get_BoundaryPoint_isDirectCurrent); + get_map.emplace("BoundaryPoint.isExcludedFromAreaInterchange", &get_BoundaryPoint_isExcludedFromAreaInterchange); + get_map.emplace("BoundaryPoint.toEndIsoCode", &get_BoundaryPoint_toEndIsoCode); + get_map.emplace("BoundaryPoint.toEndName", &get_BoundaryPoint_toEndName); + get_map.emplace("BoundaryPoint.toEndNameTso", &get_BoundaryPoint_toEndNameTso); } void BoundaryPoint::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:BoundaryPoint.ConnectivityNode", &get_BoundaryPoint_ConnectivityNode); + get_map.emplace("BoundaryPoint.ConnectivityNode", &get_BoundaryPoint_ConnectivityNode); } void BoundaryPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -364,11 +396,25 @@ void BoundaryPoint::addEnumGetFnsToMap(std::map& get_ PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool BoundaryPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BoundaryPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BoundaryPoint::declare() { return BaseClassDefiner(BoundaryPoint::addConstructToMap, BoundaryPoint::addPrimitiveAssignFnsToMap, BoundaryPoint::addClassAssignFnsToMap, BoundaryPoint::debugName); } +std::map BoundaryPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BoundaryPoint_factory() diff --git a/CGMES_3.0.0/BoundaryPoint.hpp b/CGMES_3.0.0/BoundaryPoint.hpp index 39f795339..5e552c04f 100644 --- a/CGMES_3.0.0/BoundaryPoint.hpp +++ b/CGMES_3.0.0/BoundaryPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "String.hpp" @@ -57,8 +58,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -66,7 +74,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BoundaryPoint_factory(); diff --git a/CGMES_3.0.0/Breaker.cpp b/CGMES_3.0.0/Breaker.cpp index 034b1ee93..49bae2245 100644 --- a/CGMES_3.0.0/Breaker.cpp +++ b/CGMES_3.0.0/Breaker.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Breaker(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Breaker::Breaker() {} Breaker::~Breaker() {} -static const std::list PossibleProfilesForClass = +const std::list& Breaker::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Breaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Breaker::getPossibleProfilesForClass() const +const std::string& Breaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Breaker::getPossibleProfilesForAttributes() const +const std::list& Breaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ProtectedSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Breaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Breaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Breaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Breaker::debugName[] = "Breaker"; @@ -47,7 +79,7 @@ const char* Breaker::debugString() const void Breaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Breaker", &Breaker_factory); + factory_map.emplace("Breaker", &Breaker_factory); } void Breaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Breaker::addEnumGetFnsToMap(std::map& get_map) c ProtectedSwitch::addEnumGetFnsToMap(get_map); } +bool Breaker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Breaker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Breaker::declare() { return BaseClassDefiner(Breaker::addConstructToMap, Breaker::addPrimitiveAssignFnsToMap, Breaker::addClassAssignFnsToMap, Breaker::debugName); } +std::map Breaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ProtectedSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Breaker_factory() diff --git a/CGMES_3.0.0/Breaker.hpp b/CGMES_3.0.0/Breaker.hpp index 812da0f56..f50099984 100644 --- a/CGMES_3.0.0/Breaker.hpp +++ b/CGMES_3.0.0/Breaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ProtectedSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Breaker_factory(); diff --git a/CGMES_3.0.0/BusNameMarker.cpp b/CGMES_3.0.0/BusNameMarker.cpp index 24a10645f..4252aab64 100644 --- a/CGMES_3.0.0/BusNameMarker.cpp +++ b/CGMES_3.0.0/BusNameMarker.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BusNameMarker(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BusNameMarker.ReportingGroup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "BusNameMarker.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "BusNameMarker.priority", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + BusNameMarker::BusNameMarker() : ReportingGroup(nullptr) {} BusNameMarker::~BusNameMarker() {} -static const std::list PossibleProfilesForClass = +const std::list& BusNameMarker::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BusNameMarker::getClassNamespaceUrl() const { - { "cim:BusNameMarker.ReportingGroup", { CGMESProfile::EQ, } }, - { "cim:BusNameMarker.Terminal", { CGMESProfile::EQ, } }, - { "cim:BusNameMarker.priority", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BusNameMarker::getPossibleProfilesForClass() const +const std::string& BusNameMarker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BusNameMarker::getPossibleProfilesForAttributes() const +const std::list& BusNameMarker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BusNameMarker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BusNameMarker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BusNameMarker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReportingGroup_BusNameMarker(BaseClass*, BaseClass*); @@ -129,30 +161,30 @@ const char* BusNameMarker::debugString() const void BusNameMarker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BusNameMarker", &BusNameMarker_factory); + factory_map.emplace("BusNameMarker", &BusNameMarker_factory); } void BusNameMarker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusNameMarker.priority", &assign_BusNameMarker_priority); + assign_map.emplace("BusNameMarker.priority", &assign_BusNameMarker_priority); } void BusNameMarker::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusNameMarker.ReportingGroup", &assign_BusNameMarker_ReportingGroup); - assign_map.emplace("cim:BusNameMarker.Terminal", &assign_BusNameMarker_Terminal); + assign_map.emplace("BusNameMarker.ReportingGroup", &assign_BusNameMarker_ReportingGroup); + assign_map.emplace("BusNameMarker.Terminal", &assign_BusNameMarker_Terminal); } void BusNameMarker::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BusNameMarker.priority", &get_BusNameMarker_priority); + get_map.emplace("BusNameMarker.priority", &get_BusNameMarker_priority); } void BusNameMarker::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:BusNameMarker.ReportingGroup", &get_BusNameMarker_ReportingGroup); + get_map.emplace("BusNameMarker.ReportingGroup", &get_BusNameMarker_ReportingGroup); } void BusNameMarker::addEnumGetFnsToMap(std::map& get_map) const @@ -160,11 +192,25 @@ void BusNameMarker::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool BusNameMarker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BusNameMarker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BusNameMarker::declare() { return BaseClassDefiner(BusNameMarker::addConstructToMap, BusNameMarker::addPrimitiveAssignFnsToMap, BusNameMarker::addClassAssignFnsToMap, BusNameMarker::debugName); } +std::map BusNameMarker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BusNameMarker_factory() diff --git a/CGMES_3.0.0/BusNameMarker.hpp b/CGMES_3.0.0/BusNameMarker.hpp index 5c5d93f69..c879b9a24 100644 --- a/CGMES_3.0.0/BusNameMarker.hpp +++ b/CGMES_3.0.0/BusNameMarker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BusNameMarker_factory(); diff --git a/CGMES_3.0.0/BusbarSection.cpp b/CGMES_3.0.0/BusbarSection.cpp index 3f2c1be50..093e14da8 100644 --- a/CGMES_3.0.0/BusbarSection.cpp +++ b/CGMES_3.0.0/BusbarSection.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + BusbarSection(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "BusbarSection.ipMax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + BusbarSection::BusbarSection() {} BusbarSection::~BusbarSection() {} -static const std::list PossibleProfilesForClass = +const std::list& BusbarSection::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& BusbarSection::getClassNamespaceUrl() const { - { "cim:BusbarSection.ipMax", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -BusbarSection::getPossibleProfilesForClass() const +const std::string& BusbarSection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -BusbarSection::getPossibleProfilesForAttributes() const +const std::list& BusbarSection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Connector::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& BusbarSection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& BusbarSection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& BusbarSection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusbarSection_ipMax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* BusbarSection::debugString() const void BusbarSection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:BusbarSection", &BusbarSection_factory); + factory_map.emplace("BusbarSection", &BusbarSection_factory); } void BusbarSection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:BusbarSection.ipMax", &assign_BusbarSection_ipMax); + assign_map.emplace("BusbarSection.ipMax", &assign_BusbarSection_ipMax); } void BusbarSection::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -92,7 +124,7 @@ void BusbarSection::addClassAssignFnsToMap(std::unordered_map& get_map) const { Connector::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:BusbarSection.ipMax", &get_BusbarSection_ipMax); + get_map.emplace("BusbarSection.ipMax", &get_BusbarSection_ipMax); } void BusbarSection::addClassGetFnsToMap(std::map& get_map) const @@ -105,11 +137,25 @@ void BusbarSection::addEnumGetFnsToMap(std::map& get_ Connector::addEnumGetFnsToMap(get_map); } +bool BusbarSection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "BusbarSection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner BusbarSection::declare() { return BaseClassDefiner(BusbarSection::addConstructToMap, BusbarSection::addPrimitiveAssignFnsToMap, BusbarSection::addClassAssignFnsToMap, BusbarSection::debugName); } +std::map BusbarSection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Connector::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* BusbarSection_factory() diff --git a/CGMES_3.0.0/BusbarSection.hpp b/CGMES_3.0.0/BusbarSection.hpp index cba2960ad..9e005bebb 100644 --- a/CGMES_3.0.0/BusbarSection.hpp +++ b/CGMES_3.0.0/BusbarSection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Connector.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* BusbarSection_factory(); diff --git a/CGMES_3.0.0/CAESPlant.cpp b/CGMES_3.0.0/CAESPlant.cpp index 170ef195e..873d9176b 100644 --- a/CGMES_3.0.0/CAESPlant.cpp +++ b/CGMES_3.0.0/CAESPlant.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CAESPlant(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CAESPlant.ThermalGeneratingUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CAESPlant::CAESPlant() : ThermalGeneratingUnit(nullptr) {} CAESPlant::~CAESPlant() {} -static const std::list PossibleProfilesForClass = +const std::list& CAESPlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CAESPlant::getClassNamespaceUrl() const { - { "cim:CAESPlant.ThermalGeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CAESPlant::getPossibleProfilesForClass() const +const std::string& CAESPlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CAESPlant::getPossibleProfilesForAttributes() const +const std::list& CAESPlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CAESPlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CAESPlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CAESPlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ThermalGeneratingUnit_CAESPlant(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* CAESPlant::debugString() const void CAESPlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CAESPlant", &CAESPlant_factory); + factory_map.emplace("CAESPlant", &CAESPlant_factory); } void CAESPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void CAESPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CAESPlant.ThermalGeneratingUnit", &assign_CAESPlant_ThermalGeneratingUnit); + assign_map.emplace("CAESPlant.ThermalGeneratingUnit", &assign_CAESPlant_ThermalGeneratingUnit); } void CAESPlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void CAESPlant::addEnumGetFnsToMap(std::map& get_map) PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool CAESPlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CAESPlant" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CAESPlant::declare() { return BaseClassDefiner(CAESPlant::addConstructToMap, CAESPlant::addPrimitiveAssignFnsToMap, CAESPlant::addClassAssignFnsToMap, CAESPlant::debugName); } +std::map CAESPlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CAESPlant_factory() diff --git a/CGMES_3.0.0/CAESPlant.hpp b/CGMES_3.0.0/CAESPlant.hpp index 4d4550b5f..23c594737 100644 --- a/CGMES_3.0.0/CAESPlant.hpp +++ b/CGMES_3.0.0/CAESPlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CAESPlant_factory(); diff --git a/CGMES_3.0.0/CSCDynamics.cpp b/CGMES_3.0.0/CSCDynamics.cpp index 9d5854f9f..3d5255b8a 100644 --- a/CGMES_3.0.0/CSCDynamics.cpp +++ b/CGMES_3.0.0/CSCDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CSCDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CSCDynamics.CSConverter", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + CSCDynamics::CSCDynamics() : CSConverter(nullptr) {} CSCDynamics::~CSCDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& CSCDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CSCDynamics::getClassNamespaceUrl() const { - { "cim:CSCDynamics.CSConverter", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CSCDynamics::getPossibleProfilesForClass() const +const std::string& CSCDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CSCDynamics::getPossibleProfilesForAttributes() const +const std::list& CSCDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = HVDCDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CSCDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CSCDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CSCDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CsConverter_CSCDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* CSCDynamics::debugString() const void CSCDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CSCDynamics", &CSCDynamics_factory); + factory_map.emplace("CSCDynamics", &CSCDynamics_factory); } void CSCDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void CSCDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CSCDynamics.CSConverter", &assign_CSCDynamics_CSConverter); + assign_map.emplace("CSCDynamics.CSConverter", &assign_CSCDynamics_CSConverter); } void CSCDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void CSCDynamics::addPrimitiveGetFnsToMap(std::map& g void CSCDynamics::addClassGetFnsToMap(std::map& get_map) const { HVDCDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:CSCDynamics.CSConverter", &get_CSCDynamics_CSConverter); + get_map.emplace("CSCDynamics.CSConverter", &get_CSCDynamics_CSConverter); } void CSCDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void CSCDynamics::addEnumGetFnsToMap(std::map& get_ma HVDCDynamics::addEnumGetFnsToMap(get_map); } +bool CSCDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CSCDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CSCDynamics::declare() { return BaseClassDefiner(CSCDynamics::addConstructToMap, CSCDynamics::addPrimitiveAssignFnsToMap, CSCDynamics::addClassAssignFnsToMap, CSCDynamics::debugName); } +std::map CSCDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = HVDCDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CSCDynamics_factory() diff --git a/CGMES_3.0.0/CSCDynamics.hpp b/CGMES_3.0.0/CSCDynamics.hpp index d5ada410a..22ff1d450 100644 --- a/CGMES_3.0.0/CSCDynamics.hpp +++ b/CGMES_3.0.0/CSCDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "HVDCDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CSCDynamics_factory(); diff --git a/CGMES_3.0.0/CSCUserDefined.cpp b/CGMES_3.0.0/CSCUserDefined.cpp index 7682b7c8e..0953e8a90 100644 --- a/CGMES_3.0.0/CSCUserDefined.cpp +++ b/CGMES_3.0.0/CSCUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CSCUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CSCUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "CSCUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + CSCUserDefined::CSCUserDefined() {} CSCUserDefined::~CSCUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& CSCUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CSCUserDefined::getClassNamespaceUrl() const { - { "cim:CSCUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:CSCUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CSCUserDefined::getPossibleProfilesForClass() const +const std::string& CSCUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CSCUserDefined::getPossibleProfilesForAttributes() const +const std::list& CSCUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = CSCDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CSCUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CSCUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CSCUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_CSCUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* CSCUserDefined::debugString() const void CSCUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CSCUserDefined", &CSCUserDefined_factory); + factory_map.emplace("CSCUserDefined", &CSCUserDefined_factory); } void CSCUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CSCUserDefined.proprietary", &assign_CSCUserDefined_proprietary); + assign_map.emplace("CSCUserDefined.proprietary", &assign_CSCUserDefined_proprietary); } void CSCUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CSCUserDefined.ProprietaryParameterDynamics", &assign_CSCUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("CSCUserDefined.ProprietaryParameterDynamics", &assign_CSCUserDefined_ProprietaryParameterDynamics); } void CSCUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { CSCDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CSCUserDefined.proprietary", &get_CSCUserDefined_proprietary); + get_map.emplace("CSCUserDefined.proprietary", &get_CSCUserDefined_proprietary); } void CSCUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void CSCUserDefined::addEnumGetFnsToMap(std::map& get CSCDynamics::addEnumGetFnsToMap(get_map); } +bool CSCUserDefined::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CSCUserDefined" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CSCUserDefined::declare() { return BaseClassDefiner(CSCUserDefined::addConstructToMap, CSCUserDefined::addPrimitiveAssignFnsToMap, CSCUserDefined::addClassAssignFnsToMap, CSCUserDefined::debugName); } +std::map CSCUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = CSCDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CSCUserDefined_factory() diff --git a/CGMES_3.0.0/CSCUserDefined.hpp b/CGMES_3.0.0/CSCUserDefined.hpp index 07ac6fb08..b2f12b901 100644 --- a/CGMES_3.0.0/CSCUserDefined.hpp +++ b/CGMES_3.0.0/CSCUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "CSCDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CSCUserDefined_factory(); diff --git a/CGMES_3.0.0/Clamp.cpp b/CGMES_3.0.0/Clamp.cpp index b2375226c..3822a7c4c 100644 --- a/CGMES_3.0.0/Clamp.cpp +++ b/CGMES_3.0.0/Clamp.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Clamp(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Clamp.ACLineSegment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Clamp.lengthFromTerminal1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Clamp::Clamp() : ACLineSegment(nullptr) {} Clamp::~Clamp() {} -static const std::list PossibleProfilesForClass = +const std::list& Clamp::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Clamp::getClassNamespaceUrl() const { - { "cim:Clamp.ACLineSegment", { CGMESProfile::EQ, } }, - { "cim:Clamp.lengthFromTerminal1", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Clamp::getPossibleProfilesForClass() const +const std::string& Clamp::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Clamp::getPossibleProfilesForAttributes() const +const std::list& Clamp::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Clamp::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Clamp::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Clamp::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACLineSegment_Clamp(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* Clamp::debugString() const void Clamp::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Clamp", &Clamp_factory); + factory_map.emplace("Clamp", &Clamp_factory); } void Clamp::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Clamp.lengthFromTerminal1", &assign_Clamp_lengthFromTerminal1); + assign_map.emplace("Clamp.lengthFromTerminal1", &assign_Clamp_lengthFromTerminal1); } void Clamp::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Clamp.ACLineSegment", &assign_Clamp_ACLineSegment); + assign_map.emplace("Clamp.ACLineSegment", &assign_Clamp_ACLineSegment); } void Clamp::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Clamp.lengthFromTerminal1", &get_Clamp_lengthFromTerminal1); + get_map.emplace("Clamp.lengthFromTerminal1", &get_Clamp_lengthFromTerminal1); } void Clamp::addClassGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Clamp.ACLineSegment", &get_Clamp_ACLineSegment); + get_map.emplace("Clamp.ACLineSegment", &get_Clamp_ACLineSegment); } void Clamp::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void Clamp::addEnumGetFnsToMap(std::map& get_map) con ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Clamp::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Clamp" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Clamp::declare() { return BaseClassDefiner(Clamp::addConstructToMap, Clamp::addPrimitiveAssignFnsToMap, Clamp::addClassAssignFnsToMap, Clamp::debugName); } +std::map Clamp::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Clamp_factory() diff --git a/CGMES_3.0.0/Clamp.hpp b/CGMES_3.0.0/Clamp.hpp index b36efb6cf..3065717a3 100644 --- a/CGMES_3.0.0/Clamp.hpp +++ b/CGMES_3.0.0/Clamp.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Length.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Clamp_factory(); diff --git a/CGMES_3.0.0/CogenerationPlant.cpp b/CGMES_3.0.0/CogenerationPlant.cpp index b7cdcd03c..47a6667db 100644 --- a/CGMES_3.0.0/CogenerationPlant.cpp +++ b/CGMES_3.0.0/CogenerationPlant.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CogenerationPlant(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CogenerationPlant.ThermalGeneratingUnits", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CogenerationPlant::CogenerationPlant() {} CogenerationPlant::~CogenerationPlant() {} -static const std::list PossibleProfilesForClass = +const std::list& CogenerationPlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CogenerationPlant::getClassNamespaceUrl() const { - { "cim:CogenerationPlant.ThermalGeneratingUnits", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CogenerationPlant::getPossibleProfilesForClass() const +const std::string& CogenerationPlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CogenerationPlant::getPossibleProfilesForAttributes() const +const std::list& CogenerationPlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CogenerationPlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CogenerationPlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CogenerationPlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ThermalGeneratingUnit_CogenerationPlant(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* CogenerationPlant::debugString() const void CogenerationPlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CogenerationPlant", &CogenerationPlant_factory); + factory_map.emplace("CogenerationPlant", &CogenerationPlant_factory); } void CogenerationPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void CogenerationPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CogenerationPlant.ThermalGeneratingUnits", &assign_CogenerationPlant_ThermalGeneratingUnits); + assign_map.emplace("CogenerationPlant.ThermalGeneratingUnits", &assign_CogenerationPlant_ThermalGeneratingUnits); } void CogenerationPlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void CogenerationPlant::addEnumGetFnsToMap(std::map& PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool CogenerationPlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CogenerationPlant" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CogenerationPlant::declare() { return BaseClassDefiner(CogenerationPlant::addConstructToMap, CogenerationPlant::addPrimitiveAssignFnsToMap, CogenerationPlant::addClassAssignFnsToMap, CogenerationPlant::debugName); } +std::map CogenerationPlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CogenerationPlant_factory() diff --git a/CGMES_3.0.0/CogenerationPlant.hpp b/CGMES_3.0.0/CogenerationPlant.hpp index b91bd5f88..dca2d02ea 100644 --- a/CGMES_3.0.0/CogenerationPlant.hpp +++ b/CGMES_3.0.0/CogenerationPlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CogenerationPlant_factory(); diff --git a/CGMES_3.0.0/CombinedCyclePlant.cpp b/CGMES_3.0.0/CombinedCyclePlant.cpp index 1d823929e..b869f60bf 100644 --- a/CGMES_3.0.0/CombinedCyclePlant.cpp +++ b/CGMES_3.0.0/CombinedCyclePlant.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CombinedCyclePlant(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CombinedCyclePlant.ThermalGeneratingUnits", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CombinedCyclePlant::CombinedCyclePlant() {} CombinedCyclePlant::~CombinedCyclePlant() {} -static const std::list PossibleProfilesForClass = +const std::list& CombinedCyclePlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CombinedCyclePlant::getClassNamespaceUrl() const { - { "cim:CombinedCyclePlant.ThermalGeneratingUnits", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CombinedCyclePlant::getPossibleProfilesForClass() const +const std::string& CombinedCyclePlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CombinedCyclePlant::getPossibleProfilesForAttributes() const +const std::list& CombinedCyclePlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CombinedCyclePlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CombinedCyclePlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CombinedCyclePlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ThermalGeneratingUnit_CombinedCyclePlant(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* CombinedCyclePlant::debugString() const void CombinedCyclePlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CombinedCyclePlant", &CombinedCyclePlant_factory); + factory_map.emplace("CombinedCyclePlant", &CombinedCyclePlant_factory); } void CombinedCyclePlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void CombinedCyclePlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CombinedCyclePlant.ThermalGeneratingUnits", &assign_CombinedCyclePlant_ThermalGeneratingUnits); + assign_map.emplace("CombinedCyclePlant.ThermalGeneratingUnits", &assign_CombinedCyclePlant_ThermalGeneratingUnits); } void CombinedCyclePlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void CombinedCyclePlant::addEnumGetFnsToMap(std::map& PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool CombinedCyclePlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CombinedCyclePlant" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CombinedCyclePlant::declare() { return BaseClassDefiner(CombinedCyclePlant::addConstructToMap, CombinedCyclePlant::addPrimitiveAssignFnsToMap, CombinedCyclePlant::addClassAssignFnsToMap, CombinedCyclePlant::debugName); } +std::map CombinedCyclePlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CombinedCyclePlant_factory() diff --git a/CGMES_3.0.0/CombinedCyclePlant.hpp b/CGMES_3.0.0/CombinedCyclePlant.hpp index 73d782500..5ad97b34c 100644 --- a/CGMES_3.0.0/CombinedCyclePlant.hpp +++ b/CGMES_3.0.0/CombinedCyclePlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CombinedCyclePlant_factory(); diff --git a/CGMES_3.0.0/Command.cpp b/CGMES_3.0.0/Command.cpp index 2a09af566..4f5728a7f 100644 --- a/CGMES_3.0.0/Command.cpp +++ b/CGMES_3.0.0/Command.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Command(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Command.DiscreteValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Command.ValueAliasSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Command.normalValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Command.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + Command::Command() : DiscreteValue(nullptr), ValueAliasSet(nullptr) {} Command::~Command() {} -static const std::list PossibleProfilesForClass = +const std::list& Command::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Command::getClassNamespaceUrl() const { - { "cim:Command.DiscreteValue", { CGMESProfile::OP, } }, - { "cim:Command.ValueAliasSet", { CGMESProfile::OP, } }, - { "cim:Command.normalValue", { CGMESProfile::OP, } }, - { "cim:Command.value", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Command::getPossibleProfilesForClass() const +const std::string& Command::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Command::getPossibleProfilesForAttributes() const +const std::list& Command::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Control::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Command::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Command::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Command::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscreteValue_Command(BaseClass*, BaseClass*); @@ -172,33 +204,33 @@ const char* Command::debugString() const void Command::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Command", &Command_factory); + factory_map.emplace("Command", &Command_factory); } void Command::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Command.normalValue", &assign_Command_normalValue); - assign_map.emplace("cim:Command.value", &assign_Command_value); + assign_map.emplace("Command.normalValue", &assign_Command_normalValue); + assign_map.emplace("Command.value", &assign_Command_value); } void Command::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Command.DiscreteValue", &assign_Command_DiscreteValue); - assign_map.emplace("cim:Command.ValueAliasSet", &assign_Command_ValueAliasSet); + assign_map.emplace("Command.DiscreteValue", &assign_Command_DiscreteValue); + assign_map.emplace("Command.ValueAliasSet", &assign_Command_ValueAliasSet); } void Command::addPrimitiveGetFnsToMap(std::map& get_map) const { Control::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Command.normalValue", &get_Command_normalValue); - get_map.emplace("cim:Command.value", &get_Command_value); + get_map.emplace("Command.normalValue", &get_Command_normalValue); + get_map.emplace("Command.value", &get_Command_value); } void Command::addClassGetFnsToMap(std::map& get_map) const { Control::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Command.DiscreteValue", &get_Command_DiscreteValue); - get_map.emplace("cim:Command.ValueAliasSet", &get_Command_ValueAliasSet); + get_map.emplace("Command.DiscreteValue", &get_Command_DiscreteValue); + get_map.emplace("Command.ValueAliasSet", &get_Command_ValueAliasSet); } void Command::addEnumGetFnsToMap(std::map& get_map) const @@ -206,11 +238,25 @@ void Command::addEnumGetFnsToMap(std::map& get_map) c Control::addEnumGetFnsToMap(get_map); } +bool Command::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Command" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Command::declare() { return BaseClassDefiner(Command::addConstructToMap, Command::addPrimitiveAssignFnsToMap, Command::addClassAssignFnsToMap, Command::debugName); } +std::map Command::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Control::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Command_factory() diff --git a/CGMES_3.0.0/Command.hpp b/CGMES_3.0.0/Command.hpp index 9c87ed759..512ef25d9 100644 --- a/CGMES_3.0.0/Command.hpp +++ b/CGMES_3.0.0/Command.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Control.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Command_factory(); diff --git a/CGMES_3.0.0/ConductingEquipment.cpp b/CGMES_3.0.0/ConductingEquipment.cpp index c66f4d773..a3ec4603c 100644 --- a/CGMES_3.0.0/ConductingEquipment.cpp +++ b/CGMES_3.0.0/ConductingEquipment.cpp @@ -14,39 +14,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConductingEquipment(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::SC, + CGMESProfile::SSH, + CGMESProfile::SV, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConductingEquipment.BaseVoltage", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ConductingEquipment.SvStatus", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "ConductingEquipment.Terminals", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + ConductingEquipment::ConductingEquipment() : BaseVoltage(nullptr), SvStatus(nullptr) {} ConductingEquipment::~ConductingEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& ConductingEquipment::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::SC, - CGMESProfile::SSH, - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConductingEquipment::getClassNamespaceUrl() const { - { "cim:ConductingEquipment.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:ConductingEquipment.SvStatus", { CGMESProfile::SV, } }, - { "cim:ConductingEquipment.Terminals", { CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConductingEquipment::getPossibleProfilesForClass() const +const std::string& ConductingEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConductingEquipment::getPossibleProfilesForAttributes() const +const std::list& ConductingEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConductingEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConductingEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConductingEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_ConductingEquipment(BaseClass*, BaseClass*); @@ -124,7 +156,7 @@ const char* ConductingEquipment::debugString() const void ConductingEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConductingEquipment", &ConductingEquipment_factory); + factory_map.emplace("ConductingEquipment", &ConductingEquipment_factory); } void ConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -133,9 +165,9 @@ void ConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConductingEquipment.BaseVoltage", &assign_ConductingEquipment_BaseVoltage); - assign_map.emplace("cim:ConductingEquipment.SvStatus", &assign_ConductingEquipment_SvStatus); - assign_map.emplace("cim:ConductingEquipment.Terminals", &assign_ConductingEquipment_Terminals); + assign_map.emplace("ConductingEquipment.BaseVoltage", &assign_ConductingEquipment_BaseVoltage); + assign_map.emplace("ConductingEquipment.SvStatus", &assign_ConductingEquipment_SvStatus); + assign_map.emplace("ConductingEquipment.Terminals", &assign_ConductingEquipment_Terminals); } void ConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -146,7 +178,7 @@ void ConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConductingEquipment.BaseVoltage", &get_ConductingEquipment_BaseVoltage); + get_map.emplace("ConductingEquipment.BaseVoltage", &get_ConductingEquipment_BaseVoltage); } void ConductingEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -154,11 +186,25 @@ void ConductingEquipment::addEnumGetFnsToMap(std::map Equipment::addEnumGetFnsToMap(get_map); } +bool ConductingEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConductingEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConductingEquipment::declare() { return BaseClassDefiner(ConductingEquipment::addConstructToMap, ConductingEquipment::addPrimitiveAssignFnsToMap, ConductingEquipment::addClassAssignFnsToMap, ConductingEquipment::debugName); } +std::map ConductingEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConductingEquipment_factory() diff --git a/CGMES_3.0.0/ConductingEquipment.hpp b/CGMES_3.0.0/ConductingEquipment.hpp index 111940ad9..54fe407fb 100644 --- a/CGMES_3.0.0/ConductingEquipment.hpp +++ b/CGMES_3.0.0/ConductingEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConductingEquipment_factory(); diff --git a/CGMES_3.0.0/Conductor.cpp b/CGMES_3.0.0/Conductor.cpp index 88f96f1b2..0f0d2beac 100644 --- a/CGMES_3.0.0/Conductor.cpp +++ b/CGMES_3.0.0/Conductor.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Conductor(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Conductor.length", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Conductor::Conductor() {} Conductor::~Conductor() {} -static const std::list PossibleProfilesForClass = +const std::list& Conductor::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Conductor::getClassNamespaceUrl() const { - { "cim:Conductor.length", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Conductor::getPossibleProfilesForClass() const +const std::string& Conductor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Conductor::getPossibleProfilesForAttributes() const +const std::list& Conductor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Conductor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Conductor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Conductor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Conductor_length(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* Conductor::debugString() const void Conductor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Conductor", &Conductor_factory); + factory_map.emplace("Conductor", &Conductor_factory); } void Conductor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Conductor.length", &assign_Conductor_length); + assign_map.emplace("Conductor.length", &assign_Conductor_length); } void Conductor::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -92,7 +124,7 @@ void Conductor::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Conductor.length", &get_Conductor_length); + get_map.emplace("Conductor.length", &get_Conductor_length); } void Conductor::addClassGetFnsToMap(std::map& get_map) const @@ -105,11 +137,25 @@ void Conductor::addEnumGetFnsToMap(std::map& get_map) ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Conductor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Conductor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Conductor::declare() { return BaseClassDefiner(Conductor::addConstructToMap, Conductor::addPrimitiveAssignFnsToMap, Conductor::addClassAssignFnsToMap, Conductor::debugName); } +std::map Conductor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Conductor_factory() diff --git a/CGMES_3.0.0/Conductor.hpp b/CGMES_3.0.0/Conductor.hpp index 577088354..98a8afb21 100644 --- a/CGMES_3.0.0/Conductor.hpp +++ b/CGMES_3.0.0/Conductor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Length.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Conductor_factory(); diff --git a/CGMES_3.0.0/ConformLoad.cpp b/CGMES_3.0.0/ConformLoad.cpp index ab5e59f20..5eee2b44d 100644 --- a/CGMES_3.0.0/ConformLoad.cpp +++ b/CGMES_3.0.0/ConformLoad.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoad(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoad.LoadGroup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoad::ConformLoad() : LoadGroup(nullptr) {} ConformLoad::~ConformLoad() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoad::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoad::getClassNamespaceUrl() const { - { "cim:ConformLoad.LoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoad::getPossibleProfilesForClass() const +const std::string& ConformLoad::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoad::getPossibleProfilesForAttributes() const +const std::list& ConformLoad::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoad::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoad::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoad::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadGroup_EnergyConsumers(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* ConformLoad::debugString() const void ConformLoad::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoad", &ConformLoad_factory); + factory_map.emplace("ConformLoad", &ConformLoad_factory); } void ConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void ConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoad.LoadGroup", &assign_ConformLoad_LoadGroup); + assign_map.emplace("ConformLoad.LoadGroup", &assign_ConformLoad_LoadGroup); } void ConformLoad::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void ConformLoad::addPrimitiveGetFnsToMap(std::map& g void ConformLoad::addClassGetFnsToMap(std::map& get_map) const { EnergyConsumer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConformLoad.LoadGroup", &get_ConformLoad_LoadGroup); + get_map.emplace("ConformLoad.LoadGroup", &get_ConformLoad_LoadGroup); } void ConformLoad::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void ConformLoad::addEnumGetFnsToMap(std::map& get_ma EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool ConformLoad::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoad" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoad::declare() { return BaseClassDefiner(ConformLoad::addConstructToMap, ConformLoad::addPrimitiveAssignFnsToMap, ConformLoad::addClassAssignFnsToMap, ConformLoad::debugName); } +std::map ConformLoad::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoad_factory() diff --git a/CGMES_3.0.0/ConformLoad.hpp b/CGMES_3.0.0/ConformLoad.hpp index 0448c6f96..7a3c55f03 100644 --- a/CGMES_3.0.0/ConformLoad.hpp +++ b/CGMES_3.0.0/ConformLoad.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoad_factory(); diff --git a/CGMES_3.0.0/ConformLoadGroup.cpp b/CGMES_3.0.0/ConformLoadGroup.cpp index c8d5c15fa..99f316c4f 100644 --- a/CGMES_3.0.0/ConformLoadGroup.cpp +++ b/CGMES_3.0.0/ConformLoadGroup.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoadGroup(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoadGroup.ConformLoadSchedules", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ConformLoadGroup.EnergyConsumers", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoadGroup::ConformLoadGroup() {} ConformLoadGroup::~ConformLoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoadGroup::getClassNamespaceUrl() const { - { "cim:ConformLoadGroup.ConformLoadSchedules", { CGMESProfile::EQ, } }, - { "cim:ConformLoadGroup.EnergyConsumers", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoadGroup::getPossibleProfilesForClass() const +const std::string& ConformLoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoadGroup::getPossibleProfilesForAttributes() const +const std::list& ConformLoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadGroup::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadSchedule_ConformLoadGroup(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* ConformLoadGroup::debugString() const void ConformLoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoadGroup", &ConformLoadGroup_factory); + factory_map.emplace("ConformLoadGroup", &ConformLoadGroup_factory); } void ConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void ConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoadGroup.ConformLoadSchedules", &assign_ConformLoadGroup_ConformLoadSchedules); - assign_map.emplace("cim:ConformLoadGroup.EnergyConsumers", &assign_ConformLoadGroup_EnergyConsumers); + assign_map.emplace("ConformLoadGroup.ConformLoadSchedules", &assign_ConformLoadGroup_ConformLoadSchedules); + assign_map.emplace("ConformLoadGroup.EnergyConsumers", &assign_ConformLoadGroup_EnergyConsumers); } void ConformLoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void ConformLoadGroup::addEnumGetFnsToMap(std::map& g LoadGroup::addEnumGetFnsToMap(get_map); } +bool ConformLoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoadGroup::declare() { return BaseClassDefiner(ConformLoadGroup::addConstructToMap, ConformLoadGroup::addPrimitiveAssignFnsToMap, ConformLoadGroup::addClassAssignFnsToMap, ConformLoadGroup::debugName); } +std::map ConformLoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadGroup::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoadGroup_factory() diff --git a/CGMES_3.0.0/ConformLoadGroup.hpp b/CGMES_3.0.0/ConformLoadGroup.hpp index 5e59426da..7a1f564e0 100644 --- a/CGMES_3.0.0/ConformLoadGroup.hpp +++ b/CGMES_3.0.0/ConformLoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadGroup.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoadGroup_factory(); diff --git a/CGMES_3.0.0/ConformLoadSchedule.cpp b/CGMES_3.0.0/ConformLoadSchedule.cpp index 51bb1e07b..34c2d6042 100644 --- a/CGMES_3.0.0/ConformLoadSchedule.cpp +++ b/CGMES_3.0.0/ConformLoadSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConformLoadSchedule(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConformLoadSchedule.ConformLoadGroup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ConformLoadSchedule::ConformLoadSchedule() : ConformLoadGroup(nullptr) {} ConformLoadSchedule::~ConformLoadSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& ConformLoadSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConformLoadSchedule::getClassNamespaceUrl() const { - { "cim:ConformLoadSchedule.ConformLoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConformLoadSchedule::getPossibleProfilesForClass() const +const std::string& ConformLoadSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConformLoadSchedule::getPossibleProfilesForAttributes() const +const std::list& ConformLoadSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConformLoadSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConformLoadSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConformLoadSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConformLoadGroup_ConformLoadSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* ConformLoadSchedule::debugString() const void ConformLoadSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConformLoadSchedule", &ConformLoadSchedule_factory); + factory_map.emplace("ConformLoadSchedule", &ConformLoadSchedule_factory); } void ConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void ConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConformLoadSchedule.ConformLoadGroup", &assign_ConformLoadSchedule_ConformLoadGroup); + assign_map.emplace("ConformLoadSchedule.ConformLoadGroup", &assign_ConformLoadSchedule_ConformLoadGroup); } void ConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void ConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConformLoadSchedule.ConformLoadGroup", &get_ConformLoadSchedule_ConformLoadGroup); + get_map.emplace("ConformLoadSchedule.ConformLoadGroup", &get_ConformLoadSchedule_ConformLoadGroup); } void ConformLoadSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void ConformLoadSchedule::addEnumGetFnsToMap(std::map SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool ConformLoadSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConformLoadSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConformLoadSchedule::declare() { return BaseClassDefiner(ConformLoadSchedule::addConstructToMap, ConformLoadSchedule::addPrimitiveAssignFnsToMap, ConformLoadSchedule::addClassAssignFnsToMap, ConformLoadSchedule::debugName); } +std::map ConformLoadSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConformLoadSchedule_factory() diff --git a/CGMES_3.0.0/ConformLoadSchedule.hpp b/CGMES_3.0.0/ConformLoadSchedule.hpp index 72fd6f6af..a4b404d3f 100644 --- a/CGMES_3.0.0/ConformLoadSchedule.hpp +++ b/CGMES_3.0.0/ConformLoadSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConformLoadSchedule_factory(); diff --git a/CGMES_3.0.0/ConnectivityNode.cpp b/CGMES_3.0.0/ConnectivityNode.cpp index 9b36c69ad..6c4175ac6 100644 --- a/CGMES_3.0.0/ConnectivityNode.cpp +++ b/CGMES_3.0.0/ConnectivityNode.cpp @@ -15,37 +15,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConnectivityNode(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConnectivityNode.BoundaryPoint", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "ConnectivityNode.ConnectivityNodeContainer", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "ConnectivityNode.Terminals", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "ConnectivityNode.TopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ConnectivityNode::ConnectivityNode() : BoundaryPoint(nullptr), ConnectivityNodeContainer(nullptr), TopologicalNode(nullptr) {} ConnectivityNode::~ConnectivityNode() {} -static const std::list PossibleProfilesForClass = +const std::list& ConnectivityNode::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConnectivityNode::getClassNamespaceUrl() const { - { "cim:ConnectivityNode.BoundaryPoint", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:ConnectivityNode.ConnectivityNodeContainer", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:ConnectivityNode.Terminals", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:ConnectivityNode.TopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConnectivityNode::getPossibleProfilesForClass() const +const std::string& ConnectivityNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConnectivityNode::getPossibleProfilesForAttributes() const +const std::list& ConnectivityNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConnectivityNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConnectivityNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConnectivityNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BoundaryPoint_ConnectivityNode(BaseClass*, BaseClass*); @@ -154,7 +186,7 @@ const char* ConnectivityNode::debugString() const void ConnectivityNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConnectivityNode", &ConnectivityNode_factory); + factory_map.emplace("ConnectivityNode", &ConnectivityNode_factory); } void ConnectivityNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -163,10 +195,10 @@ void ConnectivityNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNode.BoundaryPoint", &assign_ConnectivityNode_BoundaryPoint); - assign_map.emplace("cim:ConnectivityNode.ConnectivityNodeContainer", &assign_ConnectivityNode_ConnectivityNodeContainer); - assign_map.emplace("cim:ConnectivityNode.Terminals", &assign_ConnectivityNode_Terminals); - assign_map.emplace("cim:ConnectivityNode.TopologicalNode", &assign_ConnectivityNode_TopologicalNode); + assign_map.emplace("ConnectivityNode.BoundaryPoint", &assign_ConnectivityNode_BoundaryPoint); + assign_map.emplace("ConnectivityNode.ConnectivityNodeContainer", &assign_ConnectivityNode_ConnectivityNodeContainer); + assign_map.emplace("ConnectivityNode.Terminals", &assign_ConnectivityNode_Terminals); + assign_map.emplace("ConnectivityNode.TopologicalNode", &assign_ConnectivityNode_TopologicalNode); } void ConnectivityNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -177,8 +209,8 @@ void ConnectivityNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ConnectivityNode.ConnectivityNodeContainer", &get_ConnectivityNode_ConnectivityNodeContainer); - get_map.emplace("cim:ConnectivityNode.TopologicalNode", &get_ConnectivityNode_TopologicalNode); + get_map.emplace("ConnectivityNode.ConnectivityNodeContainer", &get_ConnectivityNode_ConnectivityNodeContainer); + get_map.emplace("ConnectivityNode.TopologicalNode", &get_ConnectivityNode_TopologicalNode); } void ConnectivityNode::addEnumGetFnsToMap(std::map& get_map) const @@ -186,11 +218,25 @@ void ConnectivityNode::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ConnectivityNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ConnectivityNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ConnectivityNode::declare() { return BaseClassDefiner(ConnectivityNode::addConstructToMap, ConnectivityNode::addPrimitiveAssignFnsToMap, ConnectivityNode::addClassAssignFnsToMap, ConnectivityNode::debugName); } +std::map ConnectivityNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConnectivityNode_factory() diff --git a/CGMES_3.0.0/ConnectivityNode.hpp b/CGMES_3.0.0/ConnectivityNode.hpp index a4af858d7..f004a2912 100644 --- a/CGMES_3.0.0/ConnectivityNode.hpp +++ b/CGMES_3.0.0/ConnectivityNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConnectivityNode_factory(); diff --git a/CGMES_3.0.0/ConnectivityNodeContainer.cpp b/CGMES_3.0.0/ConnectivityNodeContainer.cpp index 4d1464ce8..5ea89c8ec 100644 --- a/CGMES_3.0.0/ConnectivityNodeContainer.cpp +++ b/CGMES_3.0.0/ConnectivityNodeContainer.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ConnectivityNodeContainer(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ConnectivityNodeContainer.ConnectivityNodes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "ConnectivityNodeContainer.TopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ConnectivityNodeContainer::ConnectivityNodeContainer() {} ConnectivityNodeContainer::~ConnectivityNodeContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& ConnectivityNodeContainer::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ConnectivityNodeContainer::getClassNamespaceUrl() const { - { "cim:ConnectivityNodeContainer.ConnectivityNodes", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:ConnectivityNodeContainer.TopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ConnectivityNodeContainer::getPossibleProfilesForClass() const +const std::string& ConnectivityNodeContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ConnectivityNodeContainer::getPossibleProfilesForAttributes() const +const std::list& ConnectivityNodeContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ConnectivityNodeContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ConnectivityNodeContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ConnectivityNodeContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConnectivityNode_ConnectivityNodeContainer(BaseClass*, BaseClass*); @@ -88,7 +120,7 @@ const char* ConnectivityNodeContainer::debugString() const void ConnectivityNodeContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ConnectivityNodeContainer", &ConnectivityNodeContainer_factory); + factory_map.emplace("ConnectivityNodeContainer", &ConnectivityNodeContainer_factory); } void ConnectivityNodeContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -97,8 +129,8 @@ void ConnectivityNodeContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ConnectivityNodeContainer.ConnectivityNodes", &assign_ConnectivityNodeContainer_ConnectivityNodes); - assign_map.emplace("cim:ConnectivityNodeContainer.TopologicalNode", &assign_ConnectivityNodeContainer_TopologicalNode); + assign_map.emplace("ConnectivityNodeContainer.ConnectivityNodes", &assign_ConnectivityNodeContainer_ConnectivityNodes); + assign_map.emplace("ConnectivityNodeContainer.TopologicalNode", &assign_ConnectivityNodeContainer_TopologicalNode); } void ConnectivityNodeContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -116,11 +148,25 @@ void ConnectivityNodeContainer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ConnectivityNodeContainer::declare() { return BaseClassDefiner(ConnectivityNodeContainer::addConstructToMap, ConnectivityNodeContainer::addPrimitiveAssignFnsToMap, ConnectivityNodeContainer::addClassAssignFnsToMap, ConnectivityNodeContainer::debugName); } +std::map ConnectivityNodeContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ConnectivityNodeContainer_factory() diff --git a/CGMES_3.0.0/ConnectivityNodeContainer.hpp b/CGMES_3.0.0/ConnectivityNodeContainer.hpp index 4ab1c963f..da93c0b70 100644 --- a/CGMES_3.0.0/ConnectivityNodeContainer.hpp +++ b/CGMES_3.0.0/ConnectivityNodeContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ConnectivityNodeContainer_factory(); diff --git a/CGMES_3.0.0/Connector.cpp b/CGMES_3.0.0/Connector.cpp index f1e1ceaab..bd33ffe8e 100644 --- a/CGMES_3.0.0/Connector.cpp +++ b/CGMES_3.0.0/Connector.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Connector(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Connector::Connector() {} Connector::~Connector() {} -static const std::list PossibleProfilesForClass = +const std::list& Connector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Connector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Connector::getPossibleProfilesForClass() const +const std::string& Connector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Connector::getPossibleProfilesForAttributes() const +const std::list& Connector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Connector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Connector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Connector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Connector::debugName[] = "Connector"; @@ -48,7 +80,7 @@ const char* Connector::debugString() const void Connector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Connector", &Connector_factory); + factory_map.emplace("Connector", &Connector_factory); } void Connector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -74,11 +106,25 @@ void Connector::addEnumGetFnsToMap(std::map& get_map) ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Connector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Connector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Connector::declare() { return BaseClassDefiner(Connector::addConstructToMap, Connector::addPrimitiveAssignFnsToMap, Connector::addClassAssignFnsToMap, Connector::debugName); } +std::map Connector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Connector_factory() diff --git a/CGMES_3.0.0/Connector.hpp b/CGMES_3.0.0/Connector.hpp index 0c319c834..086ce0513 100644 --- a/CGMES_3.0.0/Connector.hpp +++ b/CGMES_3.0.0/Connector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Connector_factory(); diff --git a/CGMES_3.0.0/Control.cpp b/CGMES_3.0.0/Control.cpp index c87cff223..668b2388d 100644 --- a/CGMES_3.0.0/Control.cpp +++ b/CGMES_3.0.0/Control.cpp @@ -12,37 +12,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Control(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Control.PowerSystemResource", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Control.controlType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Control.operationInProgress", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Control.timeStamp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Control.unitMultiplier", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Control.unitSymbol", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + Control::Control() : PowerSystemResource(nullptr) {} Control::~Control() {} -static const std::list PossibleProfilesForClass = +const std::list& Control::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Control::getClassNamespaceUrl() const { - { "cim:Control.PowerSystemResource", { CGMESProfile::OP, } }, - { "cim:Control.controlType", { CGMESProfile::OP, } }, - { "cim:Control.operationInProgress", { CGMESProfile::OP, } }, - { "cim:Control.timeStamp", { CGMESProfile::OP, } }, - { "cim:Control.unitMultiplier", { CGMESProfile::OP, } }, - { "cim:Control.unitSymbol", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Control::getPossibleProfilesForClass() const +const std::string& Control::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Control::getPossibleProfilesForAttributes() const +const std::list& Control::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IOPoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Control::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Control::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Control::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerSystemResource_Controls(BaseClass*, BaseClass*); @@ -229,42 +261,48 @@ const char* Control::debugString() const void Control::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Control", &Control_factory); + factory_map.emplace("Control", &Control_factory); } void Control::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Control.controlType", &assign_Control_controlType); - assign_map.emplace("cim:Control.operationInProgress", &assign_Control_operationInProgress); - assign_map.emplace("cim:Control.timeStamp", &assign_Control_timeStamp); - assign_map.emplace("cim:Control.unitMultiplier", &assign_Control_unitMultiplier); - assign_map.emplace("cim:Control.unitSymbol", &assign_Control_unitSymbol); + assign_map.emplace("Control.controlType", &assign_Control_controlType); + assign_map.emplace("Control.operationInProgress", &assign_Control_operationInProgress); + assign_map.emplace("Control.timeStamp", &assign_Control_timeStamp); + assign_map.emplace("Control.unitMultiplier", &assign_Control_unitMultiplier); + assign_map.emplace("Control.unitSymbol", &assign_Control_unitSymbol); } void Control::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Control.PowerSystemResource", &assign_Control_PowerSystemResource); + assign_map.emplace("Control.PowerSystemResource", &assign_Control_PowerSystemResource); } void Control::addPrimitiveGetFnsToMap(std::map& get_map) const { IOPoint::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Control.controlType", &get_Control_controlType); - get_map.emplace("cim:Control.operationInProgress", &get_Control_operationInProgress); - get_map.emplace("cim:Control.timeStamp", &get_Control_timeStamp); + get_map.emplace("Control.controlType", &get_Control_controlType); + get_map.emplace("Control.operationInProgress", &get_Control_operationInProgress); + get_map.emplace("Control.timeStamp", &get_Control_timeStamp); } void Control::addClassGetFnsToMap(std::map& get_map) const { IOPoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Control.PowerSystemResource", &get_Control_PowerSystemResource); + get_map.emplace("Control.PowerSystemResource", &get_Control_PowerSystemResource); } void Control::addEnumGetFnsToMap(std::map& get_map) const { IOPoint::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Control.unitMultiplier", &get_Control_unitMultiplier); - get_map.emplace("cim:Control.unitSymbol", &get_Control_unitSymbol); + get_map.emplace("Control.unitMultiplier", &get_Control_unitMultiplier); + get_map.emplace("Control.unitSymbol", &get_Control_unitSymbol); +} + +bool Control::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Control" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Control::declare() @@ -272,6 +310,14 @@ const BaseClassDefiner Control::declare() return BaseClassDefiner(Control::addConstructToMap, Control::addPrimitiveAssignFnsToMap, Control::addClassAssignFnsToMap, Control::debugName); } +std::map Control::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IOPoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Control_factory() diff --git a/CGMES_3.0.0/Control.hpp b/CGMES_3.0.0/Control.hpp index 2adbd5c7e..532fb9f30 100644 --- a/CGMES_3.0.0/Control.hpp +++ b/CGMES_3.0.0/Control.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IOPoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "DateTime.hpp" #include "String.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Control_factory(); diff --git a/CGMES_3.0.0/ControlArea.cpp b/CGMES_3.0.0/ControlArea.cpp index 21c90385d..1078f2521 100644 --- a/CGMES_3.0.0/ControlArea.cpp +++ b/CGMES_3.0.0/ControlArea.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ControlArea(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ControlArea.ControlAreaGeneratingUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ControlArea.EnergyArea", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ControlArea.TieFlow", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ControlArea.netInterchange", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ControlArea.pTolerance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ControlArea.type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ControlArea::ControlArea() : EnergyArea(nullptr) {} ControlArea::~ControlArea() {} -static const std::list PossibleProfilesForClass = +const std::list& ControlArea::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ControlArea::getClassNamespaceUrl() const { - { "cim:ControlArea.ControlAreaGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:ControlArea.EnergyArea", { CGMESProfile::EQ, } }, - { "cim:ControlArea.TieFlow", { CGMESProfile::EQ, } }, - { "cim:ControlArea.netInterchange", { CGMESProfile::SSH, } }, - { "cim:ControlArea.pTolerance", { CGMESProfile::SSH, } }, - { "cim:ControlArea.type", { CGMESProfile::EQ, } }, -}; - -std::list -ControlArea::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& ControlArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ControlArea::getPossibleProfilesForAttributes() const +const std::list& ControlArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ControlArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ControlArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ControlArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlAreaGeneratingUnit_ControlArea(BaseClass*, BaseClass*); @@ -210,40 +242,46 @@ const char* ControlArea::debugString() const void ControlArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ControlArea", &ControlArea_factory); + factory_map.emplace("ControlArea", &ControlArea_factory); } void ControlArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlArea.netInterchange", &assign_ControlArea_netInterchange); - assign_map.emplace("cim:ControlArea.pTolerance", &assign_ControlArea_pTolerance); - assign_map.emplace("cim:ControlArea.type", &assign_ControlArea_type); + assign_map.emplace("ControlArea.netInterchange", &assign_ControlArea_netInterchange); + assign_map.emplace("ControlArea.pTolerance", &assign_ControlArea_pTolerance); + assign_map.emplace("ControlArea.type", &assign_ControlArea_type); } void ControlArea::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlArea.ControlAreaGeneratingUnit", &assign_ControlArea_ControlAreaGeneratingUnit); - assign_map.emplace("cim:ControlArea.EnergyArea", &assign_ControlArea_EnergyArea); - assign_map.emplace("cim:ControlArea.TieFlow", &assign_ControlArea_TieFlow); + assign_map.emplace("ControlArea.ControlAreaGeneratingUnit", &assign_ControlArea_ControlAreaGeneratingUnit); + assign_map.emplace("ControlArea.EnergyArea", &assign_ControlArea_EnergyArea); + assign_map.emplace("ControlArea.TieFlow", &assign_ControlArea_TieFlow); } void ControlArea::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.netInterchange", &get_ControlArea_netInterchange); - get_map.emplace("cim:ControlArea.pTolerance", &get_ControlArea_pTolerance); + get_map.emplace("ControlArea.netInterchange", &get_ControlArea_netInterchange); + get_map.emplace("ControlArea.pTolerance", &get_ControlArea_pTolerance); } void ControlArea::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.EnergyArea", &get_ControlArea_EnergyArea); + get_map.emplace("ControlArea.EnergyArea", &get_ControlArea_EnergyArea); } void ControlArea::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ControlArea.type", &get_ControlArea_type); + get_map.emplace("ControlArea.type", &get_ControlArea_type); +} + +bool ControlArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ControlArea" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ControlArea::declare() @@ -251,6 +289,14 @@ const BaseClassDefiner ControlArea::declare() return BaseClassDefiner(ControlArea::addConstructToMap, ControlArea::addPrimitiveAssignFnsToMap, ControlArea::addClassAssignFnsToMap, ControlArea::debugName); } +std::map ControlArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ControlArea_factory() diff --git a/CGMES_3.0.0/ControlArea.hpp b/CGMES_3.0.0/ControlArea.hpp index cc55ab1dd..c2ef85c0f 100644 --- a/CGMES_3.0.0/ControlArea.hpp +++ b/CGMES_3.0.0/ControlArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ControlAreaTypeKind.hpp" @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ControlArea_factory(); diff --git a/CGMES_3.0.0/ControlAreaGeneratingUnit.cpp b/CGMES_3.0.0/ControlAreaGeneratingUnit.cpp index 907553a54..11ac52379 100644 --- a/CGMES_3.0.0/ControlAreaGeneratingUnit.cpp +++ b/CGMES_3.0.0/ControlAreaGeneratingUnit.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ControlAreaGeneratingUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ControlAreaGeneratingUnit.ControlArea", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ControlAreaGeneratingUnit.GeneratingUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ControlAreaGeneratingUnit::ControlAreaGeneratingUnit() : ControlArea(nullptr), GeneratingUnit(nullptr) {} ControlAreaGeneratingUnit::~ControlAreaGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& ControlAreaGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ControlAreaGeneratingUnit::getClassNamespaceUrl() const { - { "cim:ControlAreaGeneratingUnit.ControlArea", { CGMESProfile::EQ, } }, - { "cim:ControlAreaGeneratingUnit.GeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ControlAreaGeneratingUnit::getPossibleProfilesForClass() const +const std::string& ControlAreaGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ControlAreaGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& ControlAreaGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ControlAreaGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ControlAreaGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ControlAreaGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_ControlAreaGeneratingUnit(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* ControlAreaGeneratingUnit::debugString() const void ControlAreaGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ControlAreaGeneratingUnit", &ControlAreaGeneratingUnit_factory); + factory_map.emplace("ControlAreaGeneratingUnit", &ControlAreaGeneratingUnit_factory); } void ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ControlAreaGeneratingUnit.ControlArea", &assign_ControlAreaGeneratingUnit_ControlArea); - assign_map.emplace("cim:ControlAreaGeneratingUnit.GeneratingUnit", &assign_ControlAreaGeneratingUnit_GeneratingUnit); + assign_map.emplace("ControlAreaGeneratingUnit.ControlArea", &assign_ControlAreaGeneratingUnit_ControlArea); + assign_map.emplace("ControlAreaGeneratingUnit.GeneratingUnit", &assign_ControlAreaGeneratingUnit_GeneratingUnit); } void ControlAreaGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void ControlAreaGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ControlAreaGeneratingUnit.ControlArea", &get_ControlAreaGeneratingUnit_ControlArea); - get_map.emplace("cim:ControlAreaGeneratingUnit.GeneratingUnit", &get_ControlAreaGeneratingUnit_GeneratingUnit); + get_map.emplace("ControlAreaGeneratingUnit.ControlArea", &get_ControlAreaGeneratingUnit_ControlArea); + get_map.emplace("ControlAreaGeneratingUnit.GeneratingUnit", &get_ControlAreaGeneratingUnit_GeneratingUnit); } void ControlAreaGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void ControlAreaGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ControlAreaGeneratingUnit::declare() { return BaseClassDefiner(ControlAreaGeneratingUnit::addConstructToMap, ControlAreaGeneratingUnit::addPrimitiveAssignFnsToMap, ControlAreaGeneratingUnit::addClassAssignFnsToMap, ControlAreaGeneratingUnit::debugName); } +std::map ControlAreaGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ControlAreaGeneratingUnit_factory() diff --git a/CGMES_3.0.0/ControlAreaGeneratingUnit.hpp b/CGMES_3.0.0/ControlAreaGeneratingUnit.hpp index 2fbe40d06..b50074444 100644 --- a/CGMES_3.0.0/ControlAreaGeneratingUnit.hpp +++ b/CGMES_3.0.0/ControlAreaGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ControlAreaGeneratingUnit_factory(); diff --git a/CGMES_3.0.0/CoordinateSystem.cpp b/CGMES_3.0.0/CoordinateSystem.cpp index 59f293cfa..2b3298cfa 100644 --- a/CGMES_3.0.0/CoordinateSystem.cpp +++ b/CGMES_3.0.0/CoordinateSystem.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CoordinateSystem(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CoordinateSystem.Locations", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "CoordinateSystem.crsUrn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + CoordinateSystem::CoordinateSystem() {} CoordinateSystem::~CoordinateSystem() {} -static const std::list PossibleProfilesForClass = +const std::list& CoordinateSystem::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CoordinateSystem::getClassNamespaceUrl() const { - { "cim:CoordinateSystem.Locations", { CGMESProfile::GL, } }, - { "cim:CoordinateSystem.crsUrn", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CoordinateSystem::getPossibleProfilesForClass() const +const std::string& CoordinateSystem::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CoordinateSystem::getPossibleProfilesForAttributes() const +const std::list& CoordinateSystem::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CoordinateSystem::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CoordinateSystem::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CoordinateSystem::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Location_CoordinateSystem(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* CoordinateSystem::debugString() const void CoordinateSystem::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CoordinateSystem", &CoordinateSystem_factory); + factory_map.emplace("CoordinateSystem", &CoordinateSystem_factory); } void CoordinateSystem::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CoordinateSystem.crsUrn", &assign_CoordinateSystem_crsUrn); + assign_map.emplace("CoordinateSystem.crsUrn", &assign_CoordinateSystem_crsUrn); } void CoordinateSystem::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CoordinateSystem.Locations", &assign_CoordinateSystem_Locations); + assign_map.emplace("CoordinateSystem.Locations", &assign_CoordinateSystem_Locations); } void CoordinateSystem::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CoordinateSystem.crsUrn", &get_CoordinateSystem_crsUrn); + get_map.emplace("CoordinateSystem.crsUrn", &get_CoordinateSystem_crsUrn); } void CoordinateSystem::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void CoordinateSystem::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool CoordinateSystem::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CoordinateSystem" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CoordinateSystem::declare() { return BaseClassDefiner(CoordinateSystem::addConstructToMap, CoordinateSystem::addPrimitiveAssignFnsToMap, CoordinateSystem::addClassAssignFnsToMap, CoordinateSystem::debugName); } +std::map CoordinateSystem::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CoordinateSystem_factory() diff --git a/CGMES_3.0.0/CoordinateSystem.hpp b/CGMES_3.0.0/CoordinateSystem.hpp index 3c2c88d76..29d16e822 100644 --- a/CGMES_3.0.0/CoordinateSystem.hpp +++ b/CGMES_3.0.0/CoordinateSystem.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CoordinateSystem_factory(); diff --git a/CGMES_3.0.0/CrossCompoundTurbineGovernorDynamics.cpp b/CGMES_3.0.0/CrossCompoundTurbineGovernorDynamics.cpp index b5d193524..cc5b28307 100644 --- a/CGMES_3.0.0/CrossCompoundTurbineGovernorDynamics.cpp +++ b/CGMES_3.0.0/CrossCompoundTurbineGovernorDynamics.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CrossCompoundTurbineGovernorDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CrossCompoundTurbineGovernorDynamics.HighPressureSynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "CrossCompoundTurbineGovernorDynamics.LowPressureSynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + CrossCompoundTurbineGovernorDynamics::CrossCompoundTurbineGovernorDynamics() : HighPressureSynchronousMachineDynamics(nullptr), LowPressureSynchronousMachineDynamics(nullptr) {} CrossCompoundTurbineGovernorDynamics::~CrossCompoundTurbineGovernorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& CrossCompoundTurbineGovernorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CrossCompoundTurbineGovernorDynamics::getClassNamespaceUrl() const { - { "cim:CrossCompoundTurbineGovernorDynamics.HighPressureSynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:CrossCompoundTurbineGovernorDynamics.LowPressureSynchronousMachineDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CrossCompoundTurbineGovernorDynamics::getPossibleProfilesForClass() const +const std::string& CrossCompoundTurbineGovernorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CrossCompoundTurbineGovernorDynamics::getPossibleProfilesForAttributes() const +const std::list& CrossCompoundTurbineGovernorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CrossCompoundTurbineGovernorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CrossCompoundTurbineGovernorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CrossCompoundTurbineGovernorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDynamics_CrossCompoundTurbineGovernorDyanmics(BaseClass*, BaseClass*); @@ -111,7 +143,7 @@ const char* CrossCompoundTurbineGovernorDynamics::debugString() const void CrossCompoundTurbineGovernorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CrossCompoundTurbineGovernorDynamics", &CrossCompoundTurbineGovernorDynamics_factory); + factory_map.emplace("CrossCompoundTurbineGovernorDynamics", &CrossCompoundTurbineGovernorDynamics_factory); } void CrossCompoundTurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -120,8 +152,8 @@ void CrossCompoundTurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unord void CrossCompoundTurbineGovernorDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CrossCompoundTurbineGovernorDynamics.HighPressureSynchronousMachineDynamics", &assign_CrossCompoundTurbineGovernorDynamics_HighPressureSynchronousMachineDynamics); - assign_map.emplace("cim:CrossCompoundTurbineGovernorDynamics.LowPressureSynchronousMachineDynamics", &assign_CrossCompoundTurbineGovernorDynamics_LowPressureSynchronousMachineDynamics); + assign_map.emplace("CrossCompoundTurbineGovernorDynamics.HighPressureSynchronousMachineDynamics", &assign_CrossCompoundTurbineGovernorDynamics_HighPressureSynchronousMachineDynamics); + assign_map.emplace("CrossCompoundTurbineGovernorDynamics.LowPressureSynchronousMachineDynamics", &assign_CrossCompoundTurbineGovernorDynamics_LowPressureSynchronousMachineDynamics); } void CrossCompoundTurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -132,8 +164,8 @@ void CrossCompoundTurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:CrossCompoundTurbineGovernorDynamics.HighPressureSynchronousMachineDynamics", &get_CrossCompoundTurbineGovernorDynamics_HighPressureSynchronousMachineDynamics); - get_map.emplace("cim:CrossCompoundTurbineGovernorDynamics.LowPressureSynchronousMachineDynamics", &get_CrossCompoundTurbineGovernorDynamics_LowPressureSynchronousMachineDynamics); + get_map.emplace("CrossCompoundTurbineGovernorDynamics.HighPressureSynchronousMachineDynamics", &get_CrossCompoundTurbineGovernorDynamics_HighPressureSynchronousMachineDynamics); + get_map.emplace("CrossCompoundTurbineGovernorDynamics.LowPressureSynchronousMachineDynamics", &get_CrossCompoundTurbineGovernorDynamics_LowPressureSynchronousMachineDynamics); } void CrossCompoundTurbineGovernorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -141,11 +173,25 @@ void CrossCompoundTurbineGovernorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner CrossCompoundTurbineGovernorDynamics::declare() { return BaseClassDefiner(CrossCompoundTurbineGovernorDynamics::addConstructToMap, CrossCompoundTurbineGovernorDynamics::addPrimitiveAssignFnsToMap, CrossCompoundTurbineGovernorDynamics::addClassAssignFnsToMap, CrossCompoundTurbineGovernorDynamics::debugName); } +std::map CrossCompoundTurbineGovernorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CrossCompoundTurbineGovernorDynamics_factory() diff --git a/CGMES_3.0.0/CrossCompoundTurbineGovernorDynamics.hpp b/CGMES_3.0.0/CrossCompoundTurbineGovernorDynamics.hpp index b85917963..f4b84c683 100644 --- a/CGMES_3.0.0/CrossCompoundTurbineGovernorDynamics.hpp +++ b/CGMES_3.0.0/CrossCompoundTurbineGovernorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CrossCompoundTurbineGovernorDynamics_factory(); diff --git a/CGMES_3.0.0/CsConverter.cpp b/CGMES_3.0.0/CsConverter.cpp index cb7fec9a1..cf15a8dec 100644 --- a/CGMES_3.0.0/CsConverter.cpp +++ b/CGMES_3.0.0/CsConverter.cpp @@ -12,49 +12,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CsConverter(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::SV, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CsConverter.CSCDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "CsConverter.alpha", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "CsConverter.gamma", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "CsConverter.maxAlpha", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CsConverter.maxGamma", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CsConverter.maxIdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CsConverter.minAlpha", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CsConverter.minGamma", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CsConverter.minIdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CsConverter.operatingMode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "CsConverter.pPccControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "CsConverter.ratedIdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CsConverter.targetAlpha", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "CsConverter.targetGamma", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "CsConverter.targetIdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + CsConverter::CsConverter() : CSCDynamics(nullptr) {} CsConverter::~CsConverter() {} -static const std::list PossibleProfilesForClass = +const std::list& CsConverter::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CsConverter::getClassNamespaceUrl() const { - { "cim:CsConverter.CSCDynamics", { CGMESProfile::DY, } }, - { "cim:CsConverter.alpha", { CGMESProfile::SV, } }, - { "cim:CsConverter.gamma", { CGMESProfile::SV, } }, - { "cim:CsConverter.maxAlpha", { CGMESProfile::EQ, } }, - { "cim:CsConverter.maxGamma", { CGMESProfile::EQ, } }, - { "cim:CsConverter.maxIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minAlpha", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minGamma", { CGMESProfile::EQ, } }, - { "cim:CsConverter.minIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.operatingMode", { CGMESProfile::SSH, } }, - { "cim:CsConverter.pPccControl", { CGMESProfile::SSH, } }, - { "cim:CsConverter.ratedIdc", { CGMESProfile::EQ, } }, - { "cim:CsConverter.targetAlpha", { CGMESProfile::SSH, } }, - { "cim:CsConverter.targetGamma", { CGMESProfile::SSH, } }, - { "cim:CsConverter.targetIdc", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CsConverter::getPossibleProfilesForClass() const +const std::string& CsConverter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CsConverter::getPossibleProfilesForAttributes() const +const std::list& CsConverter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCConverter::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CsConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CsConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CsConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CSCDynamics_CSConverter(BaseClass*, BaseClass*); @@ -489,47 +521,47 @@ const char* CsConverter::debugString() const void CsConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CsConverter", &CsConverter_factory); + factory_map.emplace("CsConverter", &CsConverter_factory); } void CsConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CsConverter.alpha", &assign_CsConverter_alpha); - assign_map.emplace("cim:CsConverter.gamma", &assign_CsConverter_gamma); - assign_map.emplace("cim:CsConverter.maxAlpha", &assign_CsConverter_maxAlpha); - assign_map.emplace("cim:CsConverter.maxGamma", &assign_CsConverter_maxGamma); - assign_map.emplace("cim:CsConverter.maxIdc", &assign_CsConverter_maxIdc); - assign_map.emplace("cim:CsConverter.minAlpha", &assign_CsConverter_minAlpha); - assign_map.emplace("cim:CsConverter.minGamma", &assign_CsConverter_minGamma); - assign_map.emplace("cim:CsConverter.minIdc", &assign_CsConverter_minIdc); - assign_map.emplace("cim:CsConverter.operatingMode", &assign_CsConverter_operatingMode); - assign_map.emplace("cim:CsConverter.pPccControl", &assign_CsConverter_pPccControl); - assign_map.emplace("cim:CsConverter.ratedIdc", &assign_CsConverter_ratedIdc); - assign_map.emplace("cim:CsConverter.targetAlpha", &assign_CsConverter_targetAlpha); - assign_map.emplace("cim:CsConverter.targetGamma", &assign_CsConverter_targetGamma); - assign_map.emplace("cim:CsConverter.targetIdc", &assign_CsConverter_targetIdc); + assign_map.emplace("CsConverter.alpha", &assign_CsConverter_alpha); + assign_map.emplace("CsConverter.gamma", &assign_CsConverter_gamma); + assign_map.emplace("CsConverter.maxAlpha", &assign_CsConverter_maxAlpha); + assign_map.emplace("CsConverter.maxGamma", &assign_CsConverter_maxGamma); + assign_map.emplace("CsConverter.maxIdc", &assign_CsConverter_maxIdc); + assign_map.emplace("CsConverter.minAlpha", &assign_CsConverter_minAlpha); + assign_map.emplace("CsConverter.minGamma", &assign_CsConverter_minGamma); + assign_map.emplace("CsConverter.minIdc", &assign_CsConverter_minIdc); + assign_map.emplace("CsConverter.operatingMode", &assign_CsConverter_operatingMode); + assign_map.emplace("CsConverter.pPccControl", &assign_CsConverter_pPccControl); + assign_map.emplace("CsConverter.ratedIdc", &assign_CsConverter_ratedIdc); + assign_map.emplace("CsConverter.targetAlpha", &assign_CsConverter_targetAlpha); + assign_map.emplace("CsConverter.targetGamma", &assign_CsConverter_targetGamma); + assign_map.emplace("CsConverter.targetIdc", &assign_CsConverter_targetIdc); } void CsConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CsConverter.CSCDynamics", &assign_CsConverter_CSCDynamics); + assign_map.emplace("CsConverter.CSCDynamics", &assign_CsConverter_CSCDynamics); } void CsConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ACDCConverter::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CsConverter.alpha", &get_CsConverter_alpha); - get_map.emplace("cim:CsConverter.gamma", &get_CsConverter_gamma); - get_map.emplace("cim:CsConverter.maxAlpha", &get_CsConverter_maxAlpha); - get_map.emplace("cim:CsConverter.maxGamma", &get_CsConverter_maxGamma); - get_map.emplace("cim:CsConverter.maxIdc", &get_CsConverter_maxIdc); - get_map.emplace("cim:CsConverter.minAlpha", &get_CsConverter_minAlpha); - get_map.emplace("cim:CsConverter.minGamma", &get_CsConverter_minGamma); - get_map.emplace("cim:CsConverter.minIdc", &get_CsConverter_minIdc); - get_map.emplace("cim:CsConverter.ratedIdc", &get_CsConverter_ratedIdc); - get_map.emplace("cim:CsConverter.targetAlpha", &get_CsConverter_targetAlpha); - get_map.emplace("cim:CsConverter.targetGamma", &get_CsConverter_targetGamma); - get_map.emplace("cim:CsConverter.targetIdc", &get_CsConverter_targetIdc); + get_map.emplace("CsConverter.alpha", &get_CsConverter_alpha); + get_map.emplace("CsConverter.gamma", &get_CsConverter_gamma); + get_map.emplace("CsConverter.maxAlpha", &get_CsConverter_maxAlpha); + get_map.emplace("CsConverter.maxGamma", &get_CsConverter_maxGamma); + get_map.emplace("CsConverter.maxIdc", &get_CsConverter_maxIdc); + get_map.emplace("CsConverter.minAlpha", &get_CsConverter_minAlpha); + get_map.emplace("CsConverter.minGamma", &get_CsConverter_minGamma); + get_map.emplace("CsConverter.minIdc", &get_CsConverter_minIdc); + get_map.emplace("CsConverter.ratedIdc", &get_CsConverter_ratedIdc); + get_map.emplace("CsConverter.targetAlpha", &get_CsConverter_targetAlpha); + get_map.emplace("CsConverter.targetGamma", &get_CsConverter_targetGamma); + get_map.emplace("CsConverter.targetIdc", &get_CsConverter_targetIdc); } void CsConverter::addClassGetFnsToMap(std::map& get_map) const @@ -540,8 +572,14 @@ void CsConverter::addClassGetFnsToMap(std::map& void CsConverter::addEnumGetFnsToMap(std::map& get_map) const { ACDCConverter::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:CsConverter.operatingMode", &get_CsConverter_operatingMode); - get_map.emplace("cim:CsConverter.pPccControl", &get_CsConverter_pPccControl); + get_map.emplace("CsConverter.operatingMode", &get_CsConverter_operatingMode); + get_map.emplace("CsConverter.pPccControl", &get_CsConverter_pPccControl); +} + +bool CsConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CsConverter" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner CsConverter::declare() @@ -549,6 +587,14 @@ const BaseClassDefiner CsConverter::declare() return BaseClassDefiner(CsConverter::addConstructToMap, CsConverter::addPrimitiveAssignFnsToMap, CsConverter::addClassAssignFnsToMap, CsConverter::debugName); } +std::map CsConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCConverter::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CsConverter_factory() diff --git a/CGMES_3.0.0/CsConverter.hpp b/CGMES_3.0.0/CsConverter.hpp index 6dff81699..590577d1d 100644 --- a/CGMES_3.0.0/CsConverter.hpp +++ b/CGMES_3.0.0/CsConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCConverter.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "CsOperatingModeKind.hpp" #include "CsPpccControlKind.hpp" @@ -77,8 +78,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -86,7 +94,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CsConverter_factory(); diff --git a/CGMES_3.0.0/CurrentLimit.cpp b/CGMES_3.0.0/CurrentLimit.cpp index b9838046f..55b576ed9 100644 --- a/CGMES_3.0.0/CurrentLimit.cpp +++ b/CGMES_3.0.0/CurrentLimit.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurrentLimit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CurrentLimit.normalValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CurrentLimit.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + CurrentLimit::CurrentLimit() {} CurrentLimit::~CurrentLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& CurrentLimit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurrentLimit::getClassNamespaceUrl() const { - { "cim:CurrentLimit.normalValue", { CGMESProfile::EQ, } }, - { "cim:CurrentLimit.value", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurrentLimit::getPossibleProfilesForClass() const +const std::string& CurrentLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurrentLimit::getPossibleProfilesForAttributes() const +const std::list& CurrentLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurrentLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurrentLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurrentLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CurrentLimit_normalValue(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -107,13 +139,13 @@ const char* CurrentLimit::debugString() const void CurrentLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurrentLimit", &CurrentLimit_factory); + factory_map.emplace("CurrentLimit", &CurrentLimit_factory); } void CurrentLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurrentLimit.normalValue", &assign_CurrentLimit_normalValue); - assign_map.emplace("cim:CurrentLimit.value", &assign_CurrentLimit_value); + assign_map.emplace("CurrentLimit.normalValue", &assign_CurrentLimit_normalValue); + assign_map.emplace("CurrentLimit.value", &assign_CurrentLimit_value); } void CurrentLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -123,8 +155,8 @@ void CurrentLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CurrentLimit.normalValue", &get_CurrentLimit_normalValue); - get_map.emplace("cim:CurrentLimit.value", &get_CurrentLimit_value); + get_map.emplace("CurrentLimit.normalValue", &get_CurrentLimit_normalValue); + get_map.emplace("CurrentLimit.value", &get_CurrentLimit_value); } void CurrentLimit::addClassGetFnsToMap(std::map& get_map) const @@ -137,11 +169,25 @@ void CurrentLimit::addEnumGetFnsToMap(std::map& get_m OperationalLimit::addEnumGetFnsToMap(get_map); } +bool CurrentLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurrentLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurrentLimit::declare() { return BaseClassDefiner(CurrentLimit::addConstructToMap, CurrentLimit::addPrimitiveAssignFnsToMap, CurrentLimit::addClassAssignFnsToMap, CurrentLimit::debugName); } +std::map CurrentLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurrentLimit_factory() diff --git a/CGMES_3.0.0/CurrentLimit.hpp b/CGMES_3.0.0/CurrentLimit.hpp index d8e5333a3..0b6e2d505 100644 --- a/CGMES_3.0.0/CurrentLimit.hpp +++ b/CGMES_3.0.0/CurrentLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurrentLimit_factory(); diff --git a/CGMES_3.0.0/CurrentTransformer.cpp b/CGMES_3.0.0/CurrentTransformer.cpp index da06c74aa..e48467d1d 100644 --- a/CGMES_3.0.0/CurrentTransformer.cpp +++ b/CGMES_3.0.0/CurrentTransformer.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurrentTransformer(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + CurrentTransformer::CurrentTransformer() {} CurrentTransformer::~CurrentTransformer() {} -static const std::list PossibleProfilesForClass = +const std::list& CurrentTransformer::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurrentTransformer::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurrentTransformer::getPossibleProfilesForClass() const +const std::string& CurrentTransformer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurrentTransformer::getPossibleProfilesForAttributes() const +const std::list& CurrentTransformer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Sensor::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurrentTransformer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurrentTransformer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurrentTransformer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char CurrentTransformer::debugName[] = "CurrentTransformer"; @@ -46,7 +78,7 @@ const char* CurrentTransformer::debugString() const void CurrentTransformer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurrentTransformer", &CurrentTransformer_factory); + factory_map.emplace("CurrentTransformer", &CurrentTransformer_factory); } void CurrentTransformer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void CurrentTransformer::addEnumGetFnsToMap(std::map& Sensor::addEnumGetFnsToMap(get_map); } +bool CurrentTransformer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurrentTransformer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurrentTransformer::declare() { return BaseClassDefiner(CurrentTransformer::addConstructToMap, CurrentTransformer::addPrimitiveAssignFnsToMap, CurrentTransformer::addClassAssignFnsToMap, CurrentTransformer::debugName); } +std::map CurrentTransformer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Sensor::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurrentTransformer_factory() diff --git a/CGMES_3.0.0/CurrentTransformer.hpp b/CGMES_3.0.0/CurrentTransformer.hpp index e6be0b776..be38fd4b7 100644 --- a/CGMES_3.0.0/CurrentTransformer.hpp +++ b/CGMES_3.0.0/CurrentTransformer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Sensor.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurrentTransformer_factory(); diff --git a/CGMES_3.0.0/Curve.cpp b/CGMES_3.0.0/Curve.cpp index 776e5c46d..28b868828 100644 --- a/CGMES_3.0.0/Curve.cpp +++ b/CGMES_3.0.0/Curve.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Curve(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Curve.CurveDatas", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Curve.curveStyle", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Curve.xUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Curve.y1Unit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Curve.y2Unit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Curve::Curve() {} Curve::~Curve() {} -static const std::list PossibleProfilesForClass = +const std::list& Curve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Curve::getClassNamespaceUrl() const { - { "cim:Curve.CurveDatas", { CGMESProfile::EQ, } }, - { "cim:Curve.curveStyle", { CGMESProfile::EQ, } }, - { "cim:Curve.xUnit", { CGMESProfile::EQ, } }, - { "cim:Curve.y1Unit", { CGMESProfile::EQ, } }, - { "cim:Curve.y2Unit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Curve::getPossibleProfilesForClass() const +const std::string& Curve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Curve::getPossibleProfilesForAttributes() const +const std::list& Curve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Curve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Curve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Curve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CurveData_Curve(BaseClass*, BaseClass*); @@ -186,20 +218,20 @@ const char* Curve::debugString() const void Curve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Curve", &Curve_factory); + factory_map.emplace("Curve", &Curve_factory); } void Curve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Curve.curveStyle", &assign_Curve_curveStyle); - assign_map.emplace("cim:Curve.xUnit", &assign_Curve_xUnit); - assign_map.emplace("cim:Curve.y1Unit", &assign_Curve_y1Unit); - assign_map.emplace("cim:Curve.y2Unit", &assign_Curve_y2Unit); + assign_map.emplace("Curve.curveStyle", &assign_Curve_curveStyle); + assign_map.emplace("Curve.xUnit", &assign_Curve_xUnit); + assign_map.emplace("Curve.y1Unit", &assign_Curve_y1Unit); + assign_map.emplace("Curve.y2Unit", &assign_Curve_y2Unit); } void Curve::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Curve.CurveDatas", &assign_Curve_CurveDatas); + assign_map.emplace("Curve.CurveDatas", &assign_Curve_CurveDatas); } void Curve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -215,10 +247,16 @@ void Curve::addClassGetFnsToMap(std::map& get_m void Curve::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Curve.curveStyle", &get_Curve_curveStyle); - get_map.emplace("cim:Curve.xUnit", &get_Curve_xUnit); - get_map.emplace("cim:Curve.y1Unit", &get_Curve_y1Unit); - get_map.emplace("cim:Curve.y2Unit", &get_Curve_y2Unit); + get_map.emplace("Curve.curveStyle", &get_Curve_curveStyle); + get_map.emplace("Curve.xUnit", &get_Curve_xUnit); + get_map.emplace("Curve.y1Unit", &get_Curve_y1Unit); + get_map.emplace("Curve.y2Unit", &get_Curve_y2Unit); +} + +bool Curve::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Curve" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Curve::declare() @@ -226,6 +264,14 @@ const BaseClassDefiner Curve::declare() return BaseClassDefiner(Curve::addConstructToMap, Curve::addPrimitiveAssignFnsToMap, Curve::addClassAssignFnsToMap, Curve::debugName); } +std::map Curve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Curve_factory() diff --git a/CGMES_3.0.0/Curve.hpp b/CGMES_3.0.0/Curve.hpp index e0b0926e3..8d02e1d5c 100644 --- a/CGMES_3.0.0/Curve.hpp +++ b/CGMES_3.0.0/Curve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurveStyle.hpp" #include "UnitSymbol.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Curve_factory(); diff --git a/CGMES_3.0.0/CurveData.cpp b/CGMES_3.0.0/CurveData.cpp index f2d46bf44..b3b0bca1f 100644 --- a/CGMES_3.0.0/CurveData.cpp +++ b/CGMES_3.0.0/CurveData.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + CurveData(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "CurveData.Curve", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CurveData.xvalue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CurveData.y1value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "CurveData.y2value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + CurveData::CurveData() : Curve(nullptr) {} CurveData::~CurveData() {} -static const std::list PossibleProfilesForClass = +const std::list& CurveData::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& CurveData::getClassNamespaceUrl() const { - { "cim:CurveData.Curve", { CGMESProfile::EQ, } }, - { "cim:CurveData.xvalue", { CGMESProfile::EQ, } }, - { "cim:CurveData.y1value", { CGMESProfile::EQ, } }, - { "cim:CurveData.y2value", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -CurveData::getPossibleProfilesForClass() const +const std::string& CurveData::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -CurveData::getPossibleProfilesForAttributes() const +const std::list& CurveData::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& CurveData::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& CurveData::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& CurveData::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Curve_CurveDatas(BaseClass*, BaseClass*); @@ -169,33 +201,33 @@ const char* CurveData::debugString() const void CurveData::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:CurveData", &CurveData_factory); + factory_map.emplace("CurveData", &CurveData_factory); } void CurveData::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurveData.xvalue", &assign_CurveData_xvalue); - assign_map.emplace("cim:CurveData.y1value", &assign_CurveData_y1value); - assign_map.emplace("cim:CurveData.y2value", &assign_CurveData_y2value); + assign_map.emplace("CurveData.xvalue", &assign_CurveData_xvalue); + assign_map.emplace("CurveData.y1value", &assign_CurveData_y1value); + assign_map.emplace("CurveData.y2value", &assign_CurveData_y2value); } void CurveData::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:CurveData.Curve", &assign_CurveData_Curve); + assign_map.emplace("CurveData.Curve", &assign_CurveData_Curve); } void CurveData::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:CurveData.xvalue", &get_CurveData_xvalue); - get_map.emplace("cim:CurveData.y1value", &get_CurveData_y1value); - get_map.emplace("cim:CurveData.y2value", &get_CurveData_y2value); + get_map.emplace("CurveData.xvalue", &get_CurveData_xvalue); + get_map.emplace("CurveData.y1value", &get_CurveData_y1value); + get_map.emplace("CurveData.y2value", &get_CurveData_y2value); } void CurveData::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:CurveData.Curve", &get_CurveData_Curve); + get_map.emplace("CurveData.Curve", &get_CurveData_Curve); } void CurveData::addEnumGetFnsToMap(std::map& get_map) const @@ -203,11 +235,25 @@ void CurveData::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool CurveData::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "CurveData" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner CurveData::declare() { return BaseClassDefiner(CurveData::addConstructToMap, CurveData::addPrimitiveAssignFnsToMap, CurveData::addClassAssignFnsToMap, CurveData::debugName); } +std::map CurveData::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* CurveData_factory() diff --git a/CGMES_3.0.0/CurveData.hpp b/CGMES_3.0.0/CurveData.hpp index 1bc77b921..39fc453ce 100644 --- a/CGMES_3.0.0/CurveData.hpp +++ b/CGMES_3.0.0/CurveData.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" namespace CIMPP @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* CurveData_factory(); diff --git a/CGMES_3.0.0/Cut.cpp b/CGMES_3.0.0/Cut.cpp index a000f40b8..9d7399297 100644 --- a/CGMES_3.0.0/Cut.cpp +++ b/CGMES_3.0.0/Cut.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Cut(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Cut.ACLineSegment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Cut.lengthFromTerminal1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Cut::Cut() : ACLineSegment(nullptr) {} Cut::~Cut() {} -static const std::list PossibleProfilesForClass = +const std::list& Cut::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Cut::getClassNamespaceUrl() const { - { "cim:Cut.ACLineSegment", { CGMESProfile::EQ, } }, - { "cim:Cut.lengthFromTerminal1", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Cut::getPossibleProfilesForClass() const +const std::string& Cut::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Cut::getPossibleProfilesForAttributes() const +const std::list& Cut::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Cut::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Cut::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Cut::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ACLineSegment_Cut(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* Cut::debugString() const void Cut::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Cut", &Cut_factory); + factory_map.emplace("Cut", &Cut_factory); } void Cut::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Cut.lengthFromTerminal1", &assign_Cut_lengthFromTerminal1); + assign_map.emplace("Cut.lengthFromTerminal1", &assign_Cut_lengthFromTerminal1); } void Cut::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Cut.ACLineSegment", &assign_Cut_ACLineSegment); + assign_map.emplace("Cut.ACLineSegment", &assign_Cut_ACLineSegment); } void Cut::addPrimitiveGetFnsToMap(std::map& get_map) const { Switch::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Cut.lengthFromTerminal1", &get_Cut_lengthFromTerminal1); + get_map.emplace("Cut.lengthFromTerminal1", &get_Cut_lengthFromTerminal1); } void Cut::addClassGetFnsToMap(std::map& get_map) const { Switch::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Cut.ACLineSegment", &get_Cut_ACLineSegment); + get_map.emplace("Cut.ACLineSegment", &get_Cut_ACLineSegment); } void Cut::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void Cut::addEnumGetFnsToMap(std::map& get_map) const Switch::addEnumGetFnsToMap(get_map); } +bool Cut::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Cut" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Cut::declare() { return BaseClassDefiner(Cut::addConstructToMap, Cut::addPrimitiveAssignFnsToMap, Cut::addClassAssignFnsToMap, Cut::debugName); } +std::map Cut::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Cut_factory() diff --git a/CGMES_3.0.0/Cut.hpp b/CGMES_3.0.0/Cut.hpp index 50e79218d..66830929f 100644 --- a/CGMES_3.0.0/Cut.hpp +++ b/CGMES_3.0.0/Cut.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Length.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Cut_factory(); diff --git a/CGMES_3.0.0/DCBaseTerminal.cpp b/CGMES_3.0.0/DCBaseTerminal.cpp index e7814b878..85887b7d1 100644 --- a/CGMES_3.0.0/DCBaseTerminal.cpp +++ b/CGMES_3.0.0/DCBaseTerminal.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBaseTerminal(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCBaseTerminal.DCNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCBaseTerminal.DCTopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCBaseTerminal::DCBaseTerminal() : DCNode(nullptr), DCTopologicalNode(nullptr) {} DCBaseTerminal::~DCBaseTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBaseTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBaseTerminal::getClassNamespaceUrl() const { - { "cim:DCBaseTerminal.DCNode", { CGMESProfile::EQ, } }, - { "cim:DCBaseTerminal.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBaseTerminal::getPossibleProfilesForClass() const +const std::string& DCBaseTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBaseTerminal::getPossibleProfilesForAttributes() const +const std::list& DCBaseTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBaseTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBaseTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBaseTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCNode_DCTerminals(BaseClass*, BaseClass*); @@ -114,7 +146,7 @@ const char* DCBaseTerminal::debugString() const void DCBaseTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBaseTerminal", &DCBaseTerminal_factory); + factory_map.emplace("DCBaseTerminal", &DCBaseTerminal_factory); } void DCBaseTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -123,8 +155,8 @@ void DCBaseTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCBaseTerminal.DCNode", &assign_DCBaseTerminal_DCNode); - assign_map.emplace("cim:DCBaseTerminal.DCTopologicalNode", &assign_DCBaseTerminal_DCTopologicalNode); + assign_map.emplace("DCBaseTerminal.DCNode", &assign_DCBaseTerminal_DCNode); + assign_map.emplace("DCBaseTerminal.DCTopologicalNode", &assign_DCBaseTerminal_DCTopologicalNode); } void DCBaseTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -135,8 +167,8 @@ void DCBaseTerminal::addPrimitiveGetFnsToMap(std::map void DCBaseTerminal::addClassGetFnsToMap(std::map& get_map) const { ACDCTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCBaseTerminal.DCNode", &get_DCBaseTerminal_DCNode); - get_map.emplace("cim:DCBaseTerminal.DCTopologicalNode", &get_DCBaseTerminal_DCTopologicalNode); + get_map.emplace("DCBaseTerminal.DCNode", &get_DCBaseTerminal_DCNode); + get_map.emplace("DCBaseTerminal.DCTopologicalNode", &get_DCBaseTerminal_DCTopologicalNode); } void DCBaseTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -144,11 +176,25 @@ void DCBaseTerminal::addEnumGetFnsToMap(std::map& get ACDCTerminal::addEnumGetFnsToMap(get_map); } +bool DCBaseTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBaseTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBaseTerminal::declare() { return BaseClassDefiner(DCBaseTerminal::addConstructToMap, DCBaseTerminal::addPrimitiveAssignFnsToMap, DCBaseTerminal::addClassAssignFnsToMap, DCBaseTerminal::debugName); } +std::map DCBaseTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBaseTerminal_factory() diff --git a/CGMES_3.0.0/DCBaseTerminal.hpp b/CGMES_3.0.0/DCBaseTerminal.hpp index 52a78304c..cddbcc264 100644 --- a/CGMES_3.0.0/DCBaseTerminal.hpp +++ b/CGMES_3.0.0/DCBaseTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBaseTerminal_factory(); diff --git a/CGMES_3.0.0/DCBreaker.cpp b/CGMES_3.0.0/DCBreaker.cpp index 721524d6e..24f1bf142 100644 --- a/CGMES_3.0.0/DCBreaker.cpp +++ b/CGMES_3.0.0/DCBreaker.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBreaker(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCBreaker::DCBreaker() {} DCBreaker::~DCBreaker() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBreaker::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBreaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBreaker::getPossibleProfilesForClass() const +const std::string& DCBreaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBreaker::getPossibleProfilesForAttributes() const +const std::list& DCBreaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBreaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBreaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBreaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCBreaker::debugName[] = "DCBreaker"; @@ -46,7 +78,7 @@ const char* DCBreaker::debugString() const void DCBreaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBreaker", &DCBreaker_factory); + factory_map.emplace("DCBreaker", &DCBreaker_factory); } void DCBreaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCBreaker::addEnumGetFnsToMap(std::map& get_map) DCSwitch::addEnumGetFnsToMap(get_map); } +bool DCBreaker::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBreaker" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBreaker::declare() { return BaseClassDefiner(DCBreaker::addConstructToMap, DCBreaker::addPrimitiveAssignFnsToMap, DCBreaker::addClassAssignFnsToMap, DCBreaker::debugName); } +std::map DCBreaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBreaker_factory() diff --git a/CGMES_3.0.0/DCBreaker.hpp b/CGMES_3.0.0/DCBreaker.hpp index 51ebd5f70..c73ba330c 100644 --- a/CGMES_3.0.0/DCBreaker.hpp +++ b/CGMES_3.0.0/DCBreaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBreaker_factory(); diff --git a/CGMES_3.0.0/DCBusbar.cpp b/CGMES_3.0.0/DCBusbar.cpp index 1ecf0f6fa..49c823aa9 100644 --- a/CGMES_3.0.0/DCBusbar.cpp +++ b/CGMES_3.0.0/DCBusbar.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCBusbar(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCBusbar::DCBusbar() {} DCBusbar::~DCBusbar() {} -static const std::list PossibleProfilesForClass = +const std::list& DCBusbar::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCBusbar::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCBusbar::getPossibleProfilesForClass() const +const std::string& DCBusbar::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCBusbar::getPossibleProfilesForAttributes() const +const std::list& DCBusbar::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCBusbar::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCBusbar::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCBusbar::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCBusbar::debugName[] = "DCBusbar"; @@ -46,7 +78,7 @@ const char* DCBusbar::debugString() const void DCBusbar::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCBusbar", &DCBusbar_factory); + factory_map.emplace("DCBusbar", &DCBusbar_factory); } void DCBusbar::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCBusbar::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCBusbar::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCBusbar" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCBusbar::declare() { return BaseClassDefiner(DCBusbar::addConstructToMap, DCBusbar::addPrimitiveAssignFnsToMap, DCBusbar::addClassAssignFnsToMap, DCBusbar::debugName); } +std::map DCBusbar::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCBusbar_factory() diff --git a/CGMES_3.0.0/DCBusbar.hpp b/CGMES_3.0.0/DCBusbar.hpp index 443ea1142..25382b74b 100644 --- a/CGMES_3.0.0/DCBusbar.hpp +++ b/CGMES_3.0.0/DCBusbar.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCBusbar_factory(); diff --git a/CGMES_3.0.0/DCChopper.cpp b/CGMES_3.0.0/DCChopper.cpp index 74dd30f11..b657bb1a4 100644 --- a/CGMES_3.0.0/DCChopper.cpp +++ b/CGMES_3.0.0/DCChopper.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCChopper(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCChopper::DCChopper() {} DCChopper::~DCChopper() {} -static const std::list PossibleProfilesForClass = +const std::list& DCChopper::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCChopper::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCChopper::getPossibleProfilesForClass() const +const std::string& DCChopper::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCChopper::getPossibleProfilesForAttributes() const +const std::list& DCChopper::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCChopper::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCChopper::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCChopper::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCChopper::debugName[] = "DCChopper"; @@ -46,7 +78,7 @@ const char* DCChopper::debugString() const void DCChopper::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCChopper", &DCChopper_factory); + factory_map.emplace("DCChopper", &DCChopper_factory); } void DCChopper::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCChopper::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCChopper::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCChopper" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCChopper::declare() { return BaseClassDefiner(DCChopper::addConstructToMap, DCChopper::addPrimitiveAssignFnsToMap, DCChopper::addClassAssignFnsToMap, DCChopper::debugName); } +std::map DCChopper::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCChopper_factory() diff --git a/CGMES_3.0.0/DCChopper.hpp b/CGMES_3.0.0/DCChopper.hpp index 69669fe03..79f28e42f 100644 --- a/CGMES_3.0.0/DCChopper.hpp +++ b/CGMES_3.0.0/DCChopper.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCChopper_factory(); diff --git a/CGMES_3.0.0/DCConductingEquipment.cpp b/CGMES_3.0.0/DCConductingEquipment.cpp index 36ac2cbf9..da1a9adda 100644 --- a/CGMES_3.0.0/DCConductingEquipment.cpp +++ b/CGMES_3.0.0/DCConductingEquipment.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCConductingEquipment(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCConductingEquipment.DCTerminals", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCConductingEquipment.ratedUdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCConductingEquipment::DCConductingEquipment() {} DCConductingEquipment::~DCConductingEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& DCConductingEquipment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCConductingEquipment::getClassNamespaceUrl() const { - { "cim:DCConductingEquipment.DCTerminals", { CGMESProfile::EQ, } }, - { "cim:DCConductingEquipment.ratedUdc", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCConductingEquipment::getPossibleProfilesForClass() const +const std::string& DCConductingEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCConductingEquipment::getPossibleProfilesForAttributes() const +const std::list& DCConductingEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCConductingEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCConductingEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCConductingEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTerminal_DCConductingEquipment(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* DCConductingEquipment::debugString() const void DCConductingEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCConductingEquipment", &DCConductingEquipment_factory); + factory_map.emplace("DCConductingEquipment", &DCConductingEquipment_factory); } void DCConductingEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConductingEquipment.ratedUdc", &assign_DCConductingEquipment_ratedUdc); + assign_map.emplace("DCConductingEquipment.ratedUdc", &assign_DCConductingEquipment_ratedUdc); } void DCConductingEquipment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConductingEquipment.DCTerminals", &assign_DCConductingEquipment_DCTerminals); + assign_map.emplace("DCConductingEquipment.DCTerminals", &assign_DCConductingEquipment_DCTerminals); } void DCConductingEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCConductingEquipment.ratedUdc", &get_DCConductingEquipment_ratedUdc); + get_map.emplace("DCConductingEquipment.ratedUdc", &get_DCConductingEquipment_ratedUdc); } void DCConductingEquipment::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void DCConductingEquipment::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DCConductingEquipment::declare() { return BaseClassDefiner(DCConductingEquipment::addConstructToMap, DCConductingEquipment::addPrimitiveAssignFnsToMap, DCConductingEquipment::addClassAssignFnsToMap, DCConductingEquipment::debugName); } +std::map DCConductingEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCConductingEquipment_factory() diff --git a/CGMES_3.0.0/DCConductingEquipment.hpp b/CGMES_3.0.0/DCConductingEquipment.hpp index bfe047814..ff030bef7 100644 --- a/CGMES_3.0.0/DCConductingEquipment.hpp +++ b/CGMES_3.0.0/DCConductingEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCConductingEquipment_factory(); diff --git a/CGMES_3.0.0/DCConverterUnit.cpp b/CGMES_3.0.0/DCConverterUnit.cpp index 2d1090ab2..56b86ea61 100644 --- a/CGMES_3.0.0/DCConverterUnit.cpp +++ b/CGMES_3.0.0/DCConverterUnit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCConverterUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCConverterUnit.Substation", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCConverterUnit.operationMode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCConverterUnit::DCConverterUnit() : Substation(nullptr) {} DCConverterUnit::~DCConverterUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& DCConverterUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCConverterUnit::getClassNamespaceUrl() const { - { "cim:DCConverterUnit.Substation", { CGMESProfile::EQ, } }, - { "cim:DCConverterUnit.operationMode", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCConverterUnit::getPossibleProfilesForClass() const +const std::string& DCConverterUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCConverterUnit::getPossibleProfilesForAttributes() const +const std::list& DCConverterUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCEquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCConverterUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCConverterUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCConverterUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Substation_DCConverterUnit(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* DCConverterUnit::debugString() const void DCConverterUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCConverterUnit", &DCConverterUnit_factory); + factory_map.emplace("DCConverterUnit", &DCConverterUnit_factory); } void DCConverterUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConverterUnit.operationMode", &assign_DCConverterUnit_operationMode); + assign_map.emplace("DCConverterUnit.operationMode", &assign_DCConverterUnit_operationMode); } void DCConverterUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCConverterUnit.Substation", &assign_DCConverterUnit_Substation); + assign_map.emplace("DCConverterUnit.Substation", &assign_DCConverterUnit_Substation); } void DCConverterUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void DCConverterUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCConverterUnit.Substation", &get_DCConverterUnit_Substation); + get_map.emplace("DCConverterUnit.Substation", &get_DCConverterUnit_Substation); } void DCConverterUnit::addEnumGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:DCConverterUnit.operationMode", &get_DCConverterUnit_operationMode); + get_map.emplace("DCConverterUnit.operationMode", &get_DCConverterUnit_operationMode); +} + +bool DCConverterUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCConverterUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner DCConverterUnit::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner DCConverterUnit::declare() return BaseClassDefiner(DCConverterUnit::addConstructToMap, DCConverterUnit::addPrimitiveAssignFnsToMap, DCConverterUnit::addClassAssignFnsToMap, DCConverterUnit::debugName); } +std::map DCConverterUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCEquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCConverterUnit_factory() diff --git a/CGMES_3.0.0/DCConverterUnit.hpp b/CGMES_3.0.0/DCConverterUnit.hpp index 1ec039db0..dce438c6e 100644 --- a/CGMES_3.0.0/DCConverterUnit.hpp +++ b/CGMES_3.0.0/DCConverterUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCEquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DCConverterOperatingModeKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCConverterUnit_factory(); diff --git a/CGMES_3.0.0/DCDisconnector.cpp b/CGMES_3.0.0/DCDisconnector.cpp index fe93c5903..6925a7495 100644 --- a/CGMES_3.0.0/DCDisconnector.cpp +++ b/CGMES_3.0.0/DCDisconnector.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCDisconnector(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCDisconnector::DCDisconnector() {} DCDisconnector::~DCDisconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& DCDisconnector::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCDisconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCDisconnector::getPossibleProfilesForClass() const +const std::string& DCDisconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCDisconnector::getPossibleProfilesForAttributes() const +const std::list& DCDisconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCDisconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCDisconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCDisconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCDisconnector::debugName[] = "DCDisconnector"; @@ -46,7 +78,7 @@ const char* DCDisconnector::debugString() const void DCDisconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCDisconnector", &DCDisconnector_factory); + factory_map.emplace("DCDisconnector", &DCDisconnector_factory); } void DCDisconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCDisconnector::addEnumGetFnsToMap(std::map& get DCSwitch::addEnumGetFnsToMap(get_map); } +bool DCDisconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCDisconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCDisconnector::declare() { return BaseClassDefiner(DCDisconnector::addConstructToMap, DCDisconnector::addPrimitiveAssignFnsToMap, DCDisconnector::addClassAssignFnsToMap, DCDisconnector::debugName); } +std::map DCDisconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCDisconnector_factory() diff --git a/CGMES_3.0.0/DCDisconnector.hpp b/CGMES_3.0.0/DCDisconnector.hpp index 9000b268e..081bad109 100644 --- a/CGMES_3.0.0/DCDisconnector.hpp +++ b/CGMES_3.0.0/DCDisconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCDisconnector_factory(); diff --git a/CGMES_3.0.0/DCEquipmentContainer.cpp b/CGMES_3.0.0/DCEquipmentContainer.cpp index 63f808f42..7a25ed8c9 100644 --- a/CGMES_3.0.0/DCEquipmentContainer.cpp +++ b/CGMES_3.0.0/DCEquipmentContainer.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCEquipmentContainer(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCEquipmentContainer.DCNodes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCEquipmentContainer.DCTopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCEquipmentContainer::DCEquipmentContainer() {} DCEquipmentContainer::~DCEquipmentContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& DCEquipmentContainer::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCEquipmentContainer::getClassNamespaceUrl() const { - { "cim:DCEquipmentContainer.DCNodes", { CGMESProfile::EQ, } }, - { "cim:DCEquipmentContainer.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCEquipmentContainer::getPossibleProfilesForClass() const +const std::string& DCEquipmentContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCEquipmentContainer::getPossibleProfilesForAttributes() const +const std::list& DCEquipmentContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCEquipmentContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCEquipmentContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCEquipmentContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCNode_DCEquipmentContainer(BaseClass*, BaseClass*); @@ -87,7 +119,7 @@ const char* DCEquipmentContainer::debugString() const void DCEquipmentContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCEquipmentContainer", &DCEquipmentContainer_factory); + factory_map.emplace("DCEquipmentContainer", &DCEquipmentContainer_factory); } void DCEquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -96,8 +128,8 @@ void DCEquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCEquipmentContainer.DCNodes", &assign_DCEquipmentContainer_DCNodes); - assign_map.emplace("cim:DCEquipmentContainer.DCTopologicalNode", &assign_DCEquipmentContainer_DCTopologicalNode); + assign_map.emplace("DCEquipmentContainer.DCNodes", &assign_DCEquipmentContainer_DCNodes); + assign_map.emplace("DCEquipmentContainer.DCTopologicalNode", &assign_DCEquipmentContainer_DCTopologicalNode); } void DCEquipmentContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -115,11 +147,25 @@ void DCEquipmentContainer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DCEquipmentContainer::declare() { return BaseClassDefiner(DCEquipmentContainer::addConstructToMap, DCEquipmentContainer::addPrimitiveAssignFnsToMap, DCEquipmentContainer::addClassAssignFnsToMap, DCEquipmentContainer::debugName); } +std::map DCEquipmentContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCEquipmentContainer_factory() diff --git a/CGMES_3.0.0/DCEquipmentContainer.hpp b/CGMES_3.0.0/DCEquipmentContainer.hpp index aadaf2b48..96a6d3737 100644 --- a/CGMES_3.0.0/DCEquipmentContainer.hpp +++ b/CGMES_3.0.0/DCEquipmentContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCEquipmentContainer_factory(); diff --git a/CGMES_3.0.0/DCGround.cpp b/CGMES_3.0.0/DCGround.cpp index 07d7f35f7..9165a2bea 100644 --- a/CGMES_3.0.0/DCGround.cpp +++ b/CGMES_3.0.0/DCGround.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCGround(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCGround.inductance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCGround.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCGround::DCGround() {} DCGround::~DCGround() {} -static const std::list PossibleProfilesForClass = +const std::list& DCGround::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCGround::getClassNamespaceUrl() const { - { "cim:DCGround.inductance", { CGMESProfile::EQ, } }, - { "cim:DCGround.r", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCGround::getPossibleProfilesForClass() const +const std::string& DCGround::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCGround::getPossibleProfilesForAttributes() const +const std::list& DCGround::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCGround::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCGround::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCGround::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCGround_inductance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DCGround::debugString() const void DCGround::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCGround", &DCGround_factory); + factory_map.emplace("DCGround", &DCGround_factory); } void DCGround::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCGround.inductance", &assign_DCGround_inductance); - assign_map.emplace("cim:DCGround.r", &assign_DCGround_r); + assign_map.emplace("DCGround.inductance", &assign_DCGround_inductance); + assign_map.emplace("DCGround.r", &assign_DCGround_r); } void DCGround::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DCGround::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCGround.inductance", &get_DCGround_inductance); - get_map.emplace("cim:DCGround.r", &get_DCGround_r); + get_map.emplace("DCGround.inductance", &get_DCGround_inductance); + get_map.emplace("DCGround.r", &get_DCGround_r); } void DCGround::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DCGround::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCGround::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCGround" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCGround::declare() { return BaseClassDefiner(DCGround::addConstructToMap, DCGround::addPrimitiveAssignFnsToMap, DCGround::addClassAssignFnsToMap, DCGround::debugName); } +std::map DCGround::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCGround_factory() diff --git a/CGMES_3.0.0/DCGround.hpp b/CGMES_3.0.0/DCGround.hpp index 5321d8f49..647a6a202 100644 --- a/CGMES_3.0.0/DCGround.hpp +++ b/CGMES_3.0.0/DCGround.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Inductance.hpp" #include "Resistance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCGround_factory(); diff --git a/CGMES_3.0.0/DCLine.cpp b/CGMES_3.0.0/DCLine.cpp index 15f9c9331..282800ce9 100644 --- a/CGMES_3.0.0/DCLine.cpp +++ b/CGMES_3.0.0/DCLine.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCLine(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCLine.Region", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCLine::DCLine() : Region(nullptr) {} DCLine::~DCLine() {} -static const std::list PossibleProfilesForClass = +const std::list& DCLine::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCLine::getClassNamespaceUrl() const { - { "cim:DCLine.Region", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCLine::getPossibleProfilesForClass() const +const std::string& DCLine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCLine::getPossibleProfilesForAttributes() const +const std::list& DCLine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCEquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCLine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCLine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCLine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_DCLines(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* DCLine::debugString() const void DCLine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCLine", &DCLine_factory); + factory_map.emplace("DCLine", &DCLine_factory); } void DCLine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void DCLine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLine.Region", &assign_DCLine_Region); + assign_map.emplace("DCLine.Region", &assign_DCLine_Region); } void DCLine::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void DCLine::addPrimitiveGetFnsToMap(std::map& get_ma void DCLine::addClassGetFnsToMap(std::map& get_map) const { DCEquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCLine.Region", &get_DCLine_Region); + get_map.emplace("DCLine.Region", &get_DCLine_Region); } void DCLine::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void DCLine::addEnumGetFnsToMap(std::map& get_map) co DCEquipmentContainer::addEnumGetFnsToMap(get_map); } +bool DCLine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCLine" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCLine::declare() { return BaseClassDefiner(DCLine::addConstructToMap, DCLine::addPrimitiveAssignFnsToMap, DCLine::addClassAssignFnsToMap, DCLine::debugName); } +std::map DCLine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCEquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCLine_factory() diff --git a/CGMES_3.0.0/DCLine.hpp b/CGMES_3.0.0/DCLine.hpp index 60c9bf510..71ca25f2f 100644 --- a/CGMES_3.0.0/DCLine.hpp +++ b/CGMES_3.0.0/DCLine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCEquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCLine_factory(); diff --git a/CGMES_3.0.0/DCLineSegment.cpp b/CGMES_3.0.0/DCLineSegment.cpp index d4118b718..952479546 100644 --- a/CGMES_3.0.0/DCLineSegment.cpp +++ b/CGMES_3.0.0/DCLineSegment.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCLineSegment(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCLineSegment.capacitance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.inductance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.length", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCLineSegment.resistance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCLineSegment::DCLineSegment() {} DCLineSegment::~DCLineSegment() {} -static const std::list PossibleProfilesForClass = +const std::list& DCLineSegment::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCLineSegment::getClassNamespaceUrl() const { - { "cim:DCLineSegment.capacitance", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.inductance", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.length", { CGMESProfile::EQ, } }, - { "cim:DCLineSegment.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCLineSegment::getPossibleProfilesForClass() const +const std::string& DCLineSegment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCLineSegment::getPossibleProfilesForAttributes() const +const std::list& DCLineSegment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCLineSegment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCLineSegment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCLineSegment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCLineSegment_capacitance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* DCLineSegment::debugString() const void DCLineSegment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCLineSegment", &DCLineSegment_factory); + factory_map.emplace("DCLineSegment", &DCLineSegment_factory); } void DCLineSegment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCLineSegment.capacitance", &assign_DCLineSegment_capacitance); - assign_map.emplace("cim:DCLineSegment.inductance", &assign_DCLineSegment_inductance); - assign_map.emplace("cim:DCLineSegment.length", &assign_DCLineSegment_length); - assign_map.emplace("cim:DCLineSegment.resistance", &assign_DCLineSegment_resistance); + assign_map.emplace("DCLineSegment.capacitance", &assign_DCLineSegment_capacitance); + assign_map.emplace("DCLineSegment.inductance", &assign_DCLineSegment_inductance); + assign_map.emplace("DCLineSegment.length", &assign_DCLineSegment_length); + assign_map.emplace("DCLineSegment.resistance", &assign_DCLineSegment_resistance); } void DCLineSegment::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void DCLineSegment::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCLineSegment.capacitance", &get_DCLineSegment_capacitance); - get_map.emplace("cim:DCLineSegment.inductance", &get_DCLineSegment_inductance); - get_map.emplace("cim:DCLineSegment.length", &get_DCLineSegment_length); - get_map.emplace("cim:DCLineSegment.resistance", &get_DCLineSegment_resistance); + get_map.emplace("DCLineSegment.capacitance", &get_DCLineSegment_capacitance); + get_map.emplace("DCLineSegment.inductance", &get_DCLineSegment_inductance); + get_map.emplace("DCLineSegment.length", &get_DCLineSegment_length); + get_map.emplace("DCLineSegment.resistance", &get_DCLineSegment_resistance); } void DCLineSegment::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void DCLineSegment::addEnumGetFnsToMap(std::map& get_ DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCLineSegment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCLineSegment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCLineSegment::declare() { return BaseClassDefiner(DCLineSegment::addConstructToMap, DCLineSegment::addPrimitiveAssignFnsToMap, DCLineSegment::addClassAssignFnsToMap, DCLineSegment::debugName); } +std::map DCLineSegment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCLineSegment_factory() diff --git a/CGMES_3.0.0/DCLineSegment.hpp b/CGMES_3.0.0/DCLineSegment.hpp index 4f8354064..3685f0874 100644 --- a/CGMES_3.0.0/DCLineSegment.hpp +++ b/CGMES_3.0.0/DCLineSegment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Capacitance.hpp" #include "Inductance.hpp" #include "Length.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCLineSegment_factory(); diff --git a/CGMES_3.0.0/DCNode.cpp b/CGMES_3.0.0/DCNode.cpp index 8fd69d983..a050e8ac0 100644 --- a/CGMES_3.0.0/DCNode.cpp +++ b/CGMES_3.0.0/DCNode.cpp @@ -14,35 +14,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCNode(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCNode.DCEquipmentContainer", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCNode.DCTerminals", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCNode.DCTopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + DCNode::DCNode() : DCEquipmentContainer(nullptr), DCTopologicalNode(nullptr) {} DCNode::~DCNode() {} -static const std::list PossibleProfilesForClass = +const std::list& DCNode::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCNode::getClassNamespaceUrl() const { - { "cim:DCNode.DCEquipmentContainer", { CGMESProfile::EQ, } }, - { "cim:DCNode.DCTerminals", { CGMESProfile::EQ, } }, - { "cim:DCNode.DCTopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCNode::getPossibleProfilesForClass() const +const std::string& DCNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCNode::getPossibleProfilesForAttributes() const +const std::list& DCNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCEquipmentContainer_DCNodes(BaseClass*, BaseClass*); @@ -133,7 +165,7 @@ const char* DCNode::debugString() const void DCNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCNode", &DCNode_factory); + factory_map.emplace("DCNode", &DCNode_factory); } void DCNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -142,9 +174,9 @@ void DCNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCNode.DCEquipmentContainer", &assign_DCNode_DCEquipmentContainer); - assign_map.emplace("cim:DCNode.DCTerminals", &assign_DCNode_DCTerminals); - assign_map.emplace("cim:DCNode.DCTopologicalNode", &assign_DCNode_DCTopologicalNode); + assign_map.emplace("DCNode.DCEquipmentContainer", &assign_DCNode_DCEquipmentContainer); + assign_map.emplace("DCNode.DCTerminals", &assign_DCNode_DCTerminals); + assign_map.emplace("DCNode.DCTopologicalNode", &assign_DCNode_DCTopologicalNode); } void DCNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -155,8 +187,8 @@ void DCNode::addPrimitiveGetFnsToMap(std::map& get_ma void DCNode::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCNode.DCEquipmentContainer", &get_DCNode_DCEquipmentContainer); - get_map.emplace("cim:DCNode.DCTopologicalNode", &get_DCNode_DCTopologicalNode); + get_map.emplace("DCNode.DCEquipmentContainer", &get_DCNode_DCEquipmentContainer); + get_map.emplace("DCNode.DCTopologicalNode", &get_DCNode_DCTopologicalNode); } void DCNode::addEnumGetFnsToMap(std::map& get_map) const @@ -164,11 +196,25 @@ void DCNode::addEnumGetFnsToMap(std::map& get_map) co IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCNode::declare() { return BaseClassDefiner(DCNode::addConstructToMap, DCNode::addPrimitiveAssignFnsToMap, DCNode::addClassAssignFnsToMap, DCNode::debugName); } +std::map DCNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCNode_factory() diff --git a/CGMES_3.0.0/DCNode.hpp b/CGMES_3.0.0/DCNode.hpp index 35565047a..7fab178fb 100644 --- a/CGMES_3.0.0/DCNode.hpp +++ b/CGMES_3.0.0/DCNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCNode_factory(); diff --git a/CGMES_3.0.0/DCSeriesDevice.cpp b/CGMES_3.0.0/DCSeriesDevice.cpp index f008336db..795b5e338 100644 --- a/CGMES_3.0.0/DCSeriesDevice.cpp +++ b/CGMES_3.0.0/DCSeriesDevice.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCSeriesDevice(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCSeriesDevice.inductance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCSeriesDevice.resistance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCSeriesDevice::DCSeriesDevice() {} DCSeriesDevice::~DCSeriesDevice() {} -static const std::list PossibleProfilesForClass = +const std::list& DCSeriesDevice::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCSeriesDevice::getClassNamespaceUrl() const { - { "cim:DCSeriesDevice.inductance", { CGMESProfile::EQ, } }, - { "cim:DCSeriesDevice.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCSeriesDevice::getPossibleProfilesForClass() const +const std::string& DCSeriesDevice::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCSeriesDevice::getPossibleProfilesForAttributes() const +const std::list& DCSeriesDevice::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCSeriesDevice::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCSeriesDevice::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCSeriesDevice::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCSeriesDevice_inductance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DCSeriesDevice::debugString() const void DCSeriesDevice::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCSeriesDevice", &DCSeriesDevice_factory); + factory_map.emplace("DCSeriesDevice", &DCSeriesDevice_factory); } void DCSeriesDevice::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCSeriesDevice.inductance", &assign_DCSeriesDevice_inductance); - assign_map.emplace("cim:DCSeriesDevice.resistance", &assign_DCSeriesDevice_resistance); + assign_map.emplace("DCSeriesDevice.inductance", &assign_DCSeriesDevice_inductance); + assign_map.emplace("DCSeriesDevice.resistance", &assign_DCSeriesDevice_resistance); } void DCSeriesDevice::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DCSeriesDevice::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCSeriesDevice.inductance", &get_DCSeriesDevice_inductance); - get_map.emplace("cim:DCSeriesDevice.resistance", &get_DCSeriesDevice_resistance); + get_map.emplace("DCSeriesDevice.inductance", &get_DCSeriesDevice_inductance); + get_map.emplace("DCSeriesDevice.resistance", &get_DCSeriesDevice_resistance); } void DCSeriesDevice::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DCSeriesDevice::addEnumGetFnsToMap(std::map& get DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCSeriesDevice::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCSeriesDevice" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCSeriesDevice::declare() { return BaseClassDefiner(DCSeriesDevice::addConstructToMap, DCSeriesDevice::addPrimitiveAssignFnsToMap, DCSeriesDevice::addClassAssignFnsToMap, DCSeriesDevice::debugName); } +std::map DCSeriesDevice::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCSeriesDevice_factory() diff --git a/CGMES_3.0.0/DCSeriesDevice.hpp b/CGMES_3.0.0/DCSeriesDevice.hpp index 72cc951ae..790e84d5d 100644 --- a/CGMES_3.0.0/DCSeriesDevice.hpp +++ b/CGMES_3.0.0/DCSeriesDevice.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Inductance.hpp" #include "Resistance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCSeriesDevice_factory(); diff --git a/CGMES_3.0.0/DCShunt.cpp b/CGMES_3.0.0/DCShunt.cpp index c37df6f78..907cd48fe 100644 --- a/CGMES_3.0.0/DCShunt.cpp +++ b/CGMES_3.0.0/DCShunt.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCShunt(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCShunt.capacitance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "DCShunt.resistance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCShunt::DCShunt() {} DCShunt::~DCShunt() {} -static const std::list PossibleProfilesForClass = +const std::list& DCShunt::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCShunt::getClassNamespaceUrl() const { - { "cim:DCShunt.capacitance", { CGMESProfile::EQ, } }, - { "cim:DCShunt.resistance", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCShunt::getPossibleProfilesForClass() const +const std::string& DCShunt::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCShunt::getPossibleProfilesForAttributes() const +const std::list& DCShunt::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCShunt::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCShunt::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCShunt::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCShunt_capacitance(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DCShunt::debugString() const void DCShunt::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCShunt", &DCShunt_factory); + factory_map.emplace("DCShunt", &DCShunt_factory); } void DCShunt::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCShunt.capacitance", &assign_DCShunt_capacitance); - assign_map.emplace("cim:DCShunt.resistance", &assign_DCShunt_resistance); + assign_map.emplace("DCShunt.capacitance", &assign_DCShunt_capacitance); + assign_map.emplace("DCShunt.resistance", &assign_DCShunt_resistance); } void DCShunt::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DCShunt::addClassAssignFnsToMap(std::unordered_map& get_map) const { DCConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DCShunt.capacitance", &get_DCShunt_capacitance); - get_map.emplace("cim:DCShunt.resistance", &get_DCShunt_resistance); + get_map.emplace("DCShunt.capacitance", &get_DCShunt_capacitance); + get_map.emplace("DCShunt.resistance", &get_DCShunt_resistance); } void DCShunt::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DCShunt::addEnumGetFnsToMap(std::map& get_map) c DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCShunt::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCShunt" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCShunt::declare() { return BaseClassDefiner(DCShunt::addConstructToMap, DCShunt::addPrimitiveAssignFnsToMap, DCShunt::addClassAssignFnsToMap, DCShunt::debugName); } +std::map DCShunt::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCShunt_factory() diff --git a/CGMES_3.0.0/DCShunt.hpp b/CGMES_3.0.0/DCShunt.hpp index 77a9973be..8f9f9d6ef 100644 --- a/CGMES_3.0.0/DCShunt.hpp +++ b/CGMES_3.0.0/DCShunt.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Capacitance.hpp" #include "Resistance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCShunt_factory(); diff --git a/CGMES_3.0.0/DCSwitch.cpp b/CGMES_3.0.0/DCSwitch.cpp index 2183c59a5..775d4fb17 100644 --- a/CGMES_3.0.0/DCSwitch.cpp +++ b/CGMES_3.0.0/DCSwitch.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCSwitch(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DCSwitch::DCSwitch() {} DCSwitch::~DCSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& DCSwitch::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCSwitch::getPossibleProfilesForClass() const +const std::string& DCSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCSwitch::getPossibleProfilesForAttributes() const +const std::list& DCSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DCSwitch::debugName[] = "DCSwitch"; @@ -46,7 +78,7 @@ const char* DCSwitch::debugString() const void DCSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCSwitch", &DCSwitch_factory); + factory_map.emplace("DCSwitch", &DCSwitch_factory); } void DCSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void DCSwitch::addEnumGetFnsToMap(std::map& get_map) DCConductingEquipment::addEnumGetFnsToMap(get_map); } +bool DCSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCSwitch::declare() { return BaseClassDefiner(DCSwitch::addConstructToMap, DCSwitch::addPrimitiveAssignFnsToMap, DCSwitch::addClassAssignFnsToMap, DCSwitch::debugName); } +std::map DCSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCSwitch_factory() diff --git a/CGMES_3.0.0/DCSwitch.hpp b/CGMES_3.0.0/DCSwitch.hpp index 2512b3a78..52d24bba8 100644 --- a/CGMES_3.0.0/DCSwitch.hpp +++ b/CGMES_3.0.0/DCSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCSwitch_factory(); diff --git a/CGMES_3.0.0/DCTerminal.cpp b/CGMES_3.0.0/DCTerminal.cpp index b33606f5f..83811809b 100644 --- a/CGMES_3.0.0/DCTerminal.cpp +++ b/CGMES_3.0.0/DCTerminal.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTerminal(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTerminal.DCConductingEquipment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DCTerminal::DCTerminal() : DCConductingEquipment(nullptr) {} DCTerminal::~DCTerminal() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTerminal::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTerminal::getClassNamespaceUrl() const { - { "cim:DCTerminal.DCConductingEquipment", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTerminal::getPossibleProfilesForClass() const +const std::string& DCTerminal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTerminal::getPossibleProfilesForAttributes() const +const std::list& DCTerminal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DCBaseTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTerminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTerminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTerminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCConductingEquipment_DCTerminals(BaseClass*, BaseClass*); @@ -81,7 +113,7 @@ const char* DCTerminal::debugString() const void DCTerminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTerminal", &DCTerminal_factory); + factory_map.emplace("DCTerminal", &DCTerminal_factory); } void DCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -90,7 +122,7 @@ void DCTerminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTerminal.DCConductingEquipment", &assign_DCTerminal_DCConductingEquipment); + assign_map.emplace("DCTerminal.DCConductingEquipment", &assign_DCTerminal_DCConductingEquipment); } void DCTerminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -101,7 +133,7 @@ void DCTerminal::addPrimitiveGetFnsToMap(std::map& ge void DCTerminal::addClassGetFnsToMap(std::map& get_map) const { DCBaseTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTerminal.DCConductingEquipment", &get_DCTerminal_DCConductingEquipment); + get_map.emplace("DCTerminal.DCConductingEquipment", &get_DCTerminal_DCConductingEquipment); } void DCTerminal::addEnumGetFnsToMap(std::map& get_map) const @@ -109,11 +141,25 @@ void DCTerminal::addEnumGetFnsToMap(std::map& get_map DCBaseTerminal::addEnumGetFnsToMap(get_map); } +bool DCTerminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTerminal" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTerminal::declare() { return BaseClassDefiner(DCTerminal::addConstructToMap, DCTerminal::addPrimitiveAssignFnsToMap, DCTerminal::addClassAssignFnsToMap, DCTerminal::debugName); } +std::map DCTerminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DCBaseTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTerminal_factory() diff --git a/CGMES_3.0.0/DCTerminal.hpp b/CGMES_3.0.0/DCTerminal.hpp index 8c8b07066..bf3010ff3 100644 --- a/CGMES_3.0.0/DCTerminal.hpp +++ b/CGMES_3.0.0/DCTerminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DCBaseTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTerminal_factory(); diff --git a/CGMES_3.0.0/DCTopologicalIsland.cpp b/CGMES_3.0.0/DCTopologicalIsland.cpp index 1e7a83ea2..9f95c582d 100644 --- a/CGMES_3.0.0/DCTopologicalIsland.cpp +++ b/CGMES_3.0.0/DCTopologicalIsland.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTopologicalIsland(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTopologicalIsland.DCTopologicalNodes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + DCTopologicalIsland::DCTopologicalIsland() {} DCTopologicalIsland::~DCTopologicalIsland() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTopologicalIsland::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTopologicalIsland::getClassNamespaceUrl() const { - { "cim:DCTopologicalIsland.DCTopologicalNodes", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTopologicalIsland::getPossibleProfilesForClass() const +const std::string& DCTopologicalIsland::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTopologicalIsland::getPossibleProfilesForAttributes() const +const std::list& DCTopologicalIsland::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTopologicalIsland::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTopologicalIsland::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTopologicalIsland::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCTopologicalNode_DCTopologicalIsland(BaseClass*, BaseClass*); @@ -76,7 +108,7 @@ const char* DCTopologicalIsland::debugString() const void DCTopologicalIsland::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTopologicalIsland", &DCTopologicalIsland_factory); + factory_map.emplace("DCTopologicalIsland", &DCTopologicalIsland_factory); } void DCTopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -85,7 +117,7 @@ void DCTopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTopologicalIsland.DCTopologicalNodes", &assign_DCTopologicalIsland_DCTopologicalNodes); + assign_map.emplace("DCTopologicalIsland.DCTopologicalNodes", &assign_DCTopologicalIsland_DCTopologicalNodes); } void DCTopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -96,7 +128,7 @@ void DCTopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTopologicalIsland.DCTopologicalNodes", &get_DCTopologicalIsland_DCTopologicalNodes); + get_map.emplace("DCTopologicalIsland.DCTopologicalNodes", &get_DCTopologicalIsland_DCTopologicalNodes); } void DCTopologicalIsland::addEnumGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void DCTopologicalIsland::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCTopologicalIsland::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTopologicalIsland" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTopologicalIsland::declare() { return BaseClassDefiner(DCTopologicalIsland::addConstructToMap, DCTopologicalIsland::addPrimitiveAssignFnsToMap, DCTopologicalIsland::addClassAssignFnsToMap, DCTopologicalIsland::debugName); } +std::map DCTopologicalIsland::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTopologicalIsland_factory() diff --git a/CGMES_3.0.0/DCTopologicalIsland.hpp b/CGMES_3.0.0/DCTopologicalIsland.hpp index ba6001d9b..e5c0ec492 100644 --- a/CGMES_3.0.0/DCTopologicalIsland.hpp +++ b/CGMES_3.0.0/DCTopologicalIsland.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTopologicalIsland_factory(); diff --git a/CGMES_3.0.0/DCTopologicalNode.cpp b/CGMES_3.0.0/DCTopologicalNode.cpp index 86481b2ec..a79c19f40 100644 --- a/CGMES_3.0.0/DCTopologicalNode.cpp +++ b/CGMES_3.0.0/DCTopologicalNode.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DCTopologicalNode(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DCTopologicalNode.DCEquipmentContainer", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCNodes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCTerminals", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "DCTopologicalNode.DCTopologicalIsland", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + DCTopologicalNode::DCTopologicalNode() : DCEquipmentContainer(nullptr), DCTopologicalIsland(nullptr) {} DCTopologicalNode::~DCTopologicalNode() {} -static const std::list PossibleProfilesForClass = +const std::list& DCTopologicalNode::getAttributeNames() const { - CGMESProfile::SV, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DCTopologicalNode::getClassNamespaceUrl() const { - { "cim:DCTopologicalNode.DCEquipmentContainer", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCNodes", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCTerminals", { CGMESProfile::TP, } }, - { "cim:DCTopologicalNode.DCTopologicalIsland", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DCTopologicalNode::getPossibleProfilesForClass() const +const std::string& DCTopologicalNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DCTopologicalNode::getPossibleProfilesForAttributes() const +const std::list& DCTopologicalNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DCTopologicalNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DCTopologicalNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DCTopologicalNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCEquipmentContainer_DCTopologicalNode(BaseClass*, BaseClass*); @@ -140,7 +172,7 @@ const char* DCTopologicalNode::debugString() const void DCTopologicalNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DCTopologicalNode", &DCTopologicalNode_factory); + factory_map.emplace("DCTopologicalNode", &DCTopologicalNode_factory); } void DCTopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -149,10 +181,10 @@ void DCTopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DCTopologicalNode.DCEquipmentContainer", &assign_DCTopologicalNode_DCEquipmentContainer); - assign_map.emplace("cim:DCTopologicalNode.DCNodes", &assign_DCTopologicalNode_DCNodes); - assign_map.emplace("cim:DCTopologicalNode.DCTerminals", &assign_DCTopologicalNode_DCTerminals); - assign_map.emplace("cim:DCTopologicalNode.DCTopologicalIsland", &assign_DCTopologicalNode_DCTopologicalIsland); + assign_map.emplace("DCTopologicalNode.DCEquipmentContainer", &assign_DCTopologicalNode_DCEquipmentContainer); + assign_map.emplace("DCTopologicalNode.DCNodes", &assign_DCTopologicalNode_DCNodes); + assign_map.emplace("DCTopologicalNode.DCTerminals", &assign_DCTopologicalNode_DCTerminals); + assign_map.emplace("DCTopologicalNode.DCTopologicalIsland", &assign_DCTopologicalNode_DCTopologicalIsland); } void DCTopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -163,7 +195,7 @@ void DCTopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DCTopologicalNode.DCEquipmentContainer", &get_DCTopologicalNode_DCEquipmentContainer); + get_map.emplace("DCTopologicalNode.DCEquipmentContainer", &get_DCTopologicalNode_DCEquipmentContainer); } void DCTopologicalNode::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void DCTopologicalNode::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DCTopologicalNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DCTopologicalNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DCTopologicalNode::declare() { return BaseClassDefiner(DCTopologicalNode::addConstructToMap, DCTopologicalNode::addPrimitiveAssignFnsToMap, DCTopologicalNode::addClassAssignFnsToMap, DCTopologicalNode::debugName); } +std::map DCTopologicalNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DCTopologicalNode_factory() diff --git a/CGMES_3.0.0/DCTopologicalNode.hpp b/CGMES_3.0.0/DCTopologicalNode.hpp index 250595287..087059af6 100644 --- a/CGMES_3.0.0/DCTopologicalNode.hpp +++ b/CGMES_3.0.0/DCTopologicalNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DCTopologicalNode_factory(); diff --git a/CGMES_3.0.0/DayType.cpp b/CGMES_3.0.0/DayType.cpp index 3783d542a..7748a9d0d 100644 --- a/CGMES_3.0.0/DayType.cpp +++ b/CGMES_3.0.0/DayType.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DayType(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DayType.SeasonDayTypeSchedules", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + DayType::DayType() {} DayType::~DayType() {} -static const std::list PossibleProfilesForClass = +const std::list& DayType::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DayType::getClassNamespaceUrl() const { - { "cim:DayType.SeasonDayTypeSchedules", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DayType::getPossibleProfilesForClass() const +const std::string& DayType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DayType::getPossibleProfilesForAttributes() const +const std::list& DayType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DayType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DayType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DayType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeasonDayTypeSchedule_DayType(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DayType::debugString() const void DayType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DayType", &DayType_factory); + factory_map.emplace("DayType", &DayType_factory); } void DayType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DayType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DayType.SeasonDayTypeSchedules", &assign_DayType_SeasonDayTypeSchedules); + assign_map.emplace("DayType.SeasonDayTypeSchedules", &assign_DayType_SeasonDayTypeSchedules); } void DayType::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DayType::addEnumGetFnsToMap(std::map& get_map) c IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DayType::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DayType" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DayType::declare() { return BaseClassDefiner(DayType::addConstructToMap, DayType::addPrimitiveAssignFnsToMap, DayType::addClassAssignFnsToMap, DayType::debugName); } +std::map DayType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DayType_factory() diff --git a/CGMES_3.0.0/DayType.hpp b/CGMES_3.0.0/DayType.hpp index 0d4ca15a9..3e5fd1fe0 100644 --- a/CGMES_3.0.0/DayType.hpp +++ b/CGMES_3.0.0/DayType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DayType_factory(); diff --git a/CGMES_3.0.0/Diagram.cpp b/CGMES_3.0.0/Diagram.cpp index 20da79106..037437640 100644 --- a/CGMES_3.0.0/Diagram.cpp +++ b/CGMES_3.0.0/Diagram.cpp @@ -13,38 +13,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Diagram(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Diagram.DiagramElements", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "Diagram.DiagramStyle", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "Diagram.orientation", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "Diagram.x1InitialView", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "Diagram.x2InitialView", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "Diagram.y1InitialView", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "Diagram.y2InitialView", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + Diagram::Diagram() : DiagramStyle(nullptr) {} Diagram::~Diagram() {} -static const std::list PossibleProfilesForClass = +const std::list& Diagram::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Diagram::getClassNamespaceUrl() const { - { "cim:Diagram.DiagramElements", { CGMESProfile::DL, } }, - { "cim:Diagram.DiagramStyle", { CGMESProfile::DL, } }, - { "cim:Diagram.orientation", { CGMESProfile::DL, } }, - { "cim:Diagram.x1InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.x2InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.y1InitialView", { CGMESProfile::DL, } }, - { "cim:Diagram.y2InitialView", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Diagram::getPossibleProfilesForClass() const +const std::string& Diagram::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Diagram::getPossibleProfilesForAttributes() const +const std::list& Diagram::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Diagram::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Diagram::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Diagram::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_Diagram(BaseClass*, BaseClass*); @@ -249,43 +281,49 @@ const char* Diagram::debugString() const void Diagram::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Diagram", &Diagram_factory); + factory_map.emplace("Diagram", &Diagram_factory); } void Diagram::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Diagram.orientation", &assign_Diagram_orientation); - assign_map.emplace("cim:Diagram.x1InitialView", &assign_Diagram_x1InitialView); - assign_map.emplace("cim:Diagram.x2InitialView", &assign_Diagram_x2InitialView); - assign_map.emplace("cim:Diagram.y1InitialView", &assign_Diagram_y1InitialView); - assign_map.emplace("cim:Diagram.y2InitialView", &assign_Diagram_y2InitialView); + assign_map.emplace("Diagram.orientation", &assign_Diagram_orientation); + assign_map.emplace("Diagram.x1InitialView", &assign_Diagram_x1InitialView); + assign_map.emplace("Diagram.x2InitialView", &assign_Diagram_x2InitialView); + assign_map.emplace("Diagram.y1InitialView", &assign_Diagram_y1InitialView); + assign_map.emplace("Diagram.y2InitialView", &assign_Diagram_y2InitialView); } void Diagram::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Diagram.DiagramElements", &assign_Diagram_DiagramElements); - assign_map.emplace("cim:Diagram.DiagramStyle", &assign_Diagram_DiagramStyle); + assign_map.emplace("Diagram.DiagramElements", &assign_Diagram_DiagramElements); + assign_map.emplace("Diagram.DiagramStyle", &assign_Diagram_DiagramStyle); } void Diagram::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.x1InitialView", &get_Diagram_x1InitialView); - get_map.emplace("cim:Diagram.x2InitialView", &get_Diagram_x2InitialView); - get_map.emplace("cim:Diagram.y1InitialView", &get_Diagram_y1InitialView); - get_map.emplace("cim:Diagram.y2InitialView", &get_Diagram_y2InitialView); + get_map.emplace("Diagram.x1InitialView", &get_Diagram_x1InitialView); + get_map.emplace("Diagram.x2InitialView", &get_Diagram_x2InitialView); + get_map.emplace("Diagram.y1InitialView", &get_Diagram_y1InitialView); + get_map.emplace("Diagram.y2InitialView", &get_Diagram_y2InitialView); } void Diagram::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.DiagramStyle", &get_Diagram_DiagramStyle); + get_map.emplace("Diagram.DiagramStyle", &get_Diagram_DiagramStyle); } void Diagram::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Diagram.orientation", &get_Diagram_orientation); + get_map.emplace("Diagram.orientation", &get_Diagram_orientation); +} + +bool Diagram::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Diagram" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Diagram::declare() @@ -293,6 +331,14 @@ const BaseClassDefiner Diagram::declare() return BaseClassDefiner(Diagram::addConstructToMap, Diagram::addPrimitiveAssignFnsToMap, Diagram::addClassAssignFnsToMap, Diagram::debugName); } +std::map Diagram::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Diagram_factory() diff --git a/CGMES_3.0.0/Diagram.hpp b/CGMES_3.0.0/Diagram.hpp index 140afd706..11fc5e977 100644 --- a/CGMES_3.0.0/Diagram.hpp +++ b/CGMES_3.0.0/Diagram.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "OrientationKind.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Diagram_factory(); diff --git a/CGMES_3.0.0/DiagramObject.cpp b/CGMES_3.0.0/DiagramObject.cpp index b85c6e596..d0e40078e 100644 --- a/CGMES_3.0.0/DiagramObject.cpp +++ b/CGMES_3.0.0/DiagramObject.cpp @@ -16,41 +16,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObject(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObject.Diagram", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.DiagramObjectPoints", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.DiagramObjectStyle", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.IdentifiedObject", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.VisibilityLayers", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.drawingOrder", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.isPolygon", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.offsetX", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.offsetY", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObject.rotation", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObject::DiagramObject() : Diagram(nullptr), DiagramObjectStyle(nullptr), IdentifiedObject(nullptr) {} DiagramObject::~DiagramObject() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObject::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObject::getClassNamespaceUrl() const { - { "cim:DiagramObject.Diagram", { CGMESProfile::DL, } }, - { "cim:DiagramObject.DiagramObjectPoints", { CGMESProfile::DL, } }, - { "cim:DiagramObject.DiagramObjectStyle", { CGMESProfile::DL, } }, - { "cim:DiagramObject.IdentifiedObject", { CGMESProfile::DL, } }, - { "cim:DiagramObject.VisibilityLayers", { CGMESProfile::DL, } }, - { "cim:DiagramObject.drawingOrder", { CGMESProfile::DL, } }, - { "cim:DiagramObject.isPolygon", { CGMESProfile::DL, } }, - { "cim:DiagramObject.offsetX", { CGMESProfile::DL, } }, - { "cim:DiagramObject.offsetY", { CGMESProfile::DL, } }, - { "cim:DiagramObject.rotation", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObject::getPossibleProfilesForClass() const +const std::string& DiagramObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObject::getPossibleProfilesForAttributes() const +const std::list& DiagramObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Diagram_DiagramElements(BaseClass*, BaseClass*); @@ -335,43 +367,43 @@ const char* DiagramObject::debugString() const void DiagramObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObject", &DiagramObject_factory); + factory_map.emplace("DiagramObject", &DiagramObject_factory); } void DiagramObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObject.drawingOrder", &assign_DiagramObject_drawingOrder); - assign_map.emplace("cim:DiagramObject.isPolygon", &assign_DiagramObject_isPolygon); - assign_map.emplace("cim:DiagramObject.offsetX", &assign_DiagramObject_offsetX); - assign_map.emplace("cim:DiagramObject.offsetY", &assign_DiagramObject_offsetY); - assign_map.emplace("cim:DiagramObject.rotation", &assign_DiagramObject_rotation); + assign_map.emplace("DiagramObject.drawingOrder", &assign_DiagramObject_drawingOrder); + assign_map.emplace("DiagramObject.isPolygon", &assign_DiagramObject_isPolygon); + assign_map.emplace("DiagramObject.offsetX", &assign_DiagramObject_offsetX); + assign_map.emplace("DiagramObject.offsetY", &assign_DiagramObject_offsetY); + assign_map.emplace("DiagramObject.rotation", &assign_DiagramObject_rotation); } void DiagramObject::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObject.Diagram", &assign_DiagramObject_Diagram); - assign_map.emplace("cim:DiagramObject.DiagramObjectPoints", &assign_DiagramObject_DiagramObjectPoints); - assign_map.emplace("cim:DiagramObject.DiagramObjectStyle", &assign_DiagramObject_DiagramObjectStyle); - assign_map.emplace("cim:DiagramObject.IdentifiedObject", &assign_DiagramObject_IdentifiedObject); - assign_map.emplace("cim:DiagramObject.VisibilityLayers", &assign_DiagramObject_VisibilityLayers); + assign_map.emplace("DiagramObject.Diagram", &assign_DiagramObject_Diagram); + assign_map.emplace("DiagramObject.DiagramObjectPoints", &assign_DiagramObject_DiagramObjectPoints); + assign_map.emplace("DiagramObject.DiagramObjectStyle", &assign_DiagramObject_DiagramObjectStyle); + assign_map.emplace("DiagramObject.IdentifiedObject", &assign_DiagramObject_IdentifiedObject); + assign_map.emplace("DiagramObject.VisibilityLayers", &assign_DiagramObject_VisibilityLayers); } void DiagramObject::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObject.drawingOrder", &get_DiagramObject_drawingOrder); - get_map.emplace("cim:DiagramObject.isPolygon", &get_DiagramObject_isPolygon); - get_map.emplace("cim:DiagramObject.offsetX", &get_DiagramObject_offsetX); - get_map.emplace("cim:DiagramObject.offsetY", &get_DiagramObject_offsetY); - get_map.emplace("cim:DiagramObject.rotation", &get_DiagramObject_rotation); + get_map.emplace("DiagramObject.drawingOrder", &get_DiagramObject_drawingOrder); + get_map.emplace("DiagramObject.isPolygon", &get_DiagramObject_isPolygon); + get_map.emplace("DiagramObject.offsetX", &get_DiagramObject_offsetX); + get_map.emplace("DiagramObject.offsetY", &get_DiagramObject_offsetY); + get_map.emplace("DiagramObject.rotation", &get_DiagramObject_rotation); } void DiagramObject::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObject.Diagram", &get_DiagramObject_Diagram); - get_map.emplace("cim:DiagramObject.DiagramObjectStyle", &get_DiagramObject_DiagramObjectStyle); - get_map.emplace("cim:DiagramObject.IdentifiedObject", &get_DiagramObject_IdentifiedObject); + get_map.emplace("DiagramObject.Diagram", &get_DiagramObject_Diagram); + get_map.emplace("DiagramObject.DiagramObjectStyle", &get_DiagramObject_DiagramObjectStyle); + get_map.emplace("DiagramObject.IdentifiedObject", &get_DiagramObject_IdentifiedObject); } void DiagramObject::addEnumGetFnsToMap(std::map& get_map) const @@ -379,11 +411,25 @@ void DiagramObject::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObject::declare() { return BaseClassDefiner(DiagramObject::addConstructToMap, DiagramObject::addPrimitiveAssignFnsToMap, DiagramObject::addClassAssignFnsToMap, DiagramObject::debugName); } +std::map DiagramObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObject_factory() diff --git a/CGMES_3.0.0/DiagramObject.hpp b/CGMES_3.0.0/DiagramObject.hpp index d57c0d1ed..180a53479 100644 --- a/CGMES_3.0.0/DiagramObject.hpp +++ b/CGMES_3.0.0/DiagramObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObject_factory(); diff --git a/CGMES_3.0.0/DiagramObjectGluePoint.cpp b/CGMES_3.0.0/DiagramObjectGluePoint.cpp index eea8918f9..3c1c27515 100644 --- a/CGMES_3.0.0/DiagramObjectGluePoint.cpp +++ b/CGMES_3.0.0/DiagramObjectGluePoint.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectGluePoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectGluePoint.DiagramObjectPoints", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectGluePoint::DiagramObjectGluePoint() {} DiagramObjectGluePoint::~DiagramObjectGluePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectGluePoint::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectGluePoint::getClassNamespaceUrl() const { - { "cim:DiagramObjectGluePoint.DiagramObjectPoints", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectGluePoint::getPossibleProfilesForClass() const +const std::string& DiagramObjectGluePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectGluePoint::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectGluePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectGluePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectGluePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectGluePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObjectPoint_DiagramObjectGluePoint(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramObjectGluePoint::debugString() const void DiagramObjectGluePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectGluePoint", &DiagramObjectGluePoint_factory); + factory_map.emplace("DiagramObjectGluePoint", &DiagramObjectGluePoint_factory); } void DiagramObjectGluePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramObjectGluePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectGluePoint.DiagramObjectPoints", &assign_DiagramObjectGluePoint_DiagramObjectPoints); + assign_map.emplace("DiagramObjectGluePoint.DiagramObjectPoints", &assign_DiagramObjectGluePoint_DiagramObjectPoints); } void DiagramObjectGluePoint::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramObjectGluePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectGluePoint::declare() { return BaseClassDefiner(DiagramObjectGluePoint::addConstructToMap, DiagramObjectGluePoint::addPrimitiveAssignFnsToMap, DiagramObjectGluePoint::addClassAssignFnsToMap, DiagramObjectGluePoint::debugName); } +std::map DiagramObjectGluePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectGluePoint_factory() diff --git a/CGMES_3.0.0/DiagramObjectGluePoint.hpp b/CGMES_3.0.0/DiagramObjectGluePoint.hpp index 802b8f94e..52fc7d094 100644 --- a/CGMES_3.0.0/DiagramObjectGluePoint.hpp +++ b/CGMES_3.0.0/DiagramObjectGluePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectGluePoint_factory(); diff --git a/CGMES_3.0.0/DiagramObjectPoint.cpp b/CGMES_3.0.0/DiagramObjectPoint.cpp index 4afd45f45..68a69246b 100644 --- a/CGMES_3.0.0/DiagramObjectPoint.cpp +++ b/CGMES_3.0.0/DiagramObjectPoint.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectPoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectPoint.DiagramObject", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.DiagramObjectGluePoint", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.sequenceNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.xPosition", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.yPosition", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "DiagramObjectPoint.zPosition", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectPoint::DiagramObjectPoint() : DiagramObject(nullptr), DiagramObjectGluePoint(nullptr) {} DiagramObjectPoint::~DiagramObjectPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectPoint::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectPoint::getClassNamespaceUrl() const { - { "cim:DiagramObjectPoint.DiagramObject", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.DiagramObjectGluePoint", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.sequenceNumber", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.xPosition", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.yPosition", { CGMESProfile::DL, } }, - { "cim:DiagramObjectPoint.zPosition", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectPoint::getPossibleProfilesForClass() const +const std::string& DiagramObjectPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectPoint::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_DiagramObjectPoints(BaseClass*, BaseClass*); @@ -232,37 +264,37 @@ const char* DiagramObjectPoint::debugString() const void DiagramObjectPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectPoint", &DiagramObjectPoint_factory); + factory_map.emplace("DiagramObjectPoint", &DiagramObjectPoint_factory); } void DiagramObjectPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectPoint.sequenceNumber", &assign_DiagramObjectPoint_sequenceNumber); - assign_map.emplace("cim:DiagramObjectPoint.xPosition", &assign_DiagramObjectPoint_xPosition); - assign_map.emplace("cim:DiagramObjectPoint.yPosition", &assign_DiagramObjectPoint_yPosition); - assign_map.emplace("cim:DiagramObjectPoint.zPosition", &assign_DiagramObjectPoint_zPosition); + assign_map.emplace("DiagramObjectPoint.sequenceNumber", &assign_DiagramObjectPoint_sequenceNumber); + assign_map.emplace("DiagramObjectPoint.xPosition", &assign_DiagramObjectPoint_xPosition); + assign_map.emplace("DiagramObjectPoint.yPosition", &assign_DiagramObjectPoint_yPosition); + assign_map.emplace("DiagramObjectPoint.zPosition", &assign_DiagramObjectPoint_zPosition); } void DiagramObjectPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectPoint.DiagramObject", &assign_DiagramObjectPoint_DiagramObject); - assign_map.emplace("cim:DiagramObjectPoint.DiagramObjectGluePoint", &assign_DiagramObjectPoint_DiagramObjectGluePoint); + assign_map.emplace("DiagramObjectPoint.DiagramObject", &assign_DiagramObjectPoint_DiagramObject); + assign_map.emplace("DiagramObjectPoint.DiagramObjectGluePoint", &assign_DiagramObjectPoint_DiagramObjectGluePoint); } void DiagramObjectPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObjectPoint.sequenceNumber", &get_DiagramObjectPoint_sequenceNumber); - get_map.emplace("cim:DiagramObjectPoint.xPosition", &get_DiagramObjectPoint_xPosition); - get_map.emplace("cim:DiagramObjectPoint.yPosition", &get_DiagramObjectPoint_yPosition); - get_map.emplace("cim:DiagramObjectPoint.zPosition", &get_DiagramObjectPoint_zPosition); + get_map.emplace("DiagramObjectPoint.sequenceNumber", &get_DiagramObjectPoint_sequenceNumber); + get_map.emplace("DiagramObjectPoint.xPosition", &get_DiagramObjectPoint_xPosition); + get_map.emplace("DiagramObjectPoint.yPosition", &get_DiagramObjectPoint_yPosition); + get_map.emplace("DiagramObjectPoint.zPosition", &get_DiagramObjectPoint_zPosition); } void DiagramObjectPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiagramObjectPoint.DiagramObject", &get_DiagramObjectPoint_DiagramObject); - get_map.emplace("cim:DiagramObjectPoint.DiagramObjectGluePoint", &get_DiagramObjectPoint_DiagramObjectGluePoint); + get_map.emplace("DiagramObjectPoint.DiagramObject", &get_DiagramObjectPoint_DiagramObject); + get_map.emplace("DiagramObjectPoint.DiagramObjectGluePoint", &get_DiagramObjectPoint_DiagramObjectGluePoint); } void DiagramObjectPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -270,11 +302,25 @@ void DiagramObjectPoint::addEnumGetFnsToMap(std::map& BaseClass::addEnumGetFnsToMap(get_map); } +bool DiagramObjectPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObjectPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectPoint::declare() { return BaseClassDefiner(DiagramObjectPoint::addConstructToMap, DiagramObjectPoint::addPrimitiveAssignFnsToMap, DiagramObjectPoint::addClassAssignFnsToMap, DiagramObjectPoint::debugName); } +std::map DiagramObjectPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectPoint_factory() diff --git a/CGMES_3.0.0/DiagramObjectPoint.hpp b/CGMES_3.0.0/DiagramObjectPoint.hpp index 07e022457..3b3d828de 100644 --- a/CGMES_3.0.0/DiagramObjectPoint.hpp +++ b/CGMES_3.0.0/DiagramObjectPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "Integer.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectPoint_factory(); diff --git a/CGMES_3.0.0/DiagramObjectStyle.cpp b/CGMES_3.0.0/DiagramObjectStyle.cpp index db870f870..ecaa4f491 100644 --- a/CGMES_3.0.0/DiagramObjectStyle.cpp +++ b/CGMES_3.0.0/DiagramObjectStyle.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramObjectStyle(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramObjectStyle.StyledObjects", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramObjectStyle::DiagramObjectStyle() {} DiagramObjectStyle::~DiagramObjectStyle() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramObjectStyle::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramObjectStyle::getClassNamespaceUrl() const { - { "cim:DiagramObjectStyle.StyledObjects", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramObjectStyle::getPossibleProfilesForClass() const +const std::string& DiagramObjectStyle::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramObjectStyle::getPossibleProfilesForAttributes() const +const std::list& DiagramObjectStyle::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramObjectStyle::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramObjectStyle::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramObjectStyle::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_DiagramObjectStyle(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramObjectStyle::debugString() const void DiagramObjectStyle::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramObjectStyle", &DiagramObjectStyle_factory); + factory_map.emplace("DiagramObjectStyle", &DiagramObjectStyle_factory); } void DiagramObjectStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramObjectStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramObjectStyle.StyledObjects", &assign_DiagramObjectStyle_StyledObjects); + assign_map.emplace("DiagramObjectStyle.StyledObjects", &assign_DiagramObjectStyle_StyledObjects); } void DiagramObjectStyle::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramObjectStyle::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramObjectStyle::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramObjectStyle" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramObjectStyle::declare() { return BaseClassDefiner(DiagramObjectStyle::addConstructToMap, DiagramObjectStyle::addPrimitiveAssignFnsToMap, DiagramObjectStyle::addClassAssignFnsToMap, DiagramObjectStyle::debugName); } +std::map DiagramObjectStyle::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramObjectStyle_factory() diff --git a/CGMES_3.0.0/DiagramObjectStyle.hpp b/CGMES_3.0.0/DiagramObjectStyle.hpp index f1e09054a..6266ff2ab 100644 --- a/CGMES_3.0.0/DiagramObjectStyle.hpp +++ b/CGMES_3.0.0/DiagramObjectStyle.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramObjectStyle_factory(); diff --git a/CGMES_3.0.0/DiagramStyle.cpp b/CGMES_3.0.0/DiagramStyle.cpp index dd98ebef0..3a7dd029b 100644 --- a/CGMES_3.0.0/DiagramStyle.cpp +++ b/CGMES_3.0.0/DiagramStyle.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiagramStyle(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiagramStyle.Diagram", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + DiagramStyle::DiagramStyle() {} DiagramStyle::~DiagramStyle() {} -static const std::list PossibleProfilesForClass = +const std::list& DiagramStyle::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiagramStyle::getClassNamespaceUrl() const { - { "cim:DiagramStyle.Diagram", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiagramStyle::getPossibleProfilesForClass() const +const std::string& DiagramStyle::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiagramStyle::getPossibleProfilesForAttributes() const +const std::list& DiagramStyle::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiagramStyle::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiagramStyle::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiagramStyle::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Diagram_DiagramStyle(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* DiagramStyle::debugString() const void DiagramStyle::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiagramStyle", &DiagramStyle_factory); + factory_map.emplace("DiagramStyle", &DiagramStyle_factory); } void DiagramStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void DiagramStyle::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiagramStyle.Diagram", &assign_DiagramStyle_Diagram); + assign_map.emplace("DiagramStyle.Diagram", &assign_DiagramStyle_Diagram); } void DiagramStyle::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void DiagramStyle::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool DiagramStyle::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiagramStyle" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiagramStyle::declare() { return BaseClassDefiner(DiagramStyle::addConstructToMap, DiagramStyle::addPrimitiveAssignFnsToMap, DiagramStyle::addClassAssignFnsToMap, DiagramStyle::debugName); } +std::map DiagramStyle::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiagramStyle_factory() diff --git a/CGMES_3.0.0/DiagramStyle.hpp b/CGMES_3.0.0/DiagramStyle.hpp index 9461c5097..c1c832990 100644 --- a/CGMES_3.0.0/DiagramStyle.hpp +++ b/CGMES_3.0.0/DiagramStyle.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiagramStyle_factory(); diff --git a/CGMES_3.0.0/DiscExcContIEEEDEC1A.cpp b/CGMES_3.0.0/DiscExcContIEEEDEC1A.cpp index 590aabc67..a64dfc430 100644 --- a/CGMES_3.0.0/DiscExcContIEEEDEC1A.cpp +++ b/CGMES_3.0.0/DiscExcContIEEEDEC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC1A.esc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.kan", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.ketl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tan", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tl1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tl2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.tw5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.val", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vanmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vomax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vomin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vsmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vsmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtlmt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC1A.vtn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC1A::DiscExcContIEEEDEC1A() {} DiscExcContIEEEDEC1A::~DiscExcContIEEEDEC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC1A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC1A.esc", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.kan", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.ketl", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tan", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.td", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tl1", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tl2", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.tw5", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.val", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vanmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vomax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vomin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vsmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vsmin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtc", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtlmt", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtm", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC1A.vtn", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC1A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC1A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC1A_esc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* DiscExcContIEEEDEC1A::debugString() const void DiscExcContIEEEDEC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC1A", &DiscExcContIEEEDEC1A_factory); + factory_map.emplace("DiscExcContIEEEDEC1A", &DiscExcContIEEEDEC1A_factory); } void DiscExcContIEEEDEC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC1A.esc", &assign_DiscExcContIEEEDEC1A_esc); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.kan", &assign_DiscExcContIEEEDEC1A_kan); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.ketl", &assign_DiscExcContIEEEDEC1A_ketl); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tan", &assign_DiscExcContIEEEDEC1A_tan); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.td", &assign_DiscExcContIEEEDEC1A_td); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tl1", &assign_DiscExcContIEEEDEC1A_tl1); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tl2", &assign_DiscExcContIEEEDEC1A_tl2); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.tw5", &assign_DiscExcContIEEEDEC1A_tw5); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.val", &assign_DiscExcContIEEEDEC1A_val); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vanmax", &assign_DiscExcContIEEEDEC1A_vanmax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vomax", &assign_DiscExcContIEEEDEC1A_vomax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vomin", &assign_DiscExcContIEEEDEC1A_vomin); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vsmax", &assign_DiscExcContIEEEDEC1A_vsmax); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vsmin", &assign_DiscExcContIEEEDEC1A_vsmin); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtc", &assign_DiscExcContIEEEDEC1A_vtc); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtlmt", &assign_DiscExcContIEEEDEC1A_vtlmt); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtm", &assign_DiscExcContIEEEDEC1A_vtm); - assign_map.emplace("cim:DiscExcContIEEEDEC1A.vtn", &assign_DiscExcContIEEEDEC1A_vtn); + assign_map.emplace("DiscExcContIEEEDEC1A.esc", &assign_DiscExcContIEEEDEC1A_esc); + assign_map.emplace("DiscExcContIEEEDEC1A.kan", &assign_DiscExcContIEEEDEC1A_kan); + assign_map.emplace("DiscExcContIEEEDEC1A.ketl", &assign_DiscExcContIEEEDEC1A_ketl); + assign_map.emplace("DiscExcContIEEEDEC1A.tan", &assign_DiscExcContIEEEDEC1A_tan); + assign_map.emplace("DiscExcContIEEEDEC1A.td", &assign_DiscExcContIEEEDEC1A_td); + assign_map.emplace("DiscExcContIEEEDEC1A.tl1", &assign_DiscExcContIEEEDEC1A_tl1); + assign_map.emplace("DiscExcContIEEEDEC1A.tl2", &assign_DiscExcContIEEEDEC1A_tl2); + assign_map.emplace("DiscExcContIEEEDEC1A.tw5", &assign_DiscExcContIEEEDEC1A_tw5); + assign_map.emplace("DiscExcContIEEEDEC1A.val", &assign_DiscExcContIEEEDEC1A_val); + assign_map.emplace("DiscExcContIEEEDEC1A.vanmax", &assign_DiscExcContIEEEDEC1A_vanmax); + assign_map.emplace("DiscExcContIEEEDEC1A.vomax", &assign_DiscExcContIEEEDEC1A_vomax); + assign_map.emplace("DiscExcContIEEEDEC1A.vomin", &assign_DiscExcContIEEEDEC1A_vomin); + assign_map.emplace("DiscExcContIEEEDEC1A.vsmax", &assign_DiscExcContIEEEDEC1A_vsmax); + assign_map.emplace("DiscExcContIEEEDEC1A.vsmin", &assign_DiscExcContIEEEDEC1A_vsmin); + assign_map.emplace("DiscExcContIEEEDEC1A.vtc", &assign_DiscExcContIEEEDEC1A_vtc); + assign_map.emplace("DiscExcContIEEEDEC1A.vtlmt", &assign_DiscExcContIEEEDEC1A_vtlmt); + assign_map.emplace("DiscExcContIEEEDEC1A.vtm", &assign_DiscExcContIEEEDEC1A_vtm); + assign_map.emplace("DiscExcContIEEEDEC1A.vtn", &assign_DiscExcContIEEEDEC1A_vtn); } void DiscExcContIEEEDEC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void DiscExcContIEEEDEC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC1A.esc", &get_DiscExcContIEEEDEC1A_esc); - get_map.emplace("cim:DiscExcContIEEEDEC1A.kan", &get_DiscExcContIEEEDEC1A_kan); - get_map.emplace("cim:DiscExcContIEEEDEC1A.ketl", &get_DiscExcContIEEEDEC1A_ketl); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tan", &get_DiscExcContIEEEDEC1A_tan); - get_map.emplace("cim:DiscExcContIEEEDEC1A.td", &get_DiscExcContIEEEDEC1A_td); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tl1", &get_DiscExcContIEEEDEC1A_tl1); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tl2", &get_DiscExcContIEEEDEC1A_tl2); - get_map.emplace("cim:DiscExcContIEEEDEC1A.tw5", &get_DiscExcContIEEEDEC1A_tw5); - get_map.emplace("cim:DiscExcContIEEEDEC1A.val", &get_DiscExcContIEEEDEC1A_val); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vanmax", &get_DiscExcContIEEEDEC1A_vanmax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vomax", &get_DiscExcContIEEEDEC1A_vomax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vomin", &get_DiscExcContIEEEDEC1A_vomin); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vsmax", &get_DiscExcContIEEEDEC1A_vsmax); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vsmin", &get_DiscExcContIEEEDEC1A_vsmin); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtc", &get_DiscExcContIEEEDEC1A_vtc); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtlmt", &get_DiscExcContIEEEDEC1A_vtlmt); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtm", &get_DiscExcContIEEEDEC1A_vtm); - get_map.emplace("cim:DiscExcContIEEEDEC1A.vtn", &get_DiscExcContIEEEDEC1A_vtn); + get_map.emplace("DiscExcContIEEEDEC1A.esc", &get_DiscExcContIEEEDEC1A_esc); + get_map.emplace("DiscExcContIEEEDEC1A.kan", &get_DiscExcContIEEEDEC1A_kan); + get_map.emplace("DiscExcContIEEEDEC1A.ketl", &get_DiscExcContIEEEDEC1A_ketl); + get_map.emplace("DiscExcContIEEEDEC1A.tan", &get_DiscExcContIEEEDEC1A_tan); + get_map.emplace("DiscExcContIEEEDEC1A.td", &get_DiscExcContIEEEDEC1A_td); + get_map.emplace("DiscExcContIEEEDEC1A.tl1", &get_DiscExcContIEEEDEC1A_tl1); + get_map.emplace("DiscExcContIEEEDEC1A.tl2", &get_DiscExcContIEEEDEC1A_tl2); + get_map.emplace("DiscExcContIEEEDEC1A.tw5", &get_DiscExcContIEEEDEC1A_tw5); + get_map.emplace("DiscExcContIEEEDEC1A.val", &get_DiscExcContIEEEDEC1A_val); + get_map.emplace("DiscExcContIEEEDEC1A.vanmax", &get_DiscExcContIEEEDEC1A_vanmax); + get_map.emplace("DiscExcContIEEEDEC1A.vomax", &get_DiscExcContIEEEDEC1A_vomax); + get_map.emplace("DiscExcContIEEEDEC1A.vomin", &get_DiscExcContIEEEDEC1A_vomin); + get_map.emplace("DiscExcContIEEEDEC1A.vsmax", &get_DiscExcContIEEEDEC1A_vsmax); + get_map.emplace("DiscExcContIEEEDEC1A.vsmin", &get_DiscExcContIEEEDEC1A_vsmin); + get_map.emplace("DiscExcContIEEEDEC1A.vtc", &get_DiscExcContIEEEDEC1A_vtc); + get_map.emplace("DiscExcContIEEEDEC1A.vtlmt", &get_DiscExcContIEEEDEC1A_vtlmt); + get_map.emplace("DiscExcContIEEEDEC1A.vtm", &get_DiscExcContIEEEDEC1A_vtm); + get_map.emplace("DiscExcContIEEEDEC1A.vtn", &get_DiscExcContIEEEDEC1A_vtn); } void DiscExcContIEEEDEC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void DiscExcContIEEEDEC1A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC1A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC1A::addConstructToMap, DiscExcContIEEEDEC1A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC1A::addClassAssignFnsToMap, DiscExcContIEEEDEC1A::debugName); } +std::map DiscExcContIEEEDEC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC1A_factory() diff --git a/CGMES_3.0.0/DiscExcContIEEEDEC1A.hpp b/CGMES_3.0.0/DiscExcContIEEEDEC1A.hpp index 724fd319c..f9578aa4d 100644 --- a/CGMES_3.0.0/DiscExcContIEEEDEC1A.hpp +++ b/CGMES_3.0.0/DiscExcContIEEEDEC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC1A_factory(); diff --git a/CGMES_3.0.0/DiscExcContIEEEDEC2A.cpp b/CGMES_3.0.0/DiscExcContIEEEDEC2A.cpp index dc94e52c0..72ab5d9e4 100644 --- a/CGMES_3.0.0/DiscExcContIEEEDEC2A.cpp +++ b/CGMES_3.0.0/DiscExcContIEEEDEC2A.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC2A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC2A.td1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.td2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vdmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC2A.vk", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC2A::DiscExcContIEEEDEC2A() {} DiscExcContIEEEDEC2A::~DiscExcContIEEEDEC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC2A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC2A.td1", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.td2", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vdmax", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vdmin", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC2A.vk", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC2A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC2A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC2A_td1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* DiscExcContIEEEDEC2A::debugString() const void DiscExcContIEEEDEC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC2A", &DiscExcContIEEEDEC2A_factory); + factory_map.emplace("DiscExcContIEEEDEC2A", &DiscExcContIEEEDEC2A_factory); } void DiscExcContIEEEDEC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC2A.td1", &assign_DiscExcContIEEEDEC2A_td1); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.td2", &assign_DiscExcContIEEEDEC2A_td2); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vdmax", &assign_DiscExcContIEEEDEC2A_vdmax); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vdmin", &assign_DiscExcContIEEEDEC2A_vdmin); - assign_map.emplace("cim:DiscExcContIEEEDEC2A.vk", &assign_DiscExcContIEEEDEC2A_vk); + assign_map.emplace("DiscExcContIEEEDEC2A.td1", &assign_DiscExcContIEEEDEC2A_td1); + assign_map.emplace("DiscExcContIEEEDEC2A.td2", &assign_DiscExcContIEEEDEC2A_td2); + assign_map.emplace("DiscExcContIEEEDEC2A.vdmax", &assign_DiscExcContIEEEDEC2A_vdmax); + assign_map.emplace("DiscExcContIEEEDEC2A.vdmin", &assign_DiscExcContIEEEDEC2A_vdmin); + assign_map.emplace("DiscExcContIEEEDEC2A.vk", &assign_DiscExcContIEEEDEC2A_vk); } void DiscExcContIEEEDEC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void DiscExcContIEEEDEC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC2A.td1", &get_DiscExcContIEEEDEC2A_td1); - get_map.emplace("cim:DiscExcContIEEEDEC2A.td2", &get_DiscExcContIEEEDEC2A_td2); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vdmax", &get_DiscExcContIEEEDEC2A_vdmax); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vdmin", &get_DiscExcContIEEEDEC2A_vdmin); - get_map.emplace("cim:DiscExcContIEEEDEC2A.vk", &get_DiscExcContIEEEDEC2A_vk); + get_map.emplace("DiscExcContIEEEDEC2A.td1", &get_DiscExcContIEEEDEC2A_td1); + get_map.emplace("DiscExcContIEEEDEC2A.td2", &get_DiscExcContIEEEDEC2A_td2); + get_map.emplace("DiscExcContIEEEDEC2A.vdmax", &get_DiscExcContIEEEDEC2A_vdmax); + get_map.emplace("DiscExcContIEEEDEC2A.vdmin", &get_DiscExcContIEEEDEC2A_vdmin); + get_map.emplace("DiscExcContIEEEDEC2A.vk", &get_DiscExcContIEEEDEC2A_vk); } void DiscExcContIEEEDEC2A::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void DiscExcContIEEEDEC2A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC2A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC2A::addConstructToMap, DiscExcContIEEEDEC2A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC2A::addClassAssignFnsToMap, DiscExcContIEEEDEC2A::debugName); } +std::map DiscExcContIEEEDEC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC2A_factory() diff --git a/CGMES_3.0.0/DiscExcContIEEEDEC2A.hpp b/CGMES_3.0.0/DiscExcContIEEEDEC2A.hpp index 3e72fe01b..7a9125720 100644 --- a/CGMES_3.0.0/DiscExcContIEEEDEC2A.hpp +++ b/CGMES_3.0.0/DiscExcContIEEEDEC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC2A_factory(); diff --git a/CGMES_3.0.0/DiscExcContIEEEDEC3A.cpp b/CGMES_3.0.0/DiscExcContIEEEDEC3A.cpp index 67dd91242..1f7dcd37f 100644 --- a/CGMES_3.0.0/DiscExcContIEEEDEC3A.cpp +++ b/CGMES_3.0.0/DiscExcContIEEEDEC3A.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscExcContIEEEDEC3A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscExcContIEEEDEC3A.tdr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscExcContIEEEDEC3A.vtmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscExcContIEEEDEC3A::DiscExcContIEEEDEC3A() {} DiscExcContIEEEDEC3A::~DiscExcContIEEEDEC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscExcContIEEEDEC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscExcContIEEEDEC3A::getClassNamespaceUrl() const { - { "cim:DiscExcContIEEEDEC3A.tdr", { CGMESProfile::DY, } }, - { "cim:DiscExcContIEEEDEC3A.vtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscExcContIEEEDEC3A::getPossibleProfilesForClass() const +const std::string& DiscExcContIEEEDEC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscExcContIEEEDEC3A::getPossibleProfilesForAttributes() const +const std::list& DiscExcContIEEEDEC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscExcContIEEEDEC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscExcContIEEEDEC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscExcContIEEEDEC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscExcContIEEEDEC3A_tdr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* DiscExcContIEEEDEC3A::debugString() const void DiscExcContIEEEDEC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscExcContIEEEDEC3A", &DiscExcContIEEEDEC3A_factory); + factory_map.emplace("DiscExcContIEEEDEC3A", &DiscExcContIEEEDEC3A_factory); } void DiscExcContIEEEDEC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscExcContIEEEDEC3A.tdr", &assign_DiscExcContIEEEDEC3A_tdr); - assign_map.emplace("cim:DiscExcContIEEEDEC3A.vtmin", &assign_DiscExcContIEEEDEC3A_vtmin); + assign_map.emplace("DiscExcContIEEEDEC3A.tdr", &assign_DiscExcContIEEEDEC3A_tdr); + assign_map.emplace("DiscExcContIEEEDEC3A.vtmin", &assign_DiscExcContIEEEDEC3A_vtmin); } void DiscExcContIEEEDEC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void DiscExcContIEEEDEC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscExcContIEEEDEC3A.tdr", &get_DiscExcContIEEEDEC3A_tdr); - get_map.emplace("cim:DiscExcContIEEEDEC3A.vtmin", &get_DiscExcContIEEEDEC3A_vtmin); + get_map.emplace("DiscExcContIEEEDEC3A.tdr", &get_DiscExcContIEEEDEC3A_tdr); + get_map.emplace("DiscExcContIEEEDEC3A.vtmin", &get_DiscExcContIEEEDEC3A_vtmin); } void DiscExcContIEEEDEC3A::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void DiscExcContIEEEDEC3A::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscExcContIEEEDEC3A::declare() { return BaseClassDefiner(DiscExcContIEEEDEC3A::addConstructToMap, DiscExcContIEEEDEC3A::addPrimitiveAssignFnsToMap, DiscExcContIEEEDEC3A::addClassAssignFnsToMap, DiscExcContIEEEDEC3A::debugName); } +std::map DiscExcContIEEEDEC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscExcContIEEEDEC3A_factory() diff --git a/CGMES_3.0.0/DiscExcContIEEEDEC3A.hpp b/CGMES_3.0.0/DiscExcContIEEEDEC3A.hpp index f845e43c9..81544738f 100644 --- a/CGMES_3.0.0/DiscExcContIEEEDEC3A.hpp +++ b/CGMES_3.0.0/DiscExcContIEEEDEC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscExcContIEEEDEC3A_factory(); diff --git a/CGMES_3.0.0/DisconnectingCircuitBreaker.cpp b/CGMES_3.0.0/DisconnectingCircuitBreaker.cpp index e47f814fc..cd0bdafab 100644 --- a/CGMES_3.0.0/DisconnectingCircuitBreaker.cpp +++ b/CGMES_3.0.0/DisconnectingCircuitBreaker.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DisconnectingCircuitBreaker(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + DisconnectingCircuitBreaker::DisconnectingCircuitBreaker() {} DisconnectingCircuitBreaker::~DisconnectingCircuitBreaker() {} -static const std::list PossibleProfilesForClass = +const std::list& DisconnectingCircuitBreaker::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DisconnectingCircuitBreaker::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DisconnectingCircuitBreaker::getPossibleProfilesForClass() const +const std::string& DisconnectingCircuitBreaker::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DisconnectingCircuitBreaker::getPossibleProfilesForAttributes() const +const std::list& DisconnectingCircuitBreaker::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Breaker::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DisconnectingCircuitBreaker::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DisconnectingCircuitBreaker::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DisconnectingCircuitBreaker::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char DisconnectingCircuitBreaker::debugName[] = "DisconnectingCircuitBreaker"; @@ -47,7 +79,7 @@ const char* DisconnectingCircuitBreaker::debugString() const void DisconnectingCircuitBreaker::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DisconnectingCircuitBreaker", &DisconnectingCircuitBreaker_factory); + factory_map.emplace("DisconnectingCircuitBreaker", &DisconnectingCircuitBreaker_factory); } void DisconnectingCircuitBreaker::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void DisconnectingCircuitBreaker::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DisconnectingCircuitBreaker::declare() { return BaseClassDefiner(DisconnectingCircuitBreaker::addConstructToMap, DisconnectingCircuitBreaker::addPrimitiveAssignFnsToMap, DisconnectingCircuitBreaker::addClassAssignFnsToMap, DisconnectingCircuitBreaker::debugName); } +std::map DisconnectingCircuitBreaker::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Breaker::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DisconnectingCircuitBreaker_factory() diff --git a/CGMES_3.0.0/DisconnectingCircuitBreaker.hpp b/CGMES_3.0.0/DisconnectingCircuitBreaker.hpp index e74e4dcc2..b9420501f 100644 --- a/CGMES_3.0.0/DisconnectingCircuitBreaker.hpp +++ b/CGMES_3.0.0/DisconnectingCircuitBreaker.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Breaker.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DisconnectingCircuitBreaker_factory(); diff --git a/CGMES_3.0.0/Disconnector.cpp b/CGMES_3.0.0/Disconnector.cpp index e64c24d80..6db5d290a 100644 --- a/CGMES_3.0.0/Disconnector.cpp +++ b/CGMES_3.0.0/Disconnector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Disconnector(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Disconnector::Disconnector() {} Disconnector::~Disconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& Disconnector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Disconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Disconnector::getPossibleProfilesForClass() const +const std::string& Disconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Disconnector::getPossibleProfilesForAttributes() const +const std::list& Disconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Disconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Disconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Disconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Disconnector::debugName[] = "Disconnector"; @@ -47,7 +79,7 @@ const char* Disconnector::debugString() const void Disconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Disconnector", &Disconnector_factory); + factory_map.emplace("Disconnector", &Disconnector_factory); } void Disconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Disconnector::addEnumGetFnsToMap(std::map& get_m Switch::addEnumGetFnsToMap(get_map); } +bool Disconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Disconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Disconnector::declare() { return BaseClassDefiner(Disconnector::addConstructToMap, Disconnector::addPrimitiveAssignFnsToMap, Disconnector::addClassAssignFnsToMap, Disconnector::debugName); } +std::map Disconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Disconnector_factory() diff --git a/CGMES_3.0.0/Disconnector.hpp b/CGMES_3.0.0/Disconnector.hpp index 844173634..ee167a6d1 100644 --- a/CGMES_3.0.0/Disconnector.hpp +++ b/CGMES_3.0.0/Disconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Disconnector_factory(); diff --git a/CGMES_3.0.0/DiscontinuousExcitationControlDynamics.cpp b/CGMES_3.0.0/DiscontinuousExcitationControlDynamics.cpp index 1e6569ea1..c6a0fdcb5 100644 --- a/CGMES_3.0.0/DiscontinuousExcitationControlDynamics.cpp +++ b/CGMES_3.0.0/DiscontinuousExcitationControlDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscontinuousExcitationControlDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscontinuousExcitationControlDynamics.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscontinuousExcitationControlDynamics::DiscontinuousExcitationControlDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} DiscontinuousExcitationControlDynamics::~DiscontinuousExcitationControlDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscontinuousExcitationControlDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscontinuousExcitationControlDynamics::getClassNamespaceUrl() const { - { "cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:DiscontinuousExcitationControlDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscontinuousExcitationControlDynamics::getPossibleProfilesForClass() const +const std::string& DiscontinuousExcitationControlDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes() const +const std::list& DiscontinuousExcitationControlDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscontinuousExcitationControlDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscontinuousExcitationControlDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscontinuousExcitationControlDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* DiscontinuousExcitationControlDynamics::debugString() const void DiscontinuousExcitationControlDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscontinuousExcitationControlDynamics", &DiscontinuousExcitationControlDynamics_factory); + factory_map.emplace("DiscontinuousExcitationControlDynamics", &DiscontinuousExcitationControlDynamics_factory); } void DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap(std::uno void DiscontinuousExcitationControlDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:DiscontinuousExcitationControlDynamics.RemoteInputSignal", &assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal); + assign_map.emplace("DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); + assign_map.emplace("DiscontinuousExcitationControlDynamics.RemoteInputSignal", &assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal); } void DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &get_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); + get_map.emplace("DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", &get_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics); } void DiscontinuousExcitationControlDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void DiscontinuousExcitationControlDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscontinuousExcitationControlDynamics::declare() { return BaseClassDefiner(DiscontinuousExcitationControlDynamics::addConstructToMap, DiscontinuousExcitationControlDynamics::addPrimitiveAssignFnsToMap, DiscontinuousExcitationControlDynamics::addClassAssignFnsToMap, DiscontinuousExcitationControlDynamics::debugName); } +std::map DiscontinuousExcitationControlDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscontinuousExcitationControlDynamics_factory() diff --git a/CGMES_3.0.0/DiscontinuousExcitationControlDynamics.hpp b/CGMES_3.0.0/DiscontinuousExcitationControlDynamics.hpp index 0bee19b3b..b51a5df32 100644 --- a/CGMES_3.0.0/DiscontinuousExcitationControlDynamics.hpp +++ b/CGMES_3.0.0/DiscontinuousExcitationControlDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscontinuousExcitationControlDynamics_factory(); diff --git a/CGMES_3.0.0/DiscontinuousExcitationControlUserDefined.cpp b/CGMES_3.0.0/DiscontinuousExcitationControlUserDefined.cpp index f2154bd03..c1e052017 100644 --- a/CGMES_3.0.0/DiscontinuousExcitationControlUserDefined.cpp +++ b/CGMES_3.0.0/DiscontinuousExcitationControlUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscontinuousExcitationControlUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "DiscontinuousExcitationControlUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DiscontinuousExcitationControlUserDefined::DiscontinuousExcitationControlUserDefined() {} DiscontinuousExcitationControlUserDefined::~DiscontinuousExcitationControlUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscontinuousExcitationControlUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscontinuousExcitationControlUserDefined::getClassNamespaceUrl() const { - { "cim:DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:DiscontinuousExcitationControlUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscontinuousExcitationControlUserDefined::getPossibleProfilesForClass() const +const std::string& DiscontinuousExcitationControlUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscontinuousExcitationControlUserDefined::getPossibleProfilesForAttributes() const +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiscontinuousExcitationControlDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscontinuousExcitationControlUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscontinuousExcitationControlUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* DiscontinuousExcitationControlUserDefined::debugString() const void DiscontinuousExcitationControlUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscontinuousExcitationControlUserDefined", &DiscontinuousExcitationControlUserDefined_factory); + factory_map.emplace("DiscontinuousExcitationControlUserDefined", &DiscontinuousExcitationControlUserDefined_factory); } void DiscontinuousExcitationControlUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlUserDefined.proprietary", &assign_DiscontinuousExcitationControlUserDefined_proprietary); + assign_map.emplace("DiscontinuousExcitationControlUserDefined.proprietary", &assign_DiscontinuousExcitationControlUserDefined_proprietary); } void DiscontinuousExcitationControlUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", &assign_DiscontinuousExcitationControlUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", &assign_DiscontinuousExcitationControlUserDefined_ProprietaryParameterDynamics); } void DiscontinuousExcitationControlUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { DiscontinuousExcitationControlDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DiscontinuousExcitationControlUserDefined.proprietary", &get_DiscontinuousExcitationControlUserDefined_proprietary); + get_map.emplace("DiscontinuousExcitationControlUserDefined.proprietary", &get_DiscontinuousExcitationControlUserDefined_proprietary); } void DiscontinuousExcitationControlUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void DiscontinuousExcitationControlUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DiscontinuousExcitationControlUserDefined::declare() { return BaseClassDefiner(DiscontinuousExcitationControlUserDefined::addConstructToMap, DiscontinuousExcitationControlUserDefined::addPrimitiveAssignFnsToMap, DiscontinuousExcitationControlUserDefined::addClassAssignFnsToMap, DiscontinuousExcitationControlUserDefined::debugName); } +std::map DiscontinuousExcitationControlUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiscontinuousExcitationControlDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscontinuousExcitationControlUserDefined_factory() diff --git a/CGMES_3.0.0/DiscontinuousExcitationControlUserDefined.hpp b/CGMES_3.0.0/DiscontinuousExcitationControlUserDefined.hpp index b744eac59..54e2db41b 100644 --- a/CGMES_3.0.0/DiscontinuousExcitationControlUserDefined.hpp +++ b/CGMES_3.0.0/DiscontinuousExcitationControlUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiscontinuousExcitationControlDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscontinuousExcitationControlUserDefined_factory(); diff --git a/CGMES_3.0.0/Discrete.cpp b/CGMES_3.0.0/Discrete.cpp index c73563a40..b25f93be8 100644 --- a/CGMES_3.0.0/Discrete.cpp +++ b/CGMES_3.0.0/Discrete.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Discrete(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Discrete.DiscreteValues", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Discrete.ValueAliasSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + Discrete::Discrete() : ValueAliasSet(nullptr) {} Discrete::~Discrete() {} -static const std::list PossibleProfilesForClass = +const std::list& Discrete::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Discrete::getClassNamespaceUrl() const { - { "cim:Discrete.DiscreteValues", { CGMESProfile::OP, } }, - { "cim:Discrete.ValueAliasSet", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Discrete::getPossibleProfilesForClass() const +const std::string& Discrete::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Discrete::getPossibleProfilesForAttributes() const +const std::list& Discrete::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Discrete::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Discrete::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Discrete::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscreteValue_Discrete(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* Discrete::debugString() const void Discrete::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Discrete", &Discrete_factory); + factory_map.emplace("Discrete", &Discrete_factory); } void Discrete::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void Discrete::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Discrete.DiscreteValues", &assign_Discrete_DiscreteValues); - assign_map.emplace("cim:Discrete.ValueAliasSet", &assign_Discrete_ValueAliasSet); + assign_map.emplace("Discrete.DiscreteValues", &assign_Discrete_DiscreteValues); + assign_map.emplace("Discrete.ValueAliasSet", &assign_Discrete_ValueAliasSet); } void Discrete::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void Discrete::addPrimitiveGetFnsToMap(std::map& get_ void Discrete::addClassGetFnsToMap(std::map& get_map) const { Measurement::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Discrete.ValueAliasSet", &get_Discrete_ValueAliasSet); + get_map.emplace("Discrete.ValueAliasSet", &get_Discrete_ValueAliasSet); } void Discrete::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void Discrete::addEnumGetFnsToMap(std::map& get_map) Measurement::addEnumGetFnsToMap(get_map); } +bool Discrete::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Discrete" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Discrete::declare() { return BaseClassDefiner(Discrete::addConstructToMap, Discrete::addPrimitiveAssignFnsToMap, Discrete::addClassAssignFnsToMap, Discrete::debugName); } +std::map Discrete::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Discrete_factory() diff --git a/CGMES_3.0.0/Discrete.hpp b/CGMES_3.0.0/Discrete.hpp index 5ac4ba89e..49303a5ac 100644 --- a/CGMES_3.0.0/Discrete.hpp +++ b/CGMES_3.0.0/Discrete.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Discrete_factory(); diff --git a/CGMES_3.0.0/DiscreteValue.cpp b/CGMES_3.0.0/DiscreteValue.cpp index a96602f36..3ee0a6e52 100644 --- a/CGMES_3.0.0/DiscreteValue.cpp +++ b/CGMES_3.0.0/DiscreteValue.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DiscreteValue(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DiscreteValue.Command", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "DiscreteValue.Discrete", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + DiscreteValue::DiscreteValue() : Command(nullptr), Discrete(nullptr) {} DiscreteValue::~DiscreteValue() {} -static const std::list PossibleProfilesForClass = +const std::list& DiscreteValue::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DiscreteValue::getClassNamespaceUrl() const { - { "cim:DiscreteValue.Command", { CGMESProfile::OP, } }, - { "cim:DiscreteValue.Discrete", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DiscreteValue::getPossibleProfilesForClass() const +const std::string& DiscreteValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DiscreteValue::getPossibleProfilesForAttributes() const +const std::list& DiscreteValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DiscreteValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DiscreteValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DiscreteValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Command_DiscreteValue(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* DiscreteValue::debugString() const void DiscreteValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DiscreteValue", &DiscreteValue_factory); + factory_map.emplace("DiscreteValue", &DiscreteValue_factory); } void DiscreteValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void DiscreteValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DiscreteValue.Command", &assign_DiscreteValue_Command); - assign_map.emplace("cim:DiscreteValue.Discrete", &assign_DiscreteValue_Discrete); + assign_map.emplace("DiscreteValue.Command", &assign_DiscreteValue_Command); + assign_map.emplace("DiscreteValue.Discrete", &assign_DiscreteValue_Discrete); } void DiscreteValue::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void DiscreteValue::addPrimitiveGetFnsToMap(std::map& void DiscreteValue::addClassGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:DiscreteValue.Discrete", &get_DiscreteValue_Discrete); + get_map.emplace("DiscreteValue.Discrete", &get_DiscreteValue_Discrete); } void DiscreteValue::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void DiscreteValue::addEnumGetFnsToMap(std::map& get_ MeasurementValue::addEnumGetFnsToMap(get_map); } +bool DiscreteValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "DiscreteValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner DiscreteValue::declare() { return BaseClassDefiner(DiscreteValue::addConstructToMap, DiscreteValue::addPrimitiveAssignFnsToMap, DiscreteValue::addClassAssignFnsToMap, DiscreteValue::debugName); } +std::map DiscreteValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DiscreteValue_factory() diff --git a/CGMES_3.0.0/DiscreteValue.hpp b/CGMES_3.0.0/DiscreteValue.hpp index 596163379..3f82ac525 100644 --- a/CGMES_3.0.0/DiscreteValue.hpp +++ b/CGMES_3.0.0/DiscreteValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DiscreteValue_factory(); diff --git a/CGMES_3.0.0/DynamicsFunctionBlock.cpp b/CGMES_3.0.0/DynamicsFunctionBlock.cpp index 3ed474991..bf0c740d7 100644 --- a/CGMES_3.0.0/DynamicsFunctionBlock.cpp +++ b/CGMES_3.0.0/DynamicsFunctionBlock.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + DynamicsFunctionBlock(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "DynamicsFunctionBlock.enabled", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + DynamicsFunctionBlock::DynamicsFunctionBlock() {} DynamicsFunctionBlock::~DynamicsFunctionBlock() {} -static const std::list PossibleProfilesForClass = +const std::list& DynamicsFunctionBlock::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& DynamicsFunctionBlock::getClassNamespaceUrl() const { - { "cim:DynamicsFunctionBlock.enabled", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -DynamicsFunctionBlock::getPossibleProfilesForClass() const +const std::string& DynamicsFunctionBlock::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -DynamicsFunctionBlock::getPossibleProfilesForAttributes() const +const std::list& DynamicsFunctionBlock::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& DynamicsFunctionBlock::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& DynamicsFunctionBlock::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& DynamicsFunctionBlock::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DynamicsFunctionBlock_enabled(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* DynamicsFunctionBlock::debugString() const void DynamicsFunctionBlock::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:DynamicsFunctionBlock", &DynamicsFunctionBlock_factory); + factory_map.emplace("DynamicsFunctionBlock", &DynamicsFunctionBlock_factory); } void DynamicsFunctionBlock::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:DynamicsFunctionBlock.enabled", &assign_DynamicsFunctionBlock_enabled); + assign_map.emplace("DynamicsFunctionBlock.enabled", &assign_DynamicsFunctionBlock_enabled); } void DynamicsFunctionBlock::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void DynamicsFunctionBlock::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:DynamicsFunctionBlock.enabled", &get_DynamicsFunctionBlock_enabled); + get_map.emplace("DynamicsFunctionBlock.enabled", &get_DynamicsFunctionBlock_enabled); } void DynamicsFunctionBlock::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void DynamicsFunctionBlock::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner DynamicsFunctionBlock::declare() { return BaseClassDefiner(DynamicsFunctionBlock::addConstructToMap, DynamicsFunctionBlock::addPrimitiveAssignFnsToMap, DynamicsFunctionBlock::addClassAssignFnsToMap, DynamicsFunctionBlock::debugName); } +std::map DynamicsFunctionBlock::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* DynamicsFunctionBlock_factory() diff --git a/CGMES_3.0.0/DynamicsFunctionBlock.hpp b/CGMES_3.0.0/DynamicsFunctionBlock.hpp index cfce2f68e..f7a130c52 100644 --- a/CGMES_3.0.0/DynamicsFunctionBlock.hpp +++ b/CGMES_3.0.0/DynamicsFunctionBlock.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* DynamicsFunctionBlock_factory(); diff --git a/CGMES_3.0.0/EarthFaultCompensator.cpp b/CGMES_3.0.0/EarthFaultCompensator.cpp index dcb5b765d..3d3040973 100644 --- a/CGMES_3.0.0/EarthFaultCompensator.cpp +++ b/CGMES_3.0.0/EarthFaultCompensator.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EarthFaultCompensator(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EarthFaultCompensator.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + EarthFaultCompensator::EarthFaultCompensator() {} EarthFaultCompensator::~EarthFaultCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& EarthFaultCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EarthFaultCompensator::getClassNamespaceUrl() const { - { "cim:EarthFaultCompensator.r", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EarthFaultCompensator::getPossibleProfilesForClass() const +const std::string& EarthFaultCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EarthFaultCompensator::getPossibleProfilesForAttributes() const +const std::list& EarthFaultCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EarthFaultCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EarthFaultCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EarthFaultCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EarthFaultCompensator_r(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* EarthFaultCompensator::debugString() const void EarthFaultCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EarthFaultCompensator", &EarthFaultCompensator_factory); + factory_map.emplace("EarthFaultCompensator", &EarthFaultCompensator_factory); } void EarthFaultCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EarthFaultCompensator.r", &assign_EarthFaultCompensator_r); + assign_map.emplace("EarthFaultCompensator.r", &assign_EarthFaultCompensator_r); } void EarthFaultCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -92,7 +124,7 @@ void EarthFaultCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EarthFaultCompensator.r", &get_EarthFaultCompensator_r); + get_map.emplace("EarthFaultCompensator.r", &get_EarthFaultCompensator_r); } void EarthFaultCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -105,11 +137,25 @@ void EarthFaultCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EarthFaultCompensator::declare() { return BaseClassDefiner(EarthFaultCompensator::addConstructToMap, EarthFaultCompensator::addPrimitiveAssignFnsToMap, EarthFaultCompensator::addClassAssignFnsToMap, EarthFaultCompensator::debugName); } +std::map EarthFaultCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EarthFaultCompensator_factory() diff --git a/CGMES_3.0.0/EarthFaultCompensator.hpp b/CGMES_3.0.0/EarthFaultCompensator.hpp index cdacfb22e..b47853d78 100644 --- a/CGMES_3.0.0/EarthFaultCompensator.hpp +++ b/CGMES_3.0.0/EarthFaultCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Resistance.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EarthFaultCompensator_factory(); diff --git a/CGMES_3.0.0/EnergyArea.cpp b/CGMES_3.0.0/EnergyArea.cpp index 0df0b19c1..23745130d 100644 --- a/CGMES_3.0.0/EnergyArea.cpp +++ b/CGMES_3.0.0/EnergyArea.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyArea(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergyArea.ControlArea", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergyArea::EnergyArea() : ControlArea(nullptr) {} EnergyArea::~EnergyArea() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyArea::getClassNamespaceUrl() const { - { "cim:EnergyArea.ControlArea", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyArea::getPossibleProfilesForClass() const +const std::string& EnergyArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyArea::getPossibleProfilesForAttributes() const +const std::list& EnergyArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_EnergyArea(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* EnergyArea::debugString() const void EnergyArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyArea", &EnergyArea_factory); + factory_map.emplace("EnergyArea", &EnergyArea_factory); } void EnergyArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void EnergyArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyArea.ControlArea", &assign_EnergyArea_ControlArea); + assign_map.emplace("EnergyArea.ControlArea", &assign_EnergyArea_ControlArea); } void EnergyArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void EnergyArea::addEnumGetFnsToMap(std::map& get_map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool EnergyArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyArea::declare() { return BaseClassDefiner(EnergyArea::addConstructToMap, EnergyArea::addPrimitiveAssignFnsToMap, EnergyArea::addClassAssignFnsToMap, EnergyArea::debugName); } +std::map EnergyArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyArea_factory() diff --git a/CGMES_3.0.0/EnergyArea.hpp b/CGMES_3.0.0/EnergyArea.hpp index 7d58dfca7..1b0f57c45 100644 --- a/CGMES_3.0.0/EnergyArea.hpp +++ b/CGMES_3.0.0/EnergyArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyArea_factory(); diff --git a/CGMES_3.0.0/EnergyConnection.cpp b/CGMES_3.0.0/EnergyConnection.cpp index bb8db0159..d05d9d811 100644 --- a/CGMES_3.0.0/EnergyConnection.cpp +++ b/CGMES_3.0.0/EnergyConnection.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyConnection(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + EnergyConnection::EnergyConnection() {} EnergyConnection::~EnergyConnection() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyConnection::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyConnection::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyConnection::getPossibleProfilesForClass() const +const std::string& EnergyConnection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyConnection::getPossibleProfilesForAttributes() const +const std::list& EnergyConnection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyConnection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyConnection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyConnection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char EnergyConnection::debugName[] = "EnergyConnection"; @@ -49,7 +81,7 @@ const char* EnergyConnection::debugString() const void EnergyConnection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyConnection", &EnergyConnection_factory); + factory_map.emplace("EnergyConnection", &EnergyConnection_factory); } void EnergyConnection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,11 +107,25 @@ void EnergyConnection::addEnumGetFnsToMap(std::map& g ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EnergyConnection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyConnection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyConnection::declare() { return BaseClassDefiner(EnergyConnection::addConstructToMap, EnergyConnection::addPrimitiveAssignFnsToMap, EnergyConnection::addClassAssignFnsToMap, EnergyConnection::debugName); } +std::map EnergyConnection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyConnection_factory() diff --git a/CGMES_3.0.0/EnergyConnection.hpp b/CGMES_3.0.0/EnergyConnection.hpp index 2684715fb..8594b4cc9 100644 --- a/CGMES_3.0.0/EnergyConnection.hpp +++ b/CGMES_3.0.0/EnergyConnection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyConnection_factory(); diff --git a/CGMES_3.0.0/EnergyConsumer.cpp b/CGMES_3.0.0/EnergyConsumer.cpp index 2b70a5c88..bda63069d 100644 --- a/CGMES_3.0.0/EnergyConsumer.cpp +++ b/CGMES_3.0.0/EnergyConsumer.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergyConsumer(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergyConsumer.LoadDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "EnergyConsumer.LoadResponse", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.p", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EnergyConsumer.pfixed", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.pfixedPct", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EnergyConsumer.qfixed", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EnergyConsumer.qfixedPct", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergyConsumer::EnergyConsumer() : LoadDynamics(nullptr), LoadResponse(nullptr) {} EnergyConsumer::~EnergyConsumer() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergyConsumer::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergyConsumer::getClassNamespaceUrl() const { - { "cim:EnergyConsumer.LoadDynamics", { CGMESProfile::DY, } }, - { "cim:EnergyConsumer.LoadResponse", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.p", { CGMESProfile::SSH, } }, - { "cim:EnergyConsumer.pfixed", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.pfixedPct", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.q", { CGMESProfile::SSH, } }, - { "cim:EnergyConsumer.qfixed", { CGMESProfile::EQ, } }, - { "cim:EnergyConsumer.qfixedPct", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergyConsumer::getPossibleProfilesForClass() const +const std::string& EnergyConsumer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergyConsumer::getPossibleProfilesForAttributes() const +const std::list& EnergyConsumer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConnection::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergyConsumer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergyConsumer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergyConsumer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadDynamics_EnergyConsumer(BaseClass*, BaseClass*); @@ -294,41 +326,41 @@ const char* EnergyConsumer::debugString() const void EnergyConsumer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergyConsumer", &EnergyConsumer_factory); + factory_map.emplace("EnergyConsumer", &EnergyConsumer_factory); } void EnergyConsumer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyConsumer.p", &assign_EnergyConsumer_p); - assign_map.emplace("cim:EnergyConsumer.pfixed", &assign_EnergyConsumer_pfixed); - assign_map.emplace("cim:EnergyConsumer.pfixedPct", &assign_EnergyConsumer_pfixedPct); - assign_map.emplace("cim:EnergyConsumer.q", &assign_EnergyConsumer_q); - assign_map.emplace("cim:EnergyConsumer.qfixed", &assign_EnergyConsumer_qfixed); - assign_map.emplace("cim:EnergyConsumer.qfixedPct", &assign_EnergyConsumer_qfixedPct); + assign_map.emplace("EnergyConsumer.p", &assign_EnergyConsumer_p); + assign_map.emplace("EnergyConsumer.pfixed", &assign_EnergyConsumer_pfixed); + assign_map.emplace("EnergyConsumer.pfixedPct", &assign_EnergyConsumer_pfixedPct); + assign_map.emplace("EnergyConsumer.q", &assign_EnergyConsumer_q); + assign_map.emplace("EnergyConsumer.qfixed", &assign_EnergyConsumer_qfixed); + assign_map.emplace("EnergyConsumer.qfixedPct", &assign_EnergyConsumer_qfixedPct); } void EnergyConsumer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergyConsumer.LoadDynamics", &assign_EnergyConsumer_LoadDynamics); - assign_map.emplace("cim:EnergyConsumer.LoadResponse", &assign_EnergyConsumer_LoadResponse); + assign_map.emplace("EnergyConsumer.LoadDynamics", &assign_EnergyConsumer_LoadDynamics); + assign_map.emplace("EnergyConsumer.LoadResponse", &assign_EnergyConsumer_LoadResponse); } void EnergyConsumer::addPrimitiveGetFnsToMap(std::map& get_map) const { EnergyConnection::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EnergyConsumer.p", &get_EnergyConsumer_p); - get_map.emplace("cim:EnergyConsumer.pfixed", &get_EnergyConsumer_pfixed); - get_map.emplace("cim:EnergyConsumer.pfixedPct", &get_EnergyConsumer_pfixedPct); - get_map.emplace("cim:EnergyConsumer.q", &get_EnergyConsumer_q); - get_map.emplace("cim:EnergyConsumer.qfixed", &get_EnergyConsumer_qfixed); - get_map.emplace("cim:EnergyConsumer.qfixedPct", &get_EnergyConsumer_qfixedPct); + get_map.emplace("EnergyConsumer.p", &get_EnergyConsumer_p); + get_map.emplace("EnergyConsumer.pfixed", &get_EnergyConsumer_pfixed); + get_map.emplace("EnergyConsumer.pfixedPct", &get_EnergyConsumer_pfixedPct); + get_map.emplace("EnergyConsumer.q", &get_EnergyConsumer_q); + get_map.emplace("EnergyConsumer.qfixed", &get_EnergyConsumer_qfixed); + get_map.emplace("EnergyConsumer.qfixedPct", &get_EnergyConsumer_qfixedPct); } void EnergyConsumer::addClassGetFnsToMap(std::map& get_map) const { EnergyConnection::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EnergyConsumer.LoadDynamics", &get_EnergyConsumer_LoadDynamics); - get_map.emplace("cim:EnergyConsumer.LoadResponse", &get_EnergyConsumer_LoadResponse); + get_map.emplace("EnergyConsumer.LoadDynamics", &get_EnergyConsumer_LoadDynamics); + get_map.emplace("EnergyConsumer.LoadResponse", &get_EnergyConsumer_LoadResponse); } void EnergyConsumer::addEnumGetFnsToMap(std::map& get_map) const @@ -336,11 +368,25 @@ void EnergyConsumer::addEnumGetFnsToMap(std::map& get EnergyConnection::addEnumGetFnsToMap(get_map); } +bool EnergyConsumer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergyConsumer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergyConsumer::declare() { return BaseClassDefiner(EnergyConsumer::addConstructToMap, EnergyConsumer::addPrimitiveAssignFnsToMap, EnergyConsumer::addClassAssignFnsToMap, EnergyConsumer::debugName); } +std::map EnergyConsumer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConnection::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergyConsumer_factory() diff --git a/CGMES_3.0.0/EnergyConsumer.hpp b/CGMES_3.0.0/EnergyConsumer.hpp index b3c3e7f2d..2a095d538 100644 --- a/CGMES_3.0.0/EnergyConsumer.hpp +++ b/CGMES_3.0.0/EnergyConsumer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConnection.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PerCent.hpp" #include "ReactivePower.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergyConsumer_factory(); diff --git a/CGMES_3.0.0/EnergySchedulingType.cpp b/CGMES_3.0.0/EnergySchedulingType.cpp index 7ab3e49a3..17295f533 100644 --- a/CGMES_3.0.0/EnergySchedulingType.cpp +++ b/CGMES_3.0.0/EnergySchedulingType.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergySchedulingType(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergySchedulingType.EnergySource", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EnergySchedulingType::EnergySchedulingType() {} EnergySchedulingType::~EnergySchedulingType() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergySchedulingType::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergySchedulingType::getClassNamespaceUrl() const { - { "cim:EnergySchedulingType.EnergySource", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergySchedulingType::getPossibleProfilesForClass() const +const std::string& EnergySchedulingType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergySchedulingType::getPossibleProfilesForAttributes() const +const std::list& EnergySchedulingType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergySchedulingType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergySchedulingType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergySchedulingType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySource_EnergySchedulingType(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* EnergySchedulingType::debugString() const void EnergySchedulingType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergySchedulingType", &EnergySchedulingType_factory); + factory_map.emplace("EnergySchedulingType", &EnergySchedulingType_factory); } void EnergySchedulingType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void EnergySchedulingType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySchedulingType.EnergySource", &assign_EnergySchedulingType_EnergySource); + assign_map.emplace("EnergySchedulingType.EnergySource", &assign_EnergySchedulingType_EnergySource); } void EnergySchedulingType::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void EnergySchedulingType::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner EnergySchedulingType::declare() { return BaseClassDefiner(EnergySchedulingType::addConstructToMap, EnergySchedulingType::addPrimitiveAssignFnsToMap, EnergySchedulingType::addClassAssignFnsToMap, EnergySchedulingType::debugName); } +std::map EnergySchedulingType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergySchedulingType_factory() diff --git a/CGMES_3.0.0/EnergySchedulingType.hpp b/CGMES_3.0.0/EnergySchedulingType.hpp index b7de2eaa5..d71ef32a8 100644 --- a/CGMES_3.0.0/EnergySchedulingType.hpp +++ b/CGMES_3.0.0/EnergySchedulingType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergySchedulingType_factory(); diff --git a/CGMES_3.0.0/EnergySource.cpp b/CGMES_3.0.0/EnergySource.cpp index 57c4dcde3..b5959a31b 100644 --- a/CGMES_3.0.0/EnergySource.cpp +++ b/CGMES_3.0.0/EnergySource.cpp @@ -12,47 +12,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EnergySource(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EnergySource.EnergySchedulingType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EnergySource.activePower", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EnergySource.nominalVoltage", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EnergySource.pMax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EnergySource.pMin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EnergySource.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EnergySource.r0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EnergySource.reactivePower", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EnergySource.rn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EnergySource.voltageAngle", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EnergySource.voltageMagnitude", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EnergySource.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EnergySource.x0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EnergySource.xn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + EnergySource::EnergySource() : EnergySchedulingType(nullptr) {} EnergySource::~EnergySource() {} -static const std::list PossibleProfilesForClass = +const std::list& EnergySource::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EnergySource::getClassNamespaceUrl() const { - { "cim:EnergySource.EnergySchedulingType", { CGMESProfile::EQ, } }, - { "cim:EnergySource.activePower", { CGMESProfile::SSH, } }, - { "cim:EnergySource.nominalVoltage", { CGMESProfile::EQ, } }, - { "cim:EnergySource.pMax", { CGMESProfile::EQ, } }, - { "cim:EnergySource.pMin", { CGMESProfile::EQ, } }, - { "cim:EnergySource.r", { CGMESProfile::SC, } }, - { "cim:EnergySource.r0", { CGMESProfile::SC, } }, - { "cim:EnergySource.reactivePower", { CGMESProfile::SSH, } }, - { "cim:EnergySource.rn", { CGMESProfile::SC, } }, - { "cim:EnergySource.voltageAngle", { CGMESProfile::SSH, } }, - { "cim:EnergySource.voltageMagnitude", { CGMESProfile::SSH, } }, - { "cim:EnergySource.x", { CGMESProfile::SC, } }, - { "cim:EnergySource.x0", { CGMESProfile::SC, } }, - { "cim:EnergySource.xn", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EnergySource::getPossibleProfilesForClass() const +const std::string& EnergySource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EnergySource::getPossibleProfilesForAttributes() const +const std::list& EnergySource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConnection::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EnergySource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EnergySource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EnergySource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergySchedulingType_EnergySource(BaseClass*, BaseClass*); @@ -471,53 +503,53 @@ const char* EnergySource::debugString() const void EnergySource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EnergySource", &EnergySource_factory); + factory_map.emplace("EnergySource", &EnergySource_factory); } void EnergySource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySource.activePower", &assign_EnergySource_activePower); - assign_map.emplace("cim:EnergySource.nominalVoltage", &assign_EnergySource_nominalVoltage); - assign_map.emplace("cim:EnergySource.pMax", &assign_EnergySource_pMax); - assign_map.emplace("cim:EnergySource.pMin", &assign_EnergySource_pMin); - assign_map.emplace("cim:EnergySource.r", &assign_EnergySource_r); - assign_map.emplace("cim:EnergySource.r0", &assign_EnergySource_r0); - assign_map.emplace("cim:EnergySource.reactivePower", &assign_EnergySource_reactivePower); - assign_map.emplace("cim:EnergySource.rn", &assign_EnergySource_rn); - assign_map.emplace("cim:EnergySource.voltageAngle", &assign_EnergySource_voltageAngle); - assign_map.emplace("cim:EnergySource.voltageMagnitude", &assign_EnergySource_voltageMagnitude); - assign_map.emplace("cim:EnergySource.x", &assign_EnergySource_x); - assign_map.emplace("cim:EnergySource.x0", &assign_EnergySource_x0); - assign_map.emplace("cim:EnergySource.xn", &assign_EnergySource_xn); + assign_map.emplace("EnergySource.activePower", &assign_EnergySource_activePower); + assign_map.emplace("EnergySource.nominalVoltage", &assign_EnergySource_nominalVoltage); + assign_map.emplace("EnergySource.pMax", &assign_EnergySource_pMax); + assign_map.emplace("EnergySource.pMin", &assign_EnergySource_pMin); + assign_map.emplace("EnergySource.r", &assign_EnergySource_r); + assign_map.emplace("EnergySource.r0", &assign_EnergySource_r0); + assign_map.emplace("EnergySource.reactivePower", &assign_EnergySource_reactivePower); + assign_map.emplace("EnergySource.rn", &assign_EnergySource_rn); + assign_map.emplace("EnergySource.voltageAngle", &assign_EnergySource_voltageAngle); + assign_map.emplace("EnergySource.voltageMagnitude", &assign_EnergySource_voltageMagnitude); + assign_map.emplace("EnergySource.x", &assign_EnergySource_x); + assign_map.emplace("EnergySource.x0", &assign_EnergySource_x0); + assign_map.emplace("EnergySource.xn", &assign_EnergySource_xn); } void EnergySource::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EnergySource.EnergySchedulingType", &assign_EnergySource_EnergySchedulingType); + assign_map.emplace("EnergySource.EnergySchedulingType", &assign_EnergySource_EnergySchedulingType); } void EnergySource::addPrimitiveGetFnsToMap(std::map& get_map) const { EnergyConnection::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EnergySource.activePower", &get_EnergySource_activePower); - get_map.emplace("cim:EnergySource.nominalVoltage", &get_EnergySource_nominalVoltage); - get_map.emplace("cim:EnergySource.pMax", &get_EnergySource_pMax); - get_map.emplace("cim:EnergySource.pMin", &get_EnergySource_pMin); - get_map.emplace("cim:EnergySource.r", &get_EnergySource_r); - get_map.emplace("cim:EnergySource.r0", &get_EnergySource_r0); - get_map.emplace("cim:EnergySource.reactivePower", &get_EnergySource_reactivePower); - get_map.emplace("cim:EnergySource.rn", &get_EnergySource_rn); - get_map.emplace("cim:EnergySource.voltageAngle", &get_EnergySource_voltageAngle); - get_map.emplace("cim:EnergySource.voltageMagnitude", &get_EnergySource_voltageMagnitude); - get_map.emplace("cim:EnergySource.x", &get_EnergySource_x); - get_map.emplace("cim:EnergySource.x0", &get_EnergySource_x0); - get_map.emplace("cim:EnergySource.xn", &get_EnergySource_xn); + get_map.emplace("EnergySource.activePower", &get_EnergySource_activePower); + get_map.emplace("EnergySource.nominalVoltage", &get_EnergySource_nominalVoltage); + get_map.emplace("EnergySource.pMax", &get_EnergySource_pMax); + get_map.emplace("EnergySource.pMin", &get_EnergySource_pMin); + get_map.emplace("EnergySource.r", &get_EnergySource_r); + get_map.emplace("EnergySource.r0", &get_EnergySource_r0); + get_map.emplace("EnergySource.reactivePower", &get_EnergySource_reactivePower); + get_map.emplace("EnergySource.rn", &get_EnergySource_rn); + get_map.emplace("EnergySource.voltageAngle", &get_EnergySource_voltageAngle); + get_map.emplace("EnergySource.voltageMagnitude", &get_EnergySource_voltageMagnitude); + get_map.emplace("EnergySource.x", &get_EnergySource_x); + get_map.emplace("EnergySource.x0", &get_EnergySource_x0); + get_map.emplace("EnergySource.xn", &get_EnergySource_xn); } void EnergySource::addClassGetFnsToMap(std::map& get_map) const { EnergyConnection::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EnergySource.EnergySchedulingType", &get_EnergySource_EnergySchedulingType); + get_map.emplace("EnergySource.EnergySchedulingType", &get_EnergySource_EnergySchedulingType); } void EnergySource::addEnumGetFnsToMap(std::map& get_map) const @@ -525,11 +557,25 @@ void EnergySource::addEnumGetFnsToMap(std::map& get_m EnergyConnection::addEnumGetFnsToMap(get_map); } +bool EnergySource::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EnergySource" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EnergySource::declare() { return BaseClassDefiner(EnergySource::addConstructToMap, EnergySource::addPrimitiveAssignFnsToMap, EnergySource::addClassAssignFnsToMap, EnergySource::debugName); } +std::map EnergySource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConnection::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EnergySource_factory() diff --git a/CGMES_3.0.0/EnergySource.hpp b/CGMES_3.0.0/EnergySource.hpp index 5d6879b10..8c2855eb7 100644 --- a/CGMES_3.0.0/EnergySource.hpp +++ b/CGMES_3.0.0/EnergySource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConnection.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "AngleRadians.hpp" #include "Reactance.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EnergySource_factory(); diff --git a/CGMES_3.0.0/Equipment.cpp b/CGMES_3.0.0/Equipment.cpp index b07a3ffb8..67fd55de6 100644 --- a/CGMES_3.0.0/Equipment.cpp +++ b/CGMES_3.0.0/Equipment.cpp @@ -13,40 +13,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Equipment(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Equipment.EquipmentContainer", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "Equipment.OperationalLimitSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Equipment.aggregate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Equipment.inService", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "Equipment.normallyInService", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Equipment::Equipment() : EquipmentContainer(nullptr) {} Equipment::~Equipment() {} -static const std::list PossibleProfilesForClass = +const std::list& Equipment::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Equipment::getClassNamespaceUrl() const { - { "cim:Equipment.EquipmentContainer", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:Equipment.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:Equipment.aggregate", { CGMESProfile::EQ, } }, - { "cim:Equipment.inService", { CGMESProfile::SSH, } }, - { "cim:Equipment.normallyInService", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Equipment::getPossibleProfilesForClass() const +const std::string& Equipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Equipment::getPossibleProfilesForAttributes() const +const std::list& Equipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Equipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Equipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Equipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquipmentContainer_Equipments(BaseClass*, BaseClass*); @@ -193,34 +225,34 @@ const char* Equipment::debugString() const void Equipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Equipment", &Equipment_factory); + factory_map.emplace("Equipment", &Equipment_factory); } void Equipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Equipment.aggregate", &assign_Equipment_aggregate); - assign_map.emplace("cim:Equipment.inService", &assign_Equipment_inService); - assign_map.emplace("cim:Equipment.normallyInService", &assign_Equipment_normallyInService); + assign_map.emplace("Equipment.aggregate", &assign_Equipment_aggregate); + assign_map.emplace("Equipment.inService", &assign_Equipment_inService); + assign_map.emplace("Equipment.normallyInService", &assign_Equipment_normallyInService); } void Equipment::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Equipment.EquipmentContainer", &assign_Equipment_EquipmentContainer); - assign_map.emplace("cim:Equipment.OperationalLimitSet", &assign_Equipment_OperationalLimitSet); + assign_map.emplace("Equipment.EquipmentContainer", &assign_Equipment_EquipmentContainer); + assign_map.emplace("Equipment.OperationalLimitSet", &assign_Equipment_OperationalLimitSet); } void Equipment::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Equipment.aggregate", &get_Equipment_aggregate); - get_map.emplace("cim:Equipment.inService", &get_Equipment_inService); - get_map.emplace("cim:Equipment.normallyInService", &get_Equipment_normallyInService); + get_map.emplace("Equipment.aggregate", &get_Equipment_aggregate); + get_map.emplace("Equipment.inService", &get_Equipment_inService); + get_map.emplace("Equipment.normallyInService", &get_Equipment_normallyInService); } void Equipment::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Equipment.EquipmentContainer", &get_Equipment_EquipmentContainer); + get_map.emplace("Equipment.EquipmentContainer", &get_Equipment_EquipmentContainer); } void Equipment::addEnumGetFnsToMap(std::map& get_map) const @@ -228,11 +260,25 @@ void Equipment::addEnumGetFnsToMap(std::map& get_map) PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool Equipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Equipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Equipment::declare() { return BaseClassDefiner(Equipment::addConstructToMap, Equipment::addPrimitiveAssignFnsToMap, Equipment::addClassAssignFnsToMap, Equipment::debugName); } +std::map Equipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Equipment_factory() diff --git a/CGMES_3.0.0/Equipment.hpp b/CGMES_3.0.0/Equipment.hpp index e1066bc6d..da8d37c22 100644 --- a/CGMES_3.0.0/Equipment.hpp +++ b/CGMES_3.0.0/Equipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Equipment_factory(); diff --git a/CGMES_3.0.0/EquipmentContainer.cpp b/CGMES_3.0.0/EquipmentContainer.cpp index 7bf065286..59cdac125 100644 --- a/CGMES_3.0.0/EquipmentContainer.cpp +++ b/CGMES_3.0.0/EquipmentContainer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquipmentContainer(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquipmentContainer.Equipments", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + EquipmentContainer::EquipmentContainer() {} EquipmentContainer::~EquipmentContainer() {} -static const std::list PossibleProfilesForClass = +const std::list& EquipmentContainer::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquipmentContainer::getClassNamespaceUrl() const { - { "cim:EquipmentContainer.Equipments", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquipmentContainer::getPossibleProfilesForClass() const +const std::string& EquipmentContainer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquipmentContainer::getPossibleProfilesForAttributes() const +const std::list& EquipmentContainer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConnectivityNodeContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquipmentContainer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquipmentContainer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquipmentContainer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Equipment_EquipmentContainer(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* EquipmentContainer::debugString() const void EquipmentContainer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquipmentContainer", &EquipmentContainer_factory); + factory_map.emplace("EquipmentContainer", &EquipmentContainer_factory); } void EquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void EquipmentContainer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquipmentContainer.Equipments", &assign_EquipmentContainer_Equipments); + assign_map.emplace("EquipmentContainer.Equipments", &assign_EquipmentContainer_Equipments); } void EquipmentContainer::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void EquipmentContainer::addEnumGetFnsToMap(std::map& ConnectivityNodeContainer::addEnumGetFnsToMap(get_map); } +bool EquipmentContainer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquipmentContainer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquipmentContainer::declare() { return BaseClassDefiner(EquipmentContainer::addConstructToMap, EquipmentContainer::addPrimitiveAssignFnsToMap, EquipmentContainer::addClassAssignFnsToMap, EquipmentContainer::debugName); } +std::map EquipmentContainer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConnectivityNodeContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquipmentContainer_factory() diff --git a/CGMES_3.0.0/EquipmentContainer.hpp b/CGMES_3.0.0/EquipmentContainer.hpp index 1820a9293..ca0909e27 100644 --- a/CGMES_3.0.0/EquipmentContainer.hpp +++ b/CGMES_3.0.0/EquipmentContainer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConnectivityNodeContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquipmentContainer_factory(); diff --git a/CGMES_3.0.0/EquivalentBranch.cpp b/CGMES_3.0.0/EquivalentBranch.cpp index 02cbb86c6..51d664ae0 100644 --- a/CGMES_3.0.0/EquivalentBranch.cpp +++ b/CGMES_3.0.0/EquivalentBranch.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentBranch(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentBranch.negativeR12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.negativeR21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.negativeX12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.negativeX21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.positiveR12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.positiveR21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.positiveX12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.positiveX21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.r21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.x21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentBranch.zeroR12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.zeroR21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.zeroX12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentBranch.zeroX21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentBranch::EquivalentBranch() {} EquivalentBranch::~EquivalentBranch() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentBranch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentBranch::getClassNamespaceUrl() const { - { "cim:EquivalentBranch.negativeR12", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.negativeR21", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.negativeX12", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.negativeX21", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.positiveR12", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.positiveR21", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.positiveX12", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.positiveX21", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.r", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.r21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.x", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.x21", { CGMESProfile::EQ, } }, - { "cim:EquivalentBranch.zeroR12", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.zeroR21", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.zeroX12", { CGMESProfile::SC, } }, - { "cim:EquivalentBranch.zeroX21", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentBranch::getPossibleProfilesForClass() const +const std::string& EquivalentBranch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentBranch::getPossibleProfilesForAttributes() const +const std::list& EquivalentBranch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentBranch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentBranch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentBranch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentBranch_negativeR12(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -527,27 +559,27 @@ const char* EquivalentBranch::debugString() const void EquivalentBranch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentBranch", &EquivalentBranch_factory); + factory_map.emplace("EquivalentBranch", &EquivalentBranch_factory); } void EquivalentBranch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentBranch.negativeR12", &assign_EquivalentBranch_negativeR12); - assign_map.emplace("cim:EquivalentBranch.negativeR21", &assign_EquivalentBranch_negativeR21); - assign_map.emplace("cim:EquivalentBranch.negativeX12", &assign_EquivalentBranch_negativeX12); - assign_map.emplace("cim:EquivalentBranch.negativeX21", &assign_EquivalentBranch_negativeX21); - assign_map.emplace("cim:EquivalentBranch.positiveR12", &assign_EquivalentBranch_positiveR12); - assign_map.emplace("cim:EquivalentBranch.positiveR21", &assign_EquivalentBranch_positiveR21); - assign_map.emplace("cim:EquivalentBranch.positiveX12", &assign_EquivalentBranch_positiveX12); - assign_map.emplace("cim:EquivalentBranch.positiveX21", &assign_EquivalentBranch_positiveX21); - assign_map.emplace("cim:EquivalentBranch.r", &assign_EquivalentBranch_r); - assign_map.emplace("cim:EquivalentBranch.r21", &assign_EquivalentBranch_r21); - assign_map.emplace("cim:EquivalentBranch.x", &assign_EquivalentBranch_x); - assign_map.emplace("cim:EquivalentBranch.x21", &assign_EquivalentBranch_x21); - assign_map.emplace("cim:EquivalentBranch.zeroR12", &assign_EquivalentBranch_zeroR12); - assign_map.emplace("cim:EquivalentBranch.zeroR21", &assign_EquivalentBranch_zeroR21); - assign_map.emplace("cim:EquivalentBranch.zeroX12", &assign_EquivalentBranch_zeroX12); - assign_map.emplace("cim:EquivalentBranch.zeroX21", &assign_EquivalentBranch_zeroX21); + assign_map.emplace("EquivalentBranch.negativeR12", &assign_EquivalentBranch_negativeR12); + assign_map.emplace("EquivalentBranch.negativeR21", &assign_EquivalentBranch_negativeR21); + assign_map.emplace("EquivalentBranch.negativeX12", &assign_EquivalentBranch_negativeX12); + assign_map.emplace("EquivalentBranch.negativeX21", &assign_EquivalentBranch_negativeX21); + assign_map.emplace("EquivalentBranch.positiveR12", &assign_EquivalentBranch_positiveR12); + assign_map.emplace("EquivalentBranch.positiveR21", &assign_EquivalentBranch_positiveR21); + assign_map.emplace("EquivalentBranch.positiveX12", &assign_EquivalentBranch_positiveX12); + assign_map.emplace("EquivalentBranch.positiveX21", &assign_EquivalentBranch_positiveX21); + assign_map.emplace("EquivalentBranch.r", &assign_EquivalentBranch_r); + assign_map.emplace("EquivalentBranch.r21", &assign_EquivalentBranch_r21); + assign_map.emplace("EquivalentBranch.x", &assign_EquivalentBranch_x); + assign_map.emplace("EquivalentBranch.x21", &assign_EquivalentBranch_x21); + assign_map.emplace("EquivalentBranch.zeroR12", &assign_EquivalentBranch_zeroR12); + assign_map.emplace("EquivalentBranch.zeroR21", &assign_EquivalentBranch_zeroR21); + assign_map.emplace("EquivalentBranch.zeroX12", &assign_EquivalentBranch_zeroX12); + assign_map.emplace("EquivalentBranch.zeroX21", &assign_EquivalentBranch_zeroX21); } void EquivalentBranch::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -557,22 +589,22 @@ void EquivalentBranch::addClassAssignFnsToMap(std::unordered_map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentBranch.negativeR12", &get_EquivalentBranch_negativeR12); - get_map.emplace("cim:EquivalentBranch.negativeR21", &get_EquivalentBranch_negativeR21); - get_map.emplace("cim:EquivalentBranch.negativeX12", &get_EquivalentBranch_negativeX12); - get_map.emplace("cim:EquivalentBranch.negativeX21", &get_EquivalentBranch_negativeX21); - get_map.emplace("cim:EquivalentBranch.positiveR12", &get_EquivalentBranch_positiveR12); - get_map.emplace("cim:EquivalentBranch.positiveR21", &get_EquivalentBranch_positiveR21); - get_map.emplace("cim:EquivalentBranch.positiveX12", &get_EquivalentBranch_positiveX12); - get_map.emplace("cim:EquivalentBranch.positiveX21", &get_EquivalentBranch_positiveX21); - get_map.emplace("cim:EquivalentBranch.r", &get_EquivalentBranch_r); - get_map.emplace("cim:EquivalentBranch.r21", &get_EquivalentBranch_r21); - get_map.emplace("cim:EquivalentBranch.x", &get_EquivalentBranch_x); - get_map.emplace("cim:EquivalentBranch.x21", &get_EquivalentBranch_x21); - get_map.emplace("cim:EquivalentBranch.zeroR12", &get_EquivalentBranch_zeroR12); - get_map.emplace("cim:EquivalentBranch.zeroR21", &get_EquivalentBranch_zeroR21); - get_map.emplace("cim:EquivalentBranch.zeroX12", &get_EquivalentBranch_zeroX12); - get_map.emplace("cim:EquivalentBranch.zeroX21", &get_EquivalentBranch_zeroX21); + get_map.emplace("EquivalentBranch.negativeR12", &get_EquivalentBranch_negativeR12); + get_map.emplace("EquivalentBranch.negativeR21", &get_EquivalentBranch_negativeR21); + get_map.emplace("EquivalentBranch.negativeX12", &get_EquivalentBranch_negativeX12); + get_map.emplace("EquivalentBranch.negativeX21", &get_EquivalentBranch_negativeX21); + get_map.emplace("EquivalentBranch.positiveR12", &get_EquivalentBranch_positiveR12); + get_map.emplace("EquivalentBranch.positiveR21", &get_EquivalentBranch_positiveR21); + get_map.emplace("EquivalentBranch.positiveX12", &get_EquivalentBranch_positiveX12); + get_map.emplace("EquivalentBranch.positiveX21", &get_EquivalentBranch_positiveX21); + get_map.emplace("EquivalentBranch.r", &get_EquivalentBranch_r); + get_map.emplace("EquivalentBranch.r21", &get_EquivalentBranch_r21); + get_map.emplace("EquivalentBranch.x", &get_EquivalentBranch_x); + get_map.emplace("EquivalentBranch.x21", &get_EquivalentBranch_x21); + get_map.emplace("EquivalentBranch.zeroR12", &get_EquivalentBranch_zeroR12); + get_map.emplace("EquivalentBranch.zeroR21", &get_EquivalentBranch_zeroR21); + get_map.emplace("EquivalentBranch.zeroX12", &get_EquivalentBranch_zeroX12); + get_map.emplace("EquivalentBranch.zeroX21", &get_EquivalentBranch_zeroX21); } void EquivalentBranch::addClassGetFnsToMap(std::map& get_map) const @@ -585,11 +617,25 @@ void EquivalentBranch::addEnumGetFnsToMap(std::map& g EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentBranch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentBranch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentBranch::declare() { return BaseClassDefiner(EquivalentBranch::addConstructToMap, EquivalentBranch::addPrimitiveAssignFnsToMap, EquivalentBranch::addClassAssignFnsToMap, EquivalentBranch::debugName); } +std::map EquivalentBranch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentBranch_factory() diff --git a/CGMES_3.0.0/EquivalentBranch.hpp b/CGMES_3.0.0/EquivalentBranch.hpp index a3d744ee6..e1673aabb 100644 --- a/CGMES_3.0.0/EquivalentBranch.hpp +++ b/CGMES_3.0.0/EquivalentBranch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" #include "Resistance.hpp" @@ -77,8 +78,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -86,7 +94,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentBranch_factory(); diff --git a/CGMES_3.0.0/EquivalentEquipment.cpp b/CGMES_3.0.0/EquivalentEquipment.cpp index c5e8233cb..cb94a0d6e 100644 --- a/CGMES_3.0.0/EquivalentEquipment.cpp +++ b/CGMES_3.0.0/EquivalentEquipment.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentEquipment(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentEquipment.EquivalentNetwork", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentEquipment::EquivalentEquipment() : EquivalentNetwork(nullptr) {} EquivalentEquipment::~EquivalentEquipment() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentEquipment::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentEquipment::getClassNamespaceUrl() const { - { "cim:EquivalentEquipment.EquivalentNetwork", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentEquipment::getPossibleProfilesForClass() const +const std::string& EquivalentEquipment::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentEquipment::getPossibleProfilesForAttributes() const +const std::list& EquivalentEquipment::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentEquipment::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentEquipment::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentEquipment::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentNetwork_EquivalentEquipments(BaseClass*, BaseClass*); @@ -81,7 +113,7 @@ const char* EquivalentEquipment::debugString() const void EquivalentEquipment::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentEquipment", &EquivalentEquipment_factory); + factory_map.emplace("EquivalentEquipment", &EquivalentEquipment_factory); } void EquivalentEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -90,7 +122,7 @@ void EquivalentEquipment::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentEquipment.EquivalentNetwork", &assign_EquivalentEquipment_EquivalentNetwork); + assign_map.emplace("EquivalentEquipment.EquivalentNetwork", &assign_EquivalentEquipment_EquivalentNetwork); } void EquivalentEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -101,7 +133,7 @@ void EquivalentEquipment::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentEquipment.EquivalentNetwork", &get_EquivalentEquipment_EquivalentNetwork); + get_map.emplace("EquivalentEquipment.EquivalentNetwork", &get_EquivalentEquipment_EquivalentNetwork); } void EquivalentEquipment::addEnumGetFnsToMap(std::map& get_map) const @@ -109,11 +141,25 @@ void EquivalentEquipment::addEnumGetFnsToMap(std::map ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentEquipment::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentEquipment" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentEquipment::declare() { return BaseClassDefiner(EquivalentEquipment::addConstructToMap, EquivalentEquipment::addPrimitiveAssignFnsToMap, EquivalentEquipment::addClassAssignFnsToMap, EquivalentEquipment::debugName); } +std::map EquivalentEquipment::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentEquipment_factory() diff --git a/CGMES_3.0.0/EquivalentEquipment.hpp b/CGMES_3.0.0/EquivalentEquipment.hpp index 976202e08..8e60d68af 100644 --- a/CGMES_3.0.0/EquivalentEquipment.hpp +++ b/CGMES_3.0.0/EquivalentEquipment.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentEquipment_factory(); diff --git a/CGMES_3.0.0/EquivalentInjection.cpp b/CGMES_3.0.0/EquivalentInjection.cpp index 9cd417f42..b4831f79b 100644 --- a/CGMES_3.0.0/EquivalentInjection.cpp +++ b/CGMES_3.0.0/EquivalentInjection.cpp @@ -12,49 +12,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentInjection(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentInjection.ReactiveCapabilityCurve", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.maxP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.maxQ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.minP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.minQ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.p", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentInjection.r0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentInjection.r2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentInjection.regulationCapability", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentInjection.regulationStatus", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.regulationTarget", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "EquivalentInjection.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentInjection.x0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "EquivalentInjection.x2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentInjection::EquivalentInjection() : ReactiveCapabilityCurve(nullptr) {} EquivalentInjection::~EquivalentInjection() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentInjection::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentInjection::getClassNamespaceUrl() const { - { "cim:EquivalentInjection.ReactiveCapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.maxP", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.maxQ", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.minP", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.minQ", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.p", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.q", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.r", { CGMESProfile::SC, } }, - { "cim:EquivalentInjection.r0", { CGMESProfile::SC, } }, - { "cim:EquivalentInjection.r2", { CGMESProfile::SC, } }, - { "cim:EquivalentInjection.regulationCapability", { CGMESProfile::EQ, } }, - { "cim:EquivalentInjection.regulationStatus", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.regulationTarget", { CGMESProfile::SSH, } }, - { "cim:EquivalentInjection.x", { CGMESProfile::SC, } }, - { "cim:EquivalentInjection.x0", { CGMESProfile::SC, } }, - { "cim:EquivalentInjection.x2", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentInjection::getPossibleProfilesForClass() const +const std::string& EquivalentInjection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentInjection::getPossibleProfilesForAttributes() const +const std::list& EquivalentInjection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReactiveCapabilityCurve_EquivalentInjection(BaseClass*, BaseClass*); @@ -531,57 +563,57 @@ const char* EquivalentInjection::debugString() const void EquivalentInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentInjection", &EquivalentInjection_factory); + factory_map.emplace("EquivalentInjection", &EquivalentInjection_factory); } void EquivalentInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentInjection.maxP", &assign_EquivalentInjection_maxP); - assign_map.emplace("cim:EquivalentInjection.maxQ", &assign_EquivalentInjection_maxQ); - assign_map.emplace("cim:EquivalentInjection.minP", &assign_EquivalentInjection_minP); - assign_map.emplace("cim:EquivalentInjection.minQ", &assign_EquivalentInjection_minQ); - assign_map.emplace("cim:EquivalentInjection.p", &assign_EquivalentInjection_p); - assign_map.emplace("cim:EquivalentInjection.q", &assign_EquivalentInjection_q); - assign_map.emplace("cim:EquivalentInjection.r", &assign_EquivalentInjection_r); - assign_map.emplace("cim:EquivalentInjection.r0", &assign_EquivalentInjection_r0); - assign_map.emplace("cim:EquivalentInjection.r2", &assign_EquivalentInjection_r2); - assign_map.emplace("cim:EquivalentInjection.regulationCapability", &assign_EquivalentInjection_regulationCapability); - assign_map.emplace("cim:EquivalentInjection.regulationStatus", &assign_EquivalentInjection_regulationStatus); - assign_map.emplace("cim:EquivalentInjection.regulationTarget", &assign_EquivalentInjection_regulationTarget); - assign_map.emplace("cim:EquivalentInjection.x", &assign_EquivalentInjection_x); - assign_map.emplace("cim:EquivalentInjection.x0", &assign_EquivalentInjection_x0); - assign_map.emplace("cim:EquivalentInjection.x2", &assign_EquivalentInjection_x2); + assign_map.emplace("EquivalentInjection.maxP", &assign_EquivalentInjection_maxP); + assign_map.emplace("EquivalentInjection.maxQ", &assign_EquivalentInjection_maxQ); + assign_map.emplace("EquivalentInjection.minP", &assign_EquivalentInjection_minP); + assign_map.emplace("EquivalentInjection.minQ", &assign_EquivalentInjection_minQ); + assign_map.emplace("EquivalentInjection.p", &assign_EquivalentInjection_p); + assign_map.emplace("EquivalentInjection.q", &assign_EquivalentInjection_q); + assign_map.emplace("EquivalentInjection.r", &assign_EquivalentInjection_r); + assign_map.emplace("EquivalentInjection.r0", &assign_EquivalentInjection_r0); + assign_map.emplace("EquivalentInjection.r2", &assign_EquivalentInjection_r2); + assign_map.emplace("EquivalentInjection.regulationCapability", &assign_EquivalentInjection_regulationCapability); + assign_map.emplace("EquivalentInjection.regulationStatus", &assign_EquivalentInjection_regulationStatus); + assign_map.emplace("EquivalentInjection.regulationTarget", &assign_EquivalentInjection_regulationTarget); + assign_map.emplace("EquivalentInjection.x", &assign_EquivalentInjection_x); + assign_map.emplace("EquivalentInjection.x0", &assign_EquivalentInjection_x0); + assign_map.emplace("EquivalentInjection.x2", &assign_EquivalentInjection_x2); } void EquivalentInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentInjection.ReactiveCapabilityCurve", &assign_EquivalentInjection_ReactiveCapabilityCurve); + assign_map.emplace("EquivalentInjection.ReactiveCapabilityCurve", &assign_EquivalentInjection_ReactiveCapabilityCurve); } void EquivalentInjection::addPrimitiveGetFnsToMap(std::map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentInjection.maxP", &get_EquivalentInjection_maxP); - get_map.emplace("cim:EquivalentInjection.maxQ", &get_EquivalentInjection_maxQ); - get_map.emplace("cim:EquivalentInjection.minP", &get_EquivalentInjection_minP); - get_map.emplace("cim:EquivalentInjection.minQ", &get_EquivalentInjection_minQ); - get_map.emplace("cim:EquivalentInjection.p", &get_EquivalentInjection_p); - get_map.emplace("cim:EquivalentInjection.q", &get_EquivalentInjection_q); - get_map.emplace("cim:EquivalentInjection.r", &get_EquivalentInjection_r); - get_map.emplace("cim:EquivalentInjection.r0", &get_EquivalentInjection_r0); - get_map.emplace("cim:EquivalentInjection.r2", &get_EquivalentInjection_r2); - get_map.emplace("cim:EquivalentInjection.regulationCapability", &get_EquivalentInjection_regulationCapability); - get_map.emplace("cim:EquivalentInjection.regulationStatus", &get_EquivalentInjection_regulationStatus); - get_map.emplace("cim:EquivalentInjection.regulationTarget", &get_EquivalentInjection_regulationTarget); - get_map.emplace("cim:EquivalentInjection.x", &get_EquivalentInjection_x); - get_map.emplace("cim:EquivalentInjection.x0", &get_EquivalentInjection_x0); - get_map.emplace("cim:EquivalentInjection.x2", &get_EquivalentInjection_x2); + get_map.emplace("EquivalentInjection.maxP", &get_EquivalentInjection_maxP); + get_map.emplace("EquivalentInjection.maxQ", &get_EquivalentInjection_maxQ); + get_map.emplace("EquivalentInjection.minP", &get_EquivalentInjection_minP); + get_map.emplace("EquivalentInjection.minQ", &get_EquivalentInjection_minQ); + get_map.emplace("EquivalentInjection.p", &get_EquivalentInjection_p); + get_map.emplace("EquivalentInjection.q", &get_EquivalentInjection_q); + get_map.emplace("EquivalentInjection.r", &get_EquivalentInjection_r); + get_map.emplace("EquivalentInjection.r0", &get_EquivalentInjection_r0); + get_map.emplace("EquivalentInjection.r2", &get_EquivalentInjection_r2); + get_map.emplace("EquivalentInjection.regulationCapability", &get_EquivalentInjection_regulationCapability); + get_map.emplace("EquivalentInjection.regulationStatus", &get_EquivalentInjection_regulationStatus); + get_map.emplace("EquivalentInjection.regulationTarget", &get_EquivalentInjection_regulationTarget); + get_map.emplace("EquivalentInjection.x", &get_EquivalentInjection_x); + get_map.emplace("EquivalentInjection.x0", &get_EquivalentInjection_x0); + get_map.emplace("EquivalentInjection.x2", &get_EquivalentInjection_x2); } void EquivalentInjection::addClassGetFnsToMap(std::map& get_map) const { EquivalentEquipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentInjection.ReactiveCapabilityCurve", &get_EquivalentInjection_ReactiveCapabilityCurve); + get_map.emplace("EquivalentInjection.ReactiveCapabilityCurve", &get_EquivalentInjection_ReactiveCapabilityCurve); } void EquivalentInjection::addEnumGetFnsToMap(std::map& get_map) const @@ -589,11 +621,25 @@ void EquivalentInjection::addEnumGetFnsToMap(std::map EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentInjection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentInjection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentInjection::declare() { return BaseClassDefiner(EquivalentInjection::addConstructToMap, EquivalentInjection::addPrimitiveAssignFnsToMap, EquivalentInjection::addClassAssignFnsToMap, EquivalentInjection::debugName); } +std::map EquivalentInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentInjection_factory() diff --git a/CGMES_3.0.0/EquivalentInjection.hpp b/CGMES_3.0.0/EquivalentInjection.hpp index b10e2980a..389871123 100644 --- a/CGMES_3.0.0/EquivalentInjection.hpp +++ b/CGMES_3.0.0/EquivalentInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Reactance.hpp" @@ -82,8 +83,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -91,7 +99,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentInjection_factory(); diff --git a/CGMES_3.0.0/EquivalentNetwork.cpp b/CGMES_3.0.0/EquivalentNetwork.cpp index 81b5286cd..3848dfdef 100644 --- a/CGMES_3.0.0/EquivalentNetwork.cpp +++ b/CGMES_3.0.0/EquivalentNetwork.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentNetwork(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentNetwork.EquivalentEquipments", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentNetwork::EquivalentNetwork() {} EquivalentNetwork::~EquivalentNetwork() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentNetwork::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentNetwork::getClassNamespaceUrl() const { - { "cim:EquivalentNetwork.EquivalentEquipments", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentNetwork::getPossibleProfilesForClass() const +const std::string& EquivalentNetwork::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentNetwork::getPossibleProfilesForAttributes() const +const std::list& EquivalentNetwork::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConnectivityNodeContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentNetwork::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentNetwork::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentNetwork::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentEquipment_EquivalentNetwork(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* EquivalentNetwork::debugString() const void EquivalentNetwork::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentNetwork", &EquivalentNetwork_factory); + factory_map.emplace("EquivalentNetwork", &EquivalentNetwork_factory); } void EquivalentNetwork::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void EquivalentNetwork::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentNetwork.EquivalentEquipments", &assign_EquivalentNetwork_EquivalentEquipments); + assign_map.emplace("EquivalentNetwork.EquivalentEquipments", &assign_EquivalentNetwork_EquivalentEquipments); } void EquivalentNetwork::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void EquivalentNetwork::addEnumGetFnsToMap(std::map& ConnectivityNodeContainer::addEnumGetFnsToMap(get_map); } +bool EquivalentNetwork::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentNetwork" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentNetwork::declare() { return BaseClassDefiner(EquivalentNetwork::addConstructToMap, EquivalentNetwork::addPrimitiveAssignFnsToMap, EquivalentNetwork::addClassAssignFnsToMap, EquivalentNetwork::debugName); } +std::map EquivalentNetwork::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConnectivityNodeContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentNetwork_factory() diff --git a/CGMES_3.0.0/EquivalentNetwork.hpp b/CGMES_3.0.0/EquivalentNetwork.hpp index 0fef7c8a7..87f58ce69 100644 --- a/CGMES_3.0.0/EquivalentNetwork.hpp +++ b/CGMES_3.0.0/EquivalentNetwork.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConnectivityNodeContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentNetwork_factory(); diff --git a/CGMES_3.0.0/EquivalentShunt.cpp b/CGMES_3.0.0/EquivalentShunt.cpp index 3bee41ffb..6e61265c8 100644 --- a/CGMES_3.0.0/EquivalentShunt.cpp +++ b/CGMES_3.0.0/EquivalentShunt.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + EquivalentShunt(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "EquivalentShunt.b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "EquivalentShunt.g", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + EquivalentShunt::EquivalentShunt() {} EquivalentShunt::~EquivalentShunt() {} -static const std::list PossibleProfilesForClass = +const std::list& EquivalentShunt::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& EquivalentShunt::getClassNamespaceUrl() const { - { "cim:EquivalentShunt.b", { CGMESProfile::EQ, } }, - { "cim:EquivalentShunt.g", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -EquivalentShunt::getPossibleProfilesForClass() const +const std::string& EquivalentShunt::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -EquivalentShunt::getPossibleProfilesForAttributes() const +const std::list& EquivalentShunt::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquivalentEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& EquivalentShunt::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& EquivalentShunt::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& EquivalentShunt::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentShunt_b(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* EquivalentShunt::debugString() const void EquivalentShunt::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:EquivalentShunt", &EquivalentShunt_factory); + factory_map.emplace("EquivalentShunt", &EquivalentShunt_factory); } void EquivalentShunt::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:EquivalentShunt.b", &assign_EquivalentShunt_b); - assign_map.emplace("cim:EquivalentShunt.g", &assign_EquivalentShunt_g); + assign_map.emplace("EquivalentShunt.b", &assign_EquivalentShunt_b); + assign_map.emplace("EquivalentShunt.g", &assign_EquivalentShunt_g); } void EquivalentShunt::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void EquivalentShunt::addClassAssignFnsToMap(std::unordered_map& get_map) const { EquivalentEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:EquivalentShunt.b", &get_EquivalentShunt_b); - get_map.emplace("cim:EquivalentShunt.g", &get_EquivalentShunt_g); + get_map.emplace("EquivalentShunt.b", &get_EquivalentShunt_b); + get_map.emplace("EquivalentShunt.g", &get_EquivalentShunt_g); } void EquivalentShunt::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void EquivalentShunt::addEnumGetFnsToMap(std::map& ge EquivalentEquipment::addEnumGetFnsToMap(get_map); } +bool EquivalentShunt::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "EquivalentShunt" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner EquivalentShunt::declare() { return BaseClassDefiner(EquivalentShunt::addConstructToMap, EquivalentShunt::addPrimitiveAssignFnsToMap, EquivalentShunt::addClassAssignFnsToMap, EquivalentShunt::debugName); } +std::map EquivalentShunt::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquivalentEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* EquivalentShunt_factory() diff --git a/CGMES_3.0.0/EquivalentShunt.hpp b/CGMES_3.0.0/EquivalentShunt.hpp index 4cd995dcf..8f645b0fc 100644 --- a/CGMES_3.0.0/EquivalentShunt.hpp +++ b/CGMES_3.0.0/EquivalentShunt.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquivalentEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Susceptance.hpp" @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* EquivalentShunt_factory(); diff --git a/CGMES_3.0.0/ExcAC1A.cpp b/CGMES_3.0.0/ExcAC1A.cpp index d5bbdc7a5..d63bb854c 100644 --- a/CGMES_3.0.0/ExcAC1A.cpp +++ b/CGMES_3.0.0/ExcAC1A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC1A.hvlvgates", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.kf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC1A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC1A::ExcAC1A() {} ExcAC1A::~ExcAC1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC1A.hvlvgates", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.kf2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC1A_hvlvgates(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* ExcAC1A::debugString() const void ExcAC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC1A", &ExcAC1A_factory); + factory_map.emplace("ExcAC1A", &ExcAC1A_factory); } void ExcAC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC1A.hvlvgates", &assign_ExcAC1A_hvlvgates); - assign_map.emplace("cim:ExcAC1A.ka", &assign_ExcAC1A_ka); - assign_map.emplace("cim:ExcAC1A.kc", &assign_ExcAC1A_kc); - assign_map.emplace("cim:ExcAC1A.kd", &assign_ExcAC1A_kd); - assign_map.emplace("cim:ExcAC1A.ke", &assign_ExcAC1A_ke); - assign_map.emplace("cim:ExcAC1A.kf", &assign_ExcAC1A_kf); - assign_map.emplace("cim:ExcAC1A.kf1", &assign_ExcAC1A_kf1); - assign_map.emplace("cim:ExcAC1A.kf2", &assign_ExcAC1A_kf2); - assign_map.emplace("cim:ExcAC1A.ks", &assign_ExcAC1A_ks); - assign_map.emplace("cim:ExcAC1A.seve1", &assign_ExcAC1A_seve1); - assign_map.emplace("cim:ExcAC1A.seve2", &assign_ExcAC1A_seve2); - assign_map.emplace("cim:ExcAC1A.ta", &assign_ExcAC1A_ta); - assign_map.emplace("cim:ExcAC1A.tb", &assign_ExcAC1A_tb); - assign_map.emplace("cim:ExcAC1A.tc", &assign_ExcAC1A_tc); - assign_map.emplace("cim:ExcAC1A.te", &assign_ExcAC1A_te); - assign_map.emplace("cim:ExcAC1A.tf", &assign_ExcAC1A_tf); - assign_map.emplace("cim:ExcAC1A.vamax", &assign_ExcAC1A_vamax); - assign_map.emplace("cim:ExcAC1A.vamin", &assign_ExcAC1A_vamin); - assign_map.emplace("cim:ExcAC1A.ve1", &assign_ExcAC1A_ve1); - assign_map.emplace("cim:ExcAC1A.ve2", &assign_ExcAC1A_ve2); - assign_map.emplace("cim:ExcAC1A.vrmax", &assign_ExcAC1A_vrmax); - assign_map.emplace("cim:ExcAC1A.vrmin", &assign_ExcAC1A_vrmin); + assign_map.emplace("ExcAC1A.hvlvgates", &assign_ExcAC1A_hvlvgates); + assign_map.emplace("ExcAC1A.ka", &assign_ExcAC1A_ka); + assign_map.emplace("ExcAC1A.kc", &assign_ExcAC1A_kc); + assign_map.emplace("ExcAC1A.kd", &assign_ExcAC1A_kd); + assign_map.emplace("ExcAC1A.ke", &assign_ExcAC1A_ke); + assign_map.emplace("ExcAC1A.kf", &assign_ExcAC1A_kf); + assign_map.emplace("ExcAC1A.kf1", &assign_ExcAC1A_kf1); + assign_map.emplace("ExcAC1A.kf2", &assign_ExcAC1A_kf2); + assign_map.emplace("ExcAC1A.ks", &assign_ExcAC1A_ks); + assign_map.emplace("ExcAC1A.seve1", &assign_ExcAC1A_seve1); + assign_map.emplace("ExcAC1A.seve2", &assign_ExcAC1A_seve2); + assign_map.emplace("ExcAC1A.ta", &assign_ExcAC1A_ta); + assign_map.emplace("ExcAC1A.tb", &assign_ExcAC1A_tb); + assign_map.emplace("ExcAC1A.tc", &assign_ExcAC1A_tc); + assign_map.emplace("ExcAC1A.te", &assign_ExcAC1A_te); + assign_map.emplace("ExcAC1A.tf", &assign_ExcAC1A_tf); + assign_map.emplace("ExcAC1A.vamax", &assign_ExcAC1A_vamax); + assign_map.emplace("ExcAC1A.vamin", &assign_ExcAC1A_vamin); + assign_map.emplace("ExcAC1A.ve1", &assign_ExcAC1A_ve1); + assign_map.emplace("ExcAC1A.ve2", &assign_ExcAC1A_ve2); + assign_map.emplace("ExcAC1A.vrmax", &assign_ExcAC1A_vrmax); + assign_map.emplace("ExcAC1A.vrmin", &assign_ExcAC1A_vrmin); } void ExcAC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void ExcAC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC1A.hvlvgates", &get_ExcAC1A_hvlvgates); - get_map.emplace("cim:ExcAC1A.ka", &get_ExcAC1A_ka); - get_map.emplace("cim:ExcAC1A.kc", &get_ExcAC1A_kc); - get_map.emplace("cim:ExcAC1A.kd", &get_ExcAC1A_kd); - get_map.emplace("cim:ExcAC1A.ke", &get_ExcAC1A_ke); - get_map.emplace("cim:ExcAC1A.kf", &get_ExcAC1A_kf); - get_map.emplace("cim:ExcAC1A.kf1", &get_ExcAC1A_kf1); - get_map.emplace("cim:ExcAC1A.kf2", &get_ExcAC1A_kf2); - get_map.emplace("cim:ExcAC1A.ks", &get_ExcAC1A_ks); - get_map.emplace("cim:ExcAC1A.seve1", &get_ExcAC1A_seve1); - get_map.emplace("cim:ExcAC1A.seve2", &get_ExcAC1A_seve2); - get_map.emplace("cim:ExcAC1A.ta", &get_ExcAC1A_ta); - get_map.emplace("cim:ExcAC1A.tb", &get_ExcAC1A_tb); - get_map.emplace("cim:ExcAC1A.tc", &get_ExcAC1A_tc); - get_map.emplace("cim:ExcAC1A.te", &get_ExcAC1A_te); - get_map.emplace("cim:ExcAC1A.tf", &get_ExcAC1A_tf); - get_map.emplace("cim:ExcAC1A.vamax", &get_ExcAC1A_vamax); - get_map.emplace("cim:ExcAC1A.vamin", &get_ExcAC1A_vamin); - get_map.emplace("cim:ExcAC1A.ve1", &get_ExcAC1A_ve1); - get_map.emplace("cim:ExcAC1A.ve2", &get_ExcAC1A_ve2); - get_map.emplace("cim:ExcAC1A.vrmax", &get_ExcAC1A_vrmax); - get_map.emplace("cim:ExcAC1A.vrmin", &get_ExcAC1A_vrmin); + get_map.emplace("ExcAC1A.hvlvgates", &get_ExcAC1A_hvlvgates); + get_map.emplace("ExcAC1A.ka", &get_ExcAC1A_ka); + get_map.emplace("ExcAC1A.kc", &get_ExcAC1A_kc); + get_map.emplace("ExcAC1A.kd", &get_ExcAC1A_kd); + get_map.emplace("ExcAC1A.ke", &get_ExcAC1A_ke); + get_map.emplace("ExcAC1A.kf", &get_ExcAC1A_kf); + get_map.emplace("ExcAC1A.kf1", &get_ExcAC1A_kf1); + get_map.emplace("ExcAC1A.kf2", &get_ExcAC1A_kf2); + get_map.emplace("ExcAC1A.ks", &get_ExcAC1A_ks); + get_map.emplace("ExcAC1A.seve1", &get_ExcAC1A_seve1); + get_map.emplace("ExcAC1A.seve2", &get_ExcAC1A_seve2); + get_map.emplace("ExcAC1A.ta", &get_ExcAC1A_ta); + get_map.emplace("ExcAC1A.tb", &get_ExcAC1A_tb); + get_map.emplace("ExcAC1A.tc", &get_ExcAC1A_tc); + get_map.emplace("ExcAC1A.te", &get_ExcAC1A_te); + get_map.emplace("ExcAC1A.tf", &get_ExcAC1A_tf); + get_map.emplace("ExcAC1A.vamax", &get_ExcAC1A_vamax); + get_map.emplace("ExcAC1A.vamin", &get_ExcAC1A_vamin); + get_map.emplace("ExcAC1A.ve1", &get_ExcAC1A_ve1); + get_map.emplace("ExcAC1A.ve2", &get_ExcAC1A_ve2); + get_map.emplace("ExcAC1A.vrmax", &get_ExcAC1A_vrmax); + get_map.emplace("ExcAC1A.vrmin", &get_ExcAC1A_vrmin); } void ExcAC1A::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void ExcAC1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC1A::declare() { return BaseClassDefiner(ExcAC1A::addConstructToMap, ExcAC1A::addPrimitiveAssignFnsToMap, ExcAC1A::addClassAssignFnsToMap, ExcAC1A::debugName); } +std::map ExcAC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC1A_factory() diff --git a/CGMES_3.0.0/ExcAC1A.hpp b/CGMES_3.0.0/ExcAC1A.hpp index 37fe168ea..61bf91698 100644 --- a/CGMES_3.0.0/ExcAC1A.hpp +++ b/CGMES_3.0.0/ExcAC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC1A_factory(); diff --git a/CGMES_3.0.0/ExcAC2A.cpp b/CGMES_3.0.0/ExcAC2A.cpp index 733be71b2..17f533d70 100644 --- a/CGMES_3.0.0/ExcAC2A.cpp +++ b/CGMES_3.0.0/ExcAC2A.cpp @@ -11,59 +11,91 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC2A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC2A.hvgate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kb1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.kl1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.lvgate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vfemax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vlr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC2A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC2A::ExcAC2A() {} ExcAC2A::~ExcAC2A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC2A.hvgate", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kb", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kb1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kh", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kl", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.kl1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.lvgate", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vlr", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC2A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC2A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC2A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC2A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC2A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC2A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC2A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC2A_hvgate(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -886,39 +918,39 @@ const char* ExcAC2A::debugString() const void ExcAC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC2A", &ExcAC2A_factory); + factory_map.emplace("ExcAC2A", &ExcAC2A_factory); } void ExcAC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC2A.hvgate", &assign_ExcAC2A_hvgate); - assign_map.emplace("cim:ExcAC2A.ka", &assign_ExcAC2A_ka); - assign_map.emplace("cim:ExcAC2A.kb", &assign_ExcAC2A_kb); - assign_map.emplace("cim:ExcAC2A.kb1", &assign_ExcAC2A_kb1); - assign_map.emplace("cim:ExcAC2A.kc", &assign_ExcAC2A_kc); - assign_map.emplace("cim:ExcAC2A.kd", &assign_ExcAC2A_kd); - assign_map.emplace("cim:ExcAC2A.ke", &assign_ExcAC2A_ke); - assign_map.emplace("cim:ExcAC2A.kf", &assign_ExcAC2A_kf); - assign_map.emplace("cim:ExcAC2A.kh", &assign_ExcAC2A_kh); - assign_map.emplace("cim:ExcAC2A.kl", &assign_ExcAC2A_kl); - assign_map.emplace("cim:ExcAC2A.kl1", &assign_ExcAC2A_kl1); - assign_map.emplace("cim:ExcAC2A.ks", &assign_ExcAC2A_ks); - assign_map.emplace("cim:ExcAC2A.lvgate", &assign_ExcAC2A_lvgate); - assign_map.emplace("cim:ExcAC2A.seve1", &assign_ExcAC2A_seve1); - assign_map.emplace("cim:ExcAC2A.seve2", &assign_ExcAC2A_seve2); - assign_map.emplace("cim:ExcAC2A.ta", &assign_ExcAC2A_ta); - assign_map.emplace("cim:ExcAC2A.tb", &assign_ExcAC2A_tb); - assign_map.emplace("cim:ExcAC2A.tc", &assign_ExcAC2A_tc); - assign_map.emplace("cim:ExcAC2A.te", &assign_ExcAC2A_te); - assign_map.emplace("cim:ExcAC2A.tf", &assign_ExcAC2A_tf); - assign_map.emplace("cim:ExcAC2A.vamax", &assign_ExcAC2A_vamax); - assign_map.emplace("cim:ExcAC2A.vamin", &assign_ExcAC2A_vamin); - assign_map.emplace("cim:ExcAC2A.ve1", &assign_ExcAC2A_ve1); - assign_map.emplace("cim:ExcAC2A.ve2", &assign_ExcAC2A_ve2); - assign_map.emplace("cim:ExcAC2A.vfemax", &assign_ExcAC2A_vfemax); - assign_map.emplace("cim:ExcAC2A.vlr", &assign_ExcAC2A_vlr); - assign_map.emplace("cim:ExcAC2A.vrmax", &assign_ExcAC2A_vrmax); - assign_map.emplace("cim:ExcAC2A.vrmin", &assign_ExcAC2A_vrmin); + assign_map.emplace("ExcAC2A.hvgate", &assign_ExcAC2A_hvgate); + assign_map.emplace("ExcAC2A.ka", &assign_ExcAC2A_ka); + assign_map.emplace("ExcAC2A.kb", &assign_ExcAC2A_kb); + assign_map.emplace("ExcAC2A.kb1", &assign_ExcAC2A_kb1); + assign_map.emplace("ExcAC2A.kc", &assign_ExcAC2A_kc); + assign_map.emplace("ExcAC2A.kd", &assign_ExcAC2A_kd); + assign_map.emplace("ExcAC2A.ke", &assign_ExcAC2A_ke); + assign_map.emplace("ExcAC2A.kf", &assign_ExcAC2A_kf); + assign_map.emplace("ExcAC2A.kh", &assign_ExcAC2A_kh); + assign_map.emplace("ExcAC2A.kl", &assign_ExcAC2A_kl); + assign_map.emplace("ExcAC2A.kl1", &assign_ExcAC2A_kl1); + assign_map.emplace("ExcAC2A.ks", &assign_ExcAC2A_ks); + assign_map.emplace("ExcAC2A.lvgate", &assign_ExcAC2A_lvgate); + assign_map.emplace("ExcAC2A.seve1", &assign_ExcAC2A_seve1); + assign_map.emplace("ExcAC2A.seve2", &assign_ExcAC2A_seve2); + assign_map.emplace("ExcAC2A.ta", &assign_ExcAC2A_ta); + assign_map.emplace("ExcAC2A.tb", &assign_ExcAC2A_tb); + assign_map.emplace("ExcAC2A.tc", &assign_ExcAC2A_tc); + assign_map.emplace("ExcAC2A.te", &assign_ExcAC2A_te); + assign_map.emplace("ExcAC2A.tf", &assign_ExcAC2A_tf); + assign_map.emplace("ExcAC2A.vamax", &assign_ExcAC2A_vamax); + assign_map.emplace("ExcAC2A.vamin", &assign_ExcAC2A_vamin); + assign_map.emplace("ExcAC2A.ve1", &assign_ExcAC2A_ve1); + assign_map.emplace("ExcAC2A.ve2", &assign_ExcAC2A_ve2); + assign_map.emplace("ExcAC2A.vfemax", &assign_ExcAC2A_vfemax); + assign_map.emplace("ExcAC2A.vlr", &assign_ExcAC2A_vlr); + assign_map.emplace("ExcAC2A.vrmax", &assign_ExcAC2A_vrmax); + assign_map.emplace("ExcAC2A.vrmin", &assign_ExcAC2A_vrmin); } void ExcAC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -928,34 +960,34 @@ void ExcAC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC2A.hvgate", &get_ExcAC2A_hvgate); - get_map.emplace("cim:ExcAC2A.ka", &get_ExcAC2A_ka); - get_map.emplace("cim:ExcAC2A.kb", &get_ExcAC2A_kb); - get_map.emplace("cim:ExcAC2A.kb1", &get_ExcAC2A_kb1); - get_map.emplace("cim:ExcAC2A.kc", &get_ExcAC2A_kc); - get_map.emplace("cim:ExcAC2A.kd", &get_ExcAC2A_kd); - get_map.emplace("cim:ExcAC2A.ke", &get_ExcAC2A_ke); - get_map.emplace("cim:ExcAC2A.kf", &get_ExcAC2A_kf); - get_map.emplace("cim:ExcAC2A.kh", &get_ExcAC2A_kh); - get_map.emplace("cim:ExcAC2A.kl", &get_ExcAC2A_kl); - get_map.emplace("cim:ExcAC2A.kl1", &get_ExcAC2A_kl1); - get_map.emplace("cim:ExcAC2A.ks", &get_ExcAC2A_ks); - get_map.emplace("cim:ExcAC2A.lvgate", &get_ExcAC2A_lvgate); - get_map.emplace("cim:ExcAC2A.seve1", &get_ExcAC2A_seve1); - get_map.emplace("cim:ExcAC2A.seve2", &get_ExcAC2A_seve2); - get_map.emplace("cim:ExcAC2A.ta", &get_ExcAC2A_ta); - get_map.emplace("cim:ExcAC2A.tb", &get_ExcAC2A_tb); - get_map.emplace("cim:ExcAC2A.tc", &get_ExcAC2A_tc); - get_map.emplace("cim:ExcAC2A.te", &get_ExcAC2A_te); - get_map.emplace("cim:ExcAC2A.tf", &get_ExcAC2A_tf); - get_map.emplace("cim:ExcAC2A.vamax", &get_ExcAC2A_vamax); - get_map.emplace("cim:ExcAC2A.vamin", &get_ExcAC2A_vamin); - get_map.emplace("cim:ExcAC2A.ve1", &get_ExcAC2A_ve1); - get_map.emplace("cim:ExcAC2A.ve2", &get_ExcAC2A_ve2); - get_map.emplace("cim:ExcAC2A.vfemax", &get_ExcAC2A_vfemax); - get_map.emplace("cim:ExcAC2A.vlr", &get_ExcAC2A_vlr); - get_map.emplace("cim:ExcAC2A.vrmax", &get_ExcAC2A_vrmax); - get_map.emplace("cim:ExcAC2A.vrmin", &get_ExcAC2A_vrmin); + get_map.emplace("ExcAC2A.hvgate", &get_ExcAC2A_hvgate); + get_map.emplace("ExcAC2A.ka", &get_ExcAC2A_ka); + get_map.emplace("ExcAC2A.kb", &get_ExcAC2A_kb); + get_map.emplace("ExcAC2A.kb1", &get_ExcAC2A_kb1); + get_map.emplace("ExcAC2A.kc", &get_ExcAC2A_kc); + get_map.emplace("ExcAC2A.kd", &get_ExcAC2A_kd); + get_map.emplace("ExcAC2A.ke", &get_ExcAC2A_ke); + get_map.emplace("ExcAC2A.kf", &get_ExcAC2A_kf); + get_map.emplace("ExcAC2A.kh", &get_ExcAC2A_kh); + get_map.emplace("ExcAC2A.kl", &get_ExcAC2A_kl); + get_map.emplace("ExcAC2A.kl1", &get_ExcAC2A_kl1); + get_map.emplace("ExcAC2A.ks", &get_ExcAC2A_ks); + get_map.emplace("ExcAC2A.lvgate", &get_ExcAC2A_lvgate); + get_map.emplace("ExcAC2A.seve1", &get_ExcAC2A_seve1); + get_map.emplace("ExcAC2A.seve2", &get_ExcAC2A_seve2); + get_map.emplace("ExcAC2A.ta", &get_ExcAC2A_ta); + get_map.emplace("ExcAC2A.tb", &get_ExcAC2A_tb); + get_map.emplace("ExcAC2A.tc", &get_ExcAC2A_tc); + get_map.emplace("ExcAC2A.te", &get_ExcAC2A_te); + get_map.emplace("ExcAC2A.tf", &get_ExcAC2A_tf); + get_map.emplace("ExcAC2A.vamax", &get_ExcAC2A_vamax); + get_map.emplace("ExcAC2A.vamin", &get_ExcAC2A_vamin); + get_map.emplace("ExcAC2A.ve1", &get_ExcAC2A_ve1); + get_map.emplace("ExcAC2A.ve2", &get_ExcAC2A_ve2); + get_map.emplace("ExcAC2A.vfemax", &get_ExcAC2A_vfemax); + get_map.emplace("ExcAC2A.vlr", &get_ExcAC2A_vlr); + get_map.emplace("ExcAC2A.vrmax", &get_ExcAC2A_vrmax); + get_map.emplace("ExcAC2A.vrmin", &get_ExcAC2A_vrmin); } void ExcAC2A::addClassGetFnsToMap(std::map& get_map) const @@ -968,11 +1000,25 @@ void ExcAC2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC2A::declare() { return BaseClassDefiner(ExcAC2A::addConstructToMap, ExcAC2A::addPrimitiveAssignFnsToMap, ExcAC2A::addClassAssignFnsToMap, ExcAC2A::debugName); } +std::map ExcAC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC2A_factory() diff --git a/CGMES_3.0.0/ExcAC2A.hpp b/CGMES_3.0.0/ExcAC2A.hpp index 103b197c3..2b6b4c803 100644 --- a/CGMES_3.0.0/ExcAC2A.hpp +++ b/CGMES_3.0.0/ExcAC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -115,8 +116,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -124,7 +132,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC2A_factory(); diff --git a/CGMES_3.0.0/ExcAC3A.cpp b/CGMES_3.0.0/ExcAC3A.cpp index 254577cfa..1dc993267 100644 --- a/CGMES_3.0.0/ExcAC3A.cpp +++ b/CGMES_3.0.0/ExcAC3A.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC3A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC3A.efdn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.klv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.kr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vemin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vfemax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC3A.vlv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC3A::ExcAC3A() {} ExcAC3A::~ExcAC3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC3A.efdn", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kf2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.klv", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kn", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.tf", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vemin", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC3A.vlv", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC3A_efdn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* ExcAC3A::debugString() const void ExcAC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC3A", &ExcAC3A_factory); + factory_map.emplace("ExcAC3A", &ExcAC3A_factory); } void ExcAC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC3A.efdn", &assign_ExcAC3A_efdn); - assign_map.emplace("cim:ExcAC3A.ka", &assign_ExcAC3A_ka); - assign_map.emplace("cim:ExcAC3A.kc", &assign_ExcAC3A_kc); - assign_map.emplace("cim:ExcAC3A.kd", &assign_ExcAC3A_kd); - assign_map.emplace("cim:ExcAC3A.ke", &assign_ExcAC3A_ke); - assign_map.emplace("cim:ExcAC3A.kf", &assign_ExcAC3A_kf); - assign_map.emplace("cim:ExcAC3A.kf1", &assign_ExcAC3A_kf1); - assign_map.emplace("cim:ExcAC3A.kf2", &assign_ExcAC3A_kf2); - assign_map.emplace("cim:ExcAC3A.klv", &assign_ExcAC3A_klv); - assign_map.emplace("cim:ExcAC3A.kn", &assign_ExcAC3A_kn); - assign_map.emplace("cim:ExcAC3A.kr", &assign_ExcAC3A_kr); - assign_map.emplace("cim:ExcAC3A.ks", &assign_ExcAC3A_ks); - assign_map.emplace("cim:ExcAC3A.seve1", &assign_ExcAC3A_seve1); - assign_map.emplace("cim:ExcAC3A.seve2", &assign_ExcAC3A_seve2); - assign_map.emplace("cim:ExcAC3A.ta", &assign_ExcAC3A_ta); - assign_map.emplace("cim:ExcAC3A.tb", &assign_ExcAC3A_tb); - assign_map.emplace("cim:ExcAC3A.tc", &assign_ExcAC3A_tc); - assign_map.emplace("cim:ExcAC3A.te", &assign_ExcAC3A_te); - assign_map.emplace("cim:ExcAC3A.tf", &assign_ExcAC3A_tf); - assign_map.emplace("cim:ExcAC3A.vamax", &assign_ExcAC3A_vamax); - assign_map.emplace("cim:ExcAC3A.vamin", &assign_ExcAC3A_vamin); - assign_map.emplace("cim:ExcAC3A.ve1", &assign_ExcAC3A_ve1); - assign_map.emplace("cim:ExcAC3A.ve2", &assign_ExcAC3A_ve2); - assign_map.emplace("cim:ExcAC3A.vemin", &assign_ExcAC3A_vemin); - assign_map.emplace("cim:ExcAC3A.vfemax", &assign_ExcAC3A_vfemax); - assign_map.emplace("cim:ExcAC3A.vlv", &assign_ExcAC3A_vlv); + assign_map.emplace("ExcAC3A.efdn", &assign_ExcAC3A_efdn); + assign_map.emplace("ExcAC3A.ka", &assign_ExcAC3A_ka); + assign_map.emplace("ExcAC3A.kc", &assign_ExcAC3A_kc); + assign_map.emplace("ExcAC3A.kd", &assign_ExcAC3A_kd); + assign_map.emplace("ExcAC3A.ke", &assign_ExcAC3A_ke); + assign_map.emplace("ExcAC3A.kf", &assign_ExcAC3A_kf); + assign_map.emplace("ExcAC3A.kf1", &assign_ExcAC3A_kf1); + assign_map.emplace("ExcAC3A.kf2", &assign_ExcAC3A_kf2); + assign_map.emplace("ExcAC3A.klv", &assign_ExcAC3A_klv); + assign_map.emplace("ExcAC3A.kn", &assign_ExcAC3A_kn); + assign_map.emplace("ExcAC3A.kr", &assign_ExcAC3A_kr); + assign_map.emplace("ExcAC3A.ks", &assign_ExcAC3A_ks); + assign_map.emplace("ExcAC3A.seve1", &assign_ExcAC3A_seve1); + assign_map.emplace("ExcAC3A.seve2", &assign_ExcAC3A_seve2); + assign_map.emplace("ExcAC3A.ta", &assign_ExcAC3A_ta); + assign_map.emplace("ExcAC3A.tb", &assign_ExcAC3A_tb); + assign_map.emplace("ExcAC3A.tc", &assign_ExcAC3A_tc); + assign_map.emplace("ExcAC3A.te", &assign_ExcAC3A_te); + assign_map.emplace("ExcAC3A.tf", &assign_ExcAC3A_tf); + assign_map.emplace("ExcAC3A.vamax", &assign_ExcAC3A_vamax); + assign_map.emplace("ExcAC3A.vamin", &assign_ExcAC3A_vamin); + assign_map.emplace("ExcAC3A.ve1", &assign_ExcAC3A_ve1); + assign_map.emplace("ExcAC3A.ve2", &assign_ExcAC3A_ve2); + assign_map.emplace("ExcAC3A.vemin", &assign_ExcAC3A_vemin); + assign_map.emplace("ExcAC3A.vfemax", &assign_ExcAC3A_vfemax); + assign_map.emplace("ExcAC3A.vlv", &assign_ExcAC3A_vlv); } void ExcAC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void ExcAC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC3A.efdn", &get_ExcAC3A_efdn); - get_map.emplace("cim:ExcAC3A.ka", &get_ExcAC3A_ka); - get_map.emplace("cim:ExcAC3A.kc", &get_ExcAC3A_kc); - get_map.emplace("cim:ExcAC3A.kd", &get_ExcAC3A_kd); - get_map.emplace("cim:ExcAC3A.ke", &get_ExcAC3A_ke); - get_map.emplace("cim:ExcAC3A.kf", &get_ExcAC3A_kf); - get_map.emplace("cim:ExcAC3A.kf1", &get_ExcAC3A_kf1); - get_map.emplace("cim:ExcAC3A.kf2", &get_ExcAC3A_kf2); - get_map.emplace("cim:ExcAC3A.klv", &get_ExcAC3A_klv); - get_map.emplace("cim:ExcAC3A.kn", &get_ExcAC3A_kn); - get_map.emplace("cim:ExcAC3A.kr", &get_ExcAC3A_kr); - get_map.emplace("cim:ExcAC3A.ks", &get_ExcAC3A_ks); - get_map.emplace("cim:ExcAC3A.seve1", &get_ExcAC3A_seve1); - get_map.emplace("cim:ExcAC3A.seve2", &get_ExcAC3A_seve2); - get_map.emplace("cim:ExcAC3A.ta", &get_ExcAC3A_ta); - get_map.emplace("cim:ExcAC3A.tb", &get_ExcAC3A_tb); - get_map.emplace("cim:ExcAC3A.tc", &get_ExcAC3A_tc); - get_map.emplace("cim:ExcAC3A.te", &get_ExcAC3A_te); - get_map.emplace("cim:ExcAC3A.tf", &get_ExcAC3A_tf); - get_map.emplace("cim:ExcAC3A.vamax", &get_ExcAC3A_vamax); - get_map.emplace("cim:ExcAC3A.vamin", &get_ExcAC3A_vamin); - get_map.emplace("cim:ExcAC3A.ve1", &get_ExcAC3A_ve1); - get_map.emplace("cim:ExcAC3A.ve2", &get_ExcAC3A_ve2); - get_map.emplace("cim:ExcAC3A.vemin", &get_ExcAC3A_vemin); - get_map.emplace("cim:ExcAC3A.vfemax", &get_ExcAC3A_vfemax); - get_map.emplace("cim:ExcAC3A.vlv", &get_ExcAC3A_vlv); + get_map.emplace("ExcAC3A.efdn", &get_ExcAC3A_efdn); + get_map.emplace("ExcAC3A.ka", &get_ExcAC3A_ka); + get_map.emplace("ExcAC3A.kc", &get_ExcAC3A_kc); + get_map.emplace("ExcAC3A.kd", &get_ExcAC3A_kd); + get_map.emplace("ExcAC3A.ke", &get_ExcAC3A_ke); + get_map.emplace("ExcAC3A.kf", &get_ExcAC3A_kf); + get_map.emplace("ExcAC3A.kf1", &get_ExcAC3A_kf1); + get_map.emplace("ExcAC3A.kf2", &get_ExcAC3A_kf2); + get_map.emplace("ExcAC3A.klv", &get_ExcAC3A_klv); + get_map.emplace("ExcAC3A.kn", &get_ExcAC3A_kn); + get_map.emplace("ExcAC3A.kr", &get_ExcAC3A_kr); + get_map.emplace("ExcAC3A.ks", &get_ExcAC3A_ks); + get_map.emplace("ExcAC3A.seve1", &get_ExcAC3A_seve1); + get_map.emplace("ExcAC3A.seve2", &get_ExcAC3A_seve2); + get_map.emplace("ExcAC3A.ta", &get_ExcAC3A_ta); + get_map.emplace("ExcAC3A.tb", &get_ExcAC3A_tb); + get_map.emplace("ExcAC3A.tc", &get_ExcAC3A_tc); + get_map.emplace("ExcAC3A.te", &get_ExcAC3A_te); + get_map.emplace("ExcAC3A.tf", &get_ExcAC3A_tf); + get_map.emplace("ExcAC3A.vamax", &get_ExcAC3A_vamax); + get_map.emplace("ExcAC3A.vamin", &get_ExcAC3A_vamin); + get_map.emplace("ExcAC3A.ve1", &get_ExcAC3A_ve1); + get_map.emplace("ExcAC3A.ve2", &get_ExcAC3A_ve2); + get_map.emplace("ExcAC3A.vemin", &get_ExcAC3A_vemin); + get_map.emplace("ExcAC3A.vfemax", &get_ExcAC3A_vfemax); + get_map.emplace("ExcAC3A.vlv", &get_ExcAC3A_vlv); } void ExcAC3A::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void ExcAC3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC3A::declare() { return BaseClassDefiner(ExcAC3A::addConstructToMap, ExcAC3A::addPrimitiveAssignFnsToMap, ExcAC3A::addClassAssignFnsToMap, ExcAC3A::debugName); } +std::map ExcAC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC3A_factory() diff --git a/CGMES_3.0.0/ExcAC3A.hpp b/CGMES_3.0.0/ExcAC3A.hpp index f78564695..af8768fdd 100644 --- a/CGMES_3.0.0/ExcAC3A.hpp +++ b/CGMES_3.0.0/ExcAC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC3A_factory(); diff --git a/CGMES_3.0.0/ExcAC4A.cpp b/CGMES_3.0.0/ExcAC4A.cpp index ee9a03733..4cabd171a 100644 --- a/CGMES_3.0.0/ExcAC4A.cpp +++ b/CGMES_3.0.0/ExcAC4A.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC4A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC4A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC4A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC4A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC4A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC4A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC4A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC4A::ExcAC4A() {} ExcAC4A::~ExcAC4A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAC4A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAC4A::getClassNamespaceUrl() const { - { "cim:ExcAC4A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC4A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAC4A::getPossibleProfilesForClass() const +const std::string& ExcAC4A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAC4A::getPossibleProfilesForAttributes() const +const std::list& ExcAC4A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC4A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC4A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC4A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC4A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ExcAC4A::debugString() const void ExcAC4A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC4A", &ExcAC4A_factory); + factory_map.emplace("ExcAC4A", &ExcAC4A_factory); } void ExcAC4A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC4A.ka", &assign_ExcAC4A_ka); - assign_map.emplace("cim:ExcAC4A.kc", &assign_ExcAC4A_kc); - assign_map.emplace("cim:ExcAC4A.ta", &assign_ExcAC4A_ta); - assign_map.emplace("cim:ExcAC4A.tb", &assign_ExcAC4A_tb); - assign_map.emplace("cim:ExcAC4A.tc", &assign_ExcAC4A_tc); - assign_map.emplace("cim:ExcAC4A.vimax", &assign_ExcAC4A_vimax); - assign_map.emplace("cim:ExcAC4A.vimin", &assign_ExcAC4A_vimin); - assign_map.emplace("cim:ExcAC4A.vrmax", &assign_ExcAC4A_vrmax); - assign_map.emplace("cim:ExcAC4A.vrmin", &assign_ExcAC4A_vrmin); + assign_map.emplace("ExcAC4A.ka", &assign_ExcAC4A_ka); + assign_map.emplace("ExcAC4A.kc", &assign_ExcAC4A_kc); + assign_map.emplace("ExcAC4A.ta", &assign_ExcAC4A_ta); + assign_map.emplace("ExcAC4A.tb", &assign_ExcAC4A_tb); + assign_map.emplace("ExcAC4A.tc", &assign_ExcAC4A_tc); + assign_map.emplace("ExcAC4A.vimax", &assign_ExcAC4A_vimax); + assign_map.emplace("ExcAC4A.vimin", &assign_ExcAC4A_vimin); + assign_map.emplace("ExcAC4A.vrmax", &assign_ExcAC4A_vrmax); + assign_map.emplace("ExcAC4A.vrmin", &assign_ExcAC4A_vrmin); } void ExcAC4A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ExcAC4A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC4A.ka", &get_ExcAC4A_ka); - get_map.emplace("cim:ExcAC4A.kc", &get_ExcAC4A_kc); - get_map.emplace("cim:ExcAC4A.ta", &get_ExcAC4A_ta); - get_map.emplace("cim:ExcAC4A.tb", &get_ExcAC4A_tb); - get_map.emplace("cim:ExcAC4A.tc", &get_ExcAC4A_tc); - get_map.emplace("cim:ExcAC4A.vimax", &get_ExcAC4A_vimax); - get_map.emplace("cim:ExcAC4A.vimin", &get_ExcAC4A_vimin); - get_map.emplace("cim:ExcAC4A.vrmax", &get_ExcAC4A_vrmax); - get_map.emplace("cim:ExcAC4A.vrmin", &get_ExcAC4A_vrmin); + get_map.emplace("ExcAC4A.ka", &get_ExcAC4A_ka); + get_map.emplace("ExcAC4A.kc", &get_ExcAC4A_kc); + get_map.emplace("ExcAC4A.ta", &get_ExcAC4A_ta); + get_map.emplace("ExcAC4A.tb", &get_ExcAC4A_tb); + get_map.emplace("ExcAC4A.tc", &get_ExcAC4A_tc); + get_map.emplace("ExcAC4A.vimax", &get_ExcAC4A_vimax); + get_map.emplace("ExcAC4A.vimin", &get_ExcAC4A_vimin); + get_map.emplace("ExcAC4A.vrmax", &get_ExcAC4A_vrmax); + get_map.emplace("ExcAC4A.vrmin", &get_ExcAC4A_vrmin); } void ExcAC4A::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ExcAC4A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC4A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC4A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC4A::declare() { return BaseClassDefiner(ExcAC4A::addConstructToMap, ExcAC4A::addPrimitiveAssignFnsToMap, ExcAC4A::addClassAssignFnsToMap, ExcAC4A::debugName); } +std::map ExcAC4A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC4A_factory() diff --git a/CGMES_3.0.0/ExcAC4A.hpp b/CGMES_3.0.0/ExcAC4A.hpp index 0b650ee0a..ab3f2fd97 100644 --- a/CGMES_3.0.0/ExcAC4A.hpp +++ b/CGMES_3.0.0/ExcAC4A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC4A_factory(); diff --git a/CGMES_3.0.0/ExcAC5A.cpp b/CGMES_3.0.0/ExcAC5A.cpp index c0836badb..2f6b98a8e 100644 --- a/CGMES_3.0.0/ExcAC5A.cpp +++ b/CGMES_3.0.0/ExcAC5A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC5A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC5A.a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.tf3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC5A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC5A::ExcAC5A() {} ExcAC5A::~ExcAC5A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAC5A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAC5A::getClassNamespaceUrl() const { - { "cim:ExcAC5A.a", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.kf", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf2", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.tf3", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC5A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAC5A::getPossibleProfilesForClass() const +const std::string& ExcAC5A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAC5A::getPossibleProfilesForAttributes() const +const std::list& ExcAC5A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC5A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC5A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC5A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC5A_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcAC5A::debugString() const void ExcAC5A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC5A", &ExcAC5A_factory); + factory_map.emplace("ExcAC5A", &ExcAC5A_factory); } void ExcAC5A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC5A.a", &assign_ExcAC5A_a); - assign_map.emplace("cim:ExcAC5A.efd1", &assign_ExcAC5A_efd1); - assign_map.emplace("cim:ExcAC5A.efd2", &assign_ExcAC5A_efd2); - assign_map.emplace("cim:ExcAC5A.ka", &assign_ExcAC5A_ka); - assign_map.emplace("cim:ExcAC5A.ke", &assign_ExcAC5A_ke); - assign_map.emplace("cim:ExcAC5A.kf", &assign_ExcAC5A_kf); - assign_map.emplace("cim:ExcAC5A.ks", &assign_ExcAC5A_ks); - assign_map.emplace("cim:ExcAC5A.seefd1", &assign_ExcAC5A_seefd1); - assign_map.emplace("cim:ExcAC5A.seefd2", &assign_ExcAC5A_seefd2); - assign_map.emplace("cim:ExcAC5A.ta", &assign_ExcAC5A_ta); - assign_map.emplace("cim:ExcAC5A.tb", &assign_ExcAC5A_tb); - assign_map.emplace("cim:ExcAC5A.tc", &assign_ExcAC5A_tc); - assign_map.emplace("cim:ExcAC5A.te", &assign_ExcAC5A_te); - assign_map.emplace("cim:ExcAC5A.tf1", &assign_ExcAC5A_tf1); - assign_map.emplace("cim:ExcAC5A.tf2", &assign_ExcAC5A_tf2); - assign_map.emplace("cim:ExcAC5A.tf3", &assign_ExcAC5A_tf3); - assign_map.emplace("cim:ExcAC5A.vrmax", &assign_ExcAC5A_vrmax); - assign_map.emplace("cim:ExcAC5A.vrmin", &assign_ExcAC5A_vrmin); + assign_map.emplace("ExcAC5A.a", &assign_ExcAC5A_a); + assign_map.emplace("ExcAC5A.efd1", &assign_ExcAC5A_efd1); + assign_map.emplace("ExcAC5A.efd2", &assign_ExcAC5A_efd2); + assign_map.emplace("ExcAC5A.ka", &assign_ExcAC5A_ka); + assign_map.emplace("ExcAC5A.ke", &assign_ExcAC5A_ke); + assign_map.emplace("ExcAC5A.kf", &assign_ExcAC5A_kf); + assign_map.emplace("ExcAC5A.ks", &assign_ExcAC5A_ks); + assign_map.emplace("ExcAC5A.seefd1", &assign_ExcAC5A_seefd1); + assign_map.emplace("ExcAC5A.seefd2", &assign_ExcAC5A_seefd2); + assign_map.emplace("ExcAC5A.ta", &assign_ExcAC5A_ta); + assign_map.emplace("ExcAC5A.tb", &assign_ExcAC5A_tb); + assign_map.emplace("ExcAC5A.tc", &assign_ExcAC5A_tc); + assign_map.emplace("ExcAC5A.te", &assign_ExcAC5A_te); + assign_map.emplace("ExcAC5A.tf1", &assign_ExcAC5A_tf1); + assign_map.emplace("ExcAC5A.tf2", &assign_ExcAC5A_tf2); + assign_map.emplace("ExcAC5A.tf3", &assign_ExcAC5A_tf3); + assign_map.emplace("ExcAC5A.vrmax", &assign_ExcAC5A_vrmax); + assign_map.emplace("ExcAC5A.vrmin", &assign_ExcAC5A_vrmin); } void ExcAC5A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcAC5A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC5A.a", &get_ExcAC5A_a); - get_map.emplace("cim:ExcAC5A.efd1", &get_ExcAC5A_efd1); - get_map.emplace("cim:ExcAC5A.efd2", &get_ExcAC5A_efd2); - get_map.emplace("cim:ExcAC5A.ka", &get_ExcAC5A_ka); - get_map.emplace("cim:ExcAC5A.ke", &get_ExcAC5A_ke); - get_map.emplace("cim:ExcAC5A.kf", &get_ExcAC5A_kf); - get_map.emplace("cim:ExcAC5A.ks", &get_ExcAC5A_ks); - get_map.emplace("cim:ExcAC5A.seefd1", &get_ExcAC5A_seefd1); - get_map.emplace("cim:ExcAC5A.seefd2", &get_ExcAC5A_seefd2); - get_map.emplace("cim:ExcAC5A.ta", &get_ExcAC5A_ta); - get_map.emplace("cim:ExcAC5A.tb", &get_ExcAC5A_tb); - get_map.emplace("cim:ExcAC5A.tc", &get_ExcAC5A_tc); - get_map.emplace("cim:ExcAC5A.te", &get_ExcAC5A_te); - get_map.emplace("cim:ExcAC5A.tf1", &get_ExcAC5A_tf1); - get_map.emplace("cim:ExcAC5A.tf2", &get_ExcAC5A_tf2); - get_map.emplace("cim:ExcAC5A.tf3", &get_ExcAC5A_tf3); - get_map.emplace("cim:ExcAC5A.vrmax", &get_ExcAC5A_vrmax); - get_map.emplace("cim:ExcAC5A.vrmin", &get_ExcAC5A_vrmin); + get_map.emplace("ExcAC5A.a", &get_ExcAC5A_a); + get_map.emplace("ExcAC5A.efd1", &get_ExcAC5A_efd1); + get_map.emplace("ExcAC5A.efd2", &get_ExcAC5A_efd2); + get_map.emplace("ExcAC5A.ka", &get_ExcAC5A_ka); + get_map.emplace("ExcAC5A.ke", &get_ExcAC5A_ke); + get_map.emplace("ExcAC5A.kf", &get_ExcAC5A_kf); + get_map.emplace("ExcAC5A.ks", &get_ExcAC5A_ks); + get_map.emplace("ExcAC5A.seefd1", &get_ExcAC5A_seefd1); + get_map.emplace("ExcAC5A.seefd2", &get_ExcAC5A_seefd2); + get_map.emplace("ExcAC5A.ta", &get_ExcAC5A_ta); + get_map.emplace("ExcAC5A.tb", &get_ExcAC5A_tb); + get_map.emplace("ExcAC5A.tc", &get_ExcAC5A_tc); + get_map.emplace("ExcAC5A.te", &get_ExcAC5A_te); + get_map.emplace("ExcAC5A.tf1", &get_ExcAC5A_tf1); + get_map.emplace("ExcAC5A.tf2", &get_ExcAC5A_tf2); + get_map.emplace("ExcAC5A.tf3", &get_ExcAC5A_tf3); + get_map.emplace("ExcAC5A.vrmax", &get_ExcAC5A_vrmax); + get_map.emplace("ExcAC5A.vrmin", &get_ExcAC5A_vrmin); } void ExcAC5A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcAC5A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC5A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC5A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC5A::declare() { return BaseClassDefiner(ExcAC5A::addConstructToMap, ExcAC5A::addPrimitiveAssignFnsToMap, ExcAC5A::addClassAssignFnsToMap, ExcAC5A::debugName); } +std::map ExcAC5A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC5A_factory() diff --git a/CGMES_3.0.0/ExcAC5A.hpp b/CGMES_3.0.0/ExcAC5A.hpp index a29ed2d90..d7052d60d 100644 --- a/CGMES_3.0.0/ExcAC5A.hpp +++ b/CGMES_3.0.0/ExcAC5A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC5A_factory(); diff --git a/CGMES_3.0.0/ExcAC6A.cpp b/CGMES_3.0.0/ExcAC6A.cpp index bcdd5fdcd..ee226f5bd 100644 --- a/CGMES_3.0.0/ExcAC6A.cpp +++ b/CGMES_3.0.0/ExcAC6A.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC6A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC6A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.kh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.th", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tj", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.tk", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vfelim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vhmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC6A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC6A::ExcAC6A() {} ExcAC6A::~ExcAC6A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC6A.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.kh", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tb", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tc", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.te", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.th", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tj", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.tk", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vfelim", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vhmax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC6A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC6A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC6A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC6A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC6A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC6A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC6A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC6A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC6A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC6A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC6A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcAC6A::debugString() const void ExcAC6A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC6A", &ExcAC6A_factory); + factory_map.emplace("ExcAC6A", &ExcAC6A_factory); } void ExcAC6A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC6A.ka", &assign_ExcAC6A_ka); - assign_map.emplace("cim:ExcAC6A.kc", &assign_ExcAC6A_kc); - assign_map.emplace("cim:ExcAC6A.kd", &assign_ExcAC6A_kd); - assign_map.emplace("cim:ExcAC6A.ke", &assign_ExcAC6A_ke); - assign_map.emplace("cim:ExcAC6A.kh", &assign_ExcAC6A_kh); - assign_map.emplace("cim:ExcAC6A.ks", &assign_ExcAC6A_ks); - assign_map.emplace("cim:ExcAC6A.seve1", &assign_ExcAC6A_seve1); - assign_map.emplace("cim:ExcAC6A.seve2", &assign_ExcAC6A_seve2); - assign_map.emplace("cim:ExcAC6A.ta", &assign_ExcAC6A_ta); - assign_map.emplace("cim:ExcAC6A.tb", &assign_ExcAC6A_tb); - assign_map.emplace("cim:ExcAC6A.tc", &assign_ExcAC6A_tc); - assign_map.emplace("cim:ExcAC6A.te", &assign_ExcAC6A_te); - assign_map.emplace("cim:ExcAC6A.th", &assign_ExcAC6A_th); - assign_map.emplace("cim:ExcAC6A.tj", &assign_ExcAC6A_tj); - assign_map.emplace("cim:ExcAC6A.tk", &assign_ExcAC6A_tk); - assign_map.emplace("cim:ExcAC6A.vamax", &assign_ExcAC6A_vamax); - assign_map.emplace("cim:ExcAC6A.vamin", &assign_ExcAC6A_vamin); - assign_map.emplace("cim:ExcAC6A.ve1", &assign_ExcAC6A_ve1); - assign_map.emplace("cim:ExcAC6A.ve2", &assign_ExcAC6A_ve2); - assign_map.emplace("cim:ExcAC6A.vfelim", &assign_ExcAC6A_vfelim); - assign_map.emplace("cim:ExcAC6A.vhmax", &assign_ExcAC6A_vhmax); - assign_map.emplace("cim:ExcAC6A.vrmax", &assign_ExcAC6A_vrmax); - assign_map.emplace("cim:ExcAC6A.vrmin", &assign_ExcAC6A_vrmin); + assign_map.emplace("ExcAC6A.ka", &assign_ExcAC6A_ka); + assign_map.emplace("ExcAC6A.kc", &assign_ExcAC6A_kc); + assign_map.emplace("ExcAC6A.kd", &assign_ExcAC6A_kd); + assign_map.emplace("ExcAC6A.ke", &assign_ExcAC6A_ke); + assign_map.emplace("ExcAC6A.kh", &assign_ExcAC6A_kh); + assign_map.emplace("ExcAC6A.ks", &assign_ExcAC6A_ks); + assign_map.emplace("ExcAC6A.seve1", &assign_ExcAC6A_seve1); + assign_map.emplace("ExcAC6A.seve2", &assign_ExcAC6A_seve2); + assign_map.emplace("ExcAC6A.ta", &assign_ExcAC6A_ta); + assign_map.emplace("ExcAC6A.tb", &assign_ExcAC6A_tb); + assign_map.emplace("ExcAC6A.tc", &assign_ExcAC6A_tc); + assign_map.emplace("ExcAC6A.te", &assign_ExcAC6A_te); + assign_map.emplace("ExcAC6A.th", &assign_ExcAC6A_th); + assign_map.emplace("ExcAC6A.tj", &assign_ExcAC6A_tj); + assign_map.emplace("ExcAC6A.tk", &assign_ExcAC6A_tk); + assign_map.emplace("ExcAC6A.vamax", &assign_ExcAC6A_vamax); + assign_map.emplace("ExcAC6A.vamin", &assign_ExcAC6A_vamin); + assign_map.emplace("ExcAC6A.ve1", &assign_ExcAC6A_ve1); + assign_map.emplace("ExcAC6A.ve2", &assign_ExcAC6A_ve2); + assign_map.emplace("ExcAC6A.vfelim", &assign_ExcAC6A_vfelim); + assign_map.emplace("ExcAC6A.vhmax", &assign_ExcAC6A_vhmax); + assign_map.emplace("ExcAC6A.vrmax", &assign_ExcAC6A_vrmax); + assign_map.emplace("ExcAC6A.vrmin", &assign_ExcAC6A_vrmin); } void ExcAC6A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcAC6A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC6A.ka", &get_ExcAC6A_ka); - get_map.emplace("cim:ExcAC6A.kc", &get_ExcAC6A_kc); - get_map.emplace("cim:ExcAC6A.kd", &get_ExcAC6A_kd); - get_map.emplace("cim:ExcAC6A.ke", &get_ExcAC6A_ke); - get_map.emplace("cim:ExcAC6A.kh", &get_ExcAC6A_kh); - get_map.emplace("cim:ExcAC6A.ks", &get_ExcAC6A_ks); - get_map.emplace("cim:ExcAC6A.seve1", &get_ExcAC6A_seve1); - get_map.emplace("cim:ExcAC6A.seve2", &get_ExcAC6A_seve2); - get_map.emplace("cim:ExcAC6A.ta", &get_ExcAC6A_ta); - get_map.emplace("cim:ExcAC6A.tb", &get_ExcAC6A_tb); - get_map.emplace("cim:ExcAC6A.tc", &get_ExcAC6A_tc); - get_map.emplace("cim:ExcAC6A.te", &get_ExcAC6A_te); - get_map.emplace("cim:ExcAC6A.th", &get_ExcAC6A_th); - get_map.emplace("cim:ExcAC6A.tj", &get_ExcAC6A_tj); - get_map.emplace("cim:ExcAC6A.tk", &get_ExcAC6A_tk); - get_map.emplace("cim:ExcAC6A.vamax", &get_ExcAC6A_vamax); - get_map.emplace("cim:ExcAC6A.vamin", &get_ExcAC6A_vamin); - get_map.emplace("cim:ExcAC6A.ve1", &get_ExcAC6A_ve1); - get_map.emplace("cim:ExcAC6A.ve2", &get_ExcAC6A_ve2); - get_map.emplace("cim:ExcAC6A.vfelim", &get_ExcAC6A_vfelim); - get_map.emplace("cim:ExcAC6A.vhmax", &get_ExcAC6A_vhmax); - get_map.emplace("cim:ExcAC6A.vrmax", &get_ExcAC6A_vrmax); - get_map.emplace("cim:ExcAC6A.vrmin", &get_ExcAC6A_vrmin); + get_map.emplace("ExcAC6A.ka", &get_ExcAC6A_ka); + get_map.emplace("ExcAC6A.kc", &get_ExcAC6A_kc); + get_map.emplace("ExcAC6A.kd", &get_ExcAC6A_kd); + get_map.emplace("ExcAC6A.ke", &get_ExcAC6A_ke); + get_map.emplace("ExcAC6A.kh", &get_ExcAC6A_kh); + get_map.emplace("ExcAC6A.ks", &get_ExcAC6A_ks); + get_map.emplace("ExcAC6A.seve1", &get_ExcAC6A_seve1); + get_map.emplace("ExcAC6A.seve2", &get_ExcAC6A_seve2); + get_map.emplace("ExcAC6A.ta", &get_ExcAC6A_ta); + get_map.emplace("ExcAC6A.tb", &get_ExcAC6A_tb); + get_map.emplace("ExcAC6A.tc", &get_ExcAC6A_tc); + get_map.emplace("ExcAC6A.te", &get_ExcAC6A_te); + get_map.emplace("ExcAC6A.th", &get_ExcAC6A_th); + get_map.emplace("ExcAC6A.tj", &get_ExcAC6A_tj); + get_map.emplace("ExcAC6A.tk", &get_ExcAC6A_tk); + get_map.emplace("ExcAC6A.vamax", &get_ExcAC6A_vamax); + get_map.emplace("ExcAC6A.vamin", &get_ExcAC6A_vamin); + get_map.emplace("ExcAC6A.ve1", &get_ExcAC6A_ve1); + get_map.emplace("ExcAC6A.ve2", &get_ExcAC6A_ve2); + get_map.emplace("ExcAC6A.vfelim", &get_ExcAC6A_vfelim); + get_map.emplace("ExcAC6A.vhmax", &get_ExcAC6A_vhmax); + get_map.emplace("ExcAC6A.vrmax", &get_ExcAC6A_vrmax); + get_map.emplace("ExcAC6A.vrmin", &get_ExcAC6A_vrmin); } void ExcAC6A::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcAC6A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC6A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC6A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC6A::declare() { return BaseClassDefiner(ExcAC6A::addConstructToMap, ExcAC6A::addPrimitiveAssignFnsToMap, ExcAC6A::addClassAssignFnsToMap, ExcAC6A::debugName); } +std::map ExcAC6A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC6A_factory() diff --git a/CGMES_3.0.0/ExcAC6A.hpp b/CGMES_3.0.0/ExcAC6A.hpp index df0f3a93b..2d698f803 100644 --- a/CGMES_3.0.0/ExcAC6A.hpp +++ b/CGMES_3.0.0/ExcAC6A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -99,8 +100,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -108,7 +116,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC6A_factory(); diff --git a/CGMES_3.0.0/ExcAC8B.cpp b/CGMES_3.0.0/ExcAC8B.cpp index d43497172..deaeb43fa 100644 --- a/CGMES_3.0.0/ExcAC8B.cpp +++ b/CGMES_3.0.0/ExcAC8B.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAC8B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAC8B.inlim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kdr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kir", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.kpr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.pidlim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.tdr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.telim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vemin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vfemax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vpidmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vpidmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAC8B.vtmult", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAC8B::ExcAC8B() {} ExcAC8B::~ExcAC8B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAC8B.inlim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ka", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kc", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kd", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ke", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kir", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ks", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.pidlim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ta", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.te", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.telim", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vimax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vimin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vpidmax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vpidmin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcAC8B.vtmult", { CGMESProfile::DY, } }, -}; - -std::list -ExcAC8B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAC8B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAC8B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAC8B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAC8B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAC8B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAC8B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAC8B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAC8B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAC8B_inlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* ExcAC8B::debugString() const void ExcAC8B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAC8B", &ExcAC8B_factory); + factory_map.emplace("ExcAC8B", &ExcAC8B_factory); } void ExcAC8B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAC8B.inlim", &assign_ExcAC8B_inlim); - assign_map.emplace("cim:ExcAC8B.ka", &assign_ExcAC8B_ka); - assign_map.emplace("cim:ExcAC8B.kc", &assign_ExcAC8B_kc); - assign_map.emplace("cim:ExcAC8B.kd", &assign_ExcAC8B_kd); - assign_map.emplace("cim:ExcAC8B.kdr", &assign_ExcAC8B_kdr); - assign_map.emplace("cim:ExcAC8B.ke", &assign_ExcAC8B_ke); - assign_map.emplace("cim:ExcAC8B.kir", &assign_ExcAC8B_kir); - assign_map.emplace("cim:ExcAC8B.kpr", &assign_ExcAC8B_kpr); - assign_map.emplace("cim:ExcAC8B.ks", &assign_ExcAC8B_ks); - assign_map.emplace("cim:ExcAC8B.pidlim", &assign_ExcAC8B_pidlim); - assign_map.emplace("cim:ExcAC8B.seve1", &assign_ExcAC8B_seve1); - assign_map.emplace("cim:ExcAC8B.seve2", &assign_ExcAC8B_seve2); - assign_map.emplace("cim:ExcAC8B.ta", &assign_ExcAC8B_ta); - assign_map.emplace("cim:ExcAC8B.tdr", &assign_ExcAC8B_tdr); - assign_map.emplace("cim:ExcAC8B.te", &assign_ExcAC8B_te); - assign_map.emplace("cim:ExcAC8B.telim", &assign_ExcAC8B_telim); - assign_map.emplace("cim:ExcAC8B.ve1", &assign_ExcAC8B_ve1); - assign_map.emplace("cim:ExcAC8B.ve2", &assign_ExcAC8B_ve2); - assign_map.emplace("cim:ExcAC8B.vemin", &assign_ExcAC8B_vemin); - assign_map.emplace("cim:ExcAC8B.vfemax", &assign_ExcAC8B_vfemax); - assign_map.emplace("cim:ExcAC8B.vimax", &assign_ExcAC8B_vimax); - assign_map.emplace("cim:ExcAC8B.vimin", &assign_ExcAC8B_vimin); - assign_map.emplace("cim:ExcAC8B.vpidmax", &assign_ExcAC8B_vpidmax); - assign_map.emplace("cim:ExcAC8B.vpidmin", &assign_ExcAC8B_vpidmin); - assign_map.emplace("cim:ExcAC8B.vrmax", &assign_ExcAC8B_vrmax); - assign_map.emplace("cim:ExcAC8B.vrmin", &assign_ExcAC8B_vrmin); - assign_map.emplace("cim:ExcAC8B.vtmult", &assign_ExcAC8B_vtmult); + assign_map.emplace("ExcAC8B.inlim", &assign_ExcAC8B_inlim); + assign_map.emplace("ExcAC8B.ka", &assign_ExcAC8B_ka); + assign_map.emplace("ExcAC8B.kc", &assign_ExcAC8B_kc); + assign_map.emplace("ExcAC8B.kd", &assign_ExcAC8B_kd); + assign_map.emplace("ExcAC8B.kdr", &assign_ExcAC8B_kdr); + assign_map.emplace("ExcAC8B.ke", &assign_ExcAC8B_ke); + assign_map.emplace("ExcAC8B.kir", &assign_ExcAC8B_kir); + assign_map.emplace("ExcAC8B.kpr", &assign_ExcAC8B_kpr); + assign_map.emplace("ExcAC8B.ks", &assign_ExcAC8B_ks); + assign_map.emplace("ExcAC8B.pidlim", &assign_ExcAC8B_pidlim); + assign_map.emplace("ExcAC8B.seve1", &assign_ExcAC8B_seve1); + assign_map.emplace("ExcAC8B.seve2", &assign_ExcAC8B_seve2); + assign_map.emplace("ExcAC8B.ta", &assign_ExcAC8B_ta); + assign_map.emplace("ExcAC8B.tdr", &assign_ExcAC8B_tdr); + assign_map.emplace("ExcAC8B.te", &assign_ExcAC8B_te); + assign_map.emplace("ExcAC8B.telim", &assign_ExcAC8B_telim); + assign_map.emplace("ExcAC8B.ve1", &assign_ExcAC8B_ve1); + assign_map.emplace("ExcAC8B.ve2", &assign_ExcAC8B_ve2); + assign_map.emplace("ExcAC8B.vemin", &assign_ExcAC8B_vemin); + assign_map.emplace("ExcAC8B.vfemax", &assign_ExcAC8B_vfemax); + assign_map.emplace("ExcAC8B.vimax", &assign_ExcAC8B_vimax); + assign_map.emplace("ExcAC8B.vimin", &assign_ExcAC8B_vimin); + assign_map.emplace("ExcAC8B.vpidmax", &assign_ExcAC8B_vpidmax); + assign_map.emplace("ExcAC8B.vpidmin", &assign_ExcAC8B_vpidmin); + assign_map.emplace("ExcAC8B.vrmax", &assign_ExcAC8B_vrmax); + assign_map.emplace("ExcAC8B.vrmin", &assign_ExcAC8B_vrmin); + assign_map.emplace("ExcAC8B.vtmult", &assign_ExcAC8B_vtmult); } void ExcAC8B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,33 +929,33 @@ void ExcAC8B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAC8B.inlim", &get_ExcAC8B_inlim); - get_map.emplace("cim:ExcAC8B.ka", &get_ExcAC8B_ka); - get_map.emplace("cim:ExcAC8B.kc", &get_ExcAC8B_kc); - get_map.emplace("cim:ExcAC8B.kd", &get_ExcAC8B_kd); - get_map.emplace("cim:ExcAC8B.kdr", &get_ExcAC8B_kdr); - get_map.emplace("cim:ExcAC8B.ke", &get_ExcAC8B_ke); - get_map.emplace("cim:ExcAC8B.kir", &get_ExcAC8B_kir); - get_map.emplace("cim:ExcAC8B.kpr", &get_ExcAC8B_kpr); - get_map.emplace("cim:ExcAC8B.ks", &get_ExcAC8B_ks); - get_map.emplace("cim:ExcAC8B.pidlim", &get_ExcAC8B_pidlim); - get_map.emplace("cim:ExcAC8B.seve1", &get_ExcAC8B_seve1); - get_map.emplace("cim:ExcAC8B.seve2", &get_ExcAC8B_seve2); - get_map.emplace("cim:ExcAC8B.ta", &get_ExcAC8B_ta); - get_map.emplace("cim:ExcAC8B.tdr", &get_ExcAC8B_tdr); - get_map.emplace("cim:ExcAC8B.te", &get_ExcAC8B_te); - get_map.emplace("cim:ExcAC8B.telim", &get_ExcAC8B_telim); - get_map.emplace("cim:ExcAC8B.ve1", &get_ExcAC8B_ve1); - get_map.emplace("cim:ExcAC8B.ve2", &get_ExcAC8B_ve2); - get_map.emplace("cim:ExcAC8B.vemin", &get_ExcAC8B_vemin); - get_map.emplace("cim:ExcAC8B.vfemax", &get_ExcAC8B_vfemax); - get_map.emplace("cim:ExcAC8B.vimax", &get_ExcAC8B_vimax); - get_map.emplace("cim:ExcAC8B.vimin", &get_ExcAC8B_vimin); - get_map.emplace("cim:ExcAC8B.vpidmax", &get_ExcAC8B_vpidmax); - get_map.emplace("cim:ExcAC8B.vpidmin", &get_ExcAC8B_vpidmin); - get_map.emplace("cim:ExcAC8B.vrmax", &get_ExcAC8B_vrmax); - get_map.emplace("cim:ExcAC8B.vrmin", &get_ExcAC8B_vrmin); - get_map.emplace("cim:ExcAC8B.vtmult", &get_ExcAC8B_vtmult); + get_map.emplace("ExcAC8B.inlim", &get_ExcAC8B_inlim); + get_map.emplace("ExcAC8B.ka", &get_ExcAC8B_ka); + get_map.emplace("ExcAC8B.kc", &get_ExcAC8B_kc); + get_map.emplace("ExcAC8B.kd", &get_ExcAC8B_kd); + get_map.emplace("ExcAC8B.kdr", &get_ExcAC8B_kdr); + get_map.emplace("ExcAC8B.ke", &get_ExcAC8B_ke); + get_map.emplace("ExcAC8B.kir", &get_ExcAC8B_kir); + get_map.emplace("ExcAC8B.kpr", &get_ExcAC8B_kpr); + get_map.emplace("ExcAC8B.ks", &get_ExcAC8B_ks); + get_map.emplace("ExcAC8B.pidlim", &get_ExcAC8B_pidlim); + get_map.emplace("ExcAC8B.seve1", &get_ExcAC8B_seve1); + get_map.emplace("ExcAC8B.seve2", &get_ExcAC8B_seve2); + get_map.emplace("ExcAC8B.ta", &get_ExcAC8B_ta); + get_map.emplace("ExcAC8B.tdr", &get_ExcAC8B_tdr); + get_map.emplace("ExcAC8B.te", &get_ExcAC8B_te); + get_map.emplace("ExcAC8B.telim", &get_ExcAC8B_telim); + get_map.emplace("ExcAC8B.ve1", &get_ExcAC8B_ve1); + get_map.emplace("ExcAC8B.ve2", &get_ExcAC8B_ve2); + get_map.emplace("ExcAC8B.vemin", &get_ExcAC8B_vemin); + get_map.emplace("ExcAC8B.vfemax", &get_ExcAC8B_vfemax); + get_map.emplace("ExcAC8B.vimax", &get_ExcAC8B_vimax); + get_map.emplace("ExcAC8B.vimin", &get_ExcAC8B_vimin); + get_map.emplace("ExcAC8B.vpidmax", &get_ExcAC8B_vpidmax); + get_map.emplace("ExcAC8B.vpidmin", &get_ExcAC8B_vpidmin); + get_map.emplace("ExcAC8B.vrmax", &get_ExcAC8B_vrmax); + get_map.emplace("ExcAC8B.vrmin", &get_ExcAC8B_vrmin); + get_map.emplace("ExcAC8B.vtmult", &get_ExcAC8B_vtmult); } void ExcAC8B::addClassGetFnsToMap(std::map& get_map) const @@ -936,11 +968,25 @@ void ExcAC8B::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAC8B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAC8B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAC8B::declare() { return BaseClassDefiner(ExcAC8B::addConstructToMap, ExcAC8B::addPrimitiveAssignFnsToMap, ExcAC8B::addClassAssignFnsToMap, ExcAC8B::debugName); } +std::map ExcAC8B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAC8B_factory() diff --git a/CGMES_3.0.0/ExcAC8B.hpp b/CGMES_3.0.0/ExcAC8B.hpp index 18b2f618a..7e138bb8d 100644 --- a/CGMES_3.0.0/ExcAC8B.hpp +++ b/CGMES_3.0.0/ExcAC8B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -112,8 +113,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -121,7 +129,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAC8B_factory(); diff --git a/CGMES_3.0.0/ExcANS.cpp b/CGMES_3.0.0/ExcANS.cpp index afc2cb7d6..2661c54ac 100644 --- a/CGMES_3.0.0/ExcANS.cpp +++ b/CGMES_3.0.0/ExcANS.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcANS(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcANS.blint", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.ifmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.ifmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.kce", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.krvecc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.kvfif", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.vrmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcANS.vrmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcANS::ExcANS() {} ExcANS::~ExcANS() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcANS::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcANS::getClassNamespaceUrl() const { - { "cim:ExcANS.blint", { CGMESProfile::DY, } }, - { "cim:ExcANS.ifmn", { CGMESProfile::DY, } }, - { "cim:ExcANS.ifmx", { CGMESProfile::DY, } }, - { "cim:ExcANS.k2", { CGMESProfile::DY, } }, - { "cim:ExcANS.k3", { CGMESProfile::DY, } }, - { "cim:ExcANS.kce", { CGMESProfile::DY, } }, - { "cim:ExcANS.krvecc", { CGMESProfile::DY, } }, - { "cim:ExcANS.kvfif", { CGMESProfile::DY, } }, - { "cim:ExcANS.t1", { CGMESProfile::DY, } }, - { "cim:ExcANS.t2", { CGMESProfile::DY, } }, - { "cim:ExcANS.t3", { CGMESProfile::DY, } }, - { "cim:ExcANS.tb", { CGMESProfile::DY, } }, - { "cim:ExcANS.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcANS.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcANS::getPossibleProfilesForClass() const +const std::string& ExcANS::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcANS::getPossibleProfilesForAttributes() const +const std::list& ExcANS::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcANS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcANS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcANS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcANS_blint(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcANS::debugString() const void ExcANS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcANS", &ExcANS_factory); + factory_map.emplace("ExcANS", &ExcANS_factory); } void ExcANS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcANS.blint", &assign_ExcANS_blint); - assign_map.emplace("cim:ExcANS.ifmn", &assign_ExcANS_ifmn); - assign_map.emplace("cim:ExcANS.ifmx", &assign_ExcANS_ifmx); - assign_map.emplace("cim:ExcANS.k2", &assign_ExcANS_k2); - assign_map.emplace("cim:ExcANS.k3", &assign_ExcANS_k3); - assign_map.emplace("cim:ExcANS.kce", &assign_ExcANS_kce); - assign_map.emplace("cim:ExcANS.krvecc", &assign_ExcANS_krvecc); - assign_map.emplace("cim:ExcANS.kvfif", &assign_ExcANS_kvfif); - assign_map.emplace("cim:ExcANS.t1", &assign_ExcANS_t1); - assign_map.emplace("cim:ExcANS.t2", &assign_ExcANS_t2); - assign_map.emplace("cim:ExcANS.t3", &assign_ExcANS_t3); - assign_map.emplace("cim:ExcANS.tb", &assign_ExcANS_tb); - assign_map.emplace("cim:ExcANS.vrmn", &assign_ExcANS_vrmn); - assign_map.emplace("cim:ExcANS.vrmx", &assign_ExcANS_vrmx); + assign_map.emplace("ExcANS.blint", &assign_ExcANS_blint); + assign_map.emplace("ExcANS.ifmn", &assign_ExcANS_ifmn); + assign_map.emplace("ExcANS.ifmx", &assign_ExcANS_ifmx); + assign_map.emplace("ExcANS.k2", &assign_ExcANS_k2); + assign_map.emplace("ExcANS.k3", &assign_ExcANS_k3); + assign_map.emplace("ExcANS.kce", &assign_ExcANS_kce); + assign_map.emplace("ExcANS.krvecc", &assign_ExcANS_krvecc); + assign_map.emplace("ExcANS.kvfif", &assign_ExcANS_kvfif); + assign_map.emplace("ExcANS.t1", &assign_ExcANS_t1); + assign_map.emplace("ExcANS.t2", &assign_ExcANS_t2); + assign_map.emplace("ExcANS.t3", &assign_ExcANS_t3); + assign_map.emplace("ExcANS.tb", &assign_ExcANS_tb); + assign_map.emplace("ExcANS.vrmn", &assign_ExcANS_vrmn); + assign_map.emplace("ExcANS.vrmx", &assign_ExcANS_vrmx); } void ExcANS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcANS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcANS.blint", &get_ExcANS_blint); - get_map.emplace("cim:ExcANS.ifmn", &get_ExcANS_ifmn); - get_map.emplace("cim:ExcANS.ifmx", &get_ExcANS_ifmx); - get_map.emplace("cim:ExcANS.k2", &get_ExcANS_k2); - get_map.emplace("cim:ExcANS.k3", &get_ExcANS_k3); - get_map.emplace("cim:ExcANS.kce", &get_ExcANS_kce); - get_map.emplace("cim:ExcANS.krvecc", &get_ExcANS_krvecc); - get_map.emplace("cim:ExcANS.kvfif", &get_ExcANS_kvfif); - get_map.emplace("cim:ExcANS.t1", &get_ExcANS_t1); - get_map.emplace("cim:ExcANS.t2", &get_ExcANS_t2); - get_map.emplace("cim:ExcANS.t3", &get_ExcANS_t3); - get_map.emplace("cim:ExcANS.tb", &get_ExcANS_tb); - get_map.emplace("cim:ExcANS.vrmn", &get_ExcANS_vrmn); - get_map.emplace("cim:ExcANS.vrmx", &get_ExcANS_vrmx); + get_map.emplace("ExcANS.blint", &get_ExcANS_blint); + get_map.emplace("ExcANS.ifmn", &get_ExcANS_ifmn); + get_map.emplace("ExcANS.ifmx", &get_ExcANS_ifmx); + get_map.emplace("ExcANS.k2", &get_ExcANS_k2); + get_map.emplace("ExcANS.k3", &get_ExcANS_k3); + get_map.emplace("ExcANS.kce", &get_ExcANS_kce); + get_map.emplace("ExcANS.krvecc", &get_ExcANS_krvecc); + get_map.emplace("ExcANS.kvfif", &get_ExcANS_kvfif); + get_map.emplace("ExcANS.t1", &get_ExcANS_t1); + get_map.emplace("ExcANS.t2", &get_ExcANS_t2); + get_map.emplace("ExcANS.t3", &get_ExcANS_t3); + get_map.emplace("ExcANS.tb", &get_ExcANS_tb); + get_map.emplace("ExcANS.vrmn", &get_ExcANS_vrmn); + get_map.emplace("ExcANS.vrmx", &get_ExcANS_vrmx); } void ExcANS::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcANS::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcANS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcANS" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcANS::declare() { return BaseClassDefiner(ExcANS::addConstructToMap, ExcANS::addPrimitiveAssignFnsToMap, ExcANS::addClassAssignFnsToMap, ExcANS::debugName); } +std::map ExcANS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcANS_factory() diff --git a/CGMES_3.0.0/ExcANS.hpp b/CGMES_3.0.0/ExcANS.hpp index 3688e29b2..2372b824c 100644 --- a/CGMES_3.0.0/ExcANS.hpp +++ b/CGMES_3.0.0/ExcANS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcANS_factory(); diff --git a/CGMES_3.0.0/ExcAVR1.cpp b/CGMES_3.0.0/ExcAVR1.cpp index 3daf41454..9044db116 100644 --- a/CGMES_3.0.0/ExcAVR1.cpp +++ b/CGMES_3.0.0/ExcAVR1.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR1.e1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.e2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.se1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.se2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.vrmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR1.vrmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR1::ExcAVR1() {} ExcAVR1::~ExcAVR1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR1::getClassNamespaceUrl() const { - { "cim:ExcAVR1.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.kf", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.ta", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.tb", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.tf", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR1.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR1::getPossibleProfilesForClass() const +const std::string& ExcAVR1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR1::getPossibleProfilesForAttributes() const +const std::list& ExcAVR1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR1_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcAVR1::debugString() const void ExcAVR1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR1", &ExcAVR1_factory); + factory_map.emplace("ExcAVR1", &ExcAVR1_factory); } void ExcAVR1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR1.e1", &assign_ExcAVR1_e1); - assign_map.emplace("cim:ExcAVR1.e2", &assign_ExcAVR1_e2); - assign_map.emplace("cim:ExcAVR1.ka", &assign_ExcAVR1_ka); - assign_map.emplace("cim:ExcAVR1.kf", &assign_ExcAVR1_kf); - assign_map.emplace("cim:ExcAVR1.se1", &assign_ExcAVR1_se1); - assign_map.emplace("cim:ExcAVR1.se2", &assign_ExcAVR1_se2); - assign_map.emplace("cim:ExcAVR1.ta", &assign_ExcAVR1_ta); - assign_map.emplace("cim:ExcAVR1.tb", &assign_ExcAVR1_tb); - assign_map.emplace("cim:ExcAVR1.te", &assign_ExcAVR1_te); - assign_map.emplace("cim:ExcAVR1.tf", &assign_ExcAVR1_tf); - assign_map.emplace("cim:ExcAVR1.vrmn", &assign_ExcAVR1_vrmn); - assign_map.emplace("cim:ExcAVR1.vrmx", &assign_ExcAVR1_vrmx); + assign_map.emplace("ExcAVR1.e1", &assign_ExcAVR1_e1); + assign_map.emplace("ExcAVR1.e2", &assign_ExcAVR1_e2); + assign_map.emplace("ExcAVR1.ka", &assign_ExcAVR1_ka); + assign_map.emplace("ExcAVR1.kf", &assign_ExcAVR1_kf); + assign_map.emplace("ExcAVR1.se1", &assign_ExcAVR1_se1); + assign_map.emplace("ExcAVR1.se2", &assign_ExcAVR1_se2); + assign_map.emplace("ExcAVR1.ta", &assign_ExcAVR1_ta); + assign_map.emplace("ExcAVR1.tb", &assign_ExcAVR1_tb); + assign_map.emplace("ExcAVR1.te", &assign_ExcAVR1_te); + assign_map.emplace("ExcAVR1.tf", &assign_ExcAVR1_tf); + assign_map.emplace("ExcAVR1.vrmn", &assign_ExcAVR1_vrmn); + assign_map.emplace("ExcAVR1.vrmx", &assign_ExcAVR1_vrmx); } void ExcAVR1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcAVR1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR1.e1", &get_ExcAVR1_e1); - get_map.emplace("cim:ExcAVR1.e2", &get_ExcAVR1_e2); - get_map.emplace("cim:ExcAVR1.ka", &get_ExcAVR1_ka); - get_map.emplace("cim:ExcAVR1.kf", &get_ExcAVR1_kf); - get_map.emplace("cim:ExcAVR1.se1", &get_ExcAVR1_se1); - get_map.emplace("cim:ExcAVR1.se2", &get_ExcAVR1_se2); - get_map.emplace("cim:ExcAVR1.ta", &get_ExcAVR1_ta); - get_map.emplace("cim:ExcAVR1.tb", &get_ExcAVR1_tb); - get_map.emplace("cim:ExcAVR1.te", &get_ExcAVR1_te); - get_map.emplace("cim:ExcAVR1.tf", &get_ExcAVR1_tf); - get_map.emplace("cim:ExcAVR1.vrmn", &get_ExcAVR1_vrmn); - get_map.emplace("cim:ExcAVR1.vrmx", &get_ExcAVR1_vrmx); + get_map.emplace("ExcAVR1.e1", &get_ExcAVR1_e1); + get_map.emplace("ExcAVR1.e2", &get_ExcAVR1_e2); + get_map.emplace("ExcAVR1.ka", &get_ExcAVR1_ka); + get_map.emplace("ExcAVR1.kf", &get_ExcAVR1_kf); + get_map.emplace("ExcAVR1.se1", &get_ExcAVR1_se1); + get_map.emplace("ExcAVR1.se2", &get_ExcAVR1_se2); + get_map.emplace("ExcAVR1.ta", &get_ExcAVR1_ta); + get_map.emplace("ExcAVR1.tb", &get_ExcAVR1_tb); + get_map.emplace("ExcAVR1.te", &get_ExcAVR1_te); + get_map.emplace("ExcAVR1.tf", &get_ExcAVR1_tf); + get_map.emplace("ExcAVR1.vrmn", &get_ExcAVR1_vrmn); + get_map.emplace("ExcAVR1.vrmx", &get_ExcAVR1_vrmx); } void ExcAVR1::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcAVR1::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR1::declare() { return BaseClassDefiner(ExcAVR1::addConstructToMap, ExcAVR1::addPrimitiveAssignFnsToMap, ExcAVR1::addClassAssignFnsToMap, ExcAVR1::debugName); } +std::map ExcAVR1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR1_factory() diff --git a/CGMES_3.0.0/ExcAVR1.hpp b/CGMES_3.0.0/ExcAVR1.hpp index e993c382d..b5602ffbe 100644 --- a/CGMES_3.0.0/ExcAVR1.hpp +++ b/CGMES_3.0.0/ExcAVR1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR1_factory(); diff --git a/CGMES_3.0.0/ExcAVR2.cpp b/CGMES_3.0.0/ExcAVR2.cpp index c9f8d13de..9de26e1df 100644 --- a/CGMES_3.0.0/ExcAVR2.cpp +++ b/CGMES_3.0.0/ExcAVR2.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR2.e1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.e2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.se1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.se2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.vrmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR2.vrmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR2::ExcAVR2() {} ExcAVR2::~ExcAVR2() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR2::getClassNamespaceUrl() const { - { "cim:ExcAVR2.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.kf", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.ta", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tb", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tf1", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.tf2", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR2.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR2::getPossibleProfilesForClass() const +const std::string& ExcAVR2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR2::getPossibleProfilesForAttributes() const +const std::list& ExcAVR2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR2_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcAVR2::debugString() const void ExcAVR2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR2", &ExcAVR2_factory); + factory_map.emplace("ExcAVR2", &ExcAVR2_factory); } void ExcAVR2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR2.e1", &assign_ExcAVR2_e1); - assign_map.emplace("cim:ExcAVR2.e2", &assign_ExcAVR2_e2); - assign_map.emplace("cim:ExcAVR2.ka", &assign_ExcAVR2_ka); - assign_map.emplace("cim:ExcAVR2.kf", &assign_ExcAVR2_kf); - assign_map.emplace("cim:ExcAVR2.se1", &assign_ExcAVR2_se1); - assign_map.emplace("cim:ExcAVR2.se2", &assign_ExcAVR2_se2); - assign_map.emplace("cim:ExcAVR2.ta", &assign_ExcAVR2_ta); - assign_map.emplace("cim:ExcAVR2.tb", &assign_ExcAVR2_tb); - assign_map.emplace("cim:ExcAVR2.te", &assign_ExcAVR2_te); - assign_map.emplace("cim:ExcAVR2.tf1", &assign_ExcAVR2_tf1); - assign_map.emplace("cim:ExcAVR2.tf2", &assign_ExcAVR2_tf2); - assign_map.emplace("cim:ExcAVR2.vrmn", &assign_ExcAVR2_vrmn); - assign_map.emplace("cim:ExcAVR2.vrmx", &assign_ExcAVR2_vrmx); + assign_map.emplace("ExcAVR2.e1", &assign_ExcAVR2_e1); + assign_map.emplace("ExcAVR2.e2", &assign_ExcAVR2_e2); + assign_map.emplace("ExcAVR2.ka", &assign_ExcAVR2_ka); + assign_map.emplace("ExcAVR2.kf", &assign_ExcAVR2_kf); + assign_map.emplace("ExcAVR2.se1", &assign_ExcAVR2_se1); + assign_map.emplace("ExcAVR2.se2", &assign_ExcAVR2_se2); + assign_map.emplace("ExcAVR2.ta", &assign_ExcAVR2_ta); + assign_map.emplace("ExcAVR2.tb", &assign_ExcAVR2_tb); + assign_map.emplace("ExcAVR2.te", &assign_ExcAVR2_te); + assign_map.emplace("ExcAVR2.tf1", &assign_ExcAVR2_tf1); + assign_map.emplace("ExcAVR2.tf2", &assign_ExcAVR2_tf2); + assign_map.emplace("ExcAVR2.vrmn", &assign_ExcAVR2_vrmn); + assign_map.emplace("ExcAVR2.vrmx", &assign_ExcAVR2_vrmx); } void ExcAVR2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcAVR2::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR2.e1", &get_ExcAVR2_e1); - get_map.emplace("cim:ExcAVR2.e2", &get_ExcAVR2_e2); - get_map.emplace("cim:ExcAVR2.ka", &get_ExcAVR2_ka); - get_map.emplace("cim:ExcAVR2.kf", &get_ExcAVR2_kf); - get_map.emplace("cim:ExcAVR2.se1", &get_ExcAVR2_se1); - get_map.emplace("cim:ExcAVR2.se2", &get_ExcAVR2_se2); - get_map.emplace("cim:ExcAVR2.ta", &get_ExcAVR2_ta); - get_map.emplace("cim:ExcAVR2.tb", &get_ExcAVR2_tb); - get_map.emplace("cim:ExcAVR2.te", &get_ExcAVR2_te); - get_map.emplace("cim:ExcAVR2.tf1", &get_ExcAVR2_tf1); - get_map.emplace("cim:ExcAVR2.tf2", &get_ExcAVR2_tf2); - get_map.emplace("cim:ExcAVR2.vrmn", &get_ExcAVR2_vrmn); - get_map.emplace("cim:ExcAVR2.vrmx", &get_ExcAVR2_vrmx); + get_map.emplace("ExcAVR2.e1", &get_ExcAVR2_e1); + get_map.emplace("ExcAVR2.e2", &get_ExcAVR2_e2); + get_map.emplace("ExcAVR2.ka", &get_ExcAVR2_ka); + get_map.emplace("ExcAVR2.kf", &get_ExcAVR2_kf); + get_map.emplace("ExcAVR2.se1", &get_ExcAVR2_se1); + get_map.emplace("ExcAVR2.se2", &get_ExcAVR2_se2); + get_map.emplace("ExcAVR2.ta", &get_ExcAVR2_ta); + get_map.emplace("ExcAVR2.tb", &get_ExcAVR2_tb); + get_map.emplace("ExcAVR2.te", &get_ExcAVR2_te); + get_map.emplace("ExcAVR2.tf1", &get_ExcAVR2_tf1); + get_map.emplace("ExcAVR2.tf2", &get_ExcAVR2_tf2); + get_map.emplace("ExcAVR2.vrmn", &get_ExcAVR2_vrmn); + get_map.emplace("ExcAVR2.vrmx", &get_ExcAVR2_vrmx); } void ExcAVR2::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcAVR2::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR2::declare() { return BaseClassDefiner(ExcAVR2::addConstructToMap, ExcAVR2::addPrimitiveAssignFnsToMap, ExcAVR2::addClassAssignFnsToMap, ExcAVR2::debugName); } +std::map ExcAVR2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR2_factory() diff --git a/CGMES_3.0.0/ExcAVR2.hpp b/CGMES_3.0.0/ExcAVR2.hpp index aa50e7c74..655f2bee4 100644 --- a/CGMES_3.0.0/ExcAVR2.hpp +++ b/CGMES_3.0.0/ExcAVR2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR2_factory(); diff --git a/CGMES_3.0.0/ExcAVR3.cpp b/CGMES_3.0.0/ExcAVR3.cpp index a58bdda7d..17611b370 100644 --- a/CGMES_3.0.0/ExcAVR3.cpp +++ b/CGMES_3.0.0/ExcAVR3.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR3(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR3.e1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.e2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.se1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.se2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.vrmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR3.vrmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR3::ExcAVR3() {} ExcAVR3::~ExcAVR3() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR3::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR3::getClassNamespaceUrl() const { - { "cim:ExcAVR3.e1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.e2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.se1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.se2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.te", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR3.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR3::getPossibleProfilesForClass() const +const std::string& ExcAVR3::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR3::getPossibleProfilesForAttributes() const +const std::list& ExcAVR3::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR3_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcAVR3::debugString() const void ExcAVR3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR3", &ExcAVR3_factory); + factory_map.emplace("ExcAVR3", &ExcAVR3_factory); } void ExcAVR3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR3.e1", &assign_ExcAVR3_e1); - assign_map.emplace("cim:ExcAVR3.e2", &assign_ExcAVR3_e2); - assign_map.emplace("cim:ExcAVR3.ka", &assign_ExcAVR3_ka); - assign_map.emplace("cim:ExcAVR3.se1", &assign_ExcAVR3_se1); - assign_map.emplace("cim:ExcAVR3.se2", &assign_ExcAVR3_se2); - assign_map.emplace("cim:ExcAVR3.t1", &assign_ExcAVR3_t1); - assign_map.emplace("cim:ExcAVR3.t2", &assign_ExcAVR3_t2); - assign_map.emplace("cim:ExcAVR3.t3", &assign_ExcAVR3_t3); - assign_map.emplace("cim:ExcAVR3.t4", &assign_ExcAVR3_t4); - assign_map.emplace("cim:ExcAVR3.te", &assign_ExcAVR3_te); - assign_map.emplace("cim:ExcAVR3.vrmn", &assign_ExcAVR3_vrmn); - assign_map.emplace("cim:ExcAVR3.vrmx", &assign_ExcAVR3_vrmx); + assign_map.emplace("ExcAVR3.e1", &assign_ExcAVR3_e1); + assign_map.emplace("ExcAVR3.e2", &assign_ExcAVR3_e2); + assign_map.emplace("ExcAVR3.ka", &assign_ExcAVR3_ka); + assign_map.emplace("ExcAVR3.se1", &assign_ExcAVR3_se1); + assign_map.emplace("ExcAVR3.se2", &assign_ExcAVR3_se2); + assign_map.emplace("ExcAVR3.t1", &assign_ExcAVR3_t1); + assign_map.emplace("ExcAVR3.t2", &assign_ExcAVR3_t2); + assign_map.emplace("ExcAVR3.t3", &assign_ExcAVR3_t3); + assign_map.emplace("ExcAVR3.t4", &assign_ExcAVR3_t4); + assign_map.emplace("ExcAVR3.te", &assign_ExcAVR3_te); + assign_map.emplace("ExcAVR3.vrmn", &assign_ExcAVR3_vrmn); + assign_map.emplace("ExcAVR3.vrmx", &assign_ExcAVR3_vrmx); } void ExcAVR3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcAVR3::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR3.e1", &get_ExcAVR3_e1); - get_map.emplace("cim:ExcAVR3.e2", &get_ExcAVR3_e2); - get_map.emplace("cim:ExcAVR3.ka", &get_ExcAVR3_ka); - get_map.emplace("cim:ExcAVR3.se1", &get_ExcAVR3_se1); - get_map.emplace("cim:ExcAVR3.se2", &get_ExcAVR3_se2); - get_map.emplace("cim:ExcAVR3.t1", &get_ExcAVR3_t1); - get_map.emplace("cim:ExcAVR3.t2", &get_ExcAVR3_t2); - get_map.emplace("cim:ExcAVR3.t3", &get_ExcAVR3_t3); - get_map.emplace("cim:ExcAVR3.t4", &get_ExcAVR3_t4); - get_map.emplace("cim:ExcAVR3.te", &get_ExcAVR3_te); - get_map.emplace("cim:ExcAVR3.vrmn", &get_ExcAVR3_vrmn); - get_map.emplace("cim:ExcAVR3.vrmx", &get_ExcAVR3_vrmx); + get_map.emplace("ExcAVR3.e1", &get_ExcAVR3_e1); + get_map.emplace("ExcAVR3.e2", &get_ExcAVR3_e2); + get_map.emplace("ExcAVR3.ka", &get_ExcAVR3_ka); + get_map.emplace("ExcAVR3.se1", &get_ExcAVR3_se1); + get_map.emplace("ExcAVR3.se2", &get_ExcAVR3_se2); + get_map.emplace("ExcAVR3.t1", &get_ExcAVR3_t1); + get_map.emplace("ExcAVR3.t2", &get_ExcAVR3_t2); + get_map.emplace("ExcAVR3.t3", &get_ExcAVR3_t3); + get_map.emplace("ExcAVR3.t4", &get_ExcAVR3_t4); + get_map.emplace("ExcAVR3.te", &get_ExcAVR3_te); + get_map.emplace("ExcAVR3.vrmn", &get_ExcAVR3_vrmn); + get_map.emplace("ExcAVR3.vrmx", &get_ExcAVR3_vrmx); } void ExcAVR3::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcAVR3::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR3::declare() { return BaseClassDefiner(ExcAVR3::addConstructToMap, ExcAVR3::addPrimitiveAssignFnsToMap, ExcAVR3::addClassAssignFnsToMap, ExcAVR3::debugName); } +std::map ExcAVR3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR3_factory() diff --git a/CGMES_3.0.0/ExcAVR3.hpp b/CGMES_3.0.0/ExcAVR3.hpp index 003d0bdb1..25ff5b6d1 100644 --- a/CGMES_3.0.0/ExcAVR3.hpp +++ b/CGMES_3.0.0/ExcAVR3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR3_factory(); diff --git a/CGMES_3.0.0/ExcAVR4.cpp b/CGMES_3.0.0/ExcAVR4.cpp index 52fd9e5cd..431ee29a4 100644 --- a/CGMES_3.0.0/ExcAVR4.cpp +++ b/CGMES_3.0.0/ExcAVR4.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR4(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR4.imul", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.kif", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t1if", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.tif", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vfmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vfmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vrmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR4.vrmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR4::ExcAVR4() {} ExcAVR4::~ExcAVR4() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR4::getClassNamespaceUrl() const { - { "cim:ExcAVR4.imul", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.ke", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.kif", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t1if", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.tif", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vfmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vfmx", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vrmn", { CGMESProfile::DY, } }, - { "cim:ExcAVR4.vrmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR4::getPossibleProfilesForClass() const +const std::string& ExcAVR4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR4::getPossibleProfilesForAttributes() const +const std::list& ExcAVR4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR4_imul(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcAVR4::debugString() const void ExcAVR4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR4", &ExcAVR4_factory); + factory_map.emplace("ExcAVR4", &ExcAVR4_factory); } void ExcAVR4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR4.imul", &assign_ExcAVR4_imul); - assign_map.emplace("cim:ExcAVR4.ka", &assign_ExcAVR4_ka); - assign_map.emplace("cim:ExcAVR4.ke", &assign_ExcAVR4_ke); - assign_map.emplace("cim:ExcAVR4.kif", &assign_ExcAVR4_kif); - assign_map.emplace("cim:ExcAVR4.t1", &assign_ExcAVR4_t1); - assign_map.emplace("cim:ExcAVR4.t1if", &assign_ExcAVR4_t1if); - assign_map.emplace("cim:ExcAVR4.t2", &assign_ExcAVR4_t2); - assign_map.emplace("cim:ExcAVR4.t3", &assign_ExcAVR4_t3); - assign_map.emplace("cim:ExcAVR4.t4", &assign_ExcAVR4_t4); - assign_map.emplace("cim:ExcAVR4.tif", &assign_ExcAVR4_tif); - assign_map.emplace("cim:ExcAVR4.vfmn", &assign_ExcAVR4_vfmn); - assign_map.emplace("cim:ExcAVR4.vfmx", &assign_ExcAVR4_vfmx); - assign_map.emplace("cim:ExcAVR4.vrmn", &assign_ExcAVR4_vrmn); - assign_map.emplace("cim:ExcAVR4.vrmx", &assign_ExcAVR4_vrmx); + assign_map.emplace("ExcAVR4.imul", &assign_ExcAVR4_imul); + assign_map.emplace("ExcAVR4.ka", &assign_ExcAVR4_ka); + assign_map.emplace("ExcAVR4.ke", &assign_ExcAVR4_ke); + assign_map.emplace("ExcAVR4.kif", &assign_ExcAVR4_kif); + assign_map.emplace("ExcAVR4.t1", &assign_ExcAVR4_t1); + assign_map.emplace("ExcAVR4.t1if", &assign_ExcAVR4_t1if); + assign_map.emplace("ExcAVR4.t2", &assign_ExcAVR4_t2); + assign_map.emplace("ExcAVR4.t3", &assign_ExcAVR4_t3); + assign_map.emplace("ExcAVR4.t4", &assign_ExcAVR4_t4); + assign_map.emplace("ExcAVR4.tif", &assign_ExcAVR4_tif); + assign_map.emplace("ExcAVR4.vfmn", &assign_ExcAVR4_vfmn); + assign_map.emplace("ExcAVR4.vfmx", &assign_ExcAVR4_vfmx); + assign_map.emplace("ExcAVR4.vrmn", &assign_ExcAVR4_vrmn); + assign_map.emplace("ExcAVR4.vrmx", &assign_ExcAVR4_vrmx); } void ExcAVR4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcAVR4::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR4.imul", &get_ExcAVR4_imul); - get_map.emplace("cim:ExcAVR4.ka", &get_ExcAVR4_ka); - get_map.emplace("cim:ExcAVR4.ke", &get_ExcAVR4_ke); - get_map.emplace("cim:ExcAVR4.kif", &get_ExcAVR4_kif); - get_map.emplace("cim:ExcAVR4.t1", &get_ExcAVR4_t1); - get_map.emplace("cim:ExcAVR4.t1if", &get_ExcAVR4_t1if); - get_map.emplace("cim:ExcAVR4.t2", &get_ExcAVR4_t2); - get_map.emplace("cim:ExcAVR4.t3", &get_ExcAVR4_t3); - get_map.emplace("cim:ExcAVR4.t4", &get_ExcAVR4_t4); - get_map.emplace("cim:ExcAVR4.tif", &get_ExcAVR4_tif); - get_map.emplace("cim:ExcAVR4.vfmn", &get_ExcAVR4_vfmn); - get_map.emplace("cim:ExcAVR4.vfmx", &get_ExcAVR4_vfmx); - get_map.emplace("cim:ExcAVR4.vrmn", &get_ExcAVR4_vrmn); - get_map.emplace("cim:ExcAVR4.vrmx", &get_ExcAVR4_vrmx); + get_map.emplace("ExcAVR4.imul", &get_ExcAVR4_imul); + get_map.emplace("ExcAVR4.ka", &get_ExcAVR4_ka); + get_map.emplace("ExcAVR4.ke", &get_ExcAVR4_ke); + get_map.emplace("ExcAVR4.kif", &get_ExcAVR4_kif); + get_map.emplace("ExcAVR4.t1", &get_ExcAVR4_t1); + get_map.emplace("ExcAVR4.t1if", &get_ExcAVR4_t1if); + get_map.emplace("ExcAVR4.t2", &get_ExcAVR4_t2); + get_map.emplace("ExcAVR4.t3", &get_ExcAVR4_t3); + get_map.emplace("ExcAVR4.t4", &get_ExcAVR4_t4); + get_map.emplace("ExcAVR4.tif", &get_ExcAVR4_tif); + get_map.emplace("ExcAVR4.vfmn", &get_ExcAVR4_vfmn); + get_map.emplace("ExcAVR4.vfmx", &get_ExcAVR4_vfmx); + get_map.emplace("ExcAVR4.vrmn", &get_ExcAVR4_vrmn); + get_map.emplace("ExcAVR4.vrmx", &get_ExcAVR4_vrmx); } void ExcAVR4::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcAVR4::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR4::declare() { return BaseClassDefiner(ExcAVR4::addConstructToMap, ExcAVR4::addPrimitiveAssignFnsToMap, ExcAVR4::addClassAssignFnsToMap, ExcAVR4::debugName); } +std::map ExcAVR4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR4_factory() diff --git a/CGMES_3.0.0/ExcAVR4.hpp b/CGMES_3.0.0/ExcAVR4.hpp index 99c48da97..032eb50cf 100644 --- a/CGMES_3.0.0/ExcAVR4.hpp +++ b/CGMES_3.0.0/ExcAVR4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR4_factory(); diff --git a/CGMES_3.0.0/ExcAVR5.cpp b/CGMES_3.0.0/ExcAVR5.cpp index 3f6eb23fe..128275b18 100644 --- a/CGMES_3.0.0/ExcAVR5.cpp +++ b/CGMES_3.0.0/ExcAVR5.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR5(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR5.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR5.rex", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR5.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR5::ExcAVR5() {} ExcAVR5::~ExcAVR5() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcAVR5::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcAVR5::getClassNamespaceUrl() const { - { "cim:ExcAVR5.ka", { CGMESProfile::DY, } }, - { "cim:ExcAVR5.rex", { CGMESProfile::DY, } }, - { "cim:ExcAVR5.ta", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcAVR5::getPossibleProfilesForClass() const +const std::string& ExcAVR5::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcAVR5::getPossibleProfilesForAttributes() const +const std::list& ExcAVR5::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR5::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR5::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR5::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR5_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* ExcAVR5::debugString() const void ExcAVR5::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR5", &ExcAVR5_factory); + factory_map.emplace("ExcAVR5", &ExcAVR5_factory); } void ExcAVR5::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR5.ka", &assign_ExcAVR5_ka); - assign_map.emplace("cim:ExcAVR5.rex", &assign_ExcAVR5_rex); - assign_map.emplace("cim:ExcAVR5.ta", &assign_ExcAVR5_ta); + assign_map.emplace("ExcAVR5.ka", &assign_ExcAVR5_ka); + assign_map.emplace("ExcAVR5.rex", &assign_ExcAVR5_rex); + assign_map.emplace("ExcAVR5.ta", &assign_ExcAVR5_ta); } void ExcAVR5::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void ExcAVR5::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR5.ka", &get_ExcAVR5_ka); - get_map.emplace("cim:ExcAVR5.rex", &get_ExcAVR5_rex); - get_map.emplace("cim:ExcAVR5.ta", &get_ExcAVR5_ta); + get_map.emplace("ExcAVR5.ka", &get_ExcAVR5_ka); + get_map.emplace("ExcAVR5.rex", &get_ExcAVR5_rex); + get_map.emplace("ExcAVR5.ta", &get_ExcAVR5_ta); } void ExcAVR5::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void ExcAVR5::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR5::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR5" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR5::declare() { return BaseClassDefiner(ExcAVR5::addConstructToMap, ExcAVR5::addPrimitiveAssignFnsToMap, ExcAVR5::addClassAssignFnsToMap, ExcAVR5::debugName); } +std::map ExcAVR5::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR5_factory() diff --git a/CGMES_3.0.0/ExcAVR5.hpp b/CGMES_3.0.0/ExcAVR5.hpp index c5d1d29e0..38eb06e20 100644 --- a/CGMES_3.0.0/ExcAVR5.hpp +++ b/CGMES_3.0.0/ExcAVR5.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR5_factory(); diff --git a/CGMES_3.0.0/ExcAVR7.cpp b/CGMES_3.0.0/ExcAVR7.cpp index 3568b24b1..17f35d7f4 100644 --- a/CGMES_3.0.0/ExcAVR7.cpp +++ b/CGMES_3.0.0/ExcAVR7.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcAVR7(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcAVR7.a1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.a6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.k5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmax5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcAVR7.vmin5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcAVR7::ExcAVR7() {} ExcAVR7::~ExcAVR7() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcAVR7.a1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a2", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a4", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.a6", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.k5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t2", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t4", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.t6", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmax5", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin1", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin3", { CGMESProfile::DY, } }, - { "cim:ExcAVR7.vmin5", { CGMESProfile::DY, } }, -}; - -std::list -ExcAVR7::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcAVR7::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcAVR7::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcAVR7::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcAVR7::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcAVR7::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcAVR7::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcAVR7::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcAVR7::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcAVR7_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcAVR7::debugString() const void ExcAVR7::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcAVR7", &ExcAVR7_factory); + factory_map.emplace("ExcAVR7", &ExcAVR7_factory); } void ExcAVR7::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcAVR7.a1", &assign_ExcAVR7_a1); - assign_map.emplace("cim:ExcAVR7.a2", &assign_ExcAVR7_a2); - assign_map.emplace("cim:ExcAVR7.a3", &assign_ExcAVR7_a3); - assign_map.emplace("cim:ExcAVR7.a4", &assign_ExcAVR7_a4); - assign_map.emplace("cim:ExcAVR7.a5", &assign_ExcAVR7_a5); - assign_map.emplace("cim:ExcAVR7.a6", &assign_ExcAVR7_a6); - assign_map.emplace("cim:ExcAVR7.k1", &assign_ExcAVR7_k1); - assign_map.emplace("cim:ExcAVR7.k3", &assign_ExcAVR7_k3); - assign_map.emplace("cim:ExcAVR7.k5", &assign_ExcAVR7_k5); - assign_map.emplace("cim:ExcAVR7.t1", &assign_ExcAVR7_t1); - assign_map.emplace("cim:ExcAVR7.t2", &assign_ExcAVR7_t2); - assign_map.emplace("cim:ExcAVR7.t3", &assign_ExcAVR7_t3); - assign_map.emplace("cim:ExcAVR7.t4", &assign_ExcAVR7_t4); - assign_map.emplace("cim:ExcAVR7.t5", &assign_ExcAVR7_t5); - assign_map.emplace("cim:ExcAVR7.t6", &assign_ExcAVR7_t6); - assign_map.emplace("cim:ExcAVR7.vmax1", &assign_ExcAVR7_vmax1); - assign_map.emplace("cim:ExcAVR7.vmax3", &assign_ExcAVR7_vmax3); - assign_map.emplace("cim:ExcAVR7.vmax5", &assign_ExcAVR7_vmax5); - assign_map.emplace("cim:ExcAVR7.vmin1", &assign_ExcAVR7_vmin1); - assign_map.emplace("cim:ExcAVR7.vmin3", &assign_ExcAVR7_vmin3); - assign_map.emplace("cim:ExcAVR7.vmin5", &assign_ExcAVR7_vmin5); + assign_map.emplace("ExcAVR7.a1", &assign_ExcAVR7_a1); + assign_map.emplace("ExcAVR7.a2", &assign_ExcAVR7_a2); + assign_map.emplace("ExcAVR7.a3", &assign_ExcAVR7_a3); + assign_map.emplace("ExcAVR7.a4", &assign_ExcAVR7_a4); + assign_map.emplace("ExcAVR7.a5", &assign_ExcAVR7_a5); + assign_map.emplace("ExcAVR7.a6", &assign_ExcAVR7_a6); + assign_map.emplace("ExcAVR7.k1", &assign_ExcAVR7_k1); + assign_map.emplace("ExcAVR7.k3", &assign_ExcAVR7_k3); + assign_map.emplace("ExcAVR7.k5", &assign_ExcAVR7_k5); + assign_map.emplace("ExcAVR7.t1", &assign_ExcAVR7_t1); + assign_map.emplace("ExcAVR7.t2", &assign_ExcAVR7_t2); + assign_map.emplace("ExcAVR7.t3", &assign_ExcAVR7_t3); + assign_map.emplace("ExcAVR7.t4", &assign_ExcAVR7_t4); + assign_map.emplace("ExcAVR7.t5", &assign_ExcAVR7_t5); + assign_map.emplace("ExcAVR7.t6", &assign_ExcAVR7_t6); + assign_map.emplace("ExcAVR7.vmax1", &assign_ExcAVR7_vmax1); + assign_map.emplace("ExcAVR7.vmax3", &assign_ExcAVR7_vmax3); + assign_map.emplace("ExcAVR7.vmax5", &assign_ExcAVR7_vmax5); + assign_map.emplace("ExcAVR7.vmin1", &assign_ExcAVR7_vmin1); + assign_map.emplace("ExcAVR7.vmin3", &assign_ExcAVR7_vmin3); + assign_map.emplace("ExcAVR7.vmin5", &assign_ExcAVR7_vmin5); } void ExcAVR7::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcAVR7::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcAVR7.a1", &get_ExcAVR7_a1); - get_map.emplace("cim:ExcAVR7.a2", &get_ExcAVR7_a2); - get_map.emplace("cim:ExcAVR7.a3", &get_ExcAVR7_a3); - get_map.emplace("cim:ExcAVR7.a4", &get_ExcAVR7_a4); - get_map.emplace("cim:ExcAVR7.a5", &get_ExcAVR7_a5); - get_map.emplace("cim:ExcAVR7.a6", &get_ExcAVR7_a6); - get_map.emplace("cim:ExcAVR7.k1", &get_ExcAVR7_k1); - get_map.emplace("cim:ExcAVR7.k3", &get_ExcAVR7_k3); - get_map.emplace("cim:ExcAVR7.k5", &get_ExcAVR7_k5); - get_map.emplace("cim:ExcAVR7.t1", &get_ExcAVR7_t1); - get_map.emplace("cim:ExcAVR7.t2", &get_ExcAVR7_t2); - get_map.emplace("cim:ExcAVR7.t3", &get_ExcAVR7_t3); - get_map.emplace("cim:ExcAVR7.t4", &get_ExcAVR7_t4); - get_map.emplace("cim:ExcAVR7.t5", &get_ExcAVR7_t5); - get_map.emplace("cim:ExcAVR7.t6", &get_ExcAVR7_t6); - get_map.emplace("cim:ExcAVR7.vmax1", &get_ExcAVR7_vmax1); - get_map.emplace("cim:ExcAVR7.vmax3", &get_ExcAVR7_vmax3); - get_map.emplace("cim:ExcAVR7.vmax5", &get_ExcAVR7_vmax5); - get_map.emplace("cim:ExcAVR7.vmin1", &get_ExcAVR7_vmin1); - get_map.emplace("cim:ExcAVR7.vmin3", &get_ExcAVR7_vmin3); - get_map.emplace("cim:ExcAVR7.vmin5", &get_ExcAVR7_vmin5); + get_map.emplace("ExcAVR7.a1", &get_ExcAVR7_a1); + get_map.emplace("ExcAVR7.a2", &get_ExcAVR7_a2); + get_map.emplace("ExcAVR7.a3", &get_ExcAVR7_a3); + get_map.emplace("ExcAVR7.a4", &get_ExcAVR7_a4); + get_map.emplace("ExcAVR7.a5", &get_ExcAVR7_a5); + get_map.emplace("ExcAVR7.a6", &get_ExcAVR7_a6); + get_map.emplace("ExcAVR7.k1", &get_ExcAVR7_k1); + get_map.emplace("ExcAVR7.k3", &get_ExcAVR7_k3); + get_map.emplace("ExcAVR7.k5", &get_ExcAVR7_k5); + get_map.emplace("ExcAVR7.t1", &get_ExcAVR7_t1); + get_map.emplace("ExcAVR7.t2", &get_ExcAVR7_t2); + get_map.emplace("ExcAVR7.t3", &get_ExcAVR7_t3); + get_map.emplace("ExcAVR7.t4", &get_ExcAVR7_t4); + get_map.emplace("ExcAVR7.t5", &get_ExcAVR7_t5); + get_map.emplace("ExcAVR7.t6", &get_ExcAVR7_t6); + get_map.emplace("ExcAVR7.vmax1", &get_ExcAVR7_vmax1); + get_map.emplace("ExcAVR7.vmax3", &get_ExcAVR7_vmax3); + get_map.emplace("ExcAVR7.vmax5", &get_ExcAVR7_vmax5); + get_map.emplace("ExcAVR7.vmin1", &get_ExcAVR7_vmin1); + get_map.emplace("ExcAVR7.vmin3", &get_ExcAVR7_vmin3); + get_map.emplace("ExcAVR7.vmin5", &get_ExcAVR7_vmin5); } void ExcAVR7::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcAVR7::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcAVR7::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcAVR7" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcAVR7::declare() { return BaseClassDefiner(ExcAVR7::addConstructToMap, ExcAVR7::addPrimitiveAssignFnsToMap, ExcAVR7::addClassAssignFnsToMap, ExcAVR7::debugName); } +std::map ExcAVR7::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcAVR7_factory() diff --git a/CGMES_3.0.0/ExcAVR7.hpp b/CGMES_3.0.0/ExcAVR7.hpp index e32d9698f..18aab5dcb 100644 --- a/CGMES_3.0.0/ExcAVR7.hpp +++ b/CGMES_3.0.0/ExcAVR7.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -92,8 +93,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -101,7 +109,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcAVR7_factory(); diff --git a/CGMES_3.0.0/ExcBBC.cpp b/CGMES_3.0.0/ExcBBC.cpp index 5ed4908bf..5fe3177d5 100644 --- a/CGMES_3.0.0/ExcBBC.cpp +++ b/CGMES_3.0.0/ExcBBC.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcBBC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcBBC.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.efdmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.switch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcBBC.xe", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcBBC::ExcBBC() {} ExcBBC::~ExcBBC() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcBBC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcBBC::getClassNamespaceUrl() const { - { "cim:ExcBBC.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcBBC.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcBBC.k", { CGMESProfile::DY, } }, - { "cim:ExcBBC.switch", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t1", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t2", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t3", { CGMESProfile::DY, } }, - { "cim:ExcBBC.t4", { CGMESProfile::DY, } }, - { "cim:ExcBBC.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcBBC.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcBBC.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcBBC::getPossibleProfilesForClass() const +const std::string& ExcBBC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcBBC::getPossibleProfilesForAttributes() const +const std::list& ExcBBC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcBBC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcBBC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcBBC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcBBC_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* ExcBBC::debugString() const void ExcBBC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcBBC", &ExcBBC_factory); + factory_map.emplace("ExcBBC", &ExcBBC_factory); } void ExcBBC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcBBC.efdmax", &assign_ExcBBC_efdmax); - assign_map.emplace("cim:ExcBBC.efdmin", &assign_ExcBBC_efdmin); - assign_map.emplace("cim:ExcBBC.k", &assign_ExcBBC_k); - assign_map.emplace("cim:ExcBBC.switch", &assign_ExcBBC_switch); - assign_map.emplace("cim:ExcBBC.t1", &assign_ExcBBC_t1); - assign_map.emplace("cim:ExcBBC.t2", &assign_ExcBBC_t2); - assign_map.emplace("cim:ExcBBC.t3", &assign_ExcBBC_t3); - assign_map.emplace("cim:ExcBBC.t4", &assign_ExcBBC_t4); - assign_map.emplace("cim:ExcBBC.vrmax", &assign_ExcBBC_vrmax); - assign_map.emplace("cim:ExcBBC.vrmin", &assign_ExcBBC_vrmin); - assign_map.emplace("cim:ExcBBC.xe", &assign_ExcBBC_xe); + assign_map.emplace("ExcBBC.efdmax", &assign_ExcBBC_efdmax); + assign_map.emplace("ExcBBC.efdmin", &assign_ExcBBC_efdmin); + assign_map.emplace("ExcBBC.k", &assign_ExcBBC_k); + assign_map.emplace("ExcBBC.switch", &assign_ExcBBC_switch); + assign_map.emplace("ExcBBC.t1", &assign_ExcBBC_t1); + assign_map.emplace("ExcBBC.t2", &assign_ExcBBC_t2); + assign_map.emplace("ExcBBC.t3", &assign_ExcBBC_t3); + assign_map.emplace("ExcBBC.t4", &assign_ExcBBC_t4); + assign_map.emplace("ExcBBC.vrmax", &assign_ExcBBC_vrmax); + assign_map.emplace("ExcBBC.vrmin", &assign_ExcBBC_vrmin); + assign_map.emplace("ExcBBC.xe", &assign_ExcBBC_xe); } void ExcBBC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void ExcBBC::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcBBC.efdmax", &get_ExcBBC_efdmax); - get_map.emplace("cim:ExcBBC.efdmin", &get_ExcBBC_efdmin); - get_map.emplace("cim:ExcBBC.k", &get_ExcBBC_k); - get_map.emplace("cim:ExcBBC.switch", &get_ExcBBC_switch); - get_map.emplace("cim:ExcBBC.t1", &get_ExcBBC_t1); - get_map.emplace("cim:ExcBBC.t2", &get_ExcBBC_t2); - get_map.emplace("cim:ExcBBC.t3", &get_ExcBBC_t3); - get_map.emplace("cim:ExcBBC.t4", &get_ExcBBC_t4); - get_map.emplace("cim:ExcBBC.vrmax", &get_ExcBBC_vrmax); - get_map.emplace("cim:ExcBBC.vrmin", &get_ExcBBC_vrmin); - get_map.emplace("cim:ExcBBC.xe", &get_ExcBBC_xe); + get_map.emplace("ExcBBC.efdmax", &get_ExcBBC_efdmax); + get_map.emplace("ExcBBC.efdmin", &get_ExcBBC_efdmin); + get_map.emplace("ExcBBC.k", &get_ExcBBC_k); + get_map.emplace("ExcBBC.switch", &get_ExcBBC_switch); + get_map.emplace("ExcBBC.t1", &get_ExcBBC_t1); + get_map.emplace("ExcBBC.t2", &get_ExcBBC_t2); + get_map.emplace("ExcBBC.t3", &get_ExcBBC_t3); + get_map.emplace("ExcBBC.t4", &get_ExcBBC_t4); + get_map.emplace("ExcBBC.vrmax", &get_ExcBBC_vrmax); + get_map.emplace("ExcBBC.vrmin", &get_ExcBBC_vrmin); + get_map.emplace("ExcBBC.xe", &get_ExcBBC_xe); } void ExcBBC::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void ExcBBC::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcBBC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcBBC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcBBC::declare() { return BaseClassDefiner(ExcBBC::addConstructToMap, ExcBBC::addPrimitiveAssignFnsToMap, ExcBBC::addClassAssignFnsToMap, ExcBBC::debugName); } +std::map ExcBBC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcBBC_factory() diff --git a/CGMES_3.0.0/ExcBBC.hpp b/CGMES_3.0.0/ExcBBC.hpp index 5e45d6876..249eee1f9 100644 --- a/CGMES_3.0.0/ExcBBC.hpp +++ b/CGMES_3.0.0/ExcBBC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcBBC_factory(); diff --git a/CGMES_3.0.0/ExcCZ.cpp b/CGMES_3.0.0/ExcCZ.cpp index 836b963d1..6b0267c88 100644 --- a/CGMES_3.0.0/ExcCZ.cpp +++ b/CGMES_3.0.0/ExcCZ.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcCZ(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcCZ.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.efdmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcCZ.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcCZ::ExcCZ() {} ExcCZ::~ExcCZ() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcCZ::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcCZ::getClassNamespaceUrl() const { - { "cim:ExcCZ.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcCZ.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ka", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ke", { CGMESProfile::DY, } }, - { "cim:ExcCZ.kp", { CGMESProfile::DY, } }, - { "cim:ExcCZ.ta", { CGMESProfile::DY, } }, - { "cim:ExcCZ.tc", { CGMESProfile::DY, } }, - { "cim:ExcCZ.te", { CGMESProfile::DY, } }, - { "cim:ExcCZ.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcCZ.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcCZ::getPossibleProfilesForClass() const +const std::string& ExcCZ::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcCZ::getPossibleProfilesForAttributes() const +const std::list& ExcCZ::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcCZ::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcCZ::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcCZ::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcCZ_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcCZ::debugString() const void ExcCZ::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcCZ", &ExcCZ_factory); + factory_map.emplace("ExcCZ", &ExcCZ_factory); } void ExcCZ::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcCZ.efdmax", &assign_ExcCZ_efdmax); - assign_map.emplace("cim:ExcCZ.efdmin", &assign_ExcCZ_efdmin); - assign_map.emplace("cim:ExcCZ.ka", &assign_ExcCZ_ka); - assign_map.emplace("cim:ExcCZ.ke", &assign_ExcCZ_ke); - assign_map.emplace("cim:ExcCZ.kp", &assign_ExcCZ_kp); - assign_map.emplace("cim:ExcCZ.ta", &assign_ExcCZ_ta); - assign_map.emplace("cim:ExcCZ.tc", &assign_ExcCZ_tc); - assign_map.emplace("cim:ExcCZ.te", &assign_ExcCZ_te); - assign_map.emplace("cim:ExcCZ.vrmax", &assign_ExcCZ_vrmax); - assign_map.emplace("cim:ExcCZ.vrmin", &assign_ExcCZ_vrmin); + assign_map.emplace("ExcCZ.efdmax", &assign_ExcCZ_efdmax); + assign_map.emplace("ExcCZ.efdmin", &assign_ExcCZ_efdmin); + assign_map.emplace("ExcCZ.ka", &assign_ExcCZ_ka); + assign_map.emplace("ExcCZ.ke", &assign_ExcCZ_ke); + assign_map.emplace("ExcCZ.kp", &assign_ExcCZ_kp); + assign_map.emplace("ExcCZ.ta", &assign_ExcCZ_ta); + assign_map.emplace("ExcCZ.tc", &assign_ExcCZ_tc); + assign_map.emplace("ExcCZ.te", &assign_ExcCZ_te); + assign_map.emplace("ExcCZ.vrmax", &assign_ExcCZ_vrmax); + assign_map.emplace("ExcCZ.vrmin", &assign_ExcCZ_vrmin); } void ExcCZ::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcCZ::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcCZ.efdmax", &get_ExcCZ_efdmax); - get_map.emplace("cim:ExcCZ.efdmin", &get_ExcCZ_efdmin); - get_map.emplace("cim:ExcCZ.ka", &get_ExcCZ_ka); - get_map.emplace("cim:ExcCZ.ke", &get_ExcCZ_ke); - get_map.emplace("cim:ExcCZ.kp", &get_ExcCZ_kp); - get_map.emplace("cim:ExcCZ.ta", &get_ExcCZ_ta); - get_map.emplace("cim:ExcCZ.tc", &get_ExcCZ_tc); - get_map.emplace("cim:ExcCZ.te", &get_ExcCZ_te); - get_map.emplace("cim:ExcCZ.vrmax", &get_ExcCZ_vrmax); - get_map.emplace("cim:ExcCZ.vrmin", &get_ExcCZ_vrmin); + get_map.emplace("ExcCZ.efdmax", &get_ExcCZ_efdmax); + get_map.emplace("ExcCZ.efdmin", &get_ExcCZ_efdmin); + get_map.emplace("ExcCZ.ka", &get_ExcCZ_ka); + get_map.emplace("ExcCZ.ke", &get_ExcCZ_ke); + get_map.emplace("ExcCZ.kp", &get_ExcCZ_kp); + get_map.emplace("ExcCZ.ta", &get_ExcCZ_ta); + get_map.emplace("ExcCZ.tc", &get_ExcCZ_tc); + get_map.emplace("ExcCZ.te", &get_ExcCZ_te); + get_map.emplace("ExcCZ.vrmax", &get_ExcCZ_vrmax); + get_map.emplace("ExcCZ.vrmin", &get_ExcCZ_vrmin); } void ExcCZ::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcCZ::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcCZ::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcCZ" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcCZ::declare() { return BaseClassDefiner(ExcCZ::addConstructToMap, ExcCZ::addPrimitiveAssignFnsToMap, ExcCZ::addClassAssignFnsToMap, ExcCZ::debugName); } +std::map ExcCZ::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcCZ_factory() diff --git a/CGMES_3.0.0/ExcCZ.hpp b/CGMES_3.0.0/ExcCZ.hpp index a469d4fd5..52a1ce289 100644 --- a/CGMES_3.0.0/ExcCZ.hpp +++ b/CGMES_3.0.0/ExcCZ.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcCZ_factory(); diff --git a/CGMES_3.0.0/ExcDC1A.cpp b/CGMES_3.0.0/ExcDC1A.cpp index 747299b8e..6a0205b62 100644 --- a/CGMES_3.0.0/ExcDC1A.cpp +++ b/CGMES_3.0.0/ExcDC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC1A.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.efdmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.exclim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC1A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC1A::ExcDC1A() {} ExcDC1A::~ExcDC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC1A::getClassNamespaceUrl() const { - { "cim:ExcDC1A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC1A::getPossibleProfilesForClass() const +const std::string& ExcDC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC1A::getPossibleProfilesForAttributes() const +const std::list& ExcDC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC1A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcDC1A::debugString() const void ExcDC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC1A", &ExcDC1A_factory); + factory_map.emplace("ExcDC1A", &ExcDC1A_factory); } void ExcDC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC1A.efd1", &assign_ExcDC1A_efd1); - assign_map.emplace("cim:ExcDC1A.efd2", &assign_ExcDC1A_efd2); - assign_map.emplace("cim:ExcDC1A.efdmax", &assign_ExcDC1A_efdmax); - assign_map.emplace("cim:ExcDC1A.efdmin", &assign_ExcDC1A_efdmin); - assign_map.emplace("cim:ExcDC1A.exclim", &assign_ExcDC1A_exclim); - assign_map.emplace("cim:ExcDC1A.ka", &assign_ExcDC1A_ka); - assign_map.emplace("cim:ExcDC1A.ke", &assign_ExcDC1A_ke); - assign_map.emplace("cim:ExcDC1A.kf", &assign_ExcDC1A_kf); - assign_map.emplace("cim:ExcDC1A.ks", &assign_ExcDC1A_ks); - assign_map.emplace("cim:ExcDC1A.seefd1", &assign_ExcDC1A_seefd1); - assign_map.emplace("cim:ExcDC1A.seefd2", &assign_ExcDC1A_seefd2); - assign_map.emplace("cim:ExcDC1A.ta", &assign_ExcDC1A_ta); - assign_map.emplace("cim:ExcDC1A.tb", &assign_ExcDC1A_tb); - assign_map.emplace("cim:ExcDC1A.tc", &assign_ExcDC1A_tc); - assign_map.emplace("cim:ExcDC1A.te", &assign_ExcDC1A_te); - assign_map.emplace("cim:ExcDC1A.tf", &assign_ExcDC1A_tf); - assign_map.emplace("cim:ExcDC1A.vrmax", &assign_ExcDC1A_vrmax); - assign_map.emplace("cim:ExcDC1A.vrmin", &assign_ExcDC1A_vrmin); + assign_map.emplace("ExcDC1A.efd1", &assign_ExcDC1A_efd1); + assign_map.emplace("ExcDC1A.efd2", &assign_ExcDC1A_efd2); + assign_map.emplace("ExcDC1A.efdmax", &assign_ExcDC1A_efdmax); + assign_map.emplace("ExcDC1A.efdmin", &assign_ExcDC1A_efdmin); + assign_map.emplace("ExcDC1A.exclim", &assign_ExcDC1A_exclim); + assign_map.emplace("ExcDC1A.ka", &assign_ExcDC1A_ka); + assign_map.emplace("ExcDC1A.ke", &assign_ExcDC1A_ke); + assign_map.emplace("ExcDC1A.kf", &assign_ExcDC1A_kf); + assign_map.emplace("ExcDC1A.ks", &assign_ExcDC1A_ks); + assign_map.emplace("ExcDC1A.seefd1", &assign_ExcDC1A_seefd1); + assign_map.emplace("ExcDC1A.seefd2", &assign_ExcDC1A_seefd2); + assign_map.emplace("ExcDC1A.ta", &assign_ExcDC1A_ta); + assign_map.emplace("ExcDC1A.tb", &assign_ExcDC1A_tb); + assign_map.emplace("ExcDC1A.tc", &assign_ExcDC1A_tc); + assign_map.emplace("ExcDC1A.te", &assign_ExcDC1A_te); + assign_map.emplace("ExcDC1A.tf", &assign_ExcDC1A_tf); + assign_map.emplace("ExcDC1A.vrmax", &assign_ExcDC1A_vrmax); + assign_map.emplace("ExcDC1A.vrmin", &assign_ExcDC1A_vrmin); } void ExcDC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcDC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC1A.efd1", &get_ExcDC1A_efd1); - get_map.emplace("cim:ExcDC1A.efd2", &get_ExcDC1A_efd2); - get_map.emplace("cim:ExcDC1A.efdmax", &get_ExcDC1A_efdmax); - get_map.emplace("cim:ExcDC1A.efdmin", &get_ExcDC1A_efdmin); - get_map.emplace("cim:ExcDC1A.exclim", &get_ExcDC1A_exclim); - get_map.emplace("cim:ExcDC1A.ka", &get_ExcDC1A_ka); - get_map.emplace("cim:ExcDC1A.ke", &get_ExcDC1A_ke); - get_map.emplace("cim:ExcDC1A.kf", &get_ExcDC1A_kf); - get_map.emplace("cim:ExcDC1A.ks", &get_ExcDC1A_ks); - get_map.emplace("cim:ExcDC1A.seefd1", &get_ExcDC1A_seefd1); - get_map.emplace("cim:ExcDC1A.seefd2", &get_ExcDC1A_seefd2); - get_map.emplace("cim:ExcDC1A.ta", &get_ExcDC1A_ta); - get_map.emplace("cim:ExcDC1A.tb", &get_ExcDC1A_tb); - get_map.emplace("cim:ExcDC1A.tc", &get_ExcDC1A_tc); - get_map.emplace("cim:ExcDC1A.te", &get_ExcDC1A_te); - get_map.emplace("cim:ExcDC1A.tf", &get_ExcDC1A_tf); - get_map.emplace("cim:ExcDC1A.vrmax", &get_ExcDC1A_vrmax); - get_map.emplace("cim:ExcDC1A.vrmin", &get_ExcDC1A_vrmin); + get_map.emplace("ExcDC1A.efd1", &get_ExcDC1A_efd1); + get_map.emplace("ExcDC1A.efd2", &get_ExcDC1A_efd2); + get_map.emplace("ExcDC1A.efdmax", &get_ExcDC1A_efdmax); + get_map.emplace("ExcDC1A.efdmin", &get_ExcDC1A_efdmin); + get_map.emplace("ExcDC1A.exclim", &get_ExcDC1A_exclim); + get_map.emplace("ExcDC1A.ka", &get_ExcDC1A_ka); + get_map.emplace("ExcDC1A.ke", &get_ExcDC1A_ke); + get_map.emplace("ExcDC1A.kf", &get_ExcDC1A_kf); + get_map.emplace("ExcDC1A.ks", &get_ExcDC1A_ks); + get_map.emplace("ExcDC1A.seefd1", &get_ExcDC1A_seefd1); + get_map.emplace("ExcDC1A.seefd2", &get_ExcDC1A_seefd2); + get_map.emplace("ExcDC1A.ta", &get_ExcDC1A_ta); + get_map.emplace("ExcDC1A.tb", &get_ExcDC1A_tb); + get_map.emplace("ExcDC1A.tc", &get_ExcDC1A_tc); + get_map.emplace("ExcDC1A.te", &get_ExcDC1A_te); + get_map.emplace("ExcDC1A.tf", &get_ExcDC1A_tf); + get_map.emplace("ExcDC1A.vrmax", &get_ExcDC1A_vrmax); + get_map.emplace("ExcDC1A.vrmin", &get_ExcDC1A_vrmin); } void ExcDC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcDC1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC1A::declare() { return BaseClassDefiner(ExcDC1A::addConstructToMap, ExcDC1A::addPrimitiveAssignFnsToMap, ExcDC1A::addClassAssignFnsToMap, ExcDC1A::debugName); } +std::map ExcDC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC1A_factory() diff --git a/CGMES_3.0.0/ExcDC1A.hpp b/CGMES_3.0.0/ExcDC1A.hpp index da27e8d22..68ccce07a 100644 --- a/CGMES_3.0.0/ExcDC1A.hpp +++ b/CGMES_3.0.0/ExcDC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC1A_factory(); diff --git a/CGMES_3.0.0/ExcDC2A.cpp b/CGMES_3.0.0/ExcDC2A.cpp index 79a98e618..89b230697 100644 --- a/CGMES_3.0.0/ExcDC2A.cpp +++ b/CGMES_3.0.0/ExcDC2A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC2A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC2A.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.exclim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.tf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC2A.vtlim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC2A::ExcDC2A() {} ExcDC2A::~ExcDC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC2A::getClassNamespaceUrl() const { - { "cim:ExcDC2A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcDC2A.vtlim", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC2A::getPossibleProfilesForClass() const +const std::string& ExcDC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC2A::getPossibleProfilesForAttributes() const +const std::list& ExcDC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC2A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcDC2A::debugString() const void ExcDC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC2A", &ExcDC2A_factory); + factory_map.emplace("ExcDC2A", &ExcDC2A_factory); } void ExcDC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC2A.efd1", &assign_ExcDC2A_efd1); - assign_map.emplace("cim:ExcDC2A.efd2", &assign_ExcDC2A_efd2); - assign_map.emplace("cim:ExcDC2A.exclim", &assign_ExcDC2A_exclim); - assign_map.emplace("cim:ExcDC2A.ka", &assign_ExcDC2A_ka); - assign_map.emplace("cim:ExcDC2A.ke", &assign_ExcDC2A_ke); - assign_map.emplace("cim:ExcDC2A.kf", &assign_ExcDC2A_kf); - assign_map.emplace("cim:ExcDC2A.ks", &assign_ExcDC2A_ks); - assign_map.emplace("cim:ExcDC2A.seefd1", &assign_ExcDC2A_seefd1); - assign_map.emplace("cim:ExcDC2A.seefd2", &assign_ExcDC2A_seefd2); - assign_map.emplace("cim:ExcDC2A.ta", &assign_ExcDC2A_ta); - assign_map.emplace("cim:ExcDC2A.tb", &assign_ExcDC2A_tb); - assign_map.emplace("cim:ExcDC2A.tc", &assign_ExcDC2A_tc); - assign_map.emplace("cim:ExcDC2A.te", &assign_ExcDC2A_te); - assign_map.emplace("cim:ExcDC2A.tf", &assign_ExcDC2A_tf); - assign_map.emplace("cim:ExcDC2A.tf1", &assign_ExcDC2A_tf1); - assign_map.emplace("cim:ExcDC2A.vrmax", &assign_ExcDC2A_vrmax); - assign_map.emplace("cim:ExcDC2A.vrmin", &assign_ExcDC2A_vrmin); - assign_map.emplace("cim:ExcDC2A.vtlim", &assign_ExcDC2A_vtlim); + assign_map.emplace("ExcDC2A.efd1", &assign_ExcDC2A_efd1); + assign_map.emplace("ExcDC2A.efd2", &assign_ExcDC2A_efd2); + assign_map.emplace("ExcDC2A.exclim", &assign_ExcDC2A_exclim); + assign_map.emplace("ExcDC2A.ka", &assign_ExcDC2A_ka); + assign_map.emplace("ExcDC2A.ke", &assign_ExcDC2A_ke); + assign_map.emplace("ExcDC2A.kf", &assign_ExcDC2A_kf); + assign_map.emplace("ExcDC2A.ks", &assign_ExcDC2A_ks); + assign_map.emplace("ExcDC2A.seefd1", &assign_ExcDC2A_seefd1); + assign_map.emplace("ExcDC2A.seefd2", &assign_ExcDC2A_seefd2); + assign_map.emplace("ExcDC2A.ta", &assign_ExcDC2A_ta); + assign_map.emplace("ExcDC2A.tb", &assign_ExcDC2A_tb); + assign_map.emplace("ExcDC2A.tc", &assign_ExcDC2A_tc); + assign_map.emplace("ExcDC2A.te", &assign_ExcDC2A_te); + assign_map.emplace("ExcDC2A.tf", &assign_ExcDC2A_tf); + assign_map.emplace("ExcDC2A.tf1", &assign_ExcDC2A_tf1); + assign_map.emplace("ExcDC2A.vrmax", &assign_ExcDC2A_vrmax); + assign_map.emplace("ExcDC2A.vrmin", &assign_ExcDC2A_vrmin); + assign_map.emplace("ExcDC2A.vtlim", &assign_ExcDC2A_vtlim); } void ExcDC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcDC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC2A.efd1", &get_ExcDC2A_efd1); - get_map.emplace("cim:ExcDC2A.efd2", &get_ExcDC2A_efd2); - get_map.emplace("cim:ExcDC2A.exclim", &get_ExcDC2A_exclim); - get_map.emplace("cim:ExcDC2A.ka", &get_ExcDC2A_ka); - get_map.emplace("cim:ExcDC2A.ke", &get_ExcDC2A_ke); - get_map.emplace("cim:ExcDC2A.kf", &get_ExcDC2A_kf); - get_map.emplace("cim:ExcDC2A.ks", &get_ExcDC2A_ks); - get_map.emplace("cim:ExcDC2A.seefd1", &get_ExcDC2A_seefd1); - get_map.emplace("cim:ExcDC2A.seefd2", &get_ExcDC2A_seefd2); - get_map.emplace("cim:ExcDC2A.ta", &get_ExcDC2A_ta); - get_map.emplace("cim:ExcDC2A.tb", &get_ExcDC2A_tb); - get_map.emplace("cim:ExcDC2A.tc", &get_ExcDC2A_tc); - get_map.emplace("cim:ExcDC2A.te", &get_ExcDC2A_te); - get_map.emplace("cim:ExcDC2A.tf", &get_ExcDC2A_tf); - get_map.emplace("cim:ExcDC2A.tf1", &get_ExcDC2A_tf1); - get_map.emplace("cim:ExcDC2A.vrmax", &get_ExcDC2A_vrmax); - get_map.emplace("cim:ExcDC2A.vrmin", &get_ExcDC2A_vrmin); - get_map.emplace("cim:ExcDC2A.vtlim", &get_ExcDC2A_vtlim); + get_map.emplace("ExcDC2A.efd1", &get_ExcDC2A_efd1); + get_map.emplace("ExcDC2A.efd2", &get_ExcDC2A_efd2); + get_map.emplace("ExcDC2A.exclim", &get_ExcDC2A_exclim); + get_map.emplace("ExcDC2A.ka", &get_ExcDC2A_ka); + get_map.emplace("ExcDC2A.ke", &get_ExcDC2A_ke); + get_map.emplace("ExcDC2A.kf", &get_ExcDC2A_kf); + get_map.emplace("ExcDC2A.ks", &get_ExcDC2A_ks); + get_map.emplace("ExcDC2A.seefd1", &get_ExcDC2A_seefd1); + get_map.emplace("ExcDC2A.seefd2", &get_ExcDC2A_seefd2); + get_map.emplace("ExcDC2A.ta", &get_ExcDC2A_ta); + get_map.emplace("ExcDC2A.tb", &get_ExcDC2A_tb); + get_map.emplace("ExcDC2A.tc", &get_ExcDC2A_tc); + get_map.emplace("ExcDC2A.te", &get_ExcDC2A_te); + get_map.emplace("ExcDC2A.tf", &get_ExcDC2A_tf); + get_map.emplace("ExcDC2A.tf1", &get_ExcDC2A_tf1); + get_map.emplace("ExcDC2A.vrmax", &get_ExcDC2A_vrmax); + get_map.emplace("ExcDC2A.vrmin", &get_ExcDC2A_vrmin); + get_map.emplace("ExcDC2A.vtlim", &get_ExcDC2A_vtlim); } void ExcDC2A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcDC2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC2A::declare() { return BaseClassDefiner(ExcDC2A::addConstructToMap, ExcDC2A::addPrimitiveAssignFnsToMap, ExcDC2A::addClassAssignFnsToMap, ExcDC2A::debugName); } +std::map ExcDC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC2A_factory() diff --git a/CGMES_3.0.0/ExcDC2A.hpp b/CGMES_3.0.0/ExcDC2A.hpp index 81dbb033e..fc92b5bcf 100644 --- a/CGMES_3.0.0/ExcDC2A.hpp +++ b/CGMES_3.0.0/ExcDC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -85,8 +86,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -94,7 +102,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC2A_factory(); diff --git a/CGMES_3.0.0/ExcDC3A.cpp b/CGMES_3.0.0/ExcDC3A.cpp index 777f5a332..04963953e 100644 --- a/CGMES_3.0.0/ExcDC3A.cpp +++ b/CGMES_3.0.0/ExcDC3A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC3A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC3A.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdlim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.efdmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.exclim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.kr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.kv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.trh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC3A::ExcDC3A() {} ExcDC3A::~ExcDC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC3A::getClassNamespaceUrl() const { - { "cim:ExcDC3A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdlim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.kv", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.trh", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC3A::getPossibleProfilesForClass() const +const std::string& ExcDC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC3A::getPossibleProfilesForAttributes() const +const std::list& ExcDC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC3A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcDC3A::debugString() const void ExcDC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC3A", &ExcDC3A_factory); + factory_map.emplace("ExcDC3A", &ExcDC3A_factory); } void ExcDC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC3A.efd1", &assign_ExcDC3A_efd1); - assign_map.emplace("cim:ExcDC3A.efd2", &assign_ExcDC3A_efd2); - assign_map.emplace("cim:ExcDC3A.efdlim", &assign_ExcDC3A_efdlim); - assign_map.emplace("cim:ExcDC3A.efdmax", &assign_ExcDC3A_efdmax); - assign_map.emplace("cim:ExcDC3A.efdmin", &assign_ExcDC3A_efdmin); - assign_map.emplace("cim:ExcDC3A.exclim", &assign_ExcDC3A_exclim); - assign_map.emplace("cim:ExcDC3A.ke", &assign_ExcDC3A_ke); - assign_map.emplace("cim:ExcDC3A.kr", &assign_ExcDC3A_kr); - assign_map.emplace("cim:ExcDC3A.ks", &assign_ExcDC3A_ks); - assign_map.emplace("cim:ExcDC3A.kv", &assign_ExcDC3A_kv); - assign_map.emplace("cim:ExcDC3A.seefd1", &assign_ExcDC3A_seefd1); - assign_map.emplace("cim:ExcDC3A.seefd2", &assign_ExcDC3A_seefd2); - assign_map.emplace("cim:ExcDC3A.te", &assign_ExcDC3A_te); - assign_map.emplace("cim:ExcDC3A.trh", &assign_ExcDC3A_trh); - assign_map.emplace("cim:ExcDC3A.vrmax", &assign_ExcDC3A_vrmax); - assign_map.emplace("cim:ExcDC3A.vrmin", &assign_ExcDC3A_vrmin); + assign_map.emplace("ExcDC3A.efd1", &assign_ExcDC3A_efd1); + assign_map.emplace("ExcDC3A.efd2", &assign_ExcDC3A_efd2); + assign_map.emplace("ExcDC3A.efdlim", &assign_ExcDC3A_efdlim); + assign_map.emplace("ExcDC3A.efdmax", &assign_ExcDC3A_efdmax); + assign_map.emplace("ExcDC3A.efdmin", &assign_ExcDC3A_efdmin); + assign_map.emplace("ExcDC3A.exclim", &assign_ExcDC3A_exclim); + assign_map.emplace("ExcDC3A.ke", &assign_ExcDC3A_ke); + assign_map.emplace("ExcDC3A.kr", &assign_ExcDC3A_kr); + assign_map.emplace("ExcDC3A.ks", &assign_ExcDC3A_ks); + assign_map.emplace("ExcDC3A.kv", &assign_ExcDC3A_kv); + assign_map.emplace("ExcDC3A.seefd1", &assign_ExcDC3A_seefd1); + assign_map.emplace("ExcDC3A.seefd2", &assign_ExcDC3A_seefd2); + assign_map.emplace("ExcDC3A.te", &assign_ExcDC3A_te); + assign_map.emplace("ExcDC3A.trh", &assign_ExcDC3A_trh); + assign_map.emplace("ExcDC3A.vrmax", &assign_ExcDC3A_vrmax); + assign_map.emplace("ExcDC3A.vrmin", &assign_ExcDC3A_vrmin); } void ExcDC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcDC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC3A.efd1", &get_ExcDC3A_efd1); - get_map.emplace("cim:ExcDC3A.efd2", &get_ExcDC3A_efd2); - get_map.emplace("cim:ExcDC3A.efdlim", &get_ExcDC3A_efdlim); - get_map.emplace("cim:ExcDC3A.efdmax", &get_ExcDC3A_efdmax); - get_map.emplace("cim:ExcDC3A.efdmin", &get_ExcDC3A_efdmin); - get_map.emplace("cim:ExcDC3A.exclim", &get_ExcDC3A_exclim); - get_map.emplace("cim:ExcDC3A.ke", &get_ExcDC3A_ke); - get_map.emplace("cim:ExcDC3A.kr", &get_ExcDC3A_kr); - get_map.emplace("cim:ExcDC3A.ks", &get_ExcDC3A_ks); - get_map.emplace("cim:ExcDC3A.kv", &get_ExcDC3A_kv); - get_map.emplace("cim:ExcDC3A.seefd1", &get_ExcDC3A_seefd1); - get_map.emplace("cim:ExcDC3A.seefd2", &get_ExcDC3A_seefd2); - get_map.emplace("cim:ExcDC3A.te", &get_ExcDC3A_te); - get_map.emplace("cim:ExcDC3A.trh", &get_ExcDC3A_trh); - get_map.emplace("cim:ExcDC3A.vrmax", &get_ExcDC3A_vrmax); - get_map.emplace("cim:ExcDC3A.vrmin", &get_ExcDC3A_vrmin); + get_map.emplace("ExcDC3A.efd1", &get_ExcDC3A_efd1); + get_map.emplace("ExcDC3A.efd2", &get_ExcDC3A_efd2); + get_map.emplace("ExcDC3A.efdlim", &get_ExcDC3A_efdlim); + get_map.emplace("ExcDC3A.efdmax", &get_ExcDC3A_efdmax); + get_map.emplace("ExcDC3A.efdmin", &get_ExcDC3A_efdmin); + get_map.emplace("ExcDC3A.exclim", &get_ExcDC3A_exclim); + get_map.emplace("ExcDC3A.ke", &get_ExcDC3A_ke); + get_map.emplace("ExcDC3A.kr", &get_ExcDC3A_kr); + get_map.emplace("ExcDC3A.ks", &get_ExcDC3A_ks); + get_map.emplace("ExcDC3A.kv", &get_ExcDC3A_kv); + get_map.emplace("ExcDC3A.seefd1", &get_ExcDC3A_seefd1); + get_map.emplace("ExcDC3A.seefd2", &get_ExcDC3A_seefd2); + get_map.emplace("ExcDC3A.te", &get_ExcDC3A_te); + get_map.emplace("ExcDC3A.trh", &get_ExcDC3A_trh); + get_map.emplace("ExcDC3A.vrmax", &get_ExcDC3A_vrmax); + get_map.emplace("ExcDC3A.vrmin", &get_ExcDC3A_vrmin); } void ExcDC3A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcDC3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC3A::declare() { return BaseClassDefiner(ExcDC3A::addConstructToMap, ExcDC3A::addPrimitiveAssignFnsToMap, ExcDC3A::addClassAssignFnsToMap, ExcDC3A::debugName); } +std::map ExcDC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC3A_factory() diff --git a/CGMES_3.0.0/ExcDC3A.hpp b/CGMES_3.0.0/ExcDC3A.hpp index 8587096e9..d159cf84a 100644 --- a/CGMES_3.0.0/ExcDC3A.hpp +++ b/CGMES_3.0.0/ExcDC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC3A_factory(); diff --git a/CGMES_3.0.0/ExcDC3A1.cpp b/CGMES_3.0.0/ExcDC3A1.cpp index 4d46a92b7..69c510338 100644 --- a/CGMES_3.0.0/ExcDC3A1.cpp +++ b/CGMES_3.0.0/ExcDC3A1.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcDC3A1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcDC3A1.exclim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vb1max", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vblim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vbmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcDC3A1.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcDC3A1::ExcDC3A1() {} ExcDC3A1::~ExcDC3A1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcDC3A1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcDC3A1::getClassNamespaceUrl() const { - { "cim:ExcDC3A1.exclim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ka", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ke", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.kf", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ki", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.kp", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.ta", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.te", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.tf", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vb1max", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vblim", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcDC3A1.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcDC3A1::getPossibleProfilesForClass() const +const std::string& ExcDC3A1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcDC3A1::getPossibleProfilesForAttributes() const +const std::list& ExcDC3A1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcDC3A1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcDC3A1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcDC3A1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcDC3A1_exclim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcDC3A1::debugString() const void ExcDC3A1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcDC3A1", &ExcDC3A1_factory); + factory_map.emplace("ExcDC3A1", &ExcDC3A1_factory); } void ExcDC3A1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcDC3A1.exclim", &assign_ExcDC3A1_exclim); - assign_map.emplace("cim:ExcDC3A1.ka", &assign_ExcDC3A1_ka); - assign_map.emplace("cim:ExcDC3A1.ke", &assign_ExcDC3A1_ke); - assign_map.emplace("cim:ExcDC3A1.kf", &assign_ExcDC3A1_kf); - assign_map.emplace("cim:ExcDC3A1.ki", &assign_ExcDC3A1_ki); - assign_map.emplace("cim:ExcDC3A1.kp", &assign_ExcDC3A1_kp); - assign_map.emplace("cim:ExcDC3A1.ta", &assign_ExcDC3A1_ta); - assign_map.emplace("cim:ExcDC3A1.te", &assign_ExcDC3A1_te); - assign_map.emplace("cim:ExcDC3A1.tf", &assign_ExcDC3A1_tf); - assign_map.emplace("cim:ExcDC3A1.vb1max", &assign_ExcDC3A1_vb1max); - assign_map.emplace("cim:ExcDC3A1.vblim", &assign_ExcDC3A1_vblim); - assign_map.emplace("cim:ExcDC3A1.vbmax", &assign_ExcDC3A1_vbmax); - assign_map.emplace("cim:ExcDC3A1.vrmax", &assign_ExcDC3A1_vrmax); - assign_map.emplace("cim:ExcDC3A1.vrmin", &assign_ExcDC3A1_vrmin); + assign_map.emplace("ExcDC3A1.exclim", &assign_ExcDC3A1_exclim); + assign_map.emplace("ExcDC3A1.ka", &assign_ExcDC3A1_ka); + assign_map.emplace("ExcDC3A1.ke", &assign_ExcDC3A1_ke); + assign_map.emplace("ExcDC3A1.kf", &assign_ExcDC3A1_kf); + assign_map.emplace("ExcDC3A1.ki", &assign_ExcDC3A1_ki); + assign_map.emplace("ExcDC3A1.kp", &assign_ExcDC3A1_kp); + assign_map.emplace("ExcDC3A1.ta", &assign_ExcDC3A1_ta); + assign_map.emplace("ExcDC3A1.te", &assign_ExcDC3A1_te); + assign_map.emplace("ExcDC3A1.tf", &assign_ExcDC3A1_tf); + assign_map.emplace("ExcDC3A1.vb1max", &assign_ExcDC3A1_vb1max); + assign_map.emplace("ExcDC3A1.vblim", &assign_ExcDC3A1_vblim); + assign_map.emplace("ExcDC3A1.vbmax", &assign_ExcDC3A1_vbmax); + assign_map.emplace("ExcDC3A1.vrmax", &assign_ExcDC3A1_vrmax); + assign_map.emplace("ExcDC3A1.vrmin", &assign_ExcDC3A1_vrmin); } void ExcDC3A1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcDC3A1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcDC3A1.exclim", &get_ExcDC3A1_exclim); - get_map.emplace("cim:ExcDC3A1.ka", &get_ExcDC3A1_ka); - get_map.emplace("cim:ExcDC3A1.ke", &get_ExcDC3A1_ke); - get_map.emplace("cim:ExcDC3A1.kf", &get_ExcDC3A1_kf); - get_map.emplace("cim:ExcDC3A1.ki", &get_ExcDC3A1_ki); - get_map.emplace("cim:ExcDC3A1.kp", &get_ExcDC3A1_kp); - get_map.emplace("cim:ExcDC3A1.ta", &get_ExcDC3A1_ta); - get_map.emplace("cim:ExcDC3A1.te", &get_ExcDC3A1_te); - get_map.emplace("cim:ExcDC3A1.tf", &get_ExcDC3A1_tf); - get_map.emplace("cim:ExcDC3A1.vb1max", &get_ExcDC3A1_vb1max); - get_map.emplace("cim:ExcDC3A1.vblim", &get_ExcDC3A1_vblim); - get_map.emplace("cim:ExcDC3A1.vbmax", &get_ExcDC3A1_vbmax); - get_map.emplace("cim:ExcDC3A1.vrmax", &get_ExcDC3A1_vrmax); - get_map.emplace("cim:ExcDC3A1.vrmin", &get_ExcDC3A1_vrmin); + get_map.emplace("ExcDC3A1.exclim", &get_ExcDC3A1_exclim); + get_map.emplace("ExcDC3A1.ka", &get_ExcDC3A1_ka); + get_map.emplace("ExcDC3A1.ke", &get_ExcDC3A1_ke); + get_map.emplace("ExcDC3A1.kf", &get_ExcDC3A1_kf); + get_map.emplace("ExcDC3A1.ki", &get_ExcDC3A1_ki); + get_map.emplace("ExcDC3A1.kp", &get_ExcDC3A1_kp); + get_map.emplace("ExcDC3A1.ta", &get_ExcDC3A1_ta); + get_map.emplace("ExcDC3A1.te", &get_ExcDC3A1_te); + get_map.emplace("ExcDC3A1.tf", &get_ExcDC3A1_tf); + get_map.emplace("ExcDC3A1.vb1max", &get_ExcDC3A1_vb1max); + get_map.emplace("ExcDC3A1.vblim", &get_ExcDC3A1_vblim); + get_map.emplace("ExcDC3A1.vbmax", &get_ExcDC3A1_vbmax); + get_map.emplace("ExcDC3A1.vrmax", &get_ExcDC3A1_vrmax); + get_map.emplace("ExcDC3A1.vrmin", &get_ExcDC3A1_vrmin); } void ExcDC3A1::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcDC3A1::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcDC3A1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcDC3A1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcDC3A1::declare() { return BaseClassDefiner(ExcDC3A1::addConstructToMap, ExcDC3A1::addPrimitiveAssignFnsToMap, ExcDC3A1::addClassAssignFnsToMap, ExcDC3A1::debugName); } +std::map ExcDC3A1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcDC3A1_factory() diff --git a/CGMES_3.0.0/ExcDC3A1.hpp b/CGMES_3.0.0/ExcDC3A1.hpp index c9c6daded..5aabdee4e 100644 --- a/CGMES_3.0.0/ExcDC3A1.hpp +++ b/CGMES_3.0.0/ExcDC3A1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcDC3A1_factory(); diff --git a/CGMES_3.0.0/ExcELIN1.cpp b/CGMES_3.0.0/ExcELIN1.cpp index 449d03fd8..3a5481950 100644 --- a/CGMES_3.0.0/ExcELIN1.cpp +++ b/CGMES_3.0.0/ExcELIN1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcELIN1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcELIN1.dpnf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.efmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.efmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ks1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ks2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.smax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tfi", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tnu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ts1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.ts2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.tsw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpi", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpnf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.vpu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN1.xe", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcELIN1::ExcELIN1() {} ExcELIN1::~ExcELIN1() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcELIN1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcELIN1::getClassNamespaceUrl() const { - { "cim:ExcELIN1.dpnf", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.efmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.efmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ks1", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ks2", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.smax", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tfi", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tnu", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ts1", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.ts2", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.tsw", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpi", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpnf", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.vpu", { CGMESProfile::DY, } }, - { "cim:ExcELIN1.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcELIN1::getPossibleProfilesForClass() const +const std::string& ExcELIN1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcELIN1::getPossibleProfilesForAttributes() const +const std::list& ExcELIN1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcELIN1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcELIN1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcELIN1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcELIN1_dpnf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcELIN1::debugString() const void ExcELIN1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcELIN1", &ExcELIN1_factory); + factory_map.emplace("ExcELIN1", &ExcELIN1_factory); } void ExcELIN1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcELIN1.dpnf", &assign_ExcELIN1_dpnf); - assign_map.emplace("cim:ExcELIN1.efmax", &assign_ExcELIN1_efmax); - assign_map.emplace("cim:ExcELIN1.efmin", &assign_ExcELIN1_efmin); - assign_map.emplace("cim:ExcELIN1.ks1", &assign_ExcELIN1_ks1); - assign_map.emplace("cim:ExcELIN1.ks2", &assign_ExcELIN1_ks2); - assign_map.emplace("cim:ExcELIN1.smax", &assign_ExcELIN1_smax); - assign_map.emplace("cim:ExcELIN1.tfi", &assign_ExcELIN1_tfi); - assign_map.emplace("cim:ExcELIN1.tnu", &assign_ExcELIN1_tnu); - assign_map.emplace("cim:ExcELIN1.ts1", &assign_ExcELIN1_ts1); - assign_map.emplace("cim:ExcELIN1.ts2", &assign_ExcELIN1_ts2); - assign_map.emplace("cim:ExcELIN1.tsw", &assign_ExcELIN1_tsw); - assign_map.emplace("cim:ExcELIN1.vpi", &assign_ExcELIN1_vpi); - assign_map.emplace("cim:ExcELIN1.vpnf", &assign_ExcELIN1_vpnf); - assign_map.emplace("cim:ExcELIN1.vpu", &assign_ExcELIN1_vpu); - assign_map.emplace("cim:ExcELIN1.xe", &assign_ExcELIN1_xe); + assign_map.emplace("ExcELIN1.dpnf", &assign_ExcELIN1_dpnf); + assign_map.emplace("ExcELIN1.efmax", &assign_ExcELIN1_efmax); + assign_map.emplace("ExcELIN1.efmin", &assign_ExcELIN1_efmin); + assign_map.emplace("ExcELIN1.ks1", &assign_ExcELIN1_ks1); + assign_map.emplace("ExcELIN1.ks2", &assign_ExcELIN1_ks2); + assign_map.emplace("ExcELIN1.smax", &assign_ExcELIN1_smax); + assign_map.emplace("ExcELIN1.tfi", &assign_ExcELIN1_tfi); + assign_map.emplace("ExcELIN1.tnu", &assign_ExcELIN1_tnu); + assign_map.emplace("ExcELIN1.ts1", &assign_ExcELIN1_ts1); + assign_map.emplace("ExcELIN1.ts2", &assign_ExcELIN1_ts2); + assign_map.emplace("ExcELIN1.tsw", &assign_ExcELIN1_tsw); + assign_map.emplace("ExcELIN1.vpi", &assign_ExcELIN1_vpi); + assign_map.emplace("ExcELIN1.vpnf", &assign_ExcELIN1_vpnf); + assign_map.emplace("ExcELIN1.vpu", &assign_ExcELIN1_vpu); + assign_map.emplace("ExcELIN1.xe", &assign_ExcELIN1_xe); } void ExcELIN1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void ExcELIN1::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcELIN1.dpnf", &get_ExcELIN1_dpnf); - get_map.emplace("cim:ExcELIN1.efmax", &get_ExcELIN1_efmax); - get_map.emplace("cim:ExcELIN1.efmin", &get_ExcELIN1_efmin); - get_map.emplace("cim:ExcELIN1.ks1", &get_ExcELIN1_ks1); - get_map.emplace("cim:ExcELIN1.ks2", &get_ExcELIN1_ks2); - get_map.emplace("cim:ExcELIN1.smax", &get_ExcELIN1_smax); - get_map.emplace("cim:ExcELIN1.tfi", &get_ExcELIN1_tfi); - get_map.emplace("cim:ExcELIN1.tnu", &get_ExcELIN1_tnu); - get_map.emplace("cim:ExcELIN1.ts1", &get_ExcELIN1_ts1); - get_map.emplace("cim:ExcELIN1.ts2", &get_ExcELIN1_ts2); - get_map.emplace("cim:ExcELIN1.tsw", &get_ExcELIN1_tsw); - get_map.emplace("cim:ExcELIN1.vpi", &get_ExcELIN1_vpi); - get_map.emplace("cim:ExcELIN1.vpnf", &get_ExcELIN1_vpnf); - get_map.emplace("cim:ExcELIN1.vpu", &get_ExcELIN1_vpu); - get_map.emplace("cim:ExcELIN1.xe", &get_ExcELIN1_xe); + get_map.emplace("ExcELIN1.dpnf", &get_ExcELIN1_dpnf); + get_map.emplace("ExcELIN1.efmax", &get_ExcELIN1_efmax); + get_map.emplace("ExcELIN1.efmin", &get_ExcELIN1_efmin); + get_map.emplace("ExcELIN1.ks1", &get_ExcELIN1_ks1); + get_map.emplace("ExcELIN1.ks2", &get_ExcELIN1_ks2); + get_map.emplace("ExcELIN1.smax", &get_ExcELIN1_smax); + get_map.emplace("ExcELIN1.tfi", &get_ExcELIN1_tfi); + get_map.emplace("ExcELIN1.tnu", &get_ExcELIN1_tnu); + get_map.emplace("ExcELIN1.ts1", &get_ExcELIN1_ts1); + get_map.emplace("ExcELIN1.ts2", &get_ExcELIN1_ts2); + get_map.emplace("ExcELIN1.tsw", &get_ExcELIN1_tsw); + get_map.emplace("ExcELIN1.vpi", &get_ExcELIN1_vpi); + get_map.emplace("ExcELIN1.vpnf", &get_ExcELIN1_vpnf); + get_map.emplace("ExcELIN1.vpu", &get_ExcELIN1_vpu); + get_map.emplace("ExcELIN1.xe", &get_ExcELIN1_xe); } void ExcELIN1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void ExcELIN1::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcELIN1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcELIN1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcELIN1::declare() { return BaseClassDefiner(ExcELIN1::addConstructToMap, ExcELIN1::addPrimitiveAssignFnsToMap, ExcELIN1::addClassAssignFnsToMap, ExcELIN1::debugName); } +std::map ExcELIN1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcELIN1_factory() diff --git a/CGMES_3.0.0/ExcELIN1.hpp b/CGMES_3.0.0/ExcELIN1.hpp index 0774128f3..894bbd005 100644 --- a/CGMES_3.0.0/ExcELIN1.hpp +++ b/CGMES_3.0.0/ExcELIN1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcELIN1_factory(); diff --git a/CGMES_3.0.0/ExcELIN2.cpp b/CGMES_3.0.0/ExcELIN2.cpp index afd309820..e0fe2627c 100644 --- a/CGMES_3.0.0/ExcELIN2.cpp +++ b/CGMES_3.0.0/ExcELIN2.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcELIN2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcELIN2.efdbas", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmax2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.iefmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k1ec", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.k4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.kd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ke2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ketb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.pid1max", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.tb1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.te2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ti4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.tr4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.upmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.upmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcELIN2.xp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcELIN2::ExcELIN2() {} ExcELIN2::~ExcELIN2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcELIN2.efdbas", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmax2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.iefmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k1ec", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k3", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.k4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.kd1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ke2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ketb", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.pid1max", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.seve1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.seve2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.tb1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.te", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.te2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti3", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ti4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.tr4", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.upmax", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.upmin", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ve1", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.ve2", { CGMESProfile::DY, } }, - { "cim:ExcELIN2.xp", { CGMESProfile::DY, } }, -}; - -std::list -ExcELIN2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcELIN2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcELIN2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcELIN2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcELIN2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcELIN2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcELIN2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcELIN2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcELIN2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcELIN2_efdbas(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* ExcELIN2::debugString() const void ExcELIN2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcELIN2", &ExcELIN2_factory); + factory_map.emplace("ExcELIN2", &ExcELIN2_factory); } void ExcELIN2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcELIN2.efdbas", &assign_ExcELIN2_efdbas); - assign_map.emplace("cim:ExcELIN2.iefmax", &assign_ExcELIN2_iefmax); - assign_map.emplace("cim:ExcELIN2.iefmax2", &assign_ExcELIN2_iefmax2); - assign_map.emplace("cim:ExcELIN2.iefmin", &assign_ExcELIN2_iefmin); - assign_map.emplace("cim:ExcELIN2.k1", &assign_ExcELIN2_k1); - assign_map.emplace("cim:ExcELIN2.k1ec", &assign_ExcELIN2_k1ec); - assign_map.emplace("cim:ExcELIN2.k2", &assign_ExcELIN2_k2); - assign_map.emplace("cim:ExcELIN2.k3", &assign_ExcELIN2_k3); - assign_map.emplace("cim:ExcELIN2.k4", &assign_ExcELIN2_k4); - assign_map.emplace("cim:ExcELIN2.kd1", &assign_ExcELIN2_kd1); - assign_map.emplace("cim:ExcELIN2.ke2", &assign_ExcELIN2_ke2); - assign_map.emplace("cim:ExcELIN2.ketb", &assign_ExcELIN2_ketb); - assign_map.emplace("cim:ExcELIN2.pid1max", &assign_ExcELIN2_pid1max); - assign_map.emplace("cim:ExcELIN2.seve1", &assign_ExcELIN2_seve1); - assign_map.emplace("cim:ExcELIN2.seve2", &assign_ExcELIN2_seve2); - assign_map.emplace("cim:ExcELIN2.tb1", &assign_ExcELIN2_tb1); - assign_map.emplace("cim:ExcELIN2.te", &assign_ExcELIN2_te); - assign_map.emplace("cim:ExcELIN2.te2", &assign_ExcELIN2_te2); - assign_map.emplace("cim:ExcELIN2.ti1", &assign_ExcELIN2_ti1); - assign_map.emplace("cim:ExcELIN2.ti3", &assign_ExcELIN2_ti3); - assign_map.emplace("cim:ExcELIN2.ti4", &assign_ExcELIN2_ti4); - assign_map.emplace("cim:ExcELIN2.tr4", &assign_ExcELIN2_tr4); - assign_map.emplace("cim:ExcELIN2.upmax", &assign_ExcELIN2_upmax); - assign_map.emplace("cim:ExcELIN2.upmin", &assign_ExcELIN2_upmin); - assign_map.emplace("cim:ExcELIN2.ve1", &assign_ExcELIN2_ve1); - assign_map.emplace("cim:ExcELIN2.ve2", &assign_ExcELIN2_ve2); - assign_map.emplace("cim:ExcELIN2.xp", &assign_ExcELIN2_xp); + assign_map.emplace("ExcELIN2.efdbas", &assign_ExcELIN2_efdbas); + assign_map.emplace("ExcELIN2.iefmax", &assign_ExcELIN2_iefmax); + assign_map.emplace("ExcELIN2.iefmax2", &assign_ExcELIN2_iefmax2); + assign_map.emplace("ExcELIN2.iefmin", &assign_ExcELIN2_iefmin); + assign_map.emplace("ExcELIN2.k1", &assign_ExcELIN2_k1); + assign_map.emplace("ExcELIN2.k1ec", &assign_ExcELIN2_k1ec); + assign_map.emplace("ExcELIN2.k2", &assign_ExcELIN2_k2); + assign_map.emplace("ExcELIN2.k3", &assign_ExcELIN2_k3); + assign_map.emplace("ExcELIN2.k4", &assign_ExcELIN2_k4); + assign_map.emplace("ExcELIN2.kd1", &assign_ExcELIN2_kd1); + assign_map.emplace("ExcELIN2.ke2", &assign_ExcELIN2_ke2); + assign_map.emplace("ExcELIN2.ketb", &assign_ExcELIN2_ketb); + assign_map.emplace("ExcELIN2.pid1max", &assign_ExcELIN2_pid1max); + assign_map.emplace("ExcELIN2.seve1", &assign_ExcELIN2_seve1); + assign_map.emplace("ExcELIN2.seve2", &assign_ExcELIN2_seve2); + assign_map.emplace("ExcELIN2.tb1", &assign_ExcELIN2_tb1); + assign_map.emplace("ExcELIN2.te", &assign_ExcELIN2_te); + assign_map.emplace("ExcELIN2.te2", &assign_ExcELIN2_te2); + assign_map.emplace("ExcELIN2.ti1", &assign_ExcELIN2_ti1); + assign_map.emplace("ExcELIN2.ti3", &assign_ExcELIN2_ti3); + assign_map.emplace("ExcELIN2.ti4", &assign_ExcELIN2_ti4); + assign_map.emplace("ExcELIN2.tr4", &assign_ExcELIN2_tr4); + assign_map.emplace("ExcELIN2.upmax", &assign_ExcELIN2_upmax); + assign_map.emplace("ExcELIN2.upmin", &assign_ExcELIN2_upmin); + assign_map.emplace("ExcELIN2.ve1", &assign_ExcELIN2_ve1); + assign_map.emplace("ExcELIN2.ve2", &assign_ExcELIN2_ve2); + assign_map.emplace("ExcELIN2.xp", &assign_ExcELIN2_xp); } void ExcELIN2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,33 +929,33 @@ void ExcELIN2::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcELIN2.efdbas", &get_ExcELIN2_efdbas); - get_map.emplace("cim:ExcELIN2.iefmax", &get_ExcELIN2_iefmax); - get_map.emplace("cim:ExcELIN2.iefmax2", &get_ExcELIN2_iefmax2); - get_map.emplace("cim:ExcELIN2.iefmin", &get_ExcELIN2_iefmin); - get_map.emplace("cim:ExcELIN2.k1", &get_ExcELIN2_k1); - get_map.emplace("cim:ExcELIN2.k1ec", &get_ExcELIN2_k1ec); - get_map.emplace("cim:ExcELIN2.k2", &get_ExcELIN2_k2); - get_map.emplace("cim:ExcELIN2.k3", &get_ExcELIN2_k3); - get_map.emplace("cim:ExcELIN2.k4", &get_ExcELIN2_k4); - get_map.emplace("cim:ExcELIN2.kd1", &get_ExcELIN2_kd1); - get_map.emplace("cim:ExcELIN2.ke2", &get_ExcELIN2_ke2); - get_map.emplace("cim:ExcELIN2.ketb", &get_ExcELIN2_ketb); - get_map.emplace("cim:ExcELIN2.pid1max", &get_ExcELIN2_pid1max); - get_map.emplace("cim:ExcELIN2.seve1", &get_ExcELIN2_seve1); - get_map.emplace("cim:ExcELIN2.seve2", &get_ExcELIN2_seve2); - get_map.emplace("cim:ExcELIN2.tb1", &get_ExcELIN2_tb1); - get_map.emplace("cim:ExcELIN2.te", &get_ExcELIN2_te); - get_map.emplace("cim:ExcELIN2.te2", &get_ExcELIN2_te2); - get_map.emplace("cim:ExcELIN2.ti1", &get_ExcELIN2_ti1); - get_map.emplace("cim:ExcELIN2.ti3", &get_ExcELIN2_ti3); - get_map.emplace("cim:ExcELIN2.ti4", &get_ExcELIN2_ti4); - get_map.emplace("cim:ExcELIN2.tr4", &get_ExcELIN2_tr4); - get_map.emplace("cim:ExcELIN2.upmax", &get_ExcELIN2_upmax); - get_map.emplace("cim:ExcELIN2.upmin", &get_ExcELIN2_upmin); - get_map.emplace("cim:ExcELIN2.ve1", &get_ExcELIN2_ve1); - get_map.emplace("cim:ExcELIN2.ve2", &get_ExcELIN2_ve2); - get_map.emplace("cim:ExcELIN2.xp", &get_ExcELIN2_xp); + get_map.emplace("ExcELIN2.efdbas", &get_ExcELIN2_efdbas); + get_map.emplace("ExcELIN2.iefmax", &get_ExcELIN2_iefmax); + get_map.emplace("ExcELIN2.iefmax2", &get_ExcELIN2_iefmax2); + get_map.emplace("ExcELIN2.iefmin", &get_ExcELIN2_iefmin); + get_map.emplace("ExcELIN2.k1", &get_ExcELIN2_k1); + get_map.emplace("ExcELIN2.k1ec", &get_ExcELIN2_k1ec); + get_map.emplace("ExcELIN2.k2", &get_ExcELIN2_k2); + get_map.emplace("ExcELIN2.k3", &get_ExcELIN2_k3); + get_map.emplace("ExcELIN2.k4", &get_ExcELIN2_k4); + get_map.emplace("ExcELIN2.kd1", &get_ExcELIN2_kd1); + get_map.emplace("ExcELIN2.ke2", &get_ExcELIN2_ke2); + get_map.emplace("ExcELIN2.ketb", &get_ExcELIN2_ketb); + get_map.emplace("ExcELIN2.pid1max", &get_ExcELIN2_pid1max); + get_map.emplace("ExcELIN2.seve1", &get_ExcELIN2_seve1); + get_map.emplace("ExcELIN2.seve2", &get_ExcELIN2_seve2); + get_map.emplace("ExcELIN2.tb1", &get_ExcELIN2_tb1); + get_map.emplace("ExcELIN2.te", &get_ExcELIN2_te); + get_map.emplace("ExcELIN2.te2", &get_ExcELIN2_te2); + get_map.emplace("ExcELIN2.ti1", &get_ExcELIN2_ti1); + get_map.emplace("ExcELIN2.ti3", &get_ExcELIN2_ti3); + get_map.emplace("ExcELIN2.ti4", &get_ExcELIN2_ti4); + get_map.emplace("ExcELIN2.tr4", &get_ExcELIN2_tr4); + get_map.emplace("ExcELIN2.upmax", &get_ExcELIN2_upmax); + get_map.emplace("ExcELIN2.upmin", &get_ExcELIN2_upmin); + get_map.emplace("ExcELIN2.ve1", &get_ExcELIN2_ve1); + get_map.emplace("ExcELIN2.ve2", &get_ExcELIN2_ve2); + get_map.emplace("ExcELIN2.xp", &get_ExcELIN2_xp); } void ExcELIN2::addClassGetFnsToMap(std::map& get_map) const @@ -936,11 +968,25 @@ void ExcELIN2::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcELIN2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcELIN2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcELIN2::declare() { return BaseClassDefiner(ExcELIN2::addConstructToMap, ExcELIN2::addPrimitiveAssignFnsToMap, ExcELIN2::addClassAssignFnsToMap, ExcELIN2::debugName); } +std::map ExcELIN2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcELIN2_factory() diff --git a/CGMES_3.0.0/ExcELIN2.hpp b/CGMES_3.0.0/ExcELIN2.hpp index e9741911a..c6080121e 100644 --- a/CGMES_3.0.0/ExcELIN2.hpp +++ b/CGMES_3.0.0/ExcELIN2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -110,8 +111,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -119,7 +127,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcELIN2_factory(); diff --git a/CGMES_3.0.0/ExcHU.cpp b/CGMES_3.0.0/ExcHU.cpp index d00bf89d8..41556d470 100644 --- a/CGMES_3.0.0/ExcHU.cpp +++ b/CGMES_3.0.0/ExcHU.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcHU(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcHU.ae", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.ai", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.atr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.emax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.emin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.imax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.imin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.ti", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcHU.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcHU::ExcHU() {} ExcHU::~ExcHU() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcHU::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcHU::getClassNamespaceUrl() const { - { "cim:ExcHU.ae", { CGMESProfile::DY, } }, - { "cim:ExcHU.ai", { CGMESProfile::DY, } }, - { "cim:ExcHU.atr", { CGMESProfile::DY, } }, - { "cim:ExcHU.emax", { CGMESProfile::DY, } }, - { "cim:ExcHU.emin", { CGMESProfile::DY, } }, - { "cim:ExcHU.imax", { CGMESProfile::DY, } }, - { "cim:ExcHU.imin", { CGMESProfile::DY, } }, - { "cim:ExcHU.ke", { CGMESProfile::DY, } }, - { "cim:ExcHU.ki", { CGMESProfile::DY, } }, - { "cim:ExcHU.te", { CGMESProfile::DY, } }, - { "cim:ExcHU.ti", { CGMESProfile::DY, } }, - { "cim:ExcHU.tr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcHU::getPossibleProfilesForClass() const +const std::string& ExcHU::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcHU::getPossibleProfilesForAttributes() const +const std::list& ExcHU::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcHU::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcHU::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcHU::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcHU_ae(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* ExcHU::debugString() const void ExcHU::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcHU", &ExcHU_factory); + factory_map.emplace("ExcHU", &ExcHU_factory); } void ExcHU::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcHU.ae", &assign_ExcHU_ae); - assign_map.emplace("cim:ExcHU.ai", &assign_ExcHU_ai); - assign_map.emplace("cim:ExcHU.atr", &assign_ExcHU_atr); - assign_map.emplace("cim:ExcHU.emax", &assign_ExcHU_emax); - assign_map.emplace("cim:ExcHU.emin", &assign_ExcHU_emin); - assign_map.emplace("cim:ExcHU.imax", &assign_ExcHU_imax); - assign_map.emplace("cim:ExcHU.imin", &assign_ExcHU_imin); - assign_map.emplace("cim:ExcHU.ke", &assign_ExcHU_ke); - assign_map.emplace("cim:ExcHU.ki", &assign_ExcHU_ki); - assign_map.emplace("cim:ExcHU.te", &assign_ExcHU_te); - assign_map.emplace("cim:ExcHU.ti", &assign_ExcHU_ti); - assign_map.emplace("cim:ExcHU.tr", &assign_ExcHU_tr); + assign_map.emplace("ExcHU.ae", &assign_ExcHU_ae); + assign_map.emplace("ExcHU.ai", &assign_ExcHU_ai); + assign_map.emplace("ExcHU.atr", &assign_ExcHU_atr); + assign_map.emplace("ExcHU.emax", &assign_ExcHU_emax); + assign_map.emplace("ExcHU.emin", &assign_ExcHU_emin); + assign_map.emplace("ExcHU.imax", &assign_ExcHU_imax); + assign_map.emplace("ExcHU.imin", &assign_ExcHU_imin); + assign_map.emplace("ExcHU.ke", &assign_ExcHU_ke); + assign_map.emplace("ExcHU.ki", &assign_ExcHU_ki); + assign_map.emplace("ExcHU.te", &assign_ExcHU_te); + assign_map.emplace("ExcHU.ti", &assign_ExcHU_ti); + assign_map.emplace("ExcHU.tr", &assign_ExcHU_tr); } void ExcHU::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void ExcHU::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcHU.ae", &get_ExcHU_ae); - get_map.emplace("cim:ExcHU.ai", &get_ExcHU_ai); - get_map.emplace("cim:ExcHU.atr", &get_ExcHU_atr); - get_map.emplace("cim:ExcHU.emax", &get_ExcHU_emax); - get_map.emplace("cim:ExcHU.emin", &get_ExcHU_emin); - get_map.emplace("cim:ExcHU.imax", &get_ExcHU_imax); - get_map.emplace("cim:ExcHU.imin", &get_ExcHU_imin); - get_map.emplace("cim:ExcHU.ke", &get_ExcHU_ke); - get_map.emplace("cim:ExcHU.ki", &get_ExcHU_ki); - get_map.emplace("cim:ExcHU.te", &get_ExcHU_te); - get_map.emplace("cim:ExcHU.ti", &get_ExcHU_ti); - get_map.emplace("cim:ExcHU.tr", &get_ExcHU_tr); + get_map.emplace("ExcHU.ae", &get_ExcHU_ae); + get_map.emplace("ExcHU.ai", &get_ExcHU_ai); + get_map.emplace("ExcHU.atr", &get_ExcHU_atr); + get_map.emplace("ExcHU.emax", &get_ExcHU_emax); + get_map.emplace("ExcHU.emin", &get_ExcHU_emin); + get_map.emplace("ExcHU.imax", &get_ExcHU_imax); + get_map.emplace("ExcHU.imin", &get_ExcHU_imin); + get_map.emplace("ExcHU.ke", &get_ExcHU_ke); + get_map.emplace("ExcHU.ki", &get_ExcHU_ki); + get_map.emplace("ExcHU.te", &get_ExcHU_te); + get_map.emplace("ExcHU.ti", &get_ExcHU_ti); + get_map.emplace("ExcHU.tr", &get_ExcHU_tr); } void ExcHU::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void ExcHU::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcHU::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcHU" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcHU::declare() { return BaseClassDefiner(ExcHU::addConstructToMap, ExcHU::addPrimitiveAssignFnsToMap, ExcHU::addClassAssignFnsToMap, ExcHU::debugName); } +std::map ExcHU::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcHU_factory() diff --git a/CGMES_3.0.0/ExcHU.hpp b/CGMES_3.0.0/ExcHU.hpp index 36c7273fb..e8aae41bd 100644 --- a/CGMES_3.0.0/ExcHU.hpp +++ b/CGMES_3.0.0/ExcHU.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcHU_factory(); diff --git a/CGMES_3.0.0/ExcIEEEAC1A.cpp b/CGMES_3.0.0/ExcIEEEAC1A.cpp index 9b4889e3d..acceeb1fe 100644 --- a/CGMES_3.0.0/ExcIEEEAC1A.cpp +++ b/CGMES_3.0.0/ExcIEEEAC1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC1A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC1A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC1A::ExcIEEEAC1A() {} ExcIEEEAC1A::~ExcIEEEAC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC1A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC1A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC1A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC1A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcIEEEAC1A::debugString() const void ExcIEEEAC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC1A", &ExcIEEEAC1A_factory); + factory_map.emplace("ExcIEEEAC1A", &ExcIEEEAC1A_factory); } void ExcIEEEAC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC1A.ka", &assign_ExcIEEEAC1A_ka); - assign_map.emplace("cim:ExcIEEEAC1A.kc", &assign_ExcIEEEAC1A_kc); - assign_map.emplace("cim:ExcIEEEAC1A.kd", &assign_ExcIEEEAC1A_kd); - assign_map.emplace("cim:ExcIEEEAC1A.ke", &assign_ExcIEEEAC1A_ke); - assign_map.emplace("cim:ExcIEEEAC1A.kf", &assign_ExcIEEEAC1A_kf); - assign_map.emplace("cim:ExcIEEEAC1A.seve1", &assign_ExcIEEEAC1A_seve1); - assign_map.emplace("cim:ExcIEEEAC1A.seve2", &assign_ExcIEEEAC1A_seve2); - assign_map.emplace("cim:ExcIEEEAC1A.ta", &assign_ExcIEEEAC1A_ta); - assign_map.emplace("cim:ExcIEEEAC1A.tb", &assign_ExcIEEEAC1A_tb); - assign_map.emplace("cim:ExcIEEEAC1A.tc", &assign_ExcIEEEAC1A_tc); - assign_map.emplace("cim:ExcIEEEAC1A.te", &assign_ExcIEEEAC1A_te); - assign_map.emplace("cim:ExcIEEEAC1A.tf", &assign_ExcIEEEAC1A_tf); - assign_map.emplace("cim:ExcIEEEAC1A.vamax", &assign_ExcIEEEAC1A_vamax); - assign_map.emplace("cim:ExcIEEEAC1A.vamin", &assign_ExcIEEEAC1A_vamin); - assign_map.emplace("cim:ExcIEEEAC1A.ve1", &assign_ExcIEEEAC1A_ve1); - assign_map.emplace("cim:ExcIEEEAC1A.ve2", &assign_ExcIEEEAC1A_ve2); - assign_map.emplace("cim:ExcIEEEAC1A.vrmax", &assign_ExcIEEEAC1A_vrmax); - assign_map.emplace("cim:ExcIEEEAC1A.vrmin", &assign_ExcIEEEAC1A_vrmin); + assign_map.emplace("ExcIEEEAC1A.ka", &assign_ExcIEEEAC1A_ka); + assign_map.emplace("ExcIEEEAC1A.kc", &assign_ExcIEEEAC1A_kc); + assign_map.emplace("ExcIEEEAC1A.kd", &assign_ExcIEEEAC1A_kd); + assign_map.emplace("ExcIEEEAC1A.ke", &assign_ExcIEEEAC1A_ke); + assign_map.emplace("ExcIEEEAC1A.kf", &assign_ExcIEEEAC1A_kf); + assign_map.emplace("ExcIEEEAC1A.seve1", &assign_ExcIEEEAC1A_seve1); + assign_map.emplace("ExcIEEEAC1A.seve2", &assign_ExcIEEEAC1A_seve2); + assign_map.emplace("ExcIEEEAC1A.ta", &assign_ExcIEEEAC1A_ta); + assign_map.emplace("ExcIEEEAC1A.tb", &assign_ExcIEEEAC1A_tb); + assign_map.emplace("ExcIEEEAC1A.tc", &assign_ExcIEEEAC1A_tc); + assign_map.emplace("ExcIEEEAC1A.te", &assign_ExcIEEEAC1A_te); + assign_map.emplace("ExcIEEEAC1A.tf", &assign_ExcIEEEAC1A_tf); + assign_map.emplace("ExcIEEEAC1A.vamax", &assign_ExcIEEEAC1A_vamax); + assign_map.emplace("ExcIEEEAC1A.vamin", &assign_ExcIEEEAC1A_vamin); + assign_map.emplace("ExcIEEEAC1A.ve1", &assign_ExcIEEEAC1A_ve1); + assign_map.emplace("ExcIEEEAC1A.ve2", &assign_ExcIEEEAC1A_ve2); + assign_map.emplace("ExcIEEEAC1A.vrmax", &assign_ExcIEEEAC1A_vrmax); + assign_map.emplace("ExcIEEEAC1A.vrmin", &assign_ExcIEEEAC1A_vrmin); } void ExcIEEEAC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcIEEEAC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC1A.ka", &get_ExcIEEEAC1A_ka); - get_map.emplace("cim:ExcIEEEAC1A.kc", &get_ExcIEEEAC1A_kc); - get_map.emplace("cim:ExcIEEEAC1A.kd", &get_ExcIEEEAC1A_kd); - get_map.emplace("cim:ExcIEEEAC1A.ke", &get_ExcIEEEAC1A_ke); - get_map.emplace("cim:ExcIEEEAC1A.kf", &get_ExcIEEEAC1A_kf); - get_map.emplace("cim:ExcIEEEAC1A.seve1", &get_ExcIEEEAC1A_seve1); - get_map.emplace("cim:ExcIEEEAC1A.seve2", &get_ExcIEEEAC1A_seve2); - get_map.emplace("cim:ExcIEEEAC1A.ta", &get_ExcIEEEAC1A_ta); - get_map.emplace("cim:ExcIEEEAC1A.tb", &get_ExcIEEEAC1A_tb); - get_map.emplace("cim:ExcIEEEAC1A.tc", &get_ExcIEEEAC1A_tc); - get_map.emplace("cim:ExcIEEEAC1A.te", &get_ExcIEEEAC1A_te); - get_map.emplace("cim:ExcIEEEAC1A.tf", &get_ExcIEEEAC1A_tf); - get_map.emplace("cim:ExcIEEEAC1A.vamax", &get_ExcIEEEAC1A_vamax); - get_map.emplace("cim:ExcIEEEAC1A.vamin", &get_ExcIEEEAC1A_vamin); - get_map.emplace("cim:ExcIEEEAC1A.ve1", &get_ExcIEEEAC1A_ve1); - get_map.emplace("cim:ExcIEEEAC1A.ve2", &get_ExcIEEEAC1A_ve2); - get_map.emplace("cim:ExcIEEEAC1A.vrmax", &get_ExcIEEEAC1A_vrmax); - get_map.emplace("cim:ExcIEEEAC1A.vrmin", &get_ExcIEEEAC1A_vrmin); + get_map.emplace("ExcIEEEAC1A.ka", &get_ExcIEEEAC1A_ka); + get_map.emplace("ExcIEEEAC1A.kc", &get_ExcIEEEAC1A_kc); + get_map.emplace("ExcIEEEAC1A.kd", &get_ExcIEEEAC1A_kd); + get_map.emplace("ExcIEEEAC1A.ke", &get_ExcIEEEAC1A_ke); + get_map.emplace("ExcIEEEAC1A.kf", &get_ExcIEEEAC1A_kf); + get_map.emplace("ExcIEEEAC1A.seve1", &get_ExcIEEEAC1A_seve1); + get_map.emplace("ExcIEEEAC1A.seve2", &get_ExcIEEEAC1A_seve2); + get_map.emplace("ExcIEEEAC1A.ta", &get_ExcIEEEAC1A_ta); + get_map.emplace("ExcIEEEAC1A.tb", &get_ExcIEEEAC1A_tb); + get_map.emplace("ExcIEEEAC1A.tc", &get_ExcIEEEAC1A_tc); + get_map.emplace("ExcIEEEAC1A.te", &get_ExcIEEEAC1A_te); + get_map.emplace("ExcIEEEAC1A.tf", &get_ExcIEEEAC1A_tf); + get_map.emplace("ExcIEEEAC1A.vamax", &get_ExcIEEEAC1A_vamax); + get_map.emplace("ExcIEEEAC1A.vamin", &get_ExcIEEEAC1A_vamin); + get_map.emplace("ExcIEEEAC1A.ve1", &get_ExcIEEEAC1A_ve1); + get_map.emplace("ExcIEEEAC1A.ve2", &get_ExcIEEEAC1A_ve2); + get_map.emplace("ExcIEEEAC1A.vrmax", &get_ExcIEEEAC1A_vrmax); + get_map.emplace("ExcIEEEAC1A.vrmin", &get_ExcIEEEAC1A_vrmin); } void ExcIEEEAC1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcIEEEAC1A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC1A::declare() { return BaseClassDefiner(ExcIEEEAC1A::addConstructToMap, ExcIEEEAC1A::addPrimitiveAssignFnsToMap, ExcIEEEAC1A::addClassAssignFnsToMap, ExcIEEEAC1A::debugName); } +std::map ExcIEEEAC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC1A_factory() diff --git a/CGMES_3.0.0/ExcIEEEAC1A.hpp b/CGMES_3.0.0/ExcIEEEAC1A.hpp index 44a856746..e8d0c9dd5 100644 --- a/CGMES_3.0.0/ExcIEEEAC1A.hpp +++ b/CGMES_3.0.0/ExcIEEEAC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC1A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEAC2A.cpp b/CGMES_3.0.0/ExcIEEEAC2A.cpp index a6f4da576..711995ae4 100644 --- a/CGMES_3.0.0/ExcIEEEAC2A.cpp +++ b/CGMES_3.0.0/ExcIEEEAC2A.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC2A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC2A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.kh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vfemax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC2A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC2A::ExcIEEEAC2A() {} ExcIEEEAC2A::~ExcIEEEAC2A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC2A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC2A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC2A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC2A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC2A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC2A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC2A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC2A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcIEEEAC2A::debugString() const void ExcIEEEAC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC2A", &ExcIEEEAC2A_factory); + factory_map.emplace("ExcIEEEAC2A", &ExcIEEEAC2A_factory); } void ExcIEEEAC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC2A.ka", &assign_ExcIEEEAC2A_ka); - assign_map.emplace("cim:ExcIEEEAC2A.kb", &assign_ExcIEEEAC2A_kb); - assign_map.emplace("cim:ExcIEEEAC2A.kc", &assign_ExcIEEEAC2A_kc); - assign_map.emplace("cim:ExcIEEEAC2A.kd", &assign_ExcIEEEAC2A_kd); - assign_map.emplace("cim:ExcIEEEAC2A.ke", &assign_ExcIEEEAC2A_ke); - assign_map.emplace("cim:ExcIEEEAC2A.kf", &assign_ExcIEEEAC2A_kf); - assign_map.emplace("cim:ExcIEEEAC2A.kh", &assign_ExcIEEEAC2A_kh); - assign_map.emplace("cim:ExcIEEEAC2A.seve1", &assign_ExcIEEEAC2A_seve1); - assign_map.emplace("cim:ExcIEEEAC2A.seve2", &assign_ExcIEEEAC2A_seve2); - assign_map.emplace("cim:ExcIEEEAC2A.ta", &assign_ExcIEEEAC2A_ta); - assign_map.emplace("cim:ExcIEEEAC2A.tb", &assign_ExcIEEEAC2A_tb); - assign_map.emplace("cim:ExcIEEEAC2A.tc", &assign_ExcIEEEAC2A_tc); - assign_map.emplace("cim:ExcIEEEAC2A.te", &assign_ExcIEEEAC2A_te); - assign_map.emplace("cim:ExcIEEEAC2A.tf", &assign_ExcIEEEAC2A_tf); - assign_map.emplace("cim:ExcIEEEAC2A.vamax", &assign_ExcIEEEAC2A_vamax); - assign_map.emplace("cim:ExcIEEEAC2A.vamin", &assign_ExcIEEEAC2A_vamin); - assign_map.emplace("cim:ExcIEEEAC2A.ve1", &assign_ExcIEEEAC2A_ve1); - assign_map.emplace("cim:ExcIEEEAC2A.ve2", &assign_ExcIEEEAC2A_ve2); - assign_map.emplace("cim:ExcIEEEAC2A.vfemax", &assign_ExcIEEEAC2A_vfemax); - assign_map.emplace("cim:ExcIEEEAC2A.vrmax", &assign_ExcIEEEAC2A_vrmax); - assign_map.emplace("cim:ExcIEEEAC2A.vrmin", &assign_ExcIEEEAC2A_vrmin); + assign_map.emplace("ExcIEEEAC2A.ka", &assign_ExcIEEEAC2A_ka); + assign_map.emplace("ExcIEEEAC2A.kb", &assign_ExcIEEEAC2A_kb); + assign_map.emplace("ExcIEEEAC2A.kc", &assign_ExcIEEEAC2A_kc); + assign_map.emplace("ExcIEEEAC2A.kd", &assign_ExcIEEEAC2A_kd); + assign_map.emplace("ExcIEEEAC2A.ke", &assign_ExcIEEEAC2A_ke); + assign_map.emplace("ExcIEEEAC2A.kf", &assign_ExcIEEEAC2A_kf); + assign_map.emplace("ExcIEEEAC2A.kh", &assign_ExcIEEEAC2A_kh); + assign_map.emplace("ExcIEEEAC2A.seve1", &assign_ExcIEEEAC2A_seve1); + assign_map.emplace("ExcIEEEAC2A.seve2", &assign_ExcIEEEAC2A_seve2); + assign_map.emplace("ExcIEEEAC2A.ta", &assign_ExcIEEEAC2A_ta); + assign_map.emplace("ExcIEEEAC2A.tb", &assign_ExcIEEEAC2A_tb); + assign_map.emplace("ExcIEEEAC2A.tc", &assign_ExcIEEEAC2A_tc); + assign_map.emplace("ExcIEEEAC2A.te", &assign_ExcIEEEAC2A_te); + assign_map.emplace("ExcIEEEAC2A.tf", &assign_ExcIEEEAC2A_tf); + assign_map.emplace("ExcIEEEAC2A.vamax", &assign_ExcIEEEAC2A_vamax); + assign_map.emplace("ExcIEEEAC2A.vamin", &assign_ExcIEEEAC2A_vamin); + assign_map.emplace("ExcIEEEAC2A.ve1", &assign_ExcIEEEAC2A_ve1); + assign_map.emplace("ExcIEEEAC2A.ve2", &assign_ExcIEEEAC2A_ve2); + assign_map.emplace("ExcIEEEAC2A.vfemax", &assign_ExcIEEEAC2A_vfemax); + assign_map.emplace("ExcIEEEAC2A.vrmax", &assign_ExcIEEEAC2A_vrmax); + assign_map.emplace("ExcIEEEAC2A.vrmin", &assign_ExcIEEEAC2A_vrmin); } void ExcIEEEAC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcIEEEAC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC2A.ka", &get_ExcIEEEAC2A_ka); - get_map.emplace("cim:ExcIEEEAC2A.kb", &get_ExcIEEEAC2A_kb); - get_map.emplace("cim:ExcIEEEAC2A.kc", &get_ExcIEEEAC2A_kc); - get_map.emplace("cim:ExcIEEEAC2A.kd", &get_ExcIEEEAC2A_kd); - get_map.emplace("cim:ExcIEEEAC2A.ke", &get_ExcIEEEAC2A_ke); - get_map.emplace("cim:ExcIEEEAC2A.kf", &get_ExcIEEEAC2A_kf); - get_map.emplace("cim:ExcIEEEAC2A.kh", &get_ExcIEEEAC2A_kh); - get_map.emplace("cim:ExcIEEEAC2A.seve1", &get_ExcIEEEAC2A_seve1); - get_map.emplace("cim:ExcIEEEAC2A.seve2", &get_ExcIEEEAC2A_seve2); - get_map.emplace("cim:ExcIEEEAC2A.ta", &get_ExcIEEEAC2A_ta); - get_map.emplace("cim:ExcIEEEAC2A.tb", &get_ExcIEEEAC2A_tb); - get_map.emplace("cim:ExcIEEEAC2A.tc", &get_ExcIEEEAC2A_tc); - get_map.emplace("cim:ExcIEEEAC2A.te", &get_ExcIEEEAC2A_te); - get_map.emplace("cim:ExcIEEEAC2A.tf", &get_ExcIEEEAC2A_tf); - get_map.emplace("cim:ExcIEEEAC2A.vamax", &get_ExcIEEEAC2A_vamax); - get_map.emplace("cim:ExcIEEEAC2A.vamin", &get_ExcIEEEAC2A_vamin); - get_map.emplace("cim:ExcIEEEAC2A.ve1", &get_ExcIEEEAC2A_ve1); - get_map.emplace("cim:ExcIEEEAC2A.ve2", &get_ExcIEEEAC2A_ve2); - get_map.emplace("cim:ExcIEEEAC2A.vfemax", &get_ExcIEEEAC2A_vfemax); - get_map.emplace("cim:ExcIEEEAC2A.vrmax", &get_ExcIEEEAC2A_vrmax); - get_map.emplace("cim:ExcIEEEAC2A.vrmin", &get_ExcIEEEAC2A_vrmin); + get_map.emplace("ExcIEEEAC2A.ka", &get_ExcIEEEAC2A_ka); + get_map.emplace("ExcIEEEAC2A.kb", &get_ExcIEEEAC2A_kb); + get_map.emplace("ExcIEEEAC2A.kc", &get_ExcIEEEAC2A_kc); + get_map.emplace("ExcIEEEAC2A.kd", &get_ExcIEEEAC2A_kd); + get_map.emplace("ExcIEEEAC2A.ke", &get_ExcIEEEAC2A_ke); + get_map.emplace("ExcIEEEAC2A.kf", &get_ExcIEEEAC2A_kf); + get_map.emplace("ExcIEEEAC2A.kh", &get_ExcIEEEAC2A_kh); + get_map.emplace("ExcIEEEAC2A.seve1", &get_ExcIEEEAC2A_seve1); + get_map.emplace("ExcIEEEAC2A.seve2", &get_ExcIEEEAC2A_seve2); + get_map.emplace("ExcIEEEAC2A.ta", &get_ExcIEEEAC2A_ta); + get_map.emplace("ExcIEEEAC2A.tb", &get_ExcIEEEAC2A_tb); + get_map.emplace("ExcIEEEAC2A.tc", &get_ExcIEEEAC2A_tc); + get_map.emplace("ExcIEEEAC2A.te", &get_ExcIEEEAC2A_te); + get_map.emplace("ExcIEEEAC2A.tf", &get_ExcIEEEAC2A_tf); + get_map.emplace("ExcIEEEAC2A.vamax", &get_ExcIEEEAC2A_vamax); + get_map.emplace("ExcIEEEAC2A.vamin", &get_ExcIEEEAC2A_vamin); + get_map.emplace("ExcIEEEAC2A.ve1", &get_ExcIEEEAC2A_ve1); + get_map.emplace("ExcIEEEAC2A.ve2", &get_ExcIEEEAC2A_ve2); + get_map.emplace("ExcIEEEAC2A.vfemax", &get_ExcIEEEAC2A_vfemax); + get_map.emplace("ExcIEEEAC2A.vrmax", &get_ExcIEEEAC2A_vrmax); + get_map.emplace("ExcIEEEAC2A.vrmin", &get_ExcIEEEAC2A_vrmin); } void ExcIEEEAC2A::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcIEEEAC2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC2A::declare() { return BaseClassDefiner(ExcIEEEAC2A::addConstructToMap, ExcIEEEAC2A::addPrimitiveAssignFnsToMap, ExcIEEEAC2A::addClassAssignFnsToMap, ExcIEEEAC2A::debugName); } +std::map ExcIEEEAC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC2A_factory() diff --git a/CGMES_3.0.0/ExcIEEEAC2A.hpp b/CGMES_3.0.0/ExcIEEEAC2A.hpp index 73733adcc..fddc9a205 100644 --- a/CGMES_3.0.0/ExcIEEEAC2A.hpp +++ b/CGMES_3.0.0/ExcIEEEAC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC2A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEAC3A.cpp b/CGMES_3.0.0/ExcIEEEAC3A.cpp index a75fa053b..17cd695f5 100644 --- a/CGMES_3.0.0/ExcIEEEAC3A.cpp +++ b/CGMES_3.0.0/ExcIEEEAC3A.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC3A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC3A.efdn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.kr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vemin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC3A.vfemax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC3A::ExcIEEEAC3A() {} ExcIEEEAC3A::~ExcIEEEAC3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC3A.efdn", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kn", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.kr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC3A.vfemax", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC3A_efdn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* ExcIEEEAC3A::debugString() const void ExcIEEEAC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC3A", &ExcIEEEAC3A_factory); + factory_map.emplace("ExcIEEEAC3A", &ExcIEEEAC3A_factory); } void ExcIEEEAC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC3A.efdn", &assign_ExcIEEEAC3A_efdn); - assign_map.emplace("cim:ExcIEEEAC3A.ka", &assign_ExcIEEEAC3A_ka); - assign_map.emplace("cim:ExcIEEEAC3A.kc", &assign_ExcIEEEAC3A_kc); - assign_map.emplace("cim:ExcIEEEAC3A.kd", &assign_ExcIEEEAC3A_kd); - assign_map.emplace("cim:ExcIEEEAC3A.ke", &assign_ExcIEEEAC3A_ke); - assign_map.emplace("cim:ExcIEEEAC3A.kf", &assign_ExcIEEEAC3A_kf); - assign_map.emplace("cim:ExcIEEEAC3A.kn", &assign_ExcIEEEAC3A_kn); - assign_map.emplace("cim:ExcIEEEAC3A.kr", &assign_ExcIEEEAC3A_kr); - assign_map.emplace("cim:ExcIEEEAC3A.seve1", &assign_ExcIEEEAC3A_seve1); - assign_map.emplace("cim:ExcIEEEAC3A.seve2", &assign_ExcIEEEAC3A_seve2); - assign_map.emplace("cim:ExcIEEEAC3A.ta", &assign_ExcIEEEAC3A_ta); - assign_map.emplace("cim:ExcIEEEAC3A.tb", &assign_ExcIEEEAC3A_tb); - assign_map.emplace("cim:ExcIEEEAC3A.tc", &assign_ExcIEEEAC3A_tc); - assign_map.emplace("cim:ExcIEEEAC3A.te", &assign_ExcIEEEAC3A_te); - assign_map.emplace("cim:ExcIEEEAC3A.tf", &assign_ExcIEEEAC3A_tf); - assign_map.emplace("cim:ExcIEEEAC3A.vamax", &assign_ExcIEEEAC3A_vamax); - assign_map.emplace("cim:ExcIEEEAC3A.vamin", &assign_ExcIEEEAC3A_vamin); - assign_map.emplace("cim:ExcIEEEAC3A.ve1", &assign_ExcIEEEAC3A_ve1); - assign_map.emplace("cim:ExcIEEEAC3A.ve2", &assign_ExcIEEEAC3A_ve2); - assign_map.emplace("cim:ExcIEEEAC3A.vemin", &assign_ExcIEEEAC3A_vemin); - assign_map.emplace("cim:ExcIEEEAC3A.vfemax", &assign_ExcIEEEAC3A_vfemax); + assign_map.emplace("ExcIEEEAC3A.efdn", &assign_ExcIEEEAC3A_efdn); + assign_map.emplace("ExcIEEEAC3A.ka", &assign_ExcIEEEAC3A_ka); + assign_map.emplace("ExcIEEEAC3A.kc", &assign_ExcIEEEAC3A_kc); + assign_map.emplace("ExcIEEEAC3A.kd", &assign_ExcIEEEAC3A_kd); + assign_map.emplace("ExcIEEEAC3A.ke", &assign_ExcIEEEAC3A_ke); + assign_map.emplace("ExcIEEEAC3A.kf", &assign_ExcIEEEAC3A_kf); + assign_map.emplace("ExcIEEEAC3A.kn", &assign_ExcIEEEAC3A_kn); + assign_map.emplace("ExcIEEEAC3A.kr", &assign_ExcIEEEAC3A_kr); + assign_map.emplace("ExcIEEEAC3A.seve1", &assign_ExcIEEEAC3A_seve1); + assign_map.emplace("ExcIEEEAC3A.seve2", &assign_ExcIEEEAC3A_seve2); + assign_map.emplace("ExcIEEEAC3A.ta", &assign_ExcIEEEAC3A_ta); + assign_map.emplace("ExcIEEEAC3A.tb", &assign_ExcIEEEAC3A_tb); + assign_map.emplace("ExcIEEEAC3A.tc", &assign_ExcIEEEAC3A_tc); + assign_map.emplace("ExcIEEEAC3A.te", &assign_ExcIEEEAC3A_te); + assign_map.emplace("ExcIEEEAC3A.tf", &assign_ExcIEEEAC3A_tf); + assign_map.emplace("ExcIEEEAC3A.vamax", &assign_ExcIEEEAC3A_vamax); + assign_map.emplace("ExcIEEEAC3A.vamin", &assign_ExcIEEEAC3A_vamin); + assign_map.emplace("ExcIEEEAC3A.ve1", &assign_ExcIEEEAC3A_ve1); + assign_map.emplace("ExcIEEEAC3A.ve2", &assign_ExcIEEEAC3A_ve2); + assign_map.emplace("ExcIEEEAC3A.vemin", &assign_ExcIEEEAC3A_vemin); + assign_map.emplace("ExcIEEEAC3A.vfemax", &assign_ExcIEEEAC3A_vfemax); } void ExcIEEEAC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void ExcIEEEAC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC3A.efdn", &get_ExcIEEEAC3A_efdn); - get_map.emplace("cim:ExcIEEEAC3A.ka", &get_ExcIEEEAC3A_ka); - get_map.emplace("cim:ExcIEEEAC3A.kc", &get_ExcIEEEAC3A_kc); - get_map.emplace("cim:ExcIEEEAC3A.kd", &get_ExcIEEEAC3A_kd); - get_map.emplace("cim:ExcIEEEAC3A.ke", &get_ExcIEEEAC3A_ke); - get_map.emplace("cim:ExcIEEEAC3A.kf", &get_ExcIEEEAC3A_kf); - get_map.emplace("cim:ExcIEEEAC3A.kn", &get_ExcIEEEAC3A_kn); - get_map.emplace("cim:ExcIEEEAC3A.kr", &get_ExcIEEEAC3A_kr); - get_map.emplace("cim:ExcIEEEAC3A.seve1", &get_ExcIEEEAC3A_seve1); - get_map.emplace("cim:ExcIEEEAC3A.seve2", &get_ExcIEEEAC3A_seve2); - get_map.emplace("cim:ExcIEEEAC3A.ta", &get_ExcIEEEAC3A_ta); - get_map.emplace("cim:ExcIEEEAC3A.tb", &get_ExcIEEEAC3A_tb); - get_map.emplace("cim:ExcIEEEAC3A.tc", &get_ExcIEEEAC3A_tc); - get_map.emplace("cim:ExcIEEEAC3A.te", &get_ExcIEEEAC3A_te); - get_map.emplace("cim:ExcIEEEAC3A.tf", &get_ExcIEEEAC3A_tf); - get_map.emplace("cim:ExcIEEEAC3A.vamax", &get_ExcIEEEAC3A_vamax); - get_map.emplace("cim:ExcIEEEAC3A.vamin", &get_ExcIEEEAC3A_vamin); - get_map.emplace("cim:ExcIEEEAC3A.ve1", &get_ExcIEEEAC3A_ve1); - get_map.emplace("cim:ExcIEEEAC3A.ve2", &get_ExcIEEEAC3A_ve2); - get_map.emplace("cim:ExcIEEEAC3A.vemin", &get_ExcIEEEAC3A_vemin); - get_map.emplace("cim:ExcIEEEAC3A.vfemax", &get_ExcIEEEAC3A_vfemax); + get_map.emplace("ExcIEEEAC3A.efdn", &get_ExcIEEEAC3A_efdn); + get_map.emplace("ExcIEEEAC3A.ka", &get_ExcIEEEAC3A_ka); + get_map.emplace("ExcIEEEAC3A.kc", &get_ExcIEEEAC3A_kc); + get_map.emplace("ExcIEEEAC3A.kd", &get_ExcIEEEAC3A_kd); + get_map.emplace("ExcIEEEAC3A.ke", &get_ExcIEEEAC3A_ke); + get_map.emplace("ExcIEEEAC3A.kf", &get_ExcIEEEAC3A_kf); + get_map.emplace("ExcIEEEAC3A.kn", &get_ExcIEEEAC3A_kn); + get_map.emplace("ExcIEEEAC3A.kr", &get_ExcIEEEAC3A_kr); + get_map.emplace("ExcIEEEAC3A.seve1", &get_ExcIEEEAC3A_seve1); + get_map.emplace("ExcIEEEAC3A.seve2", &get_ExcIEEEAC3A_seve2); + get_map.emplace("ExcIEEEAC3A.ta", &get_ExcIEEEAC3A_ta); + get_map.emplace("ExcIEEEAC3A.tb", &get_ExcIEEEAC3A_tb); + get_map.emplace("ExcIEEEAC3A.tc", &get_ExcIEEEAC3A_tc); + get_map.emplace("ExcIEEEAC3A.te", &get_ExcIEEEAC3A_te); + get_map.emplace("ExcIEEEAC3A.tf", &get_ExcIEEEAC3A_tf); + get_map.emplace("ExcIEEEAC3A.vamax", &get_ExcIEEEAC3A_vamax); + get_map.emplace("ExcIEEEAC3A.vamin", &get_ExcIEEEAC3A_vamin); + get_map.emplace("ExcIEEEAC3A.ve1", &get_ExcIEEEAC3A_ve1); + get_map.emplace("ExcIEEEAC3A.ve2", &get_ExcIEEEAC3A_ve2); + get_map.emplace("ExcIEEEAC3A.vemin", &get_ExcIEEEAC3A_vemin); + get_map.emplace("ExcIEEEAC3A.vfemax", &get_ExcIEEEAC3A_vfemax); } void ExcIEEEAC3A::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void ExcIEEEAC3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC3A::declare() { return BaseClassDefiner(ExcIEEEAC3A::addConstructToMap, ExcIEEEAC3A::addPrimitiveAssignFnsToMap, ExcIEEEAC3A::addClassAssignFnsToMap, ExcIEEEAC3A::debugName); } +std::map ExcIEEEAC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC3A_factory() diff --git a/CGMES_3.0.0/ExcIEEEAC3A.hpp b/CGMES_3.0.0/ExcIEEEAC3A.hpp index 352281bbf..9051754fc 100644 --- a/CGMES_3.0.0/ExcIEEEAC3A.hpp +++ b/CGMES_3.0.0/ExcIEEEAC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC3A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEAC4A.cpp b/CGMES_3.0.0/ExcIEEEAC4A.cpp index e1510a699..0aeac73c1 100644 --- a/CGMES_3.0.0/ExcIEEEAC4A.cpp +++ b/CGMES_3.0.0/ExcIEEEAC4A.cpp @@ -11,40 +11,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC4A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC4A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC4A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC4A::ExcIEEEAC4A() {} ExcIEEEAC4A::~ExcIEEEAC4A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC4A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC4A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC4A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC4A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC4A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC4A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC4A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC4A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC4A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC4A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC4A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC4A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -316,20 +348,20 @@ const char* ExcIEEEAC4A::debugString() const void ExcIEEEAC4A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC4A", &ExcIEEEAC4A_factory); + factory_map.emplace("ExcIEEEAC4A", &ExcIEEEAC4A_factory); } void ExcIEEEAC4A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC4A.ka", &assign_ExcIEEEAC4A_ka); - assign_map.emplace("cim:ExcIEEEAC4A.kc", &assign_ExcIEEEAC4A_kc); - assign_map.emplace("cim:ExcIEEEAC4A.ta", &assign_ExcIEEEAC4A_ta); - assign_map.emplace("cim:ExcIEEEAC4A.tb", &assign_ExcIEEEAC4A_tb); - assign_map.emplace("cim:ExcIEEEAC4A.tc", &assign_ExcIEEEAC4A_tc); - assign_map.emplace("cim:ExcIEEEAC4A.vimax", &assign_ExcIEEEAC4A_vimax); - assign_map.emplace("cim:ExcIEEEAC4A.vimin", &assign_ExcIEEEAC4A_vimin); - assign_map.emplace("cim:ExcIEEEAC4A.vrmax", &assign_ExcIEEEAC4A_vrmax); - assign_map.emplace("cim:ExcIEEEAC4A.vrmin", &assign_ExcIEEEAC4A_vrmin); + assign_map.emplace("ExcIEEEAC4A.ka", &assign_ExcIEEEAC4A_ka); + assign_map.emplace("ExcIEEEAC4A.kc", &assign_ExcIEEEAC4A_kc); + assign_map.emplace("ExcIEEEAC4A.ta", &assign_ExcIEEEAC4A_ta); + assign_map.emplace("ExcIEEEAC4A.tb", &assign_ExcIEEEAC4A_tb); + assign_map.emplace("ExcIEEEAC4A.tc", &assign_ExcIEEEAC4A_tc); + assign_map.emplace("ExcIEEEAC4A.vimax", &assign_ExcIEEEAC4A_vimax); + assign_map.emplace("ExcIEEEAC4A.vimin", &assign_ExcIEEEAC4A_vimin); + assign_map.emplace("ExcIEEEAC4A.vrmax", &assign_ExcIEEEAC4A_vrmax); + assign_map.emplace("ExcIEEEAC4A.vrmin", &assign_ExcIEEEAC4A_vrmin); } void ExcIEEEAC4A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -339,15 +371,15 @@ void ExcIEEEAC4A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC4A.ka", &get_ExcIEEEAC4A_ka); - get_map.emplace("cim:ExcIEEEAC4A.kc", &get_ExcIEEEAC4A_kc); - get_map.emplace("cim:ExcIEEEAC4A.ta", &get_ExcIEEEAC4A_ta); - get_map.emplace("cim:ExcIEEEAC4A.tb", &get_ExcIEEEAC4A_tb); - get_map.emplace("cim:ExcIEEEAC4A.tc", &get_ExcIEEEAC4A_tc); - get_map.emplace("cim:ExcIEEEAC4A.vimax", &get_ExcIEEEAC4A_vimax); - get_map.emplace("cim:ExcIEEEAC4A.vimin", &get_ExcIEEEAC4A_vimin); - get_map.emplace("cim:ExcIEEEAC4A.vrmax", &get_ExcIEEEAC4A_vrmax); - get_map.emplace("cim:ExcIEEEAC4A.vrmin", &get_ExcIEEEAC4A_vrmin); + get_map.emplace("ExcIEEEAC4A.ka", &get_ExcIEEEAC4A_ka); + get_map.emplace("ExcIEEEAC4A.kc", &get_ExcIEEEAC4A_kc); + get_map.emplace("ExcIEEEAC4A.ta", &get_ExcIEEEAC4A_ta); + get_map.emplace("ExcIEEEAC4A.tb", &get_ExcIEEEAC4A_tb); + get_map.emplace("ExcIEEEAC4A.tc", &get_ExcIEEEAC4A_tc); + get_map.emplace("ExcIEEEAC4A.vimax", &get_ExcIEEEAC4A_vimax); + get_map.emplace("ExcIEEEAC4A.vimin", &get_ExcIEEEAC4A_vimin); + get_map.emplace("ExcIEEEAC4A.vrmax", &get_ExcIEEEAC4A_vrmax); + get_map.emplace("ExcIEEEAC4A.vrmin", &get_ExcIEEEAC4A_vrmin); } void ExcIEEEAC4A::addClassGetFnsToMap(std::map& get_map) const @@ -360,11 +392,25 @@ void ExcIEEEAC4A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC4A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC4A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC4A::declare() { return BaseClassDefiner(ExcIEEEAC4A::addConstructToMap, ExcIEEEAC4A::addPrimitiveAssignFnsToMap, ExcIEEEAC4A::addClassAssignFnsToMap, ExcIEEEAC4A::debugName); } +std::map ExcIEEEAC4A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC4A_factory() diff --git a/CGMES_3.0.0/ExcIEEEAC4A.hpp b/CGMES_3.0.0/ExcIEEEAC4A.hpp index 0c876a092..354f33398 100644 --- a/CGMES_3.0.0/ExcIEEEAC4A.hpp +++ b/CGMES_3.0.0/ExcIEEEAC4A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -56,8 +57,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -65,7 +73,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC4A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEAC5A.cpp b/CGMES_3.0.0/ExcIEEEAC5A.cpp index 8187407bd..822d0c490 100644 --- a/CGMES_3.0.0/ExcIEEEAC5A.cpp +++ b/CGMES_3.0.0/ExcIEEEAC5A.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC5A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC5A.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.tf3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC5A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC5A::ExcIEEEAC5A() {} ExcIEEEAC5A::~ExcIEEEAC5A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC5A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC5A::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC5A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.tf3", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC5A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC5A::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC5A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC5A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC5A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC5A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC5A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC5A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC5A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcIEEEAC5A::debugString() const void ExcIEEEAC5A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC5A", &ExcIEEEAC5A_factory); + factory_map.emplace("ExcIEEEAC5A", &ExcIEEEAC5A_factory); } void ExcIEEEAC5A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC5A.efd1", &assign_ExcIEEEAC5A_efd1); - assign_map.emplace("cim:ExcIEEEAC5A.efd2", &assign_ExcIEEEAC5A_efd2); - assign_map.emplace("cim:ExcIEEEAC5A.ka", &assign_ExcIEEEAC5A_ka); - assign_map.emplace("cim:ExcIEEEAC5A.ke", &assign_ExcIEEEAC5A_ke); - assign_map.emplace("cim:ExcIEEEAC5A.kf", &assign_ExcIEEEAC5A_kf); - assign_map.emplace("cim:ExcIEEEAC5A.seefd1", &assign_ExcIEEEAC5A_seefd1); - assign_map.emplace("cim:ExcIEEEAC5A.seefd2", &assign_ExcIEEEAC5A_seefd2); - assign_map.emplace("cim:ExcIEEEAC5A.ta", &assign_ExcIEEEAC5A_ta); - assign_map.emplace("cim:ExcIEEEAC5A.te", &assign_ExcIEEEAC5A_te); - assign_map.emplace("cim:ExcIEEEAC5A.tf1", &assign_ExcIEEEAC5A_tf1); - assign_map.emplace("cim:ExcIEEEAC5A.tf2", &assign_ExcIEEEAC5A_tf2); - assign_map.emplace("cim:ExcIEEEAC5A.tf3", &assign_ExcIEEEAC5A_tf3); - assign_map.emplace("cim:ExcIEEEAC5A.vrmax", &assign_ExcIEEEAC5A_vrmax); - assign_map.emplace("cim:ExcIEEEAC5A.vrmin", &assign_ExcIEEEAC5A_vrmin); + assign_map.emplace("ExcIEEEAC5A.efd1", &assign_ExcIEEEAC5A_efd1); + assign_map.emplace("ExcIEEEAC5A.efd2", &assign_ExcIEEEAC5A_efd2); + assign_map.emplace("ExcIEEEAC5A.ka", &assign_ExcIEEEAC5A_ka); + assign_map.emplace("ExcIEEEAC5A.ke", &assign_ExcIEEEAC5A_ke); + assign_map.emplace("ExcIEEEAC5A.kf", &assign_ExcIEEEAC5A_kf); + assign_map.emplace("ExcIEEEAC5A.seefd1", &assign_ExcIEEEAC5A_seefd1); + assign_map.emplace("ExcIEEEAC5A.seefd2", &assign_ExcIEEEAC5A_seefd2); + assign_map.emplace("ExcIEEEAC5A.ta", &assign_ExcIEEEAC5A_ta); + assign_map.emplace("ExcIEEEAC5A.te", &assign_ExcIEEEAC5A_te); + assign_map.emplace("ExcIEEEAC5A.tf1", &assign_ExcIEEEAC5A_tf1); + assign_map.emplace("ExcIEEEAC5A.tf2", &assign_ExcIEEEAC5A_tf2); + assign_map.emplace("ExcIEEEAC5A.tf3", &assign_ExcIEEEAC5A_tf3); + assign_map.emplace("ExcIEEEAC5A.vrmax", &assign_ExcIEEEAC5A_vrmax); + assign_map.emplace("ExcIEEEAC5A.vrmin", &assign_ExcIEEEAC5A_vrmin); } void ExcIEEEAC5A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void ExcIEEEAC5A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC5A.efd1", &get_ExcIEEEAC5A_efd1); - get_map.emplace("cim:ExcIEEEAC5A.efd2", &get_ExcIEEEAC5A_efd2); - get_map.emplace("cim:ExcIEEEAC5A.ka", &get_ExcIEEEAC5A_ka); - get_map.emplace("cim:ExcIEEEAC5A.ke", &get_ExcIEEEAC5A_ke); - get_map.emplace("cim:ExcIEEEAC5A.kf", &get_ExcIEEEAC5A_kf); - get_map.emplace("cim:ExcIEEEAC5A.seefd1", &get_ExcIEEEAC5A_seefd1); - get_map.emplace("cim:ExcIEEEAC5A.seefd2", &get_ExcIEEEAC5A_seefd2); - get_map.emplace("cim:ExcIEEEAC5A.ta", &get_ExcIEEEAC5A_ta); - get_map.emplace("cim:ExcIEEEAC5A.te", &get_ExcIEEEAC5A_te); - get_map.emplace("cim:ExcIEEEAC5A.tf1", &get_ExcIEEEAC5A_tf1); - get_map.emplace("cim:ExcIEEEAC5A.tf2", &get_ExcIEEEAC5A_tf2); - get_map.emplace("cim:ExcIEEEAC5A.tf3", &get_ExcIEEEAC5A_tf3); - get_map.emplace("cim:ExcIEEEAC5A.vrmax", &get_ExcIEEEAC5A_vrmax); - get_map.emplace("cim:ExcIEEEAC5A.vrmin", &get_ExcIEEEAC5A_vrmin); + get_map.emplace("ExcIEEEAC5A.efd1", &get_ExcIEEEAC5A_efd1); + get_map.emplace("ExcIEEEAC5A.efd2", &get_ExcIEEEAC5A_efd2); + get_map.emplace("ExcIEEEAC5A.ka", &get_ExcIEEEAC5A_ka); + get_map.emplace("ExcIEEEAC5A.ke", &get_ExcIEEEAC5A_ke); + get_map.emplace("ExcIEEEAC5A.kf", &get_ExcIEEEAC5A_kf); + get_map.emplace("ExcIEEEAC5A.seefd1", &get_ExcIEEEAC5A_seefd1); + get_map.emplace("ExcIEEEAC5A.seefd2", &get_ExcIEEEAC5A_seefd2); + get_map.emplace("ExcIEEEAC5A.ta", &get_ExcIEEEAC5A_ta); + get_map.emplace("ExcIEEEAC5A.te", &get_ExcIEEEAC5A_te); + get_map.emplace("ExcIEEEAC5A.tf1", &get_ExcIEEEAC5A_tf1); + get_map.emplace("ExcIEEEAC5A.tf2", &get_ExcIEEEAC5A_tf2); + get_map.emplace("ExcIEEEAC5A.tf3", &get_ExcIEEEAC5A_tf3); + get_map.emplace("ExcIEEEAC5A.vrmax", &get_ExcIEEEAC5A_vrmax); + get_map.emplace("ExcIEEEAC5A.vrmin", &get_ExcIEEEAC5A_vrmin); } void ExcIEEEAC5A::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void ExcIEEEAC5A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC5A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC5A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC5A::declare() { return BaseClassDefiner(ExcIEEEAC5A::addConstructToMap, ExcIEEEAC5A::addPrimitiveAssignFnsToMap, ExcIEEEAC5A::addClassAssignFnsToMap, ExcIEEEAC5A::debugName); } +std::map ExcIEEEAC5A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC5A_factory() diff --git a/CGMES_3.0.0/ExcIEEEAC5A.hpp b/CGMES_3.0.0/ExcIEEEAC5A.hpp index 27575efa8..644a22a85 100644 --- a/CGMES_3.0.0/ExcIEEEAC5A.hpp +++ b/CGMES_3.0.0/ExcIEEEAC5A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC5A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEAC6A.cpp b/CGMES_3.0.0/ExcIEEEAC6A.cpp index cf956daff..009b88f14 100644 --- a/CGMES_3.0.0/ExcIEEEAC6A.cpp +++ b/CGMES_3.0.0/ExcIEEEAC6A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC6A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC6A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.kh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.th", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tj", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.tk", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vfelim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vhmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC6A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC6A::ExcIEEEAC6A() {} ExcIEEEAC6A::~ExcIEEEAC6A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC6A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.th", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tj", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.tk", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vfelim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vhmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC6A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC6A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC6A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC6A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC6A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC6A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC6A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC6A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC6A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC6A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC6A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* ExcIEEEAC6A::debugString() const void ExcIEEEAC6A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC6A", &ExcIEEEAC6A_factory); + factory_map.emplace("ExcIEEEAC6A", &ExcIEEEAC6A_factory); } void ExcIEEEAC6A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC6A.ka", &assign_ExcIEEEAC6A_ka); - assign_map.emplace("cim:ExcIEEEAC6A.kc", &assign_ExcIEEEAC6A_kc); - assign_map.emplace("cim:ExcIEEEAC6A.kd", &assign_ExcIEEEAC6A_kd); - assign_map.emplace("cim:ExcIEEEAC6A.ke", &assign_ExcIEEEAC6A_ke); - assign_map.emplace("cim:ExcIEEEAC6A.kh", &assign_ExcIEEEAC6A_kh); - assign_map.emplace("cim:ExcIEEEAC6A.seve1", &assign_ExcIEEEAC6A_seve1); - assign_map.emplace("cim:ExcIEEEAC6A.seve2", &assign_ExcIEEEAC6A_seve2); - assign_map.emplace("cim:ExcIEEEAC6A.ta", &assign_ExcIEEEAC6A_ta); - assign_map.emplace("cim:ExcIEEEAC6A.tb", &assign_ExcIEEEAC6A_tb); - assign_map.emplace("cim:ExcIEEEAC6A.tc", &assign_ExcIEEEAC6A_tc); - assign_map.emplace("cim:ExcIEEEAC6A.te", &assign_ExcIEEEAC6A_te); - assign_map.emplace("cim:ExcIEEEAC6A.th", &assign_ExcIEEEAC6A_th); - assign_map.emplace("cim:ExcIEEEAC6A.tj", &assign_ExcIEEEAC6A_tj); - assign_map.emplace("cim:ExcIEEEAC6A.tk", &assign_ExcIEEEAC6A_tk); - assign_map.emplace("cim:ExcIEEEAC6A.vamax", &assign_ExcIEEEAC6A_vamax); - assign_map.emplace("cim:ExcIEEEAC6A.vamin", &assign_ExcIEEEAC6A_vamin); - assign_map.emplace("cim:ExcIEEEAC6A.ve1", &assign_ExcIEEEAC6A_ve1); - assign_map.emplace("cim:ExcIEEEAC6A.ve2", &assign_ExcIEEEAC6A_ve2); - assign_map.emplace("cim:ExcIEEEAC6A.vfelim", &assign_ExcIEEEAC6A_vfelim); - assign_map.emplace("cim:ExcIEEEAC6A.vhmax", &assign_ExcIEEEAC6A_vhmax); - assign_map.emplace("cim:ExcIEEEAC6A.vrmax", &assign_ExcIEEEAC6A_vrmax); - assign_map.emplace("cim:ExcIEEEAC6A.vrmin", &assign_ExcIEEEAC6A_vrmin); + assign_map.emplace("ExcIEEEAC6A.ka", &assign_ExcIEEEAC6A_ka); + assign_map.emplace("ExcIEEEAC6A.kc", &assign_ExcIEEEAC6A_kc); + assign_map.emplace("ExcIEEEAC6A.kd", &assign_ExcIEEEAC6A_kd); + assign_map.emplace("ExcIEEEAC6A.ke", &assign_ExcIEEEAC6A_ke); + assign_map.emplace("ExcIEEEAC6A.kh", &assign_ExcIEEEAC6A_kh); + assign_map.emplace("ExcIEEEAC6A.seve1", &assign_ExcIEEEAC6A_seve1); + assign_map.emplace("ExcIEEEAC6A.seve2", &assign_ExcIEEEAC6A_seve2); + assign_map.emplace("ExcIEEEAC6A.ta", &assign_ExcIEEEAC6A_ta); + assign_map.emplace("ExcIEEEAC6A.tb", &assign_ExcIEEEAC6A_tb); + assign_map.emplace("ExcIEEEAC6A.tc", &assign_ExcIEEEAC6A_tc); + assign_map.emplace("ExcIEEEAC6A.te", &assign_ExcIEEEAC6A_te); + assign_map.emplace("ExcIEEEAC6A.th", &assign_ExcIEEEAC6A_th); + assign_map.emplace("ExcIEEEAC6A.tj", &assign_ExcIEEEAC6A_tj); + assign_map.emplace("ExcIEEEAC6A.tk", &assign_ExcIEEEAC6A_tk); + assign_map.emplace("ExcIEEEAC6A.vamax", &assign_ExcIEEEAC6A_vamax); + assign_map.emplace("ExcIEEEAC6A.vamin", &assign_ExcIEEEAC6A_vamin); + assign_map.emplace("ExcIEEEAC6A.ve1", &assign_ExcIEEEAC6A_ve1); + assign_map.emplace("ExcIEEEAC6A.ve2", &assign_ExcIEEEAC6A_ve2); + assign_map.emplace("ExcIEEEAC6A.vfelim", &assign_ExcIEEEAC6A_vfelim); + assign_map.emplace("ExcIEEEAC6A.vhmax", &assign_ExcIEEEAC6A_vhmax); + assign_map.emplace("ExcIEEEAC6A.vrmax", &assign_ExcIEEEAC6A_vrmax); + assign_map.emplace("ExcIEEEAC6A.vrmin", &assign_ExcIEEEAC6A_vrmin); } void ExcIEEEAC6A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void ExcIEEEAC6A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC6A.ka", &get_ExcIEEEAC6A_ka); - get_map.emplace("cim:ExcIEEEAC6A.kc", &get_ExcIEEEAC6A_kc); - get_map.emplace("cim:ExcIEEEAC6A.kd", &get_ExcIEEEAC6A_kd); - get_map.emplace("cim:ExcIEEEAC6A.ke", &get_ExcIEEEAC6A_ke); - get_map.emplace("cim:ExcIEEEAC6A.kh", &get_ExcIEEEAC6A_kh); - get_map.emplace("cim:ExcIEEEAC6A.seve1", &get_ExcIEEEAC6A_seve1); - get_map.emplace("cim:ExcIEEEAC6A.seve2", &get_ExcIEEEAC6A_seve2); - get_map.emplace("cim:ExcIEEEAC6A.ta", &get_ExcIEEEAC6A_ta); - get_map.emplace("cim:ExcIEEEAC6A.tb", &get_ExcIEEEAC6A_tb); - get_map.emplace("cim:ExcIEEEAC6A.tc", &get_ExcIEEEAC6A_tc); - get_map.emplace("cim:ExcIEEEAC6A.te", &get_ExcIEEEAC6A_te); - get_map.emplace("cim:ExcIEEEAC6A.th", &get_ExcIEEEAC6A_th); - get_map.emplace("cim:ExcIEEEAC6A.tj", &get_ExcIEEEAC6A_tj); - get_map.emplace("cim:ExcIEEEAC6A.tk", &get_ExcIEEEAC6A_tk); - get_map.emplace("cim:ExcIEEEAC6A.vamax", &get_ExcIEEEAC6A_vamax); - get_map.emplace("cim:ExcIEEEAC6A.vamin", &get_ExcIEEEAC6A_vamin); - get_map.emplace("cim:ExcIEEEAC6A.ve1", &get_ExcIEEEAC6A_ve1); - get_map.emplace("cim:ExcIEEEAC6A.ve2", &get_ExcIEEEAC6A_ve2); - get_map.emplace("cim:ExcIEEEAC6A.vfelim", &get_ExcIEEEAC6A_vfelim); - get_map.emplace("cim:ExcIEEEAC6A.vhmax", &get_ExcIEEEAC6A_vhmax); - get_map.emplace("cim:ExcIEEEAC6A.vrmax", &get_ExcIEEEAC6A_vrmax); - get_map.emplace("cim:ExcIEEEAC6A.vrmin", &get_ExcIEEEAC6A_vrmin); + get_map.emplace("ExcIEEEAC6A.ka", &get_ExcIEEEAC6A_ka); + get_map.emplace("ExcIEEEAC6A.kc", &get_ExcIEEEAC6A_kc); + get_map.emplace("ExcIEEEAC6A.kd", &get_ExcIEEEAC6A_kd); + get_map.emplace("ExcIEEEAC6A.ke", &get_ExcIEEEAC6A_ke); + get_map.emplace("ExcIEEEAC6A.kh", &get_ExcIEEEAC6A_kh); + get_map.emplace("ExcIEEEAC6A.seve1", &get_ExcIEEEAC6A_seve1); + get_map.emplace("ExcIEEEAC6A.seve2", &get_ExcIEEEAC6A_seve2); + get_map.emplace("ExcIEEEAC6A.ta", &get_ExcIEEEAC6A_ta); + get_map.emplace("ExcIEEEAC6A.tb", &get_ExcIEEEAC6A_tb); + get_map.emplace("ExcIEEEAC6A.tc", &get_ExcIEEEAC6A_tc); + get_map.emplace("ExcIEEEAC6A.te", &get_ExcIEEEAC6A_te); + get_map.emplace("ExcIEEEAC6A.th", &get_ExcIEEEAC6A_th); + get_map.emplace("ExcIEEEAC6A.tj", &get_ExcIEEEAC6A_tj); + get_map.emplace("ExcIEEEAC6A.tk", &get_ExcIEEEAC6A_tk); + get_map.emplace("ExcIEEEAC6A.vamax", &get_ExcIEEEAC6A_vamax); + get_map.emplace("ExcIEEEAC6A.vamin", &get_ExcIEEEAC6A_vamin); + get_map.emplace("ExcIEEEAC6A.ve1", &get_ExcIEEEAC6A_ve1); + get_map.emplace("ExcIEEEAC6A.ve2", &get_ExcIEEEAC6A_ve2); + get_map.emplace("ExcIEEEAC6A.vfelim", &get_ExcIEEEAC6A_vfelim); + get_map.emplace("ExcIEEEAC6A.vhmax", &get_ExcIEEEAC6A_vhmax); + get_map.emplace("ExcIEEEAC6A.vrmax", &get_ExcIEEEAC6A_vrmax); + get_map.emplace("ExcIEEEAC6A.vrmin", &get_ExcIEEEAC6A_vrmin); } void ExcIEEEAC6A::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void ExcIEEEAC6A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC6A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC6A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC6A::declare() { return BaseClassDefiner(ExcIEEEAC6A::addConstructToMap, ExcIEEEAC6A::addPrimitiveAssignFnsToMap, ExcIEEEAC6A::addClassAssignFnsToMap, ExcIEEEAC6A::debugName); } +std::map ExcIEEEAC6A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC6A_factory() diff --git a/CGMES_3.0.0/ExcIEEEAC6A.hpp b/CGMES_3.0.0/ExcIEEEAC6A.hpp index 9ccffbd7b..41af44979 100644 --- a/CGMES_3.0.0/ExcIEEEAC6A.hpp +++ b/CGMES_3.0.0/ExcIEEEAC6A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -96,8 +97,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -105,7 +113,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC6A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEAC7B.cpp b/CGMES_3.0.0/ExcIEEEAC7B.cpp index 92658ed8f..8f2a49029 100644 --- a/CGMES_3.0.0/ExcIEEEAC7B.cpp +++ b/CGMES_3.0.0/ExcIEEEAC7B.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC7B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC7B.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kdr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kf3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kia", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kir", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kpa", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.kpr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.tdr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vemin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vfemax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC7B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC7B::ExcIEEEAC7B() {} ExcIEEEAC7B::~ExcIEEEAC7B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEAC7B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kf3", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC7B.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEAC7B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEAC7B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEAC7B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEAC7B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEAC7B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEAC7B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC7B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* ExcIEEEAC7B::debugString() const void ExcIEEEAC7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC7B", &ExcIEEEAC7B_factory); + factory_map.emplace("ExcIEEEAC7B", &ExcIEEEAC7B_factory); } void ExcIEEEAC7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC7B.kc", &assign_ExcIEEEAC7B_kc); - assign_map.emplace("cim:ExcIEEEAC7B.kd", &assign_ExcIEEEAC7B_kd); - assign_map.emplace("cim:ExcIEEEAC7B.kdr", &assign_ExcIEEEAC7B_kdr); - assign_map.emplace("cim:ExcIEEEAC7B.ke", &assign_ExcIEEEAC7B_ke); - assign_map.emplace("cim:ExcIEEEAC7B.kf1", &assign_ExcIEEEAC7B_kf1); - assign_map.emplace("cim:ExcIEEEAC7B.kf2", &assign_ExcIEEEAC7B_kf2); - assign_map.emplace("cim:ExcIEEEAC7B.kf3", &assign_ExcIEEEAC7B_kf3); - assign_map.emplace("cim:ExcIEEEAC7B.kia", &assign_ExcIEEEAC7B_kia); - assign_map.emplace("cim:ExcIEEEAC7B.kir", &assign_ExcIEEEAC7B_kir); - assign_map.emplace("cim:ExcIEEEAC7B.kl", &assign_ExcIEEEAC7B_kl); - assign_map.emplace("cim:ExcIEEEAC7B.kp", &assign_ExcIEEEAC7B_kp); - assign_map.emplace("cim:ExcIEEEAC7B.kpa", &assign_ExcIEEEAC7B_kpa); - assign_map.emplace("cim:ExcIEEEAC7B.kpr", &assign_ExcIEEEAC7B_kpr); - assign_map.emplace("cim:ExcIEEEAC7B.seve1", &assign_ExcIEEEAC7B_seve1); - assign_map.emplace("cim:ExcIEEEAC7B.seve2", &assign_ExcIEEEAC7B_seve2); - assign_map.emplace("cim:ExcIEEEAC7B.tdr", &assign_ExcIEEEAC7B_tdr); - assign_map.emplace("cim:ExcIEEEAC7B.te", &assign_ExcIEEEAC7B_te); - assign_map.emplace("cim:ExcIEEEAC7B.tf", &assign_ExcIEEEAC7B_tf); - assign_map.emplace("cim:ExcIEEEAC7B.vamax", &assign_ExcIEEEAC7B_vamax); - assign_map.emplace("cim:ExcIEEEAC7B.vamin", &assign_ExcIEEEAC7B_vamin); - assign_map.emplace("cim:ExcIEEEAC7B.ve1", &assign_ExcIEEEAC7B_ve1); - assign_map.emplace("cim:ExcIEEEAC7B.ve2", &assign_ExcIEEEAC7B_ve2); - assign_map.emplace("cim:ExcIEEEAC7B.vemin", &assign_ExcIEEEAC7B_vemin); - assign_map.emplace("cim:ExcIEEEAC7B.vfemax", &assign_ExcIEEEAC7B_vfemax); - assign_map.emplace("cim:ExcIEEEAC7B.vrmax", &assign_ExcIEEEAC7B_vrmax); - assign_map.emplace("cim:ExcIEEEAC7B.vrmin", &assign_ExcIEEEAC7B_vrmin); + assign_map.emplace("ExcIEEEAC7B.kc", &assign_ExcIEEEAC7B_kc); + assign_map.emplace("ExcIEEEAC7B.kd", &assign_ExcIEEEAC7B_kd); + assign_map.emplace("ExcIEEEAC7B.kdr", &assign_ExcIEEEAC7B_kdr); + assign_map.emplace("ExcIEEEAC7B.ke", &assign_ExcIEEEAC7B_ke); + assign_map.emplace("ExcIEEEAC7B.kf1", &assign_ExcIEEEAC7B_kf1); + assign_map.emplace("ExcIEEEAC7B.kf2", &assign_ExcIEEEAC7B_kf2); + assign_map.emplace("ExcIEEEAC7B.kf3", &assign_ExcIEEEAC7B_kf3); + assign_map.emplace("ExcIEEEAC7B.kia", &assign_ExcIEEEAC7B_kia); + assign_map.emplace("ExcIEEEAC7B.kir", &assign_ExcIEEEAC7B_kir); + assign_map.emplace("ExcIEEEAC7B.kl", &assign_ExcIEEEAC7B_kl); + assign_map.emplace("ExcIEEEAC7B.kp", &assign_ExcIEEEAC7B_kp); + assign_map.emplace("ExcIEEEAC7B.kpa", &assign_ExcIEEEAC7B_kpa); + assign_map.emplace("ExcIEEEAC7B.kpr", &assign_ExcIEEEAC7B_kpr); + assign_map.emplace("ExcIEEEAC7B.seve1", &assign_ExcIEEEAC7B_seve1); + assign_map.emplace("ExcIEEEAC7B.seve2", &assign_ExcIEEEAC7B_seve2); + assign_map.emplace("ExcIEEEAC7B.tdr", &assign_ExcIEEEAC7B_tdr); + assign_map.emplace("ExcIEEEAC7B.te", &assign_ExcIEEEAC7B_te); + assign_map.emplace("ExcIEEEAC7B.tf", &assign_ExcIEEEAC7B_tf); + assign_map.emplace("ExcIEEEAC7B.vamax", &assign_ExcIEEEAC7B_vamax); + assign_map.emplace("ExcIEEEAC7B.vamin", &assign_ExcIEEEAC7B_vamin); + assign_map.emplace("ExcIEEEAC7B.ve1", &assign_ExcIEEEAC7B_ve1); + assign_map.emplace("ExcIEEEAC7B.ve2", &assign_ExcIEEEAC7B_ve2); + assign_map.emplace("ExcIEEEAC7B.vemin", &assign_ExcIEEEAC7B_vemin); + assign_map.emplace("ExcIEEEAC7B.vfemax", &assign_ExcIEEEAC7B_vfemax); + assign_map.emplace("ExcIEEEAC7B.vrmax", &assign_ExcIEEEAC7B_vrmax); + assign_map.emplace("ExcIEEEAC7B.vrmin", &assign_ExcIEEEAC7B_vrmin); } void ExcIEEEAC7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void ExcIEEEAC7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC7B.kc", &get_ExcIEEEAC7B_kc); - get_map.emplace("cim:ExcIEEEAC7B.kd", &get_ExcIEEEAC7B_kd); - get_map.emplace("cim:ExcIEEEAC7B.kdr", &get_ExcIEEEAC7B_kdr); - get_map.emplace("cim:ExcIEEEAC7B.ke", &get_ExcIEEEAC7B_ke); - get_map.emplace("cim:ExcIEEEAC7B.kf1", &get_ExcIEEEAC7B_kf1); - get_map.emplace("cim:ExcIEEEAC7B.kf2", &get_ExcIEEEAC7B_kf2); - get_map.emplace("cim:ExcIEEEAC7B.kf3", &get_ExcIEEEAC7B_kf3); - get_map.emplace("cim:ExcIEEEAC7B.kia", &get_ExcIEEEAC7B_kia); - get_map.emplace("cim:ExcIEEEAC7B.kir", &get_ExcIEEEAC7B_kir); - get_map.emplace("cim:ExcIEEEAC7B.kl", &get_ExcIEEEAC7B_kl); - get_map.emplace("cim:ExcIEEEAC7B.kp", &get_ExcIEEEAC7B_kp); - get_map.emplace("cim:ExcIEEEAC7B.kpa", &get_ExcIEEEAC7B_kpa); - get_map.emplace("cim:ExcIEEEAC7B.kpr", &get_ExcIEEEAC7B_kpr); - get_map.emplace("cim:ExcIEEEAC7B.seve1", &get_ExcIEEEAC7B_seve1); - get_map.emplace("cim:ExcIEEEAC7B.seve2", &get_ExcIEEEAC7B_seve2); - get_map.emplace("cim:ExcIEEEAC7B.tdr", &get_ExcIEEEAC7B_tdr); - get_map.emplace("cim:ExcIEEEAC7B.te", &get_ExcIEEEAC7B_te); - get_map.emplace("cim:ExcIEEEAC7B.tf", &get_ExcIEEEAC7B_tf); - get_map.emplace("cim:ExcIEEEAC7B.vamax", &get_ExcIEEEAC7B_vamax); - get_map.emplace("cim:ExcIEEEAC7B.vamin", &get_ExcIEEEAC7B_vamin); - get_map.emplace("cim:ExcIEEEAC7B.ve1", &get_ExcIEEEAC7B_ve1); - get_map.emplace("cim:ExcIEEEAC7B.ve2", &get_ExcIEEEAC7B_ve2); - get_map.emplace("cim:ExcIEEEAC7B.vemin", &get_ExcIEEEAC7B_vemin); - get_map.emplace("cim:ExcIEEEAC7B.vfemax", &get_ExcIEEEAC7B_vfemax); - get_map.emplace("cim:ExcIEEEAC7B.vrmax", &get_ExcIEEEAC7B_vrmax); - get_map.emplace("cim:ExcIEEEAC7B.vrmin", &get_ExcIEEEAC7B_vrmin); + get_map.emplace("ExcIEEEAC7B.kc", &get_ExcIEEEAC7B_kc); + get_map.emplace("ExcIEEEAC7B.kd", &get_ExcIEEEAC7B_kd); + get_map.emplace("ExcIEEEAC7B.kdr", &get_ExcIEEEAC7B_kdr); + get_map.emplace("ExcIEEEAC7B.ke", &get_ExcIEEEAC7B_ke); + get_map.emplace("ExcIEEEAC7B.kf1", &get_ExcIEEEAC7B_kf1); + get_map.emplace("ExcIEEEAC7B.kf2", &get_ExcIEEEAC7B_kf2); + get_map.emplace("ExcIEEEAC7B.kf3", &get_ExcIEEEAC7B_kf3); + get_map.emplace("ExcIEEEAC7B.kia", &get_ExcIEEEAC7B_kia); + get_map.emplace("ExcIEEEAC7B.kir", &get_ExcIEEEAC7B_kir); + get_map.emplace("ExcIEEEAC7B.kl", &get_ExcIEEEAC7B_kl); + get_map.emplace("ExcIEEEAC7B.kp", &get_ExcIEEEAC7B_kp); + get_map.emplace("ExcIEEEAC7B.kpa", &get_ExcIEEEAC7B_kpa); + get_map.emplace("ExcIEEEAC7B.kpr", &get_ExcIEEEAC7B_kpr); + get_map.emplace("ExcIEEEAC7B.seve1", &get_ExcIEEEAC7B_seve1); + get_map.emplace("ExcIEEEAC7B.seve2", &get_ExcIEEEAC7B_seve2); + get_map.emplace("ExcIEEEAC7B.tdr", &get_ExcIEEEAC7B_tdr); + get_map.emplace("ExcIEEEAC7B.te", &get_ExcIEEEAC7B_te); + get_map.emplace("ExcIEEEAC7B.tf", &get_ExcIEEEAC7B_tf); + get_map.emplace("ExcIEEEAC7B.vamax", &get_ExcIEEEAC7B_vamax); + get_map.emplace("ExcIEEEAC7B.vamin", &get_ExcIEEEAC7B_vamin); + get_map.emplace("ExcIEEEAC7B.ve1", &get_ExcIEEEAC7B_ve1); + get_map.emplace("ExcIEEEAC7B.ve2", &get_ExcIEEEAC7B_ve2); + get_map.emplace("ExcIEEEAC7B.vemin", &get_ExcIEEEAC7B_vemin); + get_map.emplace("ExcIEEEAC7B.vfemax", &get_ExcIEEEAC7B_vfemax); + get_map.emplace("ExcIEEEAC7B.vrmax", &get_ExcIEEEAC7B_vrmax); + get_map.emplace("ExcIEEEAC7B.vrmin", &get_ExcIEEEAC7B_vrmin); } void ExcIEEEAC7B::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void ExcIEEEAC7B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC7B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC7B::declare() { return BaseClassDefiner(ExcIEEEAC7B::addConstructToMap, ExcIEEEAC7B::addPrimitiveAssignFnsToMap, ExcIEEEAC7B::addClassAssignFnsToMap, ExcIEEEAC7B::debugName); } +std::map ExcIEEEAC7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC7B_factory() diff --git a/CGMES_3.0.0/ExcIEEEAC7B.hpp b/CGMES_3.0.0/ExcIEEEAC7B.hpp index 297573e66..054b50c99 100644 --- a/CGMES_3.0.0/ExcIEEEAC7B.hpp +++ b/CGMES_3.0.0/ExcIEEEAC7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC7B_factory(); diff --git a/CGMES_3.0.0/ExcIEEEAC8B.cpp b/CGMES_3.0.0/ExcIEEEAC8B.cpp index ebf326092..e0dcbe943 100644 --- a/CGMES_3.0.0/ExcIEEEAC8B.cpp +++ b/CGMES_3.0.0/ExcIEEEAC8B.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEAC8B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEAC8B.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kdr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kir", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.kpr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.seve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.seve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.tdr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ve1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.ve2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vemin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vfemax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEAC8B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEAC8B::ExcIEEEAC8B() {} ExcIEEEAC8B::~ExcIEEEAC8B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEAC8B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEAC8B::getClassNamespaceUrl() const { - { "cim:ExcIEEEAC8B.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.seve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.seve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.tdr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ve1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.ve2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vfemax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEAC8B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEAC8B::getPossibleProfilesForClass() const +const std::string& ExcIEEEAC8B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEAC8B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEAC8B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEAC8B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEAC8B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEAC8B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEAC8B_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcIEEEAC8B::debugString() const void ExcIEEEAC8B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEAC8B", &ExcIEEEAC8B_factory); + factory_map.emplace("ExcIEEEAC8B", &ExcIEEEAC8B_factory); } void ExcIEEEAC8B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEAC8B.ka", &assign_ExcIEEEAC8B_ka); - assign_map.emplace("cim:ExcIEEEAC8B.kc", &assign_ExcIEEEAC8B_kc); - assign_map.emplace("cim:ExcIEEEAC8B.kd", &assign_ExcIEEEAC8B_kd); - assign_map.emplace("cim:ExcIEEEAC8B.kdr", &assign_ExcIEEEAC8B_kdr); - assign_map.emplace("cim:ExcIEEEAC8B.ke", &assign_ExcIEEEAC8B_ke); - assign_map.emplace("cim:ExcIEEEAC8B.kir", &assign_ExcIEEEAC8B_kir); - assign_map.emplace("cim:ExcIEEEAC8B.kpr", &assign_ExcIEEEAC8B_kpr); - assign_map.emplace("cim:ExcIEEEAC8B.seve1", &assign_ExcIEEEAC8B_seve1); - assign_map.emplace("cim:ExcIEEEAC8B.seve2", &assign_ExcIEEEAC8B_seve2); - assign_map.emplace("cim:ExcIEEEAC8B.ta", &assign_ExcIEEEAC8B_ta); - assign_map.emplace("cim:ExcIEEEAC8B.tdr", &assign_ExcIEEEAC8B_tdr); - assign_map.emplace("cim:ExcIEEEAC8B.te", &assign_ExcIEEEAC8B_te); - assign_map.emplace("cim:ExcIEEEAC8B.ve1", &assign_ExcIEEEAC8B_ve1); - assign_map.emplace("cim:ExcIEEEAC8B.ve2", &assign_ExcIEEEAC8B_ve2); - assign_map.emplace("cim:ExcIEEEAC8B.vemin", &assign_ExcIEEEAC8B_vemin); - assign_map.emplace("cim:ExcIEEEAC8B.vfemax", &assign_ExcIEEEAC8B_vfemax); - assign_map.emplace("cim:ExcIEEEAC8B.vrmax", &assign_ExcIEEEAC8B_vrmax); - assign_map.emplace("cim:ExcIEEEAC8B.vrmin", &assign_ExcIEEEAC8B_vrmin); + assign_map.emplace("ExcIEEEAC8B.ka", &assign_ExcIEEEAC8B_ka); + assign_map.emplace("ExcIEEEAC8B.kc", &assign_ExcIEEEAC8B_kc); + assign_map.emplace("ExcIEEEAC8B.kd", &assign_ExcIEEEAC8B_kd); + assign_map.emplace("ExcIEEEAC8B.kdr", &assign_ExcIEEEAC8B_kdr); + assign_map.emplace("ExcIEEEAC8B.ke", &assign_ExcIEEEAC8B_ke); + assign_map.emplace("ExcIEEEAC8B.kir", &assign_ExcIEEEAC8B_kir); + assign_map.emplace("ExcIEEEAC8B.kpr", &assign_ExcIEEEAC8B_kpr); + assign_map.emplace("ExcIEEEAC8B.seve1", &assign_ExcIEEEAC8B_seve1); + assign_map.emplace("ExcIEEEAC8B.seve2", &assign_ExcIEEEAC8B_seve2); + assign_map.emplace("ExcIEEEAC8B.ta", &assign_ExcIEEEAC8B_ta); + assign_map.emplace("ExcIEEEAC8B.tdr", &assign_ExcIEEEAC8B_tdr); + assign_map.emplace("ExcIEEEAC8B.te", &assign_ExcIEEEAC8B_te); + assign_map.emplace("ExcIEEEAC8B.ve1", &assign_ExcIEEEAC8B_ve1); + assign_map.emplace("ExcIEEEAC8B.ve2", &assign_ExcIEEEAC8B_ve2); + assign_map.emplace("ExcIEEEAC8B.vemin", &assign_ExcIEEEAC8B_vemin); + assign_map.emplace("ExcIEEEAC8B.vfemax", &assign_ExcIEEEAC8B_vfemax); + assign_map.emplace("ExcIEEEAC8B.vrmax", &assign_ExcIEEEAC8B_vrmax); + assign_map.emplace("ExcIEEEAC8B.vrmin", &assign_ExcIEEEAC8B_vrmin); } void ExcIEEEAC8B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcIEEEAC8B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEAC8B.ka", &get_ExcIEEEAC8B_ka); - get_map.emplace("cim:ExcIEEEAC8B.kc", &get_ExcIEEEAC8B_kc); - get_map.emplace("cim:ExcIEEEAC8B.kd", &get_ExcIEEEAC8B_kd); - get_map.emplace("cim:ExcIEEEAC8B.kdr", &get_ExcIEEEAC8B_kdr); - get_map.emplace("cim:ExcIEEEAC8B.ke", &get_ExcIEEEAC8B_ke); - get_map.emplace("cim:ExcIEEEAC8B.kir", &get_ExcIEEEAC8B_kir); - get_map.emplace("cim:ExcIEEEAC8B.kpr", &get_ExcIEEEAC8B_kpr); - get_map.emplace("cim:ExcIEEEAC8B.seve1", &get_ExcIEEEAC8B_seve1); - get_map.emplace("cim:ExcIEEEAC8B.seve2", &get_ExcIEEEAC8B_seve2); - get_map.emplace("cim:ExcIEEEAC8B.ta", &get_ExcIEEEAC8B_ta); - get_map.emplace("cim:ExcIEEEAC8B.tdr", &get_ExcIEEEAC8B_tdr); - get_map.emplace("cim:ExcIEEEAC8B.te", &get_ExcIEEEAC8B_te); - get_map.emplace("cim:ExcIEEEAC8B.ve1", &get_ExcIEEEAC8B_ve1); - get_map.emplace("cim:ExcIEEEAC8B.ve2", &get_ExcIEEEAC8B_ve2); - get_map.emplace("cim:ExcIEEEAC8B.vemin", &get_ExcIEEEAC8B_vemin); - get_map.emplace("cim:ExcIEEEAC8B.vfemax", &get_ExcIEEEAC8B_vfemax); - get_map.emplace("cim:ExcIEEEAC8B.vrmax", &get_ExcIEEEAC8B_vrmax); - get_map.emplace("cim:ExcIEEEAC8B.vrmin", &get_ExcIEEEAC8B_vrmin); + get_map.emplace("ExcIEEEAC8B.ka", &get_ExcIEEEAC8B_ka); + get_map.emplace("ExcIEEEAC8B.kc", &get_ExcIEEEAC8B_kc); + get_map.emplace("ExcIEEEAC8B.kd", &get_ExcIEEEAC8B_kd); + get_map.emplace("ExcIEEEAC8B.kdr", &get_ExcIEEEAC8B_kdr); + get_map.emplace("ExcIEEEAC8B.ke", &get_ExcIEEEAC8B_ke); + get_map.emplace("ExcIEEEAC8B.kir", &get_ExcIEEEAC8B_kir); + get_map.emplace("ExcIEEEAC8B.kpr", &get_ExcIEEEAC8B_kpr); + get_map.emplace("ExcIEEEAC8B.seve1", &get_ExcIEEEAC8B_seve1); + get_map.emplace("ExcIEEEAC8B.seve2", &get_ExcIEEEAC8B_seve2); + get_map.emplace("ExcIEEEAC8B.ta", &get_ExcIEEEAC8B_ta); + get_map.emplace("ExcIEEEAC8B.tdr", &get_ExcIEEEAC8B_tdr); + get_map.emplace("ExcIEEEAC8B.te", &get_ExcIEEEAC8B_te); + get_map.emplace("ExcIEEEAC8B.ve1", &get_ExcIEEEAC8B_ve1); + get_map.emplace("ExcIEEEAC8B.ve2", &get_ExcIEEEAC8B_ve2); + get_map.emplace("ExcIEEEAC8B.vemin", &get_ExcIEEEAC8B_vemin); + get_map.emplace("ExcIEEEAC8B.vfemax", &get_ExcIEEEAC8B_vfemax); + get_map.emplace("ExcIEEEAC8B.vrmax", &get_ExcIEEEAC8B_vrmax); + get_map.emplace("ExcIEEEAC8B.vrmin", &get_ExcIEEEAC8B_vrmin); } void ExcIEEEAC8B::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcIEEEAC8B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEAC8B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEAC8B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEAC8B::declare() { return BaseClassDefiner(ExcIEEEAC8B::addConstructToMap, ExcIEEEAC8B::addPrimitiveAssignFnsToMap, ExcIEEEAC8B::addClassAssignFnsToMap, ExcIEEEAC8B::debugName); } +std::map ExcIEEEAC8B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEAC8B_factory() diff --git a/CGMES_3.0.0/ExcIEEEAC8B.hpp b/CGMES_3.0.0/ExcIEEEAC8B.hpp index 943ff78c7..49ce6bcf2 100644 --- a/CGMES_3.0.0/ExcIEEEAC8B.hpp +++ b/CGMES_3.0.0/ExcIEEEAC8B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEAC8B_factory(); diff --git a/CGMES_3.0.0/ExcIEEEDC1A.cpp b/CGMES_3.0.0/ExcIEEEDC1A.cpp index 51102e7b5..bda06b63d 100644 --- a/CGMES_3.0.0/ExcIEEEDC1A.cpp +++ b/CGMES_3.0.0/ExcIEEEDC1A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC1A.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.exclim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.uelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC1A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC1A::ExcIEEEDC1A() {} ExcIEEEDC1A::~ExcIEEEDC1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC1A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC1A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC1A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC1A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC1A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEDC1A::debugString() const void ExcIEEEDC1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC1A", &ExcIEEEDC1A_factory); + factory_map.emplace("ExcIEEEDC1A", &ExcIEEEDC1A_factory); } void ExcIEEEDC1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC1A.efd1", &assign_ExcIEEEDC1A_efd1); - assign_map.emplace("cim:ExcIEEEDC1A.efd2", &assign_ExcIEEEDC1A_efd2); - assign_map.emplace("cim:ExcIEEEDC1A.exclim", &assign_ExcIEEEDC1A_exclim); - assign_map.emplace("cim:ExcIEEEDC1A.ka", &assign_ExcIEEEDC1A_ka); - assign_map.emplace("cim:ExcIEEEDC1A.ke", &assign_ExcIEEEDC1A_ke); - assign_map.emplace("cim:ExcIEEEDC1A.kf", &assign_ExcIEEEDC1A_kf); - assign_map.emplace("cim:ExcIEEEDC1A.seefd1", &assign_ExcIEEEDC1A_seefd1); - assign_map.emplace("cim:ExcIEEEDC1A.seefd2", &assign_ExcIEEEDC1A_seefd2); - assign_map.emplace("cim:ExcIEEEDC1A.ta", &assign_ExcIEEEDC1A_ta); - assign_map.emplace("cim:ExcIEEEDC1A.tb", &assign_ExcIEEEDC1A_tb); - assign_map.emplace("cim:ExcIEEEDC1A.tc", &assign_ExcIEEEDC1A_tc); - assign_map.emplace("cim:ExcIEEEDC1A.te", &assign_ExcIEEEDC1A_te); - assign_map.emplace("cim:ExcIEEEDC1A.tf", &assign_ExcIEEEDC1A_tf); - assign_map.emplace("cim:ExcIEEEDC1A.uelin", &assign_ExcIEEEDC1A_uelin); - assign_map.emplace("cim:ExcIEEEDC1A.vrmax", &assign_ExcIEEEDC1A_vrmax); - assign_map.emplace("cim:ExcIEEEDC1A.vrmin", &assign_ExcIEEEDC1A_vrmin); + assign_map.emplace("ExcIEEEDC1A.efd1", &assign_ExcIEEEDC1A_efd1); + assign_map.emplace("ExcIEEEDC1A.efd2", &assign_ExcIEEEDC1A_efd2); + assign_map.emplace("ExcIEEEDC1A.exclim", &assign_ExcIEEEDC1A_exclim); + assign_map.emplace("ExcIEEEDC1A.ka", &assign_ExcIEEEDC1A_ka); + assign_map.emplace("ExcIEEEDC1A.ke", &assign_ExcIEEEDC1A_ke); + assign_map.emplace("ExcIEEEDC1A.kf", &assign_ExcIEEEDC1A_kf); + assign_map.emplace("ExcIEEEDC1A.seefd1", &assign_ExcIEEEDC1A_seefd1); + assign_map.emplace("ExcIEEEDC1A.seefd2", &assign_ExcIEEEDC1A_seefd2); + assign_map.emplace("ExcIEEEDC1A.ta", &assign_ExcIEEEDC1A_ta); + assign_map.emplace("ExcIEEEDC1A.tb", &assign_ExcIEEEDC1A_tb); + assign_map.emplace("ExcIEEEDC1A.tc", &assign_ExcIEEEDC1A_tc); + assign_map.emplace("ExcIEEEDC1A.te", &assign_ExcIEEEDC1A_te); + assign_map.emplace("ExcIEEEDC1A.tf", &assign_ExcIEEEDC1A_tf); + assign_map.emplace("ExcIEEEDC1A.uelin", &assign_ExcIEEEDC1A_uelin); + assign_map.emplace("ExcIEEEDC1A.vrmax", &assign_ExcIEEEDC1A_vrmax); + assign_map.emplace("ExcIEEEDC1A.vrmin", &assign_ExcIEEEDC1A_vrmin); } void ExcIEEEDC1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEDC1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC1A.efd1", &get_ExcIEEEDC1A_efd1); - get_map.emplace("cim:ExcIEEEDC1A.efd2", &get_ExcIEEEDC1A_efd2); - get_map.emplace("cim:ExcIEEEDC1A.exclim", &get_ExcIEEEDC1A_exclim); - get_map.emplace("cim:ExcIEEEDC1A.ka", &get_ExcIEEEDC1A_ka); - get_map.emplace("cim:ExcIEEEDC1A.ke", &get_ExcIEEEDC1A_ke); - get_map.emplace("cim:ExcIEEEDC1A.kf", &get_ExcIEEEDC1A_kf); - get_map.emplace("cim:ExcIEEEDC1A.seefd1", &get_ExcIEEEDC1A_seefd1); - get_map.emplace("cim:ExcIEEEDC1A.seefd2", &get_ExcIEEEDC1A_seefd2); - get_map.emplace("cim:ExcIEEEDC1A.ta", &get_ExcIEEEDC1A_ta); - get_map.emplace("cim:ExcIEEEDC1A.tb", &get_ExcIEEEDC1A_tb); - get_map.emplace("cim:ExcIEEEDC1A.tc", &get_ExcIEEEDC1A_tc); - get_map.emplace("cim:ExcIEEEDC1A.te", &get_ExcIEEEDC1A_te); - get_map.emplace("cim:ExcIEEEDC1A.tf", &get_ExcIEEEDC1A_tf); - get_map.emplace("cim:ExcIEEEDC1A.uelin", &get_ExcIEEEDC1A_uelin); - get_map.emplace("cim:ExcIEEEDC1A.vrmax", &get_ExcIEEEDC1A_vrmax); - get_map.emplace("cim:ExcIEEEDC1A.vrmin", &get_ExcIEEEDC1A_vrmin); + get_map.emplace("ExcIEEEDC1A.efd1", &get_ExcIEEEDC1A_efd1); + get_map.emplace("ExcIEEEDC1A.efd2", &get_ExcIEEEDC1A_efd2); + get_map.emplace("ExcIEEEDC1A.exclim", &get_ExcIEEEDC1A_exclim); + get_map.emplace("ExcIEEEDC1A.ka", &get_ExcIEEEDC1A_ka); + get_map.emplace("ExcIEEEDC1A.ke", &get_ExcIEEEDC1A_ke); + get_map.emplace("ExcIEEEDC1A.kf", &get_ExcIEEEDC1A_kf); + get_map.emplace("ExcIEEEDC1A.seefd1", &get_ExcIEEEDC1A_seefd1); + get_map.emplace("ExcIEEEDC1A.seefd2", &get_ExcIEEEDC1A_seefd2); + get_map.emplace("ExcIEEEDC1A.ta", &get_ExcIEEEDC1A_ta); + get_map.emplace("ExcIEEEDC1A.tb", &get_ExcIEEEDC1A_tb); + get_map.emplace("ExcIEEEDC1A.tc", &get_ExcIEEEDC1A_tc); + get_map.emplace("ExcIEEEDC1A.te", &get_ExcIEEEDC1A_te); + get_map.emplace("ExcIEEEDC1A.tf", &get_ExcIEEEDC1A_tf); + get_map.emplace("ExcIEEEDC1A.uelin", &get_ExcIEEEDC1A_uelin); + get_map.emplace("ExcIEEEDC1A.vrmax", &get_ExcIEEEDC1A_vrmax); + get_map.emplace("ExcIEEEDC1A.vrmin", &get_ExcIEEEDC1A_vrmin); } void ExcIEEEDC1A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEDC1A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC1A::declare() { return BaseClassDefiner(ExcIEEEDC1A::addConstructToMap, ExcIEEEDC1A::addPrimitiveAssignFnsToMap, ExcIEEEDC1A::addClassAssignFnsToMap, ExcIEEEDC1A::debugName); } +std::map ExcIEEEDC1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC1A_factory() diff --git a/CGMES_3.0.0/ExcIEEEDC1A.hpp b/CGMES_3.0.0/ExcIEEEDC1A.hpp index 1932d492a..e9cf6c4a4 100644 --- a/CGMES_3.0.0/ExcIEEEDC1A.hpp +++ b/CGMES_3.0.0/ExcIEEEDC1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC1A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEDC2A.cpp b/CGMES_3.0.0/ExcIEEEDC2A.cpp index da3ebc726..255dca281 100644 --- a/CGMES_3.0.0/ExcIEEEDC2A.cpp +++ b/CGMES_3.0.0/ExcIEEEDC2A.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC2A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC2A.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.exclim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.uelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC2A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC2A::ExcIEEEDC2A() {} ExcIEEEDC2A::~ExcIEEEDC2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC2A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC2A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC2A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC2A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC2A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEDC2A::debugString() const void ExcIEEEDC2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC2A", &ExcIEEEDC2A_factory); + factory_map.emplace("ExcIEEEDC2A", &ExcIEEEDC2A_factory); } void ExcIEEEDC2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC2A.efd1", &assign_ExcIEEEDC2A_efd1); - assign_map.emplace("cim:ExcIEEEDC2A.efd2", &assign_ExcIEEEDC2A_efd2); - assign_map.emplace("cim:ExcIEEEDC2A.exclim", &assign_ExcIEEEDC2A_exclim); - assign_map.emplace("cim:ExcIEEEDC2A.ka", &assign_ExcIEEEDC2A_ka); - assign_map.emplace("cim:ExcIEEEDC2A.ke", &assign_ExcIEEEDC2A_ke); - assign_map.emplace("cim:ExcIEEEDC2A.kf", &assign_ExcIEEEDC2A_kf); - assign_map.emplace("cim:ExcIEEEDC2A.seefd1", &assign_ExcIEEEDC2A_seefd1); - assign_map.emplace("cim:ExcIEEEDC2A.seefd2", &assign_ExcIEEEDC2A_seefd2); - assign_map.emplace("cim:ExcIEEEDC2A.ta", &assign_ExcIEEEDC2A_ta); - assign_map.emplace("cim:ExcIEEEDC2A.tb", &assign_ExcIEEEDC2A_tb); - assign_map.emplace("cim:ExcIEEEDC2A.tc", &assign_ExcIEEEDC2A_tc); - assign_map.emplace("cim:ExcIEEEDC2A.te", &assign_ExcIEEEDC2A_te); - assign_map.emplace("cim:ExcIEEEDC2A.tf", &assign_ExcIEEEDC2A_tf); - assign_map.emplace("cim:ExcIEEEDC2A.uelin", &assign_ExcIEEEDC2A_uelin); - assign_map.emplace("cim:ExcIEEEDC2A.vrmax", &assign_ExcIEEEDC2A_vrmax); - assign_map.emplace("cim:ExcIEEEDC2A.vrmin", &assign_ExcIEEEDC2A_vrmin); + assign_map.emplace("ExcIEEEDC2A.efd1", &assign_ExcIEEEDC2A_efd1); + assign_map.emplace("ExcIEEEDC2A.efd2", &assign_ExcIEEEDC2A_efd2); + assign_map.emplace("ExcIEEEDC2A.exclim", &assign_ExcIEEEDC2A_exclim); + assign_map.emplace("ExcIEEEDC2A.ka", &assign_ExcIEEEDC2A_ka); + assign_map.emplace("ExcIEEEDC2A.ke", &assign_ExcIEEEDC2A_ke); + assign_map.emplace("ExcIEEEDC2A.kf", &assign_ExcIEEEDC2A_kf); + assign_map.emplace("ExcIEEEDC2A.seefd1", &assign_ExcIEEEDC2A_seefd1); + assign_map.emplace("ExcIEEEDC2A.seefd2", &assign_ExcIEEEDC2A_seefd2); + assign_map.emplace("ExcIEEEDC2A.ta", &assign_ExcIEEEDC2A_ta); + assign_map.emplace("ExcIEEEDC2A.tb", &assign_ExcIEEEDC2A_tb); + assign_map.emplace("ExcIEEEDC2A.tc", &assign_ExcIEEEDC2A_tc); + assign_map.emplace("ExcIEEEDC2A.te", &assign_ExcIEEEDC2A_te); + assign_map.emplace("ExcIEEEDC2A.tf", &assign_ExcIEEEDC2A_tf); + assign_map.emplace("ExcIEEEDC2A.uelin", &assign_ExcIEEEDC2A_uelin); + assign_map.emplace("ExcIEEEDC2A.vrmax", &assign_ExcIEEEDC2A_vrmax); + assign_map.emplace("ExcIEEEDC2A.vrmin", &assign_ExcIEEEDC2A_vrmin); } void ExcIEEEDC2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEDC2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC2A.efd1", &get_ExcIEEEDC2A_efd1); - get_map.emplace("cim:ExcIEEEDC2A.efd2", &get_ExcIEEEDC2A_efd2); - get_map.emplace("cim:ExcIEEEDC2A.exclim", &get_ExcIEEEDC2A_exclim); - get_map.emplace("cim:ExcIEEEDC2A.ka", &get_ExcIEEEDC2A_ka); - get_map.emplace("cim:ExcIEEEDC2A.ke", &get_ExcIEEEDC2A_ke); - get_map.emplace("cim:ExcIEEEDC2A.kf", &get_ExcIEEEDC2A_kf); - get_map.emplace("cim:ExcIEEEDC2A.seefd1", &get_ExcIEEEDC2A_seefd1); - get_map.emplace("cim:ExcIEEEDC2A.seefd2", &get_ExcIEEEDC2A_seefd2); - get_map.emplace("cim:ExcIEEEDC2A.ta", &get_ExcIEEEDC2A_ta); - get_map.emplace("cim:ExcIEEEDC2A.tb", &get_ExcIEEEDC2A_tb); - get_map.emplace("cim:ExcIEEEDC2A.tc", &get_ExcIEEEDC2A_tc); - get_map.emplace("cim:ExcIEEEDC2A.te", &get_ExcIEEEDC2A_te); - get_map.emplace("cim:ExcIEEEDC2A.tf", &get_ExcIEEEDC2A_tf); - get_map.emplace("cim:ExcIEEEDC2A.uelin", &get_ExcIEEEDC2A_uelin); - get_map.emplace("cim:ExcIEEEDC2A.vrmax", &get_ExcIEEEDC2A_vrmax); - get_map.emplace("cim:ExcIEEEDC2A.vrmin", &get_ExcIEEEDC2A_vrmin); + get_map.emplace("ExcIEEEDC2A.efd1", &get_ExcIEEEDC2A_efd1); + get_map.emplace("ExcIEEEDC2A.efd2", &get_ExcIEEEDC2A_efd2); + get_map.emplace("ExcIEEEDC2A.exclim", &get_ExcIEEEDC2A_exclim); + get_map.emplace("ExcIEEEDC2A.ka", &get_ExcIEEEDC2A_ka); + get_map.emplace("ExcIEEEDC2A.ke", &get_ExcIEEEDC2A_ke); + get_map.emplace("ExcIEEEDC2A.kf", &get_ExcIEEEDC2A_kf); + get_map.emplace("ExcIEEEDC2A.seefd1", &get_ExcIEEEDC2A_seefd1); + get_map.emplace("ExcIEEEDC2A.seefd2", &get_ExcIEEEDC2A_seefd2); + get_map.emplace("ExcIEEEDC2A.ta", &get_ExcIEEEDC2A_ta); + get_map.emplace("ExcIEEEDC2A.tb", &get_ExcIEEEDC2A_tb); + get_map.emplace("ExcIEEEDC2A.tc", &get_ExcIEEEDC2A_tc); + get_map.emplace("ExcIEEEDC2A.te", &get_ExcIEEEDC2A_te); + get_map.emplace("ExcIEEEDC2A.tf", &get_ExcIEEEDC2A_tf); + get_map.emplace("ExcIEEEDC2A.uelin", &get_ExcIEEEDC2A_uelin); + get_map.emplace("ExcIEEEDC2A.vrmax", &get_ExcIEEEDC2A_vrmax); + get_map.emplace("ExcIEEEDC2A.vrmin", &get_ExcIEEEDC2A_vrmin); } void ExcIEEEDC2A::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEDC2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC2A::declare() { return BaseClassDefiner(ExcIEEEDC2A::addConstructToMap, ExcIEEEDC2A::addPrimitiveAssignFnsToMap, ExcIEEEDC2A::addClassAssignFnsToMap, ExcIEEEDC2A::debugName); } +std::map ExcIEEEDC2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC2A_factory() diff --git a/CGMES_3.0.0/ExcIEEEDC2A.hpp b/CGMES_3.0.0/ExcIEEEDC2A.hpp index f70554732..471664a6c 100644 --- a/CGMES_3.0.0/ExcIEEEDC2A.hpp +++ b/CGMES_3.0.0/ExcIEEEDC2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC2A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEDC3A.cpp b/CGMES_3.0.0/ExcIEEEDC3A.cpp index 0a3177ee8..91ff887e0 100644 --- a/CGMES_3.0.0/ExcIEEEDC3A.cpp +++ b/CGMES_3.0.0/ExcIEEEDC3A.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC3A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC3A.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.exclim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.kv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.trh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC3A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC3A::ExcIEEEDC3A() {} ExcIEEEDC3A::~ExcIEEEDC3A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEDC3A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEDC3A::getClassNamespaceUrl() const { - { "cim:ExcIEEEDC3A.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.exclim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.kv", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.trh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC3A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEDC3A::getPossibleProfilesForClass() const +const std::string& ExcIEEEDC3A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEDC3A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEDC3A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC3A_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* ExcIEEEDC3A::debugString() const void ExcIEEEDC3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC3A", &ExcIEEEDC3A_factory); + factory_map.emplace("ExcIEEEDC3A", &ExcIEEEDC3A_factory); } void ExcIEEEDC3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC3A.efd1", &assign_ExcIEEEDC3A_efd1); - assign_map.emplace("cim:ExcIEEEDC3A.efd2", &assign_ExcIEEEDC3A_efd2); - assign_map.emplace("cim:ExcIEEEDC3A.exclim", &assign_ExcIEEEDC3A_exclim); - assign_map.emplace("cim:ExcIEEEDC3A.ke", &assign_ExcIEEEDC3A_ke); - assign_map.emplace("cim:ExcIEEEDC3A.kv", &assign_ExcIEEEDC3A_kv); - assign_map.emplace("cim:ExcIEEEDC3A.seefd1", &assign_ExcIEEEDC3A_seefd1); - assign_map.emplace("cim:ExcIEEEDC3A.seefd2", &assign_ExcIEEEDC3A_seefd2); - assign_map.emplace("cim:ExcIEEEDC3A.te", &assign_ExcIEEEDC3A_te); - assign_map.emplace("cim:ExcIEEEDC3A.trh", &assign_ExcIEEEDC3A_trh); - assign_map.emplace("cim:ExcIEEEDC3A.vrmax", &assign_ExcIEEEDC3A_vrmax); - assign_map.emplace("cim:ExcIEEEDC3A.vrmin", &assign_ExcIEEEDC3A_vrmin); + assign_map.emplace("ExcIEEEDC3A.efd1", &assign_ExcIEEEDC3A_efd1); + assign_map.emplace("ExcIEEEDC3A.efd2", &assign_ExcIEEEDC3A_efd2); + assign_map.emplace("ExcIEEEDC3A.exclim", &assign_ExcIEEEDC3A_exclim); + assign_map.emplace("ExcIEEEDC3A.ke", &assign_ExcIEEEDC3A_ke); + assign_map.emplace("ExcIEEEDC3A.kv", &assign_ExcIEEEDC3A_kv); + assign_map.emplace("ExcIEEEDC3A.seefd1", &assign_ExcIEEEDC3A_seefd1); + assign_map.emplace("ExcIEEEDC3A.seefd2", &assign_ExcIEEEDC3A_seefd2); + assign_map.emplace("ExcIEEEDC3A.te", &assign_ExcIEEEDC3A_te); + assign_map.emplace("ExcIEEEDC3A.trh", &assign_ExcIEEEDC3A_trh); + assign_map.emplace("ExcIEEEDC3A.vrmax", &assign_ExcIEEEDC3A_vrmax); + assign_map.emplace("ExcIEEEDC3A.vrmin", &assign_ExcIEEEDC3A_vrmin); } void ExcIEEEDC3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void ExcIEEEDC3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC3A.efd1", &get_ExcIEEEDC3A_efd1); - get_map.emplace("cim:ExcIEEEDC3A.efd2", &get_ExcIEEEDC3A_efd2); - get_map.emplace("cim:ExcIEEEDC3A.exclim", &get_ExcIEEEDC3A_exclim); - get_map.emplace("cim:ExcIEEEDC3A.ke", &get_ExcIEEEDC3A_ke); - get_map.emplace("cim:ExcIEEEDC3A.kv", &get_ExcIEEEDC3A_kv); - get_map.emplace("cim:ExcIEEEDC3A.seefd1", &get_ExcIEEEDC3A_seefd1); - get_map.emplace("cim:ExcIEEEDC3A.seefd2", &get_ExcIEEEDC3A_seefd2); - get_map.emplace("cim:ExcIEEEDC3A.te", &get_ExcIEEEDC3A_te); - get_map.emplace("cim:ExcIEEEDC3A.trh", &get_ExcIEEEDC3A_trh); - get_map.emplace("cim:ExcIEEEDC3A.vrmax", &get_ExcIEEEDC3A_vrmax); - get_map.emplace("cim:ExcIEEEDC3A.vrmin", &get_ExcIEEEDC3A_vrmin); + get_map.emplace("ExcIEEEDC3A.efd1", &get_ExcIEEEDC3A_efd1); + get_map.emplace("ExcIEEEDC3A.efd2", &get_ExcIEEEDC3A_efd2); + get_map.emplace("ExcIEEEDC3A.exclim", &get_ExcIEEEDC3A_exclim); + get_map.emplace("ExcIEEEDC3A.ke", &get_ExcIEEEDC3A_ke); + get_map.emplace("ExcIEEEDC3A.kv", &get_ExcIEEEDC3A_kv); + get_map.emplace("ExcIEEEDC3A.seefd1", &get_ExcIEEEDC3A_seefd1); + get_map.emplace("ExcIEEEDC3A.seefd2", &get_ExcIEEEDC3A_seefd2); + get_map.emplace("ExcIEEEDC3A.te", &get_ExcIEEEDC3A_te); + get_map.emplace("ExcIEEEDC3A.trh", &get_ExcIEEEDC3A_trh); + get_map.emplace("ExcIEEEDC3A.vrmax", &get_ExcIEEEDC3A_vrmax); + get_map.emplace("ExcIEEEDC3A.vrmin", &get_ExcIEEEDC3A_vrmin); } void ExcIEEEDC3A::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void ExcIEEEDC3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC3A::declare() { return BaseClassDefiner(ExcIEEEDC3A::addConstructToMap, ExcIEEEDC3A::addPrimitiveAssignFnsToMap, ExcIEEEDC3A::addClassAssignFnsToMap, ExcIEEEDC3A::debugName); } +std::map ExcIEEEDC3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC3A_factory() diff --git a/CGMES_3.0.0/ExcIEEEDC3A.hpp b/CGMES_3.0.0/ExcIEEEDC3A.hpp index 5e9dd35de..3b7b37c01 100644 --- a/CGMES_3.0.0/ExcIEEEDC3A.hpp +++ b/CGMES_3.0.0/ExcIEEEDC3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -64,8 +65,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -73,7 +81,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC3A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEDC4B.cpp b/CGMES_3.0.0/ExcIEEEDC4B.cpp index 7f3838589..98ccc6941 100644 --- a/CGMES_3.0.0/ExcIEEEDC4B.cpp +++ b/CGMES_3.0.0/ExcIEEEDC4B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEDC4B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEDC4B.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.oelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.seefd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.seefd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.uelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vemin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEDC4B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEDC4B::ExcIEEEDC4B() {} ExcIEEEDC4B::~ExcIEEEDC4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEDC4B.efd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.efd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kd", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.seefd1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.seefd2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.td", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vemin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEDC4B.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEDC4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEDC4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEDC4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEDC4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEDC4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEDC4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEDC4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEDC4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEDC4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEDC4B_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcIEEEDC4B::debugString() const void ExcIEEEDC4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEDC4B", &ExcIEEEDC4B_factory); + factory_map.emplace("ExcIEEEDC4B", &ExcIEEEDC4B_factory); } void ExcIEEEDC4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEDC4B.efd1", &assign_ExcIEEEDC4B_efd1); - assign_map.emplace("cim:ExcIEEEDC4B.efd2", &assign_ExcIEEEDC4B_efd2); - assign_map.emplace("cim:ExcIEEEDC4B.ka", &assign_ExcIEEEDC4B_ka); - assign_map.emplace("cim:ExcIEEEDC4B.kd", &assign_ExcIEEEDC4B_kd); - assign_map.emplace("cim:ExcIEEEDC4B.ke", &assign_ExcIEEEDC4B_ke); - assign_map.emplace("cim:ExcIEEEDC4B.kf", &assign_ExcIEEEDC4B_kf); - assign_map.emplace("cim:ExcIEEEDC4B.ki", &assign_ExcIEEEDC4B_ki); - assign_map.emplace("cim:ExcIEEEDC4B.kp", &assign_ExcIEEEDC4B_kp); - assign_map.emplace("cim:ExcIEEEDC4B.oelin", &assign_ExcIEEEDC4B_oelin); - assign_map.emplace("cim:ExcIEEEDC4B.seefd1", &assign_ExcIEEEDC4B_seefd1); - assign_map.emplace("cim:ExcIEEEDC4B.seefd2", &assign_ExcIEEEDC4B_seefd2); - assign_map.emplace("cim:ExcIEEEDC4B.ta", &assign_ExcIEEEDC4B_ta); - assign_map.emplace("cim:ExcIEEEDC4B.td", &assign_ExcIEEEDC4B_td); - assign_map.emplace("cim:ExcIEEEDC4B.te", &assign_ExcIEEEDC4B_te); - assign_map.emplace("cim:ExcIEEEDC4B.tf", &assign_ExcIEEEDC4B_tf); - assign_map.emplace("cim:ExcIEEEDC4B.uelin", &assign_ExcIEEEDC4B_uelin); - assign_map.emplace("cim:ExcIEEEDC4B.vemin", &assign_ExcIEEEDC4B_vemin); - assign_map.emplace("cim:ExcIEEEDC4B.vrmax", &assign_ExcIEEEDC4B_vrmax); - assign_map.emplace("cim:ExcIEEEDC4B.vrmin", &assign_ExcIEEEDC4B_vrmin); + assign_map.emplace("ExcIEEEDC4B.efd1", &assign_ExcIEEEDC4B_efd1); + assign_map.emplace("ExcIEEEDC4B.efd2", &assign_ExcIEEEDC4B_efd2); + assign_map.emplace("ExcIEEEDC4B.ka", &assign_ExcIEEEDC4B_ka); + assign_map.emplace("ExcIEEEDC4B.kd", &assign_ExcIEEEDC4B_kd); + assign_map.emplace("ExcIEEEDC4B.ke", &assign_ExcIEEEDC4B_ke); + assign_map.emplace("ExcIEEEDC4B.kf", &assign_ExcIEEEDC4B_kf); + assign_map.emplace("ExcIEEEDC4B.ki", &assign_ExcIEEEDC4B_ki); + assign_map.emplace("ExcIEEEDC4B.kp", &assign_ExcIEEEDC4B_kp); + assign_map.emplace("ExcIEEEDC4B.oelin", &assign_ExcIEEEDC4B_oelin); + assign_map.emplace("ExcIEEEDC4B.seefd1", &assign_ExcIEEEDC4B_seefd1); + assign_map.emplace("ExcIEEEDC4B.seefd2", &assign_ExcIEEEDC4B_seefd2); + assign_map.emplace("ExcIEEEDC4B.ta", &assign_ExcIEEEDC4B_ta); + assign_map.emplace("ExcIEEEDC4B.td", &assign_ExcIEEEDC4B_td); + assign_map.emplace("ExcIEEEDC4B.te", &assign_ExcIEEEDC4B_te); + assign_map.emplace("ExcIEEEDC4B.tf", &assign_ExcIEEEDC4B_tf); + assign_map.emplace("ExcIEEEDC4B.uelin", &assign_ExcIEEEDC4B_uelin); + assign_map.emplace("ExcIEEEDC4B.vemin", &assign_ExcIEEEDC4B_vemin); + assign_map.emplace("ExcIEEEDC4B.vrmax", &assign_ExcIEEEDC4B_vrmax); + assign_map.emplace("ExcIEEEDC4B.vrmin", &assign_ExcIEEEDC4B_vrmin); } void ExcIEEEDC4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcIEEEDC4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEDC4B.efd1", &get_ExcIEEEDC4B_efd1); - get_map.emplace("cim:ExcIEEEDC4B.efd2", &get_ExcIEEEDC4B_efd2); - get_map.emplace("cim:ExcIEEEDC4B.ka", &get_ExcIEEEDC4B_ka); - get_map.emplace("cim:ExcIEEEDC4B.kd", &get_ExcIEEEDC4B_kd); - get_map.emplace("cim:ExcIEEEDC4B.ke", &get_ExcIEEEDC4B_ke); - get_map.emplace("cim:ExcIEEEDC4B.kf", &get_ExcIEEEDC4B_kf); - get_map.emplace("cim:ExcIEEEDC4B.ki", &get_ExcIEEEDC4B_ki); - get_map.emplace("cim:ExcIEEEDC4B.kp", &get_ExcIEEEDC4B_kp); - get_map.emplace("cim:ExcIEEEDC4B.oelin", &get_ExcIEEEDC4B_oelin); - get_map.emplace("cim:ExcIEEEDC4B.seefd1", &get_ExcIEEEDC4B_seefd1); - get_map.emplace("cim:ExcIEEEDC4B.seefd2", &get_ExcIEEEDC4B_seefd2); - get_map.emplace("cim:ExcIEEEDC4B.ta", &get_ExcIEEEDC4B_ta); - get_map.emplace("cim:ExcIEEEDC4B.td", &get_ExcIEEEDC4B_td); - get_map.emplace("cim:ExcIEEEDC4B.te", &get_ExcIEEEDC4B_te); - get_map.emplace("cim:ExcIEEEDC4B.tf", &get_ExcIEEEDC4B_tf); - get_map.emplace("cim:ExcIEEEDC4B.uelin", &get_ExcIEEEDC4B_uelin); - get_map.emplace("cim:ExcIEEEDC4B.vemin", &get_ExcIEEEDC4B_vemin); - get_map.emplace("cim:ExcIEEEDC4B.vrmax", &get_ExcIEEEDC4B_vrmax); - get_map.emplace("cim:ExcIEEEDC4B.vrmin", &get_ExcIEEEDC4B_vrmin); + get_map.emplace("ExcIEEEDC4B.efd1", &get_ExcIEEEDC4B_efd1); + get_map.emplace("ExcIEEEDC4B.efd2", &get_ExcIEEEDC4B_efd2); + get_map.emplace("ExcIEEEDC4B.ka", &get_ExcIEEEDC4B_ka); + get_map.emplace("ExcIEEEDC4B.kd", &get_ExcIEEEDC4B_kd); + get_map.emplace("ExcIEEEDC4B.ke", &get_ExcIEEEDC4B_ke); + get_map.emplace("ExcIEEEDC4B.kf", &get_ExcIEEEDC4B_kf); + get_map.emplace("ExcIEEEDC4B.ki", &get_ExcIEEEDC4B_ki); + get_map.emplace("ExcIEEEDC4B.kp", &get_ExcIEEEDC4B_kp); + get_map.emplace("ExcIEEEDC4B.oelin", &get_ExcIEEEDC4B_oelin); + get_map.emplace("ExcIEEEDC4B.seefd1", &get_ExcIEEEDC4B_seefd1); + get_map.emplace("ExcIEEEDC4B.seefd2", &get_ExcIEEEDC4B_seefd2); + get_map.emplace("ExcIEEEDC4B.ta", &get_ExcIEEEDC4B_ta); + get_map.emplace("ExcIEEEDC4B.td", &get_ExcIEEEDC4B_td); + get_map.emplace("ExcIEEEDC4B.te", &get_ExcIEEEDC4B_te); + get_map.emplace("ExcIEEEDC4B.tf", &get_ExcIEEEDC4B_tf); + get_map.emplace("ExcIEEEDC4B.uelin", &get_ExcIEEEDC4B_uelin); + get_map.emplace("ExcIEEEDC4B.vemin", &get_ExcIEEEDC4B_vemin); + get_map.emplace("ExcIEEEDC4B.vrmax", &get_ExcIEEEDC4B_vrmax); + get_map.emplace("ExcIEEEDC4B.vrmin", &get_ExcIEEEDC4B_vrmin); } void ExcIEEEDC4B::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcIEEEDC4B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEDC4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEDC4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEDC4B::declare() { return BaseClassDefiner(ExcIEEEDC4B::addConstructToMap, ExcIEEEDC4B::addPrimitiveAssignFnsToMap, ExcIEEEDC4B::addClassAssignFnsToMap, ExcIEEEDC4B::debugName); } +std::map ExcIEEEDC4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEDC4B_factory() diff --git a/CGMES_3.0.0/ExcIEEEDC4B.hpp b/CGMES_3.0.0/ExcIEEEDC4B.hpp index 13b019c99..f62e81b7d 100644 --- a/CGMES_3.0.0/ExcIEEEDC4B.hpp +++ b/CGMES_3.0.0/ExcIEEEDC4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEDC4B_factory(); diff --git a/CGMES_3.0.0/ExcIEEEST1A.cpp b/CGMES_3.0.0/ExcIEEEST1A.cpp index 17ef6c50f..e5245735a 100644 --- a/CGMES_3.0.0/ExcIEEEST1A.cpp +++ b/CGMES_3.0.0/ExcIEEEST1A.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST1A.ilr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.klr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.pssin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tb1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tc1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.uelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST1A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST1A::ExcIEEEST1A() {} ExcIEEEST1A::~ExcIEEEST1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEST1A.ilr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.klr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.pssin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tb1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEST1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEST1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEST1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEST1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEST1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEST1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST1A_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcIEEEST1A::debugString() const void ExcIEEEST1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST1A", &ExcIEEEST1A_factory); + factory_map.emplace("ExcIEEEST1A", &ExcIEEEST1A_factory); } void ExcIEEEST1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST1A.ilr", &assign_ExcIEEEST1A_ilr); - assign_map.emplace("cim:ExcIEEEST1A.ka", &assign_ExcIEEEST1A_ka); - assign_map.emplace("cim:ExcIEEEST1A.kc", &assign_ExcIEEEST1A_kc); - assign_map.emplace("cim:ExcIEEEST1A.kf", &assign_ExcIEEEST1A_kf); - assign_map.emplace("cim:ExcIEEEST1A.klr", &assign_ExcIEEEST1A_klr); - assign_map.emplace("cim:ExcIEEEST1A.pssin", &assign_ExcIEEEST1A_pssin); - assign_map.emplace("cim:ExcIEEEST1A.ta", &assign_ExcIEEEST1A_ta); - assign_map.emplace("cim:ExcIEEEST1A.tb", &assign_ExcIEEEST1A_tb); - assign_map.emplace("cim:ExcIEEEST1A.tb1", &assign_ExcIEEEST1A_tb1); - assign_map.emplace("cim:ExcIEEEST1A.tc", &assign_ExcIEEEST1A_tc); - assign_map.emplace("cim:ExcIEEEST1A.tc1", &assign_ExcIEEEST1A_tc1); - assign_map.emplace("cim:ExcIEEEST1A.tf", &assign_ExcIEEEST1A_tf); - assign_map.emplace("cim:ExcIEEEST1A.uelin", &assign_ExcIEEEST1A_uelin); - assign_map.emplace("cim:ExcIEEEST1A.vamax", &assign_ExcIEEEST1A_vamax); - assign_map.emplace("cim:ExcIEEEST1A.vamin", &assign_ExcIEEEST1A_vamin); - assign_map.emplace("cim:ExcIEEEST1A.vimax", &assign_ExcIEEEST1A_vimax); - assign_map.emplace("cim:ExcIEEEST1A.vimin", &assign_ExcIEEEST1A_vimin); - assign_map.emplace("cim:ExcIEEEST1A.vrmax", &assign_ExcIEEEST1A_vrmax); - assign_map.emplace("cim:ExcIEEEST1A.vrmin", &assign_ExcIEEEST1A_vrmin); + assign_map.emplace("ExcIEEEST1A.ilr", &assign_ExcIEEEST1A_ilr); + assign_map.emplace("ExcIEEEST1A.ka", &assign_ExcIEEEST1A_ka); + assign_map.emplace("ExcIEEEST1A.kc", &assign_ExcIEEEST1A_kc); + assign_map.emplace("ExcIEEEST1A.kf", &assign_ExcIEEEST1A_kf); + assign_map.emplace("ExcIEEEST1A.klr", &assign_ExcIEEEST1A_klr); + assign_map.emplace("ExcIEEEST1A.pssin", &assign_ExcIEEEST1A_pssin); + assign_map.emplace("ExcIEEEST1A.ta", &assign_ExcIEEEST1A_ta); + assign_map.emplace("ExcIEEEST1A.tb", &assign_ExcIEEEST1A_tb); + assign_map.emplace("ExcIEEEST1A.tb1", &assign_ExcIEEEST1A_tb1); + assign_map.emplace("ExcIEEEST1A.tc", &assign_ExcIEEEST1A_tc); + assign_map.emplace("ExcIEEEST1A.tc1", &assign_ExcIEEEST1A_tc1); + assign_map.emplace("ExcIEEEST1A.tf", &assign_ExcIEEEST1A_tf); + assign_map.emplace("ExcIEEEST1A.uelin", &assign_ExcIEEEST1A_uelin); + assign_map.emplace("ExcIEEEST1A.vamax", &assign_ExcIEEEST1A_vamax); + assign_map.emplace("ExcIEEEST1A.vamin", &assign_ExcIEEEST1A_vamin); + assign_map.emplace("ExcIEEEST1A.vimax", &assign_ExcIEEEST1A_vimax); + assign_map.emplace("ExcIEEEST1A.vimin", &assign_ExcIEEEST1A_vimin); + assign_map.emplace("ExcIEEEST1A.vrmax", &assign_ExcIEEEST1A_vrmax); + assign_map.emplace("ExcIEEEST1A.vrmin", &assign_ExcIEEEST1A_vrmin); } void ExcIEEEST1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,24 +681,24 @@ void ExcIEEEST1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST1A.ilr", &get_ExcIEEEST1A_ilr); - get_map.emplace("cim:ExcIEEEST1A.ka", &get_ExcIEEEST1A_ka); - get_map.emplace("cim:ExcIEEEST1A.kc", &get_ExcIEEEST1A_kc); - get_map.emplace("cim:ExcIEEEST1A.kf", &get_ExcIEEEST1A_kf); - get_map.emplace("cim:ExcIEEEST1A.klr", &get_ExcIEEEST1A_klr); - get_map.emplace("cim:ExcIEEEST1A.pssin", &get_ExcIEEEST1A_pssin); - get_map.emplace("cim:ExcIEEEST1A.ta", &get_ExcIEEEST1A_ta); - get_map.emplace("cim:ExcIEEEST1A.tb", &get_ExcIEEEST1A_tb); - get_map.emplace("cim:ExcIEEEST1A.tb1", &get_ExcIEEEST1A_tb1); - get_map.emplace("cim:ExcIEEEST1A.tc", &get_ExcIEEEST1A_tc); - get_map.emplace("cim:ExcIEEEST1A.tc1", &get_ExcIEEEST1A_tc1); - get_map.emplace("cim:ExcIEEEST1A.tf", &get_ExcIEEEST1A_tf); - get_map.emplace("cim:ExcIEEEST1A.vamax", &get_ExcIEEEST1A_vamax); - get_map.emplace("cim:ExcIEEEST1A.vamin", &get_ExcIEEEST1A_vamin); - get_map.emplace("cim:ExcIEEEST1A.vimax", &get_ExcIEEEST1A_vimax); - get_map.emplace("cim:ExcIEEEST1A.vimin", &get_ExcIEEEST1A_vimin); - get_map.emplace("cim:ExcIEEEST1A.vrmax", &get_ExcIEEEST1A_vrmax); - get_map.emplace("cim:ExcIEEEST1A.vrmin", &get_ExcIEEEST1A_vrmin); + get_map.emplace("ExcIEEEST1A.ilr", &get_ExcIEEEST1A_ilr); + get_map.emplace("ExcIEEEST1A.ka", &get_ExcIEEEST1A_ka); + get_map.emplace("ExcIEEEST1A.kc", &get_ExcIEEEST1A_kc); + get_map.emplace("ExcIEEEST1A.kf", &get_ExcIEEEST1A_kf); + get_map.emplace("ExcIEEEST1A.klr", &get_ExcIEEEST1A_klr); + get_map.emplace("ExcIEEEST1A.pssin", &get_ExcIEEEST1A_pssin); + get_map.emplace("ExcIEEEST1A.ta", &get_ExcIEEEST1A_ta); + get_map.emplace("ExcIEEEST1A.tb", &get_ExcIEEEST1A_tb); + get_map.emplace("ExcIEEEST1A.tb1", &get_ExcIEEEST1A_tb1); + get_map.emplace("ExcIEEEST1A.tc", &get_ExcIEEEST1A_tc); + get_map.emplace("ExcIEEEST1A.tc1", &get_ExcIEEEST1A_tc1); + get_map.emplace("ExcIEEEST1A.tf", &get_ExcIEEEST1A_tf); + get_map.emplace("ExcIEEEST1A.vamax", &get_ExcIEEEST1A_vamax); + get_map.emplace("ExcIEEEST1A.vamin", &get_ExcIEEEST1A_vamin); + get_map.emplace("ExcIEEEST1A.vimax", &get_ExcIEEEST1A_vimax); + get_map.emplace("ExcIEEEST1A.vimin", &get_ExcIEEEST1A_vimin); + get_map.emplace("ExcIEEEST1A.vrmax", &get_ExcIEEEST1A_vrmax); + get_map.emplace("ExcIEEEST1A.vrmin", &get_ExcIEEEST1A_vrmin); } void ExcIEEEST1A::addClassGetFnsToMap(std::map& get_map) const @@ -677,7 +709,13 @@ void ExcIEEEST1A::addClassGetFnsToMap(std::map& void ExcIEEEST1A::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST1A.uelin", &get_ExcIEEEST1A_uelin); + get_map.emplace("ExcIEEEST1A.uelin", &get_ExcIEEEST1A_uelin); +} + +bool ExcIEEEST1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST1A::declare() @@ -685,6 +723,14 @@ const BaseClassDefiner ExcIEEEST1A::declare() return BaseClassDefiner(ExcIEEEST1A::addConstructToMap, ExcIEEEST1A::addPrimitiveAssignFnsToMap, ExcIEEEST1A::addClassAssignFnsToMap, ExcIEEEST1A::debugName); } +std::map ExcIEEEST1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST1A_factory() diff --git a/CGMES_3.0.0/ExcIEEEST1A.hpp b/CGMES_3.0.0/ExcIEEEST1A.hpp index 04096d444..f5f1605e6 100644 --- a/CGMES_3.0.0/ExcIEEEST1A.hpp +++ b/CGMES_3.0.0/ExcIEEEST1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "ExcIEEEST1AUELselectorKind.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST1A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEST2A.cpp b/CGMES_3.0.0/ExcIEEEST2A.cpp index 0d80e5ac3..98932d3b3 100644 --- a/CGMES_3.0.0/ExcIEEEST2A.cpp +++ b/CGMES_3.0.0/ExcIEEEST2A.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST2A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST2A.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.uelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST2A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST2A::ExcIEEEST2A() {} ExcIEEEST2A::~ExcIEEEST2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST2A::getClassNamespaceUrl() const { - { "cim:ExcIEEEST2A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.te", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST2A::getPossibleProfilesForClass() const +const std::string& ExcIEEEST2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST2A::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST2A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcIEEEST2A::debugString() const void ExcIEEEST2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST2A", &ExcIEEEST2A_factory); + factory_map.emplace("ExcIEEEST2A", &ExcIEEEST2A_factory); } void ExcIEEEST2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST2A.efdmax", &assign_ExcIEEEST2A_efdmax); - assign_map.emplace("cim:ExcIEEEST2A.ka", &assign_ExcIEEEST2A_ka); - assign_map.emplace("cim:ExcIEEEST2A.kc", &assign_ExcIEEEST2A_kc); - assign_map.emplace("cim:ExcIEEEST2A.ke", &assign_ExcIEEEST2A_ke); - assign_map.emplace("cim:ExcIEEEST2A.kf", &assign_ExcIEEEST2A_kf); - assign_map.emplace("cim:ExcIEEEST2A.ki", &assign_ExcIEEEST2A_ki); - assign_map.emplace("cim:ExcIEEEST2A.kp", &assign_ExcIEEEST2A_kp); - assign_map.emplace("cim:ExcIEEEST2A.ta", &assign_ExcIEEEST2A_ta); - assign_map.emplace("cim:ExcIEEEST2A.te", &assign_ExcIEEEST2A_te); - assign_map.emplace("cim:ExcIEEEST2A.tf", &assign_ExcIEEEST2A_tf); - assign_map.emplace("cim:ExcIEEEST2A.uelin", &assign_ExcIEEEST2A_uelin); - assign_map.emplace("cim:ExcIEEEST2A.vrmax", &assign_ExcIEEEST2A_vrmax); - assign_map.emplace("cim:ExcIEEEST2A.vrmin", &assign_ExcIEEEST2A_vrmin); + assign_map.emplace("ExcIEEEST2A.efdmax", &assign_ExcIEEEST2A_efdmax); + assign_map.emplace("ExcIEEEST2A.ka", &assign_ExcIEEEST2A_ka); + assign_map.emplace("ExcIEEEST2A.kc", &assign_ExcIEEEST2A_kc); + assign_map.emplace("ExcIEEEST2A.ke", &assign_ExcIEEEST2A_ke); + assign_map.emplace("ExcIEEEST2A.kf", &assign_ExcIEEEST2A_kf); + assign_map.emplace("ExcIEEEST2A.ki", &assign_ExcIEEEST2A_ki); + assign_map.emplace("ExcIEEEST2A.kp", &assign_ExcIEEEST2A_kp); + assign_map.emplace("ExcIEEEST2A.ta", &assign_ExcIEEEST2A_ta); + assign_map.emplace("ExcIEEEST2A.te", &assign_ExcIEEEST2A_te); + assign_map.emplace("ExcIEEEST2A.tf", &assign_ExcIEEEST2A_tf); + assign_map.emplace("ExcIEEEST2A.uelin", &assign_ExcIEEEST2A_uelin); + assign_map.emplace("ExcIEEEST2A.vrmax", &assign_ExcIEEEST2A_vrmax); + assign_map.emplace("ExcIEEEST2A.vrmin", &assign_ExcIEEEST2A_vrmin); } void ExcIEEEST2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcIEEEST2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST2A.efdmax", &get_ExcIEEEST2A_efdmax); - get_map.emplace("cim:ExcIEEEST2A.ka", &get_ExcIEEEST2A_ka); - get_map.emplace("cim:ExcIEEEST2A.kc", &get_ExcIEEEST2A_kc); - get_map.emplace("cim:ExcIEEEST2A.ke", &get_ExcIEEEST2A_ke); - get_map.emplace("cim:ExcIEEEST2A.kf", &get_ExcIEEEST2A_kf); - get_map.emplace("cim:ExcIEEEST2A.ki", &get_ExcIEEEST2A_ki); - get_map.emplace("cim:ExcIEEEST2A.kp", &get_ExcIEEEST2A_kp); - get_map.emplace("cim:ExcIEEEST2A.ta", &get_ExcIEEEST2A_ta); - get_map.emplace("cim:ExcIEEEST2A.te", &get_ExcIEEEST2A_te); - get_map.emplace("cim:ExcIEEEST2A.tf", &get_ExcIEEEST2A_tf); - get_map.emplace("cim:ExcIEEEST2A.uelin", &get_ExcIEEEST2A_uelin); - get_map.emplace("cim:ExcIEEEST2A.vrmax", &get_ExcIEEEST2A_vrmax); - get_map.emplace("cim:ExcIEEEST2A.vrmin", &get_ExcIEEEST2A_vrmin); + get_map.emplace("ExcIEEEST2A.efdmax", &get_ExcIEEEST2A_efdmax); + get_map.emplace("ExcIEEEST2A.ka", &get_ExcIEEEST2A_ka); + get_map.emplace("ExcIEEEST2A.kc", &get_ExcIEEEST2A_kc); + get_map.emplace("ExcIEEEST2A.ke", &get_ExcIEEEST2A_ke); + get_map.emplace("ExcIEEEST2A.kf", &get_ExcIEEEST2A_kf); + get_map.emplace("ExcIEEEST2A.ki", &get_ExcIEEEST2A_ki); + get_map.emplace("ExcIEEEST2A.kp", &get_ExcIEEEST2A_kp); + get_map.emplace("ExcIEEEST2A.ta", &get_ExcIEEEST2A_ta); + get_map.emplace("ExcIEEEST2A.te", &get_ExcIEEEST2A_te); + get_map.emplace("ExcIEEEST2A.tf", &get_ExcIEEEST2A_tf); + get_map.emplace("ExcIEEEST2A.uelin", &get_ExcIEEEST2A_uelin); + get_map.emplace("ExcIEEEST2A.vrmax", &get_ExcIEEEST2A_vrmax); + get_map.emplace("ExcIEEEST2A.vrmin", &get_ExcIEEEST2A_vrmin); } void ExcIEEEST2A::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcIEEEST2A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST2A::declare() { return BaseClassDefiner(ExcIEEEST2A::addConstructToMap, ExcIEEEST2A::addPrimitiveAssignFnsToMap, ExcIEEEST2A::addClassAssignFnsToMap, ExcIEEEST2A::debugName); } +std::map ExcIEEEST2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST2A_factory() diff --git a/CGMES_3.0.0/ExcIEEEST2A.hpp b/CGMES_3.0.0/ExcIEEEST2A.hpp index 3e3d13f21..674721c99 100644 --- a/CGMES_3.0.0/ExcIEEEST2A.hpp +++ b/CGMES_3.0.0/ExcIEEEST2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST2A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEST3A.cpp b/CGMES_3.0.0/ExcIEEEST3A.cpp index 143a70444..3e6bfada6 100644 --- a/CGMES_3.0.0/ExcIEEEST3A.cpp +++ b/CGMES_3.0.0/ExcIEEEST3A.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST3A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST3A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.km", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.thetap", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.tm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vbmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vgmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vmmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vmmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST3A.xl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST3A::ExcIEEEST3A() {} ExcIEEEST3A::~ExcIEEEST3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcIEEEST3A.ka", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.km", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.thetap", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.tm", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST3A.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcIEEEST3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcIEEEST3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcIEEEST3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcIEEEST3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcIEEEST3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcIEEEST3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST3A_ka(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -646,31 +678,31 @@ const char* ExcIEEEST3A::debugString() const void ExcIEEEST3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST3A", &ExcIEEEST3A_factory); + factory_map.emplace("ExcIEEEST3A", &ExcIEEEST3A_factory); } void ExcIEEEST3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST3A.ka", &assign_ExcIEEEST3A_ka); - assign_map.emplace("cim:ExcIEEEST3A.kc", &assign_ExcIEEEST3A_kc); - assign_map.emplace("cim:ExcIEEEST3A.kg", &assign_ExcIEEEST3A_kg); - assign_map.emplace("cim:ExcIEEEST3A.ki", &assign_ExcIEEEST3A_ki); - assign_map.emplace("cim:ExcIEEEST3A.km", &assign_ExcIEEEST3A_km); - assign_map.emplace("cim:ExcIEEEST3A.kp", &assign_ExcIEEEST3A_kp); - assign_map.emplace("cim:ExcIEEEST3A.ta", &assign_ExcIEEEST3A_ta); - assign_map.emplace("cim:ExcIEEEST3A.tb", &assign_ExcIEEEST3A_tb); - assign_map.emplace("cim:ExcIEEEST3A.tc", &assign_ExcIEEEST3A_tc); - assign_map.emplace("cim:ExcIEEEST3A.thetap", &assign_ExcIEEEST3A_thetap); - assign_map.emplace("cim:ExcIEEEST3A.tm", &assign_ExcIEEEST3A_tm); - assign_map.emplace("cim:ExcIEEEST3A.vbmax", &assign_ExcIEEEST3A_vbmax); - assign_map.emplace("cim:ExcIEEEST3A.vgmax", &assign_ExcIEEEST3A_vgmax); - assign_map.emplace("cim:ExcIEEEST3A.vimax", &assign_ExcIEEEST3A_vimax); - assign_map.emplace("cim:ExcIEEEST3A.vimin", &assign_ExcIEEEST3A_vimin); - assign_map.emplace("cim:ExcIEEEST3A.vmmax", &assign_ExcIEEEST3A_vmmax); - assign_map.emplace("cim:ExcIEEEST3A.vmmin", &assign_ExcIEEEST3A_vmmin); - assign_map.emplace("cim:ExcIEEEST3A.vrmax", &assign_ExcIEEEST3A_vrmax); - assign_map.emplace("cim:ExcIEEEST3A.vrmin", &assign_ExcIEEEST3A_vrmin); - assign_map.emplace("cim:ExcIEEEST3A.xl", &assign_ExcIEEEST3A_xl); + assign_map.emplace("ExcIEEEST3A.ka", &assign_ExcIEEEST3A_ka); + assign_map.emplace("ExcIEEEST3A.kc", &assign_ExcIEEEST3A_kc); + assign_map.emplace("ExcIEEEST3A.kg", &assign_ExcIEEEST3A_kg); + assign_map.emplace("ExcIEEEST3A.ki", &assign_ExcIEEEST3A_ki); + assign_map.emplace("ExcIEEEST3A.km", &assign_ExcIEEEST3A_km); + assign_map.emplace("ExcIEEEST3A.kp", &assign_ExcIEEEST3A_kp); + assign_map.emplace("ExcIEEEST3A.ta", &assign_ExcIEEEST3A_ta); + assign_map.emplace("ExcIEEEST3A.tb", &assign_ExcIEEEST3A_tb); + assign_map.emplace("ExcIEEEST3A.tc", &assign_ExcIEEEST3A_tc); + assign_map.emplace("ExcIEEEST3A.thetap", &assign_ExcIEEEST3A_thetap); + assign_map.emplace("ExcIEEEST3A.tm", &assign_ExcIEEEST3A_tm); + assign_map.emplace("ExcIEEEST3A.vbmax", &assign_ExcIEEEST3A_vbmax); + assign_map.emplace("ExcIEEEST3A.vgmax", &assign_ExcIEEEST3A_vgmax); + assign_map.emplace("ExcIEEEST3A.vimax", &assign_ExcIEEEST3A_vimax); + assign_map.emplace("ExcIEEEST3A.vimin", &assign_ExcIEEEST3A_vimin); + assign_map.emplace("ExcIEEEST3A.vmmax", &assign_ExcIEEEST3A_vmmax); + assign_map.emplace("ExcIEEEST3A.vmmin", &assign_ExcIEEEST3A_vmmin); + assign_map.emplace("ExcIEEEST3A.vrmax", &assign_ExcIEEEST3A_vrmax); + assign_map.emplace("ExcIEEEST3A.vrmin", &assign_ExcIEEEST3A_vrmin); + assign_map.emplace("ExcIEEEST3A.xl", &assign_ExcIEEEST3A_xl); } void ExcIEEEST3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -680,26 +712,26 @@ void ExcIEEEST3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST3A.ka", &get_ExcIEEEST3A_ka); - get_map.emplace("cim:ExcIEEEST3A.kc", &get_ExcIEEEST3A_kc); - get_map.emplace("cim:ExcIEEEST3A.kg", &get_ExcIEEEST3A_kg); - get_map.emplace("cim:ExcIEEEST3A.ki", &get_ExcIEEEST3A_ki); - get_map.emplace("cim:ExcIEEEST3A.km", &get_ExcIEEEST3A_km); - get_map.emplace("cim:ExcIEEEST3A.kp", &get_ExcIEEEST3A_kp); - get_map.emplace("cim:ExcIEEEST3A.ta", &get_ExcIEEEST3A_ta); - get_map.emplace("cim:ExcIEEEST3A.tb", &get_ExcIEEEST3A_tb); - get_map.emplace("cim:ExcIEEEST3A.tc", &get_ExcIEEEST3A_tc); - get_map.emplace("cim:ExcIEEEST3A.thetap", &get_ExcIEEEST3A_thetap); - get_map.emplace("cim:ExcIEEEST3A.tm", &get_ExcIEEEST3A_tm); - get_map.emplace("cim:ExcIEEEST3A.vbmax", &get_ExcIEEEST3A_vbmax); - get_map.emplace("cim:ExcIEEEST3A.vgmax", &get_ExcIEEEST3A_vgmax); - get_map.emplace("cim:ExcIEEEST3A.vimax", &get_ExcIEEEST3A_vimax); - get_map.emplace("cim:ExcIEEEST3A.vimin", &get_ExcIEEEST3A_vimin); - get_map.emplace("cim:ExcIEEEST3A.vmmax", &get_ExcIEEEST3A_vmmax); - get_map.emplace("cim:ExcIEEEST3A.vmmin", &get_ExcIEEEST3A_vmmin); - get_map.emplace("cim:ExcIEEEST3A.vrmax", &get_ExcIEEEST3A_vrmax); - get_map.emplace("cim:ExcIEEEST3A.vrmin", &get_ExcIEEEST3A_vrmin); - get_map.emplace("cim:ExcIEEEST3A.xl", &get_ExcIEEEST3A_xl); + get_map.emplace("ExcIEEEST3A.ka", &get_ExcIEEEST3A_ka); + get_map.emplace("ExcIEEEST3A.kc", &get_ExcIEEEST3A_kc); + get_map.emplace("ExcIEEEST3A.kg", &get_ExcIEEEST3A_kg); + get_map.emplace("ExcIEEEST3A.ki", &get_ExcIEEEST3A_ki); + get_map.emplace("ExcIEEEST3A.km", &get_ExcIEEEST3A_km); + get_map.emplace("ExcIEEEST3A.kp", &get_ExcIEEEST3A_kp); + get_map.emplace("ExcIEEEST3A.ta", &get_ExcIEEEST3A_ta); + get_map.emplace("ExcIEEEST3A.tb", &get_ExcIEEEST3A_tb); + get_map.emplace("ExcIEEEST3A.tc", &get_ExcIEEEST3A_tc); + get_map.emplace("ExcIEEEST3A.thetap", &get_ExcIEEEST3A_thetap); + get_map.emplace("ExcIEEEST3A.tm", &get_ExcIEEEST3A_tm); + get_map.emplace("ExcIEEEST3A.vbmax", &get_ExcIEEEST3A_vbmax); + get_map.emplace("ExcIEEEST3A.vgmax", &get_ExcIEEEST3A_vgmax); + get_map.emplace("ExcIEEEST3A.vimax", &get_ExcIEEEST3A_vimax); + get_map.emplace("ExcIEEEST3A.vimin", &get_ExcIEEEST3A_vimin); + get_map.emplace("ExcIEEEST3A.vmmax", &get_ExcIEEEST3A_vmmax); + get_map.emplace("ExcIEEEST3A.vmmin", &get_ExcIEEEST3A_vmmin); + get_map.emplace("ExcIEEEST3A.vrmax", &get_ExcIEEEST3A_vrmax); + get_map.emplace("ExcIEEEST3A.vrmin", &get_ExcIEEEST3A_vrmin); + get_map.emplace("ExcIEEEST3A.xl", &get_ExcIEEEST3A_xl); } void ExcIEEEST3A::addClassGetFnsToMap(std::map& get_map) const @@ -712,11 +744,25 @@ void ExcIEEEST3A::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST3A::declare() { return BaseClassDefiner(ExcIEEEST3A::addConstructToMap, ExcIEEEST3A::addPrimitiveAssignFnsToMap, ExcIEEEST3A::addClassAssignFnsToMap, ExcIEEEST3A::debugName); } +std::map ExcIEEEST3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST3A_factory() diff --git a/CGMES_3.0.0/ExcIEEEST3A.hpp b/CGMES_3.0.0/ExcIEEEST3A.hpp index 5b08fff1b..a70b15acb 100644 --- a/CGMES_3.0.0/ExcIEEEST3A.hpp +++ b/CGMES_3.0.0/ExcIEEEST3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -90,8 +91,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -99,7 +107,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST3A_factory(); diff --git a/CGMES_3.0.0/ExcIEEEST4B.cpp b/CGMES_3.0.0/ExcIEEEST4B.cpp index 9912a54a6..a9cc95bed 100644 --- a/CGMES_3.0.0/ExcIEEEST4B.cpp +++ b/CGMES_3.0.0/ExcIEEEST4B.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST4B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST4B.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kir", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kpm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.kpr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.thetap", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vbmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vmmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vmmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST4B.xl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST4B::ExcIEEEST4B() {} ExcIEEEST4B::~ExcIEEEST4B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST4B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST4B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST4B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kim", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kir", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kpm", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.thetap", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST4B.xl", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST4B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST4B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST4B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST4B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST4B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcIEEEST4B::debugString() const void ExcIEEEST4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST4B", &ExcIEEEST4B_factory); + factory_map.emplace("ExcIEEEST4B", &ExcIEEEST4B_factory); } void ExcIEEEST4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST4B.kc", &assign_ExcIEEEST4B_kc); - assign_map.emplace("cim:ExcIEEEST4B.kg", &assign_ExcIEEEST4B_kg); - assign_map.emplace("cim:ExcIEEEST4B.ki", &assign_ExcIEEEST4B_ki); - assign_map.emplace("cim:ExcIEEEST4B.kim", &assign_ExcIEEEST4B_kim); - assign_map.emplace("cim:ExcIEEEST4B.kir", &assign_ExcIEEEST4B_kir); - assign_map.emplace("cim:ExcIEEEST4B.kp", &assign_ExcIEEEST4B_kp); - assign_map.emplace("cim:ExcIEEEST4B.kpm", &assign_ExcIEEEST4B_kpm); - assign_map.emplace("cim:ExcIEEEST4B.kpr", &assign_ExcIEEEST4B_kpr); - assign_map.emplace("cim:ExcIEEEST4B.ta", &assign_ExcIEEEST4B_ta); - assign_map.emplace("cim:ExcIEEEST4B.thetap", &assign_ExcIEEEST4B_thetap); - assign_map.emplace("cim:ExcIEEEST4B.vbmax", &assign_ExcIEEEST4B_vbmax); - assign_map.emplace("cim:ExcIEEEST4B.vmmax", &assign_ExcIEEEST4B_vmmax); - assign_map.emplace("cim:ExcIEEEST4B.vmmin", &assign_ExcIEEEST4B_vmmin); - assign_map.emplace("cim:ExcIEEEST4B.vrmax", &assign_ExcIEEEST4B_vrmax); - assign_map.emplace("cim:ExcIEEEST4B.vrmin", &assign_ExcIEEEST4B_vrmin); - assign_map.emplace("cim:ExcIEEEST4B.xl", &assign_ExcIEEEST4B_xl); + assign_map.emplace("ExcIEEEST4B.kc", &assign_ExcIEEEST4B_kc); + assign_map.emplace("ExcIEEEST4B.kg", &assign_ExcIEEEST4B_kg); + assign_map.emplace("ExcIEEEST4B.ki", &assign_ExcIEEEST4B_ki); + assign_map.emplace("ExcIEEEST4B.kim", &assign_ExcIEEEST4B_kim); + assign_map.emplace("ExcIEEEST4B.kir", &assign_ExcIEEEST4B_kir); + assign_map.emplace("ExcIEEEST4B.kp", &assign_ExcIEEEST4B_kp); + assign_map.emplace("ExcIEEEST4B.kpm", &assign_ExcIEEEST4B_kpm); + assign_map.emplace("ExcIEEEST4B.kpr", &assign_ExcIEEEST4B_kpr); + assign_map.emplace("ExcIEEEST4B.ta", &assign_ExcIEEEST4B_ta); + assign_map.emplace("ExcIEEEST4B.thetap", &assign_ExcIEEEST4B_thetap); + assign_map.emplace("ExcIEEEST4B.vbmax", &assign_ExcIEEEST4B_vbmax); + assign_map.emplace("ExcIEEEST4B.vmmax", &assign_ExcIEEEST4B_vmmax); + assign_map.emplace("ExcIEEEST4B.vmmin", &assign_ExcIEEEST4B_vmmin); + assign_map.emplace("ExcIEEEST4B.vrmax", &assign_ExcIEEEST4B_vrmax); + assign_map.emplace("ExcIEEEST4B.vrmin", &assign_ExcIEEEST4B_vrmin); + assign_map.emplace("ExcIEEEST4B.xl", &assign_ExcIEEEST4B_xl); } void ExcIEEEST4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,22 +588,22 @@ void ExcIEEEST4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST4B.kc", &get_ExcIEEEST4B_kc); - get_map.emplace("cim:ExcIEEEST4B.kg", &get_ExcIEEEST4B_kg); - get_map.emplace("cim:ExcIEEEST4B.ki", &get_ExcIEEEST4B_ki); - get_map.emplace("cim:ExcIEEEST4B.kim", &get_ExcIEEEST4B_kim); - get_map.emplace("cim:ExcIEEEST4B.kir", &get_ExcIEEEST4B_kir); - get_map.emplace("cim:ExcIEEEST4B.kp", &get_ExcIEEEST4B_kp); - get_map.emplace("cim:ExcIEEEST4B.kpm", &get_ExcIEEEST4B_kpm); - get_map.emplace("cim:ExcIEEEST4B.kpr", &get_ExcIEEEST4B_kpr); - get_map.emplace("cim:ExcIEEEST4B.ta", &get_ExcIEEEST4B_ta); - get_map.emplace("cim:ExcIEEEST4B.thetap", &get_ExcIEEEST4B_thetap); - get_map.emplace("cim:ExcIEEEST4B.vbmax", &get_ExcIEEEST4B_vbmax); - get_map.emplace("cim:ExcIEEEST4B.vmmax", &get_ExcIEEEST4B_vmmax); - get_map.emplace("cim:ExcIEEEST4B.vmmin", &get_ExcIEEEST4B_vmmin); - get_map.emplace("cim:ExcIEEEST4B.vrmax", &get_ExcIEEEST4B_vrmax); - get_map.emplace("cim:ExcIEEEST4B.vrmin", &get_ExcIEEEST4B_vrmin); - get_map.emplace("cim:ExcIEEEST4B.xl", &get_ExcIEEEST4B_xl); + get_map.emplace("ExcIEEEST4B.kc", &get_ExcIEEEST4B_kc); + get_map.emplace("ExcIEEEST4B.kg", &get_ExcIEEEST4B_kg); + get_map.emplace("ExcIEEEST4B.ki", &get_ExcIEEEST4B_ki); + get_map.emplace("ExcIEEEST4B.kim", &get_ExcIEEEST4B_kim); + get_map.emplace("ExcIEEEST4B.kir", &get_ExcIEEEST4B_kir); + get_map.emplace("ExcIEEEST4B.kp", &get_ExcIEEEST4B_kp); + get_map.emplace("ExcIEEEST4B.kpm", &get_ExcIEEEST4B_kpm); + get_map.emplace("ExcIEEEST4B.kpr", &get_ExcIEEEST4B_kpr); + get_map.emplace("ExcIEEEST4B.ta", &get_ExcIEEEST4B_ta); + get_map.emplace("ExcIEEEST4B.thetap", &get_ExcIEEEST4B_thetap); + get_map.emplace("ExcIEEEST4B.vbmax", &get_ExcIEEEST4B_vbmax); + get_map.emplace("ExcIEEEST4B.vmmax", &get_ExcIEEEST4B_vmmax); + get_map.emplace("ExcIEEEST4B.vmmin", &get_ExcIEEEST4B_vmmin); + get_map.emplace("ExcIEEEST4B.vrmax", &get_ExcIEEEST4B_vrmax); + get_map.emplace("ExcIEEEST4B.vrmin", &get_ExcIEEEST4B_vrmin); + get_map.emplace("ExcIEEEST4B.xl", &get_ExcIEEEST4B_xl); } void ExcIEEEST4B::addClassGetFnsToMap(std::map& get_map) const @@ -584,11 +616,25 @@ void ExcIEEEST4B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST4B::declare() { return BaseClassDefiner(ExcIEEEST4B::addConstructToMap, ExcIEEEST4B::addPrimitiveAssignFnsToMap, ExcIEEEST4B::addClassAssignFnsToMap, ExcIEEEST4B::debugName); } +std::map ExcIEEEST4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST4B_factory() diff --git a/CGMES_3.0.0/ExcIEEEST4B.hpp b/CGMES_3.0.0/ExcIEEEST4B.hpp index ff3687ba7..7d4a91123 100644 --- a/CGMES_3.0.0/ExcIEEEST4B.hpp +++ b/CGMES_3.0.0/ExcIEEEST4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -78,8 +79,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -87,7 +95,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST4B_factory(); diff --git a/CGMES_3.0.0/ExcIEEEST5B.cpp b/CGMES_3.0.0/ExcIEEEST5B.cpp index 49f99553d..8b76adbf2 100644 --- a/CGMES_3.0.0/ExcIEEEST5B.cpp +++ b/CGMES_3.0.0/ExcIEEEST5B.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST5B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST5B.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.kr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tb1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tb2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tc1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tc2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tob1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tob2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.toc1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.toc2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tub1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tub2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tuc1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.tuc2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST5B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST5B::ExcIEEEST5B() {} ExcIEEEST5B::~ExcIEEEST5B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST5B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST5B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST5B.kc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.kr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.t1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tb1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tb2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tob1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tob2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.toc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.toc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tub1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tub2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tuc1", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.tuc2", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST5B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST5B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST5B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST5B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST5B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST5B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST5B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST5B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST5B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* ExcIEEEST5B::debugString() const void ExcIEEEST5B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST5B", &ExcIEEEST5B_factory); + factory_map.emplace("ExcIEEEST5B", &ExcIEEEST5B_factory); } void ExcIEEEST5B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST5B.kc", &assign_ExcIEEEST5B_kc); - assign_map.emplace("cim:ExcIEEEST5B.kr", &assign_ExcIEEEST5B_kr); - assign_map.emplace("cim:ExcIEEEST5B.t1", &assign_ExcIEEEST5B_t1); - assign_map.emplace("cim:ExcIEEEST5B.tb1", &assign_ExcIEEEST5B_tb1); - assign_map.emplace("cim:ExcIEEEST5B.tb2", &assign_ExcIEEEST5B_tb2); - assign_map.emplace("cim:ExcIEEEST5B.tc1", &assign_ExcIEEEST5B_tc1); - assign_map.emplace("cim:ExcIEEEST5B.tc2", &assign_ExcIEEEST5B_tc2); - assign_map.emplace("cim:ExcIEEEST5B.tob1", &assign_ExcIEEEST5B_tob1); - assign_map.emplace("cim:ExcIEEEST5B.tob2", &assign_ExcIEEEST5B_tob2); - assign_map.emplace("cim:ExcIEEEST5B.toc1", &assign_ExcIEEEST5B_toc1); - assign_map.emplace("cim:ExcIEEEST5B.toc2", &assign_ExcIEEEST5B_toc2); - assign_map.emplace("cim:ExcIEEEST5B.tub1", &assign_ExcIEEEST5B_tub1); - assign_map.emplace("cim:ExcIEEEST5B.tub2", &assign_ExcIEEEST5B_tub2); - assign_map.emplace("cim:ExcIEEEST5B.tuc1", &assign_ExcIEEEST5B_tuc1); - assign_map.emplace("cim:ExcIEEEST5B.tuc2", &assign_ExcIEEEST5B_tuc2); - assign_map.emplace("cim:ExcIEEEST5B.vrmax", &assign_ExcIEEEST5B_vrmax); - assign_map.emplace("cim:ExcIEEEST5B.vrmin", &assign_ExcIEEEST5B_vrmin); + assign_map.emplace("ExcIEEEST5B.kc", &assign_ExcIEEEST5B_kc); + assign_map.emplace("ExcIEEEST5B.kr", &assign_ExcIEEEST5B_kr); + assign_map.emplace("ExcIEEEST5B.t1", &assign_ExcIEEEST5B_t1); + assign_map.emplace("ExcIEEEST5B.tb1", &assign_ExcIEEEST5B_tb1); + assign_map.emplace("ExcIEEEST5B.tb2", &assign_ExcIEEEST5B_tb2); + assign_map.emplace("ExcIEEEST5B.tc1", &assign_ExcIEEEST5B_tc1); + assign_map.emplace("ExcIEEEST5B.tc2", &assign_ExcIEEEST5B_tc2); + assign_map.emplace("ExcIEEEST5B.tob1", &assign_ExcIEEEST5B_tob1); + assign_map.emplace("ExcIEEEST5B.tob2", &assign_ExcIEEEST5B_tob2); + assign_map.emplace("ExcIEEEST5B.toc1", &assign_ExcIEEEST5B_toc1); + assign_map.emplace("ExcIEEEST5B.toc2", &assign_ExcIEEEST5B_toc2); + assign_map.emplace("ExcIEEEST5B.tub1", &assign_ExcIEEEST5B_tub1); + assign_map.emplace("ExcIEEEST5B.tub2", &assign_ExcIEEEST5B_tub2); + assign_map.emplace("ExcIEEEST5B.tuc1", &assign_ExcIEEEST5B_tuc1); + assign_map.emplace("ExcIEEEST5B.tuc2", &assign_ExcIEEEST5B_tuc2); + assign_map.emplace("ExcIEEEST5B.vrmax", &assign_ExcIEEEST5B_vrmax); + assign_map.emplace("ExcIEEEST5B.vrmin", &assign_ExcIEEEST5B_vrmin); } void ExcIEEEST5B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void ExcIEEEST5B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST5B.kc", &get_ExcIEEEST5B_kc); - get_map.emplace("cim:ExcIEEEST5B.kr", &get_ExcIEEEST5B_kr); - get_map.emplace("cim:ExcIEEEST5B.t1", &get_ExcIEEEST5B_t1); - get_map.emplace("cim:ExcIEEEST5B.tb1", &get_ExcIEEEST5B_tb1); - get_map.emplace("cim:ExcIEEEST5B.tb2", &get_ExcIEEEST5B_tb2); - get_map.emplace("cim:ExcIEEEST5B.tc1", &get_ExcIEEEST5B_tc1); - get_map.emplace("cim:ExcIEEEST5B.tc2", &get_ExcIEEEST5B_tc2); - get_map.emplace("cim:ExcIEEEST5B.tob1", &get_ExcIEEEST5B_tob1); - get_map.emplace("cim:ExcIEEEST5B.tob2", &get_ExcIEEEST5B_tob2); - get_map.emplace("cim:ExcIEEEST5B.toc1", &get_ExcIEEEST5B_toc1); - get_map.emplace("cim:ExcIEEEST5B.toc2", &get_ExcIEEEST5B_toc2); - get_map.emplace("cim:ExcIEEEST5B.tub1", &get_ExcIEEEST5B_tub1); - get_map.emplace("cim:ExcIEEEST5B.tub2", &get_ExcIEEEST5B_tub2); - get_map.emplace("cim:ExcIEEEST5B.tuc1", &get_ExcIEEEST5B_tuc1); - get_map.emplace("cim:ExcIEEEST5B.tuc2", &get_ExcIEEEST5B_tuc2); - get_map.emplace("cim:ExcIEEEST5B.vrmax", &get_ExcIEEEST5B_vrmax); - get_map.emplace("cim:ExcIEEEST5B.vrmin", &get_ExcIEEEST5B_vrmin); + get_map.emplace("ExcIEEEST5B.kc", &get_ExcIEEEST5B_kc); + get_map.emplace("ExcIEEEST5B.kr", &get_ExcIEEEST5B_kr); + get_map.emplace("ExcIEEEST5B.t1", &get_ExcIEEEST5B_t1); + get_map.emplace("ExcIEEEST5B.tb1", &get_ExcIEEEST5B_tb1); + get_map.emplace("ExcIEEEST5B.tb2", &get_ExcIEEEST5B_tb2); + get_map.emplace("ExcIEEEST5B.tc1", &get_ExcIEEEST5B_tc1); + get_map.emplace("ExcIEEEST5B.tc2", &get_ExcIEEEST5B_tc2); + get_map.emplace("ExcIEEEST5B.tob1", &get_ExcIEEEST5B_tob1); + get_map.emplace("ExcIEEEST5B.tob2", &get_ExcIEEEST5B_tob2); + get_map.emplace("ExcIEEEST5B.toc1", &get_ExcIEEEST5B_toc1); + get_map.emplace("ExcIEEEST5B.toc2", &get_ExcIEEEST5B_toc2); + get_map.emplace("ExcIEEEST5B.tub1", &get_ExcIEEEST5B_tub1); + get_map.emplace("ExcIEEEST5B.tub2", &get_ExcIEEEST5B_tub2); + get_map.emplace("ExcIEEEST5B.tuc1", &get_ExcIEEEST5B_tuc1); + get_map.emplace("ExcIEEEST5B.tuc2", &get_ExcIEEEST5B_tuc2); + get_map.emplace("ExcIEEEST5B.vrmax", &get_ExcIEEEST5B_vrmax); + get_map.emplace("ExcIEEEST5B.vrmin", &get_ExcIEEEST5B_vrmin); } void ExcIEEEST5B::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void ExcIEEEST5B::addEnumGetFnsToMap(std::map& get_ma ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcIEEEST5B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST5B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcIEEEST5B::declare() { return BaseClassDefiner(ExcIEEEST5B::addConstructToMap, ExcIEEEST5B::addPrimitiveAssignFnsToMap, ExcIEEEST5B::addClassAssignFnsToMap, ExcIEEEST5B::debugName); } +std::map ExcIEEEST5B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST5B_factory() diff --git a/CGMES_3.0.0/ExcIEEEST5B.hpp b/CGMES_3.0.0/ExcIEEEST5B.hpp index 80f98ae9b..8968cbb83 100644 --- a/CGMES_3.0.0/ExcIEEEST5B.hpp +++ b/CGMES_3.0.0/ExcIEEEST5B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -80,8 +81,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -89,7 +97,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST5B_factory(); diff --git a/CGMES_3.0.0/ExcIEEEST6B.cpp b/CGMES_3.0.0/ExcIEEEST6B.cpp index 46aac194f..62be808d2 100644 --- a/CGMES_3.0.0/ExcIEEEST6B.cpp +++ b/CGMES_3.0.0/ExcIEEEST6B.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST6B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST6B.ilr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kci", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kff", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kia", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.klr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.km", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.kpa", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.oelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST6B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST6B::ExcIEEEST6B() {} ExcIEEEST6B::~ExcIEEEST6B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST6B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST6B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST6B.ilr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kci", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kff", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.klr", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.km", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.tg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST6B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST6B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST6B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST6B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST6B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST6B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST6B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST6B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST6B_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* ExcIEEEST6B::debugString() const void ExcIEEEST6B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST6B", &ExcIEEEST6B_factory); + factory_map.emplace("ExcIEEEST6B", &ExcIEEEST6B_factory); } void ExcIEEEST6B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST6B.ilr", &assign_ExcIEEEST6B_ilr); - assign_map.emplace("cim:ExcIEEEST6B.kci", &assign_ExcIEEEST6B_kci); - assign_map.emplace("cim:ExcIEEEST6B.kff", &assign_ExcIEEEST6B_kff); - assign_map.emplace("cim:ExcIEEEST6B.kg", &assign_ExcIEEEST6B_kg); - assign_map.emplace("cim:ExcIEEEST6B.kia", &assign_ExcIEEEST6B_kia); - assign_map.emplace("cim:ExcIEEEST6B.klr", &assign_ExcIEEEST6B_klr); - assign_map.emplace("cim:ExcIEEEST6B.km", &assign_ExcIEEEST6B_km); - assign_map.emplace("cim:ExcIEEEST6B.kpa", &assign_ExcIEEEST6B_kpa); - assign_map.emplace("cim:ExcIEEEST6B.oelin", &assign_ExcIEEEST6B_oelin); - assign_map.emplace("cim:ExcIEEEST6B.tg", &assign_ExcIEEEST6B_tg); - assign_map.emplace("cim:ExcIEEEST6B.vamax", &assign_ExcIEEEST6B_vamax); - assign_map.emplace("cim:ExcIEEEST6B.vamin", &assign_ExcIEEEST6B_vamin); - assign_map.emplace("cim:ExcIEEEST6B.vrmax", &assign_ExcIEEEST6B_vrmax); - assign_map.emplace("cim:ExcIEEEST6B.vrmin", &assign_ExcIEEEST6B_vrmin); + assign_map.emplace("ExcIEEEST6B.ilr", &assign_ExcIEEEST6B_ilr); + assign_map.emplace("ExcIEEEST6B.kci", &assign_ExcIEEEST6B_kci); + assign_map.emplace("ExcIEEEST6B.kff", &assign_ExcIEEEST6B_kff); + assign_map.emplace("ExcIEEEST6B.kg", &assign_ExcIEEEST6B_kg); + assign_map.emplace("ExcIEEEST6B.kia", &assign_ExcIEEEST6B_kia); + assign_map.emplace("ExcIEEEST6B.klr", &assign_ExcIEEEST6B_klr); + assign_map.emplace("ExcIEEEST6B.km", &assign_ExcIEEEST6B_km); + assign_map.emplace("ExcIEEEST6B.kpa", &assign_ExcIEEEST6B_kpa); + assign_map.emplace("ExcIEEEST6B.oelin", &assign_ExcIEEEST6B_oelin); + assign_map.emplace("ExcIEEEST6B.tg", &assign_ExcIEEEST6B_tg); + assign_map.emplace("ExcIEEEST6B.vamax", &assign_ExcIEEEST6B_vamax); + assign_map.emplace("ExcIEEEST6B.vamin", &assign_ExcIEEEST6B_vamin); + assign_map.emplace("ExcIEEEST6B.vrmax", &assign_ExcIEEEST6B_vrmax); + assign_map.emplace("ExcIEEEST6B.vrmin", &assign_ExcIEEEST6B_vrmin); } void ExcIEEEST6B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,19 +526,19 @@ void ExcIEEEST6B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST6B.ilr", &get_ExcIEEEST6B_ilr); - get_map.emplace("cim:ExcIEEEST6B.kci", &get_ExcIEEEST6B_kci); - get_map.emplace("cim:ExcIEEEST6B.kff", &get_ExcIEEEST6B_kff); - get_map.emplace("cim:ExcIEEEST6B.kg", &get_ExcIEEEST6B_kg); - get_map.emplace("cim:ExcIEEEST6B.kia", &get_ExcIEEEST6B_kia); - get_map.emplace("cim:ExcIEEEST6B.klr", &get_ExcIEEEST6B_klr); - get_map.emplace("cim:ExcIEEEST6B.km", &get_ExcIEEEST6B_km); - get_map.emplace("cim:ExcIEEEST6B.kpa", &get_ExcIEEEST6B_kpa); - get_map.emplace("cim:ExcIEEEST6B.tg", &get_ExcIEEEST6B_tg); - get_map.emplace("cim:ExcIEEEST6B.vamax", &get_ExcIEEEST6B_vamax); - get_map.emplace("cim:ExcIEEEST6B.vamin", &get_ExcIEEEST6B_vamin); - get_map.emplace("cim:ExcIEEEST6B.vrmax", &get_ExcIEEEST6B_vrmax); - get_map.emplace("cim:ExcIEEEST6B.vrmin", &get_ExcIEEEST6B_vrmin); + get_map.emplace("ExcIEEEST6B.ilr", &get_ExcIEEEST6B_ilr); + get_map.emplace("ExcIEEEST6B.kci", &get_ExcIEEEST6B_kci); + get_map.emplace("ExcIEEEST6B.kff", &get_ExcIEEEST6B_kff); + get_map.emplace("ExcIEEEST6B.kg", &get_ExcIEEEST6B_kg); + get_map.emplace("ExcIEEEST6B.kia", &get_ExcIEEEST6B_kia); + get_map.emplace("ExcIEEEST6B.klr", &get_ExcIEEEST6B_klr); + get_map.emplace("ExcIEEEST6B.km", &get_ExcIEEEST6B_km); + get_map.emplace("ExcIEEEST6B.kpa", &get_ExcIEEEST6B_kpa); + get_map.emplace("ExcIEEEST6B.tg", &get_ExcIEEEST6B_tg); + get_map.emplace("ExcIEEEST6B.vamax", &get_ExcIEEEST6B_vamax); + get_map.emplace("ExcIEEEST6B.vamin", &get_ExcIEEEST6B_vamin); + get_map.emplace("ExcIEEEST6B.vrmax", &get_ExcIEEEST6B_vrmax); + get_map.emplace("ExcIEEEST6B.vrmin", &get_ExcIEEEST6B_vrmin); } void ExcIEEEST6B::addClassGetFnsToMap(std::map& get_map) const @@ -517,7 +549,13 @@ void ExcIEEEST6B::addClassGetFnsToMap(std::map& void ExcIEEEST6B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST6B.oelin", &get_ExcIEEEST6B_oelin); + get_map.emplace("ExcIEEEST6B.oelin", &get_ExcIEEEST6B_oelin); +} + +bool ExcIEEEST6B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST6B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST6B::declare() @@ -525,6 +563,14 @@ const BaseClassDefiner ExcIEEEST6B::declare() return BaseClassDefiner(ExcIEEEST6B::addConstructToMap, ExcIEEEST6B::addPrimitiveAssignFnsToMap, ExcIEEEST6B::addClassAssignFnsToMap, ExcIEEEST6B::debugName); } +std::map ExcIEEEST6B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST6B_factory() diff --git a/CGMES_3.0.0/ExcIEEEST6B.hpp b/CGMES_3.0.0/ExcIEEEST6B.hpp index 2627fb13c..435d9bdc1 100644 --- a/CGMES_3.0.0/ExcIEEEST6B.hpp +++ b/CGMES_3.0.0/ExcIEEEST6B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST6BOELselectorKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -72,8 +73,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -81,7 +89,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST6B_factory(); diff --git a/CGMES_3.0.0/ExcIEEEST7B.cpp b/CGMES_3.0.0/ExcIEEEST7B.cpp index 20513a7f9..186c7a1f0 100644 --- a/CGMES_3.0.0/ExcIEEEST7B.cpp +++ b/CGMES_3.0.0/ExcIEEEST7B.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcIEEEST7B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcIEEEST7B.kh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kia", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.kpa", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.oelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.tia", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.uelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcIEEEST7B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcIEEEST7B::ExcIEEEST7B() {} ExcIEEEST7B::~ExcIEEEST7B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcIEEEST7B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcIEEEST7B::getClassNamespaceUrl() const { - { "cim:ExcIEEEST7B.kh", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tb", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tc", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tg", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.tia", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vmin", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcIEEEST7B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcIEEEST7B::getPossibleProfilesForClass() const +const std::string& ExcIEEEST7B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcIEEEST7B::getPossibleProfilesForAttributes() const +const std::list& ExcIEEEST7B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcIEEEST7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcIEEEST7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcIEEEST7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcIEEEST7B_kh(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcIEEEST7B::debugString() const void ExcIEEEST7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcIEEEST7B", &ExcIEEEST7B_factory); + factory_map.emplace("ExcIEEEST7B", &ExcIEEEST7B_factory); } void ExcIEEEST7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcIEEEST7B.kh", &assign_ExcIEEEST7B_kh); - assign_map.emplace("cim:ExcIEEEST7B.kia", &assign_ExcIEEEST7B_kia); - assign_map.emplace("cim:ExcIEEEST7B.kl", &assign_ExcIEEEST7B_kl); - assign_map.emplace("cim:ExcIEEEST7B.kpa", &assign_ExcIEEEST7B_kpa); - assign_map.emplace("cim:ExcIEEEST7B.oelin", &assign_ExcIEEEST7B_oelin); - assign_map.emplace("cim:ExcIEEEST7B.tb", &assign_ExcIEEEST7B_tb); - assign_map.emplace("cim:ExcIEEEST7B.tc", &assign_ExcIEEEST7B_tc); - assign_map.emplace("cim:ExcIEEEST7B.tf", &assign_ExcIEEEST7B_tf); - assign_map.emplace("cim:ExcIEEEST7B.tg", &assign_ExcIEEEST7B_tg); - assign_map.emplace("cim:ExcIEEEST7B.tia", &assign_ExcIEEEST7B_tia); - assign_map.emplace("cim:ExcIEEEST7B.uelin", &assign_ExcIEEEST7B_uelin); - assign_map.emplace("cim:ExcIEEEST7B.vmax", &assign_ExcIEEEST7B_vmax); - assign_map.emplace("cim:ExcIEEEST7B.vmin", &assign_ExcIEEEST7B_vmin); - assign_map.emplace("cim:ExcIEEEST7B.vrmax", &assign_ExcIEEEST7B_vrmax); - assign_map.emplace("cim:ExcIEEEST7B.vrmin", &assign_ExcIEEEST7B_vrmin); + assign_map.emplace("ExcIEEEST7B.kh", &assign_ExcIEEEST7B_kh); + assign_map.emplace("ExcIEEEST7B.kia", &assign_ExcIEEEST7B_kia); + assign_map.emplace("ExcIEEEST7B.kl", &assign_ExcIEEEST7B_kl); + assign_map.emplace("ExcIEEEST7B.kpa", &assign_ExcIEEEST7B_kpa); + assign_map.emplace("ExcIEEEST7B.oelin", &assign_ExcIEEEST7B_oelin); + assign_map.emplace("ExcIEEEST7B.tb", &assign_ExcIEEEST7B_tb); + assign_map.emplace("ExcIEEEST7B.tc", &assign_ExcIEEEST7B_tc); + assign_map.emplace("ExcIEEEST7B.tf", &assign_ExcIEEEST7B_tf); + assign_map.emplace("ExcIEEEST7B.tg", &assign_ExcIEEEST7B_tg); + assign_map.emplace("ExcIEEEST7B.tia", &assign_ExcIEEEST7B_tia); + assign_map.emplace("ExcIEEEST7B.uelin", &assign_ExcIEEEST7B_uelin); + assign_map.emplace("ExcIEEEST7B.vmax", &assign_ExcIEEEST7B_vmax); + assign_map.emplace("ExcIEEEST7B.vmin", &assign_ExcIEEEST7B_vmin); + assign_map.emplace("ExcIEEEST7B.vrmax", &assign_ExcIEEEST7B_vrmax); + assign_map.emplace("ExcIEEEST7B.vrmin", &assign_ExcIEEEST7B_vrmin); } void ExcIEEEST7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,19 +557,19 @@ void ExcIEEEST7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST7B.kh", &get_ExcIEEEST7B_kh); - get_map.emplace("cim:ExcIEEEST7B.kia", &get_ExcIEEEST7B_kia); - get_map.emplace("cim:ExcIEEEST7B.kl", &get_ExcIEEEST7B_kl); - get_map.emplace("cim:ExcIEEEST7B.kpa", &get_ExcIEEEST7B_kpa); - get_map.emplace("cim:ExcIEEEST7B.tb", &get_ExcIEEEST7B_tb); - get_map.emplace("cim:ExcIEEEST7B.tc", &get_ExcIEEEST7B_tc); - get_map.emplace("cim:ExcIEEEST7B.tf", &get_ExcIEEEST7B_tf); - get_map.emplace("cim:ExcIEEEST7B.tg", &get_ExcIEEEST7B_tg); - get_map.emplace("cim:ExcIEEEST7B.tia", &get_ExcIEEEST7B_tia); - get_map.emplace("cim:ExcIEEEST7B.vmax", &get_ExcIEEEST7B_vmax); - get_map.emplace("cim:ExcIEEEST7B.vmin", &get_ExcIEEEST7B_vmin); - get_map.emplace("cim:ExcIEEEST7B.vrmax", &get_ExcIEEEST7B_vrmax); - get_map.emplace("cim:ExcIEEEST7B.vrmin", &get_ExcIEEEST7B_vrmin); + get_map.emplace("ExcIEEEST7B.kh", &get_ExcIEEEST7B_kh); + get_map.emplace("ExcIEEEST7B.kia", &get_ExcIEEEST7B_kia); + get_map.emplace("ExcIEEEST7B.kl", &get_ExcIEEEST7B_kl); + get_map.emplace("ExcIEEEST7B.kpa", &get_ExcIEEEST7B_kpa); + get_map.emplace("ExcIEEEST7B.tb", &get_ExcIEEEST7B_tb); + get_map.emplace("ExcIEEEST7B.tc", &get_ExcIEEEST7B_tc); + get_map.emplace("ExcIEEEST7B.tf", &get_ExcIEEEST7B_tf); + get_map.emplace("ExcIEEEST7B.tg", &get_ExcIEEEST7B_tg); + get_map.emplace("ExcIEEEST7B.tia", &get_ExcIEEEST7B_tia); + get_map.emplace("ExcIEEEST7B.vmax", &get_ExcIEEEST7B_vmax); + get_map.emplace("ExcIEEEST7B.vmin", &get_ExcIEEEST7B_vmin); + get_map.emplace("ExcIEEEST7B.vrmax", &get_ExcIEEEST7B_vrmax); + get_map.emplace("ExcIEEEST7B.vrmin", &get_ExcIEEEST7B_vrmin); } void ExcIEEEST7B::addClassGetFnsToMap(std::map& get_map) const @@ -548,8 +580,14 @@ void ExcIEEEST7B::addClassGetFnsToMap(std::map& void ExcIEEEST7B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcIEEEST7B.oelin", &get_ExcIEEEST7B_oelin); - get_map.emplace("cim:ExcIEEEST7B.uelin", &get_ExcIEEEST7B_uelin); + get_map.emplace("ExcIEEEST7B.oelin", &get_ExcIEEEST7B_oelin); + get_map.emplace("ExcIEEEST7B.uelin", &get_ExcIEEEST7B_uelin); +} + +bool ExcIEEEST7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcIEEEST7B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcIEEEST7B::declare() @@ -557,6 +595,14 @@ const BaseClassDefiner ExcIEEEST7B::declare() return BaseClassDefiner(ExcIEEEST7B::addConstructToMap, ExcIEEEST7B::addPrimitiveAssignFnsToMap, ExcIEEEST7B::addClassAssignFnsToMap, ExcIEEEST7B::debugName); } +std::map ExcIEEEST7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcIEEEST7B_factory() diff --git a/CGMES_3.0.0/ExcIEEEST7B.hpp b/CGMES_3.0.0/ExcIEEEST7B.hpp index 6085a2524..350589e0a 100644 --- a/CGMES_3.0.0/ExcIEEEST7B.hpp +++ b/CGMES_3.0.0/ExcIEEEST7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST7BOELselectorKind.hpp" #include "ExcST7BUELselectorKind.hpp" #include "PU.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcIEEEST7B_factory(); diff --git a/CGMES_3.0.0/ExcNI.cpp b/CGMES_3.0.0/ExcNI.cpp index f5887cfa0..5b0c12844 100644 --- a/CGMES_3.0.0/ExcNI.cpp +++ b/CGMES_3.0.0/ExcNI.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcNI(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcNI.busFedSelector", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.tf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcNI.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcNI::ExcNI() {} ExcNI::~ExcNI() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcNI::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcNI::getClassNamespaceUrl() const { - { "cim:ExcNI.busFedSelector", { CGMESProfile::DY, } }, - { "cim:ExcNI.ka", { CGMESProfile::DY, } }, - { "cim:ExcNI.kf", { CGMESProfile::DY, } }, - { "cim:ExcNI.r", { CGMESProfile::DY, } }, - { "cim:ExcNI.ta", { CGMESProfile::DY, } }, - { "cim:ExcNI.tf1", { CGMESProfile::DY, } }, - { "cim:ExcNI.tf2", { CGMESProfile::DY, } }, - { "cim:ExcNI.tr", { CGMESProfile::DY, } }, - { "cim:ExcNI.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcNI.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcNI::getPossibleProfilesForClass() const +const std::string& ExcNI::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcNI::getPossibleProfilesForAttributes() const +const std::list& ExcNI::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcNI::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcNI::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcNI::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcNI_busFedSelector(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcNI::debugString() const void ExcNI::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcNI", &ExcNI_factory); + factory_map.emplace("ExcNI", &ExcNI_factory); } void ExcNI::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcNI.busFedSelector", &assign_ExcNI_busFedSelector); - assign_map.emplace("cim:ExcNI.ka", &assign_ExcNI_ka); - assign_map.emplace("cim:ExcNI.kf", &assign_ExcNI_kf); - assign_map.emplace("cim:ExcNI.r", &assign_ExcNI_r); - assign_map.emplace("cim:ExcNI.ta", &assign_ExcNI_ta); - assign_map.emplace("cim:ExcNI.tf1", &assign_ExcNI_tf1); - assign_map.emplace("cim:ExcNI.tf2", &assign_ExcNI_tf2); - assign_map.emplace("cim:ExcNI.tr", &assign_ExcNI_tr); - assign_map.emplace("cim:ExcNI.vrmax", &assign_ExcNI_vrmax); - assign_map.emplace("cim:ExcNI.vrmin", &assign_ExcNI_vrmin); + assign_map.emplace("ExcNI.busFedSelector", &assign_ExcNI_busFedSelector); + assign_map.emplace("ExcNI.ka", &assign_ExcNI_ka); + assign_map.emplace("ExcNI.kf", &assign_ExcNI_kf); + assign_map.emplace("ExcNI.r", &assign_ExcNI_r); + assign_map.emplace("ExcNI.ta", &assign_ExcNI_ta); + assign_map.emplace("ExcNI.tf1", &assign_ExcNI_tf1); + assign_map.emplace("ExcNI.tf2", &assign_ExcNI_tf2); + assign_map.emplace("ExcNI.tr", &assign_ExcNI_tr); + assign_map.emplace("ExcNI.vrmax", &assign_ExcNI_vrmax); + assign_map.emplace("ExcNI.vrmin", &assign_ExcNI_vrmin); } void ExcNI::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcNI::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcNI.busFedSelector", &get_ExcNI_busFedSelector); - get_map.emplace("cim:ExcNI.ka", &get_ExcNI_ka); - get_map.emplace("cim:ExcNI.kf", &get_ExcNI_kf); - get_map.emplace("cim:ExcNI.r", &get_ExcNI_r); - get_map.emplace("cim:ExcNI.ta", &get_ExcNI_ta); - get_map.emplace("cim:ExcNI.tf1", &get_ExcNI_tf1); - get_map.emplace("cim:ExcNI.tf2", &get_ExcNI_tf2); - get_map.emplace("cim:ExcNI.tr", &get_ExcNI_tr); - get_map.emplace("cim:ExcNI.vrmax", &get_ExcNI_vrmax); - get_map.emplace("cim:ExcNI.vrmin", &get_ExcNI_vrmin); + get_map.emplace("ExcNI.busFedSelector", &get_ExcNI_busFedSelector); + get_map.emplace("ExcNI.ka", &get_ExcNI_ka); + get_map.emplace("ExcNI.kf", &get_ExcNI_kf); + get_map.emplace("ExcNI.r", &get_ExcNI_r); + get_map.emplace("ExcNI.ta", &get_ExcNI_ta); + get_map.emplace("ExcNI.tf1", &get_ExcNI_tf1); + get_map.emplace("ExcNI.tf2", &get_ExcNI_tf2); + get_map.emplace("ExcNI.tr", &get_ExcNI_tr); + get_map.emplace("ExcNI.vrmax", &get_ExcNI_vrmax); + get_map.emplace("ExcNI.vrmin", &get_ExcNI_vrmin); } void ExcNI::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcNI::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcNI::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcNI" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcNI::declare() { return BaseClassDefiner(ExcNI::addConstructToMap, ExcNI::addPrimitiveAssignFnsToMap, ExcNI::addClassAssignFnsToMap, ExcNI::debugName); } +std::map ExcNI::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcNI_factory() diff --git a/CGMES_3.0.0/ExcNI.hpp b/CGMES_3.0.0/ExcNI.hpp index 8b4c15f3a..21d9544e9 100644 --- a/CGMES_3.0.0/ExcNI.hpp +++ b/CGMES_3.0.0/ExcNI.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcNI_factory(); diff --git a/CGMES_3.0.0/ExcOEX3T.cpp b/CGMES_3.0.0/ExcOEX3T.cpp index 3fc422d40..deeca2693 100644 --- a/CGMES_3.0.0/ExcOEX3T.cpp +++ b/CGMES_3.0.0/ExcOEX3T.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcOEX3T(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcOEX3T.e1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.e2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.see1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.see2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcOEX3T.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcOEX3T::ExcOEX3T() {} ExcOEX3T::~ExcOEX3T() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcOEX3T.e1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.e2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.ka", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kc", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kd", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.ke", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.kf", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.see1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.see2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t1", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t2", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t3", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t4", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t5", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.t6", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.te", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.tf", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcOEX3T.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcOEX3T::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcOEX3T::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcOEX3T::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcOEX3T::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcOEX3T::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcOEX3T::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcOEX3T::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcOEX3T::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcOEX3T::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcOEX3T_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcOEX3T::debugString() const void ExcOEX3T::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcOEX3T", &ExcOEX3T_factory); + factory_map.emplace("ExcOEX3T", &ExcOEX3T_factory); } void ExcOEX3T::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcOEX3T.e1", &assign_ExcOEX3T_e1); - assign_map.emplace("cim:ExcOEX3T.e2", &assign_ExcOEX3T_e2); - assign_map.emplace("cim:ExcOEX3T.ka", &assign_ExcOEX3T_ka); - assign_map.emplace("cim:ExcOEX3T.kc", &assign_ExcOEX3T_kc); - assign_map.emplace("cim:ExcOEX3T.kd", &assign_ExcOEX3T_kd); - assign_map.emplace("cim:ExcOEX3T.ke", &assign_ExcOEX3T_ke); - assign_map.emplace("cim:ExcOEX3T.kf", &assign_ExcOEX3T_kf); - assign_map.emplace("cim:ExcOEX3T.see1", &assign_ExcOEX3T_see1); - assign_map.emplace("cim:ExcOEX3T.see2", &assign_ExcOEX3T_see2); - assign_map.emplace("cim:ExcOEX3T.t1", &assign_ExcOEX3T_t1); - assign_map.emplace("cim:ExcOEX3T.t2", &assign_ExcOEX3T_t2); - assign_map.emplace("cim:ExcOEX3T.t3", &assign_ExcOEX3T_t3); - assign_map.emplace("cim:ExcOEX3T.t4", &assign_ExcOEX3T_t4); - assign_map.emplace("cim:ExcOEX3T.t5", &assign_ExcOEX3T_t5); - assign_map.emplace("cim:ExcOEX3T.t6", &assign_ExcOEX3T_t6); - assign_map.emplace("cim:ExcOEX3T.te", &assign_ExcOEX3T_te); - assign_map.emplace("cim:ExcOEX3T.tf", &assign_ExcOEX3T_tf); - assign_map.emplace("cim:ExcOEX3T.vrmax", &assign_ExcOEX3T_vrmax); - assign_map.emplace("cim:ExcOEX3T.vrmin", &assign_ExcOEX3T_vrmin); + assign_map.emplace("ExcOEX3T.e1", &assign_ExcOEX3T_e1); + assign_map.emplace("ExcOEX3T.e2", &assign_ExcOEX3T_e2); + assign_map.emplace("ExcOEX3T.ka", &assign_ExcOEX3T_ka); + assign_map.emplace("ExcOEX3T.kc", &assign_ExcOEX3T_kc); + assign_map.emplace("ExcOEX3T.kd", &assign_ExcOEX3T_kd); + assign_map.emplace("ExcOEX3T.ke", &assign_ExcOEX3T_ke); + assign_map.emplace("ExcOEX3T.kf", &assign_ExcOEX3T_kf); + assign_map.emplace("ExcOEX3T.see1", &assign_ExcOEX3T_see1); + assign_map.emplace("ExcOEX3T.see2", &assign_ExcOEX3T_see2); + assign_map.emplace("ExcOEX3T.t1", &assign_ExcOEX3T_t1); + assign_map.emplace("ExcOEX3T.t2", &assign_ExcOEX3T_t2); + assign_map.emplace("ExcOEX3T.t3", &assign_ExcOEX3T_t3); + assign_map.emplace("ExcOEX3T.t4", &assign_ExcOEX3T_t4); + assign_map.emplace("ExcOEX3T.t5", &assign_ExcOEX3T_t5); + assign_map.emplace("ExcOEX3T.t6", &assign_ExcOEX3T_t6); + assign_map.emplace("ExcOEX3T.te", &assign_ExcOEX3T_te); + assign_map.emplace("ExcOEX3T.tf", &assign_ExcOEX3T_tf); + assign_map.emplace("ExcOEX3T.vrmax", &assign_ExcOEX3T_vrmax); + assign_map.emplace("ExcOEX3T.vrmin", &assign_ExcOEX3T_vrmin); } void ExcOEX3T::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcOEX3T::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcOEX3T.e1", &get_ExcOEX3T_e1); - get_map.emplace("cim:ExcOEX3T.e2", &get_ExcOEX3T_e2); - get_map.emplace("cim:ExcOEX3T.ka", &get_ExcOEX3T_ka); - get_map.emplace("cim:ExcOEX3T.kc", &get_ExcOEX3T_kc); - get_map.emplace("cim:ExcOEX3T.kd", &get_ExcOEX3T_kd); - get_map.emplace("cim:ExcOEX3T.ke", &get_ExcOEX3T_ke); - get_map.emplace("cim:ExcOEX3T.kf", &get_ExcOEX3T_kf); - get_map.emplace("cim:ExcOEX3T.see1", &get_ExcOEX3T_see1); - get_map.emplace("cim:ExcOEX3T.see2", &get_ExcOEX3T_see2); - get_map.emplace("cim:ExcOEX3T.t1", &get_ExcOEX3T_t1); - get_map.emplace("cim:ExcOEX3T.t2", &get_ExcOEX3T_t2); - get_map.emplace("cim:ExcOEX3T.t3", &get_ExcOEX3T_t3); - get_map.emplace("cim:ExcOEX3T.t4", &get_ExcOEX3T_t4); - get_map.emplace("cim:ExcOEX3T.t5", &get_ExcOEX3T_t5); - get_map.emplace("cim:ExcOEX3T.t6", &get_ExcOEX3T_t6); - get_map.emplace("cim:ExcOEX3T.te", &get_ExcOEX3T_te); - get_map.emplace("cim:ExcOEX3T.tf", &get_ExcOEX3T_tf); - get_map.emplace("cim:ExcOEX3T.vrmax", &get_ExcOEX3T_vrmax); - get_map.emplace("cim:ExcOEX3T.vrmin", &get_ExcOEX3T_vrmin); + get_map.emplace("ExcOEX3T.e1", &get_ExcOEX3T_e1); + get_map.emplace("ExcOEX3T.e2", &get_ExcOEX3T_e2); + get_map.emplace("ExcOEX3T.ka", &get_ExcOEX3T_ka); + get_map.emplace("ExcOEX3T.kc", &get_ExcOEX3T_kc); + get_map.emplace("ExcOEX3T.kd", &get_ExcOEX3T_kd); + get_map.emplace("ExcOEX3T.ke", &get_ExcOEX3T_ke); + get_map.emplace("ExcOEX3T.kf", &get_ExcOEX3T_kf); + get_map.emplace("ExcOEX3T.see1", &get_ExcOEX3T_see1); + get_map.emplace("ExcOEX3T.see2", &get_ExcOEX3T_see2); + get_map.emplace("ExcOEX3T.t1", &get_ExcOEX3T_t1); + get_map.emplace("ExcOEX3T.t2", &get_ExcOEX3T_t2); + get_map.emplace("ExcOEX3T.t3", &get_ExcOEX3T_t3); + get_map.emplace("ExcOEX3T.t4", &get_ExcOEX3T_t4); + get_map.emplace("ExcOEX3T.t5", &get_ExcOEX3T_t5); + get_map.emplace("ExcOEX3T.t6", &get_ExcOEX3T_t6); + get_map.emplace("ExcOEX3T.te", &get_ExcOEX3T_te); + get_map.emplace("ExcOEX3T.tf", &get_ExcOEX3T_tf); + get_map.emplace("ExcOEX3T.vrmax", &get_ExcOEX3T_vrmax); + get_map.emplace("ExcOEX3T.vrmin", &get_ExcOEX3T_vrmin); } void ExcOEX3T::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcOEX3T::addEnumGetFnsToMap(std::map& get_map) ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcOEX3T::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcOEX3T" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcOEX3T::declare() { return BaseClassDefiner(ExcOEX3T::addConstructToMap, ExcOEX3T::addPrimitiveAssignFnsToMap, ExcOEX3T::addClassAssignFnsToMap, ExcOEX3T::debugName); } +std::map ExcOEX3T::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcOEX3T_factory() diff --git a/CGMES_3.0.0/ExcOEX3T.hpp b/CGMES_3.0.0/ExcOEX3T.hpp index 7d17a2fe1..e9e285ce2 100644 --- a/CGMES_3.0.0/ExcOEX3T.hpp +++ b/CGMES_3.0.0/ExcOEX3T.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -86,8 +87,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -95,7 +103,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcOEX3T_factory(); diff --git a/CGMES_3.0.0/ExcPIC.cpp b/CGMES_3.0.0/ExcPIC.cpp index dbace3479..ed97de4c2 100644 --- a/CGMES_3.0.0/ExcPIC.cpp +++ b/CGMES_3.0.0/ExcPIC.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcPIC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcPIC.e1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.e2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.efdmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.se1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.se2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.ta4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.tf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.vr1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.vr2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcPIC.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcPIC::ExcPIC() {} ExcPIC::~ExcPIC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcPIC.e1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.e2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcPIC.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ka", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kc", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ke", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kf", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ki", { CGMESProfile::DY, } }, - { "cim:ExcPIC.kp", { CGMESProfile::DY, } }, - { "cim:ExcPIC.se1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.se2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta3", { CGMESProfile::DY, } }, - { "cim:ExcPIC.ta4", { CGMESProfile::DY, } }, - { "cim:ExcPIC.te", { CGMESProfile::DY, } }, - { "cim:ExcPIC.tf1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.tf2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vr1", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vr2", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcPIC.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -ExcPIC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcPIC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcPIC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcPIC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcPIC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcPIC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcPIC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcPIC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcPIC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcPIC_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcPIC::debugString() const void ExcPIC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcPIC", &ExcPIC_factory); + factory_map.emplace("ExcPIC", &ExcPIC_factory); } void ExcPIC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcPIC.e1", &assign_ExcPIC_e1); - assign_map.emplace("cim:ExcPIC.e2", &assign_ExcPIC_e2); - assign_map.emplace("cim:ExcPIC.efdmax", &assign_ExcPIC_efdmax); - assign_map.emplace("cim:ExcPIC.efdmin", &assign_ExcPIC_efdmin); - assign_map.emplace("cim:ExcPIC.ka", &assign_ExcPIC_ka); - assign_map.emplace("cim:ExcPIC.kc", &assign_ExcPIC_kc); - assign_map.emplace("cim:ExcPIC.ke", &assign_ExcPIC_ke); - assign_map.emplace("cim:ExcPIC.kf", &assign_ExcPIC_kf); - assign_map.emplace("cim:ExcPIC.ki", &assign_ExcPIC_ki); - assign_map.emplace("cim:ExcPIC.kp", &assign_ExcPIC_kp); - assign_map.emplace("cim:ExcPIC.se1", &assign_ExcPIC_se1); - assign_map.emplace("cim:ExcPIC.se2", &assign_ExcPIC_se2); - assign_map.emplace("cim:ExcPIC.ta1", &assign_ExcPIC_ta1); - assign_map.emplace("cim:ExcPIC.ta2", &assign_ExcPIC_ta2); - assign_map.emplace("cim:ExcPIC.ta3", &assign_ExcPIC_ta3); - assign_map.emplace("cim:ExcPIC.ta4", &assign_ExcPIC_ta4); - assign_map.emplace("cim:ExcPIC.te", &assign_ExcPIC_te); - assign_map.emplace("cim:ExcPIC.tf1", &assign_ExcPIC_tf1); - assign_map.emplace("cim:ExcPIC.tf2", &assign_ExcPIC_tf2); - assign_map.emplace("cim:ExcPIC.vr1", &assign_ExcPIC_vr1); - assign_map.emplace("cim:ExcPIC.vr2", &assign_ExcPIC_vr2); - assign_map.emplace("cim:ExcPIC.vrmax", &assign_ExcPIC_vrmax); - assign_map.emplace("cim:ExcPIC.vrmin", &assign_ExcPIC_vrmin); + assign_map.emplace("ExcPIC.e1", &assign_ExcPIC_e1); + assign_map.emplace("ExcPIC.e2", &assign_ExcPIC_e2); + assign_map.emplace("ExcPIC.efdmax", &assign_ExcPIC_efdmax); + assign_map.emplace("ExcPIC.efdmin", &assign_ExcPIC_efdmin); + assign_map.emplace("ExcPIC.ka", &assign_ExcPIC_ka); + assign_map.emplace("ExcPIC.kc", &assign_ExcPIC_kc); + assign_map.emplace("ExcPIC.ke", &assign_ExcPIC_ke); + assign_map.emplace("ExcPIC.kf", &assign_ExcPIC_kf); + assign_map.emplace("ExcPIC.ki", &assign_ExcPIC_ki); + assign_map.emplace("ExcPIC.kp", &assign_ExcPIC_kp); + assign_map.emplace("ExcPIC.se1", &assign_ExcPIC_se1); + assign_map.emplace("ExcPIC.se2", &assign_ExcPIC_se2); + assign_map.emplace("ExcPIC.ta1", &assign_ExcPIC_ta1); + assign_map.emplace("ExcPIC.ta2", &assign_ExcPIC_ta2); + assign_map.emplace("ExcPIC.ta3", &assign_ExcPIC_ta3); + assign_map.emplace("ExcPIC.ta4", &assign_ExcPIC_ta4); + assign_map.emplace("ExcPIC.te", &assign_ExcPIC_te); + assign_map.emplace("ExcPIC.tf1", &assign_ExcPIC_tf1); + assign_map.emplace("ExcPIC.tf2", &assign_ExcPIC_tf2); + assign_map.emplace("ExcPIC.vr1", &assign_ExcPIC_vr1); + assign_map.emplace("ExcPIC.vr2", &assign_ExcPIC_vr2); + assign_map.emplace("ExcPIC.vrmax", &assign_ExcPIC_vrmax); + assign_map.emplace("ExcPIC.vrmin", &assign_ExcPIC_vrmin); } void ExcPIC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,29 +805,29 @@ void ExcPIC::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcPIC.e1", &get_ExcPIC_e1); - get_map.emplace("cim:ExcPIC.e2", &get_ExcPIC_e2); - get_map.emplace("cim:ExcPIC.efdmax", &get_ExcPIC_efdmax); - get_map.emplace("cim:ExcPIC.efdmin", &get_ExcPIC_efdmin); - get_map.emplace("cim:ExcPIC.ka", &get_ExcPIC_ka); - get_map.emplace("cim:ExcPIC.kc", &get_ExcPIC_kc); - get_map.emplace("cim:ExcPIC.ke", &get_ExcPIC_ke); - get_map.emplace("cim:ExcPIC.kf", &get_ExcPIC_kf); - get_map.emplace("cim:ExcPIC.ki", &get_ExcPIC_ki); - get_map.emplace("cim:ExcPIC.kp", &get_ExcPIC_kp); - get_map.emplace("cim:ExcPIC.se1", &get_ExcPIC_se1); - get_map.emplace("cim:ExcPIC.se2", &get_ExcPIC_se2); - get_map.emplace("cim:ExcPIC.ta1", &get_ExcPIC_ta1); - get_map.emplace("cim:ExcPIC.ta2", &get_ExcPIC_ta2); - get_map.emplace("cim:ExcPIC.ta3", &get_ExcPIC_ta3); - get_map.emplace("cim:ExcPIC.ta4", &get_ExcPIC_ta4); - get_map.emplace("cim:ExcPIC.te", &get_ExcPIC_te); - get_map.emplace("cim:ExcPIC.tf1", &get_ExcPIC_tf1); - get_map.emplace("cim:ExcPIC.tf2", &get_ExcPIC_tf2); - get_map.emplace("cim:ExcPIC.vr1", &get_ExcPIC_vr1); - get_map.emplace("cim:ExcPIC.vr2", &get_ExcPIC_vr2); - get_map.emplace("cim:ExcPIC.vrmax", &get_ExcPIC_vrmax); - get_map.emplace("cim:ExcPIC.vrmin", &get_ExcPIC_vrmin); + get_map.emplace("ExcPIC.e1", &get_ExcPIC_e1); + get_map.emplace("ExcPIC.e2", &get_ExcPIC_e2); + get_map.emplace("ExcPIC.efdmax", &get_ExcPIC_efdmax); + get_map.emplace("ExcPIC.efdmin", &get_ExcPIC_efdmin); + get_map.emplace("ExcPIC.ka", &get_ExcPIC_ka); + get_map.emplace("ExcPIC.kc", &get_ExcPIC_kc); + get_map.emplace("ExcPIC.ke", &get_ExcPIC_ke); + get_map.emplace("ExcPIC.kf", &get_ExcPIC_kf); + get_map.emplace("ExcPIC.ki", &get_ExcPIC_ki); + get_map.emplace("ExcPIC.kp", &get_ExcPIC_kp); + get_map.emplace("ExcPIC.se1", &get_ExcPIC_se1); + get_map.emplace("ExcPIC.se2", &get_ExcPIC_se2); + get_map.emplace("ExcPIC.ta1", &get_ExcPIC_ta1); + get_map.emplace("ExcPIC.ta2", &get_ExcPIC_ta2); + get_map.emplace("ExcPIC.ta3", &get_ExcPIC_ta3); + get_map.emplace("ExcPIC.ta4", &get_ExcPIC_ta4); + get_map.emplace("ExcPIC.te", &get_ExcPIC_te); + get_map.emplace("ExcPIC.tf1", &get_ExcPIC_tf1); + get_map.emplace("ExcPIC.tf2", &get_ExcPIC_tf2); + get_map.emplace("ExcPIC.vr1", &get_ExcPIC_vr1); + get_map.emplace("ExcPIC.vr2", &get_ExcPIC_vr2); + get_map.emplace("ExcPIC.vrmax", &get_ExcPIC_vrmax); + get_map.emplace("ExcPIC.vrmin", &get_ExcPIC_vrmin); } void ExcPIC::addClassGetFnsToMap(std::map& get_map) const @@ -808,11 +840,25 @@ void ExcPIC::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcPIC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcPIC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcPIC::declare() { return BaseClassDefiner(ExcPIC::addConstructToMap, ExcPIC::addPrimitiveAssignFnsToMap, ExcPIC::addClassAssignFnsToMap, ExcPIC::debugName); } +std::map ExcPIC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcPIC_factory() diff --git a/CGMES_3.0.0/ExcPIC.hpp b/CGMES_3.0.0/ExcPIC.hpp index fe46c1fba..01e32bd51 100644 --- a/CGMES_3.0.0/ExcPIC.hpp +++ b/CGMES_3.0.0/ExcPIC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -98,8 +99,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -107,7 +115,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcPIC_factory(); diff --git a/CGMES_3.0.0/ExcREXS.cpp b/CGMES_3.0.0/ExcREXS.cpp index 7c198209c..9f6fdeddf 100644 --- a/CGMES_3.0.0/ExcREXS.cpp +++ b/CGMES_3.0.0/ExcREXS.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcREXS(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcREXS.e1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.e2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.fbf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.flimf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kefd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kii", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvi", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.kvphz", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.nvphz", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.se1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.se2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.tb1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.tb2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.tc1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.tc2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.vcmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.vfmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.vfmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcREXS.xc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcREXS::ExcREXS() {} ExcREXS::~ExcREXS() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcREXS.e1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.e2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.fbf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.flimf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kc", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kd", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ke", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kefd", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kh", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kii", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kip", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ks", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvi", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvp", { CGMESProfile::DY, } }, - { "cim:ExcREXS.kvphz", { CGMESProfile::DY, } }, - { "cim:ExcREXS.nvphz", { CGMESProfile::DY, } }, - { "cim:ExcREXS.se1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.se2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.ta", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tb1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tb2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tc1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tc2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.te", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf1", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tf2", { CGMESProfile::DY, } }, - { "cim:ExcREXS.tp", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vcmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vfmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vfmin", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vimax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcREXS.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcREXS.xc", { CGMESProfile::DY, } }, -}; - -std::list -ExcREXS::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcREXS::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcREXS::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcREXS::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcREXS::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcREXS::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcREXS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcREXS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcREXS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcREXS_e1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* ExcREXS::debugString() const void ExcREXS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcREXS", &ExcREXS_factory); + factory_map.emplace("ExcREXS", &ExcREXS_factory); } void ExcREXS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcREXS.e1", &assign_ExcREXS_e1); - assign_map.emplace("cim:ExcREXS.e2", &assign_ExcREXS_e2); - assign_map.emplace("cim:ExcREXS.fbf", &assign_ExcREXS_fbf); - assign_map.emplace("cim:ExcREXS.flimf", &assign_ExcREXS_flimf); - assign_map.emplace("cim:ExcREXS.kc", &assign_ExcREXS_kc); - assign_map.emplace("cim:ExcREXS.kd", &assign_ExcREXS_kd); - assign_map.emplace("cim:ExcREXS.ke", &assign_ExcREXS_ke); - assign_map.emplace("cim:ExcREXS.kefd", &assign_ExcREXS_kefd); - assign_map.emplace("cim:ExcREXS.kf", &assign_ExcREXS_kf); - assign_map.emplace("cim:ExcREXS.kh", &assign_ExcREXS_kh); - assign_map.emplace("cim:ExcREXS.kii", &assign_ExcREXS_kii); - assign_map.emplace("cim:ExcREXS.kip", &assign_ExcREXS_kip); - assign_map.emplace("cim:ExcREXS.ks", &assign_ExcREXS_ks); - assign_map.emplace("cim:ExcREXS.kvi", &assign_ExcREXS_kvi); - assign_map.emplace("cim:ExcREXS.kvp", &assign_ExcREXS_kvp); - assign_map.emplace("cim:ExcREXS.kvphz", &assign_ExcREXS_kvphz); - assign_map.emplace("cim:ExcREXS.nvphz", &assign_ExcREXS_nvphz); - assign_map.emplace("cim:ExcREXS.se1", &assign_ExcREXS_se1); - assign_map.emplace("cim:ExcREXS.se2", &assign_ExcREXS_se2); - assign_map.emplace("cim:ExcREXS.ta", &assign_ExcREXS_ta); - assign_map.emplace("cim:ExcREXS.tb1", &assign_ExcREXS_tb1); - assign_map.emplace("cim:ExcREXS.tb2", &assign_ExcREXS_tb2); - assign_map.emplace("cim:ExcREXS.tc1", &assign_ExcREXS_tc1); - assign_map.emplace("cim:ExcREXS.tc2", &assign_ExcREXS_tc2); - assign_map.emplace("cim:ExcREXS.te", &assign_ExcREXS_te); - assign_map.emplace("cim:ExcREXS.tf", &assign_ExcREXS_tf); - assign_map.emplace("cim:ExcREXS.tf1", &assign_ExcREXS_tf1); - assign_map.emplace("cim:ExcREXS.tf2", &assign_ExcREXS_tf2); - assign_map.emplace("cim:ExcREXS.tp", &assign_ExcREXS_tp); - assign_map.emplace("cim:ExcREXS.vcmax", &assign_ExcREXS_vcmax); - assign_map.emplace("cim:ExcREXS.vfmax", &assign_ExcREXS_vfmax); - assign_map.emplace("cim:ExcREXS.vfmin", &assign_ExcREXS_vfmin); - assign_map.emplace("cim:ExcREXS.vimax", &assign_ExcREXS_vimax); - assign_map.emplace("cim:ExcREXS.vrmax", &assign_ExcREXS_vrmax); - assign_map.emplace("cim:ExcREXS.vrmin", &assign_ExcREXS_vrmin); - assign_map.emplace("cim:ExcREXS.xc", &assign_ExcREXS_xc); + assign_map.emplace("ExcREXS.e1", &assign_ExcREXS_e1); + assign_map.emplace("ExcREXS.e2", &assign_ExcREXS_e2); + assign_map.emplace("ExcREXS.fbf", &assign_ExcREXS_fbf); + assign_map.emplace("ExcREXS.flimf", &assign_ExcREXS_flimf); + assign_map.emplace("ExcREXS.kc", &assign_ExcREXS_kc); + assign_map.emplace("ExcREXS.kd", &assign_ExcREXS_kd); + assign_map.emplace("ExcREXS.ke", &assign_ExcREXS_ke); + assign_map.emplace("ExcREXS.kefd", &assign_ExcREXS_kefd); + assign_map.emplace("ExcREXS.kf", &assign_ExcREXS_kf); + assign_map.emplace("ExcREXS.kh", &assign_ExcREXS_kh); + assign_map.emplace("ExcREXS.kii", &assign_ExcREXS_kii); + assign_map.emplace("ExcREXS.kip", &assign_ExcREXS_kip); + assign_map.emplace("ExcREXS.ks", &assign_ExcREXS_ks); + assign_map.emplace("ExcREXS.kvi", &assign_ExcREXS_kvi); + assign_map.emplace("ExcREXS.kvp", &assign_ExcREXS_kvp); + assign_map.emplace("ExcREXS.kvphz", &assign_ExcREXS_kvphz); + assign_map.emplace("ExcREXS.nvphz", &assign_ExcREXS_nvphz); + assign_map.emplace("ExcREXS.se1", &assign_ExcREXS_se1); + assign_map.emplace("ExcREXS.se2", &assign_ExcREXS_se2); + assign_map.emplace("ExcREXS.ta", &assign_ExcREXS_ta); + assign_map.emplace("ExcREXS.tb1", &assign_ExcREXS_tb1); + assign_map.emplace("ExcREXS.tb2", &assign_ExcREXS_tb2); + assign_map.emplace("ExcREXS.tc1", &assign_ExcREXS_tc1); + assign_map.emplace("ExcREXS.tc2", &assign_ExcREXS_tc2); + assign_map.emplace("ExcREXS.te", &assign_ExcREXS_te); + assign_map.emplace("ExcREXS.tf", &assign_ExcREXS_tf); + assign_map.emplace("ExcREXS.tf1", &assign_ExcREXS_tf1); + assign_map.emplace("ExcREXS.tf2", &assign_ExcREXS_tf2); + assign_map.emplace("ExcREXS.tp", &assign_ExcREXS_tp); + assign_map.emplace("ExcREXS.vcmax", &assign_ExcREXS_vcmax); + assign_map.emplace("ExcREXS.vfmax", &assign_ExcREXS_vfmax); + assign_map.emplace("ExcREXS.vfmin", &assign_ExcREXS_vfmin); + assign_map.emplace("ExcREXS.vimax", &assign_ExcREXS_vimax); + assign_map.emplace("ExcREXS.vrmax", &assign_ExcREXS_vrmax); + assign_map.emplace("ExcREXS.vrmin", &assign_ExcREXS_vrmin); + assign_map.emplace("ExcREXS.xc", &assign_ExcREXS_xc); } void ExcREXS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,41 +1208,41 @@ void ExcREXS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcREXS.e1", &get_ExcREXS_e1); - get_map.emplace("cim:ExcREXS.e2", &get_ExcREXS_e2); - get_map.emplace("cim:ExcREXS.flimf", &get_ExcREXS_flimf); - get_map.emplace("cim:ExcREXS.kc", &get_ExcREXS_kc); - get_map.emplace("cim:ExcREXS.kd", &get_ExcREXS_kd); - get_map.emplace("cim:ExcREXS.ke", &get_ExcREXS_ke); - get_map.emplace("cim:ExcREXS.kefd", &get_ExcREXS_kefd); - get_map.emplace("cim:ExcREXS.kf", &get_ExcREXS_kf); - get_map.emplace("cim:ExcREXS.kh", &get_ExcREXS_kh); - get_map.emplace("cim:ExcREXS.kii", &get_ExcREXS_kii); - get_map.emplace("cim:ExcREXS.kip", &get_ExcREXS_kip); - get_map.emplace("cim:ExcREXS.ks", &get_ExcREXS_ks); - get_map.emplace("cim:ExcREXS.kvi", &get_ExcREXS_kvi); - get_map.emplace("cim:ExcREXS.kvp", &get_ExcREXS_kvp); - get_map.emplace("cim:ExcREXS.kvphz", &get_ExcREXS_kvphz); - get_map.emplace("cim:ExcREXS.nvphz", &get_ExcREXS_nvphz); - get_map.emplace("cim:ExcREXS.se1", &get_ExcREXS_se1); - get_map.emplace("cim:ExcREXS.se2", &get_ExcREXS_se2); - get_map.emplace("cim:ExcREXS.ta", &get_ExcREXS_ta); - get_map.emplace("cim:ExcREXS.tb1", &get_ExcREXS_tb1); - get_map.emplace("cim:ExcREXS.tb2", &get_ExcREXS_tb2); - get_map.emplace("cim:ExcREXS.tc1", &get_ExcREXS_tc1); - get_map.emplace("cim:ExcREXS.tc2", &get_ExcREXS_tc2); - get_map.emplace("cim:ExcREXS.te", &get_ExcREXS_te); - get_map.emplace("cim:ExcREXS.tf", &get_ExcREXS_tf); - get_map.emplace("cim:ExcREXS.tf1", &get_ExcREXS_tf1); - get_map.emplace("cim:ExcREXS.tf2", &get_ExcREXS_tf2); - get_map.emplace("cim:ExcREXS.tp", &get_ExcREXS_tp); - get_map.emplace("cim:ExcREXS.vcmax", &get_ExcREXS_vcmax); - get_map.emplace("cim:ExcREXS.vfmax", &get_ExcREXS_vfmax); - get_map.emplace("cim:ExcREXS.vfmin", &get_ExcREXS_vfmin); - get_map.emplace("cim:ExcREXS.vimax", &get_ExcREXS_vimax); - get_map.emplace("cim:ExcREXS.vrmax", &get_ExcREXS_vrmax); - get_map.emplace("cim:ExcREXS.vrmin", &get_ExcREXS_vrmin); - get_map.emplace("cim:ExcREXS.xc", &get_ExcREXS_xc); + get_map.emplace("ExcREXS.e1", &get_ExcREXS_e1); + get_map.emplace("ExcREXS.e2", &get_ExcREXS_e2); + get_map.emplace("ExcREXS.flimf", &get_ExcREXS_flimf); + get_map.emplace("ExcREXS.kc", &get_ExcREXS_kc); + get_map.emplace("ExcREXS.kd", &get_ExcREXS_kd); + get_map.emplace("ExcREXS.ke", &get_ExcREXS_ke); + get_map.emplace("ExcREXS.kefd", &get_ExcREXS_kefd); + get_map.emplace("ExcREXS.kf", &get_ExcREXS_kf); + get_map.emplace("ExcREXS.kh", &get_ExcREXS_kh); + get_map.emplace("ExcREXS.kii", &get_ExcREXS_kii); + get_map.emplace("ExcREXS.kip", &get_ExcREXS_kip); + get_map.emplace("ExcREXS.ks", &get_ExcREXS_ks); + get_map.emplace("ExcREXS.kvi", &get_ExcREXS_kvi); + get_map.emplace("ExcREXS.kvp", &get_ExcREXS_kvp); + get_map.emplace("ExcREXS.kvphz", &get_ExcREXS_kvphz); + get_map.emplace("ExcREXS.nvphz", &get_ExcREXS_nvphz); + get_map.emplace("ExcREXS.se1", &get_ExcREXS_se1); + get_map.emplace("ExcREXS.se2", &get_ExcREXS_se2); + get_map.emplace("ExcREXS.ta", &get_ExcREXS_ta); + get_map.emplace("ExcREXS.tb1", &get_ExcREXS_tb1); + get_map.emplace("ExcREXS.tb2", &get_ExcREXS_tb2); + get_map.emplace("ExcREXS.tc1", &get_ExcREXS_tc1); + get_map.emplace("ExcREXS.tc2", &get_ExcREXS_tc2); + get_map.emplace("ExcREXS.te", &get_ExcREXS_te); + get_map.emplace("ExcREXS.tf", &get_ExcREXS_tf); + get_map.emplace("ExcREXS.tf1", &get_ExcREXS_tf1); + get_map.emplace("ExcREXS.tf2", &get_ExcREXS_tf2); + get_map.emplace("ExcREXS.tp", &get_ExcREXS_tp); + get_map.emplace("ExcREXS.vcmax", &get_ExcREXS_vcmax); + get_map.emplace("ExcREXS.vfmax", &get_ExcREXS_vfmax); + get_map.emplace("ExcREXS.vfmin", &get_ExcREXS_vfmin); + get_map.emplace("ExcREXS.vimax", &get_ExcREXS_vimax); + get_map.emplace("ExcREXS.vrmax", &get_ExcREXS_vrmax); + get_map.emplace("ExcREXS.vrmin", &get_ExcREXS_vrmin); + get_map.emplace("ExcREXS.xc", &get_ExcREXS_xc); } void ExcREXS::addClassGetFnsToMap(std::map& get_map) const @@ -1221,7 +1253,13 @@ void ExcREXS::addClassGetFnsToMap(std::map& get void ExcREXS::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcREXS.fbf", &get_ExcREXS_fbf); + get_map.emplace("ExcREXS.fbf", &get_ExcREXS_fbf); +} + +bool ExcREXS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcREXS" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcREXS::declare() @@ -1229,6 +1267,14 @@ const BaseClassDefiner ExcREXS::declare() return BaseClassDefiner(ExcREXS::addConstructToMap, ExcREXS::addPrimitiveAssignFnsToMap, ExcREXS::addClassAssignFnsToMap, ExcREXS::debugName); } +std::map ExcREXS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcREXS_factory() diff --git a/CGMES_3.0.0/ExcREXS.hpp b/CGMES_3.0.0/ExcREXS.hpp index 16a8268bc..9607b0fb5 100644 --- a/CGMES_3.0.0/ExcREXS.hpp +++ b/CGMES_3.0.0/ExcREXS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcREXSFeedbackSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcREXS_factory(); diff --git a/CGMES_3.0.0/ExcRQB.cpp b/CGMES_3.0.0/ExcRQB.cpp index 122934d7b..83cc66a72 100644 --- a/CGMES_3.0.0/ExcRQB.cpp +++ b/CGMES_3.0.0/ExcRQB.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcRQB(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcRQB.ki0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.ki1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.klir", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.klus", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.lsat", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.lus", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.mesu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.t4m", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.ucmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcRQB.ucmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcRQB::ExcRQB() {} ExcRQB::~ExcRQB() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcRQB::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcRQB::getClassNamespaceUrl() const { - { "cim:ExcRQB.ki0", { CGMESProfile::DY, } }, - { "cim:ExcRQB.ki1", { CGMESProfile::DY, } }, - { "cim:ExcRQB.klir", { CGMESProfile::DY, } }, - { "cim:ExcRQB.klus", { CGMESProfile::DY, } }, - { "cim:ExcRQB.lsat", { CGMESProfile::DY, } }, - { "cim:ExcRQB.lus", { CGMESProfile::DY, } }, - { "cim:ExcRQB.mesu", { CGMESProfile::DY, } }, - { "cim:ExcRQB.t4m", { CGMESProfile::DY, } }, - { "cim:ExcRQB.tc", { CGMESProfile::DY, } }, - { "cim:ExcRQB.te", { CGMESProfile::DY, } }, - { "cim:ExcRQB.tf", { CGMESProfile::DY, } }, - { "cim:ExcRQB.ucmax", { CGMESProfile::DY, } }, - { "cim:ExcRQB.ucmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcRQB::getPossibleProfilesForClass() const +const std::string& ExcRQB::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcRQB::getPossibleProfilesForAttributes() const +const std::list& ExcRQB::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcRQB::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcRQB::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcRQB::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcRQB_ki0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* ExcRQB::debugString() const void ExcRQB::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcRQB", &ExcRQB_factory); + factory_map.emplace("ExcRQB", &ExcRQB_factory); } void ExcRQB::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcRQB.ki0", &assign_ExcRQB_ki0); - assign_map.emplace("cim:ExcRQB.ki1", &assign_ExcRQB_ki1); - assign_map.emplace("cim:ExcRQB.klir", &assign_ExcRQB_klir); - assign_map.emplace("cim:ExcRQB.klus", &assign_ExcRQB_klus); - assign_map.emplace("cim:ExcRQB.lsat", &assign_ExcRQB_lsat); - assign_map.emplace("cim:ExcRQB.lus", &assign_ExcRQB_lus); - assign_map.emplace("cim:ExcRQB.mesu", &assign_ExcRQB_mesu); - assign_map.emplace("cim:ExcRQB.t4m", &assign_ExcRQB_t4m); - assign_map.emplace("cim:ExcRQB.tc", &assign_ExcRQB_tc); - assign_map.emplace("cim:ExcRQB.te", &assign_ExcRQB_te); - assign_map.emplace("cim:ExcRQB.tf", &assign_ExcRQB_tf); - assign_map.emplace("cim:ExcRQB.ucmax", &assign_ExcRQB_ucmax); - assign_map.emplace("cim:ExcRQB.ucmin", &assign_ExcRQB_ucmin); + assign_map.emplace("ExcRQB.ki0", &assign_ExcRQB_ki0); + assign_map.emplace("ExcRQB.ki1", &assign_ExcRQB_ki1); + assign_map.emplace("ExcRQB.klir", &assign_ExcRQB_klir); + assign_map.emplace("ExcRQB.klus", &assign_ExcRQB_klus); + assign_map.emplace("ExcRQB.lsat", &assign_ExcRQB_lsat); + assign_map.emplace("ExcRQB.lus", &assign_ExcRQB_lus); + assign_map.emplace("ExcRQB.mesu", &assign_ExcRQB_mesu); + assign_map.emplace("ExcRQB.t4m", &assign_ExcRQB_t4m); + assign_map.emplace("ExcRQB.tc", &assign_ExcRQB_tc); + assign_map.emplace("ExcRQB.te", &assign_ExcRQB_te); + assign_map.emplace("ExcRQB.tf", &assign_ExcRQB_tf); + assign_map.emplace("ExcRQB.ucmax", &assign_ExcRQB_ucmax); + assign_map.emplace("ExcRQB.ucmin", &assign_ExcRQB_ucmin); } void ExcRQB::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void ExcRQB::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcRQB.ki0", &get_ExcRQB_ki0); - get_map.emplace("cim:ExcRQB.ki1", &get_ExcRQB_ki1); - get_map.emplace("cim:ExcRQB.klir", &get_ExcRQB_klir); - get_map.emplace("cim:ExcRQB.klus", &get_ExcRQB_klus); - get_map.emplace("cim:ExcRQB.lsat", &get_ExcRQB_lsat); - get_map.emplace("cim:ExcRQB.lus", &get_ExcRQB_lus); - get_map.emplace("cim:ExcRQB.mesu", &get_ExcRQB_mesu); - get_map.emplace("cim:ExcRQB.t4m", &get_ExcRQB_t4m); - get_map.emplace("cim:ExcRQB.tc", &get_ExcRQB_tc); - get_map.emplace("cim:ExcRQB.te", &get_ExcRQB_te); - get_map.emplace("cim:ExcRQB.tf", &get_ExcRQB_tf); - get_map.emplace("cim:ExcRQB.ucmax", &get_ExcRQB_ucmax); - get_map.emplace("cim:ExcRQB.ucmin", &get_ExcRQB_ucmin); + get_map.emplace("ExcRQB.ki0", &get_ExcRQB_ki0); + get_map.emplace("ExcRQB.ki1", &get_ExcRQB_ki1); + get_map.emplace("ExcRQB.klir", &get_ExcRQB_klir); + get_map.emplace("ExcRQB.klus", &get_ExcRQB_klus); + get_map.emplace("ExcRQB.lsat", &get_ExcRQB_lsat); + get_map.emplace("ExcRQB.lus", &get_ExcRQB_lus); + get_map.emplace("ExcRQB.mesu", &get_ExcRQB_mesu); + get_map.emplace("ExcRQB.t4m", &get_ExcRQB_t4m); + get_map.emplace("ExcRQB.tc", &get_ExcRQB_tc); + get_map.emplace("ExcRQB.te", &get_ExcRQB_te); + get_map.emplace("ExcRQB.tf", &get_ExcRQB_tf); + get_map.emplace("ExcRQB.ucmax", &get_ExcRQB_ucmax); + get_map.emplace("ExcRQB.ucmin", &get_ExcRQB_ucmin); } void ExcRQB::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void ExcRQB::addEnumGetFnsToMap(std::map& get_map) co ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcRQB::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcRQB" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcRQB::declare() { return BaseClassDefiner(ExcRQB::addConstructToMap, ExcRQB::addPrimitiveAssignFnsToMap, ExcRQB::addClassAssignFnsToMap, ExcRQB::debugName); } +std::map ExcRQB::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcRQB_factory() diff --git a/CGMES_3.0.0/ExcRQB.hpp b/CGMES_3.0.0/ExcRQB.hpp index c0dd6a40e..3965d6661 100644 --- a/CGMES_3.0.0/ExcRQB.hpp +++ b/CGMES_3.0.0/ExcRQB.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -69,8 +70,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -78,7 +86,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcRQB_factory(); diff --git a/CGMES_3.0.0/ExcSCRX.cpp b/CGMES_3.0.0/ExcSCRX.cpp index be7b304c3..c7f756f30 100644 --- a/CGMES_3.0.0/ExcSCRX.cpp +++ b/CGMES_3.0.0/ExcSCRX.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSCRX(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSCRX.cswitch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSCRX.emax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSCRX.emin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSCRX.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSCRX.rcrfd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSCRX.tatb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSCRX.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSCRX.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSCRX::ExcSCRX() {} ExcSCRX::~ExcSCRX() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcSCRX::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcSCRX::getClassNamespaceUrl() const { - { "cim:ExcSCRX.cswitch", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.emax", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.emin", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.k", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.rcrfd", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.tatb", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.tb", { CGMESProfile::DY, } }, - { "cim:ExcSCRX.te", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcSCRX::getPossibleProfilesForClass() const +const std::string& ExcSCRX::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcSCRX::getPossibleProfilesForAttributes() const +const std::list& ExcSCRX::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSCRX::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSCRX::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSCRX::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSCRX_cswitch(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* ExcSCRX::debugString() const void ExcSCRX::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSCRX", &ExcSCRX_factory); + factory_map.emplace("ExcSCRX", &ExcSCRX_factory); } void ExcSCRX::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSCRX.cswitch", &assign_ExcSCRX_cswitch); - assign_map.emplace("cim:ExcSCRX.emax", &assign_ExcSCRX_emax); - assign_map.emplace("cim:ExcSCRX.emin", &assign_ExcSCRX_emin); - assign_map.emplace("cim:ExcSCRX.k", &assign_ExcSCRX_k); - assign_map.emplace("cim:ExcSCRX.rcrfd", &assign_ExcSCRX_rcrfd); - assign_map.emplace("cim:ExcSCRX.tatb", &assign_ExcSCRX_tatb); - assign_map.emplace("cim:ExcSCRX.tb", &assign_ExcSCRX_tb); - assign_map.emplace("cim:ExcSCRX.te", &assign_ExcSCRX_te); + assign_map.emplace("ExcSCRX.cswitch", &assign_ExcSCRX_cswitch); + assign_map.emplace("ExcSCRX.emax", &assign_ExcSCRX_emax); + assign_map.emplace("ExcSCRX.emin", &assign_ExcSCRX_emin); + assign_map.emplace("ExcSCRX.k", &assign_ExcSCRX_k); + assign_map.emplace("ExcSCRX.rcrfd", &assign_ExcSCRX_rcrfd); + assign_map.emplace("ExcSCRX.tatb", &assign_ExcSCRX_tatb); + assign_map.emplace("ExcSCRX.tb", &assign_ExcSCRX_tb); + assign_map.emplace("ExcSCRX.te", &assign_ExcSCRX_te); } void ExcSCRX::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void ExcSCRX::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSCRX.cswitch", &get_ExcSCRX_cswitch); - get_map.emplace("cim:ExcSCRX.emax", &get_ExcSCRX_emax); - get_map.emplace("cim:ExcSCRX.emin", &get_ExcSCRX_emin); - get_map.emplace("cim:ExcSCRX.k", &get_ExcSCRX_k); - get_map.emplace("cim:ExcSCRX.rcrfd", &get_ExcSCRX_rcrfd); - get_map.emplace("cim:ExcSCRX.tatb", &get_ExcSCRX_tatb); - get_map.emplace("cim:ExcSCRX.tb", &get_ExcSCRX_tb); - get_map.emplace("cim:ExcSCRX.te", &get_ExcSCRX_te); + get_map.emplace("ExcSCRX.cswitch", &get_ExcSCRX_cswitch); + get_map.emplace("ExcSCRX.emax", &get_ExcSCRX_emax); + get_map.emplace("ExcSCRX.emin", &get_ExcSCRX_emin); + get_map.emplace("ExcSCRX.k", &get_ExcSCRX_k); + get_map.emplace("ExcSCRX.rcrfd", &get_ExcSCRX_rcrfd); + get_map.emplace("ExcSCRX.tatb", &get_ExcSCRX_tatb); + get_map.emplace("ExcSCRX.tb", &get_ExcSCRX_tb); + get_map.emplace("ExcSCRX.te", &get_ExcSCRX_te); } void ExcSCRX::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void ExcSCRX::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSCRX::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSCRX" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSCRX::declare() { return BaseClassDefiner(ExcSCRX::addConstructToMap, ExcSCRX::addPrimitiveAssignFnsToMap, ExcSCRX::addClassAssignFnsToMap, ExcSCRX::debugName); } +std::map ExcSCRX::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSCRX_factory() diff --git a/CGMES_3.0.0/ExcSCRX.hpp b/CGMES_3.0.0/ExcSCRX.hpp index dbfb6ec28..8dfa0cf3b 100644 --- a/CGMES_3.0.0/ExcSCRX.hpp +++ b/CGMES_3.0.0/ExcSCRX.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSCRX_factory(); diff --git a/CGMES_3.0.0/ExcSEXS.cpp b/CGMES_3.0.0/ExcSEXS.cpp index e78222ab6..905c860e8 100644 --- a/CGMES_3.0.0/ExcSEXS.cpp +++ b/CGMES_3.0.0/ExcSEXS.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSEXS(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSEXS.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.efdmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.emax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.emin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tatb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSEXS.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSEXS::ExcSEXS() {} ExcSEXS::~ExcSEXS() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcSEXS::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcSEXS::getClassNamespaceUrl() const { - { "cim:ExcSEXS.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.emax", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.emin", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.k", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.kc", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tatb", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tb", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.tc", { CGMESProfile::DY, } }, - { "cim:ExcSEXS.te", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcSEXS::getPossibleProfilesForClass() const +const std::string& ExcSEXS::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcSEXS::getPossibleProfilesForAttributes() const +const std::list& ExcSEXS::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSEXS::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSEXS::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSEXS::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSEXS_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* ExcSEXS::debugString() const void ExcSEXS::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSEXS", &ExcSEXS_factory); + factory_map.emplace("ExcSEXS", &ExcSEXS_factory); } void ExcSEXS::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSEXS.efdmax", &assign_ExcSEXS_efdmax); - assign_map.emplace("cim:ExcSEXS.efdmin", &assign_ExcSEXS_efdmin); - assign_map.emplace("cim:ExcSEXS.emax", &assign_ExcSEXS_emax); - assign_map.emplace("cim:ExcSEXS.emin", &assign_ExcSEXS_emin); - assign_map.emplace("cim:ExcSEXS.k", &assign_ExcSEXS_k); - assign_map.emplace("cim:ExcSEXS.kc", &assign_ExcSEXS_kc); - assign_map.emplace("cim:ExcSEXS.tatb", &assign_ExcSEXS_tatb); - assign_map.emplace("cim:ExcSEXS.tb", &assign_ExcSEXS_tb); - assign_map.emplace("cim:ExcSEXS.tc", &assign_ExcSEXS_tc); - assign_map.emplace("cim:ExcSEXS.te", &assign_ExcSEXS_te); + assign_map.emplace("ExcSEXS.efdmax", &assign_ExcSEXS_efdmax); + assign_map.emplace("ExcSEXS.efdmin", &assign_ExcSEXS_efdmin); + assign_map.emplace("ExcSEXS.emax", &assign_ExcSEXS_emax); + assign_map.emplace("ExcSEXS.emin", &assign_ExcSEXS_emin); + assign_map.emplace("ExcSEXS.k", &assign_ExcSEXS_k); + assign_map.emplace("ExcSEXS.kc", &assign_ExcSEXS_kc); + assign_map.emplace("ExcSEXS.tatb", &assign_ExcSEXS_tatb); + assign_map.emplace("ExcSEXS.tb", &assign_ExcSEXS_tb); + assign_map.emplace("ExcSEXS.tc", &assign_ExcSEXS_tc); + assign_map.emplace("ExcSEXS.te", &assign_ExcSEXS_te); } void ExcSEXS::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void ExcSEXS::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSEXS.efdmax", &get_ExcSEXS_efdmax); - get_map.emplace("cim:ExcSEXS.efdmin", &get_ExcSEXS_efdmin); - get_map.emplace("cim:ExcSEXS.emax", &get_ExcSEXS_emax); - get_map.emplace("cim:ExcSEXS.emin", &get_ExcSEXS_emin); - get_map.emplace("cim:ExcSEXS.k", &get_ExcSEXS_k); - get_map.emplace("cim:ExcSEXS.kc", &get_ExcSEXS_kc); - get_map.emplace("cim:ExcSEXS.tatb", &get_ExcSEXS_tatb); - get_map.emplace("cim:ExcSEXS.tb", &get_ExcSEXS_tb); - get_map.emplace("cim:ExcSEXS.tc", &get_ExcSEXS_tc); - get_map.emplace("cim:ExcSEXS.te", &get_ExcSEXS_te); + get_map.emplace("ExcSEXS.efdmax", &get_ExcSEXS_efdmax); + get_map.emplace("ExcSEXS.efdmin", &get_ExcSEXS_efdmin); + get_map.emplace("ExcSEXS.emax", &get_ExcSEXS_emax); + get_map.emplace("ExcSEXS.emin", &get_ExcSEXS_emin); + get_map.emplace("ExcSEXS.k", &get_ExcSEXS_k); + get_map.emplace("ExcSEXS.kc", &get_ExcSEXS_kc); + get_map.emplace("ExcSEXS.tatb", &get_ExcSEXS_tatb); + get_map.emplace("ExcSEXS.tb", &get_ExcSEXS_tb); + get_map.emplace("ExcSEXS.tc", &get_ExcSEXS_tc); + get_map.emplace("ExcSEXS.te", &get_ExcSEXS_te); } void ExcSEXS::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void ExcSEXS::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSEXS::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSEXS" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSEXS::declare() { return BaseClassDefiner(ExcSEXS::addConstructToMap, ExcSEXS::addPrimitiveAssignFnsToMap, ExcSEXS::addClassAssignFnsToMap, ExcSEXS::debugName); } +std::map ExcSEXS::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSEXS_factory() diff --git a/CGMES_3.0.0/ExcSEXS.hpp b/CGMES_3.0.0/ExcSEXS.hpp index 08ecbf452..8a8c070fc 100644 --- a/CGMES_3.0.0/ExcSEXS.hpp +++ b/CGMES_3.0.0/ExcSEXS.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSEXS_factory(); diff --git a/CGMES_3.0.0/ExcSK.cpp b/CGMES_3.0.0/ExcSK.cpp index 0c8d97812..270002f80 100644 --- a/CGMES_3.0.0/ExcSK.cpp +++ b/CGMES_3.0.0/ExcSK.cpp @@ -11,63 +11,95 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcSK(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcSK.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.efdmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.emax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.emin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.kce", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.kgob", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.kqi", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.kqob", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.kqp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.nq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.qconoff", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.qz", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.remote", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.sbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.ti", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.uimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.uimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.urmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.urmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.vtmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.vtmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcSK.yp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcSK::ExcSK() {} ExcSK::~ExcSK() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcSK.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.efdmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.emax", { CGMESProfile::DY, } }, - { "cim:ExcSK.emin", { CGMESProfile::DY, } }, - { "cim:ExcSK.k", { CGMESProfile::DY, } }, - { "cim:ExcSK.k1", { CGMESProfile::DY, } }, - { "cim:ExcSK.k2", { CGMESProfile::DY, } }, - { "cim:ExcSK.kc", { CGMESProfile::DY, } }, - { "cim:ExcSK.kce", { CGMESProfile::DY, } }, - { "cim:ExcSK.kd", { CGMESProfile::DY, } }, - { "cim:ExcSK.kgob", { CGMESProfile::DY, } }, - { "cim:ExcSK.kp", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqi", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqob", { CGMESProfile::DY, } }, - { "cim:ExcSK.kqp", { CGMESProfile::DY, } }, - { "cim:ExcSK.nq", { CGMESProfile::DY, } }, - { "cim:ExcSK.qconoff", { CGMESProfile::DY, } }, - { "cim:ExcSK.qz", { CGMESProfile::DY, } }, - { "cim:ExcSK.remote", { CGMESProfile::DY, } }, - { "cim:ExcSK.sbase", { CGMESProfile::DY, } }, - { "cim:ExcSK.tc", { CGMESProfile::DY, } }, - { "cim:ExcSK.te", { CGMESProfile::DY, } }, - { "cim:ExcSK.ti", { CGMESProfile::DY, } }, - { "cim:ExcSK.tp", { CGMESProfile::DY, } }, - { "cim:ExcSK.tr", { CGMESProfile::DY, } }, - { "cim:ExcSK.uimax", { CGMESProfile::DY, } }, - { "cim:ExcSK.uimin", { CGMESProfile::DY, } }, - { "cim:ExcSK.urmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.urmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.vtmax", { CGMESProfile::DY, } }, - { "cim:ExcSK.vtmin", { CGMESProfile::DY, } }, - { "cim:ExcSK.yp", { CGMESProfile::DY, } }, -}; - -std::list -ExcSK::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcSK::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcSK::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcSK::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcSK::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcSK::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcSK::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcSK::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcSK::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcSK_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1006,43 +1038,43 @@ const char* ExcSK::debugString() const void ExcSK::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcSK", &ExcSK_factory); + factory_map.emplace("ExcSK", &ExcSK_factory); } void ExcSK::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcSK.efdmax", &assign_ExcSK_efdmax); - assign_map.emplace("cim:ExcSK.efdmin", &assign_ExcSK_efdmin); - assign_map.emplace("cim:ExcSK.emax", &assign_ExcSK_emax); - assign_map.emplace("cim:ExcSK.emin", &assign_ExcSK_emin); - assign_map.emplace("cim:ExcSK.k", &assign_ExcSK_k); - assign_map.emplace("cim:ExcSK.k1", &assign_ExcSK_k1); - assign_map.emplace("cim:ExcSK.k2", &assign_ExcSK_k2); - assign_map.emplace("cim:ExcSK.kc", &assign_ExcSK_kc); - assign_map.emplace("cim:ExcSK.kce", &assign_ExcSK_kce); - assign_map.emplace("cim:ExcSK.kd", &assign_ExcSK_kd); - assign_map.emplace("cim:ExcSK.kgob", &assign_ExcSK_kgob); - assign_map.emplace("cim:ExcSK.kp", &assign_ExcSK_kp); - assign_map.emplace("cim:ExcSK.kqi", &assign_ExcSK_kqi); - assign_map.emplace("cim:ExcSK.kqob", &assign_ExcSK_kqob); - assign_map.emplace("cim:ExcSK.kqp", &assign_ExcSK_kqp); - assign_map.emplace("cim:ExcSK.nq", &assign_ExcSK_nq); - assign_map.emplace("cim:ExcSK.qconoff", &assign_ExcSK_qconoff); - assign_map.emplace("cim:ExcSK.qz", &assign_ExcSK_qz); - assign_map.emplace("cim:ExcSK.remote", &assign_ExcSK_remote); - assign_map.emplace("cim:ExcSK.sbase", &assign_ExcSK_sbase); - assign_map.emplace("cim:ExcSK.tc", &assign_ExcSK_tc); - assign_map.emplace("cim:ExcSK.te", &assign_ExcSK_te); - assign_map.emplace("cim:ExcSK.ti", &assign_ExcSK_ti); - assign_map.emplace("cim:ExcSK.tp", &assign_ExcSK_tp); - assign_map.emplace("cim:ExcSK.tr", &assign_ExcSK_tr); - assign_map.emplace("cim:ExcSK.uimax", &assign_ExcSK_uimax); - assign_map.emplace("cim:ExcSK.uimin", &assign_ExcSK_uimin); - assign_map.emplace("cim:ExcSK.urmax", &assign_ExcSK_urmax); - assign_map.emplace("cim:ExcSK.urmin", &assign_ExcSK_urmin); - assign_map.emplace("cim:ExcSK.vtmax", &assign_ExcSK_vtmax); - assign_map.emplace("cim:ExcSK.vtmin", &assign_ExcSK_vtmin); - assign_map.emplace("cim:ExcSK.yp", &assign_ExcSK_yp); + assign_map.emplace("ExcSK.efdmax", &assign_ExcSK_efdmax); + assign_map.emplace("ExcSK.efdmin", &assign_ExcSK_efdmin); + assign_map.emplace("ExcSK.emax", &assign_ExcSK_emax); + assign_map.emplace("ExcSK.emin", &assign_ExcSK_emin); + assign_map.emplace("ExcSK.k", &assign_ExcSK_k); + assign_map.emplace("ExcSK.k1", &assign_ExcSK_k1); + assign_map.emplace("ExcSK.k2", &assign_ExcSK_k2); + assign_map.emplace("ExcSK.kc", &assign_ExcSK_kc); + assign_map.emplace("ExcSK.kce", &assign_ExcSK_kce); + assign_map.emplace("ExcSK.kd", &assign_ExcSK_kd); + assign_map.emplace("ExcSK.kgob", &assign_ExcSK_kgob); + assign_map.emplace("ExcSK.kp", &assign_ExcSK_kp); + assign_map.emplace("ExcSK.kqi", &assign_ExcSK_kqi); + assign_map.emplace("ExcSK.kqob", &assign_ExcSK_kqob); + assign_map.emplace("ExcSK.kqp", &assign_ExcSK_kqp); + assign_map.emplace("ExcSK.nq", &assign_ExcSK_nq); + assign_map.emplace("ExcSK.qconoff", &assign_ExcSK_qconoff); + assign_map.emplace("ExcSK.qz", &assign_ExcSK_qz); + assign_map.emplace("ExcSK.remote", &assign_ExcSK_remote); + assign_map.emplace("ExcSK.sbase", &assign_ExcSK_sbase); + assign_map.emplace("ExcSK.tc", &assign_ExcSK_tc); + assign_map.emplace("ExcSK.te", &assign_ExcSK_te); + assign_map.emplace("ExcSK.ti", &assign_ExcSK_ti); + assign_map.emplace("ExcSK.tp", &assign_ExcSK_tp); + assign_map.emplace("ExcSK.tr", &assign_ExcSK_tr); + assign_map.emplace("ExcSK.uimax", &assign_ExcSK_uimax); + assign_map.emplace("ExcSK.uimin", &assign_ExcSK_uimin); + assign_map.emplace("ExcSK.urmax", &assign_ExcSK_urmax); + assign_map.emplace("ExcSK.urmin", &assign_ExcSK_urmin); + assign_map.emplace("ExcSK.vtmax", &assign_ExcSK_vtmax); + assign_map.emplace("ExcSK.vtmin", &assign_ExcSK_vtmin); + assign_map.emplace("ExcSK.yp", &assign_ExcSK_yp); } void ExcSK::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1052,38 +1084,38 @@ void ExcSK::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcSK.efdmax", &get_ExcSK_efdmax); - get_map.emplace("cim:ExcSK.efdmin", &get_ExcSK_efdmin); - get_map.emplace("cim:ExcSK.emax", &get_ExcSK_emax); - get_map.emplace("cim:ExcSK.emin", &get_ExcSK_emin); - get_map.emplace("cim:ExcSK.k", &get_ExcSK_k); - get_map.emplace("cim:ExcSK.k1", &get_ExcSK_k1); - get_map.emplace("cim:ExcSK.k2", &get_ExcSK_k2); - get_map.emplace("cim:ExcSK.kc", &get_ExcSK_kc); - get_map.emplace("cim:ExcSK.kce", &get_ExcSK_kce); - get_map.emplace("cim:ExcSK.kd", &get_ExcSK_kd); - get_map.emplace("cim:ExcSK.kgob", &get_ExcSK_kgob); - get_map.emplace("cim:ExcSK.kp", &get_ExcSK_kp); - get_map.emplace("cim:ExcSK.kqi", &get_ExcSK_kqi); - get_map.emplace("cim:ExcSK.kqob", &get_ExcSK_kqob); - get_map.emplace("cim:ExcSK.kqp", &get_ExcSK_kqp); - get_map.emplace("cim:ExcSK.nq", &get_ExcSK_nq); - get_map.emplace("cim:ExcSK.qconoff", &get_ExcSK_qconoff); - get_map.emplace("cim:ExcSK.qz", &get_ExcSK_qz); - get_map.emplace("cim:ExcSK.remote", &get_ExcSK_remote); - get_map.emplace("cim:ExcSK.sbase", &get_ExcSK_sbase); - get_map.emplace("cim:ExcSK.tc", &get_ExcSK_tc); - get_map.emplace("cim:ExcSK.te", &get_ExcSK_te); - get_map.emplace("cim:ExcSK.ti", &get_ExcSK_ti); - get_map.emplace("cim:ExcSK.tp", &get_ExcSK_tp); - get_map.emplace("cim:ExcSK.tr", &get_ExcSK_tr); - get_map.emplace("cim:ExcSK.uimax", &get_ExcSK_uimax); - get_map.emplace("cim:ExcSK.uimin", &get_ExcSK_uimin); - get_map.emplace("cim:ExcSK.urmax", &get_ExcSK_urmax); - get_map.emplace("cim:ExcSK.urmin", &get_ExcSK_urmin); - get_map.emplace("cim:ExcSK.vtmax", &get_ExcSK_vtmax); - get_map.emplace("cim:ExcSK.vtmin", &get_ExcSK_vtmin); - get_map.emplace("cim:ExcSK.yp", &get_ExcSK_yp); + get_map.emplace("ExcSK.efdmax", &get_ExcSK_efdmax); + get_map.emplace("ExcSK.efdmin", &get_ExcSK_efdmin); + get_map.emplace("ExcSK.emax", &get_ExcSK_emax); + get_map.emplace("ExcSK.emin", &get_ExcSK_emin); + get_map.emplace("ExcSK.k", &get_ExcSK_k); + get_map.emplace("ExcSK.k1", &get_ExcSK_k1); + get_map.emplace("ExcSK.k2", &get_ExcSK_k2); + get_map.emplace("ExcSK.kc", &get_ExcSK_kc); + get_map.emplace("ExcSK.kce", &get_ExcSK_kce); + get_map.emplace("ExcSK.kd", &get_ExcSK_kd); + get_map.emplace("ExcSK.kgob", &get_ExcSK_kgob); + get_map.emplace("ExcSK.kp", &get_ExcSK_kp); + get_map.emplace("ExcSK.kqi", &get_ExcSK_kqi); + get_map.emplace("ExcSK.kqob", &get_ExcSK_kqob); + get_map.emplace("ExcSK.kqp", &get_ExcSK_kqp); + get_map.emplace("ExcSK.nq", &get_ExcSK_nq); + get_map.emplace("ExcSK.qconoff", &get_ExcSK_qconoff); + get_map.emplace("ExcSK.qz", &get_ExcSK_qz); + get_map.emplace("ExcSK.remote", &get_ExcSK_remote); + get_map.emplace("ExcSK.sbase", &get_ExcSK_sbase); + get_map.emplace("ExcSK.tc", &get_ExcSK_tc); + get_map.emplace("ExcSK.te", &get_ExcSK_te); + get_map.emplace("ExcSK.ti", &get_ExcSK_ti); + get_map.emplace("ExcSK.tp", &get_ExcSK_tp); + get_map.emplace("ExcSK.tr", &get_ExcSK_tr); + get_map.emplace("ExcSK.uimax", &get_ExcSK_uimax); + get_map.emplace("ExcSK.uimin", &get_ExcSK_uimin); + get_map.emplace("ExcSK.urmax", &get_ExcSK_urmax); + get_map.emplace("ExcSK.urmin", &get_ExcSK_urmin); + get_map.emplace("ExcSK.vtmax", &get_ExcSK_vtmax); + get_map.emplace("ExcSK.vtmin", &get_ExcSK_vtmin); + get_map.emplace("ExcSK.yp", &get_ExcSK_yp); } void ExcSK::addClassGetFnsToMap(std::map& get_map) const @@ -1096,11 +1128,25 @@ void ExcSK::addEnumGetFnsToMap(std::map& get_map) con ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcSK::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcSK" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcSK::declare() { return BaseClassDefiner(ExcSK::addConstructToMap, ExcSK::addPrimitiveAssignFnsToMap, ExcSK::addClassAssignFnsToMap, ExcSK::debugName); } +std::map ExcSK::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcSK_factory() diff --git a/CGMES_3.0.0/ExcSK.hpp b/CGMES_3.0.0/ExcSK.hpp index 4a6b853d5..8d4392d15 100644 --- a/CGMES_3.0.0/ExcSK.hpp +++ b/CGMES_3.0.0/ExcSK.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -127,8 +128,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -136,7 +144,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcSK_factory(); diff --git a/CGMES_3.0.0/ExcST1A.cpp b/CGMES_3.0.0/ExcST1A.cpp index f96434060..ae64b29d6 100644 --- a/CGMES_3.0.0/ExcST1A.cpp +++ b/CGMES_3.0.0/ExcST1A.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST1A.ilr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.klr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.tb1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.tc1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST1A.xe", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST1A::ExcST1A() {} ExcST1A::~ExcST1A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST1A::getClassNamespaceUrl() const { - { "cim:ExcST1A.ilr", { CGMESProfile::DY, } }, - { "cim:ExcST1A.ka", { CGMESProfile::DY, } }, - { "cim:ExcST1A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST1A.kf", { CGMESProfile::DY, } }, - { "cim:ExcST1A.klr", { CGMESProfile::DY, } }, - { "cim:ExcST1A.ta", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tb1", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tc1", { CGMESProfile::DY, } }, - { "cim:ExcST1A.tf", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vamax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vamin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST1A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST1A.xe", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST1A::getPossibleProfilesForClass() const +const std::string& ExcST1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST1A::getPossibleProfilesForAttributes() const +const std::list& ExcST1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST1A_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* ExcST1A::debugString() const void ExcST1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST1A", &ExcST1A_factory); + factory_map.emplace("ExcST1A", &ExcST1A_factory); } void ExcST1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST1A.ilr", &assign_ExcST1A_ilr); - assign_map.emplace("cim:ExcST1A.ka", &assign_ExcST1A_ka); - assign_map.emplace("cim:ExcST1A.kc", &assign_ExcST1A_kc); - assign_map.emplace("cim:ExcST1A.kf", &assign_ExcST1A_kf); - assign_map.emplace("cim:ExcST1A.klr", &assign_ExcST1A_klr); - assign_map.emplace("cim:ExcST1A.ta", &assign_ExcST1A_ta); - assign_map.emplace("cim:ExcST1A.tb", &assign_ExcST1A_tb); - assign_map.emplace("cim:ExcST1A.tb1", &assign_ExcST1A_tb1); - assign_map.emplace("cim:ExcST1A.tc", &assign_ExcST1A_tc); - assign_map.emplace("cim:ExcST1A.tc1", &assign_ExcST1A_tc1); - assign_map.emplace("cim:ExcST1A.tf", &assign_ExcST1A_tf); - assign_map.emplace("cim:ExcST1A.vamax", &assign_ExcST1A_vamax); - assign_map.emplace("cim:ExcST1A.vamin", &assign_ExcST1A_vamin); - assign_map.emplace("cim:ExcST1A.vimax", &assign_ExcST1A_vimax); - assign_map.emplace("cim:ExcST1A.vimin", &assign_ExcST1A_vimin); - assign_map.emplace("cim:ExcST1A.vrmax", &assign_ExcST1A_vrmax); - assign_map.emplace("cim:ExcST1A.vrmin", &assign_ExcST1A_vrmin); - assign_map.emplace("cim:ExcST1A.xe", &assign_ExcST1A_xe); + assign_map.emplace("ExcST1A.ilr", &assign_ExcST1A_ilr); + assign_map.emplace("ExcST1A.ka", &assign_ExcST1A_ka); + assign_map.emplace("ExcST1A.kc", &assign_ExcST1A_kc); + assign_map.emplace("ExcST1A.kf", &assign_ExcST1A_kf); + assign_map.emplace("ExcST1A.klr", &assign_ExcST1A_klr); + assign_map.emplace("ExcST1A.ta", &assign_ExcST1A_ta); + assign_map.emplace("ExcST1A.tb", &assign_ExcST1A_tb); + assign_map.emplace("ExcST1A.tb1", &assign_ExcST1A_tb1); + assign_map.emplace("ExcST1A.tc", &assign_ExcST1A_tc); + assign_map.emplace("ExcST1A.tc1", &assign_ExcST1A_tc1); + assign_map.emplace("ExcST1A.tf", &assign_ExcST1A_tf); + assign_map.emplace("ExcST1A.vamax", &assign_ExcST1A_vamax); + assign_map.emplace("ExcST1A.vamin", &assign_ExcST1A_vamin); + assign_map.emplace("ExcST1A.vimax", &assign_ExcST1A_vimax); + assign_map.emplace("ExcST1A.vimin", &assign_ExcST1A_vimin); + assign_map.emplace("ExcST1A.vrmax", &assign_ExcST1A_vrmax); + assign_map.emplace("ExcST1A.vrmin", &assign_ExcST1A_vrmin); + assign_map.emplace("ExcST1A.xe", &assign_ExcST1A_xe); } void ExcST1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,24 +650,24 @@ void ExcST1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST1A.ilr", &get_ExcST1A_ilr); - get_map.emplace("cim:ExcST1A.ka", &get_ExcST1A_ka); - get_map.emplace("cim:ExcST1A.kc", &get_ExcST1A_kc); - get_map.emplace("cim:ExcST1A.kf", &get_ExcST1A_kf); - get_map.emplace("cim:ExcST1A.klr", &get_ExcST1A_klr); - get_map.emplace("cim:ExcST1A.ta", &get_ExcST1A_ta); - get_map.emplace("cim:ExcST1A.tb", &get_ExcST1A_tb); - get_map.emplace("cim:ExcST1A.tb1", &get_ExcST1A_tb1); - get_map.emplace("cim:ExcST1A.tc", &get_ExcST1A_tc); - get_map.emplace("cim:ExcST1A.tc1", &get_ExcST1A_tc1); - get_map.emplace("cim:ExcST1A.tf", &get_ExcST1A_tf); - get_map.emplace("cim:ExcST1A.vamax", &get_ExcST1A_vamax); - get_map.emplace("cim:ExcST1A.vamin", &get_ExcST1A_vamin); - get_map.emplace("cim:ExcST1A.vimax", &get_ExcST1A_vimax); - get_map.emplace("cim:ExcST1A.vimin", &get_ExcST1A_vimin); - get_map.emplace("cim:ExcST1A.vrmax", &get_ExcST1A_vrmax); - get_map.emplace("cim:ExcST1A.vrmin", &get_ExcST1A_vrmin); - get_map.emplace("cim:ExcST1A.xe", &get_ExcST1A_xe); + get_map.emplace("ExcST1A.ilr", &get_ExcST1A_ilr); + get_map.emplace("ExcST1A.ka", &get_ExcST1A_ka); + get_map.emplace("ExcST1A.kc", &get_ExcST1A_kc); + get_map.emplace("ExcST1A.kf", &get_ExcST1A_kf); + get_map.emplace("ExcST1A.klr", &get_ExcST1A_klr); + get_map.emplace("ExcST1A.ta", &get_ExcST1A_ta); + get_map.emplace("ExcST1A.tb", &get_ExcST1A_tb); + get_map.emplace("ExcST1A.tb1", &get_ExcST1A_tb1); + get_map.emplace("ExcST1A.tc", &get_ExcST1A_tc); + get_map.emplace("ExcST1A.tc1", &get_ExcST1A_tc1); + get_map.emplace("ExcST1A.tf", &get_ExcST1A_tf); + get_map.emplace("ExcST1A.vamax", &get_ExcST1A_vamax); + get_map.emplace("ExcST1A.vamin", &get_ExcST1A_vamin); + get_map.emplace("ExcST1A.vimax", &get_ExcST1A_vimax); + get_map.emplace("ExcST1A.vimin", &get_ExcST1A_vimin); + get_map.emplace("ExcST1A.vrmax", &get_ExcST1A_vrmax); + get_map.emplace("ExcST1A.vrmin", &get_ExcST1A_vrmin); + get_map.emplace("ExcST1A.xe", &get_ExcST1A_xe); } void ExcST1A::addClassGetFnsToMap(std::map& get_map) const @@ -648,11 +680,25 @@ void ExcST1A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST1A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST1A::declare() { return BaseClassDefiner(ExcST1A::addConstructToMap, ExcST1A::addPrimitiveAssignFnsToMap, ExcST1A::addClassAssignFnsToMap, ExcST1A::debugName); } +std::map ExcST1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST1A_factory() diff --git a/CGMES_3.0.0/ExcST1A.hpp b/CGMES_3.0.0/ExcST1A.hpp index 32b198e28..fa453da1a 100644 --- a/CGMES_3.0.0/ExcST1A.hpp +++ b/CGMES_3.0.0/ExcST1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST1A_factory(); diff --git a/CGMES_3.0.0/ExcST2A.cpp b/CGMES_3.0.0/ExcST2A.cpp index afa9e20ff..65a7e2bf7 100644 --- a/CGMES_3.0.0/ExcST2A.cpp +++ b/CGMES_3.0.0/ExcST2A.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST2A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST2A.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.uelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST2A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST2A::ExcST2A() {} ExcST2A::~ExcST2A() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST2A::getClassNamespaceUrl() const { - { "cim:ExcST2A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ka", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ke", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kf", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ki", { CGMESProfile::DY, } }, - { "cim:ExcST2A.kp", { CGMESProfile::DY, } }, - { "cim:ExcST2A.ta", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST2A.te", { CGMESProfile::DY, } }, - { "cim:ExcST2A.tf", { CGMESProfile::DY, } }, - { "cim:ExcST2A.uelin", { CGMESProfile::DY, } }, - { "cim:ExcST2A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST2A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST2A::getPossibleProfilesForClass() const +const std::string& ExcST2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST2A::getPossibleProfilesForAttributes() const +const std::list& ExcST2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST2A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* ExcST2A::debugString() const void ExcST2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST2A", &ExcST2A_factory); + factory_map.emplace("ExcST2A", &ExcST2A_factory); } void ExcST2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST2A.efdmax", &assign_ExcST2A_efdmax); - assign_map.emplace("cim:ExcST2A.ka", &assign_ExcST2A_ka); - assign_map.emplace("cim:ExcST2A.kc", &assign_ExcST2A_kc); - assign_map.emplace("cim:ExcST2A.ke", &assign_ExcST2A_ke); - assign_map.emplace("cim:ExcST2A.kf", &assign_ExcST2A_kf); - assign_map.emplace("cim:ExcST2A.ki", &assign_ExcST2A_ki); - assign_map.emplace("cim:ExcST2A.kp", &assign_ExcST2A_kp); - assign_map.emplace("cim:ExcST2A.ta", &assign_ExcST2A_ta); - assign_map.emplace("cim:ExcST2A.tb", &assign_ExcST2A_tb); - assign_map.emplace("cim:ExcST2A.tc", &assign_ExcST2A_tc); - assign_map.emplace("cim:ExcST2A.te", &assign_ExcST2A_te); - assign_map.emplace("cim:ExcST2A.tf", &assign_ExcST2A_tf); - assign_map.emplace("cim:ExcST2A.uelin", &assign_ExcST2A_uelin); - assign_map.emplace("cim:ExcST2A.vrmax", &assign_ExcST2A_vrmax); - assign_map.emplace("cim:ExcST2A.vrmin", &assign_ExcST2A_vrmin); + assign_map.emplace("ExcST2A.efdmax", &assign_ExcST2A_efdmax); + assign_map.emplace("ExcST2A.ka", &assign_ExcST2A_ka); + assign_map.emplace("ExcST2A.kc", &assign_ExcST2A_kc); + assign_map.emplace("ExcST2A.ke", &assign_ExcST2A_ke); + assign_map.emplace("ExcST2A.kf", &assign_ExcST2A_kf); + assign_map.emplace("ExcST2A.ki", &assign_ExcST2A_ki); + assign_map.emplace("ExcST2A.kp", &assign_ExcST2A_kp); + assign_map.emplace("ExcST2A.ta", &assign_ExcST2A_ta); + assign_map.emplace("ExcST2A.tb", &assign_ExcST2A_tb); + assign_map.emplace("ExcST2A.tc", &assign_ExcST2A_tc); + assign_map.emplace("ExcST2A.te", &assign_ExcST2A_te); + assign_map.emplace("ExcST2A.tf", &assign_ExcST2A_tf); + assign_map.emplace("ExcST2A.uelin", &assign_ExcST2A_uelin); + assign_map.emplace("ExcST2A.vrmax", &assign_ExcST2A_vrmax); + assign_map.emplace("ExcST2A.vrmin", &assign_ExcST2A_vrmin); } void ExcST2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void ExcST2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST2A.efdmax", &get_ExcST2A_efdmax); - get_map.emplace("cim:ExcST2A.ka", &get_ExcST2A_ka); - get_map.emplace("cim:ExcST2A.kc", &get_ExcST2A_kc); - get_map.emplace("cim:ExcST2A.ke", &get_ExcST2A_ke); - get_map.emplace("cim:ExcST2A.kf", &get_ExcST2A_kf); - get_map.emplace("cim:ExcST2A.ki", &get_ExcST2A_ki); - get_map.emplace("cim:ExcST2A.kp", &get_ExcST2A_kp); - get_map.emplace("cim:ExcST2A.ta", &get_ExcST2A_ta); - get_map.emplace("cim:ExcST2A.tb", &get_ExcST2A_tb); - get_map.emplace("cim:ExcST2A.tc", &get_ExcST2A_tc); - get_map.emplace("cim:ExcST2A.te", &get_ExcST2A_te); - get_map.emplace("cim:ExcST2A.tf", &get_ExcST2A_tf); - get_map.emplace("cim:ExcST2A.uelin", &get_ExcST2A_uelin); - get_map.emplace("cim:ExcST2A.vrmax", &get_ExcST2A_vrmax); - get_map.emplace("cim:ExcST2A.vrmin", &get_ExcST2A_vrmin); + get_map.emplace("ExcST2A.efdmax", &get_ExcST2A_efdmax); + get_map.emplace("ExcST2A.ka", &get_ExcST2A_ka); + get_map.emplace("ExcST2A.kc", &get_ExcST2A_kc); + get_map.emplace("ExcST2A.ke", &get_ExcST2A_ke); + get_map.emplace("ExcST2A.kf", &get_ExcST2A_kf); + get_map.emplace("ExcST2A.ki", &get_ExcST2A_ki); + get_map.emplace("ExcST2A.kp", &get_ExcST2A_kp); + get_map.emplace("ExcST2A.ta", &get_ExcST2A_ta); + get_map.emplace("ExcST2A.tb", &get_ExcST2A_tb); + get_map.emplace("ExcST2A.tc", &get_ExcST2A_tc); + get_map.emplace("ExcST2A.te", &get_ExcST2A_te); + get_map.emplace("ExcST2A.tf", &get_ExcST2A_tf); + get_map.emplace("ExcST2A.uelin", &get_ExcST2A_uelin); + get_map.emplace("ExcST2A.vrmax", &get_ExcST2A_vrmax); + get_map.emplace("ExcST2A.vrmin", &get_ExcST2A_vrmin); } void ExcST2A::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void ExcST2A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST2A::declare() { return BaseClassDefiner(ExcST2A::addConstructToMap, ExcST2A::addPrimitiveAssignFnsToMap, ExcST2A::addClassAssignFnsToMap, ExcST2A::debugName); } +std::map ExcST2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST2A_factory() diff --git a/CGMES_3.0.0/ExcST2A.hpp b/CGMES_3.0.0/ExcST2A.hpp index 7492b5d9d..3986a6af8 100644 --- a/CGMES_3.0.0/ExcST2A.hpp +++ b/CGMES_3.0.0/ExcST2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -75,8 +76,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -84,7 +92,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST2A_factory(); diff --git a/CGMES_3.0.0/ExcST3A.cpp b/CGMES_3.0.0/ExcST3A.cpp index e31c2b37c..c5bf14188 100644 --- a/CGMES_3.0.0/ExcST3A.cpp +++ b/CGMES_3.0.0/ExcST3A.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST3A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST3A.efdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.kj", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.km", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.ks1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.thetap", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.tm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.vbmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.vgmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST3A.xl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST3A::ExcST3A() {} ExcST3A::~ExcST3A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST3A.efdmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kc", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kg", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ki", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kj", { CGMESProfile::DY, } }, - { "cim:ExcST3A.km", { CGMESProfile::DY, } }, - { "cim:ExcST3A.kp", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ks", { CGMESProfile::DY, } }, - { "cim:ExcST3A.ks1", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tb", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tc", { CGMESProfile::DY, } }, - { "cim:ExcST3A.thetap", { CGMESProfile::DY, } }, - { "cim:ExcST3A.tm", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST3A.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST3A.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcST3A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST3A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST3A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST3A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST3A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST3A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST3A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST3A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST3A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST3A_efdmax(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -646,31 +678,31 @@ const char* ExcST3A::debugString() const void ExcST3A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST3A", &ExcST3A_factory); + factory_map.emplace("ExcST3A", &ExcST3A_factory); } void ExcST3A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST3A.efdmax", &assign_ExcST3A_efdmax); - assign_map.emplace("cim:ExcST3A.kc", &assign_ExcST3A_kc); - assign_map.emplace("cim:ExcST3A.kg", &assign_ExcST3A_kg); - assign_map.emplace("cim:ExcST3A.ki", &assign_ExcST3A_ki); - assign_map.emplace("cim:ExcST3A.kj", &assign_ExcST3A_kj); - assign_map.emplace("cim:ExcST3A.km", &assign_ExcST3A_km); - assign_map.emplace("cim:ExcST3A.kp", &assign_ExcST3A_kp); - assign_map.emplace("cim:ExcST3A.ks", &assign_ExcST3A_ks); - assign_map.emplace("cim:ExcST3A.ks1", &assign_ExcST3A_ks1); - assign_map.emplace("cim:ExcST3A.tb", &assign_ExcST3A_tb); - assign_map.emplace("cim:ExcST3A.tc", &assign_ExcST3A_tc); - assign_map.emplace("cim:ExcST3A.thetap", &assign_ExcST3A_thetap); - assign_map.emplace("cim:ExcST3A.tm", &assign_ExcST3A_tm); - assign_map.emplace("cim:ExcST3A.vbmax", &assign_ExcST3A_vbmax); - assign_map.emplace("cim:ExcST3A.vgmax", &assign_ExcST3A_vgmax); - assign_map.emplace("cim:ExcST3A.vimax", &assign_ExcST3A_vimax); - assign_map.emplace("cim:ExcST3A.vimin", &assign_ExcST3A_vimin); - assign_map.emplace("cim:ExcST3A.vrmax", &assign_ExcST3A_vrmax); - assign_map.emplace("cim:ExcST3A.vrmin", &assign_ExcST3A_vrmin); - assign_map.emplace("cim:ExcST3A.xl", &assign_ExcST3A_xl); + assign_map.emplace("ExcST3A.efdmax", &assign_ExcST3A_efdmax); + assign_map.emplace("ExcST3A.kc", &assign_ExcST3A_kc); + assign_map.emplace("ExcST3A.kg", &assign_ExcST3A_kg); + assign_map.emplace("ExcST3A.ki", &assign_ExcST3A_ki); + assign_map.emplace("ExcST3A.kj", &assign_ExcST3A_kj); + assign_map.emplace("ExcST3A.km", &assign_ExcST3A_km); + assign_map.emplace("ExcST3A.kp", &assign_ExcST3A_kp); + assign_map.emplace("ExcST3A.ks", &assign_ExcST3A_ks); + assign_map.emplace("ExcST3A.ks1", &assign_ExcST3A_ks1); + assign_map.emplace("ExcST3A.tb", &assign_ExcST3A_tb); + assign_map.emplace("ExcST3A.tc", &assign_ExcST3A_tc); + assign_map.emplace("ExcST3A.thetap", &assign_ExcST3A_thetap); + assign_map.emplace("ExcST3A.tm", &assign_ExcST3A_tm); + assign_map.emplace("ExcST3A.vbmax", &assign_ExcST3A_vbmax); + assign_map.emplace("ExcST3A.vgmax", &assign_ExcST3A_vgmax); + assign_map.emplace("ExcST3A.vimax", &assign_ExcST3A_vimax); + assign_map.emplace("ExcST3A.vimin", &assign_ExcST3A_vimin); + assign_map.emplace("ExcST3A.vrmax", &assign_ExcST3A_vrmax); + assign_map.emplace("ExcST3A.vrmin", &assign_ExcST3A_vrmin); + assign_map.emplace("ExcST3A.xl", &assign_ExcST3A_xl); } void ExcST3A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -680,26 +712,26 @@ void ExcST3A::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST3A.efdmax", &get_ExcST3A_efdmax); - get_map.emplace("cim:ExcST3A.kc", &get_ExcST3A_kc); - get_map.emplace("cim:ExcST3A.kg", &get_ExcST3A_kg); - get_map.emplace("cim:ExcST3A.ki", &get_ExcST3A_ki); - get_map.emplace("cim:ExcST3A.kj", &get_ExcST3A_kj); - get_map.emplace("cim:ExcST3A.km", &get_ExcST3A_km); - get_map.emplace("cim:ExcST3A.kp", &get_ExcST3A_kp); - get_map.emplace("cim:ExcST3A.ks", &get_ExcST3A_ks); - get_map.emplace("cim:ExcST3A.ks1", &get_ExcST3A_ks1); - get_map.emplace("cim:ExcST3A.tb", &get_ExcST3A_tb); - get_map.emplace("cim:ExcST3A.tc", &get_ExcST3A_tc); - get_map.emplace("cim:ExcST3A.thetap", &get_ExcST3A_thetap); - get_map.emplace("cim:ExcST3A.tm", &get_ExcST3A_tm); - get_map.emplace("cim:ExcST3A.vbmax", &get_ExcST3A_vbmax); - get_map.emplace("cim:ExcST3A.vgmax", &get_ExcST3A_vgmax); - get_map.emplace("cim:ExcST3A.vimax", &get_ExcST3A_vimax); - get_map.emplace("cim:ExcST3A.vimin", &get_ExcST3A_vimin); - get_map.emplace("cim:ExcST3A.vrmax", &get_ExcST3A_vrmax); - get_map.emplace("cim:ExcST3A.vrmin", &get_ExcST3A_vrmin); - get_map.emplace("cim:ExcST3A.xl", &get_ExcST3A_xl); + get_map.emplace("ExcST3A.efdmax", &get_ExcST3A_efdmax); + get_map.emplace("ExcST3A.kc", &get_ExcST3A_kc); + get_map.emplace("ExcST3A.kg", &get_ExcST3A_kg); + get_map.emplace("ExcST3A.ki", &get_ExcST3A_ki); + get_map.emplace("ExcST3A.kj", &get_ExcST3A_kj); + get_map.emplace("ExcST3A.km", &get_ExcST3A_km); + get_map.emplace("ExcST3A.kp", &get_ExcST3A_kp); + get_map.emplace("ExcST3A.ks", &get_ExcST3A_ks); + get_map.emplace("ExcST3A.ks1", &get_ExcST3A_ks1); + get_map.emplace("ExcST3A.tb", &get_ExcST3A_tb); + get_map.emplace("ExcST3A.tc", &get_ExcST3A_tc); + get_map.emplace("ExcST3A.thetap", &get_ExcST3A_thetap); + get_map.emplace("ExcST3A.tm", &get_ExcST3A_tm); + get_map.emplace("ExcST3A.vbmax", &get_ExcST3A_vbmax); + get_map.emplace("ExcST3A.vgmax", &get_ExcST3A_vgmax); + get_map.emplace("ExcST3A.vimax", &get_ExcST3A_vimax); + get_map.emplace("ExcST3A.vimin", &get_ExcST3A_vimin); + get_map.emplace("ExcST3A.vrmax", &get_ExcST3A_vrmax); + get_map.emplace("ExcST3A.vrmin", &get_ExcST3A_vrmin); + get_map.emplace("ExcST3A.xl", &get_ExcST3A_xl); } void ExcST3A::addClassGetFnsToMap(std::map& get_map) const @@ -712,11 +744,25 @@ void ExcST3A::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST3A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST3A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST3A::declare() { return BaseClassDefiner(ExcST3A::addConstructToMap, ExcST3A::addPrimitiveAssignFnsToMap, ExcST3A::addClassAssignFnsToMap, ExcST3A::debugName); } +std::map ExcST3A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST3A_factory() diff --git a/CGMES_3.0.0/ExcST3A.hpp b/CGMES_3.0.0/ExcST3A.hpp index 85f5055f1..41ad191ab 100644 --- a/CGMES_3.0.0/ExcST3A.hpp +++ b/CGMES_3.0.0/ExcST3A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -90,8 +91,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -99,7 +107,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST3A_factory(); diff --git a/CGMES_3.0.0/ExcST4B.cpp b/CGMES_3.0.0/ExcST4B.cpp index b09570552..f10bc070e 100644 --- a/CGMES_3.0.0/ExcST4B.cpp +++ b/CGMES_3.0.0/ExcST4B.cpp @@ -11,50 +11,82 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST4B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST4B.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.kim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.kir", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.kpm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.kpr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.lvgate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.thetap", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.uel", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.vbmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.vgmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.vmmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.vmmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST4B.xl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST4B::ExcST4B() {} ExcST4B::~ExcST4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST4B.kc", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kg", { CGMESProfile::DY, } }, - { "cim:ExcST4B.ki", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kim", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kir", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kp", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kpm", { CGMESProfile::DY, } }, - { "cim:ExcST4B.kpr", { CGMESProfile::DY, } }, - { "cim:ExcST4B.lvgate", { CGMESProfile::DY, } }, - { "cim:ExcST4B.ta", { CGMESProfile::DY, } }, - { "cim:ExcST4B.thetap", { CGMESProfile::DY, } }, - { "cim:ExcST4B.uel", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vbmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vgmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vmmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vmmin", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST4B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST4B.xl", { CGMESProfile::DY, } }, -}; - -std::list -ExcST4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST4B_kc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -616,30 +648,30 @@ const char* ExcST4B::debugString() const void ExcST4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST4B", &ExcST4B_factory); + factory_map.emplace("ExcST4B", &ExcST4B_factory); } void ExcST4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST4B.kc", &assign_ExcST4B_kc); - assign_map.emplace("cim:ExcST4B.kg", &assign_ExcST4B_kg); - assign_map.emplace("cim:ExcST4B.ki", &assign_ExcST4B_ki); - assign_map.emplace("cim:ExcST4B.kim", &assign_ExcST4B_kim); - assign_map.emplace("cim:ExcST4B.kir", &assign_ExcST4B_kir); - assign_map.emplace("cim:ExcST4B.kp", &assign_ExcST4B_kp); - assign_map.emplace("cim:ExcST4B.kpm", &assign_ExcST4B_kpm); - assign_map.emplace("cim:ExcST4B.kpr", &assign_ExcST4B_kpr); - assign_map.emplace("cim:ExcST4B.lvgate", &assign_ExcST4B_lvgate); - assign_map.emplace("cim:ExcST4B.ta", &assign_ExcST4B_ta); - assign_map.emplace("cim:ExcST4B.thetap", &assign_ExcST4B_thetap); - assign_map.emplace("cim:ExcST4B.uel", &assign_ExcST4B_uel); - assign_map.emplace("cim:ExcST4B.vbmax", &assign_ExcST4B_vbmax); - assign_map.emplace("cim:ExcST4B.vgmax", &assign_ExcST4B_vgmax); - assign_map.emplace("cim:ExcST4B.vmmax", &assign_ExcST4B_vmmax); - assign_map.emplace("cim:ExcST4B.vmmin", &assign_ExcST4B_vmmin); - assign_map.emplace("cim:ExcST4B.vrmax", &assign_ExcST4B_vrmax); - assign_map.emplace("cim:ExcST4B.vrmin", &assign_ExcST4B_vrmin); - assign_map.emplace("cim:ExcST4B.xl", &assign_ExcST4B_xl); + assign_map.emplace("ExcST4B.kc", &assign_ExcST4B_kc); + assign_map.emplace("ExcST4B.kg", &assign_ExcST4B_kg); + assign_map.emplace("ExcST4B.ki", &assign_ExcST4B_ki); + assign_map.emplace("ExcST4B.kim", &assign_ExcST4B_kim); + assign_map.emplace("ExcST4B.kir", &assign_ExcST4B_kir); + assign_map.emplace("ExcST4B.kp", &assign_ExcST4B_kp); + assign_map.emplace("ExcST4B.kpm", &assign_ExcST4B_kpm); + assign_map.emplace("ExcST4B.kpr", &assign_ExcST4B_kpr); + assign_map.emplace("ExcST4B.lvgate", &assign_ExcST4B_lvgate); + assign_map.emplace("ExcST4B.ta", &assign_ExcST4B_ta); + assign_map.emplace("ExcST4B.thetap", &assign_ExcST4B_thetap); + assign_map.emplace("ExcST4B.uel", &assign_ExcST4B_uel); + assign_map.emplace("ExcST4B.vbmax", &assign_ExcST4B_vbmax); + assign_map.emplace("ExcST4B.vgmax", &assign_ExcST4B_vgmax); + assign_map.emplace("ExcST4B.vmmax", &assign_ExcST4B_vmmax); + assign_map.emplace("ExcST4B.vmmin", &assign_ExcST4B_vmmin); + assign_map.emplace("ExcST4B.vrmax", &assign_ExcST4B_vrmax); + assign_map.emplace("ExcST4B.vrmin", &assign_ExcST4B_vrmin); + assign_map.emplace("ExcST4B.xl", &assign_ExcST4B_xl); } void ExcST4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -649,25 +681,25 @@ void ExcST4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST4B.kc", &get_ExcST4B_kc); - get_map.emplace("cim:ExcST4B.kg", &get_ExcST4B_kg); - get_map.emplace("cim:ExcST4B.ki", &get_ExcST4B_ki); - get_map.emplace("cim:ExcST4B.kim", &get_ExcST4B_kim); - get_map.emplace("cim:ExcST4B.kir", &get_ExcST4B_kir); - get_map.emplace("cim:ExcST4B.kp", &get_ExcST4B_kp); - get_map.emplace("cim:ExcST4B.kpm", &get_ExcST4B_kpm); - get_map.emplace("cim:ExcST4B.kpr", &get_ExcST4B_kpr); - get_map.emplace("cim:ExcST4B.lvgate", &get_ExcST4B_lvgate); - get_map.emplace("cim:ExcST4B.ta", &get_ExcST4B_ta); - get_map.emplace("cim:ExcST4B.thetap", &get_ExcST4B_thetap); - get_map.emplace("cim:ExcST4B.uel", &get_ExcST4B_uel); - get_map.emplace("cim:ExcST4B.vbmax", &get_ExcST4B_vbmax); - get_map.emplace("cim:ExcST4B.vgmax", &get_ExcST4B_vgmax); - get_map.emplace("cim:ExcST4B.vmmax", &get_ExcST4B_vmmax); - get_map.emplace("cim:ExcST4B.vmmin", &get_ExcST4B_vmmin); - get_map.emplace("cim:ExcST4B.vrmax", &get_ExcST4B_vrmax); - get_map.emplace("cim:ExcST4B.vrmin", &get_ExcST4B_vrmin); - get_map.emplace("cim:ExcST4B.xl", &get_ExcST4B_xl); + get_map.emplace("ExcST4B.kc", &get_ExcST4B_kc); + get_map.emplace("ExcST4B.kg", &get_ExcST4B_kg); + get_map.emplace("ExcST4B.ki", &get_ExcST4B_ki); + get_map.emplace("ExcST4B.kim", &get_ExcST4B_kim); + get_map.emplace("ExcST4B.kir", &get_ExcST4B_kir); + get_map.emplace("ExcST4B.kp", &get_ExcST4B_kp); + get_map.emplace("ExcST4B.kpm", &get_ExcST4B_kpm); + get_map.emplace("ExcST4B.kpr", &get_ExcST4B_kpr); + get_map.emplace("ExcST4B.lvgate", &get_ExcST4B_lvgate); + get_map.emplace("ExcST4B.ta", &get_ExcST4B_ta); + get_map.emplace("ExcST4B.thetap", &get_ExcST4B_thetap); + get_map.emplace("ExcST4B.uel", &get_ExcST4B_uel); + get_map.emplace("ExcST4B.vbmax", &get_ExcST4B_vbmax); + get_map.emplace("ExcST4B.vgmax", &get_ExcST4B_vgmax); + get_map.emplace("ExcST4B.vmmax", &get_ExcST4B_vmmax); + get_map.emplace("ExcST4B.vmmin", &get_ExcST4B_vmmin); + get_map.emplace("ExcST4B.vrmax", &get_ExcST4B_vrmax); + get_map.emplace("ExcST4B.vrmin", &get_ExcST4B_vrmin); + get_map.emplace("ExcST4B.xl", &get_ExcST4B_xl); } void ExcST4B::addClassGetFnsToMap(std::map& get_map) const @@ -680,11 +712,25 @@ void ExcST4B::addEnumGetFnsToMap(std::map& get_map) c ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); } +bool ExcST4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ExcST4B::declare() { return BaseClassDefiner(ExcST4B::addConstructToMap, ExcST4B::addPrimitiveAssignFnsToMap, ExcST4B::addClassAssignFnsToMap, ExcST4B::debugName); } +std::map ExcST4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST4B_factory() diff --git a/CGMES_3.0.0/ExcST4B.hpp b/CGMES_3.0.0/ExcST4B.hpp index 4fd051543..88a74f531 100644 --- a/CGMES_3.0.0/ExcST4B.hpp +++ b/CGMES_3.0.0/ExcST4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -88,8 +89,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -97,7 +105,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST4B_factory(); diff --git a/CGMES_3.0.0/ExcST6B.cpp b/CGMES_3.0.0/ExcST6B.cpp index 9942e0b7a..e1fc62186 100644 --- a/CGMES_3.0.0/ExcST6B.cpp +++ b/CGMES_3.0.0/ExcST6B.cpp @@ -11,54 +11,86 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST6B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST6B.ilr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.kcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.kff", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.kia", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.klr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.km", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.kpa", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.kvd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.oelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.ts", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.tvd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.vamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.vamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.vilim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.vmult", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST6B.xc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST6B::ExcST6B() {} ExcST6B::~ExcST6B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExcST6B.ilr", { CGMESProfile::DY, } }, - { "cim:ExcST6B.k1", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kcl", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kff", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kg", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kia", { CGMESProfile::DY, } }, - { "cim:ExcST6B.klr", { CGMESProfile::DY, } }, - { "cim:ExcST6B.km", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcST6B.kvd", { CGMESProfile::DY, } }, - { "cim:ExcST6B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.tg", { CGMESProfile::DY, } }, - { "cim:ExcST6B.ts", { CGMESProfile::DY, } }, - { "cim:ExcST6B.tvd", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vamax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vamin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vilim", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vimax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vimin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vmult", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST6B.vrmin", { CGMESProfile::DY, } }, - { "cim:ExcST6B.xc", { CGMESProfile::DY, } }, -}; - -std::list -ExcST6B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExcST6B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExcST6B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExcST6B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcST6B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExcST6B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST6B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST6B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST6B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST6B_ilr(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -736,34 +768,34 @@ const char* ExcST6B::debugString() const void ExcST6B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST6B", &ExcST6B_factory); + factory_map.emplace("ExcST6B", &ExcST6B_factory); } void ExcST6B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST6B.ilr", &assign_ExcST6B_ilr); - assign_map.emplace("cim:ExcST6B.k1", &assign_ExcST6B_k1); - assign_map.emplace("cim:ExcST6B.kcl", &assign_ExcST6B_kcl); - assign_map.emplace("cim:ExcST6B.kff", &assign_ExcST6B_kff); - assign_map.emplace("cim:ExcST6B.kg", &assign_ExcST6B_kg); - assign_map.emplace("cim:ExcST6B.kia", &assign_ExcST6B_kia); - assign_map.emplace("cim:ExcST6B.klr", &assign_ExcST6B_klr); - assign_map.emplace("cim:ExcST6B.km", &assign_ExcST6B_km); - assign_map.emplace("cim:ExcST6B.kpa", &assign_ExcST6B_kpa); - assign_map.emplace("cim:ExcST6B.kvd", &assign_ExcST6B_kvd); - assign_map.emplace("cim:ExcST6B.oelin", &assign_ExcST6B_oelin); - assign_map.emplace("cim:ExcST6B.tg", &assign_ExcST6B_tg); - assign_map.emplace("cim:ExcST6B.ts", &assign_ExcST6B_ts); - assign_map.emplace("cim:ExcST6B.tvd", &assign_ExcST6B_tvd); - assign_map.emplace("cim:ExcST6B.vamax", &assign_ExcST6B_vamax); - assign_map.emplace("cim:ExcST6B.vamin", &assign_ExcST6B_vamin); - assign_map.emplace("cim:ExcST6B.vilim", &assign_ExcST6B_vilim); - assign_map.emplace("cim:ExcST6B.vimax", &assign_ExcST6B_vimax); - assign_map.emplace("cim:ExcST6B.vimin", &assign_ExcST6B_vimin); - assign_map.emplace("cim:ExcST6B.vmult", &assign_ExcST6B_vmult); - assign_map.emplace("cim:ExcST6B.vrmax", &assign_ExcST6B_vrmax); - assign_map.emplace("cim:ExcST6B.vrmin", &assign_ExcST6B_vrmin); - assign_map.emplace("cim:ExcST6B.xc", &assign_ExcST6B_xc); + assign_map.emplace("ExcST6B.ilr", &assign_ExcST6B_ilr); + assign_map.emplace("ExcST6B.k1", &assign_ExcST6B_k1); + assign_map.emplace("ExcST6B.kcl", &assign_ExcST6B_kcl); + assign_map.emplace("ExcST6B.kff", &assign_ExcST6B_kff); + assign_map.emplace("ExcST6B.kg", &assign_ExcST6B_kg); + assign_map.emplace("ExcST6B.kia", &assign_ExcST6B_kia); + assign_map.emplace("ExcST6B.klr", &assign_ExcST6B_klr); + assign_map.emplace("ExcST6B.km", &assign_ExcST6B_km); + assign_map.emplace("ExcST6B.kpa", &assign_ExcST6B_kpa); + assign_map.emplace("ExcST6B.kvd", &assign_ExcST6B_kvd); + assign_map.emplace("ExcST6B.oelin", &assign_ExcST6B_oelin); + assign_map.emplace("ExcST6B.tg", &assign_ExcST6B_tg); + assign_map.emplace("ExcST6B.ts", &assign_ExcST6B_ts); + assign_map.emplace("ExcST6B.tvd", &assign_ExcST6B_tvd); + assign_map.emplace("ExcST6B.vamax", &assign_ExcST6B_vamax); + assign_map.emplace("ExcST6B.vamin", &assign_ExcST6B_vamin); + assign_map.emplace("ExcST6B.vilim", &assign_ExcST6B_vilim); + assign_map.emplace("ExcST6B.vimax", &assign_ExcST6B_vimax); + assign_map.emplace("ExcST6B.vimin", &assign_ExcST6B_vimin); + assign_map.emplace("ExcST6B.vmult", &assign_ExcST6B_vmult); + assign_map.emplace("ExcST6B.vrmax", &assign_ExcST6B_vrmax); + assign_map.emplace("ExcST6B.vrmin", &assign_ExcST6B_vrmin); + assign_map.emplace("ExcST6B.xc", &assign_ExcST6B_xc); } void ExcST6B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -773,28 +805,28 @@ void ExcST6B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST6B.ilr", &get_ExcST6B_ilr); - get_map.emplace("cim:ExcST6B.k1", &get_ExcST6B_k1); - get_map.emplace("cim:ExcST6B.kcl", &get_ExcST6B_kcl); - get_map.emplace("cim:ExcST6B.kff", &get_ExcST6B_kff); - get_map.emplace("cim:ExcST6B.kg", &get_ExcST6B_kg); - get_map.emplace("cim:ExcST6B.kia", &get_ExcST6B_kia); - get_map.emplace("cim:ExcST6B.klr", &get_ExcST6B_klr); - get_map.emplace("cim:ExcST6B.km", &get_ExcST6B_km); - get_map.emplace("cim:ExcST6B.kpa", &get_ExcST6B_kpa); - get_map.emplace("cim:ExcST6B.kvd", &get_ExcST6B_kvd); - get_map.emplace("cim:ExcST6B.tg", &get_ExcST6B_tg); - get_map.emplace("cim:ExcST6B.ts", &get_ExcST6B_ts); - get_map.emplace("cim:ExcST6B.tvd", &get_ExcST6B_tvd); - get_map.emplace("cim:ExcST6B.vamax", &get_ExcST6B_vamax); - get_map.emplace("cim:ExcST6B.vamin", &get_ExcST6B_vamin); - get_map.emplace("cim:ExcST6B.vilim", &get_ExcST6B_vilim); - get_map.emplace("cim:ExcST6B.vimax", &get_ExcST6B_vimax); - get_map.emplace("cim:ExcST6B.vimin", &get_ExcST6B_vimin); - get_map.emplace("cim:ExcST6B.vmult", &get_ExcST6B_vmult); - get_map.emplace("cim:ExcST6B.vrmax", &get_ExcST6B_vrmax); - get_map.emplace("cim:ExcST6B.vrmin", &get_ExcST6B_vrmin); - get_map.emplace("cim:ExcST6B.xc", &get_ExcST6B_xc); + get_map.emplace("ExcST6B.ilr", &get_ExcST6B_ilr); + get_map.emplace("ExcST6B.k1", &get_ExcST6B_k1); + get_map.emplace("ExcST6B.kcl", &get_ExcST6B_kcl); + get_map.emplace("ExcST6B.kff", &get_ExcST6B_kff); + get_map.emplace("ExcST6B.kg", &get_ExcST6B_kg); + get_map.emplace("ExcST6B.kia", &get_ExcST6B_kia); + get_map.emplace("ExcST6B.klr", &get_ExcST6B_klr); + get_map.emplace("ExcST6B.km", &get_ExcST6B_km); + get_map.emplace("ExcST6B.kpa", &get_ExcST6B_kpa); + get_map.emplace("ExcST6B.kvd", &get_ExcST6B_kvd); + get_map.emplace("ExcST6B.tg", &get_ExcST6B_tg); + get_map.emplace("ExcST6B.ts", &get_ExcST6B_ts); + get_map.emplace("ExcST6B.tvd", &get_ExcST6B_tvd); + get_map.emplace("ExcST6B.vamax", &get_ExcST6B_vamax); + get_map.emplace("ExcST6B.vamin", &get_ExcST6B_vamin); + get_map.emplace("ExcST6B.vilim", &get_ExcST6B_vilim); + get_map.emplace("ExcST6B.vimax", &get_ExcST6B_vimax); + get_map.emplace("ExcST6B.vimin", &get_ExcST6B_vimin); + get_map.emplace("ExcST6B.vmult", &get_ExcST6B_vmult); + get_map.emplace("ExcST6B.vrmax", &get_ExcST6B_vrmax); + get_map.emplace("ExcST6B.vrmin", &get_ExcST6B_vrmin); + get_map.emplace("ExcST6B.xc", &get_ExcST6B_xc); } void ExcST6B::addClassGetFnsToMap(std::map& get_map) const @@ -805,7 +837,13 @@ void ExcST6B::addClassGetFnsToMap(std::map& get void ExcST6B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcST6B.oelin", &get_ExcST6B_oelin); + get_map.emplace("ExcST6B.oelin", &get_ExcST6B_oelin); +} + +bool ExcST6B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST6B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcST6B::declare() @@ -813,6 +851,14 @@ const BaseClassDefiner ExcST6B::declare() return BaseClassDefiner(ExcST6B::addConstructToMap, ExcST6B::addPrimitiveAssignFnsToMap, ExcST6B::addClassAssignFnsToMap, ExcST6B::debugName); } +std::map ExcST6B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST6B_factory() diff --git a/CGMES_3.0.0/ExcST6B.hpp b/CGMES_3.0.0/ExcST6B.hpp index e86c4a0cf..3e1aa3970 100644 --- a/CGMES_3.0.0/ExcST6B.hpp +++ b/CGMES_3.0.0/ExcST6B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "ExcST6BOELselectorKind.hpp" #include "PU.hpp" @@ -100,8 +101,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -109,7 +117,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST6B_factory(); diff --git a/CGMES_3.0.0/ExcST7B.cpp b/CGMES_3.0.0/ExcST7B.cpp index b353d3afa..f16236679 100644 --- a/CGMES_3.0.0/ExcST7B.cpp +++ b/CGMES_3.0.0/ExcST7B.cpp @@ -11,47 +11,79 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcST7B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcST7B.kh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.kia", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.kl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.kpa", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.oelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.tia", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.ts", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.uelin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.vmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.vmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcST7B.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcST7B::ExcST7B() {} ExcST7B::~ExcST7B() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcST7B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcST7B::getClassNamespaceUrl() const { - { "cim:ExcST7B.kh", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kia", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kl", { CGMESProfile::DY, } }, - { "cim:ExcST7B.kpa", { CGMESProfile::DY, } }, - { "cim:ExcST7B.oelin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tb", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tc", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tf", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tg", { CGMESProfile::DY, } }, - { "cim:ExcST7B.tia", { CGMESProfile::DY, } }, - { "cim:ExcST7B.ts", { CGMESProfile::DY, } }, - { "cim:ExcST7B.uelin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vmax", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vmin", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vrmax", { CGMESProfile::DY, } }, - { "cim:ExcST7B.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcST7B::getPossibleProfilesForClass() const +const std::string& ExcST7B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcST7B::getPossibleProfilesForAttributes() const +const std::list& ExcST7B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcST7B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcST7B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcST7B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcST7B_kh(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -526,27 +558,27 @@ const char* ExcST7B::debugString() const void ExcST7B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcST7B", &ExcST7B_factory); + factory_map.emplace("ExcST7B", &ExcST7B_factory); } void ExcST7B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcST7B.kh", &assign_ExcST7B_kh); - assign_map.emplace("cim:ExcST7B.kia", &assign_ExcST7B_kia); - assign_map.emplace("cim:ExcST7B.kl", &assign_ExcST7B_kl); - assign_map.emplace("cim:ExcST7B.kpa", &assign_ExcST7B_kpa); - assign_map.emplace("cim:ExcST7B.oelin", &assign_ExcST7B_oelin); - assign_map.emplace("cim:ExcST7B.tb", &assign_ExcST7B_tb); - assign_map.emplace("cim:ExcST7B.tc", &assign_ExcST7B_tc); - assign_map.emplace("cim:ExcST7B.tf", &assign_ExcST7B_tf); - assign_map.emplace("cim:ExcST7B.tg", &assign_ExcST7B_tg); - assign_map.emplace("cim:ExcST7B.tia", &assign_ExcST7B_tia); - assign_map.emplace("cim:ExcST7B.ts", &assign_ExcST7B_ts); - assign_map.emplace("cim:ExcST7B.uelin", &assign_ExcST7B_uelin); - assign_map.emplace("cim:ExcST7B.vmax", &assign_ExcST7B_vmax); - assign_map.emplace("cim:ExcST7B.vmin", &assign_ExcST7B_vmin); - assign_map.emplace("cim:ExcST7B.vrmax", &assign_ExcST7B_vrmax); - assign_map.emplace("cim:ExcST7B.vrmin", &assign_ExcST7B_vrmin); + assign_map.emplace("ExcST7B.kh", &assign_ExcST7B_kh); + assign_map.emplace("ExcST7B.kia", &assign_ExcST7B_kia); + assign_map.emplace("ExcST7B.kl", &assign_ExcST7B_kl); + assign_map.emplace("ExcST7B.kpa", &assign_ExcST7B_kpa); + assign_map.emplace("ExcST7B.oelin", &assign_ExcST7B_oelin); + assign_map.emplace("ExcST7B.tb", &assign_ExcST7B_tb); + assign_map.emplace("ExcST7B.tc", &assign_ExcST7B_tc); + assign_map.emplace("ExcST7B.tf", &assign_ExcST7B_tf); + assign_map.emplace("ExcST7B.tg", &assign_ExcST7B_tg); + assign_map.emplace("ExcST7B.tia", &assign_ExcST7B_tia); + assign_map.emplace("ExcST7B.ts", &assign_ExcST7B_ts); + assign_map.emplace("ExcST7B.uelin", &assign_ExcST7B_uelin); + assign_map.emplace("ExcST7B.vmax", &assign_ExcST7B_vmax); + assign_map.emplace("ExcST7B.vmin", &assign_ExcST7B_vmin); + assign_map.emplace("ExcST7B.vrmax", &assign_ExcST7B_vrmax); + assign_map.emplace("ExcST7B.vrmin", &assign_ExcST7B_vrmin); } void ExcST7B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -556,20 +588,20 @@ void ExcST7B::addClassAssignFnsToMap(std::unordered_map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcST7B.kh", &get_ExcST7B_kh); - get_map.emplace("cim:ExcST7B.kia", &get_ExcST7B_kia); - get_map.emplace("cim:ExcST7B.kl", &get_ExcST7B_kl); - get_map.emplace("cim:ExcST7B.kpa", &get_ExcST7B_kpa); - get_map.emplace("cim:ExcST7B.tb", &get_ExcST7B_tb); - get_map.emplace("cim:ExcST7B.tc", &get_ExcST7B_tc); - get_map.emplace("cim:ExcST7B.tf", &get_ExcST7B_tf); - get_map.emplace("cim:ExcST7B.tg", &get_ExcST7B_tg); - get_map.emplace("cim:ExcST7B.tia", &get_ExcST7B_tia); - get_map.emplace("cim:ExcST7B.ts", &get_ExcST7B_ts); - get_map.emplace("cim:ExcST7B.vmax", &get_ExcST7B_vmax); - get_map.emplace("cim:ExcST7B.vmin", &get_ExcST7B_vmin); - get_map.emplace("cim:ExcST7B.vrmax", &get_ExcST7B_vrmax); - get_map.emplace("cim:ExcST7B.vrmin", &get_ExcST7B_vrmin); + get_map.emplace("ExcST7B.kh", &get_ExcST7B_kh); + get_map.emplace("ExcST7B.kia", &get_ExcST7B_kia); + get_map.emplace("ExcST7B.kl", &get_ExcST7B_kl); + get_map.emplace("ExcST7B.kpa", &get_ExcST7B_kpa); + get_map.emplace("ExcST7B.tb", &get_ExcST7B_tb); + get_map.emplace("ExcST7B.tc", &get_ExcST7B_tc); + get_map.emplace("ExcST7B.tf", &get_ExcST7B_tf); + get_map.emplace("ExcST7B.tg", &get_ExcST7B_tg); + get_map.emplace("ExcST7B.tia", &get_ExcST7B_tia); + get_map.emplace("ExcST7B.ts", &get_ExcST7B_ts); + get_map.emplace("ExcST7B.vmax", &get_ExcST7B_vmax); + get_map.emplace("ExcST7B.vmin", &get_ExcST7B_vmin); + get_map.emplace("ExcST7B.vrmax", &get_ExcST7B_vrmax); + get_map.emplace("ExcST7B.vrmin", &get_ExcST7B_vrmin); } void ExcST7B::addClassGetFnsToMap(std::map& get_map) const @@ -580,8 +612,14 @@ void ExcST7B::addClassGetFnsToMap(std::map& get void ExcST7B::addEnumGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:ExcST7B.oelin", &get_ExcST7B_oelin); - get_map.emplace("cim:ExcST7B.uelin", &get_ExcST7B_uelin); + get_map.emplace("ExcST7B.oelin", &get_ExcST7B_oelin); + get_map.emplace("ExcST7B.uelin", &get_ExcST7B_uelin); +} + +bool ExcST7B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ExcST7B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner ExcST7B::declare() @@ -589,6 +627,14 @@ const BaseClassDefiner ExcST7B::declare() return BaseClassDefiner(ExcST7B::addConstructToMap, ExcST7B::addPrimitiveAssignFnsToMap, ExcST7B::addClassAssignFnsToMap, ExcST7B::debugName); } +std::map ExcST7B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcST7B_factory() diff --git a/CGMES_3.0.0/ExcST7B.hpp b/CGMES_3.0.0/ExcST7B.hpp index f42235bd5..a56d20513 100644 --- a/CGMES_3.0.0/ExcST7B.hpp +++ b/CGMES_3.0.0/ExcST7B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ExcST7BOELselectorKind.hpp" #include "ExcST7BUELselectorKind.hpp" #include "PU.hpp" @@ -79,8 +80,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -88,7 +96,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcST7B_factory(); diff --git a/CGMES_3.0.0/ExcitationSystemDynamics.cpp b/CGMES_3.0.0/ExcitationSystemDynamics.cpp index 540af8c6a..ca7343595 100644 --- a/CGMES_3.0.0/ExcitationSystemDynamics.cpp +++ b/CGMES_3.0.0/ExcitationSystemDynamics.cpp @@ -19,39 +19,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcitationSystemDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.OverexcitationLimiterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PFVArControllerType2Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.PowerSystemStabilizerDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.UnderexcitationLimiterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcitationSystemDynamics.VoltageCompensatorDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcitationSystemDynamics::ExcitationSystemDynamics() : DiscontinuousExcitationControlDynamics(nullptr), OverexcitationLimiterDynamics(nullptr), PFVArControllerType1Dynamics(nullptr), PFVArControllerType2Dynamics(nullptr), PowerSystemStabilizerDynamics(nullptr), SynchronousMachineDynamics(nullptr), UnderexcitationLimiterDynamics(nullptr), VoltageCompensatorDynamics(nullptr) {} ExcitationSystemDynamics::~ExcitationSystemDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcitationSystemDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcitationSystemDynamics::getClassNamespaceUrl() const { - { "cim:ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.OverexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PFVArControllerType2Dynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.PowerSystemStabilizerDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.UnderexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemDynamics.VoltageCompensatorDynamics", { CGMESProfile::DY, } }, -}; - -std::list -ExcitationSystemDynamics::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExcitationSystemDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcitationSystemDynamics::getPossibleProfilesForAttributes() const +const std::list& ExcitationSystemDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcitationSystemDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcitationSystemDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcitationSystemDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscontinuousExcitationControlDynamics_ExcitationSystemDynamics(BaseClass*, BaseClass*); @@ -219,7 +251,7 @@ const char* ExcitationSystemDynamics::debugString() const void ExcitationSystemDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcitationSystemDynamics", &ExcitationSystemDynamics_factory); + factory_map.emplace("ExcitationSystemDynamics", &ExcitationSystemDynamics_factory); } void ExcitationSystemDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -228,14 +260,14 @@ void ExcitationSystemDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", &assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.OverexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PFVArControllerType1Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PFVArControllerType2Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.PowerSystemStabilizerDynamics", &assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.SynchronousMachineDynamics", &assign_ExcitationSystemDynamics_SynchronousMachineDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.UnderexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics); - assign_map.emplace("cim:ExcitationSystemDynamics.VoltageCompensatorDynamics", &assign_ExcitationSystemDynamics_VoltageCompensatorDynamics); + assign_map.emplace("ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", &assign_ExcitationSystemDynamics_DiscontinuousExcitationControlDynamics); + assign_map.emplace("ExcitationSystemDynamics.OverexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics); + assign_map.emplace("ExcitationSystemDynamics.PFVArControllerType1Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics); + assign_map.emplace("ExcitationSystemDynamics.PFVArControllerType2Dynamics", &assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics); + assign_map.emplace("ExcitationSystemDynamics.PowerSystemStabilizerDynamics", &assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics); + assign_map.emplace("ExcitationSystemDynamics.SynchronousMachineDynamics", &assign_ExcitationSystemDynamics_SynchronousMachineDynamics); + assign_map.emplace("ExcitationSystemDynamics.UnderexcitationLimiterDynamics", &assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics); + assign_map.emplace("ExcitationSystemDynamics.VoltageCompensatorDynamics", &assign_ExcitationSystemDynamics_VoltageCompensatorDynamics); } void ExcitationSystemDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -246,7 +278,7 @@ void ExcitationSystemDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ExcitationSystemDynamics.SynchronousMachineDynamics", &get_ExcitationSystemDynamics_SynchronousMachineDynamics); + get_map.emplace("ExcitationSystemDynamics.SynchronousMachineDynamics", &get_ExcitationSystemDynamics_SynchronousMachineDynamics); } void ExcitationSystemDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -254,11 +286,25 @@ void ExcitationSystemDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExcitationSystemDynamics::declare() { return BaseClassDefiner(ExcitationSystemDynamics::addConstructToMap, ExcitationSystemDynamics::addPrimitiveAssignFnsToMap, ExcitationSystemDynamics::addClassAssignFnsToMap, ExcitationSystemDynamics::debugName); } +std::map ExcitationSystemDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcitationSystemDynamics_factory() diff --git a/CGMES_3.0.0/ExcitationSystemDynamics.hpp b/CGMES_3.0.0/ExcitationSystemDynamics.hpp index ef6309966..33f555056 100644 --- a/CGMES_3.0.0/ExcitationSystemDynamics.hpp +++ b/CGMES_3.0.0/ExcitationSystemDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcitationSystemDynamics_factory(); diff --git a/CGMES_3.0.0/ExcitationSystemUserDefined.cpp b/CGMES_3.0.0/ExcitationSystemUserDefined.cpp index 362ef357e..ce1310a44 100644 --- a/CGMES_3.0.0/ExcitationSystemUserDefined.cpp +++ b/CGMES_3.0.0/ExcitationSystemUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExcitationSystemUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExcitationSystemUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ExcitationSystemUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ExcitationSystemUserDefined::ExcitationSystemUserDefined() {} ExcitationSystemUserDefined::~ExcitationSystemUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& ExcitationSystemUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ExcitationSystemUserDefined::getClassNamespaceUrl() const { - { "cim:ExcitationSystemUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:ExcitationSystemUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ExcitationSystemUserDefined::getPossibleProfilesForClass() const +const std::string& ExcitationSystemUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ExcitationSystemUserDefined::getPossibleProfilesForAttributes() const +const std::list& ExcitationSystemUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ExcitationSystemDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExcitationSystemUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExcitationSystemUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExcitationSystemUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* ExcitationSystemUserDefined::debugString() const void ExcitationSystemUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExcitationSystemUserDefined", &ExcitationSystemUserDefined_factory); + factory_map.emplace("ExcitationSystemUserDefined", &ExcitationSystemUserDefined_factory); } void ExcitationSystemUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemUserDefined.proprietary", &assign_ExcitationSystemUserDefined_proprietary); + assign_map.emplace("ExcitationSystemUserDefined.proprietary", &assign_ExcitationSystemUserDefined_proprietary); } void ExcitationSystemUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExcitationSystemUserDefined.ProprietaryParameterDynamics", &assign_ExcitationSystemUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("ExcitationSystemUserDefined.ProprietaryParameterDynamics", &assign_ExcitationSystemUserDefined_ProprietaryParameterDynamics); } void ExcitationSystemUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { ExcitationSystemDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExcitationSystemUserDefined.proprietary", &get_ExcitationSystemUserDefined_proprietary); + get_map.emplace("ExcitationSystemUserDefined.proprietary", &get_ExcitationSystemUserDefined_proprietary); } void ExcitationSystemUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void ExcitationSystemUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExcitationSystemUserDefined::declare() { return BaseClassDefiner(ExcitationSystemUserDefined::addConstructToMap, ExcitationSystemUserDefined::addPrimitiveAssignFnsToMap, ExcitationSystemUserDefined::addClassAssignFnsToMap, ExcitationSystemUserDefined::debugName); } +std::map ExcitationSystemUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ExcitationSystemDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExcitationSystemUserDefined_factory() diff --git a/CGMES_3.0.0/ExcitationSystemUserDefined.hpp b/CGMES_3.0.0/ExcitationSystemUserDefined.hpp index a6b363dc7..63def3e09 100644 --- a/CGMES_3.0.0/ExcitationSystemUserDefined.hpp +++ b/CGMES_3.0.0/ExcitationSystemUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ExcitationSystemDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExcitationSystemUserDefined_factory(); diff --git a/CGMES_3.0.0/ExternalNetworkInjection.cpp b/CGMES_3.0.0/ExternalNetworkInjection.cpp index cdb858881..51fde99e4 100644 --- a/CGMES_3.0.0/ExternalNetworkInjection.cpp +++ b/CGMES_3.0.0/ExternalNetworkInjection.cpp @@ -11,51 +11,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ExternalNetworkInjection(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ExternalNetworkInjection.governorSCD", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.ikSecond", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.maxInitialSymShCCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.maxP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxQ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.maxR0ToX0Ratio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.maxR1ToX1Ratio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.maxZ0ToZ1Ratio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.minInitialSymShCCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.minP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minQ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ExternalNetworkInjection.minR0ToX0Ratio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.minR1ToX1Ratio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.minZ0ToZ1Ratio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "ExternalNetworkInjection.p", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.referencePriority", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ExternalNetworkInjection.voltageFactor", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + ExternalNetworkInjection::ExternalNetworkInjection() {} ExternalNetworkInjection::~ExternalNetworkInjection() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ExternalNetworkInjection.governorSCD", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.ikSecond", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.maxInitialSymShCCurrent", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.maxP", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxQ", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.maxR0ToX0Ratio", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.maxR1ToX1Ratio", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.minInitialSymShCCurrent", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.minP", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minQ", { CGMESProfile::EQ, } }, - { "cim:ExternalNetworkInjection.minR0ToX0Ratio", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.minR1ToX1Ratio", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.minZ0ToZ1Ratio", { CGMESProfile::SC, } }, - { "cim:ExternalNetworkInjection.p", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.q", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.referencePriority", { CGMESProfile::SSH, } }, - { "cim:ExternalNetworkInjection.voltageFactor", { CGMESProfile::SC, } }, -}; - -std::list -ExternalNetworkInjection::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ExternalNetworkInjection::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ExternalNetworkInjection::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ExternalNetworkInjection::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ExternalNetworkInjection::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ExternalNetworkInjection::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ExternalNetworkInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ExternalNetworkInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ExternalNetworkInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExternalNetworkInjection_governorSCD(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -588,29 +620,29 @@ const char* ExternalNetworkInjection::debugString() const void ExternalNetworkInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ExternalNetworkInjection", &ExternalNetworkInjection_factory); + factory_map.emplace("ExternalNetworkInjection", &ExternalNetworkInjection_factory); } void ExternalNetworkInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ExternalNetworkInjection.governorSCD", &assign_ExternalNetworkInjection_governorSCD); - assign_map.emplace("cim:ExternalNetworkInjection.ikSecond", &assign_ExternalNetworkInjection_ikSecond); - assign_map.emplace("cim:ExternalNetworkInjection.maxInitialSymShCCurrent", &assign_ExternalNetworkInjection_maxInitialSymShCCurrent); - assign_map.emplace("cim:ExternalNetworkInjection.maxP", &assign_ExternalNetworkInjection_maxP); - assign_map.emplace("cim:ExternalNetworkInjection.maxQ", &assign_ExternalNetworkInjection_maxQ); - assign_map.emplace("cim:ExternalNetworkInjection.maxR0ToX0Ratio", &assign_ExternalNetworkInjection_maxR0ToX0Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.maxR1ToX1Ratio", &assign_ExternalNetworkInjection_maxR1ToX1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", &assign_ExternalNetworkInjection_maxZ0ToZ1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minInitialSymShCCurrent", &assign_ExternalNetworkInjection_minInitialSymShCCurrent); - assign_map.emplace("cim:ExternalNetworkInjection.minP", &assign_ExternalNetworkInjection_minP); - assign_map.emplace("cim:ExternalNetworkInjection.minQ", &assign_ExternalNetworkInjection_minQ); - assign_map.emplace("cim:ExternalNetworkInjection.minR0ToX0Ratio", &assign_ExternalNetworkInjection_minR0ToX0Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minR1ToX1Ratio", &assign_ExternalNetworkInjection_minR1ToX1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.minZ0ToZ1Ratio", &assign_ExternalNetworkInjection_minZ0ToZ1Ratio); - assign_map.emplace("cim:ExternalNetworkInjection.p", &assign_ExternalNetworkInjection_p); - assign_map.emplace("cim:ExternalNetworkInjection.q", &assign_ExternalNetworkInjection_q); - assign_map.emplace("cim:ExternalNetworkInjection.referencePriority", &assign_ExternalNetworkInjection_referencePriority); - assign_map.emplace("cim:ExternalNetworkInjection.voltageFactor", &assign_ExternalNetworkInjection_voltageFactor); + assign_map.emplace("ExternalNetworkInjection.governorSCD", &assign_ExternalNetworkInjection_governorSCD); + assign_map.emplace("ExternalNetworkInjection.ikSecond", &assign_ExternalNetworkInjection_ikSecond); + assign_map.emplace("ExternalNetworkInjection.maxInitialSymShCCurrent", &assign_ExternalNetworkInjection_maxInitialSymShCCurrent); + assign_map.emplace("ExternalNetworkInjection.maxP", &assign_ExternalNetworkInjection_maxP); + assign_map.emplace("ExternalNetworkInjection.maxQ", &assign_ExternalNetworkInjection_maxQ); + assign_map.emplace("ExternalNetworkInjection.maxR0ToX0Ratio", &assign_ExternalNetworkInjection_maxR0ToX0Ratio); + assign_map.emplace("ExternalNetworkInjection.maxR1ToX1Ratio", &assign_ExternalNetworkInjection_maxR1ToX1Ratio); + assign_map.emplace("ExternalNetworkInjection.maxZ0ToZ1Ratio", &assign_ExternalNetworkInjection_maxZ0ToZ1Ratio); + assign_map.emplace("ExternalNetworkInjection.minInitialSymShCCurrent", &assign_ExternalNetworkInjection_minInitialSymShCCurrent); + assign_map.emplace("ExternalNetworkInjection.minP", &assign_ExternalNetworkInjection_minP); + assign_map.emplace("ExternalNetworkInjection.minQ", &assign_ExternalNetworkInjection_minQ); + assign_map.emplace("ExternalNetworkInjection.minR0ToX0Ratio", &assign_ExternalNetworkInjection_minR0ToX0Ratio); + assign_map.emplace("ExternalNetworkInjection.minR1ToX1Ratio", &assign_ExternalNetworkInjection_minR1ToX1Ratio); + assign_map.emplace("ExternalNetworkInjection.minZ0ToZ1Ratio", &assign_ExternalNetworkInjection_minZ0ToZ1Ratio); + assign_map.emplace("ExternalNetworkInjection.p", &assign_ExternalNetworkInjection_p); + assign_map.emplace("ExternalNetworkInjection.q", &assign_ExternalNetworkInjection_q); + assign_map.emplace("ExternalNetworkInjection.referencePriority", &assign_ExternalNetworkInjection_referencePriority); + assign_map.emplace("ExternalNetworkInjection.voltageFactor", &assign_ExternalNetworkInjection_voltageFactor); } void ExternalNetworkInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -620,24 +652,24 @@ void ExternalNetworkInjection::addClassAssignFnsToMap(std::unordered_map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ExternalNetworkInjection.governorSCD", &get_ExternalNetworkInjection_governorSCD); - get_map.emplace("cim:ExternalNetworkInjection.ikSecond", &get_ExternalNetworkInjection_ikSecond); - get_map.emplace("cim:ExternalNetworkInjection.maxInitialSymShCCurrent", &get_ExternalNetworkInjection_maxInitialSymShCCurrent); - get_map.emplace("cim:ExternalNetworkInjection.maxP", &get_ExternalNetworkInjection_maxP); - get_map.emplace("cim:ExternalNetworkInjection.maxQ", &get_ExternalNetworkInjection_maxQ); - get_map.emplace("cim:ExternalNetworkInjection.maxR0ToX0Ratio", &get_ExternalNetworkInjection_maxR0ToX0Ratio); - get_map.emplace("cim:ExternalNetworkInjection.maxR1ToX1Ratio", &get_ExternalNetworkInjection_maxR1ToX1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", &get_ExternalNetworkInjection_maxZ0ToZ1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minInitialSymShCCurrent", &get_ExternalNetworkInjection_minInitialSymShCCurrent); - get_map.emplace("cim:ExternalNetworkInjection.minP", &get_ExternalNetworkInjection_minP); - get_map.emplace("cim:ExternalNetworkInjection.minQ", &get_ExternalNetworkInjection_minQ); - get_map.emplace("cim:ExternalNetworkInjection.minR0ToX0Ratio", &get_ExternalNetworkInjection_minR0ToX0Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minR1ToX1Ratio", &get_ExternalNetworkInjection_minR1ToX1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.minZ0ToZ1Ratio", &get_ExternalNetworkInjection_minZ0ToZ1Ratio); - get_map.emplace("cim:ExternalNetworkInjection.p", &get_ExternalNetworkInjection_p); - get_map.emplace("cim:ExternalNetworkInjection.q", &get_ExternalNetworkInjection_q); - get_map.emplace("cim:ExternalNetworkInjection.referencePriority", &get_ExternalNetworkInjection_referencePriority); - get_map.emplace("cim:ExternalNetworkInjection.voltageFactor", &get_ExternalNetworkInjection_voltageFactor); + get_map.emplace("ExternalNetworkInjection.governorSCD", &get_ExternalNetworkInjection_governorSCD); + get_map.emplace("ExternalNetworkInjection.ikSecond", &get_ExternalNetworkInjection_ikSecond); + get_map.emplace("ExternalNetworkInjection.maxInitialSymShCCurrent", &get_ExternalNetworkInjection_maxInitialSymShCCurrent); + get_map.emplace("ExternalNetworkInjection.maxP", &get_ExternalNetworkInjection_maxP); + get_map.emplace("ExternalNetworkInjection.maxQ", &get_ExternalNetworkInjection_maxQ); + get_map.emplace("ExternalNetworkInjection.maxR0ToX0Ratio", &get_ExternalNetworkInjection_maxR0ToX0Ratio); + get_map.emplace("ExternalNetworkInjection.maxR1ToX1Ratio", &get_ExternalNetworkInjection_maxR1ToX1Ratio); + get_map.emplace("ExternalNetworkInjection.maxZ0ToZ1Ratio", &get_ExternalNetworkInjection_maxZ0ToZ1Ratio); + get_map.emplace("ExternalNetworkInjection.minInitialSymShCCurrent", &get_ExternalNetworkInjection_minInitialSymShCCurrent); + get_map.emplace("ExternalNetworkInjection.minP", &get_ExternalNetworkInjection_minP); + get_map.emplace("ExternalNetworkInjection.minQ", &get_ExternalNetworkInjection_minQ); + get_map.emplace("ExternalNetworkInjection.minR0ToX0Ratio", &get_ExternalNetworkInjection_minR0ToX0Ratio); + get_map.emplace("ExternalNetworkInjection.minR1ToX1Ratio", &get_ExternalNetworkInjection_minR1ToX1Ratio); + get_map.emplace("ExternalNetworkInjection.minZ0ToZ1Ratio", &get_ExternalNetworkInjection_minZ0ToZ1Ratio); + get_map.emplace("ExternalNetworkInjection.p", &get_ExternalNetworkInjection_p); + get_map.emplace("ExternalNetworkInjection.q", &get_ExternalNetworkInjection_q); + get_map.emplace("ExternalNetworkInjection.referencePriority", &get_ExternalNetworkInjection_referencePriority); + get_map.emplace("ExternalNetworkInjection.voltageFactor", &get_ExternalNetworkInjection_voltageFactor); } void ExternalNetworkInjection::addClassGetFnsToMap(std::map& get_map) const @@ -650,11 +682,25 @@ void ExternalNetworkInjection::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ExternalNetworkInjection::declare() { return BaseClassDefiner(ExternalNetworkInjection::addConstructToMap, ExternalNetworkInjection::addPrimitiveAssignFnsToMap, ExternalNetworkInjection::addClassAssignFnsToMap, ExternalNetworkInjection::debugName); } +std::map ExternalNetworkInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ExternalNetworkInjection_factory() diff --git a/CGMES_3.0.0/ExternalNetworkInjection.hpp b/CGMES_3.0.0/ExternalNetworkInjection.hpp index 62b6ee0e5..ef87e328f 100644 --- a/CGMES_3.0.0/ExternalNetworkInjection.hpp +++ b/CGMES_3.0.0/ExternalNetworkInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ActivePowerPerFrequency.hpp" #include "Boolean.hpp" @@ -89,8 +90,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -98,7 +106,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ExternalNetworkInjection_factory(); diff --git a/CGMES_3.0.0/FaultIndicator.cpp b/CGMES_3.0.0/FaultIndicator.cpp index 5873b6827..fc380458e 100644 --- a/CGMES_3.0.0/FaultIndicator.cpp +++ b/CGMES_3.0.0/FaultIndicator.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + FaultIndicator(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + FaultIndicator::FaultIndicator() {} FaultIndicator::~FaultIndicator() {} -static const std::list PossibleProfilesForClass = +const std::list& FaultIndicator::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& FaultIndicator::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -FaultIndicator::getPossibleProfilesForClass() const +const std::string& FaultIndicator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -FaultIndicator::getPossibleProfilesForAttributes() const +const std::list& FaultIndicator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AuxiliaryEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& FaultIndicator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& FaultIndicator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& FaultIndicator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char FaultIndicator::debugName[] = "FaultIndicator"; @@ -46,7 +78,7 @@ const char* FaultIndicator::debugString() const void FaultIndicator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:FaultIndicator", &FaultIndicator_factory); + factory_map.emplace("FaultIndicator", &FaultIndicator_factory); } void FaultIndicator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void FaultIndicator::addEnumGetFnsToMap(std::map& get AuxiliaryEquipment::addEnumGetFnsToMap(get_map); } +bool FaultIndicator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "FaultIndicator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner FaultIndicator::declare() { return BaseClassDefiner(FaultIndicator::addConstructToMap, FaultIndicator::addPrimitiveAssignFnsToMap, FaultIndicator::addClassAssignFnsToMap, FaultIndicator::debugName); } +std::map FaultIndicator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AuxiliaryEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* FaultIndicator_factory() diff --git a/CGMES_3.0.0/FaultIndicator.hpp b/CGMES_3.0.0/FaultIndicator.hpp index 0a8a68e60..34c24ef7f 100644 --- a/CGMES_3.0.0/FaultIndicator.hpp +++ b/CGMES_3.0.0/FaultIndicator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AuxiliaryEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* FaultIndicator_factory(); diff --git a/CGMES_3.0.0/FossilFuel.cpp b/CGMES_3.0.0/FossilFuel.cpp index d8564bf4d..5b6fed3e8 100644 --- a/CGMES_3.0.0/FossilFuel.cpp +++ b/CGMES_3.0.0/FossilFuel.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + FossilFuel(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "FossilFuel.ThermalGeneratingUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "FossilFuel.fossilFuelType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + FossilFuel::FossilFuel() : ThermalGeneratingUnit(nullptr) {} FossilFuel::~FossilFuel() {} -static const std::list PossibleProfilesForClass = +const std::list& FossilFuel::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& FossilFuel::getClassNamespaceUrl() const { - { "cim:FossilFuel.ThermalGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:FossilFuel.fossilFuelType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -FossilFuel::getPossibleProfilesForClass() const +const std::string& FossilFuel::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -FossilFuel::getPossibleProfilesForAttributes() const +const std::list& FossilFuel::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& FossilFuel::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& FossilFuel::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& FossilFuel::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ThermalGeneratingUnit_FossilFuels(BaseClass*, BaseClass*); @@ -109,17 +141,17 @@ const char* FossilFuel::debugString() const void FossilFuel::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:FossilFuel", &FossilFuel_factory); + factory_map.emplace("FossilFuel", &FossilFuel_factory); } void FossilFuel::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:FossilFuel.fossilFuelType", &assign_FossilFuel_fossilFuelType); + assign_map.emplace("FossilFuel.fossilFuelType", &assign_FossilFuel_fossilFuelType); } void FossilFuel::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:FossilFuel.ThermalGeneratingUnit", &assign_FossilFuel_ThermalGeneratingUnit); + assign_map.emplace("FossilFuel.ThermalGeneratingUnit", &assign_FossilFuel_ThermalGeneratingUnit); } void FossilFuel::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -130,13 +162,19 @@ void FossilFuel::addPrimitiveGetFnsToMap(std::map& ge void FossilFuel::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:FossilFuel.ThermalGeneratingUnit", &get_FossilFuel_ThermalGeneratingUnit); + get_map.emplace("FossilFuel.ThermalGeneratingUnit", &get_FossilFuel_ThermalGeneratingUnit); } void FossilFuel::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:FossilFuel.fossilFuelType", &get_FossilFuel_fossilFuelType); + get_map.emplace("FossilFuel.fossilFuelType", &get_FossilFuel_fossilFuelType); +} + +bool FossilFuel::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "FossilFuel" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner FossilFuel::declare() @@ -144,6 +182,14 @@ const BaseClassDefiner FossilFuel::declare() return BaseClassDefiner(FossilFuel::addConstructToMap, FossilFuel::addPrimitiveAssignFnsToMap, FossilFuel::addClassAssignFnsToMap, FossilFuel::debugName); } +std::map FossilFuel::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* FossilFuel_factory() diff --git a/CGMES_3.0.0/FossilFuel.hpp b/CGMES_3.0.0/FossilFuel.hpp index 2d975c704..1f4207377 100644 --- a/CGMES_3.0.0/FossilFuel.hpp +++ b/CGMES_3.0.0/FossilFuel.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "FuelType.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* FossilFuel_factory(); diff --git a/CGMES_3.0.0/Fuse.cpp b/CGMES_3.0.0/Fuse.cpp index 98d806252..4e270df1b 100644 --- a/CGMES_3.0.0/Fuse.cpp +++ b/CGMES_3.0.0/Fuse.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Fuse(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Fuse::Fuse() {} Fuse::~Fuse() {} -static const std::list PossibleProfilesForClass = +const std::list& Fuse::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Fuse::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Fuse::getPossibleProfilesForClass() const +const std::string& Fuse::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Fuse::getPossibleProfilesForAttributes() const +const std::list& Fuse::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Fuse::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Fuse::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Fuse::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Fuse::debugName[] = "Fuse"; @@ -47,7 +79,7 @@ const char* Fuse::debugString() const void Fuse::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Fuse", &Fuse_factory); + factory_map.emplace("Fuse", &Fuse_factory); } void Fuse::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Fuse::addEnumGetFnsToMap(std::map& get_map) cons Switch::addEnumGetFnsToMap(get_map); } +bool Fuse::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Fuse" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Fuse::declare() { return BaseClassDefiner(Fuse::addConstructToMap, Fuse::addPrimitiveAssignFnsToMap, Fuse::addClassAssignFnsToMap, Fuse::debugName); } +std::map Fuse::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Fuse_factory() diff --git a/CGMES_3.0.0/Fuse.hpp b/CGMES_3.0.0/Fuse.hpp index afd86f629..72e9dd9d0 100644 --- a/CGMES_3.0.0/Fuse.hpp +++ b/CGMES_3.0.0/Fuse.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Fuse_factory(); diff --git a/CGMES_3.0.0/GenICompensationForGenJ.cpp b/CGMES_3.0.0/GenICompensationForGenJ.cpp index ade258b3c..101607611 100644 --- a/CGMES_3.0.0/GenICompensationForGenJ.cpp +++ b/CGMES_3.0.0/GenICompensationForGenJ.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GenICompensationForGenJ(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GenICompensationForGenJ.SynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.VcompIEEEType2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.rcij", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GenICompensationForGenJ.xcij", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GenICompensationForGenJ::GenICompensationForGenJ() : SynchronousMachineDynamics(nullptr), VcompIEEEType2(nullptr) {} GenICompensationForGenJ::~GenICompensationForGenJ() {} -static const std::list PossibleProfilesForClass = +const std::list& GenICompensationForGenJ::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GenICompensationForGenJ::getClassNamespaceUrl() const { - { "cim:GenICompensationForGenJ.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.VcompIEEEType2", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.rcij", { CGMESProfile::DY, } }, - { "cim:GenICompensationForGenJ.xcij", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GenICompensationForGenJ::getPossibleProfilesForClass() const +const std::string& GenICompensationForGenJ::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GenICompensationForGenJ::getPossibleProfilesForAttributes() const +const std::list& GenICompensationForGenJ::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GenICompensationForGenJ::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GenICompensationForGenJ::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GenICompensationForGenJ::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDynamics_GenICompensationForGenJ(BaseClass*, BaseClass*); @@ -172,33 +204,33 @@ const char* GenICompensationForGenJ::debugString() const void GenICompensationForGenJ::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GenICompensationForGenJ", &GenICompensationForGenJ_factory); + factory_map.emplace("GenICompensationForGenJ", &GenICompensationForGenJ_factory); } void GenICompensationForGenJ::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GenICompensationForGenJ.rcij", &assign_GenICompensationForGenJ_rcij); - assign_map.emplace("cim:GenICompensationForGenJ.xcij", &assign_GenICompensationForGenJ_xcij); + assign_map.emplace("GenICompensationForGenJ.rcij", &assign_GenICompensationForGenJ_rcij); + assign_map.emplace("GenICompensationForGenJ.xcij", &assign_GenICompensationForGenJ_xcij); } void GenICompensationForGenJ::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GenICompensationForGenJ.SynchronousMachineDynamics", &assign_GenICompensationForGenJ_SynchronousMachineDynamics); - assign_map.emplace("cim:GenICompensationForGenJ.VcompIEEEType2", &assign_GenICompensationForGenJ_VcompIEEEType2); + assign_map.emplace("GenICompensationForGenJ.SynchronousMachineDynamics", &assign_GenICompensationForGenJ_SynchronousMachineDynamics); + assign_map.emplace("GenICompensationForGenJ.VcompIEEEType2", &assign_GenICompensationForGenJ_VcompIEEEType2); } void GenICompensationForGenJ::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GenICompensationForGenJ.rcij", &get_GenICompensationForGenJ_rcij); - get_map.emplace("cim:GenICompensationForGenJ.xcij", &get_GenICompensationForGenJ_xcij); + get_map.emplace("GenICompensationForGenJ.rcij", &get_GenICompensationForGenJ_rcij); + get_map.emplace("GenICompensationForGenJ.xcij", &get_GenICompensationForGenJ_xcij); } void GenICompensationForGenJ::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:GenICompensationForGenJ.SynchronousMachineDynamics", &get_GenICompensationForGenJ_SynchronousMachineDynamics); - get_map.emplace("cim:GenICompensationForGenJ.VcompIEEEType2", &get_GenICompensationForGenJ_VcompIEEEType2); + get_map.emplace("GenICompensationForGenJ.SynchronousMachineDynamics", &get_GenICompensationForGenJ_SynchronousMachineDynamics); + get_map.emplace("GenICompensationForGenJ.VcompIEEEType2", &get_GenICompensationForGenJ_VcompIEEEType2); } void GenICompensationForGenJ::addEnumGetFnsToMap(std::map& get_map) const @@ -206,11 +238,25 @@ void GenICompensationForGenJ::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GenICompensationForGenJ::declare() { return BaseClassDefiner(GenICompensationForGenJ::addConstructToMap, GenICompensationForGenJ::addPrimitiveAssignFnsToMap, GenICompensationForGenJ::addClassAssignFnsToMap, GenICompensationForGenJ::debugName); } +std::map GenICompensationForGenJ::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GenICompensationForGenJ_factory() diff --git a/CGMES_3.0.0/GenICompensationForGenJ.hpp b/CGMES_3.0.0/GenICompensationForGenJ.hpp index 71559d56e..db8c352ed 100644 --- a/CGMES_3.0.0/GenICompensationForGenJ.hpp +++ b/CGMES_3.0.0/GenICompensationForGenJ.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GenICompensationForGenJ_factory(); diff --git a/CGMES_3.0.0/GeneratingUnit.cpp b/CGMES_3.0.0/GeneratingUnit.cpp index 294646e3a..64857dcc7 100644 --- a/CGMES_3.0.0/GeneratingUnit.cpp +++ b/CGMES_3.0.0/GeneratingUnit.cpp @@ -14,51 +14,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeneratingUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeneratingUnit.ControlAreaGeneratingUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.GrossToNetActivePowerCurves", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.RotatingMachine", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.genControlSource", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.governorSCD", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.longPF", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.maxOperatingP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.maximumAllowableSpinningReserve", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.minOperatingP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.nominalP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.normalPF", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "GeneratingUnit.ratedGrossMaxP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.ratedGrossMinP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.ratedNetMaxP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.shortPF", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.startupCost", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.startupTime", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.totalEfficiency", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "GeneratingUnit.variableCost", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GeneratingUnit::GeneratingUnit() {} GeneratingUnit::~GeneratingUnit() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::EQ, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GeneratingUnit.ControlAreaGeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.GrossToNetActivePowerCurves", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.RotatingMachine", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.genControlSource", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.governorSCD", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.longPF", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.maxOperatingP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.maximumAllowableSpinningReserve", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.minOperatingP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.nominalP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.normalPF", { CGMESProfile::SSH, } }, - { "cim:GeneratingUnit.ratedGrossMaxP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.ratedGrossMinP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.ratedNetMaxP", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.shortPF", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.startupCost", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.startupTime", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.totalEfficiency", { CGMESProfile::EQ, } }, - { "cim:GeneratingUnit.variableCost", { CGMESProfile::EQ, } }, -}; - -std::list -GeneratingUnit::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GeneratingUnit::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GeneratingUnit::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GeneratingUnit::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GeneratingUnit::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlAreaGeneratingUnit_GeneratingUnit(BaseClass*, BaseClass*); @@ -587,54 +619,54 @@ const char* GeneratingUnit::debugString() const void GeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeneratingUnit", &GeneratingUnit_factory); + factory_map.emplace("GeneratingUnit", &GeneratingUnit_factory); } void GeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeneratingUnit.genControlSource", &assign_GeneratingUnit_genControlSource); - assign_map.emplace("cim:GeneratingUnit.governorSCD", &assign_GeneratingUnit_governorSCD); - assign_map.emplace("cim:GeneratingUnit.longPF", &assign_GeneratingUnit_longPF); - assign_map.emplace("cim:GeneratingUnit.maxOperatingP", &assign_GeneratingUnit_maxOperatingP); - assign_map.emplace("cim:GeneratingUnit.maximumAllowableSpinningReserve", &assign_GeneratingUnit_maximumAllowableSpinningReserve); - assign_map.emplace("cim:GeneratingUnit.minOperatingP", &assign_GeneratingUnit_minOperatingP); - assign_map.emplace("cim:GeneratingUnit.nominalP", &assign_GeneratingUnit_nominalP); - assign_map.emplace("cim:GeneratingUnit.normalPF", &assign_GeneratingUnit_normalPF); - assign_map.emplace("cim:GeneratingUnit.ratedGrossMaxP", &assign_GeneratingUnit_ratedGrossMaxP); - assign_map.emplace("cim:GeneratingUnit.ratedGrossMinP", &assign_GeneratingUnit_ratedGrossMinP); - assign_map.emplace("cim:GeneratingUnit.ratedNetMaxP", &assign_GeneratingUnit_ratedNetMaxP); - assign_map.emplace("cim:GeneratingUnit.shortPF", &assign_GeneratingUnit_shortPF); - assign_map.emplace("cim:GeneratingUnit.startupCost", &assign_GeneratingUnit_startupCost); - assign_map.emplace("cim:GeneratingUnit.startupTime", &assign_GeneratingUnit_startupTime); - assign_map.emplace("cim:GeneratingUnit.totalEfficiency", &assign_GeneratingUnit_totalEfficiency); - assign_map.emplace("cim:GeneratingUnit.variableCost", &assign_GeneratingUnit_variableCost); + assign_map.emplace("GeneratingUnit.genControlSource", &assign_GeneratingUnit_genControlSource); + assign_map.emplace("GeneratingUnit.governorSCD", &assign_GeneratingUnit_governorSCD); + assign_map.emplace("GeneratingUnit.longPF", &assign_GeneratingUnit_longPF); + assign_map.emplace("GeneratingUnit.maxOperatingP", &assign_GeneratingUnit_maxOperatingP); + assign_map.emplace("GeneratingUnit.maximumAllowableSpinningReserve", &assign_GeneratingUnit_maximumAllowableSpinningReserve); + assign_map.emplace("GeneratingUnit.minOperatingP", &assign_GeneratingUnit_minOperatingP); + assign_map.emplace("GeneratingUnit.nominalP", &assign_GeneratingUnit_nominalP); + assign_map.emplace("GeneratingUnit.normalPF", &assign_GeneratingUnit_normalPF); + assign_map.emplace("GeneratingUnit.ratedGrossMaxP", &assign_GeneratingUnit_ratedGrossMaxP); + assign_map.emplace("GeneratingUnit.ratedGrossMinP", &assign_GeneratingUnit_ratedGrossMinP); + assign_map.emplace("GeneratingUnit.ratedNetMaxP", &assign_GeneratingUnit_ratedNetMaxP); + assign_map.emplace("GeneratingUnit.shortPF", &assign_GeneratingUnit_shortPF); + assign_map.emplace("GeneratingUnit.startupCost", &assign_GeneratingUnit_startupCost); + assign_map.emplace("GeneratingUnit.startupTime", &assign_GeneratingUnit_startupTime); + assign_map.emplace("GeneratingUnit.totalEfficiency", &assign_GeneratingUnit_totalEfficiency); + assign_map.emplace("GeneratingUnit.variableCost", &assign_GeneratingUnit_variableCost); } void GeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeneratingUnit.ControlAreaGeneratingUnit", &assign_GeneratingUnit_ControlAreaGeneratingUnit); - assign_map.emplace("cim:GeneratingUnit.GrossToNetActivePowerCurves", &assign_GeneratingUnit_GrossToNetActivePowerCurves); - assign_map.emplace("cim:GeneratingUnit.RotatingMachine", &assign_GeneratingUnit_RotatingMachine); + assign_map.emplace("GeneratingUnit.ControlAreaGeneratingUnit", &assign_GeneratingUnit_ControlAreaGeneratingUnit); + assign_map.emplace("GeneratingUnit.GrossToNetActivePowerCurves", &assign_GeneratingUnit_GrossToNetActivePowerCurves); + assign_map.emplace("GeneratingUnit.RotatingMachine", &assign_GeneratingUnit_RotatingMachine); } void GeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GeneratingUnit.governorSCD", &get_GeneratingUnit_governorSCD); - get_map.emplace("cim:GeneratingUnit.longPF", &get_GeneratingUnit_longPF); - get_map.emplace("cim:GeneratingUnit.maxOperatingP", &get_GeneratingUnit_maxOperatingP); - get_map.emplace("cim:GeneratingUnit.maximumAllowableSpinningReserve", &get_GeneratingUnit_maximumAllowableSpinningReserve); - get_map.emplace("cim:GeneratingUnit.minOperatingP", &get_GeneratingUnit_minOperatingP); - get_map.emplace("cim:GeneratingUnit.nominalP", &get_GeneratingUnit_nominalP); - get_map.emplace("cim:GeneratingUnit.normalPF", &get_GeneratingUnit_normalPF); - get_map.emplace("cim:GeneratingUnit.ratedGrossMaxP", &get_GeneratingUnit_ratedGrossMaxP); - get_map.emplace("cim:GeneratingUnit.ratedGrossMinP", &get_GeneratingUnit_ratedGrossMinP); - get_map.emplace("cim:GeneratingUnit.ratedNetMaxP", &get_GeneratingUnit_ratedNetMaxP); - get_map.emplace("cim:GeneratingUnit.shortPF", &get_GeneratingUnit_shortPF); - get_map.emplace("cim:GeneratingUnit.startupCost", &get_GeneratingUnit_startupCost); - get_map.emplace("cim:GeneratingUnit.startupTime", &get_GeneratingUnit_startupTime); - get_map.emplace("cim:GeneratingUnit.totalEfficiency", &get_GeneratingUnit_totalEfficiency); - get_map.emplace("cim:GeneratingUnit.variableCost", &get_GeneratingUnit_variableCost); + get_map.emplace("GeneratingUnit.governorSCD", &get_GeneratingUnit_governorSCD); + get_map.emplace("GeneratingUnit.longPF", &get_GeneratingUnit_longPF); + get_map.emplace("GeneratingUnit.maxOperatingP", &get_GeneratingUnit_maxOperatingP); + get_map.emplace("GeneratingUnit.maximumAllowableSpinningReserve", &get_GeneratingUnit_maximumAllowableSpinningReserve); + get_map.emplace("GeneratingUnit.minOperatingP", &get_GeneratingUnit_minOperatingP); + get_map.emplace("GeneratingUnit.nominalP", &get_GeneratingUnit_nominalP); + get_map.emplace("GeneratingUnit.normalPF", &get_GeneratingUnit_normalPF); + get_map.emplace("GeneratingUnit.ratedGrossMaxP", &get_GeneratingUnit_ratedGrossMaxP); + get_map.emplace("GeneratingUnit.ratedGrossMinP", &get_GeneratingUnit_ratedGrossMinP); + get_map.emplace("GeneratingUnit.ratedNetMaxP", &get_GeneratingUnit_ratedNetMaxP); + get_map.emplace("GeneratingUnit.shortPF", &get_GeneratingUnit_shortPF); + get_map.emplace("GeneratingUnit.startupCost", &get_GeneratingUnit_startupCost); + get_map.emplace("GeneratingUnit.startupTime", &get_GeneratingUnit_startupTime); + get_map.emplace("GeneratingUnit.totalEfficiency", &get_GeneratingUnit_totalEfficiency); + get_map.emplace("GeneratingUnit.variableCost", &get_GeneratingUnit_variableCost); } void GeneratingUnit::addClassGetFnsToMap(std::map& get_map) const @@ -645,7 +677,13 @@ void GeneratingUnit::addClassGetFnsToMap(std::map& get_map) const { Equipment::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GeneratingUnit.genControlSource", &get_GeneratingUnit_genControlSource); + get_map.emplace("GeneratingUnit.genControlSource", &get_GeneratingUnit_genControlSource); +} + +bool GeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GeneratingUnit::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner GeneratingUnit::declare() return BaseClassDefiner(GeneratingUnit::addConstructToMap, GeneratingUnit::addPrimitiveAssignFnsToMap, GeneratingUnit::addClassAssignFnsToMap, GeneratingUnit::debugName); } +std::map GeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeneratingUnit_factory() diff --git a/CGMES_3.0.0/GeneratingUnit.hpp b/CGMES_3.0.0/GeneratingUnit.hpp index 6581cdd92..393c9b83d 100644 --- a/CGMES_3.0.0/GeneratingUnit.hpp +++ b/CGMES_3.0.0/GeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "GeneratorControlSource.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeneratingUnit_factory(); diff --git a/CGMES_3.0.0/GeographicalRegion.cpp b/CGMES_3.0.0/GeographicalRegion.cpp index f86e655ef..a4e671ddd 100644 --- a/CGMES_3.0.0/GeographicalRegion.cpp +++ b/CGMES_3.0.0/GeographicalRegion.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GeographicalRegion(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GeographicalRegion.Regions", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + GeographicalRegion::GeographicalRegion() {} GeographicalRegion::~GeographicalRegion() {} -static const std::list PossibleProfilesForClass = +const std::list& GeographicalRegion::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GeographicalRegion::getClassNamespaceUrl() const { - { "cim:GeographicalRegion.Regions", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GeographicalRegion::getPossibleProfilesForClass() const +const std::string& GeographicalRegion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GeographicalRegion::getPossibleProfilesForAttributes() const +const std::list& GeographicalRegion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GeographicalRegion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GeographicalRegion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GeographicalRegion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_Region(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* GeographicalRegion::debugString() const void GeographicalRegion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GeographicalRegion", &GeographicalRegion_factory); + factory_map.emplace("GeographicalRegion", &GeographicalRegion_factory); } void GeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void GeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GeographicalRegion.Regions", &assign_GeographicalRegion_Regions); + assign_map.emplace("GeographicalRegion.Regions", &assign_GeographicalRegion_Regions); } void GeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void GeographicalRegion::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool GeographicalRegion::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GeographicalRegion" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GeographicalRegion::declare() { return BaseClassDefiner(GeographicalRegion::addConstructToMap, GeographicalRegion::addPrimitiveAssignFnsToMap, GeographicalRegion::addClassAssignFnsToMap, GeographicalRegion::debugName); } +std::map GeographicalRegion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GeographicalRegion_factory() diff --git a/CGMES_3.0.0/GeographicalRegion.hpp b/CGMES_3.0.0/GeographicalRegion.hpp index 64b543181..995da530d 100644 --- a/CGMES_3.0.0/GeographicalRegion.hpp +++ b/CGMES_3.0.0/GeographicalRegion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GeographicalRegion_factory(); diff --git a/CGMES_3.0.0/GovCT1.cpp b/CGMES_3.0.0/GovCT1.cpp index c8ede5eab..73110d981 100644 --- a/CGMES_3.0.0/GovCT1.cpp +++ b/CGMES_3.0.0/GovCT1.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovCT1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovCT1.aset", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.db", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.dm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.kdgov", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.kigov", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.kiload", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.kimw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.kpgov", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.kpload", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.kturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.ldref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.maxerr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.minerr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.rclose", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.rdown", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.ropen", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.rselect", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.rup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.tact", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.tdgov", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.teng", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.tfload", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.tpelec", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.tsa", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.tsb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.vmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.vmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.wfnl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT1.wfspd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovCT1::GovCT1() {} GovCT1::~GovCT1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovCT1.aset", { CGMESProfile::DY, } }, - { "cim:GovCT1.db", { CGMESProfile::DY, } }, - { "cim:GovCT1.dm", { CGMESProfile::DY, } }, - { "cim:GovCT1.ka", { CGMESProfile::DY, } }, - { "cim:GovCT1.kdgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kigov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kiload", { CGMESProfile::DY, } }, - { "cim:GovCT1.kimw", { CGMESProfile::DY, } }, - { "cim:GovCT1.kpgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.kpload", { CGMESProfile::DY, } }, - { "cim:GovCT1.kturb", { CGMESProfile::DY, } }, - { "cim:GovCT1.ldref", { CGMESProfile::DY, } }, - { "cim:GovCT1.maxerr", { CGMESProfile::DY, } }, - { "cim:GovCT1.minerr", { CGMESProfile::DY, } }, - { "cim:GovCT1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovCT1.r", { CGMESProfile::DY, } }, - { "cim:GovCT1.rclose", { CGMESProfile::DY, } }, - { "cim:GovCT1.rdown", { CGMESProfile::DY, } }, - { "cim:GovCT1.ropen", { CGMESProfile::DY, } }, - { "cim:GovCT1.rselect", { CGMESProfile::DY, } }, - { "cim:GovCT1.rup", { CGMESProfile::DY, } }, - { "cim:GovCT1.ta", { CGMESProfile::DY, } }, - { "cim:GovCT1.tact", { CGMESProfile::DY, } }, - { "cim:GovCT1.tb", { CGMESProfile::DY, } }, - { "cim:GovCT1.tc", { CGMESProfile::DY, } }, - { "cim:GovCT1.tdgov", { CGMESProfile::DY, } }, - { "cim:GovCT1.teng", { CGMESProfile::DY, } }, - { "cim:GovCT1.tfload", { CGMESProfile::DY, } }, - { "cim:GovCT1.tpelec", { CGMESProfile::DY, } }, - { "cim:GovCT1.tsa", { CGMESProfile::DY, } }, - { "cim:GovCT1.tsb", { CGMESProfile::DY, } }, - { "cim:GovCT1.vmax", { CGMESProfile::DY, } }, - { "cim:GovCT1.vmin", { CGMESProfile::DY, } }, - { "cim:GovCT1.wfnl", { CGMESProfile::DY, } }, - { "cim:GovCT1.wfspd", { CGMESProfile::DY, } }, -}; - -std::list -GovCT1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovCT1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovCT1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovCT1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovCT1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovCT1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovCT1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovCT1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovCT1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovCT1_aset(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovCT1::debugString() const void GovCT1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovCT1", &GovCT1_factory); + factory_map.emplace("GovCT1", &GovCT1_factory); } void GovCT1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovCT1.aset", &assign_GovCT1_aset); - assign_map.emplace("cim:GovCT1.db", &assign_GovCT1_db); - assign_map.emplace("cim:GovCT1.dm", &assign_GovCT1_dm); - assign_map.emplace("cim:GovCT1.ka", &assign_GovCT1_ka); - assign_map.emplace("cim:GovCT1.kdgov", &assign_GovCT1_kdgov); - assign_map.emplace("cim:GovCT1.kigov", &assign_GovCT1_kigov); - assign_map.emplace("cim:GovCT1.kiload", &assign_GovCT1_kiload); - assign_map.emplace("cim:GovCT1.kimw", &assign_GovCT1_kimw); - assign_map.emplace("cim:GovCT1.kpgov", &assign_GovCT1_kpgov); - assign_map.emplace("cim:GovCT1.kpload", &assign_GovCT1_kpload); - assign_map.emplace("cim:GovCT1.kturb", &assign_GovCT1_kturb); - assign_map.emplace("cim:GovCT1.ldref", &assign_GovCT1_ldref); - assign_map.emplace("cim:GovCT1.maxerr", &assign_GovCT1_maxerr); - assign_map.emplace("cim:GovCT1.minerr", &assign_GovCT1_minerr); - assign_map.emplace("cim:GovCT1.mwbase", &assign_GovCT1_mwbase); - assign_map.emplace("cim:GovCT1.r", &assign_GovCT1_r); - assign_map.emplace("cim:GovCT1.rclose", &assign_GovCT1_rclose); - assign_map.emplace("cim:GovCT1.rdown", &assign_GovCT1_rdown); - assign_map.emplace("cim:GovCT1.ropen", &assign_GovCT1_ropen); - assign_map.emplace("cim:GovCT1.rselect", &assign_GovCT1_rselect); - assign_map.emplace("cim:GovCT1.rup", &assign_GovCT1_rup); - assign_map.emplace("cim:GovCT1.ta", &assign_GovCT1_ta); - assign_map.emplace("cim:GovCT1.tact", &assign_GovCT1_tact); - assign_map.emplace("cim:GovCT1.tb", &assign_GovCT1_tb); - assign_map.emplace("cim:GovCT1.tc", &assign_GovCT1_tc); - assign_map.emplace("cim:GovCT1.tdgov", &assign_GovCT1_tdgov); - assign_map.emplace("cim:GovCT1.teng", &assign_GovCT1_teng); - assign_map.emplace("cim:GovCT1.tfload", &assign_GovCT1_tfload); - assign_map.emplace("cim:GovCT1.tpelec", &assign_GovCT1_tpelec); - assign_map.emplace("cim:GovCT1.tsa", &assign_GovCT1_tsa); - assign_map.emplace("cim:GovCT1.tsb", &assign_GovCT1_tsb); - assign_map.emplace("cim:GovCT1.vmax", &assign_GovCT1_vmax); - assign_map.emplace("cim:GovCT1.vmin", &assign_GovCT1_vmin); - assign_map.emplace("cim:GovCT1.wfnl", &assign_GovCT1_wfnl); - assign_map.emplace("cim:GovCT1.wfspd", &assign_GovCT1_wfspd); + assign_map.emplace("GovCT1.aset", &assign_GovCT1_aset); + assign_map.emplace("GovCT1.db", &assign_GovCT1_db); + assign_map.emplace("GovCT1.dm", &assign_GovCT1_dm); + assign_map.emplace("GovCT1.ka", &assign_GovCT1_ka); + assign_map.emplace("GovCT1.kdgov", &assign_GovCT1_kdgov); + assign_map.emplace("GovCT1.kigov", &assign_GovCT1_kigov); + assign_map.emplace("GovCT1.kiload", &assign_GovCT1_kiload); + assign_map.emplace("GovCT1.kimw", &assign_GovCT1_kimw); + assign_map.emplace("GovCT1.kpgov", &assign_GovCT1_kpgov); + assign_map.emplace("GovCT1.kpload", &assign_GovCT1_kpload); + assign_map.emplace("GovCT1.kturb", &assign_GovCT1_kturb); + assign_map.emplace("GovCT1.ldref", &assign_GovCT1_ldref); + assign_map.emplace("GovCT1.maxerr", &assign_GovCT1_maxerr); + assign_map.emplace("GovCT1.minerr", &assign_GovCT1_minerr); + assign_map.emplace("GovCT1.mwbase", &assign_GovCT1_mwbase); + assign_map.emplace("GovCT1.r", &assign_GovCT1_r); + assign_map.emplace("GovCT1.rclose", &assign_GovCT1_rclose); + assign_map.emplace("GovCT1.rdown", &assign_GovCT1_rdown); + assign_map.emplace("GovCT1.ropen", &assign_GovCT1_ropen); + assign_map.emplace("GovCT1.rselect", &assign_GovCT1_rselect); + assign_map.emplace("GovCT1.rup", &assign_GovCT1_rup); + assign_map.emplace("GovCT1.ta", &assign_GovCT1_ta); + assign_map.emplace("GovCT1.tact", &assign_GovCT1_tact); + assign_map.emplace("GovCT1.tb", &assign_GovCT1_tb); + assign_map.emplace("GovCT1.tc", &assign_GovCT1_tc); + assign_map.emplace("GovCT1.tdgov", &assign_GovCT1_tdgov); + assign_map.emplace("GovCT1.teng", &assign_GovCT1_teng); + assign_map.emplace("GovCT1.tfload", &assign_GovCT1_tfload); + assign_map.emplace("GovCT1.tpelec", &assign_GovCT1_tpelec); + assign_map.emplace("GovCT1.tsa", &assign_GovCT1_tsa); + assign_map.emplace("GovCT1.tsb", &assign_GovCT1_tsb); + assign_map.emplace("GovCT1.vmax", &assign_GovCT1_vmax); + assign_map.emplace("GovCT1.vmin", &assign_GovCT1_vmin); + assign_map.emplace("GovCT1.wfnl", &assign_GovCT1_wfnl); + assign_map.emplace("GovCT1.wfspd", &assign_GovCT1_wfspd); } void GovCT1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,40 +1177,40 @@ void GovCT1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovCT1.aset", &get_GovCT1_aset); - get_map.emplace("cim:GovCT1.db", &get_GovCT1_db); - get_map.emplace("cim:GovCT1.dm", &get_GovCT1_dm); - get_map.emplace("cim:GovCT1.ka", &get_GovCT1_ka); - get_map.emplace("cim:GovCT1.kdgov", &get_GovCT1_kdgov); - get_map.emplace("cim:GovCT1.kigov", &get_GovCT1_kigov); - get_map.emplace("cim:GovCT1.kiload", &get_GovCT1_kiload); - get_map.emplace("cim:GovCT1.kimw", &get_GovCT1_kimw); - get_map.emplace("cim:GovCT1.kpgov", &get_GovCT1_kpgov); - get_map.emplace("cim:GovCT1.kpload", &get_GovCT1_kpload); - get_map.emplace("cim:GovCT1.kturb", &get_GovCT1_kturb); - get_map.emplace("cim:GovCT1.ldref", &get_GovCT1_ldref); - get_map.emplace("cim:GovCT1.maxerr", &get_GovCT1_maxerr); - get_map.emplace("cim:GovCT1.minerr", &get_GovCT1_minerr); - get_map.emplace("cim:GovCT1.mwbase", &get_GovCT1_mwbase); - get_map.emplace("cim:GovCT1.r", &get_GovCT1_r); - get_map.emplace("cim:GovCT1.rclose", &get_GovCT1_rclose); - get_map.emplace("cim:GovCT1.rdown", &get_GovCT1_rdown); - get_map.emplace("cim:GovCT1.ropen", &get_GovCT1_ropen); - get_map.emplace("cim:GovCT1.rup", &get_GovCT1_rup); - get_map.emplace("cim:GovCT1.ta", &get_GovCT1_ta); - get_map.emplace("cim:GovCT1.tact", &get_GovCT1_tact); - get_map.emplace("cim:GovCT1.tb", &get_GovCT1_tb); - get_map.emplace("cim:GovCT1.tc", &get_GovCT1_tc); - get_map.emplace("cim:GovCT1.tdgov", &get_GovCT1_tdgov); - get_map.emplace("cim:GovCT1.teng", &get_GovCT1_teng); - get_map.emplace("cim:GovCT1.tfload", &get_GovCT1_tfload); - get_map.emplace("cim:GovCT1.tpelec", &get_GovCT1_tpelec); - get_map.emplace("cim:GovCT1.tsa", &get_GovCT1_tsa); - get_map.emplace("cim:GovCT1.tsb", &get_GovCT1_tsb); - get_map.emplace("cim:GovCT1.vmax", &get_GovCT1_vmax); - get_map.emplace("cim:GovCT1.vmin", &get_GovCT1_vmin); - get_map.emplace("cim:GovCT1.wfnl", &get_GovCT1_wfnl); - get_map.emplace("cim:GovCT1.wfspd", &get_GovCT1_wfspd); + get_map.emplace("GovCT1.aset", &get_GovCT1_aset); + get_map.emplace("GovCT1.db", &get_GovCT1_db); + get_map.emplace("GovCT1.dm", &get_GovCT1_dm); + get_map.emplace("GovCT1.ka", &get_GovCT1_ka); + get_map.emplace("GovCT1.kdgov", &get_GovCT1_kdgov); + get_map.emplace("GovCT1.kigov", &get_GovCT1_kigov); + get_map.emplace("GovCT1.kiload", &get_GovCT1_kiload); + get_map.emplace("GovCT1.kimw", &get_GovCT1_kimw); + get_map.emplace("GovCT1.kpgov", &get_GovCT1_kpgov); + get_map.emplace("GovCT1.kpload", &get_GovCT1_kpload); + get_map.emplace("GovCT1.kturb", &get_GovCT1_kturb); + get_map.emplace("GovCT1.ldref", &get_GovCT1_ldref); + get_map.emplace("GovCT1.maxerr", &get_GovCT1_maxerr); + get_map.emplace("GovCT1.minerr", &get_GovCT1_minerr); + get_map.emplace("GovCT1.mwbase", &get_GovCT1_mwbase); + get_map.emplace("GovCT1.r", &get_GovCT1_r); + get_map.emplace("GovCT1.rclose", &get_GovCT1_rclose); + get_map.emplace("GovCT1.rdown", &get_GovCT1_rdown); + get_map.emplace("GovCT1.ropen", &get_GovCT1_ropen); + get_map.emplace("GovCT1.rup", &get_GovCT1_rup); + get_map.emplace("GovCT1.ta", &get_GovCT1_ta); + get_map.emplace("GovCT1.tact", &get_GovCT1_tact); + get_map.emplace("GovCT1.tb", &get_GovCT1_tb); + get_map.emplace("GovCT1.tc", &get_GovCT1_tc); + get_map.emplace("GovCT1.tdgov", &get_GovCT1_tdgov); + get_map.emplace("GovCT1.teng", &get_GovCT1_teng); + get_map.emplace("GovCT1.tfload", &get_GovCT1_tfload); + get_map.emplace("GovCT1.tpelec", &get_GovCT1_tpelec); + get_map.emplace("GovCT1.tsa", &get_GovCT1_tsa); + get_map.emplace("GovCT1.tsb", &get_GovCT1_tsb); + get_map.emplace("GovCT1.vmax", &get_GovCT1_vmax); + get_map.emplace("GovCT1.vmin", &get_GovCT1_vmin); + get_map.emplace("GovCT1.wfnl", &get_GovCT1_wfnl); + get_map.emplace("GovCT1.wfspd", &get_GovCT1_wfspd); } void GovCT1::addClassGetFnsToMap(std::map& get_map) const @@ -1189,7 +1221,13 @@ void GovCT1::addClassGetFnsToMap(std::map& get_ void GovCT1::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovCT1.rselect", &get_GovCT1_rselect); + get_map.emplace("GovCT1.rselect", &get_GovCT1_rselect); +} + +bool GovCT1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovCT1" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovCT1::declare() @@ -1197,6 +1235,14 @@ const BaseClassDefiner GovCT1::declare() return BaseClassDefiner(GovCT1::addConstructToMap, GovCT1::addPrimitiveAssignFnsToMap, GovCT1::addClassAssignFnsToMap, GovCT1::debugName); } +std::map GovCT1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovCT1_factory() diff --git a/CGMES_3.0.0/GovCT1.hpp b/CGMES_3.0.0/GovCT1.hpp index 4967c3f4a..59a3186df 100644 --- a/CGMES_3.0.0/GovCT1.hpp +++ b/CGMES_3.0.0/GovCT1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "DroopSignalFeedbackKind.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovCT1_factory(); diff --git a/CGMES_3.0.0/GovCT2.cpp b/CGMES_3.0.0/GovCT2.cpp index 482a2691f..0bc8d7e2f 100644 --- a/CGMES_3.0.0/GovCT2.cpp +++ b/CGMES_3.0.0/GovCT2.cpp @@ -11,87 +11,119 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovCT2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovCT2.aset", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.db", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.dm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.flim9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.kdgov", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.kigov", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.kiload", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.kimw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.kpgov", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.kpload", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.kturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.ldref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.maxerr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.minerr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.plim9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.prate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.rclose", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.rdown", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.ropen", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.rselect", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.rup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.tact", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.tdgov", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.teng", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.tfload", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.tpelec", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.tsa", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.tsb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.vmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.vmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.wfnl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovCT2.wfspd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovCT2::GovCT2() {} GovCT2::~GovCT2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovCT2.aset", { CGMESProfile::DY, } }, - { "cim:GovCT2.db", { CGMESProfile::DY, } }, - { "cim:GovCT2.dm", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim1", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim10", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim2", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim3", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim4", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim5", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim6", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim7", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim8", { CGMESProfile::DY, } }, - { "cim:GovCT2.flim9", { CGMESProfile::DY, } }, - { "cim:GovCT2.ka", { CGMESProfile::DY, } }, - { "cim:GovCT2.kdgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kigov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kiload", { CGMESProfile::DY, } }, - { "cim:GovCT2.kimw", { CGMESProfile::DY, } }, - { "cim:GovCT2.kpgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.kpload", { CGMESProfile::DY, } }, - { "cim:GovCT2.kturb", { CGMESProfile::DY, } }, - { "cim:GovCT2.ldref", { CGMESProfile::DY, } }, - { "cim:GovCT2.maxerr", { CGMESProfile::DY, } }, - { "cim:GovCT2.minerr", { CGMESProfile::DY, } }, - { "cim:GovCT2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim1", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim10", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim2", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim3", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim4", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim5", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim6", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim7", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim8", { CGMESProfile::DY, } }, - { "cim:GovCT2.plim9", { CGMESProfile::DY, } }, - { "cim:GovCT2.prate", { CGMESProfile::DY, } }, - { "cim:GovCT2.r", { CGMESProfile::DY, } }, - { "cim:GovCT2.rclose", { CGMESProfile::DY, } }, - { "cim:GovCT2.rdown", { CGMESProfile::DY, } }, - { "cim:GovCT2.ropen", { CGMESProfile::DY, } }, - { "cim:GovCT2.rselect", { CGMESProfile::DY, } }, - { "cim:GovCT2.rup", { CGMESProfile::DY, } }, - { "cim:GovCT2.ta", { CGMESProfile::DY, } }, - { "cim:GovCT2.tact", { CGMESProfile::DY, } }, - { "cim:GovCT2.tb", { CGMESProfile::DY, } }, - { "cim:GovCT2.tc", { CGMESProfile::DY, } }, - { "cim:GovCT2.tdgov", { CGMESProfile::DY, } }, - { "cim:GovCT2.teng", { CGMESProfile::DY, } }, - { "cim:GovCT2.tfload", { CGMESProfile::DY, } }, - { "cim:GovCT2.tpelec", { CGMESProfile::DY, } }, - { "cim:GovCT2.tsa", { CGMESProfile::DY, } }, - { "cim:GovCT2.tsb", { CGMESProfile::DY, } }, - { "cim:GovCT2.vmax", { CGMESProfile::DY, } }, - { "cim:GovCT2.vmin", { CGMESProfile::DY, } }, - { "cim:GovCT2.wfnl", { CGMESProfile::DY, } }, - { "cim:GovCT2.wfspd", { CGMESProfile::DY, } }, -}; - -std::list -GovCT2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovCT2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovCT2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovCT2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovCT2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovCT2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovCT2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovCT2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovCT2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovCT2_aset(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1726,67 +1758,67 @@ const char* GovCT2::debugString() const void GovCT2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovCT2", &GovCT2_factory); + factory_map.emplace("GovCT2", &GovCT2_factory); } void GovCT2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovCT2.aset", &assign_GovCT2_aset); - assign_map.emplace("cim:GovCT2.db", &assign_GovCT2_db); - assign_map.emplace("cim:GovCT2.dm", &assign_GovCT2_dm); - assign_map.emplace("cim:GovCT2.flim1", &assign_GovCT2_flim1); - assign_map.emplace("cim:GovCT2.flim10", &assign_GovCT2_flim10); - assign_map.emplace("cim:GovCT2.flim2", &assign_GovCT2_flim2); - assign_map.emplace("cim:GovCT2.flim3", &assign_GovCT2_flim3); - assign_map.emplace("cim:GovCT2.flim4", &assign_GovCT2_flim4); - assign_map.emplace("cim:GovCT2.flim5", &assign_GovCT2_flim5); - assign_map.emplace("cim:GovCT2.flim6", &assign_GovCT2_flim6); - assign_map.emplace("cim:GovCT2.flim7", &assign_GovCT2_flim7); - assign_map.emplace("cim:GovCT2.flim8", &assign_GovCT2_flim8); - assign_map.emplace("cim:GovCT2.flim9", &assign_GovCT2_flim9); - assign_map.emplace("cim:GovCT2.ka", &assign_GovCT2_ka); - assign_map.emplace("cim:GovCT2.kdgov", &assign_GovCT2_kdgov); - assign_map.emplace("cim:GovCT2.kigov", &assign_GovCT2_kigov); - assign_map.emplace("cim:GovCT2.kiload", &assign_GovCT2_kiload); - assign_map.emplace("cim:GovCT2.kimw", &assign_GovCT2_kimw); - assign_map.emplace("cim:GovCT2.kpgov", &assign_GovCT2_kpgov); - assign_map.emplace("cim:GovCT2.kpload", &assign_GovCT2_kpload); - assign_map.emplace("cim:GovCT2.kturb", &assign_GovCT2_kturb); - assign_map.emplace("cim:GovCT2.ldref", &assign_GovCT2_ldref); - assign_map.emplace("cim:GovCT2.maxerr", &assign_GovCT2_maxerr); - assign_map.emplace("cim:GovCT2.minerr", &assign_GovCT2_minerr); - assign_map.emplace("cim:GovCT2.mwbase", &assign_GovCT2_mwbase); - assign_map.emplace("cim:GovCT2.plim1", &assign_GovCT2_plim1); - assign_map.emplace("cim:GovCT2.plim10", &assign_GovCT2_plim10); - assign_map.emplace("cim:GovCT2.plim2", &assign_GovCT2_plim2); - assign_map.emplace("cim:GovCT2.plim3", &assign_GovCT2_plim3); - assign_map.emplace("cim:GovCT2.plim4", &assign_GovCT2_plim4); - assign_map.emplace("cim:GovCT2.plim5", &assign_GovCT2_plim5); - assign_map.emplace("cim:GovCT2.plim6", &assign_GovCT2_plim6); - assign_map.emplace("cim:GovCT2.plim7", &assign_GovCT2_plim7); - assign_map.emplace("cim:GovCT2.plim8", &assign_GovCT2_plim8); - assign_map.emplace("cim:GovCT2.plim9", &assign_GovCT2_plim9); - assign_map.emplace("cim:GovCT2.prate", &assign_GovCT2_prate); - assign_map.emplace("cim:GovCT2.r", &assign_GovCT2_r); - assign_map.emplace("cim:GovCT2.rclose", &assign_GovCT2_rclose); - assign_map.emplace("cim:GovCT2.rdown", &assign_GovCT2_rdown); - assign_map.emplace("cim:GovCT2.ropen", &assign_GovCT2_ropen); - assign_map.emplace("cim:GovCT2.rselect", &assign_GovCT2_rselect); - assign_map.emplace("cim:GovCT2.rup", &assign_GovCT2_rup); - assign_map.emplace("cim:GovCT2.ta", &assign_GovCT2_ta); - assign_map.emplace("cim:GovCT2.tact", &assign_GovCT2_tact); - assign_map.emplace("cim:GovCT2.tb", &assign_GovCT2_tb); - assign_map.emplace("cim:GovCT2.tc", &assign_GovCT2_tc); - assign_map.emplace("cim:GovCT2.tdgov", &assign_GovCT2_tdgov); - assign_map.emplace("cim:GovCT2.teng", &assign_GovCT2_teng); - assign_map.emplace("cim:GovCT2.tfload", &assign_GovCT2_tfload); - assign_map.emplace("cim:GovCT2.tpelec", &assign_GovCT2_tpelec); - assign_map.emplace("cim:GovCT2.tsa", &assign_GovCT2_tsa); - assign_map.emplace("cim:GovCT2.tsb", &assign_GovCT2_tsb); - assign_map.emplace("cim:GovCT2.vmax", &assign_GovCT2_vmax); - assign_map.emplace("cim:GovCT2.vmin", &assign_GovCT2_vmin); - assign_map.emplace("cim:GovCT2.wfnl", &assign_GovCT2_wfnl); - assign_map.emplace("cim:GovCT2.wfspd", &assign_GovCT2_wfspd); + assign_map.emplace("GovCT2.aset", &assign_GovCT2_aset); + assign_map.emplace("GovCT2.db", &assign_GovCT2_db); + assign_map.emplace("GovCT2.dm", &assign_GovCT2_dm); + assign_map.emplace("GovCT2.flim1", &assign_GovCT2_flim1); + assign_map.emplace("GovCT2.flim10", &assign_GovCT2_flim10); + assign_map.emplace("GovCT2.flim2", &assign_GovCT2_flim2); + assign_map.emplace("GovCT2.flim3", &assign_GovCT2_flim3); + assign_map.emplace("GovCT2.flim4", &assign_GovCT2_flim4); + assign_map.emplace("GovCT2.flim5", &assign_GovCT2_flim5); + assign_map.emplace("GovCT2.flim6", &assign_GovCT2_flim6); + assign_map.emplace("GovCT2.flim7", &assign_GovCT2_flim7); + assign_map.emplace("GovCT2.flim8", &assign_GovCT2_flim8); + assign_map.emplace("GovCT2.flim9", &assign_GovCT2_flim9); + assign_map.emplace("GovCT2.ka", &assign_GovCT2_ka); + assign_map.emplace("GovCT2.kdgov", &assign_GovCT2_kdgov); + assign_map.emplace("GovCT2.kigov", &assign_GovCT2_kigov); + assign_map.emplace("GovCT2.kiload", &assign_GovCT2_kiload); + assign_map.emplace("GovCT2.kimw", &assign_GovCT2_kimw); + assign_map.emplace("GovCT2.kpgov", &assign_GovCT2_kpgov); + assign_map.emplace("GovCT2.kpload", &assign_GovCT2_kpload); + assign_map.emplace("GovCT2.kturb", &assign_GovCT2_kturb); + assign_map.emplace("GovCT2.ldref", &assign_GovCT2_ldref); + assign_map.emplace("GovCT2.maxerr", &assign_GovCT2_maxerr); + assign_map.emplace("GovCT2.minerr", &assign_GovCT2_minerr); + assign_map.emplace("GovCT2.mwbase", &assign_GovCT2_mwbase); + assign_map.emplace("GovCT2.plim1", &assign_GovCT2_plim1); + assign_map.emplace("GovCT2.plim10", &assign_GovCT2_plim10); + assign_map.emplace("GovCT2.plim2", &assign_GovCT2_plim2); + assign_map.emplace("GovCT2.plim3", &assign_GovCT2_plim3); + assign_map.emplace("GovCT2.plim4", &assign_GovCT2_plim4); + assign_map.emplace("GovCT2.plim5", &assign_GovCT2_plim5); + assign_map.emplace("GovCT2.plim6", &assign_GovCT2_plim6); + assign_map.emplace("GovCT2.plim7", &assign_GovCT2_plim7); + assign_map.emplace("GovCT2.plim8", &assign_GovCT2_plim8); + assign_map.emplace("GovCT2.plim9", &assign_GovCT2_plim9); + assign_map.emplace("GovCT2.prate", &assign_GovCT2_prate); + assign_map.emplace("GovCT2.r", &assign_GovCT2_r); + assign_map.emplace("GovCT2.rclose", &assign_GovCT2_rclose); + assign_map.emplace("GovCT2.rdown", &assign_GovCT2_rdown); + assign_map.emplace("GovCT2.ropen", &assign_GovCT2_ropen); + assign_map.emplace("GovCT2.rselect", &assign_GovCT2_rselect); + assign_map.emplace("GovCT2.rup", &assign_GovCT2_rup); + assign_map.emplace("GovCT2.ta", &assign_GovCT2_ta); + assign_map.emplace("GovCT2.tact", &assign_GovCT2_tact); + assign_map.emplace("GovCT2.tb", &assign_GovCT2_tb); + assign_map.emplace("GovCT2.tc", &assign_GovCT2_tc); + assign_map.emplace("GovCT2.tdgov", &assign_GovCT2_tdgov); + assign_map.emplace("GovCT2.teng", &assign_GovCT2_teng); + assign_map.emplace("GovCT2.tfload", &assign_GovCT2_tfload); + assign_map.emplace("GovCT2.tpelec", &assign_GovCT2_tpelec); + assign_map.emplace("GovCT2.tsa", &assign_GovCT2_tsa); + assign_map.emplace("GovCT2.tsb", &assign_GovCT2_tsb); + assign_map.emplace("GovCT2.vmax", &assign_GovCT2_vmax); + assign_map.emplace("GovCT2.vmin", &assign_GovCT2_vmin); + assign_map.emplace("GovCT2.wfnl", &assign_GovCT2_wfnl); + assign_map.emplace("GovCT2.wfspd", &assign_GovCT2_wfspd); } void GovCT2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1796,61 +1828,61 @@ void GovCT2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovCT2.aset", &get_GovCT2_aset); - get_map.emplace("cim:GovCT2.db", &get_GovCT2_db); - get_map.emplace("cim:GovCT2.dm", &get_GovCT2_dm); - get_map.emplace("cim:GovCT2.flim1", &get_GovCT2_flim1); - get_map.emplace("cim:GovCT2.flim10", &get_GovCT2_flim10); - get_map.emplace("cim:GovCT2.flim2", &get_GovCT2_flim2); - get_map.emplace("cim:GovCT2.flim3", &get_GovCT2_flim3); - get_map.emplace("cim:GovCT2.flim4", &get_GovCT2_flim4); - get_map.emplace("cim:GovCT2.flim5", &get_GovCT2_flim5); - get_map.emplace("cim:GovCT2.flim6", &get_GovCT2_flim6); - get_map.emplace("cim:GovCT2.flim7", &get_GovCT2_flim7); - get_map.emplace("cim:GovCT2.flim8", &get_GovCT2_flim8); - get_map.emplace("cim:GovCT2.flim9", &get_GovCT2_flim9); - get_map.emplace("cim:GovCT2.ka", &get_GovCT2_ka); - get_map.emplace("cim:GovCT2.kdgov", &get_GovCT2_kdgov); - get_map.emplace("cim:GovCT2.kigov", &get_GovCT2_kigov); - get_map.emplace("cim:GovCT2.kiload", &get_GovCT2_kiload); - get_map.emplace("cim:GovCT2.kimw", &get_GovCT2_kimw); - get_map.emplace("cim:GovCT2.kpgov", &get_GovCT2_kpgov); - get_map.emplace("cim:GovCT2.kpload", &get_GovCT2_kpload); - get_map.emplace("cim:GovCT2.kturb", &get_GovCT2_kturb); - get_map.emplace("cim:GovCT2.ldref", &get_GovCT2_ldref); - get_map.emplace("cim:GovCT2.maxerr", &get_GovCT2_maxerr); - get_map.emplace("cim:GovCT2.minerr", &get_GovCT2_minerr); - get_map.emplace("cim:GovCT2.mwbase", &get_GovCT2_mwbase); - get_map.emplace("cim:GovCT2.plim1", &get_GovCT2_plim1); - get_map.emplace("cim:GovCT2.plim10", &get_GovCT2_plim10); - get_map.emplace("cim:GovCT2.plim2", &get_GovCT2_plim2); - get_map.emplace("cim:GovCT2.plim3", &get_GovCT2_plim3); - get_map.emplace("cim:GovCT2.plim4", &get_GovCT2_plim4); - get_map.emplace("cim:GovCT2.plim5", &get_GovCT2_plim5); - get_map.emplace("cim:GovCT2.plim6", &get_GovCT2_plim6); - get_map.emplace("cim:GovCT2.plim7", &get_GovCT2_plim7); - get_map.emplace("cim:GovCT2.plim8", &get_GovCT2_plim8); - get_map.emplace("cim:GovCT2.plim9", &get_GovCT2_plim9); - get_map.emplace("cim:GovCT2.prate", &get_GovCT2_prate); - get_map.emplace("cim:GovCT2.r", &get_GovCT2_r); - get_map.emplace("cim:GovCT2.rclose", &get_GovCT2_rclose); - get_map.emplace("cim:GovCT2.rdown", &get_GovCT2_rdown); - get_map.emplace("cim:GovCT2.ropen", &get_GovCT2_ropen); - get_map.emplace("cim:GovCT2.rup", &get_GovCT2_rup); - get_map.emplace("cim:GovCT2.ta", &get_GovCT2_ta); - get_map.emplace("cim:GovCT2.tact", &get_GovCT2_tact); - get_map.emplace("cim:GovCT2.tb", &get_GovCT2_tb); - get_map.emplace("cim:GovCT2.tc", &get_GovCT2_tc); - get_map.emplace("cim:GovCT2.tdgov", &get_GovCT2_tdgov); - get_map.emplace("cim:GovCT2.teng", &get_GovCT2_teng); - get_map.emplace("cim:GovCT2.tfload", &get_GovCT2_tfload); - get_map.emplace("cim:GovCT2.tpelec", &get_GovCT2_tpelec); - get_map.emplace("cim:GovCT2.tsa", &get_GovCT2_tsa); - get_map.emplace("cim:GovCT2.tsb", &get_GovCT2_tsb); - get_map.emplace("cim:GovCT2.vmax", &get_GovCT2_vmax); - get_map.emplace("cim:GovCT2.vmin", &get_GovCT2_vmin); - get_map.emplace("cim:GovCT2.wfnl", &get_GovCT2_wfnl); - get_map.emplace("cim:GovCT2.wfspd", &get_GovCT2_wfspd); + get_map.emplace("GovCT2.aset", &get_GovCT2_aset); + get_map.emplace("GovCT2.db", &get_GovCT2_db); + get_map.emplace("GovCT2.dm", &get_GovCT2_dm); + get_map.emplace("GovCT2.flim1", &get_GovCT2_flim1); + get_map.emplace("GovCT2.flim10", &get_GovCT2_flim10); + get_map.emplace("GovCT2.flim2", &get_GovCT2_flim2); + get_map.emplace("GovCT2.flim3", &get_GovCT2_flim3); + get_map.emplace("GovCT2.flim4", &get_GovCT2_flim4); + get_map.emplace("GovCT2.flim5", &get_GovCT2_flim5); + get_map.emplace("GovCT2.flim6", &get_GovCT2_flim6); + get_map.emplace("GovCT2.flim7", &get_GovCT2_flim7); + get_map.emplace("GovCT2.flim8", &get_GovCT2_flim8); + get_map.emplace("GovCT2.flim9", &get_GovCT2_flim9); + get_map.emplace("GovCT2.ka", &get_GovCT2_ka); + get_map.emplace("GovCT2.kdgov", &get_GovCT2_kdgov); + get_map.emplace("GovCT2.kigov", &get_GovCT2_kigov); + get_map.emplace("GovCT2.kiload", &get_GovCT2_kiload); + get_map.emplace("GovCT2.kimw", &get_GovCT2_kimw); + get_map.emplace("GovCT2.kpgov", &get_GovCT2_kpgov); + get_map.emplace("GovCT2.kpload", &get_GovCT2_kpload); + get_map.emplace("GovCT2.kturb", &get_GovCT2_kturb); + get_map.emplace("GovCT2.ldref", &get_GovCT2_ldref); + get_map.emplace("GovCT2.maxerr", &get_GovCT2_maxerr); + get_map.emplace("GovCT2.minerr", &get_GovCT2_minerr); + get_map.emplace("GovCT2.mwbase", &get_GovCT2_mwbase); + get_map.emplace("GovCT2.plim1", &get_GovCT2_plim1); + get_map.emplace("GovCT2.plim10", &get_GovCT2_plim10); + get_map.emplace("GovCT2.plim2", &get_GovCT2_plim2); + get_map.emplace("GovCT2.plim3", &get_GovCT2_plim3); + get_map.emplace("GovCT2.plim4", &get_GovCT2_plim4); + get_map.emplace("GovCT2.plim5", &get_GovCT2_plim5); + get_map.emplace("GovCT2.plim6", &get_GovCT2_plim6); + get_map.emplace("GovCT2.plim7", &get_GovCT2_plim7); + get_map.emplace("GovCT2.plim8", &get_GovCT2_plim8); + get_map.emplace("GovCT2.plim9", &get_GovCT2_plim9); + get_map.emplace("GovCT2.prate", &get_GovCT2_prate); + get_map.emplace("GovCT2.r", &get_GovCT2_r); + get_map.emplace("GovCT2.rclose", &get_GovCT2_rclose); + get_map.emplace("GovCT2.rdown", &get_GovCT2_rdown); + get_map.emplace("GovCT2.ropen", &get_GovCT2_ropen); + get_map.emplace("GovCT2.rup", &get_GovCT2_rup); + get_map.emplace("GovCT2.ta", &get_GovCT2_ta); + get_map.emplace("GovCT2.tact", &get_GovCT2_tact); + get_map.emplace("GovCT2.tb", &get_GovCT2_tb); + get_map.emplace("GovCT2.tc", &get_GovCT2_tc); + get_map.emplace("GovCT2.tdgov", &get_GovCT2_tdgov); + get_map.emplace("GovCT2.teng", &get_GovCT2_teng); + get_map.emplace("GovCT2.tfload", &get_GovCT2_tfload); + get_map.emplace("GovCT2.tpelec", &get_GovCT2_tpelec); + get_map.emplace("GovCT2.tsa", &get_GovCT2_tsa); + get_map.emplace("GovCT2.tsb", &get_GovCT2_tsb); + get_map.emplace("GovCT2.vmax", &get_GovCT2_vmax); + get_map.emplace("GovCT2.vmin", &get_GovCT2_vmin); + get_map.emplace("GovCT2.wfnl", &get_GovCT2_wfnl); + get_map.emplace("GovCT2.wfspd", &get_GovCT2_wfspd); } void GovCT2::addClassGetFnsToMap(std::map& get_map) const @@ -1861,7 +1893,13 @@ void GovCT2::addClassGetFnsToMap(std::map& get_ void GovCT2::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovCT2.rselect", &get_GovCT2_rselect); + get_map.emplace("GovCT2.rselect", &get_GovCT2_rselect); +} + +bool GovCT2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovCT2" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovCT2::declare() @@ -1869,6 +1907,14 @@ const BaseClassDefiner GovCT2::declare() return BaseClassDefiner(GovCT2::addConstructToMap, GovCT2::addPrimitiveAssignFnsToMap, GovCT2::addClassAssignFnsToMap, GovCT2::debugName); } +std::map GovCT2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovCT2_factory() diff --git a/CGMES_3.0.0/GovCT2.hpp b/CGMES_3.0.0/GovCT2.hpp index dc8542c83..9903945f3 100644 --- a/CGMES_3.0.0/GovCT2.hpp +++ b/CGMES_3.0.0/GovCT2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "DroopSignalFeedbackKind.hpp" @@ -202,8 +203,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -211,7 +219,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovCT2_factory(); diff --git a/CGMES_3.0.0/GovGAST.cpp b/CGMES_3.0.0/GovGAST.cpp index cc94e78ad..03014b2d4 100644 --- a/CGMES_3.0.0/GovGAST.cpp +++ b/CGMES_3.0.0/GovGAST.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST.at", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.dturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.kt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.vmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST.vmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST::GovGAST() {} GovGAST::~GovGAST() {} -static const std::list PossibleProfilesForClass = +const std::list& GovGAST::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovGAST::getClassNamespaceUrl() const { - { "cim:GovGAST.at", { CGMESProfile::DY, } }, - { "cim:GovGAST.dturb", { CGMESProfile::DY, } }, - { "cim:GovGAST.kt", { CGMESProfile::DY, } }, - { "cim:GovGAST.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST.r", { CGMESProfile::DY, } }, - { "cim:GovGAST.t1", { CGMESProfile::DY, } }, - { "cim:GovGAST.t2", { CGMESProfile::DY, } }, - { "cim:GovGAST.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST.vmax", { CGMESProfile::DY, } }, - { "cim:GovGAST.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovGAST::getPossibleProfilesForClass() const +const std::string& GovGAST::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovGAST::getPossibleProfilesForAttributes() const +const std::list& GovGAST::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* GovGAST::debugString() const void GovGAST::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST", &GovGAST_factory); + factory_map.emplace("GovGAST", &GovGAST_factory); } void GovGAST::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST.at", &assign_GovGAST_at); - assign_map.emplace("cim:GovGAST.dturb", &assign_GovGAST_dturb); - assign_map.emplace("cim:GovGAST.kt", &assign_GovGAST_kt); - assign_map.emplace("cim:GovGAST.mwbase", &assign_GovGAST_mwbase); - assign_map.emplace("cim:GovGAST.r", &assign_GovGAST_r); - assign_map.emplace("cim:GovGAST.t1", &assign_GovGAST_t1); - assign_map.emplace("cim:GovGAST.t2", &assign_GovGAST_t2); - assign_map.emplace("cim:GovGAST.t3", &assign_GovGAST_t3); - assign_map.emplace("cim:GovGAST.vmax", &assign_GovGAST_vmax); - assign_map.emplace("cim:GovGAST.vmin", &assign_GovGAST_vmin); + assign_map.emplace("GovGAST.at", &assign_GovGAST_at); + assign_map.emplace("GovGAST.dturb", &assign_GovGAST_dturb); + assign_map.emplace("GovGAST.kt", &assign_GovGAST_kt); + assign_map.emplace("GovGAST.mwbase", &assign_GovGAST_mwbase); + assign_map.emplace("GovGAST.r", &assign_GovGAST_r); + assign_map.emplace("GovGAST.t1", &assign_GovGAST_t1); + assign_map.emplace("GovGAST.t2", &assign_GovGAST_t2); + assign_map.emplace("GovGAST.t3", &assign_GovGAST_t3); + assign_map.emplace("GovGAST.vmax", &assign_GovGAST_vmax); + assign_map.emplace("GovGAST.vmin", &assign_GovGAST_vmin); } void GovGAST::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void GovGAST::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST.at", &get_GovGAST_at); - get_map.emplace("cim:GovGAST.dturb", &get_GovGAST_dturb); - get_map.emplace("cim:GovGAST.kt", &get_GovGAST_kt); - get_map.emplace("cim:GovGAST.mwbase", &get_GovGAST_mwbase); - get_map.emplace("cim:GovGAST.r", &get_GovGAST_r); - get_map.emplace("cim:GovGAST.t1", &get_GovGAST_t1); - get_map.emplace("cim:GovGAST.t2", &get_GovGAST_t2); - get_map.emplace("cim:GovGAST.t3", &get_GovGAST_t3); - get_map.emplace("cim:GovGAST.vmax", &get_GovGAST_vmax); - get_map.emplace("cim:GovGAST.vmin", &get_GovGAST_vmin); + get_map.emplace("GovGAST.at", &get_GovGAST_at); + get_map.emplace("GovGAST.dturb", &get_GovGAST_dturb); + get_map.emplace("GovGAST.kt", &get_GovGAST_kt); + get_map.emplace("GovGAST.mwbase", &get_GovGAST_mwbase); + get_map.emplace("GovGAST.r", &get_GovGAST_r); + get_map.emplace("GovGAST.t1", &get_GovGAST_t1); + get_map.emplace("GovGAST.t2", &get_GovGAST_t2); + get_map.emplace("GovGAST.t3", &get_GovGAST_t3); + get_map.emplace("GovGAST.vmax", &get_GovGAST_vmax); + get_map.emplace("GovGAST.vmin", &get_GovGAST_vmin); } void GovGAST::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void GovGAST::addEnumGetFnsToMap(std::map& get_map) c TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST::declare() { return BaseClassDefiner(GovGAST::addConstructToMap, GovGAST::addPrimitiveAssignFnsToMap, GovGAST::addClassAssignFnsToMap, GovGAST::debugName); } +std::map GovGAST::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST_factory() diff --git a/CGMES_3.0.0/GovGAST.hpp b/CGMES_3.0.0/GovGAST.hpp index 9978c730e..cbaba06d7 100644 --- a/CGMES_3.0.0/GovGAST.hpp +++ b/CGMES_3.0.0/GovGAST.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST_factory(); diff --git a/CGMES_3.0.0/GovGAST1.cpp b/CGMES_3.0.0/GovGAST1.cpp index 4acaed7db..8afafcf2a 100644 --- a/CGMES_3.0.0/GovGAST1.cpp +++ b/CGMES_3.0.0/GovGAST1.cpp @@ -11,65 +11,97 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST1.a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.eps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.fidle", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.kt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.lmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.loadinc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.ltrate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.rmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.tltr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.vmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST1.vmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST1::GovGAST1() {} GovGAST1::~GovGAST1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST1.a", { CGMESProfile::DY, } }, - { "cim:GovGAST1.b", { CGMESProfile::DY, } }, - { "cim:GovGAST1.db1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.db2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.eps", { CGMESProfile::DY, } }, - { "cim:GovGAST1.fidle", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.gv6", { CGMESProfile::DY, } }, - { "cim:GovGAST1.ka", { CGMESProfile::DY, } }, - { "cim:GovGAST1.kt", { CGMESProfile::DY, } }, - { "cim:GovGAST1.lmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.loadinc", { CGMESProfile::DY, } }, - { "cim:GovGAST1.ltrate", { CGMESProfile::DY, } }, - { "cim:GovGAST1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.pgv6", { CGMESProfile::DY, } }, - { "cim:GovGAST1.r", { CGMESProfile::DY, } }, - { "cim:GovGAST1.rmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t1", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t2", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t4", { CGMESProfile::DY, } }, - { "cim:GovGAST1.t5", { CGMESProfile::DY, } }, - { "cim:GovGAST1.tltr", { CGMESProfile::DY, } }, - { "cim:GovGAST1.vmax", { CGMESProfile::DY, } }, - { "cim:GovGAST1.vmin", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST1_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1066,45 +1098,45 @@ const char* GovGAST1::debugString() const void GovGAST1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST1", &GovGAST1_factory); + factory_map.emplace("GovGAST1", &GovGAST1_factory); } void GovGAST1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST1.a", &assign_GovGAST1_a); - assign_map.emplace("cim:GovGAST1.b", &assign_GovGAST1_b); - assign_map.emplace("cim:GovGAST1.db1", &assign_GovGAST1_db1); - assign_map.emplace("cim:GovGAST1.db2", &assign_GovGAST1_db2); - assign_map.emplace("cim:GovGAST1.eps", &assign_GovGAST1_eps); - assign_map.emplace("cim:GovGAST1.fidle", &assign_GovGAST1_fidle); - assign_map.emplace("cim:GovGAST1.gv1", &assign_GovGAST1_gv1); - assign_map.emplace("cim:GovGAST1.gv2", &assign_GovGAST1_gv2); - assign_map.emplace("cim:GovGAST1.gv3", &assign_GovGAST1_gv3); - assign_map.emplace("cim:GovGAST1.gv4", &assign_GovGAST1_gv4); - assign_map.emplace("cim:GovGAST1.gv5", &assign_GovGAST1_gv5); - assign_map.emplace("cim:GovGAST1.gv6", &assign_GovGAST1_gv6); - assign_map.emplace("cim:GovGAST1.ka", &assign_GovGAST1_ka); - assign_map.emplace("cim:GovGAST1.kt", &assign_GovGAST1_kt); - assign_map.emplace("cim:GovGAST1.lmax", &assign_GovGAST1_lmax); - assign_map.emplace("cim:GovGAST1.loadinc", &assign_GovGAST1_loadinc); - assign_map.emplace("cim:GovGAST1.ltrate", &assign_GovGAST1_ltrate); - assign_map.emplace("cim:GovGAST1.mwbase", &assign_GovGAST1_mwbase); - assign_map.emplace("cim:GovGAST1.pgv1", &assign_GovGAST1_pgv1); - assign_map.emplace("cim:GovGAST1.pgv2", &assign_GovGAST1_pgv2); - assign_map.emplace("cim:GovGAST1.pgv3", &assign_GovGAST1_pgv3); - assign_map.emplace("cim:GovGAST1.pgv4", &assign_GovGAST1_pgv4); - assign_map.emplace("cim:GovGAST1.pgv5", &assign_GovGAST1_pgv5); - assign_map.emplace("cim:GovGAST1.pgv6", &assign_GovGAST1_pgv6); - assign_map.emplace("cim:GovGAST1.r", &assign_GovGAST1_r); - assign_map.emplace("cim:GovGAST1.rmax", &assign_GovGAST1_rmax); - assign_map.emplace("cim:GovGAST1.t1", &assign_GovGAST1_t1); - assign_map.emplace("cim:GovGAST1.t2", &assign_GovGAST1_t2); - assign_map.emplace("cim:GovGAST1.t3", &assign_GovGAST1_t3); - assign_map.emplace("cim:GovGAST1.t4", &assign_GovGAST1_t4); - assign_map.emplace("cim:GovGAST1.t5", &assign_GovGAST1_t5); - assign_map.emplace("cim:GovGAST1.tltr", &assign_GovGAST1_tltr); - assign_map.emplace("cim:GovGAST1.vmax", &assign_GovGAST1_vmax); - assign_map.emplace("cim:GovGAST1.vmin", &assign_GovGAST1_vmin); + assign_map.emplace("GovGAST1.a", &assign_GovGAST1_a); + assign_map.emplace("GovGAST1.b", &assign_GovGAST1_b); + assign_map.emplace("GovGAST1.db1", &assign_GovGAST1_db1); + assign_map.emplace("GovGAST1.db2", &assign_GovGAST1_db2); + assign_map.emplace("GovGAST1.eps", &assign_GovGAST1_eps); + assign_map.emplace("GovGAST1.fidle", &assign_GovGAST1_fidle); + assign_map.emplace("GovGAST1.gv1", &assign_GovGAST1_gv1); + assign_map.emplace("GovGAST1.gv2", &assign_GovGAST1_gv2); + assign_map.emplace("GovGAST1.gv3", &assign_GovGAST1_gv3); + assign_map.emplace("GovGAST1.gv4", &assign_GovGAST1_gv4); + assign_map.emplace("GovGAST1.gv5", &assign_GovGAST1_gv5); + assign_map.emplace("GovGAST1.gv6", &assign_GovGAST1_gv6); + assign_map.emplace("GovGAST1.ka", &assign_GovGAST1_ka); + assign_map.emplace("GovGAST1.kt", &assign_GovGAST1_kt); + assign_map.emplace("GovGAST1.lmax", &assign_GovGAST1_lmax); + assign_map.emplace("GovGAST1.loadinc", &assign_GovGAST1_loadinc); + assign_map.emplace("GovGAST1.ltrate", &assign_GovGAST1_ltrate); + assign_map.emplace("GovGAST1.mwbase", &assign_GovGAST1_mwbase); + assign_map.emplace("GovGAST1.pgv1", &assign_GovGAST1_pgv1); + assign_map.emplace("GovGAST1.pgv2", &assign_GovGAST1_pgv2); + assign_map.emplace("GovGAST1.pgv3", &assign_GovGAST1_pgv3); + assign_map.emplace("GovGAST1.pgv4", &assign_GovGAST1_pgv4); + assign_map.emplace("GovGAST1.pgv5", &assign_GovGAST1_pgv5); + assign_map.emplace("GovGAST1.pgv6", &assign_GovGAST1_pgv6); + assign_map.emplace("GovGAST1.r", &assign_GovGAST1_r); + assign_map.emplace("GovGAST1.rmax", &assign_GovGAST1_rmax); + assign_map.emplace("GovGAST1.t1", &assign_GovGAST1_t1); + assign_map.emplace("GovGAST1.t2", &assign_GovGAST1_t2); + assign_map.emplace("GovGAST1.t3", &assign_GovGAST1_t3); + assign_map.emplace("GovGAST1.t4", &assign_GovGAST1_t4); + assign_map.emplace("GovGAST1.t5", &assign_GovGAST1_t5); + assign_map.emplace("GovGAST1.tltr", &assign_GovGAST1_tltr); + assign_map.emplace("GovGAST1.vmax", &assign_GovGAST1_vmax); + assign_map.emplace("GovGAST1.vmin", &assign_GovGAST1_vmin); } void GovGAST1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1114,40 +1146,40 @@ void GovGAST1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST1.a", &get_GovGAST1_a); - get_map.emplace("cim:GovGAST1.b", &get_GovGAST1_b); - get_map.emplace("cim:GovGAST1.db1", &get_GovGAST1_db1); - get_map.emplace("cim:GovGAST1.db2", &get_GovGAST1_db2); - get_map.emplace("cim:GovGAST1.eps", &get_GovGAST1_eps); - get_map.emplace("cim:GovGAST1.fidle", &get_GovGAST1_fidle); - get_map.emplace("cim:GovGAST1.gv1", &get_GovGAST1_gv1); - get_map.emplace("cim:GovGAST1.gv2", &get_GovGAST1_gv2); - get_map.emplace("cim:GovGAST1.gv3", &get_GovGAST1_gv3); - get_map.emplace("cim:GovGAST1.gv4", &get_GovGAST1_gv4); - get_map.emplace("cim:GovGAST1.gv5", &get_GovGAST1_gv5); - get_map.emplace("cim:GovGAST1.gv6", &get_GovGAST1_gv6); - get_map.emplace("cim:GovGAST1.ka", &get_GovGAST1_ka); - get_map.emplace("cim:GovGAST1.kt", &get_GovGAST1_kt); - get_map.emplace("cim:GovGAST1.lmax", &get_GovGAST1_lmax); - get_map.emplace("cim:GovGAST1.loadinc", &get_GovGAST1_loadinc); - get_map.emplace("cim:GovGAST1.ltrate", &get_GovGAST1_ltrate); - get_map.emplace("cim:GovGAST1.mwbase", &get_GovGAST1_mwbase); - get_map.emplace("cim:GovGAST1.pgv1", &get_GovGAST1_pgv1); - get_map.emplace("cim:GovGAST1.pgv2", &get_GovGAST1_pgv2); - get_map.emplace("cim:GovGAST1.pgv3", &get_GovGAST1_pgv3); - get_map.emplace("cim:GovGAST1.pgv4", &get_GovGAST1_pgv4); - get_map.emplace("cim:GovGAST1.pgv5", &get_GovGAST1_pgv5); - get_map.emplace("cim:GovGAST1.pgv6", &get_GovGAST1_pgv6); - get_map.emplace("cim:GovGAST1.r", &get_GovGAST1_r); - get_map.emplace("cim:GovGAST1.rmax", &get_GovGAST1_rmax); - get_map.emplace("cim:GovGAST1.t1", &get_GovGAST1_t1); - get_map.emplace("cim:GovGAST1.t2", &get_GovGAST1_t2); - get_map.emplace("cim:GovGAST1.t3", &get_GovGAST1_t3); - get_map.emplace("cim:GovGAST1.t4", &get_GovGAST1_t4); - get_map.emplace("cim:GovGAST1.t5", &get_GovGAST1_t5); - get_map.emplace("cim:GovGAST1.tltr", &get_GovGAST1_tltr); - get_map.emplace("cim:GovGAST1.vmax", &get_GovGAST1_vmax); - get_map.emplace("cim:GovGAST1.vmin", &get_GovGAST1_vmin); + get_map.emplace("GovGAST1.a", &get_GovGAST1_a); + get_map.emplace("GovGAST1.b", &get_GovGAST1_b); + get_map.emplace("GovGAST1.db1", &get_GovGAST1_db1); + get_map.emplace("GovGAST1.db2", &get_GovGAST1_db2); + get_map.emplace("GovGAST1.eps", &get_GovGAST1_eps); + get_map.emplace("GovGAST1.fidle", &get_GovGAST1_fidle); + get_map.emplace("GovGAST1.gv1", &get_GovGAST1_gv1); + get_map.emplace("GovGAST1.gv2", &get_GovGAST1_gv2); + get_map.emplace("GovGAST1.gv3", &get_GovGAST1_gv3); + get_map.emplace("GovGAST1.gv4", &get_GovGAST1_gv4); + get_map.emplace("GovGAST1.gv5", &get_GovGAST1_gv5); + get_map.emplace("GovGAST1.gv6", &get_GovGAST1_gv6); + get_map.emplace("GovGAST1.ka", &get_GovGAST1_ka); + get_map.emplace("GovGAST1.kt", &get_GovGAST1_kt); + get_map.emplace("GovGAST1.lmax", &get_GovGAST1_lmax); + get_map.emplace("GovGAST1.loadinc", &get_GovGAST1_loadinc); + get_map.emplace("GovGAST1.ltrate", &get_GovGAST1_ltrate); + get_map.emplace("GovGAST1.mwbase", &get_GovGAST1_mwbase); + get_map.emplace("GovGAST1.pgv1", &get_GovGAST1_pgv1); + get_map.emplace("GovGAST1.pgv2", &get_GovGAST1_pgv2); + get_map.emplace("GovGAST1.pgv3", &get_GovGAST1_pgv3); + get_map.emplace("GovGAST1.pgv4", &get_GovGAST1_pgv4); + get_map.emplace("GovGAST1.pgv5", &get_GovGAST1_pgv5); + get_map.emplace("GovGAST1.pgv6", &get_GovGAST1_pgv6); + get_map.emplace("GovGAST1.r", &get_GovGAST1_r); + get_map.emplace("GovGAST1.rmax", &get_GovGAST1_rmax); + get_map.emplace("GovGAST1.t1", &get_GovGAST1_t1); + get_map.emplace("GovGAST1.t2", &get_GovGAST1_t2); + get_map.emplace("GovGAST1.t3", &get_GovGAST1_t3); + get_map.emplace("GovGAST1.t4", &get_GovGAST1_t4); + get_map.emplace("GovGAST1.t5", &get_GovGAST1_t5); + get_map.emplace("GovGAST1.tltr", &get_GovGAST1_tltr); + get_map.emplace("GovGAST1.vmax", &get_GovGAST1_vmax); + get_map.emplace("GovGAST1.vmin", &get_GovGAST1_vmin); } void GovGAST1::addClassGetFnsToMap(std::map& get_map) const @@ -1160,11 +1192,25 @@ void GovGAST1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST1::declare() { return BaseClassDefiner(GovGAST1::addConstructToMap, GovGAST1::addPrimitiveAssignFnsToMap, GovGAST1::addClassAssignFnsToMap, GovGAST1::debugName); } +std::map GovGAST1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST1_factory() diff --git a/CGMES_3.0.0/GovGAST1.hpp b/CGMES_3.0.0/GovGAST1.hpp index c5dbdbfdc..b54d68b76 100644 --- a/CGMES_3.0.0/GovGAST1.hpp +++ b/CGMES_3.0.0/GovGAST1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "Frequency.hpp" @@ -134,8 +135,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -143,7 +151,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST1_factory(); diff --git a/CGMES_3.0.0/GovGAST2.cpp b/CGMES_3.0.0/GovGAST2.cpp index c78ffe45c..57cac4621 100644 --- a/CGMES_3.0.0/GovGAST2.cpp +++ b/CGMES_3.0.0/GovGAST2.cpp @@ -11,63 +11,95 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST2.a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.af1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.af2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.bf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.bf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.c", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.cf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.ecr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.etd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.k4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.k5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.k6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.t", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.tcd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.tmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.tmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.trate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.w", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.y", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST2.z", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST2::GovGAST2() {} GovGAST2::~GovGAST2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST2.a", { CGMESProfile::DY, } }, - { "cim:GovGAST2.af1", { CGMESProfile::DY, } }, - { "cim:GovGAST2.af2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.b", { CGMESProfile::DY, } }, - { "cim:GovGAST2.bf1", { CGMESProfile::DY, } }, - { "cim:GovGAST2.bf2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.c", { CGMESProfile::DY, } }, - { "cim:GovGAST2.cf2", { CGMESProfile::DY, } }, - { "cim:GovGAST2.ecr", { CGMESProfile::DY, } }, - { "cim:GovGAST2.etd", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k3", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k4", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k5", { CGMESProfile::DY, } }, - { "cim:GovGAST2.k6", { CGMESProfile::DY, } }, - { "cim:GovGAST2.kf", { CGMESProfile::DY, } }, - { "cim:GovGAST2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t3", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t4", { CGMESProfile::DY, } }, - { "cim:GovGAST2.t5", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tcd", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tf", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tmax", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tmin", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tr", { CGMESProfile::DY, } }, - { "cim:GovGAST2.trate", { CGMESProfile::DY, } }, - { "cim:GovGAST2.tt", { CGMESProfile::DY, } }, - { "cim:GovGAST2.w", { CGMESProfile::DY, } }, - { "cim:GovGAST2.x", { CGMESProfile::DY, } }, - { "cim:GovGAST2.y", { CGMESProfile::DY, } }, - { "cim:GovGAST2.z", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST2_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1006,43 +1038,43 @@ const char* GovGAST2::debugString() const void GovGAST2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST2", &GovGAST2_factory); + factory_map.emplace("GovGAST2", &GovGAST2_factory); } void GovGAST2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST2.a", &assign_GovGAST2_a); - assign_map.emplace("cim:GovGAST2.af1", &assign_GovGAST2_af1); - assign_map.emplace("cim:GovGAST2.af2", &assign_GovGAST2_af2); - assign_map.emplace("cim:GovGAST2.b", &assign_GovGAST2_b); - assign_map.emplace("cim:GovGAST2.bf1", &assign_GovGAST2_bf1); - assign_map.emplace("cim:GovGAST2.bf2", &assign_GovGAST2_bf2); - assign_map.emplace("cim:GovGAST2.c", &assign_GovGAST2_c); - assign_map.emplace("cim:GovGAST2.cf2", &assign_GovGAST2_cf2); - assign_map.emplace("cim:GovGAST2.ecr", &assign_GovGAST2_ecr); - assign_map.emplace("cim:GovGAST2.etd", &assign_GovGAST2_etd); - assign_map.emplace("cim:GovGAST2.k3", &assign_GovGAST2_k3); - assign_map.emplace("cim:GovGAST2.k4", &assign_GovGAST2_k4); - assign_map.emplace("cim:GovGAST2.k5", &assign_GovGAST2_k5); - assign_map.emplace("cim:GovGAST2.k6", &assign_GovGAST2_k6); - assign_map.emplace("cim:GovGAST2.kf", &assign_GovGAST2_kf); - assign_map.emplace("cim:GovGAST2.mwbase", &assign_GovGAST2_mwbase); - assign_map.emplace("cim:GovGAST2.t", &assign_GovGAST2_t); - assign_map.emplace("cim:GovGAST2.t3", &assign_GovGAST2_t3); - assign_map.emplace("cim:GovGAST2.t4", &assign_GovGAST2_t4); - assign_map.emplace("cim:GovGAST2.t5", &assign_GovGAST2_t5); - assign_map.emplace("cim:GovGAST2.tc", &assign_GovGAST2_tc); - assign_map.emplace("cim:GovGAST2.tcd", &assign_GovGAST2_tcd); - assign_map.emplace("cim:GovGAST2.tf", &assign_GovGAST2_tf); - assign_map.emplace("cim:GovGAST2.tmax", &assign_GovGAST2_tmax); - assign_map.emplace("cim:GovGAST2.tmin", &assign_GovGAST2_tmin); - assign_map.emplace("cim:GovGAST2.tr", &assign_GovGAST2_tr); - assign_map.emplace("cim:GovGAST2.trate", &assign_GovGAST2_trate); - assign_map.emplace("cim:GovGAST2.tt", &assign_GovGAST2_tt); - assign_map.emplace("cim:GovGAST2.w", &assign_GovGAST2_w); - assign_map.emplace("cim:GovGAST2.x", &assign_GovGAST2_x); - assign_map.emplace("cim:GovGAST2.y", &assign_GovGAST2_y); - assign_map.emplace("cim:GovGAST2.z", &assign_GovGAST2_z); + assign_map.emplace("GovGAST2.a", &assign_GovGAST2_a); + assign_map.emplace("GovGAST2.af1", &assign_GovGAST2_af1); + assign_map.emplace("GovGAST2.af2", &assign_GovGAST2_af2); + assign_map.emplace("GovGAST2.b", &assign_GovGAST2_b); + assign_map.emplace("GovGAST2.bf1", &assign_GovGAST2_bf1); + assign_map.emplace("GovGAST2.bf2", &assign_GovGAST2_bf2); + assign_map.emplace("GovGAST2.c", &assign_GovGAST2_c); + assign_map.emplace("GovGAST2.cf2", &assign_GovGAST2_cf2); + assign_map.emplace("GovGAST2.ecr", &assign_GovGAST2_ecr); + assign_map.emplace("GovGAST2.etd", &assign_GovGAST2_etd); + assign_map.emplace("GovGAST2.k3", &assign_GovGAST2_k3); + assign_map.emplace("GovGAST2.k4", &assign_GovGAST2_k4); + assign_map.emplace("GovGAST2.k5", &assign_GovGAST2_k5); + assign_map.emplace("GovGAST2.k6", &assign_GovGAST2_k6); + assign_map.emplace("GovGAST2.kf", &assign_GovGAST2_kf); + assign_map.emplace("GovGAST2.mwbase", &assign_GovGAST2_mwbase); + assign_map.emplace("GovGAST2.t", &assign_GovGAST2_t); + assign_map.emplace("GovGAST2.t3", &assign_GovGAST2_t3); + assign_map.emplace("GovGAST2.t4", &assign_GovGAST2_t4); + assign_map.emplace("GovGAST2.t5", &assign_GovGAST2_t5); + assign_map.emplace("GovGAST2.tc", &assign_GovGAST2_tc); + assign_map.emplace("GovGAST2.tcd", &assign_GovGAST2_tcd); + assign_map.emplace("GovGAST2.tf", &assign_GovGAST2_tf); + assign_map.emplace("GovGAST2.tmax", &assign_GovGAST2_tmax); + assign_map.emplace("GovGAST2.tmin", &assign_GovGAST2_tmin); + assign_map.emplace("GovGAST2.tr", &assign_GovGAST2_tr); + assign_map.emplace("GovGAST2.trate", &assign_GovGAST2_trate); + assign_map.emplace("GovGAST2.tt", &assign_GovGAST2_tt); + assign_map.emplace("GovGAST2.w", &assign_GovGAST2_w); + assign_map.emplace("GovGAST2.x", &assign_GovGAST2_x); + assign_map.emplace("GovGAST2.y", &assign_GovGAST2_y); + assign_map.emplace("GovGAST2.z", &assign_GovGAST2_z); } void GovGAST2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1052,38 +1084,38 @@ void GovGAST2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST2.a", &get_GovGAST2_a); - get_map.emplace("cim:GovGAST2.af1", &get_GovGAST2_af1); - get_map.emplace("cim:GovGAST2.af2", &get_GovGAST2_af2); - get_map.emplace("cim:GovGAST2.b", &get_GovGAST2_b); - get_map.emplace("cim:GovGAST2.bf1", &get_GovGAST2_bf1); - get_map.emplace("cim:GovGAST2.bf2", &get_GovGAST2_bf2); - get_map.emplace("cim:GovGAST2.c", &get_GovGAST2_c); - get_map.emplace("cim:GovGAST2.cf2", &get_GovGAST2_cf2); - get_map.emplace("cim:GovGAST2.ecr", &get_GovGAST2_ecr); - get_map.emplace("cim:GovGAST2.etd", &get_GovGAST2_etd); - get_map.emplace("cim:GovGAST2.k3", &get_GovGAST2_k3); - get_map.emplace("cim:GovGAST2.k4", &get_GovGAST2_k4); - get_map.emplace("cim:GovGAST2.k5", &get_GovGAST2_k5); - get_map.emplace("cim:GovGAST2.k6", &get_GovGAST2_k6); - get_map.emplace("cim:GovGAST2.kf", &get_GovGAST2_kf); - get_map.emplace("cim:GovGAST2.mwbase", &get_GovGAST2_mwbase); - get_map.emplace("cim:GovGAST2.t", &get_GovGAST2_t); - get_map.emplace("cim:GovGAST2.t3", &get_GovGAST2_t3); - get_map.emplace("cim:GovGAST2.t4", &get_GovGAST2_t4); - get_map.emplace("cim:GovGAST2.t5", &get_GovGAST2_t5); - get_map.emplace("cim:GovGAST2.tc", &get_GovGAST2_tc); - get_map.emplace("cim:GovGAST2.tcd", &get_GovGAST2_tcd); - get_map.emplace("cim:GovGAST2.tf", &get_GovGAST2_tf); - get_map.emplace("cim:GovGAST2.tmax", &get_GovGAST2_tmax); - get_map.emplace("cim:GovGAST2.tmin", &get_GovGAST2_tmin); - get_map.emplace("cim:GovGAST2.tr", &get_GovGAST2_tr); - get_map.emplace("cim:GovGAST2.trate", &get_GovGAST2_trate); - get_map.emplace("cim:GovGAST2.tt", &get_GovGAST2_tt); - get_map.emplace("cim:GovGAST2.w", &get_GovGAST2_w); - get_map.emplace("cim:GovGAST2.x", &get_GovGAST2_x); - get_map.emplace("cim:GovGAST2.y", &get_GovGAST2_y); - get_map.emplace("cim:GovGAST2.z", &get_GovGAST2_z); + get_map.emplace("GovGAST2.a", &get_GovGAST2_a); + get_map.emplace("GovGAST2.af1", &get_GovGAST2_af1); + get_map.emplace("GovGAST2.af2", &get_GovGAST2_af2); + get_map.emplace("GovGAST2.b", &get_GovGAST2_b); + get_map.emplace("GovGAST2.bf1", &get_GovGAST2_bf1); + get_map.emplace("GovGAST2.bf2", &get_GovGAST2_bf2); + get_map.emplace("GovGAST2.c", &get_GovGAST2_c); + get_map.emplace("GovGAST2.cf2", &get_GovGAST2_cf2); + get_map.emplace("GovGAST2.ecr", &get_GovGAST2_ecr); + get_map.emplace("GovGAST2.etd", &get_GovGAST2_etd); + get_map.emplace("GovGAST2.k3", &get_GovGAST2_k3); + get_map.emplace("GovGAST2.k4", &get_GovGAST2_k4); + get_map.emplace("GovGAST2.k5", &get_GovGAST2_k5); + get_map.emplace("GovGAST2.k6", &get_GovGAST2_k6); + get_map.emplace("GovGAST2.kf", &get_GovGAST2_kf); + get_map.emplace("GovGAST2.mwbase", &get_GovGAST2_mwbase); + get_map.emplace("GovGAST2.t", &get_GovGAST2_t); + get_map.emplace("GovGAST2.t3", &get_GovGAST2_t3); + get_map.emplace("GovGAST2.t4", &get_GovGAST2_t4); + get_map.emplace("GovGAST2.t5", &get_GovGAST2_t5); + get_map.emplace("GovGAST2.tc", &get_GovGAST2_tc); + get_map.emplace("GovGAST2.tcd", &get_GovGAST2_tcd); + get_map.emplace("GovGAST2.tf", &get_GovGAST2_tf); + get_map.emplace("GovGAST2.tmax", &get_GovGAST2_tmax); + get_map.emplace("GovGAST2.tmin", &get_GovGAST2_tmin); + get_map.emplace("GovGAST2.tr", &get_GovGAST2_tr); + get_map.emplace("GovGAST2.trate", &get_GovGAST2_trate); + get_map.emplace("GovGAST2.tt", &get_GovGAST2_tt); + get_map.emplace("GovGAST2.w", &get_GovGAST2_w); + get_map.emplace("GovGAST2.x", &get_GovGAST2_x); + get_map.emplace("GovGAST2.y", &get_GovGAST2_y); + get_map.emplace("GovGAST2.z", &get_GovGAST2_z); } void GovGAST2::addClassGetFnsToMap(std::map& get_map) const @@ -1096,11 +1128,25 @@ void GovGAST2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST2::declare() { return BaseClassDefiner(GovGAST2::addConstructToMap, GovGAST2::addPrimitiveAssignFnsToMap, GovGAST2::addClassAssignFnsToMap, GovGAST2::debugName); } +std::map GovGAST2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST2_factory() diff --git a/CGMES_3.0.0/GovGAST2.hpp b/CGMES_3.0.0/GovGAST2.hpp index 4ba04e730..bd76bee68 100644 --- a/CGMES_3.0.0/GovGAST2.hpp +++ b/CGMES_3.0.0/GovGAST2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "Integer.hpp" @@ -129,8 +130,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -138,7 +146,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST2_factory(); diff --git a/CGMES_3.0.0/GovGAST3.cpp b/CGMES_3.0.0/GovGAST3.cpp index d80998b75..2b946a5ec 100644 --- a/CGMES_3.0.0/GovGAST3.cpp +++ b/CGMES_3.0.0/GovGAST3.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST3(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST3.bca", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.bp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.dtc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.kac", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.kca", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.ksi", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.ky", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.mnef", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.mxef", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.rcmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.rcmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.tac", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.tfen", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.tsi", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.ttc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST3.ty", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST3::GovGAST3() {} GovGAST3::~GovGAST3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGAST3.bca", { CGMESProfile::DY, } }, - { "cim:GovGAST3.bp", { CGMESProfile::DY, } }, - { "cim:GovGAST3.dtc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ka", { CGMESProfile::DY, } }, - { "cim:GovGAST3.kac", { CGMESProfile::DY, } }, - { "cim:GovGAST3.kca", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ksi", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ky", { CGMESProfile::DY, } }, - { "cim:GovGAST3.mnef", { CGMESProfile::DY, } }, - { "cim:GovGAST3.mxef", { CGMESProfile::DY, } }, - { "cim:GovGAST3.rcmn", { CGMESProfile::DY, } }, - { "cim:GovGAST3.rcmx", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tac", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.td", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tfen", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tg", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tsi", { CGMESProfile::DY, } }, - { "cim:GovGAST3.tt", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ttc", { CGMESProfile::DY, } }, - { "cim:GovGAST3.ty", { CGMESProfile::DY, } }, -}; - -std::list -GovGAST3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGAST3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGAST3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGAST3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGAST3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGAST3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST3_bca(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* GovGAST3::debugString() const void GovGAST3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST3", &GovGAST3_factory); + factory_map.emplace("GovGAST3", &GovGAST3_factory); } void GovGAST3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST3.bca", &assign_GovGAST3_bca); - assign_map.emplace("cim:GovGAST3.bp", &assign_GovGAST3_bp); - assign_map.emplace("cim:GovGAST3.dtc", &assign_GovGAST3_dtc); - assign_map.emplace("cim:GovGAST3.ka", &assign_GovGAST3_ka); - assign_map.emplace("cim:GovGAST3.kac", &assign_GovGAST3_kac); - assign_map.emplace("cim:GovGAST3.kca", &assign_GovGAST3_kca); - assign_map.emplace("cim:GovGAST3.ksi", &assign_GovGAST3_ksi); - assign_map.emplace("cim:GovGAST3.ky", &assign_GovGAST3_ky); - assign_map.emplace("cim:GovGAST3.mnef", &assign_GovGAST3_mnef); - assign_map.emplace("cim:GovGAST3.mxef", &assign_GovGAST3_mxef); - assign_map.emplace("cim:GovGAST3.rcmn", &assign_GovGAST3_rcmn); - assign_map.emplace("cim:GovGAST3.rcmx", &assign_GovGAST3_rcmx); - assign_map.emplace("cim:GovGAST3.tac", &assign_GovGAST3_tac); - assign_map.emplace("cim:GovGAST3.tc", &assign_GovGAST3_tc); - assign_map.emplace("cim:GovGAST3.td", &assign_GovGAST3_td); - assign_map.emplace("cim:GovGAST3.tfen", &assign_GovGAST3_tfen); - assign_map.emplace("cim:GovGAST3.tg", &assign_GovGAST3_tg); - assign_map.emplace("cim:GovGAST3.tsi", &assign_GovGAST3_tsi); - assign_map.emplace("cim:GovGAST3.tt", &assign_GovGAST3_tt); - assign_map.emplace("cim:GovGAST3.ttc", &assign_GovGAST3_ttc); - assign_map.emplace("cim:GovGAST3.ty", &assign_GovGAST3_ty); + assign_map.emplace("GovGAST3.bca", &assign_GovGAST3_bca); + assign_map.emplace("GovGAST3.bp", &assign_GovGAST3_bp); + assign_map.emplace("GovGAST3.dtc", &assign_GovGAST3_dtc); + assign_map.emplace("GovGAST3.ka", &assign_GovGAST3_ka); + assign_map.emplace("GovGAST3.kac", &assign_GovGAST3_kac); + assign_map.emplace("GovGAST3.kca", &assign_GovGAST3_kca); + assign_map.emplace("GovGAST3.ksi", &assign_GovGAST3_ksi); + assign_map.emplace("GovGAST3.ky", &assign_GovGAST3_ky); + assign_map.emplace("GovGAST3.mnef", &assign_GovGAST3_mnef); + assign_map.emplace("GovGAST3.mxef", &assign_GovGAST3_mxef); + assign_map.emplace("GovGAST3.rcmn", &assign_GovGAST3_rcmn); + assign_map.emplace("GovGAST3.rcmx", &assign_GovGAST3_rcmx); + assign_map.emplace("GovGAST3.tac", &assign_GovGAST3_tac); + assign_map.emplace("GovGAST3.tc", &assign_GovGAST3_tc); + assign_map.emplace("GovGAST3.td", &assign_GovGAST3_td); + assign_map.emplace("GovGAST3.tfen", &assign_GovGAST3_tfen); + assign_map.emplace("GovGAST3.tg", &assign_GovGAST3_tg); + assign_map.emplace("GovGAST3.tsi", &assign_GovGAST3_tsi); + assign_map.emplace("GovGAST3.tt", &assign_GovGAST3_tt); + assign_map.emplace("GovGAST3.ttc", &assign_GovGAST3_ttc); + assign_map.emplace("GovGAST3.ty", &assign_GovGAST3_ty); } void GovGAST3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void GovGAST3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST3.bca", &get_GovGAST3_bca); - get_map.emplace("cim:GovGAST3.bp", &get_GovGAST3_bp); - get_map.emplace("cim:GovGAST3.dtc", &get_GovGAST3_dtc); - get_map.emplace("cim:GovGAST3.ka", &get_GovGAST3_ka); - get_map.emplace("cim:GovGAST3.kac", &get_GovGAST3_kac); - get_map.emplace("cim:GovGAST3.kca", &get_GovGAST3_kca); - get_map.emplace("cim:GovGAST3.ksi", &get_GovGAST3_ksi); - get_map.emplace("cim:GovGAST3.ky", &get_GovGAST3_ky); - get_map.emplace("cim:GovGAST3.mnef", &get_GovGAST3_mnef); - get_map.emplace("cim:GovGAST3.mxef", &get_GovGAST3_mxef); - get_map.emplace("cim:GovGAST3.rcmn", &get_GovGAST3_rcmn); - get_map.emplace("cim:GovGAST3.rcmx", &get_GovGAST3_rcmx); - get_map.emplace("cim:GovGAST3.tac", &get_GovGAST3_tac); - get_map.emplace("cim:GovGAST3.tc", &get_GovGAST3_tc); - get_map.emplace("cim:GovGAST3.td", &get_GovGAST3_td); - get_map.emplace("cim:GovGAST3.tfen", &get_GovGAST3_tfen); - get_map.emplace("cim:GovGAST3.tg", &get_GovGAST3_tg); - get_map.emplace("cim:GovGAST3.tsi", &get_GovGAST3_tsi); - get_map.emplace("cim:GovGAST3.tt", &get_GovGAST3_tt); - get_map.emplace("cim:GovGAST3.ttc", &get_GovGAST3_ttc); - get_map.emplace("cim:GovGAST3.ty", &get_GovGAST3_ty); + get_map.emplace("GovGAST3.bca", &get_GovGAST3_bca); + get_map.emplace("GovGAST3.bp", &get_GovGAST3_bp); + get_map.emplace("GovGAST3.dtc", &get_GovGAST3_dtc); + get_map.emplace("GovGAST3.ka", &get_GovGAST3_ka); + get_map.emplace("GovGAST3.kac", &get_GovGAST3_kac); + get_map.emplace("GovGAST3.kca", &get_GovGAST3_kca); + get_map.emplace("GovGAST3.ksi", &get_GovGAST3_ksi); + get_map.emplace("GovGAST3.ky", &get_GovGAST3_ky); + get_map.emplace("GovGAST3.mnef", &get_GovGAST3_mnef); + get_map.emplace("GovGAST3.mxef", &get_GovGAST3_mxef); + get_map.emplace("GovGAST3.rcmn", &get_GovGAST3_rcmn); + get_map.emplace("GovGAST3.rcmx", &get_GovGAST3_rcmx); + get_map.emplace("GovGAST3.tac", &get_GovGAST3_tac); + get_map.emplace("GovGAST3.tc", &get_GovGAST3_tc); + get_map.emplace("GovGAST3.td", &get_GovGAST3_td); + get_map.emplace("GovGAST3.tfen", &get_GovGAST3_tfen); + get_map.emplace("GovGAST3.tg", &get_GovGAST3_tg); + get_map.emplace("GovGAST3.tsi", &get_GovGAST3_tsi); + get_map.emplace("GovGAST3.tt", &get_GovGAST3_tt); + get_map.emplace("GovGAST3.ttc", &get_GovGAST3_ttc); + get_map.emplace("GovGAST3.ty", &get_GovGAST3_ty); } void GovGAST3::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void GovGAST3::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST3::declare() { return BaseClassDefiner(GovGAST3::addConstructToMap, GovGAST3::addPrimitiveAssignFnsToMap, GovGAST3::addClassAssignFnsToMap, GovGAST3::debugName); } +std::map GovGAST3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST3_factory() diff --git a/CGMES_3.0.0/GovGAST3.hpp b/CGMES_3.0.0/GovGAST3.hpp index a1da83703..e1cef6eb9 100644 --- a/CGMES_3.0.0/GovGAST3.hpp +++ b/CGMES_3.0.0/GovGAST3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST3_factory(); diff --git a/CGMES_3.0.0/GovGAST4.cpp b/CGMES_3.0.0/GovGAST4.cpp index 4886e4cdf..86f5dd321 100644 --- a/CGMES_3.0.0/GovGAST4.cpp +++ b/CGMES_3.0.0/GovGAST4.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGAST4(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGAST4.bp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.ktm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.mnef", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.mxef", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.rymn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.rymx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.tcm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.tm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGAST4.ty", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGAST4::GovGAST4() {} GovGAST4::~GovGAST4() {} -static const std::list PossibleProfilesForClass = +const std::list& GovGAST4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovGAST4::getClassNamespaceUrl() const { - { "cim:GovGAST4.bp", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ktm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.mnef", { CGMESProfile::DY, } }, - { "cim:GovGAST4.mxef", { CGMESProfile::DY, } }, - { "cim:GovGAST4.rymn", { CGMESProfile::DY, } }, - { "cim:GovGAST4.rymx", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ta", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tc", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tcm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.tm", { CGMESProfile::DY, } }, - { "cim:GovGAST4.ty", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovGAST4::getPossibleProfilesForClass() const +const std::string& GovGAST4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovGAST4::getPossibleProfilesForAttributes() const +const std::list& GovGAST4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGAST4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGAST4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGAST4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGAST4_bp(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* GovGAST4::debugString() const void GovGAST4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGAST4", &GovGAST4_factory); + factory_map.emplace("GovGAST4", &GovGAST4_factory); } void GovGAST4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGAST4.bp", &assign_GovGAST4_bp); - assign_map.emplace("cim:GovGAST4.ktm", &assign_GovGAST4_ktm); - assign_map.emplace("cim:GovGAST4.mnef", &assign_GovGAST4_mnef); - assign_map.emplace("cim:GovGAST4.mxef", &assign_GovGAST4_mxef); - assign_map.emplace("cim:GovGAST4.rymn", &assign_GovGAST4_rymn); - assign_map.emplace("cim:GovGAST4.rymx", &assign_GovGAST4_rymx); - assign_map.emplace("cim:GovGAST4.ta", &assign_GovGAST4_ta); - assign_map.emplace("cim:GovGAST4.tc", &assign_GovGAST4_tc); - assign_map.emplace("cim:GovGAST4.tcm", &assign_GovGAST4_tcm); - assign_map.emplace("cim:GovGAST4.tm", &assign_GovGAST4_tm); - assign_map.emplace("cim:GovGAST4.ty", &assign_GovGAST4_ty); + assign_map.emplace("GovGAST4.bp", &assign_GovGAST4_bp); + assign_map.emplace("GovGAST4.ktm", &assign_GovGAST4_ktm); + assign_map.emplace("GovGAST4.mnef", &assign_GovGAST4_mnef); + assign_map.emplace("GovGAST4.mxef", &assign_GovGAST4_mxef); + assign_map.emplace("GovGAST4.rymn", &assign_GovGAST4_rymn); + assign_map.emplace("GovGAST4.rymx", &assign_GovGAST4_rymx); + assign_map.emplace("GovGAST4.ta", &assign_GovGAST4_ta); + assign_map.emplace("GovGAST4.tc", &assign_GovGAST4_tc); + assign_map.emplace("GovGAST4.tcm", &assign_GovGAST4_tcm); + assign_map.emplace("GovGAST4.tm", &assign_GovGAST4_tm); + assign_map.emplace("GovGAST4.ty", &assign_GovGAST4_ty); } void GovGAST4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void GovGAST4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGAST4.bp", &get_GovGAST4_bp); - get_map.emplace("cim:GovGAST4.ktm", &get_GovGAST4_ktm); - get_map.emplace("cim:GovGAST4.mnef", &get_GovGAST4_mnef); - get_map.emplace("cim:GovGAST4.mxef", &get_GovGAST4_mxef); - get_map.emplace("cim:GovGAST4.rymn", &get_GovGAST4_rymn); - get_map.emplace("cim:GovGAST4.rymx", &get_GovGAST4_rymx); - get_map.emplace("cim:GovGAST4.ta", &get_GovGAST4_ta); - get_map.emplace("cim:GovGAST4.tc", &get_GovGAST4_tc); - get_map.emplace("cim:GovGAST4.tcm", &get_GovGAST4_tcm); - get_map.emplace("cim:GovGAST4.tm", &get_GovGAST4_tm); - get_map.emplace("cim:GovGAST4.ty", &get_GovGAST4_ty); + get_map.emplace("GovGAST4.bp", &get_GovGAST4_bp); + get_map.emplace("GovGAST4.ktm", &get_GovGAST4_ktm); + get_map.emplace("GovGAST4.mnef", &get_GovGAST4_mnef); + get_map.emplace("GovGAST4.mxef", &get_GovGAST4_mxef); + get_map.emplace("GovGAST4.rymn", &get_GovGAST4_rymn); + get_map.emplace("GovGAST4.rymx", &get_GovGAST4_rymx); + get_map.emplace("GovGAST4.ta", &get_GovGAST4_ta); + get_map.emplace("GovGAST4.tc", &get_GovGAST4_tc); + get_map.emplace("GovGAST4.tcm", &get_GovGAST4_tcm); + get_map.emplace("GovGAST4.tm", &get_GovGAST4_tm); + get_map.emplace("GovGAST4.ty", &get_GovGAST4_ty); } void GovGAST4::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void GovGAST4::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGAST4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGAST4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGAST4::declare() { return BaseClassDefiner(GovGAST4::addConstructToMap, GovGAST4::addPrimitiveAssignFnsToMap, GovGAST4::addClassAssignFnsToMap, GovGAST4::debugName); } +std::map GovGAST4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGAST4_factory() diff --git a/CGMES_3.0.0/GovGAST4.hpp b/CGMES_3.0.0/GovGAST4.hpp index 9aa9605ab..a1f0331e4 100644 --- a/CGMES_3.0.0/GovGAST4.hpp +++ b/CGMES_3.0.0/GovGAST4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGAST4_factory(); diff --git a/CGMES_3.0.0/GovGASTWD.cpp b/CGMES_3.0.0/GovGASTWD.cpp index 06560d02d..66513f34b 100644 --- a/CGMES_3.0.0/GovGASTWD.cpp +++ b/CGMES_3.0.0/GovGASTWD.cpp @@ -11,64 +11,96 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovGASTWD(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovGASTWD.a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.af1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.af2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.bf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.bf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.c", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.cf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.ecr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.etd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.k6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kdroop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tcd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.trate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovGASTWD.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovGASTWD::GovGASTWD() {} GovGASTWD::~GovGASTWD() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovGASTWD.a", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.af1", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.af2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.b", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.bf1", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.bf2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.c", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.cf2", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.ecr", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.etd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k3", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k4", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k5", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.k6", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kdroop", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kf", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.ki", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.kp", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.mwbase", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t3", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t4", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.t5", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tc", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tcd", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.td", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tf", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tmax", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tmin", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tr", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.trate", { CGMESProfile::DY, } }, - { "cim:GovGASTWD.tt", { CGMESProfile::DY, } }, -}; - -std::list -GovGASTWD::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovGASTWD::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovGASTWD::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovGASTWD::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovGASTWD::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovGASTWD::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovGASTWD::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovGASTWD::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovGASTWD::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovGASTWD_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1036,44 +1068,44 @@ const char* GovGASTWD::debugString() const void GovGASTWD::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovGASTWD", &GovGASTWD_factory); + factory_map.emplace("GovGASTWD", &GovGASTWD_factory); } void GovGASTWD::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovGASTWD.a", &assign_GovGASTWD_a); - assign_map.emplace("cim:GovGASTWD.af1", &assign_GovGASTWD_af1); - assign_map.emplace("cim:GovGASTWD.af2", &assign_GovGASTWD_af2); - assign_map.emplace("cim:GovGASTWD.b", &assign_GovGASTWD_b); - assign_map.emplace("cim:GovGASTWD.bf1", &assign_GovGASTWD_bf1); - assign_map.emplace("cim:GovGASTWD.bf2", &assign_GovGASTWD_bf2); - assign_map.emplace("cim:GovGASTWD.c", &assign_GovGASTWD_c); - assign_map.emplace("cim:GovGASTWD.cf2", &assign_GovGASTWD_cf2); - assign_map.emplace("cim:GovGASTWD.ecr", &assign_GovGASTWD_ecr); - assign_map.emplace("cim:GovGASTWD.etd", &assign_GovGASTWD_etd); - assign_map.emplace("cim:GovGASTWD.k3", &assign_GovGASTWD_k3); - assign_map.emplace("cim:GovGASTWD.k4", &assign_GovGASTWD_k4); - assign_map.emplace("cim:GovGASTWD.k5", &assign_GovGASTWD_k5); - assign_map.emplace("cim:GovGASTWD.k6", &assign_GovGASTWD_k6); - assign_map.emplace("cim:GovGASTWD.kd", &assign_GovGASTWD_kd); - assign_map.emplace("cim:GovGASTWD.kdroop", &assign_GovGASTWD_kdroop); - assign_map.emplace("cim:GovGASTWD.kf", &assign_GovGASTWD_kf); - assign_map.emplace("cim:GovGASTWD.ki", &assign_GovGASTWD_ki); - assign_map.emplace("cim:GovGASTWD.kp", &assign_GovGASTWD_kp); - assign_map.emplace("cim:GovGASTWD.mwbase", &assign_GovGASTWD_mwbase); - assign_map.emplace("cim:GovGASTWD.t", &assign_GovGASTWD_t); - assign_map.emplace("cim:GovGASTWD.t3", &assign_GovGASTWD_t3); - assign_map.emplace("cim:GovGASTWD.t4", &assign_GovGASTWD_t4); - assign_map.emplace("cim:GovGASTWD.t5", &assign_GovGASTWD_t5); - assign_map.emplace("cim:GovGASTWD.tc", &assign_GovGASTWD_tc); - assign_map.emplace("cim:GovGASTWD.tcd", &assign_GovGASTWD_tcd); - assign_map.emplace("cim:GovGASTWD.td", &assign_GovGASTWD_td); - assign_map.emplace("cim:GovGASTWD.tf", &assign_GovGASTWD_tf); - assign_map.emplace("cim:GovGASTWD.tmax", &assign_GovGASTWD_tmax); - assign_map.emplace("cim:GovGASTWD.tmin", &assign_GovGASTWD_tmin); - assign_map.emplace("cim:GovGASTWD.tr", &assign_GovGASTWD_tr); - assign_map.emplace("cim:GovGASTWD.trate", &assign_GovGASTWD_trate); - assign_map.emplace("cim:GovGASTWD.tt", &assign_GovGASTWD_tt); + assign_map.emplace("GovGASTWD.a", &assign_GovGASTWD_a); + assign_map.emplace("GovGASTWD.af1", &assign_GovGASTWD_af1); + assign_map.emplace("GovGASTWD.af2", &assign_GovGASTWD_af2); + assign_map.emplace("GovGASTWD.b", &assign_GovGASTWD_b); + assign_map.emplace("GovGASTWD.bf1", &assign_GovGASTWD_bf1); + assign_map.emplace("GovGASTWD.bf2", &assign_GovGASTWD_bf2); + assign_map.emplace("GovGASTWD.c", &assign_GovGASTWD_c); + assign_map.emplace("GovGASTWD.cf2", &assign_GovGASTWD_cf2); + assign_map.emplace("GovGASTWD.ecr", &assign_GovGASTWD_ecr); + assign_map.emplace("GovGASTWD.etd", &assign_GovGASTWD_etd); + assign_map.emplace("GovGASTWD.k3", &assign_GovGASTWD_k3); + assign_map.emplace("GovGASTWD.k4", &assign_GovGASTWD_k4); + assign_map.emplace("GovGASTWD.k5", &assign_GovGASTWD_k5); + assign_map.emplace("GovGASTWD.k6", &assign_GovGASTWD_k6); + assign_map.emplace("GovGASTWD.kd", &assign_GovGASTWD_kd); + assign_map.emplace("GovGASTWD.kdroop", &assign_GovGASTWD_kdroop); + assign_map.emplace("GovGASTWD.kf", &assign_GovGASTWD_kf); + assign_map.emplace("GovGASTWD.ki", &assign_GovGASTWD_ki); + assign_map.emplace("GovGASTWD.kp", &assign_GovGASTWD_kp); + assign_map.emplace("GovGASTWD.mwbase", &assign_GovGASTWD_mwbase); + assign_map.emplace("GovGASTWD.t", &assign_GovGASTWD_t); + assign_map.emplace("GovGASTWD.t3", &assign_GovGASTWD_t3); + assign_map.emplace("GovGASTWD.t4", &assign_GovGASTWD_t4); + assign_map.emplace("GovGASTWD.t5", &assign_GovGASTWD_t5); + assign_map.emplace("GovGASTWD.tc", &assign_GovGASTWD_tc); + assign_map.emplace("GovGASTWD.tcd", &assign_GovGASTWD_tcd); + assign_map.emplace("GovGASTWD.td", &assign_GovGASTWD_td); + assign_map.emplace("GovGASTWD.tf", &assign_GovGASTWD_tf); + assign_map.emplace("GovGASTWD.tmax", &assign_GovGASTWD_tmax); + assign_map.emplace("GovGASTWD.tmin", &assign_GovGASTWD_tmin); + assign_map.emplace("GovGASTWD.tr", &assign_GovGASTWD_tr); + assign_map.emplace("GovGASTWD.trate", &assign_GovGASTWD_trate); + assign_map.emplace("GovGASTWD.tt", &assign_GovGASTWD_tt); } void GovGASTWD::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1083,39 +1115,39 @@ void GovGASTWD::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovGASTWD.a", &get_GovGASTWD_a); - get_map.emplace("cim:GovGASTWD.af1", &get_GovGASTWD_af1); - get_map.emplace("cim:GovGASTWD.af2", &get_GovGASTWD_af2); - get_map.emplace("cim:GovGASTWD.b", &get_GovGASTWD_b); - get_map.emplace("cim:GovGASTWD.bf1", &get_GovGASTWD_bf1); - get_map.emplace("cim:GovGASTWD.bf2", &get_GovGASTWD_bf2); - get_map.emplace("cim:GovGASTWD.c", &get_GovGASTWD_c); - get_map.emplace("cim:GovGASTWD.cf2", &get_GovGASTWD_cf2); - get_map.emplace("cim:GovGASTWD.ecr", &get_GovGASTWD_ecr); - get_map.emplace("cim:GovGASTWD.etd", &get_GovGASTWD_etd); - get_map.emplace("cim:GovGASTWD.k3", &get_GovGASTWD_k3); - get_map.emplace("cim:GovGASTWD.k4", &get_GovGASTWD_k4); - get_map.emplace("cim:GovGASTWD.k5", &get_GovGASTWD_k5); - get_map.emplace("cim:GovGASTWD.k6", &get_GovGASTWD_k6); - get_map.emplace("cim:GovGASTWD.kd", &get_GovGASTWD_kd); - get_map.emplace("cim:GovGASTWD.kdroop", &get_GovGASTWD_kdroop); - get_map.emplace("cim:GovGASTWD.kf", &get_GovGASTWD_kf); - get_map.emplace("cim:GovGASTWD.ki", &get_GovGASTWD_ki); - get_map.emplace("cim:GovGASTWD.kp", &get_GovGASTWD_kp); - get_map.emplace("cim:GovGASTWD.mwbase", &get_GovGASTWD_mwbase); - get_map.emplace("cim:GovGASTWD.t", &get_GovGASTWD_t); - get_map.emplace("cim:GovGASTWD.t3", &get_GovGASTWD_t3); - get_map.emplace("cim:GovGASTWD.t4", &get_GovGASTWD_t4); - get_map.emplace("cim:GovGASTWD.t5", &get_GovGASTWD_t5); - get_map.emplace("cim:GovGASTWD.tc", &get_GovGASTWD_tc); - get_map.emplace("cim:GovGASTWD.tcd", &get_GovGASTWD_tcd); - get_map.emplace("cim:GovGASTWD.td", &get_GovGASTWD_td); - get_map.emplace("cim:GovGASTWD.tf", &get_GovGASTWD_tf); - get_map.emplace("cim:GovGASTWD.tmax", &get_GovGASTWD_tmax); - get_map.emplace("cim:GovGASTWD.tmin", &get_GovGASTWD_tmin); - get_map.emplace("cim:GovGASTWD.tr", &get_GovGASTWD_tr); - get_map.emplace("cim:GovGASTWD.trate", &get_GovGASTWD_trate); - get_map.emplace("cim:GovGASTWD.tt", &get_GovGASTWD_tt); + get_map.emplace("GovGASTWD.a", &get_GovGASTWD_a); + get_map.emplace("GovGASTWD.af1", &get_GovGASTWD_af1); + get_map.emplace("GovGASTWD.af2", &get_GovGASTWD_af2); + get_map.emplace("GovGASTWD.b", &get_GovGASTWD_b); + get_map.emplace("GovGASTWD.bf1", &get_GovGASTWD_bf1); + get_map.emplace("GovGASTWD.bf2", &get_GovGASTWD_bf2); + get_map.emplace("GovGASTWD.c", &get_GovGASTWD_c); + get_map.emplace("GovGASTWD.cf2", &get_GovGASTWD_cf2); + get_map.emplace("GovGASTWD.ecr", &get_GovGASTWD_ecr); + get_map.emplace("GovGASTWD.etd", &get_GovGASTWD_etd); + get_map.emplace("GovGASTWD.k3", &get_GovGASTWD_k3); + get_map.emplace("GovGASTWD.k4", &get_GovGASTWD_k4); + get_map.emplace("GovGASTWD.k5", &get_GovGASTWD_k5); + get_map.emplace("GovGASTWD.k6", &get_GovGASTWD_k6); + get_map.emplace("GovGASTWD.kd", &get_GovGASTWD_kd); + get_map.emplace("GovGASTWD.kdroop", &get_GovGASTWD_kdroop); + get_map.emplace("GovGASTWD.kf", &get_GovGASTWD_kf); + get_map.emplace("GovGASTWD.ki", &get_GovGASTWD_ki); + get_map.emplace("GovGASTWD.kp", &get_GovGASTWD_kp); + get_map.emplace("GovGASTWD.mwbase", &get_GovGASTWD_mwbase); + get_map.emplace("GovGASTWD.t", &get_GovGASTWD_t); + get_map.emplace("GovGASTWD.t3", &get_GovGASTWD_t3); + get_map.emplace("GovGASTWD.t4", &get_GovGASTWD_t4); + get_map.emplace("GovGASTWD.t5", &get_GovGASTWD_t5); + get_map.emplace("GovGASTWD.tc", &get_GovGASTWD_tc); + get_map.emplace("GovGASTWD.tcd", &get_GovGASTWD_tcd); + get_map.emplace("GovGASTWD.td", &get_GovGASTWD_td); + get_map.emplace("GovGASTWD.tf", &get_GovGASTWD_tf); + get_map.emplace("GovGASTWD.tmax", &get_GovGASTWD_tmax); + get_map.emplace("GovGASTWD.tmin", &get_GovGASTWD_tmin); + get_map.emplace("GovGASTWD.tr", &get_GovGASTWD_tr); + get_map.emplace("GovGASTWD.trate", &get_GovGASTWD_trate); + get_map.emplace("GovGASTWD.tt", &get_GovGASTWD_tt); } void GovGASTWD::addClassGetFnsToMap(std::map& get_map) const @@ -1128,11 +1160,25 @@ void GovGASTWD::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovGASTWD::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovGASTWD" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovGASTWD::declare() { return BaseClassDefiner(GovGASTWD::addConstructToMap, GovGASTWD::addPrimitiveAssignFnsToMap, GovGASTWD::addClassAssignFnsToMap, GovGASTWD::debugName); } +std::map GovGASTWD::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovGASTWD_factory() diff --git a/CGMES_3.0.0/GovGASTWD.hpp b/CGMES_3.0.0/GovGASTWD.hpp index c7e31a27b..82b6b4d5e 100644 --- a/CGMES_3.0.0/GovGASTWD.hpp +++ b/CGMES_3.0.0/GovGASTWD.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "PU.hpp" @@ -131,8 +132,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -140,7 +148,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovGASTWD_factory(); diff --git a/CGMES_3.0.0/GovHydro1.cpp b/CGMES_3.0.0/GovHydro1.cpp index ba0d33f7d..6df720f71 100644 --- a/CGMES_3.0.0/GovHydro1.cpp +++ b/CGMES_3.0.0/GovHydro1.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro1.at", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.dturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.gmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.gmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.hdam", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.qnl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.rperm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.rtemp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro1.velm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro1::GovHydro1() {} GovHydro1::~GovHydro1() {} -static const std::list PossibleProfilesForClass = +const std::list& GovHydro1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovHydro1::getClassNamespaceUrl() const { - { "cim:GovHydro1.at", { CGMESProfile::DY, } }, - { "cim:GovHydro1.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro1.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydro1.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydro1.hdam", { CGMESProfile::DY, } }, - { "cim:GovHydro1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro1.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro1.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro1.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tf", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro1.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro1.velm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovHydro1::getPossibleProfilesForClass() const +const std::string& GovHydro1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovHydro1::getPossibleProfilesForAttributes() const +const std::list& GovHydro1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro1_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* GovHydro1::debugString() const void GovHydro1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro1", &GovHydro1_factory); + factory_map.emplace("GovHydro1", &GovHydro1_factory); } void GovHydro1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro1.at", &assign_GovHydro1_at); - assign_map.emplace("cim:GovHydro1.dturb", &assign_GovHydro1_dturb); - assign_map.emplace("cim:GovHydro1.gmax", &assign_GovHydro1_gmax); - assign_map.emplace("cim:GovHydro1.gmin", &assign_GovHydro1_gmin); - assign_map.emplace("cim:GovHydro1.hdam", &assign_GovHydro1_hdam); - assign_map.emplace("cim:GovHydro1.mwbase", &assign_GovHydro1_mwbase); - assign_map.emplace("cim:GovHydro1.qnl", &assign_GovHydro1_qnl); - assign_map.emplace("cim:GovHydro1.rperm", &assign_GovHydro1_rperm); - assign_map.emplace("cim:GovHydro1.rtemp", &assign_GovHydro1_rtemp); - assign_map.emplace("cim:GovHydro1.tf", &assign_GovHydro1_tf); - assign_map.emplace("cim:GovHydro1.tg", &assign_GovHydro1_tg); - assign_map.emplace("cim:GovHydro1.tr", &assign_GovHydro1_tr); - assign_map.emplace("cim:GovHydro1.tw", &assign_GovHydro1_tw); - assign_map.emplace("cim:GovHydro1.velm", &assign_GovHydro1_velm); + assign_map.emplace("GovHydro1.at", &assign_GovHydro1_at); + assign_map.emplace("GovHydro1.dturb", &assign_GovHydro1_dturb); + assign_map.emplace("GovHydro1.gmax", &assign_GovHydro1_gmax); + assign_map.emplace("GovHydro1.gmin", &assign_GovHydro1_gmin); + assign_map.emplace("GovHydro1.hdam", &assign_GovHydro1_hdam); + assign_map.emplace("GovHydro1.mwbase", &assign_GovHydro1_mwbase); + assign_map.emplace("GovHydro1.qnl", &assign_GovHydro1_qnl); + assign_map.emplace("GovHydro1.rperm", &assign_GovHydro1_rperm); + assign_map.emplace("GovHydro1.rtemp", &assign_GovHydro1_rtemp); + assign_map.emplace("GovHydro1.tf", &assign_GovHydro1_tf); + assign_map.emplace("GovHydro1.tg", &assign_GovHydro1_tg); + assign_map.emplace("GovHydro1.tr", &assign_GovHydro1_tr); + assign_map.emplace("GovHydro1.tw", &assign_GovHydro1_tw); + assign_map.emplace("GovHydro1.velm", &assign_GovHydro1_velm); } void GovHydro1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,20 +526,20 @@ void GovHydro1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro1.at", &get_GovHydro1_at); - get_map.emplace("cim:GovHydro1.dturb", &get_GovHydro1_dturb); - get_map.emplace("cim:GovHydro1.gmax", &get_GovHydro1_gmax); - get_map.emplace("cim:GovHydro1.gmin", &get_GovHydro1_gmin); - get_map.emplace("cim:GovHydro1.hdam", &get_GovHydro1_hdam); - get_map.emplace("cim:GovHydro1.mwbase", &get_GovHydro1_mwbase); - get_map.emplace("cim:GovHydro1.qnl", &get_GovHydro1_qnl); - get_map.emplace("cim:GovHydro1.rperm", &get_GovHydro1_rperm); - get_map.emplace("cim:GovHydro1.rtemp", &get_GovHydro1_rtemp); - get_map.emplace("cim:GovHydro1.tf", &get_GovHydro1_tf); - get_map.emplace("cim:GovHydro1.tg", &get_GovHydro1_tg); - get_map.emplace("cim:GovHydro1.tr", &get_GovHydro1_tr); - get_map.emplace("cim:GovHydro1.tw", &get_GovHydro1_tw); - get_map.emplace("cim:GovHydro1.velm", &get_GovHydro1_velm); + get_map.emplace("GovHydro1.at", &get_GovHydro1_at); + get_map.emplace("GovHydro1.dturb", &get_GovHydro1_dturb); + get_map.emplace("GovHydro1.gmax", &get_GovHydro1_gmax); + get_map.emplace("GovHydro1.gmin", &get_GovHydro1_gmin); + get_map.emplace("GovHydro1.hdam", &get_GovHydro1_hdam); + get_map.emplace("GovHydro1.mwbase", &get_GovHydro1_mwbase); + get_map.emplace("GovHydro1.qnl", &get_GovHydro1_qnl); + get_map.emplace("GovHydro1.rperm", &get_GovHydro1_rperm); + get_map.emplace("GovHydro1.rtemp", &get_GovHydro1_rtemp); + get_map.emplace("GovHydro1.tf", &get_GovHydro1_tf); + get_map.emplace("GovHydro1.tg", &get_GovHydro1_tg); + get_map.emplace("GovHydro1.tr", &get_GovHydro1_tr); + get_map.emplace("GovHydro1.tw", &get_GovHydro1_tw); + get_map.emplace("GovHydro1.velm", &get_GovHydro1_velm); } void GovHydro1::addClassGetFnsToMap(std::map& get_map) const @@ -520,11 +552,25 @@ void GovHydro1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro1::declare() { return BaseClassDefiner(GovHydro1::addConstructToMap, GovHydro1::addPrimitiveAssignFnsToMap, GovHydro1::addClassAssignFnsToMap, GovHydro1::debugName); } +std::map GovHydro1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro1_factory() diff --git a/CGMES_3.0.0/GovHydro1.hpp b/CGMES_3.0.0/GovHydro1.hpp index 2639fa8d6..1c25a69ef 100644 --- a/CGMES_3.0.0/GovHydro1.hpp +++ b/CGMES_3.0.0/GovHydro1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "PU.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro1_factory(); diff --git a/CGMES_3.0.0/GovHydro2.cpp b/CGMES_3.0.0/GovHydro2.cpp index 83cb2dbf7..2217ac8bb 100644 --- a/CGMES_3.0.0/GovHydro2.cpp +++ b/CGMES_3.0.0/GovHydro2.cpp @@ -11,60 +11,92 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro2.aturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.bturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.eps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.kturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.rperm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.rtemp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.uc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro2.uo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro2::GovHydro2() {} GovHydro2::~GovHydro2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro2.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro2.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydro2.kturb", { CGMESProfile::DY, } }, - { "cim:GovHydro2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydro2.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydro2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro2.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro2.uc", { CGMESProfile::DY, } }, - { "cim:GovHydro2.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro2_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -916,40 +948,40 @@ const char* GovHydro2::debugString() const void GovHydro2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro2", &GovHydro2_factory); + factory_map.emplace("GovHydro2", &GovHydro2_factory); } void GovHydro2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro2.aturb", &assign_GovHydro2_aturb); - assign_map.emplace("cim:GovHydro2.bturb", &assign_GovHydro2_bturb); - assign_map.emplace("cim:GovHydro2.db1", &assign_GovHydro2_db1); - assign_map.emplace("cim:GovHydro2.db2", &assign_GovHydro2_db2); - assign_map.emplace("cim:GovHydro2.eps", &assign_GovHydro2_eps); - assign_map.emplace("cim:GovHydro2.gv1", &assign_GovHydro2_gv1); - assign_map.emplace("cim:GovHydro2.gv2", &assign_GovHydro2_gv2); - assign_map.emplace("cim:GovHydro2.gv3", &assign_GovHydro2_gv3); - assign_map.emplace("cim:GovHydro2.gv4", &assign_GovHydro2_gv4); - assign_map.emplace("cim:GovHydro2.gv5", &assign_GovHydro2_gv5); - assign_map.emplace("cim:GovHydro2.gv6", &assign_GovHydro2_gv6); - assign_map.emplace("cim:GovHydro2.kturb", &assign_GovHydro2_kturb); - assign_map.emplace("cim:GovHydro2.mwbase", &assign_GovHydro2_mwbase); - assign_map.emplace("cim:GovHydro2.pgv1", &assign_GovHydro2_pgv1); - assign_map.emplace("cim:GovHydro2.pgv2", &assign_GovHydro2_pgv2); - assign_map.emplace("cim:GovHydro2.pgv3", &assign_GovHydro2_pgv3); - assign_map.emplace("cim:GovHydro2.pgv4", &assign_GovHydro2_pgv4); - assign_map.emplace("cim:GovHydro2.pgv5", &assign_GovHydro2_pgv5); - assign_map.emplace("cim:GovHydro2.pgv6", &assign_GovHydro2_pgv6); - assign_map.emplace("cim:GovHydro2.pmax", &assign_GovHydro2_pmax); - assign_map.emplace("cim:GovHydro2.pmin", &assign_GovHydro2_pmin); - assign_map.emplace("cim:GovHydro2.rperm", &assign_GovHydro2_rperm); - assign_map.emplace("cim:GovHydro2.rtemp", &assign_GovHydro2_rtemp); - assign_map.emplace("cim:GovHydro2.tg", &assign_GovHydro2_tg); - assign_map.emplace("cim:GovHydro2.tp", &assign_GovHydro2_tp); - assign_map.emplace("cim:GovHydro2.tr", &assign_GovHydro2_tr); - assign_map.emplace("cim:GovHydro2.tw", &assign_GovHydro2_tw); - assign_map.emplace("cim:GovHydro2.uc", &assign_GovHydro2_uc); - assign_map.emplace("cim:GovHydro2.uo", &assign_GovHydro2_uo); + assign_map.emplace("GovHydro2.aturb", &assign_GovHydro2_aturb); + assign_map.emplace("GovHydro2.bturb", &assign_GovHydro2_bturb); + assign_map.emplace("GovHydro2.db1", &assign_GovHydro2_db1); + assign_map.emplace("GovHydro2.db2", &assign_GovHydro2_db2); + assign_map.emplace("GovHydro2.eps", &assign_GovHydro2_eps); + assign_map.emplace("GovHydro2.gv1", &assign_GovHydro2_gv1); + assign_map.emplace("GovHydro2.gv2", &assign_GovHydro2_gv2); + assign_map.emplace("GovHydro2.gv3", &assign_GovHydro2_gv3); + assign_map.emplace("GovHydro2.gv4", &assign_GovHydro2_gv4); + assign_map.emplace("GovHydro2.gv5", &assign_GovHydro2_gv5); + assign_map.emplace("GovHydro2.gv6", &assign_GovHydro2_gv6); + assign_map.emplace("GovHydro2.kturb", &assign_GovHydro2_kturb); + assign_map.emplace("GovHydro2.mwbase", &assign_GovHydro2_mwbase); + assign_map.emplace("GovHydro2.pgv1", &assign_GovHydro2_pgv1); + assign_map.emplace("GovHydro2.pgv2", &assign_GovHydro2_pgv2); + assign_map.emplace("GovHydro2.pgv3", &assign_GovHydro2_pgv3); + assign_map.emplace("GovHydro2.pgv4", &assign_GovHydro2_pgv4); + assign_map.emplace("GovHydro2.pgv5", &assign_GovHydro2_pgv5); + assign_map.emplace("GovHydro2.pgv6", &assign_GovHydro2_pgv6); + assign_map.emplace("GovHydro2.pmax", &assign_GovHydro2_pmax); + assign_map.emplace("GovHydro2.pmin", &assign_GovHydro2_pmin); + assign_map.emplace("GovHydro2.rperm", &assign_GovHydro2_rperm); + assign_map.emplace("GovHydro2.rtemp", &assign_GovHydro2_rtemp); + assign_map.emplace("GovHydro2.tg", &assign_GovHydro2_tg); + assign_map.emplace("GovHydro2.tp", &assign_GovHydro2_tp); + assign_map.emplace("GovHydro2.tr", &assign_GovHydro2_tr); + assign_map.emplace("GovHydro2.tw", &assign_GovHydro2_tw); + assign_map.emplace("GovHydro2.uc", &assign_GovHydro2_uc); + assign_map.emplace("GovHydro2.uo", &assign_GovHydro2_uo); } void GovHydro2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -959,35 +991,35 @@ void GovHydro2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro2.aturb", &get_GovHydro2_aturb); - get_map.emplace("cim:GovHydro2.bturb", &get_GovHydro2_bturb); - get_map.emplace("cim:GovHydro2.db1", &get_GovHydro2_db1); - get_map.emplace("cim:GovHydro2.db2", &get_GovHydro2_db2); - get_map.emplace("cim:GovHydro2.eps", &get_GovHydro2_eps); - get_map.emplace("cim:GovHydro2.gv1", &get_GovHydro2_gv1); - get_map.emplace("cim:GovHydro2.gv2", &get_GovHydro2_gv2); - get_map.emplace("cim:GovHydro2.gv3", &get_GovHydro2_gv3); - get_map.emplace("cim:GovHydro2.gv4", &get_GovHydro2_gv4); - get_map.emplace("cim:GovHydro2.gv5", &get_GovHydro2_gv5); - get_map.emplace("cim:GovHydro2.gv6", &get_GovHydro2_gv6); - get_map.emplace("cim:GovHydro2.kturb", &get_GovHydro2_kturb); - get_map.emplace("cim:GovHydro2.mwbase", &get_GovHydro2_mwbase); - get_map.emplace("cim:GovHydro2.pgv1", &get_GovHydro2_pgv1); - get_map.emplace("cim:GovHydro2.pgv2", &get_GovHydro2_pgv2); - get_map.emplace("cim:GovHydro2.pgv3", &get_GovHydro2_pgv3); - get_map.emplace("cim:GovHydro2.pgv4", &get_GovHydro2_pgv4); - get_map.emplace("cim:GovHydro2.pgv5", &get_GovHydro2_pgv5); - get_map.emplace("cim:GovHydro2.pgv6", &get_GovHydro2_pgv6); - get_map.emplace("cim:GovHydro2.pmax", &get_GovHydro2_pmax); - get_map.emplace("cim:GovHydro2.pmin", &get_GovHydro2_pmin); - get_map.emplace("cim:GovHydro2.rperm", &get_GovHydro2_rperm); - get_map.emplace("cim:GovHydro2.rtemp", &get_GovHydro2_rtemp); - get_map.emplace("cim:GovHydro2.tg", &get_GovHydro2_tg); - get_map.emplace("cim:GovHydro2.tp", &get_GovHydro2_tp); - get_map.emplace("cim:GovHydro2.tr", &get_GovHydro2_tr); - get_map.emplace("cim:GovHydro2.tw", &get_GovHydro2_tw); - get_map.emplace("cim:GovHydro2.uc", &get_GovHydro2_uc); - get_map.emplace("cim:GovHydro2.uo", &get_GovHydro2_uo); + get_map.emplace("GovHydro2.aturb", &get_GovHydro2_aturb); + get_map.emplace("GovHydro2.bturb", &get_GovHydro2_bturb); + get_map.emplace("GovHydro2.db1", &get_GovHydro2_db1); + get_map.emplace("GovHydro2.db2", &get_GovHydro2_db2); + get_map.emplace("GovHydro2.eps", &get_GovHydro2_eps); + get_map.emplace("GovHydro2.gv1", &get_GovHydro2_gv1); + get_map.emplace("GovHydro2.gv2", &get_GovHydro2_gv2); + get_map.emplace("GovHydro2.gv3", &get_GovHydro2_gv3); + get_map.emplace("GovHydro2.gv4", &get_GovHydro2_gv4); + get_map.emplace("GovHydro2.gv5", &get_GovHydro2_gv5); + get_map.emplace("GovHydro2.gv6", &get_GovHydro2_gv6); + get_map.emplace("GovHydro2.kturb", &get_GovHydro2_kturb); + get_map.emplace("GovHydro2.mwbase", &get_GovHydro2_mwbase); + get_map.emplace("GovHydro2.pgv1", &get_GovHydro2_pgv1); + get_map.emplace("GovHydro2.pgv2", &get_GovHydro2_pgv2); + get_map.emplace("GovHydro2.pgv3", &get_GovHydro2_pgv3); + get_map.emplace("GovHydro2.pgv4", &get_GovHydro2_pgv4); + get_map.emplace("GovHydro2.pgv5", &get_GovHydro2_pgv5); + get_map.emplace("GovHydro2.pgv6", &get_GovHydro2_pgv6); + get_map.emplace("GovHydro2.pmax", &get_GovHydro2_pmax); + get_map.emplace("GovHydro2.pmin", &get_GovHydro2_pmin); + get_map.emplace("GovHydro2.rperm", &get_GovHydro2_rperm); + get_map.emplace("GovHydro2.rtemp", &get_GovHydro2_rtemp); + get_map.emplace("GovHydro2.tg", &get_GovHydro2_tg); + get_map.emplace("GovHydro2.tp", &get_GovHydro2_tp); + get_map.emplace("GovHydro2.tr", &get_GovHydro2_tr); + get_map.emplace("GovHydro2.tw", &get_GovHydro2_tw); + get_map.emplace("GovHydro2.uc", &get_GovHydro2_uc); + get_map.emplace("GovHydro2.uo", &get_GovHydro2_uo); } void GovHydro2::addClassGetFnsToMap(std::map& get_map) const @@ -1000,11 +1032,25 @@ void GovHydro2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro2::declare() { return BaseClassDefiner(GovHydro2::addConstructToMap, GovHydro2::addPrimitiveAssignFnsToMap, GovHydro2::addClassAssignFnsToMap, GovHydro2::debugName); } +std::map GovHydro2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro2_factory() diff --git a/CGMES_3.0.0/GovHydro2.hpp b/CGMES_3.0.0/GovHydro2.hpp index ea8e08229..a7c9b9d40 100644 --- a/CGMES_3.0.0/GovHydro2.hpp +++ b/CGMES_3.0.0/GovHydro2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "Frequency.hpp" @@ -119,8 +120,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -128,7 +136,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro2_factory(); diff --git a/CGMES_3.0.0/GovHydro3.cpp b/CGMES_3.0.0/GovHydro3.cpp index e942b6ea1..31bf7210e 100644 --- a/CGMES_3.0.0/GovHydro3.cpp +++ b/CGMES_3.0.0/GovHydro3.cpp @@ -11,67 +11,99 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro3(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro3.at", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.dturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.eps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.governorControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.h0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.qnl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.relec", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.rgate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.velcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro3.velop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro3::GovHydro3() {} GovHydro3::~GovHydro3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro3.at", { CGMESProfile::DY, } }, - { "cim:GovHydro3.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro3.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro3.governorControl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro3.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydro3.h0", { CGMESProfile::DY, } }, - { "cim:GovHydro3.k1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.k2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.kg", { CGMESProfile::DY, } }, - { "cim:GovHydro3.ki", { CGMESProfile::DY, } }, - { "cim:GovHydro3.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydro3.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydro3.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.relec", { CGMESProfile::DY, } }, - { "cim:GovHydro3.rgate", { CGMESProfile::DY, } }, - { "cim:GovHydro3.td", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tf", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tt", { CGMESProfile::DY, } }, - { "cim:GovHydro3.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro3.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydro3.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro3_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1126,47 +1158,47 @@ const char* GovHydro3::debugString() const void GovHydro3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro3", &GovHydro3_factory); + factory_map.emplace("GovHydro3", &GovHydro3_factory); } void GovHydro3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro3.at", &assign_GovHydro3_at); - assign_map.emplace("cim:GovHydro3.db1", &assign_GovHydro3_db1); - assign_map.emplace("cim:GovHydro3.db2", &assign_GovHydro3_db2); - assign_map.emplace("cim:GovHydro3.dturb", &assign_GovHydro3_dturb); - assign_map.emplace("cim:GovHydro3.eps", &assign_GovHydro3_eps); - assign_map.emplace("cim:GovHydro3.governorControl", &assign_GovHydro3_governorControl); - assign_map.emplace("cim:GovHydro3.gv1", &assign_GovHydro3_gv1); - assign_map.emplace("cim:GovHydro3.gv2", &assign_GovHydro3_gv2); - assign_map.emplace("cim:GovHydro3.gv3", &assign_GovHydro3_gv3); - assign_map.emplace("cim:GovHydro3.gv4", &assign_GovHydro3_gv4); - assign_map.emplace("cim:GovHydro3.gv5", &assign_GovHydro3_gv5); - assign_map.emplace("cim:GovHydro3.gv6", &assign_GovHydro3_gv6); - assign_map.emplace("cim:GovHydro3.h0", &assign_GovHydro3_h0); - assign_map.emplace("cim:GovHydro3.k1", &assign_GovHydro3_k1); - assign_map.emplace("cim:GovHydro3.k2", &assign_GovHydro3_k2); - assign_map.emplace("cim:GovHydro3.kg", &assign_GovHydro3_kg); - assign_map.emplace("cim:GovHydro3.ki", &assign_GovHydro3_ki); - assign_map.emplace("cim:GovHydro3.mwbase", &assign_GovHydro3_mwbase); - assign_map.emplace("cim:GovHydro3.pgv1", &assign_GovHydro3_pgv1); - assign_map.emplace("cim:GovHydro3.pgv2", &assign_GovHydro3_pgv2); - assign_map.emplace("cim:GovHydro3.pgv3", &assign_GovHydro3_pgv3); - assign_map.emplace("cim:GovHydro3.pgv4", &assign_GovHydro3_pgv4); - assign_map.emplace("cim:GovHydro3.pgv5", &assign_GovHydro3_pgv5); - assign_map.emplace("cim:GovHydro3.pgv6", &assign_GovHydro3_pgv6); - assign_map.emplace("cim:GovHydro3.pmax", &assign_GovHydro3_pmax); - assign_map.emplace("cim:GovHydro3.pmin", &assign_GovHydro3_pmin); - assign_map.emplace("cim:GovHydro3.qnl", &assign_GovHydro3_qnl); - assign_map.emplace("cim:GovHydro3.relec", &assign_GovHydro3_relec); - assign_map.emplace("cim:GovHydro3.rgate", &assign_GovHydro3_rgate); - assign_map.emplace("cim:GovHydro3.td", &assign_GovHydro3_td); - assign_map.emplace("cim:GovHydro3.tf", &assign_GovHydro3_tf); - assign_map.emplace("cim:GovHydro3.tp", &assign_GovHydro3_tp); - assign_map.emplace("cim:GovHydro3.tt", &assign_GovHydro3_tt); - assign_map.emplace("cim:GovHydro3.tw", &assign_GovHydro3_tw); - assign_map.emplace("cim:GovHydro3.velcl", &assign_GovHydro3_velcl); - assign_map.emplace("cim:GovHydro3.velop", &assign_GovHydro3_velop); + assign_map.emplace("GovHydro3.at", &assign_GovHydro3_at); + assign_map.emplace("GovHydro3.db1", &assign_GovHydro3_db1); + assign_map.emplace("GovHydro3.db2", &assign_GovHydro3_db2); + assign_map.emplace("GovHydro3.dturb", &assign_GovHydro3_dturb); + assign_map.emplace("GovHydro3.eps", &assign_GovHydro3_eps); + assign_map.emplace("GovHydro3.governorControl", &assign_GovHydro3_governorControl); + assign_map.emplace("GovHydro3.gv1", &assign_GovHydro3_gv1); + assign_map.emplace("GovHydro3.gv2", &assign_GovHydro3_gv2); + assign_map.emplace("GovHydro3.gv3", &assign_GovHydro3_gv3); + assign_map.emplace("GovHydro3.gv4", &assign_GovHydro3_gv4); + assign_map.emplace("GovHydro3.gv5", &assign_GovHydro3_gv5); + assign_map.emplace("GovHydro3.gv6", &assign_GovHydro3_gv6); + assign_map.emplace("GovHydro3.h0", &assign_GovHydro3_h0); + assign_map.emplace("GovHydro3.k1", &assign_GovHydro3_k1); + assign_map.emplace("GovHydro3.k2", &assign_GovHydro3_k2); + assign_map.emplace("GovHydro3.kg", &assign_GovHydro3_kg); + assign_map.emplace("GovHydro3.ki", &assign_GovHydro3_ki); + assign_map.emplace("GovHydro3.mwbase", &assign_GovHydro3_mwbase); + assign_map.emplace("GovHydro3.pgv1", &assign_GovHydro3_pgv1); + assign_map.emplace("GovHydro3.pgv2", &assign_GovHydro3_pgv2); + assign_map.emplace("GovHydro3.pgv3", &assign_GovHydro3_pgv3); + assign_map.emplace("GovHydro3.pgv4", &assign_GovHydro3_pgv4); + assign_map.emplace("GovHydro3.pgv5", &assign_GovHydro3_pgv5); + assign_map.emplace("GovHydro3.pgv6", &assign_GovHydro3_pgv6); + assign_map.emplace("GovHydro3.pmax", &assign_GovHydro3_pmax); + assign_map.emplace("GovHydro3.pmin", &assign_GovHydro3_pmin); + assign_map.emplace("GovHydro3.qnl", &assign_GovHydro3_qnl); + assign_map.emplace("GovHydro3.relec", &assign_GovHydro3_relec); + assign_map.emplace("GovHydro3.rgate", &assign_GovHydro3_rgate); + assign_map.emplace("GovHydro3.td", &assign_GovHydro3_td); + assign_map.emplace("GovHydro3.tf", &assign_GovHydro3_tf); + assign_map.emplace("GovHydro3.tp", &assign_GovHydro3_tp); + assign_map.emplace("GovHydro3.tt", &assign_GovHydro3_tt); + assign_map.emplace("GovHydro3.tw", &assign_GovHydro3_tw); + assign_map.emplace("GovHydro3.velcl", &assign_GovHydro3_velcl); + assign_map.emplace("GovHydro3.velop", &assign_GovHydro3_velop); } void GovHydro3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1176,42 +1208,42 @@ void GovHydro3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro3.at", &get_GovHydro3_at); - get_map.emplace("cim:GovHydro3.db1", &get_GovHydro3_db1); - get_map.emplace("cim:GovHydro3.db2", &get_GovHydro3_db2); - get_map.emplace("cim:GovHydro3.dturb", &get_GovHydro3_dturb); - get_map.emplace("cim:GovHydro3.eps", &get_GovHydro3_eps); - get_map.emplace("cim:GovHydro3.governorControl", &get_GovHydro3_governorControl); - get_map.emplace("cim:GovHydro3.gv1", &get_GovHydro3_gv1); - get_map.emplace("cim:GovHydro3.gv2", &get_GovHydro3_gv2); - get_map.emplace("cim:GovHydro3.gv3", &get_GovHydro3_gv3); - get_map.emplace("cim:GovHydro3.gv4", &get_GovHydro3_gv4); - get_map.emplace("cim:GovHydro3.gv5", &get_GovHydro3_gv5); - get_map.emplace("cim:GovHydro3.gv6", &get_GovHydro3_gv6); - get_map.emplace("cim:GovHydro3.h0", &get_GovHydro3_h0); - get_map.emplace("cim:GovHydro3.k1", &get_GovHydro3_k1); - get_map.emplace("cim:GovHydro3.k2", &get_GovHydro3_k2); - get_map.emplace("cim:GovHydro3.kg", &get_GovHydro3_kg); - get_map.emplace("cim:GovHydro3.ki", &get_GovHydro3_ki); - get_map.emplace("cim:GovHydro3.mwbase", &get_GovHydro3_mwbase); - get_map.emplace("cim:GovHydro3.pgv1", &get_GovHydro3_pgv1); - get_map.emplace("cim:GovHydro3.pgv2", &get_GovHydro3_pgv2); - get_map.emplace("cim:GovHydro3.pgv3", &get_GovHydro3_pgv3); - get_map.emplace("cim:GovHydro3.pgv4", &get_GovHydro3_pgv4); - get_map.emplace("cim:GovHydro3.pgv5", &get_GovHydro3_pgv5); - get_map.emplace("cim:GovHydro3.pgv6", &get_GovHydro3_pgv6); - get_map.emplace("cim:GovHydro3.pmax", &get_GovHydro3_pmax); - get_map.emplace("cim:GovHydro3.pmin", &get_GovHydro3_pmin); - get_map.emplace("cim:GovHydro3.qnl", &get_GovHydro3_qnl); - get_map.emplace("cim:GovHydro3.relec", &get_GovHydro3_relec); - get_map.emplace("cim:GovHydro3.rgate", &get_GovHydro3_rgate); - get_map.emplace("cim:GovHydro3.td", &get_GovHydro3_td); - get_map.emplace("cim:GovHydro3.tf", &get_GovHydro3_tf); - get_map.emplace("cim:GovHydro3.tp", &get_GovHydro3_tp); - get_map.emplace("cim:GovHydro3.tt", &get_GovHydro3_tt); - get_map.emplace("cim:GovHydro3.tw", &get_GovHydro3_tw); - get_map.emplace("cim:GovHydro3.velcl", &get_GovHydro3_velcl); - get_map.emplace("cim:GovHydro3.velop", &get_GovHydro3_velop); + get_map.emplace("GovHydro3.at", &get_GovHydro3_at); + get_map.emplace("GovHydro3.db1", &get_GovHydro3_db1); + get_map.emplace("GovHydro3.db2", &get_GovHydro3_db2); + get_map.emplace("GovHydro3.dturb", &get_GovHydro3_dturb); + get_map.emplace("GovHydro3.eps", &get_GovHydro3_eps); + get_map.emplace("GovHydro3.governorControl", &get_GovHydro3_governorControl); + get_map.emplace("GovHydro3.gv1", &get_GovHydro3_gv1); + get_map.emplace("GovHydro3.gv2", &get_GovHydro3_gv2); + get_map.emplace("GovHydro3.gv3", &get_GovHydro3_gv3); + get_map.emplace("GovHydro3.gv4", &get_GovHydro3_gv4); + get_map.emplace("GovHydro3.gv5", &get_GovHydro3_gv5); + get_map.emplace("GovHydro3.gv6", &get_GovHydro3_gv6); + get_map.emplace("GovHydro3.h0", &get_GovHydro3_h0); + get_map.emplace("GovHydro3.k1", &get_GovHydro3_k1); + get_map.emplace("GovHydro3.k2", &get_GovHydro3_k2); + get_map.emplace("GovHydro3.kg", &get_GovHydro3_kg); + get_map.emplace("GovHydro3.ki", &get_GovHydro3_ki); + get_map.emplace("GovHydro3.mwbase", &get_GovHydro3_mwbase); + get_map.emplace("GovHydro3.pgv1", &get_GovHydro3_pgv1); + get_map.emplace("GovHydro3.pgv2", &get_GovHydro3_pgv2); + get_map.emplace("GovHydro3.pgv3", &get_GovHydro3_pgv3); + get_map.emplace("GovHydro3.pgv4", &get_GovHydro3_pgv4); + get_map.emplace("GovHydro3.pgv5", &get_GovHydro3_pgv5); + get_map.emplace("GovHydro3.pgv6", &get_GovHydro3_pgv6); + get_map.emplace("GovHydro3.pmax", &get_GovHydro3_pmax); + get_map.emplace("GovHydro3.pmin", &get_GovHydro3_pmin); + get_map.emplace("GovHydro3.qnl", &get_GovHydro3_qnl); + get_map.emplace("GovHydro3.relec", &get_GovHydro3_relec); + get_map.emplace("GovHydro3.rgate", &get_GovHydro3_rgate); + get_map.emplace("GovHydro3.td", &get_GovHydro3_td); + get_map.emplace("GovHydro3.tf", &get_GovHydro3_tf); + get_map.emplace("GovHydro3.tp", &get_GovHydro3_tp); + get_map.emplace("GovHydro3.tt", &get_GovHydro3_tt); + get_map.emplace("GovHydro3.tw", &get_GovHydro3_tw); + get_map.emplace("GovHydro3.velcl", &get_GovHydro3_velcl); + get_map.emplace("GovHydro3.velop", &get_GovHydro3_velop); } void GovHydro3::addClassGetFnsToMap(std::map& get_map) const @@ -1224,11 +1256,25 @@ void GovHydro3::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydro3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydro3::declare() { return BaseClassDefiner(GovHydro3::addConstructToMap, GovHydro3::addPrimitiveAssignFnsToMap, GovHydro3::addClassAssignFnsToMap, GovHydro3::debugName); } +std::map GovHydro3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro3_factory() diff --git a/CGMES_3.0.0/GovHydro3.hpp b/CGMES_3.0.0/GovHydro3.hpp index f463d19a5..88a030c59 100644 --- a/CGMES_3.0.0/GovHydro3.hpp +++ b/CGMES_3.0.0/GovHydro3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -141,8 +142,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -150,7 +158,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro3_factory(); diff --git a/CGMES_3.0.0/GovHydro4.cpp b/CGMES_3.0.0/GovHydro4.cpp index eba1aec28..3e25e0c9a 100644 --- a/CGMES_3.0.0/GovHydro4.cpp +++ b/CGMES_3.0.0/GovHydro4.cpp @@ -11,70 +11,102 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydro4(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydro4.at", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.bgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.bmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.dturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.eps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.gmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.gmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.hdam", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.model", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.qnl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.rperm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.rtemp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.tblade", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.uc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydro4.uo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydro4::GovHydro4() {} GovHydro4::~GovHydro4() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydro4.at", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.bmax", { CGMESProfile::DY, } }, - { "cim:GovHydro4.db1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.db2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydro4.eps", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.hdam", { CGMESProfile::DY, } }, - { "cim:GovHydro4.model", { CGMESProfile::DY, } }, - { "cim:GovHydro4.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv0", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydro4.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydro4.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydro4.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydro4.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tblade", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tg", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tp", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tr", { CGMESProfile::DY, } }, - { "cim:GovHydro4.tw", { CGMESProfile::DY, } }, - { "cim:GovHydro4.uc", { CGMESProfile::DY, } }, - { "cim:GovHydro4.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydro4::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydro4::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydro4::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydro4::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydro4::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydro4::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydro4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydro4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydro4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydro4_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1216,50 +1248,50 @@ const char* GovHydro4::debugString() const void GovHydro4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydro4", &GovHydro4_factory); + factory_map.emplace("GovHydro4", &GovHydro4_factory); } void GovHydro4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydro4.at", &assign_GovHydro4_at); - assign_map.emplace("cim:GovHydro4.bgv0", &assign_GovHydro4_bgv0); - assign_map.emplace("cim:GovHydro4.bgv1", &assign_GovHydro4_bgv1); - assign_map.emplace("cim:GovHydro4.bgv2", &assign_GovHydro4_bgv2); - assign_map.emplace("cim:GovHydro4.bgv3", &assign_GovHydro4_bgv3); - assign_map.emplace("cim:GovHydro4.bgv4", &assign_GovHydro4_bgv4); - assign_map.emplace("cim:GovHydro4.bgv5", &assign_GovHydro4_bgv5); - assign_map.emplace("cim:GovHydro4.bmax", &assign_GovHydro4_bmax); - assign_map.emplace("cim:GovHydro4.db1", &assign_GovHydro4_db1); - assign_map.emplace("cim:GovHydro4.db2", &assign_GovHydro4_db2); - assign_map.emplace("cim:GovHydro4.dturb", &assign_GovHydro4_dturb); - assign_map.emplace("cim:GovHydro4.eps", &assign_GovHydro4_eps); - assign_map.emplace("cim:GovHydro4.gmax", &assign_GovHydro4_gmax); - assign_map.emplace("cim:GovHydro4.gmin", &assign_GovHydro4_gmin); - assign_map.emplace("cim:GovHydro4.gv0", &assign_GovHydro4_gv0); - assign_map.emplace("cim:GovHydro4.gv1", &assign_GovHydro4_gv1); - assign_map.emplace("cim:GovHydro4.gv2", &assign_GovHydro4_gv2); - assign_map.emplace("cim:GovHydro4.gv3", &assign_GovHydro4_gv3); - assign_map.emplace("cim:GovHydro4.gv4", &assign_GovHydro4_gv4); - assign_map.emplace("cim:GovHydro4.gv5", &assign_GovHydro4_gv5); - assign_map.emplace("cim:GovHydro4.hdam", &assign_GovHydro4_hdam); - assign_map.emplace("cim:GovHydro4.model", &assign_GovHydro4_model); - assign_map.emplace("cim:GovHydro4.mwbase", &assign_GovHydro4_mwbase); - assign_map.emplace("cim:GovHydro4.pgv0", &assign_GovHydro4_pgv0); - assign_map.emplace("cim:GovHydro4.pgv1", &assign_GovHydro4_pgv1); - assign_map.emplace("cim:GovHydro4.pgv2", &assign_GovHydro4_pgv2); - assign_map.emplace("cim:GovHydro4.pgv3", &assign_GovHydro4_pgv3); - assign_map.emplace("cim:GovHydro4.pgv4", &assign_GovHydro4_pgv4); - assign_map.emplace("cim:GovHydro4.pgv5", &assign_GovHydro4_pgv5); - assign_map.emplace("cim:GovHydro4.qnl", &assign_GovHydro4_qnl); - assign_map.emplace("cim:GovHydro4.rperm", &assign_GovHydro4_rperm); - assign_map.emplace("cim:GovHydro4.rtemp", &assign_GovHydro4_rtemp); - assign_map.emplace("cim:GovHydro4.tblade", &assign_GovHydro4_tblade); - assign_map.emplace("cim:GovHydro4.tg", &assign_GovHydro4_tg); - assign_map.emplace("cim:GovHydro4.tp", &assign_GovHydro4_tp); - assign_map.emplace("cim:GovHydro4.tr", &assign_GovHydro4_tr); - assign_map.emplace("cim:GovHydro4.tw", &assign_GovHydro4_tw); - assign_map.emplace("cim:GovHydro4.uc", &assign_GovHydro4_uc); - assign_map.emplace("cim:GovHydro4.uo", &assign_GovHydro4_uo); + assign_map.emplace("GovHydro4.at", &assign_GovHydro4_at); + assign_map.emplace("GovHydro4.bgv0", &assign_GovHydro4_bgv0); + assign_map.emplace("GovHydro4.bgv1", &assign_GovHydro4_bgv1); + assign_map.emplace("GovHydro4.bgv2", &assign_GovHydro4_bgv2); + assign_map.emplace("GovHydro4.bgv3", &assign_GovHydro4_bgv3); + assign_map.emplace("GovHydro4.bgv4", &assign_GovHydro4_bgv4); + assign_map.emplace("GovHydro4.bgv5", &assign_GovHydro4_bgv5); + assign_map.emplace("GovHydro4.bmax", &assign_GovHydro4_bmax); + assign_map.emplace("GovHydro4.db1", &assign_GovHydro4_db1); + assign_map.emplace("GovHydro4.db2", &assign_GovHydro4_db2); + assign_map.emplace("GovHydro4.dturb", &assign_GovHydro4_dturb); + assign_map.emplace("GovHydro4.eps", &assign_GovHydro4_eps); + assign_map.emplace("GovHydro4.gmax", &assign_GovHydro4_gmax); + assign_map.emplace("GovHydro4.gmin", &assign_GovHydro4_gmin); + assign_map.emplace("GovHydro4.gv0", &assign_GovHydro4_gv0); + assign_map.emplace("GovHydro4.gv1", &assign_GovHydro4_gv1); + assign_map.emplace("GovHydro4.gv2", &assign_GovHydro4_gv2); + assign_map.emplace("GovHydro4.gv3", &assign_GovHydro4_gv3); + assign_map.emplace("GovHydro4.gv4", &assign_GovHydro4_gv4); + assign_map.emplace("GovHydro4.gv5", &assign_GovHydro4_gv5); + assign_map.emplace("GovHydro4.hdam", &assign_GovHydro4_hdam); + assign_map.emplace("GovHydro4.model", &assign_GovHydro4_model); + assign_map.emplace("GovHydro4.mwbase", &assign_GovHydro4_mwbase); + assign_map.emplace("GovHydro4.pgv0", &assign_GovHydro4_pgv0); + assign_map.emplace("GovHydro4.pgv1", &assign_GovHydro4_pgv1); + assign_map.emplace("GovHydro4.pgv2", &assign_GovHydro4_pgv2); + assign_map.emplace("GovHydro4.pgv3", &assign_GovHydro4_pgv3); + assign_map.emplace("GovHydro4.pgv4", &assign_GovHydro4_pgv4); + assign_map.emplace("GovHydro4.pgv5", &assign_GovHydro4_pgv5); + assign_map.emplace("GovHydro4.qnl", &assign_GovHydro4_qnl); + assign_map.emplace("GovHydro4.rperm", &assign_GovHydro4_rperm); + assign_map.emplace("GovHydro4.rtemp", &assign_GovHydro4_rtemp); + assign_map.emplace("GovHydro4.tblade", &assign_GovHydro4_tblade); + assign_map.emplace("GovHydro4.tg", &assign_GovHydro4_tg); + assign_map.emplace("GovHydro4.tp", &assign_GovHydro4_tp); + assign_map.emplace("GovHydro4.tr", &assign_GovHydro4_tr); + assign_map.emplace("GovHydro4.tw", &assign_GovHydro4_tw); + assign_map.emplace("GovHydro4.uc", &assign_GovHydro4_uc); + assign_map.emplace("GovHydro4.uo", &assign_GovHydro4_uo); } void GovHydro4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1269,44 +1301,44 @@ void GovHydro4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro4.at", &get_GovHydro4_at); - get_map.emplace("cim:GovHydro4.bgv0", &get_GovHydro4_bgv0); - get_map.emplace("cim:GovHydro4.bgv1", &get_GovHydro4_bgv1); - get_map.emplace("cim:GovHydro4.bgv2", &get_GovHydro4_bgv2); - get_map.emplace("cim:GovHydro4.bgv3", &get_GovHydro4_bgv3); - get_map.emplace("cim:GovHydro4.bgv4", &get_GovHydro4_bgv4); - get_map.emplace("cim:GovHydro4.bgv5", &get_GovHydro4_bgv5); - get_map.emplace("cim:GovHydro4.bmax", &get_GovHydro4_bmax); - get_map.emplace("cim:GovHydro4.db1", &get_GovHydro4_db1); - get_map.emplace("cim:GovHydro4.db2", &get_GovHydro4_db2); - get_map.emplace("cim:GovHydro4.dturb", &get_GovHydro4_dturb); - get_map.emplace("cim:GovHydro4.eps", &get_GovHydro4_eps); - get_map.emplace("cim:GovHydro4.gmax", &get_GovHydro4_gmax); - get_map.emplace("cim:GovHydro4.gmin", &get_GovHydro4_gmin); - get_map.emplace("cim:GovHydro4.gv0", &get_GovHydro4_gv0); - get_map.emplace("cim:GovHydro4.gv1", &get_GovHydro4_gv1); - get_map.emplace("cim:GovHydro4.gv2", &get_GovHydro4_gv2); - get_map.emplace("cim:GovHydro4.gv3", &get_GovHydro4_gv3); - get_map.emplace("cim:GovHydro4.gv4", &get_GovHydro4_gv4); - get_map.emplace("cim:GovHydro4.gv5", &get_GovHydro4_gv5); - get_map.emplace("cim:GovHydro4.hdam", &get_GovHydro4_hdam); - get_map.emplace("cim:GovHydro4.mwbase", &get_GovHydro4_mwbase); - get_map.emplace("cim:GovHydro4.pgv0", &get_GovHydro4_pgv0); - get_map.emplace("cim:GovHydro4.pgv1", &get_GovHydro4_pgv1); - get_map.emplace("cim:GovHydro4.pgv2", &get_GovHydro4_pgv2); - get_map.emplace("cim:GovHydro4.pgv3", &get_GovHydro4_pgv3); - get_map.emplace("cim:GovHydro4.pgv4", &get_GovHydro4_pgv4); - get_map.emplace("cim:GovHydro4.pgv5", &get_GovHydro4_pgv5); - get_map.emplace("cim:GovHydro4.qnl", &get_GovHydro4_qnl); - get_map.emplace("cim:GovHydro4.rperm", &get_GovHydro4_rperm); - get_map.emplace("cim:GovHydro4.rtemp", &get_GovHydro4_rtemp); - get_map.emplace("cim:GovHydro4.tblade", &get_GovHydro4_tblade); - get_map.emplace("cim:GovHydro4.tg", &get_GovHydro4_tg); - get_map.emplace("cim:GovHydro4.tp", &get_GovHydro4_tp); - get_map.emplace("cim:GovHydro4.tr", &get_GovHydro4_tr); - get_map.emplace("cim:GovHydro4.tw", &get_GovHydro4_tw); - get_map.emplace("cim:GovHydro4.uc", &get_GovHydro4_uc); - get_map.emplace("cim:GovHydro4.uo", &get_GovHydro4_uo); + get_map.emplace("GovHydro4.at", &get_GovHydro4_at); + get_map.emplace("GovHydro4.bgv0", &get_GovHydro4_bgv0); + get_map.emplace("GovHydro4.bgv1", &get_GovHydro4_bgv1); + get_map.emplace("GovHydro4.bgv2", &get_GovHydro4_bgv2); + get_map.emplace("GovHydro4.bgv3", &get_GovHydro4_bgv3); + get_map.emplace("GovHydro4.bgv4", &get_GovHydro4_bgv4); + get_map.emplace("GovHydro4.bgv5", &get_GovHydro4_bgv5); + get_map.emplace("GovHydro4.bmax", &get_GovHydro4_bmax); + get_map.emplace("GovHydro4.db1", &get_GovHydro4_db1); + get_map.emplace("GovHydro4.db2", &get_GovHydro4_db2); + get_map.emplace("GovHydro4.dturb", &get_GovHydro4_dturb); + get_map.emplace("GovHydro4.eps", &get_GovHydro4_eps); + get_map.emplace("GovHydro4.gmax", &get_GovHydro4_gmax); + get_map.emplace("GovHydro4.gmin", &get_GovHydro4_gmin); + get_map.emplace("GovHydro4.gv0", &get_GovHydro4_gv0); + get_map.emplace("GovHydro4.gv1", &get_GovHydro4_gv1); + get_map.emplace("GovHydro4.gv2", &get_GovHydro4_gv2); + get_map.emplace("GovHydro4.gv3", &get_GovHydro4_gv3); + get_map.emplace("GovHydro4.gv4", &get_GovHydro4_gv4); + get_map.emplace("GovHydro4.gv5", &get_GovHydro4_gv5); + get_map.emplace("GovHydro4.hdam", &get_GovHydro4_hdam); + get_map.emplace("GovHydro4.mwbase", &get_GovHydro4_mwbase); + get_map.emplace("GovHydro4.pgv0", &get_GovHydro4_pgv0); + get_map.emplace("GovHydro4.pgv1", &get_GovHydro4_pgv1); + get_map.emplace("GovHydro4.pgv2", &get_GovHydro4_pgv2); + get_map.emplace("GovHydro4.pgv3", &get_GovHydro4_pgv3); + get_map.emplace("GovHydro4.pgv4", &get_GovHydro4_pgv4); + get_map.emplace("GovHydro4.pgv5", &get_GovHydro4_pgv5); + get_map.emplace("GovHydro4.qnl", &get_GovHydro4_qnl); + get_map.emplace("GovHydro4.rperm", &get_GovHydro4_rperm); + get_map.emplace("GovHydro4.rtemp", &get_GovHydro4_rtemp); + get_map.emplace("GovHydro4.tblade", &get_GovHydro4_tblade); + get_map.emplace("GovHydro4.tg", &get_GovHydro4_tg); + get_map.emplace("GovHydro4.tp", &get_GovHydro4_tp); + get_map.emplace("GovHydro4.tr", &get_GovHydro4_tr); + get_map.emplace("GovHydro4.tw", &get_GovHydro4_tw); + get_map.emplace("GovHydro4.uc", &get_GovHydro4_uc); + get_map.emplace("GovHydro4.uo", &get_GovHydro4_uo); } void GovHydro4::addClassGetFnsToMap(std::map& get_map) const @@ -1317,7 +1349,13 @@ void GovHydro4::addClassGetFnsToMap(std::map& g void GovHydro4::addEnumGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovHydro4.model", &get_GovHydro4_model); + get_map.emplace("GovHydro4.model", &get_GovHydro4_model); +} + +bool GovHydro4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydro4" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovHydro4::declare() @@ -1325,6 +1363,14 @@ const BaseClassDefiner GovHydro4::declare() return BaseClassDefiner(GovHydro4::addConstructToMap, GovHydro4::addPrimitiveAssignFnsToMap, GovHydro4::addClassAssignFnsToMap, GovHydro4::debugName); } +std::map GovHydro4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydro4_factory() diff --git a/CGMES_3.0.0/GovHydro4.hpp b/CGMES_3.0.0/GovHydro4.hpp index da768fe38..c995e02ac 100644 --- a/CGMES_3.0.0/GovHydro4.hpp +++ b/CGMES_3.0.0/GovHydro4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "Frequency.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydro4_factory(); diff --git a/CGMES_3.0.0/GovHydroDD.cpp b/CGMES_3.0.0/GovHydroDD.cpp index c7efe476c..5bcaa13fb 100644 --- a/CGMES_3.0.0/GovHydroDD.cpp +++ b/CGMES_3.0.0/GovHydroDD.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroDD(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroDD.aturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.bturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.eps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.inputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.tturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.velcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroDD.velop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroDD::GovHydroDD() {} GovHydroDD::~GovHydroDD() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroDD.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.k1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.k2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.r", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.td", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tf", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.tturb", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroDD.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroDD::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroDD::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroDD::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroDD::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroDD::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroDD::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroDD::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroDD::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroDD::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroDD_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovHydroDD::debugString() const void GovHydroDD::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroDD", &GovHydroDD_factory); + factory_map.emplace("GovHydroDD", &GovHydroDD_factory); } void GovHydroDD::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroDD.aturb", &assign_GovHydroDD_aturb); - assign_map.emplace("cim:GovHydroDD.bturb", &assign_GovHydroDD_bturb); - assign_map.emplace("cim:GovHydroDD.db1", &assign_GovHydroDD_db1); - assign_map.emplace("cim:GovHydroDD.db2", &assign_GovHydroDD_db2); - assign_map.emplace("cim:GovHydroDD.eps", &assign_GovHydroDD_eps); - assign_map.emplace("cim:GovHydroDD.gmax", &assign_GovHydroDD_gmax); - assign_map.emplace("cim:GovHydroDD.gmin", &assign_GovHydroDD_gmin); - assign_map.emplace("cim:GovHydroDD.gv1", &assign_GovHydroDD_gv1); - assign_map.emplace("cim:GovHydroDD.gv2", &assign_GovHydroDD_gv2); - assign_map.emplace("cim:GovHydroDD.gv3", &assign_GovHydroDD_gv3); - assign_map.emplace("cim:GovHydroDD.gv4", &assign_GovHydroDD_gv4); - assign_map.emplace("cim:GovHydroDD.gv5", &assign_GovHydroDD_gv5); - assign_map.emplace("cim:GovHydroDD.gv6", &assign_GovHydroDD_gv6); - assign_map.emplace("cim:GovHydroDD.inputSignal", &assign_GovHydroDD_inputSignal); - assign_map.emplace("cim:GovHydroDD.k1", &assign_GovHydroDD_k1); - assign_map.emplace("cim:GovHydroDD.k2", &assign_GovHydroDD_k2); - assign_map.emplace("cim:GovHydroDD.kg", &assign_GovHydroDD_kg); - assign_map.emplace("cim:GovHydroDD.ki", &assign_GovHydroDD_ki); - assign_map.emplace("cim:GovHydroDD.mwbase", &assign_GovHydroDD_mwbase); - assign_map.emplace("cim:GovHydroDD.pgv1", &assign_GovHydroDD_pgv1); - assign_map.emplace("cim:GovHydroDD.pgv2", &assign_GovHydroDD_pgv2); - assign_map.emplace("cim:GovHydroDD.pgv3", &assign_GovHydroDD_pgv3); - assign_map.emplace("cim:GovHydroDD.pgv4", &assign_GovHydroDD_pgv4); - assign_map.emplace("cim:GovHydroDD.pgv5", &assign_GovHydroDD_pgv5); - assign_map.emplace("cim:GovHydroDD.pgv6", &assign_GovHydroDD_pgv6); - assign_map.emplace("cim:GovHydroDD.pmax", &assign_GovHydroDD_pmax); - assign_map.emplace("cim:GovHydroDD.pmin", &assign_GovHydroDD_pmin); - assign_map.emplace("cim:GovHydroDD.r", &assign_GovHydroDD_r); - assign_map.emplace("cim:GovHydroDD.td", &assign_GovHydroDD_td); - assign_map.emplace("cim:GovHydroDD.tf", &assign_GovHydroDD_tf); - assign_map.emplace("cim:GovHydroDD.tp", &assign_GovHydroDD_tp); - assign_map.emplace("cim:GovHydroDD.tt", &assign_GovHydroDD_tt); - assign_map.emplace("cim:GovHydroDD.tturb", &assign_GovHydroDD_tturb); - assign_map.emplace("cim:GovHydroDD.velcl", &assign_GovHydroDD_velcl); - assign_map.emplace("cim:GovHydroDD.velop", &assign_GovHydroDD_velop); + assign_map.emplace("GovHydroDD.aturb", &assign_GovHydroDD_aturb); + assign_map.emplace("GovHydroDD.bturb", &assign_GovHydroDD_bturb); + assign_map.emplace("GovHydroDD.db1", &assign_GovHydroDD_db1); + assign_map.emplace("GovHydroDD.db2", &assign_GovHydroDD_db2); + assign_map.emplace("GovHydroDD.eps", &assign_GovHydroDD_eps); + assign_map.emplace("GovHydroDD.gmax", &assign_GovHydroDD_gmax); + assign_map.emplace("GovHydroDD.gmin", &assign_GovHydroDD_gmin); + assign_map.emplace("GovHydroDD.gv1", &assign_GovHydroDD_gv1); + assign_map.emplace("GovHydroDD.gv2", &assign_GovHydroDD_gv2); + assign_map.emplace("GovHydroDD.gv3", &assign_GovHydroDD_gv3); + assign_map.emplace("GovHydroDD.gv4", &assign_GovHydroDD_gv4); + assign_map.emplace("GovHydroDD.gv5", &assign_GovHydroDD_gv5); + assign_map.emplace("GovHydroDD.gv6", &assign_GovHydroDD_gv6); + assign_map.emplace("GovHydroDD.inputSignal", &assign_GovHydroDD_inputSignal); + assign_map.emplace("GovHydroDD.k1", &assign_GovHydroDD_k1); + assign_map.emplace("GovHydroDD.k2", &assign_GovHydroDD_k2); + assign_map.emplace("GovHydroDD.kg", &assign_GovHydroDD_kg); + assign_map.emplace("GovHydroDD.ki", &assign_GovHydroDD_ki); + assign_map.emplace("GovHydroDD.mwbase", &assign_GovHydroDD_mwbase); + assign_map.emplace("GovHydroDD.pgv1", &assign_GovHydroDD_pgv1); + assign_map.emplace("GovHydroDD.pgv2", &assign_GovHydroDD_pgv2); + assign_map.emplace("GovHydroDD.pgv3", &assign_GovHydroDD_pgv3); + assign_map.emplace("GovHydroDD.pgv4", &assign_GovHydroDD_pgv4); + assign_map.emplace("GovHydroDD.pgv5", &assign_GovHydroDD_pgv5); + assign_map.emplace("GovHydroDD.pgv6", &assign_GovHydroDD_pgv6); + assign_map.emplace("GovHydroDD.pmax", &assign_GovHydroDD_pmax); + assign_map.emplace("GovHydroDD.pmin", &assign_GovHydroDD_pmin); + assign_map.emplace("GovHydroDD.r", &assign_GovHydroDD_r); + assign_map.emplace("GovHydroDD.td", &assign_GovHydroDD_td); + assign_map.emplace("GovHydroDD.tf", &assign_GovHydroDD_tf); + assign_map.emplace("GovHydroDD.tp", &assign_GovHydroDD_tp); + assign_map.emplace("GovHydroDD.tt", &assign_GovHydroDD_tt); + assign_map.emplace("GovHydroDD.tturb", &assign_GovHydroDD_tturb); + assign_map.emplace("GovHydroDD.velcl", &assign_GovHydroDD_velcl); + assign_map.emplace("GovHydroDD.velop", &assign_GovHydroDD_velop); } void GovHydroDD::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,41 +1177,41 @@ void GovHydroDD::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroDD.aturb", &get_GovHydroDD_aturb); - get_map.emplace("cim:GovHydroDD.bturb", &get_GovHydroDD_bturb); - get_map.emplace("cim:GovHydroDD.db1", &get_GovHydroDD_db1); - get_map.emplace("cim:GovHydroDD.db2", &get_GovHydroDD_db2); - get_map.emplace("cim:GovHydroDD.eps", &get_GovHydroDD_eps); - get_map.emplace("cim:GovHydroDD.gmax", &get_GovHydroDD_gmax); - get_map.emplace("cim:GovHydroDD.gmin", &get_GovHydroDD_gmin); - get_map.emplace("cim:GovHydroDD.gv1", &get_GovHydroDD_gv1); - get_map.emplace("cim:GovHydroDD.gv2", &get_GovHydroDD_gv2); - get_map.emplace("cim:GovHydroDD.gv3", &get_GovHydroDD_gv3); - get_map.emplace("cim:GovHydroDD.gv4", &get_GovHydroDD_gv4); - get_map.emplace("cim:GovHydroDD.gv5", &get_GovHydroDD_gv5); - get_map.emplace("cim:GovHydroDD.gv6", &get_GovHydroDD_gv6); - get_map.emplace("cim:GovHydroDD.inputSignal", &get_GovHydroDD_inputSignal); - get_map.emplace("cim:GovHydroDD.k1", &get_GovHydroDD_k1); - get_map.emplace("cim:GovHydroDD.k2", &get_GovHydroDD_k2); - get_map.emplace("cim:GovHydroDD.kg", &get_GovHydroDD_kg); - get_map.emplace("cim:GovHydroDD.ki", &get_GovHydroDD_ki); - get_map.emplace("cim:GovHydroDD.mwbase", &get_GovHydroDD_mwbase); - get_map.emplace("cim:GovHydroDD.pgv1", &get_GovHydroDD_pgv1); - get_map.emplace("cim:GovHydroDD.pgv2", &get_GovHydroDD_pgv2); - get_map.emplace("cim:GovHydroDD.pgv3", &get_GovHydroDD_pgv3); - get_map.emplace("cim:GovHydroDD.pgv4", &get_GovHydroDD_pgv4); - get_map.emplace("cim:GovHydroDD.pgv5", &get_GovHydroDD_pgv5); - get_map.emplace("cim:GovHydroDD.pgv6", &get_GovHydroDD_pgv6); - get_map.emplace("cim:GovHydroDD.pmax", &get_GovHydroDD_pmax); - get_map.emplace("cim:GovHydroDD.pmin", &get_GovHydroDD_pmin); - get_map.emplace("cim:GovHydroDD.r", &get_GovHydroDD_r); - get_map.emplace("cim:GovHydroDD.td", &get_GovHydroDD_td); - get_map.emplace("cim:GovHydroDD.tf", &get_GovHydroDD_tf); - get_map.emplace("cim:GovHydroDD.tp", &get_GovHydroDD_tp); - get_map.emplace("cim:GovHydroDD.tt", &get_GovHydroDD_tt); - get_map.emplace("cim:GovHydroDD.tturb", &get_GovHydroDD_tturb); - get_map.emplace("cim:GovHydroDD.velcl", &get_GovHydroDD_velcl); - get_map.emplace("cim:GovHydroDD.velop", &get_GovHydroDD_velop); + get_map.emplace("GovHydroDD.aturb", &get_GovHydroDD_aturb); + get_map.emplace("GovHydroDD.bturb", &get_GovHydroDD_bturb); + get_map.emplace("GovHydroDD.db1", &get_GovHydroDD_db1); + get_map.emplace("GovHydroDD.db2", &get_GovHydroDD_db2); + get_map.emplace("GovHydroDD.eps", &get_GovHydroDD_eps); + get_map.emplace("GovHydroDD.gmax", &get_GovHydroDD_gmax); + get_map.emplace("GovHydroDD.gmin", &get_GovHydroDD_gmin); + get_map.emplace("GovHydroDD.gv1", &get_GovHydroDD_gv1); + get_map.emplace("GovHydroDD.gv2", &get_GovHydroDD_gv2); + get_map.emplace("GovHydroDD.gv3", &get_GovHydroDD_gv3); + get_map.emplace("GovHydroDD.gv4", &get_GovHydroDD_gv4); + get_map.emplace("GovHydroDD.gv5", &get_GovHydroDD_gv5); + get_map.emplace("GovHydroDD.gv6", &get_GovHydroDD_gv6); + get_map.emplace("GovHydroDD.inputSignal", &get_GovHydroDD_inputSignal); + get_map.emplace("GovHydroDD.k1", &get_GovHydroDD_k1); + get_map.emplace("GovHydroDD.k2", &get_GovHydroDD_k2); + get_map.emplace("GovHydroDD.kg", &get_GovHydroDD_kg); + get_map.emplace("GovHydroDD.ki", &get_GovHydroDD_ki); + get_map.emplace("GovHydroDD.mwbase", &get_GovHydroDD_mwbase); + get_map.emplace("GovHydroDD.pgv1", &get_GovHydroDD_pgv1); + get_map.emplace("GovHydroDD.pgv2", &get_GovHydroDD_pgv2); + get_map.emplace("GovHydroDD.pgv3", &get_GovHydroDD_pgv3); + get_map.emplace("GovHydroDD.pgv4", &get_GovHydroDD_pgv4); + get_map.emplace("GovHydroDD.pgv5", &get_GovHydroDD_pgv5); + get_map.emplace("GovHydroDD.pgv6", &get_GovHydroDD_pgv6); + get_map.emplace("GovHydroDD.pmax", &get_GovHydroDD_pmax); + get_map.emplace("GovHydroDD.pmin", &get_GovHydroDD_pmin); + get_map.emplace("GovHydroDD.r", &get_GovHydroDD_r); + get_map.emplace("GovHydroDD.td", &get_GovHydroDD_td); + get_map.emplace("GovHydroDD.tf", &get_GovHydroDD_tf); + get_map.emplace("GovHydroDD.tp", &get_GovHydroDD_tp); + get_map.emplace("GovHydroDD.tt", &get_GovHydroDD_tt); + get_map.emplace("GovHydroDD.tturb", &get_GovHydroDD_tturb); + get_map.emplace("GovHydroDD.velcl", &get_GovHydroDD_velcl); + get_map.emplace("GovHydroDD.velop", &get_GovHydroDD_velop); } void GovHydroDD::addClassGetFnsToMap(std::map& get_map) const @@ -1192,11 +1224,25 @@ void GovHydroDD::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroDD::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroDD" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroDD::declare() { return BaseClassDefiner(GovHydroDD::addConstructToMap, GovHydroDD::addPrimitiveAssignFnsToMap, GovHydroDD::addClassAssignFnsToMap, GovHydroDD::debugName); } +std::map GovHydroDD::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroDD_factory() diff --git a/CGMES_3.0.0/GovHydroDD.hpp b/CGMES_3.0.0/GovHydroDD.hpp index 80f75edc3..36942cf9c 100644 --- a/CGMES_3.0.0/GovHydroDD.hpp +++ b/CGMES_3.0.0/GovHydroDD.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -138,8 +139,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -147,7 +155,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroDD_factory(); diff --git a/CGMES_3.0.0/GovHydroFrancis.cpp b/CGMES_3.0.0/GovHydroFrancis.cpp index 92cca504b..6e554f869 100644 --- a/CGMES_3.0.0/GovHydroFrancis.cpp +++ b/CGMES_3.0.0/GovHydroFrancis.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroFrancis(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroFrancis.am", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.av0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.av1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.bp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.etamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.governorControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.h1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.h2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.hn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.kt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.qc0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.qn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.ts", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.twnc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.twng", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.tx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.va", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.valvmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.valvmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.vc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.waterTunnelSurgeChamberSimulation", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroFrancis.zsfc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroFrancis::GovHydroFrancis() {} GovHydroFrancis::~GovHydroFrancis() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroFrancis.am", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.av0", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.av1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.bp", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.etamax", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.governorControl", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.h1", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.h2", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.hn", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.kt", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.qc0", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.qn", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.td", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.ts", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.twnc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.twng", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.tx", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.va", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.valvmax", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.valvmin", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.vc", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", { CGMESProfile::DY, } }, - { "cim:GovHydroFrancis.zsfc", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroFrancis::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroFrancis::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroFrancis::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroFrancis::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroFrancis::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroFrancis::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroFrancis::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroFrancis::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroFrancis::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroFrancis_am(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* GovHydroFrancis::debugString() const void GovHydroFrancis::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroFrancis", &GovHydroFrancis_factory); + factory_map.emplace("GovHydroFrancis", &GovHydroFrancis_factory); } void GovHydroFrancis::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroFrancis.am", &assign_GovHydroFrancis_am); - assign_map.emplace("cim:GovHydroFrancis.av0", &assign_GovHydroFrancis_av0); - assign_map.emplace("cim:GovHydroFrancis.av1", &assign_GovHydroFrancis_av1); - assign_map.emplace("cim:GovHydroFrancis.bp", &assign_GovHydroFrancis_bp); - assign_map.emplace("cim:GovHydroFrancis.db1", &assign_GovHydroFrancis_db1); - assign_map.emplace("cim:GovHydroFrancis.etamax", &assign_GovHydroFrancis_etamax); - assign_map.emplace("cim:GovHydroFrancis.governorControl", &assign_GovHydroFrancis_governorControl); - assign_map.emplace("cim:GovHydroFrancis.h1", &assign_GovHydroFrancis_h1); - assign_map.emplace("cim:GovHydroFrancis.h2", &assign_GovHydroFrancis_h2); - assign_map.emplace("cim:GovHydroFrancis.hn", &assign_GovHydroFrancis_hn); - assign_map.emplace("cim:GovHydroFrancis.kc", &assign_GovHydroFrancis_kc); - assign_map.emplace("cim:GovHydroFrancis.kg", &assign_GovHydroFrancis_kg); - assign_map.emplace("cim:GovHydroFrancis.kt", &assign_GovHydroFrancis_kt); - assign_map.emplace("cim:GovHydroFrancis.qc0", &assign_GovHydroFrancis_qc0); - assign_map.emplace("cim:GovHydroFrancis.qn", &assign_GovHydroFrancis_qn); - assign_map.emplace("cim:GovHydroFrancis.ta", &assign_GovHydroFrancis_ta); - assign_map.emplace("cim:GovHydroFrancis.td", &assign_GovHydroFrancis_td); - assign_map.emplace("cim:GovHydroFrancis.ts", &assign_GovHydroFrancis_ts); - assign_map.emplace("cim:GovHydroFrancis.twnc", &assign_GovHydroFrancis_twnc); - assign_map.emplace("cim:GovHydroFrancis.twng", &assign_GovHydroFrancis_twng); - assign_map.emplace("cim:GovHydroFrancis.tx", &assign_GovHydroFrancis_tx); - assign_map.emplace("cim:GovHydroFrancis.va", &assign_GovHydroFrancis_va); - assign_map.emplace("cim:GovHydroFrancis.valvmax", &assign_GovHydroFrancis_valvmax); - assign_map.emplace("cim:GovHydroFrancis.valvmin", &assign_GovHydroFrancis_valvmin); - assign_map.emplace("cim:GovHydroFrancis.vc", &assign_GovHydroFrancis_vc); - assign_map.emplace("cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", &assign_GovHydroFrancis_waterTunnelSurgeChamberSimulation); - assign_map.emplace("cim:GovHydroFrancis.zsfc", &assign_GovHydroFrancis_zsfc); + assign_map.emplace("GovHydroFrancis.am", &assign_GovHydroFrancis_am); + assign_map.emplace("GovHydroFrancis.av0", &assign_GovHydroFrancis_av0); + assign_map.emplace("GovHydroFrancis.av1", &assign_GovHydroFrancis_av1); + assign_map.emplace("GovHydroFrancis.bp", &assign_GovHydroFrancis_bp); + assign_map.emplace("GovHydroFrancis.db1", &assign_GovHydroFrancis_db1); + assign_map.emplace("GovHydroFrancis.etamax", &assign_GovHydroFrancis_etamax); + assign_map.emplace("GovHydroFrancis.governorControl", &assign_GovHydroFrancis_governorControl); + assign_map.emplace("GovHydroFrancis.h1", &assign_GovHydroFrancis_h1); + assign_map.emplace("GovHydroFrancis.h2", &assign_GovHydroFrancis_h2); + assign_map.emplace("GovHydroFrancis.hn", &assign_GovHydroFrancis_hn); + assign_map.emplace("GovHydroFrancis.kc", &assign_GovHydroFrancis_kc); + assign_map.emplace("GovHydroFrancis.kg", &assign_GovHydroFrancis_kg); + assign_map.emplace("GovHydroFrancis.kt", &assign_GovHydroFrancis_kt); + assign_map.emplace("GovHydroFrancis.qc0", &assign_GovHydroFrancis_qc0); + assign_map.emplace("GovHydroFrancis.qn", &assign_GovHydroFrancis_qn); + assign_map.emplace("GovHydroFrancis.ta", &assign_GovHydroFrancis_ta); + assign_map.emplace("GovHydroFrancis.td", &assign_GovHydroFrancis_td); + assign_map.emplace("GovHydroFrancis.ts", &assign_GovHydroFrancis_ts); + assign_map.emplace("GovHydroFrancis.twnc", &assign_GovHydroFrancis_twnc); + assign_map.emplace("GovHydroFrancis.twng", &assign_GovHydroFrancis_twng); + assign_map.emplace("GovHydroFrancis.tx", &assign_GovHydroFrancis_tx); + assign_map.emplace("GovHydroFrancis.va", &assign_GovHydroFrancis_va); + assign_map.emplace("GovHydroFrancis.valvmax", &assign_GovHydroFrancis_valvmax); + assign_map.emplace("GovHydroFrancis.valvmin", &assign_GovHydroFrancis_valvmin); + assign_map.emplace("GovHydroFrancis.vc", &assign_GovHydroFrancis_vc); + assign_map.emplace("GovHydroFrancis.waterTunnelSurgeChamberSimulation", &assign_GovHydroFrancis_waterTunnelSurgeChamberSimulation); + assign_map.emplace("GovHydroFrancis.zsfc", &assign_GovHydroFrancis_zsfc); } void GovHydroFrancis::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,32 +929,32 @@ void GovHydroFrancis::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroFrancis.am", &get_GovHydroFrancis_am); - get_map.emplace("cim:GovHydroFrancis.av0", &get_GovHydroFrancis_av0); - get_map.emplace("cim:GovHydroFrancis.av1", &get_GovHydroFrancis_av1); - get_map.emplace("cim:GovHydroFrancis.bp", &get_GovHydroFrancis_bp); - get_map.emplace("cim:GovHydroFrancis.db1", &get_GovHydroFrancis_db1); - get_map.emplace("cim:GovHydroFrancis.etamax", &get_GovHydroFrancis_etamax); - get_map.emplace("cim:GovHydroFrancis.h1", &get_GovHydroFrancis_h1); - get_map.emplace("cim:GovHydroFrancis.h2", &get_GovHydroFrancis_h2); - get_map.emplace("cim:GovHydroFrancis.hn", &get_GovHydroFrancis_hn); - get_map.emplace("cim:GovHydroFrancis.kc", &get_GovHydroFrancis_kc); - get_map.emplace("cim:GovHydroFrancis.kg", &get_GovHydroFrancis_kg); - get_map.emplace("cim:GovHydroFrancis.kt", &get_GovHydroFrancis_kt); - get_map.emplace("cim:GovHydroFrancis.qc0", &get_GovHydroFrancis_qc0); - get_map.emplace("cim:GovHydroFrancis.qn", &get_GovHydroFrancis_qn); - get_map.emplace("cim:GovHydroFrancis.ta", &get_GovHydroFrancis_ta); - get_map.emplace("cim:GovHydroFrancis.td", &get_GovHydroFrancis_td); - get_map.emplace("cim:GovHydroFrancis.ts", &get_GovHydroFrancis_ts); - get_map.emplace("cim:GovHydroFrancis.twnc", &get_GovHydroFrancis_twnc); - get_map.emplace("cim:GovHydroFrancis.twng", &get_GovHydroFrancis_twng); - get_map.emplace("cim:GovHydroFrancis.tx", &get_GovHydroFrancis_tx); - get_map.emplace("cim:GovHydroFrancis.va", &get_GovHydroFrancis_va); - get_map.emplace("cim:GovHydroFrancis.valvmax", &get_GovHydroFrancis_valvmax); - get_map.emplace("cim:GovHydroFrancis.valvmin", &get_GovHydroFrancis_valvmin); - get_map.emplace("cim:GovHydroFrancis.vc", &get_GovHydroFrancis_vc); - get_map.emplace("cim:GovHydroFrancis.waterTunnelSurgeChamberSimulation", &get_GovHydroFrancis_waterTunnelSurgeChamberSimulation); - get_map.emplace("cim:GovHydroFrancis.zsfc", &get_GovHydroFrancis_zsfc); + get_map.emplace("GovHydroFrancis.am", &get_GovHydroFrancis_am); + get_map.emplace("GovHydroFrancis.av0", &get_GovHydroFrancis_av0); + get_map.emplace("GovHydroFrancis.av1", &get_GovHydroFrancis_av1); + get_map.emplace("GovHydroFrancis.bp", &get_GovHydroFrancis_bp); + get_map.emplace("GovHydroFrancis.db1", &get_GovHydroFrancis_db1); + get_map.emplace("GovHydroFrancis.etamax", &get_GovHydroFrancis_etamax); + get_map.emplace("GovHydroFrancis.h1", &get_GovHydroFrancis_h1); + get_map.emplace("GovHydroFrancis.h2", &get_GovHydroFrancis_h2); + get_map.emplace("GovHydroFrancis.hn", &get_GovHydroFrancis_hn); + get_map.emplace("GovHydroFrancis.kc", &get_GovHydroFrancis_kc); + get_map.emplace("GovHydroFrancis.kg", &get_GovHydroFrancis_kg); + get_map.emplace("GovHydroFrancis.kt", &get_GovHydroFrancis_kt); + get_map.emplace("GovHydroFrancis.qc0", &get_GovHydroFrancis_qc0); + get_map.emplace("GovHydroFrancis.qn", &get_GovHydroFrancis_qn); + get_map.emplace("GovHydroFrancis.ta", &get_GovHydroFrancis_ta); + get_map.emplace("GovHydroFrancis.td", &get_GovHydroFrancis_td); + get_map.emplace("GovHydroFrancis.ts", &get_GovHydroFrancis_ts); + get_map.emplace("GovHydroFrancis.twnc", &get_GovHydroFrancis_twnc); + get_map.emplace("GovHydroFrancis.twng", &get_GovHydroFrancis_twng); + get_map.emplace("GovHydroFrancis.tx", &get_GovHydroFrancis_tx); + get_map.emplace("GovHydroFrancis.va", &get_GovHydroFrancis_va); + get_map.emplace("GovHydroFrancis.valvmax", &get_GovHydroFrancis_valvmax); + get_map.emplace("GovHydroFrancis.valvmin", &get_GovHydroFrancis_valvmin); + get_map.emplace("GovHydroFrancis.vc", &get_GovHydroFrancis_vc); + get_map.emplace("GovHydroFrancis.waterTunnelSurgeChamberSimulation", &get_GovHydroFrancis_waterTunnelSurgeChamberSimulation); + get_map.emplace("GovHydroFrancis.zsfc", &get_GovHydroFrancis_zsfc); } void GovHydroFrancis::addClassGetFnsToMap(std::map& get_map) const @@ -933,7 +965,13 @@ void GovHydroFrancis::addClassGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroFrancis.governorControl", &get_GovHydroFrancis_governorControl); + get_map.emplace("GovHydroFrancis.governorControl", &get_GovHydroFrancis_governorControl); +} + +bool GovHydroFrancis::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroFrancis" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner GovHydroFrancis::declare() @@ -941,6 +979,14 @@ const BaseClassDefiner GovHydroFrancis::declare() return BaseClassDefiner(GovHydroFrancis::addConstructToMap, GovHydroFrancis::addPrimitiveAssignFnsToMap, GovHydroFrancis::addClassAssignFnsToMap, GovHydroFrancis::debugName); } +std::map GovHydroFrancis::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroFrancis_factory() diff --git a/CGMES_3.0.0/GovHydroFrancis.hpp b/CGMES_3.0.0/GovHydroFrancis.hpp index 3c3cfa1c9..026539ccc 100644 --- a/CGMES_3.0.0/GovHydroFrancis.hpp +++ b/CGMES_3.0.0/GovHydroFrancis.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Area.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -117,8 +118,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -126,7 +134,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroFrancis_factory(); diff --git a/CGMES_3.0.0/GovHydroIEEE0.cpp b/CGMES_3.0.0/GovHydroIEEE0.cpp index 7038d0233..85b0cca89 100644 --- a/CGMES_3.0.0/GovHydroIEEE0.cpp +++ b/CGMES_3.0.0/GovHydroIEEE0.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroIEEE0(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroIEEE0.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE0.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroIEEE0::GovHydroIEEE0() {} GovHydroIEEE0::~GovHydroIEEE0() {} -static const std::list PossibleProfilesForClass = +const std::list& GovHydroIEEE0::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovHydroIEEE0::getClassNamespaceUrl() const { - { "cim:GovHydroIEEE0.k", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE0.t4", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovHydroIEEE0::getPossibleProfilesForClass() const +const std::string& GovHydroIEEE0::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovHydroIEEE0::getPossibleProfilesForAttributes() const +const std::list& GovHydroIEEE0::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroIEEE0::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroIEEE0::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroIEEE0::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroIEEE0_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovHydroIEEE0::debugString() const void GovHydroIEEE0::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroIEEE0", &GovHydroIEEE0_factory); + factory_map.emplace("GovHydroIEEE0", &GovHydroIEEE0_factory); } void GovHydroIEEE0::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroIEEE0.k", &assign_GovHydroIEEE0_k); - assign_map.emplace("cim:GovHydroIEEE0.mwbase", &assign_GovHydroIEEE0_mwbase); - assign_map.emplace("cim:GovHydroIEEE0.pmax", &assign_GovHydroIEEE0_pmax); - assign_map.emplace("cim:GovHydroIEEE0.pmin", &assign_GovHydroIEEE0_pmin); - assign_map.emplace("cim:GovHydroIEEE0.t1", &assign_GovHydroIEEE0_t1); - assign_map.emplace("cim:GovHydroIEEE0.t2", &assign_GovHydroIEEE0_t2); - assign_map.emplace("cim:GovHydroIEEE0.t3", &assign_GovHydroIEEE0_t3); - assign_map.emplace("cim:GovHydroIEEE0.t4", &assign_GovHydroIEEE0_t4); + assign_map.emplace("GovHydroIEEE0.k", &assign_GovHydroIEEE0_k); + assign_map.emplace("GovHydroIEEE0.mwbase", &assign_GovHydroIEEE0_mwbase); + assign_map.emplace("GovHydroIEEE0.pmax", &assign_GovHydroIEEE0_pmax); + assign_map.emplace("GovHydroIEEE0.pmin", &assign_GovHydroIEEE0_pmin); + assign_map.emplace("GovHydroIEEE0.t1", &assign_GovHydroIEEE0_t1); + assign_map.emplace("GovHydroIEEE0.t2", &assign_GovHydroIEEE0_t2); + assign_map.emplace("GovHydroIEEE0.t3", &assign_GovHydroIEEE0_t3); + assign_map.emplace("GovHydroIEEE0.t4", &assign_GovHydroIEEE0_t4); } void GovHydroIEEE0::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovHydroIEEE0::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroIEEE0.k", &get_GovHydroIEEE0_k); - get_map.emplace("cim:GovHydroIEEE0.mwbase", &get_GovHydroIEEE0_mwbase); - get_map.emplace("cim:GovHydroIEEE0.pmax", &get_GovHydroIEEE0_pmax); - get_map.emplace("cim:GovHydroIEEE0.pmin", &get_GovHydroIEEE0_pmin); - get_map.emplace("cim:GovHydroIEEE0.t1", &get_GovHydroIEEE0_t1); - get_map.emplace("cim:GovHydroIEEE0.t2", &get_GovHydroIEEE0_t2); - get_map.emplace("cim:GovHydroIEEE0.t3", &get_GovHydroIEEE0_t3); - get_map.emplace("cim:GovHydroIEEE0.t4", &get_GovHydroIEEE0_t4); + get_map.emplace("GovHydroIEEE0.k", &get_GovHydroIEEE0_k); + get_map.emplace("GovHydroIEEE0.mwbase", &get_GovHydroIEEE0_mwbase); + get_map.emplace("GovHydroIEEE0.pmax", &get_GovHydroIEEE0_pmax); + get_map.emplace("GovHydroIEEE0.pmin", &get_GovHydroIEEE0_pmin); + get_map.emplace("GovHydroIEEE0.t1", &get_GovHydroIEEE0_t1); + get_map.emplace("GovHydroIEEE0.t2", &get_GovHydroIEEE0_t2); + get_map.emplace("GovHydroIEEE0.t3", &get_GovHydroIEEE0_t3); + get_map.emplace("GovHydroIEEE0.t4", &get_GovHydroIEEE0_t4); } void GovHydroIEEE0::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovHydroIEEE0::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroIEEE0::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroIEEE0" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroIEEE0::declare() { return BaseClassDefiner(GovHydroIEEE0::addConstructToMap, GovHydroIEEE0::addPrimitiveAssignFnsToMap, GovHydroIEEE0::addClassAssignFnsToMap, GovHydroIEEE0::debugName); } +std::map GovHydroIEEE0::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroIEEE0_factory() diff --git a/CGMES_3.0.0/GovHydroIEEE0.hpp b/CGMES_3.0.0/GovHydroIEEE0.hpp index 8e9421990..921bf2b27 100644 --- a/CGMES_3.0.0/GovHydroIEEE0.hpp +++ b/CGMES_3.0.0/GovHydroIEEE0.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroIEEE0_factory(); diff --git a/CGMES_3.0.0/GovHydroIEEE2.cpp b/CGMES_3.0.0/GovHydroIEEE2.cpp index abbf5cf5e..f8dfb0229 100644 --- a/CGMES_3.0.0/GovHydroIEEE2.cpp +++ b/CGMES_3.0.0/GovHydroIEEE2.cpp @@ -11,57 +11,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroIEEE2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroIEEE2.aturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.bturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.kturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.rperm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.rtemp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.uc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroIEEE2.uo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroIEEE2::GovHydroIEEE2() {} GovHydroIEEE2::~GovHydroIEEE2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroIEEE2.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.kturb", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.rtemp", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tg", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tr", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.uc", { CGMESProfile::DY, } }, - { "cim:GovHydroIEEE2.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroIEEE2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroIEEE2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroIEEE2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroIEEE2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroIEEE2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroIEEE2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroIEEE2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroIEEE2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroIEEE2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroIEEE2_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -826,37 +858,37 @@ const char* GovHydroIEEE2::debugString() const void GovHydroIEEE2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroIEEE2", &GovHydroIEEE2_factory); + factory_map.emplace("GovHydroIEEE2", &GovHydroIEEE2_factory); } void GovHydroIEEE2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroIEEE2.aturb", &assign_GovHydroIEEE2_aturb); - assign_map.emplace("cim:GovHydroIEEE2.bturb", &assign_GovHydroIEEE2_bturb); - assign_map.emplace("cim:GovHydroIEEE2.gv1", &assign_GovHydroIEEE2_gv1); - assign_map.emplace("cim:GovHydroIEEE2.gv2", &assign_GovHydroIEEE2_gv2); - assign_map.emplace("cim:GovHydroIEEE2.gv3", &assign_GovHydroIEEE2_gv3); - assign_map.emplace("cim:GovHydroIEEE2.gv4", &assign_GovHydroIEEE2_gv4); - assign_map.emplace("cim:GovHydroIEEE2.gv5", &assign_GovHydroIEEE2_gv5); - assign_map.emplace("cim:GovHydroIEEE2.gv6", &assign_GovHydroIEEE2_gv6); - assign_map.emplace("cim:GovHydroIEEE2.kturb", &assign_GovHydroIEEE2_kturb); - assign_map.emplace("cim:GovHydroIEEE2.mwbase", &assign_GovHydroIEEE2_mwbase); - assign_map.emplace("cim:GovHydroIEEE2.pgv1", &assign_GovHydroIEEE2_pgv1); - assign_map.emplace("cim:GovHydroIEEE2.pgv2", &assign_GovHydroIEEE2_pgv2); - assign_map.emplace("cim:GovHydroIEEE2.pgv3", &assign_GovHydroIEEE2_pgv3); - assign_map.emplace("cim:GovHydroIEEE2.pgv4", &assign_GovHydroIEEE2_pgv4); - assign_map.emplace("cim:GovHydroIEEE2.pgv5", &assign_GovHydroIEEE2_pgv5); - assign_map.emplace("cim:GovHydroIEEE2.pgv6", &assign_GovHydroIEEE2_pgv6); - assign_map.emplace("cim:GovHydroIEEE2.pmax", &assign_GovHydroIEEE2_pmax); - assign_map.emplace("cim:GovHydroIEEE2.pmin", &assign_GovHydroIEEE2_pmin); - assign_map.emplace("cim:GovHydroIEEE2.rperm", &assign_GovHydroIEEE2_rperm); - assign_map.emplace("cim:GovHydroIEEE2.rtemp", &assign_GovHydroIEEE2_rtemp); - assign_map.emplace("cim:GovHydroIEEE2.tg", &assign_GovHydroIEEE2_tg); - assign_map.emplace("cim:GovHydroIEEE2.tp", &assign_GovHydroIEEE2_tp); - assign_map.emplace("cim:GovHydroIEEE2.tr", &assign_GovHydroIEEE2_tr); - assign_map.emplace("cim:GovHydroIEEE2.tw", &assign_GovHydroIEEE2_tw); - assign_map.emplace("cim:GovHydroIEEE2.uc", &assign_GovHydroIEEE2_uc); - assign_map.emplace("cim:GovHydroIEEE2.uo", &assign_GovHydroIEEE2_uo); + assign_map.emplace("GovHydroIEEE2.aturb", &assign_GovHydroIEEE2_aturb); + assign_map.emplace("GovHydroIEEE2.bturb", &assign_GovHydroIEEE2_bturb); + assign_map.emplace("GovHydroIEEE2.gv1", &assign_GovHydroIEEE2_gv1); + assign_map.emplace("GovHydroIEEE2.gv2", &assign_GovHydroIEEE2_gv2); + assign_map.emplace("GovHydroIEEE2.gv3", &assign_GovHydroIEEE2_gv3); + assign_map.emplace("GovHydroIEEE2.gv4", &assign_GovHydroIEEE2_gv4); + assign_map.emplace("GovHydroIEEE2.gv5", &assign_GovHydroIEEE2_gv5); + assign_map.emplace("GovHydroIEEE2.gv6", &assign_GovHydroIEEE2_gv6); + assign_map.emplace("GovHydroIEEE2.kturb", &assign_GovHydroIEEE2_kturb); + assign_map.emplace("GovHydroIEEE2.mwbase", &assign_GovHydroIEEE2_mwbase); + assign_map.emplace("GovHydroIEEE2.pgv1", &assign_GovHydroIEEE2_pgv1); + assign_map.emplace("GovHydroIEEE2.pgv2", &assign_GovHydroIEEE2_pgv2); + assign_map.emplace("GovHydroIEEE2.pgv3", &assign_GovHydroIEEE2_pgv3); + assign_map.emplace("GovHydroIEEE2.pgv4", &assign_GovHydroIEEE2_pgv4); + assign_map.emplace("GovHydroIEEE2.pgv5", &assign_GovHydroIEEE2_pgv5); + assign_map.emplace("GovHydroIEEE2.pgv6", &assign_GovHydroIEEE2_pgv6); + assign_map.emplace("GovHydroIEEE2.pmax", &assign_GovHydroIEEE2_pmax); + assign_map.emplace("GovHydroIEEE2.pmin", &assign_GovHydroIEEE2_pmin); + assign_map.emplace("GovHydroIEEE2.rperm", &assign_GovHydroIEEE2_rperm); + assign_map.emplace("GovHydroIEEE2.rtemp", &assign_GovHydroIEEE2_rtemp); + assign_map.emplace("GovHydroIEEE2.tg", &assign_GovHydroIEEE2_tg); + assign_map.emplace("GovHydroIEEE2.tp", &assign_GovHydroIEEE2_tp); + assign_map.emplace("GovHydroIEEE2.tr", &assign_GovHydroIEEE2_tr); + assign_map.emplace("GovHydroIEEE2.tw", &assign_GovHydroIEEE2_tw); + assign_map.emplace("GovHydroIEEE2.uc", &assign_GovHydroIEEE2_uc); + assign_map.emplace("GovHydroIEEE2.uo", &assign_GovHydroIEEE2_uo); } void GovHydroIEEE2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -866,32 +898,32 @@ void GovHydroIEEE2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroIEEE2.aturb", &get_GovHydroIEEE2_aturb); - get_map.emplace("cim:GovHydroIEEE2.bturb", &get_GovHydroIEEE2_bturb); - get_map.emplace("cim:GovHydroIEEE2.gv1", &get_GovHydroIEEE2_gv1); - get_map.emplace("cim:GovHydroIEEE2.gv2", &get_GovHydroIEEE2_gv2); - get_map.emplace("cim:GovHydroIEEE2.gv3", &get_GovHydroIEEE2_gv3); - get_map.emplace("cim:GovHydroIEEE2.gv4", &get_GovHydroIEEE2_gv4); - get_map.emplace("cim:GovHydroIEEE2.gv5", &get_GovHydroIEEE2_gv5); - get_map.emplace("cim:GovHydroIEEE2.gv6", &get_GovHydroIEEE2_gv6); - get_map.emplace("cim:GovHydroIEEE2.kturb", &get_GovHydroIEEE2_kturb); - get_map.emplace("cim:GovHydroIEEE2.mwbase", &get_GovHydroIEEE2_mwbase); - get_map.emplace("cim:GovHydroIEEE2.pgv1", &get_GovHydroIEEE2_pgv1); - get_map.emplace("cim:GovHydroIEEE2.pgv2", &get_GovHydroIEEE2_pgv2); - get_map.emplace("cim:GovHydroIEEE2.pgv3", &get_GovHydroIEEE2_pgv3); - get_map.emplace("cim:GovHydroIEEE2.pgv4", &get_GovHydroIEEE2_pgv4); - get_map.emplace("cim:GovHydroIEEE2.pgv5", &get_GovHydroIEEE2_pgv5); - get_map.emplace("cim:GovHydroIEEE2.pgv6", &get_GovHydroIEEE2_pgv6); - get_map.emplace("cim:GovHydroIEEE2.pmax", &get_GovHydroIEEE2_pmax); - get_map.emplace("cim:GovHydroIEEE2.pmin", &get_GovHydroIEEE2_pmin); - get_map.emplace("cim:GovHydroIEEE2.rperm", &get_GovHydroIEEE2_rperm); - get_map.emplace("cim:GovHydroIEEE2.rtemp", &get_GovHydroIEEE2_rtemp); - get_map.emplace("cim:GovHydroIEEE2.tg", &get_GovHydroIEEE2_tg); - get_map.emplace("cim:GovHydroIEEE2.tp", &get_GovHydroIEEE2_tp); - get_map.emplace("cim:GovHydroIEEE2.tr", &get_GovHydroIEEE2_tr); - get_map.emplace("cim:GovHydroIEEE2.tw", &get_GovHydroIEEE2_tw); - get_map.emplace("cim:GovHydroIEEE2.uc", &get_GovHydroIEEE2_uc); - get_map.emplace("cim:GovHydroIEEE2.uo", &get_GovHydroIEEE2_uo); + get_map.emplace("GovHydroIEEE2.aturb", &get_GovHydroIEEE2_aturb); + get_map.emplace("GovHydroIEEE2.bturb", &get_GovHydroIEEE2_bturb); + get_map.emplace("GovHydroIEEE2.gv1", &get_GovHydroIEEE2_gv1); + get_map.emplace("GovHydroIEEE2.gv2", &get_GovHydroIEEE2_gv2); + get_map.emplace("GovHydroIEEE2.gv3", &get_GovHydroIEEE2_gv3); + get_map.emplace("GovHydroIEEE2.gv4", &get_GovHydroIEEE2_gv4); + get_map.emplace("GovHydroIEEE2.gv5", &get_GovHydroIEEE2_gv5); + get_map.emplace("GovHydroIEEE2.gv6", &get_GovHydroIEEE2_gv6); + get_map.emplace("GovHydroIEEE2.kturb", &get_GovHydroIEEE2_kturb); + get_map.emplace("GovHydroIEEE2.mwbase", &get_GovHydroIEEE2_mwbase); + get_map.emplace("GovHydroIEEE2.pgv1", &get_GovHydroIEEE2_pgv1); + get_map.emplace("GovHydroIEEE2.pgv2", &get_GovHydroIEEE2_pgv2); + get_map.emplace("GovHydroIEEE2.pgv3", &get_GovHydroIEEE2_pgv3); + get_map.emplace("GovHydroIEEE2.pgv4", &get_GovHydroIEEE2_pgv4); + get_map.emplace("GovHydroIEEE2.pgv5", &get_GovHydroIEEE2_pgv5); + get_map.emplace("GovHydroIEEE2.pgv6", &get_GovHydroIEEE2_pgv6); + get_map.emplace("GovHydroIEEE2.pmax", &get_GovHydroIEEE2_pmax); + get_map.emplace("GovHydroIEEE2.pmin", &get_GovHydroIEEE2_pmin); + get_map.emplace("GovHydroIEEE2.rperm", &get_GovHydroIEEE2_rperm); + get_map.emplace("GovHydroIEEE2.rtemp", &get_GovHydroIEEE2_rtemp); + get_map.emplace("GovHydroIEEE2.tg", &get_GovHydroIEEE2_tg); + get_map.emplace("GovHydroIEEE2.tp", &get_GovHydroIEEE2_tp); + get_map.emplace("GovHydroIEEE2.tr", &get_GovHydroIEEE2_tr); + get_map.emplace("GovHydroIEEE2.tw", &get_GovHydroIEEE2_tw); + get_map.emplace("GovHydroIEEE2.uc", &get_GovHydroIEEE2_uc); + get_map.emplace("GovHydroIEEE2.uo", &get_GovHydroIEEE2_uo); } void GovHydroIEEE2::addClassGetFnsToMap(std::map& get_map) const @@ -904,11 +936,25 @@ void GovHydroIEEE2::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroIEEE2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroIEEE2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroIEEE2::declare() { return BaseClassDefiner(GovHydroIEEE2::addConstructToMap, GovHydroIEEE2::addPrimitiveAssignFnsToMap, GovHydroIEEE2::addClassAssignFnsToMap, GovHydroIEEE2::debugName); } +std::map GovHydroIEEE2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroIEEE2_factory() diff --git a/CGMES_3.0.0/GovHydroIEEE2.hpp b/CGMES_3.0.0/GovHydroIEEE2.hpp index d0ecc37f5..a721764d8 100644 --- a/CGMES_3.0.0/GovHydroIEEE2.hpp +++ b/CGMES_3.0.0/GovHydroIEEE2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "PU.hpp" @@ -109,8 +110,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -118,7 +126,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroIEEE2_factory(); diff --git a/CGMES_3.0.0/GovHydroPID.cpp b/CGMES_3.0.0/GovHydroPID.cpp index 45136a44f..a1a811b75 100644 --- a/CGMES_3.0.0/GovHydroPID.cpp +++ b/CGMES_3.0.0/GovHydroPID.cpp @@ -11,64 +11,96 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPID(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPID.aturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.bturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.eps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.inputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.tturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.velcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID.velop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPID::GovHydroPID() {} GovHydroPID::~GovHydroPID() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPID.aturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.bturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.r", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.td", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tf", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.tturb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroPID.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPID::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPID::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPID::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPID::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPID::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPID::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPID::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPID::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPID::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPID_aturb(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1036,44 +1068,44 @@ const char* GovHydroPID::debugString() const void GovHydroPID::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPID", &GovHydroPID_factory); + factory_map.emplace("GovHydroPID", &GovHydroPID_factory); } void GovHydroPID::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPID.aturb", &assign_GovHydroPID_aturb); - assign_map.emplace("cim:GovHydroPID.bturb", &assign_GovHydroPID_bturb); - assign_map.emplace("cim:GovHydroPID.db1", &assign_GovHydroPID_db1); - assign_map.emplace("cim:GovHydroPID.db2", &assign_GovHydroPID_db2); - assign_map.emplace("cim:GovHydroPID.eps", &assign_GovHydroPID_eps); - assign_map.emplace("cim:GovHydroPID.gv1", &assign_GovHydroPID_gv1); - assign_map.emplace("cim:GovHydroPID.gv2", &assign_GovHydroPID_gv2); - assign_map.emplace("cim:GovHydroPID.gv3", &assign_GovHydroPID_gv3); - assign_map.emplace("cim:GovHydroPID.gv4", &assign_GovHydroPID_gv4); - assign_map.emplace("cim:GovHydroPID.gv5", &assign_GovHydroPID_gv5); - assign_map.emplace("cim:GovHydroPID.gv6", &assign_GovHydroPID_gv6); - assign_map.emplace("cim:GovHydroPID.inputSignal", &assign_GovHydroPID_inputSignal); - assign_map.emplace("cim:GovHydroPID.kd", &assign_GovHydroPID_kd); - assign_map.emplace("cim:GovHydroPID.kg", &assign_GovHydroPID_kg); - assign_map.emplace("cim:GovHydroPID.ki", &assign_GovHydroPID_ki); - assign_map.emplace("cim:GovHydroPID.kp", &assign_GovHydroPID_kp); - assign_map.emplace("cim:GovHydroPID.mwbase", &assign_GovHydroPID_mwbase); - assign_map.emplace("cim:GovHydroPID.pgv1", &assign_GovHydroPID_pgv1); - assign_map.emplace("cim:GovHydroPID.pgv2", &assign_GovHydroPID_pgv2); - assign_map.emplace("cim:GovHydroPID.pgv3", &assign_GovHydroPID_pgv3); - assign_map.emplace("cim:GovHydroPID.pgv4", &assign_GovHydroPID_pgv4); - assign_map.emplace("cim:GovHydroPID.pgv5", &assign_GovHydroPID_pgv5); - assign_map.emplace("cim:GovHydroPID.pgv6", &assign_GovHydroPID_pgv6); - assign_map.emplace("cim:GovHydroPID.pmax", &assign_GovHydroPID_pmax); - assign_map.emplace("cim:GovHydroPID.pmin", &assign_GovHydroPID_pmin); - assign_map.emplace("cim:GovHydroPID.r", &assign_GovHydroPID_r); - assign_map.emplace("cim:GovHydroPID.td", &assign_GovHydroPID_td); - assign_map.emplace("cim:GovHydroPID.tf", &assign_GovHydroPID_tf); - assign_map.emplace("cim:GovHydroPID.tp", &assign_GovHydroPID_tp); - assign_map.emplace("cim:GovHydroPID.tt", &assign_GovHydroPID_tt); - assign_map.emplace("cim:GovHydroPID.tturb", &assign_GovHydroPID_tturb); - assign_map.emplace("cim:GovHydroPID.velcl", &assign_GovHydroPID_velcl); - assign_map.emplace("cim:GovHydroPID.velop", &assign_GovHydroPID_velop); + assign_map.emplace("GovHydroPID.aturb", &assign_GovHydroPID_aturb); + assign_map.emplace("GovHydroPID.bturb", &assign_GovHydroPID_bturb); + assign_map.emplace("GovHydroPID.db1", &assign_GovHydroPID_db1); + assign_map.emplace("GovHydroPID.db2", &assign_GovHydroPID_db2); + assign_map.emplace("GovHydroPID.eps", &assign_GovHydroPID_eps); + assign_map.emplace("GovHydroPID.gv1", &assign_GovHydroPID_gv1); + assign_map.emplace("GovHydroPID.gv2", &assign_GovHydroPID_gv2); + assign_map.emplace("GovHydroPID.gv3", &assign_GovHydroPID_gv3); + assign_map.emplace("GovHydroPID.gv4", &assign_GovHydroPID_gv4); + assign_map.emplace("GovHydroPID.gv5", &assign_GovHydroPID_gv5); + assign_map.emplace("GovHydroPID.gv6", &assign_GovHydroPID_gv6); + assign_map.emplace("GovHydroPID.inputSignal", &assign_GovHydroPID_inputSignal); + assign_map.emplace("GovHydroPID.kd", &assign_GovHydroPID_kd); + assign_map.emplace("GovHydroPID.kg", &assign_GovHydroPID_kg); + assign_map.emplace("GovHydroPID.ki", &assign_GovHydroPID_ki); + assign_map.emplace("GovHydroPID.kp", &assign_GovHydroPID_kp); + assign_map.emplace("GovHydroPID.mwbase", &assign_GovHydroPID_mwbase); + assign_map.emplace("GovHydroPID.pgv1", &assign_GovHydroPID_pgv1); + assign_map.emplace("GovHydroPID.pgv2", &assign_GovHydroPID_pgv2); + assign_map.emplace("GovHydroPID.pgv3", &assign_GovHydroPID_pgv3); + assign_map.emplace("GovHydroPID.pgv4", &assign_GovHydroPID_pgv4); + assign_map.emplace("GovHydroPID.pgv5", &assign_GovHydroPID_pgv5); + assign_map.emplace("GovHydroPID.pgv6", &assign_GovHydroPID_pgv6); + assign_map.emplace("GovHydroPID.pmax", &assign_GovHydroPID_pmax); + assign_map.emplace("GovHydroPID.pmin", &assign_GovHydroPID_pmin); + assign_map.emplace("GovHydroPID.r", &assign_GovHydroPID_r); + assign_map.emplace("GovHydroPID.td", &assign_GovHydroPID_td); + assign_map.emplace("GovHydroPID.tf", &assign_GovHydroPID_tf); + assign_map.emplace("GovHydroPID.tp", &assign_GovHydroPID_tp); + assign_map.emplace("GovHydroPID.tt", &assign_GovHydroPID_tt); + assign_map.emplace("GovHydroPID.tturb", &assign_GovHydroPID_tturb); + assign_map.emplace("GovHydroPID.velcl", &assign_GovHydroPID_velcl); + assign_map.emplace("GovHydroPID.velop", &assign_GovHydroPID_velop); } void GovHydroPID::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1083,39 +1115,39 @@ void GovHydroPID::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPID.aturb", &get_GovHydroPID_aturb); - get_map.emplace("cim:GovHydroPID.bturb", &get_GovHydroPID_bturb); - get_map.emplace("cim:GovHydroPID.db1", &get_GovHydroPID_db1); - get_map.emplace("cim:GovHydroPID.db2", &get_GovHydroPID_db2); - get_map.emplace("cim:GovHydroPID.eps", &get_GovHydroPID_eps); - get_map.emplace("cim:GovHydroPID.gv1", &get_GovHydroPID_gv1); - get_map.emplace("cim:GovHydroPID.gv2", &get_GovHydroPID_gv2); - get_map.emplace("cim:GovHydroPID.gv3", &get_GovHydroPID_gv3); - get_map.emplace("cim:GovHydroPID.gv4", &get_GovHydroPID_gv4); - get_map.emplace("cim:GovHydroPID.gv5", &get_GovHydroPID_gv5); - get_map.emplace("cim:GovHydroPID.gv6", &get_GovHydroPID_gv6); - get_map.emplace("cim:GovHydroPID.inputSignal", &get_GovHydroPID_inputSignal); - get_map.emplace("cim:GovHydroPID.kd", &get_GovHydroPID_kd); - get_map.emplace("cim:GovHydroPID.kg", &get_GovHydroPID_kg); - get_map.emplace("cim:GovHydroPID.ki", &get_GovHydroPID_ki); - get_map.emplace("cim:GovHydroPID.kp", &get_GovHydroPID_kp); - get_map.emplace("cim:GovHydroPID.mwbase", &get_GovHydroPID_mwbase); - get_map.emplace("cim:GovHydroPID.pgv1", &get_GovHydroPID_pgv1); - get_map.emplace("cim:GovHydroPID.pgv2", &get_GovHydroPID_pgv2); - get_map.emplace("cim:GovHydroPID.pgv3", &get_GovHydroPID_pgv3); - get_map.emplace("cim:GovHydroPID.pgv4", &get_GovHydroPID_pgv4); - get_map.emplace("cim:GovHydroPID.pgv5", &get_GovHydroPID_pgv5); - get_map.emplace("cim:GovHydroPID.pgv6", &get_GovHydroPID_pgv6); - get_map.emplace("cim:GovHydroPID.pmax", &get_GovHydroPID_pmax); - get_map.emplace("cim:GovHydroPID.pmin", &get_GovHydroPID_pmin); - get_map.emplace("cim:GovHydroPID.r", &get_GovHydroPID_r); - get_map.emplace("cim:GovHydroPID.td", &get_GovHydroPID_td); - get_map.emplace("cim:GovHydroPID.tf", &get_GovHydroPID_tf); - get_map.emplace("cim:GovHydroPID.tp", &get_GovHydroPID_tp); - get_map.emplace("cim:GovHydroPID.tt", &get_GovHydroPID_tt); - get_map.emplace("cim:GovHydroPID.tturb", &get_GovHydroPID_tturb); - get_map.emplace("cim:GovHydroPID.velcl", &get_GovHydroPID_velcl); - get_map.emplace("cim:GovHydroPID.velop", &get_GovHydroPID_velop); + get_map.emplace("GovHydroPID.aturb", &get_GovHydroPID_aturb); + get_map.emplace("GovHydroPID.bturb", &get_GovHydroPID_bturb); + get_map.emplace("GovHydroPID.db1", &get_GovHydroPID_db1); + get_map.emplace("GovHydroPID.db2", &get_GovHydroPID_db2); + get_map.emplace("GovHydroPID.eps", &get_GovHydroPID_eps); + get_map.emplace("GovHydroPID.gv1", &get_GovHydroPID_gv1); + get_map.emplace("GovHydroPID.gv2", &get_GovHydroPID_gv2); + get_map.emplace("GovHydroPID.gv3", &get_GovHydroPID_gv3); + get_map.emplace("GovHydroPID.gv4", &get_GovHydroPID_gv4); + get_map.emplace("GovHydroPID.gv5", &get_GovHydroPID_gv5); + get_map.emplace("GovHydroPID.gv6", &get_GovHydroPID_gv6); + get_map.emplace("GovHydroPID.inputSignal", &get_GovHydroPID_inputSignal); + get_map.emplace("GovHydroPID.kd", &get_GovHydroPID_kd); + get_map.emplace("GovHydroPID.kg", &get_GovHydroPID_kg); + get_map.emplace("GovHydroPID.ki", &get_GovHydroPID_ki); + get_map.emplace("GovHydroPID.kp", &get_GovHydroPID_kp); + get_map.emplace("GovHydroPID.mwbase", &get_GovHydroPID_mwbase); + get_map.emplace("GovHydroPID.pgv1", &get_GovHydroPID_pgv1); + get_map.emplace("GovHydroPID.pgv2", &get_GovHydroPID_pgv2); + get_map.emplace("GovHydroPID.pgv3", &get_GovHydroPID_pgv3); + get_map.emplace("GovHydroPID.pgv4", &get_GovHydroPID_pgv4); + get_map.emplace("GovHydroPID.pgv5", &get_GovHydroPID_pgv5); + get_map.emplace("GovHydroPID.pgv6", &get_GovHydroPID_pgv6); + get_map.emplace("GovHydroPID.pmax", &get_GovHydroPID_pmax); + get_map.emplace("GovHydroPID.pmin", &get_GovHydroPID_pmin); + get_map.emplace("GovHydroPID.r", &get_GovHydroPID_r); + get_map.emplace("GovHydroPID.td", &get_GovHydroPID_td); + get_map.emplace("GovHydroPID.tf", &get_GovHydroPID_tf); + get_map.emplace("GovHydroPID.tp", &get_GovHydroPID_tp); + get_map.emplace("GovHydroPID.tt", &get_GovHydroPID_tt); + get_map.emplace("GovHydroPID.tturb", &get_GovHydroPID_tturb); + get_map.emplace("GovHydroPID.velcl", &get_GovHydroPID_velcl); + get_map.emplace("GovHydroPID.velop", &get_GovHydroPID_velop); } void GovHydroPID::addClassGetFnsToMap(std::map& get_map) const @@ -1128,11 +1160,25 @@ void GovHydroPID::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPID::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPID" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPID::declare() { return BaseClassDefiner(GovHydroPID::addConstructToMap, GovHydroPID::addPrimitiveAssignFnsToMap, GovHydroPID::addClassAssignFnsToMap, GovHydroPID::debugName); } +std::map GovHydroPID::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPID_factory() diff --git a/CGMES_3.0.0/GovHydroPID.hpp b/CGMES_3.0.0/GovHydroPID.hpp index 8a9d9445b..add595d6d 100644 --- a/CGMES_3.0.0/GovHydroPID.hpp +++ b/CGMES_3.0.0/GovHydroPID.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -132,8 +133,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -141,7 +149,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPID_factory(); diff --git a/CGMES_3.0.0/GovHydroPID2.cpp b/CGMES_3.0.0/GovHydroPID2.cpp index 59654db7b..d3a67e1f6 100644 --- a/CGMES_3.0.0/GovHydroPID2.cpp +++ b/CGMES_3.0.0/GovHydroPID2.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPID2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPID2.atw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.d", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.feedbackSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.g2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.gmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.gmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.p3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.rperm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.treg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.velmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPID2.velmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPID2::GovHydroPID2() {} GovHydroPID2::~GovHydroPID2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPID2.atw", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.d", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.feedbackSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g0", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.g2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p1", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p2", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.p3", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.rperm", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.tb", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.treg", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.velmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPID2.velmin", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPID2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPID2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPID2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPID2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPID2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPID2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPID2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPID2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPID2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPID2_atw(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* GovHydroPID2::debugString() const void GovHydroPID2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPID2", &GovHydroPID2_factory); + factory_map.emplace("GovHydroPID2", &GovHydroPID2_factory); } void GovHydroPID2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPID2.atw", &assign_GovHydroPID2_atw); - assign_map.emplace("cim:GovHydroPID2.d", &assign_GovHydroPID2_d); - assign_map.emplace("cim:GovHydroPID2.feedbackSignal", &assign_GovHydroPID2_feedbackSignal); - assign_map.emplace("cim:GovHydroPID2.g0", &assign_GovHydroPID2_g0); - assign_map.emplace("cim:GovHydroPID2.g1", &assign_GovHydroPID2_g1); - assign_map.emplace("cim:GovHydroPID2.g2", &assign_GovHydroPID2_g2); - assign_map.emplace("cim:GovHydroPID2.gmax", &assign_GovHydroPID2_gmax); - assign_map.emplace("cim:GovHydroPID2.gmin", &assign_GovHydroPID2_gmin); - assign_map.emplace("cim:GovHydroPID2.kd", &assign_GovHydroPID2_kd); - assign_map.emplace("cim:GovHydroPID2.ki", &assign_GovHydroPID2_ki); - assign_map.emplace("cim:GovHydroPID2.kp", &assign_GovHydroPID2_kp); - assign_map.emplace("cim:GovHydroPID2.mwbase", &assign_GovHydroPID2_mwbase); - assign_map.emplace("cim:GovHydroPID2.p1", &assign_GovHydroPID2_p1); - assign_map.emplace("cim:GovHydroPID2.p2", &assign_GovHydroPID2_p2); - assign_map.emplace("cim:GovHydroPID2.p3", &assign_GovHydroPID2_p3); - assign_map.emplace("cim:GovHydroPID2.rperm", &assign_GovHydroPID2_rperm); - assign_map.emplace("cim:GovHydroPID2.ta", &assign_GovHydroPID2_ta); - assign_map.emplace("cim:GovHydroPID2.tb", &assign_GovHydroPID2_tb); - assign_map.emplace("cim:GovHydroPID2.treg", &assign_GovHydroPID2_treg); - assign_map.emplace("cim:GovHydroPID2.tw", &assign_GovHydroPID2_tw); - assign_map.emplace("cim:GovHydroPID2.velmax", &assign_GovHydroPID2_velmax); - assign_map.emplace("cim:GovHydroPID2.velmin", &assign_GovHydroPID2_velmin); + assign_map.emplace("GovHydroPID2.atw", &assign_GovHydroPID2_atw); + assign_map.emplace("GovHydroPID2.d", &assign_GovHydroPID2_d); + assign_map.emplace("GovHydroPID2.feedbackSignal", &assign_GovHydroPID2_feedbackSignal); + assign_map.emplace("GovHydroPID2.g0", &assign_GovHydroPID2_g0); + assign_map.emplace("GovHydroPID2.g1", &assign_GovHydroPID2_g1); + assign_map.emplace("GovHydroPID2.g2", &assign_GovHydroPID2_g2); + assign_map.emplace("GovHydroPID2.gmax", &assign_GovHydroPID2_gmax); + assign_map.emplace("GovHydroPID2.gmin", &assign_GovHydroPID2_gmin); + assign_map.emplace("GovHydroPID2.kd", &assign_GovHydroPID2_kd); + assign_map.emplace("GovHydroPID2.ki", &assign_GovHydroPID2_ki); + assign_map.emplace("GovHydroPID2.kp", &assign_GovHydroPID2_kp); + assign_map.emplace("GovHydroPID2.mwbase", &assign_GovHydroPID2_mwbase); + assign_map.emplace("GovHydroPID2.p1", &assign_GovHydroPID2_p1); + assign_map.emplace("GovHydroPID2.p2", &assign_GovHydroPID2_p2); + assign_map.emplace("GovHydroPID2.p3", &assign_GovHydroPID2_p3); + assign_map.emplace("GovHydroPID2.rperm", &assign_GovHydroPID2_rperm); + assign_map.emplace("GovHydroPID2.ta", &assign_GovHydroPID2_ta); + assign_map.emplace("GovHydroPID2.tb", &assign_GovHydroPID2_tb); + assign_map.emplace("GovHydroPID2.treg", &assign_GovHydroPID2_treg); + assign_map.emplace("GovHydroPID2.tw", &assign_GovHydroPID2_tw); + assign_map.emplace("GovHydroPID2.velmax", &assign_GovHydroPID2_velmax); + assign_map.emplace("GovHydroPID2.velmin", &assign_GovHydroPID2_velmin); } void GovHydroPID2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void GovHydroPID2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPID2.atw", &get_GovHydroPID2_atw); - get_map.emplace("cim:GovHydroPID2.d", &get_GovHydroPID2_d); - get_map.emplace("cim:GovHydroPID2.feedbackSignal", &get_GovHydroPID2_feedbackSignal); - get_map.emplace("cim:GovHydroPID2.g0", &get_GovHydroPID2_g0); - get_map.emplace("cim:GovHydroPID2.g1", &get_GovHydroPID2_g1); - get_map.emplace("cim:GovHydroPID2.g2", &get_GovHydroPID2_g2); - get_map.emplace("cim:GovHydroPID2.gmax", &get_GovHydroPID2_gmax); - get_map.emplace("cim:GovHydroPID2.gmin", &get_GovHydroPID2_gmin); - get_map.emplace("cim:GovHydroPID2.kd", &get_GovHydroPID2_kd); - get_map.emplace("cim:GovHydroPID2.ki", &get_GovHydroPID2_ki); - get_map.emplace("cim:GovHydroPID2.kp", &get_GovHydroPID2_kp); - get_map.emplace("cim:GovHydroPID2.mwbase", &get_GovHydroPID2_mwbase); - get_map.emplace("cim:GovHydroPID2.p1", &get_GovHydroPID2_p1); - get_map.emplace("cim:GovHydroPID2.p2", &get_GovHydroPID2_p2); - get_map.emplace("cim:GovHydroPID2.p3", &get_GovHydroPID2_p3); - get_map.emplace("cim:GovHydroPID2.rperm", &get_GovHydroPID2_rperm); - get_map.emplace("cim:GovHydroPID2.ta", &get_GovHydroPID2_ta); - get_map.emplace("cim:GovHydroPID2.tb", &get_GovHydroPID2_tb); - get_map.emplace("cim:GovHydroPID2.treg", &get_GovHydroPID2_treg); - get_map.emplace("cim:GovHydroPID2.tw", &get_GovHydroPID2_tw); - get_map.emplace("cim:GovHydroPID2.velmax", &get_GovHydroPID2_velmax); - get_map.emplace("cim:GovHydroPID2.velmin", &get_GovHydroPID2_velmin); + get_map.emplace("GovHydroPID2.atw", &get_GovHydroPID2_atw); + get_map.emplace("GovHydroPID2.d", &get_GovHydroPID2_d); + get_map.emplace("GovHydroPID2.feedbackSignal", &get_GovHydroPID2_feedbackSignal); + get_map.emplace("GovHydroPID2.g0", &get_GovHydroPID2_g0); + get_map.emplace("GovHydroPID2.g1", &get_GovHydroPID2_g1); + get_map.emplace("GovHydroPID2.g2", &get_GovHydroPID2_g2); + get_map.emplace("GovHydroPID2.gmax", &get_GovHydroPID2_gmax); + get_map.emplace("GovHydroPID2.gmin", &get_GovHydroPID2_gmin); + get_map.emplace("GovHydroPID2.kd", &get_GovHydroPID2_kd); + get_map.emplace("GovHydroPID2.ki", &get_GovHydroPID2_ki); + get_map.emplace("GovHydroPID2.kp", &get_GovHydroPID2_kp); + get_map.emplace("GovHydroPID2.mwbase", &get_GovHydroPID2_mwbase); + get_map.emplace("GovHydroPID2.p1", &get_GovHydroPID2_p1); + get_map.emplace("GovHydroPID2.p2", &get_GovHydroPID2_p2); + get_map.emplace("GovHydroPID2.p3", &get_GovHydroPID2_p3); + get_map.emplace("GovHydroPID2.rperm", &get_GovHydroPID2_rperm); + get_map.emplace("GovHydroPID2.ta", &get_GovHydroPID2_ta); + get_map.emplace("GovHydroPID2.tb", &get_GovHydroPID2_tb); + get_map.emplace("GovHydroPID2.treg", &get_GovHydroPID2_treg); + get_map.emplace("GovHydroPID2.tw", &get_GovHydroPID2_tw); + get_map.emplace("GovHydroPID2.velmax", &get_GovHydroPID2_velmax); + get_map.emplace("GovHydroPID2.velmin", &get_GovHydroPID2_velmin); } void GovHydroPID2::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void GovHydroPID2::addEnumGetFnsToMap(std::map& get_m TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPID2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPID2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPID2::declare() { return BaseClassDefiner(GovHydroPID2::addConstructToMap, GovHydroPID2::addPrimitiveAssignFnsToMap, GovHydroPID2::addClassAssignFnsToMap, GovHydroPID2::debugName); } +std::map GovHydroPID2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPID2_factory() diff --git a/CGMES_3.0.0/GovHydroPID2.hpp b/CGMES_3.0.0/GovHydroPID2.hpp index 5ab3afa06..bd40213f7 100644 --- a/CGMES_3.0.0/GovHydroPID2.hpp +++ b/CGMES_3.0.0/GovHydroPID2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -98,8 +99,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -107,7 +115,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPID2_factory(); diff --git a/CGMES_3.0.0/GovHydroPelton.cpp b/CGMES_3.0.0/GovHydroPelton.cpp index 1f8f2bbfe..e0b3f790b 100644 --- a/CGMES_3.0.0/GovHydroPelton.cpp +++ b/CGMES_3.0.0/GovHydroPelton.cpp @@ -11,59 +11,91 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroPelton(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroPelton.av0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.av1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.bp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.h1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.h2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.hn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.kc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.qc0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.qn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.simplifiedPelton", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.staticCompensating", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.ts", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.tv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.twnc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.twng", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.tx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.va", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.valvmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.valvmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vav", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.vcv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.waterTunnelSurgeChamberSimulation", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroPelton.zsfc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroPelton::GovHydroPelton() {} GovHydroPelton::~GovHydroPelton() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroPelton.av0", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.av1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.bp", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.h1", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.h2", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.hn", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.kc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.qc0", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.qn", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.simplifiedPelton", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.staticCompensating", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.ts", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.tv", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.twnc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.twng", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.tx", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.va", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.valvmax", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.valvmin", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vav", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vc", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.vcv", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", { CGMESProfile::DY, } }, - { "cim:GovHydroPelton.zsfc", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroPelton::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroPelton::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroPelton::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroPelton::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroPelton::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroPelton::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroPelton::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroPelton::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroPelton::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroPelton_av0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -886,39 +918,39 @@ const char* GovHydroPelton::debugString() const void GovHydroPelton::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroPelton", &GovHydroPelton_factory); + factory_map.emplace("GovHydroPelton", &GovHydroPelton_factory); } void GovHydroPelton::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroPelton.av0", &assign_GovHydroPelton_av0); - assign_map.emplace("cim:GovHydroPelton.av1", &assign_GovHydroPelton_av1); - assign_map.emplace("cim:GovHydroPelton.bp", &assign_GovHydroPelton_bp); - assign_map.emplace("cim:GovHydroPelton.db1", &assign_GovHydroPelton_db1); - assign_map.emplace("cim:GovHydroPelton.db2", &assign_GovHydroPelton_db2); - assign_map.emplace("cim:GovHydroPelton.h1", &assign_GovHydroPelton_h1); - assign_map.emplace("cim:GovHydroPelton.h2", &assign_GovHydroPelton_h2); - assign_map.emplace("cim:GovHydroPelton.hn", &assign_GovHydroPelton_hn); - assign_map.emplace("cim:GovHydroPelton.kc", &assign_GovHydroPelton_kc); - assign_map.emplace("cim:GovHydroPelton.kg", &assign_GovHydroPelton_kg); - assign_map.emplace("cim:GovHydroPelton.qc0", &assign_GovHydroPelton_qc0); - assign_map.emplace("cim:GovHydroPelton.qn", &assign_GovHydroPelton_qn); - assign_map.emplace("cim:GovHydroPelton.simplifiedPelton", &assign_GovHydroPelton_simplifiedPelton); - assign_map.emplace("cim:GovHydroPelton.staticCompensating", &assign_GovHydroPelton_staticCompensating); - assign_map.emplace("cim:GovHydroPelton.ta", &assign_GovHydroPelton_ta); - assign_map.emplace("cim:GovHydroPelton.ts", &assign_GovHydroPelton_ts); - assign_map.emplace("cim:GovHydroPelton.tv", &assign_GovHydroPelton_tv); - assign_map.emplace("cim:GovHydroPelton.twnc", &assign_GovHydroPelton_twnc); - assign_map.emplace("cim:GovHydroPelton.twng", &assign_GovHydroPelton_twng); - assign_map.emplace("cim:GovHydroPelton.tx", &assign_GovHydroPelton_tx); - assign_map.emplace("cim:GovHydroPelton.va", &assign_GovHydroPelton_va); - assign_map.emplace("cim:GovHydroPelton.valvmax", &assign_GovHydroPelton_valvmax); - assign_map.emplace("cim:GovHydroPelton.valvmin", &assign_GovHydroPelton_valvmin); - assign_map.emplace("cim:GovHydroPelton.vav", &assign_GovHydroPelton_vav); - assign_map.emplace("cim:GovHydroPelton.vc", &assign_GovHydroPelton_vc); - assign_map.emplace("cim:GovHydroPelton.vcv", &assign_GovHydroPelton_vcv); - assign_map.emplace("cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", &assign_GovHydroPelton_waterTunnelSurgeChamberSimulation); - assign_map.emplace("cim:GovHydroPelton.zsfc", &assign_GovHydroPelton_zsfc); + assign_map.emplace("GovHydroPelton.av0", &assign_GovHydroPelton_av0); + assign_map.emplace("GovHydroPelton.av1", &assign_GovHydroPelton_av1); + assign_map.emplace("GovHydroPelton.bp", &assign_GovHydroPelton_bp); + assign_map.emplace("GovHydroPelton.db1", &assign_GovHydroPelton_db1); + assign_map.emplace("GovHydroPelton.db2", &assign_GovHydroPelton_db2); + assign_map.emplace("GovHydroPelton.h1", &assign_GovHydroPelton_h1); + assign_map.emplace("GovHydroPelton.h2", &assign_GovHydroPelton_h2); + assign_map.emplace("GovHydroPelton.hn", &assign_GovHydroPelton_hn); + assign_map.emplace("GovHydroPelton.kc", &assign_GovHydroPelton_kc); + assign_map.emplace("GovHydroPelton.kg", &assign_GovHydroPelton_kg); + assign_map.emplace("GovHydroPelton.qc0", &assign_GovHydroPelton_qc0); + assign_map.emplace("GovHydroPelton.qn", &assign_GovHydroPelton_qn); + assign_map.emplace("GovHydroPelton.simplifiedPelton", &assign_GovHydroPelton_simplifiedPelton); + assign_map.emplace("GovHydroPelton.staticCompensating", &assign_GovHydroPelton_staticCompensating); + assign_map.emplace("GovHydroPelton.ta", &assign_GovHydroPelton_ta); + assign_map.emplace("GovHydroPelton.ts", &assign_GovHydroPelton_ts); + assign_map.emplace("GovHydroPelton.tv", &assign_GovHydroPelton_tv); + assign_map.emplace("GovHydroPelton.twnc", &assign_GovHydroPelton_twnc); + assign_map.emplace("GovHydroPelton.twng", &assign_GovHydroPelton_twng); + assign_map.emplace("GovHydroPelton.tx", &assign_GovHydroPelton_tx); + assign_map.emplace("GovHydroPelton.va", &assign_GovHydroPelton_va); + assign_map.emplace("GovHydroPelton.valvmax", &assign_GovHydroPelton_valvmax); + assign_map.emplace("GovHydroPelton.valvmin", &assign_GovHydroPelton_valvmin); + assign_map.emplace("GovHydroPelton.vav", &assign_GovHydroPelton_vav); + assign_map.emplace("GovHydroPelton.vc", &assign_GovHydroPelton_vc); + assign_map.emplace("GovHydroPelton.vcv", &assign_GovHydroPelton_vcv); + assign_map.emplace("GovHydroPelton.waterTunnelSurgeChamberSimulation", &assign_GovHydroPelton_waterTunnelSurgeChamberSimulation); + assign_map.emplace("GovHydroPelton.zsfc", &assign_GovHydroPelton_zsfc); } void GovHydroPelton::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -928,34 +960,34 @@ void GovHydroPelton::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroPelton.av0", &get_GovHydroPelton_av0); - get_map.emplace("cim:GovHydroPelton.av1", &get_GovHydroPelton_av1); - get_map.emplace("cim:GovHydroPelton.bp", &get_GovHydroPelton_bp); - get_map.emplace("cim:GovHydroPelton.db1", &get_GovHydroPelton_db1); - get_map.emplace("cim:GovHydroPelton.db2", &get_GovHydroPelton_db2); - get_map.emplace("cim:GovHydroPelton.h1", &get_GovHydroPelton_h1); - get_map.emplace("cim:GovHydroPelton.h2", &get_GovHydroPelton_h2); - get_map.emplace("cim:GovHydroPelton.hn", &get_GovHydroPelton_hn); - get_map.emplace("cim:GovHydroPelton.kc", &get_GovHydroPelton_kc); - get_map.emplace("cim:GovHydroPelton.kg", &get_GovHydroPelton_kg); - get_map.emplace("cim:GovHydroPelton.qc0", &get_GovHydroPelton_qc0); - get_map.emplace("cim:GovHydroPelton.qn", &get_GovHydroPelton_qn); - get_map.emplace("cim:GovHydroPelton.simplifiedPelton", &get_GovHydroPelton_simplifiedPelton); - get_map.emplace("cim:GovHydroPelton.staticCompensating", &get_GovHydroPelton_staticCompensating); - get_map.emplace("cim:GovHydroPelton.ta", &get_GovHydroPelton_ta); - get_map.emplace("cim:GovHydroPelton.ts", &get_GovHydroPelton_ts); - get_map.emplace("cim:GovHydroPelton.tv", &get_GovHydroPelton_tv); - get_map.emplace("cim:GovHydroPelton.twnc", &get_GovHydroPelton_twnc); - get_map.emplace("cim:GovHydroPelton.twng", &get_GovHydroPelton_twng); - get_map.emplace("cim:GovHydroPelton.tx", &get_GovHydroPelton_tx); - get_map.emplace("cim:GovHydroPelton.va", &get_GovHydroPelton_va); - get_map.emplace("cim:GovHydroPelton.valvmax", &get_GovHydroPelton_valvmax); - get_map.emplace("cim:GovHydroPelton.valvmin", &get_GovHydroPelton_valvmin); - get_map.emplace("cim:GovHydroPelton.vav", &get_GovHydroPelton_vav); - get_map.emplace("cim:GovHydroPelton.vc", &get_GovHydroPelton_vc); - get_map.emplace("cim:GovHydroPelton.vcv", &get_GovHydroPelton_vcv); - get_map.emplace("cim:GovHydroPelton.waterTunnelSurgeChamberSimulation", &get_GovHydroPelton_waterTunnelSurgeChamberSimulation); - get_map.emplace("cim:GovHydroPelton.zsfc", &get_GovHydroPelton_zsfc); + get_map.emplace("GovHydroPelton.av0", &get_GovHydroPelton_av0); + get_map.emplace("GovHydroPelton.av1", &get_GovHydroPelton_av1); + get_map.emplace("GovHydroPelton.bp", &get_GovHydroPelton_bp); + get_map.emplace("GovHydroPelton.db1", &get_GovHydroPelton_db1); + get_map.emplace("GovHydroPelton.db2", &get_GovHydroPelton_db2); + get_map.emplace("GovHydroPelton.h1", &get_GovHydroPelton_h1); + get_map.emplace("GovHydroPelton.h2", &get_GovHydroPelton_h2); + get_map.emplace("GovHydroPelton.hn", &get_GovHydroPelton_hn); + get_map.emplace("GovHydroPelton.kc", &get_GovHydroPelton_kc); + get_map.emplace("GovHydroPelton.kg", &get_GovHydroPelton_kg); + get_map.emplace("GovHydroPelton.qc0", &get_GovHydroPelton_qc0); + get_map.emplace("GovHydroPelton.qn", &get_GovHydroPelton_qn); + get_map.emplace("GovHydroPelton.simplifiedPelton", &get_GovHydroPelton_simplifiedPelton); + get_map.emplace("GovHydroPelton.staticCompensating", &get_GovHydroPelton_staticCompensating); + get_map.emplace("GovHydroPelton.ta", &get_GovHydroPelton_ta); + get_map.emplace("GovHydroPelton.ts", &get_GovHydroPelton_ts); + get_map.emplace("GovHydroPelton.tv", &get_GovHydroPelton_tv); + get_map.emplace("GovHydroPelton.twnc", &get_GovHydroPelton_twnc); + get_map.emplace("GovHydroPelton.twng", &get_GovHydroPelton_twng); + get_map.emplace("GovHydroPelton.tx", &get_GovHydroPelton_tx); + get_map.emplace("GovHydroPelton.va", &get_GovHydroPelton_va); + get_map.emplace("GovHydroPelton.valvmax", &get_GovHydroPelton_valvmax); + get_map.emplace("GovHydroPelton.valvmin", &get_GovHydroPelton_valvmin); + get_map.emplace("GovHydroPelton.vav", &get_GovHydroPelton_vav); + get_map.emplace("GovHydroPelton.vc", &get_GovHydroPelton_vc); + get_map.emplace("GovHydroPelton.vcv", &get_GovHydroPelton_vcv); + get_map.emplace("GovHydroPelton.waterTunnelSurgeChamberSimulation", &get_GovHydroPelton_waterTunnelSurgeChamberSimulation); + get_map.emplace("GovHydroPelton.zsfc", &get_GovHydroPelton_zsfc); } void GovHydroPelton::addClassGetFnsToMap(std::map& get_map) const @@ -968,11 +1000,25 @@ void GovHydroPelton::addEnumGetFnsToMap(std::map& get TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroPelton::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroPelton" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroPelton::declare() { return BaseClassDefiner(GovHydroPelton::addConstructToMap, GovHydroPelton::addPrimitiveAssignFnsToMap, GovHydroPelton::addClassAssignFnsToMap, GovHydroPelton::debugName); } +std::map GovHydroPelton::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroPelton_factory() diff --git a/CGMES_3.0.0/GovHydroPelton.hpp b/CGMES_3.0.0/GovHydroPelton.hpp index 55f39b805..271020445 100644 --- a/CGMES_3.0.0/GovHydroPelton.hpp +++ b/CGMES_3.0.0/GovHydroPelton.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Area.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -119,8 +120,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -128,7 +136,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroPelton_factory(); diff --git a/CGMES_3.0.0/GovHydroR.cpp b/CGMES_3.0.0/GovHydroR.cpp index b98e8cfc6..3a78e48b8 100644 --- a/CGMES_3.0.0/GovHydroR.cpp +++ b/CGMES_3.0.0/GovHydroR.cpp @@ -11,73 +11,105 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroR(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroR.at", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.dturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.eps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.gmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.gmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.h0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.inputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.qnl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.t7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.t8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.velcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroR.velop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroR::GovHydroR() {} GovHydroR::~GovHydroR() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroR.at", { CGMESProfile::DY, } }, - { "cim:GovHydroR.db1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.db2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydroR.eps", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.gv6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.h0", { CGMESProfile::DY, } }, - { "cim:GovHydroR.inputSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroR.kg", { CGMESProfile::DY, } }, - { "cim:GovHydroR.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroR.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pgv6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroR.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroR.qnl", { CGMESProfile::DY, } }, - { "cim:GovHydroR.r", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t1", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t2", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t3", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t4", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t5", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t6", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t7", { CGMESProfile::DY, } }, - { "cim:GovHydroR.t8", { CGMESProfile::DY, } }, - { "cim:GovHydroR.td", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tt", { CGMESProfile::DY, } }, - { "cim:GovHydroR.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroR.velcl", { CGMESProfile::DY, } }, - { "cim:GovHydroR.velop", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroR::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroR::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroR::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroR::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroR::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroR::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroR::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroR::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroR::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroR_at(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1306,53 +1338,53 @@ const char* GovHydroR::debugString() const void GovHydroR::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroR", &GovHydroR_factory); + factory_map.emplace("GovHydroR", &GovHydroR_factory); } void GovHydroR::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroR.at", &assign_GovHydroR_at); - assign_map.emplace("cim:GovHydroR.db1", &assign_GovHydroR_db1); - assign_map.emplace("cim:GovHydroR.db2", &assign_GovHydroR_db2); - assign_map.emplace("cim:GovHydroR.dturb", &assign_GovHydroR_dturb); - assign_map.emplace("cim:GovHydroR.eps", &assign_GovHydroR_eps); - assign_map.emplace("cim:GovHydroR.gmax", &assign_GovHydroR_gmax); - assign_map.emplace("cim:GovHydroR.gmin", &assign_GovHydroR_gmin); - assign_map.emplace("cim:GovHydroR.gv1", &assign_GovHydroR_gv1); - assign_map.emplace("cim:GovHydroR.gv2", &assign_GovHydroR_gv2); - assign_map.emplace("cim:GovHydroR.gv3", &assign_GovHydroR_gv3); - assign_map.emplace("cim:GovHydroR.gv4", &assign_GovHydroR_gv4); - assign_map.emplace("cim:GovHydroR.gv5", &assign_GovHydroR_gv5); - assign_map.emplace("cim:GovHydroR.gv6", &assign_GovHydroR_gv6); - assign_map.emplace("cim:GovHydroR.h0", &assign_GovHydroR_h0); - assign_map.emplace("cim:GovHydroR.inputSignal", &assign_GovHydroR_inputSignal); - assign_map.emplace("cim:GovHydroR.kg", &assign_GovHydroR_kg); - assign_map.emplace("cim:GovHydroR.ki", &assign_GovHydroR_ki); - assign_map.emplace("cim:GovHydroR.mwbase", &assign_GovHydroR_mwbase); - assign_map.emplace("cim:GovHydroR.pgv1", &assign_GovHydroR_pgv1); - assign_map.emplace("cim:GovHydroR.pgv2", &assign_GovHydroR_pgv2); - assign_map.emplace("cim:GovHydroR.pgv3", &assign_GovHydroR_pgv3); - assign_map.emplace("cim:GovHydroR.pgv4", &assign_GovHydroR_pgv4); - assign_map.emplace("cim:GovHydroR.pgv5", &assign_GovHydroR_pgv5); - assign_map.emplace("cim:GovHydroR.pgv6", &assign_GovHydroR_pgv6); - assign_map.emplace("cim:GovHydroR.pmax", &assign_GovHydroR_pmax); - assign_map.emplace("cim:GovHydroR.pmin", &assign_GovHydroR_pmin); - assign_map.emplace("cim:GovHydroR.qnl", &assign_GovHydroR_qnl); - assign_map.emplace("cim:GovHydroR.r", &assign_GovHydroR_r); - assign_map.emplace("cim:GovHydroR.t1", &assign_GovHydroR_t1); - assign_map.emplace("cim:GovHydroR.t2", &assign_GovHydroR_t2); - assign_map.emplace("cim:GovHydroR.t3", &assign_GovHydroR_t3); - assign_map.emplace("cim:GovHydroR.t4", &assign_GovHydroR_t4); - assign_map.emplace("cim:GovHydroR.t5", &assign_GovHydroR_t5); - assign_map.emplace("cim:GovHydroR.t6", &assign_GovHydroR_t6); - assign_map.emplace("cim:GovHydroR.t7", &assign_GovHydroR_t7); - assign_map.emplace("cim:GovHydroR.t8", &assign_GovHydroR_t8); - assign_map.emplace("cim:GovHydroR.td", &assign_GovHydroR_td); - assign_map.emplace("cim:GovHydroR.tp", &assign_GovHydroR_tp); - assign_map.emplace("cim:GovHydroR.tt", &assign_GovHydroR_tt); - assign_map.emplace("cim:GovHydroR.tw", &assign_GovHydroR_tw); - assign_map.emplace("cim:GovHydroR.velcl", &assign_GovHydroR_velcl); - assign_map.emplace("cim:GovHydroR.velop", &assign_GovHydroR_velop); + assign_map.emplace("GovHydroR.at", &assign_GovHydroR_at); + assign_map.emplace("GovHydroR.db1", &assign_GovHydroR_db1); + assign_map.emplace("GovHydroR.db2", &assign_GovHydroR_db2); + assign_map.emplace("GovHydroR.dturb", &assign_GovHydroR_dturb); + assign_map.emplace("GovHydroR.eps", &assign_GovHydroR_eps); + assign_map.emplace("GovHydroR.gmax", &assign_GovHydroR_gmax); + assign_map.emplace("GovHydroR.gmin", &assign_GovHydroR_gmin); + assign_map.emplace("GovHydroR.gv1", &assign_GovHydroR_gv1); + assign_map.emplace("GovHydroR.gv2", &assign_GovHydroR_gv2); + assign_map.emplace("GovHydroR.gv3", &assign_GovHydroR_gv3); + assign_map.emplace("GovHydroR.gv4", &assign_GovHydroR_gv4); + assign_map.emplace("GovHydroR.gv5", &assign_GovHydroR_gv5); + assign_map.emplace("GovHydroR.gv6", &assign_GovHydroR_gv6); + assign_map.emplace("GovHydroR.h0", &assign_GovHydroR_h0); + assign_map.emplace("GovHydroR.inputSignal", &assign_GovHydroR_inputSignal); + assign_map.emplace("GovHydroR.kg", &assign_GovHydroR_kg); + assign_map.emplace("GovHydroR.ki", &assign_GovHydroR_ki); + assign_map.emplace("GovHydroR.mwbase", &assign_GovHydroR_mwbase); + assign_map.emplace("GovHydroR.pgv1", &assign_GovHydroR_pgv1); + assign_map.emplace("GovHydroR.pgv2", &assign_GovHydroR_pgv2); + assign_map.emplace("GovHydroR.pgv3", &assign_GovHydroR_pgv3); + assign_map.emplace("GovHydroR.pgv4", &assign_GovHydroR_pgv4); + assign_map.emplace("GovHydroR.pgv5", &assign_GovHydroR_pgv5); + assign_map.emplace("GovHydroR.pgv6", &assign_GovHydroR_pgv6); + assign_map.emplace("GovHydroR.pmax", &assign_GovHydroR_pmax); + assign_map.emplace("GovHydroR.pmin", &assign_GovHydroR_pmin); + assign_map.emplace("GovHydroR.qnl", &assign_GovHydroR_qnl); + assign_map.emplace("GovHydroR.r", &assign_GovHydroR_r); + assign_map.emplace("GovHydroR.t1", &assign_GovHydroR_t1); + assign_map.emplace("GovHydroR.t2", &assign_GovHydroR_t2); + assign_map.emplace("GovHydroR.t3", &assign_GovHydroR_t3); + assign_map.emplace("GovHydroR.t4", &assign_GovHydroR_t4); + assign_map.emplace("GovHydroR.t5", &assign_GovHydroR_t5); + assign_map.emplace("GovHydroR.t6", &assign_GovHydroR_t6); + assign_map.emplace("GovHydroR.t7", &assign_GovHydroR_t7); + assign_map.emplace("GovHydroR.t8", &assign_GovHydroR_t8); + assign_map.emplace("GovHydroR.td", &assign_GovHydroR_td); + assign_map.emplace("GovHydroR.tp", &assign_GovHydroR_tp); + assign_map.emplace("GovHydroR.tt", &assign_GovHydroR_tt); + assign_map.emplace("GovHydroR.tw", &assign_GovHydroR_tw); + assign_map.emplace("GovHydroR.velcl", &assign_GovHydroR_velcl); + assign_map.emplace("GovHydroR.velop", &assign_GovHydroR_velop); } void GovHydroR::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1362,48 +1394,48 @@ void GovHydroR::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroR.at", &get_GovHydroR_at); - get_map.emplace("cim:GovHydroR.db1", &get_GovHydroR_db1); - get_map.emplace("cim:GovHydroR.db2", &get_GovHydroR_db2); - get_map.emplace("cim:GovHydroR.dturb", &get_GovHydroR_dturb); - get_map.emplace("cim:GovHydroR.eps", &get_GovHydroR_eps); - get_map.emplace("cim:GovHydroR.gmax", &get_GovHydroR_gmax); - get_map.emplace("cim:GovHydroR.gmin", &get_GovHydroR_gmin); - get_map.emplace("cim:GovHydroR.gv1", &get_GovHydroR_gv1); - get_map.emplace("cim:GovHydroR.gv2", &get_GovHydroR_gv2); - get_map.emplace("cim:GovHydroR.gv3", &get_GovHydroR_gv3); - get_map.emplace("cim:GovHydroR.gv4", &get_GovHydroR_gv4); - get_map.emplace("cim:GovHydroR.gv5", &get_GovHydroR_gv5); - get_map.emplace("cim:GovHydroR.gv6", &get_GovHydroR_gv6); - get_map.emplace("cim:GovHydroR.h0", &get_GovHydroR_h0); - get_map.emplace("cim:GovHydroR.inputSignal", &get_GovHydroR_inputSignal); - get_map.emplace("cim:GovHydroR.kg", &get_GovHydroR_kg); - get_map.emplace("cim:GovHydroR.ki", &get_GovHydroR_ki); - get_map.emplace("cim:GovHydroR.mwbase", &get_GovHydroR_mwbase); - get_map.emplace("cim:GovHydroR.pgv1", &get_GovHydroR_pgv1); - get_map.emplace("cim:GovHydroR.pgv2", &get_GovHydroR_pgv2); - get_map.emplace("cim:GovHydroR.pgv3", &get_GovHydroR_pgv3); - get_map.emplace("cim:GovHydroR.pgv4", &get_GovHydroR_pgv4); - get_map.emplace("cim:GovHydroR.pgv5", &get_GovHydroR_pgv5); - get_map.emplace("cim:GovHydroR.pgv6", &get_GovHydroR_pgv6); - get_map.emplace("cim:GovHydroR.pmax", &get_GovHydroR_pmax); - get_map.emplace("cim:GovHydroR.pmin", &get_GovHydroR_pmin); - get_map.emplace("cim:GovHydroR.qnl", &get_GovHydroR_qnl); - get_map.emplace("cim:GovHydroR.r", &get_GovHydroR_r); - get_map.emplace("cim:GovHydroR.t1", &get_GovHydroR_t1); - get_map.emplace("cim:GovHydroR.t2", &get_GovHydroR_t2); - get_map.emplace("cim:GovHydroR.t3", &get_GovHydroR_t3); - get_map.emplace("cim:GovHydroR.t4", &get_GovHydroR_t4); - get_map.emplace("cim:GovHydroR.t5", &get_GovHydroR_t5); - get_map.emplace("cim:GovHydroR.t6", &get_GovHydroR_t6); - get_map.emplace("cim:GovHydroR.t7", &get_GovHydroR_t7); - get_map.emplace("cim:GovHydroR.t8", &get_GovHydroR_t8); - get_map.emplace("cim:GovHydroR.td", &get_GovHydroR_td); - get_map.emplace("cim:GovHydroR.tp", &get_GovHydroR_tp); - get_map.emplace("cim:GovHydroR.tt", &get_GovHydroR_tt); - get_map.emplace("cim:GovHydroR.tw", &get_GovHydroR_tw); - get_map.emplace("cim:GovHydroR.velcl", &get_GovHydroR_velcl); - get_map.emplace("cim:GovHydroR.velop", &get_GovHydroR_velop); + get_map.emplace("GovHydroR.at", &get_GovHydroR_at); + get_map.emplace("GovHydroR.db1", &get_GovHydroR_db1); + get_map.emplace("GovHydroR.db2", &get_GovHydroR_db2); + get_map.emplace("GovHydroR.dturb", &get_GovHydroR_dturb); + get_map.emplace("GovHydroR.eps", &get_GovHydroR_eps); + get_map.emplace("GovHydroR.gmax", &get_GovHydroR_gmax); + get_map.emplace("GovHydroR.gmin", &get_GovHydroR_gmin); + get_map.emplace("GovHydroR.gv1", &get_GovHydroR_gv1); + get_map.emplace("GovHydroR.gv2", &get_GovHydroR_gv2); + get_map.emplace("GovHydroR.gv3", &get_GovHydroR_gv3); + get_map.emplace("GovHydroR.gv4", &get_GovHydroR_gv4); + get_map.emplace("GovHydroR.gv5", &get_GovHydroR_gv5); + get_map.emplace("GovHydroR.gv6", &get_GovHydroR_gv6); + get_map.emplace("GovHydroR.h0", &get_GovHydroR_h0); + get_map.emplace("GovHydroR.inputSignal", &get_GovHydroR_inputSignal); + get_map.emplace("GovHydroR.kg", &get_GovHydroR_kg); + get_map.emplace("GovHydroR.ki", &get_GovHydroR_ki); + get_map.emplace("GovHydroR.mwbase", &get_GovHydroR_mwbase); + get_map.emplace("GovHydroR.pgv1", &get_GovHydroR_pgv1); + get_map.emplace("GovHydroR.pgv2", &get_GovHydroR_pgv2); + get_map.emplace("GovHydroR.pgv3", &get_GovHydroR_pgv3); + get_map.emplace("GovHydroR.pgv4", &get_GovHydroR_pgv4); + get_map.emplace("GovHydroR.pgv5", &get_GovHydroR_pgv5); + get_map.emplace("GovHydroR.pgv6", &get_GovHydroR_pgv6); + get_map.emplace("GovHydroR.pmax", &get_GovHydroR_pmax); + get_map.emplace("GovHydroR.pmin", &get_GovHydroR_pmin); + get_map.emplace("GovHydroR.qnl", &get_GovHydroR_qnl); + get_map.emplace("GovHydroR.r", &get_GovHydroR_r); + get_map.emplace("GovHydroR.t1", &get_GovHydroR_t1); + get_map.emplace("GovHydroR.t2", &get_GovHydroR_t2); + get_map.emplace("GovHydroR.t3", &get_GovHydroR_t3); + get_map.emplace("GovHydroR.t4", &get_GovHydroR_t4); + get_map.emplace("GovHydroR.t5", &get_GovHydroR_t5); + get_map.emplace("GovHydroR.t6", &get_GovHydroR_t6); + get_map.emplace("GovHydroR.t7", &get_GovHydroR_t7); + get_map.emplace("GovHydroR.t8", &get_GovHydroR_t8); + get_map.emplace("GovHydroR.td", &get_GovHydroR_td); + get_map.emplace("GovHydroR.tp", &get_GovHydroR_tp); + get_map.emplace("GovHydroR.tt", &get_GovHydroR_tt); + get_map.emplace("GovHydroR.tw", &get_GovHydroR_tw); + get_map.emplace("GovHydroR.velcl", &get_GovHydroR_velcl); + get_map.emplace("GovHydroR.velop", &get_GovHydroR_velop); } void GovHydroR::addClassGetFnsToMap(std::map& get_map) const @@ -1416,11 +1448,25 @@ void GovHydroR::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroR::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroR" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroR::declare() { return BaseClassDefiner(GovHydroR::addConstructToMap, GovHydroR::addPrimitiveAssignFnsToMap, GovHydroR::addClassAssignFnsToMap, GovHydroR::debugName); } +std::map GovHydroR::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroR_factory() diff --git a/CGMES_3.0.0/GovHydroR.hpp b/CGMES_3.0.0/GovHydroR.hpp index 3ea0ef036..5ddbfcb24 100644 --- a/CGMES_3.0.0/GovHydroR.hpp +++ b/CGMES_3.0.0/GovHydroR.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -159,8 +160,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -168,7 +176,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroR_factory(); diff --git a/CGMES_3.0.0/GovHydroWEH.cpp b/CGMES_3.0.0/GovHydroWEH.cpp index a59096688..858520c0d 100644 --- a/CGMES_3.0.0/GovHydroWEH.cpp +++ b/CGMES_3.0.0/GovHydroWEH.cpp @@ -11,82 +11,114 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroWEH(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroWEH.db", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dicn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dpv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.dturb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.feedbackSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fl5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.fp9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gtmxcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gtmxop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.pmss9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.rpg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.rpp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tdv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tpe", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWEH.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroWEH::GovHydroWEH() {} GovHydroWEH::~GovHydroWEH() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroWEH.db", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dicn", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dpv", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.dturb", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.feedbackSignal", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fl5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp10", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp6", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp7", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp8", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.fp9", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gtmxcl", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gtmxop", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.gv5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss1", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss10", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss2", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss3", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss4", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss5", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss6", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss7", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss8", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.pmss9", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.rpg", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.rpp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.td", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tdv", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tg", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tp", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tpe", { CGMESProfile::DY, } }, - { "cim:GovHydroWEH.tw", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroWEH::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroWEH::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroWEH::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroWEH::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroWEH::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroWEH::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroWEH::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroWEH::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroWEH::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroWEH_db(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1576,62 +1608,62 @@ const char* GovHydroWEH::debugString() const void GovHydroWEH::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroWEH", &GovHydroWEH_factory); + factory_map.emplace("GovHydroWEH", &GovHydroWEH_factory); } void GovHydroWEH::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroWEH.db", &assign_GovHydroWEH_db); - assign_map.emplace("cim:GovHydroWEH.dicn", &assign_GovHydroWEH_dicn); - assign_map.emplace("cim:GovHydroWEH.dpv", &assign_GovHydroWEH_dpv); - assign_map.emplace("cim:GovHydroWEH.dturb", &assign_GovHydroWEH_dturb); - assign_map.emplace("cim:GovHydroWEH.feedbackSignal", &assign_GovHydroWEH_feedbackSignal); - assign_map.emplace("cim:GovHydroWEH.fl1", &assign_GovHydroWEH_fl1); - assign_map.emplace("cim:GovHydroWEH.fl2", &assign_GovHydroWEH_fl2); - assign_map.emplace("cim:GovHydroWEH.fl3", &assign_GovHydroWEH_fl3); - assign_map.emplace("cim:GovHydroWEH.fl4", &assign_GovHydroWEH_fl4); - assign_map.emplace("cim:GovHydroWEH.fl5", &assign_GovHydroWEH_fl5); - assign_map.emplace("cim:GovHydroWEH.fp1", &assign_GovHydroWEH_fp1); - assign_map.emplace("cim:GovHydroWEH.fp10", &assign_GovHydroWEH_fp10); - assign_map.emplace("cim:GovHydroWEH.fp2", &assign_GovHydroWEH_fp2); - assign_map.emplace("cim:GovHydroWEH.fp3", &assign_GovHydroWEH_fp3); - assign_map.emplace("cim:GovHydroWEH.fp4", &assign_GovHydroWEH_fp4); - assign_map.emplace("cim:GovHydroWEH.fp5", &assign_GovHydroWEH_fp5); - assign_map.emplace("cim:GovHydroWEH.fp6", &assign_GovHydroWEH_fp6); - assign_map.emplace("cim:GovHydroWEH.fp7", &assign_GovHydroWEH_fp7); - assign_map.emplace("cim:GovHydroWEH.fp8", &assign_GovHydroWEH_fp8); - assign_map.emplace("cim:GovHydroWEH.fp9", &assign_GovHydroWEH_fp9); - assign_map.emplace("cim:GovHydroWEH.gmax", &assign_GovHydroWEH_gmax); - assign_map.emplace("cim:GovHydroWEH.gmin", &assign_GovHydroWEH_gmin); - assign_map.emplace("cim:GovHydroWEH.gtmxcl", &assign_GovHydroWEH_gtmxcl); - assign_map.emplace("cim:GovHydroWEH.gtmxop", &assign_GovHydroWEH_gtmxop); - assign_map.emplace("cim:GovHydroWEH.gv1", &assign_GovHydroWEH_gv1); - assign_map.emplace("cim:GovHydroWEH.gv2", &assign_GovHydroWEH_gv2); - assign_map.emplace("cim:GovHydroWEH.gv3", &assign_GovHydroWEH_gv3); - assign_map.emplace("cim:GovHydroWEH.gv4", &assign_GovHydroWEH_gv4); - assign_map.emplace("cim:GovHydroWEH.gv5", &assign_GovHydroWEH_gv5); - assign_map.emplace("cim:GovHydroWEH.kd", &assign_GovHydroWEH_kd); - assign_map.emplace("cim:GovHydroWEH.ki", &assign_GovHydroWEH_ki); - assign_map.emplace("cim:GovHydroWEH.kp", &assign_GovHydroWEH_kp); - assign_map.emplace("cim:GovHydroWEH.mwbase", &assign_GovHydroWEH_mwbase); - assign_map.emplace("cim:GovHydroWEH.pmss1", &assign_GovHydroWEH_pmss1); - assign_map.emplace("cim:GovHydroWEH.pmss10", &assign_GovHydroWEH_pmss10); - assign_map.emplace("cim:GovHydroWEH.pmss2", &assign_GovHydroWEH_pmss2); - assign_map.emplace("cim:GovHydroWEH.pmss3", &assign_GovHydroWEH_pmss3); - assign_map.emplace("cim:GovHydroWEH.pmss4", &assign_GovHydroWEH_pmss4); - assign_map.emplace("cim:GovHydroWEH.pmss5", &assign_GovHydroWEH_pmss5); - assign_map.emplace("cim:GovHydroWEH.pmss6", &assign_GovHydroWEH_pmss6); - assign_map.emplace("cim:GovHydroWEH.pmss7", &assign_GovHydroWEH_pmss7); - assign_map.emplace("cim:GovHydroWEH.pmss8", &assign_GovHydroWEH_pmss8); - assign_map.emplace("cim:GovHydroWEH.pmss9", &assign_GovHydroWEH_pmss9); - assign_map.emplace("cim:GovHydroWEH.rpg", &assign_GovHydroWEH_rpg); - assign_map.emplace("cim:GovHydroWEH.rpp", &assign_GovHydroWEH_rpp); - assign_map.emplace("cim:GovHydroWEH.td", &assign_GovHydroWEH_td); - assign_map.emplace("cim:GovHydroWEH.tdv", &assign_GovHydroWEH_tdv); - assign_map.emplace("cim:GovHydroWEH.tg", &assign_GovHydroWEH_tg); - assign_map.emplace("cim:GovHydroWEH.tp", &assign_GovHydroWEH_tp); - assign_map.emplace("cim:GovHydroWEH.tpe", &assign_GovHydroWEH_tpe); - assign_map.emplace("cim:GovHydroWEH.tw", &assign_GovHydroWEH_tw); + assign_map.emplace("GovHydroWEH.db", &assign_GovHydroWEH_db); + assign_map.emplace("GovHydroWEH.dicn", &assign_GovHydroWEH_dicn); + assign_map.emplace("GovHydroWEH.dpv", &assign_GovHydroWEH_dpv); + assign_map.emplace("GovHydroWEH.dturb", &assign_GovHydroWEH_dturb); + assign_map.emplace("GovHydroWEH.feedbackSignal", &assign_GovHydroWEH_feedbackSignal); + assign_map.emplace("GovHydroWEH.fl1", &assign_GovHydroWEH_fl1); + assign_map.emplace("GovHydroWEH.fl2", &assign_GovHydroWEH_fl2); + assign_map.emplace("GovHydroWEH.fl3", &assign_GovHydroWEH_fl3); + assign_map.emplace("GovHydroWEH.fl4", &assign_GovHydroWEH_fl4); + assign_map.emplace("GovHydroWEH.fl5", &assign_GovHydroWEH_fl5); + assign_map.emplace("GovHydroWEH.fp1", &assign_GovHydroWEH_fp1); + assign_map.emplace("GovHydroWEH.fp10", &assign_GovHydroWEH_fp10); + assign_map.emplace("GovHydroWEH.fp2", &assign_GovHydroWEH_fp2); + assign_map.emplace("GovHydroWEH.fp3", &assign_GovHydroWEH_fp3); + assign_map.emplace("GovHydroWEH.fp4", &assign_GovHydroWEH_fp4); + assign_map.emplace("GovHydroWEH.fp5", &assign_GovHydroWEH_fp5); + assign_map.emplace("GovHydroWEH.fp6", &assign_GovHydroWEH_fp6); + assign_map.emplace("GovHydroWEH.fp7", &assign_GovHydroWEH_fp7); + assign_map.emplace("GovHydroWEH.fp8", &assign_GovHydroWEH_fp8); + assign_map.emplace("GovHydroWEH.fp9", &assign_GovHydroWEH_fp9); + assign_map.emplace("GovHydroWEH.gmax", &assign_GovHydroWEH_gmax); + assign_map.emplace("GovHydroWEH.gmin", &assign_GovHydroWEH_gmin); + assign_map.emplace("GovHydroWEH.gtmxcl", &assign_GovHydroWEH_gtmxcl); + assign_map.emplace("GovHydroWEH.gtmxop", &assign_GovHydroWEH_gtmxop); + assign_map.emplace("GovHydroWEH.gv1", &assign_GovHydroWEH_gv1); + assign_map.emplace("GovHydroWEH.gv2", &assign_GovHydroWEH_gv2); + assign_map.emplace("GovHydroWEH.gv3", &assign_GovHydroWEH_gv3); + assign_map.emplace("GovHydroWEH.gv4", &assign_GovHydroWEH_gv4); + assign_map.emplace("GovHydroWEH.gv5", &assign_GovHydroWEH_gv5); + assign_map.emplace("GovHydroWEH.kd", &assign_GovHydroWEH_kd); + assign_map.emplace("GovHydroWEH.ki", &assign_GovHydroWEH_ki); + assign_map.emplace("GovHydroWEH.kp", &assign_GovHydroWEH_kp); + assign_map.emplace("GovHydroWEH.mwbase", &assign_GovHydroWEH_mwbase); + assign_map.emplace("GovHydroWEH.pmss1", &assign_GovHydroWEH_pmss1); + assign_map.emplace("GovHydroWEH.pmss10", &assign_GovHydroWEH_pmss10); + assign_map.emplace("GovHydroWEH.pmss2", &assign_GovHydroWEH_pmss2); + assign_map.emplace("GovHydroWEH.pmss3", &assign_GovHydroWEH_pmss3); + assign_map.emplace("GovHydroWEH.pmss4", &assign_GovHydroWEH_pmss4); + assign_map.emplace("GovHydroWEH.pmss5", &assign_GovHydroWEH_pmss5); + assign_map.emplace("GovHydroWEH.pmss6", &assign_GovHydroWEH_pmss6); + assign_map.emplace("GovHydroWEH.pmss7", &assign_GovHydroWEH_pmss7); + assign_map.emplace("GovHydroWEH.pmss8", &assign_GovHydroWEH_pmss8); + assign_map.emplace("GovHydroWEH.pmss9", &assign_GovHydroWEH_pmss9); + assign_map.emplace("GovHydroWEH.rpg", &assign_GovHydroWEH_rpg); + assign_map.emplace("GovHydroWEH.rpp", &assign_GovHydroWEH_rpp); + assign_map.emplace("GovHydroWEH.td", &assign_GovHydroWEH_td); + assign_map.emplace("GovHydroWEH.tdv", &assign_GovHydroWEH_tdv); + assign_map.emplace("GovHydroWEH.tg", &assign_GovHydroWEH_tg); + assign_map.emplace("GovHydroWEH.tp", &assign_GovHydroWEH_tp); + assign_map.emplace("GovHydroWEH.tpe", &assign_GovHydroWEH_tpe); + assign_map.emplace("GovHydroWEH.tw", &assign_GovHydroWEH_tw); } void GovHydroWEH::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1641,57 +1673,57 @@ void GovHydroWEH::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroWEH.db", &get_GovHydroWEH_db); - get_map.emplace("cim:GovHydroWEH.dicn", &get_GovHydroWEH_dicn); - get_map.emplace("cim:GovHydroWEH.dpv", &get_GovHydroWEH_dpv); - get_map.emplace("cim:GovHydroWEH.dturb", &get_GovHydroWEH_dturb); - get_map.emplace("cim:GovHydroWEH.feedbackSignal", &get_GovHydroWEH_feedbackSignal); - get_map.emplace("cim:GovHydroWEH.fl1", &get_GovHydroWEH_fl1); - get_map.emplace("cim:GovHydroWEH.fl2", &get_GovHydroWEH_fl2); - get_map.emplace("cim:GovHydroWEH.fl3", &get_GovHydroWEH_fl3); - get_map.emplace("cim:GovHydroWEH.fl4", &get_GovHydroWEH_fl4); - get_map.emplace("cim:GovHydroWEH.fl5", &get_GovHydroWEH_fl5); - get_map.emplace("cim:GovHydroWEH.fp1", &get_GovHydroWEH_fp1); - get_map.emplace("cim:GovHydroWEH.fp10", &get_GovHydroWEH_fp10); - get_map.emplace("cim:GovHydroWEH.fp2", &get_GovHydroWEH_fp2); - get_map.emplace("cim:GovHydroWEH.fp3", &get_GovHydroWEH_fp3); - get_map.emplace("cim:GovHydroWEH.fp4", &get_GovHydroWEH_fp4); - get_map.emplace("cim:GovHydroWEH.fp5", &get_GovHydroWEH_fp5); - get_map.emplace("cim:GovHydroWEH.fp6", &get_GovHydroWEH_fp6); - get_map.emplace("cim:GovHydroWEH.fp7", &get_GovHydroWEH_fp7); - get_map.emplace("cim:GovHydroWEH.fp8", &get_GovHydroWEH_fp8); - get_map.emplace("cim:GovHydroWEH.fp9", &get_GovHydroWEH_fp9); - get_map.emplace("cim:GovHydroWEH.gmax", &get_GovHydroWEH_gmax); - get_map.emplace("cim:GovHydroWEH.gmin", &get_GovHydroWEH_gmin); - get_map.emplace("cim:GovHydroWEH.gtmxcl", &get_GovHydroWEH_gtmxcl); - get_map.emplace("cim:GovHydroWEH.gtmxop", &get_GovHydroWEH_gtmxop); - get_map.emplace("cim:GovHydroWEH.gv1", &get_GovHydroWEH_gv1); - get_map.emplace("cim:GovHydroWEH.gv2", &get_GovHydroWEH_gv2); - get_map.emplace("cim:GovHydroWEH.gv3", &get_GovHydroWEH_gv3); - get_map.emplace("cim:GovHydroWEH.gv4", &get_GovHydroWEH_gv4); - get_map.emplace("cim:GovHydroWEH.gv5", &get_GovHydroWEH_gv5); - get_map.emplace("cim:GovHydroWEH.kd", &get_GovHydroWEH_kd); - get_map.emplace("cim:GovHydroWEH.ki", &get_GovHydroWEH_ki); - get_map.emplace("cim:GovHydroWEH.kp", &get_GovHydroWEH_kp); - get_map.emplace("cim:GovHydroWEH.mwbase", &get_GovHydroWEH_mwbase); - get_map.emplace("cim:GovHydroWEH.pmss1", &get_GovHydroWEH_pmss1); - get_map.emplace("cim:GovHydroWEH.pmss10", &get_GovHydroWEH_pmss10); - get_map.emplace("cim:GovHydroWEH.pmss2", &get_GovHydroWEH_pmss2); - get_map.emplace("cim:GovHydroWEH.pmss3", &get_GovHydroWEH_pmss3); - get_map.emplace("cim:GovHydroWEH.pmss4", &get_GovHydroWEH_pmss4); - get_map.emplace("cim:GovHydroWEH.pmss5", &get_GovHydroWEH_pmss5); - get_map.emplace("cim:GovHydroWEH.pmss6", &get_GovHydroWEH_pmss6); - get_map.emplace("cim:GovHydroWEH.pmss7", &get_GovHydroWEH_pmss7); - get_map.emplace("cim:GovHydroWEH.pmss8", &get_GovHydroWEH_pmss8); - get_map.emplace("cim:GovHydroWEH.pmss9", &get_GovHydroWEH_pmss9); - get_map.emplace("cim:GovHydroWEH.rpg", &get_GovHydroWEH_rpg); - get_map.emplace("cim:GovHydroWEH.rpp", &get_GovHydroWEH_rpp); - get_map.emplace("cim:GovHydroWEH.td", &get_GovHydroWEH_td); - get_map.emplace("cim:GovHydroWEH.tdv", &get_GovHydroWEH_tdv); - get_map.emplace("cim:GovHydroWEH.tg", &get_GovHydroWEH_tg); - get_map.emplace("cim:GovHydroWEH.tp", &get_GovHydroWEH_tp); - get_map.emplace("cim:GovHydroWEH.tpe", &get_GovHydroWEH_tpe); - get_map.emplace("cim:GovHydroWEH.tw", &get_GovHydroWEH_tw); + get_map.emplace("GovHydroWEH.db", &get_GovHydroWEH_db); + get_map.emplace("GovHydroWEH.dicn", &get_GovHydroWEH_dicn); + get_map.emplace("GovHydroWEH.dpv", &get_GovHydroWEH_dpv); + get_map.emplace("GovHydroWEH.dturb", &get_GovHydroWEH_dturb); + get_map.emplace("GovHydroWEH.feedbackSignal", &get_GovHydroWEH_feedbackSignal); + get_map.emplace("GovHydroWEH.fl1", &get_GovHydroWEH_fl1); + get_map.emplace("GovHydroWEH.fl2", &get_GovHydroWEH_fl2); + get_map.emplace("GovHydroWEH.fl3", &get_GovHydroWEH_fl3); + get_map.emplace("GovHydroWEH.fl4", &get_GovHydroWEH_fl4); + get_map.emplace("GovHydroWEH.fl5", &get_GovHydroWEH_fl5); + get_map.emplace("GovHydroWEH.fp1", &get_GovHydroWEH_fp1); + get_map.emplace("GovHydroWEH.fp10", &get_GovHydroWEH_fp10); + get_map.emplace("GovHydroWEH.fp2", &get_GovHydroWEH_fp2); + get_map.emplace("GovHydroWEH.fp3", &get_GovHydroWEH_fp3); + get_map.emplace("GovHydroWEH.fp4", &get_GovHydroWEH_fp4); + get_map.emplace("GovHydroWEH.fp5", &get_GovHydroWEH_fp5); + get_map.emplace("GovHydroWEH.fp6", &get_GovHydroWEH_fp6); + get_map.emplace("GovHydroWEH.fp7", &get_GovHydroWEH_fp7); + get_map.emplace("GovHydroWEH.fp8", &get_GovHydroWEH_fp8); + get_map.emplace("GovHydroWEH.fp9", &get_GovHydroWEH_fp9); + get_map.emplace("GovHydroWEH.gmax", &get_GovHydroWEH_gmax); + get_map.emplace("GovHydroWEH.gmin", &get_GovHydroWEH_gmin); + get_map.emplace("GovHydroWEH.gtmxcl", &get_GovHydroWEH_gtmxcl); + get_map.emplace("GovHydroWEH.gtmxop", &get_GovHydroWEH_gtmxop); + get_map.emplace("GovHydroWEH.gv1", &get_GovHydroWEH_gv1); + get_map.emplace("GovHydroWEH.gv2", &get_GovHydroWEH_gv2); + get_map.emplace("GovHydroWEH.gv3", &get_GovHydroWEH_gv3); + get_map.emplace("GovHydroWEH.gv4", &get_GovHydroWEH_gv4); + get_map.emplace("GovHydroWEH.gv5", &get_GovHydroWEH_gv5); + get_map.emplace("GovHydroWEH.kd", &get_GovHydroWEH_kd); + get_map.emplace("GovHydroWEH.ki", &get_GovHydroWEH_ki); + get_map.emplace("GovHydroWEH.kp", &get_GovHydroWEH_kp); + get_map.emplace("GovHydroWEH.mwbase", &get_GovHydroWEH_mwbase); + get_map.emplace("GovHydroWEH.pmss1", &get_GovHydroWEH_pmss1); + get_map.emplace("GovHydroWEH.pmss10", &get_GovHydroWEH_pmss10); + get_map.emplace("GovHydroWEH.pmss2", &get_GovHydroWEH_pmss2); + get_map.emplace("GovHydroWEH.pmss3", &get_GovHydroWEH_pmss3); + get_map.emplace("GovHydroWEH.pmss4", &get_GovHydroWEH_pmss4); + get_map.emplace("GovHydroWEH.pmss5", &get_GovHydroWEH_pmss5); + get_map.emplace("GovHydroWEH.pmss6", &get_GovHydroWEH_pmss6); + get_map.emplace("GovHydroWEH.pmss7", &get_GovHydroWEH_pmss7); + get_map.emplace("GovHydroWEH.pmss8", &get_GovHydroWEH_pmss8); + get_map.emplace("GovHydroWEH.pmss9", &get_GovHydroWEH_pmss9); + get_map.emplace("GovHydroWEH.rpg", &get_GovHydroWEH_rpg); + get_map.emplace("GovHydroWEH.rpp", &get_GovHydroWEH_rpp); + get_map.emplace("GovHydroWEH.td", &get_GovHydroWEH_td); + get_map.emplace("GovHydroWEH.tdv", &get_GovHydroWEH_tdv); + get_map.emplace("GovHydroWEH.tg", &get_GovHydroWEH_tg); + get_map.emplace("GovHydroWEH.tp", &get_GovHydroWEH_tp); + get_map.emplace("GovHydroWEH.tpe", &get_GovHydroWEH_tpe); + get_map.emplace("GovHydroWEH.tw", &get_GovHydroWEH_tw); } void GovHydroWEH::addClassGetFnsToMap(std::map& get_map) const @@ -1704,11 +1736,25 @@ void GovHydroWEH::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroWEH::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroWEH" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroWEH::declare() { return BaseClassDefiner(GovHydroWEH::addConstructToMap, GovHydroWEH::addPrimitiveAssignFnsToMap, GovHydroWEH::addClassAssignFnsToMap, GovHydroWEH::debugName); } +std::map GovHydroWEH::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroWEH_factory() diff --git a/CGMES_3.0.0/GovHydroWEH.hpp b/CGMES_3.0.0/GovHydroWEH.hpp index e28dfe0c0..d713ef1ad 100644 --- a/CGMES_3.0.0/GovHydroWEH.hpp +++ b/CGMES_3.0.0/GovHydroWEH.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -185,8 +186,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -194,7 +202,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroWEH_factory(); diff --git a/CGMES_3.0.0/GovHydroWPID.cpp b/CGMES_3.0.0/GovHydroWPID.cpp index 52c605514..a557b5c83 100644 --- a/CGMES_3.0.0/GovHydroWPID.cpp +++ b/CGMES_3.0.0/GovHydroWPID.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovHydroWPID(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovHydroWPID.d", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gatmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gatmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.reg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.treg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.velmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovHydroWPID.velmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovHydroWPID::GovHydroWPID() {} GovHydroWPID::~GovHydroWPID() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovHydroWPID.d", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gatmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gatmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.gv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.kd", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.ki", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.kp", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.mwbase", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv1", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv2", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pgv3", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.pmin", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.reg", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.ta", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.tb", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.treg", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.tw", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.velmax", { CGMESProfile::DY, } }, - { "cim:GovHydroWPID.velmin", { CGMESProfile::DY, } }, -}; - -std::list -GovHydroWPID::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovHydroWPID::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovHydroWPID::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovHydroWPID::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovHydroWPID::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovHydroWPID::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovHydroWPID::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovHydroWPID::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovHydroWPID::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovHydroWPID_d(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* GovHydroWPID::debugString() const void GovHydroWPID::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovHydroWPID", &GovHydroWPID_factory); + factory_map.emplace("GovHydroWPID", &GovHydroWPID_factory); } void GovHydroWPID::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovHydroWPID.d", &assign_GovHydroWPID_d); - assign_map.emplace("cim:GovHydroWPID.gatmax", &assign_GovHydroWPID_gatmax); - assign_map.emplace("cim:GovHydroWPID.gatmin", &assign_GovHydroWPID_gatmin); - assign_map.emplace("cim:GovHydroWPID.gv1", &assign_GovHydroWPID_gv1); - assign_map.emplace("cim:GovHydroWPID.gv2", &assign_GovHydroWPID_gv2); - assign_map.emplace("cim:GovHydroWPID.gv3", &assign_GovHydroWPID_gv3); - assign_map.emplace("cim:GovHydroWPID.kd", &assign_GovHydroWPID_kd); - assign_map.emplace("cim:GovHydroWPID.ki", &assign_GovHydroWPID_ki); - assign_map.emplace("cim:GovHydroWPID.kp", &assign_GovHydroWPID_kp); - assign_map.emplace("cim:GovHydroWPID.mwbase", &assign_GovHydroWPID_mwbase); - assign_map.emplace("cim:GovHydroWPID.pgv1", &assign_GovHydroWPID_pgv1); - assign_map.emplace("cim:GovHydroWPID.pgv2", &assign_GovHydroWPID_pgv2); - assign_map.emplace("cim:GovHydroWPID.pgv3", &assign_GovHydroWPID_pgv3); - assign_map.emplace("cim:GovHydroWPID.pmax", &assign_GovHydroWPID_pmax); - assign_map.emplace("cim:GovHydroWPID.pmin", &assign_GovHydroWPID_pmin); - assign_map.emplace("cim:GovHydroWPID.reg", &assign_GovHydroWPID_reg); - assign_map.emplace("cim:GovHydroWPID.ta", &assign_GovHydroWPID_ta); - assign_map.emplace("cim:GovHydroWPID.tb", &assign_GovHydroWPID_tb); - assign_map.emplace("cim:GovHydroWPID.treg", &assign_GovHydroWPID_treg); - assign_map.emplace("cim:GovHydroWPID.tw", &assign_GovHydroWPID_tw); - assign_map.emplace("cim:GovHydroWPID.velmax", &assign_GovHydroWPID_velmax); - assign_map.emplace("cim:GovHydroWPID.velmin", &assign_GovHydroWPID_velmin); + assign_map.emplace("GovHydroWPID.d", &assign_GovHydroWPID_d); + assign_map.emplace("GovHydroWPID.gatmax", &assign_GovHydroWPID_gatmax); + assign_map.emplace("GovHydroWPID.gatmin", &assign_GovHydroWPID_gatmin); + assign_map.emplace("GovHydroWPID.gv1", &assign_GovHydroWPID_gv1); + assign_map.emplace("GovHydroWPID.gv2", &assign_GovHydroWPID_gv2); + assign_map.emplace("GovHydroWPID.gv3", &assign_GovHydroWPID_gv3); + assign_map.emplace("GovHydroWPID.kd", &assign_GovHydroWPID_kd); + assign_map.emplace("GovHydroWPID.ki", &assign_GovHydroWPID_ki); + assign_map.emplace("GovHydroWPID.kp", &assign_GovHydroWPID_kp); + assign_map.emplace("GovHydroWPID.mwbase", &assign_GovHydroWPID_mwbase); + assign_map.emplace("GovHydroWPID.pgv1", &assign_GovHydroWPID_pgv1); + assign_map.emplace("GovHydroWPID.pgv2", &assign_GovHydroWPID_pgv2); + assign_map.emplace("GovHydroWPID.pgv3", &assign_GovHydroWPID_pgv3); + assign_map.emplace("GovHydroWPID.pmax", &assign_GovHydroWPID_pmax); + assign_map.emplace("GovHydroWPID.pmin", &assign_GovHydroWPID_pmin); + assign_map.emplace("GovHydroWPID.reg", &assign_GovHydroWPID_reg); + assign_map.emplace("GovHydroWPID.ta", &assign_GovHydroWPID_ta); + assign_map.emplace("GovHydroWPID.tb", &assign_GovHydroWPID_tb); + assign_map.emplace("GovHydroWPID.treg", &assign_GovHydroWPID_treg); + assign_map.emplace("GovHydroWPID.tw", &assign_GovHydroWPID_tw); + assign_map.emplace("GovHydroWPID.velmax", &assign_GovHydroWPID_velmax); + assign_map.emplace("GovHydroWPID.velmin", &assign_GovHydroWPID_velmin); } void GovHydroWPID::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,28 +774,28 @@ void GovHydroWPID::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovHydroWPID.d", &get_GovHydroWPID_d); - get_map.emplace("cim:GovHydroWPID.gatmax", &get_GovHydroWPID_gatmax); - get_map.emplace("cim:GovHydroWPID.gatmin", &get_GovHydroWPID_gatmin); - get_map.emplace("cim:GovHydroWPID.gv1", &get_GovHydroWPID_gv1); - get_map.emplace("cim:GovHydroWPID.gv2", &get_GovHydroWPID_gv2); - get_map.emplace("cim:GovHydroWPID.gv3", &get_GovHydroWPID_gv3); - get_map.emplace("cim:GovHydroWPID.kd", &get_GovHydroWPID_kd); - get_map.emplace("cim:GovHydroWPID.ki", &get_GovHydroWPID_ki); - get_map.emplace("cim:GovHydroWPID.kp", &get_GovHydroWPID_kp); - get_map.emplace("cim:GovHydroWPID.mwbase", &get_GovHydroWPID_mwbase); - get_map.emplace("cim:GovHydroWPID.pgv1", &get_GovHydroWPID_pgv1); - get_map.emplace("cim:GovHydroWPID.pgv2", &get_GovHydroWPID_pgv2); - get_map.emplace("cim:GovHydroWPID.pgv3", &get_GovHydroWPID_pgv3); - get_map.emplace("cim:GovHydroWPID.pmax", &get_GovHydroWPID_pmax); - get_map.emplace("cim:GovHydroWPID.pmin", &get_GovHydroWPID_pmin); - get_map.emplace("cim:GovHydroWPID.reg", &get_GovHydroWPID_reg); - get_map.emplace("cim:GovHydroWPID.ta", &get_GovHydroWPID_ta); - get_map.emplace("cim:GovHydroWPID.tb", &get_GovHydroWPID_tb); - get_map.emplace("cim:GovHydroWPID.treg", &get_GovHydroWPID_treg); - get_map.emplace("cim:GovHydroWPID.tw", &get_GovHydroWPID_tw); - get_map.emplace("cim:GovHydroWPID.velmax", &get_GovHydroWPID_velmax); - get_map.emplace("cim:GovHydroWPID.velmin", &get_GovHydroWPID_velmin); + get_map.emplace("GovHydroWPID.d", &get_GovHydroWPID_d); + get_map.emplace("GovHydroWPID.gatmax", &get_GovHydroWPID_gatmax); + get_map.emplace("GovHydroWPID.gatmin", &get_GovHydroWPID_gatmin); + get_map.emplace("GovHydroWPID.gv1", &get_GovHydroWPID_gv1); + get_map.emplace("GovHydroWPID.gv2", &get_GovHydroWPID_gv2); + get_map.emplace("GovHydroWPID.gv3", &get_GovHydroWPID_gv3); + get_map.emplace("GovHydroWPID.kd", &get_GovHydroWPID_kd); + get_map.emplace("GovHydroWPID.ki", &get_GovHydroWPID_ki); + get_map.emplace("GovHydroWPID.kp", &get_GovHydroWPID_kp); + get_map.emplace("GovHydroWPID.mwbase", &get_GovHydroWPID_mwbase); + get_map.emplace("GovHydroWPID.pgv1", &get_GovHydroWPID_pgv1); + get_map.emplace("GovHydroWPID.pgv2", &get_GovHydroWPID_pgv2); + get_map.emplace("GovHydroWPID.pgv3", &get_GovHydroWPID_pgv3); + get_map.emplace("GovHydroWPID.pmax", &get_GovHydroWPID_pmax); + get_map.emplace("GovHydroWPID.pmin", &get_GovHydroWPID_pmin); + get_map.emplace("GovHydroWPID.reg", &get_GovHydroWPID_reg); + get_map.emplace("GovHydroWPID.ta", &get_GovHydroWPID_ta); + get_map.emplace("GovHydroWPID.tb", &get_GovHydroWPID_tb); + get_map.emplace("GovHydroWPID.treg", &get_GovHydroWPID_treg); + get_map.emplace("GovHydroWPID.tw", &get_GovHydroWPID_tw); + get_map.emplace("GovHydroWPID.velmax", &get_GovHydroWPID_velmax); + get_map.emplace("GovHydroWPID.velmin", &get_GovHydroWPID_velmin); } void GovHydroWPID::addClassGetFnsToMap(std::map& get_map) const @@ -776,11 +808,25 @@ void GovHydroWPID::addEnumGetFnsToMap(std::map& get_m TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovHydroWPID::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovHydroWPID" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovHydroWPID::declare() { return BaseClassDefiner(GovHydroWPID::addConstructToMap, GovHydroWPID::addPrimitiveAssignFnsToMap, GovHydroWPID::addClassAssignFnsToMap, GovHydroWPID::debugName); } +std::map GovHydroWPID::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovHydroWPID_factory() diff --git a/CGMES_3.0.0/GovHydroWPID.hpp b/CGMES_3.0.0/GovHydroWPID.hpp index acbf6a553..936652235 100644 --- a/CGMES_3.0.0/GovHydroWPID.hpp +++ b/CGMES_3.0.0/GovHydroWPID.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -96,8 +97,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -105,7 +113,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovHydroWPID_factory(); diff --git a/CGMES_3.0.0/GovSteam0.cpp b/CGMES_3.0.0/GovSteam0.cpp index cc1c74f62..c8183d20a 100644 --- a/CGMES_3.0.0/GovSteam0.cpp +++ b/CGMES_3.0.0/GovSteam0.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam0(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam0.dt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam0.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam0.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam0.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam0.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam0.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam0.vmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam0.vmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam0::GovSteam0() {} GovSteam0::~GovSteam0() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteam0::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteam0::getClassNamespaceUrl() const { - { "cim:GovSteam0.dt", { CGMESProfile::DY, } }, - { "cim:GovSteam0.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteam0.r", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t2", { CGMESProfile::DY, } }, - { "cim:GovSteam0.t3", { CGMESProfile::DY, } }, - { "cim:GovSteam0.vmax", { CGMESProfile::DY, } }, - { "cim:GovSteam0.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteam0::getPossibleProfilesForClass() const +const std::string& GovSteam0::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteam0::getPossibleProfilesForAttributes() const +const std::list& GovSteam0::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam0::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam0::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam0::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam0_dt(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovSteam0::debugString() const void GovSteam0::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam0", &GovSteam0_factory); + factory_map.emplace("GovSteam0", &GovSteam0_factory); } void GovSteam0::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam0.dt", &assign_GovSteam0_dt); - assign_map.emplace("cim:GovSteam0.mwbase", &assign_GovSteam0_mwbase); - assign_map.emplace("cim:GovSteam0.r", &assign_GovSteam0_r); - assign_map.emplace("cim:GovSteam0.t1", &assign_GovSteam0_t1); - assign_map.emplace("cim:GovSteam0.t2", &assign_GovSteam0_t2); - assign_map.emplace("cim:GovSteam0.t3", &assign_GovSteam0_t3); - assign_map.emplace("cim:GovSteam0.vmax", &assign_GovSteam0_vmax); - assign_map.emplace("cim:GovSteam0.vmin", &assign_GovSteam0_vmin); + assign_map.emplace("GovSteam0.dt", &assign_GovSteam0_dt); + assign_map.emplace("GovSteam0.mwbase", &assign_GovSteam0_mwbase); + assign_map.emplace("GovSteam0.r", &assign_GovSteam0_r); + assign_map.emplace("GovSteam0.t1", &assign_GovSteam0_t1); + assign_map.emplace("GovSteam0.t2", &assign_GovSteam0_t2); + assign_map.emplace("GovSteam0.t3", &assign_GovSteam0_t3); + assign_map.emplace("GovSteam0.vmax", &assign_GovSteam0_vmax); + assign_map.emplace("GovSteam0.vmin", &assign_GovSteam0_vmin); } void GovSteam0::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovSteam0::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam0.dt", &get_GovSteam0_dt); - get_map.emplace("cim:GovSteam0.mwbase", &get_GovSteam0_mwbase); - get_map.emplace("cim:GovSteam0.r", &get_GovSteam0_r); - get_map.emplace("cim:GovSteam0.t1", &get_GovSteam0_t1); - get_map.emplace("cim:GovSteam0.t2", &get_GovSteam0_t2); - get_map.emplace("cim:GovSteam0.t3", &get_GovSteam0_t3); - get_map.emplace("cim:GovSteam0.vmax", &get_GovSteam0_vmax); - get_map.emplace("cim:GovSteam0.vmin", &get_GovSteam0_vmin); + get_map.emplace("GovSteam0.dt", &get_GovSteam0_dt); + get_map.emplace("GovSteam0.mwbase", &get_GovSteam0_mwbase); + get_map.emplace("GovSteam0.r", &get_GovSteam0_r); + get_map.emplace("GovSteam0.t1", &get_GovSteam0_t1); + get_map.emplace("GovSteam0.t2", &get_GovSteam0_t2); + get_map.emplace("GovSteam0.t3", &get_GovSteam0_t3); + get_map.emplace("GovSteam0.vmax", &get_GovSteam0_vmax); + get_map.emplace("GovSteam0.vmin", &get_GovSteam0_vmin); } void GovSteam0::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovSteam0::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam0::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam0" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam0::declare() { return BaseClassDefiner(GovSteam0::addConstructToMap, GovSteam0::addPrimitiveAssignFnsToMap, GovSteam0::addClassAssignFnsToMap, GovSteam0::debugName); } +std::map GovSteam0::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam0_factory() diff --git a/CGMES_3.0.0/GovSteam0.hpp b/CGMES_3.0.0/GovSteam0.hpp index 2aa80be8c..270e7077c 100644 --- a/CGMES_3.0.0/GovSteam0.hpp +++ b/CGMES_3.0.0/GovSteam0.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam0_factory(); diff --git a/CGMES_3.0.0/GovSteam1.cpp b/CGMES_3.0.0/GovSteam1.cpp index 9f3c107a5..2213e5494 100644 --- a/CGMES_3.0.0/GovSteam1.cpp +++ b/CGMES_3.0.0/GovSteam1.cpp @@ -11,70 +11,102 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam1.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.eps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.k8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.sdb1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.sdb2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.t7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.uc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.uo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam1.valve", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam1::GovSteam1() {} GovSteam1::~GovSteam1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteam1.db1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.db2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.eps", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.gv6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k7", { CGMESProfile::DY, } }, - { "cim:GovSteam1.k8", { CGMESProfile::DY, } }, - { "cim:GovSteam1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pgv6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteam1.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteam1.sdb1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.sdb2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t2", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t3", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t4", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t5", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t6", { CGMESProfile::DY, } }, - { "cim:GovSteam1.t7", { CGMESProfile::DY, } }, - { "cim:GovSteam1.uc", { CGMESProfile::DY, } }, - { "cim:GovSteam1.uo", { CGMESProfile::DY, } }, - { "cim:GovSteam1.valve", { CGMESProfile::DY, } }, -}; - -std::list -GovSteam1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteam1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteam1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteam1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteam1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteam1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam1_db1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1216,50 +1248,50 @@ const char* GovSteam1::debugString() const void GovSteam1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam1", &GovSteam1_factory); + factory_map.emplace("GovSteam1", &GovSteam1_factory); } void GovSteam1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam1.db1", &assign_GovSteam1_db1); - assign_map.emplace("cim:GovSteam1.db2", &assign_GovSteam1_db2); - assign_map.emplace("cim:GovSteam1.eps", &assign_GovSteam1_eps); - assign_map.emplace("cim:GovSteam1.gv1", &assign_GovSteam1_gv1); - assign_map.emplace("cim:GovSteam1.gv2", &assign_GovSteam1_gv2); - assign_map.emplace("cim:GovSteam1.gv3", &assign_GovSteam1_gv3); - assign_map.emplace("cim:GovSteam1.gv4", &assign_GovSteam1_gv4); - assign_map.emplace("cim:GovSteam1.gv5", &assign_GovSteam1_gv5); - assign_map.emplace("cim:GovSteam1.gv6", &assign_GovSteam1_gv6); - assign_map.emplace("cim:GovSteam1.k", &assign_GovSteam1_k); - assign_map.emplace("cim:GovSteam1.k1", &assign_GovSteam1_k1); - assign_map.emplace("cim:GovSteam1.k2", &assign_GovSteam1_k2); - assign_map.emplace("cim:GovSteam1.k3", &assign_GovSteam1_k3); - assign_map.emplace("cim:GovSteam1.k4", &assign_GovSteam1_k4); - assign_map.emplace("cim:GovSteam1.k5", &assign_GovSteam1_k5); - assign_map.emplace("cim:GovSteam1.k6", &assign_GovSteam1_k6); - assign_map.emplace("cim:GovSteam1.k7", &assign_GovSteam1_k7); - assign_map.emplace("cim:GovSteam1.k8", &assign_GovSteam1_k8); - assign_map.emplace("cim:GovSteam1.mwbase", &assign_GovSteam1_mwbase); - assign_map.emplace("cim:GovSteam1.pgv1", &assign_GovSteam1_pgv1); - assign_map.emplace("cim:GovSteam1.pgv2", &assign_GovSteam1_pgv2); - assign_map.emplace("cim:GovSteam1.pgv3", &assign_GovSteam1_pgv3); - assign_map.emplace("cim:GovSteam1.pgv4", &assign_GovSteam1_pgv4); - assign_map.emplace("cim:GovSteam1.pgv5", &assign_GovSteam1_pgv5); - assign_map.emplace("cim:GovSteam1.pgv6", &assign_GovSteam1_pgv6); - assign_map.emplace("cim:GovSteam1.pmax", &assign_GovSteam1_pmax); - assign_map.emplace("cim:GovSteam1.pmin", &assign_GovSteam1_pmin); - assign_map.emplace("cim:GovSteam1.sdb1", &assign_GovSteam1_sdb1); - assign_map.emplace("cim:GovSteam1.sdb2", &assign_GovSteam1_sdb2); - assign_map.emplace("cim:GovSteam1.t1", &assign_GovSteam1_t1); - assign_map.emplace("cim:GovSteam1.t2", &assign_GovSteam1_t2); - assign_map.emplace("cim:GovSteam1.t3", &assign_GovSteam1_t3); - assign_map.emplace("cim:GovSteam1.t4", &assign_GovSteam1_t4); - assign_map.emplace("cim:GovSteam1.t5", &assign_GovSteam1_t5); - assign_map.emplace("cim:GovSteam1.t6", &assign_GovSteam1_t6); - assign_map.emplace("cim:GovSteam1.t7", &assign_GovSteam1_t7); - assign_map.emplace("cim:GovSteam1.uc", &assign_GovSteam1_uc); - assign_map.emplace("cim:GovSteam1.uo", &assign_GovSteam1_uo); - assign_map.emplace("cim:GovSteam1.valve", &assign_GovSteam1_valve); + assign_map.emplace("GovSteam1.db1", &assign_GovSteam1_db1); + assign_map.emplace("GovSteam1.db2", &assign_GovSteam1_db2); + assign_map.emplace("GovSteam1.eps", &assign_GovSteam1_eps); + assign_map.emplace("GovSteam1.gv1", &assign_GovSteam1_gv1); + assign_map.emplace("GovSteam1.gv2", &assign_GovSteam1_gv2); + assign_map.emplace("GovSteam1.gv3", &assign_GovSteam1_gv3); + assign_map.emplace("GovSteam1.gv4", &assign_GovSteam1_gv4); + assign_map.emplace("GovSteam1.gv5", &assign_GovSteam1_gv5); + assign_map.emplace("GovSteam1.gv6", &assign_GovSteam1_gv6); + assign_map.emplace("GovSteam1.k", &assign_GovSteam1_k); + assign_map.emplace("GovSteam1.k1", &assign_GovSteam1_k1); + assign_map.emplace("GovSteam1.k2", &assign_GovSteam1_k2); + assign_map.emplace("GovSteam1.k3", &assign_GovSteam1_k3); + assign_map.emplace("GovSteam1.k4", &assign_GovSteam1_k4); + assign_map.emplace("GovSteam1.k5", &assign_GovSteam1_k5); + assign_map.emplace("GovSteam1.k6", &assign_GovSteam1_k6); + assign_map.emplace("GovSteam1.k7", &assign_GovSteam1_k7); + assign_map.emplace("GovSteam1.k8", &assign_GovSteam1_k8); + assign_map.emplace("GovSteam1.mwbase", &assign_GovSteam1_mwbase); + assign_map.emplace("GovSteam1.pgv1", &assign_GovSteam1_pgv1); + assign_map.emplace("GovSteam1.pgv2", &assign_GovSteam1_pgv2); + assign_map.emplace("GovSteam1.pgv3", &assign_GovSteam1_pgv3); + assign_map.emplace("GovSteam1.pgv4", &assign_GovSteam1_pgv4); + assign_map.emplace("GovSteam1.pgv5", &assign_GovSteam1_pgv5); + assign_map.emplace("GovSteam1.pgv6", &assign_GovSteam1_pgv6); + assign_map.emplace("GovSteam1.pmax", &assign_GovSteam1_pmax); + assign_map.emplace("GovSteam1.pmin", &assign_GovSteam1_pmin); + assign_map.emplace("GovSteam1.sdb1", &assign_GovSteam1_sdb1); + assign_map.emplace("GovSteam1.sdb2", &assign_GovSteam1_sdb2); + assign_map.emplace("GovSteam1.t1", &assign_GovSteam1_t1); + assign_map.emplace("GovSteam1.t2", &assign_GovSteam1_t2); + assign_map.emplace("GovSteam1.t3", &assign_GovSteam1_t3); + assign_map.emplace("GovSteam1.t4", &assign_GovSteam1_t4); + assign_map.emplace("GovSteam1.t5", &assign_GovSteam1_t5); + assign_map.emplace("GovSteam1.t6", &assign_GovSteam1_t6); + assign_map.emplace("GovSteam1.t7", &assign_GovSteam1_t7); + assign_map.emplace("GovSteam1.uc", &assign_GovSteam1_uc); + assign_map.emplace("GovSteam1.uo", &assign_GovSteam1_uo); + assign_map.emplace("GovSteam1.valve", &assign_GovSteam1_valve); } void GovSteam1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1269,45 +1301,45 @@ void GovSteam1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam1.db1", &get_GovSteam1_db1); - get_map.emplace("cim:GovSteam1.db2", &get_GovSteam1_db2); - get_map.emplace("cim:GovSteam1.eps", &get_GovSteam1_eps); - get_map.emplace("cim:GovSteam1.gv1", &get_GovSteam1_gv1); - get_map.emplace("cim:GovSteam1.gv2", &get_GovSteam1_gv2); - get_map.emplace("cim:GovSteam1.gv3", &get_GovSteam1_gv3); - get_map.emplace("cim:GovSteam1.gv4", &get_GovSteam1_gv4); - get_map.emplace("cim:GovSteam1.gv5", &get_GovSteam1_gv5); - get_map.emplace("cim:GovSteam1.gv6", &get_GovSteam1_gv6); - get_map.emplace("cim:GovSteam1.k", &get_GovSteam1_k); - get_map.emplace("cim:GovSteam1.k1", &get_GovSteam1_k1); - get_map.emplace("cim:GovSteam1.k2", &get_GovSteam1_k2); - get_map.emplace("cim:GovSteam1.k3", &get_GovSteam1_k3); - get_map.emplace("cim:GovSteam1.k4", &get_GovSteam1_k4); - get_map.emplace("cim:GovSteam1.k5", &get_GovSteam1_k5); - get_map.emplace("cim:GovSteam1.k6", &get_GovSteam1_k6); - get_map.emplace("cim:GovSteam1.k7", &get_GovSteam1_k7); - get_map.emplace("cim:GovSteam1.k8", &get_GovSteam1_k8); - get_map.emplace("cim:GovSteam1.mwbase", &get_GovSteam1_mwbase); - get_map.emplace("cim:GovSteam1.pgv1", &get_GovSteam1_pgv1); - get_map.emplace("cim:GovSteam1.pgv2", &get_GovSteam1_pgv2); - get_map.emplace("cim:GovSteam1.pgv3", &get_GovSteam1_pgv3); - get_map.emplace("cim:GovSteam1.pgv4", &get_GovSteam1_pgv4); - get_map.emplace("cim:GovSteam1.pgv5", &get_GovSteam1_pgv5); - get_map.emplace("cim:GovSteam1.pgv6", &get_GovSteam1_pgv6); - get_map.emplace("cim:GovSteam1.pmax", &get_GovSteam1_pmax); - get_map.emplace("cim:GovSteam1.pmin", &get_GovSteam1_pmin); - get_map.emplace("cim:GovSteam1.sdb1", &get_GovSteam1_sdb1); - get_map.emplace("cim:GovSteam1.sdb2", &get_GovSteam1_sdb2); - get_map.emplace("cim:GovSteam1.t1", &get_GovSteam1_t1); - get_map.emplace("cim:GovSteam1.t2", &get_GovSteam1_t2); - get_map.emplace("cim:GovSteam1.t3", &get_GovSteam1_t3); - get_map.emplace("cim:GovSteam1.t4", &get_GovSteam1_t4); - get_map.emplace("cim:GovSteam1.t5", &get_GovSteam1_t5); - get_map.emplace("cim:GovSteam1.t6", &get_GovSteam1_t6); - get_map.emplace("cim:GovSteam1.t7", &get_GovSteam1_t7); - get_map.emplace("cim:GovSteam1.uc", &get_GovSteam1_uc); - get_map.emplace("cim:GovSteam1.uo", &get_GovSteam1_uo); - get_map.emplace("cim:GovSteam1.valve", &get_GovSteam1_valve); + get_map.emplace("GovSteam1.db1", &get_GovSteam1_db1); + get_map.emplace("GovSteam1.db2", &get_GovSteam1_db2); + get_map.emplace("GovSteam1.eps", &get_GovSteam1_eps); + get_map.emplace("GovSteam1.gv1", &get_GovSteam1_gv1); + get_map.emplace("GovSteam1.gv2", &get_GovSteam1_gv2); + get_map.emplace("GovSteam1.gv3", &get_GovSteam1_gv3); + get_map.emplace("GovSteam1.gv4", &get_GovSteam1_gv4); + get_map.emplace("GovSteam1.gv5", &get_GovSteam1_gv5); + get_map.emplace("GovSteam1.gv6", &get_GovSteam1_gv6); + get_map.emplace("GovSteam1.k", &get_GovSteam1_k); + get_map.emplace("GovSteam1.k1", &get_GovSteam1_k1); + get_map.emplace("GovSteam1.k2", &get_GovSteam1_k2); + get_map.emplace("GovSteam1.k3", &get_GovSteam1_k3); + get_map.emplace("GovSteam1.k4", &get_GovSteam1_k4); + get_map.emplace("GovSteam1.k5", &get_GovSteam1_k5); + get_map.emplace("GovSteam1.k6", &get_GovSteam1_k6); + get_map.emplace("GovSteam1.k7", &get_GovSteam1_k7); + get_map.emplace("GovSteam1.k8", &get_GovSteam1_k8); + get_map.emplace("GovSteam1.mwbase", &get_GovSteam1_mwbase); + get_map.emplace("GovSteam1.pgv1", &get_GovSteam1_pgv1); + get_map.emplace("GovSteam1.pgv2", &get_GovSteam1_pgv2); + get_map.emplace("GovSteam1.pgv3", &get_GovSteam1_pgv3); + get_map.emplace("GovSteam1.pgv4", &get_GovSteam1_pgv4); + get_map.emplace("GovSteam1.pgv5", &get_GovSteam1_pgv5); + get_map.emplace("GovSteam1.pgv6", &get_GovSteam1_pgv6); + get_map.emplace("GovSteam1.pmax", &get_GovSteam1_pmax); + get_map.emplace("GovSteam1.pmin", &get_GovSteam1_pmin); + get_map.emplace("GovSteam1.sdb1", &get_GovSteam1_sdb1); + get_map.emplace("GovSteam1.sdb2", &get_GovSteam1_sdb2); + get_map.emplace("GovSteam1.t1", &get_GovSteam1_t1); + get_map.emplace("GovSteam1.t2", &get_GovSteam1_t2); + get_map.emplace("GovSteam1.t3", &get_GovSteam1_t3); + get_map.emplace("GovSteam1.t4", &get_GovSteam1_t4); + get_map.emplace("GovSteam1.t5", &get_GovSteam1_t5); + get_map.emplace("GovSteam1.t6", &get_GovSteam1_t6); + get_map.emplace("GovSteam1.t7", &get_GovSteam1_t7); + get_map.emplace("GovSteam1.uc", &get_GovSteam1_uc); + get_map.emplace("GovSteam1.uo", &get_GovSteam1_uo); + get_map.emplace("GovSteam1.valve", &get_GovSteam1_valve); } void GovSteam1::addClassGetFnsToMap(std::map& get_map) const @@ -1320,11 +1352,25 @@ void GovSteam1::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam1::declare() { return BaseClassDefiner(GovSteam1::addConstructToMap, GovSteam1::addPrimitiveAssignFnsToMap, GovSteam1::addClassAssignFnsToMap, GovSteam1::debugName); } +std::map GovSteam1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam1_factory() diff --git a/CGMES_3.0.0/GovSteam1.hpp b/CGMES_3.0.0/GovSteam1.hpp index 50adfb3ea..13c146097 100644 --- a/CGMES_3.0.0/GovSteam1.hpp +++ b/CGMES_3.0.0/GovSteam1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam1_factory(); diff --git a/CGMES_3.0.0/GovSteam2.cpp b/CGMES_3.0.0/GovSteam2.cpp index 8696d39ab..493d0e4c2 100644 --- a/CGMES_3.0.0/GovSteam2.cpp +++ b/CGMES_3.0.0/GovSteam2.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteam2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteam2.dbf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam2.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam2.mnef", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam2.mxef", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam2.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam2.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam2.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteam2.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteam2::GovSteam2() {} GovSteam2::~GovSteam2() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteam2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteam2::getClassNamespaceUrl() const { - { "cim:GovSteam2.dbf", { CGMESProfile::DY, } }, - { "cim:GovSteam2.k", { CGMESProfile::DY, } }, - { "cim:GovSteam2.mnef", { CGMESProfile::DY, } }, - { "cim:GovSteam2.mxef", { CGMESProfile::DY, } }, - { "cim:GovSteam2.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteam2.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteam2.t1", { CGMESProfile::DY, } }, - { "cim:GovSteam2.t2", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteam2::getPossibleProfilesForClass() const +const std::string& GovSteam2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteam2::getPossibleProfilesForAttributes() const +const std::list& GovSteam2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteam2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteam2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteam2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteam2_dbf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* GovSteam2::debugString() const void GovSteam2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteam2", &GovSteam2_factory); + factory_map.emplace("GovSteam2", &GovSteam2_factory); } void GovSteam2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteam2.dbf", &assign_GovSteam2_dbf); - assign_map.emplace("cim:GovSteam2.k", &assign_GovSteam2_k); - assign_map.emplace("cim:GovSteam2.mnef", &assign_GovSteam2_mnef); - assign_map.emplace("cim:GovSteam2.mxef", &assign_GovSteam2_mxef); - assign_map.emplace("cim:GovSteam2.pmax", &assign_GovSteam2_pmax); - assign_map.emplace("cim:GovSteam2.pmin", &assign_GovSteam2_pmin); - assign_map.emplace("cim:GovSteam2.t1", &assign_GovSteam2_t1); - assign_map.emplace("cim:GovSteam2.t2", &assign_GovSteam2_t2); + assign_map.emplace("GovSteam2.dbf", &assign_GovSteam2_dbf); + assign_map.emplace("GovSteam2.k", &assign_GovSteam2_k); + assign_map.emplace("GovSteam2.mnef", &assign_GovSteam2_mnef); + assign_map.emplace("GovSteam2.mxef", &assign_GovSteam2_mxef); + assign_map.emplace("GovSteam2.pmax", &assign_GovSteam2_pmax); + assign_map.emplace("GovSteam2.pmin", &assign_GovSteam2_pmin); + assign_map.emplace("GovSteam2.t1", &assign_GovSteam2_t1); + assign_map.emplace("GovSteam2.t2", &assign_GovSteam2_t2); } void GovSteam2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void GovSteam2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteam2.dbf", &get_GovSteam2_dbf); - get_map.emplace("cim:GovSteam2.k", &get_GovSteam2_k); - get_map.emplace("cim:GovSteam2.mnef", &get_GovSteam2_mnef); - get_map.emplace("cim:GovSteam2.mxef", &get_GovSteam2_mxef); - get_map.emplace("cim:GovSteam2.pmax", &get_GovSteam2_pmax); - get_map.emplace("cim:GovSteam2.pmin", &get_GovSteam2_pmin); - get_map.emplace("cim:GovSteam2.t1", &get_GovSteam2_t1); - get_map.emplace("cim:GovSteam2.t2", &get_GovSteam2_t2); + get_map.emplace("GovSteam2.dbf", &get_GovSteam2_dbf); + get_map.emplace("GovSteam2.k", &get_GovSteam2_k); + get_map.emplace("GovSteam2.mnef", &get_GovSteam2_mnef); + get_map.emplace("GovSteam2.mxef", &get_GovSteam2_mxef); + get_map.emplace("GovSteam2.pmax", &get_GovSteam2_pmax); + get_map.emplace("GovSteam2.pmin", &get_GovSteam2_pmin); + get_map.emplace("GovSteam2.t1", &get_GovSteam2_t1); + get_map.emplace("GovSteam2.t2", &get_GovSteam2_t2); } void GovSteam2::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void GovSteam2::addEnumGetFnsToMap(std::map& get_map) TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteam2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteam2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteam2::declare() { return BaseClassDefiner(GovSteam2::addConstructToMap, GovSteam2::addPrimitiveAssignFnsToMap, GovSteam2::addClassAssignFnsToMap, GovSteam2::debugName); } +std::map GovSteam2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteam2_factory() diff --git a/CGMES_3.0.0/GovSteam2.hpp b/CGMES_3.0.0/GovSteam2.hpp index 618b66331..0379b1d45 100644 --- a/CGMES_3.0.0/GovSteam2.hpp +++ b/CGMES_3.0.0/GovSteam2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteam2_factory(); diff --git a/CGMES_3.0.0/GovSteamBB.cpp b/CGMES_3.0.0/GovSteamBB.cpp index 49a1baa65..07f834085 100644 --- a/CGMES_3.0.0/GovSteamBB.cpp +++ b/CGMES_3.0.0/GovSteamBB.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamBB(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamBB.fcut", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.kg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.kls", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.peflag", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamBB.tn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamBB::GovSteamBB() {} GovSteamBB::~GovSteamBB() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamBB::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamBB::getClassNamespaceUrl() const { - { "cim:GovSteamBB.fcut", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.kd", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.kg", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.kls", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.kp", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.ks", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.peflag", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.td", { CGMESProfile::DY, } }, - { "cim:GovSteamBB.tn", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamBB::getPossibleProfilesForClass() const +const std::string& GovSteamBB::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamBB::getPossibleProfilesForAttributes() const +const std::list& GovSteamBB::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamBB::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamBB::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamBB::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamBB_fcut(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* GovSteamBB::debugString() const void GovSteamBB::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamBB", &GovSteamBB_factory); + factory_map.emplace("GovSteamBB", &GovSteamBB_factory); } void GovSteamBB::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamBB.fcut", &assign_GovSteamBB_fcut); - assign_map.emplace("cim:GovSteamBB.k2", &assign_GovSteamBB_k2); - assign_map.emplace("cim:GovSteamBB.k3", &assign_GovSteamBB_k3); - assign_map.emplace("cim:GovSteamBB.kd", &assign_GovSteamBB_kd); - assign_map.emplace("cim:GovSteamBB.kg", &assign_GovSteamBB_kg); - assign_map.emplace("cim:GovSteamBB.kls", &assign_GovSteamBB_kls); - assign_map.emplace("cim:GovSteamBB.kp", &assign_GovSteamBB_kp); - assign_map.emplace("cim:GovSteamBB.ks", &assign_GovSteamBB_ks); - assign_map.emplace("cim:GovSteamBB.peflag", &assign_GovSteamBB_peflag); - assign_map.emplace("cim:GovSteamBB.pmax", &assign_GovSteamBB_pmax); - assign_map.emplace("cim:GovSteamBB.pmin", &assign_GovSteamBB_pmin); - assign_map.emplace("cim:GovSteamBB.t1", &assign_GovSteamBB_t1); - assign_map.emplace("cim:GovSteamBB.t4", &assign_GovSteamBB_t4); - assign_map.emplace("cim:GovSteamBB.t5", &assign_GovSteamBB_t5); - assign_map.emplace("cim:GovSteamBB.t6", &assign_GovSteamBB_t6); - assign_map.emplace("cim:GovSteamBB.td", &assign_GovSteamBB_td); - assign_map.emplace("cim:GovSteamBB.tn", &assign_GovSteamBB_tn); + assign_map.emplace("GovSteamBB.fcut", &assign_GovSteamBB_fcut); + assign_map.emplace("GovSteamBB.k2", &assign_GovSteamBB_k2); + assign_map.emplace("GovSteamBB.k3", &assign_GovSteamBB_k3); + assign_map.emplace("GovSteamBB.kd", &assign_GovSteamBB_kd); + assign_map.emplace("GovSteamBB.kg", &assign_GovSteamBB_kg); + assign_map.emplace("GovSteamBB.kls", &assign_GovSteamBB_kls); + assign_map.emplace("GovSteamBB.kp", &assign_GovSteamBB_kp); + assign_map.emplace("GovSteamBB.ks", &assign_GovSteamBB_ks); + assign_map.emplace("GovSteamBB.peflag", &assign_GovSteamBB_peflag); + assign_map.emplace("GovSteamBB.pmax", &assign_GovSteamBB_pmax); + assign_map.emplace("GovSteamBB.pmin", &assign_GovSteamBB_pmin); + assign_map.emplace("GovSteamBB.t1", &assign_GovSteamBB_t1); + assign_map.emplace("GovSteamBB.t4", &assign_GovSteamBB_t4); + assign_map.emplace("GovSteamBB.t5", &assign_GovSteamBB_t5); + assign_map.emplace("GovSteamBB.t6", &assign_GovSteamBB_t6); + assign_map.emplace("GovSteamBB.td", &assign_GovSteamBB_td); + assign_map.emplace("GovSteamBB.tn", &assign_GovSteamBB_tn); } void GovSteamBB::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void GovSteamBB::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamBB.fcut", &get_GovSteamBB_fcut); - get_map.emplace("cim:GovSteamBB.k2", &get_GovSteamBB_k2); - get_map.emplace("cim:GovSteamBB.k3", &get_GovSteamBB_k3); - get_map.emplace("cim:GovSteamBB.kd", &get_GovSteamBB_kd); - get_map.emplace("cim:GovSteamBB.kg", &get_GovSteamBB_kg); - get_map.emplace("cim:GovSteamBB.kls", &get_GovSteamBB_kls); - get_map.emplace("cim:GovSteamBB.kp", &get_GovSteamBB_kp); - get_map.emplace("cim:GovSteamBB.ks", &get_GovSteamBB_ks); - get_map.emplace("cim:GovSteamBB.peflag", &get_GovSteamBB_peflag); - get_map.emplace("cim:GovSteamBB.pmax", &get_GovSteamBB_pmax); - get_map.emplace("cim:GovSteamBB.pmin", &get_GovSteamBB_pmin); - get_map.emplace("cim:GovSteamBB.t1", &get_GovSteamBB_t1); - get_map.emplace("cim:GovSteamBB.t4", &get_GovSteamBB_t4); - get_map.emplace("cim:GovSteamBB.t5", &get_GovSteamBB_t5); - get_map.emplace("cim:GovSteamBB.t6", &get_GovSteamBB_t6); - get_map.emplace("cim:GovSteamBB.td", &get_GovSteamBB_td); - get_map.emplace("cim:GovSteamBB.tn", &get_GovSteamBB_tn); + get_map.emplace("GovSteamBB.fcut", &get_GovSteamBB_fcut); + get_map.emplace("GovSteamBB.k2", &get_GovSteamBB_k2); + get_map.emplace("GovSteamBB.k3", &get_GovSteamBB_k3); + get_map.emplace("GovSteamBB.kd", &get_GovSteamBB_kd); + get_map.emplace("GovSteamBB.kg", &get_GovSteamBB_kg); + get_map.emplace("GovSteamBB.kls", &get_GovSteamBB_kls); + get_map.emplace("GovSteamBB.kp", &get_GovSteamBB_kp); + get_map.emplace("GovSteamBB.ks", &get_GovSteamBB_ks); + get_map.emplace("GovSteamBB.peflag", &get_GovSteamBB_peflag); + get_map.emplace("GovSteamBB.pmax", &get_GovSteamBB_pmax); + get_map.emplace("GovSteamBB.pmin", &get_GovSteamBB_pmin); + get_map.emplace("GovSteamBB.t1", &get_GovSteamBB_t1); + get_map.emplace("GovSteamBB.t4", &get_GovSteamBB_t4); + get_map.emplace("GovSteamBB.t5", &get_GovSteamBB_t5); + get_map.emplace("GovSteamBB.t6", &get_GovSteamBB_t6); + get_map.emplace("GovSteamBB.td", &get_GovSteamBB_td); + get_map.emplace("GovSteamBB.tn", &get_GovSteamBB_tn); } void GovSteamBB::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void GovSteamBB::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamBB::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamBB" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamBB::declare() { return BaseClassDefiner(GovSteamBB::addConstructToMap, GovSteamBB::addPrimitiveAssignFnsToMap, GovSteamBB::addClassAssignFnsToMap, GovSteamBB::debugName); } +std::map GovSteamBB::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamBB_factory() diff --git a/CGMES_3.0.0/GovSteamBB.hpp b/CGMES_3.0.0/GovSteamBB.hpp index f1c55f8a0..ab9faaaff 100644 --- a/CGMES_3.0.0/GovSteamBB.hpp +++ b/CGMES_3.0.0/GovSteamBB.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -81,8 +82,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -90,7 +98,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamBB_factory(); diff --git a/CGMES_3.0.0/GovSteamCC.cpp b/CGMES_3.0.0/GovSteamCC.cpp index 94a27f8f8..967c0af32 100644 --- a/CGMES_3.0.0/GovSteamCC.cpp +++ b/CGMES_3.0.0/GovSteamCC.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamCC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamCC.dhp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.dlp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.fhp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.flp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.pmaxhp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.pmaxlp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.rhp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.rlp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t1hp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t1lp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t3hp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t3lp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t4hp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t4lp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t5hp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamCC.t5lp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamCC::GovSteamCC() {} GovSteamCC::~GovSteamCC() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamCC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamCC::getClassNamespaceUrl() const { - { "cim:GovSteamCC.dhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.dlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.fhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.flp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.pmaxhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.pmaxlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.rhp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.rlp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t1hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t1lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t3hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t3lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t4hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t4lp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t5hp", { CGMESProfile::DY, } }, - { "cim:GovSteamCC.t5lp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamCC::getPossibleProfilesForClass() const +const std::string& GovSteamCC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamCC::getPossibleProfilesForAttributes() const +const std::list& GovSteamCC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = CrossCompoundTurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamCC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamCC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamCC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamCC_dhp(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* GovSteamCC::debugString() const void GovSteamCC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamCC", &GovSteamCC_factory); + factory_map.emplace("GovSteamCC", &GovSteamCC_factory); } void GovSteamCC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamCC.dhp", &assign_GovSteamCC_dhp); - assign_map.emplace("cim:GovSteamCC.dlp", &assign_GovSteamCC_dlp); - assign_map.emplace("cim:GovSteamCC.fhp", &assign_GovSteamCC_fhp); - assign_map.emplace("cim:GovSteamCC.flp", &assign_GovSteamCC_flp); - assign_map.emplace("cim:GovSteamCC.mwbase", &assign_GovSteamCC_mwbase); - assign_map.emplace("cim:GovSteamCC.pmaxhp", &assign_GovSteamCC_pmaxhp); - assign_map.emplace("cim:GovSteamCC.pmaxlp", &assign_GovSteamCC_pmaxlp); - assign_map.emplace("cim:GovSteamCC.rhp", &assign_GovSteamCC_rhp); - assign_map.emplace("cim:GovSteamCC.rlp", &assign_GovSteamCC_rlp); - assign_map.emplace("cim:GovSteamCC.t1hp", &assign_GovSteamCC_t1hp); - assign_map.emplace("cim:GovSteamCC.t1lp", &assign_GovSteamCC_t1lp); - assign_map.emplace("cim:GovSteamCC.t3hp", &assign_GovSteamCC_t3hp); - assign_map.emplace("cim:GovSteamCC.t3lp", &assign_GovSteamCC_t3lp); - assign_map.emplace("cim:GovSteamCC.t4hp", &assign_GovSteamCC_t4hp); - assign_map.emplace("cim:GovSteamCC.t4lp", &assign_GovSteamCC_t4lp); - assign_map.emplace("cim:GovSteamCC.t5hp", &assign_GovSteamCC_t5hp); - assign_map.emplace("cim:GovSteamCC.t5lp", &assign_GovSteamCC_t5lp); + assign_map.emplace("GovSteamCC.dhp", &assign_GovSteamCC_dhp); + assign_map.emplace("GovSteamCC.dlp", &assign_GovSteamCC_dlp); + assign_map.emplace("GovSteamCC.fhp", &assign_GovSteamCC_fhp); + assign_map.emplace("GovSteamCC.flp", &assign_GovSteamCC_flp); + assign_map.emplace("GovSteamCC.mwbase", &assign_GovSteamCC_mwbase); + assign_map.emplace("GovSteamCC.pmaxhp", &assign_GovSteamCC_pmaxhp); + assign_map.emplace("GovSteamCC.pmaxlp", &assign_GovSteamCC_pmaxlp); + assign_map.emplace("GovSteamCC.rhp", &assign_GovSteamCC_rhp); + assign_map.emplace("GovSteamCC.rlp", &assign_GovSteamCC_rlp); + assign_map.emplace("GovSteamCC.t1hp", &assign_GovSteamCC_t1hp); + assign_map.emplace("GovSteamCC.t1lp", &assign_GovSteamCC_t1lp); + assign_map.emplace("GovSteamCC.t3hp", &assign_GovSteamCC_t3hp); + assign_map.emplace("GovSteamCC.t3lp", &assign_GovSteamCC_t3lp); + assign_map.emplace("GovSteamCC.t4hp", &assign_GovSteamCC_t4hp); + assign_map.emplace("GovSteamCC.t4lp", &assign_GovSteamCC_t4lp); + assign_map.emplace("GovSteamCC.t5hp", &assign_GovSteamCC_t5hp); + assign_map.emplace("GovSteamCC.t5lp", &assign_GovSteamCC_t5lp); } void GovSteamCC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void GovSteamCC::addClassAssignFnsToMap(std::unordered_map& get_map) const { CrossCompoundTurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamCC.dhp", &get_GovSteamCC_dhp); - get_map.emplace("cim:GovSteamCC.dlp", &get_GovSteamCC_dlp); - get_map.emplace("cim:GovSteamCC.fhp", &get_GovSteamCC_fhp); - get_map.emplace("cim:GovSteamCC.flp", &get_GovSteamCC_flp); - get_map.emplace("cim:GovSteamCC.mwbase", &get_GovSteamCC_mwbase); - get_map.emplace("cim:GovSteamCC.pmaxhp", &get_GovSteamCC_pmaxhp); - get_map.emplace("cim:GovSteamCC.pmaxlp", &get_GovSteamCC_pmaxlp); - get_map.emplace("cim:GovSteamCC.rhp", &get_GovSteamCC_rhp); - get_map.emplace("cim:GovSteamCC.rlp", &get_GovSteamCC_rlp); - get_map.emplace("cim:GovSteamCC.t1hp", &get_GovSteamCC_t1hp); - get_map.emplace("cim:GovSteamCC.t1lp", &get_GovSteamCC_t1lp); - get_map.emplace("cim:GovSteamCC.t3hp", &get_GovSteamCC_t3hp); - get_map.emplace("cim:GovSteamCC.t3lp", &get_GovSteamCC_t3lp); - get_map.emplace("cim:GovSteamCC.t4hp", &get_GovSteamCC_t4hp); - get_map.emplace("cim:GovSteamCC.t4lp", &get_GovSteamCC_t4lp); - get_map.emplace("cim:GovSteamCC.t5hp", &get_GovSteamCC_t5hp); - get_map.emplace("cim:GovSteamCC.t5lp", &get_GovSteamCC_t5lp); + get_map.emplace("GovSteamCC.dhp", &get_GovSteamCC_dhp); + get_map.emplace("GovSteamCC.dlp", &get_GovSteamCC_dlp); + get_map.emplace("GovSteamCC.fhp", &get_GovSteamCC_fhp); + get_map.emplace("GovSteamCC.flp", &get_GovSteamCC_flp); + get_map.emplace("GovSteamCC.mwbase", &get_GovSteamCC_mwbase); + get_map.emplace("GovSteamCC.pmaxhp", &get_GovSteamCC_pmaxhp); + get_map.emplace("GovSteamCC.pmaxlp", &get_GovSteamCC_pmaxlp); + get_map.emplace("GovSteamCC.rhp", &get_GovSteamCC_rhp); + get_map.emplace("GovSteamCC.rlp", &get_GovSteamCC_rlp); + get_map.emplace("GovSteamCC.t1hp", &get_GovSteamCC_t1hp); + get_map.emplace("GovSteamCC.t1lp", &get_GovSteamCC_t1lp); + get_map.emplace("GovSteamCC.t3hp", &get_GovSteamCC_t3hp); + get_map.emplace("GovSteamCC.t3lp", &get_GovSteamCC_t3lp); + get_map.emplace("GovSteamCC.t4hp", &get_GovSteamCC_t4hp); + get_map.emplace("GovSteamCC.t4lp", &get_GovSteamCC_t4lp); + get_map.emplace("GovSteamCC.t5hp", &get_GovSteamCC_t5hp); + get_map.emplace("GovSteamCC.t5lp", &get_GovSteamCC_t5lp); } void GovSteamCC::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void GovSteamCC::addEnumGetFnsToMap(std::map& get_map CrossCompoundTurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamCC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamCC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamCC::declare() { return BaseClassDefiner(GovSteamCC::addConstructToMap, GovSteamCC::addPrimitiveAssignFnsToMap, GovSteamCC::addClassAssignFnsToMap, GovSteamCC::debugName); } +std::map GovSteamCC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = CrossCompoundTurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamCC_factory() diff --git a/CGMES_3.0.0/GovSteamCC.hpp b/CGMES_3.0.0/GovSteamCC.hpp index 0cfd33fc6..71153846f 100644 --- a/CGMES_3.0.0/GovSteamCC.hpp +++ b/CGMES_3.0.0/GovSteamCC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "CrossCompoundTurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -81,8 +82,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -90,7 +98,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamCC_factory(); diff --git a/CGMES_3.0.0/GovSteamEU.cpp b/CGMES_3.0.0/GovSteamEU.cpp index 24af398e3..c058b7e90 100644 --- a/CGMES_3.0.0/GovSteamEU.cpp +++ b/CGMES_3.0.0/GovSteamEU.cpp @@ -11,66 +11,98 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamEU(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamEU.chc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cho", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cic", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.cio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.db1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.db2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.hhpmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.ke", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.kfcor", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.khp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.klp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.komegacor", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.prhmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.simx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tdp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.ten", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tfp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.thp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tlp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.trh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tvhp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tvip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.tw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wfmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wfmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wmax1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wmax2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wwmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamEU.wwmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamEU::GovSteamEU() {} GovSteamEU::~GovSteamEU() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamEU.chc", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cho", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cic", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.cio", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.db1", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.db2", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.hhpmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.ke", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.kfcor", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.khp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.klp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.komegacor", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.prhmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.simx", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tdp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.ten", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tf", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tfp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.thp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tip", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tlp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.trh", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tvhp", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tvip", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.tw", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wfmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wfmin", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wmax1", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wmax2", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wwmax", { CGMESProfile::DY, } }, - { "cim:GovSteamEU.wwmin", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamEU::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamEU::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamEU::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamEU::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamEU::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamEU::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamEU::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamEU::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamEU::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamEU_chc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1096,46 +1128,46 @@ const char* GovSteamEU::debugString() const void GovSteamEU::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamEU", &GovSteamEU_factory); + factory_map.emplace("GovSteamEU", &GovSteamEU_factory); } void GovSteamEU::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamEU.chc", &assign_GovSteamEU_chc); - assign_map.emplace("cim:GovSteamEU.cho", &assign_GovSteamEU_cho); - assign_map.emplace("cim:GovSteamEU.cic", &assign_GovSteamEU_cic); - assign_map.emplace("cim:GovSteamEU.cio", &assign_GovSteamEU_cio); - assign_map.emplace("cim:GovSteamEU.db1", &assign_GovSteamEU_db1); - assign_map.emplace("cim:GovSteamEU.db2", &assign_GovSteamEU_db2); - assign_map.emplace("cim:GovSteamEU.hhpmax", &assign_GovSteamEU_hhpmax); - assign_map.emplace("cim:GovSteamEU.ke", &assign_GovSteamEU_ke); - assign_map.emplace("cim:GovSteamEU.kfcor", &assign_GovSteamEU_kfcor); - assign_map.emplace("cim:GovSteamEU.khp", &assign_GovSteamEU_khp); - assign_map.emplace("cim:GovSteamEU.klp", &assign_GovSteamEU_klp); - assign_map.emplace("cim:GovSteamEU.komegacor", &assign_GovSteamEU_komegacor); - assign_map.emplace("cim:GovSteamEU.mwbase", &assign_GovSteamEU_mwbase); - assign_map.emplace("cim:GovSteamEU.pmax", &assign_GovSteamEU_pmax); - assign_map.emplace("cim:GovSteamEU.prhmax", &assign_GovSteamEU_prhmax); - assign_map.emplace("cim:GovSteamEU.simx", &assign_GovSteamEU_simx); - assign_map.emplace("cim:GovSteamEU.tb", &assign_GovSteamEU_tb); - assign_map.emplace("cim:GovSteamEU.tdp", &assign_GovSteamEU_tdp); - assign_map.emplace("cim:GovSteamEU.ten", &assign_GovSteamEU_ten); - assign_map.emplace("cim:GovSteamEU.tf", &assign_GovSteamEU_tf); - assign_map.emplace("cim:GovSteamEU.tfp", &assign_GovSteamEU_tfp); - assign_map.emplace("cim:GovSteamEU.thp", &assign_GovSteamEU_thp); - assign_map.emplace("cim:GovSteamEU.tip", &assign_GovSteamEU_tip); - assign_map.emplace("cim:GovSteamEU.tlp", &assign_GovSteamEU_tlp); - assign_map.emplace("cim:GovSteamEU.tp", &assign_GovSteamEU_tp); - assign_map.emplace("cim:GovSteamEU.trh", &assign_GovSteamEU_trh); - assign_map.emplace("cim:GovSteamEU.tvhp", &assign_GovSteamEU_tvhp); - assign_map.emplace("cim:GovSteamEU.tvip", &assign_GovSteamEU_tvip); - assign_map.emplace("cim:GovSteamEU.tw", &assign_GovSteamEU_tw); - assign_map.emplace("cim:GovSteamEU.wfmax", &assign_GovSteamEU_wfmax); - assign_map.emplace("cim:GovSteamEU.wfmin", &assign_GovSteamEU_wfmin); - assign_map.emplace("cim:GovSteamEU.wmax1", &assign_GovSteamEU_wmax1); - assign_map.emplace("cim:GovSteamEU.wmax2", &assign_GovSteamEU_wmax2); - assign_map.emplace("cim:GovSteamEU.wwmax", &assign_GovSteamEU_wwmax); - assign_map.emplace("cim:GovSteamEU.wwmin", &assign_GovSteamEU_wwmin); + assign_map.emplace("GovSteamEU.chc", &assign_GovSteamEU_chc); + assign_map.emplace("GovSteamEU.cho", &assign_GovSteamEU_cho); + assign_map.emplace("GovSteamEU.cic", &assign_GovSteamEU_cic); + assign_map.emplace("GovSteamEU.cio", &assign_GovSteamEU_cio); + assign_map.emplace("GovSteamEU.db1", &assign_GovSteamEU_db1); + assign_map.emplace("GovSteamEU.db2", &assign_GovSteamEU_db2); + assign_map.emplace("GovSteamEU.hhpmax", &assign_GovSteamEU_hhpmax); + assign_map.emplace("GovSteamEU.ke", &assign_GovSteamEU_ke); + assign_map.emplace("GovSteamEU.kfcor", &assign_GovSteamEU_kfcor); + assign_map.emplace("GovSteamEU.khp", &assign_GovSteamEU_khp); + assign_map.emplace("GovSteamEU.klp", &assign_GovSteamEU_klp); + assign_map.emplace("GovSteamEU.komegacor", &assign_GovSteamEU_komegacor); + assign_map.emplace("GovSteamEU.mwbase", &assign_GovSteamEU_mwbase); + assign_map.emplace("GovSteamEU.pmax", &assign_GovSteamEU_pmax); + assign_map.emplace("GovSteamEU.prhmax", &assign_GovSteamEU_prhmax); + assign_map.emplace("GovSteamEU.simx", &assign_GovSteamEU_simx); + assign_map.emplace("GovSteamEU.tb", &assign_GovSteamEU_tb); + assign_map.emplace("GovSteamEU.tdp", &assign_GovSteamEU_tdp); + assign_map.emplace("GovSteamEU.ten", &assign_GovSteamEU_ten); + assign_map.emplace("GovSteamEU.tf", &assign_GovSteamEU_tf); + assign_map.emplace("GovSteamEU.tfp", &assign_GovSteamEU_tfp); + assign_map.emplace("GovSteamEU.thp", &assign_GovSteamEU_thp); + assign_map.emplace("GovSteamEU.tip", &assign_GovSteamEU_tip); + assign_map.emplace("GovSteamEU.tlp", &assign_GovSteamEU_tlp); + assign_map.emplace("GovSteamEU.tp", &assign_GovSteamEU_tp); + assign_map.emplace("GovSteamEU.trh", &assign_GovSteamEU_trh); + assign_map.emplace("GovSteamEU.tvhp", &assign_GovSteamEU_tvhp); + assign_map.emplace("GovSteamEU.tvip", &assign_GovSteamEU_tvip); + assign_map.emplace("GovSteamEU.tw", &assign_GovSteamEU_tw); + assign_map.emplace("GovSteamEU.wfmax", &assign_GovSteamEU_wfmax); + assign_map.emplace("GovSteamEU.wfmin", &assign_GovSteamEU_wfmin); + assign_map.emplace("GovSteamEU.wmax1", &assign_GovSteamEU_wmax1); + assign_map.emplace("GovSteamEU.wmax2", &assign_GovSteamEU_wmax2); + assign_map.emplace("GovSteamEU.wwmax", &assign_GovSteamEU_wwmax); + assign_map.emplace("GovSteamEU.wwmin", &assign_GovSteamEU_wwmin); } void GovSteamEU::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1145,41 +1177,41 @@ void GovSteamEU::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamEU.chc", &get_GovSteamEU_chc); - get_map.emplace("cim:GovSteamEU.cho", &get_GovSteamEU_cho); - get_map.emplace("cim:GovSteamEU.cic", &get_GovSteamEU_cic); - get_map.emplace("cim:GovSteamEU.cio", &get_GovSteamEU_cio); - get_map.emplace("cim:GovSteamEU.db1", &get_GovSteamEU_db1); - get_map.emplace("cim:GovSteamEU.db2", &get_GovSteamEU_db2); - get_map.emplace("cim:GovSteamEU.hhpmax", &get_GovSteamEU_hhpmax); - get_map.emplace("cim:GovSteamEU.ke", &get_GovSteamEU_ke); - get_map.emplace("cim:GovSteamEU.kfcor", &get_GovSteamEU_kfcor); - get_map.emplace("cim:GovSteamEU.khp", &get_GovSteamEU_khp); - get_map.emplace("cim:GovSteamEU.klp", &get_GovSteamEU_klp); - get_map.emplace("cim:GovSteamEU.komegacor", &get_GovSteamEU_komegacor); - get_map.emplace("cim:GovSteamEU.mwbase", &get_GovSteamEU_mwbase); - get_map.emplace("cim:GovSteamEU.pmax", &get_GovSteamEU_pmax); - get_map.emplace("cim:GovSteamEU.prhmax", &get_GovSteamEU_prhmax); - get_map.emplace("cim:GovSteamEU.simx", &get_GovSteamEU_simx); - get_map.emplace("cim:GovSteamEU.tb", &get_GovSteamEU_tb); - get_map.emplace("cim:GovSteamEU.tdp", &get_GovSteamEU_tdp); - get_map.emplace("cim:GovSteamEU.ten", &get_GovSteamEU_ten); - get_map.emplace("cim:GovSteamEU.tf", &get_GovSteamEU_tf); - get_map.emplace("cim:GovSteamEU.tfp", &get_GovSteamEU_tfp); - get_map.emplace("cim:GovSteamEU.thp", &get_GovSteamEU_thp); - get_map.emplace("cim:GovSteamEU.tip", &get_GovSteamEU_tip); - get_map.emplace("cim:GovSteamEU.tlp", &get_GovSteamEU_tlp); - get_map.emplace("cim:GovSteamEU.tp", &get_GovSteamEU_tp); - get_map.emplace("cim:GovSteamEU.trh", &get_GovSteamEU_trh); - get_map.emplace("cim:GovSteamEU.tvhp", &get_GovSteamEU_tvhp); - get_map.emplace("cim:GovSteamEU.tvip", &get_GovSteamEU_tvip); - get_map.emplace("cim:GovSteamEU.tw", &get_GovSteamEU_tw); - get_map.emplace("cim:GovSteamEU.wfmax", &get_GovSteamEU_wfmax); - get_map.emplace("cim:GovSteamEU.wfmin", &get_GovSteamEU_wfmin); - get_map.emplace("cim:GovSteamEU.wmax1", &get_GovSteamEU_wmax1); - get_map.emplace("cim:GovSteamEU.wmax2", &get_GovSteamEU_wmax2); - get_map.emplace("cim:GovSteamEU.wwmax", &get_GovSteamEU_wwmax); - get_map.emplace("cim:GovSteamEU.wwmin", &get_GovSteamEU_wwmin); + get_map.emplace("GovSteamEU.chc", &get_GovSteamEU_chc); + get_map.emplace("GovSteamEU.cho", &get_GovSteamEU_cho); + get_map.emplace("GovSteamEU.cic", &get_GovSteamEU_cic); + get_map.emplace("GovSteamEU.cio", &get_GovSteamEU_cio); + get_map.emplace("GovSteamEU.db1", &get_GovSteamEU_db1); + get_map.emplace("GovSteamEU.db2", &get_GovSteamEU_db2); + get_map.emplace("GovSteamEU.hhpmax", &get_GovSteamEU_hhpmax); + get_map.emplace("GovSteamEU.ke", &get_GovSteamEU_ke); + get_map.emplace("GovSteamEU.kfcor", &get_GovSteamEU_kfcor); + get_map.emplace("GovSteamEU.khp", &get_GovSteamEU_khp); + get_map.emplace("GovSteamEU.klp", &get_GovSteamEU_klp); + get_map.emplace("GovSteamEU.komegacor", &get_GovSteamEU_komegacor); + get_map.emplace("GovSteamEU.mwbase", &get_GovSteamEU_mwbase); + get_map.emplace("GovSteamEU.pmax", &get_GovSteamEU_pmax); + get_map.emplace("GovSteamEU.prhmax", &get_GovSteamEU_prhmax); + get_map.emplace("GovSteamEU.simx", &get_GovSteamEU_simx); + get_map.emplace("GovSteamEU.tb", &get_GovSteamEU_tb); + get_map.emplace("GovSteamEU.tdp", &get_GovSteamEU_tdp); + get_map.emplace("GovSteamEU.ten", &get_GovSteamEU_ten); + get_map.emplace("GovSteamEU.tf", &get_GovSteamEU_tf); + get_map.emplace("GovSteamEU.tfp", &get_GovSteamEU_tfp); + get_map.emplace("GovSteamEU.thp", &get_GovSteamEU_thp); + get_map.emplace("GovSteamEU.tip", &get_GovSteamEU_tip); + get_map.emplace("GovSteamEU.tlp", &get_GovSteamEU_tlp); + get_map.emplace("GovSteamEU.tp", &get_GovSteamEU_tp); + get_map.emplace("GovSteamEU.trh", &get_GovSteamEU_trh); + get_map.emplace("GovSteamEU.tvhp", &get_GovSteamEU_tvhp); + get_map.emplace("GovSteamEU.tvip", &get_GovSteamEU_tvip); + get_map.emplace("GovSteamEU.tw", &get_GovSteamEU_tw); + get_map.emplace("GovSteamEU.wfmax", &get_GovSteamEU_wfmax); + get_map.emplace("GovSteamEU.wfmin", &get_GovSteamEU_wfmin); + get_map.emplace("GovSteamEU.wmax1", &get_GovSteamEU_wmax1); + get_map.emplace("GovSteamEU.wmax2", &get_GovSteamEU_wmax2); + get_map.emplace("GovSteamEU.wwmax", &get_GovSteamEU_wwmax); + get_map.emplace("GovSteamEU.wwmin", &get_GovSteamEU_wwmin); } void GovSteamEU::addClassGetFnsToMap(std::map& get_map) const @@ -1192,11 +1224,25 @@ void GovSteamEU::addEnumGetFnsToMap(std::map& get_map TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamEU::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamEU" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamEU::declare() { return BaseClassDefiner(GovSteamEU::addConstructToMap, GovSteamEU::addPrimitiveAssignFnsToMap, GovSteamEU::addClassAssignFnsToMap, GovSteamEU::debugName); } +std::map GovSteamEU::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamEU_factory() diff --git a/CGMES_3.0.0/GovSteamEU.hpp b/CGMES_3.0.0/GovSteamEU.hpp index aa5f7121b..aa7bff392 100644 --- a/CGMES_3.0.0/GovSteamEU.hpp +++ b/CGMES_3.0.0/GovSteamEU.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "PU.hpp" @@ -136,8 +137,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -145,7 +153,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamEU_factory(); diff --git a/CGMES_3.0.0/GovSteamFV2.cpp b/CGMES_3.0.0/GovSteamFV2.cpp index aaf661e3a..3a0162fcb 100644 --- a/CGMES_3.0.0/GovSteamFV2.cpp +++ b/CGMES_3.0.0/GovSteamFV2.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV2.dt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.vmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV2.vmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV2::GovSteamFV2() {} GovSteamFV2::~GovSteamFV2() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamFV2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamFV2::getClassNamespaceUrl() const { - { "cim:GovSteamFV2.dt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.k", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.r", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.tt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.vmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV2.vmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamFV2::getPossibleProfilesForClass() const +const std::string& GovSteamFV2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamFV2::getPossibleProfilesForAttributes() const +const std::list& GovSteamFV2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV2_dt(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* GovSteamFV2::debugString() const void GovSteamFV2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV2", &GovSteamFV2_factory); + factory_map.emplace("GovSteamFV2", &GovSteamFV2_factory); } void GovSteamFV2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV2.dt", &assign_GovSteamFV2_dt); - assign_map.emplace("cim:GovSteamFV2.k", &assign_GovSteamFV2_k); - assign_map.emplace("cim:GovSteamFV2.mwbase", &assign_GovSteamFV2_mwbase); - assign_map.emplace("cim:GovSteamFV2.r", &assign_GovSteamFV2_r); - assign_map.emplace("cim:GovSteamFV2.t1", &assign_GovSteamFV2_t1); - assign_map.emplace("cim:GovSteamFV2.t3", &assign_GovSteamFV2_t3); - assign_map.emplace("cim:GovSteamFV2.ta", &assign_GovSteamFV2_ta); - assign_map.emplace("cim:GovSteamFV2.tb", &assign_GovSteamFV2_tb); - assign_map.emplace("cim:GovSteamFV2.tc", &assign_GovSteamFV2_tc); - assign_map.emplace("cim:GovSteamFV2.tt", &assign_GovSteamFV2_tt); - assign_map.emplace("cim:GovSteamFV2.vmax", &assign_GovSteamFV2_vmax); - assign_map.emplace("cim:GovSteamFV2.vmin", &assign_GovSteamFV2_vmin); + assign_map.emplace("GovSteamFV2.dt", &assign_GovSteamFV2_dt); + assign_map.emplace("GovSteamFV2.k", &assign_GovSteamFV2_k); + assign_map.emplace("GovSteamFV2.mwbase", &assign_GovSteamFV2_mwbase); + assign_map.emplace("GovSteamFV2.r", &assign_GovSteamFV2_r); + assign_map.emplace("GovSteamFV2.t1", &assign_GovSteamFV2_t1); + assign_map.emplace("GovSteamFV2.t3", &assign_GovSteamFV2_t3); + assign_map.emplace("GovSteamFV2.ta", &assign_GovSteamFV2_ta); + assign_map.emplace("GovSteamFV2.tb", &assign_GovSteamFV2_tb); + assign_map.emplace("GovSteamFV2.tc", &assign_GovSteamFV2_tc); + assign_map.emplace("GovSteamFV2.tt", &assign_GovSteamFV2_tt); + assign_map.emplace("GovSteamFV2.vmax", &assign_GovSteamFV2_vmax); + assign_map.emplace("GovSteamFV2.vmin", &assign_GovSteamFV2_vmin); } void GovSteamFV2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void GovSteamFV2::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV2.dt", &get_GovSteamFV2_dt); - get_map.emplace("cim:GovSteamFV2.k", &get_GovSteamFV2_k); - get_map.emplace("cim:GovSteamFV2.mwbase", &get_GovSteamFV2_mwbase); - get_map.emplace("cim:GovSteamFV2.r", &get_GovSteamFV2_r); - get_map.emplace("cim:GovSteamFV2.t1", &get_GovSteamFV2_t1); - get_map.emplace("cim:GovSteamFV2.t3", &get_GovSteamFV2_t3); - get_map.emplace("cim:GovSteamFV2.ta", &get_GovSteamFV2_ta); - get_map.emplace("cim:GovSteamFV2.tb", &get_GovSteamFV2_tb); - get_map.emplace("cim:GovSteamFV2.tc", &get_GovSteamFV2_tc); - get_map.emplace("cim:GovSteamFV2.tt", &get_GovSteamFV2_tt); - get_map.emplace("cim:GovSteamFV2.vmax", &get_GovSteamFV2_vmax); - get_map.emplace("cim:GovSteamFV2.vmin", &get_GovSteamFV2_vmin); + get_map.emplace("GovSteamFV2.dt", &get_GovSteamFV2_dt); + get_map.emplace("GovSteamFV2.k", &get_GovSteamFV2_k); + get_map.emplace("GovSteamFV2.mwbase", &get_GovSteamFV2_mwbase); + get_map.emplace("GovSteamFV2.r", &get_GovSteamFV2_r); + get_map.emplace("GovSteamFV2.t1", &get_GovSteamFV2_t1); + get_map.emplace("GovSteamFV2.t3", &get_GovSteamFV2_t3); + get_map.emplace("GovSteamFV2.ta", &get_GovSteamFV2_ta); + get_map.emplace("GovSteamFV2.tb", &get_GovSteamFV2_tb); + get_map.emplace("GovSteamFV2.tc", &get_GovSteamFV2_tc); + get_map.emplace("GovSteamFV2.tt", &get_GovSteamFV2_tt); + get_map.emplace("GovSteamFV2.vmax", &get_GovSteamFV2_vmax); + get_map.emplace("GovSteamFV2.vmin", &get_GovSteamFV2_vmin); } void GovSteamFV2::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void GovSteamFV2::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV2::declare() { return BaseClassDefiner(GovSteamFV2::addConstructToMap, GovSteamFV2::addPrimitiveAssignFnsToMap, GovSteamFV2::addClassAssignFnsToMap, GovSteamFV2::debugName); } +std::map GovSteamFV2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV2_factory() diff --git a/CGMES_3.0.0/GovSteamFV2.hpp b/CGMES_3.0.0/GovSteamFV2.hpp index bea8ec8d1..d1754b479 100644 --- a/CGMES_3.0.0/GovSteamFV2.hpp +++ b/CGMES_3.0.0/GovSteamFV2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV2_factory(); diff --git a/CGMES_3.0.0/GovSteamFV3.cpp b/CGMES_3.0.0/GovSteamFV3.cpp index d3d30e2b3..1789e6693 100644 --- a/CGMES_3.0.0/GovSteamFV3.cpp +++ b/CGMES_3.0.0/GovSteamFV3.cpp @@ -11,62 +11,94 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV3(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV3.gv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.gv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.gv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.gv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.gv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.gv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pgv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pgv2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pgv3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pgv4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pgv5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pgv6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.prmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.uc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV3.uo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV3::GovSteamFV3() {} GovSteamFV3::~GovSteamFV3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamFV3.gv1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.gv2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.gv3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.gv4", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.gv5", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.gv6", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pgv1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pgv2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pgv3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pgv4", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pgv5", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pgv6", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.prmax", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.tb", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.uc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV3.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamFV3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamFV3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamFV3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamFV3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamFV3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamFV3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV3_gv1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -976,42 +1008,42 @@ const char* GovSteamFV3::debugString() const void GovSteamFV3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV3", &GovSteamFV3_factory); + factory_map.emplace("GovSteamFV3", &GovSteamFV3_factory); } void GovSteamFV3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV3.gv1", &assign_GovSteamFV3_gv1); - assign_map.emplace("cim:GovSteamFV3.gv2", &assign_GovSteamFV3_gv2); - assign_map.emplace("cim:GovSteamFV3.gv3", &assign_GovSteamFV3_gv3); - assign_map.emplace("cim:GovSteamFV3.gv4", &assign_GovSteamFV3_gv4); - assign_map.emplace("cim:GovSteamFV3.gv5", &assign_GovSteamFV3_gv5); - assign_map.emplace("cim:GovSteamFV3.gv6", &assign_GovSteamFV3_gv6); - assign_map.emplace("cim:GovSteamFV3.k", &assign_GovSteamFV3_k); - assign_map.emplace("cim:GovSteamFV3.k1", &assign_GovSteamFV3_k1); - assign_map.emplace("cim:GovSteamFV3.k2", &assign_GovSteamFV3_k2); - assign_map.emplace("cim:GovSteamFV3.k3", &assign_GovSteamFV3_k3); - assign_map.emplace("cim:GovSteamFV3.mwbase", &assign_GovSteamFV3_mwbase); - assign_map.emplace("cim:GovSteamFV3.pgv1", &assign_GovSteamFV3_pgv1); - assign_map.emplace("cim:GovSteamFV3.pgv2", &assign_GovSteamFV3_pgv2); - assign_map.emplace("cim:GovSteamFV3.pgv3", &assign_GovSteamFV3_pgv3); - assign_map.emplace("cim:GovSteamFV3.pgv4", &assign_GovSteamFV3_pgv4); - assign_map.emplace("cim:GovSteamFV3.pgv5", &assign_GovSteamFV3_pgv5); - assign_map.emplace("cim:GovSteamFV3.pgv6", &assign_GovSteamFV3_pgv6); - assign_map.emplace("cim:GovSteamFV3.pmax", &assign_GovSteamFV3_pmax); - assign_map.emplace("cim:GovSteamFV3.pmin", &assign_GovSteamFV3_pmin); - assign_map.emplace("cim:GovSteamFV3.prmax", &assign_GovSteamFV3_prmax); - assign_map.emplace("cim:GovSteamFV3.t1", &assign_GovSteamFV3_t1); - assign_map.emplace("cim:GovSteamFV3.t2", &assign_GovSteamFV3_t2); - assign_map.emplace("cim:GovSteamFV3.t3", &assign_GovSteamFV3_t3); - assign_map.emplace("cim:GovSteamFV3.t4", &assign_GovSteamFV3_t4); - assign_map.emplace("cim:GovSteamFV3.t5", &assign_GovSteamFV3_t5); - assign_map.emplace("cim:GovSteamFV3.t6", &assign_GovSteamFV3_t6); - assign_map.emplace("cim:GovSteamFV3.ta", &assign_GovSteamFV3_ta); - assign_map.emplace("cim:GovSteamFV3.tb", &assign_GovSteamFV3_tb); - assign_map.emplace("cim:GovSteamFV3.tc", &assign_GovSteamFV3_tc); - assign_map.emplace("cim:GovSteamFV3.uc", &assign_GovSteamFV3_uc); - assign_map.emplace("cim:GovSteamFV3.uo", &assign_GovSteamFV3_uo); + assign_map.emplace("GovSteamFV3.gv1", &assign_GovSteamFV3_gv1); + assign_map.emplace("GovSteamFV3.gv2", &assign_GovSteamFV3_gv2); + assign_map.emplace("GovSteamFV3.gv3", &assign_GovSteamFV3_gv3); + assign_map.emplace("GovSteamFV3.gv4", &assign_GovSteamFV3_gv4); + assign_map.emplace("GovSteamFV3.gv5", &assign_GovSteamFV3_gv5); + assign_map.emplace("GovSteamFV3.gv6", &assign_GovSteamFV3_gv6); + assign_map.emplace("GovSteamFV3.k", &assign_GovSteamFV3_k); + assign_map.emplace("GovSteamFV3.k1", &assign_GovSteamFV3_k1); + assign_map.emplace("GovSteamFV3.k2", &assign_GovSteamFV3_k2); + assign_map.emplace("GovSteamFV3.k3", &assign_GovSteamFV3_k3); + assign_map.emplace("GovSteamFV3.mwbase", &assign_GovSteamFV3_mwbase); + assign_map.emplace("GovSteamFV3.pgv1", &assign_GovSteamFV3_pgv1); + assign_map.emplace("GovSteamFV3.pgv2", &assign_GovSteamFV3_pgv2); + assign_map.emplace("GovSteamFV3.pgv3", &assign_GovSteamFV3_pgv3); + assign_map.emplace("GovSteamFV3.pgv4", &assign_GovSteamFV3_pgv4); + assign_map.emplace("GovSteamFV3.pgv5", &assign_GovSteamFV3_pgv5); + assign_map.emplace("GovSteamFV3.pgv6", &assign_GovSteamFV3_pgv6); + assign_map.emplace("GovSteamFV3.pmax", &assign_GovSteamFV3_pmax); + assign_map.emplace("GovSteamFV3.pmin", &assign_GovSteamFV3_pmin); + assign_map.emplace("GovSteamFV3.prmax", &assign_GovSteamFV3_prmax); + assign_map.emplace("GovSteamFV3.t1", &assign_GovSteamFV3_t1); + assign_map.emplace("GovSteamFV3.t2", &assign_GovSteamFV3_t2); + assign_map.emplace("GovSteamFV3.t3", &assign_GovSteamFV3_t3); + assign_map.emplace("GovSteamFV3.t4", &assign_GovSteamFV3_t4); + assign_map.emplace("GovSteamFV3.t5", &assign_GovSteamFV3_t5); + assign_map.emplace("GovSteamFV3.t6", &assign_GovSteamFV3_t6); + assign_map.emplace("GovSteamFV3.ta", &assign_GovSteamFV3_ta); + assign_map.emplace("GovSteamFV3.tb", &assign_GovSteamFV3_tb); + assign_map.emplace("GovSteamFV3.tc", &assign_GovSteamFV3_tc); + assign_map.emplace("GovSteamFV3.uc", &assign_GovSteamFV3_uc); + assign_map.emplace("GovSteamFV3.uo", &assign_GovSteamFV3_uo); } void GovSteamFV3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1021,37 +1053,37 @@ void GovSteamFV3::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV3.gv1", &get_GovSteamFV3_gv1); - get_map.emplace("cim:GovSteamFV3.gv2", &get_GovSteamFV3_gv2); - get_map.emplace("cim:GovSteamFV3.gv3", &get_GovSteamFV3_gv3); - get_map.emplace("cim:GovSteamFV3.gv4", &get_GovSteamFV3_gv4); - get_map.emplace("cim:GovSteamFV3.gv5", &get_GovSteamFV3_gv5); - get_map.emplace("cim:GovSteamFV3.gv6", &get_GovSteamFV3_gv6); - get_map.emplace("cim:GovSteamFV3.k", &get_GovSteamFV3_k); - get_map.emplace("cim:GovSteamFV3.k1", &get_GovSteamFV3_k1); - get_map.emplace("cim:GovSteamFV3.k2", &get_GovSteamFV3_k2); - get_map.emplace("cim:GovSteamFV3.k3", &get_GovSteamFV3_k3); - get_map.emplace("cim:GovSteamFV3.mwbase", &get_GovSteamFV3_mwbase); - get_map.emplace("cim:GovSteamFV3.pgv1", &get_GovSteamFV3_pgv1); - get_map.emplace("cim:GovSteamFV3.pgv2", &get_GovSteamFV3_pgv2); - get_map.emplace("cim:GovSteamFV3.pgv3", &get_GovSteamFV3_pgv3); - get_map.emplace("cim:GovSteamFV3.pgv4", &get_GovSteamFV3_pgv4); - get_map.emplace("cim:GovSteamFV3.pgv5", &get_GovSteamFV3_pgv5); - get_map.emplace("cim:GovSteamFV3.pgv6", &get_GovSteamFV3_pgv6); - get_map.emplace("cim:GovSteamFV3.pmax", &get_GovSteamFV3_pmax); - get_map.emplace("cim:GovSteamFV3.pmin", &get_GovSteamFV3_pmin); - get_map.emplace("cim:GovSteamFV3.prmax", &get_GovSteamFV3_prmax); - get_map.emplace("cim:GovSteamFV3.t1", &get_GovSteamFV3_t1); - get_map.emplace("cim:GovSteamFV3.t2", &get_GovSteamFV3_t2); - get_map.emplace("cim:GovSteamFV3.t3", &get_GovSteamFV3_t3); - get_map.emplace("cim:GovSteamFV3.t4", &get_GovSteamFV3_t4); - get_map.emplace("cim:GovSteamFV3.t5", &get_GovSteamFV3_t5); - get_map.emplace("cim:GovSteamFV3.t6", &get_GovSteamFV3_t6); - get_map.emplace("cim:GovSteamFV3.ta", &get_GovSteamFV3_ta); - get_map.emplace("cim:GovSteamFV3.tb", &get_GovSteamFV3_tb); - get_map.emplace("cim:GovSteamFV3.tc", &get_GovSteamFV3_tc); - get_map.emplace("cim:GovSteamFV3.uc", &get_GovSteamFV3_uc); - get_map.emplace("cim:GovSteamFV3.uo", &get_GovSteamFV3_uo); + get_map.emplace("GovSteamFV3.gv1", &get_GovSteamFV3_gv1); + get_map.emplace("GovSteamFV3.gv2", &get_GovSteamFV3_gv2); + get_map.emplace("GovSteamFV3.gv3", &get_GovSteamFV3_gv3); + get_map.emplace("GovSteamFV3.gv4", &get_GovSteamFV3_gv4); + get_map.emplace("GovSteamFV3.gv5", &get_GovSteamFV3_gv5); + get_map.emplace("GovSteamFV3.gv6", &get_GovSteamFV3_gv6); + get_map.emplace("GovSteamFV3.k", &get_GovSteamFV3_k); + get_map.emplace("GovSteamFV3.k1", &get_GovSteamFV3_k1); + get_map.emplace("GovSteamFV3.k2", &get_GovSteamFV3_k2); + get_map.emplace("GovSteamFV3.k3", &get_GovSteamFV3_k3); + get_map.emplace("GovSteamFV3.mwbase", &get_GovSteamFV3_mwbase); + get_map.emplace("GovSteamFV3.pgv1", &get_GovSteamFV3_pgv1); + get_map.emplace("GovSteamFV3.pgv2", &get_GovSteamFV3_pgv2); + get_map.emplace("GovSteamFV3.pgv3", &get_GovSteamFV3_pgv3); + get_map.emplace("GovSteamFV3.pgv4", &get_GovSteamFV3_pgv4); + get_map.emplace("GovSteamFV3.pgv5", &get_GovSteamFV3_pgv5); + get_map.emplace("GovSteamFV3.pgv6", &get_GovSteamFV3_pgv6); + get_map.emplace("GovSteamFV3.pmax", &get_GovSteamFV3_pmax); + get_map.emplace("GovSteamFV3.pmin", &get_GovSteamFV3_pmin); + get_map.emplace("GovSteamFV3.prmax", &get_GovSteamFV3_prmax); + get_map.emplace("GovSteamFV3.t1", &get_GovSteamFV3_t1); + get_map.emplace("GovSteamFV3.t2", &get_GovSteamFV3_t2); + get_map.emplace("GovSteamFV3.t3", &get_GovSteamFV3_t3); + get_map.emplace("GovSteamFV3.t4", &get_GovSteamFV3_t4); + get_map.emplace("GovSteamFV3.t5", &get_GovSteamFV3_t5); + get_map.emplace("GovSteamFV3.t6", &get_GovSteamFV3_t6); + get_map.emplace("GovSteamFV3.ta", &get_GovSteamFV3_ta); + get_map.emplace("GovSteamFV3.tb", &get_GovSteamFV3_tb); + get_map.emplace("GovSteamFV3.tc", &get_GovSteamFV3_tc); + get_map.emplace("GovSteamFV3.uc", &get_GovSteamFV3_uc); + get_map.emplace("GovSteamFV3.uo", &get_GovSteamFV3_uo); } void GovSteamFV3::addClassGetFnsToMap(std::map& get_map) const @@ -1064,11 +1096,25 @@ void GovSteamFV3::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV3::declare() { return BaseClassDefiner(GovSteamFV3::addConstructToMap, GovSteamFV3::addPrimitiveAssignFnsToMap, GovSteamFV3::addClassAssignFnsToMap, GovSteamFV3::debugName); } +std::map GovSteamFV3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV3_factory() diff --git a/CGMES_3.0.0/GovSteamFV3.hpp b/CGMES_3.0.0/GovSteamFV3.hpp index 5cdcdd065..014c1da81 100644 --- a/CGMES_3.0.0/GovSteamFV3.hpp +++ b/CGMES_3.0.0/GovSteamFV3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "PU.hpp" @@ -124,8 +125,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -133,7 +141,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV3_factory(); diff --git a/CGMES_3.0.0/GovSteamFV4.cpp b/CGMES_3.0.0/GovSteamFV4.cpp index 18cb0f39c..83b180240 100644 --- a/CGMES_3.0.0/GovSteamFV4.cpp +++ b/CGMES_3.0.0/GovSteamFV4.cpp @@ -11,82 +11,114 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamFV4(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamFV4.cpsmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.cpsmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.crmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.crmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kf3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.khp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kic", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kmp1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kmp2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.kpt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.krc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ksh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.lpi", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.lps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.mnef", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.mxef", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.pr1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.pr2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.psmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rsmimn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rsmimx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rvgmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.rvgmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.srsmp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.svmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.svmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tam", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tcm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tdc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tf1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.thp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tmp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.trh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.tv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ty", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.y", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.yhpmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.yhpmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ympmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamFV4.ympmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamFV4::GovSteamFV4() {} GovSteamFV4::~GovSteamFV4() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamFV4.cpsmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.cpsmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.crmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.crmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kdc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kf1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kf3", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.khp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kic", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kip", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kit", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kmp1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kmp2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.kpt", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.krc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ksh", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.lpi", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.lps", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.mnef", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.mxef", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.pr1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.pr2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.psmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rsmimn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rsmimx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rvgmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.rvgmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.srsmp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.svmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.svmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ta", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tam", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tcm", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tdc", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tf1", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tf2", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.thp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tmp", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.trh", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.tv", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ty", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.y", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.yhpmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.yhpmx", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ympmn", { CGMESProfile::DY, } }, - { "cim:GovSteamFV4.ympmx", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamFV4::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamFV4::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamFV4::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamFV4::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamFV4::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamFV4::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamFV4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamFV4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamFV4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamFV4_cpsmn(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1576,62 +1608,62 @@ const char* GovSteamFV4::debugString() const void GovSteamFV4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamFV4", &GovSteamFV4_factory); + factory_map.emplace("GovSteamFV4", &GovSteamFV4_factory); } void GovSteamFV4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamFV4.cpsmn", &assign_GovSteamFV4_cpsmn); - assign_map.emplace("cim:GovSteamFV4.cpsmx", &assign_GovSteamFV4_cpsmx); - assign_map.emplace("cim:GovSteamFV4.crmn", &assign_GovSteamFV4_crmn); - assign_map.emplace("cim:GovSteamFV4.crmx", &assign_GovSteamFV4_crmx); - assign_map.emplace("cim:GovSteamFV4.kdc", &assign_GovSteamFV4_kdc); - assign_map.emplace("cim:GovSteamFV4.kf1", &assign_GovSteamFV4_kf1); - assign_map.emplace("cim:GovSteamFV4.kf3", &assign_GovSteamFV4_kf3); - assign_map.emplace("cim:GovSteamFV4.khp", &assign_GovSteamFV4_khp); - assign_map.emplace("cim:GovSteamFV4.kic", &assign_GovSteamFV4_kic); - assign_map.emplace("cim:GovSteamFV4.kip", &assign_GovSteamFV4_kip); - assign_map.emplace("cim:GovSteamFV4.kit", &assign_GovSteamFV4_kit); - assign_map.emplace("cim:GovSteamFV4.kmp1", &assign_GovSteamFV4_kmp1); - assign_map.emplace("cim:GovSteamFV4.kmp2", &assign_GovSteamFV4_kmp2); - assign_map.emplace("cim:GovSteamFV4.kpc", &assign_GovSteamFV4_kpc); - assign_map.emplace("cim:GovSteamFV4.kpp", &assign_GovSteamFV4_kpp); - assign_map.emplace("cim:GovSteamFV4.kpt", &assign_GovSteamFV4_kpt); - assign_map.emplace("cim:GovSteamFV4.krc", &assign_GovSteamFV4_krc); - assign_map.emplace("cim:GovSteamFV4.ksh", &assign_GovSteamFV4_ksh); - assign_map.emplace("cim:GovSteamFV4.lpi", &assign_GovSteamFV4_lpi); - assign_map.emplace("cim:GovSteamFV4.lps", &assign_GovSteamFV4_lps); - assign_map.emplace("cim:GovSteamFV4.mnef", &assign_GovSteamFV4_mnef); - assign_map.emplace("cim:GovSteamFV4.mxef", &assign_GovSteamFV4_mxef); - assign_map.emplace("cim:GovSteamFV4.pr1", &assign_GovSteamFV4_pr1); - assign_map.emplace("cim:GovSteamFV4.pr2", &assign_GovSteamFV4_pr2); - assign_map.emplace("cim:GovSteamFV4.psmn", &assign_GovSteamFV4_psmn); - assign_map.emplace("cim:GovSteamFV4.rsmimn", &assign_GovSteamFV4_rsmimn); - assign_map.emplace("cim:GovSteamFV4.rsmimx", &assign_GovSteamFV4_rsmimx); - assign_map.emplace("cim:GovSteamFV4.rvgmn", &assign_GovSteamFV4_rvgmn); - assign_map.emplace("cim:GovSteamFV4.rvgmx", &assign_GovSteamFV4_rvgmx); - assign_map.emplace("cim:GovSteamFV4.srmn", &assign_GovSteamFV4_srmn); - assign_map.emplace("cim:GovSteamFV4.srmx", &assign_GovSteamFV4_srmx); - assign_map.emplace("cim:GovSteamFV4.srsmp", &assign_GovSteamFV4_srsmp); - assign_map.emplace("cim:GovSteamFV4.svmn", &assign_GovSteamFV4_svmn); - assign_map.emplace("cim:GovSteamFV4.svmx", &assign_GovSteamFV4_svmx); - assign_map.emplace("cim:GovSteamFV4.ta", &assign_GovSteamFV4_ta); - assign_map.emplace("cim:GovSteamFV4.tam", &assign_GovSteamFV4_tam); - assign_map.emplace("cim:GovSteamFV4.tc", &assign_GovSteamFV4_tc); - assign_map.emplace("cim:GovSteamFV4.tcm", &assign_GovSteamFV4_tcm); - assign_map.emplace("cim:GovSteamFV4.tdc", &assign_GovSteamFV4_tdc); - assign_map.emplace("cim:GovSteamFV4.tf1", &assign_GovSteamFV4_tf1); - assign_map.emplace("cim:GovSteamFV4.tf2", &assign_GovSteamFV4_tf2); - assign_map.emplace("cim:GovSteamFV4.thp", &assign_GovSteamFV4_thp); - assign_map.emplace("cim:GovSteamFV4.tmp", &assign_GovSteamFV4_tmp); - assign_map.emplace("cim:GovSteamFV4.trh", &assign_GovSteamFV4_trh); - assign_map.emplace("cim:GovSteamFV4.tv", &assign_GovSteamFV4_tv); - assign_map.emplace("cim:GovSteamFV4.ty", &assign_GovSteamFV4_ty); - assign_map.emplace("cim:GovSteamFV4.y", &assign_GovSteamFV4_y); - assign_map.emplace("cim:GovSteamFV4.yhpmn", &assign_GovSteamFV4_yhpmn); - assign_map.emplace("cim:GovSteamFV4.yhpmx", &assign_GovSteamFV4_yhpmx); - assign_map.emplace("cim:GovSteamFV4.ympmn", &assign_GovSteamFV4_ympmn); - assign_map.emplace("cim:GovSteamFV4.ympmx", &assign_GovSteamFV4_ympmx); + assign_map.emplace("GovSteamFV4.cpsmn", &assign_GovSteamFV4_cpsmn); + assign_map.emplace("GovSteamFV4.cpsmx", &assign_GovSteamFV4_cpsmx); + assign_map.emplace("GovSteamFV4.crmn", &assign_GovSteamFV4_crmn); + assign_map.emplace("GovSteamFV4.crmx", &assign_GovSteamFV4_crmx); + assign_map.emplace("GovSteamFV4.kdc", &assign_GovSteamFV4_kdc); + assign_map.emplace("GovSteamFV4.kf1", &assign_GovSteamFV4_kf1); + assign_map.emplace("GovSteamFV4.kf3", &assign_GovSteamFV4_kf3); + assign_map.emplace("GovSteamFV4.khp", &assign_GovSteamFV4_khp); + assign_map.emplace("GovSteamFV4.kic", &assign_GovSteamFV4_kic); + assign_map.emplace("GovSteamFV4.kip", &assign_GovSteamFV4_kip); + assign_map.emplace("GovSteamFV4.kit", &assign_GovSteamFV4_kit); + assign_map.emplace("GovSteamFV4.kmp1", &assign_GovSteamFV4_kmp1); + assign_map.emplace("GovSteamFV4.kmp2", &assign_GovSteamFV4_kmp2); + assign_map.emplace("GovSteamFV4.kpc", &assign_GovSteamFV4_kpc); + assign_map.emplace("GovSteamFV4.kpp", &assign_GovSteamFV4_kpp); + assign_map.emplace("GovSteamFV4.kpt", &assign_GovSteamFV4_kpt); + assign_map.emplace("GovSteamFV4.krc", &assign_GovSteamFV4_krc); + assign_map.emplace("GovSteamFV4.ksh", &assign_GovSteamFV4_ksh); + assign_map.emplace("GovSteamFV4.lpi", &assign_GovSteamFV4_lpi); + assign_map.emplace("GovSteamFV4.lps", &assign_GovSteamFV4_lps); + assign_map.emplace("GovSteamFV4.mnef", &assign_GovSteamFV4_mnef); + assign_map.emplace("GovSteamFV4.mxef", &assign_GovSteamFV4_mxef); + assign_map.emplace("GovSteamFV4.pr1", &assign_GovSteamFV4_pr1); + assign_map.emplace("GovSteamFV4.pr2", &assign_GovSteamFV4_pr2); + assign_map.emplace("GovSteamFV4.psmn", &assign_GovSteamFV4_psmn); + assign_map.emplace("GovSteamFV4.rsmimn", &assign_GovSteamFV4_rsmimn); + assign_map.emplace("GovSteamFV4.rsmimx", &assign_GovSteamFV4_rsmimx); + assign_map.emplace("GovSteamFV4.rvgmn", &assign_GovSteamFV4_rvgmn); + assign_map.emplace("GovSteamFV4.rvgmx", &assign_GovSteamFV4_rvgmx); + assign_map.emplace("GovSteamFV4.srmn", &assign_GovSteamFV4_srmn); + assign_map.emplace("GovSteamFV4.srmx", &assign_GovSteamFV4_srmx); + assign_map.emplace("GovSteamFV4.srsmp", &assign_GovSteamFV4_srsmp); + assign_map.emplace("GovSteamFV4.svmn", &assign_GovSteamFV4_svmn); + assign_map.emplace("GovSteamFV4.svmx", &assign_GovSteamFV4_svmx); + assign_map.emplace("GovSteamFV4.ta", &assign_GovSteamFV4_ta); + assign_map.emplace("GovSteamFV4.tam", &assign_GovSteamFV4_tam); + assign_map.emplace("GovSteamFV4.tc", &assign_GovSteamFV4_tc); + assign_map.emplace("GovSteamFV4.tcm", &assign_GovSteamFV4_tcm); + assign_map.emplace("GovSteamFV4.tdc", &assign_GovSteamFV4_tdc); + assign_map.emplace("GovSteamFV4.tf1", &assign_GovSteamFV4_tf1); + assign_map.emplace("GovSteamFV4.tf2", &assign_GovSteamFV4_tf2); + assign_map.emplace("GovSteamFV4.thp", &assign_GovSteamFV4_thp); + assign_map.emplace("GovSteamFV4.tmp", &assign_GovSteamFV4_tmp); + assign_map.emplace("GovSteamFV4.trh", &assign_GovSteamFV4_trh); + assign_map.emplace("GovSteamFV4.tv", &assign_GovSteamFV4_tv); + assign_map.emplace("GovSteamFV4.ty", &assign_GovSteamFV4_ty); + assign_map.emplace("GovSteamFV4.y", &assign_GovSteamFV4_y); + assign_map.emplace("GovSteamFV4.yhpmn", &assign_GovSteamFV4_yhpmn); + assign_map.emplace("GovSteamFV4.yhpmx", &assign_GovSteamFV4_yhpmx); + assign_map.emplace("GovSteamFV4.ympmn", &assign_GovSteamFV4_ympmn); + assign_map.emplace("GovSteamFV4.ympmx", &assign_GovSteamFV4_ympmx); } void GovSteamFV4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1641,57 +1673,57 @@ void GovSteamFV4::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamFV4.cpsmn", &get_GovSteamFV4_cpsmn); - get_map.emplace("cim:GovSteamFV4.cpsmx", &get_GovSteamFV4_cpsmx); - get_map.emplace("cim:GovSteamFV4.crmn", &get_GovSteamFV4_crmn); - get_map.emplace("cim:GovSteamFV4.crmx", &get_GovSteamFV4_crmx); - get_map.emplace("cim:GovSteamFV4.kdc", &get_GovSteamFV4_kdc); - get_map.emplace("cim:GovSteamFV4.kf1", &get_GovSteamFV4_kf1); - get_map.emplace("cim:GovSteamFV4.kf3", &get_GovSteamFV4_kf3); - get_map.emplace("cim:GovSteamFV4.khp", &get_GovSteamFV4_khp); - get_map.emplace("cim:GovSteamFV4.kic", &get_GovSteamFV4_kic); - get_map.emplace("cim:GovSteamFV4.kip", &get_GovSteamFV4_kip); - get_map.emplace("cim:GovSteamFV4.kit", &get_GovSteamFV4_kit); - get_map.emplace("cim:GovSteamFV4.kmp1", &get_GovSteamFV4_kmp1); - get_map.emplace("cim:GovSteamFV4.kmp2", &get_GovSteamFV4_kmp2); - get_map.emplace("cim:GovSteamFV4.kpc", &get_GovSteamFV4_kpc); - get_map.emplace("cim:GovSteamFV4.kpp", &get_GovSteamFV4_kpp); - get_map.emplace("cim:GovSteamFV4.kpt", &get_GovSteamFV4_kpt); - get_map.emplace("cim:GovSteamFV4.krc", &get_GovSteamFV4_krc); - get_map.emplace("cim:GovSteamFV4.ksh", &get_GovSteamFV4_ksh); - get_map.emplace("cim:GovSteamFV4.lpi", &get_GovSteamFV4_lpi); - get_map.emplace("cim:GovSteamFV4.lps", &get_GovSteamFV4_lps); - get_map.emplace("cim:GovSteamFV4.mnef", &get_GovSteamFV4_mnef); - get_map.emplace("cim:GovSteamFV4.mxef", &get_GovSteamFV4_mxef); - get_map.emplace("cim:GovSteamFV4.pr1", &get_GovSteamFV4_pr1); - get_map.emplace("cim:GovSteamFV4.pr2", &get_GovSteamFV4_pr2); - get_map.emplace("cim:GovSteamFV4.psmn", &get_GovSteamFV4_psmn); - get_map.emplace("cim:GovSteamFV4.rsmimn", &get_GovSteamFV4_rsmimn); - get_map.emplace("cim:GovSteamFV4.rsmimx", &get_GovSteamFV4_rsmimx); - get_map.emplace("cim:GovSteamFV4.rvgmn", &get_GovSteamFV4_rvgmn); - get_map.emplace("cim:GovSteamFV4.rvgmx", &get_GovSteamFV4_rvgmx); - get_map.emplace("cim:GovSteamFV4.srmn", &get_GovSteamFV4_srmn); - get_map.emplace("cim:GovSteamFV4.srmx", &get_GovSteamFV4_srmx); - get_map.emplace("cim:GovSteamFV4.srsmp", &get_GovSteamFV4_srsmp); - get_map.emplace("cim:GovSteamFV4.svmn", &get_GovSteamFV4_svmn); - get_map.emplace("cim:GovSteamFV4.svmx", &get_GovSteamFV4_svmx); - get_map.emplace("cim:GovSteamFV4.ta", &get_GovSteamFV4_ta); - get_map.emplace("cim:GovSteamFV4.tam", &get_GovSteamFV4_tam); - get_map.emplace("cim:GovSteamFV4.tc", &get_GovSteamFV4_tc); - get_map.emplace("cim:GovSteamFV4.tcm", &get_GovSteamFV4_tcm); - get_map.emplace("cim:GovSteamFV4.tdc", &get_GovSteamFV4_tdc); - get_map.emplace("cim:GovSteamFV4.tf1", &get_GovSteamFV4_tf1); - get_map.emplace("cim:GovSteamFV4.tf2", &get_GovSteamFV4_tf2); - get_map.emplace("cim:GovSteamFV4.thp", &get_GovSteamFV4_thp); - get_map.emplace("cim:GovSteamFV4.tmp", &get_GovSteamFV4_tmp); - get_map.emplace("cim:GovSteamFV4.trh", &get_GovSteamFV4_trh); - get_map.emplace("cim:GovSteamFV4.tv", &get_GovSteamFV4_tv); - get_map.emplace("cim:GovSteamFV4.ty", &get_GovSteamFV4_ty); - get_map.emplace("cim:GovSteamFV4.y", &get_GovSteamFV4_y); - get_map.emplace("cim:GovSteamFV4.yhpmn", &get_GovSteamFV4_yhpmn); - get_map.emplace("cim:GovSteamFV4.yhpmx", &get_GovSteamFV4_yhpmx); - get_map.emplace("cim:GovSteamFV4.ympmn", &get_GovSteamFV4_ympmn); - get_map.emplace("cim:GovSteamFV4.ympmx", &get_GovSteamFV4_ympmx); + get_map.emplace("GovSteamFV4.cpsmn", &get_GovSteamFV4_cpsmn); + get_map.emplace("GovSteamFV4.cpsmx", &get_GovSteamFV4_cpsmx); + get_map.emplace("GovSteamFV4.crmn", &get_GovSteamFV4_crmn); + get_map.emplace("GovSteamFV4.crmx", &get_GovSteamFV4_crmx); + get_map.emplace("GovSteamFV4.kdc", &get_GovSteamFV4_kdc); + get_map.emplace("GovSteamFV4.kf1", &get_GovSteamFV4_kf1); + get_map.emplace("GovSteamFV4.kf3", &get_GovSteamFV4_kf3); + get_map.emplace("GovSteamFV4.khp", &get_GovSteamFV4_khp); + get_map.emplace("GovSteamFV4.kic", &get_GovSteamFV4_kic); + get_map.emplace("GovSteamFV4.kip", &get_GovSteamFV4_kip); + get_map.emplace("GovSteamFV4.kit", &get_GovSteamFV4_kit); + get_map.emplace("GovSteamFV4.kmp1", &get_GovSteamFV4_kmp1); + get_map.emplace("GovSteamFV4.kmp2", &get_GovSteamFV4_kmp2); + get_map.emplace("GovSteamFV4.kpc", &get_GovSteamFV4_kpc); + get_map.emplace("GovSteamFV4.kpp", &get_GovSteamFV4_kpp); + get_map.emplace("GovSteamFV4.kpt", &get_GovSteamFV4_kpt); + get_map.emplace("GovSteamFV4.krc", &get_GovSteamFV4_krc); + get_map.emplace("GovSteamFV4.ksh", &get_GovSteamFV4_ksh); + get_map.emplace("GovSteamFV4.lpi", &get_GovSteamFV4_lpi); + get_map.emplace("GovSteamFV4.lps", &get_GovSteamFV4_lps); + get_map.emplace("GovSteamFV4.mnef", &get_GovSteamFV4_mnef); + get_map.emplace("GovSteamFV4.mxef", &get_GovSteamFV4_mxef); + get_map.emplace("GovSteamFV4.pr1", &get_GovSteamFV4_pr1); + get_map.emplace("GovSteamFV4.pr2", &get_GovSteamFV4_pr2); + get_map.emplace("GovSteamFV4.psmn", &get_GovSteamFV4_psmn); + get_map.emplace("GovSteamFV4.rsmimn", &get_GovSteamFV4_rsmimn); + get_map.emplace("GovSteamFV4.rsmimx", &get_GovSteamFV4_rsmimx); + get_map.emplace("GovSteamFV4.rvgmn", &get_GovSteamFV4_rvgmn); + get_map.emplace("GovSteamFV4.rvgmx", &get_GovSteamFV4_rvgmx); + get_map.emplace("GovSteamFV4.srmn", &get_GovSteamFV4_srmn); + get_map.emplace("GovSteamFV4.srmx", &get_GovSteamFV4_srmx); + get_map.emplace("GovSteamFV4.srsmp", &get_GovSteamFV4_srsmp); + get_map.emplace("GovSteamFV4.svmn", &get_GovSteamFV4_svmn); + get_map.emplace("GovSteamFV4.svmx", &get_GovSteamFV4_svmx); + get_map.emplace("GovSteamFV4.ta", &get_GovSteamFV4_ta); + get_map.emplace("GovSteamFV4.tam", &get_GovSteamFV4_tam); + get_map.emplace("GovSteamFV4.tc", &get_GovSteamFV4_tc); + get_map.emplace("GovSteamFV4.tcm", &get_GovSteamFV4_tcm); + get_map.emplace("GovSteamFV4.tdc", &get_GovSteamFV4_tdc); + get_map.emplace("GovSteamFV4.tf1", &get_GovSteamFV4_tf1); + get_map.emplace("GovSteamFV4.tf2", &get_GovSteamFV4_tf2); + get_map.emplace("GovSteamFV4.thp", &get_GovSteamFV4_thp); + get_map.emplace("GovSteamFV4.tmp", &get_GovSteamFV4_tmp); + get_map.emplace("GovSteamFV4.trh", &get_GovSteamFV4_trh); + get_map.emplace("GovSteamFV4.tv", &get_GovSteamFV4_tv); + get_map.emplace("GovSteamFV4.ty", &get_GovSteamFV4_ty); + get_map.emplace("GovSteamFV4.y", &get_GovSteamFV4_y); + get_map.emplace("GovSteamFV4.yhpmn", &get_GovSteamFV4_yhpmn); + get_map.emplace("GovSteamFV4.yhpmx", &get_GovSteamFV4_yhpmx); + get_map.emplace("GovSteamFV4.ympmn", &get_GovSteamFV4_ympmn); + get_map.emplace("GovSteamFV4.ympmx", &get_GovSteamFV4_ympmx); } void GovSteamFV4::addClassGetFnsToMap(std::map& get_map) const @@ -1704,11 +1736,25 @@ void GovSteamFV4::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamFV4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamFV4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamFV4::declare() { return BaseClassDefiner(GovSteamFV4::addConstructToMap, GovSteamFV4::addPrimitiveAssignFnsToMap, GovSteamFV4::addClassAssignFnsToMap, GovSteamFV4::debugName); } +std::map GovSteamFV4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamFV4_factory() diff --git a/CGMES_3.0.0/GovSteamFV4.hpp b/CGMES_3.0.0/GovSteamFV4.hpp index 027bae0ab..f82987a2d 100644 --- a/CGMES_3.0.0/GovSteamFV4.hpp +++ b/CGMES_3.0.0/GovSteamFV4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -183,8 +184,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -192,7 +200,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamFV4_factory(); diff --git a/CGMES_3.0.0/GovSteamIEEE1.cpp b/CGMES_3.0.0/GovSteamIEEE1.cpp index 8dafb5bc6..ed7545e2d 100644 --- a/CGMES_3.0.0/GovSteamIEEE1.cpp +++ b/CGMES_3.0.0/GovSteamIEEE1.cpp @@ -11,52 +11,84 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamIEEE1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamIEEE1.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.k8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.t7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.uc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamIEEE1.uo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamIEEE1::GovSteamIEEE1() {} GovSteamIEEE1::~GovSteamIEEE1() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:GovSteamIEEE1.k", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k4", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k5", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k6", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k7", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.k8", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t6", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.t7", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.uc", { CGMESProfile::DY, } }, - { "cim:GovSteamIEEE1.uo", { CGMESProfile::DY, } }, -}; - -std::list -GovSteamIEEE1::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -GovSteamIEEE1::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& GovSteamIEEE1::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& GovSteamIEEE1::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& GovSteamIEEE1::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& GovSteamIEEE1::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamIEEE1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamIEEE1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamIEEE1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamIEEE1_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -676,32 +708,32 @@ const char* GovSteamIEEE1::debugString() const void GovSteamIEEE1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamIEEE1", &GovSteamIEEE1_factory); + factory_map.emplace("GovSteamIEEE1", &GovSteamIEEE1_factory); } void GovSteamIEEE1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamIEEE1.k", &assign_GovSteamIEEE1_k); - assign_map.emplace("cim:GovSteamIEEE1.k1", &assign_GovSteamIEEE1_k1); - assign_map.emplace("cim:GovSteamIEEE1.k2", &assign_GovSteamIEEE1_k2); - assign_map.emplace("cim:GovSteamIEEE1.k3", &assign_GovSteamIEEE1_k3); - assign_map.emplace("cim:GovSteamIEEE1.k4", &assign_GovSteamIEEE1_k4); - assign_map.emplace("cim:GovSteamIEEE1.k5", &assign_GovSteamIEEE1_k5); - assign_map.emplace("cim:GovSteamIEEE1.k6", &assign_GovSteamIEEE1_k6); - assign_map.emplace("cim:GovSteamIEEE1.k7", &assign_GovSteamIEEE1_k7); - assign_map.emplace("cim:GovSteamIEEE1.k8", &assign_GovSteamIEEE1_k8); - assign_map.emplace("cim:GovSteamIEEE1.mwbase", &assign_GovSteamIEEE1_mwbase); - assign_map.emplace("cim:GovSteamIEEE1.pmax", &assign_GovSteamIEEE1_pmax); - assign_map.emplace("cim:GovSteamIEEE1.pmin", &assign_GovSteamIEEE1_pmin); - assign_map.emplace("cim:GovSteamIEEE1.t1", &assign_GovSteamIEEE1_t1); - assign_map.emplace("cim:GovSteamIEEE1.t2", &assign_GovSteamIEEE1_t2); - assign_map.emplace("cim:GovSteamIEEE1.t3", &assign_GovSteamIEEE1_t3); - assign_map.emplace("cim:GovSteamIEEE1.t4", &assign_GovSteamIEEE1_t4); - assign_map.emplace("cim:GovSteamIEEE1.t5", &assign_GovSteamIEEE1_t5); - assign_map.emplace("cim:GovSteamIEEE1.t6", &assign_GovSteamIEEE1_t6); - assign_map.emplace("cim:GovSteamIEEE1.t7", &assign_GovSteamIEEE1_t7); - assign_map.emplace("cim:GovSteamIEEE1.uc", &assign_GovSteamIEEE1_uc); - assign_map.emplace("cim:GovSteamIEEE1.uo", &assign_GovSteamIEEE1_uo); + assign_map.emplace("GovSteamIEEE1.k", &assign_GovSteamIEEE1_k); + assign_map.emplace("GovSteamIEEE1.k1", &assign_GovSteamIEEE1_k1); + assign_map.emplace("GovSteamIEEE1.k2", &assign_GovSteamIEEE1_k2); + assign_map.emplace("GovSteamIEEE1.k3", &assign_GovSteamIEEE1_k3); + assign_map.emplace("GovSteamIEEE1.k4", &assign_GovSteamIEEE1_k4); + assign_map.emplace("GovSteamIEEE1.k5", &assign_GovSteamIEEE1_k5); + assign_map.emplace("GovSteamIEEE1.k6", &assign_GovSteamIEEE1_k6); + assign_map.emplace("GovSteamIEEE1.k7", &assign_GovSteamIEEE1_k7); + assign_map.emplace("GovSteamIEEE1.k8", &assign_GovSteamIEEE1_k8); + assign_map.emplace("GovSteamIEEE1.mwbase", &assign_GovSteamIEEE1_mwbase); + assign_map.emplace("GovSteamIEEE1.pmax", &assign_GovSteamIEEE1_pmax); + assign_map.emplace("GovSteamIEEE1.pmin", &assign_GovSteamIEEE1_pmin); + assign_map.emplace("GovSteamIEEE1.t1", &assign_GovSteamIEEE1_t1); + assign_map.emplace("GovSteamIEEE1.t2", &assign_GovSteamIEEE1_t2); + assign_map.emplace("GovSteamIEEE1.t3", &assign_GovSteamIEEE1_t3); + assign_map.emplace("GovSteamIEEE1.t4", &assign_GovSteamIEEE1_t4); + assign_map.emplace("GovSteamIEEE1.t5", &assign_GovSteamIEEE1_t5); + assign_map.emplace("GovSteamIEEE1.t6", &assign_GovSteamIEEE1_t6); + assign_map.emplace("GovSteamIEEE1.t7", &assign_GovSteamIEEE1_t7); + assign_map.emplace("GovSteamIEEE1.uc", &assign_GovSteamIEEE1_uc); + assign_map.emplace("GovSteamIEEE1.uo", &assign_GovSteamIEEE1_uo); } void GovSteamIEEE1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -711,27 +743,27 @@ void GovSteamIEEE1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamIEEE1.k", &get_GovSteamIEEE1_k); - get_map.emplace("cim:GovSteamIEEE1.k1", &get_GovSteamIEEE1_k1); - get_map.emplace("cim:GovSteamIEEE1.k2", &get_GovSteamIEEE1_k2); - get_map.emplace("cim:GovSteamIEEE1.k3", &get_GovSteamIEEE1_k3); - get_map.emplace("cim:GovSteamIEEE1.k4", &get_GovSteamIEEE1_k4); - get_map.emplace("cim:GovSteamIEEE1.k5", &get_GovSteamIEEE1_k5); - get_map.emplace("cim:GovSteamIEEE1.k6", &get_GovSteamIEEE1_k6); - get_map.emplace("cim:GovSteamIEEE1.k7", &get_GovSteamIEEE1_k7); - get_map.emplace("cim:GovSteamIEEE1.k8", &get_GovSteamIEEE1_k8); - get_map.emplace("cim:GovSteamIEEE1.mwbase", &get_GovSteamIEEE1_mwbase); - get_map.emplace("cim:GovSteamIEEE1.pmax", &get_GovSteamIEEE1_pmax); - get_map.emplace("cim:GovSteamIEEE1.pmin", &get_GovSteamIEEE1_pmin); - get_map.emplace("cim:GovSteamIEEE1.t1", &get_GovSteamIEEE1_t1); - get_map.emplace("cim:GovSteamIEEE1.t2", &get_GovSteamIEEE1_t2); - get_map.emplace("cim:GovSteamIEEE1.t3", &get_GovSteamIEEE1_t3); - get_map.emplace("cim:GovSteamIEEE1.t4", &get_GovSteamIEEE1_t4); - get_map.emplace("cim:GovSteamIEEE1.t5", &get_GovSteamIEEE1_t5); - get_map.emplace("cim:GovSteamIEEE1.t6", &get_GovSteamIEEE1_t6); - get_map.emplace("cim:GovSteamIEEE1.t7", &get_GovSteamIEEE1_t7); - get_map.emplace("cim:GovSteamIEEE1.uc", &get_GovSteamIEEE1_uc); - get_map.emplace("cim:GovSteamIEEE1.uo", &get_GovSteamIEEE1_uo); + get_map.emplace("GovSteamIEEE1.k", &get_GovSteamIEEE1_k); + get_map.emplace("GovSteamIEEE1.k1", &get_GovSteamIEEE1_k1); + get_map.emplace("GovSteamIEEE1.k2", &get_GovSteamIEEE1_k2); + get_map.emplace("GovSteamIEEE1.k3", &get_GovSteamIEEE1_k3); + get_map.emplace("GovSteamIEEE1.k4", &get_GovSteamIEEE1_k4); + get_map.emplace("GovSteamIEEE1.k5", &get_GovSteamIEEE1_k5); + get_map.emplace("GovSteamIEEE1.k6", &get_GovSteamIEEE1_k6); + get_map.emplace("GovSteamIEEE1.k7", &get_GovSteamIEEE1_k7); + get_map.emplace("GovSteamIEEE1.k8", &get_GovSteamIEEE1_k8); + get_map.emplace("GovSteamIEEE1.mwbase", &get_GovSteamIEEE1_mwbase); + get_map.emplace("GovSteamIEEE1.pmax", &get_GovSteamIEEE1_pmax); + get_map.emplace("GovSteamIEEE1.pmin", &get_GovSteamIEEE1_pmin); + get_map.emplace("GovSteamIEEE1.t1", &get_GovSteamIEEE1_t1); + get_map.emplace("GovSteamIEEE1.t2", &get_GovSteamIEEE1_t2); + get_map.emplace("GovSteamIEEE1.t3", &get_GovSteamIEEE1_t3); + get_map.emplace("GovSteamIEEE1.t4", &get_GovSteamIEEE1_t4); + get_map.emplace("GovSteamIEEE1.t5", &get_GovSteamIEEE1_t5); + get_map.emplace("GovSteamIEEE1.t6", &get_GovSteamIEEE1_t6); + get_map.emplace("GovSteamIEEE1.t7", &get_GovSteamIEEE1_t7); + get_map.emplace("GovSteamIEEE1.uc", &get_GovSteamIEEE1_uc); + get_map.emplace("GovSteamIEEE1.uo", &get_GovSteamIEEE1_uo); } void GovSteamIEEE1::addClassGetFnsToMap(std::map& get_map) const @@ -744,11 +776,25 @@ void GovSteamIEEE1::addEnumGetFnsToMap(std::map& get_ TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamIEEE1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamIEEE1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamIEEE1::declare() { return BaseClassDefiner(GovSteamIEEE1::addConstructToMap, GovSteamIEEE1::addPrimitiveAssignFnsToMap, GovSteamIEEE1::addClassAssignFnsToMap, GovSteamIEEE1::debugName); } +std::map GovSteamIEEE1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamIEEE1_factory() diff --git a/CGMES_3.0.0/GovSteamIEEE1.hpp b/CGMES_3.0.0/GovSteamIEEE1.hpp index f84469038..50203e922 100644 --- a/CGMES_3.0.0/GovSteamIEEE1.hpp +++ b/CGMES_3.0.0/GovSteamIEEE1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Float.hpp" #include "PU.hpp" @@ -94,8 +95,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -103,7 +111,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamIEEE1_factory(); diff --git a/CGMES_3.0.0/GovSteamSGO.cpp b/CGMES_3.0.0/GovSteamSGO.cpp index 8b1ecdec7..61765320f 100644 --- a/CGMES_3.0.0/GovSteamSGO.cpp +++ b/CGMES_3.0.0/GovSteamSGO.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GovSteamSGO(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GovSteamSGO.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.pmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "GovSteamSGO.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + GovSteamSGO::GovSteamSGO() {} GovSteamSGO::~GovSteamSGO() {} -static const std::list PossibleProfilesForClass = +const std::list& GovSteamSGO::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GovSteamSGO::getClassNamespaceUrl() const { - { "cim:GovSteamSGO.k1", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.k2", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.k3", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.mwbase", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.pmax", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.pmin", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t1", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t2", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t3", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t4", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t5", { CGMESProfile::DY, } }, - { "cim:GovSteamSGO.t6", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GovSteamSGO::getPossibleProfilesForClass() const +const std::string& GovSteamSGO::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GovSteamSGO::getPossibleProfilesForAttributes() const +const std::list& GovSteamSGO::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GovSteamSGO::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GovSteamSGO::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GovSteamSGO::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GovSteamSGO_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* GovSteamSGO::debugString() const void GovSteamSGO::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GovSteamSGO", &GovSteamSGO_factory); + factory_map.emplace("GovSteamSGO", &GovSteamSGO_factory); } void GovSteamSGO::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GovSteamSGO.k1", &assign_GovSteamSGO_k1); - assign_map.emplace("cim:GovSteamSGO.k2", &assign_GovSteamSGO_k2); - assign_map.emplace("cim:GovSteamSGO.k3", &assign_GovSteamSGO_k3); - assign_map.emplace("cim:GovSteamSGO.mwbase", &assign_GovSteamSGO_mwbase); - assign_map.emplace("cim:GovSteamSGO.pmax", &assign_GovSteamSGO_pmax); - assign_map.emplace("cim:GovSteamSGO.pmin", &assign_GovSteamSGO_pmin); - assign_map.emplace("cim:GovSteamSGO.t1", &assign_GovSteamSGO_t1); - assign_map.emplace("cim:GovSteamSGO.t2", &assign_GovSteamSGO_t2); - assign_map.emplace("cim:GovSteamSGO.t3", &assign_GovSteamSGO_t3); - assign_map.emplace("cim:GovSteamSGO.t4", &assign_GovSteamSGO_t4); - assign_map.emplace("cim:GovSteamSGO.t5", &assign_GovSteamSGO_t5); - assign_map.emplace("cim:GovSteamSGO.t6", &assign_GovSteamSGO_t6); + assign_map.emplace("GovSteamSGO.k1", &assign_GovSteamSGO_k1); + assign_map.emplace("GovSteamSGO.k2", &assign_GovSteamSGO_k2); + assign_map.emplace("GovSteamSGO.k3", &assign_GovSteamSGO_k3); + assign_map.emplace("GovSteamSGO.mwbase", &assign_GovSteamSGO_mwbase); + assign_map.emplace("GovSteamSGO.pmax", &assign_GovSteamSGO_pmax); + assign_map.emplace("GovSteamSGO.pmin", &assign_GovSteamSGO_pmin); + assign_map.emplace("GovSteamSGO.t1", &assign_GovSteamSGO_t1); + assign_map.emplace("GovSteamSGO.t2", &assign_GovSteamSGO_t2); + assign_map.emplace("GovSteamSGO.t3", &assign_GovSteamSGO_t3); + assign_map.emplace("GovSteamSGO.t4", &assign_GovSteamSGO_t4); + assign_map.emplace("GovSteamSGO.t5", &assign_GovSteamSGO_t5); + assign_map.emplace("GovSteamSGO.t6", &assign_GovSteamSGO_t6); } void GovSteamSGO::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void GovSteamSGO::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GovSteamSGO.k1", &get_GovSteamSGO_k1); - get_map.emplace("cim:GovSteamSGO.k2", &get_GovSteamSGO_k2); - get_map.emplace("cim:GovSteamSGO.k3", &get_GovSteamSGO_k3); - get_map.emplace("cim:GovSteamSGO.mwbase", &get_GovSteamSGO_mwbase); - get_map.emplace("cim:GovSteamSGO.pmax", &get_GovSteamSGO_pmax); - get_map.emplace("cim:GovSteamSGO.pmin", &get_GovSteamSGO_pmin); - get_map.emplace("cim:GovSteamSGO.t1", &get_GovSteamSGO_t1); - get_map.emplace("cim:GovSteamSGO.t2", &get_GovSteamSGO_t2); - get_map.emplace("cim:GovSteamSGO.t3", &get_GovSteamSGO_t3); - get_map.emplace("cim:GovSteamSGO.t4", &get_GovSteamSGO_t4); - get_map.emplace("cim:GovSteamSGO.t5", &get_GovSteamSGO_t5); - get_map.emplace("cim:GovSteamSGO.t6", &get_GovSteamSGO_t6); + get_map.emplace("GovSteamSGO.k1", &get_GovSteamSGO_k1); + get_map.emplace("GovSteamSGO.k2", &get_GovSteamSGO_k2); + get_map.emplace("GovSteamSGO.k3", &get_GovSteamSGO_k3); + get_map.emplace("GovSteamSGO.mwbase", &get_GovSteamSGO_mwbase); + get_map.emplace("GovSteamSGO.pmax", &get_GovSteamSGO_pmax); + get_map.emplace("GovSteamSGO.pmin", &get_GovSteamSGO_pmin); + get_map.emplace("GovSteamSGO.t1", &get_GovSteamSGO_t1); + get_map.emplace("GovSteamSGO.t2", &get_GovSteamSGO_t2); + get_map.emplace("GovSteamSGO.t3", &get_GovSteamSGO_t3); + get_map.emplace("GovSteamSGO.t4", &get_GovSteamSGO_t4); + get_map.emplace("GovSteamSGO.t5", &get_GovSteamSGO_t5); + get_map.emplace("GovSteamSGO.t6", &get_GovSteamSGO_t6); } void GovSteamSGO::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void GovSteamSGO::addEnumGetFnsToMap(std::map& get_ma TurbineGovernorDynamics::addEnumGetFnsToMap(get_map); } +bool GovSteamSGO::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GovSteamSGO" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GovSteamSGO::declare() { return BaseClassDefiner(GovSteamSGO::addConstructToMap, GovSteamSGO::addPrimitiveAssignFnsToMap, GovSteamSGO::addClassAssignFnsToMap, GovSteamSGO::debugName); } +std::map GovSteamSGO::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GovSteamSGO_factory() diff --git a/CGMES_3.0.0/GovSteamSGO.hpp b/CGMES_3.0.0/GovSteamSGO.hpp index c3b47a50f..da4166186 100644 --- a/CGMES_3.0.0/GovSteamSGO.hpp +++ b/CGMES_3.0.0/GovSteamSGO.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GovSteamSGO_factory(); diff --git a/CGMES_3.0.0/GrossToNetActivePowerCurve.cpp b/CGMES_3.0.0/GrossToNetActivePowerCurve.cpp index 8e293b959..5d070c8e0 100644 --- a/CGMES_3.0.0/GrossToNetActivePowerCurve.cpp +++ b/CGMES_3.0.0/GrossToNetActivePowerCurve.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GrossToNetActivePowerCurve(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GrossToNetActivePowerCurve.GeneratingUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + GrossToNetActivePowerCurve::GrossToNetActivePowerCurve() : GeneratingUnit(nullptr) {} GrossToNetActivePowerCurve::~GrossToNetActivePowerCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& GrossToNetActivePowerCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GrossToNetActivePowerCurve::getClassNamespaceUrl() const { - { "cim:GrossToNetActivePowerCurve.GeneratingUnit", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GrossToNetActivePowerCurve::getPossibleProfilesForClass() const +const std::string& GrossToNetActivePowerCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GrossToNetActivePowerCurve::getPossibleProfilesForAttributes() const +const std::list& GrossToNetActivePowerCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GrossToNetActivePowerCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GrossToNetActivePowerCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GrossToNetActivePowerCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeneratingUnit_GrossToNetActivePowerCurves(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* GrossToNetActivePowerCurve::debugString() const void GrossToNetActivePowerCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GrossToNetActivePowerCurve", &GrossToNetActivePowerCurve_factory); + factory_map.emplace("GrossToNetActivePowerCurve", &GrossToNetActivePowerCurve_factory); } void GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GrossToNetActivePowerCurve.GeneratingUnit", &assign_GrossToNetActivePowerCurve_GeneratingUnit); + assign_map.emplace("GrossToNetActivePowerCurve.GeneratingUnit", &assign_GrossToNetActivePowerCurve_GeneratingUnit); } void GrossToNetActivePowerCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void GrossToNetActivePowerCurve::addPrimitiveGetFnsToMap(std::map& get_map) const { Curve::addClassGetFnsToMap(get_map); - get_map.emplace("cim:GrossToNetActivePowerCurve.GeneratingUnit", &get_GrossToNetActivePowerCurve_GeneratingUnit); + get_map.emplace("GrossToNetActivePowerCurve.GeneratingUnit", &get_GrossToNetActivePowerCurve_GeneratingUnit); } void GrossToNetActivePowerCurve::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void GrossToNetActivePowerCurve::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner GrossToNetActivePowerCurve::declare() { return BaseClassDefiner(GrossToNetActivePowerCurve::addConstructToMap, GrossToNetActivePowerCurve::addPrimitiveAssignFnsToMap, GrossToNetActivePowerCurve::addClassAssignFnsToMap, GrossToNetActivePowerCurve::debugName); } +std::map GrossToNetActivePowerCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GrossToNetActivePowerCurve_factory() diff --git a/CGMES_3.0.0/GrossToNetActivePowerCurve.hpp b/CGMES_3.0.0/GrossToNetActivePowerCurve.hpp index 90721eb58..211c0d1dc 100644 --- a/CGMES_3.0.0/GrossToNetActivePowerCurve.hpp +++ b/CGMES_3.0.0/GrossToNetActivePowerCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GrossToNetActivePowerCurve_factory(); diff --git a/CGMES_3.0.0/Ground.cpp b/CGMES_3.0.0/Ground.cpp index e2e2a0868..474fcbc90 100644 --- a/CGMES_3.0.0/Ground.cpp +++ b/CGMES_3.0.0/Ground.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Ground(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Ground::Ground() {} Ground::~Ground() {} -static const std::list PossibleProfilesForClass = +const std::list& Ground::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Ground::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Ground::getPossibleProfilesForClass() const +const std::string& Ground::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Ground::getPossibleProfilesForAttributes() const +const std::list& Ground::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Ground::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Ground::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Ground::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Ground::debugName[] = "Ground"; @@ -46,7 +78,7 @@ const char* Ground::debugString() const void Ground::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Ground", &Ground_factory); + factory_map.emplace("Ground", &Ground_factory); } void Ground::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Ground::addEnumGetFnsToMap(std::map& get_map) co ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Ground::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Ground" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Ground::declare() { return BaseClassDefiner(Ground::addConstructToMap, Ground::addPrimitiveAssignFnsToMap, Ground::addClassAssignFnsToMap, Ground::debugName); } +std::map Ground::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Ground_factory() diff --git a/CGMES_3.0.0/Ground.hpp b/CGMES_3.0.0/Ground.hpp index 56bd33323..0d91fea23 100644 --- a/CGMES_3.0.0/Ground.hpp +++ b/CGMES_3.0.0/Ground.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Ground_factory(); diff --git a/CGMES_3.0.0/GroundDisconnector.cpp b/CGMES_3.0.0/GroundDisconnector.cpp index 1926b56f9..e60dc14c1 100644 --- a/CGMES_3.0.0/GroundDisconnector.cpp +++ b/CGMES_3.0.0/GroundDisconnector.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GroundDisconnector(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + GroundDisconnector::GroundDisconnector() {} GroundDisconnector::~GroundDisconnector() {} -static const std::list PossibleProfilesForClass = +const std::list& GroundDisconnector::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GroundDisconnector::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GroundDisconnector::getPossibleProfilesForClass() const +const std::string& GroundDisconnector::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GroundDisconnector::getPossibleProfilesForAttributes() const +const std::list& GroundDisconnector::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GroundDisconnector::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GroundDisconnector::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GroundDisconnector::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char GroundDisconnector::debugName[] = "GroundDisconnector"; @@ -47,7 +79,7 @@ const char* GroundDisconnector::debugString() const void GroundDisconnector::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GroundDisconnector", &GroundDisconnector_factory); + factory_map.emplace("GroundDisconnector", &GroundDisconnector_factory); } void GroundDisconnector::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void GroundDisconnector::addEnumGetFnsToMap(std::map& Switch::addEnumGetFnsToMap(get_map); } +bool GroundDisconnector::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GroundDisconnector" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GroundDisconnector::declare() { return BaseClassDefiner(GroundDisconnector::addConstructToMap, GroundDisconnector::addPrimitiveAssignFnsToMap, GroundDisconnector::addClassAssignFnsToMap, GroundDisconnector::debugName); } +std::map GroundDisconnector::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GroundDisconnector_factory() diff --git a/CGMES_3.0.0/GroundDisconnector.hpp b/CGMES_3.0.0/GroundDisconnector.hpp index ccf2b2c27..69caa93ce 100644 --- a/CGMES_3.0.0/GroundDisconnector.hpp +++ b/CGMES_3.0.0/GroundDisconnector.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GroundDisconnector_factory(); diff --git a/CGMES_3.0.0/GroundingImpedance.cpp b/CGMES_3.0.0/GroundingImpedance.cpp index 2063f9402..e2753f024 100644 --- a/CGMES_3.0.0/GroundingImpedance.cpp +++ b/CGMES_3.0.0/GroundingImpedance.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + GroundingImpedance(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "GroundingImpedance.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + GroundingImpedance::GroundingImpedance() {} GroundingImpedance::~GroundingImpedance() {} -static const std::list PossibleProfilesForClass = +const std::list& GroundingImpedance::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& GroundingImpedance::getClassNamespaceUrl() const { - { "cim:GroundingImpedance.x", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -GroundingImpedance::getPossibleProfilesForClass() const +const std::string& GroundingImpedance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -GroundingImpedance::getPossibleProfilesForAttributes() const +const std::list& GroundingImpedance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EarthFaultCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& GroundingImpedance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& GroundingImpedance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& GroundingImpedance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GroundingImpedance_x(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* GroundingImpedance::debugString() const void GroundingImpedance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:GroundingImpedance", &GroundingImpedance_factory); + factory_map.emplace("GroundingImpedance", &GroundingImpedance_factory); } void GroundingImpedance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:GroundingImpedance.x", &assign_GroundingImpedance_x); + assign_map.emplace("GroundingImpedance.x", &assign_GroundingImpedance_x); } void GroundingImpedance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -92,7 +124,7 @@ void GroundingImpedance::addClassAssignFnsToMap(std::unordered_map& get_map) const { EarthFaultCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:GroundingImpedance.x", &get_GroundingImpedance_x); + get_map.emplace("GroundingImpedance.x", &get_GroundingImpedance_x); } void GroundingImpedance::addClassGetFnsToMap(std::map& get_map) const @@ -105,11 +137,25 @@ void GroundingImpedance::addEnumGetFnsToMap(std::map& EarthFaultCompensator::addEnumGetFnsToMap(get_map); } +bool GroundingImpedance::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "GroundingImpedance" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner GroundingImpedance::declare() { return BaseClassDefiner(GroundingImpedance::addConstructToMap, GroundingImpedance::addPrimitiveAssignFnsToMap, GroundingImpedance::addClassAssignFnsToMap, GroundingImpedance::debugName); } +std::map GroundingImpedance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EarthFaultCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* GroundingImpedance_factory() diff --git a/CGMES_3.0.0/GroundingImpedance.hpp b/CGMES_3.0.0/GroundingImpedance.hpp index ad05b5aaa..f0d8f26e9 100644 --- a/CGMES_3.0.0/GroundingImpedance.hpp +++ b/CGMES_3.0.0/GroundingImpedance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EarthFaultCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* GroundingImpedance_factory(); diff --git a/CGMES_3.0.0/HVDCDynamics.cpp b/CGMES_3.0.0/HVDCDynamics.cpp index 6d323a3e9..44c7a5a60 100644 --- a/CGMES_3.0.0/HVDCDynamics.cpp +++ b/CGMES_3.0.0/HVDCDynamics.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HVDCDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + HVDCDynamics::HVDCDynamics() {} HVDCDynamics::~HVDCDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& HVDCDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HVDCDynamics::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HVDCDynamics::getPossibleProfilesForClass() const +const std::string& HVDCDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HVDCDynamics::getPossibleProfilesForAttributes() const +const std::list& HVDCDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HVDCDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HVDCDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HVDCDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char HVDCDynamics::debugName[] = "HVDCDynamics"; @@ -46,7 +78,7 @@ const char* HVDCDynamics::debugString() const void HVDCDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HVDCDynamics", &HVDCDynamics_factory); + factory_map.emplace("HVDCDynamics", &HVDCDynamics_factory); } void HVDCDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void HVDCDynamics::addEnumGetFnsToMap(std::map& get_m DynamicsFunctionBlock::addEnumGetFnsToMap(get_map); } +bool HVDCDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HVDCDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner HVDCDynamics::declare() { return BaseClassDefiner(HVDCDynamics::addConstructToMap, HVDCDynamics::addPrimitiveAssignFnsToMap, HVDCDynamics::addClassAssignFnsToMap, HVDCDynamics::debugName); } +std::map HVDCDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HVDCDynamics_factory() diff --git a/CGMES_3.0.0/HVDCDynamics.hpp b/CGMES_3.0.0/HVDCDynamics.hpp index de36667a8..a22eed027 100644 --- a/CGMES_3.0.0/HVDCDynamics.hpp +++ b/CGMES_3.0.0/HVDCDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HVDCDynamics_factory(); diff --git a/CGMES_3.0.0/HydroGeneratingUnit.cpp b/CGMES_3.0.0/HydroGeneratingUnit.cpp index 89229b9db..64fee7edc 100644 --- a/CGMES_3.0.0/HydroGeneratingUnit.cpp +++ b/CGMES_3.0.0/HydroGeneratingUnit.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroGeneratingUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroGeneratingUnit.HydroPowerPlant", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "HydroGeneratingUnit.dropHeight", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "HydroGeneratingUnit.energyConversionCapability", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "HydroGeneratingUnit.turbineType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroGeneratingUnit::HydroGeneratingUnit() : HydroPowerPlant(nullptr) {} HydroGeneratingUnit::~HydroGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroGeneratingUnit::getClassNamespaceUrl() const { - { "cim:HydroGeneratingUnit.HydroPowerPlant", { CGMESProfile::EQ, } }, - { "cim:HydroGeneratingUnit.dropHeight", { CGMESProfile::EQ, } }, - { "cim:HydroGeneratingUnit.energyConversionCapability", { CGMESProfile::EQ, } }, - { "cim:HydroGeneratingUnit.turbineType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroGeneratingUnit::getPossibleProfilesForClass() const +const std::string& HydroGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& HydroGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroPowerPlant_HydroGeneratingUnits(BaseClass*, BaseClass*); @@ -170,38 +202,44 @@ const char* HydroGeneratingUnit::debugString() const void HydroGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroGeneratingUnit", &HydroGeneratingUnit_factory); + factory_map.emplace("HydroGeneratingUnit", &HydroGeneratingUnit_factory); } void HydroGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroGeneratingUnit.dropHeight", &assign_HydroGeneratingUnit_dropHeight); - assign_map.emplace("cim:HydroGeneratingUnit.energyConversionCapability", &assign_HydroGeneratingUnit_energyConversionCapability); - assign_map.emplace("cim:HydroGeneratingUnit.turbineType", &assign_HydroGeneratingUnit_turbineType); + assign_map.emplace("HydroGeneratingUnit.dropHeight", &assign_HydroGeneratingUnit_dropHeight); + assign_map.emplace("HydroGeneratingUnit.energyConversionCapability", &assign_HydroGeneratingUnit_energyConversionCapability); + assign_map.emplace("HydroGeneratingUnit.turbineType", &assign_HydroGeneratingUnit_turbineType); } void HydroGeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroGeneratingUnit.HydroPowerPlant", &assign_HydroGeneratingUnit_HydroPowerPlant); + assign_map.emplace("HydroGeneratingUnit.HydroPowerPlant", &assign_HydroGeneratingUnit_HydroPowerPlant); } void HydroGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { GeneratingUnit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.dropHeight", &get_HydroGeneratingUnit_dropHeight); + get_map.emplace("HydroGeneratingUnit.dropHeight", &get_HydroGeneratingUnit_dropHeight); } void HydroGeneratingUnit::addClassGetFnsToMap(std::map& get_map) const { GeneratingUnit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.HydroPowerPlant", &get_HydroGeneratingUnit_HydroPowerPlant); + get_map.emplace("HydroGeneratingUnit.HydroPowerPlant", &get_HydroGeneratingUnit_HydroPowerPlant); } void HydroGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const { GeneratingUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:HydroGeneratingUnit.energyConversionCapability", &get_HydroGeneratingUnit_energyConversionCapability); - get_map.emplace("cim:HydroGeneratingUnit.turbineType", &get_HydroGeneratingUnit_turbineType); + get_map.emplace("HydroGeneratingUnit.energyConversionCapability", &get_HydroGeneratingUnit_energyConversionCapability); + get_map.emplace("HydroGeneratingUnit.turbineType", &get_HydroGeneratingUnit_turbineType); +} + +bool HydroGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner HydroGeneratingUnit::declare() @@ -209,6 +247,14 @@ const BaseClassDefiner HydroGeneratingUnit::declare() return BaseClassDefiner(HydroGeneratingUnit::addConstructToMap, HydroGeneratingUnit::addPrimitiveAssignFnsToMap, HydroGeneratingUnit::addClassAssignFnsToMap, HydroGeneratingUnit::debugName); } +std::map HydroGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroGeneratingUnit_factory() diff --git a/CGMES_3.0.0/HydroGeneratingUnit.hpp b/CGMES_3.0.0/HydroGeneratingUnit.hpp index b96a3dfcf..112a24ab6 100644 --- a/CGMES_3.0.0/HydroGeneratingUnit.hpp +++ b/CGMES_3.0.0/HydroGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "HydroEnergyConversionKind.hpp" #include "HydroTurbineKind.hpp" #include "Length.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroGeneratingUnit_factory(); diff --git a/CGMES_3.0.0/HydroPowerPlant.cpp b/CGMES_3.0.0/HydroPowerPlant.cpp index ad177ac88..ca8d826a0 100644 --- a/CGMES_3.0.0/HydroPowerPlant.cpp +++ b/CGMES_3.0.0/HydroPowerPlant.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroPowerPlant(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroPowerPlant.HydroGeneratingUnits", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "HydroPowerPlant.HydroPumps", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "HydroPowerPlant.hydroPlantStorageType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroPowerPlant::HydroPowerPlant() {} HydroPowerPlant::~HydroPowerPlant() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroPowerPlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroPowerPlant::getClassNamespaceUrl() const { - { "cim:HydroPowerPlant.HydroGeneratingUnits", { CGMESProfile::EQ, } }, - { "cim:HydroPowerPlant.HydroPumps", { CGMESProfile::EQ, } }, - { "cim:HydroPowerPlant.hydroPlantStorageType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroPowerPlant::getPossibleProfilesForClass() const +const std::string& HydroPowerPlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroPowerPlant::getPossibleProfilesForAttributes() const +const std::list& HydroPowerPlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroPowerPlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroPowerPlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroPowerPlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroGeneratingUnit_HydroPowerPlant(BaseClass*, BaseClass*); @@ -116,18 +148,18 @@ const char* HydroPowerPlant::debugString() const void HydroPowerPlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroPowerPlant", &HydroPowerPlant_factory); + factory_map.emplace("HydroPowerPlant", &HydroPowerPlant_factory); } void HydroPowerPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPowerPlant.hydroPlantStorageType", &assign_HydroPowerPlant_hydroPlantStorageType); + assign_map.emplace("HydroPowerPlant.hydroPlantStorageType", &assign_HydroPowerPlant_hydroPlantStorageType); } void HydroPowerPlant::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPowerPlant.HydroGeneratingUnits", &assign_HydroPowerPlant_HydroGeneratingUnits); - assign_map.emplace("cim:HydroPowerPlant.HydroPumps", &assign_HydroPowerPlant_HydroPumps); + assign_map.emplace("HydroPowerPlant.HydroGeneratingUnits", &assign_HydroPowerPlant_HydroGeneratingUnits); + assign_map.emplace("HydroPowerPlant.HydroPumps", &assign_HydroPowerPlant_HydroPumps); } void HydroPowerPlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -143,7 +175,13 @@ void HydroPowerPlant::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:HydroPowerPlant.hydroPlantStorageType", &get_HydroPowerPlant_hydroPlantStorageType); + get_map.emplace("HydroPowerPlant.hydroPlantStorageType", &get_HydroPowerPlant_hydroPlantStorageType); +} + +bool HydroPowerPlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroPowerPlant" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner HydroPowerPlant::declare() @@ -151,6 +189,14 @@ const BaseClassDefiner HydroPowerPlant::declare() return BaseClassDefiner(HydroPowerPlant::addConstructToMap, HydroPowerPlant::addPrimitiveAssignFnsToMap, HydroPowerPlant::addClassAssignFnsToMap, HydroPowerPlant::debugName); } +std::map HydroPowerPlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroPowerPlant_factory() diff --git a/CGMES_3.0.0/HydroPowerPlant.hpp b/CGMES_3.0.0/HydroPowerPlant.hpp index ab7712608..dc3babd9d 100644 --- a/CGMES_3.0.0/HydroPowerPlant.hpp +++ b/CGMES_3.0.0/HydroPowerPlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "HydroPlantStorageKind.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroPowerPlant_factory(); diff --git a/CGMES_3.0.0/HydroPump.cpp b/CGMES_3.0.0/HydroPump.cpp index 8d0613e79..f5d6ce4cc 100644 --- a/CGMES_3.0.0/HydroPump.cpp +++ b/CGMES_3.0.0/HydroPump.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + HydroPump(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "HydroPump.HydroPowerPlant", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "HydroPump.RotatingMachine", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + HydroPump::HydroPump() : HydroPowerPlant(nullptr), RotatingMachine(nullptr) {} HydroPump::~HydroPump() {} -static const std::list PossibleProfilesForClass = +const std::list& HydroPump::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& HydroPump::getClassNamespaceUrl() const { - { "cim:HydroPump.HydroPowerPlant", { CGMESProfile::EQ, } }, - { "cim:HydroPump.RotatingMachine", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -HydroPump::getPossibleProfilesForClass() const +const std::string& HydroPump::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -HydroPump::getPossibleProfilesForAttributes() const +const std::list& HydroPump::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& HydroPump::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& HydroPump::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& HydroPump::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_HydroPowerPlant_HydroPumps(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* HydroPump::debugString() const void HydroPump::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:HydroPump", &HydroPump_factory); + factory_map.emplace("HydroPump", &HydroPump_factory); } void HydroPump::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void HydroPump::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:HydroPump.HydroPowerPlant", &assign_HydroPump_HydroPowerPlant); - assign_map.emplace("cim:HydroPump.RotatingMachine", &assign_HydroPump_RotatingMachine); + assign_map.emplace("HydroPump.HydroPowerPlant", &assign_HydroPump_HydroPowerPlant); + assign_map.emplace("HydroPump.RotatingMachine", &assign_HydroPump_RotatingMachine); } void HydroPump::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void HydroPump::addPrimitiveGetFnsToMap(std::map& get void HydroPump::addClassGetFnsToMap(std::map& get_map) const { Equipment::addClassGetFnsToMap(get_map); - get_map.emplace("cim:HydroPump.HydroPowerPlant", &get_HydroPump_HydroPowerPlant); - get_map.emplace("cim:HydroPump.RotatingMachine", &get_HydroPump_RotatingMachine); + get_map.emplace("HydroPump.HydroPowerPlant", &get_HydroPump_HydroPowerPlant); + get_map.emplace("HydroPump.RotatingMachine", &get_HydroPump_RotatingMachine); } void HydroPump::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void HydroPump::addEnumGetFnsToMap(std::map& get_map) Equipment::addEnumGetFnsToMap(get_map); } +bool HydroPump::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "HydroPump" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner HydroPump::declare() { return BaseClassDefiner(HydroPump::addConstructToMap, HydroPump::addPrimitiveAssignFnsToMap, HydroPump::addClassAssignFnsToMap, HydroPump::debugName); } +std::map HydroPump::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* HydroPump_factory() diff --git a/CGMES_3.0.0/HydroPump.hpp b/CGMES_3.0.0/HydroPump.hpp index 9830eee7a..eaac31638 100644 --- a/CGMES_3.0.0/HydroPump.hpp +++ b/CGMES_3.0.0/HydroPump.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* HydroPump_factory(); diff --git a/CGMES_3.0.0/IOPoint.cpp b/CGMES_3.0.0/IOPoint.cpp index aac62ef6a..42c315528 100644 --- a/CGMES_3.0.0/IOPoint.cpp +++ b/CGMES_3.0.0/IOPoint.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + IOPoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + IOPoint::IOPoint() {} IOPoint::~IOPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& IOPoint::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& IOPoint::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -IOPoint::getPossibleProfilesForClass() const +const std::string& IOPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -IOPoint::getPossibleProfilesForAttributes() const +const std::list& IOPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& IOPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& IOPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& IOPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char IOPoint::debugName[] = "IOPoint"; @@ -46,7 +78,7 @@ const char* IOPoint::debugString() const void IOPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:IOPoint", &IOPoint_factory); + factory_map.emplace("IOPoint", &IOPoint_factory); } void IOPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void IOPoint::addEnumGetFnsToMap(std::map& get_map) c IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool IOPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "IOPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner IOPoint::declare() { return BaseClassDefiner(IOPoint::addConstructToMap, IOPoint::addPrimitiveAssignFnsToMap, IOPoint::addClassAssignFnsToMap, IOPoint::debugName); } +std::map IOPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* IOPoint_factory() diff --git a/CGMES_3.0.0/IOPoint.hpp b/CGMES_3.0.0/IOPoint.hpp index 0d08d0c27..97dd893e6 100644 --- a/CGMES_3.0.0/IOPoint.hpp +++ b/CGMES_3.0.0/IOPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* IOPoint_factory(); diff --git a/CGMES_3.0.0/IdentifiedObject.cpp b/CGMES_3.0.0/IdentifiedObject.cpp index 0dd4e5e22..8c11e7530 100644 --- a/CGMES_3.0.0/IdentifiedObject.cpp +++ b/CGMES_3.0.0/IdentifiedObject.cpp @@ -12,46 +12,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + IdentifiedObject(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::GL, + CGMESProfile::OP, + CGMESProfile::SC, + CGMESProfile::SSH, + CGMESProfile::SV, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "IdentifiedObject.DiagramObjects", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "IdentifiedObject.description", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::OP, CGMESProfile::TP, } } }, + { "IdentifiedObject.energyIdentCodeEic", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::TP, } } }, + { "IdentifiedObject.mRID", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::GL, CGMESProfile::OP, CGMESProfile::SC, CGMESProfile::SSH, CGMESProfile::SV, CGMESProfile::TP, } } }, + { "IdentifiedObject.name", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::GL, CGMESProfile::OP, CGMESProfile::SV, CGMESProfile::TP, } } }, + { "IdentifiedObject.shortName", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + IdentifiedObject::IdentifiedObject() {} IdentifiedObject::~IdentifiedObject() {} -static const std::list PossibleProfilesForClass = +const std::list& IdentifiedObject::getAttributeNames() const { - CGMESProfile::DL, - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::GL, - CGMESProfile::OP, - CGMESProfile::SC, - CGMESProfile::SSH, - CGMESProfile::SV, - CGMESProfile::TP, -}; - -static const std::map> PossibleProfilesForAttributes = + return getCimClassDetails().AttrNamesList; +} + +const std::string& IdentifiedObject::getClassNamespaceUrl() const { - { "cim:IdentifiedObject.DiagramObjects", { CGMESProfile::DL, } }, - { "cim:IdentifiedObject.description", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::OP, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.energyIdentCodeEic", { CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.mRID", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::GL, CGMESProfile::OP, CGMESProfile::SC, CGMESProfile::SSH, CGMESProfile::SV, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.name", { CGMESProfile::DL, CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::GL, CGMESProfile::OP, CGMESProfile::SV, CGMESProfile::TP, } }, - { "cim:IdentifiedObject.shortName", { CGMESProfile::EQ, CGMESProfile::EQBD, CGMESProfile::TP, } }, -}; - -std::list -IdentifiedObject::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& IdentifiedObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -IdentifiedObject::getPossibleProfilesForAttributes() const +const std::list& IdentifiedObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& IdentifiedObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& IdentifiedObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& IdentifiedObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_IdentifiedObject(BaseClass*, BaseClass*); @@ -225,31 +257,31 @@ const char* IdentifiedObject::debugString() const void IdentifiedObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:IdentifiedObject", &IdentifiedObject_factory); + factory_map.emplace("IdentifiedObject", &IdentifiedObject_factory); } void IdentifiedObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:IdentifiedObject.description", &assign_IdentifiedObject_description); - assign_map.emplace("cim:IdentifiedObject.energyIdentCodeEic", &assign_IdentifiedObject_energyIdentCodeEic); - assign_map.emplace("cim:IdentifiedObject.mRID", &assign_IdentifiedObject_mRID); - assign_map.emplace("cim:IdentifiedObject.name", &assign_IdentifiedObject_name); - assign_map.emplace("cim:IdentifiedObject.shortName", &assign_IdentifiedObject_shortName); + assign_map.emplace("IdentifiedObject.description", &assign_IdentifiedObject_description); + assign_map.emplace("IdentifiedObject.energyIdentCodeEic", &assign_IdentifiedObject_energyIdentCodeEic); + assign_map.emplace("IdentifiedObject.mRID", &assign_IdentifiedObject_mRID); + assign_map.emplace("IdentifiedObject.name", &assign_IdentifiedObject_name); + assign_map.emplace("IdentifiedObject.shortName", &assign_IdentifiedObject_shortName); } void IdentifiedObject::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:IdentifiedObject.DiagramObjects", &assign_IdentifiedObject_DiagramObjects); + assign_map.emplace("IdentifiedObject.DiagramObjects", &assign_IdentifiedObject_DiagramObjects); } void IdentifiedObject::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:IdentifiedObject.description", &get_IdentifiedObject_description); - get_map.emplace("cim:IdentifiedObject.energyIdentCodeEic", &get_IdentifiedObject_energyIdentCodeEic); - get_map.emplace("cim:IdentifiedObject.mRID", &get_IdentifiedObject_mRID); - get_map.emplace("cim:IdentifiedObject.name", &get_IdentifiedObject_name); - get_map.emplace("cim:IdentifiedObject.shortName", &get_IdentifiedObject_shortName); + get_map.emplace("IdentifiedObject.description", &get_IdentifiedObject_description); + get_map.emplace("IdentifiedObject.energyIdentCodeEic", &get_IdentifiedObject_energyIdentCodeEic); + get_map.emplace("IdentifiedObject.mRID", &get_IdentifiedObject_mRID); + get_map.emplace("IdentifiedObject.name", &get_IdentifiedObject_name); + get_map.emplace("IdentifiedObject.shortName", &get_IdentifiedObject_shortName); } void IdentifiedObject::addClassGetFnsToMap(std::map& get_map) const @@ -262,11 +294,25 @@ void IdentifiedObject::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool IdentifiedObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "IdentifiedObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner IdentifiedObject::declare() { return BaseClassDefiner(IdentifiedObject::addConstructToMap, IdentifiedObject::addPrimitiveAssignFnsToMap, IdentifiedObject::addClassAssignFnsToMap, IdentifiedObject::debugName); } +std::map IdentifiedObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* IdentifiedObject_factory() diff --git a/CGMES_3.0.0/IdentifiedObject.hpp b/CGMES_3.0.0/IdentifiedObject.hpp index f1ec3230b..20b5dd00c 100644 --- a/CGMES_3.0.0/IdentifiedObject.hpp +++ b/CGMES_3.0.0/IdentifiedObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* IdentifiedObject_factory(); diff --git a/CGMES_3.0.0/Jumper.cpp b/CGMES_3.0.0/Jumper.cpp index 0fa288287..901313419 100644 --- a/CGMES_3.0.0/Jumper.cpp +++ b/CGMES_3.0.0/Jumper.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Jumper(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Jumper::Jumper() {} Jumper::~Jumper() {} -static const std::list PossibleProfilesForClass = +const std::list& Jumper::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Jumper::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Jumper::getPossibleProfilesForClass() const +const std::string& Jumper::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Jumper::getPossibleProfilesForAttributes() const +const std::list& Jumper::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Jumper::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Jumper::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Jumper::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Jumper::debugName[] = "Jumper"; @@ -47,7 +79,7 @@ const char* Jumper::debugString() const void Jumper::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Jumper", &Jumper_factory); + factory_map.emplace("Jumper", &Jumper_factory); } void Jumper::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Jumper::addEnumGetFnsToMap(std::map& get_map) co Switch::addEnumGetFnsToMap(get_map); } +bool Jumper::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Jumper" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Jumper::declare() { return BaseClassDefiner(Jumper::addConstructToMap, Jumper::addPrimitiveAssignFnsToMap, Jumper::addClassAssignFnsToMap, Jumper::debugName); } +std::map Jumper::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Jumper_factory() diff --git a/CGMES_3.0.0/Jumper.hpp b/CGMES_3.0.0/Jumper.hpp index 687030d15..a182a4b59 100644 --- a/CGMES_3.0.0/Jumper.hpp +++ b/CGMES_3.0.0/Jumper.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Jumper_factory(); diff --git a/CGMES_3.0.0/Junction.cpp b/CGMES_3.0.0/Junction.cpp index 2b8c345c2..f635fa79f 100644 --- a/CGMES_3.0.0/Junction.cpp +++ b/CGMES_3.0.0/Junction.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Junction(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Junction::Junction() {} Junction::~Junction() {} -static const std::list PossibleProfilesForClass = +const std::list& Junction::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Junction::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Junction::getPossibleProfilesForClass() const +const std::string& Junction::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Junction::getPossibleProfilesForAttributes() const +const std::list& Junction::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Connector::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Junction::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Junction::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Junction::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Junction::debugName[] = "Junction"; @@ -47,7 +79,7 @@ const char* Junction::debugString() const void Junction::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Junction", &Junction_factory); + factory_map.emplace("Junction", &Junction_factory); } void Junction::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void Junction::addEnumGetFnsToMap(std::map& get_map) Connector::addEnumGetFnsToMap(get_map); } +bool Junction::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Junction" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Junction::declare() { return BaseClassDefiner(Junction::addConstructToMap, Junction::addPrimitiveAssignFnsToMap, Junction::addClassAssignFnsToMap, Junction::debugName); } +std::map Junction::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Connector::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Junction_factory() diff --git a/CGMES_3.0.0/Junction.hpp b/CGMES_3.0.0/Junction.hpp index 4f48dfc33..36e05a59e 100644 --- a/CGMES_3.0.0/Junction.hpp +++ b/CGMES_3.0.0/Junction.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Connector.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Junction_factory(); diff --git a/CGMES_3.0.0/Limit.cpp b/CGMES_3.0.0/Limit.cpp index 42f8671c4..c6bd2d19d 100644 --- a/CGMES_3.0.0/Limit.cpp +++ b/CGMES_3.0.0/Limit.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Limit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Limit::Limit() {} Limit::~Limit() {} -static const std::list PossibleProfilesForClass = +const std::list& Limit::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Limit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Limit::getPossibleProfilesForClass() const +const std::string& Limit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Limit::getPossibleProfilesForAttributes() const +const std::list& Limit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Limit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Limit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Limit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Limit::debugName[] = "Limit"; @@ -46,7 +78,7 @@ const char* Limit::debugString() const void Limit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Limit", &Limit_factory); + factory_map.emplace("Limit", &Limit_factory); } void Limit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Limit::addEnumGetFnsToMap(std::map& get_map) con IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Limit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Limit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Limit::declare() { return BaseClassDefiner(Limit::addConstructToMap, Limit::addPrimitiveAssignFnsToMap, Limit::addClassAssignFnsToMap, Limit::debugName); } +std::map Limit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Limit_factory() diff --git a/CGMES_3.0.0/Limit.hpp b/CGMES_3.0.0/Limit.hpp index 76b2b4799..80c9039b8 100644 --- a/CGMES_3.0.0/Limit.hpp +++ b/CGMES_3.0.0/Limit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Limit_factory(); diff --git a/CGMES_3.0.0/LimitSet.cpp b/CGMES_3.0.0/LimitSet.cpp index b21ecaa5d..c18194b29 100644 --- a/CGMES_3.0.0/LimitSet.cpp +++ b/CGMES_3.0.0/LimitSet.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LimitSet(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LimitSet.isPercentageLimits", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + LimitSet::LimitSet() {} LimitSet::~LimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& LimitSet::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LimitSet::getClassNamespaceUrl() const { - { "cim:LimitSet.isPercentageLimits", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LimitSet::getPossibleProfilesForClass() const +const std::string& LimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LimitSet::getPossibleProfilesForAttributes() const +const std::list& LimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LimitSet_isPercentageLimits(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* LimitSet::debugString() const void LimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LimitSet", &LimitSet_factory); + factory_map.emplace("LimitSet", &LimitSet_factory); } void LimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LimitSet.isPercentageLimits", &assign_LimitSet_isPercentageLimits); + assign_map.emplace("LimitSet.isPercentageLimits", &assign_LimitSet_isPercentageLimits); } void LimitSet::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void LimitSet::addClassAssignFnsToMap(std::unordered_map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LimitSet.isPercentageLimits", &get_LimitSet_isPercentageLimits); + get_map.emplace("LimitSet.isPercentageLimits", &get_LimitSet_isPercentageLimits); } void LimitSet::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void LimitSet::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LimitSet::declare() { return BaseClassDefiner(LimitSet::addConstructToMap, LimitSet::addPrimitiveAssignFnsToMap, LimitSet::addClassAssignFnsToMap, LimitSet::debugName); } +std::map LimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LimitSet_factory() diff --git a/CGMES_3.0.0/LimitSet.hpp b/CGMES_3.0.0/LimitSet.hpp index ee31c5731..9090fb55e 100644 --- a/CGMES_3.0.0/LimitSet.hpp +++ b/CGMES_3.0.0/LimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LimitSet_factory(); diff --git a/CGMES_3.0.0/Line.cpp b/CGMES_3.0.0/Line.cpp index 5702fc5b8..3567454bf 100644 --- a/CGMES_3.0.0/Line.cpp +++ b/CGMES_3.0.0/Line.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Line(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Line.Region", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + Line::Line() : Region(nullptr) {} Line::~Line() {} -static const std::list PossibleProfilesForClass = +const std::list& Line::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Line::getClassNamespaceUrl() const { - { "cim:Line.Region", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Line::getPossibleProfilesForClass() const +const std::string& Line::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Line::getPossibleProfilesForAttributes() const +const std::list& Line::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Line::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Line::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Line::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubGeographicalRegion_Lines(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* Line::debugString() const void Line::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Line", &Line_factory); + factory_map.emplace("Line", &Line_factory); } void Line::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void Line::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Line.Region", &assign_Line_Region); + assign_map.emplace("Line.Region", &assign_Line_Region); } void Line::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void Line::addPrimitiveGetFnsToMap(std::map& get_map) void Line::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Line.Region", &get_Line_Region); + get_map.emplace("Line.Region", &get_Line_Region); } void Line::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void Line::addEnumGetFnsToMap(std::map& get_map) cons EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Line::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Line" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Line::declare() { return BaseClassDefiner(Line::addConstructToMap, Line::addPrimitiveAssignFnsToMap, Line::addClassAssignFnsToMap, Line::debugName); } +std::map Line::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Line_factory() diff --git a/CGMES_3.0.0/Line.hpp b/CGMES_3.0.0/Line.hpp index 56bc5e34e..43976dc8d 100644 --- a/CGMES_3.0.0/Line.hpp +++ b/CGMES_3.0.0/Line.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Line_factory(); diff --git a/CGMES_3.0.0/LinearShuntCompensator.cpp b/CGMES_3.0.0/LinearShuntCompensator.cpp index 080f13e13..7f3b309bc 100644 --- a/CGMES_3.0.0/LinearShuntCompensator.cpp +++ b/CGMES_3.0.0/LinearShuntCompensator.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LinearShuntCompensator(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LinearShuntCompensator.b0PerSection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "LinearShuntCompensator.bPerSection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LinearShuntCompensator.g0PerSection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "LinearShuntCompensator.gPerSection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LinearShuntCompensator::LinearShuntCompensator() {} LinearShuntCompensator::~LinearShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& LinearShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LinearShuntCompensator::getClassNamespaceUrl() const { - { "cim:LinearShuntCompensator.b0PerSection", { CGMESProfile::SC, } }, - { "cim:LinearShuntCompensator.bPerSection", { CGMESProfile::EQ, } }, - { "cim:LinearShuntCompensator.g0PerSection", { CGMESProfile::SC, } }, - { "cim:LinearShuntCompensator.gPerSection", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LinearShuntCompensator::getPossibleProfilesForClass() const +const std::string& LinearShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LinearShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& LinearShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ShuntCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LinearShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LinearShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LinearShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LinearShuntCompensator_b0PerSection(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -168,15 +200,15 @@ const char* LinearShuntCompensator::debugString() const void LinearShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LinearShuntCompensator", &LinearShuntCompensator_factory); + factory_map.emplace("LinearShuntCompensator", &LinearShuntCompensator_factory); } void LinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LinearShuntCompensator.b0PerSection", &assign_LinearShuntCompensator_b0PerSection); - assign_map.emplace("cim:LinearShuntCompensator.bPerSection", &assign_LinearShuntCompensator_bPerSection); - assign_map.emplace("cim:LinearShuntCompensator.g0PerSection", &assign_LinearShuntCompensator_g0PerSection); - assign_map.emplace("cim:LinearShuntCompensator.gPerSection", &assign_LinearShuntCompensator_gPerSection); + assign_map.emplace("LinearShuntCompensator.b0PerSection", &assign_LinearShuntCompensator_b0PerSection); + assign_map.emplace("LinearShuntCompensator.bPerSection", &assign_LinearShuntCompensator_bPerSection); + assign_map.emplace("LinearShuntCompensator.g0PerSection", &assign_LinearShuntCompensator_g0PerSection); + assign_map.emplace("LinearShuntCompensator.gPerSection", &assign_LinearShuntCompensator_gPerSection); } void LinearShuntCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -186,10 +218,10 @@ void LinearShuntCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ShuntCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LinearShuntCompensator.b0PerSection", &get_LinearShuntCompensator_b0PerSection); - get_map.emplace("cim:LinearShuntCompensator.bPerSection", &get_LinearShuntCompensator_bPerSection); - get_map.emplace("cim:LinearShuntCompensator.g0PerSection", &get_LinearShuntCompensator_g0PerSection); - get_map.emplace("cim:LinearShuntCompensator.gPerSection", &get_LinearShuntCompensator_gPerSection); + get_map.emplace("LinearShuntCompensator.b0PerSection", &get_LinearShuntCompensator_b0PerSection); + get_map.emplace("LinearShuntCompensator.bPerSection", &get_LinearShuntCompensator_bPerSection); + get_map.emplace("LinearShuntCompensator.g0PerSection", &get_LinearShuntCompensator_g0PerSection); + get_map.emplace("LinearShuntCompensator.gPerSection", &get_LinearShuntCompensator_gPerSection); } void LinearShuntCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -202,11 +234,25 @@ void LinearShuntCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner LinearShuntCompensator::declare() { return BaseClassDefiner(LinearShuntCompensator::addConstructToMap, LinearShuntCompensator::addPrimitiveAssignFnsToMap, LinearShuntCompensator::addClassAssignFnsToMap, LinearShuntCompensator::debugName); } +std::map LinearShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ShuntCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LinearShuntCompensator_factory() diff --git a/CGMES_3.0.0/LinearShuntCompensator.hpp b/CGMES_3.0.0/LinearShuntCompensator.hpp index a955c3e9c..2db504468 100644 --- a/CGMES_3.0.0/LinearShuntCompensator.hpp +++ b/CGMES_3.0.0/LinearShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ShuntCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Susceptance.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LinearShuntCompensator_factory(); diff --git a/CGMES_3.0.0/LoadAggregate.cpp b/CGMES_3.0.0/LoadAggregate.cpp index 56bc69716..65552ecdc 100644 --- a/CGMES_3.0.0/LoadAggregate.cpp +++ b/CGMES_3.0.0/LoadAggregate.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadAggregate(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadAggregate.LoadMotor", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadAggregate.LoadStatic", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadAggregate::LoadAggregate() : LoadMotor(nullptr), LoadStatic(nullptr) {} LoadAggregate::~LoadAggregate() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadAggregate::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadAggregate::getClassNamespaceUrl() const { - { "cim:LoadAggregate.LoadMotor", { CGMESProfile::DY, } }, - { "cim:LoadAggregate.LoadStatic", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadAggregate::getPossibleProfilesForClass() const +const std::string& LoadAggregate::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadAggregate::getPossibleProfilesForAttributes() const +const std::list& LoadAggregate::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadAggregate::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadAggregate::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadAggregate::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadMotor_LoadAggregate(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* LoadAggregate::debugString() const void LoadAggregate::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadAggregate", &LoadAggregate_factory); + factory_map.emplace("LoadAggregate", &LoadAggregate_factory); } void LoadAggregate::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void LoadAggregate::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadAggregate.LoadMotor", &assign_LoadAggregate_LoadMotor); - assign_map.emplace("cim:LoadAggregate.LoadStatic", &assign_LoadAggregate_LoadStatic); + assign_map.emplace("LoadAggregate.LoadMotor", &assign_LoadAggregate_LoadMotor); + assign_map.emplace("LoadAggregate.LoadStatic", &assign_LoadAggregate_LoadStatic); } void LoadAggregate::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void LoadAggregate::addEnumGetFnsToMap(std::map& get_ LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadAggregate::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadAggregate" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadAggregate::declare() { return BaseClassDefiner(LoadAggregate::addConstructToMap, LoadAggregate::addPrimitiveAssignFnsToMap, LoadAggregate::addClassAssignFnsToMap, LoadAggregate::debugName); } +std::map LoadAggregate::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadAggregate_factory() diff --git a/CGMES_3.0.0/LoadAggregate.hpp b/CGMES_3.0.0/LoadAggregate.hpp index 4caec6b22..d6d227472 100644 --- a/CGMES_3.0.0/LoadAggregate.hpp +++ b/CGMES_3.0.0/LoadAggregate.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadAggregate_factory(); diff --git a/CGMES_3.0.0/LoadArea.cpp b/CGMES_3.0.0/LoadArea.cpp index 8154b9035..c3f83d58a 100644 --- a/CGMES_3.0.0/LoadArea.cpp +++ b/CGMES_3.0.0/LoadArea.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadArea(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadArea.SubLoadAreas", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadArea::LoadArea() {} LoadArea::~LoadArea() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadArea::getClassNamespaceUrl() const { - { "cim:LoadArea.SubLoadAreas", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadArea::getPossibleProfilesForClass() const +const std::string& LoadArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadArea::getPossibleProfilesForAttributes() const +const std::list& LoadArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyArea::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubLoadArea_LoadArea(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* LoadArea::debugString() const void LoadArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadArea", &LoadArea_factory); + factory_map.emplace("LoadArea", &LoadArea_factory); } void LoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void LoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadArea.SubLoadAreas", &assign_LoadArea_SubLoadAreas); + assign_map.emplace("LoadArea.SubLoadAreas", &assign_LoadArea_SubLoadAreas); } void LoadArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void LoadArea::addEnumGetFnsToMap(std::map& get_map) EnergyArea::addEnumGetFnsToMap(get_map); } +bool LoadArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadArea::declare() { return BaseClassDefiner(LoadArea::addConstructToMap, LoadArea::addPrimitiveAssignFnsToMap, LoadArea::addClassAssignFnsToMap, LoadArea::debugName); } +std::map LoadArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyArea::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadArea_factory() diff --git a/CGMES_3.0.0/LoadArea.hpp b/CGMES_3.0.0/LoadArea.hpp index 9142620cd..0212922f5 100644 --- a/CGMES_3.0.0/LoadArea.hpp +++ b/CGMES_3.0.0/LoadArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyArea.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadArea_factory(); diff --git a/CGMES_3.0.0/LoadBreakSwitch.cpp b/CGMES_3.0.0/LoadBreakSwitch.cpp index 881f3cd8a..606eaf0df 100644 --- a/CGMES_3.0.0/LoadBreakSwitch.cpp +++ b/CGMES_3.0.0/LoadBreakSwitch.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadBreakSwitch(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + LoadBreakSwitch::LoadBreakSwitch() {} LoadBreakSwitch::~LoadBreakSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadBreakSwitch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadBreakSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadBreakSwitch::getPossibleProfilesForClass() const +const std::string& LoadBreakSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadBreakSwitch::getPossibleProfilesForAttributes() const +const std::list& LoadBreakSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ProtectedSwitch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadBreakSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadBreakSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadBreakSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char LoadBreakSwitch::debugName[] = "LoadBreakSwitch"; @@ -47,7 +79,7 @@ const char* LoadBreakSwitch::debugString() const void LoadBreakSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadBreakSwitch", &LoadBreakSwitch_factory); + factory_map.emplace("LoadBreakSwitch", &LoadBreakSwitch_factory); } void LoadBreakSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void LoadBreakSwitch::addEnumGetFnsToMap(std::map& ge ProtectedSwitch::addEnumGetFnsToMap(get_map); } +bool LoadBreakSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadBreakSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadBreakSwitch::declare() { return BaseClassDefiner(LoadBreakSwitch::addConstructToMap, LoadBreakSwitch::addPrimitiveAssignFnsToMap, LoadBreakSwitch::addClassAssignFnsToMap, LoadBreakSwitch::debugName); } +std::map LoadBreakSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ProtectedSwitch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadBreakSwitch_factory() diff --git a/CGMES_3.0.0/LoadBreakSwitch.hpp b/CGMES_3.0.0/LoadBreakSwitch.hpp index e6c20cc50..64a04bd2e 100644 --- a/CGMES_3.0.0/LoadBreakSwitch.hpp +++ b/CGMES_3.0.0/LoadBreakSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ProtectedSwitch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadBreakSwitch_factory(); diff --git a/CGMES_3.0.0/LoadComposite.cpp b/CGMES_3.0.0/LoadComposite.cpp index b1cdac822..33c0aed16 100644 --- a/CGMES_3.0.0/LoadComposite.cpp +++ b/CGMES_3.0.0/LoadComposite.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadComposite(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadComposite.epfd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.epfs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.epvd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.epvs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqfd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqfs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqvd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.eqvs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.h", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.lfac", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadComposite.pfrac", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadComposite::LoadComposite() {} LoadComposite::~LoadComposite() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadComposite::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadComposite::getClassNamespaceUrl() const { - { "cim:LoadComposite.epfd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epfs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epvd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.epvs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqfd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqfs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqvd", { CGMESProfile::DY, } }, - { "cim:LoadComposite.eqvs", { CGMESProfile::DY, } }, - { "cim:LoadComposite.h", { CGMESProfile::DY, } }, - { "cim:LoadComposite.lfac", { CGMESProfile::DY, } }, - { "cim:LoadComposite.pfrac", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadComposite::getPossibleProfilesForClass() const +const std::string& LoadComposite::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadComposite::getPossibleProfilesForAttributes() const +const std::list& LoadComposite::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadComposite::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadComposite::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadComposite::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadComposite_epfd(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* LoadComposite::debugString() const void LoadComposite::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadComposite", &LoadComposite_factory); + factory_map.emplace("LoadComposite", &LoadComposite_factory); } void LoadComposite::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadComposite.epfd", &assign_LoadComposite_epfd); - assign_map.emplace("cim:LoadComposite.epfs", &assign_LoadComposite_epfs); - assign_map.emplace("cim:LoadComposite.epvd", &assign_LoadComposite_epvd); - assign_map.emplace("cim:LoadComposite.epvs", &assign_LoadComposite_epvs); - assign_map.emplace("cim:LoadComposite.eqfd", &assign_LoadComposite_eqfd); - assign_map.emplace("cim:LoadComposite.eqfs", &assign_LoadComposite_eqfs); - assign_map.emplace("cim:LoadComposite.eqvd", &assign_LoadComposite_eqvd); - assign_map.emplace("cim:LoadComposite.eqvs", &assign_LoadComposite_eqvs); - assign_map.emplace("cim:LoadComposite.h", &assign_LoadComposite_h); - assign_map.emplace("cim:LoadComposite.lfac", &assign_LoadComposite_lfac); - assign_map.emplace("cim:LoadComposite.pfrac", &assign_LoadComposite_pfrac); + assign_map.emplace("LoadComposite.epfd", &assign_LoadComposite_epfd); + assign_map.emplace("LoadComposite.epfs", &assign_LoadComposite_epfs); + assign_map.emplace("LoadComposite.epvd", &assign_LoadComposite_epvd); + assign_map.emplace("LoadComposite.epvs", &assign_LoadComposite_epvs); + assign_map.emplace("LoadComposite.eqfd", &assign_LoadComposite_eqfd); + assign_map.emplace("LoadComposite.eqfs", &assign_LoadComposite_eqfs); + assign_map.emplace("LoadComposite.eqvd", &assign_LoadComposite_eqvd); + assign_map.emplace("LoadComposite.eqvs", &assign_LoadComposite_eqvs); + assign_map.emplace("LoadComposite.h", &assign_LoadComposite_h); + assign_map.emplace("LoadComposite.lfac", &assign_LoadComposite_lfac); + assign_map.emplace("LoadComposite.pfrac", &assign_LoadComposite_pfrac); } void LoadComposite::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void LoadComposite::addClassAssignFnsToMap(std::unordered_map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadComposite.epfd", &get_LoadComposite_epfd); - get_map.emplace("cim:LoadComposite.epfs", &get_LoadComposite_epfs); - get_map.emplace("cim:LoadComposite.epvd", &get_LoadComposite_epvd); - get_map.emplace("cim:LoadComposite.epvs", &get_LoadComposite_epvs); - get_map.emplace("cim:LoadComposite.eqfd", &get_LoadComposite_eqfd); - get_map.emplace("cim:LoadComposite.eqfs", &get_LoadComposite_eqfs); - get_map.emplace("cim:LoadComposite.eqvd", &get_LoadComposite_eqvd); - get_map.emplace("cim:LoadComposite.eqvs", &get_LoadComposite_eqvs); - get_map.emplace("cim:LoadComposite.h", &get_LoadComposite_h); - get_map.emplace("cim:LoadComposite.lfac", &get_LoadComposite_lfac); - get_map.emplace("cim:LoadComposite.pfrac", &get_LoadComposite_pfrac); + get_map.emplace("LoadComposite.epfd", &get_LoadComposite_epfd); + get_map.emplace("LoadComposite.epfs", &get_LoadComposite_epfs); + get_map.emplace("LoadComposite.epvd", &get_LoadComposite_epvd); + get_map.emplace("LoadComposite.epvs", &get_LoadComposite_epvs); + get_map.emplace("LoadComposite.eqfd", &get_LoadComposite_eqfd); + get_map.emplace("LoadComposite.eqfs", &get_LoadComposite_eqfs); + get_map.emplace("LoadComposite.eqvd", &get_LoadComposite_eqvd); + get_map.emplace("LoadComposite.eqvs", &get_LoadComposite_eqvs); + get_map.emplace("LoadComposite.h", &get_LoadComposite_h); + get_map.emplace("LoadComposite.lfac", &get_LoadComposite_lfac); + get_map.emplace("LoadComposite.pfrac", &get_LoadComposite_pfrac); } void LoadComposite::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void LoadComposite::addEnumGetFnsToMap(std::map& get_ LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadComposite::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadComposite" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadComposite::declare() { return BaseClassDefiner(LoadComposite::addConstructToMap, LoadComposite::addPrimitiveAssignFnsToMap, LoadComposite::addClassAssignFnsToMap, LoadComposite::debugName); } +std::map LoadComposite::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadComposite_factory() diff --git a/CGMES_3.0.0/LoadComposite.hpp b/CGMES_3.0.0/LoadComposite.hpp index a02ff7d3a..9cc35dbc3 100644 --- a/CGMES_3.0.0/LoadComposite.hpp +++ b/CGMES_3.0.0/LoadComposite.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadComposite_factory(); diff --git a/CGMES_3.0.0/LoadDynamics.cpp b/CGMES_3.0.0/LoadDynamics.cpp index 35cf6f647..adf1b92a7 100644 --- a/CGMES_3.0.0/LoadDynamics.cpp +++ b/CGMES_3.0.0/LoadDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadDynamics.EnergyConsumer", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadDynamics::LoadDynamics() {} LoadDynamics::~LoadDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadDynamics::getClassNamespaceUrl() const { - { "cim:LoadDynamics.EnergyConsumer", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadDynamics::getPossibleProfilesForClass() const +const std::string& LoadDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadDynamics::getPossibleProfilesForAttributes() const +const std::list& LoadDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergyConsumer_LoadDynamics(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* LoadDynamics::debugString() const void LoadDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadDynamics", &LoadDynamics_factory); + factory_map.emplace("LoadDynamics", &LoadDynamics_factory); } void LoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void LoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadDynamics.EnergyConsumer", &assign_LoadDynamics_EnergyConsumer); + assign_map.emplace("LoadDynamics.EnergyConsumer", &assign_LoadDynamics_EnergyConsumer); } void LoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void LoadDynamics::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadDynamics::declare() { return BaseClassDefiner(LoadDynamics::addConstructToMap, LoadDynamics::addPrimitiveAssignFnsToMap, LoadDynamics::addClassAssignFnsToMap, LoadDynamics::debugName); } +std::map LoadDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadDynamics_factory() diff --git a/CGMES_3.0.0/LoadDynamics.hpp b/CGMES_3.0.0/LoadDynamics.hpp index e1f75d9c9..5d82c9d2d 100644 --- a/CGMES_3.0.0/LoadDynamics.hpp +++ b/CGMES_3.0.0/LoadDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadDynamics_factory(); diff --git a/CGMES_3.0.0/LoadGenericNonLinear.cpp b/CGMES_3.0.0/LoadGenericNonLinear.cpp index 479f9b5d4..0159a9c81 100644 --- a/CGMES_3.0.0/LoadGenericNonLinear.cpp +++ b/CGMES_3.0.0/LoadGenericNonLinear.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadGenericNonLinear(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadGenericNonLinear.bs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.bt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.genericNonLinearLoadModelType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.ls", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.lt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadGenericNonLinear.tq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadGenericNonLinear::LoadGenericNonLinear() {} LoadGenericNonLinear::~LoadGenericNonLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadGenericNonLinear::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadGenericNonLinear::getClassNamespaceUrl() const { - { "cim:LoadGenericNonLinear.bs", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.bt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.genericNonLinearLoadModelType", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.ls", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.lt", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.tp", { CGMESProfile::DY, } }, - { "cim:LoadGenericNonLinear.tq", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadGenericNonLinear::getPossibleProfilesForClass() const +const std::string& LoadGenericNonLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadGenericNonLinear::getPossibleProfilesForAttributes() const +const std::list& LoadGenericNonLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadGenericNonLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadGenericNonLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadGenericNonLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadGenericNonLinear_bs(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* LoadGenericNonLinear::debugString() const void LoadGenericNonLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadGenericNonLinear", &LoadGenericNonLinear_factory); + factory_map.emplace("LoadGenericNonLinear", &LoadGenericNonLinear_factory); } void LoadGenericNonLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadGenericNonLinear.bs", &assign_LoadGenericNonLinear_bs); - assign_map.emplace("cim:LoadGenericNonLinear.bt", &assign_LoadGenericNonLinear_bt); - assign_map.emplace("cim:LoadGenericNonLinear.genericNonLinearLoadModelType", &assign_LoadGenericNonLinear_genericNonLinearLoadModelType); - assign_map.emplace("cim:LoadGenericNonLinear.ls", &assign_LoadGenericNonLinear_ls); - assign_map.emplace("cim:LoadGenericNonLinear.lt", &assign_LoadGenericNonLinear_lt); - assign_map.emplace("cim:LoadGenericNonLinear.tp", &assign_LoadGenericNonLinear_tp); - assign_map.emplace("cim:LoadGenericNonLinear.tq", &assign_LoadGenericNonLinear_tq); + assign_map.emplace("LoadGenericNonLinear.bs", &assign_LoadGenericNonLinear_bs); + assign_map.emplace("LoadGenericNonLinear.bt", &assign_LoadGenericNonLinear_bt); + assign_map.emplace("LoadGenericNonLinear.genericNonLinearLoadModelType", &assign_LoadGenericNonLinear_genericNonLinearLoadModelType); + assign_map.emplace("LoadGenericNonLinear.ls", &assign_LoadGenericNonLinear_ls); + assign_map.emplace("LoadGenericNonLinear.lt", &assign_LoadGenericNonLinear_lt); + assign_map.emplace("LoadGenericNonLinear.tp", &assign_LoadGenericNonLinear_tp); + assign_map.emplace("LoadGenericNonLinear.tq", &assign_LoadGenericNonLinear_tq); } void LoadGenericNonLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,12 +309,12 @@ void LoadGenericNonLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadGenericNonLinear.bs", &get_LoadGenericNonLinear_bs); - get_map.emplace("cim:LoadGenericNonLinear.bt", &get_LoadGenericNonLinear_bt); - get_map.emplace("cim:LoadGenericNonLinear.ls", &get_LoadGenericNonLinear_ls); - get_map.emplace("cim:LoadGenericNonLinear.lt", &get_LoadGenericNonLinear_lt); - get_map.emplace("cim:LoadGenericNonLinear.tp", &get_LoadGenericNonLinear_tp); - get_map.emplace("cim:LoadGenericNonLinear.tq", &get_LoadGenericNonLinear_tq); + get_map.emplace("LoadGenericNonLinear.bs", &get_LoadGenericNonLinear_bs); + get_map.emplace("LoadGenericNonLinear.bt", &get_LoadGenericNonLinear_bt); + get_map.emplace("LoadGenericNonLinear.ls", &get_LoadGenericNonLinear_ls); + get_map.emplace("LoadGenericNonLinear.lt", &get_LoadGenericNonLinear_lt); + get_map.emplace("LoadGenericNonLinear.tp", &get_LoadGenericNonLinear_tp); + get_map.emplace("LoadGenericNonLinear.tq", &get_LoadGenericNonLinear_tq); } void LoadGenericNonLinear::addClassGetFnsToMap(std::map& get_map) const @@ -293,7 +325,13 @@ void LoadGenericNonLinear::addClassGetFnsToMap(std::map& get_map) const { LoadDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:LoadGenericNonLinear.genericNonLinearLoadModelType", &get_LoadGenericNonLinear_genericNonLinearLoadModelType); + get_map.emplace("LoadGenericNonLinear.genericNonLinearLoadModelType", &get_LoadGenericNonLinear_genericNonLinearLoadModelType); +} + +bool LoadGenericNonLinear::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadGenericNonLinear" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner LoadGenericNonLinear::declare() @@ -301,6 +339,14 @@ const BaseClassDefiner LoadGenericNonLinear::declare() return BaseClassDefiner(LoadGenericNonLinear::addConstructToMap, LoadGenericNonLinear::addPrimitiveAssignFnsToMap, LoadGenericNonLinear::addClassAssignFnsToMap, LoadGenericNonLinear::debugName); } +std::map LoadGenericNonLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadGenericNonLinear_factory() diff --git a/CGMES_3.0.0/LoadGenericNonLinear.hpp b/CGMES_3.0.0/LoadGenericNonLinear.hpp index 70ce38933..368ab95fd 100644 --- a/CGMES_3.0.0/LoadGenericNonLinear.hpp +++ b/CGMES_3.0.0/LoadGenericNonLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "GenericNonLinearLoadModelKind.hpp" #include "Seconds.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadGenericNonLinear_factory(); diff --git a/CGMES_3.0.0/LoadGroup.cpp b/CGMES_3.0.0/LoadGroup.cpp index 142619bf7..00e76ba5a 100644 --- a/CGMES_3.0.0/LoadGroup.cpp +++ b/CGMES_3.0.0/LoadGroup.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadGroup(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadGroup.SubLoadArea", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadGroup::LoadGroup() : SubLoadArea(nullptr) {} LoadGroup::~LoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadGroup::getClassNamespaceUrl() const { - { "cim:LoadGroup.SubLoadArea", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadGroup::getPossibleProfilesForClass() const +const std::string& LoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadGroup::getPossibleProfilesForAttributes() const +const std::list& LoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SubLoadArea_LoadGroups(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* LoadGroup::debugString() const void LoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadGroup", &LoadGroup_factory); + factory_map.emplace("LoadGroup", &LoadGroup_factory); } void LoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void LoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadGroup.SubLoadArea", &assign_LoadGroup_SubLoadArea); + assign_map.emplace("LoadGroup.SubLoadArea", &assign_LoadGroup_SubLoadArea); } void LoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void LoadGroup::addPrimitiveGetFnsToMap(std::map& get void LoadGroup::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadGroup.SubLoadArea", &get_LoadGroup_SubLoadArea); + get_map.emplace("LoadGroup.SubLoadArea", &get_LoadGroup_SubLoadArea); } void LoadGroup::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void LoadGroup::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadGroup::declare() { return BaseClassDefiner(LoadGroup::addConstructToMap, LoadGroup::addPrimitiveAssignFnsToMap, LoadGroup::addClassAssignFnsToMap, LoadGroup::debugName); } +std::map LoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadGroup_factory() diff --git a/CGMES_3.0.0/LoadGroup.hpp b/CGMES_3.0.0/LoadGroup.hpp index d0fa3dd27..f3684c780 100644 --- a/CGMES_3.0.0/LoadGroup.hpp +++ b/CGMES_3.0.0/LoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadGroup_factory(); diff --git a/CGMES_3.0.0/LoadMotor.cpp b/CGMES_3.0.0/LoadMotor.cpp index b1eddcd2a..1627c8142 100644 --- a/CGMES_3.0.0/LoadMotor.cpp +++ b/CGMES_3.0.0/LoadMotor.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadMotor(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadMotor.LoadAggregate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.d", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.h", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.lfac", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.lp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.lpp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.ls", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.pfrac", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.ra", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.tbkr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.tpo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.tppo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.tv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadMotor.vt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadMotor::LoadMotor() : LoadAggregate(nullptr) {} LoadMotor::~LoadMotor() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadMotor::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadMotor::getClassNamespaceUrl() const { - { "cim:LoadMotor.LoadAggregate", { CGMESProfile::DY, } }, - { "cim:LoadMotor.d", { CGMESProfile::DY, } }, - { "cim:LoadMotor.h", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lfac", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lp", { CGMESProfile::DY, } }, - { "cim:LoadMotor.lpp", { CGMESProfile::DY, } }, - { "cim:LoadMotor.ls", { CGMESProfile::DY, } }, - { "cim:LoadMotor.pfrac", { CGMESProfile::DY, } }, - { "cim:LoadMotor.ra", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tbkr", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tpo", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tppo", { CGMESProfile::DY, } }, - { "cim:LoadMotor.tv", { CGMESProfile::DY, } }, - { "cim:LoadMotor.vt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadMotor::getPossibleProfilesForClass() const +const std::string& LoadMotor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadMotor::getPossibleProfilesForAttributes() const +const std::list& LoadMotor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadMotor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadMotor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadMotor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadAggregate_LoadMotor(BaseClass*, BaseClass*); @@ -469,53 +501,53 @@ const char* LoadMotor::debugString() const void LoadMotor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadMotor", &LoadMotor_factory); + factory_map.emplace("LoadMotor", &LoadMotor_factory); } void LoadMotor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadMotor.d", &assign_LoadMotor_d); - assign_map.emplace("cim:LoadMotor.h", &assign_LoadMotor_h); - assign_map.emplace("cim:LoadMotor.lfac", &assign_LoadMotor_lfac); - assign_map.emplace("cim:LoadMotor.lp", &assign_LoadMotor_lp); - assign_map.emplace("cim:LoadMotor.lpp", &assign_LoadMotor_lpp); - assign_map.emplace("cim:LoadMotor.ls", &assign_LoadMotor_ls); - assign_map.emplace("cim:LoadMotor.pfrac", &assign_LoadMotor_pfrac); - assign_map.emplace("cim:LoadMotor.ra", &assign_LoadMotor_ra); - assign_map.emplace("cim:LoadMotor.tbkr", &assign_LoadMotor_tbkr); - assign_map.emplace("cim:LoadMotor.tpo", &assign_LoadMotor_tpo); - assign_map.emplace("cim:LoadMotor.tppo", &assign_LoadMotor_tppo); - assign_map.emplace("cim:LoadMotor.tv", &assign_LoadMotor_tv); - assign_map.emplace("cim:LoadMotor.vt", &assign_LoadMotor_vt); + assign_map.emplace("LoadMotor.d", &assign_LoadMotor_d); + assign_map.emplace("LoadMotor.h", &assign_LoadMotor_h); + assign_map.emplace("LoadMotor.lfac", &assign_LoadMotor_lfac); + assign_map.emplace("LoadMotor.lp", &assign_LoadMotor_lp); + assign_map.emplace("LoadMotor.lpp", &assign_LoadMotor_lpp); + assign_map.emplace("LoadMotor.ls", &assign_LoadMotor_ls); + assign_map.emplace("LoadMotor.pfrac", &assign_LoadMotor_pfrac); + assign_map.emplace("LoadMotor.ra", &assign_LoadMotor_ra); + assign_map.emplace("LoadMotor.tbkr", &assign_LoadMotor_tbkr); + assign_map.emplace("LoadMotor.tpo", &assign_LoadMotor_tpo); + assign_map.emplace("LoadMotor.tppo", &assign_LoadMotor_tppo); + assign_map.emplace("LoadMotor.tv", &assign_LoadMotor_tv); + assign_map.emplace("LoadMotor.vt", &assign_LoadMotor_vt); } void LoadMotor::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadMotor.LoadAggregate", &assign_LoadMotor_LoadAggregate); + assign_map.emplace("LoadMotor.LoadAggregate", &assign_LoadMotor_LoadAggregate); } void LoadMotor::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadMotor.d", &get_LoadMotor_d); - get_map.emplace("cim:LoadMotor.h", &get_LoadMotor_h); - get_map.emplace("cim:LoadMotor.lfac", &get_LoadMotor_lfac); - get_map.emplace("cim:LoadMotor.lp", &get_LoadMotor_lp); - get_map.emplace("cim:LoadMotor.lpp", &get_LoadMotor_lpp); - get_map.emplace("cim:LoadMotor.ls", &get_LoadMotor_ls); - get_map.emplace("cim:LoadMotor.pfrac", &get_LoadMotor_pfrac); - get_map.emplace("cim:LoadMotor.ra", &get_LoadMotor_ra); - get_map.emplace("cim:LoadMotor.tbkr", &get_LoadMotor_tbkr); - get_map.emplace("cim:LoadMotor.tpo", &get_LoadMotor_tpo); - get_map.emplace("cim:LoadMotor.tppo", &get_LoadMotor_tppo); - get_map.emplace("cim:LoadMotor.tv", &get_LoadMotor_tv); - get_map.emplace("cim:LoadMotor.vt", &get_LoadMotor_vt); + get_map.emplace("LoadMotor.d", &get_LoadMotor_d); + get_map.emplace("LoadMotor.h", &get_LoadMotor_h); + get_map.emplace("LoadMotor.lfac", &get_LoadMotor_lfac); + get_map.emplace("LoadMotor.lp", &get_LoadMotor_lp); + get_map.emplace("LoadMotor.lpp", &get_LoadMotor_lpp); + get_map.emplace("LoadMotor.ls", &get_LoadMotor_ls); + get_map.emplace("LoadMotor.pfrac", &get_LoadMotor_pfrac); + get_map.emplace("LoadMotor.ra", &get_LoadMotor_ra); + get_map.emplace("LoadMotor.tbkr", &get_LoadMotor_tbkr); + get_map.emplace("LoadMotor.tpo", &get_LoadMotor_tpo); + get_map.emplace("LoadMotor.tppo", &get_LoadMotor_tppo); + get_map.emplace("LoadMotor.tv", &get_LoadMotor_tv); + get_map.emplace("LoadMotor.vt", &get_LoadMotor_vt); } void LoadMotor::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadMotor.LoadAggregate", &get_LoadMotor_LoadAggregate); + get_map.emplace("LoadMotor.LoadAggregate", &get_LoadMotor_LoadAggregate); } void LoadMotor::addEnumGetFnsToMap(std::map& get_map) const @@ -523,11 +555,25 @@ void LoadMotor::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool LoadMotor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadMotor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadMotor::declare() { return BaseClassDefiner(LoadMotor::addConstructToMap, LoadMotor::addPrimitiveAssignFnsToMap, LoadMotor::addClassAssignFnsToMap, LoadMotor::debugName); } +std::map LoadMotor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadMotor_factory() diff --git a/CGMES_3.0.0/LoadMotor.hpp b/CGMES_3.0.0/LoadMotor.hpp index 49e5692c1..ae5565b10 100644 --- a/CGMES_3.0.0/LoadMotor.hpp +++ b/CGMES_3.0.0/LoadMotor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -73,8 +74,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -82,7 +90,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadMotor_factory(); diff --git a/CGMES_3.0.0/LoadResponseCharacteristic.cpp b/CGMES_3.0.0/LoadResponseCharacteristic.cpp index f4c2368ce..80131f146 100644 --- a/CGMES_3.0.0/LoadResponseCharacteristic.cpp +++ b/CGMES_3.0.0/LoadResponseCharacteristic.cpp @@ -12,43 +12,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadResponseCharacteristic(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadResponseCharacteristic.EnergyConsumer", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.exponentModel", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantImpedance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pConstantPower", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pFrequencyExponent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.pVoltageExponent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantImpedance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qConstantPower", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qFrequencyExponent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "LoadResponseCharacteristic.qVoltageExponent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + LoadResponseCharacteristic::LoadResponseCharacteristic() {} LoadResponseCharacteristic::~LoadResponseCharacteristic() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadResponseCharacteristic::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadResponseCharacteristic::getClassNamespaceUrl() const { - { "cim:LoadResponseCharacteristic.EnergyConsumer", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.exponentModel", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantCurrent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantImpedance", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pConstantPower", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pFrequencyExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.pVoltageExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantCurrent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantImpedance", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qConstantPower", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qFrequencyExponent", { CGMESProfile::EQ, } }, - { "cim:LoadResponseCharacteristic.qVoltageExponent", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadResponseCharacteristic::getPossibleProfilesForClass() const +const std::string& LoadResponseCharacteristic::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadResponseCharacteristic::getPossibleProfilesForAttributes() const +const std::list& LoadResponseCharacteristic::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadResponseCharacteristic::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadResponseCharacteristic::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadResponseCharacteristic::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EnergyConsumer_LoadResponse(BaseClass*, BaseClass*); @@ -396,43 +428,43 @@ const char* LoadResponseCharacteristic::debugString() const void LoadResponseCharacteristic::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadResponseCharacteristic", &LoadResponseCharacteristic_factory); + factory_map.emplace("LoadResponseCharacteristic", &LoadResponseCharacteristic_factory); } void LoadResponseCharacteristic::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadResponseCharacteristic.exponentModel", &assign_LoadResponseCharacteristic_exponentModel); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantCurrent", &assign_LoadResponseCharacteristic_pConstantCurrent); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantImpedance", &assign_LoadResponseCharacteristic_pConstantImpedance); - assign_map.emplace("cim:LoadResponseCharacteristic.pConstantPower", &assign_LoadResponseCharacteristic_pConstantPower); - assign_map.emplace("cim:LoadResponseCharacteristic.pFrequencyExponent", &assign_LoadResponseCharacteristic_pFrequencyExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.pVoltageExponent", &assign_LoadResponseCharacteristic_pVoltageExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantCurrent", &assign_LoadResponseCharacteristic_qConstantCurrent); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantImpedance", &assign_LoadResponseCharacteristic_qConstantImpedance); - assign_map.emplace("cim:LoadResponseCharacteristic.qConstantPower", &assign_LoadResponseCharacteristic_qConstantPower); - assign_map.emplace("cim:LoadResponseCharacteristic.qFrequencyExponent", &assign_LoadResponseCharacteristic_qFrequencyExponent); - assign_map.emplace("cim:LoadResponseCharacteristic.qVoltageExponent", &assign_LoadResponseCharacteristic_qVoltageExponent); + assign_map.emplace("LoadResponseCharacteristic.exponentModel", &assign_LoadResponseCharacteristic_exponentModel); + assign_map.emplace("LoadResponseCharacteristic.pConstantCurrent", &assign_LoadResponseCharacteristic_pConstantCurrent); + assign_map.emplace("LoadResponseCharacteristic.pConstantImpedance", &assign_LoadResponseCharacteristic_pConstantImpedance); + assign_map.emplace("LoadResponseCharacteristic.pConstantPower", &assign_LoadResponseCharacteristic_pConstantPower); + assign_map.emplace("LoadResponseCharacteristic.pFrequencyExponent", &assign_LoadResponseCharacteristic_pFrequencyExponent); + assign_map.emplace("LoadResponseCharacteristic.pVoltageExponent", &assign_LoadResponseCharacteristic_pVoltageExponent); + assign_map.emplace("LoadResponseCharacteristic.qConstantCurrent", &assign_LoadResponseCharacteristic_qConstantCurrent); + assign_map.emplace("LoadResponseCharacteristic.qConstantImpedance", &assign_LoadResponseCharacteristic_qConstantImpedance); + assign_map.emplace("LoadResponseCharacteristic.qConstantPower", &assign_LoadResponseCharacteristic_qConstantPower); + assign_map.emplace("LoadResponseCharacteristic.qFrequencyExponent", &assign_LoadResponseCharacteristic_qFrequencyExponent); + assign_map.emplace("LoadResponseCharacteristic.qVoltageExponent", &assign_LoadResponseCharacteristic_qVoltageExponent); } void LoadResponseCharacteristic::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadResponseCharacteristic.EnergyConsumer", &assign_LoadResponseCharacteristic_EnergyConsumer); + assign_map.emplace("LoadResponseCharacteristic.EnergyConsumer", &assign_LoadResponseCharacteristic_EnergyConsumer); } void LoadResponseCharacteristic::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadResponseCharacteristic.exponentModel", &get_LoadResponseCharacteristic_exponentModel); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantCurrent", &get_LoadResponseCharacteristic_pConstantCurrent); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantImpedance", &get_LoadResponseCharacteristic_pConstantImpedance); - get_map.emplace("cim:LoadResponseCharacteristic.pConstantPower", &get_LoadResponseCharacteristic_pConstantPower); - get_map.emplace("cim:LoadResponseCharacteristic.pFrequencyExponent", &get_LoadResponseCharacteristic_pFrequencyExponent); - get_map.emplace("cim:LoadResponseCharacteristic.pVoltageExponent", &get_LoadResponseCharacteristic_pVoltageExponent); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantCurrent", &get_LoadResponseCharacteristic_qConstantCurrent); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantImpedance", &get_LoadResponseCharacteristic_qConstantImpedance); - get_map.emplace("cim:LoadResponseCharacteristic.qConstantPower", &get_LoadResponseCharacteristic_qConstantPower); - get_map.emplace("cim:LoadResponseCharacteristic.qFrequencyExponent", &get_LoadResponseCharacteristic_qFrequencyExponent); - get_map.emplace("cim:LoadResponseCharacteristic.qVoltageExponent", &get_LoadResponseCharacteristic_qVoltageExponent); + get_map.emplace("LoadResponseCharacteristic.exponentModel", &get_LoadResponseCharacteristic_exponentModel); + get_map.emplace("LoadResponseCharacteristic.pConstantCurrent", &get_LoadResponseCharacteristic_pConstantCurrent); + get_map.emplace("LoadResponseCharacteristic.pConstantImpedance", &get_LoadResponseCharacteristic_pConstantImpedance); + get_map.emplace("LoadResponseCharacteristic.pConstantPower", &get_LoadResponseCharacteristic_pConstantPower); + get_map.emplace("LoadResponseCharacteristic.pFrequencyExponent", &get_LoadResponseCharacteristic_pFrequencyExponent); + get_map.emplace("LoadResponseCharacteristic.pVoltageExponent", &get_LoadResponseCharacteristic_pVoltageExponent); + get_map.emplace("LoadResponseCharacteristic.qConstantCurrent", &get_LoadResponseCharacteristic_qConstantCurrent); + get_map.emplace("LoadResponseCharacteristic.qConstantImpedance", &get_LoadResponseCharacteristic_qConstantImpedance); + get_map.emplace("LoadResponseCharacteristic.qConstantPower", &get_LoadResponseCharacteristic_qConstantPower); + get_map.emplace("LoadResponseCharacteristic.qFrequencyExponent", &get_LoadResponseCharacteristic_qFrequencyExponent); + get_map.emplace("LoadResponseCharacteristic.qVoltageExponent", &get_LoadResponseCharacteristic_qVoltageExponent); } void LoadResponseCharacteristic::addClassGetFnsToMap(std::map& get_map) const @@ -445,11 +477,25 @@ void LoadResponseCharacteristic::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner LoadResponseCharacteristic::declare() { return BaseClassDefiner(LoadResponseCharacteristic::addConstructToMap, LoadResponseCharacteristic::addPrimitiveAssignFnsToMap, LoadResponseCharacteristic::addClassAssignFnsToMap, LoadResponseCharacteristic::debugName); } +std::map LoadResponseCharacteristic::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadResponseCharacteristic_factory() diff --git a/CGMES_3.0.0/LoadResponseCharacteristic.hpp b/CGMES_3.0.0/LoadResponseCharacteristic.hpp index 81530c76a..8df831d74 100644 --- a/CGMES_3.0.0/LoadResponseCharacteristic.hpp +++ b/CGMES_3.0.0/LoadResponseCharacteristic.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadResponseCharacteristic_factory(); diff --git a/CGMES_3.0.0/LoadStatic.cpp b/CGMES_3.0.0/LoadStatic.cpp index 1ae8c3ffb..870b36d2c 100644 --- a/CGMES_3.0.0/LoadStatic.cpp +++ b/CGMES_3.0.0/LoadStatic.cpp @@ -12,49 +12,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadStatic(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadStatic.LoadAggregate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.ep3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.eq3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kp4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kpf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kq4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.kqf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadStatic.staticLoadModelType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadStatic::LoadStatic() : LoadAggregate(nullptr) {} LoadStatic::~LoadStatic() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadStatic::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadStatic::getClassNamespaceUrl() const { - { "cim:LoadStatic.LoadAggregate", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.ep3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.eq3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kp4", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kpf", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq1", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq2", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq3", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kq4", { CGMESProfile::DY, } }, - { "cim:LoadStatic.kqf", { CGMESProfile::DY, } }, - { "cim:LoadStatic.staticLoadModelType", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadStatic::getPossibleProfilesForClass() const +const std::string& LoadStatic::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadStatic::getPossibleProfilesForAttributes() const +const std::list& LoadStatic::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadStatic::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadStatic::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadStatic::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadAggregate_LoadStatic(BaseClass*, BaseClass*); @@ -589,66 +621,72 @@ const char* LoadStatic::debugString() const void LoadStatic::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadStatic", &LoadStatic_factory); + factory_map.emplace("LoadStatic", &LoadStatic_factory); } void LoadStatic::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadStatic.ep1", &assign_LoadStatic_ep1); - assign_map.emplace("cim:LoadStatic.ep2", &assign_LoadStatic_ep2); - assign_map.emplace("cim:LoadStatic.ep3", &assign_LoadStatic_ep3); - assign_map.emplace("cim:LoadStatic.eq1", &assign_LoadStatic_eq1); - assign_map.emplace("cim:LoadStatic.eq2", &assign_LoadStatic_eq2); - assign_map.emplace("cim:LoadStatic.eq3", &assign_LoadStatic_eq3); - assign_map.emplace("cim:LoadStatic.kp1", &assign_LoadStatic_kp1); - assign_map.emplace("cim:LoadStatic.kp2", &assign_LoadStatic_kp2); - assign_map.emplace("cim:LoadStatic.kp3", &assign_LoadStatic_kp3); - assign_map.emplace("cim:LoadStatic.kp4", &assign_LoadStatic_kp4); - assign_map.emplace("cim:LoadStatic.kpf", &assign_LoadStatic_kpf); - assign_map.emplace("cim:LoadStatic.kq1", &assign_LoadStatic_kq1); - assign_map.emplace("cim:LoadStatic.kq2", &assign_LoadStatic_kq2); - assign_map.emplace("cim:LoadStatic.kq3", &assign_LoadStatic_kq3); - assign_map.emplace("cim:LoadStatic.kq4", &assign_LoadStatic_kq4); - assign_map.emplace("cim:LoadStatic.kqf", &assign_LoadStatic_kqf); - assign_map.emplace("cim:LoadStatic.staticLoadModelType", &assign_LoadStatic_staticLoadModelType); + assign_map.emplace("LoadStatic.ep1", &assign_LoadStatic_ep1); + assign_map.emplace("LoadStatic.ep2", &assign_LoadStatic_ep2); + assign_map.emplace("LoadStatic.ep3", &assign_LoadStatic_ep3); + assign_map.emplace("LoadStatic.eq1", &assign_LoadStatic_eq1); + assign_map.emplace("LoadStatic.eq2", &assign_LoadStatic_eq2); + assign_map.emplace("LoadStatic.eq3", &assign_LoadStatic_eq3); + assign_map.emplace("LoadStatic.kp1", &assign_LoadStatic_kp1); + assign_map.emplace("LoadStatic.kp2", &assign_LoadStatic_kp2); + assign_map.emplace("LoadStatic.kp3", &assign_LoadStatic_kp3); + assign_map.emplace("LoadStatic.kp4", &assign_LoadStatic_kp4); + assign_map.emplace("LoadStatic.kpf", &assign_LoadStatic_kpf); + assign_map.emplace("LoadStatic.kq1", &assign_LoadStatic_kq1); + assign_map.emplace("LoadStatic.kq2", &assign_LoadStatic_kq2); + assign_map.emplace("LoadStatic.kq3", &assign_LoadStatic_kq3); + assign_map.emplace("LoadStatic.kq4", &assign_LoadStatic_kq4); + assign_map.emplace("LoadStatic.kqf", &assign_LoadStatic_kqf); + assign_map.emplace("LoadStatic.staticLoadModelType", &assign_LoadStatic_staticLoadModelType); } void LoadStatic::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadStatic.LoadAggregate", &assign_LoadStatic_LoadAggregate); + assign_map.emplace("LoadStatic.LoadAggregate", &assign_LoadStatic_LoadAggregate); } void LoadStatic::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.ep1", &get_LoadStatic_ep1); - get_map.emplace("cim:LoadStatic.ep2", &get_LoadStatic_ep2); - get_map.emplace("cim:LoadStatic.ep3", &get_LoadStatic_ep3); - get_map.emplace("cim:LoadStatic.eq1", &get_LoadStatic_eq1); - get_map.emplace("cim:LoadStatic.eq2", &get_LoadStatic_eq2); - get_map.emplace("cim:LoadStatic.eq3", &get_LoadStatic_eq3); - get_map.emplace("cim:LoadStatic.kp1", &get_LoadStatic_kp1); - get_map.emplace("cim:LoadStatic.kp2", &get_LoadStatic_kp2); - get_map.emplace("cim:LoadStatic.kp3", &get_LoadStatic_kp3); - get_map.emplace("cim:LoadStatic.kp4", &get_LoadStatic_kp4); - get_map.emplace("cim:LoadStatic.kpf", &get_LoadStatic_kpf); - get_map.emplace("cim:LoadStatic.kq1", &get_LoadStatic_kq1); - get_map.emplace("cim:LoadStatic.kq2", &get_LoadStatic_kq2); - get_map.emplace("cim:LoadStatic.kq3", &get_LoadStatic_kq3); - get_map.emplace("cim:LoadStatic.kq4", &get_LoadStatic_kq4); - get_map.emplace("cim:LoadStatic.kqf", &get_LoadStatic_kqf); + get_map.emplace("LoadStatic.ep1", &get_LoadStatic_ep1); + get_map.emplace("LoadStatic.ep2", &get_LoadStatic_ep2); + get_map.emplace("LoadStatic.ep3", &get_LoadStatic_ep3); + get_map.emplace("LoadStatic.eq1", &get_LoadStatic_eq1); + get_map.emplace("LoadStatic.eq2", &get_LoadStatic_eq2); + get_map.emplace("LoadStatic.eq3", &get_LoadStatic_eq3); + get_map.emplace("LoadStatic.kp1", &get_LoadStatic_kp1); + get_map.emplace("LoadStatic.kp2", &get_LoadStatic_kp2); + get_map.emplace("LoadStatic.kp3", &get_LoadStatic_kp3); + get_map.emplace("LoadStatic.kp4", &get_LoadStatic_kp4); + get_map.emplace("LoadStatic.kpf", &get_LoadStatic_kpf); + get_map.emplace("LoadStatic.kq1", &get_LoadStatic_kq1); + get_map.emplace("LoadStatic.kq2", &get_LoadStatic_kq2); + get_map.emplace("LoadStatic.kq3", &get_LoadStatic_kq3); + get_map.emplace("LoadStatic.kq4", &get_LoadStatic_kq4); + get_map.emplace("LoadStatic.kqf", &get_LoadStatic_kqf); } void LoadStatic::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.LoadAggregate", &get_LoadStatic_LoadAggregate); + get_map.emplace("LoadStatic.LoadAggregate", &get_LoadStatic_LoadAggregate); } void LoadStatic::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:LoadStatic.staticLoadModelType", &get_LoadStatic_staticLoadModelType); + get_map.emplace("LoadStatic.staticLoadModelType", &get_LoadStatic_staticLoadModelType); +} + +bool LoadStatic::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadStatic" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner LoadStatic::declare() @@ -656,6 +694,14 @@ const BaseClassDefiner LoadStatic::declare() return BaseClassDefiner(LoadStatic::addConstructToMap, LoadStatic::addPrimitiveAssignFnsToMap, LoadStatic::addClassAssignFnsToMap, LoadStatic::debugName); } +std::map LoadStatic::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadStatic_factory() diff --git a/CGMES_3.0.0/LoadStatic.hpp b/CGMES_3.0.0/LoadStatic.hpp index 95683fcbf..4d54a9825 100644 --- a/CGMES_3.0.0/LoadStatic.hpp +++ b/CGMES_3.0.0/LoadStatic.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "StaticLoadModelKind.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadStatic_factory(); diff --git a/CGMES_3.0.0/LoadUserDefined.cpp b/CGMES_3.0.0/LoadUserDefined.cpp index ad0a491aa..749f3d689 100644 --- a/CGMES_3.0.0/LoadUserDefined.cpp +++ b/CGMES_3.0.0/LoadUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + LoadUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "LoadUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "LoadUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + LoadUserDefined::LoadUserDefined() {} LoadUserDefined::~LoadUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& LoadUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& LoadUserDefined::getClassNamespaceUrl() const { - { "cim:LoadUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:LoadUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -LoadUserDefined::getPossibleProfilesForClass() const +const std::string& LoadUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -LoadUserDefined::getPossibleProfilesForAttributes() const +const std::list& LoadUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& LoadUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& LoadUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& LoadUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_LoadUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* LoadUserDefined::debugString() const void LoadUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:LoadUserDefined", &LoadUserDefined_factory); + factory_map.emplace("LoadUserDefined", &LoadUserDefined_factory); } void LoadUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadUserDefined.proprietary", &assign_LoadUserDefined_proprietary); + assign_map.emplace("LoadUserDefined.proprietary", &assign_LoadUserDefined_proprietary); } void LoadUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:LoadUserDefined.ProprietaryParameterDynamics", &assign_LoadUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("LoadUserDefined.ProprietaryParameterDynamics", &assign_LoadUserDefined_ProprietaryParameterDynamics); } void LoadUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { LoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:LoadUserDefined.proprietary", &get_LoadUserDefined_proprietary); + get_map.emplace("LoadUserDefined.proprietary", &get_LoadUserDefined_proprietary); } void LoadUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void LoadUserDefined::addEnumGetFnsToMap(std::map& ge LoadDynamics::addEnumGetFnsToMap(get_map); } +bool LoadUserDefined::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "LoadUserDefined" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner LoadUserDefined::declare() { return BaseClassDefiner(LoadUserDefined::addConstructToMap, LoadUserDefined::addPrimitiveAssignFnsToMap, LoadUserDefined::addClassAssignFnsToMap, LoadUserDefined::debugName); } +std::map LoadUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* LoadUserDefined_factory() diff --git a/CGMES_3.0.0/LoadUserDefined.hpp b/CGMES_3.0.0/LoadUserDefined.hpp index d259d90ef..ea80a0dde 100644 --- a/CGMES_3.0.0/LoadUserDefined.hpp +++ b/CGMES_3.0.0/LoadUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* LoadUserDefined_factory(); diff --git a/CGMES_3.0.0/Location.cpp b/CGMES_3.0.0/Location.cpp index 75fa4b23b..8a37129af 100644 --- a/CGMES_3.0.0/Location.cpp +++ b/CGMES_3.0.0/Location.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Location(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Location.CoordinateSystem", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "Location.PositionPoints", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "Location.PowerSystemResources", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "Location.mainAddress", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + Location::Location() : CoordinateSystem(nullptr), PowerSystemResources(nullptr), mainAddress(nullptr) {} Location::~Location() {} -static const std::list PossibleProfilesForClass = +const std::list& Location::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Location::getClassNamespaceUrl() const { - { "cim:Location.CoordinateSystem", { CGMESProfile::GL, } }, - { "cim:Location.PositionPoints", { CGMESProfile::GL, } }, - { "cim:Location.PowerSystemResources", { CGMESProfile::GL, } }, - { "cim:Location.mainAddress", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Location::getPossibleProfilesForClass() const +const std::string& Location::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Location::getPossibleProfilesForAttributes() const +const std::list& Location::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Location::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Location::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Location::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CoordinateSystem_Locations(BaseClass*, BaseClass*); @@ -162,7 +194,7 @@ const char* Location::debugString() const void Location::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Location", &Location_factory); + factory_map.emplace("Location", &Location_factory); } void Location::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -171,10 +203,10 @@ void Location::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Location.CoordinateSystem", &assign_Location_CoordinateSystem); - assign_map.emplace("cim:Location.PositionPoints", &assign_Location_PositionPoints); - assign_map.emplace("cim:Location.PowerSystemResources", &assign_Location_PowerSystemResources); - assign_map.emplace("cim:Location.mainAddress", &assign_Location_mainAddress); + assign_map.emplace("Location.CoordinateSystem", &assign_Location_CoordinateSystem); + assign_map.emplace("Location.PositionPoints", &assign_Location_PositionPoints); + assign_map.emplace("Location.PowerSystemResources", &assign_Location_PowerSystemResources); + assign_map.emplace("Location.mainAddress", &assign_Location_mainAddress); } void Location::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -185,9 +217,9 @@ void Location::addPrimitiveGetFnsToMap(std::map& get_ void Location::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Location.CoordinateSystem", &get_Location_CoordinateSystem); - get_map.emplace("cim:Location.PowerSystemResources", &get_Location_PowerSystemResources); - get_map.emplace("cim:Location.mainAddress", &get_Location_mainAddress); + get_map.emplace("Location.CoordinateSystem", &get_Location_CoordinateSystem); + get_map.emplace("Location.PowerSystemResources", &get_Location_PowerSystemResources); + get_map.emplace("Location.mainAddress", &get_Location_mainAddress); } void Location::addEnumGetFnsToMap(std::map& get_map) const @@ -195,11 +227,25 @@ void Location::addEnumGetFnsToMap(std::map& get_map) IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Location::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Location" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Location::declare() { return BaseClassDefiner(Location::addConstructToMap, Location::addPrimitiveAssignFnsToMap, Location::addClassAssignFnsToMap, Location::debugName); } +std::map Location::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Location_factory() diff --git a/CGMES_3.0.0/Location.hpp b/CGMES_3.0.0/Location.hpp index dfbbdc580..19a0271a3 100644 --- a/CGMES_3.0.0/Location.hpp +++ b/CGMES_3.0.0/Location.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Location_factory(); diff --git a/CGMES_3.0.0/Measurement.cpp b/CGMES_3.0.0/Measurement.cpp index 4cc0502af..28ee8f54a 100644 --- a/CGMES_3.0.0/Measurement.cpp +++ b/CGMES_3.0.0/Measurement.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Measurement(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Measurement.PowerSystemResource", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Measurement.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Measurement.measurementType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Measurement.phases", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Measurement.unitMultiplier", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Measurement.unitSymbol", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + Measurement::Measurement() : PowerSystemResource(nullptr), Terminal(nullptr) {} Measurement::~Measurement() {} -static const std::list PossibleProfilesForClass = +const std::list& Measurement::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Measurement::getClassNamespaceUrl() const { - { "cim:Measurement.PowerSystemResource", { CGMESProfile::OP, } }, - { "cim:Measurement.Terminal", { CGMESProfile::OP, } }, - { "cim:Measurement.measurementType", { CGMESProfile::OP, } }, - { "cim:Measurement.phases", { CGMESProfile::OP, } }, - { "cim:Measurement.unitMultiplier", { CGMESProfile::OP, } }, - { "cim:Measurement.unitSymbol", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Measurement::getPossibleProfilesForClass() const +const std::string& Measurement::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Measurement::getPossibleProfilesForAttributes() const +const std::list& Measurement::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Measurement::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Measurement::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Measurement::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerSystemResource_Measurements(BaseClass*, BaseClass*); @@ -232,42 +264,48 @@ const char* Measurement::debugString() const void Measurement::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Measurement", &Measurement_factory); + factory_map.emplace("Measurement", &Measurement_factory); } void Measurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Measurement.measurementType", &assign_Measurement_measurementType); - assign_map.emplace("cim:Measurement.phases", &assign_Measurement_phases); - assign_map.emplace("cim:Measurement.unitMultiplier", &assign_Measurement_unitMultiplier); - assign_map.emplace("cim:Measurement.unitSymbol", &assign_Measurement_unitSymbol); + assign_map.emplace("Measurement.measurementType", &assign_Measurement_measurementType); + assign_map.emplace("Measurement.phases", &assign_Measurement_phases); + assign_map.emplace("Measurement.unitMultiplier", &assign_Measurement_unitMultiplier); + assign_map.emplace("Measurement.unitSymbol", &assign_Measurement_unitSymbol); } void Measurement::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Measurement.PowerSystemResource", &assign_Measurement_PowerSystemResource); - assign_map.emplace("cim:Measurement.Terminal", &assign_Measurement_Terminal); + assign_map.emplace("Measurement.PowerSystemResource", &assign_Measurement_PowerSystemResource); + assign_map.emplace("Measurement.Terminal", &assign_Measurement_Terminal); } void Measurement::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.measurementType", &get_Measurement_measurementType); + get_map.emplace("Measurement.measurementType", &get_Measurement_measurementType); } void Measurement::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.PowerSystemResource", &get_Measurement_PowerSystemResource); - get_map.emplace("cim:Measurement.Terminal", &get_Measurement_Terminal); + get_map.emplace("Measurement.PowerSystemResource", &get_Measurement_PowerSystemResource); + get_map.emplace("Measurement.Terminal", &get_Measurement_Terminal); } void Measurement::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Measurement.phases", &get_Measurement_phases); - get_map.emplace("cim:Measurement.unitMultiplier", &get_Measurement_unitMultiplier); - get_map.emplace("cim:Measurement.unitSymbol", &get_Measurement_unitSymbol); + get_map.emplace("Measurement.phases", &get_Measurement_phases); + get_map.emplace("Measurement.unitMultiplier", &get_Measurement_unitMultiplier); + get_map.emplace("Measurement.unitSymbol", &get_Measurement_unitSymbol); +} + +bool Measurement::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Measurement" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Measurement::declare() @@ -275,6 +313,14 @@ const BaseClassDefiner Measurement::declare() return BaseClassDefiner(Measurement::addConstructToMap, Measurement::addPrimitiveAssignFnsToMap, Measurement::addClassAssignFnsToMap, Measurement::debugName); } +std::map Measurement::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Measurement_factory() diff --git a/CGMES_3.0.0/Measurement.hpp b/CGMES_3.0.0/Measurement.hpp index e5da18773..ade22869c 100644 --- a/CGMES_3.0.0/Measurement.hpp +++ b/CGMES_3.0.0/Measurement.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PhaseCode.hpp" #include "String.hpp" #include "UnitMultiplier.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Measurement_factory(); diff --git a/CGMES_3.0.0/MeasurementValue.cpp b/CGMES_3.0.0/MeasurementValue.cpp index e5676b5a2..f9b11cb19 100644 --- a/CGMES_3.0.0/MeasurementValue.cpp +++ b/CGMES_3.0.0/MeasurementValue.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValue(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValue.MeasurementValueQuality", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "MeasurementValue.MeasurementValueSource", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "MeasurementValue.sensorAccuracy", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "MeasurementValue.timeStamp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValue::MeasurementValue() : MeasurementValueQuality(nullptr), MeasurementValueSource(nullptr) {} MeasurementValue::~MeasurementValue() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValue::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValue::getClassNamespaceUrl() const { - { "cim:MeasurementValue.MeasurementValueQuality", { CGMESProfile::OP, } }, - { "cim:MeasurementValue.MeasurementValueSource", { CGMESProfile::OP, } }, - { "cim:MeasurementValue.sensorAccuracy", { CGMESProfile::OP, } }, - { "cim:MeasurementValue.timeStamp", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValue::getPossibleProfilesForClass() const +const std::string& MeasurementValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValue::getPossibleProfilesForAttributes() const +const std::list& MeasurementValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IOPoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValueQuality_MeasurementValue(BaseClass*, BaseClass*); @@ -159,32 +191,32 @@ const char* MeasurementValue::debugString() const void MeasurementValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValue", &MeasurementValue_factory); + factory_map.emplace("MeasurementValue", &MeasurementValue_factory); } void MeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValue.sensorAccuracy", &assign_MeasurementValue_sensorAccuracy); - assign_map.emplace("cim:MeasurementValue.timeStamp", &assign_MeasurementValue_timeStamp); + assign_map.emplace("MeasurementValue.sensorAccuracy", &assign_MeasurementValue_sensorAccuracy); + assign_map.emplace("MeasurementValue.timeStamp", &assign_MeasurementValue_timeStamp); } void MeasurementValue::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValue.MeasurementValueQuality", &assign_MeasurementValue_MeasurementValueQuality); - assign_map.emplace("cim:MeasurementValue.MeasurementValueSource", &assign_MeasurementValue_MeasurementValueSource); + assign_map.emplace("MeasurementValue.MeasurementValueQuality", &assign_MeasurementValue_MeasurementValueQuality); + assign_map.emplace("MeasurementValue.MeasurementValueSource", &assign_MeasurementValue_MeasurementValueSource); } void MeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const { IOPoint::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValue.sensorAccuracy", &get_MeasurementValue_sensorAccuracy); - get_map.emplace("cim:MeasurementValue.timeStamp", &get_MeasurementValue_timeStamp); + get_map.emplace("MeasurementValue.sensorAccuracy", &get_MeasurementValue_sensorAccuracy); + get_map.emplace("MeasurementValue.timeStamp", &get_MeasurementValue_timeStamp); } void MeasurementValue::addClassGetFnsToMap(std::map& get_map) const { IOPoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValue.MeasurementValueSource", &get_MeasurementValue_MeasurementValueSource); + get_map.emplace("MeasurementValue.MeasurementValueSource", &get_MeasurementValue_MeasurementValueSource); } void MeasurementValue::addEnumGetFnsToMap(std::map& get_map) const @@ -192,11 +224,25 @@ void MeasurementValue::addEnumGetFnsToMap(std::map& g IOPoint::addEnumGetFnsToMap(get_map); } +bool MeasurementValue::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MeasurementValue" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValue::declare() { return BaseClassDefiner(MeasurementValue::addConstructToMap, MeasurementValue::addPrimitiveAssignFnsToMap, MeasurementValue::addClassAssignFnsToMap, MeasurementValue::debugName); } +std::map MeasurementValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IOPoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValue_factory() diff --git a/CGMES_3.0.0/MeasurementValue.hpp b/CGMES_3.0.0/MeasurementValue.hpp index bab8f4a5c..eb5851bba 100644 --- a/CGMES_3.0.0/MeasurementValue.hpp +++ b/CGMES_3.0.0/MeasurementValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IOPoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "PerCent.hpp" @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValue_factory(); diff --git a/CGMES_3.0.0/MeasurementValueQuality.cpp b/CGMES_3.0.0/MeasurementValueQuality.cpp index 39afb2eaf..5cd6a64d8 100644 --- a/CGMES_3.0.0/MeasurementValueQuality.cpp +++ b/CGMES_3.0.0/MeasurementValueQuality.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValueQuality(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValueQuality.MeasurementValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValueQuality::MeasurementValueQuality() : MeasurementValue(nullptr) {} MeasurementValueQuality::~MeasurementValueQuality() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValueQuality::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValueQuality::getClassNamespaceUrl() const { - { "cim:MeasurementValueQuality.MeasurementValue", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValueQuality::getPossibleProfilesForClass() const +const std::string& MeasurementValueQuality::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValueQuality::getPossibleProfilesForAttributes() const +const std::list& MeasurementValueQuality::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Quality61850::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValueQuality::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValueQuality::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValueQuality::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValue_MeasurementValueQuality(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* MeasurementValueQuality::debugString() const void MeasurementValueQuality::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValueQuality", &MeasurementValueQuality_factory); + factory_map.emplace("MeasurementValueQuality", &MeasurementValueQuality_factory); } void MeasurementValueQuality::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void MeasurementValueQuality::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValueQuality.MeasurementValue", &assign_MeasurementValueQuality_MeasurementValue); + assign_map.emplace("MeasurementValueQuality.MeasurementValue", &assign_MeasurementValueQuality_MeasurementValue); } void MeasurementValueQuality::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void MeasurementValueQuality::addPrimitiveGetFnsToMap(std::map& get_map) const { Quality61850::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MeasurementValueQuality.MeasurementValue", &get_MeasurementValueQuality_MeasurementValue); + get_map.emplace("MeasurementValueQuality.MeasurementValue", &get_MeasurementValueQuality_MeasurementValue); } void MeasurementValueQuality::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void MeasurementValueQuality::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValueQuality::declare() { return BaseClassDefiner(MeasurementValueQuality::addConstructToMap, MeasurementValueQuality::addPrimitiveAssignFnsToMap, MeasurementValueQuality::addClassAssignFnsToMap, MeasurementValueQuality::debugName); } +std::map MeasurementValueQuality::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Quality61850::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValueQuality_factory() diff --git a/CGMES_3.0.0/MeasurementValueQuality.hpp b/CGMES_3.0.0/MeasurementValueQuality.hpp index 65501a9b1..be44c0e6d 100644 --- a/CGMES_3.0.0/MeasurementValueQuality.hpp +++ b/CGMES_3.0.0/MeasurementValueQuality.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Quality61850.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValueQuality_factory(); diff --git a/CGMES_3.0.0/MeasurementValueSource.cpp b/CGMES_3.0.0/MeasurementValueSource.cpp index a5c2f92cf..9f59b71ce 100644 --- a/CGMES_3.0.0/MeasurementValueSource.cpp +++ b/CGMES_3.0.0/MeasurementValueSource.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MeasurementValueSource(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MeasurementValueSource.MeasurementValues", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + MeasurementValueSource::MeasurementValueSource() {} MeasurementValueSource::~MeasurementValueSource() {} -static const std::list PossibleProfilesForClass = +const std::list& MeasurementValueSource::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MeasurementValueSource::getClassNamespaceUrl() const { - { "cim:MeasurementValueSource.MeasurementValues", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MeasurementValueSource::getPossibleProfilesForClass() const +const std::string& MeasurementValueSource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MeasurementValueSource::getPossibleProfilesForAttributes() const +const std::list& MeasurementValueSource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MeasurementValueSource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MeasurementValueSource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MeasurementValueSource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MeasurementValue_MeasurementValueSource(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* MeasurementValueSource::debugString() const void MeasurementValueSource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MeasurementValueSource", &MeasurementValueSource_factory); + factory_map.emplace("MeasurementValueSource", &MeasurementValueSource_factory); } void MeasurementValueSource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void MeasurementValueSource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MeasurementValueSource.MeasurementValues", &assign_MeasurementValueSource_MeasurementValues); + assign_map.emplace("MeasurementValueSource.MeasurementValues", &assign_MeasurementValueSource_MeasurementValues); } void MeasurementValueSource::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void MeasurementValueSource::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MeasurementValueSource::declare() { return BaseClassDefiner(MeasurementValueSource::addConstructToMap, MeasurementValueSource::addPrimitiveAssignFnsToMap, MeasurementValueSource::addClassAssignFnsToMap, MeasurementValueSource::debugName); } +std::map MeasurementValueSource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MeasurementValueSource_factory() diff --git a/CGMES_3.0.0/MeasurementValueSource.hpp b/CGMES_3.0.0/MeasurementValueSource.hpp index 22c7fa690..7d446031b 100644 --- a/CGMES_3.0.0/MeasurementValueSource.hpp +++ b/CGMES_3.0.0/MeasurementValueSource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MeasurementValueSource_factory(); diff --git a/CGMES_3.0.0/MechLoad1.cpp b/CGMES_3.0.0/MechLoad1.cpp index 7016b3c19..fd7cdd133 100644 --- a/CGMES_3.0.0/MechLoad1.cpp +++ b/CGMES_3.0.0/MechLoad1.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechLoad1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechLoad1.a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "MechLoad1.b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "MechLoad1.d", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "MechLoad1.e", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechLoad1::MechLoad1() {} MechLoad1::~MechLoad1() {} -static const std::list PossibleProfilesForClass = +const std::list& MechLoad1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechLoad1::getClassNamespaceUrl() const { - { "cim:MechLoad1.a", { CGMESProfile::DY, } }, - { "cim:MechLoad1.b", { CGMESProfile::DY, } }, - { "cim:MechLoad1.d", { CGMESProfile::DY, } }, - { "cim:MechLoad1.e", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechLoad1::getPossibleProfilesForClass() const +const std::string& MechLoad1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechLoad1::getPossibleProfilesForAttributes() const +const std::list& MechLoad1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MechanicalLoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechLoad1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechLoad1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechLoad1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_MechLoad1_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* MechLoad1::debugString() const void MechLoad1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechLoad1", &MechLoad1_factory); + factory_map.emplace("MechLoad1", &MechLoad1_factory); } void MechLoad1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechLoad1.a", &assign_MechLoad1_a); - assign_map.emplace("cim:MechLoad1.b", &assign_MechLoad1_b); - assign_map.emplace("cim:MechLoad1.d", &assign_MechLoad1_d); - assign_map.emplace("cim:MechLoad1.e", &assign_MechLoad1_e); + assign_map.emplace("MechLoad1.a", &assign_MechLoad1_a); + assign_map.emplace("MechLoad1.b", &assign_MechLoad1_b); + assign_map.emplace("MechLoad1.d", &assign_MechLoad1_d); + assign_map.emplace("MechLoad1.e", &assign_MechLoad1_e); } void MechLoad1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void MechLoad1::addClassAssignFnsToMap(std::unordered_map& get_map) const { MechanicalLoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MechLoad1.a", &get_MechLoad1_a); - get_map.emplace("cim:MechLoad1.b", &get_MechLoad1_b); - get_map.emplace("cim:MechLoad1.d", &get_MechLoad1_d); - get_map.emplace("cim:MechLoad1.e", &get_MechLoad1_e); + get_map.emplace("MechLoad1.a", &get_MechLoad1_a); + get_map.emplace("MechLoad1.b", &get_MechLoad1_b); + get_map.emplace("MechLoad1.d", &get_MechLoad1_d); + get_map.emplace("MechLoad1.e", &get_MechLoad1_e); } void MechLoad1::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void MechLoad1::addEnumGetFnsToMap(std::map& get_map) MechanicalLoadDynamics::addEnumGetFnsToMap(get_map); } +bool MechLoad1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MechLoad1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MechLoad1::declare() { return BaseClassDefiner(MechLoad1::addConstructToMap, MechLoad1::addPrimitiveAssignFnsToMap, MechLoad1::addClassAssignFnsToMap, MechLoad1::debugName); } +std::map MechLoad1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MechanicalLoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechLoad1_factory() diff --git a/CGMES_3.0.0/MechLoad1.hpp b/CGMES_3.0.0/MechLoad1.hpp index ed9daaeeb..662ac49a0 100644 --- a/CGMES_3.0.0/MechLoad1.hpp +++ b/CGMES_3.0.0/MechLoad1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MechanicalLoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" namespace CIMPP @@ -40,8 +41,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -49,7 +57,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechLoad1_factory(); diff --git a/CGMES_3.0.0/MechanicalLoadDynamics.cpp b/CGMES_3.0.0/MechanicalLoadDynamics.cpp index dc44cac2d..219f3d99b 100644 --- a/CGMES_3.0.0/MechanicalLoadDynamics.cpp +++ b/CGMES_3.0.0/MechanicalLoadDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechanicalLoadDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechanicalLoadDynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "MechanicalLoadDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechanicalLoadDynamics::MechanicalLoadDynamics() : AsynchronousMachineDynamics(nullptr), SynchronousMachineDynamics(nullptr) {} MechanicalLoadDynamics::~MechanicalLoadDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& MechanicalLoadDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechanicalLoadDynamics::getClassNamespaceUrl() const { - { "cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:MechanicalLoadDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechanicalLoadDynamics::getPossibleProfilesForClass() const +const std::string& MechanicalLoadDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechanicalLoadDynamics::getPossibleProfilesForAttributes() const +const std::list& MechanicalLoadDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechanicalLoadDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechanicalLoadDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechanicalLoadDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_MechanicalLoadDynamics(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* MechanicalLoadDynamics::debugString() const void MechanicalLoadDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechanicalLoadDynamics", &MechanicalLoadDynamics_factory); + factory_map.emplace("MechanicalLoadDynamics", &MechanicalLoadDynamics_factory); } void MechanicalLoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void MechanicalLoadDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", &assign_MechanicalLoadDynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:MechanicalLoadDynamics.SynchronousMachineDynamics", &assign_MechanicalLoadDynamics_SynchronousMachineDynamics); + assign_map.emplace("MechanicalLoadDynamics.AsynchronousMachineDynamics", &assign_MechanicalLoadDynamics_AsynchronousMachineDynamics); + assign_map.emplace("MechanicalLoadDynamics.SynchronousMachineDynamics", &assign_MechanicalLoadDynamics_SynchronousMachineDynamics); } void MechanicalLoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void MechanicalLoadDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MechanicalLoadDynamics.AsynchronousMachineDynamics", &get_MechanicalLoadDynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:MechanicalLoadDynamics.SynchronousMachineDynamics", &get_MechanicalLoadDynamics_SynchronousMachineDynamics); + get_map.emplace("MechanicalLoadDynamics.AsynchronousMachineDynamics", &get_MechanicalLoadDynamics_AsynchronousMachineDynamics); + get_map.emplace("MechanicalLoadDynamics.SynchronousMachineDynamics", &get_MechanicalLoadDynamics_SynchronousMachineDynamics); } void MechanicalLoadDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void MechanicalLoadDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MechanicalLoadDynamics::declare() { return BaseClassDefiner(MechanicalLoadDynamics::addConstructToMap, MechanicalLoadDynamics::addPrimitiveAssignFnsToMap, MechanicalLoadDynamics::addClassAssignFnsToMap, MechanicalLoadDynamics::debugName); } +std::map MechanicalLoadDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechanicalLoadDynamics_factory() diff --git a/CGMES_3.0.0/MechanicalLoadDynamics.hpp b/CGMES_3.0.0/MechanicalLoadDynamics.hpp index a1de52cb1..4c3dca324 100644 --- a/CGMES_3.0.0/MechanicalLoadDynamics.hpp +++ b/CGMES_3.0.0/MechanicalLoadDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechanicalLoadDynamics_factory(); diff --git a/CGMES_3.0.0/MechanicalLoadUserDefined.cpp b/CGMES_3.0.0/MechanicalLoadUserDefined.cpp index 0fcdb6dee..56a828beb 100644 --- a/CGMES_3.0.0/MechanicalLoadUserDefined.cpp +++ b/CGMES_3.0.0/MechanicalLoadUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MechanicalLoadUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MechanicalLoadUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "MechanicalLoadUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + MechanicalLoadUserDefined::MechanicalLoadUserDefined() {} MechanicalLoadUserDefined::~MechanicalLoadUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& MechanicalLoadUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MechanicalLoadUserDefined::getClassNamespaceUrl() const { - { "cim:MechanicalLoadUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:MechanicalLoadUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MechanicalLoadUserDefined::getPossibleProfilesForClass() const +const std::string& MechanicalLoadUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MechanicalLoadUserDefined::getPossibleProfilesForAttributes() const +const std::list& MechanicalLoadUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MechanicalLoadDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MechanicalLoadUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MechanicalLoadUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MechanicalLoadUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* MechanicalLoadUserDefined::debugString() const void MechanicalLoadUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MechanicalLoadUserDefined", &MechanicalLoadUserDefined_factory); + factory_map.emplace("MechanicalLoadUserDefined", &MechanicalLoadUserDefined_factory); } void MechanicalLoadUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadUserDefined.proprietary", &assign_MechanicalLoadUserDefined_proprietary); + assign_map.emplace("MechanicalLoadUserDefined.proprietary", &assign_MechanicalLoadUserDefined_proprietary); } void MechanicalLoadUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MechanicalLoadUserDefined.ProprietaryParameterDynamics", &assign_MechanicalLoadUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("MechanicalLoadUserDefined.ProprietaryParameterDynamics", &assign_MechanicalLoadUserDefined_ProprietaryParameterDynamics); } void MechanicalLoadUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { MechanicalLoadDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MechanicalLoadUserDefined.proprietary", &get_MechanicalLoadUserDefined_proprietary); + get_map.emplace("MechanicalLoadUserDefined.proprietary", &get_MechanicalLoadUserDefined_proprietary); } void MechanicalLoadUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void MechanicalLoadUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner MechanicalLoadUserDefined::declare() { return BaseClassDefiner(MechanicalLoadUserDefined::addConstructToMap, MechanicalLoadUserDefined::addPrimitiveAssignFnsToMap, MechanicalLoadUserDefined::addClassAssignFnsToMap, MechanicalLoadUserDefined::debugName); } +std::map MechanicalLoadUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MechanicalLoadDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MechanicalLoadUserDefined_factory() diff --git a/CGMES_3.0.0/MechanicalLoadUserDefined.hpp b/CGMES_3.0.0/MechanicalLoadUserDefined.hpp index 9bdf138c7..0f3bd76af 100644 --- a/CGMES_3.0.0/MechanicalLoadUserDefined.hpp +++ b/CGMES_3.0.0/MechanicalLoadUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MechanicalLoadDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MechanicalLoadUserDefined_factory(); diff --git a/CGMES_3.0.0/MutualCoupling.cpp b/CGMES_3.0.0/MutualCoupling.cpp index 595f248cf..6f30d5660 100644 --- a/CGMES_3.0.0/MutualCoupling.cpp +++ b/CGMES_3.0.0/MutualCoupling.cpp @@ -12,41 +12,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + MutualCoupling(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SC, + }, + CGMESProfile::SC + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "MutualCoupling.First_Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.Second_Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.b0ch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.distance11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.distance12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.distance21", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.distance22", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.g0ch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.r0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "MutualCoupling.x0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + MutualCoupling::MutualCoupling() : First_Terminal(nullptr), Second_Terminal(nullptr) {} MutualCoupling::~MutualCoupling() {} -static const std::list PossibleProfilesForClass = +const std::list& MutualCoupling::getAttributeNames() const { - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& MutualCoupling::getClassNamespaceUrl() const { - { "cim:MutualCoupling.First_Terminal", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.Second_Terminal", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.b0ch", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.distance11", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.distance12", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.distance21", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.distance22", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.g0ch", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.r0", { CGMESProfile::SC, } }, - { "cim:MutualCoupling.x0", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -MutualCoupling::getPossibleProfilesForClass() const +const std::string& MutualCoupling::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -MutualCoupling::getPossibleProfilesForAttributes() const +const std::list& MutualCoupling::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& MutualCoupling::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& MutualCoupling::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& MutualCoupling::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_HasFirstMutualCoupling(BaseClass*, BaseClass*); @@ -351,45 +383,45 @@ const char* MutualCoupling::debugString() const void MutualCoupling::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:MutualCoupling", &MutualCoupling_factory); + factory_map.emplace("MutualCoupling", &MutualCoupling_factory); } void MutualCoupling::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MutualCoupling.b0ch", &assign_MutualCoupling_b0ch); - assign_map.emplace("cim:MutualCoupling.distance11", &assign_MutualCoupling_distance11); - assign_map.emplace("cim:MutualCoupling.distance12", &assign_MutualCoupling_distance12); - assign_map.emplace("cim:MutualCoupling.distance21", &assign_MutualCoupling_distance21); - assign_map.emplace("cim:MutualCoupling.distance22", &assign_MutualCoupling_distance22); - assign_map.emplace("cim:MutualCoupling.g0ch", &assign_MutualCoupling_g0ch); - assign_map.emplace("cim:MutualCoupling.r0", &assign_MutualCoupling_r0); - assign_map.emplace("cim:MutualCoupling.x0", &assign_MutualCoupling_x0); + assign_map.emplace("MutualCoupling.b0ch", &assign_MutualCoupling_b0ch); + assign_map.emplace("MutualCoupling.distance11", &assign_MutualCoupling_distance11); + assign_map.emplace("MutualCoupling.distance12", &assign_MutualCoupling_distance12); + assign_map.emplace("MutualCoupling.distance21", &assign_MutualCoupling_distance21); + assign_map.emplace("MutualCoupling.distance22", &assign_MutualCoupling_distance22); + assign_map.emplace("MutualCoupling.g0ch", &assign_MutualCoupling_g0ch); + assign_map.emplace("MutualCoupling.r0", &assign_MutualCoupling_r0); + assign_map.emplace("MutualCoupling.x0", &assign_MutualCoupling_x0); } void MutualCoupling::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:MutualCoupling.First_Terminal", &assign_MutualCoupling_First_Terminal); - assign_map.emplace("cim:MutualCoupling.Second_Terminal", &assign_MutualCoupling_Second_Terminal); + assign_map.emplace("MutualCoupling.First_Terminal", &assign_MutualCoupling_First_Terminal); + assign_map.emplace("MutualCoupling.Second_Terminal", &assign_MutualCoupling_Second_Terminal); } void MutualCoupling::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:MutualCoupling.b0ch", &get_MutualCoupling_b0ch); - get_map.emplace("cim:MutualCoupling.distance11", &get_MutualCoupling_distance11); - get_map.emplace("cim:MutualCoupling.distance12", &get_MutualCoupling_distance12); - get_map.emplace("cim:MutualCoupling.distance21", &get_MutualCoupling_distance21); - get_map.emplace("cim:MutualCoupling.distance22", &get_MutualCoupling_distance22); - get_map.emplace("cim:MutualCoupling.g0ch", &get_MutualCoupling_g0ch); - get_map.emplace("cim:MutualCoupling.r0", &get_MutualCoupling_r0); - get_map.emplace("cim:MutualCoupling.x0", &get_MutualCoupling_x0); + get_map.emplace("MutualCoupling.b0ch", &get_MutualCoupling_b0ch); + get_map.emplace("MutualCoupling.distance11", &get_MutualCoupling_distance11); + get_map.emplace("MutualCoupling.distance12", &get_MutualCoupling_distance12); + get_map.emplace("MutualCoupling.distance21", &get_MutualCoupling_distance21); + get_map.emplace("MutualCoupling.distance22", &get_MutualCoupling_distance22); + get_map.emplace("MutualCoupling.g0ch", &get_MutualCoupling_g0ch); + get_map.emplace("MutualCoupling.r0", &get_MutualCoupling_r0); + get_map.emplace("MutualCoupling.x0", &get_MutualCoupling_x0); } void MutualCoupling::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:MutualCoupling.First_Terminal", &get_MutualCoupling_First_Terminal); - get_map.emplace("cim:MutualCoupling.Second_Terminal", &get_MutualCoupling_Second_Terminal); + get_map.emplace("MutualCoupling.First_Terminal", &get_MutualCoupling_First_Terminal); + get_map.emplace("MutualCoupling.Second_Terminal", &get_MutualCoupling_Second_Terminal); } void MutualCoupling::addEnumGetFnsToMap(std::map& get_map) const @@ -397,11 +429,25 @@ void MutualCoupling::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool MutualCoupling::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "MutualCoupling" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner MutualCoupling::declare() { return BaseClassDefiner(MutualCoupling::addConstructToMap, MutualCoupling::addPrimitiveAssignFnsToMap, MutualCoupling::addClassAssignFnsToMap, MutualCoupling::debugName); } +std::map MutualCoupling::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* MutualCoupling_factory() diff --git a/CGMES_3.0.0/MutualCoupling.hpp b/CGMES_3.0.0/MutualCoupling.hpp index 00b130bed..62296a486 100644 --- a/CGMES_3.0.0/MutualCoupling.hpp +++ b/CGMES_3.0.0/MutualCoupling.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Length.hpp" #include "Reactance.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* MutualCoupling_factory(); diff --git a/CGMES_3.0.0/NonConformLoad.cpp b/CGMES_3.0.0/NonConformLoad.cpp index 00d77b1ae..1ba3e3f15 100644 --- a/CGMES_3.0.0/NonConformLoad.cpp +++ b/CGMES_3.0.0/NonConformLoad.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoad(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoad.LoadGroup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoad::NonConformLoad() : LoadGroup(nullptr) {} NonConformLoad::~NonConformLoad() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoad::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoad::getClassNamespaceUrl() const { - { "cim:NonConformLoad.LoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoad::getPossibleProfilesForClass() const +const std::string& NonConformLoad::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoad::getPossibleProfilesForAttributes() const +const std::list& NonConformLoad::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoad::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoad::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoad::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoadGroup_EnergyConsumers(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* NonConformLoad::debugString() const void NonConformLoad::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoad", &NonConformLoad_factory); + factory_map.emplace("NonConformLoad", &NonConformLoad_factory); } void NonConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void NonConformLoad::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoad.LoadGroup", &assign_NonConformLoad_LoadGroup); + assign_map.emplace("NonConformLoad.LoadGroup", &assign_NonConformLoad_LoadGroup); } void NonConformLoad::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void NonConformLoad::addPrimitiveGetFnsToMap(std::map void NonConformLoad::addClassGetFnsToMap(std::map& get_map) const { EnergyConsumer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonConformLoad.LoadGroup", &get_NonConformLoad_LoadGroup); + get_map.emplace("NonConformLoad.LoadGroup", &get_NonConformLoad_LoadGroup); } void NonConformLoad::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void NonConformLoad::addEnumGetFnsToMap(std::map& get EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool NonConformLoad::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "NonConformLoad" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoad::declare() { return BaseClassDefiner(NonConformLoad::addConstructToMap, NonConformLoad::addPrimitiveAssignFnsToMap, NonConformLoad::addClassAssignFnsToMap, NonConformLoad::debugName); } +std::map NonConformLoad::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoad_factory() diff --git a/CGMES_3.0.0/NonConformLoad.hpp b/CGMES_3.0.0/NonConformLoad.hpp index a24733afe..fa958f1d7 100644 --- a/CGMES_3.0.0/NonConformLoad.hpp +++ b/CGMES_3.0.0/NonConformLoad.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoad_factory(); diff --git a/CGMES_3.0.0/NonConformLoadGroup.cpp b/CGMES_3.0.0/NonConformLoadGroup.cpp index 0ffa2111f..9c9476d1d 100644 --- a/CGMES_3.0.0/NonConformLoadGroup.cpp +++ b/CGMES_3.0.0/NonConformLoadGroup.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoadGroup(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoadGroup.EnergyConsumers", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "NonConformLoadGroup.NonConformLoadSchedules", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoadGroup::NonConformLoadGroup() {} NonConformLoadGroup::~NonConformLoadGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoadGroup::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoadGroup::getClassNamespaceUrl() const { - { "cim:NonConformLoadGroup.EnergyConsumers", { CGMESProfile::EQ, } }, - { "cim:NonConformLoadGroup.NonConformLoadSchedules", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoadGroup::getPossibleProfilesForClass() const +const std::string& NonConformLoadGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoadGroup::getPossibleProfilesForAttributes() const +const std::list& NonConformLoadGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = LoadGroup::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoadGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoadGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoadGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoad_LoadGroup(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* NonConformLoadGroup::debugString() const void NonConformLoadGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoadGroup", &NonConformLoadGroup_factory); + factory_map.emplace("NonConformLoadGroup", &NonConformLoadGroup_factory); } void NonConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void NonConformLoadGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoadGroup.EnergyConsumers", &assign_NonConformLoadGroup_EnergyConsumers); - assign_map.emplace("cim:NonConformLoadGroup.NonConformLoadSchedules", &assign_NonConformLoadGroup_NonConformLoadSchedules); + assign_map.emplace("NonConformLoadGroup.EnergyConsumers", &assign_NonConformLoadGroup_EnergyConsumers); + assign_map.emplace("NonConformLoadGroup.NonConformLoadSchedules", &assign_NonConformLoadGroup_NonConformLoadSchedules); } void NonConformLoadGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void NonConformLoadGroup::addEnumGetFnsToMap(std::map LoadGroup::addEnumGetFnsToMap(get_map); } +bool NonConformLoadGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "NonConformLoadGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoadGroup::declare() { return BaseClassDefiner(NonConformLoadGroup::addConstructToMap, NonConformLoadGroup::addPrimitiveAssignFnsToMap, NonConformLoadGroup::addClassAssignFnsToMap, NonConformLoadGroup::debugName); } +std::map NonConformLoadGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = LoadGroup::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoadGroup_factory() diff --git a/CGMES_3.0.0/NonConformLoadGroup.hpp b/CGMES_3.0.0/NonConformLoadGroup.hpp index bf081b1bc..73fad4990 100644 --- a/CGMES_3.0.0/NonConformLoadGroup.hpp +++ b/CGMES_3.0.0/NonConformLoadGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "LoadGroup.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoadGroup_factory(); diff --git a/CGMES_3.0.0/NonConformLoadSchedule.cpp b/CGMES_3.0.0/NonConformLoadSchedule.cpp index f4a6a8203..6678fe25c 100644 --- a/CGMES_3.0.0/NonConformLoadSchedule.cpp +++ b/CGMES_3.0.0/NonConformLoadSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonConformLoadSchedule(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonConformLoadSchedule.NonConformLoadGroup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonConformLoadSchedule::NonConformLoadSchedule() : NonConformLoadGroup(nullptr) {} NonConformLoadSchedule::~NonConformLoadSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& NonConformLoadSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonConformLoadSchedule::getClassNamespaceUrl() const { - { "cim:NonConformLoadSchedule.NonConformLoadGroup", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonConformLoadSchedule::getPossibleProfilesForClass() const +const std::string& NonConformLoadSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonConformLoadSchedule::getPossibleProfilesForAttributes() const +const std::list& NonConformLoadSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonConformLoadSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonConformLoadSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonConformLoadSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonConformLoadGroup_NonConformLoadSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* NonConformLoadSchedule::debugString() const void NonConformLoadSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonConformLoadSchedule", &NonConformLoadSchedule_factory); + factory_map.emplace("NonConformLoadSchedule", &NonConformLoadSchedule_factory); } void NonConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void NonConformLoadSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonConformLoadSchedule.NonConformLoadGroup", &assign_NonConformLoadSchedule_NonConformLoadGroup); + assign_map.emplace("NonConformLoadSchedule.NonConformLoadGroup", &assign_NonConformLoadSchedule_NonConformLoadGroup); } void NonConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void NonConformLoadSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonConformLoadSchedule.NonConformLoadGroup", &get_NonConformLoadSchedule_NonConformLoadGroup); + get_map.emplace("NonConformLoadSchedule.NonConformLoadGroup", &get_NonConformLoadSchedule_NonConformLoadGroup); } void NonConformLoadSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void NonConformLoadSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonConformLoadSchedule::declare() { return BaseClassDefiner(NonConformLoadSchedule::addConstructToMap, NonConformLoadSchedule::addPrimitiveAssignFnsToMap, NonConformLoadSchedule::addClassAssignFnsToMap, NonConformLoadSchedule::debugName); } +std::map NonConformLoadSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonConformLoadSchedule_factory() diff --git a/CGMES_3.0.0/NonConformLoadSchedule.hpp b/CGMES_3.0.0/NonConformLoadSchedule.hpp index 6863e9f88..6095371f5 100644 --- a/CGMES_3.0.0/NonConformLoadSchedule.hpp +++ b/CGMES_3.0.0/NonConformLoadSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonConformLoadSchedule_factory(); diff --git a/CGMES_3.0.0/NonlinearShuntCompensator.cpp b/CGMES_3.0.0/NonlinearShuntCompensator.cpp index 5fd272895..96e22d253 100644 --- a/CGMES_3.0.0/NonlinearShuntCompensator.cpp +++ b/CGMES_3.0.0/NonlinearShuntCompensator.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonlinearShuntCompensator(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonlinearShuntCompensator::NonlinearShuntCompensator() {} NonlinearShuntCompensator::~NonlinearShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& NonlinearShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonlinearShuntCompensator::getClassNamespaceUrl() const { - { "cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonlinearShuntCompensator::getPossibleProfilesForClass() const +const std::string& NonlinearShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonlinearShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& NonlinearShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ShuntCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonlinearShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonlinearShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonlinearShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* NonlinearShuntCompensator::debugString() const void NonlinearShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonlinearShuntCompensator", &NonlinearShuntCompensator_factory); + factory_map.emplace("NonlinearShuntCompensator", &NonlinearShuntCompensator_factory); } void NonlinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void NonlinearShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", &assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints); + assign_map.emplace("NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", &assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints); } void NonlinearShuntCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void NonlinearShuntCompensator::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonlinearShuntCompensator::declare() { return BaseClassDefiner(NonlinearShuntCompensator::addConstructToMap, NonlinearShuntCompensator::addPrimitiveAssignFnsToMap, NonlinearShuntCompensator::addClassAssignFnsToMap, NonlinearShuntCompensator::debugName); } +std::map NonlinearShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ShuntCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonlinearShuntCompensator_factory() diff --git a/CGMES_3.0.0/NonlinearShuntCompensator.hpp b/CGMES_3.0.0/NonlinearShuntCompensator.hpp index aca09e4c5..e2a33551a 100644 --- a/CGMES_3.0.0/NonlinearShuntCompensator.hpp +++ b/CGMES_3.0.0/NonlinearShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ShuntCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonlinearShuntCompensator_factory(); diff --git a/CGMES_3.0.0/NonlinearShuntCompensatorPoint.cpp b/CGMES_3.0.0/NonlinearShuntCompensatorPoint.cpp index 429202f1e..40f61dd31 100644 --- a/CGMES_3.0.0/NonlinearShuntCompensatorPoint.cpp +++ b/CGMES_3.0.0/NonlinearShuntCompensatorPoint.cpp @@ -12,38 +12,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NonlinearShuntCompensatorPoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.b0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "NonlinearShuntCompensatorPoint.g", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "NonlinearShuntCompensatorPoint.g0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "NonlinearShuntCompensatorPoint.sectionNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + NonlinearShuntCompensatorPoint::NonlinearShuntCompensatorPoint() : NonlinearShuntCompensator(nullptr) {} NonlinearShuntCompensatorPoint::~NonlinearShuntCompensatorPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& NonlinearShuntCompensatorPoint::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NonlinearShuntCompensatorPoint::getClassNamespaceUrl() const { - { "cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.b", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.b0", { CGMESProfile::SC, } }, - { "cim:NonlinearShuntCompensatorPoint.g", { CGMESProfile::EQ, } }, - { "cim:NonlinearShuntCompensatorPoint.g0", { CGMESProfile::SC, } }, - { "cim:NonlinearShuntCompensatorPoint.sectionNumber", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NonlinearShuntCompensatorPoint::getPossibleProfilesForClass() const +const std::string& NonlinearShuntCompensatorPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NonlinearShuntCompensatorPoint::getPossibleProfilesForAttributes() const +const std::list& NonlinearShuntCompensatorPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NonlinearShuntCompensatorPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NonlinearShuntCompensatorPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NonlinearShuntCompensatorPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_NonlinearShuntCompensator_NonlinearShuntCompensatorPoints(BaseClass*, BaseClass*); @@ -230,37 +262,37 @@ const char* NonlinearShuntCompensatorPoint::debugString() const void NonlinearShuntCompensatorPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NonlinearShuntCompensatorPoint", &NonlinearShuntCompensatorPoint_factory); + factory_map.emplace("NonlinearShuntCompensatorPoint", &NonlinearShuntCompensatorPoint_factory); } void NonlinearShuntCompensatorPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.b", &assign_NonlinearShuntCompensatorPoint_b); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.b0", &assign_NonlinearShuntCompensatorPoint_b0); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.g", &assign_NonlinearShuntCompensatorPoint_g); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.g0", &assign_NonlinearShuntCompensatorPoint_g0); - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.sectionNumber", &assign_NonlinearShuntCompensatorPoint_sectionNumber); + assign_map.emplace("NonlinearShuntCompensatorPoint.b", &assign_NonlinearShuntCompensatorPoint_b); + assign_map.emplace("NonlinearShuntCompensatorPoint.b0", &assign_NonlinearShuntCompensatorPoint_b0); + assign_map.emplace("NonlinearShuntCompensatorPoint.g", &assign_NonlinearShuntCompensatorPoint_g); + assign_map.emplace("NonlinearShuntCompensatorPoint.g0", &assign_NonlinearShuntCompensatorPoint_g0); + assign_map.emplace("NonlinearShuntCompensatorPoint.sectionNumber", &assign_NonlinearShuntCompensatorPoint_sectionNumber); } void NonlinearShuntCompensatorPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); + assign_map.emplace("NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &assign_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); } void NonlinearShuntCompensatorPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.b", &get_NonlinearShuntCompensatorPoint_b); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.b0", &get_NonlinearShuntCompensatorPoint_b0); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.g", &get_NonlinearShuntCompensatorPoint_g); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.g0", &get_NonlinearShuntCompensatorPoint_g0); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.sectionNumber", &get_NonlinearShuntCompensatorPoint_sectionNumber); + get_map.emplace("NonlinearShuntCompensatorPoint.b", &get_NonlinearShuntCompensatorPoint_b); + get_map.emplace("NonlinearShuntCompensatorPoint.b0", &get_NonlinearShuntCompensatorPoint_b0); + get_map.emplace("NonlinearShuntCompensatorPoint.g", &get_NonlinearShuntCompensatorPoint_g); + get_map.emplace("NonlinearShuntCompensatorPoint.g0", &get_NonlinearShuntCompensatorPoint_g0); + get_map.emplace("NonlinearShuntCompensatorPoint.sectionNumber", &get_NonlinearShuntCompensatorPoint_sectionNumber); } void NonlinearShuntCompensatorPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &get_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); + get_map.emplace("NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", &get_NonlinearShuntCompensatorPoint_NonlinearShuntCompensator); } void NonlinearShuntCompensatorPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -268,11 +300,25 @@ void NonlinearShuntCompensatorPoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NonlinearShuntCompensatorPoint::declare() { return BaseClassDefiner(NonlinearShuntCompensatorPoint::addConstructToMap, NonlinearShuntCompensatorPoint::addPrimitiveAssignFnsToMap, NonlinearShuntCompensatorPoint::addClassAssignFnsToMap, NonlinearShuntCompensatorPoint::debugName); } +std::map NonlinearShuntCompensatorPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NonlinearShuntCompensatorPoint_factory() diff --git a/CGMES_3.0.0/NonlinearShuntCompensatorPoint.hpp b/CGMES_3.0.0/NonlinearShuntCompensatorPoint.hpp index d03cc8d0b..e7babfde3 100644 --- a/CGMES_3.0.0/NonlinearShuntCompensatorPoint.hpp +++ b/CGMES_3.0.0/NonlinearShuntCompensatorPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Conductance.hpp" #include "Integer.hpp" #include "Susceptance.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NonlinearShuntCompensatorPoint_factory(); diff --git a/CGMES_3.0.0/NuclearGeneratingUnit.cpp b/CGMES_3.0.0/NuclearGeneratingUnit.cpp index 3ce0ed75a..a12f178e2 100644 --- a/CGMES_3.0.0/NuclearGeneratingUnit.cpp +++ b/CGMES_3.0.0/NuclearGeneratingUnit.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + NuclearGeneratingUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + NuclearGeneratingUnit::NuclearGeneratingUnit() {} NuclearGeneratingUnit::~NuclearGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& NuclearGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& NuclearGeneratingUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -NuclearGeneratingUnit::getPossibleProfilesForClass() const +const std::string& NuclearGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -NuclearGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& NuclearGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& NuclearGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& NuclearGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& NuclearGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char NuclearGeneratingUnit::debugName[] = "NuclearGeneratingUnit"; @@ -47,7 +79,7 @@ const char* NuclearGeneratingUnit::debugString() const void NuclearGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:NuclearGeneratingUnit", &NuclearGeneratingUnit_factory); + factory_map.emplace("NuclearGeneratingUnit", &NuclearGeneratingUnit_factory); } void NuclearGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void NuclearGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner NuclearGeneratingUnit::declare() { return BaseClassDefiner(NuclearGeneratingUnit::addConstructToMap, NuclearGeneratingUnit::addPrimitiveAssignFnsToMap, NuclearGeneratingUnit::addClassAssignFnsToMap, NuclearGeneratingUnit::debugName); } +std::map NuclearGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* NuclearGeneratingUnit_factory() diff --git a/CGMES_3.0.0/NuclearGeneratingUnit.hpp b/CGMES_3.0.0/NuclearGeneratingUnit.hpp index 81ab7cd3d..11f7283f8 100644 --- a/CGMES_3.0.0/NuclearGeneratingUnit.hpp +++ b/CGMES_3.0.0/NuclearGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* NuclearGeneratingUnit_factory(); diff --git a/CGMES_3.0.0/OperationalLimit.cpp b/CGMES_3.0.0/OperationalLimit.cpp index eb153f59f..05a07d845 100644 --- a/CGMES_3.0.0/OperationalLimit.cpp +++ b/CGMES_3.0.0/OperationalLimit.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimit.OperationalLimitSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "OperationalLimit.OperationalLimitType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimit::OperationalLimit() : OperationalLimitSet(nullptr), OperationalLimitType(nullptr) {} OperationalLimit::~OperationalLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimit::getClassNamespaceUrl() const { - { "cim:OperationalLimit.OperationalLimitSet", { CGMESProfile::EQ, } }, - { "cim:OperationalLimit.OperationalLimitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimit::getPossibleProfilesForClass() const +const std::string& OperationalLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimit::getPossibleProfilesForAttributes() const +const std::list& OperationalLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OperationalLimitSet_OperationalLimitValue(BaseClass*, BaseClass*); @@ -113,7 +145,7 @@ const char* OperationalLimit::debugString() const void OperationalLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimit", &OperationalLimit_factory); + factory_map.emplace("OperationalLimit", &OperationalLimit_factory); } void OperationalLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void OperationalLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimit.OperationalLimitSet", &assign_OperationalLimit_OperationalLimitSet); - assign_map.emplace("cim:OperationalLimit.OperationalLimitType", &assign_OperationalLimit_OperationalLimitType); + assign_map.emplace("OperationalLimit.OperationalLimitSet", &assign_OperationalLimit_OperationalLimitSet); + assign_map.emplace("OperationalLimit.OperationalLimitType", &assign_OperationalLimit_OperationalLimitType); } void OperationalLimit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -134,8 +166,8 @@ void OperationalLimit::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimit.OperationalLimitSet", &get_OperationalLimit_OperationalLimitSet); - get_map.emplace("cim:OperationalLimit.OperationalLimitType", &get_OperationalLimit_OperationalLimitType); + get_map.emplace("OperationalLimit.OperationalLimitSet", &get_OperationalLimit_OperationalLimitSet); + get_map.emplace("OperationalLimit.OperationalLimitType", &get_OperationalLimit_OperationalLimitType); } void OperationalLimit::addEnumGetFnsToMap(std::map& get_map) const @@ -143,11 +175,25 @@ void OperationalLimit::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool OperationalLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OperationalLimit::declare() { return BaseClassDefiner(OperationalLimit::addConstructToMap, OperationalLimit::addPrimitiveAssignFnsToMap, OperationalLimit::addClassAssignFnsToMap, OperationalLimit::debugName); } +std::map OperationalLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimit_factory() diff --git a/CGMES_3.0.0/OperationalLimit.hpp b/CGMES_3.0.0/OperationalLimit.hpp index c23bca2c9..67f5cd900 100644 --- a/CGMES_3.0.0/OperationalLimit.hpp +++ b/CGMES_3.0.0/OperationalLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimit_factory(); diff --git a/CGMES_3.0.0/OperationalLimitSet.cpp b/CGMES_3.0.0/OperationalLimitSet.cpp index b2d24e3d4..f19117db1 100644 --- a/CGMES_3.0.0/OperationalLimitSet.cpp +++ b/CGMES_3.0.0/OperationalLimitSet.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimitSet(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimitSet.Equipment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "OperationalLimitSet.OperationalLimitValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "OperationalLimitSet.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimitSet::OperationalLimitSet() : Equipment(nullptr), Terminal(nullptr) {} OperationalLimitSet::~OperationalLimitSet() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimitSet::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimitSet::getClassNamespaceUrl() const { - { "cim:OperationalLimitSet.Equipment", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitSet.OperationalLimitValue", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitSet.Terminal", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimitSet::getPossibleProfilesForClass() const +const std::string& OperationalLimitSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimitSet::getPossibleProfilesForAttributes() const +const std::list& OperationalLimitSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimitSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimitSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimitSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Equipment_OperationalLimitSet(BaseClass*, BaseClass*); @@ -132,7 +164,7 @@ const char* OperationalLimitSet::debugString() const void OperationalLimitSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimitSet", &OperationalLimitSet_factory); + factory_map.emplace("OperationalLimitSet", &OperationalLimitSet_factory); } void OperationalLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -141,9 +173,9 @@ void OperationalLimitSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitSet.Equipment", &assign_OperationalLimitSet_Equipment); - assign_map.emplace("cim:OperationalLimitSet.OperationalLimitValue", &assign_OperationalLimitSet_OperationalLimitValue); - assign_map.emplace("cim:OperationalLimitSet.Terminal", &assign_OperationalLimitSet_Terminal); + assign_map.emplace("OperationalLimitSet.Equipment", &assign_OperationalLimitSet_Equipment); + assign_map.emplace("OperationalLimitSet.OperationalLimitValue", &assign_OperationalLimitSet_OperationalLimitValue); + assign_map.emplace("OperationalLimitSet.Terminal", &assign_OperationalLimitSet_Terminal); } void OperationalLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -154,8 +186,8 @@ void OperationalLimitSet::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitSet.Equipment", &get_OperationalLimitSet_Equipment); - get_map.emplace("cim:OperationalLimitSet.Terminal", &get_OperationalLimitSet_Terminal); + get_map.emplace("OperationalLimitSet.Equipment", &get_OperationalLimitSet_Equipment); + get_map.emplace("OperationalLimitSet.Terminal", &get_OperationalLimitSet_Terminal); } void OperationalLimitSet::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void OperationalLimitSet::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool OperationalLimitSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimitSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OperationalLimitSet::declare() { return BaseClassDefiner(OperationalLimitSet::addConstructToMap, OperationalLimitSet::addPrimitiveAssignFnsToMap, OperationalLimitSet::addClassAssignFnsToMap, OperationalLimitSet::debugName); } +std::map OperationalLimitSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimitSet_factory() diff --git a/CGMES_3.0.0/OperationalLimitSet.hpp b/CGMES_3.0.0/OperationalLimitSet.hpp index 19df3399f..b4a29c907 100644 --- a/CGMES_3.0.0/OperationalLimitSet.hpp +++ b/CGMES_3.0.0/OperationalLimitSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimitSet_factory(); diff --git a/CGMES_3.0.0/OperationalLimitType.cpp b/CGMES_3.0.0/OperationalLimitType.cpp index 1cfa623ac..e11eb316c 100644 --- a/CGMES_3.0.0/OperationalLimitType.cpp +++ b/CGMES_3.0.0/OperationalLimitType.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OperationalLimitType(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OperationalLimitType.OperationalLimit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.acceptableDuration", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.direction", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.isInfiniteDuration", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "OperationalLimitType.kind", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + OperationalLimitType::OperationalLimitType() {} OperationalLimitType::~OperationalLimitType() {} -static const std::list PossibleProfilesForClass = +const std::list& OperationalLimitType::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OperationalLimitType::getClassNamespaceUrl() const { - { "cim:OperationalLimitType.OperationalLimit", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.acceptableDuration", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.direction", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.isInfiniteDuration", { CGMESProfile::EQ, } }, - { "cim:OperationalLimitType.kind", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OperationalLimitType::getPossibleProfilesForClass() const +const std::string& OperationalLimitType::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OperationalLimitType::getPossibleProfilesForAttributes() const +const std::list& OperationalLimitType::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OperationalLimitType::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OperationalLimitType::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OperationalLimitType::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OperationalLimit_OperationalLimitType(BaseClass*, BaseClass*); @@ -186,27 +218,27 @@ const char* OperationalLimitType::debugString() const void OperationalLimitType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OperationalLimitType", &OperationalLimitType_factory); + factory_map.emplace("OperationalLimitType", &OperationalLimitType_factory); } void OperationalLimitType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitType.acceptableDuration", &assign_OperationalLimitType_acceptableDuration); - assign_map.emplace("cim:OperationalLimitType.direction", &assign_OperationalLimitType_direction); - assign_map.emplace("cim:OperationalLimitType.isInfiniteDuration", &assign_OperationalLimitType_isInfiniteDuration); - assign_map.emplace("cim:OperationalLimitType.kind", &assign_OperationalLimitType_kind); + assign_map.emplace("OperationalLimitType.acceptableDuration", &assign_OperationalLimitType_acceptableDuration); + assign_map.emplace("OperationalLimitType.direction", &assign_OperationalLimitType_direction); + assign_map.emplace("OperationalLimitType.isInfiniteDuration", &assign_OperationalLimitType_isInfiniteDuration); + assign_map.emplace("OperationalLimitType.kind", &assign_OperationalLimitType_kind); } void OperationalLimitType::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OperationalLimitType.OperationalLimit", &assign_OperationalLimitType_OperationalLimit); + assign_map.emplace("OperationalLimitType.OperationalLimit", &assign_OperationalLimitType_OperationalLimit); } void OperationalLimitType::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitType.acceptableDuration", &get_OperationalLimitType_acceptableDuration); - get_map.emplace("cim:OperationalLimitType.isInfiniteDuration", &get_OperationalLimitType_isInfiniteDuration); + get_map.emplace("OperationalLimitType.acceptableDuration", &get_OperationalLimitType_acceptableDuration); + get_map.emplace("OperationalLimitType.isInfiniteDuration", &get_OperationalLimitType_isInfiniteDuration); } void OperationalLimitType::addClassGetFnsToMap(std::map& get_map) const @@ -217,8 +249,14 @@ void OperationalLimitType::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:OperationalLimitType.direction", &get_OperationalLimitType_direction); - get_map.emplace("cim:OperationalLimitType.kind", &get_OperationalLimitType_kind); + get_map.emplace("OperationalLimitType.direction", &get_OperationalLimitType_direction); + get_map.emplace("OperationalLimitType.kind", &get_OperationalLimitType_kind); +} + +bool OperationalLimitType::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OperationalLimitType" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner OperationalLimitType::declare() @@ -226,6 +264,14 @@ const BaseClassDefiner OperationalLimitType::declare() return BaseClassDefiner(OperationalLimitType::addConstructToMap, OperationalLimitType::addPrimitiveAssignFnsToMap, OperationalLimitType::addClassAssignFnsToMap, OperationalLimitType::debugName); } +std::map OperationalLimitType::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OperationalLimitType_factory() diff --git a/CGMES_3.0.0/OperationalLimitType.hpp b/CGMES_3.0.0/OperationalLimitType.hpp index 5ee7ee70c..d5fd6d067 100644 --- a/CGMES_3.0.0/OperationalLimitType.hpp +++ b/CGMES_3.0.0/OperationalLimitType.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "LimitKind.hpp" #include "OperationalLimitDirectionKind.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OperationalLimitType_factory(); diff --git a/CGMES_3.0.0/OverexcLim2.cpp b/CGMES_3.0.0/OverexcLim2.cpp index 2e9009b9b..0b286706d 100644 --- a/CGMES_3.0.0/OverexcLim2.cpp +++ b/CGMES_3.0.0/OverexcLim2.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLim2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLim2.ifdlim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLim2.koi", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLim2.voimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLim2.voimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLim2::OverexcLim2() {} OverexcLim2::~OverexcLim2() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLim2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLim2::getClassNamespaceUrl() const { - { "cim:OverexcLim2.ifdlim", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.koi", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.voimax", { CGMESProfile::DY, } }, - { "cim:OverexcLim2.voimin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLim2::getPossibleProfilesForClass() const +const std::string& OverexcLim2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLim2::getPossibleProfilesForAttributes() const +const std::list& OverexcLim2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLim2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLim2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLim2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLim2_ifdlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* OverexcLim2::debugString() const void OverexcLim2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLim2", &OverexcLim2_factory); + factory_map.emplace("OverexcLim2", &OverexcLim2_factory); } void OverexcLim2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLim2.ifdlim", &assign_OverexcLim2_ifdlim); - assign_map.emplace("cim:OverexcLim2.koi", &assign_OverexcLim2_koi); - assign_map.emplace("cim:OverexcLim2.voimax", &assign_OverexcLim2_voimax); - assign_map.emplace("cim:OverexcLim2.voimin", &assign_OverexcLim2_voimin); + assign_map.emplace("OverexcLim2.ifdlim", &assign_OverexcLim2_ifdlim); + assign_map.emplace("OverexcLim2.koi", &assign_OverexcLim2_koi); + assign_map.emplace("OverexcLim2.voimax", &assign_OverexcLim2_voimax); + assign_map.emplace("OverexcLim2.voimin", &assign_OverexcLim2_voimin); } void OverexcLim2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void OverexcLim2::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLim2.ifdlim", &get_OverexcLim2_ifdlim); - get_map.emplace("cim:OverexcLim2.koi", &get_OverexcLim2_koi); - get_map.emplace("cim:OverexcLim2.voimax", &get_OverexcLim2_voimax); - get_map.emplace("cim:OverexcLim2.voimin", &get_OverexcLim2_voimin); + get_map.emplace("OverexcLim2.ifdlim", &get_OverexcLim2_ifdlim); + get_map.emplace("OverexcLim2.koi", &get_OverexcLim2_koi); + get_map.emplace("OverexcLim2.voimax", &get_OverexcLim2_voimax); + get_map.emplace("OverexcLim2.voimin", &get_OverexcLim2_voimin); } void OverexcLim2::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void OverexcLim2::addEnumGetFnsToMap(std::map& get_ma OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLim2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLim2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLim2::declare() { return BaseClassDefiner(OverexcLim2::addConstructToMap, OverexcLim2::addPrimitiveAssignFnsToMap, OverexcLim2::addClassAssignFnsToMap, OverexcLim2::debugName); } +std::map OverexcLim2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLim2_factory() diff --git a/CGMES_3.0.0/OverexcLim2.hpp b/CGMES_3.0.0/OverexcLim2.hpp index 925fd2675..44199c87c 100644 --- a/CGMES_3.0.0/OverexcLim2.hpp +++ b/CGMES_3.0.0/OverexcLim2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -40,8 +41,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -49,7 +57,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLim2_factory(); diff --git a/CGMES_3.0.0/OverexcLimIEEE.cpp b/CGMES_3.0.0/OverexcLimIEEE.cpp index 0fb3e9857..6a6c5a9ef 100644 --- a/CGMES_3.0.0/OverexcLimIEEE.cpp +++ b/CGMES_3.0.0/OverexcLimIEEE.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimIEEE(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimIEEE.hyst", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.ifdlim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.ifdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.itfpu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.kcd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimIEEE.kramp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimIEEE::OverexcLimIEEE() {} OverexcLimIEEE::~OverexcLimIEEE() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimIEEE::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimIEEE::getClassNamespaceUrl() const { - { "cim:OverexcLimIEEE.hyst", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.ifdlim", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.ifdmax", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.itfpu", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.kcd", { CGMESProfile::DY, } }, - { "cim:OverexcLimIEEE.kramp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimIEEE::getPossibleProfilesForClass() const +const std::string& OverexcLimIEEE::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimIEEE::getPossibleProfilesForAttributes() const +const std::list& OverexcLimIEEE::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimIEEE::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimIEEE::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimIEEE::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimIEEE_hyst(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* OverexcLimIEEE::debugString() const void OverexcLimIEEE::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimIEEE", &OverexcLimIEEE_factory); + factory_map.emplace("OverexcLimIEEE", &OverexcLimIEEE_factory); } void OverexcLimIEEE::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimIEEE.hyst", &assign_OverexcLimIEEE_hyst); - assign_map.emplace("cim:OverexcLimIEEE.ifdlim", &assign_OverexcLimIEEE_ifdlim); - assign_map.emplace("cim:OverexcLimIEEE.ifdmax", &assign_OverexcLimIEEE_ifdmax); - assign_map.emplace("cim:OverexcLimIEEE.itfpu", &assign_OverexcLimIEEE_itfpu); - assign_map.emplace("cim:OverexcLimIEEE.kcd", &assign_OverexcLimIEEE_kcd); - assign_map.emplace("cim:OverexcLimIEEE.kramp", &assign_OverexcLimIEEE_kramp); + assign_map.emplace("OverexcLimIEEE.hyst", &assign_OverexcLimIEEE_hyst); + assign_map.emplace("OverexcLimIEEE.ifdlim", &assign_OverexcLimIEEE_ifdlim); + assign_map.emplace("OverexcLimIEEE.ifdmax", &assign_OverexcLimIEEE_ifdmax); + assign_map.emplace("OverexcLimIEEE.itfpu", &assign_OverexcLimIEEE_itfpu); + assign_map.emplace("OverexcLimIEEE.kcd", &assign_OverexcLimIEEE_kcd); + assign_map.emplace("OverexcLimIEEE.kramp", &assign_OverexcLimIEEE_kramp); } void OverexcLimIEEE::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void OverexcLimIEEE::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimIEEE.hyst", &get_OverexcLimIEEE_hyst); - get_map.emplace("cim:OverexcLimIEEE.ifdlim", &get_OverexcLimIEEE_ifdlim); - get_map.emplace("cim:OverexcLimIEEE.ifdmax", &get_OverexcLimIEEE_ifdmax); - get_map.emplace("cim:OverexcLimIEEE.itfpu", &get_OverexcLimIEEE_itfpu); - get_map.emplace("cim:OverexcLimIEEE.kcd", &get_OverexcLimIEEE_kcd); - get_map.emplace("cim:OverexcLimIEEE.kramp", &get_OverexcLimIEEE_kramp); + get_map.emplace("OverexcLimIEEE.hyst", &get_OverexcLimIEEE_hyst); + get_map.emplace("OverexcLimIEEE.ifdlim", &get_OverexcLimIEEE_ifdlim); + get_map.emplace("OverexcLimIEEE.ifdmax", &get_OverexcLimIEEE_ifdmax); + get_map.emplace("OverexcLimIEEE.itfpu", &get_OverexcLimIEEE_itfpu); + get_map.emplace("OverexcLimIEEE.kcd", &get_OverexcLimIEEE_kcd); + get_map.emplace("OverexcLimIEEE.kramp", &get_OverexcLimIEEE_kramp); } void OverexcLimIEEE::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void OverexcLimIEEE::addEnumGetFnsToMap(std::map& get OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimIEEE::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimIEEE" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimIEEE::declare() { return BaseClassDefiner(OverexcLimIEEE::addConstructToMap, OverexcLimIEEE::addPrimitiveAssignFnsToMap, OverexcLimIEEE::addClassAssignFnsToMap, OverexcLimIEEE::debugName); } +std::map OverexcLimIEEE::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimIEEE_factory() diff --git a/CGMES_3.0.0/OverexcLimIEEE.hpp b/CGMES_3.0.0/OverexcLimIEEE.hpp index 88c5268fc..42b23472b 100644 --- a/CGMES_3.0.0/OverexcLimIEEE.hpp +++ b/CGMES_3.0.0/OverexcLimIEEE.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimIEEE_factory(); diff --git a/CGMES_3.0.0/OverexcLimX1.cpp b/CGMES_3.0.0/OverexcLimX1.cpp index c299b0d73..cc4490675 100644 --- a/CGMES_3.0.0/OverexcLimX1.cpp +++ b/CGMES_3.0.0/OverexcLimX1.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimX1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimX1.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efd3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efddes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.efdrated", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.kmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX1.vlow", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimX1::OverexcLimX1() {} OverexcLimX1::~OverexcLimX1() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimX1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimX1::getClassNamespaceUrl() const { - { "cim:OverexcLimX1.efd1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efd2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efd3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efddes", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.efdrated", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.kmx", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.t3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX1.vlow", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimX1::getPossibleProfilesForClass() const +const std::string& OverexcLimX1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimX1::getPossibleProfilesForAttributes() const +const std::list& OverexcLimX1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimX1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimX1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimX1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimX1_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* OverexcLimX1::debugString() const void OverexcLimX1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimX1", &OverexcLimX1_factory); + factory_map.emplace("OverexcLimX1", &OverexcLimX1_factory); } void OverexcLimX1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimX1.efd1", &assign_OverexcLimX1_efd1); - assign_map.emplace("cim:OverexcLimX1.efd2", &assign_OverexcLimX1_efd2); - assign_map.emplace("cim:OverexcLimX1.efd3", &assign_OverexcLimX1_efd3); - assign_map.emplace("cim:OverexcLimX1.efddes", &assign_OverexcLimX1_efddes); - assign_map.emplace("cim:OverexcLimX1.efdrated", &assign_OverexcLimX1_efdrated); - assign_map.emplace("cim:OverexcLimX1.kmx", &assign_OverexcLimX1_kmx); - assign_map.emplace("cim:OverexcLimX1.t1", &assign_OverexcLimX1_t1); - assign_map.emplace("cim:OverexcLimX1.t2", &assign_OverexcLimX1_t2); - assign_map.emplace("cim:OverexcLimX1.t3", &assign_OverexcLimX1_t3); - assign_map.emplace("cim:OverexcLimX1.vlow", &assign_OverexcLimX1_vlow); + assign_map.emplace("OverexcLimX1.efd1", &assign_OverexcLimX1_efd1); + assign_map.emplace("OverexcLimX1.efd2", &assign_OverexcLimX1_efd2); + assign_map.emplace("OverexcLimX1.efd3", &assign_OverexcLimX1_efd3); + assign_map.emplace("OverexcLimX1.efddes", &assign_OverexcLimX1_efddes); + assign_map.emplace("OverexcLimX1.efdrated", &assign_OverexcLimX1_efdrated); + assign_map.emplace("OverexcLimX1.kmx", &assign_OverexcLimX1_kmx); + assign_map.emplace("OverexcLimX1.t1", &assign_OverexcLimX1_t1); + assign_map.emplace("OverexcLimX1.t2", &assign_OverexcLimX1_t2); + assign_map.emplace("OverexcLimX1.t3", &assign_OverexcLimX1_t3); + assign_map.emplace("OverexcLimX1.vlow", &assign_OverexcLimX1_vlow); } void OverexcLimX1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void OverexcLimX1::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimX1.efd1", &get_OverexcLimX1_efd1); - get_map.emplace("cim:OverexcLimX1.efd2", &get_OverexcLimX1_efd2); - get_map.emplace("cim:OverexcLimX1.efd3", &get_OverexcLimX1_efd3); - get_map.emplace("cim:OverexcLimX1.efddes", &get_OverexcLimX1_efddes); - get_map.emplace("cim:OverexcLimX1.efdrated", &get_OverexcLimX1_efdrated); - get_map.emplace("cim:OverexcLimX1.kmx", &get_OverexcLimX1_kmx); - get_map.emplace("cim:OverexcLimX1.t1", &get_OverexcLimX1_t1); - get_map.emplace("cim:OverexcLimX1.t2", &get_OverexcLimX1_t2); - get_map.emplace("cim:OverexcLimX1.t3", &get_OverexcLimX1_t3); - get_map.emplace("cim:OverexcLimX1.vlow", &get_OverexcLimX1_vlow); + get_map.emplace("OverexcLimX1.efd1", &get_OverexcLimX1_efd1); + get_map.emplace("OverexcLimX1.efd2", &get_OverexcLimX1_efd2); + get_map.emplace("OverexcLimX1.efd3", &get_OverexcLimX1_efd3); + get_map.emplace("OverexcLimX1.efddes", &get_OverexcLimX1_efddes); + get_map.emplace("OverexcLimX1.efdrated", &get_OverexcLimX1_efdrated); + get_map.emplace("OverexcLimX1.kmx", &get_OverexcLimX1_kmx); + get_map.emplace("OverexcLimX1.t1", &get_OverexcLimX1_t1); + get_map.emplace("OverexcLimX1.t2", &get_OverexcLimX1_t2); + get_map.emplace("OverexcLimX1.t3", &get_OverexcLimX1_t3); + get_map.emplace("OverexcLimX1.vlow", &get_OverexcLimX1_vlow); } void OverexcLimX1::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void OverexcLimX1::addEnumGetFnsToMap(std::map& get_m OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimX1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimX1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimX1::declare() { return BaseClassDefiner(OverexcLimX1::addConstructToMap, OverexcLimX1::addPrimitiveAssignFnsToMap, OverexcLimX1::addClassAssignFnsToMap, OverexcLimX1::debugName); } +std::map OverexcLimX1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimX1_factory() diff --git a/CGMES_3.0.0/OverexcLimX1.hpp b/CGMES_3.0.0/OverexcLimX1.hpp index 06ce2480b..7a77a4f15 100644 --- a/CGMES_3.0.0/OverexcLimX1.hpp +++ b/CGMES_3.0.0/OverexcLimX1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimX1_factory(); diff --git a/CGMES_3.0.0/OverexcLimX2.cpp b/CGMES_3.0.0/OverexcLimX2.cpp index 0a0443e80..cb3cfc93b 100644 --- a/CGMES_3.0.0/OverexcLimX2.cpp +++ b/CGMES_3.0.0/OverexcLimX2.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcLimX2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcLimX2.efd1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efd2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efd3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efddes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.efdrated", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.kmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.m", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcLimX2.vlow", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcLimX2::OverexcLimX2() {} OverexcLimX2::~OverexcLimX2() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcLimX2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcLimX2::getClassNamespaceUrl() const { - { "cim:OverexcLimX2.efd1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efd2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efd3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efddes", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.efdrated", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.kmx", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.m", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t1", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t2", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.t3", { CGMESProfile::DY, } }, - { "cim:OverexcLimX2.vlow", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcLimX2::getPossibleProfilesForClass() const +const std::string& OverexcLimX2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcLimX2::getPossibleProfilesForAttributes() const +const std::list& OverexcLimX2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcLimX2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcLimX2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcLimX2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_OverexcLimX2_efd1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* OverexcLimX2::debugString() const void OverexcLimX2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcLimX2", &OverexcLimX2_factory); + factory_map.emplace("OverexcLimX2", &OverexcLimX2_factory); } void OverexcLimX2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcLimX2.efd1", &assign_OverexcLimX2_efd1); - assign_map.emplace("cim:OverexcLimX2.efd2", &assign_OverexcLimX2_efd2); - assign_map.emplace("cim:OverexcLimX2.efd3", &assign_OverexcLimX2_efd3); - assign_map.emplace("cim:OverexcLimX2.efddes", &assign_OverexcLimX2_efddes); - assign_map.emplace("cim:OverexcLimX2.efdrated", &assign_OverexcLimX2_efdrated); - assign_map.emplace("cim:OverexcLimX2.kmx", &assign_OverexcLimX2_kmx); - assign_map.emplace("cim:OverexcLimX2.m", &assign_OverexcLimX2_m); - assign_map.emplace("cim:OverexcLimX2.t1", &assign_OverexcLimX2_t1); - assign_map.emplace("cim:OverexcLimX2.t2", &assign_OverexcLimX2_t2); - assign_map.emplace("cim:OverexcLimX2.t3", &assign_OverexcLimX2_t3); - assign_map.emplace("cim:OverexcLimX2.vlow", &assign_OverexcLimX2_vlow); + assign_map.emplace("OverexcLimX2.efd1", &assign_OverexcLimX2_efd1); + assign_map.emplace("OverexcLimX2.efd2", &assign_OverexcLimX2_efd2); + assign_map.emplace("OverexcLimX2.efd3", &assign_OverexcLimX2_efd3); + assign_map.emplace("OverexcLimX2.efddes", &assign_OverexcLimX2_efddes); + assign_map.emplace("OverexcLimX2.efdrated", &assign_OverexcLimX2_efdrated); + assign_map.emplace("OverexcLimX2.kmx", &assign_OverexcLimX2_kmx); + assign_map.emplace("OverexcLimX2.m", &assign_OverexcLimX2_m); + assign_map.emplace("OverexcLimX2.t1", &assign_OverexcLimX2_t1); + assign_map.emplace("OverexcLimX2.t2", &assign_OverexcLimX2_t2); + assign_map.emplace("OverexcLimX2.t3", &assign_OverexcLimX2_t3); + assign_map.emplace("OverexcLimX2.vlow", &assign_OverexcLimX2_vlow); } void OverexcLimX2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void OverexcLimX2::addClassAssignFnsToMap(std::unordered_map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcLimX2.efd1", &get_OverexcLimX2_efd1); - get_map.emplace("cim:OverexcLimX2.efd2", &get_OverexcLimX2_efd2); - get_map.emplace("cim:OverexcLimX2.efd3", &get_OverexcLimX2_efd3); - get_map.emplace("cim:OverexcLimX2.efddes", &get_OverexcLimX2_efddes); - get_map.emplace("cim:OverexcLimX2.efdrated", &get_OverexcLimX2_efdrated); - get_map.emplace("cim:OverexcLimX2.kmx", &get_OverexcLimX2_kmx); - get_map.emplace("cim:OverexcLimX2.m", &get_OverexcLimX2_m); - get_map.emplace("cim:OverexcLimX2.t1", &get_OverexcLimX2_t1); - get_map.emplace("cim:OverexcLimX2.t2", &get_OverexcLimX2_t2); - get_map.emplace("cim:OverexcLimX2.t3", &get_OverexcLimX2_t3); - get_map.emplace("cim:OverexcLimX2.vlow", &get_OverexcLimX2_vlow); + get_map.emplace("OverexcLimX2.efd1", &get_OverexcLimX2_efd1); + get_map.emplace("OverexcLimX2.efd2", &get_OverexcLimX2_efd2); + get_map.emplace("OverexcLimX2.efd3", &get_OverexcLimX2_efd3); + get_map.emplace("OverexcLimX2.efddes", &get_OverexcLimX2_efddes); + get_map.emplace("OverexcLimX2.efdrated", &get_OverexcLimX2_efdrated); + get_map.emplace("OverexcLimX2.kmx", &get_OverexcLimX2_kmx); + get_map.emplace("OverexcLimX2.m", &get_OverexcLimX2_m); + get_map.emplace("OverexcLimX2.t1", &get_OverexcLimX2_t1); + get_map.emplace("OverexcLimX2.t2", &get_OverexcLimX2_t2); + get_map.emplace("OverexcLimX2.t3", &get_OverexcLimX2_t3); + get_map.emplace("OverexcLimX2.vlow", &get_OverexcLimX2_vlow); } void OverexcLimX2::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void OverexcLimX2::addEnumGetFnsToMap(std::map& get_m OverexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool OverexcLimX2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "OverexcLimX2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner OverexcLimX2::declare() { return BaseClassDefiner(OverexcLimX2::addConstructToMap, OverexcLimX2::addPrimitiveAssignFnsToMap, OverexcLimX2::addClassAssignFnsToMap, OverexcLimX2::debugName); } +std::map OverexcLimX2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcLimX2_factory() diff --git a/CGMES_3.0.0/OverexcLimX2.hpp b/CGMES_3.0.0/OverexcLimX2.hpp index 5d70ef64f..d81db37ec 100644 --- a/CGMES_3.0.0/OverexcLimX2.hpp +++ b/CGMES_3.0.0/OverexcLimX2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcLimX2_factory(); diff --git a/CGMES_3.0.0/OverexcitationLimiterDynamics.cpp b/CGMES_3.0.0/OverexcitationLimiterDynamics.cpp index bab89ee82..7ca27b374 100644 --- a/CGMES_3.0.0/OverexcitationLimiterDynamics.cpp +++ b/CGMES_3.0.0/OverexcitationLimiterDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcitationLimiterDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcitationLimiterDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcitationLimiterDynamics::OverexcitationLimiterDynamics() : ExcitationSystemDynamics(nullptr) {} OverexcitationLimiterDynamics::~OverexcitationLimiterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcitationLimiterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcitationLimiterDynamics::getClassNamespaceUrl() const { - { "cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcitationLimiterDynamics::getPossibleProfilesForClass() const +const std::string& OverexcitationLimiterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcitationLimiterDynamics::getPossibleProfilesForAttributes() const +const std::list& OverexcitationLimiterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcitationLimiterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcitationLimiterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcitationLimiterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_OverexcitationLimiterDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* OverexcitationLimiterDynamics::debugString() const void OverexcitationLimiterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcitationLimiterDynamics", &OverexcitationLimiterDynamics_factory); + factory_map.emplace("OverexcitationLimiterDynamics", &OverexcitationLimiterDynamics_factory); } void OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void OverexcitationLimiterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_OverexcitationLimiterDynamics_ExcitationSystemDynamics); + assign_map.emplace("OverexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_OverexcitationLimiterDynamics_ExcitationSystemDynamics); } void OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:OverexcitationLimiterDynamics.ExcitationSystemDynamics", &get_OverexcitationLimiterDynamics_ExcitationSystemDynamics); + get_map.emplace("OverexcitationLimiterDynamics.ExcitationSystemDynamics", &get_OverexcitationLimiterDynamics_ExcitationSystemDynamics); } void OverexcitationLimiterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void OverexcitationLimiterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner OverexcitationLimiterDynamics::declare() { return BaseClassDefiner(OverexcitationLimiterDynamics::addConstructToMap, OverexcitationLimiterDynamics::addPrimitiveAssignFnsToMap, OverexcitationLimiterDynamics::addClassAssignFnsToMap, OverexcitationLimiterDynamics::debugName); } +std::map OverexcitationLimiterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcitationLimiterDynamics_factory() diff --git a/CGMES_3.0.0/OverexcitationLimiterDynamics.hpp b/CGMES_3.0.0/OverexcitationLimiterDynamics.hpp index a3a94b41f..06d293ab8 100644 --- a/CGMES_3.0.0/OverexcitationLimiterDynamics.hpp +++ b/CGMES_3.0.0/OverexcitationLimiterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcitationLimiterDynamics_factory(); diff --git a/CGMES_3.0.0/OverexcitationLimiterUserDefined.cpp b/CGMES_3.0.0/OverexcitationLimiterUserDefined.cpp index 18a97fc36..8d6facd66 100644 --- a/CGMES_3.0.0/OverexcitationLimiterUserDefined.cpp +++ b/CGMES_3.0.0/OverexcitationLimiterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + OverexcitationLimiterUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "OverexcitationLimiterUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + OverexcitationLimiterUserDefined::OverexcitationLimiterUserDefined() {} OverexcitationLimiterUserDefined::~OverexcitationLimiterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& OverexcitationLimiterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& OverexcitationLimiterUserDefined::getClassNamespaceUrl() const { - { "cim:OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:OverexcitationLimiterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -OverexcitationLimiterUserDefined::getPossibleProfilesForClass() const +const std::string& OverexcitationLimiterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -OverexcitationLimiterUserDefined::getPossibleProfilesForAttributes() const +const std::list& OverexcitationLimiterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OverexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& OverexcitationLimiterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& OverexcitationLimiterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& OverexcitationLimiterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* OverexcitationLimiterUserDefined::debugString() const void OverexcitationLimiterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:OverexcitationLimiterUserDefined", &OverexcitationLimiterUserDefined_factory); + factory_map.emplace("OverexcitationLimiterUserDefined", &OverexcitationLimiterUserDefined_factory); } void OverexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterUserDefined.proprietary", &assign_OverexcitationLimiterUserDefined_proprietary); + assign_map.emplace("OverexcitationLimiterUserDefined.proprietary", &assign_OverexcitationLimiterUserDefined_proprietary); } void OverexcitationLimiterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_OverexcitationLimiterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_OverexcitationLimiterUserDefined_ProprietaryParameterDynamics); } void OverexcitationLimiterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { OverexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:OverexcitationLimiterUserDefined.proprietary", &get_OverexcitationLimiterUserDefined_proprietary); + get_map.emplace("OverexcitationLimiterUserDefined.proprietary", &get_OverexcitationLimiterUserDefined_proprietary); } void OverexcitationLimiterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void OverexcitationLimiterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner OverexcitationLimiterUserDefined::declare() { return BaseClassDefiner(OverexcitationLimiterUserDefined::addConstructToMap, OverexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap, OverexcitationLimiterUserDefined::addClassAssignFnsToMap, OverexcitationLimiterUserDefined::debugName); } +std::map OverexcitationLimiterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OverexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* OverexcitationLimiterUserDefined_factory() diff --git a/CGMES_3.0.0/OverexcitationLimiterUserDefined.hpp b/CGMES_3.0.0/OverexcitationLimiterUserDefined.hpp index d27d83405..79e6703a1 100644 --- a/CGMES_3.0.0/OverexcitationLimiterUserDefined.hpp +++ b/CGMES_3.0.0/OverexcitationLimiterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OverexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* OverexcitationLimiterUserDefined_factory(); diff --git a/CGMES_3.0.0/PFVArControllerType1Dynamics.cpp b/CGMES_3.0.0/PFVArControllerType1Dynamics.cpp index a9e1de1b5..1c90cb552 100644 --- a/CGMES_3.0.0/PFVArControllerType1Dynamics.cpp +++ b/CGMES_3.0.0/PFVArControllerType1Dynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType1Dynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType1Dynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1Dynamics.VoltageAdjusterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType1Dynamics::PFVArControllerType1Dynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr), VoltageAdjusterDynamics(nullptr) {} PFVArControllerType1Dynamics::~PFVArControllerType1Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType1Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType1Dynamics::getClassNamespaceUrl() const { - { "cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1Dynamics.VoltageAdjusterDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType1Dynamics::getPossibleProfilesForClass() const +const std::string& PFVArControllerType1Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType1Dynamics::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType1Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType1Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType1Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType1Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PFVArControllerType1Dynamics(BaseClass*, BaseClass*); @@ -119,7 +151,7 @@ const char* PFVArControllerType1Dynamics::debugString() const void PFVArControllerType1Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType1Dynamics", &PFVArControllerType1Dynamics_factory); + factory_map.emplace("PFVArControllerType1Dynamics", &PFVArControllerType1Dynamics_factory); } void PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -128,9 +160,9 @@ void PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map void PFVArControllerType1Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType1Dynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:PFVArControllerType1Dynamics.RemoteInputSignal", &assign_PFVArControllerType1Dynamics_RemoteInputSignal); - assign_map.emplace("cim:PFVArControllerType1Dynamics.VoltageAdjusterDynamics", &assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics); + assign_map.emplace("PFVArControllerType1Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType1Dynamics_ExcitationSystemDynamics); + assign_map.emplace("PFVArControllerType1Dynamics.RemoteInputSignal", &assign_PFVArControllerType1Dynamics_RemoteInputSignal); + assign_map.emplace("PFVArControllerType1Dynamics.VoltageAdjusterDynamics", &assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics); } void PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -141,7 +173,7 @@ void PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType1Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType1Dynamics_ExcitationSystemDynamics); + get_map.emplace("PFVArControllerType1Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType1Dynamics_ExcitationSystemDynamics); } void PFVArControllerType1Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -149,11 +181,25 @@ void PFVArControllerType1Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType1Dynamics::declare() { return BaseClassDefiner(PFVArControllerType1Dynamics::addConstructToMap, PFVArControllerType1Dynamics::addPrimitiveAssignFnsToMap, PFVArControllerType1Dynamics::addClassAssignFnsToMap, PFVArControllerType1Dynamics::debugName); } +std::map PFVArControllerType1Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType1Dynamics_factory() diff --git a/CGMES_3.0.0/PFVArControllerType1Dynamics.hpp b/CGMES_3.0.0/PFVArControllerType1Dynamics.hpp index 8dded7991..786f15f5c 100644 --- a/CGMES_3.0.0/PFVArControllerType1Dynamics.hpp +++ b/CGMES_3.0.0/PFVArControllerType1Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType1Dynamics_factory(); diff --git a/CGMES_3.0.0/PFVArControllerType1UserDefined.cpp b/CGMES_3.0.0/PFVArControllerType1UserDefined.cpp index 10b773647..819e8ef8d 100644 --- a/CGMES_3.0.0/PFVArControllerType1UserDefined.cpp +++ b/CGMES_3.0.0/PFVArControllerType1UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType1UserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType1UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArControllerType1UserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType1UserDefined::PFVArControllerType1UserDefined() {} PFVArControllerType1UserDefined::~PFVArControllerType1UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType1UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType1UserDefined::getClassNamespaceUrl() const { - { "cim:PFVArControllerType1UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType1UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType1UserDefined::getPossibleProfilesForClass() const +const std::string& PFVArControllerType1UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType1UserDefined::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType1UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType1UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType1UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType1UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PFVArControllerType1UserDefined::debugString() const void PFVArControllerType1UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType1UserDefined", &PFVArControllerType1UserDefined_factory); + factory_map.emplace("PFVArControllerType1UserDefined", &PFVArControllerType1UserDefined_factory); } void PFVArControllerType1UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1UserDefined.proprietary", &assign_PFVArControllerType1UserDefined_proprietary); + assign_map.emplace("PFVArControllerType1UserDefined.proprietary", &assign_PFVArControllerType1UserDefined_proprietary); } void PFVArControllerType1UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType1UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType1UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PFVArControllerType1UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType1UserDefined_ProprietaryParameterDynamics); } void PFVArControllerType1UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType1UserDefined.proprietary", &get_PFVArControllerType1UserDefined_proprietary); + get_map.emplace("PFVArControllerType1UserDefined.proprietary", &get_PFVArControllerType1UserDefined_proprietary); } void PFVArControllerType1UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PFVArControllerType1UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType1UserDefined::declare() { return BaseClassDefiner(PFVArControllerType1UserDefined::addConstructToMap, PFVArControllerType1UserDefined::addPrimitiveAssignFnsToMap, PFVArControllerType1UserDefined::addClassAssignFnsToMap, PFVArControllerType1UserDefined::debugName); } +std::map PFVArControllerType1UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType1UserDefined_factory() diff --git a/CGMES_3.0.0/PFVArControllerType1UserDefined.hpp b/CGMES_3.0.0/PFVArControllerType1UserDefined.hpp index ac64de6f1..c6970fcde 100644 --- a/CGMES_3.0.0/PFVArControllerType1UserDefined.hpp +++ b/CGMES_3.0.0/PFVArControllerType1UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType1UserDefined_factory(); diff --git a/CGMES_3.0.0/PFVArControllerType2Dynamics.cpp b/CGMES_3.0.0/PFVArControllerType2Dynamics.cpp index e6c875b3a..557bcfa92 100644 --- a/CGMES_3.0.0/PFVArControllerType2Dynamics.cpp +++ b/CGMES_3.0.0/PFVArControllerType2Dynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType2Dynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType2Dynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType2Dynamics::PFVArControllerType2Dynamics() : ExcitationSystemDynamics(nullptr) {} PFVArControllerType2Dynamics::~PFVArControllerType2Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType2Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType2Dynamics::getClassNamespaceUrl() const { - { "cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType2Dynamics::getPossibleProfilesForClass() const +const std::string& PFVArControllerType2Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType2Dynamics::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType2Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType2Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType2Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType2Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PFVArControllerType2Dynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* PFVArControllerType2Dynamics::debugString() const void PFVArControllerType2Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType2Dynamics", &PFVArControllerType2Dynamics_factory); + factory_map.emplace("PFVArControllerType2Dynamics", &PFVArControllerType2Dynamics_factory); } void PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map void PFVArControllerType2Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType2Dynamics_ExcitationSystemDynamics); + assign_map.emplace("PFVArControllerType2Dynamics.ExcitationSystemDynamics", &assign_PFVArControllerType2Dynamics_ExcitationSystemDynamics); } void PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType2Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType2Dynamics_ExcitationSystemDynamics); + get_map.emplace("PFVArControllerType2Dynamics.ExcitationSystemDynamics", &get_PFVArControllerType2Dynamics_ExcitationSystemDynamics); } void PFVArControllerType2Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void PFVArControllerType2Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType2Dynamics::declare() { return BaseClassDefiner(PFVArControllerType2Dynamics::addConstructToMap, PFVArControllerType2Dynamics::addPrimitiveAssignFnsToMap, PFVArControllerType2Dynamics::addClassAssignFnsToMap, PFVArControllerType2Dynamics::debugName); } +std::map PFVArControllerType2Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType2Dynamics_factory() diff --git a/CGMES_3.0.0/PFVArControllerType2Dynamics.hpp b/CGMES_3.0.0/PFVArControllerType2Dynamics.hpp index 5d6176f4c..186920c3b 100644 --- a/CGMES_3.0.0/PFVArControllerType2Dynamics.hpp +++ b/CGMES_3.0.0/PFVArControllerType2Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType2Dynamics_factory(); diff --git a/CGMES_3.0.0/PFVArControllerType2UserDefined.cpp b/CGMES_3.0.0/PFVArControllerType2UserDefined.cpp index 166ceecea..dd8c7ca89 100644 --- a/CGMES_3.0.0/PFVArControllerType2UserDefined.cpp +++ b/CGMES_3.0.0/PFVArControllerType2UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArControllerType2UserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArControllerType2UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArControllerType2UserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArControllerType2UserDefined::PFVArControllerType2UserDefined() {} PFVArControllerType2UserDefined::~PFVArControllerType2UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArControllerType2UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArControllerType2UserDefined::getClassNamespaceUrl() const { - { "cim:PFVArControllerType2UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PFVArControllerType2UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArControllerType2UserDefined::getPossibleProfilesForClass() const +const std::string& PFVArControllerType2UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArControllerType2UserDefined::getPossibleProfilesForAttributes() const +const std::list& PFVArControllerType2UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArControllerType2UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArControllerType2UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArControllerType2UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PFVArControllerType2UserDefined::debugString() const void PFVArControllerType2UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArControllerType2UserDefined", &PFVArControllerType2UserDefined_factory); + factory_map.emplace("PFVArControllerType2UserDefined", &PFVArControllerType2UserDefined_factory); } void PFVArControllerType2UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2UserDefined.proprietary", &assign_PFVArControllerType2UserDefined_proprietary); + assign_map.emplace("PFVArControllerType2UserDefined.proprietary", &assign_PFVArControllerType2UserDefined_proprietary); } void PFVArControllerType2UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArControllerType2UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType2UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PFVArControllerType2UserDefined.ProprietaryParameterDynamics", &assign_PFVArControllerType2UserDefined_ProprietaryParameterDynamics); } void PFVArControllerType2UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArControllerType2UserDefined.proprietary", &get_PFVArControllerType2UserDefined_proprietary); + get_map.emplace("PFVArControllerType2UserDefined.proprietary", &get_PFVArControllerType2UserDefined_proprietary); } void PFVArControllerType2UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PFVArControllerType2UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArControllerType2UserDefined::declare() { return BaseClassDefiner(PFVArControllerType2UserDefined::addConstructToMap, PFVArControllerType2UserDefined::addPrimitiveAssignFnsToMap, PFVArControllerType2UserDefined::addClassAssignFnsToMap, PFVArControllerType2UserDefined::debugName); } +std::map PFVArControllerType2UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArControllerType2UserDefined_factory() diff --git a/CGMES_3.0.0/PFVArControllerType2UserDefined.hpp b/CGMES_3.0.0/PFVArControllerType2UserDefined.hpp index 4204b194f..e1efa58aa 100644 --- a/CGMES_3.0.0/PFVArControllerType2UserDefined.hpp +++ b/CGMES_3.0.0/PFVArControllerType2UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArControllerType2UserDefined_factory(); diff --git a/CGMES_3.0.0/PFVArType1IEEEPFController.cpp b/CGMES_3.0.0/PFVArType1IEEEPFController.cpp index 0bce66721..e50b7342f 100644 --- a/CGMES_3.0.0/PFVArType1IEEEPFController.cpp +++ b/CGMES_3.0.0/PFVArType1IEEEPFController.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType1IEEEPFController(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType1IEEEPFController.ovex", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.tpfc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vitmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpfcbw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vpfref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vvtmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEPFController.vvtmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType1IEEEPFController::PFVArType1IEEEPFController() {} PFVArType1IEEEPFController::~PFVArType1IEEEPFController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType1IEEEPFController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType1IEEEPFController::getClassNamespaceUrl() const { - { "cim:PFVArType1IEEEPFController.ovex", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.tpfc", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vitmin", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpf", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpfcbw", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vpfref", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vvtmax", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEPFController.vvtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType1IEEEPFController::getPossibleProfilesForClass() const +const std::string& PFVArType1IEEEPFController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType1IEEEPFController::getPossibleProfilesForAttributes() const +const std::list& PFVArType1IEEEPFController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType1IEEEPFController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType1IEEEPFController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType1IEEEPFController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType1IEEEPFController_ovex(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* PFVArType1IEEEPFController::debugString() const void PFVArType1IEEEPFController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType1IEEEPFController", &PFVArType1IEEEPFController_factory); + factory_map.emplace("PFVArType1IEEEPFController", &PFVArType1IEEEPFController_factory); } void PFVArType1IEEEPFController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType1IEEEPFController.ovex", &assign_PFVArType1IEEEPFController_ovex); - assign_map.emplace("cim:PFVArType1IEEEPFController.tpfc", &assign_PFVArType1IEEEPFController_tpfc); - assign_map.emplace("cim:PFVArType1IEEEPFController.vitmin", &assign_PFVArType1IEEEPFController_vitmin); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpf", &assign_PFVArType1IEEEPFController_vpf); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpfcbw", &assign_PFVArType1IEEEPFController_vpfcbw); - assign_map.emplace("cim:PFVArType1IEEEPFController.vpfref", &assign_PFVArType1IEEEPFController_vpfref); - assign_map.emplace("cim:PFVArType1IEEEPFController.vvtmax", &assign_PFVArType1IEEEPFController_vvtmax); - assign_map.emplace("cim:PFVArType1IEEEPFController.vvtmin", &assign_PFVArType1IEEEPFController_vvtmin); + assign_map.emplace("PFVArType1IEEEPFController.ovex", &assign_PFVArType1IEEEPFController_ovex); + assign_map.emplace("PFVArType1IEEEPFController.tpfc", &assign_PFVArType1IEEEPFController_tpfc); + assign_map.emplace("PFVArType1IEEEPFController.vitmin", &assign_PFVArType1IEEEPFController_vitmin); + assign_map.emplace("PFVArType1IEEEPFController.vpf", &assign_PFVArType1IEEEPFController_vpf); + assign_map.emplace("PFVArType1IEEEPFController.vpfcbw", &assign_PFVArType1IEEEPFController_vpfcbw); + assign_map.emplace("PFVArType1IEEEPFController.vpfref", &assign_PFVArType1IEEEPFController_vpfref); + assign_map.emplace("PFVArType1IEEEPFController.vvtmax", &assign_PFVArType1IEEEPFController_vvtmax); + assign_map.emplace("PFVArType1IEEEPFController.vvtmin", &assign_PFVArType1IEEEPFController_vvtmin); } void PFVArType1IEEEPFController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void PFVArType1IEEEPFController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType1IEEEPFController.ovex", &get_PFVArType1IEEEPFController_ovex); - get_map.emplace("cim:PFVArType1IEEEPFController.tpfc", &get_PFVArType1IEEEPFController_tpfc); - get_map.emplace("cim:PFVArType1IEEEPFController.vitmin", &get_PFVArType1IEEEPFController_vitmin); - get_map.emplace("cim:PFVArType1IEEEPFController.vpf", &get_PFVArType1IEEEPFController_vpf); - get_map.emplace("cim:PFVArType1IEEEPFController.vpfcbw", &get_PFVArType1IEEEPFController_vpfcbw); - get_map.emplace("cim:PFVArType1IEEEPFController.vpfref", &get_PFVArType1IEEEPFController_vpfref); - get_map.emplace("cim:PFVArType1IEEEPFController.vvtmax", &get_PFVArType1IEEEPFController_vvtmax); - get_map.emplace("cim:PFVArType1IEEEPFController.vvtmin", &get_PFVArType1IEEEPFController_vvtmin); + get_map.emplace("PFVArType1IEEEPFController.ovex", &get_PFVArType1IEEEPFController_ovex); + get_map.emplace("PFVArType1IEEEPFController.tpfc", &get_PFVArType1IEEEPFController_tpfc); + get_map.emplace("PFVArType1IEEEPFController.vitmin", &get_PFVArType1IEEEPFController_vitmin); + get_map.emplace("PFVArType1IEEEPFController.vpf", &get_PFVArType1IEEEPFController_vpf); + get_map.emplace("PFVArType1IEEEPFController.vpfcbw", &get_PFVArType1IEEEPFController_vpfcbw); + get_map.emplace("PFVArType1IEEEPFController.vpfref", &get_PFVArType1IEEEPFController_vpfref); + get_map.emplace("PFVArType1IEEEPFController.vvtmax", &get_PFVArType1IEEEPFController_vvtmax); + get_map.emplace("PFVArType1IEEEPFController.vvtmin", &get_PFVArType1IEEEPFController_vvtmin); } void PFVArType1IEEEPFController::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void PFVArType1IEEEPFController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType1IEEEPFController::declare() { return BaseClassDefiner(PFVArType1IEEEPFController::addConstructToMap, PFVArType1IEEEPFController::addPrimitiveAssignFnsToMap, PFVArType1IEEEPFController::addClassAssignFnsToMap, PFVArType1IEEEPFController::debugName); } +std::map PFVArType1IEEEPFController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType1IEEEPFController_factory() diff --git a/CGMES_3.0.0/PFVArType1IEEEPFController.hpp b/CGMES_3.0.0/PFVArType1IEEEPFController.hpp index adba985cf..1b1f6a2d7 100644 --- a/CGMES_3.0.0/PFVArType1IEEEPFController.hpp +++ b/CGMES_3.0.0/PFVArType1IEEEPFController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType1IEEEPFController_factory(); diff --git a/CGMES_3.0.0/PFVArType1IEEEVArController.cpp b/CGMES_3.0.0/PFVArType1IEEEVArController.cpp index 589dd60a6..37700d64f 100644 --- a/CGMES_3.0.0/PFVArType1IEEEVArController.cpp +++ b/CGMES_3.0.0/PFVArType1IEEEVArController.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType1IEEEVArController(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType1IEEEVArController.tvarc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvar", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvarcbw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvarref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvtmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType1IEEEVArController.vvtmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType1IEEEVArController::PFVArType1IEEEVArController() {} PFVArType1IEEEVArController::~PFVArType1IEEEVArController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType1IEEEVArController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType1IEEEVArController::getClassNamespaceUrl() const { - { "cim:PFVArType1IEEEVArController.tvarc", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvar", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvarcbw", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvarref", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvtmax", { CGMESProfile::DY, } }, - { "cim:PFVArType1IEEEVArController.vvtmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType1IEEEVArController::getPossibleProfilesForClass() const +const std::string& PFVArType1IEEEVArController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType1IEEEVArController::getPossibleProfilesForAttributes() const +const std::list& PFVArType1IEEEVArController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType1Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType1IEEEVArController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType1IEEEVArController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType1IEEEVArController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType1IEEEVArController_tvarc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* PFVArType1IEEEVArController::debugString() const void PFVArType1IEEEVArController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType1IEEEVArController", &PFVArType1IEEEVArController_factory); + factory_map.emplace("PFVArType1IEEEVArController", &PFVArType1IEEEVArController_factory); } void PFVArType1IEEEVArController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType1IEEEVArController.tvarc", &assign_PFVArType1IEEEVArController_tvarc); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvar", &assign_PFVArType1IEEEVArController_vvar); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvarcbw", &assign_PFVArType1IEEEVArController_vvarcbw); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvarref", &assign_PFVArType1IEEEVArController_vvarref); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvtmax", &assign_PFVArType1IEEEVArController_vvtmax); - assign_map.emplace("cim:PFVArType1IEEEVArController.vvtmin", &assign_PFVArType1IEEEVArController_vvtmin); + assign_map.emplace("PFVArType1IEEEVArController.tvarc", &assign_PFVArType1IEEEVArController_tvarc); + assign_map.emplace("PFVArType1IEEEVArController.vvar", &assign_PFVArType1IEEEVArController_vvar); + assign_map.emplace("PFVArType1IEEEVArController.vvarcbw", &assign_PFVArType1IEEEVArController_vvarcbw); + assign_map.emplace("PFVArType1IEEEVArController.vvarref", &assign_PFVArType1IEEEVArController_vvarref); + assign_map.emplace("PFVArType1IEEEVArController.vvtmax", &assign_PFVArType1IEEEVArController_vvtmax); + assign_map.emplace("PFVArType1IEEEVArController.vvtmin", &assign_PFVArType1IEEEVArController_vvtmin); } void PFVArType1IEEEVArController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void PFVArType1IEEEVArController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType1Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType1IEEEVArController.tvarc", &get_PFVArType1IEEEVArController_tvarc); - get_map.emplace("cim:PFVArType1IEEEVArController.vvar", &get_PFVArType1IEEEVArController_vvar); - get_map.emplace("cim:PFVArType1IEEEVArController.vvarcbw", &get_PFVArType1IEEEVArController_vvarcbw); - get_map.emplace("cim:PFVArType1IEEEVArController.vvarref", &get_PFVArType1IEEEVArController_vvarref); - get_map.emplace("cim:PFVArType1IEEEVArController.vvtmax", &get_PFVArType1IEEEVArController_vvtmax); - get_map.emplace("cim:PFVArType1IEEEVArController.vvtmin", &get_PFVArType1IEEEVArController_vvtmin); + get_map.emplace("PFVArType1IEEEVArController.tvarc", &get_PFVArType1IEEEVArController_tvarc); + get_map.emplace("PFVArType1IEEEVArController.vvar", &get_PFVArType1IEEEVArController_vvar); + get_map.emplace("PFVArType1IEEEVArController.vvarcbw", &get_PFVArType1IEEEVArController_vvarcbw); + get_map.emplace("PFVArType1IEEEVArController.vvarref", &get_PFVArType1IEEEVArController_vvarref); + get_map.emplace("PFVArType1IEEEVArController.vvtmax", &get_PFVArType1IEEEVArController_vvtmax); + get_map.emplace("PFVArType1IEEEVArController.vvtmin", &get_PFVArType1IEEEVArController_vvtmin); } void PFVArType1IEEEVArController::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void PFVArType1IEEEVArController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType1IEEEVArController::declare() { return BaseClassDefiner(PFVArType1IEEEVArController::addConstructToMap, PFVArType1IEEEVArController::addPrimitiveAssignFnsToMap, PFVArType1IEEEVArController::addClassAssignFnsToMap, PFVArType1IEEEVArController::debugName); } +std::map PFVArType1IEEEVArController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType1Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType1IEEEVArController_factory() diff --git a/CGMES_3.0.0/PFVArType1IEEEVArController.hpp b/CGMES_3.0.0/PFVArType1IEEEVArController.hpp index 59cb9ce59..a033fcdae 100644 --- a/CGMES_3.0.0/PFVArType1IEEEVArController.hpp +++ b/CGMES_3.0.0/PFVArType1IEEEVArController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType1Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType1IEEEVArController_factory(); diff --git a/CGMES_3.0.0/PFVArType2Common1.cpp b/CGMES_3.0.0/PFVArType2Common1.cpp index 8bd6aecd5..4736352bf 100644 --- a/CGMES_3.0.0/PFVArType2Common1.cpp +++ b/CGMES_3.0.0/PFVArType2Common1.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2Common1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2Common1.j", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.max", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2Common1.ref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2Common1::PFVArType2Common1() {} PFVArType2Common1::~PFVArType2Common1() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2Common1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2Common1::getClassNamespaceUrl() const { - { "cim:PFVArType2Common1.j", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.max", { CGMESProfile::DY, } }, - { "cim:PFVArType2Common1.ref", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2Common1::getPossibleProfilesForClass() const +const std::string& PFVArType2Common1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2Common1::getPossibleProfilesForAttributes() const +const std::list& PFVArType2Common1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2Common1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2Common1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2Common1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2Common1_j(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* PFVArType2Common1::debugString() const void PFVArType2Common1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2Common1", &PFVArType2Common1_factory); + factory_map.emplace("PFVArType2Common1", &PFVArType2Common1_factory); } void PFVArType2Common1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2Common1.j", &assign_PFVArType2Common1_j); - assign_map.emplace("cim:PFVArType2Common1.ki", &assign_PFVArType2Common1_ki); - assign_map.emplace("cim:PFVArType2Common1.kp", &assign_PFVArType2Common1_kp); - assign_map.emplace("cim:PFVArType2Common1.max", &assign_PFVArType2Common1_max); - assign_map.emplace("cim:PFVArType2Common1.ref", &assign_PFVArType2Common1_ref); + assign_map.emplace("PFVArType2Common1.j", &assign_PFVArType2Common1_j); + assign_map.emplace("PFVArType2Common1.ki", &assign_PFVArType2Common1_ki); + assign_map.emplace("PFVArType2Common1.kp", &assign_PFVArType2Common1_kp); + assign_map.emplace("PFVArType2Common1.max", &assign_PFVArType2Common1_max); + assign_map.emplace("PFVArType2Common1.ref", &assign_PFVArType2Common1_ref); } void PFVArType2Common1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void PFVArType2Common1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2Common1.j", &get_PFVArType2Common1_j); - get_map.emplace("cim:PFVArType2Common1.ki", &get_PFVArType2Common1_ki); - get_map.emplace("cim:PFVArType2Common1.kp", &get_PFVArType2Common1_kp); - get_map.emplace("cim:PFVArType2Common1.max", &get_PFVArType2Common1_max); - get_map.emplace("cim:PFVArType2Common1.ref", &get_PFVArType2Common1_ref); + get_map.emplace("PFVArType2Common1.j", &get_PFVArType2Common1_j); + get_map.emplace("PFVArType2Common1.ki", &get_PFVArType2Common1_ki); + get_map.emplace("PFVArType2Common1.kp", &get_PFVArType2Common1_kp); + get_map.emplace("PFVArType2Common1.max", &get_PFVArType2Common1_max); + get_map.emplace("PFVArType2Common1.ref", &get_PFVArType2Common1_ref); } void PFVArType2Common1::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void PFVArType2Common1::addEnumGetFnsToMap(std::map& PFVArControllerType2Dynamics::addEnumGetFnsToMap(get_map); } +bool PFVArType2Common1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PFVArType2Common1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2Common1::declare() { return BaseClassDefiner(PFVArType2Common1::addConstructToMap, PFVArType2Common1::addPrimitiveAssignFnsToMap, PFVArType2Common1::addClassAssignFnsToMap, PFVArType2Common1::debugName); } +std::map PFVArType2Common1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2Common1_factory() diff --git a/CGMES_3.0.0/PFVArType2Common1.hpp b/CGMES_3.0.0/PFVArType2Common1.hpp index 3769c40f7..55f26940d 100644 --- a/CGMES_3.0.0/PFVArType2Common1.hpp +++ b/CGMES_3.0.0/PFVArType2Common1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -44,8 +45,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -53,7 +61,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2Common1_factory(); diff --git a/CGMES_3.0.0/PFVArType2IEEEPFController.cpp b/CGMES_3.0.0/PFVArType2IEEEPFController.cpp index bdf95df85..1423ee661 100644 --- a/CGMES_3.0.0/PFVArType2IEEEPFController.cpp +++ b/CGMES_3.0.0/PFVArType2IEEEPFController.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2IEEEPFController(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2IEEEPFController.exlon", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.pfref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vclmt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEPFController.vs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2IEEEPFController::PFVArType2IEEEPFController() {} PFVArType2IEEEPFController::~PFVArType2IEEEPFController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2IEEEPFController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2IEEEPFController::getClassNamespaceUrl() const { - { "cim:PFVArType2IEEEPFController.exlon", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.pfref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vclmt", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEPFController.vs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2IEEEPFController::getPossibleProfilesForClass() const +const std::string& PFVArType2IEEEPFController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2IEEEPFController::getPossibleProfilesForAttributes() const +const std::list& PFVArType2IEEEPFController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2IEEEPFController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2IEEEPFController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2IEEEPFController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2IEEEPFController_exlon(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PFVArType2IEEEPFController::debugString() const void PFVArType2IEEEPFController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2IEEEPFController", &PFVArType2IEEEPFController_factory); + factory_map.emplace("PFVArType2IEEEPFController", &PFVArType2IEEEPFController_factory); } void PFVArType2IEEEPFController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2IEEEPFController.exlon", &assign_PFVArType2IEEEPFController_exlon); - assign_map.emplace("cim:PFVArType2IEEEPFController.ki", &assign_PFVArType2IEEEPFController_ki); - assign_map.emplace("cim:PFVArType2IEEEPFController.kp", &assign_PFVArType2IEEEPFController_kp); - assign_map.emplace("cim:PFVArType2IEEEPFController.pfref", &assign_PFVArType2IEEEPFController_pfref); - assign_map.emplace("cim:PFVArType2IEEEPFController.vclmt", &assign_PFVArType2IEEEPFController_vclmt); - assign_map.emplace("cim:PFVArType2IEEEPFController.vref", &assign_PFVArType2IEEEPFController_vref); - assign_map.emplace("cim:PFVArType2IEEEPFController.vs", &assign_PFVArType2IEEEPFController_vs); + assign_map.emplace("PFVArType2IEEEPFController.exlon", &assign_PFVArType2IEEEPFController_exlon); + assign_map.emplace("PFVArType2IEEEPFController.ki", &assign_PFVArType2IEEEPFController_ki); + assign_map.emplace("PFVArType2IEEEPFController.kp", &assign_PFVArType2IEEEPFController_kp); + assign_map.emplace("PFVArType2IEEEPFController.pfref", &assign_PFVArType2IEEEPFController_pfref); + assign_map.emplace("PFVArType2IEEEPFController.vclmt", &assign_PFVArType2IEEEPFController_vclmt); + assign_map.emplace("PFVArType2IEEEPFController.vref", &assign_PFVArType2IEEEPFController_vref); + assign_map.emplace("PFVArType2IEEEPFController.vs", &assign_PFVArType2IEEEPFController_vs); } void PFVArType2IEEEPFController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void PFVArType2IEEEPFController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2IEEEPFController.exlon", &get_PFVArType2IEEEPFController_exlon); - get_map.emplace("cim:PFVArType2IEEEPFController.ki", &get_PFVArType2IEEEPFController_ki); - get_map.emplace("cim:PFVArType2IEEEPFController.kp", &get_PFVArType2IEEEPFController_kp); - get_map.emplace("cim:PFVArType2IEEEPFController.pfref", &get_PFVArType2IEEEPFController_pfref); - get_map.emplace("cim:PFVArType2IEEEPFController.vclmt", &get_PFVArType2IEEEPFController_vclmt); - get_map.emplace("cim:PFVArType2IEEEPFController.vref", &get_PFVArType2IEEEPFController_vref); - get_map.emplace("cim:PFVArType2IEEEPFController.vs", &get_PFVArType2IEEEPFController_vs); + get_map.emplace("PFVArType2IEEEPFController.exlon", &get_PFVArType2IEEEPFController_exlon); + get_map.emplace("PFVArType2IEEEPFController.ki", &get_PFVArType2IEEEPFController_ki); + get_map.emplace("PFVArType2IEEEPFController.kp", &get_PFVArType2IEEEPFController_kp); + get_map.emplace("PFVArType2IEEEPFController.pfref", &get_PFVArType2IEEEPFController_pfref); + get_map.emplace("PFVArType2IEEEPFController.vclmt", &get_PFVArType2IEEEPFController_vclmt); + get_map.emplace("PFVArType2IEEEPFController.vref", &get_PFVArType2IEEEPFController_vref); + get_map.emplace("PFVArType2IEEEPFController.vs", &get_PFVArType2IEEEPFController_vs); } void PFVArType2IEEEPFController::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void PFVArType2IEEEPFController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2IEEEPFController::declare() { return BaseClassDefiner(PFVArType2IEEEPFController::addConstructToMap, PFVArType2IEEEPFController::addPrimitiveAssignFnsToMap, PFVArType2IEEEPFController::addClassAssignFnsToMap, PFVArType2IEEEPFController::debugName); } +std::map PFVArType2IEEEPFController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2IEEEPFController_factory() diff --git a/CGMES_3.0.0/PFVArType2IEEEPFController.hpp b/CGMES_3.0.0/PFVArType2IEEEPFController.hpp index 5ef58f32c..a0efd6643 100644 --- a/CGMES_3.0.0/PFVArType2IEEEPFController.hpp +++ b/CGMES_3.0.0/PFVArType2IEEEPFController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2IEEEPFController_factory(); diff --git a/CGMES_3.0.0/PFVArType2IEEEVArController.cpp b/CGMES_3.0.0/PFVArType2IEEEVArController.cpp index 56e3c29b0..b24b32721 100644 --- a/CGMES_3.0.0/PFVArType2IEEEVArController.cpp +++ b/CGMES_3.0.0/PFVArType2IEEEVArController.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PFVArType2IEEEVArController(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PFVArType2IEEEVArController.exlon", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.qref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vclmt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PFVArType2IEEEVArController.vs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PFVArType2IEEEVArController::PFVArType2IEEEVArController() {} PFVArType2IEEEVArController::~PFVArType2IEEEVArController() {} -static const std::list PossibleProfilesForClass = +const std::list& PFVArType2IEEEVArController::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PFVArType2IEEEVArController::getClassNamespaceUrl() const { - { "cim:PFVArType2IEEEVArController.exlon", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.ki", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.kp", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.qref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vclmt", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vref", { CGMESProfile::DY, } }, - { "cim:PFVArType2IEEEVArController.vs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PFVArType2IEEEVArController::getPossibleProfilesForClass() const +const std::string& PFVArType2IEEEVArController::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PFVArType2IEEEVArController::getPossibleProfilesForAttributes() const +const std::list& PFVArType2IEEEVArController::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PFVArControllerType2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PFVArType2IEEEVArController::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PFVArType2IEEEVArController::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PFVArType2IEEEVArController::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArType2IEEEVArController_exlon(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* PFVArType2IEEEVArController::debugString() const void PFVArType2IEEEVArController::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PFVArType2IEEEVArController", &PFVArType2IEEEVArController_factory); + factory_map.emplace("PFVArType2IEEEVArController", &PFVArType2IEEEVArController_factory); } void PFVArType2IEEEVArController::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PFVArType2IEEEVArController.exlon", &assign_PFVArType2IEEEVArController_exlon); - assign_map.emplace("cim:PFVArType2IEEEVArController.ki", &assign_PFVArType2IEEEVArController_ki); - assign_map.emplace("cim:PFVArType2IEEEVArController.kp", &assign_PFVArType2IEEEVArController_kp); - assign_map.emplace("cim:PFVArType2IEEEVArController.qref", &assign_PFVArType2IEEEVArController_qref); - assign_map.emplace("cim:PFVArType2IEEEVArController.vclmt", &assign_PFVArType2IEEEVArController_vclmt); - assign_map.emplace("cim:PFVArType2IEEEVArController.vref", &assign_PFVArType2IEEEVArController_vref); - assign_map.emplace("cim:PFVArType2IEEEVArController.vs", &assign_PFVArType2IEEEVArController_vs); + assign_map.emplace("PFVArType2IEEEVArController.exlon", &assign_PFVArType2IEEEVArController_exlon); + assign_map.emplace("PFVArType2IEEEVArController.ki", &assign_PFVArType2IEEEVArController_ki); + assign_map.emplace("PFVArType2IEEEVArController.kp", &assign_PFVArType2IEEEVArController_kp); + assign_map.emplace("PFVArType2IEEEVArController.qref", &assign_PFVArType2IEEEVArController_qref); + assign_map.emplace("PFVArType2IEEEVArController.vclmt", &assign_PFVArType2IEEEVArController_vclmt); + assign_map.emplace("PFVArType2IEEEVArController.vref", &assign_PFVArType2IEEEVArController_vref); + assign_map.emplace("PFVArType2IEEEVArController.vs", &assign_PFVArType2IEEEVArController_vs); } void PFVArType2IEEEVArController::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void PFVArType2IEEEVArController::addClassAssignFnsToMap(std::unordered_map& get_map) const { PFVArControllerType2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PFVArType2IEEEVArController.exlon", &get_PFVArType2IEEEVArController_exlon); - get_map.emplace("cim:PFVArType2IEEEVArController.ki", &get_PFVArType2IEEEVArController_ki); - get_map.emplace("cim:PFVArType2IEEEVArController.kp", &get_PFVArType2IEEEVArController_kp); - get_map.emplace("cim:PFVArType2IEEEVArController.qref", &get_PFVArType2IEEEVArController_qref); - get_map.emplace("cim:PFVArType2IEEEVArController.vclmt", &get_PFVArType2IEEEVArController_vclmt); - get_map.emplace("cim:PFVArType2IEEEVArController.vref", &get_PFVArType2IEEEVArController_vref); - get_map.emplace("cim:PFVArType2IEEEVArController.vs", &get_PFVArType2IEEEVArController_vs); + get_map.emplace("PFVArType2IEEEVArController.exlon", &get_PFVArType2IEEEVArController_exlon); + get_map.emplace("PFVArType2IEEEVArController.ki", &get_PFVArType2IEEEVArController_ki); + get_map.emplace("PFVArType2IEEEVArController.kp", &get_PFVArType2IEEEVArController_kp); + get_map.emplace("PFVArType2IEEEVArController.qref", &get_PFVArType2IEEEVArController_qref); + get_map.emplace("PFVArType2IEEEVArController.vclmt", &get_PFVArType2IEEEVArController_vclmt); + get_map.emplace("PFVArType2IEEEVArController.vref", &get_PFVArType2IEEEVArController_vref); + get_map.emplace("PFVArType2IEEEVArController.vs", &get_PFVArType2IEEEVArController_vs); } void PFVArType2IEEEVArController::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void PFVArType2IEEEVArController::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PFVArType2IEEEVArController::declare() { return BaseClassDefiner(PFVArType2IEEEVArController::addConstructToMap, PFVArType2IEEEVArController::addPrimitiveAssignFnsToMap, PFVArType2IEEEVArController::addClassAssignFnsToMap, PFVArType2IEEEVArController::debugName); } +std::map PFVArType2IEEEVArController::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PFVArControllerType2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PFVArType2IEEEVArController_factory() diff --git a/CGMES_3.0.0/PFVArType2IEEEVArController.hpp b/CGMES_3.0.0/PFVArType2IEEEVArController.hpp index 2237d3c73..027864fa3 100644 --- a/CGMES_3.0.0/PFVArType2IEEEVArController.hpp +++ b/CGMES_3.0.0/PFVArType2IEEEVArController.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PFVArControllerType2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PFVArType2IEEEVArController_factory(); diff --git a/CGMES_3.0.0/PetersenCoil.cpp b/CGMES_3.0.0/PetersenCoil.cpp index 937095c1b..de9a55f5d 100644 --- a/CGMES_3.0.0/PetersenCoil.cpp +++ b/CGMES_3.0.0/PetersenCoil.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PetersenCoil(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PetersenCoil.mode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PetersenCoil.nominalU", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PetersenCoil.offsetCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PetersenCoil.positionCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PetersenCoil.xGroundMax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PetersenCoil.xGroundMin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PetersenCoil.xGroundNominal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + PetersenCoil::PetersenCoil() {} PetersenCoil::~PetersenCoil() {} -static const std::list PossibleProfilesForClass = +const std::list& PetersenCoil::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PetersenCoil::getClassNamespaceUrl() const { - { "cim:PetersenCoil.mode", { CGMESProfile::SC, } }, - { "cim:PetersenCoil.nominalU", { CGMESProfile::SC, } }, - { "cim:PetersenCoil.offsetCurrent", { CGMESProfile::SC, } }, - { "cim:PetersenCoil.positionCurrent", { CGMESProfile::SC, } }, - { "cim:PetersenCoil.xGroundMax", { CGMESProfile::SC, } }, - { "cim:PetersenCoil.xGroundMin", { CGMESProfile::SC, } }, - { "cim:PetersenCoil.xGroundNominal", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PetersenCoil::getPossibleProfilesForClass() const +const std::string& PetersenCoil::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PetersenCoil::getPossibleProfilesForAttributes() const +const std::list& PetersenCoil::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EarthFaultCompensator::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PetersenCoil::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PetersenCoil::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PetersenCoil::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PetersenCoil_mode(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -257,18 +289,18 @@ const char* PetersenCoil::debugString() const void PetersenCoil::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PetersenCoil", &PetersenCoil_factory); + factory_map.emplace("PetersenCoil", &PetersenCoil_factory); } void PetersenCoil::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PetersenCoil.mode", &assign_PetersenCoil_mode); - assign_map.emplace("cim:PetersenCoil.nominalU", &assign_PetersenCoil_nominalU); - assign_map.emplace("cim:PetersenCoil.offsetCurrent", &assign_PetersenCoil_offsetCurrent); - assign_map.emplace("cim:PetersenCoil.positionCurrent", &assign_PetersenCoil_positionCurrent); - assign_map.emplace("cim:PetersenCoil.xGroundMax", &assign_PetersenCoil_xGroundMax); - assign_map.emplace("cim:PetersenCoil.xGroundMin", &assign_PetersenCoil_xGroundMin); - assign_map.emplace("cim:PetersenCoil.xGroundNominal", &assign_PetersenCoil_xGroundNominal); + assign_map.emplace("PetersenCoil.mode", &assign_PetersenCoil_mode); + assign_map.emplace("PetersenCoil.nominalU", &assign_PetersenCoil_nominalU); + assign_map.emplace("PetersenCoil.offsetCurrent", &assign_PetersenCoil_offsetCurrent); + assign_map.emplace("PetersenCoil.positionCurrent", &assign_PetersenCoil_positionCurrent); + assign_map.emplace("PetersenCoil.xGroundMax", &assign_PetersenCoil_xGroundMax); + assign_map.emplace("PetersenCoil.xGroundMin", &assign_PetersenCoil_xGroundMin); + assign_map.emplace("PetersenCoil.xGroundNominal", &assign_PetersenCoil_xGroundNominal); } void PetersenCoil::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -278,12 +310,12 @@ void PetersenCoil::addClassAssignFnsToMap(std::unordered_map& get_map) const { EarthFaultCompensator::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PetersenCoil.nominalU", &get_PetersenCoil_nominalU); - get_map.emplace("cim:PetersenCoil.offsetCurrent", &get_PetersenCoil_offsetCurrent); - get_map.emplace("cim:PetersenCoil.positionCurrent", &get_PetersenCoil_positionCurrent); - get_map.emplace("cim:PetersenCoil.xGroundMax", &get_PetersenCoil_xGroundMax); - get_map.emplace("cim:PetersenCoil.xGroundMin", &get_PetersenCoil_xGroundMin); - get_map.emplace("cim:PetersenCoil.xGroundNominal", &get_PetersenCoil_xGroundNominal); + get_map.emplace("PetersenCoil.nominalU", &get_PetersenCoil_nominalU); + get_map.emplace("PetersenCoil.offsetCurrent", &get_PetersenCoil_offsetCurrent); + get_map.emplace("PetersenCoil.positionCurrent", &get_PetersenCoil_positionCurrent); + get_map.emplace("PetersenCoil.xGroundMax", &get_PetersenCoil_xGroundMax); + get_map.emplace("PetersenCoil.xGroundMin", &get_PetersenCoil_xGroundMin); + get_map.emplace("PetersenCoil.xGroundNominal", &get_PetersenCoil_xGroundNominal); } void PetersenCoil::addClassGetFnsToMap(std::map& get_map) const @@ -294,7 +326,13 @@ void PetersenCoil::addClassGetFnsToMap(std::map void PetersenCoil::addEnumGetFnsToMap(std::map& get_map) const { EarthFaultCompensator::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PetersenCoil.mode", &get_PetersenCoil_mode); + get_map.emplace("PetersenCoil.mode", &get_PetersenCoil_mode); +} + +bool PetersenCoil::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PetersenCoil" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PetersenCoil::declare() @@ -302,6 +340,14 @@ const BaseClassDefiner PetersenCoil::declare() return BaseClassDefiner(PetersenCoil::addConstructToMap, PetersenCoil::addPrimitiveAssignFnsToMap, PetersenCoil::addClassAssignFnsToMap, PetersenCoil::debugName); } +std::map PetersenCoil::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EarthFaultCompensator::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PetersenCoil_factory() diff --git a/CGMES_3.0.0/PetersenCoil.hpp b/CGMES_3.0.0/PetersenCoil.hpp index 9fe6fb57f..c1d729ee9 100644 --- a/CGMES_3.0.0/PetersenCoil.hpp +++ b/CGMES_3.0.0/PetersenCoil.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EarthFaultCompensator.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "CurrentFlow.hpp" #include "PetersenCoilModeKind.hpp" #include "Reactance.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PetersenCoil_factory(); diff --git a/CGMES_3.0.0/PhaseTapChanger.cpp b/CGMES_3.0.0/PhaseTapChanger.cpp index 7e542043f..98b870cbf 100644 --- a/CGMES_3.0.0/PhaseTapChanger.cpp +++ b/CGMES_3.0.0/PhaseTapChanger.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChanger(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChanger.TransformerEnd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChanger::PhaseTapChanger() : TransformerEnd(nullptr) {} PhaseTapChanger::~PhaseTapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChanger::getClassNamespaceUrl() const { - { "cim:PhaseTapChanger.TransformerEnd", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChanger::getPossibleProfilesForClass() const +const std::string& PhaseTapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChanger::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TransformerEnd_PhaseTapChanger(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* PhaseTapChanger::debugString() const void PhaseTapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChanger", &PhaseTapChanger_factory); + factory_map.emplace("PhaseTapChanger", &PhaseTapChanger_factory); } void PhaseTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void PhaseTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChanger.TransformerEnd", &assign_PhaseTapChanger_TransformerEnd); + assign_map.emplace("PhaseTapChanger.TransformerEnd", &assign_PhaseTapChanger_TransformerEnd); } void PhaseTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void PhaseTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChanger.TransformerEnd", &get_PhaseTapChanger_TransformerEnd); + get_map.emplace("PhaseTapChanger.TransformerEnd", &get_PhaseTapChanger_TransformerEnd); } void PhaseTapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void PhaseTapChanger::addEnumGetFnsToMap(std::map& ge TapChanger::addEnumGetFnsToMap(get_map); } +bool PhaseTapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PhaseTapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChanger::declare() { return BaseClassDefiner(PhaseTapChanger::addConstructToMap, PhaseTapChanger::addPrimitiveAssignFnsToMap, PhaseTapChanger::addClassAssignFnsToMap, PhaseTapChanger::debugName); } +std::map PhaseTapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChanger_factory() diff --git a/CGMES_3.0.0/PhaseTapChanger.hpp b/CGMES_3.0.0/PhaseTapChanger.hpp index 19d5f17eb..28588afd9 100644 --- a/CGMES_3.0.0/PhaseTapChanger.hpp +++ b/CGMES_3.0.0/PhaseTapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChanger_factory(); diff --git a/CGMES_3.0.0/PhaseTapChangerAsymmetrical.cpp b/CGMES_3.0.0/PhaseTapChangerAsymmetrical.cpp index c8b178100..c81f6ec4e 100644 --- a/CGMES_3.0.0/PhaseTapChangerAsymmetrical.cpp +++ b/CGMES_3.0.0/PhaseTapChangerAsymmetrical.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerAsymmetrical(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerAsymmetrical.windingConnectionAngle", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerAsymmetrical::PhaseTapChangerAsymmetrical() {} PhaseTapChangerAsymmetrical::~PhaseTapChangerAsymmetrical() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerAsymmetrical::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerAsymmetrical::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerAsymmetrical::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerAsymmetrical::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerAsymmetrical::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerAsymmetrical::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChangerNonLinear::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerAsymmetrical::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerAsymmetrical::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerAsymmetrical::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerAsymmetrical_windingConnectionAngle(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -77,12 +109,12 @@ const char* PhaseTapChangerAsymmetrical::debugString() const void PhaseTapChangerAsymmetrical::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerAsymmetrical", &PhaseTapChangerAsymmetrical_factory); + factory_map.emplace("PhaseTapChangerAsymmetrical", &PhaseTapChangerAsymmetrical_factory); } void PhaseTapChangerAsymmetrical::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", &assign_PhaseTapChangerAsymmetrical_windingConnectionAngle); + assign_map.emplace("PhaseTapChangerAsymmetrical.windingConnectionAngle", &assign_PhaseTapChangerAsymmetrical_windingConnectionAngle); } void PhaseTapChangerAsymmetrical::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -92,7 +124,7 @@ void PhaseTapChangerAsymmetrical::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChangerNonLinear::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", &get_PhaseTapChangerAsymmetrical_windingConnectionAngle); + get_map.emplace("PhaseTapChangerAsymmetrical.windingConnectionAngle", &get_PhaseTapChangerAsymmetrical_windingConnectionAngle); } void PhaseTapChangerAsymmetrical::addClassGetFnsToMap(std::map& get_map) const @@ -105,11 +137,25 @@ void PhaseTapChangerAsymmetrical::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerAsymmetrical::declare() { return BaseClassDefiner(PhaseTapChangerAsymmetrical::addConstructToMap, PhaseTapChangerAsymmetrical::addPrimitiveAssignFnsToMap, PhaseTapChangerAsymmetrical::addClassAssignFnsToMap, PhaseTapChangerAsymmetrical::debugName); } +std::map PhaseTapChangerAsymmetrical::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChangerNonLinear::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerAsymmetrical_factory() diff --git a/CGMES_3.0.0/PhaseTapChangerAsymmetrical.hpp b/CGMES_3.0.0/PhaseTapChangerAsymmetrical.hpp index 1514588a7..931e1823b 100644 --- a/CGMES_3.0.0/PhaseTapChangerAsymmetrical.hpp +++ b/CGMES_3.0.0/PhaseTapChangerAsymmetrical.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChangerNonLinear.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerAsymmetrical_factory(); diff --git a/CGMES_3.0.0/PhaseTapChangerLinear.cpp b/CGMES_3.0.0/PhaseTapChangerLinear.cpp index a54861567..49e5cd86f 100644 --- a/CGMES_3.0.0/PhaseTapChangerLinear.cpp +++ b/CGMES_3.0.0/PhaseTapChangerLinear.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerLinear(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerLinear.stepPhaseShiftIncrement", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerLinear.xMax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerLinear.xMin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerLinear::PhaseTapChangerLinear() {} PhaseTapChangerLinear::~PhaseTapChangerLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerLinear::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerLinear::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerLinear.xMax", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerLinear.xMin", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerLinear::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerLinear::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerLinear_stepPhaseShiftIncrement(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -137,14 +169,14 @@ const char* PhaseTapChangerLinear::debugString() const void PhaseTapChangerLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerLinear", &PhaseTapChangerLinear_factory); + factory_map.emplace("PhaseTapChangerLinear", &PhaseTapChangerLinear_factory); } void PhaseTapChangerLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", &assign_PhaseTapChangerLinear_stepPhaseShiftIncrement); - assign_map.emplace("cim:PhaseTapChangerLinear.xMax", &assign_PhaseTapChangerLinear_xMax); - assign_map.emplace("cim:PhaseTapChangerLinear.xMin", &assign_PhaseTapChangerLinear_xMin); + assign_map.emplace("PhaseTapChangerLinear.stepPhaseShiftIncrement", &assign_PhaseTapChangerLinear_stepPhaseShiftIncrement); + assign_map.emplace("PhaseTapChangerLinear.xMax", &assign_PhaseTapChangerLinear_xMax); + assign_map.emplace("PhaseTapChangerLinear.xMin", &assign_PhaseTapChangerLinear_xMin); } void PhaseTapChangerLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void PhaseTapChangerLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", &get_PhaseTapChangerLinear_stepPhaseShiftIncrement); - get_map.emplace("cim:PhaseTapChangerLinear.xMax", &get_PhaseTapChangerLinear_xMax); - get_map.emplace("cim:PhaseTapChangerLinear.xMin", &get_PhaseTapChangerLinear_xMin); + get_map.emplace("PhaseTapChangerLinear.stepPhaseShiftIncrement", &get_PhaseTapChangerLinear_stepPhaseShiftIncrement); + get_map.emplace("PhaseTapChangerLinear.xMax", &get_PhaseTapChangerLinear_xMax); + get_map.emplace("PhaseTapChangerLinear.xMin", &get_PhaseTapChangerLinear_xMin); } void PhaseTapChangerLinear::addClassGetFnsToMap(std::map& get_map) const @@ -169,11 +201,25 @@ void PhaseTapChangerLinear::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerLinear::declare() { return BaseClassDefiner(PhaseTapChangerLinear::addConstructToMap, PhaseTapChangerLinear::addPrimitiveAssignFnsToMap, PhaseTapChangerLinear::addClassAssignFnsToMap, PhaseTapChangerLinear::debugName); } +std::map PhaseTapChangerLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerLinear_factory() diff --git a/CGMES_3.0.0/PhaseTapChangerLinear.hpp b/CGMES_3.0.0/PhaseTapChangerLinear.hpp index e58cb053e..40edf5c88 100644 --- a/CGMES_3.0.0/PhaseTapChangerLinear.hpp +++ b/CGMES_3.0.0/PhaseTapChangerLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Reactance.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerLinear_factory(); diff --git a/CGMES_3.0.0/PhaseTapChangerNonLinear.cpp b/CGMES_3.0.0/PhaseTapChangerNonLinear.cpp index 349dad6b6..9af14631e 100644 --- a/CGMES_3.0.0/PhaseTapChangerNonLinear.cpp +++ b/CGMES_3.0.0/PhaseTapChangerNonLinear.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerNonLinear(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerNonLinear.voltageStepIncrement", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerNonLinear.xMax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerNonLinear.xMin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerNonLinear::PhaseTapChangerNonLinear() {} PhaseTapChangerNonLinear::~PhaseTapChangerNonLinear() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerNonLinear::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerNonLinear::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerNonLinear.voltageStepIncrement", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerNonLinear.xMax", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerNonLinear.xMin", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerNonLinear::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerNonLinear::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerNonLinear::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerNonLinear::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerNonLinear::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerNonLinear::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerNonLinear::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerNonLinear_voltageStepIncrement(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -137,14 +169,14 @@ const char* PhaseTapChangerNonLinear::debugString() const void PhaseTapChangerNonLinear::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerNonLinear", &PhaseTapChangerNonLinear_factory); + factory_map.emplace("PhaseTapChangerNonLinear", &PhaseTapChangerNonLinear_factory); } void PhaseTapChangerNonLinear::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerNonLinear.voltageStepIncrement", &assign_PhaseTapChangerNonLinear_voltageStepIncrement); - assign_map.emplace("cim:PhaseTapChangerNonLinear.xMax", &assign_PhaseTapChangerNonLinear_xMax); - assign_map.emplace("cim:PhaseTapChangerNonLinear.xMin", &assign_PhaseTapChangerNonLinear_xMin); + assign_map.emplace("PhaseTapChangerNonLinear.voltageStepIncrement", &assign_PhaseTapChangerNonLinear_voltageStepIncrement); + assign_map.emplace("PhaseTapChangerNonLinear.xMax", &assign_PhaseTapChangerNonLinear_xMax); + assign_map.emplace("PhaseTapChangerNonLinear.xMin", &assign_PhaseTapChangerNonLinear_xMin); } void PhaseTapChangerNonLinear::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void PhaseTapChangerNonLinear::addClassAssignFnsToMap(std::unordered_map& get_map) const { PhaseTapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerNonLinear.voltageStepIncrement", &get_PhaseTapChangerNonLinear_voltageStepIncrement); - get_map.emplace("cim:PhaseTapChangerNonLinear.xMax", &get_PhaseTapChangerNonLinear_xMax); - get_map.emplace("cim:PhaseTapChangerNonLinear.xMin", &get_PhaseTapChangerNonLinear_xMin); + get_map.emplace("PhaseTapChangerNonLinear.voltageStepIncrement", &get_PhaseTapChangerNonLinear_voltageStepIncrement); + get_map.emplace("PhaseTapChangerNonLinear.xMax", &get_PhaseTapChangerNonLinear_xMax); + get_map.emplace("PhaseTapChangerNonLinear.xMin", &get_PhaseTapChangerNonLinear_xMin); } void PhaseTapChangerNonLinear::addClassGetFnsToMap(std::map& get_map) const @@ -169,11 +201,25 @@ void PhaseTapChangerNonLinear::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerNonLinear::declare() { return BaseClassDefiner(PhaseTapChangerNonLinear::addConstructToMap, PhaseTapChangerNonLinear::addPrimitiveAssignFnsToMap, PhaseTapChangerNonLinear::addClassAssignFnsToMap, PhaseTapChangerNonLinear::debugName); } +std::map PhaseTapChangerNonLinear::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerNonLinear_factory() diff --git a/CGMES_3.0.0/PhaseTapChangerNonLinear.hpp b/CGMES_3.0.0/PhaseTapChangerNonLinear.hpp index 2f318be49..44d2ca2a3 100644 --- a/CGMES_3.0.0/PhaseTapChangerNonLinear.hpp +++ b/CGMES_3.0.0/PhaseTapChangerNonLinear.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PerCent.hpp" #include "Reactance.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerNonLinear_factory(); diff --git a/CGMES_3.0.0/PhaseTapChangerSymmetrical.cpp b/CGMES_3.0.0/PhaseTapChangerSymmetrical.cpp index 11987b7ee..fa783034b 100644 --- a/CGMES_3.0.0/PhaseTapChangerSymmetrical.cpp +++ b/CGMES_3.0.0/PhaseTapChangerSymmetrical.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerSymmetrical(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerSymmetrical::PhaseTapChangerSymmetrical() {} PhaseTapChangerSymmetrical::~PhaseTapChangerSymmetrical() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerSymmetrical::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerSymmetrical::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerSymmetrical::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerSymmetrical::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerSymmetrical::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerSymmetrical::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChangerNonLinear::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerSymmetrical::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerSymmetrical::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerSymmetrical::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char PhaseTapChangerSymmetrical::debugName[] = "PhaseTapChangerSymmetrical"; @@ -47,7 +79,7 @@ const char* PhaseTapChangerSymmetrical::debugString() const void PhaseTapChangerSymmetrical::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerSymmetrical", &PhaseTapChangerSymmetrical_factory); + factory_map.emplace("PhaseTapChangerSymmetrical", &PhaseTapChangerSymmetrical_factory); } void PhaseTapChangerSymmetrical::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void PhaseTapChangerSymmetrical::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerSymmetrical::declare() { return BaseClassDefiner(PhaseTapChangerSymmetrical::addConstructToMap, PhaseTapChangerSymmetrical::addPrimitiveAssignFnsToMap, PhaseTapChangerSymmetrical::addClassAssignFnsToMap, PhaseTapChangerSymmetrical::debugName); } +std::map PhaseTapChangerSymmetrical::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChangerNonLinear::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerSymmetrical_factory() diff --git a/CGMES_3.0.0/PhaseTapChangerSymmetrical.hpp b/CGMES_3.0.0/PhaseTapChangerSymmetrical.hpp index 0dbdbf43a..e5dfcf6b9 100644 --- a/CGMES_3.0.0/PhaseTapChangerSymmetrical.hpp +++ b/CGMES_3.0.0/PhaseTapChangerSymmetrical.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChangerNonLinear.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerSymmetrical_factory(); diff --git a/CGMES_3.0.0/PhaseTapChangerTable.cpp b/CGMES_3.0.0/PhaseTapChangerTable.cpp index 81e747699..a379bbf18 100644 --- a/CGMES_3.0.0/PhaseTapChangerTable.cpp +++ b/CGMES_3.0.0/PhaseTapChangerTable.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTable(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTable.PhaseTapChangerTablePoint", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerTable.PhaseTapChangerTabular", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTable::PhaseTapChangerTable() {} PhaseTapChangerTable::~PhaseTapChangerTable() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTable::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTable::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerTable.PhaseTapChangerTabular", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTable::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTable::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTablePoint_PhaseTapChangerTable(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* PhaseTapChangerTable::debugString() const void PhaseTapChangerTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTable", &PhaseTapChangerTable_factory); + factory_map.emplace("PhaseTapChangerTable", &PhaseTapChangerTable_factory); } void PhaseTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void PhaseTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", &assign_PhaseTapChangerTable_PhaseTapChangerTablePoint); - assign_map.emplace("cim:PhaseTapChangerTable.PhaseTapChangerTabular", &assign_PhaseTapChangerTable_PhaseTapChangerTabular); + assign_map.emplace("PhaseTapChangerTable.PhaseTapChangerTablePoint", &assign_PhaseTapChangerTable_PhaseTapChangerTablePoint); + assign_map.emplace("PhaseTapChangerTable.PhaseTapChangerTabular", &assign_PhaseTapChangerTable_PhaseTapChangerTabular); } void PhaseTapChangerTable::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void PhaseTapChangerTable::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTable::declare() { return BaseClassDefiner(PhaseTapChangerTable::addConstructToMap, PhaseTapChangerTable::addPrimitiveAssignFnsToMap, PhaseTapChangerTable::addClassAssignFnsToMap, PhaseTapChangerTable::debugName); } +std::map PhaseTapChangerTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTable_factory() diff --git a/CGMES_3.0.0/PhaseTapChangerTable.hpp b/CGMES_3.0.0/PhaseTapChangerTable.hpp index 9b76ee650..3cebfaef0 100644 --- a/CGMES_3.0.0/PhaseTapChangerTable.hpp +++ b/CGMES_3.0.0/PhaseTapChangerTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTable_factory(); diff --git a/CGMES_3.0.0/PhaseTapChangerTablePoint.cpp b/CGMES_3.0.0/PhaseTapChangerTablePoint.cpp index e4c877019..495b4ac6a 100644 --- a/CGMES_3.0.0/PhaseTapChangerTablePoint.cpp +++ b/CGMES_3.0.0/PhaseTapChangerTablePoint.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTablePoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTablePoint.PhaseTapChangerTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PhaseTapChangerTablePoint.angle", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTablePoint::PhaseTapChangerTablePoint() : PhaseTapChangerTable(nullptr) {} PhaseTapChangerTablePoint::~PhaseTapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", { CGMESProfile::EQ, } }, - { "cim:PhaseTapChangerTablePoint.angle", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChangerTablePoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTable_PhaseTapChangerTablePoint(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* PhaseTapChangerTablePoint::debugString() const void PhaseTapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTablePoint", &PhaseTapChangerTablePoint_factory); + factory_map.emplace("PhaseTapChangerTablePoint", &PhaseTapChangerTablePoint_factory); } void PhaseTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTablePoint.angle", &assign_PhaseTapChangerTablePoint_angle); + assign_map.emplace("PhaseTapChangerTablePoint.angle", &assign_PhaseTapChangerTablePoint_angle); } void PhaseTapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", &assign_PhaseTapChangerTablePoint_PhaseTapChangerTable); + assign_map.emplace("PhaseTapChangerTablePoint.PhaseTapChangerTable", &assign_PhaseTapChangerTablePoint_PhaseTapChangerTable); } void PhaseTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTablePoint.angle", &get_PhaseTapChangerTablePoint_angle); + get_map.emplace("PhaseTapChangerTablePoint.angle", &get_PhaseTapChangerTablePoint_angle); } void PhaseTapChangerTablePoint::addClassGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", &get_PhaseTapChangerTablePoint_PhaseTapChangerTable); + get_map.emplace("PhaseTapChangerTablePoint.PhaseTapChangerTable", &get_PhaseTapChangerTablePoint_PhaseTapChangerTable); } void PhaseTapChangerTablePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void PhaseTapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTablePoint::declare() { return BaseClassDefiner(PhaseTapChangerTablePoint::addConstructToMap, PhaseTapChangerTablePoint::addPrimitiveAssignFnsToMap, PhaseTapChangerTablePoint::addClassAssignFnsToMap, PhaseTapChangerTablePoint::debugName); } +std::map PhaseTapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChangerTablePoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTablePoint_factory() diff --git a/CGMES_3.0.0/PhaseTapChangerTablePoint.hpp b/CGMES_3.0.0/PhaseTapChangerTablePoint.hpp index 92590a79a..92f4051dc 100644 --- a/CGMES_3.0.0/PhaseTapChangerTablePoint.hpp +++ b/CGMES_3.0.0/PhaseTapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChangerTablePoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTablePoint_factory(); diff --git a/CGMES_3.0.0/PhaseTapChangerTabular.cpp b/CGMES_3.0.0/PhaseTapChangerTabular.cpp index 34a8103ba..047db0beb 100644 --- a/CGMES_3.0.0/PhaseTapChangerTabular.cpp +++ b/CGMES_3.0.0/PhaseTapChangerTabular.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhaseTapChangerTabular(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PhaseTapChangerTabular.PhaseTapChangerTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PhaseTapChangerTabular::PhaseTapChangerTabular() : PhaseTapChangerTable(nullptr) {} PhaseTapChangerTabular::~PhaseTapChangerTabular() {} -static const std::list PossibleProfilesForClass = +const std::list& PhaseTapChangerTabular::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhaseTapChangerTabular::getClassNamespaceUrl() const { - { "cim:PhaseTapChangerTabular.PhaseTapChangerTable", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhaseTapChangerTabular::getPossibleProfilesForClass() const +const std::string& PhaseTapChangerTabular::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhaseTapChangerTabular::getPossibleProfilesForAttributes() const +const std::list& PhaseTapChangerTabular::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PhaseTapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhaseTapChangerTabular::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhaseTapChangerTabular::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhaseTapChangerTabular::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PhaseTapChangerTable_PhaseTapChangerTabular(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* PhaseTapChangerTabular::debugString() const void PhaseTapChangerTabular::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhaseTapChangerTabular", &PhaseTapChangerTabular_factory); + factory_map.emplace("PhaseTapChangerTabular", &PhaseTapChangerTabular_factory); } void PhaseTapChangerTabular::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void PhaseTapChangerTabular::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PhaseTapChangerTabular.PhaseTapChangerTable", &assign_PhaseTapChangerTabular_PhaseTapChangerTable); + assign_map.emplace("PhaseTapChangerTabular.PhaseTapChangerTable", &assign_PhaseTapChangerTabular_PhaseTapChangerTable); } void PhaseTapChangerTabular::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void PhaseTapChangerTabular::addPrimitiveGetFnsToMap(std::map& get_map) const { PhaseTapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PhaseTapChangerTabular.PhaseTapChangerTable", &get_PhaseTapChangerTabular_PhaseTapChangerTable); + get_map.emplace("PhaseTapChangerTabular.PhaseTapChangerTable", &get_PhaseTapChangerTabular_PhaseTapChangerTable); } void PhaseTapChangerTabular::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void PhaseTapChangerTabular::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PhaseTapChangerTabular::declare() { return BaseClassDefiner(PhaseTapChangerTabular::addConstructToMap, PhaseTapChangerTabular::addPrimitiveAssignFnsToMap, PhaseTapChangerTabular::addClassAssignFnsToMap, PhaseTapChangerTabular::debugName); } +std::map PhaseTapChangerTabular::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PhaseTapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhaseTapChangerTabular_factory() diff --git a/CGMES_3.0.0/PhaseTapChangerTabular.hpp b/CGMES_3.0.0/PhaseTapChangerTabular.hpp index 9c0c15085..44504c19c 100644 --- a/CGMES_3.0.0/PhaseTapChangerTabular.hpp +++ b/CGMES_3.0.0/PhaseTapChangerTabular.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PhaseTapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhaseTapChangerTabular_factory(); diff --git a/CGMES_3.0.0/PhotoVoltaicUnit.cpp b/CGMES_3.0.0/PhotoVoltaicUnit.cpp index 0574fc94b..9fad59dcc 100644 --- a/CGMES_3.0.0/PhotoVoltaicUnit.cpp +++ b/CGMES_3.0.0/PhotoVoltaicUnit.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PhotoVoltaicUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + PhotoVoltaicUnit::PhotoVoltaicUnit() {} PhotoVoltaicUnit::~PhotoVoltaicUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& PhotoVoltaicUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PhotoVoltaicUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PhotoVoltaicUnit::getPossibleProfilesForClass() const +const std::string& PhotoVoltaicUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PhotoVoltaicUnit::getPossibleProfilesForAttributes() const +const std::list& PhotoVoltaicUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerElectronicsUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PhotoVoltaicUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PhotoVoltaicUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PhotoVoltaicUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char PhotoVoltaicUnit::debugName[] = "PhotoVoltaicUnit"; @@ -46,7 +78,7 @@ const char* PhotoVoltaicUnit::debugString() const void PhotoVoltaicUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PhotoVoltaicUnit", &PhotoVoltaicUnit_factory); + factory_map.emplace("PhotoVoltaicUnit", &PhotoVoltaicUnit_factory); } void PhotoVoltaicUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void PhotoVoltaicUnit::addEnumGetFnsToMap(std::map& g PowerElectronicsUnit::addEnumGetFnsToMap(get_map); } +bool PhotoVoltaicUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PhotoVoltaicUnit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PhotoVoltaicUnit::declare() { return BaseClassDefiner(PhotoVoltaicUnit::addConstructToMap, PhotoVoltaicUnit::addPrimitiveAssignFnsToMap, PhotoVoltaicUnit::addClassAssignFnsToMap, PhotoVoltaicUnit::debugName); } +std::map PhotoVoltaicUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerElectronicsUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PhotoVoltaicUnit_factory() diff --git a/CGMES_3.0.0/PhotoVoltaicUnit.hpp b/CGMES_3.0.0/PhotoVoltaicUnit.hpp index f80e12b8e..2db8dc11e 100644 --- a/CGMES_3.0.0/PhotoVoltaicUnit.hpp +++ b/CGMES_3.0.0/PhotoVoltaicUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerElectronicsUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PhotoVoltaicUnit_factory(); diff --git a/CGMES_3.0.0/PositionPoint.cpp b/CGMES_3.0.0/PositionPoint.cpp index 9fbc902cc..98e4cc800 100644 --- a/CGMES_3.0.0/PositionPoint.cpp +++ b/CGMES_3.0.0/PositionPoint.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PositionPoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PositionPoint.Location", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "PositionPoint.sequenceNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "PositionPoint.xPosition", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "PositionPoint.yPosition", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "PositionPoint.zPosition", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + PositionPoint::PositionPoint() : Location(nullptr) {} PositionPoint::~PositionPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& PositionPoint::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PositionPoint::getClassNamespaceUrl() const { - { "cim:PositionPoint.Location", { CGMESProfile::GL, } }, - { "cim:PositionPoint.sequenceNumber", { CGMESProfile::GL, } }, - { "cim:PositionPoint.xPosition", { CGMESProfile::GL, } }, - { "cim:PositionPoint.yPosition", { CGMESProfile::GL, } }, - { "cim:PositionPoint.zPosition", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PositionPoint::getPossibleProfilesForClass() const +const std::string& PositionPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PositionPoint::getPossibleProfilesForAttributes() const +const std::list& PositionPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PositionPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PositionPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PositionPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Location_PositionPoints(BaseClass*, BaseClass*); @@ -199,35 +231,35 @@ const char* PositionPoint::debugString() const void PositionPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PositionPoint", &PositionPoint_factory); + factory_map.emplace("PositionPoint", &PositionPoint_factory); } void PositionPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PositionPoint.sequenceNumber", &assign_PositionPoint_sequenceNumber); - assign_map.emplace("cim:PositionPoint.xPosition", &assign_PositionPoint_xPosition); - assign_map.emplace("cim:PositionPoint.yPosition", &assign_PositionPoint_yPosition); - assign_map.emplace("cim:PositionPoint.zPosition", &assign_PositionPoint_zPosition); + assign_map.emplace("PositionPoint.sequenceNumber", &assign_PositionPoint_sequenceNumber); + assign_map.emplace("PositionPoint.xPosition", &assign_PositionPoint_xPosition); + assign_map.emplace("PositionPoint.yPosition", &assign_PositionPoint_yPosition); + assign_map.emplace("PositionPoint.zPosition", &assign_PositionPoint_zPosition); } void PositionPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PositionPoint.Location", &assign_PositionPoint_Location); + assign_map.emplace("PositionPoint.Location", &assign_PositionPoint_Location); } void PositionPoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PositionPoint.sequenceNumber", &get_PositionPoint_sequenceNumber); - get_map.emplace("cim:PositionPoint.xPosition", &get_PositionPoint_xPosition); - get_map.emplace("cim:PositionPoint.yPosition", &get_PositionPoint_yPosition); - get_map.emplace("cim:PositionPoint.zPosition", &get_PositionPoint_zPosition); + get_map.emplace("PositionPoint.sequenceNumber", &get_PositionPoint_sequenceNumber); + get_map.emplace("PositionPoint.xPosition", &get_PositionPoint_xPosition); + get_map.emplace("PositionPoint.yPosition", &get_PositionPoint_yPosition); + get_map.emplace("PositionPoint.zPosition", &get_PositionPoint_zPosition); } void PositionPoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PositionPoint.Location", &get_PositionPoint_Location); + get_map.emplace("PositionPoint.Location", &get_PositionPoint_Location); } void PositionPoint::addEnumGetFnsToMap(std::map& get_map) const @@ -235,11 +267,25 @@ void PositionPoint::addEnumGetFnsToMap(std::map& get_ BaseClass::addEnumGetFnsToMap(get_map); } +bool PositionPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PositionPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PositionPoint::declare() { return BaseClassDefiner(PositionPoint::addConstructToMap, PositionPoint::addPrimitiveAssignFnsToMap, PositionPoint::addClassAssignFnsToMap, PositionPoint::debugName); } +std::map PositionPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PositionPoint_factory() diff --git a/CGMES_3.0.0/PositionPoint.hpp b/CGMES_3.0.0/PositionPoint.hpp index d3a325753..56b43a22b 100644 --- a/CGMES_3.0.0/PositionPoint.hpp +++ b/CGMES_3.0.0/PositionPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" #include "String.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PositionPoint_factory(); diff --git a/CGMES_3.0.0/PostLineSensor.cpp b/CGMES_3.0.0/PostLineSensor.cpp index b97b27f82..369611f1a 100644 --- a/CGMES_3.0.0/PostLineSensor.cpp +++ b/CGMES_3.0.0/PostLineSensor.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PostLineSensor(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + PostLineSensor::PostLineSensor() {} PostLineSensor::~PostLineSensor() {} -static const std::list PossibleProfilesForClass = +const std::list& PostLineSensor::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PostLineSensor::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PostLineSensor::getPossibleProfilesForClass() const +const std::string& PostLineSensor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PostLineSensor::getPossibleProfilesForAttributes() const +const std::list& PostLineSensor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Sensor::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PostLineSensor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PostLineSensor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PostLineSensor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char PostLineSensor::debugName[] = "PostLineSensor"; @@ -46,7 +78,7 @@ const char* PostLineSensor::debugString() const void PostLineSensor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PostLineSensor", &PostLineSensor_factory); + factory_map.emplace("PostLineSensor", &PostLineSensor_factory); } void PostLineSensor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void PostLineSensor::addEnumGetFnsToMap(std::map& get Sensor::addEnumGetFnsToMap(get_map); } +bool PostLineSensor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PostLineSensor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PostLineSensor::declare() { return BaseClassDefiner(PostLineSensor::addConstructToMap, PostLineSensor::addPrimitiveAssignFnsToMap, PostLineSensor::addClassAssignFnsToMap, PostLineSensor::debugName); } +std::map PostLineSensor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Sensor::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PostLineSensor_factory() diff --git a/CGMES_3.0.0/PostLineSensor.hpp b/CGMES_3.0.0/PostLineSensor.hpp index 9aa74b677..ae27aaab6 100644 --- a/CGMES_3.0.0/PostLineSensor.hpp +++ b/CGMES_3.0.0/PostLineSensor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Sensor.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PostLineSensor_factory(); diff --git a/CGMES_3.0.0/PotentialTransformer.cpp b/CGMES_3.0.0/PotentialTransformer.cpp index f6d85ac4c..f2b3603f1 100644 --- a/CGMES_3.0.0/PotentialTransformer.cpp +++ b/CGMES_3.0.0/PotentialTransformer.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PotentialTransformer(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + PotentialTransformer::PotentialTransformer() {} PotentialTransformer::~PotentialTransformer() {} -static const std::list PossibleProfilesForClass = +const std::list& PotentialTransformer::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PotentialTransformer::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PotentialTransformer::getPossibleProfilesForClass() const +const std::string& PotentialTransformer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PotentialTransformer::getPossibleProfilesForAttributes() const +const std::list& PotentialTransformer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Sensor::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PotentialTransformer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PotentialTransformer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PotentialTransformer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char PotentialTransformer::debugName[] = "PotentialTransformer"; @@ -46,7 +78,7 @@ const char* PotentialTransformer::debugString() const void PotentialTransformer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PotentialTransformer", &PotentialTransformer_factory); + factory_map.emplace("PotentialTransformer", &PotentialTransformer_factory); } void PotentialTransformer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void PotentialTransformer::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PotentialTransformer::declare() { return BaseClassDefiner(PotentialTransformer::addConstructToMap, PotentialTransformer::addPrimitiveAssignFnsToMap, PotentialTransformer::addClassAssignFnsToMap, PotentialTransformer::debugName); } +std::map PotentialTransformer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Sensor::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PotentialTransformer_factory() diff --git a/CGMES_3.0.0/PotentialTransformer.hpp b/CGMES_3.0.0/PotentialTransformer.hpp index 020c93f0b..2142d2f95 100644 --- a/CGMES_3.0.0/PotentialTransformer.hpp +++ b/CGMES_3.0.0/PotentialTransformer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Sensor.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PotentialTransformer_factory(); diff --git a/CGMES_3.0.0/PowerElectronicsConnection.cpp b/CGMES_3.0.0/PowerElectronicsConnection.cpp index f378cad59..f975e65c2 100644 --- a/CGMES_3.0.0/PowerElectronicsConnection.cpp +++ b/CGMES_3.0.0/PowerElectronicsConnection.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerElectronicsConnection(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerElectronicsConnection.PowerElectronicsUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerElectronicsConnection.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PowerElectronicsConnection.maxQ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerElectronicsConnection.minQ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerElectronicsConnection.p", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "PowerElectronicsConnection.q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "PowerElectronicsConnection.ratedS", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerElectronicsConnection.ratedU", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerElectronicsConnection::PowerElectronicsConnection() : PowerElectronicsUnit(nullptr), WindTurbineType3or4Dynamics(nullptr) {} PowerElectronicsConnection::~PowerElectronicsConnection() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerElectronicsConnection::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerElectronicsConnection::getClassNamespaceUrl() const { - { "cim:PowerElectronicsConnection.PowerElectronicsUnit", { CGMESProfile::EQ, } }, - { "cim:PowerElectronicsConnection.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, - { "cim:PowerElectronicsConnection.maxQ", { CGMESProfile::EQ, } }, - { "cim:PowerElectronicsConnection.minQ", { CGMESProfile::EQ, } }, - { "cim:PowerElectronicsConnection.p", { CGMESProfile::SSH, } }, - { "cim:PowerElectronicsConnection.q", { CGMESProfile::SSH, } }, - { "cim:PowerElectronicsConnection.ratedS", { CGMESProfile::EQ, } }, - { "cim:PowerElectronicsConnection.ratedU", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerElectronicsConnection::getPossibleProfilesForClass() const +const std::string& PowerElectronicsConnection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerElectronicsConnection::getPossibleProfilesForAttributes() const +const std::list& PowerElectronicsConnection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerElectronicsConnection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerElectronicsConnection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerElectronicsConnection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerElectronicsUnit_PowerElectronicsConnection(BaseClass*, BaseClass*); @@ -281,40 +313,40 @@ const char* PowerElectronicsConnection::debugString() const void PowerElectronicsConnection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerElectronicsConnection", &PowerElectronicsConnection_factory); + factory_map.emplace("PowerElectronicsConnection", &PowerElectronicsConnection_factory); } void PowerElectronicsConnection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerElectronicsConnection.maxQ", &assign_PowerElectronicsConnection_maxQ); - assign_map.emplace("cim:PowerElectronicsConnection.minQ", &assign_PowerElectronicsConnection_minQ); - assign_map.emplace("cim:PowerElectronicsConnection.p", &assign_PowerElectronicsConnection_p); - assign_map.emplace("cim:PowerElectronicsConnection.q", &assign_PowerElectronicsConnection_q); - assign_map.emplace("cim:PowerElectronicsConnection.ratedS", &assign_PowerElectronicsConnection_ratedS); - assign_map.emplace("cim:PowerElectronicsConnection.ratedU", &assign_PowerElectronicsConnection_ratedU); + assign_map.emplace("PowerElectronicsConnection.maxQ", &assign_PowerElectronicsConnection_maxQ); + assign_map.emplace("PowerElectronicsConnection.minQ", &assign_PowerElectronicsConnection_minQ); + assign_map.emplace("PowerElectronicsConnection.p", &assign_PowerElectronicsConnection_p); + assign_map.emplace("PowerElectronicsConnection.q", &assign_PowerElectronicsConnection_q); + assign_map.emplace("PowerElectronicsConnection.ratedS", &assign_PowerElectronicsConnection_ratedS); + assign_map.emplace("PowerElectronicsConnection.ratedU", &assign_PowerElectronicsConnection_ratedU); } void PowerElectronicsConnection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerElectronicsConnection.PowerElectronicsUnit", &assign_PowerElectronicsConnection_PowerElectronicsUnit); - assign_map.emplace("cim:PowerElectronicsConnection.WindTurbineType3or4Dynamics", &assign_PowerElectronicsConnection_WindTurbineType3or4Dynamics); + assign_map.emplace("PowerElectronicsConnection.PowerElectronicsUnit", &assign_PowerElectronicsConnection_PowerElectronicsUnit); + assign_map.emplace("PowerElectronicsConnection.WindTurbineType3or4Dynamics", &assign_PowerElectronicsConnection_WindTurbineType3or4Dynamics); } void PowerElectronicsConnection::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerElectronicsConnection.maxQ", &get_PowerElectronicsConnection_maxQ); - get_map.emplace("cim:PowerElectronicsConnection.minQ", &get_PowerElectronicsConnection_minQ); - get_map.emplace("cim:PowerElectronicsConnection.p", &get_PowerElectronicsConnection_p); - get_map.emplace("cim:PowerElectronicsConnection.q", &get_PowerElectronicsConnection_q); - get_map.emplace("cim:PowerElectronicsConnection.ratedS", &get_PowerElectronicsConnection_ratedS); - get_map.emplace("cim:PowerElectronicsConnection.ratedU", &get_PowerElectronicsConnection_ratedU); + get_map.emplace("PowerElectronicsConnection.maxQ", &get_PowerElectronicsConnection_maxQ); + get_map.emplace("PowerElectronicsConnection.minQ", &get_PowerElectronicsConnection_minQ); + get_map.emplace("PowerElectronicsConnection.p", &get_PowerElectronicsConnection_p); + get_map.emplace("PowerElectronicsConnection.q", &get_PowerElectronicsConnection_q); + get_map.emplace("PowerElectronicsConnection.ratedS", &get_PowerElectronicsConnection_ratedS); + get_map.emplace("PowerElectronicsConnection.ratedU", &get_PowerElectronicsConnection_ratedU); } void PowerElectronicsConnection::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerElectronicsConnection.PowerElectronicsUnit", &get_PowerElectronicsConnection_PowerElectronicsUnit); + get_map.emplace("PowerElectronicsConnection.PowerElectronicsUnit", &get_PowerElectronicsConnection_PowerElectronicsUnit); } void PowerElectronicsConnection::addEnumGetFnsToMap(std::map& get_map) const @@ -322,11 +354,25 @@ void PowerElectronicsConnection::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerElectronicsConnection::declare() { return BaseClassDefiner(PowerElectronicsConnection::addConstructToMap, PowerElectronicsConnection::addPrimitiveAssignFnsToMap, PowerElectronicsConnection::addClassAssignFnsToMap, PowerElectronicsConnection::debugName); } +std::map PowerElectronicsConnection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerElectronicsConnection_factory() diff --git a/CGMES_3.0.0/PowerElectronicsConnection.hpp b/CGMES_3.0.0/PowerElectronicsConnection.hpp index a8a8adc2a..d9a0fa973 100644 --- a/CGMES_3.0.0/PowerElectronicsConnection.hpp +++ b/CGMES_3.0.0/PowerElectronicsConnection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ApparentPower.hpp" #include "ReactivePower.hpp" @@ -57,8 +58,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -66,7 +74,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerElectronicsConnection_factory(); diff --git a/CGMES_3.0.0/PowerElectronicsUnit.cpp b/CGMES_3.0.0/PowerElectronicsUnit.cpp index d47a1df28..0f0a5c015 100644 --- a/CGMES_3.0.0/PowerElectronicsUnit.cpp +++ b/CGMES_3.0.0/PowerElectronicsUnit.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerElectronicsUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerElectronicsUnit.PowerElectronicsConnection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerElectronicsUnit.maxP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerElectronicsUnit.minP", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + PowerElectronicsUnit::PowerElectronicsUnit() : PowerElectronicsConnection(nullptr) {} PowerElectronicsUnit::~PowerElectronicsUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerElectronicsUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerElectronicsUnit::getClassNamespaceUrl() const { - { "cim:PowerElectronicsUnit.PowerElectronicsConnection", { CGMESProfile::EQ, } }, - { "cim:PowerElectronicsUnit.maxP", { CGMESProfile::EQ, } }, - { "cim:PowerElectronicsUnit.minP", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerElectronicsUnit::getPossibleProfilesForClass() const +const std::string& PowerElectronicsUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerElectronicsUnit::getPossibleProfilesForAttributes() const +const std::list& PowerElectronicsUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Equipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerElectronicsUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerElectronicsUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerElectronicsUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerElectronicsConnection_PowerElectronicsUnit(BaseClass*, BaseClass*); @@ -127,25 +159,25 @@ const char* PowerElectronicsUnit::debugString() const void PowerElectronicsUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerElectronicsUnit", &PowerElectronicsUnit_factory); + factory_map.emplace("PowerElectronicsUnit", &PowerElectronicsUnit_factory); } void PowerElectronicsUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerElectronicsUnit.maxP", &assign_PowerElectronicsUnit_maxP); - assign_map.emplace("cim:PowerElectronicsUnit.minP", &assign_PowerElectronicsUnit_minP); + assign_map.emplace("PowerElectronicsUnit.maxP", &assign_PowerElectronicsUnit_maxP); + assign_map.emplace("PowerElectronicsUnit.minP", &assign_PowerElectronicsUnit_minP); } void PowerElectronicsUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerElectronicsUnit.PowerElectronicsConnection", &assign_PowerElectronicsUnit_PowerElectronicsConnection); + assign_map.emplace("PowerElectronicsUnit.PowerElectronicsConnection", &assign_PowerElectronicsUnit_PowerElectronicsConnection); } void PowerElectronicsUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { Equipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerElectronicsUnit.maxP", &get_PowerElectronicsUnit_maxP); - get_map.emplace("cim:PowerElectronicsUnit.minP", &get_PowerElectronicsUnit_minP); + get_map.emplace("PowerElectronicsUnit.maxP", &get_PowerElectronicsUnit_maxP); + get_map.emplace("PowerElectronicsUnit.minP", &get_PowerElectronicsUnit_minP); } void PowerElectronicsUnit::addClassGetFnsToMap(std::map& get_map) const @@ -158,11 +190,25 @@ void PowerElectronicsUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerElectronicsUnit::declare() { return BaseClassDefiner(PowerElectronicsUnit::addConstructToMap, PowerElectronicsUnit::addPrimitiveAssignFnsToMap, PowerElectronicsUnit::addClassAssignFnsToMap, PowerElectronicsUnit::debugName); } +std::map PowerElectronicsUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Equipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerElectronicsUnit_factory() diff --git a/CGMES_3.0.0/PowerElectronicsUnit.hpp b/CGMES_3.0.0/PowerElectronicsUnit.hpp index 06571c149..584d006a9 100644 --- a/CGMES_3.0.0/PowerElectronicsUnit.hpp +++ b/CGMES_3.0.0/PowerElectronicsUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Equipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerElectronicsUnit_factory(); diff --git a/CGMES_3.0.0/PowerElectronicsWindUnit.cpp b/CGMES_3.0.0/PowerElectronicsWindUnit.cpp index 2985979e9..0343f58a1 100644 --- a/CGMES_3.0.0/PowerElectronicsWindUnit.cpp +++ b/CGMES_3.0.0/PowerElectronicsWindUnit.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerElectronicsWindUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + PowerElectronicsWindUnit::PowerElectronicsWindUnit() {} PowerElectronicsWindUnit::~PowerElectronicsWindUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerElectronicsWindUnit::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerElectronicsWindUnit::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerElectronicsWindUnit::getPossibleProfilesForClass() const +const std::string& PowerElectronicsWindUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerElectronicsWindUnit::getPossibleProfilesForAttributes() const +const std::list& PowerElectronicsWindUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerElectronicsUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerElectronicsWindUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerElectronicsWindUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerElectronicsWindUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char PowerElectronicsWindUnit::debugName[] = "PowerElectronicsWindUnit"; @@ -46,7 +78,7 @@ const char* PowerElectronicsWindUnit::debugString() const void PowerElectronicsWindUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerElectronicsWindUnit", &PowerElectronicsWindUnit_factory); + factory_map.emplace("PowerElectronicsWindUnit", &PowerElectronicsWindUnit_factory); } void PowerElectronicsWindUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void PowerElectronicsWindUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerElectronicsWindUnit::declare() { return BaseClassDefiner(PowerElectronicsWindUnit::addConstructToMap, PowerElectronicsWindUnit::addPrimitiveAssignFnsToMap, PowerElectronicsWindUnit::addClassAssignFnsToMap, PowerElectronicsWindUnit::debugName); } +std::map PowerElectronicsWindUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerElectronicsUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerElectronicsWindUnit_factory() diff --git a/CGMES_3.0.0/PowerElectronicsWindUnit.hpp b/CGMES_3.0.0/PowerElectronicsWindUnit.hpp index ef8295ba5..bc165d9ca 100644 --- a/CGMES_3.0.0/PowerElectronicsWindUnit.hpp +++ b/CGMES_3.0.0/PowerElectronicsWindUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerElectronicsUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerElectronicsWindUnit_factory(); diff --git a/CGMES_3.0.0/PowerSystemResource.cpp b/CGMES_3.0.0/PowerSystemResource.cpp index 9d127705c..1edfd421c 100644 --- a/CGMES_3.0.0/PowerSystemResource.cpp +++ b/CGMES_3.0.0/PowerSystemResource.cpp @@ -14,40 +14,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemResource(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::GL, + CGMESProfile::OP, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemResource.Controls", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "PowerSystemResource.Location", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "PowerSystemResource.Measurements", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemResource::PowerSystemResource() : Location(nullptr) {} PowerSystemResource::~PowerSystemResource() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemResource::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::GL, - CGMESProfile::OP, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemResource::getClassNamespaceUrl() const { - { "cim:PowerSystemResource.Controls", { CGMESProfile::OP, } }, - { "cim:PowerSystemResource.Location", { CGMESProfile::GL, } }, - { "cim:PowerSystemResource.Measurements", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemResource::getPossibleProfilesForClass() const +const std::string& PowerSystemResource::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemResource::getPossibleProfilesForAttributes() const +const std::list& PowerSystemResource::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemResource::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemResource::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemResource::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Control_PowerSystemResource(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* PowerSystemResource::debugString() const void PowerSystemResource::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemResource", &PowerSystemResource_factory); + factory_map.emplace("PowerSystemResource", &PowerSystemResource_factory); } void PowerSystemResource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,9 +153,9 @@ void PowerSystemResource::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemResource.Controls", &assign_PowerSystemResource_Controls); - assign_map.emplace("cim:PowerSystemResource.Location", &assign_PowerSystemResource_Location); - assign_map.emplace("cim:PowerSystemResource.Measurements", &assign_PowerSystemResource_Measurements); + assign_map.emplace("PowerSystemResource.Controls", &assign_PowerSystemResource_Controls); + assign_map.emplace("PowerSystemResource.Location", &assign_PowerSystemResource_Location); + assign_map.emplace("PowerSystemResource.Measurements", &assign_PowerSystemResource_Measurements); } void PowerSystemResource::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -141,11 +173,25 @@ void PowerSystemResource::addEnumGetFnsToMap(std::map IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool PowerSystemResource::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerSystemResource" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemResource::declare() { return BaseClassDefiner(PowerSystemResource::addConstructToMap, PowerSystemResource::addPrimitiveAssignFnsToMap, PowerSystemResource::addClassAssignFnsToMap, PowerSystemResource::debugName); } +std::map PowerSystemResource::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemResource_factory() diff --git a/CGMES_3.0.0/PowerSystemResource.hpp b/CGMES_3.0.0/PowerSystemResource.hpp index 1758c38ac..283a620d4 100644 --- a/CGMES_3.0.0/PowerSystemResource.hpp +++ b/CGMES_3.0.0/PowerSystemResource.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemResource_factory(); diff --git a/CGMES_3.0.0/PowerSystemStabilizerDynamics.cpp b/CGMES_3.0.0/PowerSystemStabilizerDynamics.cpp index fb50d8a2e..b4018793e 100644 --- a/CGMES_3.0.0/PowerSystemStabilizerDynamics.cpp +++ b/CGMES_3.0.0/PowerSystemStabilizerDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemStabilizerDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemStabilizerDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PowerSystemStabilizerDynamics.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemStabilizerDynamics::PowerSystemStabilizerDynamics() : ExcitationSystemDynamics(nullptr) {} PowerSystemStabilizerDynamics::~PowerSystemStabilizerDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemStabilizerDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemStabilizerDynamics::getClassNamespaceUrl() const { - { "cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:PowerSystemStabilizerDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemStabilizerDynamics::getPossibleProfilesForClass() const +const std::string& PowerSystemStabilizerDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes() const +const std::list& PowerSystemStabilizerDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemStabilizerDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemStabilizerDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemStabilizerDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_PowerSystemStabilizerDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* PowerSystemStabilizerDynamics::debugString() const void PowerSystemStabilizerDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemStabilizerDynamics", &PowerSystemStabilizerDynamics_factory); + factory_map.emplace("PowerSystemStabilizerDynamics", &PowerSystemStabilizerDynamics_factory); } void PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void PowerSystemStabilizerDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &assign_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:PowerSystemStabilizerDynamics.RemoteInputSignal", &assign_PowerSystemStabilizerDynamics_RemoteInputSignal); + assign_map.emplace("PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &assign_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); + assign_map.emplace("PowerSystemStabilizerDynamics.RemoteInputSignal", &assign_PowerSystemStabilizerDynamics_RemoteInputSignal); } void PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &get_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); + get_map.emplace("PowerSystemStabilizerDynamics.ExcitationSystemDynamics", &get_PowerSystemStabilizerDynamics_ExcitationSystemDynamics); } void PowerSystemStabilizerDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void PowerSystemStabilizerDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemStabilizerDynamics::declare() { return BaseClassDefiner(PowerSystemStabilizerDynamics::addConstructToMap, PowerSystemStabilizerDynamics::addPrimitiveAssignFnsToMap, PowerSystemStabilizerDynamics::addClassAssignFnsToMap, PowerSystemStabilizerDynamics::debugName); } +std::map PowerSystemStabilizerDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemStabilizerDynamics_factory() diff --git a/CGMES_3.0.0/PowerSystemStabilizerDynamics.hpp b/CGMES_3.0.0/PowerSystemStabilizerDynamics.hpp index 4b5837a2e..45f6a9150 100644 --- a/CGMES_3.0.0/PowerSystemStabilizerDynamics.hpp +++ b/CGMES_3.0.0/PowerSystemStabilizerDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemStabilizerDynamics_factory(); diff --git a/CGMES_3.0.0/PowerSystemStabilizerUserDefined.cpp b/CGMES_3.0.0/PowerSystemStabilizerUserDefined.cpp index a444c0d8b..b6f91d526 100644 --- a/CGMES_3.0.0/PowerSystemStabilizerUserDefined.cpp +++ b/CGMES_3.0.0/PowerSystemStabilizerUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerSystemStabilizerUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PowerSystemStabilizerUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PowerSystemStabilizerUserDefined::PowerSystemStabilizerUserDefined() {} PowerSystemStabilizerUserDefined::~PowerSystemStabilizerUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerSystemStabilizerUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerSystemStabilizerUserDefined::getClassNamespaceUrl() const { - { "cim:PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:PowerSystemStabilizerUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerSystemStabilizerUserDefined::getPossibleProfilesForClass() const +const std::string& PowerSystemStabilizerUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerSystemStabilizerUserDefined::getPossibleProfilesForAttributes() const +const std::list& PowerSystemStabilizerUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerSystemStabilizerUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerSystemStabilizerUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerSystemStabilizerUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* PowerSystemStabilizerUserDefined::debugString() const void PowerSystemStabilizerUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerSystemStabilizerUserDefined", &PowerSystemStabilizerUserDefined_factory); + factory_map.emplace("PowerSystemStabilizerUserDefined", &PowerSystemStabilizerUserDefined_factory); } void PowerSystemStabilizerUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerUserDefined.proprietary", &assign_PowerSystemStabilizerUserDefined_proprietary); + assign_map.emplace("PowerSystemStabilizerUserDefined.proprietary", &assign_PowerSystemStabilizerUserDefined_proprietary); } void PowerSystemStabilizerUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", &assign_PowerSystemStabilizerUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", &assign_PowerSystemStabilizerUserDefined_ProprietaryParameterDynamics); } void PowerSystemStabilizerUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerSystemStabilizerUserDefined.proprietary", &get_PowerSystemStabilizerUserDefined_proprietary); + get_map.emplace("PowerSystemStabilizerUserDefined.proprietary", &get_PowerSystemStabilizerUserDefined_proprietary); } void PowerSystemStabilizerUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void PowerSystemStabilizerUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner PowerSystemStabilizerUserDefined::declare() { return BaseClassDefiner(PowerSystemStabilizerUserDefined::addConstructToMap, PowerSystemStabilizerUserDefined::addPrimitiveAssignFnsToMap, PowerSystemStabilizerUserDefined::addClassAssignFnsToMap, PowerSystemStabilizerUserDefined::debugName); } +std::map PowerSystemStabilizerUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerSystemStabilizerUserDefined_factory() diff --git a/CGMES_3.0.0/PowerSystemStabilizerUserDefined.hpp b/CGMES_3.0.0/PowerSystemStabilizerUserDefined.hpp index 2c8814d1e..75d6355dc 100644 --- a/CGMES_3.0.0/PowerSystemStabilizerUserDefined.hpp +++ b/CGMES_3.0.0/PowerSystemStabilizerUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerSystemStabilizerUserDefined_factory(); diff --git a/CGMES_3.0.0/PowerTransformer.cpp b/CGMES_3.0.0/PowerTransformer.cpp index 1210c9daf..5fa1c1487 100644 --- a/CGMES_3.0.0/PowerTransformer.cpp +++ b/CGMES_3.0.0/PowerTransformer.cpp @@ -12,39 +12,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerTransformer(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerTransformer.PowerTransformerEnd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformer.beforeShCircuitHighestOperatingCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformer.beforeShCircuitHighestOperatingVoltage", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformer.beforeShortCircuitAnglePf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformer.highSideMinOperatingU", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformer.isPartOfGeneratorUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformer.operationalValuesConsidered", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + PowerTransformer::PowerTransformer() {} PowerTransformer::~PowerTransformer() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerTransformer::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerTransformer::getClassNamespaceUrl() const { - { "cim:PowerTransformer.PowerTransformerEnd", { CGMESProfile::EQ, } }, - { "cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", { CGMESProfile::SC, } }, - { "cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", { CGMESProfile::SC, } }, - { "cim:PowerTransformer.beforeShortCircuitAnglePf", { CGMESProfile::SC, } }, - { "cim:PowerTransformer.highSideMinOperatingU", { CGMESProfile::SC, } }, - { "cim:PowerTransformer.isPartOfGeneratorUnit", { CGMESProfile::SC, } }, - { "cim:PowerTransformer.operationalValuesConsidered", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerTransformer::getPossibleProfilesForClass() const +const std::string& PowerTransformer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerTransformer::getPossibleProfilesForAttributes() const +const std::list& PowerTransformer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerTransformer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerTransformer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerTransformer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerTransformerEnd_PowerTransformer(BaseClass*, BaseClass*); @@ -247,33 +279,33 @@ const char* PowerTransformer::debugString() const void PowerTransformer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerTransformer", &PowerTransformer_factory); + factory_map.emplace("PowerTransformer", &PowerTransformer_factory); } void PowerTransformer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", &assign_PowerTransformer_beforeShCircuitHighestOperatingCurrent); - assign_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", &assign_PowerTransformer_beforeShCircuitHighestOperatingVoltage); - assign_map.emplace("cim:PowerTransformer.beforeShortCircuitAnglePf", &assign_PowerTransformer_beforeShortCircuitAnglePf); - assign_map.emplace("cim:PowerTransformer.highSideMinOperatingU", &assign_PowerTransformer_highSideMinOperatingU); - assign_map.emplace("cim:PowerTransformer.isPartOfGeneratorUnit", &assign_PowerTransformer_isPartOfGeneratorUnit); - assign_map.emplace("cim:PowerTransformer.operationalValuesConsidered", &assign_PowerTransformer_operationalValuesConsidered); + assign_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingCurrent", &assign_PowerTransformer_beforeShCircuitHighestOperatingCurrent); + assign_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingVoltage", &assign_PowerTransformer_beforeShCircuitHighestOperatingVoltage); + assign_map.emplace("PowerTransformer.beforeShortCircuitAnglePf", &assign_PowerTransformer_beforeShortCircuitAnglePf); + assign_map.emplace("PowerTransformer.highSideMinOperatingU", &assign_PowerTransformer_highSideMinOperatingU); + assign_map.emplace("PowerTransformer.isPartOfGeneratorUnit", &assign_PowerTransformer_isPartOfGeneratorUnit); + assign_map.emplace("PowerTransformer.operationalValuesConsidered", &assign_PowerTransformer_operationalValuesConsidered); } void PowerTransformer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformer.PowerTransformerEnd", &assign_PowerTransformer_PowerTransformerEnd); + assign_map.emplace("PowerTransformer.PowerTransformerEnd", &assign_PowerTransformer_PowerTransformerEnd); } void PowerTransformer::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", &get_PowerTransformer_beforeShCircuitHighestOperatingCurrent); - get_map.emplace("cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", &get_PowerTransformer_beforeShCircuitHighestOperatingVoltage); - get_map.emplace("cim:PowerTransformer.beforeShortCircuitAnglePf", &get_PowerTransformer_beforeShortCircuitAnglePf); - get_map.emplace("cim:PowerTransformer.highSideMinOperatingU", &get_PowerTransformer_highSideMinOperatingU); - get_map.emplace("cim:PowerTransformer.isPartOfGeneratorUnit", &get_PowerTransformer_isPartOfGeneratorUnit); - get_map.emplace("cim:PowerTransformer.operationalValuesConsidered", &get_PowerTransformer_operationalValuesConsidered); + get_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingCurrent", &get_PowerTransformer_beforeShCircuitHighestOperatingCurrent); + get_map.emplace("PowerTransformer.beforeShCircuitHighestOperatingVoltage", &get_PowerTransformer_beforeShCircuitHighestOperatingVoltage); + get_map.emplace("PowerTransformer.beforeShortCircuitAnglePf", &get_PowerTransformer_beforeShortCircuitAnglePf); + get_map.emplace("PowerTransformer.highSideMinOperatingU", &get_PowerTransformer_highSideMinOperatingU); + get_map.emplace("PowerTransformer.isPartOfGeneratorUnit", &get_PowerTransformer_isPartOfGeneratorUnit); + get_map.emplace("PowerTransformer.operationalValuesConsidered", &get_PowerTransformer_operationalValuesConsidered); } void PowerTransformer::addClassGetFnsToMap(std::map& get_map) const @@ -286,11 +318,25 @@ void PowerTransformer::addEnumGetFnsToMap(std::map& g ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool PowerTransformer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerTransformer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PowerTransformer::declare() { return BaseClassDefiner(PowerTransformer::addConstructToMap, PowerTransformer::addPrimitiveAssignFnsToMap, PowerTransformer::addClassAssignFnsToMap, PowerTransformer::debugName); } +std::map PowerTransformer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerTransformer_factory() diff --git a/CGMES_3.0.0/PowerTransformer.hpp b/CGMES_3.0.0/PowerTransformer.hpp index 77239b7b5..e5f2bead4 100644 --- a/CGMES_3.0.0/PowerTransformer.hpp +++ b/CGMES_3.0.0/PowerTransformer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerTransformer_factory(); diff --git a/CGMES_3.0.0/PowerTransformerEnd.cpp b/CGMES_3.0.0/PowerTransformerEnd.cpp index e50fb5365..d58859e08 100644 --- a/CGMES_3.0.0/PowerTransformerEnd.cpp +++ b/CGMES_3.0.0/PowerTransformerEnd.cpp @@ -12,45 +12,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PowerTransformerEnd(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PowerTransformerEnd.PowerTransformer", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.b0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformerEnd.connectionKind", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.g", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.g0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformerEnd.phaseAngleClock", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformerEnd.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.r0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "PowerTransformerEnd.ratedS", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.ratedU", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "PowerTransformerEnd.x0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + PowerTransformerEnd::PowerTransformerEnd() : PowerTransformer(nullptr) {} PowerTransformerEnd::~PowerTransformerEnd() {} -static const std::list PossibleProfilesForClass = +const std::list& PowerTransformerEnd::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PowerTransformerEnd::getClassNamespaceUrl() const { - { "cim:PowerTransformerEnd.PowerTransformer", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.b", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.b0", { CGMESProfile::SC, } }, - { "cim:PowerTransformerEnd.connectionKind", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.g", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.g0", { CGMESProfile::SC, } }, - { "cim:PowerTransformerEnd.phaseAngleClock", { CGMESProfile::SC, } }, - { "cim:PowerTransformerEnd.r", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.r0", { CGMESProfile::SC, } }, - { "cim:PowerTransformerEnd.ratedS", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.ratedU", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.x", { CGMESProfile::EQ, } }, - { "cim:PowerTransformerEnd.x0", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PowerTransformerEnd::getPossibleProfilesForClass() const +const std::string& PowerTransformerEnd::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PowerTransformerEnd::getPossibleProfilesForAttributes() const +const std::list& PowerTransformerEnd::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TransformerEnd::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PowerTransformerEnd::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PowerTransformerEnd::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PowerTransformerEnd::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerTransformer_PowerTransformerEnd(BaseClass*, BaseClass*); @@ -440,56 +472,62 @@ const char* PowerTransformerEnd::debugString() const void PowerTransformerEnd::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PowerTransformerEnd", &PowerTransformerEnd_factory); + factory_map.emplace("PowerTransformerEnd", &PowerTransformerEnd_factory); } void PowerTransformerEnd::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformerEnd.b", &assign_PowerTransformerEnd_b); - assign_map.emplace("cim:PowerTransformerEnd.b0", &assign_PowerTransformerEnd_b0); - assign_map.emplace("cim:PowerTransformerEnd.connectionKind", &assign_PowerTransformerEnd_connectionKind); - assign_map.emplace("cim:PowerTransformerEnd.g", &assign_PowerTransformerEnd_g); - assign_map.emplace("cim:PowerTransformerEnd.g0", &assign_PowerTransformerEnd_g0); - assign_map.emplace("cim:PowerTransformerEnd.phaseAngleClock", &assign_PowerTransformerEnd_phaseAngleClock); - assign_map.emplace("cim:PowerTransformerEnd.r", &assign_PowerTransformerEnd_r); - assign_map.emplace("cim:PowerTransformerEnd.r0", &assign_PowerTransformerEnd_r0); - assign_map.emplace("cim:PowerTransformerEnd.ratedS", &assign_PowerTransformerEnd_ratedS); - assign_map.emplace("cim:PowerTransformerEnd.ratedU", &assign_PowerTransformerEnd_ratedU); - assign_map.emplace("cim:PowerTransformerEnd.x", &assign_PowerTransformerEnd_x); - assign_map.emplace("cim:PowerTransformerEnd.x0", &assign_PowerTransformerEnd_x0); + assign_map.emplace("PowerTransformerEnd.b", &assign_PowerTransformerEnd_b); + assign_map.emplace("PowerTransformerEnd.b0", &assign_PowerTransformerEnd_b0); + assign_map.emplace("PowerTransformerEnd.connectionKind", &assign_PowerTransformerEnd_connectionKind); + assign_map.emplace("PowerTransformerEnd.g", &assign_PowerTransformerEnd_g); + assign_map.emplace("PowerTransformerEnd.g0", &assign_PowerTransformerEnd_g0); + assign_map.emplace("PowerTransformerEnd.phaseAngleClock", &assign_PowerTransformerEnd_phaseAngleClock); + assign_map.emplace("PowerTransformerEnd.r", &assign_PowerTransformerEnd_r); + assign_map.emplace("PowerTransformerEnd.r0", &assign_PowerTransformerEnd_r0); + assign_map.emplace("PowerTransformerEnd.ratedS", &assign_PowerTransformerEnd_ratedS); + assign_map.emplace("PowerTransformerEnd.ratedU", &assign_PowerTransformerEnd_ratedU); + assign_map.emplace("PowerTransformerEnd.x", &assign_PowerTransformerEnd_x); + assign_map.emplace("PowerTransformerEnd.x0", &assign_PowerTransformerEnd_x0); } void PowerTransformerEnd::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PowerTransformerEnd.PowerTransformer", &assign_PowerTransformerEnd_PowerTransformer); + assign_map.emplace("PowerTransformerEnd.PowerTransformer", &assign_PowerTransformerEnd_PowerTransformer); } void PowerTransformerEnd::addPrimitiveGetFnsToMap(std::map& get_map) const { TransformerEnd::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.b", &get_PowerTransformerEnd_b); - get_map.emplace("cim:PowerTransformerEnd.b0", &get_PowerTransformerEnd_b0); - get_map.emplace("cim:PowerTransformerEnd.g", &get_PowerTransformerEnd_g); - get_map.emplace("cim:PowerTransformerEnd.g0", &get_PowerTransformerEnd_g0); - get_map.emplace("cim:PowerTransformerEnd.phaseAngleClock", &get_PowerTransformerEnd_phaseAngleClock); - get_map.emplace("cim:PowerTransformerEnd.r", &get_PowerTransformerEnd_r); - get_map.emplace("cim:PowerTransformerEnd.r0", &get_PowerTransformerEnd_r0); - get_map.emplace("cim:PowerTransformerEnd.ratedS", &get_PowerTransformerEnd_ratedS); - get_map.emplace("cim:PowerTransformerEnd.ratedU", &get_PowerTransformerEnd_ratedU); - get_map.emplace("cim:PowerTransformerEnd.x", &get_PowerTransformerEnd_x); - get_map.emplace("cim:PowerTransformerEnd.x0", &get_PowerTransformerEnd_x0); + get_map.emplace("PowerTransformerEnd.b", &get_PowerTransformerEnd_b); + get_map.emplace("PowerTransformerEnd.b0", &get_PowerTransformerEnd_b0); + get_map.emplace("PowerTransformerEnd.g", &get_PowerTransformerEnd_g); + get_map.emplace("PowerTransformerEnd.g0", &get_PowerTransformerEnd_g0); + get_map.emplace("PowerTransformerEnd.phaseAngleClock", &get_PowerTransformerEnd_phaseAngleClock); + get_map.emplace("PowerTransformerEnd.r", &get_PowerTransformerEnd_r); + get_map.emplace("PowerTransformerEnd.r0", &get_PowerTransformerEnd_r0); + get_map.emplace("PowerTransformerEnd.ratedS", &get_PowerTransformerEnd_ratedS); + get_map.emplace("PowerTransformerEnd.ratedU", &get_PowerTransformerEnd_ratedU); + get_map.emplace("PowerTransformerEnd.x", &get_PowerTransformerEnd_x); + get_map.emplace("PowerTransformerEnd.x0", &get_PowerTransformerEnd_x0); } void PowerTransformerEnd::addClassGetFnsToMap(std::map& get_map) const { TransformerEnd::addClassGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.PowerTransformer", &get_PowerTransformerEnd_PowerTransformer); + get_map.emplace("PowerTransformerEnd.PowerTransformer", &get_PowerTransformerEnd_PowerTransformer); } void PowerTransformerEnd::addEnumGetFnsToMap(std::map& get_map) const { TransformerEnd::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PowerTransformerEnd.connectionKind", &get_PowerTransformerEnd_connectionKind); + get_map.emplace("PowerTransformerEnd.connectionKind", &get_PowerTransformerEnd_connectionKind); +} + +bool PowerTransformerEnd::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PowerTransformerEnd" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PowerTransformerEnd::declare() @@ -497,6 +535,14 @@ const BaseClassDefiner PowerTransformerEnd::declare() return BaseClassDefiner(PowerTransformerEnd::addConstructToMap, PowerTransformerEnd::addPrimitiveAssignFnsToMap, PowerTransformerEnd::addClassAssignFnsToMap, PowerTransformerEnd::debugName); } +std::map PowerTransformerEnd::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TransformerEnd::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PowerTransformerEnd_factory() diff --git a/CGMES_3.0.0/PowerTransformerEnd.hpp b/CGMES_3.0.0/PowerTransformerEnd.hpp index f42dd7283..e1a0061fc 100644 --- a/CGMES_3.0.0/PowerTransformerEnd.hpp +++ b/CGMES_3.0.0/PowerTransformerEnd.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TransformerEnd.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ApparentPower.hpp" #include "Conductance.hpp" #include "Integer.hpp" @@ -75,8 +76,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -84,7 +92,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PowerTransformerEnd_factory(); diff --git a/CGMES_3.0.0/ProprietaryParameterDynamics.cpp b/CGMES_3.0.0/ProprietaryParameterDynamics.cpp index ea8664dd7..55fdf0caa 100644 --- a/CGMES_3.0.0/ProprietaryParameterDynamics.cpp +++ b/CGMES_3.0.0/ProprietaryParameterDynamics.cpp @@ -32,56 +32,88 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ProprietaryParameterDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ProprietaryParameterDynamics.AsynchronousMachineUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.CSCUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.ExcitationSystemUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.LoadUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.MechanicalLoadUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PFVArControllerType1UserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PFVArControllerType2UserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.SVCUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.SynchronousMachineUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.TurbineGovernorUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VSCUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VoltageAdjusterUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.VoltageCompensatorUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindPlantUserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindType1or2UserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.WindType3or4UserDefined", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.booleanParameterValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.floatParameterValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.integerParameterValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "ProprietaryParameterDynamics.parameterNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + ProprietaryParameterDynamics::ProprietaryParameterDynamics() : AsynchronousMachineUserDefined(nullptr), CSCUserDefined(nullptr), DiscontinuousExcitationControlUserDefined(nullptr), ExcitationSystemUserDefined(nullptr), LoadUserDefined(nullptr), MechanicalLoadUserDefined(nullptr), OverexcitationLimiterUserDefined(nullptr), PFVArControllerType1UserDefined(nullptr), PFVArControllerType2UserDefined(nullptr), PowerSystemStabilizerUserDefined(nullptr), SVCUserDefined(nullptr), SynchronousMachineUserDefined(nullptr), TurbineGovernorUserDefined(nullptr), TurbineLoadControllerUserDefined(nullptr), UnderexcitationLimiterUserDefined(nullptr), VSCUserDefined(nullptr), VoltageAdjusterUserDefined(nullptr), VoltageCompensatorUserDefined(nullptr), WindPlantUserDefined(nullptr), WindType1or2UserDefined(nullptr), WindType3or4UserDefined(nullptr) {} ProprietaryParameterDynamics::~ProprietaryParameterDynamics() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.CSCUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.LoadUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.SVCUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VSCUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindPlantUserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindType1or2UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.WindType3or4UserDefined", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.booleanParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.floatParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.integerParameterValue", { CGMESProfile::DY, } }, - { "cim:ProprietaryParameterDynamics.parameterNumber", { CGMESProfile::DY, } }, -}; - -std::list -ProprietaryParameterDynamics::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -ProprietaryParameterDynamics::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& ProprietaryParameterDynamics::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& ProprietaryParameterDynamics::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& ProprietaryParameterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& ProprietaryParameterDynamics::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ProprietaryParameterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ProprietaryParameterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ProprietaryParameterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineUserDefined_ProprietaryParameterDynamics(BaseClass*, BaseClass*); @@ -859,75 +891,75 @@ const char* ProprietaryParameterDynamics::debugString() const void ProprietaryParameterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ProprietaryParameterDynamics", &ProprietaryParameterDynamics_factory); + factory_map.emplace("ProprietaryParameterDynamics", &ProprietaryParameterDynamics_factory); } void ProprietaryParameterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ProprietaryParameterDynamics.booleanParameterValue", &assign_ProprietaryParameterDynamics_booleanParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.floatParameterValue", &assign_ProprietaryParameterDynamics_floatParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.integerParameterValue", &assign_ProprietaryParameterDynamics_integerParameterValue); - assign_map.emplace("cim:ProprietaryParameterDynamics.parameterNumber", &assign_ProprietaryParameterDynamics_parameterNumber); + assign_map.emplace("ProprietaryParameterDynamics.booleanParameterValue", &assign_ProprietaryParameterDynamics_booleanParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.floatParameterValue", &assign_ProprietaryParameterDynamics_floatParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.integerParameterValue", &assign_ProprietaryParameterDynamics_integerParameterValue); + assign_map.emplace("ProprietaryParameterDynamics.parameterNumber", &assign_ProprietaryParameterDynamics_parameterNumber); } void ProprietaryParameterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.CSCUserDefined", &assign_ProprietaryParameterDynamics_CSCUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", &assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.LoadUserDefined", &assign_ProprietaryParameterDynamics_LoadUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", &assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.SVCUserDefined", &assign_ProprietaryParameterDynamics_SVCUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", &assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VSCUserDefined", &assign_ProprietaryParameterDynamics_VSCUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindPlantUserDefined", &assign_ProprietaryParameterDynamics_WindPlantUserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindType1or2UserDefined", &assign_ProprietaryParameterDynamics_WindType1or2UserDefined); - assign_map.emplace("cim:ProprietaryParameterDynamics.WindType3or4UserDefined", &assign_ProprietaryParameterDynamics_WindType3or4UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.CSCUserDefined", &assign_ProprietaryParameterDynamics_CSCUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &assign_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.ExcitationSystemUserDefined", &assign_ProprietaryParameterDynamics_ExcitationSystemUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.LoadUserDefined", &assign_ProprietaryParameterDynamics_LoadUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.MechanicalLoadUserDefined", &assign_ProprietaryParameterDynamics_MechanicalLoadUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &assign_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &assign_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.SVCUserDefined", &assign_ProprietaryParameterDynamics_SVCUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.SynchronousMachineUserDefined", &assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.TurbineGovernorUserDefined", &assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VSCUserDefined", &assign_ProprietaryParameterDynamics_VSCUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindPlantUserDefined", &assign_ProprietaryParameterDynamics_WindPlantUserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindType1or2UserDefined", &assign_ProprietaryParameterDynamics_WindType1or2UserDefined); + assign_map.emplace("ProprietaryParameterDynamics.WindType3or4UserDefined", &assign_ProprietaryParameterDynamics_WindType3or4UserDefined); } void ProprietaryParameterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ProprietaryParameterDynamics.booleanParameterValue", &get_ProprietaryParameterDynamics_booleanParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.floatParameterValue", &get_ProprietaryParameterDynamics_floatParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.integerParameterValue", &get_ProprietaryParameterDynamics_integerParameterValue); - get_map.emplace("cim:ProprietaryParameterDynamics.parameterNumber", &get_ProprietaryParameterDynamics_parameterNumber); + get_map.emplace("ProprietaryParameterDynamics.booleanParameterValue", &get_ProprietaryParameterDynamics_booleanParameterValue); + get_map.emplace("ProprietaryParameterDynamics.floatParameterValue", &get_ProprietaryParameterDynamics_floatParameterValue); + get_map.emplace("ProprietaryParameterDynamics.integerParameterValue", &get_ProprietaryParameterDynamics_integerParameterValue); + get_map.emplace("ProprietaryParameterDynamics.parameterNumber", &get_ProprietaryParameterDynamics_parameterNumber); } void ProprietaryParameterDynamics::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.CSCUserDefined", &get_ProprietaryParameterDynamics_CSCUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &get_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.ExcitationSystemUserDefined", &get_ProprietaryParameterDynamics_ExcitationSystemUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.LoadUserDefined", &get_ProprietaryParameterDynamics_LoadUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.MechanicalLoadUserDefined", &get_ProprietaryParameterDynamics_MechanicalLoadUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &get_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.SVCUserDefined", &get_ProprietaryParameterDynamics_SVCUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.SynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_SynchronousMachineUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.TurbineGovernorUserDefined", &get_ProprietaryParameterDynamics_TurbineGovernorUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &get_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VSCUserDefined", &get_ProprietaryParameterDynamics_VSCUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &get_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &get_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindPlantUserDefined", &get_ProprietaryParameterDynamics_WindPlantUserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindType1or2UserDefined", &get_ProprietaryParameterDynamics_WindType1or2UserDefined); - get_map.emplace("cim:ProprietaryParameterDynamics.WindType3or4UserDefined", &get_ProprietaryParameterDynamics_WindType3or4UserDefined); + get_map.emplace("ProprietaryParameterDynamics.AsynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_AsynchronousMachineUserDefined); + get_map.emplace("ProprietaryParameterDynamics.CSCUserDefined", &get_ProprietaryParameterDynamics_CSCUserDefined); + get_map.emplace("ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", &get_ProprietaryParameterDynamics_DiscontinuousExcitationControlUserDefined); + get_map.emplace("ProprietaryParameterDynamics.ExcitationSystemUserDefined", &get_ProprietaryParameterDynamics_ExcitationSystemUserDefined); + get_map.emplace("ProprietaryParameterDynamics.LoadUserDefined", &get_ProprietaryParameterDynamics_LoadUserDefined); + get_map.emplace("ProprietaryParameterDynamics.MechanicalLoadUserDefined", &get_ProprietaryParameterDynamics_MechanicalLoadUserDefined); + get_map.emplace("ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_OverexcitationLimiterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.PFVArControllerType1UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType1UserDefined); + get_map.emplace("ProprietaryParameterDynamics.PFVArControllerType2UserDefined", &get_ProprietaryParameterDynamics_PFVArControllerType2UserDefined); + get_map.emplace("ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", &get_ProprietaryParameterDynamics_PowerSystemStabilizerUserDefined); + get_map.emplace("ProprietaryParameterDynamics.SVCUserDefined", &get_ProprietaryParameterDynamics_SVCUserDefined); + get_map.emplace("ProprietaryParameterDynamics.SynchronousMachineUserDefined", &get_ProprietaryParameterDynamics_SynchronousMachineUserDefined); + get_map.emplace("ProprietaryParameterDynamics.TurbineGovernorUserDefined", &get_ProprietaryParameterDynamics_TurbineGovernorUserDefined); + get_map.emplace("ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", &get_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined); + get_map.emplace("ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", &get_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VSCUserDefined", &get_ProprietaryParameterDynamics_VSCUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VoltageAdjusterUserDefined", &get_ProprietaryParameterDynamics_VoltageAdjusterUserDefined); + get_map.emplace("ProprietaryParameterDynamics.VoltageCompensatorUserDefined", &get_ProprietaryParameterDynamics_VoltageCompensatorUserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindPlantUserDefined", &get_ProprietaryParameterDynamics_WindPlantUserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindType1or2UserDefined", &get_ProprietaryParameterDynamics_WindType1or2UserDefined); + get_map.emplace("ProprietaryParameterDynamics.WindType3or4UserDefined", &get_ProprietaryParameterDynamics_WindType3or4UserDefined); } void ProprietaryParameterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -935,11 +967,25 @@ void ProprietaryParameterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ProprietaryParameterDynamics::declare() { return BaseClassDefiner(ProprietaryParameterDynamics::addConstructToMap, ProprietaryParameterDynamics::addPrimitiveAssignFnsToMap, ProprietaryParameterDynamics::addClassAssignFnsToMap, ProprietaryParameterDynamics::debugName); } +std::map ProprietaryParameterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ProprietaryParameterDynamics_factory() diff --git a/CGMES_3.0.0/ProprietaryParameterDynamics.hpp b/CGMES_3.0.0/ProprietaryParameterDynamics.hpp index 0c3362018..1aa038a2a 100644 --- a/CGMES_3.0.0/ProprietaryParameterDynamics.hpp +++ b/CGMES_3.0.0/ProprietaryParameterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "Integer.hpp" @@ -126,8 +127,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -135,7 +143,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ProprietaryParameterDynamics_factory(); diff --git a/CGMES_3.0.0/ProtectedSwitch.cpp b/CGMES_3.0.0/ProtectedSwitch.cpp index 2b6f24097..df084b9cd 100644 --- a/CGMES_3.0.0/ProtectedSwitch.cpp +++ b/CGMES_3.0.0/ProtectedSwitch.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ProtectedSwitch(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + ProtectedSwitch::ProtectedSwitch() {} ProtectedSwitch::~ProtectedSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& ProtectedSwitch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ProtectedSwitch::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ProtectedSwitch::getPossibleProfilesForClass() const +const std::string& ProtectedSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ProtectedSwitch::getPossibleProfilesForAttributes() const +const std::list& ProtectedSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Switch::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ProtectedSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ProtectedSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ProtectedSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char ProtectedSwitch::debugName[] = "ProtectedSwitch"; @@ -47,7 +79,7 @@ const char* ProtectedSwitch::debugString() const void ProtectedSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ProtectedSwitch", &ProtectedSwitch_factory); + factory_map.emplace("ProtectedSwitch", &ProtectedSwitch_factory); } void ProtectedSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void ProtectedSwitch::addEnumGetFnsToMap(std::map& ge Switch::addEnumGetFnsToMap(get_map); } +bool ProtectedSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ProtectedSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ProtectedSwitch::declare() { return BaseClassDefiner(ProtectedSwitch::addConstructToMap, ProtectedSwitch::addPrimitiveAssignFnsToMap, ProtectedSwitch::addClassAssignFnsToMap, ProtectedSwitch::debugName); } +std::map ProtectedSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Switch::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ProtectedSwitch_factory() diff --git a/CGMES_3.0.0/ProtectedSwitch.hpp b/CGMES_3.0.0/ProtectedSwitch.hpp index e7161aa71..b76b5fc1b 100644 --- a/CGMES_3.0.0/ProtectedSwitch.hpp +++ b/CGMES_3.0.0/ProtectedSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Switch.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ProtectedSwitch_factory(); diff --git a/CGMES_3.0.0/Pss1.cpp b/CGMES_3.0.0/Pss1.cpp index 1bc7f3ae6..0069a09c0 100644 --- a/CGMES_3.0.0/Pss1.cpp +++ b/CGMES_3.0.0/Pss1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss1.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.komega", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.kpe", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.t10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.t7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.t8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.t9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.tpe", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.vadat", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.vsmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1.vsmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss1::Pss1() {} Pss1::~Pss1() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss1::getClassNamespaceUrl() const { - { "cim:Pss1.kf", { CGMESProfile::DY, } }, - { "cim:Pss1.komega", { CGMESProfile::DY, } }, - { "cim:Pss1.kpe", { CGMESProfile::DY, } }, - { "cim:Pss1.ks", { CGMESProfile::DY, } }, - { "cim:Pss1.pmin", { CGMESProfile::DY, } }, - { "cim:Pss1.t10", { CGMESProfile::DY, } }, - { "cim:Pss1.t5", { CGMESProfile::DY, } }, - { "cim:Pss1.t6", { CGMESProfile::DY, } }, - { "cim:Pss1.t7", { CGMESProfile::DY, } }, - { "cim:Pss1.t8", { CGMESProfile::DY, } }, - { "cim:Pss1.t9", { CGMESProfile::DY, } }, - { "cim:Pss1.tpe", { CGMESProfile::DY, } }, - { "cim:Pss1.vadat", { CGMESProfile::DY, } }, - { "cim:Pss1.vsmn", { CGMESProfile::DY, } }, - { "cim:Pss1.vsmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss1::getPossibleProfilesForClass() const +const std::string& Pss1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss1::getPossibleProfilesForAttributes() const +const std::list& Pss1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss1_kf(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* Pss1::debugString() const void Pss1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss1", &Pss1_factory); + factory_map.emplace("Pss1", &Pss1_factory); } void Pss1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss1.kf", &assign_Pss1_kf); - assign_map.emplace("cim:Pss1.komega", &assign_Pss1_komega); - assign_map.emplace("cim:Pss1.kpe", &assign_Pss1_kpe); - assign_map.emplace("cim:Pss1.ks", &assign_Pss1_ks); - assign_map.emplace("cim:Pss1.pmin", &assign_Pss1_pmin); - assign_map.emplace("cim:Pss1.t10", &assign_Pss1_t10); - assign_map.emplace("cim:Pss1.t5", &assign_Pss1_t5); - assign_map.emplace("cim:Pss1.t6", &assign_Pss1_t6); - assign_map.emplace("cim:Pss1.t7", &assign_Pss1_t7); - assign_map.emplace("cim:Pss1.t8", &assign_Pss1_t8); - assign_map.emplace("cim:Pss1.t9", &assign_Pss1_t9); - assign_map.emplace("cim:Pss1.tpe", &assign_Pss1_tpe); - assign_map.emplace("cim:Pss1.vadat", &assign_Pss1_vadat); - assign_map.emplace("cim:Pss1.vsmn", &assign_Pss1_vsmn); - assign_map.emplace("cim:Pss1.vsmx", &assign_Pss1_vsmx); + assign_map.emplace("Pss1.kf", &assign_Pss1_kf); + assign_map.emplace("Pss1.komega", &assign_Pss1_komega); + assign_map.emplace("Pss1.kpe", &assign_Pss1_kpe); + assign_map.emplace("Pss1.ks", &assign_Pss1_ks); + assign_map.emplace("Pss1.pmin", &assign_Pss1_pmin); + assign_map.emplace("Pss1.t10", &assign_Pss1_t10); + assign_map.emplace("Pss1.t5", &assign_Pss1_t5); + assign_map.emplace("Pss1.t6", &assign_Pss1_t6); + assign_map.emplace("Pss1.t7", &assign_Pss1_t7); + assign_map.emplace("Pss1.t8", &assign_Pss1_t8); + assign_map.emplace("Pss1.t9", &assign_Pss1_t9); + assign_map.emplace("Pss1.tpe", &assign_Pss1_tpe); + assign_map.emplace("Pss1.vadat", &assign_Pss1_vadat); + assign_map.emplace("Pss1.vsmn", &assign_Pss1_vsmn); + assign_map.emplace("Pss1.vsmx", &assign_Pss1_vsmx); } void Pss1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void Pss1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss1.kf", &get_Pss1_kf); - get_map.emplace("cim:Pss1.komega", &get_Pss1_komega); - get_map.emplace("cim:Pss1.kpe", &get_Pss1_kpe); - get_map.emplace("cim:Pss1.ks", &get_Pss1_ks); - get_map.emplace("cim:Pss1.pmin", &get_Pss1_pmin); - get_map.emplace("cim:Pss1.t10", &get_Pss1_t10); - get_map.emplace("cim:Pss1.t5", &get_Pss1_t5); - get_map.emplace("cim:Pss1.t6", &get_Pss1_t6); - get_map.emplace("cim:Pss1.t7", &get_Pss1_t7); - get_map.emplace("cim:Pss1.t8", &get_Pss1_t8); - get_map.emplace("cim:Pss1.t9", &get_Pss1_t9); - get_map.emplace("cim:Pss1.tpe", &get_Pss1_tpe); - get_map.emplace("cim:Pss1.vadat", &get_Pss1_vadat); - get_map.emplace("cim:Pss1.vsmn", &get_Pss1_vsmn); - get_map.emplace("cim:Pss1.vsmx", &get_Pss1_vsmx); + get_map.emplace("Pss1.kf", &get_Pss1_kf); + get_map.emplace("Pss1.komega", &get_Pss1_komega); + get_map.emplace("Pss1.kpe", &get_Pss1_kpe); + get_map.emplace("Pss1.ks", &get_Pss1_ks); + get_map.emplace("Pss1.pmin", &get_Pss1_pmin); + get_map.emplace("Pss1.t10", &get_Pss1_t10); + get_map.emplace("Pss1.t5", &get_Pss1_t5); + get_map.emplace("Pss1.t6", &get_Pss1_t6); + get_map.emplace("Pss1.t7", &get_Pss1_t7); + get_map.emplace("Pss1.t8", &get_Pss1_t8); + get_map.emplace("Pss1.t9", &get_Pss1_t9); + get_map.emplace("Pss1.tpe", &get_Pss1_tpe); + get_map.emplace("Pss1.vadat", &get_Pss1_vadat); + get_map.emplace("Pss1.vsmn", &get_Pss1_vsmn); + get_map.emplace("Pss1.vsmx", &get_Pss1_vsmx); } void Pss1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void Pss1::addEnumGetFnsToMap(std::map& get_map) cons PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss1::declare() { return BaseClassDefiner(Pss1::addConstructToMap, Pss1::addPrimitiveAssignFnsToMap, Pss1::addClassAssignFnsToMap, Pss1::debugName); } +std::map Pss1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss1_factory() diff --git a/CGMES_3.0.0/Pss1.hpp b/CGMES_3.0.0/Pss1.hpp index 329abfc10..9afc506df 100644 --- a/CGMES_3.0.0/Pss1.hpp +++ b/CGMES_3.0.0/Pss1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -76,8 +77,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -85,7 +93,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss1_factory(); diff --git a/CGMES_3.0.0/Pss1A.cpp b/CGMES_3.0.0/Pss1A.cpp index 219c3f935..42f2a9a13 100644 --- a/CGMES_3.0.0/Pss1A.cpp +++ b/CGMES_3.0.0/Pss1A.cpp @@ -11,53 +11,85 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss1A.a1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.a2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.a3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.a4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.a5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.a6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.a7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.a8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.inputSignalType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.kd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.tdelay", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.vcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.vcu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss1A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss1A::Pss1A() {} Pss1A::~Pss1A() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Pss1A.a1", { CGMESProfile::DY, } }, - { "cim:Pss1A.a2", { CGMESProfile::DY, } }, - { "cim:Pss1A.a3", { CGMESProfile::DY, } }, - { "cim:Pss1A.a4", { CGMESProfile::DY, } }, - { "cim:Pss1A.a5", { CGMESProfile::DY, } }, - { "cim:Pss1A.a6", { CGMESProfile::DY, } }, - { "cim:Pss1A.a7", { CGMESProfile::DY, } }, - { "cim:Pss1A.a8", { CGMESProfile::DY, } }, - { "cim:Pss1A.inputSignalType", { CGMESProfile::DY, } }, - { "cim:Pss1A.kd", { CGMESProfile::DY, } }, - { "cim:Pss1A.ks", { CGMESProfile::DY, } }, - { "cim:Pss1A.t1", { CGMESProfile::DY, } }, - { "cim:Pss1A.t2", { CGMESProfile::DY, } }, - { "cim:Pss1A.t3", { CGMESProfile::DY, } }, - { "cim:Pss1A.t4", { CGMESProfile::DY, } }, - { "cim:Pss1A.t5", { CGMESProfile::DY, } }, - { "cim:Pss1A.t6", { CGMESProfile::DY, } }, - { "cim:Pss1A.tdelay", { CGMESProfile::DY, } }, - { "cim:Pss1A.vcl", { CGMESProfile::DY, } }, - { "cim:Pss1A.vcu", { CGMESProfile::DY, } }, - { "cim:Pss1A.vrmax", { CGMESProfile::DY, } }, - { "cim:Pss1A.vrmin", { CGMESProfile::DY, } }, -}; - -std::list -Pss1A::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Pss1A::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Pss1A::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Pss1A::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Pss1A::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Pss1A::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss1A_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -706,33 +738,33 @@ const char* Pss1A::debugString() const void Pss1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss1A", &Pss1A_factory); + factory_map.emplace("Pss1A", &Pss1A_factory); } void Pss1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss1A.a1", &assign_Pss1A_a1); - assign_map.emplace("cim:Pss1A.a2", &assign_Pss1A_a2); - assign_map.emplace("cim:Pss1A.a3", &assign_Pss1A_a3); - assign_map.emplace("cim:Pss1A.a4", &assign_Pss1A_a4); - assign_map.emplace("cim:Pss1A.a5", &assign_Pss1A_a5); - assign_map.emplace("cim:Pss1A.a6", &assign_Pss1A_a6); - assign_map.emplace("cim:Pss1A.a7", &assign_Pss1A_a7); - assign_map.emplace("cim:Pss1A.a8", &assign_Pss1A_a8); - assign_map.emplace("cim:Pss1A.inputSignalType", &assign_Pss1A_inputSignalType); - assign_map.emplace("cim:Pss1A.kd", &assign_Pss1A_kd); - assign_map.emplace("cim:Pss1A.ks", &assign_Pss1A_ks); - assign_map.emplace("cim:Pss1A.t1", &assign_Pss1A_t1); - assign_map.emplace("cim:Pss1A.t2", &assign_Pss1A_t2); - assign_map.emplace("cim:Pss1A.t3", &assign_Pss1A_t3); - assign_map.emplace("cim:Pss1A.t4", &assign_Pss1A_t4); - assign_map.emplace("cim:Pss1A.t5", &assign_Pss1A_t5); - assign_map.emplace("cim:Pss1A.t6", &assign_Pss1A_t6); - assign_map.emplace("cim:Pss1A.tdelay", &assign_Pss1A_tdelay); - assign_map.emplace("cim:Pss1A.vcl", &assign_Pss1A_vcl); - assign_map.emplace("cim:Pss1A.vcu", &assign_Pss1A_vcu); - assign_map.emplace("cim:Pss1A.vrmax", &assign_Pss1A_vrmax); - assign_map.emplace("cim:Pss1A.vrmin", &assign_Pss1A_vrmin); + assign_map.emplace("Pss1A.a1", &assign_Pss1A_a1); + assign_map.emplace("Pss1A.a2", &assign_Pss1A_a2); + assign_map.emplace("Pss1A.a3", &assign_Pss1A_a3); + assign_map.emplace("Pss1A.a4", &assign_Pss1A_a4); + assign_map.emplace("Pss1A.a5", &assign_Pss1A_a5); + assign_map.emplace("Pss1A.a6", &assign_Pss1A_a6); + assign_map.emplace("Pss1A.a7", &assign_Pss1A_a7); + assign_map.emplace("Pss1A.a8", &assign_Pss1A_a8); + assign_map.emplace("Pss1A.inputSignalType", &assign_Pss1A_inputSignalType); + assign_map.emplace("Pss1A.kd", &assign_Pss1A_kd); + assign_map.emplace("Pss1A.ks", &assign_Pss1A_ks); + assign_map.emplace("Pss1A.t1", &assign_Pss1A_t1); + assign_map.emplace("Pss1A.t2", &assign_Pss1A_t2); + assign_map.emplace("Pss1A.t3", &assign_Pss1A_t3); + assign_map.emplace("Pss1A.t4", &assign_Pss1A_t4); + assign_map.emplace("Pss1A.t5", &assign_Pss1A_t5); + assign_map.emplace("Pss1A.t6", &assign_Pss1A_t6); + assign_map.emplace("Pss1A.tdelay", &assign_Pss1A_tdelay); + assign_map.emplace("Pss1A.vcl", &assign_Pss1A_vcl); + assign_map.emplace("Pss1A.vcu", &assign_Pss1A_vcu); + assign_map.emplace("Pss1A.vrmax", &assign_Pss1A_vrmax); + assign_map.emplace("Pss1A.vrmin", &assign_Pss1A_vrmin); } void Pss1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -742,27 +774,27 @@ void Pss1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss1A.a1", &get_Pss1A_a1); - get_map.emplace("cim:Pss1A.a2", &get_Pss1A_a2); - get_map.emplace("cim:Pss1A.a3", &get_Pss1A_a3); - get_map.emplace("cim:Pss1A.a4", &get_Pss1A_a4); - get_map.emplace("cim:Pss1A.a5", &get_Pss1A_a5); - get_map.emplace("cim:Pss1A.a6", &get_Pss1A_a6); - get_map.emplace("cim:Pss1A.a7", &get_Pss1A_a7); - get_map.emplace("cim:Pss1A.a8", &get_Pss1A_a8); - get_map.emplace("cim:Pss1A.kd", &get_Pss1A_kd); - get_map.emplace("cim:Pss1A.ks", &get_Pss1A_ks); - get_map.emplace("cim:Pss1A.t1", &get_Pss1A_t1); - get_map.emplace("cim:Pss1A.t2", &get_Pss1A_t2); - get_map.emplace("cim:Pss1A.t3", &get_Pss1A_t3); - get_map.emplace("cim:Pss1A.t4", &get_Pss1A_t4); - get_map.emplace("cim:Pss1A.t5", &get_Pss1A_t5); - get_map.emplace("cim:Pss1A.t6", &get_Pss1A_t6); - get_map.emplace("cim:Pss1A.tdelay", &get_Pss1A_tdelay); - get_map.emplace("cim:Pss1A.vcl", &get_Pss1A_vcl); - get_map.emplace("cim:Pss1A.vcu", &get_Pss1A_vcu); - get_map.emplace("cim:Pss1A.vrmax", &get_Pss1A_vrmax); - get_map.emplace("cim:Pss1A.vrmin", &get_Pss1A_vrmin); + get_map.emplace("Pss1A.a1", &get_Pss1A_a1); + get_map.emplace("Pss1A.a2", &get_Pss1A_a2); + get_map.emplace("Pss1A.a3", &get_Pss1A_a3); + get_map.emplace("Pss1A.a4", &get_Pss1A_a4); + get_map.emplace("Pss1A.a5", &get_Pss1A_a5); + get_map.emplace("Pss1A.a6", &get_Pss1A_a6); + get_map.emplace("Pss1A.a7", &get_Pss1A_a7); + get_map.emplace("Pss1A.a8", &get_Pss1A_a8); + get_map.emplace("Pss1A.kd", &get_Pss1A_kd); + get_map.emplace("Pss1A.ks", &get_Pss1A_ks); + get_map.emplace("Pss1A.t1", &get_Pss1A_t1); + get_map.emplace("Pss1A.t2", &get_Pss1A_t2); + get_map.emplace("Pss1A.t3", &get_Pss1A_t3); + get_map.emplace("Pss1A.t4", &get_Pss1A_t4); + get_map.emplace("Pss1A.t5", &get_Pss1A_t5); + get_map.emplace("Pss1A.t6", &get_Pss1A_t6); + get_map.emplace("Pss1A.tdelay", &get_Pss1A_tdelay); + get_map.emplace("Pss1A.vcl", &get_Pss1A_vcl); + get_map.emplace("Pss1A.vcu", &get_Pss1A_vcu); + get_map.emplace("Pss1A.vrmax", &get_Pss1A_vrmax); + get_map.emplace("Pss1A.vrmin", &get_Pss1A_vrmin); } void Pss1A::addClassGetFnsToMap(std::map& get_map) const @@ -773,7 +805,13 @@ void Pss1A::addClassGetFnsToMap(std::map& get_m void Pss1A::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss1A.inputSignalType", &get_Pss1A_inputSignalType); + get_map.emplace("Pss1A.inputSignalType", &get_Pss1A_inputSignalType); +} + +bool Pss1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss1A::declare() @@ -781,6 +819,14 @@ const BaseClassDefiner Pss1A::declare() return BaseClassDefiner(Pss1A::addConstructToMap, Pss1A::addPrimitiveAssignFnsToMap, Pss1A::addClassAssignFnsToMap, Pss1A::debugName); } +std::map Pss1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss1A_factory() diff --git a/CGMES_3.0.0/Pss1A.hpp b/CGMES_3.0.0/Pss1A.hpp index 32ac35793..2844ec33c 100644 --- a/CGMES_3.0.0/Pss1A.hpp +++ b/CGMES_3.0.0/Pss1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" @@ -97,8 +98,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -106,7 +114,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss1A_factory(); diff --git a/CGMES_3.0.0/Pss2B.cpp b/CGMES_3.0.0/Pss2B.cpp index a89fc5c92..5fbcc520b 100644 --- a/CGMES_3.0.0/Pss2B.cpp +++ b/CGMES_3.0.0/Pss2B.cpp @@ -11,60 +11,92 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss2B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss2B.a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.ks1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.ks2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.ks3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.ks4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.m", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.n", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.t9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.tw1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.tw2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.tw3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.tw4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi1max", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi1min", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi2max", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.vsi2min", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.vstmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2B.vstmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss2B::Pss2B() {} Pss2B::~Pss2B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Pss2B.a", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks1", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks2", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks3", { CGMESProfile::DY, } }, - { "cim:Pss2B.ks4", { CGMESProfile::DY, } }, - { "cim:Pss2B.m", { CGMESProfile::DY, } }, - { "cim:Pss2B.n", { CGMESProfile::DY, } }, - { "cim:Pss2B.t1", { CGMESProfile::DY, } }, - { "cim:Pss2B.t10", { CGMESProfile::DY, } }, - { "cim:Pss2B.t11", { CGMESProfile::DY, } }, - { "cim:Pss2B.t2", { CGMESProfile::DY, } }, - { "cim:Pss2B.t3", { CGMESProfile::DY, } }, - { "cim:Pss2B.t4", { CGMESProfile::DY, } }, - { "cim:Pss2B.t6", { CGMESProfile::DY, } }, - { "cim:Pss2B.t7", { CGMESProfile::DY, } }, - { "cim:Pss2B.t8", { CGMESProfile::DY, } }, - { "cim:Pss2B.t9", { CGMESProfile::DY, } }, - { "cim:Pss2B.ta", { CGMESProfile::DY, } }, - { "cim:Pss2B.tb", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw1", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw2", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw3", { CGMESProfile::DY, } }, - { "cim:Pss2B.tw4", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi1max", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi1min", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi2max", { CGMESProfile::DY, } }, - { "cim:Pss2B.vsi2min", { CGMESProfile::DY, } }, - { "cim:Pss2B.vstmax", { CGMESProfile::DY, } }, - { "cim:Pss2B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -Pss2B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Pss2B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Pss2B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Pss2B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Pss2B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Pss2B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss2B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss2B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss2B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss2B_a(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -916,40 +948,40 @@ const char* Pss2B::debugString() const void Pss2B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss2B", &Pss2B_factory); + factory_map.emplace("Pss2B", &Pss2B_factory); } void Pss2B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss2B.a", &assign_Pss2B_a); - assign_map.emplace("cim:Pss2B.ks1", &assign_Pss2B_ks1); - assign_map.emplace("cim:Pss2B.ks2", &assign_Pss2B_ks2); - assign_map.emplace("cim:Pss2B.ks3", &assign_Pss2B_ks3); - assign_map.emplace("cim:Pss2B.ks4", &assign_Pss2B_ks4); - assign_map.emplace("cim:Pss2B.m", &assign_Pss2B_m); - assign_map.emplace("cim:Pss2B.n", &assign_Pss2B_n); - assign_map.emplace("cim:Pss2B.t1", &assign_Pss2B_t1); - assign_map.emplace("cim:Pss2B.t10", &assign_Pss2B_t10); - assign_map.emplace("cim:Pss2B.t11", &assign_Pss2B_t11); - assign_map.emplace("cim:Pss2B.t2", &assign_Pss2B_t2); - assign_map.emplace("cim:Pss2B.t3", &assign_Pss2B_t3); - assign_map.emplace("cim:Pss2B.t4", &assign_Pss2B_t4); - assign_map.emplace("cim:Pss2B.t6", &assign_Pss2B_t6); - assign_map.emplace("cim:Pss2B.t7", &assign_Pss2B_t7); - assign_map.emplace("cim:Pss2B.t8", &assign_Pss2B_t8); - assign_map.emplace("cim:Pss2B.t9", &assign_Pss2B_t9); - assign_map.emplace("cim:Pss2B.ta", &assign_Pss2B_ta); - assign_map.emplace("cim:Pss2B.tb", &assign_Pss2B_tb); - assign_map.emplace("cim:Pss2B.tw1", &assign_Pss2B_tw1); - assign_map.emplace("cim:Pss2B.tw2", &assign_Pss2B_tw2); - assign_map.emplace("cim:Pss2B.tw3", &assign_Pss2B_tw3); - assign_map.emplace("cim:Pss2B.tw4", &assign_Pss2B_tw4); - assign_map.emplace("cim:Pss2B.vsi1max", &assign_Pss2B_vsi1max); - assign_map.emplace("cim:Pss2B.vsi1min", &assign_Pss2B_vsi1min); - assign_map.emplace("cim:Pss2B.vsi2max", &assign_Pss2B_vsi2max); - assign_map.emplace("cim:Pss2B.vsi2min", &assign_Pss2B_vsi2min); - assign_map.emplace("cim:Pss2B.vstmax", &assign_Pss2B_vstmax); - assign_map.emplace("cim:Pss2B.vstmin", &assign_Pss2B_vstmin); + assign_map.emplace("Pss2B.a", &assign_Pss2B_a); + assign_map.emplace("Pss2B.ks1", &assign_Pss2B_ks1); + assign_map.emplace("Pss2B.ks2", &assign_Pss2B_ks2); + assign_map.emplace("Pss2B.ks3", &assign_Pss2B_ks3); + assign_map.emplace("Pss2B.ks4", &assign_Pss2B_ks4); + assign_map.emplace("Pss2B.m", &assign_Pss2B_m); + assign_map.emplace("Pss2B.n", &assign_Pss2B_n); + assign_map.emplace("Pss2B.t1", &assign_Pss2B_t1); + assign_map.emplace("Pss2B.t10", &assign_Pss2B_t10); + assign_map.emplace("Pss2B.t11", &assign_Pss2B_t11); + assign_map.emplace("Pss2B.t2", &assign_Pss2B_t2); + assign_map.emplace("Pss2B.t3", &assign_Pss2B_t3); + assign_map.emplace("Pss2B.t4", &assign_Pss2B_t4); + assign_map.emplace("Pss2B.t6", &assign_Pss2B_t6); + assign_map.emplace("Pss2B.t7", &assign_Pss2B_t7); + assign_map.emplace("Pss2B.t8", &assign_Pss2B_t8); + assign_map.emplace("Pss2B.t9", &assign_Pss2B_t9); + assign_map.emplace("Pss2B.ta", &assign_Pss2B_ta); + assign_map.emplace("Pss2B.tb", &assign_Pss2B_tb); + assign_map.emplace("Pss2B.tw1", &assign_Pss2B_tw1); + assign_map.emplace("Pss2B.tw2", &assign_Pss2B_tw2); + assign_map.emplace("Pss2B.tw3", &assign_Pss2B_tw3); + assign_map.emplace("Pss2B.tw4", &assign_Pss2B_tw4); + assign_map.emplace("Pss2B.vsi1max", &assign_Pss2B_vsi1max); + assign_map.emplace("Pss2B.vsi1min", &assign_Pss2B_vsi1min); + assign_map.emplace("Pss2B.vsi2max", &assign_Pss2B_vsi2max); + assign_map.emplace("Pss2B.vsi2min", &assign_Pss2B_vsi2min); + assign_map.emplace("Pss2B.vstmax", &assign_Pss2B_vstmax); + assign_map.emplace("Pss2B.vstmin", &assign_Pss2B_vstmin); } void Pss2B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -959,35 +991,35 @@ void Pss2B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss2B.a", &get_Pss2B_a); - get_map.emplace("cim:Pss2B.ks1", &get_Pss2B_ks1); - get_map.emplace("cim:Pss2B.ks2", &get_Pss2B_ks2); - get_map.emplace("cim:Pss2B.ks3", &get_Pss2B_ks3); - get_map.emplace("cim:Pss2B.ks4", &get_Pss2B_ks4); - get_map.emplace("cim:Pss2B.m", &get_Pss2B_m); - get_map.emplace("cim:Pss2B.n", &get_Pss2B_n); - get_map.emplace("cim:Pss2B.t1", &get_Pss2B_t1); - get_map.emplace("cim:Pss2B.t10", &get_Pss2B_t10); - get_map.emplace("cim:Pss2B.t11", &get_Pss2B_t11); - get_map.emplace("cim:Pss2B.t2", &get_Pss2B_t2); - get_map.emplace("cim:Pss2B.t3", &get_Pss2B_t3); - get_map.emplace("cim:Pss2B.t4", &get_Pss2B_t4); - get_map.emplace("cim:Pss2B.t6", &get_Pss2B_t6); - get_map.emplace("cim:Pss2B.t7", &get_Pss2B_t7); - get_map.emplace("cim:Pss2B.t8", &get_Pss2B_t8); - get_map.emplace("cim:Pss2B.t9", &get_Pss2B_t9); - get_map.emplace("cim:Pss2B.ta", &get_Pss2B_ta); - get_map.emplace("cim:Pss2B.tb", &get_Pss2B_tb); - get_map.emplace("cim:Pss2B.tw1", &get_Pss2B_tw1); - get_map.emplace("cim:Pss2B.tw2", &get_Pss2B_tw2); - get_map.emplace("cim:Pss2B.tw3", &get_Pss2B_tw3); - get_map.emplace("cim:Pss2B.tw4", &get_Pss2B_tw4); - get_map.emplace("cim:Pss2B.vsi1max", &get_Pss2B_vsi1max); - get_map.emplace("cim:Pss2B.vsi1min", &get_Pss2B_vsi1min); - get_map.emplace("cim:Pss2B.vsi2max", &get_Pss2B_vsi2max); - get_map.emplace("cim:Pss2B.vsi2min", &get_Pss2B_vsi2min); - get_map.emplace("cim:Pss2B.vstmax", &get_Pss2B_vstmax); - get_map.emplace("cim:Pss2B.vstmin", &get_Pss2B_vstmin); + get_map.emplace("Pss2B.a", &get_Pss2B_a); + get_map.emplace("Pss2B.ks1", &get_Pss2B_ks1); + get_map.emplace("Pss2B.ks2", &get_Pss2B_ks2); + get_map.emplace("Pss2B.ks3", &get_Pss2B_ks3); + get_map.emplace("Pss2B.ks4", &get_Pss2B_ks4); + get_map.emplace("Pss2B.m", &get_Pss2B_m); + get_map.emplace("Pss2B.n", &get_Pss2B_n); + get_map.emplace("Pss2B.t1", &get_Pss2B_t1); + get_map.emplace("Pss2B.t10", &get_Pss2B_t10); + get_map.emplace("Pss2B.t11", &get_Pss2B_t11); + get_map.emplace("Pss2B.t2", &get_Pss2B_t2); + get_map.emplace("Pss2B.t3", &get_Pss2B_t3); + get_map.emplace("Pss2B.t4", &get_Pss2B_t4); + get_map.emplace("Pss2B.t6", &get_Pss2B_t6); + get_map.emplace("Pss2B.t7", &get_Pss2B_t7); + get_map.emplace("Pss2B.t8", &get_Pss2B_t8); + get_map.emplace("Pss2B.t9", &get_Pss2B_t9); + get_map.emplace("Pss2B.ta", &get_Pss2B_ta); + get_map.emplace("Pss2B.tb", &get_Pss2B_tb); + get_map.emplace("Pss2B.tw1", &get_Pss2B_tw1); + get_map.emplace("Pss2B.tw2", &get_Pss2B_tw2); + get_map.emplace("Pss2B.tw3", &get_Pss2B_tw3); + get_map.emplace("Pss2B.tw4", &get_Pss2B_tw4); + get_map.emplace("Pss2B.vsi1max", &get_Pss2B_vsi1max); + get_map.emplace("Pss2B.vsi1min", &get_Pss2B_vsi1min); + get_map.emplace("Pss2B.vsi2max", &get_Pss2B_vsi2max); + get_map.emplace("Pss2B.vsi2min", &get_Pss2B_vsi2min); + get_map.emplace("Pss2B.vstmax", &get_Pss2B_vstmax); + get_map.emplace("Pss2B.vstmin", &get_Pss2B_vstmin); } void Pss2B::addClassGetFnsToMap(std::map& get_map) const @@ -1000,11 +1032,25 @@ void Pss2B::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss2B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss2B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss2B::declare() { return BaseClassDefiner(Pss2B::addConstructToMap, Pss2B::addPrimitiveAssignFnsToMap, Pss2B::addClassAssignFnsToMap, Pss2B::debugName); } +std::map Pss2B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss2B_factory() diff --git a/CGMES_3.0.0/Pss2B.hpp b/CGMES_3.0.0/Pss2B.hpp index 8e0d82c45..b282917f4 100644 --- a/CGMES_3.0.0/Pss2B.hpp +++ b/CGMES_3.0.0/Pss2B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -118,8 +119,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -127,7 +135,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss2B_factory(); diff --git a/CGMES_3.0.0/Pss2ST.cpp b/CGMES_3.0.0/Pss2ST.cpp index 9a42e067c..082c2a5e7 100644 --- a/CGMES_3.0.0/Pss2ST.cpp +++ b/CGMES_3.0.0/Pss2ST.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss2ST(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss2ST.inputSignal1Type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.inputSignal2Type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.lsmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.lsmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.t9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.vcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss2ST.vcu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss2ST::Pss2ST() {} Pss2ST::~Pss2ST() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss2ST::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss2ST::getClassNamespaceUrl() const { - { "cim:Pss2ST.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:Pss2ST.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:Pss2ST.k1", { CGMESProfile::DY, } }, - { "cim:Pss2ST.k2", { CGMESProfile::DY, } }, - { "cim:Pss2ST.lsmax", { CGMESProfile::DY, } }, - { "cim:Pss2ST.lsmin", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t1", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t10", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t2", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t3", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t4", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t5", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t6", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t7", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t8", { CGMESProfile::DY, } }, - { "cim:Pss2ST.t9", { CGMESProfile::DY, } }, - { "cim:Pss2ST.vcl", { CGMESProfile::DY, } }, - { "cim:Pss2ST.vcu", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss2ST::getPossibleProfilesForClass() const +const std::string& Pss2ST::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss2ST::getPossibleProfilesForAttributes() const +const std::list& Pss2ST::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss2ST::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss2ST::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss2ST::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss2ST_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* Pss2ST::debugString() const void Pss2ST::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss2ST", &Pss2ST_factory); + factory_map.emplace("Pss2ST", &Pss2ST_factory); } void Pss2ST::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss2ST.inputSignal1Type", &assign_Pss2ST_inputSignal1Type); - assign_map.emplace("cim:Pss2ST.inputSignal2Type", &assign_Pss2ST_inputSignal2Type); - assign_map.emplace("cim:Pss2ST.k1", &assign_Pss2ST_k1); - assign_map.emplace("cim:Pss2ST.k2", &assign_Pss2ST_k2); - assign_map.emplace("cim:Pss2ST.lsmax", &assign_Pss2ST_lsmax); - assign_map.emplace("cim:Pss2ST.lsmin", &assign_Pss2ST_lsmin); - assign_map.emplace("cim:Pss2ST.t1", &assign_Pss2ST_t1); - assign_map.emplace("cim:Pss2ST.t10", &assign_Pss2ST_t10); - assign_map.emplace("cim:Pss2ST.t2", &assign_Pss2ST_t2); - assign_map.emplace("cim:Pss2ST.t3", &assign_Pss2ST_t3); - assign_map.emplace("cim:Pss2ST.t4", &assign_Pss2ST_t4); - assign_map.emplace("cim:Pss2ST.t5", &assign_Pss2ST_t5); - assign_map.emplace("cim:Pss2ST.t6", &assign_Pss2ST_t6); - assign_map.emplace("cim:Pss2ST.t7", &assign_Pss2ST_t7); - assign_map.emplace("cim:Pss2ST.t8", &assign_Pss2ST_t8); - assign_map.emplace("cim:Pss2ST.t9", &assign_Pss2ST_t9); - assign_map.emplace("cim:Pss2ST.vcl", &assign_Pss2ST_vcl); - assign_map.emplace("cim:Pss2ST.vcu", &assign_Pss2ST_vcu); + assign_map.emplace("Pss2ST.inputSignal1Type", &assign_Pss2ST_inputSignal1Type); + assign_map.emplace("Pss2ST.inputSignal2Type", &assign_Pss2ST_inputSignal2Type); + assign_map.emplace("Pss2ST.k1", &assign_Pss2ST_k1); + assign_map.emplace("Pss2ST.k2", &assign_Pss2ST_k2); + assign_map.emplace("Pss2ST.lsmax", &assign_Pss2ST_lsmax); + assign_map.emplace("Pss2ST.lsmin", &assign_Pss2ST_lsmin); + assign_map.emplace("Pss2ST.t1", &assign_Pss2ST_t1); + assign_map.emplace("Pss2ST.t10", &assign_Pss2ST_t10); + assign_map.emplace("Pss2ST.t2", &assign_Pss2ST_t2); + assign_map.emplace("Pss2ST.t3", &assign_Pss2ST_t3); + assign_map.emplace("Pss2ST.t4", &assign_Pss2ST_t4); + assign_map.emplace("Pss2ST.t5", &assign_Pss2ST_t5); + assign_map.emplace("Pss2ST.t6", &assign_Pss2ST_t6); + assign_map.emplace("Pss2ST.t7", &assign_Pss2ST_t7); + assign_map.emplace("Pss2ST.t8", &assign_Pss2ST_t8); + assign_map.emplace("Pss2ST.t9", &assign_Pss2ST_t9); + assign_map.emplace("Pss2ST.vcl", &assign_Pss2ST_vcl); + assign_map.emplace("Pss2ST.vcu", &assign_Pss2ST_vcu); } void Pss2ST::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,22 +650,22 @@ void Pss2ST::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss2ST.k1", &get_Pss2ST_k1); - get_map.emplace("cim:Pss2ST.k2", &get_Pss2ST_k2); - get_map.emplace("cim:Pss2ST.lsmax", &get_Pss2ST_lsmax); - get_map.emplace("cim:Pss2ST.lsmin", &get_Pss2ST_lsmin); - get_map.emplace("cim:Pss2ST.t1", &get_Pss2ST_t1); - get_map.emplace("cim:Pss2ST.t10", &get_Pss2ST_t10); - get_map.emplace("cim:Pss2ST.t2", &get_Pss2ST_t2); - get_map.emplace("cim:Pss2ST.t3", &get_Pss2ST_t3); - get_map.emplace("cim:Pss2ST.t4", &get_Pss2ST_t4); - get_map.emplace("cim:Pss2ST.t5", &get_Pss2ST_t5); - get_map.emplace("cim:Pss2ST.t6", &get_Pss2ST_t6); - get_map.emplace("cim:Pss2ST.t7", &get_Pss2ST_t7); - get_map.emplace("cim:Pss2ST.t8", &get_Pss2ST_t8); - get_map.emplace("cim:Pss2ST.t9", &get_Pss2ST_t9); - get_map.emplace("cim:Pss2ST.vcl", &get_Pss2ST_vcl); - get_map.emplace("cim:Pss2ST.vcu", &get_Pss2ST_vcu); + get_map.emplace("Pss2ST.k1", &get_Pss2ST_k1); + get_map.emplace("Pss2ST.k2", &get_Pss2ST_k2); + get_map.emplace("Pss2ST.lsmax", &get_Pss2ST_lsmax); + get_map.emplace("Pss2ST.lsmin", &get_Pss2ST_lsmin); + get_map.emplace("Pss2ST.t1", &get_Pss2ST_t1); + get_map.emplace("Pss2ST.t10", &get_Pss2ST_t10); + get_map.emplace("Pss2ST.t2", &get_Pss2ST_t2); + get_map.emplace("Pss2ST.t3", &get_Pss2ST_t3); + get_map.emplace("Pss2ST.t4", &get_Pss2ST_t4); + get_map.emplace("Pss2ST.t5", &get_Pss2ST_t5); + get_map.emplace("Pss2ST.t6", &get_Pss2ST_t6); + get_map.emplace("Pss2ST.t7", &get_Pss2ST_t7); + get_map.emplace("Pss2ST.t8", &get_Pss2ST_t8); + get_map.emplace("Pss2ST.t9", &get_Pss2ST_t9); + get_map.emplace("Pss2ST.vcl", &get_Pss2ST_vcl); + get_map.emplace("Pss2ST.vcu", &get_Pss2ST_vcu); } void Pss2ST::addClassGetFnsToMap(std::map& get_map) const @@ -644,8 +676,14 @@ void Pss2ST::addClassGetFnsToMap(std::map& get_ void Pss2ST::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Pss2ST.inputSignal1Type", &get_Pss2ST_inputSignal1Type); - get_map.emplace("cim:Pss2ST.inputSignal2Type", &get_Pss2ST_inputSignal2Type); + get_map.emplace("Pss2ST.inputSignal1Type", &get_Pss2ST_inputSignal1Type); + get_map.emplace("Pss2ST.inputSignal2Type", &get_Pss2ST_inputSignal2Type); +} + +bool Pss2ST::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss2ST" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Pss2ST::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner Pss2ST::declare() return BaseClassDefiner(Pss2ST::addConstructToMap, Pss2ST::addPrimitiveAssignFnsToMap, Pss2ST::addClassAssignFnsToMap, Pss2ST::debugName); } +std::map Pss2ST::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss2ST_factory() diff --git a/CGMES_3.0.0/Pss2ST.hpp b/CGMES_3.0.0/Pss2ST.hpp index ac9658852..4a16986f5 100644 --- a/CGMES_3.0.0/Pss2ST.hpp +++ b/CGMES_3.0.0/Pss2ST.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss2ST_factory(); diff --git a/CGMES_3.0.0/Pss5.cpp b/CGMES_3.0.0/Pss5.cpp index 32b9336ef..df14f855e 100644 --- a/CGMES_3.0.0/Pss5.cpp +++ b/CGMES_3.0.0/Pss5.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Pss5(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Pss5.ctw2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.deadband", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.isfreq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.kf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.kpe", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.kpss", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.tl1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.tl2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.tl3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.tl4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.tpe", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.tw1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.tw2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.vadat", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.vsmn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Pss5.vsmx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + Pss5::Pss5() {} Pss5::~Pss5() {} -static const std::list PossibleProfilesForClass = +const std::list& Pss5::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Pss5::getClassNamespaceUrl() const { - { "cim:Pss5.ctw2", { CGMESProfile::DY, } }, - { "cim:Pss5.deadband", { CGMESProfile::DY, } }, - { "cim:Pss5.isfreq", { CGMESProfile::DY, } }, - { "cim:Pss5.kf", { CGMESProfile::DY, } }, - { "cim:Pss5.kpe", { CGMESProfile::DY, } }, - { "cim:Pss5.kpss", { CGMESProfile::DY, } }, - { "cim:Pss5.pmin", { CGMESProfile::DY, } }, - { "cim:Pss5.tl1", { CGMESProfile::DY, } }, - { "cim:Pss5.tl2", { CGMESProfile::DY, } }, - { "cim:Pss5.tl3", { CGMESProfile::DY, } }, - { "cim:Pss5.tl4", { CGMESProfile::DY, } }, - { "cim:Pss5.tpe", { CGMESProfile::DY, } }, - { "cim:Pss5.tw1", { CGMESProfile::DY, } }, - { "cim:Pss5.tw2", { CGMESProfile::DY, } }, - { "cim:Pss5.vadat", { CGMESProfile::DY, } }, - { "cim:Pss5.vsmn", { CGMESProfile::DY, } }, - { "cim:Pss5.vsmx", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Pss5::getPossibleProfilesForClass() const +const std::string& Pss5::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Pss5::getPossibleProfilesForAttributes() const +const std::list& Pss5::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Pss5::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Pss5::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Pss5::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Pss5_ctw2(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* Pss5::debugString() const void Pss5::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Pss5", &Pss5_factory); + factory_map.emplace("Pss5", &Pss5_factory); } void Pss5::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Pss5.ctw2", &assign_Pss5_ctw2); - assign_map.emplace("cim:Pss5.deadband", &assign_Pss5_deadband); - assign_map.emplace("cim:Pss5.isfreq", &assign_Pss5_isfreq); - assign_map.emplace("cim:Pss5.kf", &assign_Pss5_kf); - assign_map.emplace("cim:Pss5.kpe", &assign_Pss5_kpe); - assign_map.emplace("cim:Pss5.kpss", &assign_Pss5_kpss); - assign_map.emplace("cim:Pss5.pmin", &assign_Pss5_pmin); - assign_map.emplace("cim:Pss5.tl1", &assign_Pss5_tl1); - assign_map.emplace("cim:Pss5.tl2", &assign_Pss5_tl2); - assign_map.emplace("cim:Pss5.tl3", &assign_Pss5_tl3); - assign_map.emplace("cim:Pss5.tl4", &assign_Pss5_tl4); - assign_map.emplace("cim:Pss5.tpe", &assign_Pss5_tpe); - assign_map.emplace("cim:Pss5.tw1", &assign_Pss5_tw1); - assign_map.emplace("cim:Pss5.tw2", &assign_Pss5_tw2); - assign_map.emplace("cim:Pss5.vadat", &assign_Pss5_vadat); - assign_map.emplace("cim:Pss5.vsmn", &assign_Pss5_vsmn); - assign_map.emplace("cim:Pss5.vsmx", &assign_Pss5_vsmx); + assign_map.emplace("Pss5.ctw2", &assign_Pss5_ctw2); + assign_map.emplace("Pss5.deadband", &assign_Pss5_deadband); + assign_map.emplace("Pss5.isfreq", &assign_Pss5_isfreq); + assign_map.emplace("Pss5.kf", &assign_Pss5_kf); + assign_map.emplace("Pss5.kpe", &assign_Pss5_kpe); + assign_map.emplace("Pss5.kpss", &assign_Pss5_kpss); + assign_map.emplace("Pss5.pmin", &assign_Pss5_pmin); + assign_map.emplace("Pss5.tl1", &assign_Pss5_tl1); + assign_map.emplace("Pss5.tl2", &assign_Pss5_tl2); + assign_map.emplace("Pss5.tl3", &assign_Pss5_tl3); + assign_map.emplace("Pss5.tl4", &assign_Pss5_tl4); + assign_map.emplace("Pss5.tpe", &assign_Pss5_tpe); + assign_map.emplace("Pss5.tw1", &assign_Pss5_tw1); + assign_map.emplace("Pss5.tw2", &assign_Pss5_tw2); + assign_map.emplace("Pss5.vadat", &assign_Pss5_vadat); + assign_map.emplace("Pss5.vsmn", &assign_Pss5_vsmn); + assign_map.emplace("Pss5.vsmx", &assign_Pss5_vsmx); } void Pss5::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void Pss5::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Pss5.ctw2", &get_Pss5_ctw2); - get_map.emplace("cim:Pss5.deadband", &get_Pss5_deadband); - get_map.emplace("cim:Pss5.isfreq", &get_Pss5_isfreq); - get_map.emplace("cim:Pss5.kf", &get_Pss5_kf); - get_map.emplace("cim:Pss5.kpe", &get_Pss5_kpe); - get_map.emplace("cim:Pss5.kpss", &get_Pss5_kpss); - get_map.emplace("cim:Pss5.pmin", &get_Pss5_pmin); - get_map.emplace("cim:Pss5.tl1", &get_Pss5_tl1); - get_map.emplace("cim:Pss5.tl2", &get_Pss5_tl2); - get_map.emplace("cim:Pss5.tl3", &get_Pss5_tl3); - get_map.emplace("cim:Pss5.tl4", &get_Pss5_tl4); - get_map.emplace("cim:Pss5.tpe", &get_Pss5_tpe); - get_map.emplace("cim:Pss5.tw1", &get_Pss5_tw1); - get_map.emplace("cim:Pss5.tw2", &get_Pss5_tw2); - get_map.emplace("cim:Pss5.vadat", &get_Pss5_vadat); - get_map.emplace("cim:Pss5.vsmn", &get_Pss5_vsmn); - get_map.emplace("cim:Pss5.vsmx", &get_Pss5_vsmx); + get_map.emplace("Pss5.ctw2", &get_Pss5_ctw2); + get_map.emplace("Pss5.deadband", &get_Pss5_deadband); + get_map.emplace("Pss5.isfreq", &get_Pss5_isfreq); + get_map.emplace("Pss5.kf", &get_Pss5_kf); + get_map.emplace("Pss5.kpe", &get_Pss5_kpe); + get_map.emplace("Pss5.kpss", &get_Pss5_kpss); + get_map.emplace("Pss5.pmin", &get_Pss5_pmin); + get_map.emplace("Pss5.tl1", &get_Pss5_tl1); + get_map.emplace("Pss5.tl2", &get_Pss5_tl2); + get_map.emplace("Pss5.tl3", &get_Pss5_tl3); + get_map.emplace("Pss5.tl4", &get_Pss5_tl4); + get_map.emplace("Pss5.tpe", &get_Pss5_tpe); + get_map.emplace("Pss5.tw1", &get_Pss5_tw1); + get_map.emplace("Pss5.tw2", &get_Pss5_tw2); + get_map.emplace("Pss5.vadat", &get_Pss5_vadat); + get_map.emplace("Pss5.vsmn", &get_Pss5_vsmn); + get_map.emplace("Pss5.vsmx", &get_Pss5_vsmx); } void Pss5::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void Pss5::addEnumGetFnsToMap(std::map& get_map) cons PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool Pss5::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Pss5" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Pss5::declare() { return BaseClassDefiner(Pss5::addConstructToMap, Pss5::addPrimitiveAssignFnsToMap, Pss5::addClassAssignFnsToMap, Pss5::debugName); } +std::map Pss5::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Pss5_factory() diff --git a/CGMES_3.0.0/Pss5.hpp b/CGMES_3.0.0/Pss5.hpp index 1018a9eb8..fbbb87ee1 100644 --- a/CGMES_3.0.0/Pss5.hpp +++ b/CGMES_3.0.0/Pss5.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -82,8 +83,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -91,7 +99,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Pss5_factory(); diff --git a/CGMES_3.0.0/PssELIN2.cpp b/CGMES_3.0.0/PssELIN2.cpp index 394cf185f..e434a467f 100644 --- a/CGMES_3.0.0/PssELIN2.cpp +++ b/CGMES_3.0.0/PssELIN2.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssELIN2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssELIN2.apss", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ks1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ks2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ppss", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.psslim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssELIN2.ts6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssELIN2::PssELIN2() {} PssELIN2::~PssELIN2() {} -static const std::list PossibleProfilesForClass = +const std::list& PssELIN2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssELIN2::getClassNamespaceUrl() const { - { "cim:PssELIN2.apss", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ks1", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ks2", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ppss", { CGMESProfile::DY, } }, - { "cim:PssELIN2.psslim", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts1", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts2", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts3", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts4", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts5", { CGMESProfile::DY, } }, - { "cim:PssELIN2.ts6", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssELIN2::getPossibleProfilesForClass() const +const std::string& PssELIN2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssELIN2::getPossibleProfilesForAttributes() const +const std::list& PssELIN2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssELIN2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssELIN2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssELIN2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssELIN2_apss(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssELIN2::debugString() const void PssELIN2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssELIN2", &PssELIN2_factory); + factory_map.emplace("PssELIN2", &PssELIN2_factory); } void PssELIN2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssELIN2.apss", &assign_PssELIN2_apss); - assign_map.emplace("cim:PssELIN2.ks1", &assign_PssELIN2_ks1); - assign_map.emplace("cim:PssELIN2.ks2", &assign_PssELIN2_ks2); - assign_map.emplace("cim:PssELIN2.ppss", &assign_PssELIN2_ppss); - assign_map.emplace("cim:PssELIN2.psslim", &assign_PssELIN2_psslim); - assign_map.emplace("cim:PssELIN2.ts1", &assign_PssELIN2_ts1); - assign_map.emplace("cim:PssELIN2.ts2", &assign_PssELIN2_ts2); - assign_map.emplace("cim:PssELIN2.ts3", &assign_PssELIN2_ts3); - assign_map.emplace("cim:PssELIN2.ts4", &assign_PssELIN2_ts4); - assign_map.emplace("cim:PssELIN2.ts5", &assign_PssELIN2_ts5); - assign_map.emplace("cim:PssELIN2.ts6", &assign_PssELIN2_ts6); + assign_map.emplace("PssELIN2.apss", &assign_PssELIN2_apss); + assign_map.emplace("PssELIN2.ks1", &assign_PssELIN2_ks1); + assign_map.emplace("PssELIN2.ks2", &assign_PssELIN2_ks2); + assign_map.emplace("PssELIN2.ppss", &assign_PssELIN2_ppss); + assign_map.emplace("PssELIN2.psslim", &assign_PssELIN2_psslim); + assign_map.emplace("PssELIN2.ts1", &assign_PssELIN2_ts1); + assign_map.emplace("PssELIN2.ts2", &assign_PssELIN2_ts2); + assign_map.emplace("PssELIN2.ts3", &assign_PssELIN2_ts3); + assign_map.emplace("PssELIN2.ts4", &assign_PssELIN2_ts4); + assign_map.emplace("PssELIN2.ts5", &assign_PssELIN2_ts5); + assign_map.emplace("PssELIN2.ts6", &assign_PssELIN2_ts6); } void PssELIN2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssELIN2::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssELIN2.apss", &get_PssELIN2_apss); - get_map.emplace("cim:PssELIN2.ks1", &get_PssELIN2_ks1); - get_map.emplace("cim:PssELIN2.ks2", &get_PssELIN2_ks2); - get_map.emplace("cim:PssELIN2.ppss", &get_PssELIN2_ppss); - get_map.emplace("cim:PssELIN2.psslim", &get_PssELIN2_psslim); - get_map.emplace("cim:PssELIN2.ts1", &get_PssELIN2_ts1); - get_map.emplace("cim:PssELIN2.ts2", &get_PssELIN2_ts2); - get_map.emplace("cim:PssELIN2.ts3", &get_PssELIN2_ts3); - get_map.emplace("cim:PssELIN2.ts4", &get_PssELIN2_ts4); - get_map.emplace("cim:PssELIN2.ts5", &get_PssELIN2_ts5); - get_map.emplace("cim:PssELIN2.ts6", &get_PssELIN2_ts6); + get_map.emplace("PssELIN2.apss", &get_PssELIN2_apss); + get_map.emplace("PssELIN2.ks1", &get_PssELIN2_ks1); + get_map.emplace("PssELIN2.ks2", &get_PssELIN2_ks2); + get_map.emplace("PssELIN2.ppss", &get_PssELIN2_ppss); + get_map.emplace("PssELIN2.psslim", &get_PssELIN2_psslim); + get_map.emplace("PssELIN2.ts1", &get_PssELIN2_ts1); + get_map.emplace("PssELIN2.ts2", &get_PssELIN2_ts2); + get_map.emplace("PssELIN2.ts3", &get_PssELIN2_ts3); + get_map.emplace("PssELIN2.ts4", &get_PssELIN2_ts4); + get_map.emplace("PssELIN2.ts5", &get_PssELIN2_ts5); + get_map.emplace("PssELIN2.ts6", &get_PssELIN2_ts6); } void PssELIN2::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssELIN2::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssELIN2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssELIN2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssELIN2::declare() { return BaseClassDefiner(PssELIN2::addConstructToMap, PssELIN2::addPrimitiveAssignFnsToMap, PssELIN2::addClassAssignFnsToMap, PssELIN2::debugName); } +std::map PssELIN2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssELIN2_factory() diff --git a/CGMES_3.0.0/PssELIN2.hpp b/CGMES_3.0.0/PssELIN2.hpp index cbba1806e..fd7b36228 100644 --- a/CGMES_3.0.0/PssELIN2.hpp +++ b/CGMES_3.0.0/PssELIN2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssELIN2_factory(); diff --git a/CGMES_3.0.0/PssIEEE1A.cpp b/CGMES_3.0.0/PssIEEE1A.cpp index 7387ba08e..9f5328441 100644 --- a/CGMES_3.0.0/PssIEEE1A.cpp +++ b/CGMES_3.0.0/PssIEEE1A.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE1A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE1A.a1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.a2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.inputSignalType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.vrmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE1A.vrmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE1A::PssIEEE1A() {} PssIEEE1A::~PssIEEE1A() {} -static const std::list PossibleProfilesForClass = +const std::list& PssIEEE1A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssIEEE1A::getClassNamespaceUrl() const { - { "cim:PssIEEE1A.a1", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.a2", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.inputSignalType", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.ks", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t3", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t4", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t5", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.t6", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.vrmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE1A.vrmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssIEEE1A::getPossibleProfilesForClass() const +const std::string& PssIEEE1A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssIEEE1A::getPossibleProfilesForAttributes() const +const std::list& PssIEEE1A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE1A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE1A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE1A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE1A_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* PssIEEE1A::debugString() const void PssIEEE1A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE1A", &PssIEEE1A_factory); + factory_map.emplace("PssIEEE1A", &PssIEEE1A_factory); } void PssIEEE1A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE1A.a1", &assign_PssIEEE1A_a1); - assign_map.emplace("cim:PssIEEE1A.a2", &assign_PssIEEE1A_a2); - assign_map.emplace("cim:PssIEEE1A.inputSignalType", &assign_PssIEEE1A_inputSignalType); - assign_map.emplace("cim:PssIEEE1A.ks", &assign_PssIEEE1A_ks); - assign_map.emplace("cim:PssIEEE1A.t1", &assign_PssIEEE1A_t1); - assign_map.emplace("cim:PssIEEE1A.t2", &assign_PssIEEE1A_t2); - assign_map.emplace("cim:PssIEEE1A.t3", &assign_PssIEEE1A_t3); - assign_map.emplace("cim:PssIEEE1A.t4", &assign_PssIEEE1A_t4); - assign_map.emplace("cim:PssIEEE1A.t5", &assign_PssIEEE1A_t5); - assign_map.emplace("cim:PssIEEE1A.t6", &assign_PssIEEE1A_t6); - assign_map.emplace("cim:PssIEEE1A.vrmax", &assign_PssIEEE1A_vrmax); - assign_map.emplace("cim:PssIEEE1A.vrmin", &assign_PssIEEE1A_vrmin); + assign_map.emplace("PssIEEE1A.a1", &assign_PssIEEE1A_a1); + assign_map.emplace("PssIEEE1A.a2", &assign_PssIEEE1A_a2); + assign_map.emplace("PssIEEE1A.inputSignalType", &assign_PssIEEE1A_inputSignalType); + assign_map.emplace("PssIEEE1A.ks", &assign_PssIEEE1A_ks); + assign_map.emplace("PssIEEE1A.t1", &assign_PssIEEE1A_t1); + assign_map.emplace("PssIEEE1A.t2", &assign_PssIEEE1A_t2); + assign_map.emplace("PssIEEE1A.t3", &assign_PssIEEE1A_t3); + assign_map.emplace("PssIEEE1A.t4", &assign_PssIEEE1A_t4); + assign_map.emplace("PssIEEE1A.t5", &assign_PssIEEE1A_t5); + assign_map.emplace("PssIEEE1A.t6", &assign_PssIEEE1A_t6); + assign_map.emplace("PssIEEE1A.vrmax", &assign_PssIEEE1A_vrmax); + assign_map.emplace("PssIEEE1A.vrmin", &assign_PssIEEE1A_vrmin); } void PssIEEE1A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,17 +464,17 @@ void PssIEEE1A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE1A.a1", &get_PssIEEE1A_a1); - get_map.emplace("cim:PssIEEE1A.a2", &get_PssIEEE1A_a2); - get_map.emplace("cim:PssIEEE1A.ks", &get_PssIEEE1A_ks); - get_map.emplace("cim:PssIEEE1A.t1", &get_PssIEEE1A_t1); - get_map.emplace("cim:PssIEEE1A.t2", &get_PssIEEE1A_t2); - get_map.emplace("cim:PssIEEE1A.t3", &get_PssIEEE1A_t3); - get_map.emplace("cim:PssIEEE1A.t4", &get_PssIEEE1A_t4); - get_map.emplace("cim:PssIEEE1A.t5", &get_PssIEEE1A_t5); - get_map.emplace("cim:PssIEEE1A.t6", &get_PssIEEE1A_t6); - get_map.emplace("cim:PssIEEE1A.vrmax", &get_PssIEEE1A_vrmax); - get_map.emplace("cim:PssIEEE1A.vrmin", &get_PssIEEE1A_vrmin); + get_map.emplace("PssIEEE1A.a1", &get_PssIEEE1A_a1); + get_map.emplace("PssIEEE1A.a2", &get_PssIEEE1A_a2); + get_map.emplace("PssIEEE1A.ks", &get_PssIEEE1A_ks); + get_map.emplace("PssIEEE1A.t1", &get_PssIEEE1A_t1); + get_map.emplace("PssIEEE1A.t2", &get_PssIEEE1A_t2); + get_map.emplace("PssIEEE1A.t3", &get_PssIEEE1A_t3); + get_map.emplace("PssIEEE1A.t4", &get_PssIEEE1A_t4); + get_map.emplace("PssIEEE1A.t5", &get_PssIEEE1A_t5); + get_map.emplace("PssIEEE1A.t6", &get_PssIEEE1A_t6); + get_map.emplace("PssIEEE1A.vrmax", &get_PssIEEE1A_vrmax); + get_map.emplace("PssIEEE1A.vrmin", &get_PssIEEE1A_vrmin); } void PssIEEE1A::addClassGetFnsToMap(std::map& get_map) const @@ -453,7 +485,13 @@ void PssIEEE1A::addClassGetFnsToMap(std::map& g void PssIEEE1A::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE1A.inputSignalType", &get_PssIEEE1A_inputSignalType); + get_map.emplace("PssIEEE1A.inputSignalType", &get_PssIEEE1A_inputSignalType); +} + +bool PssIEEE1A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE1A" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE1A::declare() @@ -461,6 +499,14 @@ const BaseClassDefiner PssIEEE1A::declare() return BaseClassDefiner(PssIEEE1A::addConstructToMap, PssIEEE1A::addPrimitiveAssignFnsToMap, PssIEEE1A::addClassAssignFnsToMap, PssIEEE1A::debugName); } +std::map PssIEEE1A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE1A_factory() diff --git a/CGMES_3.0.0/PssIEEE1A.hpp b/CGMES_3.0.0/PssIEEE1A.hpp index 9313e89f5..0b3051931 100644 --- a/CGMES_3.0.0/PssIEEE1A.hpp +++ b/CGMES_3.0.0/PssIEEE1A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE1A_factory(); diff --git a/CGMES_3.0.0/PssIEEE2B.cpp b/CGMES_3.0.0/PssIEEE2B.cpp index 7b46362be..2861b9ad2 100644 --- a/CGMES_3.0.0/PssIEEE2B.cpp +++ b/CGMES_3.0.0/PssIEEE2B.cpp @@ -11,58 +11,90 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE2B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE2B.inputSignal1Type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.inputSignal2Type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.ks3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.m", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.n", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.t9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.tw4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi1max", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi1min", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi2max", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vsi2min", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vstmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE2B.vstmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE2B::PssIEEE2B() {} PssIEEE2B::~PssIEEE2B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE2B.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.ks3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.m", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.n", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t10", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t11", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t4", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t6", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t7", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t8", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.t9", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw1", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw2", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw3", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.tw4", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi1max", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi1min", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi2max", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vsi2min", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE2B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE2B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE2B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE2B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE2B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE2B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE2B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE2B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE2B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE2B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE2B_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -856,38 +888,38 @@ const char* PssIEEE2B::debugString() const void PssIEEE2B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE2B", &PssIEEE2B_factory); + factory_map.emplace("PssIEEE2B", &PssIEEE2B_factory); } void PssIEEE2B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE2B.inputSignal1Type", &assign_PssIEEE2B_inputSignal1Type); - assign_map.emplace("cim:PssIEEE2B.inputSignal2Type", &assign_PssIEEE2B_inputSignal2Type); - assign_map.emplace("cim:PssIEEE2B.ks1", &assign_PssIEEE2B_ks1); - assign_map.emplace("cim:PssIEEE2B.ks2", &assign_PssIEEE2B_ks2); - assign_map.emplace("cim:PssIEEE2B.ks3", &assign_PssIEEE2B_ks3); - assign_map.emplace("cim:PssIEEE2B.m", &assign_PssIEEE2B_m); - assign_map.emplace("cim:PssIEEE2B.n", &assign_PssIEEE2B_n); - assign_map.emplace("cim:PssIEEE2B.t1", &assign_PssIEEE2B_t1); - assign_map.emplace("cim:PssIEEE2B.t10", &assign_PssIEEE2B_t10); - assign_map.emplace("cim:PssIEEE2B.t11", &assign_PssIEEE2B_t11); - assign_map.emplace("cim:PssIEEE2B.t2", &assign_PssIEEE2B_t2); - assign_map.emplace("cim:PssIEEE2B.t3", &assign_PssIEEE2B_t3); - assign_map.emplace("cim:PssIEEE2B.t4", &assign_PssIEEE2B_t4); - assign_map.emplace("cim:PssIEEE2B.t6", &assign_PssIEEE2B_t6); - assign_map.emplace("cim:PssIEEE2B.t7", &assign_PssIEEE2B_t7); - assign_map.emplace("cim:PssIEEE2B.t8", &assign_PssIEEE2B_t8); - assign_map.emplace("cim:PssIEEE2B.t9", &assign_PssIEEE2B_t9); - assign_map.emplace("cim:PssIEEE2B.tw1", &assign_PssIEEE2B_tw1); - assign_map.emplace("cim:PssIEEE2B.tw2", &assign_PssIEEE2B_tw2); - assign_map.emplace("cim:PssIEEE2B.tw3", &assign_PssIEEE2B_tw3); - assign_map.emplace("cim:PssIEEE2B.tw4", &assign_PssIEEE2B_tw4); - assign_map.emplace("cim:PssIEEE2B.vsi1max", &assign_PssIEEE2B_vsi1max); - assign_map.emplace("cim:PssIEEE2B.vsi1min", &assign_PssIEEE2B_vsi1min); - assign_map.emplace("cim:PssIEEE2B.vsi2max", &assign_PssIEEE2B_vsi2max); - assign_map.emplace("cim:PssIEEE2B.vsi2min", &assign_PssIEEE2B_vsi2min); - assign_map.emplace("cim:PssIEEE2B.vstmax", &assign_PssIEEE2B_vstmax); - assign_map.emplace("cim:PssIEEE2B.vstmin", &assign_PssIEEE2B_vstmin); + assign_map.emplace("PssIEEE2B.inputSignal1Type", &assign_PssIEEE2B_inputSignal1Type); + assign_map.emplace("PssIEEE2B.inputSignal2Type", &assign_PssIEEE2B_inputSignal2Type); + assign_map.emplace("PssIEEE2B.ks1", &assign_PssIEEE2B_ks1); + assign_map.emplace("PssIEEE2B.ks2", &assign_PssIEEE2B_ks2); + assign_map.emplace("PssIEEE2B.ks3", &assign_PssIEEE2B_ks3); + assign_map.emplace("PssIEEE2B.m", &assign_PssIEEE2B_m); + assign_map.emplace("PssIEEE2B.n", &assign_PssIEEE2B_n); + assign_map.emplace("PssIEEE2B.t1", &assign_PssIEEE2B_t1); + assign_map.emplace("PssIEEE2B.t10", &assign_PssIEEE2B_t10); + assign_map.emplace("PssIEEE2B.t11", &assign_PssIEEE2B_t11); + assign_map.emplace("PssIEEE2B.t2", &assign_PssIEEE2B_t2); + assign_map.emplace("PssIEEE2B.t3", &assign_PssIEEE2B_t3); + assign_map.emplace("PssIEEE2B.t4", &assign_PssIEEE2B_t4); + assign_map.emplace("PssIEEE2B.t6", &assign_PssIEEE2B_t6); + assign_map.emplace("PssIEEE2B.t7", &assign_PssIEEE2B_t7); + assign_map.emplace("PssIEEE2B.t8", &assign_PssIEEE2B_t8); + assign_map.emplace("PssIEEE2B.t9", &assign_PssIEEE2B_t9); + assign_map.emplace("PssIEEE2B.tw1", &assign_PssIEEE2B_tw1); + assign_map.emplace("PssIEEE2B.tw2", &assign_PssIEEE2B_tw2); + assign_map.emplace("PssIEEE2B.tw3", &assign_PssIEEE2B_tw3); + assign_map.emplace("PssIEEE2B.tw4", &assign_PssIEEE2B_tw4); + assign_map.emplace("PssIEEE2B.vsi1max", &assign_PssIEEE2B_vsi1max); + assign_map.emplace("PssIEEE2B.vsi1min", &assign_PssIEEE2B_vsi1min); + assign_map.emplace("PssIEEE2B.vsi2max", &assign_PssIEEE2B_vsi2max); + assign_map.emplace("PssIEEE2B.vsi2min", &assign_PssIEEE2B_vsi2min); + assign_map.emplace("PssIEEE2B.vstmax", &assign_PssIEEE2B_vstmax); + assign_map.emplace("PssIEEE2B.vstmin", &assign_PssIEEE2B_vstmin); } void PssIEEE2B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -897,31 +929,31 @@ void PssIEEE2B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE2B.ks1", &get_PssIEEE2B_ks1); - get_map.emplace("cim:PssIEEE2B.ks2", &get_PssIEEE2B_ks2); - get_map.emplace("cim:PssIEEE2B.ks3", &get_PssIEEE2B_ks3); - get_map.emplace("cim:PssIEEE2B.m", &get_PssIEEE2B_m); - get_map.emplace("cim:PssIEEE2B.n", &get_PssIEEE2B_n); - get_map.emplace("cim:PssIEEE2B.t1", &get_PssIEEE2B_t1); - get_map.emplace("cim:PssIEEE2B.t10", &get_PssIEEE2B_t10); - get_map.emplace("cim:PssIEEE2B.t11", &get_PssIEEE2B_t11); - get_map.emplace("cim:PssIEEE2B.t2", &get_PssIEEE2B_t2); - get_map.emplace("cim:PssIEEE2B.t3", &get_PssIEEE2B_t3); - get_map.emplace("cim:PssIEEE2B.t4", &get_PssIEEE2B_t4); - get_map.emplace("cim:PssIEEE2B.t6", &get_PssIEEE2B_t6); - get_map.emplace("cim:PssIEEE2B.t7", &get_PssIEEE2B_t7); - get_map.emplace("cim:PssIEEE2B.t8", &get_PssIEEE2B_t8); - get_map.emplace("cim:PssIEEE2B.t9", &get_PssIEEE2B_t9); - get_map.emplace("cim:PssIEEE2B.tw1", &get_PssIEEE2B_tw1); - get_map.emplace("cim:PssIEEE2B.tw2", &get_PssIEEE2B_tw2); - get_map.emplace("cim:PssIEEE2B.tw3", &get_PssIEEE2B_tw3); - get_map.emplace("cim:PssIEEE2B.tw4", &get_PssIEEE2B_tw4); - get_map.emplace("cim:PssIEEE2B.vsi1max", &get_PssIEEE2B_vsi1max); - get_map.emplace("cim:PssIEEE2B.vsi1min", &get_PssIEEE2B_vsi1min); - get_map.emplace("cim:PssIEEE2B.vsi2max", &get_PssIEEE2B_vsi2max); - get_map.emplace("cim:PssIEEE2B.vsi2min", &get_PssIEEE2B_vsi2min); - get_map.emplace("cim:PssIEEE2B.vstmax", &get_PssIEEE2B_vstmax); - get_map.emplace("cim:PssIEEE2B.vstmin", &get_PssIEEE2B_vstmin); + get_map.emplace("PssIEEE2B.ks1", &get_PssIEEE2B_ks1); + get_map.emplace("PssIEEE2B.ks2", &get_PssIEEE2B_ks2); + get_map.emplace("PssIEEE2B.ks3", &get_PssIEEE2B_ks3); + get_map.emplace("PssIEEE2B.m", &get_PssIEEE2B_m); + get_map.emplace("PssIEEE2B.n", &get_PssIEEE2B_n); + get_map.emplace("PssIEEE2B.t1", &get_PssIEEE2B_t1); + get_map.emplace("PssIEEE2B.t10", &get_PssIEEE2B_t10); + get_map.emplace("PssIEEE2B.t11", &get_PssIEEE2B_t11); + get_map.emplace("PssIEEE2B.t2", &get_PssIEEE2B_t2); + get_map.emplace("PssIEEE2B.t3", &get_PssIEEE2B_t3); + get_map.emplace("PssIEEE2B.t4", &get_PssIEEE2B_t4); + get_map.emplace("PssIEEE2B.t6", &get_PssIEEE2B_t6); + get_map.emplace("PssIEEE2B.t7", &get_PssIEEE2B_t7); + get_map.emplace("PssIEEE2B.t8", &get_PssIEEE2B_t8); + get_map.emplace("PssIEEE2B.t9", &get_PssIEEE2B_t9); + get_map.emplace("PssIEEE2B.tw1", &get_PssIEEE2B_tw1); + get_map.emplace("PssIEEE2B.tw2", &get_PssIEEE2B_tw2); + get_map.emplace("PssIEEE2B.tw3", &get_PssIEEE2B_tw3); + get_map.emplace("PssIEEE2B.tw4", &get_PssIEEE2B_tw4); + get_map.emplace("PssIEEE2B.vsi1max", &get_PssIEEE2B_vsi1max); + get_map.emplace("PssIEEE2B.vsi1min", &get_PssIEEE2B_vsi1min); + get_map.emplace("PssIEEE2B.vsi2max", &get_PssIEEE2B_vsi2max); + get_map.emplace("PssIEEE2B.vsi2min", &get_PssIEEE2B_vsi2min); + get_map.emplace("PssIEEE2B.vstmax", &get_PssIEEE2B_vstmax); + get_map.emplace("PssIEEE2B.vstmin", &get_PssIEEE2B_vstmin); } void PssIEEE2B::addClassGetFnsToMap(std::map& get_map) const @@ -932,8 +964,14 @@ void PssIEEE2B::addClassGetFnsToMap(std::map& g void PssIEEE2B::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE2B.inputSignal1Type", &get_PssIEEE2B_inputSignal1Type); - get_map.emplace("cim:PssIEEE2B.inputSignal2Type", &get_PssIEEE2B_inputSignal2Type); + get_map.emplace("PssIEEE2B.inputSignal1Type", &get_PssIEEE2B_inputSignal1Type); + get_map.emplace("PssIEEE2B.inputSignal2Type", &get_PssIEEE2B_inputSignal2Type); +} + +bool PssIEEE2B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE2B" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssIEEE2B::declare() @@ -941,6 +979,14 @@ const BaseClassDefiner PssIEEE2B::declare() return BaseClassDefiner(PssIEEE2B::addConstructToMap, PssIEEE2B::addPrimitiveAssignFnsToMap, PssIEEE2B::addClassAssignFnsToMap, PssIEEE2B::debugName); } +std::map PssIEEE2B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE2B_factory() diff --git a/CGMES_3.0.0/PssIEEE2B.hpp b/CGMES_3.0.0/PssIEEE2B.hpp index a2aeab873..80d443486 100644 --- a/CGMES_3.0.0/PssIEEE2B.hpp +++ b/CGMES_3.0.0/PssIEEE2B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "Integer.hpp" #include "PU.hpp" @@ -112,8 +113,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -121,7 +129,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE2B_factory(); diff --git a/CGMES_3.0.0/PssIEEE3B.cpp b/CGMES_3.0.0/PssIEEE3B.cpp index 2b308028c..cc01d70cf 100644 --- a/CGMES_3.0.0/PssIEEE3B.cpp +++ b/CGMES_3.0.0/PssIEEE3B.cpp @@ -11,48 +11,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE3B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE3B.a1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.a8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.ks1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.ks2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.tw3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.vstmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE3B.vstmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE3B::PssIEEE3B() {} PssIEEE3B::~PssIEEE3B() {} -static const std::list PossibleProfilesForClass = +const std::list& PssIEEE3B::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssIEEE3B::getClassNamespaceUrl() const { - { "cim:PssIEEE3B.a1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a3", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a4", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a5", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a6", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a7", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.a8", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.ks1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.ks2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.t1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.t2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw1", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw2", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.tw3", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE3B.vstmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssIEEE3B::getPossibleProfilesForClass() const +const std::string& PssIEEE3B::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssIEEE3B::getPossibleProfilesForAttributes() const +const std::list& PssIEEE3B::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE3B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE3B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE3B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE3B_a1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -556,28 +588,28 @@ const char* PssIEEE3B::debugString() const void PssIEEE3B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE3B", &PssIEEE3B_factory); + factory_map.emplace("PssIEEE3B", &PssIEEE3B_factory); } void PssIEEE3B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE3B.a1", &assign_PssIEEE3B_a1); - assign_map.emplace("cim:PssIEEE3B.a2", &assign_PssIEEE3B_a2); - assign_map.emplace("cim:PssIEEE3B.a3", &assign_PssIEEE3B_a3); - assign_map.emplace("cim:PssIEEE3B.a4", &assign_PssIEEE3B_a4); - assign_map.emplace("cim:PssIEEE3B.a5", &assign_PssIEEE3B_a5); - assign_map.emplace("cim:PssIEEE3B.a6", &assign_PssIEEE3B_a6); - assign_map.emplace("cim:PssIEEE3B.a7", &assign_PssIEEE3B_a7); - assign_map.emplace("cim:PssIEEE3B.a8", &assign_PssIEEE3B_a8); - assign_map.emplace("cim:PssIEEE3B.ks1", &assign_PssIEEE3B_ks1); - assign_map.emplace("cim:PssIEEE3B.ks2", &assign_PssIEEE3B_ks2); - assign_map.emplace("cim:PssIEEE3B.t1", &assign_PssIEEE3B_t1); - assign_map.emplace("cim:PssIEEE3B.t2", &assign_PssIEEE3B_t2); - assign_map.emplace("cim:PssIEEE3B.tw1", &assign_PssIEEE3B_tw1); - assign_map.emplace("cim:PssIEEE3B.tw2", &assign_PssIEEE3B_tw2); - assign_map.emplace("cim:PssIEEE3B.tw3", &assign_PssIEEE3B_tw3); - assign_map.emplace("cim:PssIEEE3B.vstmax", &assign_PssIEEE3B_vstmax); - assign_map.emplace("cim:PssIEEE3B.vstmin", &assign_PssIEEE3B_vstmin); + assign_map.emplace("PssIEEE3B.a1", &assign_PssIEEE3B_a1); + assign_map.emplace("PssIEEE3B.a2", &assign_PssIEEE3B_a2); + assign_map.emplace("PssIEEE3B.a3", &assign_PssIEEE3B_a3); + assign_map.emplace("PssIEEE3B.a4", &assign_PssIEEE3B_a4); + assign_map.emplace("PssIEEE3B.a5", &assign_PssIEEE3B_a5); + assign_map.emplace("PssIEEE3B.a6", &assign_PssIEEE3B_a6); + assign_map.emplace("PssIEEE3B.a7", &assign_PssIEEE3B_a7); + assign_map.emplace("PssIEEE3B.a8", &assign_PssIEEE3B_a8); + assign_map.emplace("PssIEEE3B.ks1", &assign_PssIEEE3B_ks1); + assign_map.emplace("PssIEEE3B.ks2", &assign_PssIEEE3B_ks2); + assign_map.emplace("PssIEEE3B.t1", &assign_PssIEEE3B_t1); + assign_map.emplace("PssIEEE3B.t2", &assign_PssIEEE3B_t2); + assign_map.emplace("PssIEEE3B.tw1", &assign_PssIEEE3B_tw1); + assign_map.emplace("PssIEEE3B.tw2", &assign_PssIEEE3B_tw2); + assign_map.emplace("PssIEEE3B.tw3", &assign_PssIEEE3B_tw3); + assign_map.emplace("PssIEEE3B.vstmax", &assign_PssIEEE3B_vstmax); + assign_map.emplace("PssIEEE3B.vstmin", &assign_PssIEEE3B_vstmin); } void PssIEEE3B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -587,23 +619,23 @@ void PssIEEE3B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE3B.a1", &get_PssIEEE3B_a1); - get_map.emplace("cim:PssIEEE3B.a2", &get_PssIEEE3B_a2); - get_map.emplace("cim:PssIEEE3B.a3", &get_PssIEEE3B_a3); - get_map.emplace("cim:PssIEEE3B.a4", &get_PssIEEE3B_a4); - get_map.emplace("cim:PssIEEE3B.a5", &get_PssIEEE3B_a5); - get_map.emplace("cim:PssIEEE3B.a6", &get_PssIEEE3B_a6); - get_map.emplace("cim:PssIEEE3B.a7", &get_PssIEEE3B_a7); - get_map.emplace("cim:PssIEEE3B.a8", &get_PssIEEE3B_a8); - get_map.emplace("cim:PssIEEE3B.ks1", &get_PssIEEE3B_ks1); - get_map.emplace("cim:PssIEEE3B.ks2", &get_PssIEEE3B_ks2); - get_map.emplace("cim:PssIEEE3B.t1", &get_PssIEEE3B_t1); - get_map.emplace("cim:PssIEEE3B.t2", &get_PssIEEE3B_t2); - get_map.emplace("cim:PssIEEE3B.tw1", &get_PssIEEE3B_tw1); - get_map.emplace("cim:PssIEEE3B.tw2", &get_PssIEEE3B_tw2); - get_map.emplace("cim:PssIEEE3B.tw3", &get_PssIEEE3B_tw3); - get_map.emplace("cim:PssIEEE3B.vstmax", &get_PssIEEE3B_vstmax); - get_map.emplace("cim:PssIEEE3B.vstmin", &get_PssIEEE3B_vstmin); + get_map.emplace("PssIEEE3B.a1", &get_PssIEEE3B_a1); + get_map.emplace("PssIEEE3B.a2", &get_PssIEEE3B_a2); + get_map.emplace("PssIEEE3B.a3", &get_PssIEEE3B_a3); + get_map.emplace("PssIEEE3B.a4", &get_PssIEEE3B_a4); + get_map.emplace("PssIEEE3B.a5", &get_PssIEEE3B_a5); + get_map.emplace("PssIEEE3B.a6", &get_PssIEEE3B_a6); + get_map.emplace("PssIEEE3B.a7", &get_PssIEEE3B_a7); + get_map.emplace("PssIEEE3B.a8", &get_PssIEEE3B_a8); + get_map.emplace("PssIEEE3B.ks1", &get_PssIEEE3B_ks1); + get_map.emplace("PssIEEE3B.ks2", &get_PssIEEE3B_ks2); + get_map.emplace("PssIEEE3B.t1", &get_PssIEEE3B_t1); + get_map.emplace("PssIEEE3B.t2", &get_PssIEEE3B_t2); + get_map.emplace("PssIEEE3B.tw1", &get_PssIEEE3B_tw1); + get_map.emplace("PssIEEE3B.tw2", &get_PssIEEE3B_tw2); + get_map.emplace("PssIEEE3B.tw3", &get_PssIEEE3B_tw3); + get_map.emplace("PssIEEE3B.vstmax", &get_PssIEEE3B_vstmax); + get_map.emplace("PssIEEE3B.vstmin", &get_PssIEEE3B_vstmin); } void PssIEEE3B::addClassGetFnsToMap(std::map& get_map) const @@ -616,11 +648,25 @@ void PssIEEE3B::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssIEEE3B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE3B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssIEEE3B::declare() { return BaseClassDefiner(PssIEEE3B::addConstructToMap, PssIEEE3B::addPrimitiveAssignFnsToMap, PssIEEE3B::addClassAssignFnsToMap, PssIEEE3B::debugName); } +std::map PssIEEE3B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE3B_factory() diff --git a/CGMES_3.0.0/PssIEEE3B.hpp b/CGMES_3.0.0/PssIEEE3B.hpp index baf73f767..5c2c890d7 100644 --- a/CGMES_3.0.0/PssIEEE3B.hpp +++ b/CGMES_3.0.0/PssIEEE3B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -80,8 +81,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -89,7 +97,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE3B_factory(); diff --git a/CGMES_3.0.0/PssIEEE4B.cpp b/CGMES_3.0.0/PssIEEE4B.cpp index 6eb537c95..e2b3c37c7 100644 --- a/CGMES_3.0.0/PssIEEE4B.cpp +++ b/CGMES_3.0.0/PssIEEE4B.cpp @@ -11,98 +11,130 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssIEEE4B(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssIEEE4B.bwh1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwh2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwl1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.bwl2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh17", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kh2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki17", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ki2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl17", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.kl2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganh1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganh2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganl1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.omeganl2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.th9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.ti9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl11", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl12", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.tl9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vhmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vhmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vlmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vlmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vstmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssIEEE4B.vstmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssIEEE4B::PssIEEE4B() {} PssIEEE4B::~PssIEEE4B() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssIEEE4B.bwh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.bwl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ki2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl17", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.kl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganh1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganh2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.omeganl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.th9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.ti9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl1", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl10", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl11", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl12", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl2", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl3", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl4", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl5", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl6", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl7", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl8", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.tl9", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vhmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vhmin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vimax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vimin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vlmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vlmin", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vstmax", { CGMESProfile::DY, } }, - { "cim:PssIEEE4B.vstmin", { CGMESProfile::DY, } }, -}; - -std::list -PssIEEE4B::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssIEEE4B::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssIEEE4B::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssIEEE4B::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssIEEE4B::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssIEEE4B::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssIEEE4B::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssIEEE4B::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssIEEE4B::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssIEEE4B_bwh1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -2056,78 +2088,78 @@ const char* PssIEEE4B::debugString() const void PssIEEE4B::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssIEEE4B", &PssIEEE4B_factory); + factory_map.emplace("PssIEEE4B", &PssIEEE4B_factory); } void PssIEEE4B::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssIEEE4B.bwh1", &assign_PssIEEE4B_bwh1); - assign_map.emplace("cim:PssIEEE4B.bwh2", &assign_PssIEEE4B_bwh2); - assign_map.emplace("cim:PssIEEE4B.bwl1", &assign_PssIEEE4B_bwl1); - assign_map.emplace("cim:PssIEEE4B.bwl2", &assign_PssIEEE4B_bwl2); - assign_map.emplace("cim:PssIEEE4B.kh", &assign_PssIEEE4B_kh); - assign_map.emplace("cim:PssIEEE4B.kh1", &assign_PssIEEE4B_kh1); - assign_map.emplace("cim:PssIEEE4B.kh11", &assign_PssIEEE4B_kh11); - assign_map.emplace("cim:PssIEEE4B.kh17", &assign_PssIEEE4B_kh17); - assign_map.emplace("cim:PssIEEE4B.kh2", &assign_PssIEEE4B_kh2); - assign_map.emplace("cim:PssIEEE4B.ki", &assign_PssIEEE4B_ki); - assign_map.emplace("cim:PssIEEE4B.ki1", &assign_PssIEEE4B_ki1); - assign_map.emplace("cim:PssIEEE4B.ki11", &assign_PssIEEE4B_ki11); - assign_map.emplace("cim:PssIEEE4B.ki17", &assign_PssIEEE4B_ki17); - assign_map.emplace("cim:PssIEEE4B.ki2", &assign_PssIEEE4B_ki2); - assign_map.emplace("cim:PssIEEE4B.kl", &assign_PssIEEE4B_kl); - assign_map.emplace("cim:PssIEEE4B.kl1", &assign_PssIEEE4B_kl1); - assign_map.emplace("cim:PssIEEE4B.kl11", &assign_PssIEEE4B_kl11); - assign_map.emplace("cim:PssIEEE4B.kl17", &assign_PssIEEE4B_kl17); - assign_map.emplace("cim:PssIEEE4B.kl2", &assign_PssIEEE4B_kl2); - assign_map.emplace("cim:PssIEEE4B.omeganh1", &assign_PssIEEE4B_omeganh1); - assign_map.emplace("cim:PssIEEE4B.omeganh2", &assign_PssIEEE4B_omeganh2); - assign_map.emplace("cim:PssIEEE4B.omeganl1", &assign_PssIEEE4B_omeganl1); - assign_map.emplace("cim:PssIEEE4B.omeganl2", &assign_PssIEEE4B_omeganl2); - assign_map.emplace("cim:PssIEEE4B.th1", &assign_PssIEEE4B_th1); - assign_map.emplace("cim:PssIEEE4B.th10", &assign_PssIEEE4B_th10); - assign_map.emplace("cim:PssIEEE4B.th11", &assign_PssIEEE4B_th11); - assign_map.emplace("cim:PssIEEE4B.th12", &assign_PssIEEE4B_th12); - assign_map.emplace("cim:PssIEEE4B.th2", &assign_PssIEEE4B_th2); - assign_map.emplace("cim:PssIEEE4B.th3", &assign_PssIEEE4B_th3); - assign_map.emplace("cim:PssIEEE4B.th4", &assign_PssIEEE4B_th4); - assign_map.emplace("cim:PssIEEE4B.th5", &assign_PssIEEE4B_th5); - assign_map.emplace("cim:PssIEEE4B.th6", &assign_PssIEEE4B_th6); - assign_map.emplace("cim:PssIEEE4B.th7", &assign_PssIEEE4B_th7); - assign_map.emplace("cim:PssIEEE4B.th8", &assign_PssIEEE4B_th8); - assign_map.emplace("cim:PssIEEE4B.th9", &assign_PssIEEE4B_th9); - assign_map.emplace("cim:PssIEEE4B.ti1", &assign_PssIEEE4B_ti1); - assign_map.emplace("cim:PssIEEE4B.ti10", &assign_PssIEEE4B_ti10); - assign_map.emplace("cim:PssIEEE4B.ti11", &assign_PssIEEE4B_ti11); - assign_map.emplace("cim:PssIEEE4B.ti12", &assign_PssIEEE4B_ti12); - assign_map.emplace("cim:PssIEEE4B.ti2", &assign_PssIEEE4B_ti2); - assign_map.emplace("cim:PssIEEE4B.ti3", &assign_PssIEEE4B_ti3); - assign_map.emplace("cim:PssIEEE4B.ti4", &assign_PssIEEE4B_ti4); - assign_map.emplace("cim:PssIEEE4B.ti5", &assign_PssIEEE4B_ti5); - assign_map.emplace("cim:PssIEEE4B.ti6", &assign_PssIEEE4B_ti6); - assign_map.emplace("cim:PssIEEE4B.ti7", &assign_PssIEEE4B_ti7); - assign_map.emplace("cim:PssIEEE4B.ti8", &assign_PssIEEE4B_ti8); - assign_map.emplace("cim:PssIEEE4B.ti9", &assign_PssIEEE4B_ti9); - assign_map.emplace("cim:PssIEEE4B.tl1", &assign_PssIEEE4B_tl1); - assign_map.emplace("cim:PssIEEE4B.tl10", &assign_PssIEEE4B_tl10); - assign_map.emplace("cim:PssIEEE4B.tl11", &assign_PssIEEE4B_tl11); - assign_map.emplace("cim:PssIEEE4B.tl12", &assign_PssIEEE4B_tl12); - assign_map.emplace("cim:PssIEEE4B.tl2", &assign_PssIEEE4B_tl2); - assign_map.emplace("cim:PssIEEE4B.tl3", &assign_PssIEEE4B_tl3); - assign_map.emplace("cim:PssIEEE4B.tl4", &assign_PssIEEE4B_tl4); - assign_map.emplace("cim:PssIEEE4B.tl5", &assign_PssIEEE4B_tl5); - assign_map.emplace("cim:PssIEEE4B.tl6", &assign_PssIEEE4B_tl6); - assign_map.emplace("cim:PssIEEE4B.tl7", &assign_PssIEEE4B_tl7); - assign_map.emplace("cim:PssIEEE4B.tl8", &assign_PssIEEE4B_tl8); - assign_map.emplace("cim:PssIEEE4B.tl9", &assign_PssIEEE4B_tl9); - assign_map.emplace("cim:PssIEEE4B.vhmax", &assign_PssIEEE4B_vhmax); - assign_map.emplace("cim:PssIEEE4B.vhmin", &assign_PssIEEE4B_vhmin); - assign_map.emplace("cim:PssIEEE4B.vimax", &assign_PssIEEE4B_vimax); - assign_map.emplace("cim:PssIEEE4B.vimin", &assign_PssIEEE4B_vimin); - assign_map.emplace("cim:PssIEEE4B.vlmax", &assign_PssIEEE4B_vlmax); - assign_map.emplace("cim:PssIEEE4B.vlmin", &assign_PssIEEE4B_vlmin); - assign_map.emplace("cim:PssIEEE4B.vstmax", &assign_PssIEEE4B_vstmax); - assign_map.emplace("cim:PssIEEE4B.vstmin", &assign_PssIEEE4B_vstmin); + assign_map.emplace("PssIEEE4B.bwh1", &assign_PssIEEE4B_bwh1); + assign_map.emplace("PssIEEE4B.bwh2", &assign_PssIEEE4B_bwh2); + assign_map.emplace("PssIEEE4B.bwl1", &assign_PssIEEE4B_bwl1); + assign_map.emplace("PssIEEE4B.bwl2", &assign_PssIEEE4B_bwl2); + assign_map.emplace("PssIEEE4B.kh", &assign_PssIEEE4B_kh); + assign_map.emplace("PssIEEE4B.kh1", &assign_PssIEEE4B_kh1); + assign_map.emplace("PssIEEE4B.kh11", &assign_PssIEEE4B_kh11); + assign_map.emplace("PssIEEE4B.kh17", &assign_PssIEEE4B_kh17); + assign_map.emplace("PssIEEE4B.kh2", &assign_PssIEEE4B_kh2); + assign_map.emplace("PssIEEE4B.ki", &assign_PssIEEE4B_ki); + assign_map.emplace("PssIEEE4B.ki1", &assign_PssIEEE4B_ki1); + assign_map.emplace("PssIEEE4B.ki11", &assign_PssIEEE4B_ki11); + assign_map.emplace("PssIEEE4B.ki17", &assign_PssIEEE4B_ki17); + assign_map.emplace("PssIEEE4B.ki2", &assign_PssIEEE4B_ki2); + assign_map.emplace("PssIEEE4B.kl", &assign_PssIEEE4B_kl); + assign_map.emplace("PssIEEE4B.kl1", &assign_PssIEEE4B_kl1); + assign_map.emplace("PssIEEE4B.kl11", &assign_PssIEEE4B_kl11); + assign_map.emplace("PssIEEE4B.kl17", &assign_PssIEEE4B_kl17); + assign_map.emplace("PssIEEE4B.kl2", &assign_PssIEEE4B_kl2); + assign_map.emplace("PssIEEE4B.omeganh1", &assign_PssIEEE4B_omeganh1); + assign_map.emplace("PssIEEE4B.omeganh2", &assign_PssIEEE4B_omeganh2); + assign_map.emplace("PssIEEE4B.omeganl1", &assign_PssIEEE4B_omeganl1); + assign_map.emplace("PssIEEE4B.omeganl2", &assign_PssIEEE4B_omeganl2); + assign_map.emplace("PssIEEE4B.th1", &assign_PssIEEE4B_th1); + assign_map.emplace("PssIEEE4B.th10", &assign_PssIEEE4B_th10); + assign_map.emplace("PssIEEE4B.th11", &assign_PssIEEE4B_th11); + assign_map.emplace("PssIEEE4B.th12", &assign_PssIEEE4B_th12); + assign_map.emplace("PssIEEE4B.th2", &assign_PssIEEE4B_th2); + assign_map.emplace("PssIEEE4B.th3", &assign_PssIEEE4B_th3); + assign_map.emplace("PssIEEE4B.th4", &assign_PssIEEE4B_th4); + assign_map.emplace("PssIEEE4B.th5", &assign_PssIEEE4B_th5); + assign_map.emplace("PssIEEE4B.th6", &assign_PssIEEE4B_th6); + assign_map.emplace("PssIEEE4B.th7", &assign_PssIEEE4B_th7); + assign_map.emplace("PssIEEE4B.th8", &assign_PssIEEE4B_th8); + assign_map.emplace("PssIEEE4B.th9", &assign_PssIEEE4B_th9); + assign_map.emplace("PssIEEE4B.ti1", &assign_PssIEEE4B_ti1); + assign_map.emplace("PssIEEE4B.ti10", &assign_PssIEEE4B_ti10); + assign_map.emplace("PssIEEE4B.ti11", &assign_PssIEEE4B_ti11); + assign_map.emplace("PssIEEE4B.ti12", &assign_PssIEEE4B_ti12); + assign_map.emplace("PssIEEE4B.ti2", &assign_PssIEEE4B_ti2); + assign_map.emplace("PssIEEE4B.ti3", &assign_PssIEEE4B_ti3); + assign_map.emplace("PssIEEE4B.ti4", &assign_PssIEEE4B_ti4); + assign_map.emplace("PssIEEE4B.ti5", &assign_PssIEEE4B_ti5); + assign_map.emplace("PssIEEE4B.ti6", &assign_PssIEEE4B_ti6); + assign_map.emplace("PssIEEE4B.ti7", &assign_PssIEEE4B_ti7); + assign_map.emplace("PssIEEE4B.ti8", &assign_PssIEEE4B_ti8); + assign_map.emplace("PssIEEE4B.ti9", &assign_PssIEEE4B_ti9); + assign_map.emplace("PssIEEE4B.tl1", &assign_PssIEEE4B_tl1); + assign_map.emplace("PssIEEE4B.tl10", &assign_PssIEEE4B_tl10); + assign_map.emplace("PssIEEE4B.tl11", &assign_PssIEEE4B_tl11); + assign_map.emplace("PssIEEE4B.tl12", &assign_PssIEEE4B_tl12); + assign_map.emplace("PssIEEE4B.tl2", &assign_PssIEEE4B_tl2); + assign_map.emplace("PssIEEE4B.tl3", &assign_PssIEEE4B_tl3); + assign_map.emplace("PssIEEE4B.tl4", &assign_PssIEEE4B_tl4); + assign_map.emplace("PssIEEE4B.tl5", &assign_PssIEEE4B_tl5); + assign_map.emplace("PssIEEE4B.tl6", &assign_PssIEEE4B_tl6); + assign_map.emplace("PssIEEE4B.tl7", &assign_PssIEEE4B_tl7); + assign_map.emplace("PssIEEE4B.tl8", &assign_PssIEEE4B_tl8); + assign_map.emplace("PssIEEE4B.tl9", &assign_PssIEEE4B_tl9); + assign_map.emplace("PssIEEE4B.vhmax", &assign_PssIEEE4B_vhmax); + assign_map.emplace("PssIEEE4B.vhmin", &assign_PssIEEE4B_vhmin); + assign_map.emplace("PssIEEE4B.vimax", &assign_PssIEEE4B_vimax); + assign_map.emplace("PssIEEE4B.vimin", &assign_PssIEEE4B_vimin); + assign_map.emplace("PssIEEE4B.vlmax", &assign_PssIEEE4B_vlmax); + assign_map.emplace("PssIEEE4B.vlmin", &assign_PssIEEE4B_vlmin); + assign_map.emplace("PssIEEE4B.vstmax", &assign_PssIEEE4B_vstmax); + assign_map.emplace("PssIEEE4B.vstmin", &assign_PssIEEE4B_vstmin); } void PssIEEE4B::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -2137,73 +2169,73 @@ void PssIEEE4B::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssIEEE4B.bwh1", &get_PssIEEE4B_bwh1); - get_map.emplace("cim:PssIEEE4B.bwh2", &get_PssIEEE4B_bwh2); - get_map.emplace("cim:PssIEEE4B.bwl1", &get_PssIEEE4B_bwl1); - get_map.emplace("cim:PssIEEE4B.bwl2", &get_PssIEEE4B_bwl2); - get_map.emplace("cim:PssIEEE4B.kh", &get_PssIEEE4B_kh); - get_map.emplace("cim:PssIEEE4B.kh1", &get_PssIEEE4B_kh1); - get_map.emplace("cim:PssIEEE4B.kh11", &get_PssIEEE4B_kh11); - get_map.emplace("cim:PssIEEE4B.kh17", &get_PssIEEE4B_kh17); - get_map.emplace("cim:PssIEEE4B.kh2", &get_PssIEEE4B_kh2); - get_map.emplace("cim:PssIEEE4B.ki", &get_PssIEEE4B_ki); - get_map.emplace("cim:PssIEEE4B.ki1", &get_PssIEEE4B_ki1); - get_map.emplace("cim:PssIEEE4B.ki11", &get_PssIEEE4B_ki11); - get_map.emplace("cim:PssIEEE4B.ki17", &get_PssIEEE4B_ki17); - get_map.emplace("cim:PssIEEE4B.ki2", &get_PssIEEE4B_ki2); - get_map.emplace("cim:PssIEEE4B.kl", &get_PssIEEE4B_kl); - get_map.emplace("cim:PssIEEE4B.kl1", &get_PssIEEE4B_kl1); - get_map.emplace("cim:PssIEEE4B.kl11", &get_PssIEEE4B_kl11); - get_map.emplace("cim:PssIEEE4B.kl17", &get_PssIEEE4B_kl17); - get_map.emplace("cim:PssIEEE4B.kl2", &get_PssIEEE4B_kl2); - get_map.emplace("cim:PssIEEE4B.omeganh1", &get_PssIEEE4B_omeganh1); - get_map.emplace("cim:PssIEEE4B.omeganh2", &get_PssIEEE4B_omeganh2); - get_map.emplace("cim:PssIEEE4B.omeganl1", &get_PssIEEE4B_omeganl1); - get_map.emplace("cim:PssIEEE4B.omeganl2", &get_PssIEEE4B_omeganl2); - get_map.emplace("cim:PssIEEE4B.th1", &get_PssIEEE4B_th1); - get_map.emplace("cim:PssIEEE4B.th10", &get_PssIEEE4B_th10); - get_map.emplace("cim:PssIEEE4B.th11", &get_PssIEEE4B_th11); - get_map.emplace("cim:PssIEEE4B.th12", &get_PssIEEE4B_th12); - get_map.emplace("cim:PssIEEE4B.th2", &get_PssIEEE4B_th2); - get_map.emplace("cim:PssIEEE4B.th3", &get_PssIEEE4B_th3); - get_map.emplace("cim:PssIEEE4B.th4", &get_PssIEEE4B_th4); - get_map.emplace("cim:PssIEEE4B.th5", &get_PssIEEE4B_th5); - get_map.emplace("cim:PssIEEE4B.th6", &get_PssIEEE4B_th6); - get_map.emplace("cim:PssIEEE4B.th7", &get_PssIEEE4B_th7); - get_map.emplace("cim:PssIEEE4B.th8", &get_PssIEEE4B_th8); - get_map.emplace("cim:PssIEEE4B.th9", &get_PssIEEE4B_th9); - get_map.emplace("cim:PssIEEE4B.ti1", &get_PssIEEE4B_ti1); - get_map.emplace("cim:PssIEEE4B.ti10", &get_PssIEEE4B_ti10); - get_map.emplace("cim:PssIEEE4B.ti11", &get_PssIEEE4B_ti11); - get_map.emplace("cim:PssIEEE4B.ti12", &get_PssIEEE4B_ti12); - get_map.emplace("cim:PssIEEE4B.ti2", &get_PssIEEE4B_ti2); - get_map.emplace("cim:PssIEEE4B.ti3", &get_PssIEEE4B_ti3); - get_map.emplace("cim:PssIEEE4B.ti4", &get_PssIEEE4B_ti4); - get_map.emplace("cim:PssIEEE4B.ti5", &get_PssIEEE4B_ti5); - get_map.emplace("cim:PssIEEE4B.ti6", &get_PssIEEE4B_ti6); - get_map.emplace("cim:PssIEEE4B.ti7", &get_PssIEEE4B_ti7); - get_map.emplace("cim:PssIEEE4B.ti8", &get_PssIEEE4B_ti8); - get_map.emplace("cim:PssIEEE4B.ti9", &get_PssIEEE4B_ti9); - get_map.emplace("cim:PssIEEE4B.tl1", &get_PssIEEE4B_tl1); - get_map.emplace("cim:PssIEEE4B.tl10", &get_PssIEEE4B_tl10); - get_map.emplace("cim:PssIEEE4B.tl11", &get_PssIEEE4B_tl11); - get_map.emplace("cim:PssIEEE4B.tl12", &get_PssIEEE4B_tl12); - get_map.emplace("cim:PssIEEE4B.tl2", &get_PssIEEE4B_tl2); - get_map.emplace("cim:PssIEEE4B.tl3", &get_PssIEEE4B_tl3); - get_map.emplace("cim:PssIEEE4B.tl4", &get_PssIEEE4B_tl4); - get_map.emplace("cim:PssIEEE4B.tl5", &get_PssIEEE4B_tl5); - get_map.emplace("cim:PssIEEE4B.tl6", &get_PssIEEE4B_tl6); - get_map.emplace("cim:PssIEEE4B.tl7", &get_PssIEEE4B_tl7); - get_map.emplace("cim:PssIEEE4B.tl8", &get_PssIEEE4B_tl8); - get_map.emplace("cim:PssIEEE4B.tl9", &get_PssIEEE4B_tl9); - get_map.emplace("cim:PssIEEE4B.vhmax", &get_PssIEEE4B_vhmax); - get_map.emplace("cim:PssIEEE4B.vhmin", &get_PssIEEE4B_vhmin); - get_map.emplace("cim:PssIEEE4B.vimax", &get_PssIEEE4B_vimax); - get_map.emplace("cim:PssIEEE4B.vimin", &get_PssIEEE4B_vimin); - get_map.emplace("cim:PssIEEE4B.vlmax", &get_PssIEEE4B_vlmax); - get_map.emplace("cim:PssIEEE4B.vlmin", &get_PssIEEE4B_vlmin); - get_map.emplace("cim:PssIEEE4B.vstmax", &get_PssIEEE4B_vstmax); - get_map.emplace("cim:PssIEEE4B.vstmin", &get_PssIEEE4B_vstmin); + get_map.emplace("PssIEEE4B.bwh1", &get_PssIEEE4B_bwh1); + get_map.emplace("PssIEEE4B.bwh2", &get_PssIEEE4B_bwh2); + get_map.emplace("PssIEEE4B.bwl1", &get_PssIEEE4B_bwl1); + get_map.emplace("PssIEEE4B.bwl2", &get_PssIEEE4B_bwl2); + get_map.emplace("PssIEEE4B.kh", &get_PssIEEE4B_kh); + get_map.emplace("PssIEEE4B.kh1", &get_PssIEEE4B_kh1); + get_map.emplace("PssIEEE4B.kh11", &get_PssIEEE4B_kh11); + get_map.emplace("PssIEEE4B.kh17", &get_PssIEEE4B_kh17); + get_map.emplace("PssIEEE4B.kh2", &get_PssIEEE4B_kh2); + get_map.emplace("PssIEEE4B.ki", &get_PssIEEE4B_ki); + get_map.emplace("PssIEEE4B.ki1", &get_PssIEEE4B_ki1); + get_map.emplace("PssIEEE4B.ki11", &get_PssIEEE4B_ki11); + get_map.emplace("PssIEEE4B.ki17", &get_PssIEEE4B_ki17); + get_map.emplace("PssIEEE4B.ki2", &get_PssIEEE4B_ki2); + get_map.emplace("PssIEEE4B.kl", &get_PssIEEE4B_kl); + get_map.emplace("PssIEEE4B.kl1", &get_PssIEEE4B_kl1); + get_map.emplace("PssIEEE4B.kl11", &get_PssIEEE4B_kl11); + get_map.emplace("PssIEEE4B.kl17", &get_PssIEEE4B_kl17); + get_map.emplace("PssIEEE4B.kl2", &get_PssIEEE4B_kl2); + get_map.emplace("PssIEEE4B.omeganh1", &get_PssIEEE4B_omeganh1); + get_map.emplace("PssIEEE4B.omeganh2", &get_PssIEEE4B_omeganh2); + get_map.emplace("PssIEEE4B.omeganl1", &get_PssIEEE4B_omeganl1); + get_map.emplace("PssIEEE4B.omeganl2", &get_PssIEEE4B_omeganl2); + get_map.emplace("PssIEEE4B.th1", &get_PssIEEE4B_th1); + get_map.emplace("PssIEEE4B.th10", &get_PssIEEE4B_th10); + get_map.emplace("PssIEEE4B.th11", &get_PssIEEE4B_th11); + get_map.emplace("PssIEEE4B.th12", &get_PssIEEE4B_th12); + get_map.emplace("PssIEEE4B.th2", &get_PssIEEE4B_th2); + get_map.emplace("PssIEEE4B.th3", &get_PssIEEE4B_th3); + get_map.emplace("PssIEEE4B.th4", &get_PssIEEE4B_th4); + get_map.emplace("PssIEEE4B.th5", &get_PssIEEE4B_th5); + get_map.emplace("PssIEEE4B.th6", &get_PssIEEE4B_th6); + get_map.emplace("PssIEEE4B.th7", &get_PssIEEE4B_th7); + get_map.emplace("PssIEEE4B.th8", &get_PssIEEE4B_th8); + get_map.emplace("PssIEEE4B.th9", &get_PssIEEE4B_th9); + get_map.emplace("PssIEEE4B.ti1", &get_PssIEEE4B_ti1); + get_map.emplace("PssIEEE4B.ti10", &get_PssIEEE4B_ti10); + get_map.emplace("PssIEEE4B.ti11", &get_PssIEEE4B_ti11); + get_map.emplace("PssIEEE4B.ti12", &get_PssIEEE4B_ti12); + get_map.emplace("PssIEEE4B.ti2", &get_PssIEEE4B_ti2); + get_map.emplace("PssIEEE4B.ti3", &get_PssIEEE4B_ti3); + get_map.emplace("PssIEEE4B.ti4", &get_PssIEEE4B_ti4); + get_map.emplace("PssIEEE4B.ti5", &get_PssIEEE4B_ti5); + get_map.emplace("PssIEEE4B.ti6", &get_PssIEEE4B_ti6); + get_map.emplace("PssIEEE4B.ti7", &get_PssIEEE4B_ti7); + get_map.emplace("PssIEEE4B.ti8", &get_PssIEEE4B_ti8); + get_map.emplace("PssIEEE4B.ti9", &get_PssIEEE4B_ti9); + get_map.emplace("PssIEEE4B.tl1", &get_PssIEEE4B_tl1); + get_map.emplace("PssIEEE4B.tl10", &get_PssIEEE4B_tl10); + get_map.emplace("PssIEEE4B.tl11", &get_PssIEEE4B_tl11); + get_map.emplace("PssIEEE4B.tl12", &get_PssIEEE4B_tl12); + get_map.emplace("PssIEEE4B.tl2", &get_PssIEEE4B_tl2); + get_map.emplace("PssIEEE4B.tl3", &get_PssIEEE4B_tl3); + get_map.emplace("PssIEEE4B.tl4", &get_PssIEEE4B_tl4); + get_map.emplace("PssIEEE4B.tl5", &get_PssIEEE4B_tl5); + get_map.emplace("PssIEEE4B.tl6", &get_PssIEEE4B_tl6); + get_map.emplace("PssIEEE4B.tl7", &get_PssIEEE4B_tl7); + get_map.emplace("PssIEEE4B.tl8", &get_PssIEEE4B_tl8); + get_map.emplace("PssIEEE4B.tl9", &get_PssIEEE4B_tl9); + get_map.emplace("PssIEEE4B.vhmax", &get_PssIEEE4B_vhmax); + get_map.emplace("PssIEEE4B.vhmin", &get_PssIEEE4B_vhmin); + get_map.emplace("PssIEEE4B.vimax", &get_PssIEEE4B_vimax); + get_map.emplace("PssIEEE4B.vimin", &get_PssIEEE4B_vimin); + get_map.emplace("PssIEEE4B.vlmax", &get_PssIEEE4B_vlmax); + get_map.emplace("PssIEEE4B.vlmin", &get_PssIEEE4B_vlmin); + get_map.emplace("PssIEEE4B.vstmax", &get_PssIEEE4B_vstmax); + get_map.emplace("PssIEEE4B.vstmin", &get_PssIEEE4B_vstmin); } void PssIEEE4B::addClassGetFnsToMap(std::map& get_map) const @@ -2216,11 +2248,25 @@ void PssIEEE4B::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssIEEE4B::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssIEEE4B" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssIEEE4B::declare() { return BaseClassDefiner(PssIEEE4B::addConstructToMap, PssIEEE4B::addPrimitiveAssignFnsToMap, PssIEEE4B::addClassAssignFnsToMap, PssIEEE4B::debugName); } +std::map PssIEEE4B::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssIEEE4B_factory() diff --git a/CGMES_3.0.0/PssIEEE4B.hpp b/CGMES_3.0.0/PssIEEE4B.hpp index d62b34c1f..8141c6c41 100644 --- a/CGMES_3.0.0/PssIEEE4B.hpp +++ b/CGMES_3.0.0/PssIEEE4B.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -231,8 +232,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -240,7 +248,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssIEEE4B_factory(); diff --git a/CGMES_3.0.0/PssPTIST1.cpp b/CGMES_3.0.0/PssPTIST1.cpp index beea82b09..030793a3b 100644 --- a/CGMES_3.0.0/PssPTIST1.cpp +++ b/CGMES_3.0.0/PssPTIST1.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssPTIST1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssPTIST1.dtc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.dtf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.dtp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.m", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST1.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssPTIST1::PssPTIST1() {} PssPTIST1::~PssPTIST1() {} -static const std::list PossibleProfilesForClass = +const std::list& PssPTIST1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssPTIST1::getClassNamespaceUrl() const { - { "cim:PssPTIST1.dtc", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.dtf", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.dtp", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.k", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.m", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t1", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t2", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t3", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.t4", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.tf", { CGMESProfile::DY, } }, - { "cim:PssPTIST1.tp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssPTIST1::getPossibleProfilesForClass() const +const std::string& PssPTIST1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssPTIST1::getPossibleProfilesForAttributes() const +const std::list& PssPTIST1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssPTIST1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssPTIST1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssPTIST1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssPTIST1_dtc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssPTIST1::debugString() const void PssPTIST1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssPTIST1", &PssPTIST1_factory); + factory_map.emplace("PssPTIST1", &PssPTIST1_factory); } void PssPTIST1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssPTIST1.dtc", &assign_PssPTIST1_dtc); - assign_map.emplace("cim:PssPTIST1.dtf", &assign_PssPTIST1_dtf); - assign_map.emplace("cim:PssPTIST1.dtp", &assign_PssPTIST1_dtp); - assign_map.emplace("cim:PssPTIST1.k", &assign_PssPTIST1_k); - assign_map.emplace("cim:PssPTIST1.m", &assign_PssPTIST1_m); - assign_map.emplace("cim:PssPTIST1.t1", &assign_PssPTIST1_t1); - assign_map.emplace("cim:PssPTIST1.t2", &assign_PssPTIST1_t2); - assign_map.emplace("cim:PssPTIST1.t3", &assign_PssPTIST1_t3); - assign_map.emplace("cim:PssPTIST1.t4", &assign_PssPTIST1_t4); - assign_map.emplace("cim:PssPTIST1.tf", &assign_PssPTIST1_tf); - assign_map.emplace("cim:PssPTIST1.tp", &assign_PssPTIST1_tp); + assign_map.emplace("PssPTIST1.dtc", &assign_PssPTIST1_dtc); + assign_map.emplace("PssPTIST1.dtf", &assign_PssPTIST1_dtf); + assign_map.emplace("PssPTIST1.dtp", &assign_PssPTIST1_dtp); + assign_map.emplace("PssPTIST1.k", &assign_PssPTIST1_k); + assign_map.emplace("PssPTIST1.m", &assign_PssPTIST1_m); + assign_map.emplace("PssPTIST1.t1", &assign_PssPTIST1_t1); + assign_map.emplace("PssPTIST1.t2", &assign_PssPTIST1_t2); + assign_map.emplace("PssPTIST1.t3", &assign_PssPTIST1_t3); + assign_map.emplace("PssPTIST1.t4", &assign_PssPTIST1_t4); + assign_map.emplace("PssPTIST1.tf", &assign_PssPTIST1_tf); + assign_map.emplace("PssPTIST1.tp", &assign_PssPTIST1_tp); } void PssPTIST1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssPTIST1::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssPTIST1.dtc", &get_PssPTIST1_dtc); - get_map.emplace("cim:PssPTIST1.dtf", &get_PssPTIST1_dtf); - get_map.emplace("cim:PssPTIST1.dtp", &get_PssPTIST1_dtp); - get_map.emplace("cim:PssPTIST1.k", &get_PssPTIST1_k); - get_map.emplace("cim:PssPTIST1.m", &get_PssPTIST1_m); - get_map.emplace("cim:PssPTIST1.t1", &get_PssPTIST1_t1); - get_map.emplace("cim:PssPTIST1.t2", &get_PssPTIST1_t2); - get_map.emplace("cim:PssPTIST1.t3", &get_PssPTIST1_t3); - get_map.emplace("cim:PssPTIST1.t4", &get_PssPTIST1_t4); - get_map.emplace("cim:PssPTIST1.tf", &get_PssPTIST1_tf); - get_map.emplace("cim:PssPTIST1.tp", &get_PssPTIST1_tp); + get_map.emplace("PssPTIST1.dtc", &get_PssPTIST1_dtc); + get_map.emplace("PssPTIST1.dtf", &get_PssPTIST1_dtf); + get_map.emplace("PssPTIST1.dtp", &get_PssPTIST1_dtp); + get_map.emplace("PssPTIST1.k", &get_PssPTIST1_k); + get_map.emplace("PssPTIST1.m", &get_PssPTIST1_m); + get_map.emplace("PssPTIST1.t1", &get_PssPTIST1_t1); + get_map.emplace("PssPTIST1.t2", &get_PssPTIST1_t2); + get_map.emplace("PssPTIST1.t3", &get_PssPTIST1_t3); + get_map.emplace("PssPTIST1.t4", &get_PssPTIST1_t4); + get_map.emplace("PssPTIST1.tf", &get_PssPTIST1_tf); + get_map.emplace("PssPTIST1.tp", &get_PssPTIST1_tp); } void PssPTIST1::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssPTIST1::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssPTIST1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssPTIST1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssPTIST1::declare() { return BaseClassDefiner(PssPTIST1::addConstructToMap, PssPTIST1::addPrimitiveAssignFnsToMap, PssPTIST1::addClassAssignFnsToMap, PssPTIST1::debugName); } +std::map PssPTIST1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssPTIST1_factory() diff --git a/CGMES_3.0.0/PssPTIST1.hpp b/CGMES_3.0.0/PssPTIST1.hpp index f65e1dc6e..8a9747e56 100644 --- a/CGMES_3.0.0/PssPTIST1.hpp +++ b/CGMES_3.0.0/PssPTIST1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssPTIST1_factory(); diff --git a/CGMES_3.0.0/PssPTIST3.cpp b/CGMES_3.0.0/PssPTIST3.cpp index 42a3072e3..badc889af 100644 --- a/CGMES_3.0.0/PssPTIST3.cpp +++ b/CGMES_3.0.0/PssPTIST3.cpp @@ -11,65 +11,97 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssPTIST3(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssPTIST3.a0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.a5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.al", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.athres", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.b5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.dtp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.isw", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.lthres", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.m", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.nav", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.ncl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.ncr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.tf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssPTIST3.tp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssPTIST3::PssPTIST3() {} PssPTIST3::~PssPTIST3() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:PssPTIST3.a0", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.a5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.al", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.athres", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b0", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.b5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dl", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtc", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtf", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.dtp", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.isw", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.k", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.lthres", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.m", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.nav", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.ncl", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.ncr", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.pmin", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t1", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t2", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t3", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t4", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t5", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.t6", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.tf", { CGMESProfile::DY, } }, - { "cim:PssPTIST3.tp", { CGMESProfile::DY, } }, -}; - -std::list -PssPTIST3::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -PssPTIST3::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& PssPTIST3::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& PssPTIST3::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& PssPTIST3::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& PssPTIST3::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssPTIST3::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssPTIST3::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssPTIST3::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssPTIST3_a0(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1066,45 +1098,45 @@ const char* PssPTIST3::debugString() const void PssPTIST3::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssPTIST3", &PssPTIST3_factory); + factory_map.emplace("PssPTIST3", &PssPTIST3_factory); } void PssPTIST3::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssPTIST3.a0", &assign_PssPTIST3_a0); - assign_map.emplace("cim:PssPTIST3.a1", &assign_PssPTIST3_a1); - assign_map.emplace("cim:PssPTIST3.a2", &assign_PssPTIST3_a2); - assign_map.emplace("cim:PssPTIST3.a3", &assign_PssPTIST3_a3); - assign_map.emplace("cim:PssPTIST3.a4", &assign_PssPTIST3_a4); - assign_map.emplace("cim:PssPTIST3.a5", &assign_PssPTIST3_a5); - assign_map.emplace("cim:PssPTIST3.al", &assign_PssPTIST3_al); - assign_map.emplace("cim:PssPTIST3.athres", &assign_PssPTIST3_athres); - assign_map.emplace("cim:PssPTIST3.b0", &assign_PssPTIST3_b0); - assign_map.emplace("cim:PssPTIST3.b1", &assign_PssPTIST3_b1); - assign_map.emplace("cim:PssPTIST3.b2", &assign_PssPTIST3_b2); - assign_map.emplace("cim:PssPTIST3.b3", &assign_PssPTIST3_b3); - assign_map.emplace("cim:PssPTIST3.b4", &assign_PssPTIST3_b4); - assign_map.emplace("cim:PssPTIST3.b5", &assign_PssPTIST3_b5); - assign_map.emplace("cim:PssPTIST3.dl", &assign_PssPTIST3_dl); - assign_map.emplace("cim:PssPTIST3.dtc", &assign_PssPTIST3_dtc); - assign_map.emplace("cim:PssPTIST3.dtf", &assign_PssPTIST3_dtf); - assign_map.emplace("cim:PssPTIST3.dtp", &assign_PssPTIST3_dtp); - assign_map.emplace("cim:PssPTIST3.isw", &assign_PssPTIST3_isw); - assign_map.emplace("cim:PssPTIST3.k", &assign_PssPTIST3_k); - assign_map.emplace("cim:PssPTIST3.lthres", &assign_PssPTIST3_lthres); - assign_map.emplace("cim:PssPTIST3.m", &assign_PssPTIST3_m); - assign_map.emplace("cim:PssPTIST3.nav", &assign_PssPTIST3_nav); - assign_map.emplace("cim:PssPTIST3.ncl", &assign_PssPTIST3_ncl); - assign_map.emplace("cim:PssPTIST3.ncr", &assign_PssPTIST3_ncr); - assign_map.emplace("cim:PssPTIST3.pmin", &assign_PssPTIST3_pmin); - assign_map.emplace("cim:PssPTIST3.t1", &assign_PssPTIST3_t1); - assign_map.emplace("cim:PssPTIST3.t2", &assign_PssPTIST3_t2); - assign_map.emplace("cim:PssPTIST3.t3", &assign_PssPTIST3_t3); - assign_map.emplace("cim:PssPTIST3.t4", &assign_PssPTIST3_t4); - assign_map.emplace("cim:PssPTIST3.t5", &assign_PssPTIST3_t5); - assign_map.emplace("cim:PssPTIST3.t6", &assign_PssPTIST3_t6); - assign_map.emplace("cim:PssPTIST3.tf", &assign_PssPTIST3_tf); - assign_map.emplace("cim:PssPTIST3.tp", &assign_PssPTIST3_tp); + assign_map.emplace("PssPTIST3.a0", &assign_PssPTIST3_a0); + assign_map.emplace("PssPTIST3.a1", &assign_PssPTIST3_a1); + assign_map.emplace("PssPTIST3.a2", &assign_PssPTIST3_a2); + assign_map.emplace("PssPTIST3.a3", &assign_PssPTIST3_a3); + assign_map.emplace("PssPTIST3.a4", &assign_PssPTIST3_a4); + assign_map.emplace("PssPTIST3.a5", &assign_PssPTIST3_a5); + assign_map.emplace("PssPTIST3.al", &assign_PssPTIST3_al); + assign_map.emplace("PssPTIST3.athres", &assign_PssPTIST3_athres); + assign_map.emplace("PssPTIST3.b0", &assign_PssPTIST3_b0); + assign_map.emplace("PssPTIST3.b1", &assign_PssPTIST3_b1); + assign_map.emplace("PssPTIST3.b2", &assign_PssPTIST3_b2); + assign_map.emplace("PssPTIST3.b3", &assign_PssPTIST3_b3); + assign_map.emplace("PssPTIST3.b4", &assign_PssPTIST3_b4); + assign_map.emplace("PssPTIST3.b5", &assign_PssPTIST3_b5); + assign_map.emplace("PssPTIST3.dl", &assign_PssPTIST3_dl); + assign_map.emplace("PssPTIST3.dtc", &assign_PssPTIST3_dtc); + assign_map.emplace("PssPTIST3.dtf", &assign_PssPTIST3_dtf); + assign_map.emplace("PssPTIST3.dtp", &assign_PssPTIST3_dtp); + assign_map.emplace("PssPTIST3.isw", &assign_PssPTIST3_isw); + assign_map.emplace("PssPTIST3.k", &assign_PssPTIST3_k); + assign_map.emplace("PssPTIST3.lthres", &assign_PssPTIST3_lthres); + assign_map.emplace("PssPTIST3.m", &assign_PssPTIST3_m); + assign_map.emplace("PssPTIST3.nav", &assign_PssPTIST3_nav); + assign_map.emplace("PssPTIST3.ncl", &assign_PssPTIST3_ncl); + assign_map.emplace("PssPTIST3.ncr", &assign_PssPTIST3_ncr); + assign_map.emplace("PssPTIST3.pmin", &assign_PssPTIST3_pmin); + assign_map.emplace("PssPTIST3.t1", &assign_PssPTIST3_t1); + assign_map.emplace("PssPTIST3.t2", &assign_PssPTIST3_t2); + assign_map.emplace("PssPTIST3.t3", &assign_PssPTIST3_t3); + assign_map.emplace("PssPTIST3.t4", &assign_PssPTIST3_t4); + assign_map.emplace("PssPTIST3.t5", &assign_PssPTIST3_t5); + assign_map.emplace("PssPTIST3.t6", &assign_PssPTIST3_t6); + assign_map.emplace("PssPTIST3.tf", &assign_PssPTIST3_tf); + assign_map.emplace("PssPTIST3.tp", &assign_PssPTIST3_tp); } void PssPTIST3::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1114,40 +1146,40 @@ void PssPTIST3::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssPTIST3.a0", &get_PssPTIST3_a0); - get_map.emplace("cim:PssPTIST3.a1", &get_PssPTIST3_a1); - get_map.emplace("cim:PssPTIST3.a2", &get_PssPTIST3_a2); - get_map.emplace("cim:PssPTIST3.a3", &get_PssPTIST3_a3); - get_map.emplace("cim:PssPTIST3.a4", &get_PssPTIST3_a4); - get_map.emplace("cim:PssPTIST3.a5", &get_PssPTIST3_a5); - get_map.emplace("cim:PssPTIST3.al", &get_PssPTIST3_al); - get_map.emplace("cim:PssPTIST3.athres", &get_PssPTIST3_athres); - get_map.emplace("cim:PssPTIST3.b0", &get_PssPTIST3_b0); - get_map.emplace("cim:PssPTIST3.b1", &get_PssPTIST3_b1); - get_map.emplace("cim:PssPTIST3.b2", &get_PssPTIST3_b2); - get_map.emplace("cim:PssPTIST3.b3", &get_PssPTIST3_b3); - get_map.emplace("cim:PssPTIST3.b4", &get_PssPTIST3_b4); - get_map.emplace("cim:PssPTIST3.b5", &get_PssPTIST3_b5); - get_map.emplace("cim:PssPTIST3.dl", &get_PssPTIST3_dl); - get_map.emplace("cim:PssPTIST3.dtc", &get_PssPTIST3_dtc); - get_map.emplace("cim:PssPTIST3.dtf", &get_PssPTIST3_dtf); - get_map.emplace("cim:PssPTIST3.dtp", &get_PssPTIST3_dtp); - get_map.emplace("cim:PssPTIST3.isw", &get_PssPTIST3_isw); - get_map.emplace("cim:PssPTIST3.k", &get_PssPTIST3_k); - get_map.emplace("cim:PssPTIST3.lthres", &get_PssPTIST3_lthres); - get_map.emplace("cim:PssPTIST3.m", &get_PssPTIST3_m); - get_map.emplace("cim:PssPTIST3.nav", &get_PssPTIST3_nav); - get_map.emplace("cim:PssPTIST3.ncl", &get_PssPTIST3_ncl); - get_map.emplace("cim:PssPTIST3.ncr", &get_PssPTIST3_ncr); - get_map.emplace("cim:PssPTIST3.pmin", &get_PssPTIST3_pmin); - get_map.emplace("cim:PssPTIST3.t1", &get_PssPTIST3_t1); - get_map.emplace("cim:PssPTIST3.t2", &get_PssPTIST3_t2); - get_map.emplace("cim:PssPTIST3.t3", &get_PssPTIST3_t3); - get_map.emplace("cim:PssPTIST3.t4", &get_PssPTIST3_t4); - get_map.emplace("cim:PssPTIST3.t5", &get_PssPTIST3_t5); - get_map.emplace("cim:PssPTIST3.t6", &get_PssPTIST3_t6); - get_map.emplace("cim:PssPTIST3.tf", &get_PssPTIST3_tf); - get_map.emplace("cim:PssPTIST3.tp", &get_PssPTIST3_tp); + get_map.emplace("PssPTIST3.a0", &get_PssPTIST3_a0); + get_map.emplace("PssPTIST3.a1", &get_PssPTIST3_a1); + get_map.emplace("PssPTIST3.a2", &get_PssPTIST3_a2); + get_map.emplace("PssPTIST3.a3", &get_PssPTIST3_a3); + get_map.emplace("PssPTIST3.a4", &get_PssPTIST3_a4); + get_map.emplace("PssPTIST3.a5", &get_PssPTIST3_a5); + get_map.emplace("PssPTIST3.al", &get_PssPTIST3_al); + get_map.emplace("PssPTIST3.athres", &get_PssPTIST3_athres); + get_map.emplace("PssPTIST3.b0", &get_PssPTIST3_b0); + get_map.emplace("PssPTIST3.b1", &get_PssPTIST3_b1); + get_map.emplace("PssPTIST3.b2", &get_PssPTIST3_b2); + get_map.emplace("PssPTIST3.b3", &get_PssPTIST3_b3); + get_map.emplace("PssPTIST3.b4", &get_PssPTIST3_b4); + get_map.emplace("PssPTIST3.b5", &get_PssPTIST3_b5); + get_map.emplace("PssPTIST3.dl", &get_PssPTIST3_dl); + get_map.emplace("PssPTIST3.dtc", &get_PssPTIST3_dtc); + get_map.emplace("PssPTIST3.dtf", &get_PssPTIST3_dtf); + get_map.emplace("PssPTIST3.dtp", &get_PssPTIST3_dtp); + get_map.emplace("PssPTIST3.isw", &get_PssPTIST3_isw); + get_map.emplace("PssPTIST3.k", &get_PssPTIST3_k); + get_map.emplace("PssPTIST3.lthres", &get_PssPTIST3_lthres); + get_map.emplace("PssPTIST3.m", &get_PssPTIST3_m); + get_map.emplace("PssPTIST3.nav", &get_PssPTIST3_nav); + get_map.emplace("PssPTIST3.ncl", &get_PssPTIST3_ncl); + get_map.emplace("PssPTIST3.ncr", &get_PssPTIST3_ncr); + get_map.emplace("PssPTIST3.pmin", &get_PssPTIST3_pmin); + get_map.emplace("PssPTIST3.t1", &get_PssPTIST3_t1); + get_map.emplace("PssPTIST3.t2", &get_PssPTIST3_t2); + get_map.emplace("PssPTIST3.t3", &get_PssPTIST3_t3); + get_map.emplace("PssPTIST3.t4", &get_PssPTIST3_t4); + get_map.emplace("PssPTIST3.t5", &get_PssPTIST3_t5); + get_map.emplace("PssPTIST3.t6", &get_PssPTIST3_t6); + get_map.emplace("PssPTIST3.tf", &get_PssPTIST3_tf); + get_map.emplace("PssPTIST3.tp", &get_PssPTIST3_tp); } void PssPTIST3::addClassGetFnsToMap(std::map& get_map) const @@ -1160,11 +1192,25 @@ void PssPTIST3::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssPTIST3::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssPTIST3" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssPTIST3::declare() { return BaseClassDefiner(PssPTIST3::addConstructToMap, PssPTIST3::addPrimitiveAssignFnsToMap, PssPTIST3::addClassAssignFnsToMap, PssPTIST3::debugName); } +std::map PssPTIST3::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssPTIST3_factory() diff --git a/CGMES_3.0.0/PssPTIST3.hpp b/CGMES_3.0.0/PssPTIST3.hpp index 1bcfc4dff..283db56bd 100644 --- a/CGMES_3.0.0/PssPTIST3.hpp +++ b/CGMES_3.0.0/PssPTIST3.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -133,8 +134,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -142,7 +150,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssPTIST3_factory(); diff --git a/CGMES_3.0.0/PssRQB.cpp b/CGMES_3.0.0/PssRQB.cpp index db675faa2..882ee0fef 100644 --- a/CGMES_3.0.0/PssRQB.cpp +++ b/CGMES_3.0.0/PssRQB.cpp @@ -11,41 +11,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssRQB(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssRQB.kdpm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.ki2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.ki3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.ki4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.sibv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.t4f", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.t4m", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.t4mom", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.tomd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssRQB.tomsl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssRQB::PssRQB() {} PssRQB::~PssRQB() {} -static const std::list PossibleProfilesForClass = +const std::list& PssRQB::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssRQB::getClassNamespaceUrl() const { - { "cim:PssRQB.kdpm", { CGMESProfile::DY, } }, - { "cim:PssRQB.ki2", { CGMESProfile::DY, } }, - { "cim:PssRQB.ki3", { CGMESProfile::DY, } }, - { "cim:PssRQB.ki4", { CGMESProfile::DY, } }, - { "cim:PssRQB.sibv", { CGMESProfile::DY, } }, - { "cim:PssRQB.t4f", { CGMESProfile::DY, } }, - { "cim:PssRQB.t4m", { CGMESProfile::DY, } }, - { "cim:PssRQB.t4mom", { CGMESProfile::DY, } }, - { "cim:PssRQB.tomd", { CGMESProfile::DY, } }, - { "cim:PssRQB.tomsl", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssRQB::getPossibleProfilesForClass() const +const std::string& PssRQB::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssRQB::getPossibleProfilesForAttributes() const +const std::list& PssRQB::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssRQB::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssRQB::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssRQB::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssRQB_kdpm(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -346,21 +378,21 @@ const char* PssRQB::debugString() const void PssRQB::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssRQB", &PssRQB_factory); + factory_map.emplace("PssRQB", &PssRQB_factory); } void PssRQB::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssRQB.kdpm", &assign_PssRQB_kdpm); - assign_map.emplace("cim:PssRQB.ki2", &assign_PssRQB_ki2); - assign_map.emplace("cim:PssRQB.ki3", &assign_PssRQB_ki3); - assign_map.emplace("cim:PssRQB.ki4", &assign_PssRQB_ki4); - assign_map.emplace("cim:PssRQB.sibv", &assign_PssRQB_sibv); - assign_map.emplace("cim:PssRQB.t4f", &assign_PssRQB_t4f); - assign_map.emplace("cim:PssRQB.t4m", &assign_PssRQB_t4m); - assign_map.emplace("cim:PssRQB.t4mom", &assign_PssRQB_t4mom); - assign_map.emplace("cim:PssRQB.tomd", &assign_PssRQB_tomd); - assign_map.emplace("cim:PssRQB.tomsl", &assign_PssRQB_tomsl); + assign_map.emplace("PssRQB.kdpm", &assign_PssRQB_kdpm); + assign_map.emplace("PssRQB.ki2", &assign_PssRQB_ki2); + assign_map.emplace("PssRQB.ki3", &assign_PssRQB_ki3); + assign_map.emplace("PssRQB.ki4", &assign_PssRQB_ki4); + assign_map.emplace("PssRQB.sibv", &assign_PssRQB_sibv); + assign_map.emplace("PssRQB.t4f", &assign_PssRQB_t4f); + assign_map.emplace("PssRQB.t4m", &assign_PssRQB_t4m); + assign_map.emplace("PssRQB.t4mom", &assign_PssRQB_t4mom); + assign_map.emplace("PssRQB.tomd", &assign_PssRQB_tomd); + assign_map.emplace("PssRQB.tomsl", &assign_PssRQB_tomsl); } void PssRQB::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -370,16 +402,16 @@ void PssRQB::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssRQB.kdpm", &get_PssRQB_kdpm); - get_map.emplace("cim:PssRQB.ki2", &get_PssRQB_ki2); - get_map.emplace("cim:PssRQB.ki3", &get_PssRQB_ki3); - get_map.emplace("cim:PssRQB.ki4", &get_PssRQB_ki4); - get_map.emplace("cim:PssRQB.sibv", &get_PssRQB_sibv); - get_map.emplace("cim:PssRQB.t4f", &get_PssRQB_t4f); - get_map.emplace("cim:PssRQB.t4m", &get_PssRQB_t4m); - get_map.emplace("cim:PssRQB.t4mom", &get_PssRQB_t4mom); - get_map.emplace("cim:PssRQB.tomd", &get_PssRQB_tomd); - get_map.emplace("cim:PssRQB.tomsl", &get_PssRQB_tomsl); + get_map.emplace("PssRQB.kdpm", &get_PssRQB_kdpm); + get_map.emplace("PssRQB.ki2", &get_PssRQB_ki2); + get_map.emplace("PssRQB.ki3", &get_PssRQB_ki3); + get_map.emplace("PssRQB.ki4", &get_PssRQB_ki4); + get_map.emplace("PssRQB.sibv", &get_PssRQB_sibv); + get_map.emplace("PssRQB.t4f", &get_PssRQB_t4f); + get_map.emplace("PssRQB.t4m", &get_PssRQB_t4m); + get_map.emplace("PssRQB.t4mom", &get_PssRQB_t4mom); + get_map.emplace("PssRQB.tomd", &get_PssRQB_tomd); + get_map.emplace("PssRQB.tomsl", &get_PssRQB_tomsl); } void PssRQB::addClassGetFnsToMap(std::map& get_map) const @@ -392,11 +424,25 @@ void PssRQB::addEnumGetFnsToMap(std::map& get_map) co PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssRQB::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssRQB" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssRQB::declare() { return BaseClassDefiner(PssRQB::addConstructToMap, PssRQB::addPrimitiveAssignFnsToMap, PssRQB::addClassAssignFnsToMap, PssRQB::debugName); } +std::map PssRQB::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssRQB_factory() diff --git a/CGMES_3.0.0/PssRQB.hpp b/CGMES_3.0.0/PssRQB.hpp index 7a962ad5a..a5ce2b49a 100644 --- a/CGMES_3.0.0/PssRQB.hpp +++ b/CGMES_3.0.0/PssRQB.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -60,8 +61,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -69,7 +77,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssRQB_factory(); diff --git a/CGMES_3.0.0/PssSB4.cpp b/CGMES_3.0.0/PssSB4.cpp index ff54c429f..a8eb1d563 100644 --- a/CGMES_3.0.0/PssSB4.cpp +++ b/CGMES_3.0.0/PssSB4.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSB4(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSB4.kx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.ta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.tb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.te", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.tt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.tx1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.tx2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.vsmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSB4.vsmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSB4::PssSB4() {} PssSB4::~PssSB4() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSB4::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSB4::getClassNamespaceUrl() const { - { "cim:PssSB4.kx", { CGMESProfile::DY, } }, - { "cim:PssSB4.ta", { CGMESProfile::DY, } }, - { "cim:PssSB4.tb", { CGMESProfile::DY, } }, - { "cim:PssSB4.tc", { CGMESProfile::DY, } }, - { "cim:PssSB4.td", { CGMESProfile::DY, } }, - { "cim:PssSB4.te", { CGMESProfile::DY, } }, - { "cim:PssSB4.tt", { CGMESProfile::DY, } }, - { "cim:PssSB4.tx1", { CGMESProfile::DY, } }, - { "cim:PssSB4.tx2", { CGMESProfile::DY, } }, - { "cim:PssSB4.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSB4.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSB4::getPossibleProfilesForClass() const +const std::string& PssSB4::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSB4::getPossibleProfilesForAttributes() const +const std::list& PssSB4::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSB4::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSB4::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSB4::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSB4_kx(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssSB4::debugString() const void PssSB4::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSB4", &PssSB4_factory); + factory_map.emplace("PssSB4", &PssSB4_factory); } void PssSB4::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSB4.kx", &assign_PssSB4_kx); - assign_map.emplace("cim:PssSB4.ta", &assign_PssSB4_ta); - assign_map.emplace("cim:PssSB4.tb", &assign_PssSB4_tb); - assign_map.emplace("cim:PssSB4.tc", &assign_PssSB4_tc); - assign_map.emplace("cim:PssSB4.td", &assign_PssSB4_td); - assign_map.emplace("cim:PssSB4.te", &assign_PssSB4_te); - assign_map.emplace("cim:PssSB4.tt", &assign_PssSB4_tt); - assign_map.emplace("cim:PssSB4.tx1", &assign_PssSB4_tx1); - assign_map.emplace("cim:PssSB4.tx2", &assign_PssSB4_tx2); - assign_map.emplace("cim:PssSB4.vsmax", &assign_PssSB4_vsmax); - assign_map.emplace("cim:PssSB4.vsmin", &assign_PssSB4_vsmin); + assign_map.emplace("PssSB4.kx", &assign_PssSB4_kx); + assign_map.emplace("PssSB4.ta", &assign_PssSB4_ta); + assign_map.emplace("PssSB4.tb", &assign_PssSB4_tb); + assign_map.emplace("PssSB4.tc", &assign_PssSB4_tc); + assign_map.emplace("PssSB4.td", &assign_PssSB4_td); + assign_map.emplace("PssSB4.te", &assign_PssSB4_te); + assign_map.emplace("PssSB4.tt", &assign_PssSB4_tt); + assign_map.emplace("PssSB4.tx1", &assign_PssSB4_tx1); + assign_map.emplace("PssSB4.tx2", &assign_PssSB4_tx2); + assign_map.emplace("PssSB4.vsmax", &assign_PssSB4_vsmax); + assign_map.emplace("PssSB4.vsmin", &assign_PssSB4_vsmin); } void PssSB4::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssSB4::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSB4.kx", &get_PssSB4_kx); - get_map.emplace("cim:PssSB4.ta", &get_PssSB4_ta); - get_map.emplace("cim:PssSB4.tb", &get_PssSB4_tb); - get_map.emplace("cim:PssSB4.tc", &get_PssSB4_tc); - get_map.emplace("cim:PssSB4.td", &get_PssSB4_td); - get_map.emplace("cim:PssSB4.te", &get_PssSB4_te); - get_map.emplace("cim:PssSB4.tt", &get_PssSB4_tt); - get_map.emplace("cim:PssSB4.tx1", &get_PssSB4_tx1); - get_map.emplace("cim:PssSB4.tx2", &get_PssSB4_tx2); - get_map.emplace("cim:PssSB4.vsmax", &get_PssSB4_vsmax); - get_map.emplace("cim:PssSB4.vsmin", &get_PssSB4_vsmin); + get_map.emplace("PssSB4.kx", &get_PssSB4_kx); + get_map.emplace("PssSB4.ta", &get_PssSB4_ta); + get_map.emplace("PssSB4.tb", &get_PssSB4_tb); + get_map.emplace("PssSB4.tc", &get_PssSB4_tc); + get_map.emplace("PssSB4.td", &get_PssSB4_td); + get_map.emplace("PssSB4.te", &get_PssSB4_te); + get_map.emplace("PssSB4.tt", &get_PssSB4_tt); + get_map.emplace("PssSB4.tx1", &get_PssSB4_tx1); + get_map.emplace("PssSB4.tx2", &get_PssSB4_tx2); + get_map.emplace("PssSB4.vsmax", &get_PssSB4_vsmax); + get_map.emplace("PssSB4.vsmin", &get_PssSB4_vsmin); } void PssSB4::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssSB4::addEnumGetFnsToMap(std::map& get_map) co PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSB4::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSB4" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSB4::declare() { return BaseClassDefiner(PssSB4::addConstructToMap, PssSB4::addPrimitiveAssignFnsToMap, PssSB4::addClassAssignFnsToMap, PssSB4::debugName); } +std::map PssSB4::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSB4_factory() diff --git a/CGMES_3.0.0/PssSB4.hpp b/CGMES_3.0.0/PssSB4.hpp index e9c4b603d..56e80d05f 100644 --- a/CGMES_3.0.0/PssSB4.hpp +++ b/CGMES_3.0.0/PssSB4.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSB4_factory(); diff --git a/CGMES_3.0.0/PssSH.cpp b/CGMES_3.0.0/PssSH.cpp index 5e06369a1..78e213981 100644 --- a/CGMES_3.0.0/PssSH.cpp +++ b/CGMES_3.0.0/PssSH.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSH(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSH.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.k0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.k4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.td", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.vsmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSH.vsmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSH::PssSH() {} PssSH::~PssSH() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSH::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSH::getClassNamespaceUrl() const { - { "cim:PssSH.k", { CGMESProfile::DY, } }, - { "cim:PssSH.k0", { CGMESProfile::DY, } }, - { "cim:PssSH.k1", { CGMESProfile::DY, } }, - { "cim:PssSH.k2", { CGMESProfile::DY, } }, - { "cim:PssSH.k3", { CGMESProfile::DY, } }, - { "cim:PssSH.k4", { CGMESProfile::DY, } }, - { "cim:PssSH.t1", { CGMESProfile::DY, } }, - { "cim:PssSH.t2", { CGMESProfile::DY, } }, - { "cim:PssSH.t3", { CGMESProfile::DY, } }, - { "cim:PssSH.t4", { CGMESProfile::DY, } }, - { "cim:PssSH.td", { CGMESProfile::DY, } }, - { "cim:PssSH.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSH.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSH::getPossibleProfilesForClass() const +const std::string& PssSH::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSH::getPossibleProfilesForAttributes() const +const std::list& PssSH::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSH::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSH::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSH::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSH_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* PssSH::debugString() const void PssSH::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSH", &PssSH_factory); + factory_map.emplace("PssSH", &PssSH_factory); } void PssSH::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSH.k", &assign_PssSH_k); - assign_map.emplace("cim:PssSH.k0", &assign_PssSH_k0); - assign_map.emplace("cim:PssSH.k1", &assign_PssSH_k1); - assign_map.emplace("cim:PssSH.k2", &assign_PssSH_k2); - assign_map.emplace("cim:PssSH.k3", &assign_PssSH_k3); - assign_map.emplace("cim:PssSH.k4", &assign_PssSH_k4); - assign_map.emplace("cim:PssSH.t1", &assign_PssSH_t1); - assign_map.emplace("cim:PssSH.t2", &assign_PssSH_t2); - assign_map.emplace("cim:PssSH.t3", &assign_PssSH_t3); - assign_map.emplace("cim:PssSH.t4", &assign_PssSH_t4); - assign_map.emplace("cim:PssSH.td", &assign_PssSH_td); - assign_map.emplace("cim:PssSH.vsmax", &assign_PssSH_vsmax); - assign_map.emplace("cim:PssSH.vsmin", &assign_PssSH_vsmin); + assign_map.emplace("PssSH.k", &assign_PssSH_k); + assign_map.emplace("PssSH.k0", &assign_PssSH_k0); + assign_map.emplace("PssSH.k1", &assign_PssSH_k1); + assign_map.emplace("PssSH.k2", &assign_PssSH_k2); + assign_map.emplace("PssSH.k3", &assign_PssSH_k3); + assign_map.emplace("PssSH.k4", &assign_PssSH_k4); + assign_map.emplace("PssSH.t1", &assign_PssSH_t1); + assign_map.emplace("PssSH.t2", &assign_PssSH_t2); + assign_map.emplace("PssSH.t3", &assign_PssSH_t3); + assign_map.emplace("PssSH.t4", &assign_PssSH_t4); + assign_map.emplace("PssSH.td", &assign_PssSH_td); + assign_map.emplace("PssSH.vsmax", &assign_PssSH_vsmax); + assign_map.emplace("PssSH.vsmin", &assign_PssSH_vsmin); } void PssSH::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void PssSH::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSH.k", &get_PssSH_k); - get_map.emplace("cim:PssSH.k0", &get_PssSH_k0); - get_map.emplace("cim:PssSH.k1", &get_PssSH_k1); - get_map.emplace("cim:PssSH.k2", &get_PssSH_k2); - get_map.emplace("cim:PssSH.k3", &get_PssSH_k3); - get_map.emplace("cim:PssSH.k4", &get_PssSH_k4); - get_map.emplace("cim:PssSH.t1", &get_PssSH_t1); - get_map.emplace("cim:PssSH.t2", &get_PssSH_t2); - get_map.emplace("cim:PssSH.t3", &get_PssSH_t3); - get_map.emplace("cim:PssSH.t4", &get_PssSH_t4); - get_map.emplace("cim:PssSH.td", &get_PssSH_td); - get_map.emplace("cim:PssSH.vsmax", &get_PssSH_vsmax); - get_map.emplace("cim:PssSH.vsmin", &get_PssSH_vsmin); + get_map.emplace("PssSH.k", &get_PssSH_k); + get_map.emplace("PssSH.k0", &get_PssSH_k0); + get_map.emplace("PssSH.k1", &get_PssSH_k1); + get_map.emplace("PssSH.k2", &get_PssSH_k2); + get_map.emplace("PssSH.k3", &get_PssSH_k3); + get_map.emplace("PssSH.k4", &get_PssSH_k4); + get_map.emplace("PssSH.t1", &get_PssSH_t1); + get_map.emplace("PssSH.t2", &get_PssSH_t2); + get_map.emplace("PssSH.t3", &get_PssSH_t3); + get_map.emplace("PssSH.t4", &get_PssSH_t4); + get_map.emplace("PssSH.td", &get_PssSH_td); + get_map.emplace("PssSH.vsmax", &get_PssSH_vsmax); + get_map.emplace("PssSH.vsmin", &get_PssSH_vsmin); } void PssSH::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void PssSH::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSH::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSH" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSH::declare() { return BaseClassDefiner(PssSH::addConstructToMap, PssSH::addPrimitiveAssignFnsToMap, PssSH::addClassAssignFnsToMap, PssSH::debugName); } +std::map PssSH::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSH_factory() diff --git a/CGMES_3.0.0/PssSH.hpp b/CGMES_3.0.0/PssSH.hpp index 1bbf26971..91dd4b3de 100644 --- a/CGMES_3.0.0/PssSH.hpp +++ b/CGMES_3.0.0/PssSH.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -68,8 +69,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -77,7 +85,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSH_factory(); diff --git a/CGMES_3.0.0/PssSK.cpp b/CGMES_3.0.0/PssSK.cpp index 1c23f5dbd..64ea7d3d2 100644 --- a/CGMES_3.0.0/PssSK.cpp +++ b/CGMES_3.0.0/PssSK.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSK(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSK.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.vsmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSK.vsmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSK::PssSK() {} PssSK::~PssSK() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSK::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSK::getClassNamespaceUrl() const { - { "cim:PssSK.k1", { CGMESProfile::DY, } }, - { "cim:PssSK.k2", { CGMESProfile::DY, } }, - { "cim:PssSK.k3", { CGMESProfile::DY, } }, - { "cim:PssSK.t1", { CGMESProfile::DY, } }, - { "cim:PssSK.t2", { CGMESProfile::DY, } }, - { "cim:PssSK.t3", { CGMESProfile::DY, } }, - { "cim:PssSK.t4", { CGMESProfile::DY, } }, - { "cim:PssSK.t5", { CGMESProfile::DY, } }, - { "cim:PssSK.t6", { CGMESProfile::DY, } }, - { "cim:PssSK.vsmax", { CGMESProfile::DY, } }, - { "cim:PssSK.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSK::getPossibleProfilesForClass() const +const std::string& PssSK::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSK::getPossibleProfilesForAttributes() const +const std::list& PssSK::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSK::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSK::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSK::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSK_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* PssSK::debugString() const void PssSK::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSK", &PssSK_factory); + factory_map.emplace("PssSK", &PssSK_factory); } void PssSK::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSK.k1", &assign_PssSK_k1); - assign_map.emplace("cim:PssSK.k2", &assign_PssSK_k2); - assign_map.emplace("cim:PssSK.k3", &assign_PssSK_k3); - assign_map.emplace("cim:PssSK.t1", &assign_PssSK_t1); - assign_map.emplace("cim:PssSK.t2", &assign_PssSK_t2); - assign_map.emplace("cim:PssSK.t3", &assign_PssSK_t3); - assign_map.emplace("cim:PssSK.t4", &assign_PssSK_t4); - assign_map.emplace("cim:PssSK.t5", &assign_PssSK_t5); - assign_map.emplace("cim:PssSK.t6", &assign_PssSK_t6); - assign_map.emplace("cim:PssSK.vsmax", &assign_PssSK_vsmax); - assign_map.emplace("cim:PssSK.vsmin", &assign_PssSK_vsmin); + assign_map.emplace("PssSK.k1", &assign_PssSK_k1); + assign_map.emplace("PssSK.k2", &assign_PssSK_k2); + assign_map.emplace("PssSK.k3", &assign_PssSK_k3); + assign_map.emplace("PssSK.t1", &assign_PssSK_t1); + assign_map.emplace("PssSK.t2", &assign_PssSK_t2); + assign_map.emplace("PssSK.t3", &assign_PssSK_t3); + assign_map.emplace("PssSK.t4", &assign_PssSK_t4); + assign_map.emplace("PssSK.t5", &assign_PssSK_t5); + assign_map.emplace("PssSK.t6", &assign_PssSK_t6); + assign_map.emplace("PssSK.vsmax", &assign_PssSK_vsmax); + assign_map.emplace("PssSK.vsmin", &assign_PssSK_vsmin); } void PssSK::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void PssSK::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSK.k1", &get_PssSK_k1); - get_map.emplace("cim:PssSK.k2", &get_PssSK_k2); - get_map.emplace("cim:PssSK.k3", &get_PssSK_k3); - get_map.emplace("cim:PssSK.t1", &get_PssSK_t1); - get_map.emplace("cim:PssSK.t2", &get_PssSK_t2); - get_map.emplace("cim:PssSK.t3", &get_PssSK_t3); - get_map.emplace("cim:PssSK.t4", &get_PssSK_t4); - get_map.emplace("cim:PssSK.t5", &get_PssSK_t5); - get_map.emplace("cim:PssSK.t6", &get_PssSK_t6); - get_map.emplace("cim:PssSK.vsmax", &get_PssSK_vsmax); - get_map.emplace("cim:PssSK.vsmin", &get_PssSK_vsmin); + get_map.emplace("PssSK.k1", &get_PssSK_k1); + get_map.emplace("PssSK.k2", &get_PssSK_k2); + get_map.emplace("PssSK.k3", &get_PssSK_k3); + get_map.emplace("PssSK.t1", &get_PssSK_t1); + get_map.emplace("PssSK.t2", &get_PssSK_t2); + get_map.emplace("PssSK.t3", &get_PssSK_t3); + get_map.emplace("PssSK.t4", &get_PssSK_t4); + get_map.emplace("PssSK.t5", &get_PssSK_t5); + get_map.emplace("PssSK.t6", &get_PssSK_t6); + get_map.emplace("PssSK.vsmax", &get_PssSK_vsmax); + get_map.emplace("PssSK.vsmin", &get_PssSK_vsmin); } void PssSK::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void PssSK::addEnumGetFnsToMap(std::map& get_map) con PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSK::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSK" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSK::declare() { return BaseClassDefiner(PssSK::addConstructToMap, PssSK::addPrimitiveAssignFnsToMap, PssSK::addClassAssignFnsToMap, PssSK::debugName); } +std::map PssSK::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSK_factory() diff --git a/CGMES_3.0.0/PssSK.hpp b/CGMES_3.0.0/PssSK.hpp index 156751a58..826b7192d 100644 --- a/CGMES_3.0.0/PssSK.hpp +++ b/CGMES_3.0.0/PssSK.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSK_factory(); diff --git a/CGMES_3.0.0/PssSTAB2A.cpp b/CGMES_3.0.0/PssSTAB2A.cpp index 79cadc5a2..0f140c17e 100644 --- a/CGMES_3.0.0/PssSTAB2A.cpp +++ b/CGMES_3.0.0/PssSTAB2A.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssSTAB2A(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssSTAB2A.hlim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSTAB2A.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSTAB2A.k3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSTAB2A.k4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSTAB2A.k5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSTAB2A.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSTAB2A.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssSTAB2A.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssSTAB2A::PssSTAB2A() {} PssSTAB2A::~PssSTAB2A() {} -static const std::list PossibleProfilesForClass = +const std::list& PssSTAB2A::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssSTAB2A::getClassNamespaceUrl() const { - { "cim:PssSTAB2A.hlim", { CGMESProfile::DY, } }, - { "cim:PssSTAB2A.k2", { CGMESProfile::DY, } }, - { "cim:PssSTAB2A.k3", { CGMESProfile::DY, } }, - { "cim:PssSTAB2A.k4", { CGMESProfile::DY, } }, - { "cim:PssSTAB2A.k5", { CGMESProfile::DY, } }, - { "cim:PssSTAB2A.t2", { CGMESProfile::DY, } }, - { "cim:PssSTAB2A.t3", { CGMESProfile::DY, } }, - { "cim:PssSTAB2A.t5", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssSTAB2A::getPossibleProfilesForClass() const +const std::string& PssSTAB2A::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssSTAB2A::getPossibleProfilesForAttributes() const +const std::list& PssSTAB2A::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssSTAB2A::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssSTAB2A::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssSTAB2A::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssSTAB2A_hlim(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -286,19 +318,19 @@ const char* PssSTAB2A::debugString() const void PssSTAB2A::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssSTAB2A", &PssSTAB2A_factory); + factory_map.emplace("PssSTAB2A", &PssSTAB2A_factory); } void PssSTAB2A::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssSTAB2A.hlim", &assign_PssSTAB2A_hlim); - assign_map.emplace("cim:PssSTAB2A.k2", &assign_PssSTAB2A_k2); - assign_map.emplace("cim:PssSTAB2A.k3", &assign_PssSTAB2A_k3); - assign_map.emplace("cim:PssSTAB2A.k4", &assign_PssSTAB2A_k4); - assign_map.emplace("cim:PssSTAB2A.k5", &assign_PssSTAB2A_k5); - assign_map.emplace("cim:PssSTAB2A.t2", &assign_PssSTAB2A_t2); - assign_map.emplace("cim:PssSTAB2A.t3", &assign_PssSTAB2A_t3); - assign_map.emplace("cim:PssSTAB2A.t5", &assign_PssSTAB2A_t5); + assign_map.emplace("PssSTAB2A.hlim", &assign_PssSTAB2A_hlim); + assign_map.emplace("PssSTAB2A.k2", &assign_PssSTAB2A_k2); + assign_map.emplace("PssSTAB2A.k3", &assign_PssSTAB2A_k3); + assign_map.emplace("PssSTAB2A.k4", &assign_PssSTAB2A_k4); + assign_map.emplace("PssSTAB2A.k5", &assign_PssSTAB2A_k5); + assign_map.emplace("PssSTAB2A.t2", &assign_PssSTAB2A_t2); + assign_map.emplace("PssSTAB2A.t3", &assign_PssSTAB2A_t3); + assign_map.emplace("PssSTAB2A.t5", &assign_PssSTAB2A_t5); } void PssSTAB2A::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -308,14 +340,14 @@ void PssSTAB2A::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssSTAB2A.hlim", &get_PssSTAB2A_hlim); - get_map.emplace("cim:PssSTAB2A.k2", &get_PssSTAB2A_k2); - get_map.emplace("cim:PssSTAB2A.k3", &get_PssSTAB2A_k3); - get_map.emplace("cim:PssSTAB2A.k4", &get_PssSTAB2A_k4); - get_map.emplace("cim:PssSTAB2A.k5", &get_PssSTAB2A_k5); - get_map.emplace("cim:PssSTAB2A.t2", &get_PssSTAB2A_t2); - get_map.emplace("cim:PssSTAB2A.t3", &get_PssSTAB2A_t3); - get_map.emplace("cim:PssSTAB2A.t5", &get_PssSTAB2A_t5); + get_map.emplace("PssSTAB2A.hlim", &get_PssSTAB2A_hlim); + get_map.emplace("PssSTAB2A.k2", &get_PssSTAB2A_k2); + get_map.emplace("PssSTAB2A.k3", &get_PssSTAB2A_k3); + get_map.emplace("PssSTAB2A.k4", &get_PssSTAB2A_k4); + get_map.emplace("PssSTAB2A.k5", &get_PssSTAB2A_k5); + get_map.emplace("PssSTAB2A.t2", &get_PssSTAB2A_t2); + get_map.emplace("PssSTAB2A.t3", &get_PssSTAB2A_t3); + get_map.emplace("PssSTAB2A.t5", &get_PssSTAB2A_t5); } void PssSTAB2A::addClassGetFnsToMap(std::map& get_map) const @@ -328,11 +360,25 @@ void PssSTAB2A::addEnumGetFnsToMap(std::map& get_map) PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); } +bool PssSTAB2A::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssSTAB2A" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner PssSTAB2A::declare() { return BaseClassDefiner(PssSTAB2A::addConstructToMap, PssSTAB2A::addPrimitiveAssignFnsToMap, PssSTAB2A::addClassAssignFnsToMap, PssSTAB2A::debugName); } +std::map PssSTAB2A::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssSTAB2A_factory() diff --git a/CGMES_3.0.0/PssSTAB2A.hpp b/CGMES_3.0.0/PssSTAB2A.hpp index 8bf644cc1..930ce7c4b 100644 --- a/CGMES_3.0.0/PssSTAB2A.hpp +++ b/CGMES_3.0.0/PssSTAB2A.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssSTAB2A_factory(); diff --git a/CGMES_3.0.0/PssWECC.cpp b/CGMES_3.0.0/PssWECC.cpp index e3044b133..1349349d4 100644 --- a/CGMES_3.0.0/PssWECC.cpp +++ b/CGMES_3.0.0/PssWECC.cpp @@ -11,49 +11,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + PssWECC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "PssWECC.inputSignal1Type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.inputSignal2Type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.t9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.vcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.vcu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.vsmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "PssWECC.vsmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + PssWECC::PssWECC() {} PssWECC::~PssWECC() {} -static const std::list PossibleProfilesForClass = +const std::list& PssWECC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& PssWECC::getClassNamespaceUrl() const { - { "cim:PssWECC.inputSignal1Type", { CGMESProfile::DY, } }, - { "cim:PssWECC.inputSignal2Type", { CGMESProfile::DY, } }, - { "cim:PssWECC.k1", { CGMESProfile::DY, } }, - { "cim:PssWECC.k2", { CGMESProfile::DY, } }, - { "cim:PssWECC.t1", { CGMESProfile::DY, } }, - { "cim:PssWECC.t10", { CGMESProfile::DY, } }, - { "cim:PssWECC.t2", { CGMESProfile::DY, } }, - { "cim:PssWECC.t3", { CGMESProfile::DY, } }, - { "cim:PssWECC.t4", { CGMESProfile::DY, } }, - { "cim:PssWECC.t5", { CGMESProfile::DY, } }, - { "cim:PssWECC.t6", { CGMESProfile::DY, } }, - { "cim:PssWECC.t7", { CGMESProfile::DY, } }, - { "cim:PssWECC.t8", { CGMESProfile::DY, } }, - { "cim:PssWECC.t9", { CGMESProfile::DY, } }, - { "cim:PssWECC.vcl", { CGMESProfile::DY, } }, - { "cim:PssWECC.vcu", { CGMESProfile::DY, } }, - { "cim:PssWECC.vsmax", { CGMESProfile::DY, } }, - { "cim:PssWECC.vsmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -PssWECC::getPossibleProfilesForClass() const +const std::string& PssWECC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -PssWECC::getPossibleProfilesForAttributes() const +const std::list& PssWECC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemStabilizerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& PssWECC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& PssWECC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& PssWECC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PssWECC_inputSignal1Type(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -586,29 +618,29 @@ const char* PssWECC::debugString() const void PssWECC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:PssWECC", &PssWECC_factory); + factory_map.emplace("PssWECC", &PssWECC_factory); } void PssWECC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:PssWECC.inputSignal1Type", &assign_PssWECC_inputSignal1Type); - assign_map.emplace("cim:PssWECC.inputSignal2Type", &assign_PssWECC_inputSignal2Type); - assign_map.emplace("cim:PssWECC.k1", &assign_PssWECC_k1); - assign_map.emplace("cim:PssWECC.k2", &assign_PssWECC_k2); - assign_map.emplace("cim:PssWECC.t1", &assign_PssWECC_t1); - assign_map.emplace("cim:PssWECC.t10", &assign_PssWECC_t10); - assign_map.emplace("cim:PssWECC.t2", &assign_PssWECC_t2); - assign_map.emplace("cim:PssWECC.t3", &assign_PssWECC_t3); - assign_map.emplace("cim:PssWECC.t4", &assign_PssWECC_t4); - assign_map.emplace("cim:PssWECC.t5", &assign_PssWECC_t5); - assign_map.emplace("cim:PssWECC.t6", &assign_PssWECC_t6); - assign_map.emplace("cim:PssWECC.t7", &assign_PssWECC_t7); - assign_map.emplace("cim:PssWECC.t8", &assign_PssWECC_t8); - assign_map.emplace("cim:PssWECC.t9", &assign_PssWECC_t9); - assign_map.emplace("cim:PssWECC.vcl", &assign_PssWECC_vcl); - assign_map.emplace("cim:PssWECC.vcu", &assign_PssWECC_vcu); - assign_map.emplace("cim:PssWECC.vsmax", &assign_PssWECC_vsmax); - assign_map.emplace("cim:PssWECC.vsmin", &assign_PssWECC_vsmin); + assign_map.emplace("PssWECC.inputSignal1Type", &assign_PssWECC_inputSignal1Type); + assign_map.emplace("PssWECC.inputSignal2Type", &assign_PssWECC_inputSignal2Type); + assign_map.emplace("PssWECC.k1", &assign_PssWECC_k1); + assign_map.emplace("PssWECC.k2", &assign_PssWECC_k2); + assign_map.emplace("PssWECC.t1", &assign_PssWECC_t1); + assign_map.emplace("PssWECC.t10", &assign_PssWECC_t10); + assign_map.emplace("PssWECC.t2", &assign_PssWECC_t2); + assign_map.emplace("PssWECC.t3", &assign_PssWECC_t3); + assign_map.emplace("PssWECC.t4", &assign_PssWECC_t4); + assign_map.emplace("PssWECC.t5", &assign_PssWECC_t5); + assign_map.emplace("PssWECC.t6", &assign_PssWECC_t6); + assign_map.emplace("PssWECC.t7", &assign_PssWECC_t7); + assign_map.emplace("PssWECC.t8", &assign_PssWECC_t8); + assign_map.emplace("PssWECC.t9", &assign_PssWECC_t9); + assign_map.emplace("PssWECC.vcl", &assign_PssWECC_vcl); + assign_map.emplace("PssWECC.vcu", &assign_PssWECC_vcu); + assign_map.emplace("PssWECC.vsmax", &assign_PssWECC_vsmax); + assign_map.emplace("PssWECC.vsmin", &assign_PssWECC_vsmin); } void PssWECC::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -618,22 +650,22 @@ void PssWECC::addClassAssignFnsToMap(std::unordered_map& get_map) const { PowerSystemStabilizerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:PssWECC.k1", &get_PssWECC_k1); - get_map.emplace("cim:PssWECC.k2", &get_PssWECC_k2); - get_map.emplace("cim:PssWECC.t1", &get_PssWECC_t1); - get_map.emplace("cim:PssWECC.t10", &get_PssWECC_t10); - get_map.emplace("cim:PssWECC.t2", &get_PssWECC_t2); - get_map.emplace("cim:PssWECC.t3", &get_PssWECC_t3); - get_map.emplace("cim:PssWECC.t4", &get_PssWECC_t4); - get_map.emplace("cim:PssWECC.t5", &get_PssWECC_t5); - get_map.emplace("cim:PssWECC.t6", &get_PssWECC_t6); - get_map.emplace("cim:PssWECC.t7", &get_PssWECC_t7); - get_map.emplace("cim:PssWECC.t8", &get_PssWECC_t8); - get_map.emplace("cim:PssWECC.t9", &get_PssWECC_t9); - get_map.emplace("cim:PssWECC.vcl", &get_PssWECC_vcl); - get_map.emplace("cim:PssWECC.vcu", &get_PssWECC_vcu); - get_map.emplace("cim:PssWECC.vsmax", &get_PssWECC_vsmax); - get_map.emplace("cim:PssWECC.vsmin", &get_PssWECC_vsmin); + get_map.emplace("PssWECC.k1", &get_PssWECC_k1); + get_map.emplace("PssWECC.k2", &get_PssWECC_k2); + get_map.emplace("PssWECC.t1", &get_PssWECC_t1); + get_map.emplace("PssWECC.t10", &get_PssWECC_t10); + get_map.emplace("PssWECC.t2", &get_PssWECC_t2); + get_map.emplace("PssWECC.t3", &get_PssWECC_t3); + get_map.emplace("PssWECC.t4", &get_PssWECC_t4); + get_map.emplace("PssWECC.t5", &get_PssWECC_t5); + get_map.emplace("PssWECC.t6", &get_PssWECC_t6); + get_map.emplace("PssWECC.t7", &get_PssWECC_t7); + get_map.emplace("PssWECC.t8", &get_PssWECC_t8); + get_map.emplace("PssWECC.t9", &get_PssWECC_t9); + get_map.emplace("PssWECC.vcl", &get_PssWECC_vcl); + get_map.emplace("PssWECC.vcu", &get_PssWECC_vcu); + get_map.emplace("PssWECC.vsmax", &get_PssWECC_vsmax); + get_map.emplace("PssWECC.vsmin", &get_PssWECC_vsmin); } void PssWECC::addClassGetFnsToMap(std::map& get_map) const @@ -644,8 +676,14 @@ void PssWECC::addClassGetFnsToMap(std::map& get void PssWECC::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemStabilizerDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:PssWECC.inputSignal1Type", &get_PssWECC_inputSignal1Type); - get_map.emplace("cim:PssWECC.inputSignal2Type", &get_PssWECC_inputSignal2Type); + get_map.emplace("PssWECC.inputSignal1Type", &get_PssWECC_inputSignal1Type); + get_map.emplace("PssWECC.inputSignal2Type", &get_PssWECC_inputSignal2Type); +} + +bool PssWECC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "PssWECC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner PssWECC::declare() @@ -653,6 +691,14 @@ const BaseClassDefiner PssWECC::declare() return BaseClassDefiner(PssWECC::addConstructToMap, PssWECC::addPrimitiveAssignFnsToMap, PssWECC::addClassAssignFnsToMap, PssWECC::debugName); } +std::map PssWECC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemStabilizerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* PssWECC_factory() diff --git a/CGMES_3.0.0/PssWECC.hpp b/CGMES_3.0.0/PssWECC.hpp index 9faf4e673..e94601c1e 100644 --- a/CGMES_3.0.0/PssWECC.hpp +++ b/CGMES_3.0.0/PssWECC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemStabilizerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "InputSignalKind.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -84,8 +85,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -93,7 +101,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* PssWECC_factory(); diff --git a/CGMES_3.0.0/Quality61850.cpp b/CGMES_3.0.0/Quality61850.cpp index 139b16672..4b9838f32 100644 --- a/CGMES_3.0.0/Quality61850.cpp +++ b/CGMES_3.0.0/Quality61850.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Quality61850(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Quality61850.badReference", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.estimatorReplaced", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.failure", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.oldData", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.operatorBlocked", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.oscillatory", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.outOfRange", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.overFlow", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.source", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.suspect", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.test", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "Quality61850.validity", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + Quality61850::Quality61850() {} Quality61850::~Quality61850() {} -static const std::list PossibleProfilesForClass = +const std::list& Quality61850::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Quality61850::getClassNamespaceUrl() const { - { "cim:Quality61850.badReference", { CGMESProfile::OP, } }, - { "cim:Quality61850.estimatorReplaced", { CGMESProfile::OP, } }, - { "cim:Quality61850.failure", { CGMESProfile::OP, } }, - { "cim:Quality61850.oldData", { CGMESProfile::OP, } }, - { "cim:Quality61850.operatorBlocked", { CGMESProfile::OP, } }, - { "cim:Quality61850.oscillatory", { CGMESProfile::OP, } }, - { "cim:Quality61850.outOfRange", { CGMESProfile::OP, } }, - { "cim:Quality61850.overFlow", { CGMESProfile::OP, } }, - { "cim:Quality61850.source", { CGMESProfile::OP, } }, - { "cim:Quality61850.suspect", { CGMESProfile::OP, } }, - { "cim:Quality61850.test", { CGMESProfile::OP, } }, - { "cim:Quality61850.validity", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Quality61850::getPossibleProfilesForClass() const +const std::string& Quality61850::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Quality61850::getPossibleProfilesForAttributes() const +const std::list& Quality61850::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Quality61850::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Quality61850::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Quality61850::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Quality61850_badReference(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* Quality61850::debugString() const void Quality61850::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Quality61850", &Quality61850_factory); + factory_map.emplace("Quality61850", &Quality61850_factory); } void Quality61850::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Quality61850.badReference", &assign_Quality61850_badReference); - assign_map.emplace("cim:Quality61850.estimatorReplaced", &assign_Quality61850_estimatorReplaced); - assign_map.emplace("cim:Quality61850.failure", &assign_Quality61850_failure); - assign_map.emplace("cim:Quality61850.oldData", &assign_Quality61850_oldData); - assign_map.emplace("cim:Quality61850.operatorBlocked", &assign_Quality61850_operatorBlocked); - assign_map.emplace("cim:Quality61850.oscillatory", &assign_Quality61850_oscillatory); - assign_map.emplace("cim:Quality61850.outOfRange", &assign_Quality61850_outOfRange); - assign_map.emplace("cim:Quality61850.overFlow", &assign_Quality61850_overFlow); - assign_map.emplace("cim:Quality61850.source", &assign_Quality61850_source); - assign_map.emplace("cim:Quality61850.suspect", &assign_Quality61850_suspect); - assign_map.emplace("cim:Quality61850.test", &assign_Quality61850_test); - assign_map.emplace("cim:Quality61850.validity", &assign_Quality61850_validity); + assign_map.emplace("Quality61850.badReference", &assign_Quality61850_badReference); + assign_map.emplace("Quality61850.estimatorReplaced", &assign_Quality61850_estimatorReplaced); + assign_map.emplace("Quality61850.failure", &assign_Quality61850_failure); + assign_map.emplace("Quality61850.oldData", &assign_Quality61850_oldData); + assign_map.emplace("Quality61850.operatorBlocked", &assign_Quality61850_operatorBlocked); + assign_map.emplace("Quality61850.oscillatory", &assign_Quality61850_oscillatory); + assign_map.emplace("Quality61850.outOfRange", &assign_Quality61850_outOfRange); + assign_map.emplace("Quality61850.overFlow", &assign_Quality61850_overFlow); + assign_map.emplace("Quality61850.source", &assign_Quality61850_source); + assign_map.emplace("Quality61850.suspect", &assign_Quality61850_suspect); + assign_map.emplace("Quality61850.test", &assign_Quality61850_test); + assign_map.emplace("Quality61850.validity", &assign_Quality61850_validity); } void Quality61850::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,16 +464,16 @@ void Quality61850::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Quality61850.badReference", &get_Quality61850_badReference); - get_map.emplace("cim:Quality61850.estimatorReplaced", &get_Quality61850_estimatorReplaced); - get_map.emplace("cim:Quality61850.failure", &get_Quality61850_failure); - get_map.emplace("cim:Quality61850.oldData", &get_Quality61850_oldData); - get_map.emplace("cim:Quality61850.operatorBlocked", &get_Quality61850_operatorBlocked); - get_map.emplace("cim:Quality61850.oscillatory", &get_Quality61850_oscillatory); - get_map.emplace("cim:Quality61850.outOfRange", &get_Quality61850_outOfRange); - get_map.emplace("cim:Quality61850.overFlow", &get_Quality61850_overFlow); - get_map.emplace("cim:Quality61850.suspect", &get_Quality61850_suspect); - get_map.emplace("cim:Quality61850.test", &get_Quality61850_test); + get_map.emplace("Quality61850.badReference", &get_Quality61850_badReference); + get_map.emplace("Quality61850.estimatorReplaced", &get_Quality61850_estimatorReplaced); + get_map.emplace("Quality61850.failure", &get_Quality61850_failure); + get_map.emplace("Quality61850.oldData", &get_Quality61850_oldData); + get_map.emplace("Quality61850.operatorBlocked", &get_Quality61850_operatorBlocked); + get_map.emplace("Quality61850.oscillatory", &get_Quality61850_oscillatory); + get_map.emplace("Quality61850.outOfRange", &get_Quality61850_outOfRange); + get_map.emplace("Quality61850.overFlow", &get_Quality61850_overFlow); + get_map.emplace("Quality61850.suspect", &get_Quality61850_suspect); + get_map.emplace("Quality61850.test", &get_Quality61850_test); } void Quality61850::addClassGetFnsToMap(std::map& get_map) const @@ -452,8 +484,14 @@ void Quality61850::addClassGetFnsToMap(std::map void Quality61850::addEnumGetFnsToMap(std::map& get_map) const { BaseClass::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Quality61850.source", &get_Quality61850_source); - get_map.emplace("cim:Quality61850.validity", &get_Quality61850_validity); + get_map.emplace("Quality61850.source", &get_Quality61850_source); + get_map.emplace("Quality61850.validity", &get_Quality61850_validity); +} + +bool Quality61850::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Quality61850" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Quality61850::declare() @@ -461,6 +499,14 @@ const BaseClassDefiner Quality61850::declare() return BaseClassDefiner(Quality61850::addConstructToMap, Quality61850::addPrimitiveAssignFnsToMap, Quality61850::addClassAssignFnsToMap, Quality61850::debugName); } +std::map Quality61850::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Quality61850_factory() diff --git a/CGMES_3.0.0/Quality61850.hpp b/CGMES_3.0.0/Quality61850.hpp index 8d1ca1990..c401f3eb5 100644 --- a/CGMES_3.0.0/Quality61850.hpp +++ b/CGMES_3.0.0/Quality61850.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Source.hpp" #include "Validity.hpp" @@ -66,8 +67,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -75,7 +83,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Quality61850_factory(); diff --git a/CGMES_3.0.0/RaiseLowerCommand.cpp b/CGMES_3.0.0/RaiseLowerCommand.cpp index 6716cd86a..9f0d91abb 100644 --- a/CGMES_3.0.0/RaiseLowerCommand.cpp +++ b/CGMES_3.0.0/RaiseLowerCommand.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RaiseLowerCommand(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RaiseLowerCommand.ValueAliasSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + RaiseLowerCommand::RaiseLowerCommand() : ValueAliasSet(nullptr) {} RaiseLowerCommand::~RaiseLowerCommand() {} -static const std::list PossibleProfilesForClass = +const std::list& RaiseLowerCommand::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RaiseLowerCommand::getClassNamespaceUrl() const { - { "cim:RaiseLowerCommand.ValueAliasSet", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RaiseLowerCommand::getPossibleProfilesForClass() const +const std::string& RaiseLowerCommand::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RaiseLowerCommand::getPossibleProfilesForAttributes() const +const std::list& RaiseLowerCommand::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AnalogControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RaiseLowerCommand::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RaiseLowerCommand::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RaiseLowerCommand::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ValueAliasSet_RaiseLowerCommands(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RaiseLowerCommand::debugString() const void RaiseLowerCommand::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RaiseLowerCommand", &RaiseLowerCommand_factory); + factory_map.emplace("RaiseLowerCommand", &RaiseLowerCommand_factory); } void RaiseLowerCommand::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RaiseLowerCommand::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RaiseLowerCommand.ValueAliasSet", &assign_RaiseLowerCommand_ValueAliasSet); + assign_map.emplace("RaiseLowerCommand.ValueAliasSet", &assign_RaiseLowerCommand_ValueAliasSet); } void RaiseLowerCommand::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RaiseLowerCommand::addPrimitiveGetFnsToMap(std::map& get_map) const { AnalogControl::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RaiseLowerCommand.ValueAliasSet", &get_RaiseLowerCommand_ValueAliasSet); + get_map.emplace("RaiseLowerCommand.ValueAliasSet", &get_RaiseLowerCommand_ValueAliasSet); } void RaiseLowerCommand::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RaiseLowerCommand::addEnumGetFnsToMap(std::map& AnalogControl::addEnumGetFnsToMap(get_map); } +bool RaiseLowerCommand::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RaiseLowerCommand" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RaiseLowerCommand::declare() { return BaseClassDefiner(RaiseLowerCommand::addConstructToMap, RaiseLowerCommand::addPrimitiveAssignFnsToMap, RaiseLowerCommand::addClassAssignFnsToMap, RaiseLowerCommand::debugName); } +std::map RaiseLowerCommand::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AnalogControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RaiseLowerCommand_factory() diff --git a/CGMES_3.0.0/RaiseLowerCommand.hpp b/CGMES_3.0.0/RaiseLowerCommand.hpp index 263360c88..4568fba29 100644 --- a/CGMES_3.0.0/RaiseLowerCommand.hpp +++ b/CGMES_3.0.0/RaiseLowerCommand.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AnalogControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RaiseLowerCommand_factory(); diff --git a/CGMES_3.0.0/RatioTapChanger.cpp b/CGMES_3.0.0/RatioTapChanger.cpp index 612d61daf..263919c93 100644 --- a/CGMES_3.0.0/RatioTapChanger.cpp +++ b/CGMES_3.0.0/RatioTapChanger.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChanger(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChanger.RatioTapChangerTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.TransformerEnd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RatioTapChanger.stepVoltageIncrement", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChanger::RatioTapChanger() : RatioTapChangerTable(nullptr), TransformerEnd(nullptr) {} RatioTapChanger::~RatioTapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChanger::getClassNamespaceUrl() const { - { "cim:RatioTapChanger.RatioTapChangerTable", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.TransformerEnd", { CGMESProfile::EQ, } }, - { "cim:RatioTapChanger.stepVoltageIncrement", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChanger::getPossibleProfilesForClass() const +const std::string& RatioTapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChanger::getPossibleProfilesForAttributes() const +const std::list& RatioTapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChanger::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChangerTable_RatioTapChanger(BaseClass*, BaseClass*); @@ -143,31 +175,31 @@ const char* RatioTapChanger::debugString() const void RatioTapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChanger", &RatioTapChanger_factory); + factory_map.emplace("RatioTapChanger", &RatioTapChanger_factory); } void RatioTapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChanger.stepVoltageIncrement", &assign_RatioTapChanger_stepVoltageIncrement); + assign_map.emplace("RatioTapChanger.stepVoltageIncrement", &assign_RatioTapChanger_stepVoltageIncrement); } void RatioTapChanger::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChanger.RatioTapChangerTable", &assign_RatioTapChanger_RatioTapChangerTable); - assign_map.emplace("cim:RatioTapChanger.TransformerEnd", &assign_RatioTapChanger_TransformerEnd); + assign_map.emplace("RatioTapChanger.RatioTapChangerTable", &assign_RatioTapChanger_RatioTapChangerTable); + assign_map.emplace("RatioTapChanger.TransformerEnd", &assign_RatioTapChanger_TransformerEnd); } void RatioTapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChanger::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.stepVoltageIncrement", &get_RatioTapChanger_stepVoltageIncrement); + get_map.emplace("RatioTapChanger.stepVoltageIncrement", &get_RatioTapChanger_stepVoltageIncrement); } void RatioTapChanger::addClassGetFnsToMap(std::map& get_map) const { TapChanger::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChanger.RatioTapChangerTable", &get_RatioTapChanger_RatioTapChangerTable); - get_map.emplace("cim:RatioTapChanger.TransformerEnd", &get_RatioTapChanger_TransformerEnd); + get_map.emplace("RatioTapChanger.RatioTapChangerTable", &get_RatioTapChanger_RatioTapChangerTable); + get_map.emplace("RatioTapChanger.TransformerEnd", &get_RatioTapChanger_TransformerEnd); } void RatioTapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -175,11 +207,25 @@ void RatioTapChanger::addEnumGetFnsToMap(std::map& ge TapChanger::addEnumGetFnsToMap(get_map); } +bool RatioTapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RatioTapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChanger::declare() { return BaseClassDefiner(RatioTapChanger::addConstructToMap, RatioTapChanger::addPrimitiveAssignFnsToMap, RatioTapChanger::addClassAssignFnsToMap, RatioTapChanger::debugName); } +std::map RatioTapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChanger::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChanger_factory() diff --git a/CGMES_3.0.0/RatioTapChanger.hpp b/CGMES_3.0.0/RatioTapChanger.hpp index a1df82c1f..c47be4d40 100644 --- a/CGMES_3.0.0/RatioTapChanger.hpp +++ b/CGMES_3.0.0/RatioTapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChanger.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PerCent.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChanger_factory(); diff --git a/CGMES_3.0.0/RatioTapChangerTable.cpp b/CGMES_3.0.0/RatioTapChangerTable.cpp index 1c743986f..af2d63f30 100644 --- a/CGMES_3.0.0/RatioTapChangerTable.cpp +++ b/CGMES_3.0.0/RatioTapChangerTable.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChangerTable(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChangerTable.RatioTapChanger", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RatioTapChangerTable.RatioTapChangerTablePoint", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChangerTable::RatioTapChangerTable() {} RatioTapChangerTable::~RatioTapChangerTable() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChangerTable::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChangerTable::getClassNamespaceUrl() const { - { "cim:RatioTapChangerTable.RatioTapChanger", { CGMESProfile::EQ, } }, - { "cim:RatioTapChangerTable.RatioTapChangerTablePoint", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChangerTable::getPossibleProfilesForClass() const +const std::string& RatioTapChangerTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChangerTable::getPossibleProfilesForAttributes() const +const std::list& RatioTapChangerTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChangerTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChangerTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChangerTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChanger_RatioTapChangerTable(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* RatioTapChangerTable::debugString() const void RatioTapChangerTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChangerTable", &RatioTapChangerTable_factory); + factory_map.emplace("RatioTapChangerTable", &RatioTapChangerTable_factory); } void RatioTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void RatioTapChangerTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChangerTable.RatioTapChanger", &assign_RatioTapChangerTable_RatioTapChanger); - assign_map.emplace("cim:RatioTapChangerTable.RatioTapChangerTablePoint", &assign_RatioTapChangerTable_RatioTapChangerTablePoint); + assign_map.emplace("RatioTapChangerTable.RatioTapChanger", &assign_RatioTapChangerTable_RatioTapChanger); + assign_map.emplace("RatioTapChangerTable.RatioTapChangerTablePoint", &assign_RatioTapChangerTable_RatioTapChangerTablePoint); } void RatioTapChangerTable::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void RatioTapChangerTable::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChangerTable::declare() { return BaseClassDefiner(RatioTapChangerTable::addConstructToMap, RatioTapChangerTable::addPrimitiveAssignFnsToMap, RatioTapChangerTable::addClassAssignFnsToMap, RatioTapChangerTable::debugName); } +std::map RatioTapChangerTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChangerTable_factory() diff --git a/CGMES_3.0.0/RatioTapChangerTable.hpp b/CGMES_3.0.0/RatioTapChangerTable.hpp index 8b98ea718..0e3d8d766 100644 --- a/CGMES_3.0.0/RatioTapChangerTable.hpp +++ b/CGMES_3.0.0/RatioTapChangerTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChangerTable_factory(); diff --git a/CGMES_3.0.0/RatioTapChangerTablePoint.cpp b/CGMES_3.0.0/RatioTapChangerTablePoint.cpp index fb837e687..3c3084400 100644 --- a/CGMES_3.0.0/RatioTapChangerTablePoint.cpp +++ b/CGMES_3.0.0/RatioTapChangerTablePoint.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RatioTapChangerTablePoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RatioTapChangerTablePoint.RatioTapChangerTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RatioTapChangerTablePoint::RatioTapChangerTablePoint() : RatioTapChangerTable(nullptr) {} RatioTapChangerTablePoint::~RatioTapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& RatioTapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RatioTapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:RatioTapChangerTablePoint.RatioTapChangerTable", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RatioTapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& RatioTapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RatioTapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& RatioTapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TapChangerTablePoint::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RatioTapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RatioTapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RatioTapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RatioTapChangerTable_RatioTapChangerTablePoint(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RatioTapChangerTablePoint::debugString() const void RatioTapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RatioTapChangerTablePoint", &RatioTapChangerTablePoint_factory); + factory_map.emplace("RatioTapChangerTablePoint", &RatioTapChangerTablePoint_factory); } void RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RatioTapChangerTablePoint.RatioTapChangerTable", &assign_RatioTapChangerTablePoint_RatioTapChangerTable); + assign_map.emplace("RatioTapChangerTablePoint.RatioTapChangerTable", &assign_RatioTapChangerTablePoint_RatioTapChangerTable); } void RatioTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RatioTapChangerTablePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { TapChangerTablePoint::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RatioTapChangerTablePoint.RatioTapChangerTable", &get_RatioTapChangerTablePoint_RatioTapChangerTable); + get_map.emplace("RatioTapChangerTablePoint.RatioTapChangerTable", &get_RatioTapChangerTablePoint_RatioTapChangerTable); } void RatioTapChangerTablePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RatioTapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RatioTapChangerTablePoint::declare() { return BaseClassDefiner(RatioTapChangerTablePoint::addConstructToMap, RatioTapChangerTablePoint::addPrimitiveAssignFnsToMap, RatioTapChangerTablePoint::addClassAssignFnsToMap, RatioTapChangerTablePoint::debugName); } +std::map RatioTapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TapChangerTablePoint::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RatioTapChangerTablePoint_factory() diff --git a/CGMES_3.0.0/RatioTapChangerTablePoint.hpp b/CGMES_3.0.0/RatioTapChangerTablePoint.hpp index 5718acb68..9fb06e56b 100644 --- a/CGMES_3.0.0/RatioTapChangerTablePoint.hpp +++ b/CGMES_3.0.0/RatioTapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TapChangerTablePoint.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RatioTapChangerTablePoint_factory(); diff --git a/CGMES_3.0.0/ReactiveCapabilityCurve.cpp b/CGMES_3.0.0/ReactiveCapabilityCurve.cpp index 5d3fe1f54..0f9c784cd 100644 --- a/CGMES_3.0.0/ReactiveCapabilityCurve.cpp +++ b/CGMES_3.0.0/ReactiveCapabilityCurve.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ReactiveCapabilityCurve(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ReactiveCapabilityCurve.EquivalentInjection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ReactiveCapabilityCurve::ReactiveCapabilityCurve() {} ReactiveCapabilityCurve::~ReactiveCapabilityCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& ReactiveCapabilityCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ReactiveCapabilityCurve::getClassNamespaceUrl() const { - { "cim:ReactiveCapabilityCurve.EquivalentInjection", { CGMESProfile::EQ, } }, - { "cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ReactiveCapabilityCurve::getPossibleProfilesForClass() const +const std::string& ReactiveCapabilityCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ReactiveCapabilityCurve::getPossibleProfilesForAttributes() const +const std::list& ReactiveCapabilityCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ReactiveCapabilityCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ReactiveCapabilityCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ReactiveCapabilityCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_EquivalentInjection_ReactiveCapabilityCurve(BaseClass*, BaseClass*); @@ -86,7 +118,7 @@ const char* ReactiveCapabilityCurve::debugString() const void ReactiveCapabilityCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ReactiveCapabilityCurve", &ReactiveCapabilityCurve_factory); + factory_map.emplace("ReactiveCapabilityCurve", &ReactiveCapabilityCurve_factory); } void ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -95,8 +127,8 @@ void ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ReactiveCapabilityCurve.EquivalentInjection", &assign_ReactiveCapabilityCurve_EquivalentInjection); - assign_map.emplace("cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", &assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines); + assign_map.emplace("ReactiveCapabilityCurve.EquivalentInjection", &assign_ReactiveCapabilityCurve_EquivalentInjection); + assign_map.emplace("ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", &assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines); } void ReactiveCapabilityCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -114,11 +146,25 @@ void ReactiveCapabilityCurve::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ReactiveCapabilityCurve::declare() { return BaseClassDefiner(ReactiveCapabilityCurve::addConstructToMap, ReactiveCapabilityCurve::addPrimitiveAssignFnsToMap, ReactiveCapabilityCurve::addClassAssignFnsToMap, ReactiveCapabilityCurve::debugName); } +std::map ReactiveCapabilityCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ReactiveCapabilityCurve_factory() diff --git a/CGMES_3.0.0/ReactiveCapabilityCurve.hpp b/CGMES_3.0.0/ReactiveCapabilityCurve.hpp index 6ee75dccc..588c31bc2 100644 --- a/CGMES_3.0.0/ReactiveCapabilityCurve.hpp +++ b/CGMES_3.0.0/ReactiveCapabilityCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ReactiveCapabilityCurve_factory(); diff --git a/CGMES_3.0.0/RegularIntervalSchedule.cpp b/CGMES_3.0.0/RegularIntervalSchedule.cpp index 604197cd4..f92cb6ece 100644 --- a/CGMES_3.0.0/RegularIntervalSchedule.cpp +++ b/CGMES_3.0.0/RegularIntervalSchedule.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegularIntervalSchedule(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegularIntervalSchedule.TimePoints", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegularIntervalSchedule.endTime", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegularIntervalSchedule.timeStep", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegularIntervalSchedule::RegularIntervalSchedule() {} RegularIntervalSchedule::~RegularIntervalSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& RegularIntervalSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegularIntervalSchedule::getClassNamespaceUrl() const { - { "cim:RegularIntervalSchedule.TimePoints", { CGMESProfile::EQ, } }, - { "cim:RegularIntervalSchedule.endTime", { CGMESProfile::EQ, } }, - { "cim:RegularIntervalSchedule.timeStep", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegularIntervalSchedule::getPossibleProfilesForClass() const +const std::string& RegularIntervalSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegularIntervalSchedule::getPossibleProfilesForAttributes() const +const std::list& RegularIntervalSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BasicIntervalSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegularIntervalSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegularIntervalSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegularIntervalSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegularTimePoint_IntervalSchedule(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* RegularIntervalSchedule::debugString() const void RegularIntervalSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegularIntervalSchedule", &RegularIntervalSchedule_factory); + factory_map.emplace("RegularIntervalSchedule", &RegularIntervalSchedule_factory); } void RegularIntervalSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularIntervalSchedule.endTime", &assign_RegularIntervalSchedule_endTime); - assign_map.emplace("cim:RegularIntervalSchedule.timeStep", &assign_RegularIntervalSchedule_timeStep); + assign_map.emplace("RegularIntervalSchedule.endTime", &assign_RegularIntervalSchedule_endTime); + assign_map.emplace("RegularIntervalSchedule.timeStep", &assign_RegularIntervalSchedule_timeStep); } void RegularIntervalSchedule::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularIntervalSchedule.TimePoints", &assign_RegularIntervalSchedule_TimePoints); + assign_map.emplace("RegularIntervalSchedule.TimePoints", &assign_RegularIntervalSchedule_TimePoints); } void RegularIntervalSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { BasicIntervalSchedule::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegularIntervalSchedule.endTime", &get_RegularIntervalSchedule_endTime); - get_map.emplace("cim:RegularIntervalSchedule.timeStep", &get_RegularIntervalSchedule_timeStep); + get_map.emplace("RegularIntervalSchedule.endTime", &get_RegularIntervalSchedule_endTime); + get_map.emplace("RegularIntervalSchedule.timeStep", &get_RegularIntervalSchedule_timeStep); } void RegularIntervalSchedule::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void RegularIntervalSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RegularIntervalSchedule::declare() { return BaseClassDefiner(RegularIntervalSchedule::addConstructToMap, RegularIntervalSchedule::addPrimitiveAssignFnsToMap, RegularIntervalSchedule::addClassAssignFnsToMap, RegularIntervalSchedule::debugName); } +std::map RegularIntervalSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BasicIntervalSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegularIntervalSchedule_factory() diff --git a/CGMES_3.0.0/RegularIntervalSchedule.hpp b/CGMES_3.0.0/RegularIntervalSchedule.hpp index f3d3ef64b..00e5390aa 100644 --- a/CGMES_3.0.0/RegularIntervalSchedule.hpp +++ b/CGMES_3.0.0/RegularIntervalSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BasicIntervalSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "Seconds.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegularIntervalSchedule_factory(); diff --git a/CGMES_3.0.0/RegularTimePoint.cpp b/CGMES_3.0.0/RegularTimePoint.cpp index 5903ad467..208efe4bc 100644 --- a/CGMES_3.0.0/RegularTimePoint.cpp +++ b/CGMES_3.0.0/RegularTimePoint.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegularTimePoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegularTimePoint.IntervalSchedule", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.sequenceNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.value1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegularTimePoint.value2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegularTimePoint::RegularTimePoint() : IntervalSchedule(nullptr) {} RegularTimePoint::~RegularTimePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& RegularTimePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegularTimePoint::getClassNamespaceUrl() const { - { "cim:RegularTimePoint.IntervalSchedule", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.sequenceNumber", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.value1", { CGMESProfile::EQ, } }, - { "cim:RegularTimePoint.value2", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegularTimePoint::getPossibleProfilesForClass() const +const std::string& RegularTimePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegularTimePoint::getPossibleProfilesForAttributes() const +const std::list& RegularTimePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegularTimePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegularTimePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegularTimePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegularIntervalSchedule_TimePoints(BaseClass*, BaseClass*); @@ -169,33 +201,33 @@ const char* RegularTimePoint::debugString() const void RegularTimePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegularTimePoint", &RegularTimePoint_factory); + factory_map.emplace("RegularTimePoint", &RegularTimePoint_factory); } void RegularTimePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularTimePoint.sequenceNumber", &assign_RegularTimePoint_sequenceNumber); - assign_map.emplace("cim:RegularTimePoint.value1", &assign_RegularTimePoint_value1); - assign_map.emplace("cim:RegularTimePoint.value2", &assign_RegularTimePoint_value2); + assign_map.emplace("RegularTimePoint.sequenceNumber", &assign_RegularTimePoint_sequenceNumber); + assign_map.emplace("RegularTimePoint.value1", &assign_RegularTimePoint_value1); + assign_map.emplace("RegularTimePoint.value2", &assign_RegularTimePoint_value2); } void RegularTimePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegularTimePoint.IntervalSchedule", &assign_RegularTimePoint_IntervalSchedule); + assign_map.emplace("RegularTimePoint.IntervalSchedule", &assign_RegularTimePoint_IntervalSchedule); } void RegularTimePoint::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegularTimePoint.sequenceNumber", &get_RegularTimePoint_sequenceNumber); - get_map.emplace("cim:RegularTimePoint.value1", &get_RegularTimePoint_value1); - get_map.emplace("cim:RegularTimePoint.value2", &get_RegularTimePoint_value2); + get_map.emplace("RegularTimePoint.sequenceNumber", &get_RegularTimePoint_sequenceNumber); + get_map.emplace("RegularTimePoint.value1", &get_RegularTimePoint_value1); + get_map.emplace("RegularTimePoint.value2", &get_RegularTimePoint_value2); } void RegularTimePoint::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegularTimePoint.IntervalSchedule", &get_RegularTimePoint_IntervalSchedule); + get_map.emplace("RegularTimePoint.IntervalSchedule", &get_RegularTimePoint_IntervalSchedule); } void RegularTimePoint::addEnumGetFnsToMap(std::map& get_map) const @@ -203,11 +235,25 @@ void RegularTimePoint::addEnumGetFnsToMap(std::map& g BaseClass::addEnumGetFnsToMap(get_map); } +bool RegularTimePoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegularTimePoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegularTimePoint::declare() { return BaseClassDefiner(RegularTimePoint::addConstructToMap, RegularTimePoint::addPrimitiveAssignFnsToMap, RegularTimePoint::addClassAssignFnsToMap, RegularTimePoint::debugName); } +std::map RegularTimePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegularTimePoint_factory() diff --git a/CGMES_3.0.0/RegularTimePoint.hpp b/CGMES_3.0.0/RegularTimePoint.hpp index e4b126f5c..5559db7bb 100644 --- a/CGMES_3.0.0/RegularTimePoint.hpp +++ b/CGMES_3.0.0/RegularTimePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "Integer.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegularTimePoint_factory(); diff --git a/CGMES_3.0.0/RegulatingCondEq.cpp b/CGMES_3.0.0/RegulatingCondEq.cpp index fceacea10..466416b2e 100644 --- a/CGMES_3.0.0/RegulatingCondEq.cpp +++ b/CGMES_3.0.0/RegulatingCondEq.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulatingCondEq(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulatingCondEq.RegulatingControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegulatingCondEq.controlEnabled", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + RegulatingCondEq::RegulatingCondEq() : RegulatingControl(nullptr) {} RegulatingCondEq::~RegulatingCondEq() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulatingCondEq::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulatingCondEq::getClassNamespaceUrl() const { - { "cim:RegulatingCondEq.RegulatingControl", { CGMESProfile::EQ, } }, - { "cim:RegulatingCondEq.controlEnabled", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulatingCondEq::getPossibleProfilesForClass() const +const std::string& RegulatingCondEq::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulatingCondEq::getPossibleProfilesForAttributes() const +const std::list& RegulatingCondEq::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConnection::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulatingCondEq::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulatingCondEq::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulatingCondEq::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingControl_RegulatingCondEq(BaseClass*, BaseClass*); @@ -112,29 +144,29 @@ const char* RegulatingCondEq::debugString() const void RegulatingCondEq::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulatingCondEq", &RegulatingCondEq_factory); + factory_map.emplace("RegulatingCondEq", &RegulatingCondEq_factory); } void RegulatingCondEq::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingCondEq.controlEnabled", &assign_RegulatingCondEq_controlEnabled); + assign_map.emplace("RegulatingCondEq.controlEnabled", &assign_RegulatingCondEq_controlEnabled); } void RegulatingCondEq::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingCondEq.RegulatingControl", &assign_RegulatingCondEq_RegulatingControl); + assign_map.emplace("RegulatingCondEq.RegulatingControl", &assign_RegulatingCondEq_RegulatingControl); } void RegulatingCondEq::addPrimitiveGetFnsToMap(std::map& get_map) const { EnergyConnection::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingCondEq.controlEnabled", &get_RegulatingCondEq_controlEnabled); + get_map.emplace("RegulatingCondEq.controlEnabled", &get_RegulatingCondEq_controlEnabled); } void RegulatingCondEq::addClassGetFnsToMap(std::map& get_map) const { EnergyConnection::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingCondEq.RegulatingControl", &get_RegulatingCondEq_RegulatingControl); + get_map.emplace("RegulatingCondEq.RegulatingControl", &get_RegulatingCondEq_RegulatingControl); } void RegulatingCondEq::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void RegulatingCondEq::addEnumGetFnsToMap(std::map& g EnergyConnection::addEnumGetFnsToMap(get_map); } +bool RegulatingCondEq::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulatingCondEq" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegulatingCondEq::declare() { return BaseClassDefiner(RegulatingCondEq::addConstructToMap, RegulatingCondEq::addPrimitiveAssignFnsToMap, RegulatingCondEq::addClassAssignFnsToMap, RegulatingCondEq::debugName); } +std::map RegulatingCondEq::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConnection::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulatingCondEq_factory() diff --git a/CGMES_3.0.0/RegulatingCondEq.hpp b/CGMES_3.0.0/RegulatingCondEq.hpp index 8eafcbd8e..33987e2a9 100644 --- a/CGMES_3.0.0/RegulatingCondEq.hpp +++ b/CGMES_3.0.0/RegulatingCondEq.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConnection.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulatingCondEq_factory(); diff --git a/CGMES_3.0.0/RegulatingControl.cpp b/CGMES_3.0.0/RegulatingControl.cpp index 68fd360fa..9c087b953 100644 --- a/CGMES_3.0.0/RegulatingControl.cpp +++ b/CGMES_3.0.0/RegulatingControl.cpp @@ -14,43 +14,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulatingControl(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulatingControl.RegulatingCondEq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.RegulationSchedule", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.discrete", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.enabled", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.maxAllowedTargetValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.minAllowedTargetValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.mode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RegulatingControl.targetDeadband", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.targetValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "RegulatingControl.targetValueUnitMultiplier", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + RegulatingControl::RegulatingControl() : Terminal(nullptr) {} RegulatingControl::~RegulatingControl() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulatingControl::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulatingControl::getClassNamespaceUrl() const { - { "cim:RegulatingControl.RegulatingCondEq", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.RegulationSchedule", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.Terminal", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.discrete", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.enabled", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.maxAllowedTargetValue", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.minAllowedTargetValue", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.mode", { CGMESProfile::EQ, } }, - { "cim:RegulatingControl.targetDeadband", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.targetValue", { CGMESProfile::SSH, } }, - { "cim:RegulatingControl.targetValueUnitMultiplier", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulatingControl::getPossibleProfilesForClass() const +const std::string& RegulatingControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulatingControl::getPossibleProfilesForAttributes() const +const std::list& RegulatingControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulatingControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulatingControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulatingControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingCondEq_RegulatingControl(BaseClass*, BaseClass*); @@ -360,50 +392,56 @@ const char* RegulatingControl::debugString() const void RegulatingControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulatingControl", &RegulatingControl_factory); + factory_map.emplace("RegulatingControl", &RegulatingControl_factory); } void RegulatingControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingControl.discrete", &assign_RegulatingControl_discrete); - assign_map.emplace("cim:RegulatingControl.enabled", &assign_RegulatingControl_enabled); - assign_map.emplace("cim:RegulatingControl.maxAllowedTargetValue", &assign_RegulatingControl_maxAllowedTargetValue); - assign_map.emplace("cim:RegulatingControl.minAllowedTargetValue", &assign_RegulatingControl_minAllowedTargetValue); - assign_map.emplace("cim:RegulatingControl.mode", &assign_RegulatingControl_mode); - assign_map.emplace("cim:RegulatingControl.targetDeadband", &assign_RegulatingControl_targetDeadband); - assign_map.emplace("cim:RegulatingControl.targetValue", &assign_RegulatingControl_targetValue); - assign_map.emplace("cim:RegulatingControl.targetValueUnitMultiplier", &assign_RegulatingControl_targetValueUnitMultiplier); + assign_map.emplace("RegulatingControl.discrete", &assign_RegulatingControl_discrete); + assign_map.emplace("RegulatingControl.enabled", &assign_RegulatingControl_enabled); + assign_map.emplace("RegulatingControl.maxAllowedTargetValue", &assign_RegulatingControl_maxAllowedTargetValue); + assign_map.emplace("RegulatingControl.minAllowedTargetValue", &assign_RegulatingControl_minAllowedTargetValue); + assign_map.emplace("RegulatingControl.mode", &assign_RegulatingControl_mode); + assign_map.emplace("RegulatingControl.targetDeadband", &assign_RegulatingControl_targetDeadband); + assign_map.emplace("RegulatingControl.targetValue", &assign_RegulatingControl_targetValue); + assign_map.emplace("RegulatingControl.targetValueUnitMultiplier", &assign_RegulatingControl_targetValueUnitMultiplier); } void RegulatingControl::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulatingControl.RegulatingCondEq", &assign_RegulatingControl_RegulatingCondEq); - assign_map.emplace("cim:RegulatingControl.RegulationSchedule", &assign_RegulatingControl_RegulationSchedule); - assign_map.emplace("cim:RegulatingControl.Terminal", &assign_RegulatingControl_Terminal); + assign_map.emplace("RegulatingControl.RegulatingCondEq", &assign_RegulatingControl_RegulatingCondEq); + assign_map.emplace("RegulatingControl.RegulationSchedule", &assign_RegulatingControl_RegulationSchedule); + assign_map.emplace("RegulatingControl.Terminal", &assign_RegulatingControl_Terminal); } void RegulatingControl::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.discrete", &get_RegulatingControl_discrete); - get_map.emplace("cim:RegulatingControl.enabled", &get_RegulatingControl_enabled); - get_map.emplace("cim:RegulatingControl.maxAllowedTargetValue", &get_RegulatingControl_maxAllowedTargetValue); - get_map.emplace("cim:RegulatingControl.minAllowedTargetValue", &get_RegulatingControl_minAllowedTargetValue); - get_map.emplace("cim:RegulatingControl.targetDeadband", &get_RegulatingControl_targetDeadband); - get_map.emplace("cim:RegulatingControl.targetValue", &get_RegulatingControl_targetValue); + get_map.emplace("RegulatingControl.discrete", &get_RegulatingControl_discrete); + get_map.emplace("RegulatingControl.enabled", &get_RegulatingControl_enabled); + get_map.emplace("RegulatingControl.maxAllowedTargetValue", &get_RegulatingControl_maxAllowedTargetValue); + get_map.emplace("RegulatingControl.minAllowedTargetValue", &get_RegulatingControl_minAllowedTargetValue); + get_map.emplace("RegulatingControl.targetDeadband", &get_RegulatingControl_targetDeadband); + get_map.emplace("RegulatingControl.targetValue", &get_RegulatingControl_targetValue); } void RegulatingControl::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.Terminal", &get_RegulatingControl_Terminal); + get_map.emplace("RegulatingControl.Terminal", &get_RegulatingControl_Terminal); } void RegulatingControl::addEnumGetFnsToMap(std::map& get_map) const { PowerSystemResource::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RegulatingControl.mode", &get_RegulatingControl_mode); - get_map.emplace("cim:RegulatingControl.targetValueUnitMultiplier", &get_RegulatingControl_targetValueUnitMultiplier); + get_map.emplace("RegulatingControl.mode", &get_RegulatingControl_mode); + get_map.emplace("RegulatingControl.targetValueUnitMultiplier", &get_RegulatingControl_targetValueUnitMultiplier); +} + +bool RegulatingControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulatingControl" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RegulatingControl::declare() @@ -411,6 +449,14 @@ const BaseClassDefiner RegulatingControl::declare() return BaseClassDefiner(RegulatingControl::addConstructToMap, RegulatingControl::addPrimitiveAssignFnsToMap, RegulatingControl::addClassAssignFnsToMap, RegulatingControl::debugName); } +std::map RegulatingControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulatingControl_factory() diff --git a/CGMES_3.0.0/RegulatingControl.hpp b/CGMES_3.0.0/RegulatingControl.hpp index 5c324bf7f..fd52150a3 100644 --- a/CGMES_3.0.0/RegulatingControl.hpp +++ b/CGMES_3.0.0/RegulatingControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "RegulatingControlModeKind.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulatingControl_factory(); diff --git a/CGMES_3.0.0/RegulationSchedule.cpp b/CGMES_3.0.0/RegulationSchedule.cpp index 8750abb1a..3cfa472ee 100644 --- a/CGMES_3.0.0/RegulationSchedule.cpp +++ b/CGMES_3.0.0/RegulationSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RegulationSchedule(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RegulationSchedule.RegulatingControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RegulationSchedule::RegulationSchedule() : RegulatingControl(nullptr) {} RegulationSchedule::~RegulationSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& RegulationSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RegulationSchedule::getClassNamespaceUrl() const { - { "cim:RegulationSchedule.RegulatingControl", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RegulationSchedule::getPossibleProfilesForClass() const +const std::string& RegulationSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RegulationSchedule::getPossibleProfilesForAttributes() const +const std::list& RegulationSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RegulationSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RegulationSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RegulationSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RegulatingControl_RegulationSchedule(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* RegulationSchedule::debugString() const void RegulationSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RegulationSchedule", &RegulationSchedule_factory); + factory_map.emplace("RegulationSchedule", &RegulationSchedule_factory); } void RegulationSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void RegulationSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RegulationSchedule.RegulatingControl", &assign_RegulationSchedule_RegulatingControl); + assign_map.emplace("RegulationSchedule.RegulatingControl", &assign_RegulationSchedule_RegulatingControl); } void RegulationSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void RegulationSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RegulationSchedule.RegulatingControl", &get_RegulationSchedule_RegulatingControl); + get_map.emplace("RegulationSchedule.RegulatingControl", &get_RegulationSchedule_RegulatingControl); } void RegulationSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void RegulationSchedule::addEnumGetFnsToMap(std::map& SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool RegulationSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RegulationSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RegulationSchedule::declare() { return BaseClassDefiner(RegulationSchedule::addConstructToMap, RegulationSchedule::addPrimitiveAssignFnsToMap, RegulationSchedule::addClassAssignFnsToMap, RegulationSchedule::debugName); } +std::map RegulationSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RegulationSchedule_factory() diff --git a/CGMES_3.0.0/RegulationSchedule.hpp b/CGMES_3.0.0/RegulationSchedule.hpp index b6c06cd57..11a106fd5 100644 --- a/CGMES_3.0.0/RegulationSchedule.hpp +++ b/CGMES_3.0.0/RegulationSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RegulationSchedule_factory(); diff --git a/CGMES_3.0.0/RemoteInputSignal.cpp b/CGMES_3.0.0/RemoteInputSignal.cpp index f187b941e..c909b1014 100644 --- a/CGMES_3.0.0/RemoteInputSignal.cpp +++ b/CGMES_3.0.0/RemoteInputSignal.cpp @@ -20,41 +20,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RemoteInputSignal(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RemoteInputSignal.DiscontinuousExcitationControlDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.PowerSystemStabilizerDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.UnderexcitationLimiterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.VoltageCompensatorDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindPlantDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindTurbineType1or2Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RemoteInputSignal.remoteSignalType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + RemoteInputSignal::RemoteInputSignal() : DiscontinuousExcitationControlDynamics(nullptr), PFVArControllerType1Dynamics(nullptr), PowerSystemStabilizerDynamics(nullptr), Terminal(nullptr), UnderexcitationLimiterDynamics(nullptr), VoltageCompensatorDynamics(nullptr), WindPlantDynamics(nullptr), WindTurbineType1or2Dynamics(nullptr), WindTurbineType3or4Dynamics(nullptr) {} RemoteInputSignal::~RemoteInputSignal() {} -static const std::list PossibleProfilesForClass = +const std::list& RemoteInputSignal::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RemoteInputSignal::getClassNamespaceUrl() const { - { "cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.PowerSystemStabilizerDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.Terminal", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.UnderexcitationLimiterDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.VoltageCompensatorDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindPlantDynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindTurbineType1or2Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, - { "cim:RemoteInputSignal.remoteSignalType", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RemoteInputSignal::getPossibleProfilesForClass() const +const std::string& RemoteInputSignal::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RemoteInputSignal::getPossibleProfilesForAttributes() const +const std::list& RemoteInputSignal::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RemoteInputSignal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RemoteInputSignal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RemoteInputSignal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiscontinuousExcitationControlDynamics_RemoteInputSignal(BaseClass*, BaseClass*); @@ -334,25 +366,25 @@ const char* RemoteInputSignal::debugString() const void RemoteInputSignal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RemoteInputSignal", &RemoteInputSignal_factory); + factory_map.emplace("RemoteInputSignal", &RemoteInputSignal_factory); } void RemoteInputSignal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RemoteInputSignal.remoteSignalType", &assign_RemoteInputSignal_remoteSignalType); + assign_map.emplace("RemoteInputSignal.remoteSignalType", &assign_RemoteInputSignal_remoteSignalType); } void RemoteInputSignal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", &assign_RemoteInputSignal_DiscontinuousExcitationControlDynamics); - assign_map.emplace("cim:RemoteInputSignal.PFVArControllerType1Dynamics", &assign_RemoteInputSignal_PFVArControllerType1Dynamics); - assign_map.emplace("cim:RemoteInputSignal.PowerSystemStabilizerDynamics", &assign_RemoteInputSignal_PowerSystemStabilizerDynamics); - assign_map.emplace("cim:RemoteInputSignal.Terminal", &assign_RemoteInputSignal_Terminal); - assign_map.emplace("cim:RemoteInputSignal.UnderexcitationLimiterDynamics", &assign_RemoteInputSignal_UnderexcitationLimiterDynamics); - assign_map.emplace("cim:RemoteInputSignal.VoltageCompensatorDynamics", &assign_RemoteInputSignal_VoltageCompensatorDynamics); - assign_map.emplace("cim:RemoteInputSignal.WindPlantDynamics", &assign_RemoteInputSignal_WindPlantDynamics); - assign_map.emplace("cim:RemoteInputSignal.WindTurbineType1or2Dynamics", &assign_RemoteInputSignal_WindTurbineType1or2Dynamics); - assign_map.emplace("cim:RemoteInputSignal.WindTurbineType3or4Dynamics", &assign_RemoteInputSignal_WindTurbineType3or4Dynamics); + assign_map.emplace("RemoteInputSignal.DiscontinuousExcitationControlDynamics", &assign_RemoteInputSignal_DiscontinuousExcitationControlDynamics); + assign_map.emplace("RemoteInputSignal.PFVArControllerType1Dynamics", &assign_RemoteInputSignal_PFVArControllerType1Dynamics); + assign_map.emplace("RemoteInputSignal.PowerSystemStabilizerDynamics", &assign_RemoteInputSignal_PowerSystemStabilizerDynamics); + assign_map.emplace("RemoteInputSignal.Terminal", &assign_RemoteInputSignal_Terminal); + assign_map.emplace("RemoteInputSignal.UnderexcitationLimiterDynamics", &assign_RemoteInputSignal_UnderexcitationLimiterDynamics); + assign_map.emplace("RemoteInputSignal.VoltageCompensatorDynamics", &assign_RemoteInputSignal_VoltageCompensatorDynamics); + assign_map.emplace("RemoteInputSignal.WindPlantDynamics", &assign_RemoteInputSignal_WindPlantDynamics); + assign_map.emplace("RemoteInputSignal.WindTurbineType1or2Dynamics", &assign_RemoteInputSignal_WindTurbineType1or2Dynamics); + assign_map.emplace("RemoteInputSignal.WindTurbineType3or4Dynamics", &assign_RemoteInputSignal_WindTurbineType3or4Dynamics); } void RemoteInputSignal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -363,18 +395,24 @@ void RemoteInputSignal::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RemoteInputSignal.DiscontinuousExcitationControlDynamics", &get_RemoteInputSignal_DiscontinuousExcitationControlDynamics); - get_map.emplace("cim:RemoteInputSignal.PFVArControllerType1Dynamics", &get_RemoteInputSignal_PFVArControllerType1Dynamics); - get_map.emplace("cim:RemoteInputSignal.PowerSystemStabilizerDynamics", &get_RemoteInputSignal_PowerSystemStabilizerDynamics); - get_map.emplace("cim:RemoteInputSignal.Terminal", &get_RemoteInputSignal_Terminal); - get_map.emplace("cim:RemoteInputSignal.UnderexcitationLimiterDynamics", &get_RemoteInputSignal_UnderexcitationLimiterDynamics); - get_map.emplace("cim:RemoteInputSignal.VoltageCompensatorDynamics", &get_RemoteInputSignal_VoltageCompensatorDynamics); + get_map.emplace("RemoteInputSignal.DiscontinuousExcitationControlDynamics", &get_RemoteInputSignal_DiscontinuousExcitationControlDynamics); + get_map.emplace("RemoteInputSignal.PFVArControllerType1Dynamics", &get_RemoteInputSignal_PFVArControllerType1Dynamics); + get_map.emplace("RemoteInputSignal.PowerSystemStabilizerDynamics", &get_RemoteInputSignal_PowerSystemStabilizerDynamics); + get_map.emplace("RemoteInputSignal.Terminal", &get_RemoteInputSignal_Terminal); + get_map.emplace("RemoteInputSignal.UnderexcitationLimiterDynamics", &get_RemoteInputSignal_UnderexcitationLimiterDynamics); + get_map.emplace("RemoteInputSignal.VoltageCompensatorDynamics", &get_RemoteInputSignal_VoltageCompensatorDynamics); } void RemoteInputSignal::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:RemoteInputSignal.remoteSignalType", &get_RemoteInputSignal_remoteSignalType); + get_map.emplace("RemoteInputSignal.remoteSignalType", &get_RemoteInputSignal_remoteSignalType); +} + +bool RemoteInputSignal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RemoteInputSignal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner RemoteInputSignal::declare() @@ -382,6 +420,14 @@ const BaseClassDefiner RemoteInputSignal::declare() return BaseClassDefiner(RemoteInputSignal::addConstructToMap, RemoteInputSignal::addPrimitiveAssignFnsToMap, RemoteInputSignal::addClassAssignFnsToMap, RemoteInputSignal::debugName); } +std::map RemoteInputSignal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RemoteInputSignal_factory() diff --git a/CGMES_3.0.0/RemoteInputSignal.hpp b/CGMES_3.0.0/RemoteInputSignal.hpp index b9acbcd98..c94acae1d 100644 --- a/CGMES_3.0.0/RemoteInputSignal.hpp +++ b/CGMES_3.0.0/RemoteInputSignal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "RemoteSignalKind.hpp" namespace CIMPP @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RemoteInputSignal_factory(); diff --git a/CGMES_3.0.0/ReportingGroup.cpp b/CGMES_3.0.0/ReportingGroup.cpp index 5a8463cce..044e392b7 100644 --- a/CGMES_3.0.0/ReportingGroup.cpp +++ b/CGMES_3.0.0/ReportingGroup.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ReportingGroup(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ReportingGroup.BusNameMarker", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ReportingGroup.TopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + }; + return ClassAttrDetailsMap; +} + ReportingGroup::ReportingGroup() {} ReportingGroup::~ReportingGroup() {} -static const std::list PossibleProfilesForClass = +const std::list& ReportingGroup::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ReportingGroup::getClassNamespaceUrl() const { - { "cim:ReportingGroup.BusNameMarker", { CGMESProfile::EQ, } }, - { "cim:ReportingGroup.TopologicalNode", { CGMESProfile::TP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ReportingGroup::getPossibleProfilesForClass() const +const std::string& ReportingGroup::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ReportingGroup::getPossibleProfilesForAttributes() const +const std::list& ReportingGroup::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ReportingGroup::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ReportingGroup::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ReportingGroup::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BusNameMarker_ReportingGroup(BaseClass*, BaseClass*); @@ -87,7 +119,7 @@ const char* ReportingGroup::debugString() const void ReportingGroup::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ReportingGroup", &ReportingGroup_factory); + factory_map.emplace("ReportingGroup", &ReportingGroup_factory); } void ReportingGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -96,8 +128,8 @@ void ReportingGroup::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ReportingGroup.BusNameMarker", &assign_ReportingGroup_BusNameMarker); - assign_map.emplace("cim:ReportingGroup.TopologicalNode", &assign_ReportingGroup_TopologicalNode); + assign_map.emplace("ReportingGroup.BusNameMarker", &assign_ReportingGroup_BusNameMarker); + assign_map.emplace("ReportingGroup.TopologicalNode", &assign_ReportingGroup_TopologicalNode); } void ReportingGroup::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -115,11 +147,25 @@ void ReportingGroup::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ReportingGroup::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ReportingGroup" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ReportingGroup::declare() { return BaseClassDefiner(ReportingGroup::addConstructToMap, ReportingGroup::addPrimitiveAssignFnsToMap, ReportingGroup::addClassAssignFnsToMap, ReportingGroup::debugName); } +std::map ReportingGroup::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ReportingGroup_factory() diff --git a/CGMES_3.0.0/ReportingGroup.hpp b/CGMES_3.0.0/ReportingGroup.hpp index 4bd9583a2..cccf9fa1d 100644 --- a/CGMES_3.0.0/ReportingGroup.hpp +++ b/CGMES_3.0.0/ReportingGroup.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ReportingGroup_factory(); diff --git a/CGMES_3.0.0/RotatingMachine.cpp b/CGMES_3.0.0/RotatingMachine.cpp index 099ddc33e..6dea5e4b1 100644 --- a/CGMES_3.0.0/RotatingMachine.cpp +++ b/CGMES_3.0.0/RotatingMachine.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RotatingMachine(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RotatingMachine.GeneratingUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.HydroPump", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.p", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "RotatingMachine.q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "RotatingMachine.ratedPowerFactor", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.ratedS", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "RotatingMachine.ratedU", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + RotatingMachine::RotatingMachine() : GeneratingUnit(nullptr), HydroPump(nullptr) {} RotatingMachine::~RotatingMachine() {} -static const std::list PossibleProfilesForClass = +const std::list& RotatingMachine::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RotatingMachine::getClassNamespaceUrl() const { - { "cim:RotatingMachine.GeneratingUnit", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.HydroPump", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.p", { CGMESProfile::SSH, } }, - { "cim:RotatingMachine.q", { CGMESProfile::SSH, } }, - { "cim:RotatingMachine.ratedPowerFactor", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.ratedS", { CGMESProfile::EQ, } }, - { "cim:RotatingMachine.ratedU", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RotatingMachine::getPossibleProfilesForClass() const +const std::string& RotatingMachine::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RotatingMachine::getPossibleProfilesForAttributes() const +const std::list& RotatingMachine::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RotatingMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RotatingMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RotatingMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GeneratingUnit_RotatingMachine(BaseClass*, BaseClass*); @@ -252,38 +284,38 @@ const char* RotatingMachine::debugString() const void RotatingMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RotatingMachine", &RotatingMachine_factory); + factory_map.emplace("RotatingMachine", &RotatingMachine_factory); } void RotatingMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachine.p", &assign_RotatingMachine_p); - assign_map.emplace("cim:RotatingMachine.q", &assign_RotatingMachine_q); - assign_map.emplace("cim:RotatingMachine.ratedPowerFactor", &assign_RotatingMachine_ratedPowerFactor); - assign_map.emplace("cim:RotatingMachine.ratedS", &assign_RotatingMachine_ratedS); - assign_map.emplace("cim:RotatingMachine.ratedU", &assign_RotatingMachine_ratedU); + assign_map.emplace("RotatingMachine.p", &assign_RotatingMachine_p); + assign_map.emplace("RotatingMachine.q", &assign_RotatingMachine_q); + assign_map.emplace("RotatingMachine.ratedPowerFactor", &assign_RotatingMachine_ratedPowerFactor); + assign_map.emplace("RotatingMachine.ratedS", &assign_RotatingMachine_ratedS); + assign_map.emplace("RotatingMachine.ratedU", &assign_RotatingMachine_ratedU); } void RotatingMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachine.GeneratingUnit", &assign_RotatingMachine_GeneratingUnit); - assign_map.emplace("cim:RotatingMachine.HydroPump", &assign_RotatingMachine_HydroPump); + assign_map.emplace("RotatingMachine.GeneratingUnit", &assign_RotatingMachine_GeneratingUnit); + assign_map.emplace("RotatingMachine.HydroPump", &assign_RotatingMachine_HydroPump); } void RotatingMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachine.p", &get_RotatingMachine_p); - get_map.emplace("cim:RotatingMachine.q", &get_RotatingMachine_q); - get_map.emplace("cim:RotatingMachine.ratedPowerFactor", &get_RotatingMachine_ratedPowerFactor); - get_map.emplace("cim:RotatingMachine.ratedS", &get_RotatingMachine_ratedS); - get_map.emplace("cim:RotatingMachine.ratedU", &get_RotatingMachine_ratedU); + get_map.emplace("RotatingMachine.p", &get_RotatingMachine_p); + get_map.emplace("RotatingMachine.q", &get_RotatingMachine_q); + get_map.emplace("RotatingMachine.ratedPowerFactor", &get_RotatingMachine_ratedPowerFactor); + get_map.emplace("RotatingMachine.ratedS", &get_RotatingMachine_ratedS); + get_map.emplace("RotatingMachine.ratedU", &get_RotatingMachine_ratedU); } void RotatingMachine::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addClassGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachine.GeneratingUnit", &get_RotatingMachine_GeneratingUnit); + get_map.emplace("RotatingMachine.GeneratingUnit", &get_RotatingMachine_GeneratingUnit); } void RotatingMachine::addEnumGetFnsToMap(std::map& get_map) const @@ -291,11 +323,25 @@ void RotatingMachine::addEnumGetFnsToMap(std::map& ge RegulatingCondEq::addEnumGetFnsToMap(get_map); } +bool RotatingMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "RotatingMachine" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner RotatingMachine::declare() { return BaseClassDefiner(RotatingMachine::addConstructToMap, RotatingMachine::addPrimitiveAssignFnsToMap, RotatingMachine::addClassAssignFnsToMap, RotatingMachine::debugName); } +std::map RotatingMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RotatingMachine_factory() diff --git a/CGMES_3.0.0/RotatingMachine.hpp b/CGMES_3.0.0/RotatingMachine.hpp index 80d8688d4..0cd48bbaf 100644 --- a/CGMES_3.0.0/RotatingMachine.hpp +++ b/CGMES_3.0.0/RotatingMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ApparentPower.hpp" #include "Float.hpp" @@ -55,8 +56,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -64,7 +72,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RotatingMachine_factory(); diff --git a/CGMES_3.0.0/RotatingMachineDynamics.cpp b/CGMES_3.0.0/RotatingMachineDynamics.cpp index 57dd9d608..6c5b53000 100644 --- a/CGMES_3.0.0/RotatingMachineDynamics.cpp +++ b/CGMES_3.0.0/RotatingMachineDynamics.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + RotatingMachineDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "RotatingMachineDynamics.damping", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.inertia", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.saturationFactor", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.saturationFactor120", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.statorLeakageReactance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "RotatingMachineDynamics.statorResistance", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + RotatingMachineDynamics::RotatingMachineDynamics() {} RotatingMachineDynamics::~RotatingMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& RotatingMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& RotatingMachineDynamics::getClassNamespaceUrl() const { - { "cim:RotatingMachineDynamics.damping", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.inertia", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.saturationFactor", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.saturationFactor120", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.statorLeakageReactance", { CGMESProfile::DY, } }, - { "cim:RotatingMachineDynamics.statorResistance", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -RotatingMachineDynamics::getPossibleProfilesForClass() const +const std::string& RotatingMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -RotatingMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& RotatingMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& RotatingMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& RotatingMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& RotatingMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RotatingMachineDynamics_damping(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* RotatingMachineDynamics::debugString() const void RotatingMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:RotatingMachineDynamics", &RotatingMachineDynamics_factory); + factory_map.emplace("RotatingMachineDynamics", &RotatingMachineDynamics_factory); } void RotatingMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:RotatingMachineDynamics.damping", &assign_RotatingMachineDynamics_damping); - assign_map.emplace("cim:RotatingMachineDynamics.inertia", &assign_RotatingMachineDynamics_inertia); - assign_map.emplace("cim:RotatingMachineDynamics.saturationFactor", &assign_RotatingMachineDynamics_saturationFactor); - assign_map.emplace("cim:RotatingMachineDynamics.saturationFactor120", &assign_RotatingMachineDynamics_saturationFactor120); - assign_map.emplace("cim:RotatingMachineDynamics.statorLeakageReactance", &assign_RotatingMachineDynamics_statorLeakageReactance); - assign_map.emplace("cim:RotatingMachineDynamics.statorResistance", &assign_RotatingMachineDynamics_statorResistance); + assign_map.emplace("RotatingMachineDynamics.damping", &assign_RotatingMachineDynamics_damping); + assign_map.emplace("RotatingMachineDynamics.inertia", &assign_RotatingMachineDynamics_inertia); + assign_map.emplace("RotatingMachineDynamics.saturationFactor", &assign_RotatingMachineDynamics_saturationFactor); + assign_map.emplace("RotatingMachineDynamics.saturationFactor120", &assign_RotatingMachineDynamics_saturationFactor120); + assign_map.emplace("RotatingMachineDynamics.statorLeakageReactance", &assign_RotatingMachineDynamics_statorLeakageReactance); + assign_map.emplace("RotatingMachineDynamics.statorResistance", &assign_RotatingMachineDynamics_statorResistance); } void RotatingMachineDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void RotatingMachineDynamics::addClassAssignFnsToMap(std::unordered_map& get_map) const { DynamicsFunctionBlock::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:RotatingMachineDynamics.damping", &get_RotatingMachineDynamics_damping); - get_map.emplace("cim:RotatingMachineDynamics.inertia", &get_RotatingMachineDynamics_inertia); - get_map.emplace("cim:RotatingMachineDynamics.saturationFactor", &get_RotatingMachineDynamics_saturationFactor); - get_map.emplace("cim:RotatingMachineDynamics.saturationFactor120", &get_RotatingMachineDynamics_saturationFactor120); - get_map.emplace("cim:RotatingMachineDynamics.statorLeakageReactance", &get_RotatingMachineDynamics_statorLeakageReactance); - get_map.emplace("cim:RotatingMachineDynamics.statorResistance", &get_RotatingMachineDynamics_statorResistance); + get_map.emplace("RotatingMachineDynamics.damping", &get_RotatingMachineDynamics_damping); + get_map.emplace("RotatingMachineDynamics.inertia", &get_RotatingMachineDynamics_inertia); + get_map.emplace("RotatingMachineDynamics.saturationFactor", &get_RotatingMachineDynamics_saturationFactor); + get_map.emplace("RotatingMachineDynamics.saturationFactor120", &get_RotatingMachineDynamics_saturationFactor120); + get_map.emplace("RotatingMachineDynamics.statorLeakageReactance", &get_RotatingMachineDynamics_statorLeakageReactance); + get_map.emplace("RotatingMachineDynamics.statorResistance", &get_RotatingMachineDynamics_statorResistance); } void RotatingMachineDynamics::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void RotatingMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner RotatingMachineDynamics::declare() { return BaseClassDefiner(RotatingMachineDynamics::addConstructToMap, RotatingMachineDynamics::addPrimitiveAssignFnsToMap, RotatingMachineDynamics::addClassAssignFnsToMap, RotatingMachineDynamics::debugName); } +std::map RotatingMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* RotatingMachineDynamics_factory() diff --git a/CGMES_3.0.0/RotatingMachineDynamics.hpp b/CGMES_3.0.0/RotatingMachineDynamics.hpp index d78eb6d95..d8829e2c1 100644 --- a/CGMES_3.0.0/RotatingMachineDynamics.hpp +++ b/CGMES_3.0.0/RotatingMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* RotatingMachineDynamics_factory(); diff --git a/CGMES_3.0.0/SVCUserDefined.cpp b/CGMES_3.0.0/SVCUserDefined.cpp index 099246085..a1458d59c 100644 --- a/CGMES_3.0.0/SVCUserDefined.cpp +++ b/CGMES_3.0.0/SVCUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SVCUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SVCUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SVCUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SVCUserDefined::SVCUserDefined() {} SVCUserDefined::~SVCUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& SVCUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SVCUserDefined::getClassNamespaceUrl() const { - { "cim:SVCUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:SVCUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SVCUserDefined::getPossibleProfilesForClass() const +const std::string& SVCUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SVCUserDefined::getPossibleProfilesForAttributes() const +const std::list& SVCUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = StaticVarCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SVCUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SVCUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SVCUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_SVCUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* SVCUserDefined::debugString() const void SVCUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SVCUserDefined", &SVCUserDefined_factory); + factory_map.emplace("SVCUserDefined", &SVCUserDefined_factory); } void SVCUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SVCUserDefined.proprietary", &assign_SVCUserDefined_proprietary); + assign_map.emplace("SVCUserDefined.proprietary", &assign_SVCUserDefined_proprietary); } void SVCUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SVCUserDefined.ProprietaryParameterDynamics", &assign_SVCUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("SVCUserDefined.ProprietaryParameterDynamics", &assign_SVCUserDefined_ProprietaryParameterDynamics); } void SVCUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { StaticVarCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SVCUserDefined.proprietary", &get_SVCUserDefined_proprietary); + get_map.emplace("SVCUserDefined.proprietary", &get_SVCUserDefined_proprietary); } void SVCUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void SVCUserDefined::addEnumGetFnsToMap(std::map& get StaticVarCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool SVCUserDefined::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SVCUserDefined" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SVCUserDefined::declare() { return BaseClassDefiner(SVCUserDefined::addConstructToMap, SVCUserDefined::addPrimitiveAssignFnsToMap, SVCUserDefined::addClassAssignFnsToMap, SVCUserDefined::debugName); } +std::map SVCUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = StaticVarCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SVCUserDefined_factory() diff --git a/CGMES_3.0.0/SVCUserDefined.hpp b/CGMES_3.0.0/SVCUserDefined.hpp index 581304e97..4ea20f4d1 100644 --- a/CGMES_3.0.0/SVCUserDefined.hpp +++ b/CGMES_3.0.0/SVCUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "StaticVarCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SVCUserDefined_factory(); diff --git a/CGMES_3.0.0/Season.cpp b/CGMES_3.0.0/Season.cpp index bd79ad860..997f7e17a 100644 --- a/CGMES_3.0.0/Season.cpp +++ b/CGMES_3.0.0/Season.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Season(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Season.SeasonDayTypeSchedules", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Season.endDate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Season.startDate", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Season::Season() {} Season::~Season() {} -static const std::list PossibleProfilesForClass = +const std::list& Season::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Season::getClassNamespaceUrl() const { - { "cim:Season.SeasonDayTypeSchedules", { CGMESProfile::EQ, } }, - { "cim:Season.endDate", { CGMESProfile::EQ, } }, - { "cim:Season.startDate", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Season::getPossibleProfilesForClass() const +const std::string& Season::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Season::getPossibleProfilesForAttributes() const +const std::list& Season::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Season::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Season::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Season::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeasonDayTypeSchedule_Season(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* Season::debugString() const void Season::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Season", &Season_factory); + factory_map.emplace("Season", &Season_factory); } void Season::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Season.endDate", &assign_Season_endDate); - assign_map.emplace("cim:Season.startDate", &assign_Season_startDate); + assign_map.emplace("Season.endDate", &assign_Season_endDate); + assign_map.emplace("Season.startDate", &assign_Season_startDate); } void Season::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Season.SeasonDayTypeSchedules", &assign_Season_SeasonDayTypeSchedules); + assign_map.emplace("Season.SeasonDayTypeSchedules", &assign_Season_SeasonDayTypeSchedules); } void Season::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Season.endDate", &get_Season_endDate); - get_map.emplace("cim:Season.startDate", &get_Season_startDate); + get_map.emplace("Season.endDate", &get_Season_endDate); + get_map.emplace("Season.startDate", &get_Season_startDate); } void Season::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void Season::addEnumGetFnsToMap(std::map& get_map) co IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool Season::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Season" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Season::declare() { return BaseClassDefiner(Season::addConstructToMap, Season::addPrimitiveAssignFnsToMap, Season::addClassAssignFnsToMap, Season::debugName); } +std::map Season::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Season_factory() diff --git a/CGMES_3.0.0/Season.hpp b/CGMES_3.0.0/Season.hpp index a7a5ad137..d7f1418ea 100644 --- a/CGMES_3.0.0/Season.hpp +++ b/CGMES_3.0.0/Season.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "MonthDay.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Season_factory(); diff --git a/CGMES_3.0.0/SeasonDayTypeSchedule.cpp b/CGMES_3.0.0/SeasonDayTypeSchedule.cpp index dcc36cca0..7640e011e 100644 --- a/CGMES_3.0.0/SeasonDayTypeSchedule.cpp +++ b/CGMES_3.0.0/SeasonDayTypeSchedule.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SeasonDayTypeSchedule(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SeasonDayTypeSchedule.DayType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SeasonDayTypeSchedule.Season", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SeasonDayTypeSchedule::SeasonDayTypeSchedule() : DayType(nullptr), Season(nullptr) {} SeasonDayTypeSchedule::~SeasonDayTypeSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& SeasonDayTypeSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SeasonDayTypeSchedule::getClassNamespaceUrl() const { - { "cim:SeasonDayTypeSchedule.DayType", { CGMESProfile::EQ, } }, - { "cim:SeasonDayTypeSchedule.Season", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SeasonDayTypeSchedule::getPossibleProfilesForClass() const +const std::string& SeasonDayTypeSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SeasonDayTypeSchedule::getPossibleProfilesForAttributes() const +const std::list& SeasonDayTypeSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegularIntervalSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SeasonDayTypeSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SeasonDayTypeSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SeasonDayTypeSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DayType_SeasonDayTypeSchedules(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* SeasonDayTypeSchedule::debugString() const void SeasonDayTypeSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SeasonDayTypeSchedule", &SeasonDayTypeSchedule_factory); + factory_map.emplace("SeasonDayTypeSchedule", &SeasonDayTypeSchedule_factory); } void SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SeasonDayTypeSchedule.DayType", &assign_SeasonDayTypeSchedule_DayType); - assign_map.emplace("cim:SeasonDayTypeSchedule.Season", &assign_SeasonDayTypeSchedule_Season); + assign_map.emplace("SeasonDayTypeSchedule.DayType", &assign_SeasonDayTypeSchedule_DayType); + assign_map.emplace("SeasonDayTypeSchedule.Season", &assign_SeasonDayTypeSchedule_Season); } void SeasonDayTypeSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void SeasonDayTypeSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const { RegularIntervalSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SeasonDayTypeSchedule.DayType", &get_SeasonDayTypeSchedule_DayType); - get_map.emplace("cim:SeasonDayTypeSchedule.Season", &get_SeasonDayTypeSchedule_Season); + get_map.emplace("SeasonDayTypeSchedule.DayType", &get_SeasonDayTypeSchedule_DayType); + get_map.emplace("SeasonDayTypeSchedule.Season", &get_SeasonDayTypeSchedule_Season); } void SeasonDayTypeSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void SeasonDayTypeSchedule::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SeasonDayTypeSchedule::declare() { return BaseClassDefiner(SeasonDayTypeSchedule::addConstructToMap, SeasonDayTypeSchedule::addPrimitiveAssignFnsToMap, SeasonDayTypeSchedule::addClassAssignFnsToMap, SeasonDayTypeSchedule::debugName); } +std::map SeasonDayTypeSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegularIntervalSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SeasonDayTypeSchedule_factory() diff --git a/CGMES_3.0.0/SeasonDayTypeSchedule.hpp b/CGMES_3.0.0/SeasonDayTypeSchedule.hpp index 4b29b20d4..f8b0db518 100644 --- a/CGMES_3.0.0/SeasonDayTypeSchedule.hpp +++ b/CGMES_3.0.0/SeasonDayTypeSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegularIntervalSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SeasonDayTypeSchedule_factory(); diff --git a/CGMES_3.0.0/Sensor.cpp b/CGMES_3.0.0/Sensor.cpp index c9d6e6233..016087f2f 100644 --- a/CGMES_3.0.0/Sensor.cpp +++ b/CGMES_3.0.0/Sensor.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Sensor(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + Sensor::Sensor() {} Sensor::~Sensor() {} -static const std::list PossibleProfilesForClass = +const std::list& Sensor::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Sensor::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Sensor::getPossibleProfilesForClass() const +const std::string& Sensor::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Sensor::getPossibleProfilesForAttributes() const +const std::list& Sensor::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AuxiliaryEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Sensor::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Sensor::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Sensor::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char Sensor::debugName[] = "Sensor"; @@ -46,7 +78,7 @@ const char* Sensor::debugString() const void Sensor::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Sensor", &Sensor_factory); + factory_map.emplace("Sensor", &Sensor_factory); } void Sensor::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void Sensor::addEnumGetFnsToMap(std::map& get_map) co AuxiliaryEquipment::addEnumGetFnsToMap(get_map); } +bool Sensor::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Sensor" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Sensor::declare() { return BaseClassDefiner(Sensor::addConstructToMap, Sensor::addPrimitiveAssignFnsToMap, Sensor::addClassAssignFnsToMap, Sensor::debugName); } +std::map Sensor::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AuxiliaryEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Sensor_factory() diff --git a/CGMES_3.0.0/Sensor.hpp b/CGMES_3.0.0/Sensor.hpp index 5f4130be0..eb1085c9c 100644 --- a/CGMES_3.0.0/Sensor.hpp +++ b/CGMES_3.0.0/Sensor.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AuxiliaryEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Sensor_factory(); diff --git a/CGMES_3.0.0/SeriesCompensator.cpp b/CGMES_3.0.0/SeriesCompensator.cpp index 3471d840d..4d09e9ca6 100644 --- a/CGMES_3.0.0/SeriesCompensator.cpp +++ b/CGMES_3.0.0/SeriesCompensator.cpp @@ -11,39 +11,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SeriesCompensator(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SeriesCompensator.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.r0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SeriesCompensator.varistorPresent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SeriesCompensator.varistorRatedCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SeriesCompensator.varistorVoltageThreshold", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SeriesCompensator.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SeriesCompensator.x0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + SeriesCompensator::SeriesCompensator() {} SeriesCompensator::~SeriesCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& SeriesCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SeriesCompensator::getClassNamespaceUrl() const { - { "cim:SeriesCompensator.r", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.r0", { CGMESProfile::SC, } }, - { "cim:SeriesCompensator.varistorPresent", { CGMESProfile::SC, } }, - { "cim:SeriesCompensator.varistorRatedCurrent", { CGMESProfile::SC, } }, - { "cim:SeriesCompensator.varistorVoltageThreshold", { CGMESProfile::SC, } }, - { "cim:SeriesCompensator.x", { CGMESProfile::EQ, } }, - { "cim:SeriesCompensator.x0", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SeriesCompensator::getPossibleProfilesForClass() const +const std::string& SeriesCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SeriesCompensator::getPossibleProfilesForAttributes() const +const std::list& SeriesCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SeriesCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SeriesCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SeriesCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SeriesCompensator_r(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -257,18 +289,18 @@ const char* SeriesCompensator::debugString() const void SeriesCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SeriesCompensator", &SeriesCompensator_factory); + factory_map.emplace("SeriesCompensator", &SeriesCompensator_factory); } void SeriesCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SeriesCompensator.r", &assign_SeriesCompensator_r); - assign_map.emplace("cim:SeriesCompensator.r0", &assign_SeriesCompensator_r0); - assign_map.emplace("cim:SeriesCompensator.varistorPresent", &assign_SeriesCompensator_varistorPresent); - assign_map.emplace("cim:SeriesCompensator.varistorRatedCurrent", &assign_SeriesCompensator_varistorRatedCurrent); - assign_map.emplace("cim:SeriesCompensator.varistorVoltageThreshold", &assign_SeriesCompensator_varistorVoltageThreshold); - assign_map.emplace("cim:SeriesCompensator.x", &assign_SeriesCompensator_x); - assign_map.emplace("cim:SeriesCompensator.x0", &assign_SeriesCompensator_x0); + assign_map.emplace("SeriesCompensator.r", &assign_SeriesCompensator_r); + assign_map.emplace("SeriesCompensator.r0", &assign_SeriesCompensator_r0); + assign_map.emplace("SeriesCompensator.varistorPresent", &assign_SeriesCompensator_varistorPresent); + assign_map.emplace("SeriesCompensator.varistorRatedCurrent", &assign_SeriesCompensator_varistorRatedCurrent); + assign_map.emplace("SeriesCompensator.varistorVoltageThreshold", &assign_SeriesCompensator_varistorVoltageThreshold); + assign_map.emplace("SeriesCompensator.x", &assign_SeriesCompensator_x); + assign_map.emplace("SeriesCompensator.x0", &assign_SeriesCompensator_x0); } void SeriesCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -278,13 +310,13 @@ void SeriesCompensator::addClassAssignFnsToMap(std::unordered_map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SeriesCompensator.r", &get_SeriesCompensator_r); - get_map.emplace("cim:SeriesCompensator.r0", &get_SeriesCompensator_r0); - get_map.emplace("cim:SeriesCompensator.varistorPresent", &get_SeriesCompensator_varistorPresent); - get_map.emplace("cim:SeriesCompensator.varistorRatedCurrent", &get_SeriesCompensator_varistorRatedCurrent); - get_map.emplace("cim:SeriesCompensator.varistorVoltageThreshold", &get_SeriesCompensator_varistorVoltageThreshold); - get_map.emplace("cim:SeriesCompensator.x", &get_SeriesCompensator_x); - get_map.emplace("cim:SeriesCompensator.x0", &get_SeriesCompensator_x0); + get_map.emplace("SeriesCompensator.r", &get_SeriesCompensator_r); + get_map.emplace("SeriesCompensator.r0", &get_SeriesCompensator_r0); + get_map.emplace("SeriesCompensator.varistorPresent", &get_SeriesCompensator_varistorPresent); + get_map.emplace("SeriesCompensator.varistorRatedCurrent", &get_SeriesCompensator_varistorRatedCurrent); + get_map.emplace("SeriesCompensator.varistorVoltageThreshold", &get_SeriesCompensator_varistorVoltageThreshold); + get_map.emplace("SeriesCompensator.x", &get_SeriesCompensator_x); + get_map.emplace("SeriesCompensator.x0", &get_SeriesCompensator_x0); } void SeriesCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -297,11 +329,25 @@ void SeriesCompensator::addEnumGetFnsToMap(std::map& ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool SeriesCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SeriesCompensator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SeriesCompensator::declare() { return BaseClassDefiner(SeriesCompensator::addConstructToMap, SeriesCompensator::addPrimitiveAssignFnsToMap, SeriesCompensator::addClassAssignFnsToMap, SeriesCompensator::debugName); } +std::map SeriesCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SeriesCompensator_factory() diff --git a/CGMES_3.0.0/SeriesCompensator.hpp b/CGMES_3.0.0/SeriesCompensator.hpp index 3b19cda77..a3a90fbd3 100644 --- a/CGMES_3.0.0/SeriesCompensator.hpp +++ b/CGMES_3.0.0/SeriesCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" #include "Reactance.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SeriesCompensator_factory(); diff --git a/CGMES_3.0.0/ServiceLocation.cpp b/CGMES_3.0.0/ServiceLocation.cpp index c98138b85..09cbbfd37 100644 --- a/CGMES_3.0.0/ServiceLocation.cpp +++ b/CGMES_3.0.0/ServiceLocation.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ServiceLocation(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + ServiceLocation::ServiceLocation() {} ServiceLocation::~ServiceLocation() {} -static const std::list PossibleProfilesForClass = +const std::list& ServiceLocation::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ServiceLocation::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ServiceLocation::getPossibleProfilesForClass() const +const std::string& ServiceLocation::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ServiceLocation::getPossibleProfilesForAttributes() const +const std::list& ServiceLocation::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WorkLocation::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ServiceLocation::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ServiceLocation::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ServiceLocation::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char ServiceLocation::debugName[] = "ServiceLocation"; @@ -46,7 +78,7 @@ const char* ServiceLocation::debugString() const void ServiceLocation::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ServiceLocation", &ServiceLocation_factory); + factory_map.emplace("ServiceLocation", &ServiceLocation_factory); } void ServiceLocation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void ServiceLocation::addEnumGetFnsToMap(std::map& ge WorkLocation::addEnumGetFnsToMap(get_map); } +bool ServiceLocation::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ServiceLocation" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ServiceLocation::declare() { return BaseClassDefiner(ServiceLocation::addConstructToMap, ServiceLocation::addPrimitiveAssignFnsToMap, ServiceLocation::addClassAssignFnsToMap, ServiceLocation::debugName); } +std::map ServiceLocation::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WorkLocation::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ServiceLocation_factory() diff --git a/CGMES_3.0.0/ServiceLocation.hpp b/CGMES_3.0.0/ServiceLocation.hpp index d5653525b..e59a45bd0 100644 --- a/CGMES_3.0.0/ServiceLocation.hpp +++ b/CGMES_3.0.0/ServiceLocation.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WorkLocation.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ServiceLocation_factory(); diff --git a/CGMES_3.0.0/SetPoint.cpp b/CGMES_3.0.0/SetPoint.cpp index 06768b963..8aeace709 100644 --- a/CGMES_3.0.0/SetPoint.cpp +++ b/CGMES_3.0.0/SetPoint.cpp @@ -11,33 +11,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SetPoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SetPoint.normalValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "SetPoint.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + SetPoint::SetPoint() {} SetPoint::~SetPoint() {} -static const std::list PossibleProfilesForClass = +const std::list& SetPoint::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SetPoint::getClassNamespaceUrl() const { - { "cim:SetPoint.normalValue", { CGMESProfile::OP, } }, - { "cim:SetPoint.value", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SetPoint::getPossibleProfilesForClass() const +const std::string& SetPoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SetPoint::getPossibleProfilesForAttributes() const +const std::list& SetPoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AnalogControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SetPoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SetPoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SetPoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SetPoint_normalValue(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -106,13 +138,13 @@ const char* SetPoint::debugString() const void SetPoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SetPoint", &SetPoint_factory); + factory_map.emplace("SetPoint", &SetPoint_factory); } void SetPoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SetPoint.normalValue", &assign_SetPoint_normalValue); - assign_map.emplace("cim:SetPoint.value", &assign_SetPoint_value); + assign_map.emplace("SetPoint.normalValue", &assign_SetPoint_normalValue); + assign_map.emplace("SetPoint.value", &assign_SetPoint_value); } void SetPoint::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -122,8 +154,8 @@ void SetPoint::addClassAssignFnsToMap(std::unordered_map& get_map) const { AnalogControl::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SetPoint.normalValue", &get_SetPoint_normalValue); - get_map.emplace("cim:SetPoint.value", &get_SetPoint_value); + get_map.emplace("SetPoint.normalValue", &get_SetPoint_normalValue); + get_map.emplace("SetPoint.value", &get_SetPoint_value); } void SetPoint::addClassGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void SetPoint::addEnumGetFnsToMap(std::map& get_map) AnalogControl::addEnumGetFnsToMap(get_map); } +bool SetPoint::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SetPoint" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SetPoint::declare() { return BaseClassDefiner(SetPoint::addConstructToMap, SetPoint::addPrimitiveAssignFnsToMap, SetPoint::addClassAssignFnsToMap, SetPoint::debugName); } +std::map SetPoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AnalogControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SetPoint_factory() diff --git a/CGMES_3.0.0/SetPoint.hpp b/CGMES_3.0.0/SetPoint.hpp index 075542151..27f748ca5 100644 --- a/CGMES_3.0.0/SetPoint.hpp +++ b/CGMES_3.0.0/SetPoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AnalogControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SetPoint_factory(); diff --git a/CGMES_3.0.0/ShuntCompensator.cpp b/CGMES_3.0.0/ShuntCompensator.cpp index d95dba4e5..73916c95c 100644 --- a/CGMES_3.0.0/ShuntCompensator.cpp +++ b/CGMES_3.0.0/ShuntCompensator.cpp @@ -12,42 +12,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ShuntCompensator(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + CGMESProfile::SV, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ShuntCompensator.SvShuntCompensatorSections", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "ShuntCompensator.aVRDelay", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.grounded", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.maximumSections", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.nomU", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.normalSections", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ShuntCompensator.sections", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "ShuntCompensator.voltageSensitivity", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ShuntCompensator::ShuntCompensator() : SvShuntCompensatorSections(nullptr) {} ShuntCompensator::~ShuntCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& ShuntCompensator::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ShuntCompensator::getClassNamespaceUrl() const { - { "cim:ShuntCompensator.SvShuntCompensatorSections", { CGMESProfile::SV, } }, - { "cim:ShuntCompensator.aVRDelay", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.grounded", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.maximumSections", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.nomU", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.normalSections", { CGMESProfile::EQ, } }, - { "cim:ShuntCompensator.sections", { CGMESProfile::SSH, } }, - { "cim:ShuntCompensator.voltageSensitivity", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ShuntCompensator::getPossibleProfilesForClass() const +const std::string& ShuntCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ShuntCompensator::getPossibleProfilesForAttributes() const +const std::list& ShuntCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ShuntCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ShuntCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ShuntCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvShuntCompensatorSections_ShuntCompensator(BaseClass*, BaseClass*); @@ -279,35 +311,35 @@ const char* ShuntCompensator::debugString() const void ShuntCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ShuntCompensator", &ShuntCompensator_factory); + factory_map.emplace("ShuntCompensator", &ShuntCompensator_factory); } void ShuntCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ShuntCompensator.aVRDelay", &assign_ShuntCompensator_aVRDelay); - assign_map.emplace("cim:ShuntCompensator.grounded", &assign_ShuntCompensator_grounded); - assign_map.emplace("cim:ShuntCompensator.maximumSections", &assign_ShuntCompensator_maximumSections); - assign_map.emplace("cim:ShuntCompensator.nomU", &assign_ShuntCompensator_nomU); - assign_map.emplace("cim:ShuntCompensator.normalSections", &assign_ShuntCompensator_normalSections); - assign_map.emplace("cim:ShuntCompensator.sections", &assign_ShuntCompensator_sections); - assign_map.emplace("cim:ShuntCompensator.voltageSensitivity", &assign_ShuntCompensator_voltageSensitivity); + assign_map.emplace("ShuntCompensator.aVRDelay", &assign_ShuntCompensator_aVRDelay); + assign_map.emplace("ShuntCompensator.grounded", &assign_ShuntCompensator_grounded); + assign_map.emplace("ShuntCompensator.maximumSections", &assign_ShuntCompensator_maximumSections); + assign_map.emplace("ShuntCompensator.nomU", &assign_ShuntCompensator_nomU); + assign_map.emplace("ShuntCompensator.normalSections", &assign_ShuntCompensator_normalSections); + assign_map.emplace("ShuntCompensator.sections", &assign_ShuntCompensator_sections); + assign_map.emplace("ShuntCompensator.voltageSensitivity", &assign_ShuntCompensator_voltageSensitivity); } void ShuntCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ShuntCompensator.SvShuntCompensatorSections", &assign_ShuntCompensator_SvShuntCompensatorSections); + assign_map.emplace("ShuntCompensator.SvShuntCompensatorSections", &assign_ShuntCompensator_SvShuntCompensatorSections); } void ShuntCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ShuntCompensator.aVRDelay", &get_ShuntCompensator_aVRDelay); - get_map.emplace("cim:ShuntCompensator.grounded", &get_ShuntCompensator_grounded); - get_map.emplace("cim:ShuntCompensator.maximumSections", &get_ShuntCompensator_maximumSections); - get_map.emplace("cim:ShuntCompensator.nomU", &get_ShuntCompensator_nomU); - get_map.emplace("cim:ShuntCompensator.normalSections", &get_ShuntCompensator_normalSections); - get_map.emplace("cim:ShuntCompensator.sections", &get_ShuntCompensator_sections); - get_map.emplace("cim:ShuntCompensator.voltageSensitivity", &get_ShuntCompensator_voltageSensitivity); + get_map.emplace("ShuntCompensator.aVRDelay", &get_ShuntCompensator_aVRDelay); + get_map.emplace("ShuntCompensator.grounded", &get_ShuntCompensator_grounded); + get_map.emplace("ShuntCompensator.maximumSections", &get_ShuntCompensator_maximumSections); + get_map.emplace("ShuntCompensator.nomU", &get_ShuntCompensator_nomU); + get_map.emplace("ShuntCompensator.normalSections", &get_ShuntCompensator_normalSections); + get_map.emplace("ShuntCompensator.sections", &get_ShuntCompensator_sections); + get_map.emplace("ShuntCompensator.voltageSensitivity", &get_ShuntCompensator_voltageSensitivity); } void ShuntCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -320,11 +352,25 @@ void ShuntCompensator::addEnumGetFnsToMap(std::map& g RegulatingCondEq::addEnumGetFnsToMap(get_map); } +bool ShuntCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ShuntCompensator" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ShuntCompensator::declare() { return BaseClassDefiner(ShuntCompensator::addConstructToMap, ShuntCompensator::addPrimitiveAssignFnsToMap, ShuntCompensator::addClassAssignFnsToMap, ShuntCompensator::debugName); } +std::map ShuntCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ShuntCompensator_factory() diff --git a/CGMES_3.0.0/ShuntCompensator.hpp b/CGMES_3.0.0/ShuntCompensator.hpp index 4bedb1c32..0803db104 100644 --- a/CGMES_3.0.0/ShuntCompensator.hpp +++ b/CGMES_3.0.0/ShuntCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "Integer.hpp" @@ -58,8 +59,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -67,7 +75,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ShuntCompensator_factory(); diff --git a/CGMES_3.0.0/SolarGeneratingUnit.cpp b/CGMES_3.0.0/SolarGeneratingUnit.cpp index c50a96bc3..d292b80a7 100644 --- a/CGMES_3.0.0/SolarGeneratingUnit.cpp +++ b/CGMES_3.0.0/SolarGeneratingUnit.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SolarGeneratingUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SolarGeneratingUnit.SolarPowerPlant", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SolarGeneratingUnit::SolarGeneratingUnit() : SolarPowerPlant(nullptr) {} SolarGeneratingUnit::~SolarGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& SolarGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SolarGeneratingUnit::getClassNamespaceUrl() const { - { "cim:SolarGeneratingUnit.SolarPowerPlant", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SolarGeneratingUnit::getPossibleProfilesForClass() const +const std::string& SolarGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SolarGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& SolarGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SolarGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SolarGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SolarGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SolarPowerPlant_SolarGeneratingUnits(BaseClass*, BaseClass*); @@ -80,7 +112,7 @@ const char* SolarGeneratingUnit::debugString() const void SolarGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SolarGeneratingUnit", &SolarGeneratingUnit_factory); + factory_map.emplace("SolarGeneratingUnit", &SolarGeneratingUnit_factory); } void SolarGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -89,7 +121,7 @@ void SolarGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SolarGeneratingUnit.SolarPowerPlant", &assign_SolarGeneratingUnit_SolarPowerPlant); + assign_map.emplace("SolarGeneratingUnit.SolarPowerPlant", &assign_SolarGeneratingUnit_SolarPowerPlant); } void SolarGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -100,7 +132,7 @@ void SolarGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { GeneratingUnit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SolarGeneratingUnit.SolarPowerPlant", &get_SolarGeneratingUnit_SolarPowerPlant); + get_map.emplace("SolarGeneratingUnit.SolarPowerPlant", &get_SolarGeneratingUnit_SolarPowerPlant); } void SolarGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const @@ -108,11 +140,25 @@ void SolarGeneratingUnit::addEnumGetFnsToMap(std::map GeneratingUnit::addEnumGetFnsToMap(get_map); } +bool SolarGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SolarGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SolarGeneratingUnit::declare() { return BaseClassDefiner(SolarGeneratingUnit::addConstructToMap, SolarGeneratingUnit::addPrimitiveAssignFnsToMap, SolarGeneratingUnit::addClassAssignFnsToMap, SolarGeneratingUnit::debugName); } +std::map SolarGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SolarGeneratingUnit_factory() diff --git a/CGMES_3.0.0/SolarGeneratingUnit.hpp b/CGMES_3.0.0/SolarGeneratingUnit.hpp index 464396213..00b6b9f2c 100644 --- a/CGMES_3.0.0/SolarGeneratingUnit.hpp +++ b/CGMES_3.0.0/SolarGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SolarGeneratingUnit_factory(); diff --git a/CGMES_3.0.0/SolarPowerPlant.cpp b/CGMES_3.0.0/SolarPowerPlant.cpp index d7a317331..38bae98a1 100644 --- a/CGMES_3.0.0/SolarPowerPlant.cpp +++ b/CGMES_3.0.0/SolarPowerPlant.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SolarPowerPlant(), + "http://iec.ch/TC57/CIM100-European#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SolarPowerPlant.SolarGeneratingUnits", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SolarPowerPlant::SolarPowerPlant() {} SolarPowerPlant::~SolarPowerPlant() {} -static const std::list PossibleProfilesForClass = +const std::list& SolarPowerPlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SolarPowerPlant::getClassNamespaceUrl() const { - { "cim:SolarPowerPlant.SolarGeneratingUnits", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SolarPowerPlant::getPossibleProfilesForClass() const +const std::string& SolarPowerPlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SolarPowerPlant::getPossibleProfilesForAttributes() const +const std::list& SolarPowerPlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SolarPowerPlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SolarPowerPlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SolarPowerPlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SolarGeneratingUnit_SolarPowerPlant(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* SolarPowerPlant::debugString() const void SolarPowerPlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SolarPowerPlant", &SolarPowerPlant_factory); + factory_map.emplace("SolarPowerPlant", &SolarPowerPlant_factory); } void SolarPowerPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void SolarPowerPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SolarPowerPlant.SolarGeneratingUnits", &assign_SolarPowerPlant_SolarGeneratingUnits); + assign_map.emplace("SolarPowerPlant.SolarGeneratingUnits", &assign_SolarPowerPlant_SolarGeneratingUnits); } void SolarPowerPlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void SolarPowerPlant::addEnumGetFnsToMap(std::map& ge PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool SolarPowerPlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SolarPowerPlant" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SolarPowerPlant::declare() { return BaseClassDefiner(SolarPowerPlant::addConstructToMap, SolarPowerPlant::addPrimitiveAssignFnsToMap, SolarPowerPlant::addClassAssignFnsToMap, SolarPowerPlant::debugName); } +std::map SolarPowerPlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SolarPowerPlant_factory() diff --git a/CGMES_3.0.0/SolarPowerPlant.hpp b/CGMES_3.0.0/SolarPowerPlant.hpp index e1884c3c2..a0cb9f9ad 100644 --- a/CGMES_3.0.0/SolarPowerPlant.hpp +++ b/CGMES_3.0.0/SolarPowerPlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SolarPowerPlant_factory(); diff --git a/CGMES_3.0.0/StaticVarCompensator.cpp b/CGMES_3.0.0/StaticVarCompensator.cpp index 175ac3abc..c0ef57398 100644 --- a/CGMES_3.0.0/StaticVarCompensator.cpp +++ b/CGMES_3.0.0/StaticVarCompensator.cpp @@ -12,40 +12,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StaticVarCompensator(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StaticVarCompensator.StaticVarCompensatorDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "StaticVarCompensator.capacitiveRating", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.inductiveRating", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "StaticVarCompensator.sVCControlMode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.slope", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "StaticVarCompensator.voltageSetPoint", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + StaticVarCompensator::StaticVarCompensator() : StaticVarCompensatorDynamics(nullptr) {} StaticVarCompensator::~StaticVarCompensator() {} -static const std::list PossibleProfilesForClass = +const std::list& StaticVarCompensator::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StaticVarCompensator::getClassNamespaceUrl() const { - { "cim:StaticVarCompensator.StaticVarCompensatorDynamics", { CGMESProfile::DY, } }, - { "cim:StaticVarCompensator.capacitiveRating", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.inductiveRating", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.q", { CGMESProfile::SSH, } }, - { "cim:StaticVarCompensator.sVCControlMode", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.slope", { CGMESProfile::EQ, } }, - { "cim:StaticVarCompensator.voltageSetPoint", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StaticVarCompensator::getPossibleProfilesForClass() const +const std::string& StaticVarCompensator::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StaticVarCompensator::getPossibleProfilesForAttributes() const +const std::list& StaticVarCompensator::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingCondEq::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StaticVarCompensator::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StaticVarCompensator::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StaticVarCompensator::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StaticVarCompensatorDynamics_StaticVarCompensator(BaseClass*, BaseClass*); @@ -248,32 +280,32 @@ const char* StaticVarCompensator::debugString() const void StaticVarCompensator::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StaticVarCompensator", &StaticVarCompensator_factory); + factory_map.emplace("StaticVarCompensator", &StaticVarCompensator_factory); } void StaticVarCompensator::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StaticVarCompensator.capacitiveRating", &assign_StaticVarCompensator_capacitiveRating); - assign_map.emplace("cim:StaticVarCompensator.inductiveRating", &assign_StaticVarCompensator_inductiveRating); - assign_map.emplace("cim:StaticVarCompensator.q", &assign_StaticVarCompensator_q); - assign_map.emplace("cim:StaticVarCompensator.sVCControlMode", &assign_StaticVarCompensator_sVCControlMode); - assign_map.emplace("cim:StaticVarCompensator.slope", &assign_StaticVarCompensator_slope); - assign_map.emplace("cim:StaticVarCompensator.voltageSetPoint", &assign_StaticVarCompensator_voltageSetPoint); + assign_map.emplace("StaticVarCompensator.capacitiveRating", &assign_StaticVarCompensator_capacitiveRating); + assign_map.emplace("StaticVarCompensator.inductiveRating", &assign_StaticVarCompensator_inductiveRating); + assign_map.emplace("StaticVarCompensator.q", &assign_StaticVarCompensator_q); + assign_map.emplace("StaticVarCompensator.sVCControlMode", &assign_StaticVarCompensator_sVCControlMode); + assign_map.emplace("StaticVarCompensator.slope", &assign_StaticVarCompensator_slope); + assign_map.emplace("StaticVarCompensator.voltageSetPoint", &assign_StaticVarCompensator_voltageSetPoint); } void StaticVarCompensator::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StaticVarCompensator.StaticVarCompensatorDynamics", &assign_StaticVarCompensator_StaticVarCompensatorDynamics); + assign_map.emplace("StaticVarCompensator.StaticVarCompensatorDynamics", &assign_StaticVarCompensator_StaticVarCompensatorDynamics); } void StaticVarCompensator::addPrimitiveGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensator.capacitiveRating", &get_StaticVarCompensator_capacitiveRating); - get_map.emplace("cim:StaticVarCompensator.inductiveRating", &get_StaticVarCompensator_inductiveRating); - get_map.emplace("cim:StaticVarCompensator.q", &get_StaticVarCompensator_q); - get_map.emplace("cim:StaticVarCompensator.slope", &get_StaticVarCompensator_slope); - get_map.emplace("cim:StaticVarCompensator.voltageSetPoint", &get_StaticVarCompensator_voltageSetPoint); + get_map.emplace("StaticVarCompensator.capacitiveRating", &get_StaticVarCompensator_capacitiveRating); + get_map.emplace("StaticVarCompensator.inductiveRating", &get_StaticVarCompensator_inductiveRating); + get_map.emplace("StaticVarCompensator.q", &get_StaticVarCompensator_q); + get_map.emplace("StaticVarCompensator.slope", &get_StaticVarCompensator_slope); + get_map.emplace("StaticVarCompensator.voltageSetPoint", &get_StaticVarCompensator_voltageSetPoint); } void StaticVarCompensator::addClassGetFnsToMap(std::map& get_map) const @@ -284,7 +316,13 @@ void StaticVarCompensator::addClassGetFnsToMap(std::map& get_map) const { RegulatingCondEq::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensator.sVCControlMode", &get_StaticVarCompensator_sVCControlMode); + get_map.emplace("StaticVarCompensator.sVCControlMode", &get_StaticVarCompensator_sVCControlMode); +} + +bool StaticVarCompensator::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StaticVarCompensator" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner StaticVarCompensator::declare() @@ -292,6 +330,14 @@ const BaseClassDefiner StaticVarCompensator::declare() return BaseClassDefiner(StaticVarCompensator::addConstructToMap, StaticVarCompensator::addPrimitiveAssignFnsToMap, StaticVarCompensator::addClassAssignFnsToMap, StaticVarCompensator::debugName); } +std::map StaticVarCompensator::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingCondEq::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StaticVarCompensator_factory() diff --git a/CGMES_3.0.0/StaticVarCompensator.hpp b/CGMES_3.0.0/StaticVarCompensator.hpp index ac6a98cb4..87423a8af 100644 --- a/CGMES_3.0.0/StaticVarCompensator.hpp +++ b/CGMES_3.0.0/StaticVarCompensator.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingCondEq.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Reactance.hpp" #include "ReactivePower.hpp" #include "SVCControlMode.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StaticVarCompensator_factory(); diff --git a/CGMES_3.0.0/StaticVarCompensatorDynamics.cpp b/CGMES_3.0.0/StaticVarCompensatorDynamics.cpp index 106764a27..990143791 100644 --- a/CGMES_3.0.0/StaticVarCompensatorDynamics.cpp +++ b/CGMES_3.0.0/StaticVarCompensatorDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StaticVarCompensatorDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StaticVarCompensatorDynamics.StaticVarCompensator", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + StaticVarCompensatorDynamics::StaticVarCompensatorDynamics() : StaticVarCompensator(nullptr) {} StaticVarCompensatorDynamics::~StaticVarCompensatorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& StaticVarCompensatorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StaticVarCompensatorDynamics::getClassNamespaceUrl() const { - { "cim:StaticVarCompensatorDynamics.StaticVarCompensator", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StaticVarCompensatorDynamics::getPossibleProfilesForClass() const +const std::string& StaticVarCompensatorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StaticVarCompensatorDynamics::getPossibleProfilesForAttributes() const +const std::list& StaticVarCompensatorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StaticVarCompensatorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StaticVarCompensatorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StaticVarCompensatorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StaticVarCompensator_StaticVarCompensatorDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* StaticVarCompensatorDynamics::debugString() const void StaticVarCompensatorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StaticVarCompensatorDynamics", &StaticVarCompensatorDynamics_factory); + factory_map.emplace("StaticVarCompensatorDynamics", &StaticVarCompensatorDynamics_factory); } void StaticVarCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void StaticVarCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map void StaticVarCompensatorDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StaticVarCompensatorDynamics.StaticVarCompensator", &assign_StaticVarCompensatorDynamics_StaticVarCompensator); + assign_map.emplace("StaticVarCompensatorDynamics.StaticVarCompensator", &assign_StaticVarCompensatorDynamics_StaticVarCompensator); } void StaticVarCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void StaticVarCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:StaticVarCompensatorDynamics.StaticVarCompensator", &get_StaticVarCompensatorDynamics_StaticVarCompensator); + get_map.emplace("StaticVarCompensatorDynamics.StaticVarCompensator", &get_StaticVarCompensatorDynamics_StaticVarCompensator); } void StaticVarCompensatorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void StaticVarCompensatorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner StaticVarCompensatorDynamics::declare() { return BaseClassDefiner(StaticVarCompensatorDynamics::addConstructToMap, StaticVarCompensatorDynamics::addPrimitiveAssignFnsToMap, StaticVarCompensatorDynamics::addClassAssignFnsToMap, StaticVarCompensatorDynamics::debugName); } +std::map StaticVarCompensatorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StaticVarCompensatorDynamics_factory() diff --git a/CGMES_3.0.0/StaticVarCompensatorDynamics.hpp b/CGMES_3.0.0/StaticVarCompensatorDynamics.hpp index 025c6774c..f23596d86 100644 --- a/CGMES_3.0.0/StaticVarCompensatorDynamics.hpp +++ b/CGMES_3.0.0/StaticVarCompensatorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StaticVarCompensatorDynamics_factory(); diff --git a/CGMES_3.0.0/StationSupply.cpp b/CGMES_3.0.0/StationSupply.cpp index 71ca77084..7150f1253 100644 --- a/CGMES_3.0.0/StationSupply.cpp +++ b/CGMES_3.0.0/StationSupply.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StationSupply(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + StationSupply::StationSupply() {} StationSupply::~StationSupply() {} -static const std::list PossibleProfilesForClass = +const std::list& StationSupply::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StationSupply::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StationSupply::getPossibleProfilesForClass() const +const std::string& StationSupply::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StationSupply::getPossibleProfilesForAttributes() const +const std::list& StationSupply::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyConsumer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StationSupply::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StationSupply::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StationSupply::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char StationSupply::debugName[] = "StationSupply"; @@ -47,7 +79,7 @@ const char* StationSupply::debugString() const void StationSupply::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StationSupply", &StationSupply_factory); + factory_map.emplace("StationSupply", &StationSupply_factory); } void StationSupply::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -73,11 +105,25 @@ void StationSupply::addEnumGetFnsToMap(std::map& get_ EnergyConsumer::addEnumGetFnsToMap(get_map); } +bool StationSupply::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StationSupply" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StationSupply::declare() { return BaseClassDefiner(StationSupply::addConstructToMap, StationSupply::addPrimitiveAssignFnsToMap, StationSupply::addClassAssignFnsToMap, StationSupply::debugName); } +std::map StationSupply::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyConsumer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StationSupply_factory() diff --git a/CGMES_3.0.0/StationSupply.hpp b/CGMES_3.0.0/StationSupply.hpp index f95e7ce94..7c688152c 100644 --- a/CGMES_3.0.0/StationSupply.hpp +++ b/CGMES_3.0.0/StationSupply.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyConsumer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StationSupply_factory(); diff --git a/CGMES_3.0.0/Status.cpp b/CGMES_3.0.0/Status.cpp index 10ff1931f..6915538c4 100644 --- a/CGMES_3.0.0/Status.cpp +++ b/CGMES_3.0.0/Status.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Status(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Status.dateTime", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "Status.reason", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "Status.remark", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "Status.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + Status::Status() {} Status::~Status() {} -static const std::list PossibleProfilesForClass = +const std::list& Status::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Status::getClassNamespaceUrl() const { - { "cim:Status.dateTime", { CGMESProfile::GL, } }, - { "cim:Status.reason", { CGMESProfile::GL, } }, - { "cim:Status.remark", { CGMESProfile::GL, } }, - { "cim:Status.value", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Status::getPossibleProfilesForClass() const +const std::string& Status::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Status::getPossibleProfilesForAttributes() const +const std::list& Status::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Status::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Status::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Status::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Status_dateTime(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* Status::debugString() const void Status::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Status", &Status_factory); + factory_map.emplace("Status", &Status_factory); } void Status::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Status.dateTime", &assign_Status_dateTime); - assign_map.emplace("cim:Status.reason", &assign_Status_reason); - assign_map.emplace("cim:Status.remark", &assign_Status_remark); - assign_map.emplace("cim:Status.value", &assign_Status_value); + assign_map.emplace("Status.dateTime", &assign_Status_dateTime); + assign_map.emplace("Status.reason", &assign_Status_reason); + assign_map.emplace("Status.remark", &assign_Status_remark); + assign_map.emplace("Status.value", &assign_Status_value); } void Status::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,10 +216,10 @@ void Status::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Status.dateTime", &get_Status_dateTime); - get_map.emplace("cim:Status.reason", &get_Status_reason); - get_map.emplace("cim:Status.remark", &get_Status_remark); - get_map.emplace("cim:Status.value", &get_Status_value); + get_map.emplace("Status.dateTime", &get_Status_dateTime); + get_map.emplace("Status.reason", &get_Status_reason); + get_map.emplace("Status.remark", &get_Status_remark); + get_map.emplace("Status.value", &get_Status_value); } void Status::addClassGetFnsToMap(std::map& get_map) const @@ -200,11 +232,25 @@ void Status::addEnumGetFnsToMap(std::map& get_map) co BaseClass::addEnumGetFnsToMap(get_map); } +bool Status::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Status" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Status::declare() { return BaseClassDefiner(Status::addConstructToMap, Status::addPrimitiveAssignFnsToMap, Status::addClassAssignFnsToMap, Status::debugName); } +std::map Status::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Status_factory() diff --git a/CGMES_3.0.0/Status.hpp b/CGMES_3.0.0/Status.hpp index a915cd996..5b6fa414c 100644 --- a/CGMES_3.0.0/Status.hpp +++ b/CGMES_3.0.0/Status.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "DateTime.hpp" #include "String.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Status_factory(); diff --git a/CGMES_3.0.0/StreetAddress.cpp b/CGMES_3.0.0/StreetAddress.cpp index c31633d0a..bb66fbe85 100644 --- a/CGMES_3.0.0/StreetAddress.cpp +++ b/CGMES_3.0.0/StreetAddress.cpp @@ -14,37 +14,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StreetAddress(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StreetAddress.language", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetAddress.poBox", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetAddress.postalCode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetAddress.status", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetAddress.streetDetail", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetAddress.townDetail", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + StreetAddress::StreetAddress() : status(nullptr), streetDetail(nullptr), townDetail(nullptr) {} StreetAddress::~StreetAddress() {} -static const std::list PossibleProfilesForClass = +const std::list& StreetAddress::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StreetAddress::getClassNamespaceUrl() const { - { "cim:StreetAddress.language", { CGMESProfile::GL, } }, - { "cim:StreetAddress.poBox", { CGMESProfile::GL, } }, - { "cim:StreetAddress.postalCode", { CGMESProfile::GL, } }, - { "cim:StreetAddress.status", { CGMESProfile::GL, } }, - { "cim:StreetAddress.streetDetail", { CGMESProfile::GL, } }, - { "cim:StreetAddress.townDetail", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StreetAddress::getPossibleProfilesForClass() const +const std::string& StreetAddress::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StreetAddress::getPossibleProfilesForAttributes() const +const std::list& StreetAddress::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StreetAddress::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StreetAddress::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StreetAddress::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StreetAddress_language(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,37 +258,37 @@ const char* StreetAddress::debugString() const void StreetAddress::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StreetAddress", &StreetAddress_factory); + factory_map.emplace("StreetAddress", &StreetAddress_factory); } void StreetAddress::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StreetAddress.language", &assign_StreetAddress_language); - assign_map.emplace("cim:StreetAddress.poBox", &assign_StreetAddress_poBox); - assign_map.emplace("cim:StreetAddress.postalCode", &assign_StreetAddress_postalCode); + assign_map.emplace("StreetAddress.language", &assign_StreetAddress_language); + assign_map.emplace("StreetAddress.poBox", &assign_StreetAddress_poBox); + assign_map.emplace("StreetAddress.postalCode", &assign_StreetAddress_postalCode); } void StreetAddress::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StreetAddress.status", &assign_StreetAddress_status); - assign_map.emplace("cim:StreetAddress.streetDetail", &assign_StreetAddress_streetDetail); - assign_map.emplace("cim:StreetAddress.townDetail", &assign_StreetAddress_townDetail); + assign_map.emplace("StreetAddress.status", &assign_StreetAddress_status); + assign_map.emplace("StreetAddress.streetDetail", &assign_StreetAddress_streetDetail); + assign_map.emplace("StreetAddress.townDetail", &assign_StreetAddress_townDetail); } void StreetAddress::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StreetAddress.language", &get_StreetAddress_language); - get_map.emplace("cim:StreetAddress.poBox", &get_StreetAddress_poBox); - get_map.emplace("cim:StreetAddress.postalCode", &get_StreetAddress_postalCode); + get_map.emplace("StreetAddress.language", &get_StreetAddress_language); + get_map.emplace("StreetAddress.poBox", &get_StreetAddress_poBox); + get_map.emplace("StreetAddress.postalCode", &get_StreetAddress_postalCode); } void StreetAddress::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:StreetAddress.status", &get_StreetAddress_status); - get_map.emplace("cim:StreetAddress.streetDetail", &get_StreetAddress_streetDetail); - get_map.emplace("cim:StreetAddress.townDetail", &get_StreetAddress_townDetail); + get_map.emplace("StreetAddress.status", &get_StreetAddress_status); + get_map.emplace("StreetAddress.streetDetail", &get_StreetAddress_streetDetail); + get_map.emplace("StreetAddress.townDetail", &get_StreetAddress_townDetail); } void StreetAddress::addEnumGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void StreetAddress::addEnumGetFnsToMap(std::map& get_ BaseClass::addEnumGetFnsToMap(get_map); } +bool StreetAddress::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StreetAddress" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StreetAddress::declare() { return BaseClassDefiner(StreetAddress::addConstructToMap, StreetAddress::addPrimitiveAssignFnsToMap, StreetAddress::addClassAssignFnsToMap, StreetAddress::debugName); } +std::map StreetAddress::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StreetAddress_factory() diff --git a/CGMES_3.0.0/StreetAddress.hpp b/CGMES_3.0.0/StreetAddress.hpp index a2e3c0388..601ffdc2b 100644 --- a/CGMES_3.0.0/StreetAddress.hpp +++ b/CGMES_3.0.0/StreetAddress.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StreetAddress_factory(); diff --git a/CGMES_3.0.0/StreetDetail.cpp b/CGMES_3.0.0/StreetDetail.cpp index 3338d23bb..c3256cdc0 100644 --- a/CGMES_3.0.0/StreetDetail.cpp +++ b/CGMES_3.0.0/StreetDetail.cpp @@ -11,44 +11,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StreetDetail(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StreetDetail.addressGeneral", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.addressGeneral2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.addressGeneral3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.buildingName", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.code", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.floorIdentification", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.name", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.number", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.prefix", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.suffix", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.suiteNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "StreetDetail.withinTownLimits", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + StreetDetail::StreetDetail() {} StreetDetail::~StreetDetail() {} -static const std::list PossibleProfilesForClass = +const std::list& StreetDetail::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StreetDetail::getClassNamespaceUrl() const { - { "cim:StreetDetail.addressGeneral", { CGMESProfile::GL, } }, - { "cim:StreetDetail.addressGeneral2", { CGMESProfile::GL, } }, - { "cim:StreetDetail.addressGeneral3", { CGMESProfile::GL, } }, - { "cim:StreetDetail.buildingName", { CGMESProfile::GL, } }, - { "cim:StreetDetail.code", { CGMESProfile::GL, } }, - { "cim:StreetDetail.floorIdentification", { CGMESProfile::GL, } }, - { "cim:StreetDetail.name", { CGMESProfile::GL, } }, - { "cim:StreetDetail.number", { CGMESProfile::GL, } }, - { "cim:StreetDetail.prefix", { CGMESProfile::GL, } }, - { "cim:StreetDetail.suffix", { CGMESProfile::GL, } }, - { "cim:StreetDetail.suiteNumber", { CGMESProfile::GL, } }, - { "cim:StreetDetail.type", { CGMESProfile::GL, } }, - { "cim:StreetDetail.withinTownLimits", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StreetDetail::getPossibleProfilesForClass() const +const std::string& StreetDetail::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StreetDetail::getPossibleProfilesForAttributes() const +const std::list& StreetDetail::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StreetDetail::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StreetDetail::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StreetDetail::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StreetDetail_addressGeneral(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -436,24 +468,24 @@ const char* StreetDetail::debugString() const void StreetDetail::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StreetDetail", &StreetDetail_factory); + factory_map.emplace("StreetDetail", &StreetDetail_factory); } void StreetDetail::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StreetDetail.addressGeneral", &assign_StreetDetail_addressGeneral); - assign_map.emplace("cim:StreetDetail.addressGeneral2", &assign_StreetDetail_addressGeneral2); - assign_map.emplace("cim:StreetDetail.addressGeneral3", &assign_StreetDetail_addressGeneral3); - assign_map.emplace("cim:StreetDetail.buildingName", &assign_StreetDetail_buildingName); - assign_map.emplace("cim:StreetDetail.code", &assign_StreetDetail_code); - assign_map.emplace("cim:StreetDetail.floorIdentification", &assign_StreetDetail_floorIdentification); - assign_map.emplace("cim:StreetDetail.name", &assign_StreetDetail_name); - assign_map.emplace("cim:StreetDetail.number", &assign_StreetDetail_number); - assign_map.emplace("cim:StreetDetail.prefix", &assign_StreetDetail_prefix); - assign_map.emplace("cim:StreetDetail.suffix", &assign_StreetDetail_suffix); - assign_map.emplace("cim:StreetDetail.suiteNumber", &assign_StreetDetail_suiteNumber); - assign_map.emplace("cim:StreetDetail.type", &assign_StreetDetail_type); - assign_map.emplace("cim:StreetDetail.withinTownLimits", &assign_StreetDetail_withinTownLimits); + assign_map.emplace("StreetDetail.addressGeneral", &assign_StreetDetail_addressGeneral); + assign_map.emplace("StreetDetail.addressGeneral2", &assign_StreetDetail_addressGeneral2); + assign_map.emplace("StreetDetail.addressGeneral3", &assign_StreetDetail_addressGeneral3); + assign_map.emplace("StreetDetail.buildingName", &assign_StreetDetail_buildingName); + assign_map.emplace("StreetDetail.code", &assign_StreetDetail_code); + assign_map.emplace("StreetDetail.floorIdentification", &assign_StreetDetail_floorIdentification); + assign_map.emplace("StreetDetail.name", &assign_StreetDetail_name); + assign_map.emplace("StreetDetail.number", &assign_StreetDetail_number); + assign_map.emplace("StreetDetail.prefix", &assign_StreetDetail_prefix); + assign_map.emplace("StreetDetail.suffix", &assign_StreetDetail_suffix); + assign_map.emplace("StreetDetail.suiteNumber", &assign_StreetDetail_suiteNumber); + assign_map.emplace("StreetDetail.type", &assign_StreetDetail_type); + assign_map.emplace("StreetDetail.withinTownLimits", &assign_StreetDetail_withinTownLimits); } void StreetDetail::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -463,19 +495,19 @@ void StreetDetail::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:StreetDetail.addressGeneral", &get_StreetDetail_addressGeneral); - get_map.emplace("cim:StreetDetail.addressGeneral2", &get_StreetDetail_addressGeneral2); - get_map.emplace("cim:StreetDetail.addressGeneral3", &get_StreetDetail_addressGeneral3); - get_map.emplace("cim:StreetDetail.buildingName", &get_StreetDetail_buildingName); - get_map.emplace("cim:StreetDetail.code", &get_StreetDetail_code); - get_map.emplace("cim:StreetDetail.floorIdentification", &get_StreetDetail_floorIdentification); - get_map.emplace("cim:StreetDetail.name", &get_StreetDetail_name); - get_map.emplace("cim:StreetDetail.number", &get_StreetDetail_number); - get_map.emplace("cim:StreetDetail.prefix", &get_StreetDetail_prefix); - get_map.emplace("cim:StreetDetail.suffix", &get_StreetDetail_suffix); - get_map.emplace("cim:StreetDetail.suiteNumber", &get_StreetDetail_suiteNumber); - get_map.emplace("cim:StreetDetail.type", &get_StreetDetail_type); - get_map.emplace("cim:StreetDetail.withinTownLimits", &get_StreetDetail_withinTownLimits); + get_map.emplace("StreetDetail.addressGeneral", &get_StreetDetail_addressGeneral); + get_map.emplace("StreetDetail.addressGeneral2", &get_StreetDetail_addressGeneral2); + get_map.emplace("StreetDetail.addressGeneral3", &get_StreetDetail_addressGeneral3); + get_map.emplace("StreetDetail.buildingName", &get_StreetDetail_buildingName); + get_map.emplace("StreetDetail.code", &get_StreetDetail_code); + get_map.emplace("StreetDetail.floorIdentification", &get_StreetDetail_floorIdentification); + get_map.emplace("StreetDetail.name", &get_StreetDetail_name); + get_map.emplace("StreetDetail.number", &get_StreetDetail_number); + get_map.emplace("StreetDetail.prefix", &get_StreetDetail_prefix); + get_map.emplace("StreetDetail.suffix", &get_StreetDetail_suffix); + get_map.emplace("StreetDetail.suiteNumber", &get_StreetDetail_suiteNumber); + get_map.emplace("StreetDetail.type", &get_StreetDetail_type); + get_map.emplace("StreetDetail.withinTownLimits", &get_StreetDetail_withinTownLimits); } void StreetDetail::addClassGetFnsToMap(std::map& get_map) const @@ -488,11 +520,25 @@ void StreetDetail::addEnumGetFnsToMap(std::map& get_m BaseClass::addEnumGetFnsToMap(get_map); } +bool StreetDetail::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StreetDetail" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StreetDetail::declare() { return BaseClassDefiner(StreetDetail::addConstructToMap, StreetDetail::addPrimitiveAssignFnsToMap, StreetDetail::addClassAssignFnsToMap, StreetDetail::debugName); } +std::map StreetDetail::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StreetDetail_factory() diff --git a/CGMES_3.0.0/StreetDetail.hpp b/CGMES_3.0.0/StreetDetail.hpp index 819a7e651..46625219a 100644 --- a/CGMES_3.0.0/StreetDetail.hpp +++ b/CGMES_3.0.0/StreetDetail.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "String.hpp" @@ -68,8 +69,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -77,7 +85,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StreetDetail_factory(); diff --git a/CGMES_3.0.0/StringMeasurement.cpp b/CGMES_3.0.0/StringMeasurement.cpp index 3bf493102..78adf93db 100644 --- a/CGMES_3.0.0/StringMeasurement.cpp +++ b/CGMES_3.0.0/StringMeasurement.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StringMeasurement(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StringMeasurement.StringMeasurementValues", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + StringMeasurement::StringMeasurement() {} StringMeasurement::~StringMeasurement() {} -static const std::list PossibleProfilesForClass = +const std::list& StringMeasurement::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StringMeasurement::getClassNamespaceUrl() const { - { "cim:StringMeasurement.StringMeasurementValues", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StringMeasurement::getPossibleProfilesForClass() const +const std::string& StringMeasurement::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StringMeasurement::getPossibleProfilesForAttributes() const +const std::list& StringMeasurement::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Measurement::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StringMeasurement::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StringMeasurement::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StringMeasurement::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StringMeasurementValue_StringMeasurement(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* StringMeasurement::debugString() const void StringMeasurement::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StringMeasurement", &StringMeasurement_factory); + factory_map.emplace("StringMeasurement", &StringMeasurement_factory); } void StringMeasurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void StringMeasurement::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurement.StringMeasurementValues", &assign_StringMeasurement_StringMeasurementValues); + assign_map.emplace("StringMeasurement.StringMeasurementValues", &assign_StringMeasurement_StringMeasurementValues); } void StringMeasurement::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void StringMeasurement::addEnumGetFnsToMap(std::map& Measurement::addEnumGetFnsToMap(get_map); } +bool StringMeasurement::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "StringMeasurement" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner StringMeasurement::declare() { return BaseClassDefiner(StringMeasurement::addConstructToMap, StringMeasurement::addPrimitiveAssignFnsToMap, StringMeasurement::addClassAssignFnsToMap, StringMeasurement::debugName); } +std::map StringMeasurement::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Measurement::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StringMeasurement_factory() diff --git a/CGMES_3.0.0/StringMeasurement.hpp b/CGMES_3.0.0/StringMeasurement.hpp index 21841ff08..baf309b1a 100644 --- a/CGMES_3.0.0/StringMeasurement.hpp +++ b/CGMES_3.0.0/StringMeasurement.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Measurement.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StringMeasurement_factory(); diff --git a/CGMES_3.0.0/StringMeasurementValue.cpp b/CGMES_3.0.0/StringMeasurementValue.cpp index 22ffc1115..626c1ada9 100644 --- a/CGMES_3.0.0/StringMeasurementValue.cpp +++ b/CGMES_3.0.0/StringMeasurementValue.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + StringMeasurementValue(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "StringMeasurementValue.StringMeasurement", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + StringMeasurementValue::StringMeasurementValue() : StringMeasurement(nullptr) {} StringMeasurementValue::~StringMeasurementValue() {} -static const std::list PossibleProfilesForClass = +const std::list& StringMeasurementValue::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& StringMeasurementValue::getClassNamespaceUrl() const { - { "cim:StringMeasurementValue.StringMeasurement", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -StringMeasurementValue::getPossibleProfilesForClass() const +const std::string& StringMeasurementValue::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -StringMeasurementValue::getPossibleProfilesForAttributes() const +const std::list& StringMeasurementValue::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = MeasurementValue::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& StringMeasurementValue::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& StringMeasurementValue::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& StringMeasurementValue::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_StringMeasurement_StringMeasurementValues(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* StringMeasurementValue::debugString() const void StringMeasurementValue::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:StringMeasurementValue", &StringMeasurementValue_factory); + factory_map.emplace("StringMeasurementValue", &StringMeasurementValue_factory); } void StringMeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void StringMeasurementValue::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:StringMeasurementValue.StringMeasurement", &assign_StringMeasurementValue_StringMeasurement); + assign_map.emplace("StringMeasurementValue.StringMeasurement", &assign_StringMeasurementValue_StringMeasurement); } void StringMeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void StringMeasurementValue::addPrimitiveGetFnsToMap(std::map& get_map) const { MeasurementValue::addClassGetFnsToMap(get_map); - get_map.emplace("cim:StringMeasurementValue.StringMeasurement", &get_StringMeasurementValue_StringMeasurement); + get_map.emplace("StringMeasurementValue.StringMeasurement", &get_StringMeasurementValue_StringMeasurement); } void StringMeasurementValue::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void StringMeasurementValue::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner StringMeasurementValue::declare() { return BaseClassDefiner(StringMeasurementValue::addConstructToMap, StringMeasurementValue::addPrimitiveAssignFnsToMap, StringMeasurementValue::addClassAssignFnsToMap, StringMeasurementValue::debugName); } +std::map StringMeasurementValue::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = MeasurementValue::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* StringMeasurementValue_factory() diff --git a/CGMES_3.0.0/StringMeasurementValue.hpp b/CGMES_3.0.0/StringMeasurementValue.hpp index aeb6c8ce7..2c2d6c8aa 100644 --- a/CGMES_3.0.0/StringMeasurementValue.hpp +++ b/CGMES_3.0.0/StringMeasurementValue.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "MeasurementValue.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* StringMeasurementValue_factory(); diff --git a/CGMES_3.0.0/SubGeographicalRegion.cpp b/CGMES_3.0.0/SubGeographicalRegion.cpp index ca3ce89ad..dfb6d7d54 100644 --- a/CGMES_3.0.0/SubGeographicalRegion.cpp +++ b/CGMES_3.0.0/SubGeographicalRegion.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SubGeographicalRegion(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SubGeographicalRegion.DCLines", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SubGeographicalRegion.Lines", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "SubGeographicalRegion.Region", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "SubGeographicalRegion.Substations", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + SubGeographicalRegion::SubGeographicalRegion() : Region(nullptr) {} SubGeographicalRegion::~SubGeographicalRegion() {} -static const std::list PossibleProfilesForClass = +const std::list& SubGeographicalRegion::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SubGeographicalRegion::getClassNamespaceUrl() const { - { "cim:SubGeographicalRegion.DCLines", { CGMESProfile::EQ, } }, - { "cim:SubGeographicalRegion.Lines", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:SubGeographicalRegion.Region", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:SubGeographicalRegion.Substations", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SubGeographicalRegion::getPossibleProfilesForClass() const +const std::string& SubGeographicalRegion::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SubGeographicalRegion::getPossibleProfilesForAttributes() const +const std::list& SubGeographicalRegion::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SubGeographicalRegion::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SubGeographicalRegion::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SubGeographicalRegion::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCLine_Region(BaseClass*, BaseClass*); @@ -140,7 +172,7 @@ const char* SubGeographicalRegion::debugString() const void SubGeographicalRegion::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SubGeographicalRegion", &SubGeographicalRegion_factory); + factory_map.emplace("SubGeographicalRegion", &SubGeographicalRegion_factory); } void SubGeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -149,10 +181,10 @@ void SubGeographicalRegion::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SubGeographicalRegion.DCLines", &assign_SubGeographicalRegion_DCLines); - assign_map.emplace("cim:SubGeographicalRegion.Lines", &assign_SubGeographicalRegion_Lines); - assign_map.emplace("cim:SubGeographicalRegion.Region", &assign_SubGeographicalRegion_Region); - assign_map.emplace("cim:SubGeographicalRegion.Substations", &assign_SubGeographicalRegion_Substations); + assign_map.emplace("SubGeographicalRegion.DCLines", &assign_SubGeographicalRegion_DCLines); + assign_map.emplace("SubGeographicalRegion.Lines", &assign_SubGeographicalRegion_Lines); + assign_map.emplace("SubGeographicalRegion.Region", &assign_SubGeographicalRegion_Region); + assign_map.emplace("SubGeographicalRegion.Substations", &assign_SubGeographicalRegion_Substations); } void SubGeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -163,7 +195,7 @@ void SubGeographicalRegion::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SubGeographicalRegion.Region", &get_SubGeographicalRegion_Region); + get_map.emplace("SubGeographicalRegion.Region", &get_SubGeographicalRegion_Region); } void SubGeographicalRegion::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SubGeographicalRegion::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SubGeographicalRegion::declare() { return BaseClassDefiner(SubGeographicalRegion::addConstructToMap, SubGeographicalRegion::addPrimitiveAssignFnsToMap, SubGeographicalRegion::addClassAssignFnsToMap, SubGeographicalRegion::debugName); } +std::map SubGeographicalRegion::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SubGeographicalRegion_factory() diff --git a/CGMES_3.0.0/SubGeographicalRegion.hpp b/CGMES_3.0.0/SubGeographicalRegion.hpp index 7cb925cbb..19deccbf7 100644 --- a/CGMES_3.0.0/SubGeographicalRegion.hpp +++ b/CGMES_3.0.0/SubGeographicalRegion.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SubGeographicalRegion_factory(); diff --git a/CGMES_3.0.0/SubLoadArea.cpp b/CGMES_3.0.0/SubLoadArea.cpp index b14f7db79..1b7a2a88f 100644 --- a/CGMES_3.0.0/SubLoadArea.cpp +++ b/CGMES_3.0.0/SubLoadArea.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SubLoadArea(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SubLoadArea.LoadArea", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SubLoadArea.LoadGroups", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SubLoadArea::SubLoadArea() : LoadArea(nullptr) {} SubLoadArea::~SubLoadArea() {} -static const std::list PossibleProfilesForClass = +const std::list& SubLoadArea::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SubLoadArea::getClassNamespaceUrl() const { - { "cim:SubLoadArea.LoadArea", { CGMESProfile::EQ, } }, - { "cim:SubLoadArea.LoadGroups", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SubLoadArea::getPossibleProfilesForClass() const +const std::string& SubLoadArea::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SubLoadArea::getPossibleProfilesForAttributes() const +const std::list& SubLoadArea::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EnergyArea::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SubLoadArea::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SubLoadArea::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SubLoadArea::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_LoadArea_SubLoadAreas(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* SubLoadArea::debugString() const void SubLoadArea::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SubLoadArea", &SubLoadArea_factory); + factory_map.emplace("SubLoadArea", &SubLoadArea_factory); } void SubLoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void SubLoadArea::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SubLoadArea.LoadArea", &assign_SubLoadArea_LoadArea); - assign_map.emplace("cim:SubLoadArea.LoadGroups", &assign_SubLoadArea_LoadGroups); + assign_map.emplace("SubLoadArea.LoadArea", &assign_SubLoadArea_LoadArea); + assign_map.emplace("SubLoadArea.LoadGroups", &assign_SubLoadArea_LoadGroups); } void SubLoadArea::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void SubLoadArea::addPrimitiveGetFnsToMap(std::map& g void SubLoadArea::addClassGetFnsToMap(std::map& get_map) const { EnergyArea::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SubLoadArea.LoadArea", &get_SubLoadArea_LoadArea); + get_map.emplace("SubLoadArea.LoadArea", &get_SubLoadArea_LoadArea); } void SubLoadArea::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void SubLoadArea::addEnumGetFnsToMap(std::map& get_ma EnergyArea::addEnumGetFnsToMap(get_map); } +bool SubLoadArea::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SubLoadArea" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SubLoadArea::declare() { return BaseClassDefiner(SubLoadArea::addConstructToMap, SubLoadArea::addPrimitiveAssignFnsToMap, SubLoadArea::addClassAssignFnsToMap, SubLoadArea::debugName); } +std::map SubLoadArea::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EnergyArea::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SubLoadArea_factory() diff --git a/CGMES_3.0.0/SubLoadArea.hpp b/CGMES_3.0.0/SubLoadArea.hpp index eb2947510..523b31541 100644 --- a/CGMES_3.0.0/SubLoadArea.hpp +++ b/CGMES_3.0.0/SubLoadArea.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EnergyArea.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SubLoadArea_factory(); diff --git a/CGMES_3.0.0/Substation.cpp b/CGMES_3.0.0/Substation.cpp index 418a61adf..b58268260 100644 --- a/CGMES_3.0.0/Substation.cpp +++ b/CGMES_3.0.0/Substation.cpp @@ -14,35 +14,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Substation(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Substation.DCConverterUnit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Substation.Region", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "Substation.VoltageLevels", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + Substation::Substation() : Region(nullptr) {} Substation::~Substation() {} -static const std::list PossibleProfilesForClass = +const std::list& Substation::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Substation::getClassNamespaceUrl() const { - { "cim:Substation.DCConverterUnit", { CGMESProfile::EQ, } }, - { "cim:Substation.Region", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:Substation.VoltageLevels", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Substation::getPossibleProfilesForClass() const +const std::string& Substation::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Substation::getPossibleProfilesForAttributes() const +const std::list& Substation::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Substation::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Substation::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Substation::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DCConverterUnit_Substation(BaseClass*, BaseClass*); @@ -120,7 +152,7 @@ const char* Substation::debugString() const void Substation::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Substation", &Substation_factory); + factory_map.emplace("Substation", &Substation_factory); } void Substation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -129,9 +161,9 @@ void Substation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Substation.DCConverterUnit", &assign_Substation_DCConverterUnit); - assign_map.emplace("cim:Substation.Region", &assign_Substation_Region); - assign_map.emplace("cim:Substation.VoltageLevels", &assign_Substation_VoltageLevels); + assign_map.emplace("Substation.DCConverterUnit", &assign_Substation_DCConverterUnit); + assign_map.emplace("Substation.Region", &assign_Substation_Region); + assign_map.emplace("Substation.VoltageLevels", &assign_Substation_VoltageLevels); } void Substation::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -142,7 +174,7 @@ void Substation::addPrimitiveGetFnsToMap(std::map& ge void Substation::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Substation.Region", &get_Substation_Region); + get_map.emplace("Substation.Region", &get_Substation_Region); } void Substation::addEnumGetFnsToMap(std::map& get_map) const @@ -150,11 +182,25 @@ void Substation::addEnumGetFnsToMap(std::map& get_map EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool Substation::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Substation" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Substation::declare() { return BaseClassDefiner(Substation::addConstructToMap, Substation::addPrimitiveAssignFnsToMap, Substation::addClassAssignFnsToMap, Substation::debugName); } +std::map Substation::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Substation_factory() diff --git a/CGMES_3.0.0/Substation.hpp b/CGMES_3.0.0/Substation.hpp index 24adc862e..0b9bb1f4c 100644 --- a/CGMES_3.0.0/Substation.hpp +++ b/CGMES_3.0.0/Substation.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Substation_factory(); diff --git a/CGMES_3.0.0/SurgeArrester.cpp b/CGMES_3.0.0/SurgeArrester.cpp index 21fbdfdf9..3ebaa22a1 100644 --- a/CGMES_3.0.0/SurgeArrester.cpp +++ b/CGMES_3.0.0/SurgeArrester.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SurgeArrester(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + SurgeArrester::SurgeArrester() {} SurgeArrester::~SurgeArrester() {} -static const std::list PossibleProfilesForClass = +const std::list& SurgeArrester::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SurgeArrester::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SurgeArrester::getPossibleProfilesForClass() const +const std::string& SurgeArrester::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SurgeArrester::getPossibleProfilesForAttributes() const +const std::list& SurgeArrester::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AuxiliaryEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SurgeArrester::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SurgeArrester::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SurgeArrester::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char SurgeArrester::debugName[] = "SurgeArrester"; @@ -46,7 +78,7 @@ const char* SurgeArrester::debugString() const void SurgeArrester::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SurgeArrester", &SurgeArrester_factory); + factory_map.emplace("SurgeArrester", &SurgeArrester_factory); } void SurgeArrester::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void SurgeArrester::addEnumGetFnsToMap(std::map& get_ AuxiliaryEquipment::addEnumGetFnsToMap(get_map); } +bool SurgeArrester::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SurgeArrester" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SurgeArrester::declare() { return BaseClassDefiner(SurgeArrester::addConstructToMap, SurgeArrester::addPrimitiveAssignFnsToMap, SurgeArrester::addClassAssignFnsToMap, SurgeArrester::debugName); } +std::map SurgeArrester::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AuxiliaryEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SurgeArrester_factory() diff --git a/CGMES_3.0.0/SurgeArrester.hpp b/CGMES_3.0.0/SurgeArrester.hpp index 15491f8d4..23ae39da3 100644 --- a/CGMES_3.0.0/SurgeArrester.hpp +++ b/CGMES_3.0.0/SurgeArrester.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AuxiliaryEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SurgeArrester_factory(); diff --git a/CGMES_3.0.0/SvInjection.cpp b/CGMES_3.0.0/SvInjection.cpp index 4b2198756..b3d75dbfb 100644 --- a/CGMES_3.0.0/SvInjection.cpp +++ b/CGMES_3.0.0/SvInjection.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvInjection(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvInjection.TopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvInjection.pInjection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvInjection.qInjection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvInjection::SvInjection() : TopologicalNode(nullptr) {} SvInjection::~SvInjection() {} -static const std::list PossibleProfilesForClass = +const std::list& SvInjection::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvInjection::getClassNamespaceUrl() const { - { "cim:SvInjection.TopologicalNode", { CGMESProfile::SV, } }, - { "cim:SvInjection.pInjection", { CGMESProfile::SV, } }, - { "cim:SvInjection.qInjection", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvInjection::getPossibleProfilesForClass() const +const std::string& SvInjection::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvInjection::getPossibleProfilesForAttributes() const +const std::list& SvInjection::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvInjection::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvInjection::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvInjection::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_SvInjection(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvInjection::debugString() const void SvInjection::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvInjection", &SvInjection_factory); + factory_map.emplace("SvInjection", &SvInjection_factory); } void SvInjection::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvInjection.pInjection", &assign_SvInjection_pInjection); - assign_map.emplace("cim:SvInjection.qInjection", &assign_SvInjection_qInjection); + assign_map.emplace("SvInjection.pInjection", &assign_SvInjection_pInjection); + assign_map.emplace("SvInjection.qInjection", &assign_SvInjection_qInjection); } void SvInjection::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvInjection.TopologicalNode", &assign_SvInjection_TopologicalNode); + assign_map.emplace("SvInjection.TopologicalNode", &assign_SvInjection_TopologicalNode); } void SvInjection::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvInjection.pInjection", &get_SvInjection_pInjection); - get_map.emplace("cim:SvInjection.qInjection", &get_SvInjection_qInjection); + get_map.emplace("SvInjection.pInjection", &get_SvInjection_pInjection); + get_map.emplace("SvInjection.qInjection", &get_SvInjection_qInjection); } void SvInjection::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvInjection.TopologicalNode", &get_SvInjection_TopologicalNode); + get_map.emplace("SvInjection.TopologicalNode", &get_SvInjection_TopologicalNode); } void SvInjection::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvInjection::addEnumGetFnsToMap(std::map& get_ma BaseClass::addEnumGetFnsToMap(get_map); } +bool SvInjection::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvInjection" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvInjection::declare() { return BaseClassDefiner(SvInjection::addConstructToMap, SvInjection::addPrimitiveAssignFnsToMap, SvInjection::addClassAssignFnsToMap, SvInjection::debugName); } +std::map SvInjection::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvInjection_factory() diff --git a/CGMES_3.0.0/SvInjection.hpp b/CGMES_3.0.0/SvInjection.hpp index a5bcf625a..d8efafa9e 100644 --- a/CGMES_3.0.0/SvInjection.hpp +++ b/CGMES_3.0.0/SvInjection.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ReactivePower.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvInjection_factory(); diff --git a/CGMES_3.0.0/SvPowerFlow.cpp b/CGMES_3.0.0/SvPowerFlow.cpp index dfc4eab2e..997b5b75c 100644 --- a/CGMES_3.0.0/SvPowerFlow.cpp +++ b/CGMES_3.0.0/SvPowerFlow.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvPowerFlow(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvPowerFlow.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvPowerFlow.p", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvPowerFlow.q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvPowerFlow::SvPowerFlow() : Terminal(nullptr) {} SvPowerFlow::~SvPowerFlow() {} -static const std::list PossibleProfilesForClass = +const std::list& SvPowerFlow::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvPowerFlow::getClassNamespaceUrl() const { - { "cim:SvPowerFlow.Terminal", { CGMESProfile::SV, } }, - { "cim:SvPowerFlow.p", { CGMESProfile::SV, } }, - { "cim:SvPowerFlow.q", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvPowerFlow::getPossibleProfilesForClass() const +const std::string& SvPowerFlow::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvPowerFlow::getPossibleProfilesForAttributes() const +const std::list& SvPowerFlow::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvPowerFlow::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvPowerFlow::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvPowerFlow::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Terminal_SvPowerFlow(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvPowerFlow::debugString() const void SvPowerFlow::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvPowerFlow", &SvPowerFlow_factory); + factory_map.emplace("SvPowerFlow", &SvPowerFlow_factory); } void SvPowerFlow::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvPowerFlow.p", &assign_SvPowerFlow_p); - assign_map.emplace("cim:SvPowerFlow.q", &assign_SvPowerFlow_q); + assign_map.emplace("SvPowerFlow.p", &assign_SvPowerFlow_p); + assign_map.emplace("SvPowerFlow.q", &assign_SvPowerFlow_q); } void SvPowerFlow::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvPowerFlow.Terminal", &assign_SvPowerFlow_Terminal); + assign_map.emplace("SvPowerFlow.Terminal", &assign_SvPowerFlow_Terminal); } void SvPowerFlow::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvPowerFlow.p", &get_SvPowerFlow_p); - get_map.emplace("cim:SvPowerFlow.q", &get_SvPowerFlow_q); + get_map.emplace("SvPowerFlow.p", &get_SvPowerFlow_p); + get_map.emplace("SvPowerFlow.q", &get_SvPowerFlow_q); } void SvPowerFlow::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvPowerFlow.Terminal", &get_SvPowerFlow_Terminal); + get_map.emplace("SvPowerFlow.Terminal", &get_SvPowerFlow_Terminal); } void SvPowerFlow::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvPowerFlow::addEnumGetFnsToMap(std::map& get_ma BaseClass::addEnumGetFnsToMap(get_map); } +bool SvPowerFlow::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvPowerFlow" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvPowerFlow::declare() { return BaseClassDefiner(SvPowerFlow::addConstructToMap, SvPowerFlow::addPrimitiveAssignFnsToMap, SvPowerFlow::addClassAssignFnsToMap, SvPowerFlow::debugName); } +std::map SvPowerFlow::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvPowerFlow_factory() diff --git a/CGMES_3.0.0/SvPowerFlow.hpp b/CGMES_3.0.0/SvPowerFlow.hpp index a27cce2a2..77b1b40d0 100644 --- a/CGMES_3.0.0/SvPowerFlow.hpp +++ b/CGMES_3.0.0/SvPowerFlow.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "ReactivePower.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvPowerFlow_factory(); diff --git a/CGMES_3.0.0/SvShuntCompensatorSections.cpp b/CGMES_3.0.0/SvShuntCompensatorSections.cpp index a14be0d1b..28e1d06b8 100644 --- a/CGMES_3.0.0/SvShuntCompensatorSections.cpp +++ b/CGMES_3.0.0/SvShuntCompensatorSections.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvShuntCompensatorSections(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvShuntCompensatorSections.ShuntCompensator", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvShuntCompensatorSections.sections", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvShuntCompensatorSections::SvShuntCompensatorSections() : ShuntCompensator(nullptr) {} SvShuntCompensatorSections::~SvShuntCompensatorSections() {} -static const std::list PossibleProfilesForClass = +const std::list& SvShuntCompensatorSections::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvShuntCompensatorSections::getClassNamespaceUrl() const { - { "cim:SvShuntCompensatorSections.ShuntCompensator", { CGMESProfile::SV, } }, - { "cim:SvShuntCompensatorSections.sections", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvShuntCompensatorSections::getPossibleProfilesForClass() const +const std::string& SvShuntCompensatorSections::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvShuntCompensatorSections::getPossibleProfilesForAttributes() const +const std::list& SvShuntCompensatorSections::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvShuntCompensatorSections::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvShuntCompensatorSections::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvShuntCompensatorSections::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ShuntCompensator_SvShuntCompensatorSections(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvShuntCompensatorSections::debugString() const void SvShuntCompensatorSections::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvShuntCompensatorSections", &SvShuntCompensatorSections_factory); + factory_map.emplace("SvShuntCompensatorSections", &SvShuntCompensatorSections_factory); } void SvShuntCompensatorSections::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvShuntCompensatorSections.sections", &assign_SvShuntCompensatorSections_sections); + assign_map.emplace("SvShuntCompensatorSections.sections", &assign_SvShuntCompensatorSections_sections); } void SvShuntCompensatorSections::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvShuntCompensatorSections.ShuntCompensator", &assign_SvShuntCompensatorSections_ShuntCompensator); + assign_map.emplace("SvShuntCompensatorSections.ShuntCompensator", &assign_SvShuntCompensatorSections_ShuntCompensator); } void SvShuntCompensatorSections::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvShuntCompensatorSections.sections", &get_SvShuntCompensatorSections_sections); + get_map.emplace("SvShuntCompensatorSections.sections", &get_SvShuntCompensatorSections_sections); } void SvShuntCompensatorSections::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvShuntCompensatorSections.ShuntCompensator", &get_SvShuntCompensatorSections_ShuntCompensator); + get_map.emplace("SvShuntCompensatorSections.ShuntCompensator", &get_SvShuntCompensatorSections_ShuntCompensator); } void SvShuntCompensatorSections::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvShuntCompensatorSections::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SvShuntCompensatorSections::declare() { return BaseClassDefiner(SvShuntCompensatorSections::addConstructToMap, SvShuntCompensatorSections::addPrimitiveAssignFnsToMap, SvShuntCompensatorSections::addClassAssignFnsToMap, SvShuntCompensatorSections::debugName); } +std::map SvShuntCompensatorSections::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvShuntCompensatorSections_factory() diff --git a/CGMES_3.0.0/SvShuntCompensatorSections.hpp b/CGMES_3.0.0/SvShuntCompensatorSections.hpp index 6a7f03632..854cad870 100644 --- a/CGMES_3.0.0/SvShuntCompensatorSections.hpp +++ b/CGMES_3.0.0/SvShuntCompensatorSections.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvShuntCompensatorSections_factory(); diff --git a/CGMES_3.0.0/SvStatus.cpp b/CGMES_3.0.0/SvStatus.cpp index 17aca7359..c507d6203 100644 --- a/CGMES_3.0.0/SvStatus.cpp +++ b/CGMES_3.0.0/SvStatus.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvStatus(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvStatus.ConductingEquipment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvStatus.inService", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvStatus::SvStatus() : ConductingEquipment(nullptr) {} SvStatus::~SvStatus() {} -static const std::list PossibleProfilesForClass = +const std::list& SvStatus::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvStatus::getClassNamespaceUrl() const { - { "cim:SvStatus.ConductingEquipment", { CGMESProfile::SV, } }, - { "cim:SvStatus.inService", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvStatus::getPossibleProfilesForClass() const +const std::string& SvStatus::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvStatus::getPossibleProfilesForAttributes() const +const std::list& SvStatus::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvStatus::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvStatus::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvStatus::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ConductingEquipment_SvStatus(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvStatus::debugString() const void SvStatus::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvStatus", &SvStatus_factory); + factory_map.emplace("SvStatus", &SvStatus_factory); } void SvStatus::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvStatus.inService", &assign_SvStatus_inService); + assign_map.emplace("SvStatus.inService", &assign_SvStatus_inService); } void SvStatus::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvStatus.ConductingEquipment", &assign_SvStatus_ConductingEquipment); + assign_map.emplace("SvStatus.ConductingEquipment", &assign_SvStatus_ConductingEquipment); } void SvStatus::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvStatus.inService", &get_SvStatus_inService); + get_map.emplace("SvStatus.inService", &get_SvStatus_inService); } void SvStatus::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvStatus.ConductingEquipment", &get_SvStatus_ConductingEquipment); + get_map.emplace("SvStatus.ConductingEquipment", &get_SvStatus_ConductingEquipment); } void SvStatus::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvStatus::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvStatus::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvStatus" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvStatus::declare() { return BaseClassDefiner(SvStatus::addConstructToMap, SvStatus::addPrimitiveAssignFnsToMap, SvStatus::addClassAssignFnsToMap, SvStatus::debugName); } +std::map SvStatus::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvStatus_factory() diff --git a/CGMES_3.0.0/SvStatus.hpp b/CGMES_3.0.0/SvStatus.hpp index 8848a652b..dd82bc67f 100644 --- a/CGMES_3.0.0/SvStatus.hpp +++ b/CGMES_3.0.0/SvStatus.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvStatus_factory(); diff --git a/CGMES_3.0.0/SvSwitch.cpp b/CGMES_3.0.0/SvSwitch.cpp index bf153b56c..93701b812 100644 --- a/CGMES_3.0.0/SvSwitch.cpp +++ b/CGMES_3.0.0/SvSwitch.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvSwitch(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvSwitch.Switch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvSwitch.open", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvSwitch::SvSwitch() : Switch(nullptr) {} SvSwitch::~SvSwitch() {} -static const std::list PossibleProfilesForClass = +const std::list& SvSwitch::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvSwitch::getClassNamespaceUrl() const { - { "cim:SvSwitch.Switch", { CGMESProfile::SV, } }, - { "cim:SvSwitch.open", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvSwitch::getPossibleProfilesForClass() const +const std::string& SvSwitch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvSwitch::getPossibleProfilesForAttributes() const +const std::list& SvSwitch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvSwitch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvSwitch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvSwitch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Switch_SvSwitch(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvSwitch::debugString() const void SvSwitch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvSwitch", &SvSwitch_factory); + factory_map.emplace("SvSwitch", &SvSwitch_factory); } void SvSwitch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvSwitch.open", &assign_SvSwitch_open); + assign_map.emplace("SvSwitch.open", &assign_SvSwitch_open); } void SvSwitch::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvSwitch.Switch", &assign_SvSwitch_Switch); + assign_map.emplace("SvSwitch.Switch", &assign_SvSwitch_Switch); } void SvSwitch::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvSwitch.open", &get_SvSwitch_open); + get_map.emplace("SvSwitch.open", &get_SvSwitch_open); } void SvSwitch::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvSwitch.Switch", &get_SvSwitch_Switch); + get_map.emplace("SvSwitch.Switch", &get_SvSwitch_Switch); } void SvSwitch::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvSwitch::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvSwitch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvSwitch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvSwitch::declare() { return BaseClassDefiner(SvSwitch::addConstructToMap, SvSwitch::addPrimitiveAssignFnsToMap, SvSwitch::addClassAssignFnsToMap, SvSwitch::debugName); } +std::map SvSwitch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvSwitch_factory() diff --git a/CGMES_3.0.0/SvSwitch.hpp b/CGMES_3.0.0/SvSwitch.hpp index 330076461..102bb8d41 100644 --- a/CGMES_3.0.0/SvSwitch.hpp +++ b/CGMES_3.0.0/SvSwitch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvSwitch_factory(); diff --git a/CGMES_3.0.0/SvTapStep.cpp b/CGMES_3.0.0/SvTapStep.cpp index 717c92b1a..5366bc656 100644 --- a/CGMES_3.0.0/SvTapStep.cpp +++ b/CGMES_3.0.0/SvTapStep.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvTapStep(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvTapStep.TapChanger", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvTapStep.position", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvTapStep::SvTapStep() : TapChanger(nullptr) {} SvTapStep::~SvTapStep() {} -static const std::list PossibleProfilesForClass = +const std::list& SvTapStep::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvTapStep::getClassNamespaceUrl() const { - { "cim:SvTapStep.TapChanger", { CGMESProfile::SV, } }, - { "cim:SvTapStep.position", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvTapStep::getPossibleProfilesForClass() const +const std::string& SvTapStep::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvTapStep::getPossibleProfilesForAttributes() const +const std::list& SvTapStep::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvTapStep::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvTapStep::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvTapStep::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_SvTapStep(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* SvTapStep::debugString() const void SvTapStep::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvTapStep", &SvTapStep_factory); + factory_map.emplace("SvTapStep", &SvTapStep_factory); } void SvTapStep::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvTapStep.position", &assign_SvTapStep_position); + assign_map.emplace("SvTapStep.position", &assign_SvTapStep_position); } void SvTapStep::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvTapStep.TapChanger", &assign_SvTapStep_TapChanger); + assign_map.emplace("SvTapStep.TapChanger", &assign_SvTapStep_TapChanger); } void SvTapStep::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvTapStep.position", &get_SvTapStep_position); + get_map.emplace("SvTapStep.position", &get_SvTapStep_position); } void SvTapStep::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvTapStep.TapChanger", &get_SvTapStep_TapChanger); + get_map.emplace("SvTapStep.TapChanger", &get_SvTapStep_TapChanger); } void SvTapStep::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void SvTapStep::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvTapStep::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvTapStep" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvTapStep::declare() { return BaseClassDefiner(SvTapStep::addConstructToMap, SvTapStep::addPrimitiveAssignFnsToMap, SvTapStep::addClassAssignFnsToMap, SvTapStep::debugName); } +std::map SvTapStep::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvTapStep_factory() diff --git a/CGMES_3.0.0/SvTapStep.hpp b/CGMES_3.0.0/SvTapStep.hpp index 25f83b9fa..4816645cf 100644 --- a/CGMES_3.0.0/SvTapStep.hpp +++ b/CGMES_3.0.0/SvTapStep.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvTapStep_factory(); diff --git a/CGMES_3.0.0/SvVoltage.cpp b/CGMES_3.0.0/SvVoltage.cpp index 697cd57c5..f2a1ae864 100644 --- a/CGMES_3.0.0/SvVoltage.cpp +++ b/CGMES_3.0.0/SvVoltage.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SvVoltage(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SvVoltage.TopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvVoltage.angle", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "SvVoltage.v", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + SvVoltage::SvVoltage() : TopologicalNode(nullptr) {} SvVoltage::~SvVoltage() {} -static const std::list PossibleProfilesForClass = +const std::list& SvVoltage::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SvVoltage::getClassNamespaceUrl() const { - { "cim:SvVoltage.TopologicalNode", { CGMESProfile::SV, } }, - { "cim:SvVoltage.angle", { CGMESProfile::SV, } }, - { "cim:SvVoltage.v", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SvVoltage::getPossibleProfilesForClass() const +const std::string& SvVoltage::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SvVoltage::getPossibleProfilesForAttributes() const +const std::list& SvVoltage::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SvVoltage::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SvVoltage::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SvVoltage::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_SvVoltage(BaseClass*, BaseClass*); @@ -139,31 +171,31 @@ const char* SvVoltage::debugString() const void SvVoltage::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SvVoltage", &SvVoltage_factory); + factory_map.emplace("SvVoltage", &SvVoltage_factory); } void SvVoltage::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvVoltage.angle", &assign_SvVoltage_angle); - assign_map.emplace("cim:SvVoltage.v", &assign_SvVoltage_v); + assign_map.emplace("SvVoltage.angle", &assign_SvVoltage_angle); + assign_map.emplace("SvVoltage.v", &assign_SvVoltage_v); } void SvVoltage::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SvVoltage.TopologicalNode", &assign_SvVoltage_TopologicalNode); + assign_map.emplace("SvVoltage.TopologicalNode", &assign_SvVoltage_TopologicalNode); } void SvVoltage::addPrimitiveGetFnsToMap(std::map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SvVoltage.angle", &get_SvVoltage_angle); - get_map.emplace("cim:SvVoltage.v", &get_SvVoltage_v); + get_map.emplace("SvVoltage.angle", &get_SvVoltage_angle); + get_map.emplace("SvVoltage.v", &get_SvVoltage_v); } void SvVoltage::addClassGetFnsToMap(std::map& get_map) const { BaseClass::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SvVoltage.TopologicalNode", &get_SvVoltage_TopologicalNode); + get_map.emplace("SvVoltage.TopologicalNode", &get_SvVoltage_TopologicalNode); } void SvVoltage::addEnumGetFnsToMap(std::map& get_map) const @@ -171,11 +203,25 @@ void SvVoltage::addEnumGetFnsToMap(std::map& get_map) BaseClass::addEnumGetFnsToMap(get_map); } +bool SvVoltage::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SvVoltage" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SvVoltage::declare() { return BaseClassDefiner(SvVoltage::addConstructToMap, SvVoltage::addPrimitiveAssignFnsToMap, SvVoltage::addClassAssignFnsToMap, SvVoltage::debugName); } +std::map SvVoltage::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SvVoltage_factory() diff --git a/CGMES_3.0.0/SvVoltage.hpp b/CGMES_3.0.0/SvVoltage.hpp index 958a26086..ffd780c3b 100644 --- a/CGMES_3.0.0/SvVoltage.hpp +++ b/CGMES_3.0.0/SvVoltage.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Voltage.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SvVoltage_factory(); diff --git a/CGMES_3.0.0/Switch.cpp b/CGMES_3.0.0/Switch.cpp index 28f2b683f..282f2df06 100644 --- a/CGMES_3.0.0/Switch.cpp +++ b/CGMES_3.0.0/Switch.cpp @@ -13,40 +13,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Switch(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::SV, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Switch.SvSwitch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "Switch.SwitchSchedules", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Switch.locked", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "Switch.normalOpen", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Switch.open", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "Switch.ratedCurrent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Switch.retained", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Switch::Switch() {} Switch::~Switch() {} -static const std::list PossibleProfilesForClass = +const std::list& Switch::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& Switch::getClassNamespaceUrl() const { - { "cim:Switch.SvSwitch", { CGMESProfile::SV, } }, - { "cim:Switch.SwitchSchedules", { CGMESProfile::EQ, } }, - { "cim:Switch.locked", { CGMESProfile::SSH, } }, - { "cim:Switch.normalOpen", { CGMESProfile::EQ, } }, - { "cim:Switch.open", { CGMESProfile::SSH, } }, - { "cim:Switch.ratedCurrent", { CGMESProfile::EQ, } }, - { "cim:Switch.retained", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -Switch::getPossibleProfilesForClass() const +const std::string& Switch::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -Switch::getPossibleProfilesForAttributes() const +const std::list& Switch::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ConductingEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Switch::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Switch::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Switch::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvSwitch_Switch(BaseClass*, BaseClass*); @@ -238,32 +270,32 @@ const char* Switch::debugString() const void Switch::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Switch", &Switch_factory); + factory_map.emplace("Switch", &Switch_factory); } void Switch::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Switch.locked", &assign_Switch_locked); - assign_map.emplace("cim:Switch.normalOpen", &assign_Switch_normalOpen); - assign_map.emplace("cim:Switch.open", &assign_Switch_open); - assign_map.emplace("cim:Switch.ratedCurrent", &assign_Switch_ratedCurrent); - assign_map.emplace("cim:Switch.retained", &assign_Switch_retained); + assign_map.emplace("Switch.locked", &assign_Switch_locked); + assign_map.emplace("Switch.normalOpen", &assign_Switch_normalOpen); + assign_map.emplace("Switch.open", &assign_Switch_open); + assign_map.emplace("Switch.ratedCurrent", &assign_Switch_ratedCurrent); + assign_map.emplace("Switch.retained", &assign_Switch_retained); } void Switch::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Switch.SvSwitch", &assign_Switch_SvSwitch); - assign_map.emplace("cim:Switch.SwitchSchedules", &assign_Switch_SwitchSchedules); + assign_map.emplace("Switch.SvSwitch", &assign_Switch_SvSwitch); + assign_map.emplace("Switch.SwitchSchedules", &assign_Switch_SwitchSchedules); } void Switch::addPrimitiveGetFnsToMap(std::map& get_map) const { ConductingEquipment::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:Switch.locked", &get_Switch_locked); - get_map.emplace("cim:Switch.normalOpen", &get_Switch_normalOpen); - get_map.emplace("cim:Switch.open", &get_Switch_open); - get_map.emplace("cim:Switch.ratedCurrent", &get_Switch_ratedCurrent); - get_map.emplace("cim:Switch.retained", &get_Switch_retained); + get_map.emplace("Switch.locked", &get_Switch_locked); + get_map.emplace("Switch.normalOpen", &get_Switch_normalOpen); + get_map.emplace("Switch.open", &get_Switch_open); + get_map.emplace("Switch.ratedCurrent", &get_Switch_ratedCurrent); + get_map.emplace("Switch.retained", &get_Switch_retained); } void Switch::addClassGetFnsToMap(std::map& get_map) const @@ -276,11 +308,25 @@ void Switch::addEnumGetFnsToMap(std::map& get_map) co ConductingEquipment::addEnumGetFnsToMap(get_map); } +bool Switch::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Switch" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner Switch::declare() { return BaseClassDefiner(Switch::addConstructToMap, Switch::addPrimitiveAssignFnsToMap, Switch::addClassAssignFnsToMap, Switch::debugName); } +std::map Switch::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ConductingEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Switch_factory() diff --git a/CGMES_3.0.0/Switch.hpp b/CGMES_3.0.0/Switch.hpp index 000b2cc72..c25f3320a 100644 --- a/CGMES_3.0.0/Switch.hpp +++ b/CGMES_3.0.0/Switch.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ConductingEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" @@ -52,8 +53,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -61,7 +69,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Switch_factory(); diff --git a/CGMES_3.0.0/SwitchSchedule.cpp b/CGMES_3.0.0/SwitchSchedule.cpp index 17357887b..a2ee35d59 100644 --- a/CGMES_3.0.0/SwitchSchedule.cpp +++ b/CGMES_3.0.0/SwitchSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SwitchSchedule(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SwitchSchedule.Switch", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + SwitchSchedule::SwitchSchedule() : Switch(nullptr) {} SwitchSchedule::~SwitchSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& SwitchSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SwitchSchedule::getClassNamespaceUrl() const { - { "cim:SwitchSchedule.Switch", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SwitchSchedule::getPossibleProfilesForClass() const +const std::string& SwitchSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SwitchSchedule::getPossibleProfilesForAttributes() const +const std::list& SwitchSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SwitchSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SwitchSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SwitchSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Switch_SwitchSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* SwitchSchedule::debugString() const void SwitchSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SwitchSchedule", &SwitchSchedule_factory); + factory_map.emplace("SwitchSchedule", &SwitchSchedule_factory); } void SwitchSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void SwitchSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SwitchSchedule.Switch", &assign_SwitchSchedule_Switch); + assign_map.emplace("SwitchSchedule.Switch", &assign_SwitchSchedule_Switch); } void SwitchSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void SwitchSchedule::addPrimitiveGetFnsToMap(std::map void SwitchSchedule::addClassGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SwitchSchedule.Switch", &get_SwitchSchedule_Switch); + get_map.emplace("SwitchSchedule.Switch", &get_SwitchSchedule_Switch); } void SwitchSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void SwitchSchedule::addEnumGetFnsToMap(std::map& get SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool SwitchSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SwitchSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner SwitchSchedule::declare() { return BaseClassDefiner(SwitchSchedule::addConstructToMap, SwitchSchedule::addPrimitiveAssignFnsToMap, SwitchSchedule::addClassAssignFnsToMap, SwitchSchedule::debugName); } +std::map SwitchSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SwitchSchedule_factory() diff --git a/CGMES_3.0.0/SwitchSchedule.hpp b/CGMES_3.0.0/SwitchSchedule.hpp index cca2821c4..714e63a9b 100644 --- a/CGMES_3.0.0/SwitchSchedule.hpp +++ b/CGMES_3.0.0/SwitchSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SwitchSchedule_factory(); diff --git a/CGMES_3.0.0/SynchronousMachine.cpp b/CGMES_3.0.0/SynchronousMachine.cpp index 974d4b6a4..f72b951a9 100644 --- a/CGMES_3.0.0/SynchronousMachine.cpp +++ b/CGMES_3.0.0/SynchronousMachine.cpp @@ -13,57 +13,89 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachine(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SC, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachine.InitialReactiveCapabilityCurve", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.SynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachine.earthing", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.earthingStarPointR", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.earthingStarPointX", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.ikk", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.maxQ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.minQ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.mu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.operatingMode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "SynchronousMachine.qPercent", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.r0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.r2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.referencePriority", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "SynchronousMachine.satDirectSubtransX", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.satDirectSyncX", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.satDirectTransX", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.shortCircuitRotorType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.type", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "SynchronousMachine.voltageRegulationRange", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.x0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "SynchronousMachine.x2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachine::SynchronousMachine() : InitialReactiveCapabilityCurve(nullptr), SynchronousMachineDynamics(nullptr) {} SynchronousMachine::~SynchronousMachine() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SC, - CGMESProfile::SSH, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:SynchronousMachine.InitialReactiveCapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachine.earthing", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.earthingStarPointR", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.earthingStarPointX", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.ikk", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.maxQ", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.minQ", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.mu", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.operatingMode", { CGMESProfile::SSH, } }, - { "cim:SynchronousMachine.qPercent", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.r", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.r0", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.r2", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.referencePriority", { CGMESProfile::SSH, } }, - { "cim:SynchronousMachine.satDirectSubtransX", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.satDirectSyncX", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.satDirectTransX", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.shortCircuitRotorType", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.type", { CGMESProfile::EQ, } }, - { "cim:SynchronousMachine.voltageRegulationRange", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.x0", { CGMESProfile::SC, } }, - { "cim:SynchronousMachine.x2", { CGMESProfile::SC, } }, -}; - -std::list -SynchronousMachine::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -SynchronousMachine::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachine::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& SynchronousMachine::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& SynchronousMachine::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& SynchronousMachine::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& SynchronousMachine::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachine::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachine::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachine::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ReactiveCapabilityCurve_InitiallyUsedBySynchronousMachines(BaseClass*, BaseClass*); @@ -732,75 +764,81 @@ const char* SynchronousMachine::debugString() const void SynchronousMachine::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachine", &SynchronousMachine_factory); + factory_map.emplace("SynchronousMachine", &SynchronousMachine_factory); } void SynchronousMachine::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachine.earthing", &assign_SynchronousMachine_earthing); - assign_map.emplace("cim:SynchronousMachine.earthingStarPointR", &assign_SynchronousMachine_earthingStarPointR); - assign_map.emplace("cim:SynchronousMachine.earthingStarPointX", &assign_SynchronousMachine_earthingStarPointX); - assign_map.emplace("cim:SynchronousMachine.ikk", &assign_SynchronousMachine_ikk); - assign_map.emplace("cim:SynchronousMachine.maxQ", &assign_SynchronousMachine_maxQ); - assign_map.emplace("cim:SynchronousMachine.minQ", &assign_SynchronousMachine_minQ); - assign_map.emplace("cim:SynchronousMachine.mu", &assign_SynchronousMachine_mu); - assign_map.emplace("cim:SynchronousMachine.operatingMode", &assign_SynchronousMachine_operatingMode); - assign_map.emplace("cim:SynchronousMachine.qPercent", &assign_SynchronousMachine_qPercent); - assign_map.emplace("cim:SynchronousMachine.r", &assign_SynchronousMachine_r); - assign_map.emplace("cim:SynchronousMachine.r0", &assign_SynchronousMachine_r0); - assign_map.emplace("cim:SynchronousMachine.r2", &assign_SynchronousMachine_r2); - assign_map.emplace("cim:SynchronousMachine.referencePriority", &assign_SynchronousMachine_referencePriority); - assign_map.emplace("cim:SynchronousMachine.satDirectSubtransX", &assign_SynchronousMachine_satDirectSubtransX); - assign_map.emplace("cim:SynchronousMachine.satDirectSyncX", &assign_SynchronousMachine_satDirectSyncX); - assign_map.emplace("cim:SynchronousMachine.satDirectTransX", &assign_SynchronousMachine_satDirectTransX); - assign_map.emplace("cim:SynchronousMachine.shortCircuitRotorType", &assign_SynchronousMachine_shortCircuitRotorType); - assign_map.emplace("cim:SynchronousMachine.type", &assign_SynchronousMachine_type); - assign_map.emplace("cim:SynchronousMachine.voltageRegulationRange", &assign_SynchronousMachine_voltageRegulationRange); - assign_map.emplace("cim:SynchronousMachine.x0", &assign_SynchronousMachine_x0); - assign_map.emplace("cim:SynchronousMachine.x2", &assign_SynchronousMachine_x2); + assign_map.emplace("SynchronousMachine.earthing", &assign_SynchronousMachine_earthing); + assign_map.emplace("SynchronousMachine.earthingStarPointR", &assign_SynchronousMachine_earthingStarPointR); + assign_map.emplace("SynchronousMachine.earthingStarPointX", &assign_SynchronousMachine_earthingStarPointX); + assign_map.emplace("SynchronousMachine.ikk", &assign_SynchronousMachine_ikk); + assign_map.emplace("SynchronousMachine.maxQ", &assign_SynchronousMachine_maxQ); + assign_map.emplace("SynchronousMachine.minQ", &assign_SynchronousMachine_minQ); + assign_map.emplace("SynchronousMachine.mu", &assign_SynchronousMachine_mu); + assign_map.emplace("SynchronousMachine.operatingMode", &assign_SynchronousMachine_operatingMode); + assign_map.emplace("SynchronousMachine.qPercent", &assign_SynchronousMachine_qPercent); + assign_map.emplace("SynchronousMachine.r", &assign_SynchronousMachine_r); + assign_map.emplace("SynchronousMachine.r0", &assign_SynchronousMachine_r0); + assign_map.emplace("SynchronousMachine.r2", &assign_SynchronousMachine_r2); + assign_map.emplace("SynchronousMachine.referencePriority", &assign_SynchronousMachine_referencePriority); + assign_map.emplace("SynchronousMachine.satDirectSubtransX", &assign_SynchronousMachine_satDirectSubtransX); + assign_map.emplace("SynchronousMachine.satDirectSyncX", &assign_SynchronousMachine_satDirectSyncX); + assign_map.emplace("SynchronousMachine.satDirectTransX", &assign_SynchronousMachine_satDirectTransX); + assign_map.emplace("SynchronousMachine.shortCircuitRotorType", &assign_SynchronousMachine_shortCircuitRotorType); + assign_map.emplace("SynchronousMachine.type", &assign_SynchronousMachine_type); + assign_map.emplace("SynchronousMachine.voltageRegulationRange", &assign_SynchronousMachine_voltageRegulationRange); + assign_map.emplace("SynchronousMachine.x0", &assign_SynchronousMachine_x0); + assign_map.emplace("SynchronousMachine.x2", &assign_SynchronousMachine_x2); } void SynchronousMachine::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachine.InitialReactiveCapabilityCurve", &assign_SynchronousMachine_InitialReactiveCapabilityCurve); - assign_map.emplace("cim:SynchronousMachine.SynchronousMachineDynamics", &assign_SynchronousMachine_SynchronousMachineDynamics); + assign_map.emplace("SynchronousMachine.InitialReactiveCapabilityCurve", &assign_SynchronousMachine_InitialReactiveCapabilityCurve); + assign_map.emplace("SynchronousMachine.SynchronousMachineDynamics", &assign_SynchronousMachine_SynchronousMachineDynamics); } void SynchronousMachine::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachine::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.earthing", &get_SynchronousMachine_earthing); - get_map.emplace("cim:SynchronousMachine.earthingStarPointR", &get_SynchronousMachine_earthingStarPointR); - get_map.emplace("cim:SynchronousMachine.earthingStarPointX", &get_SynchronousMachine_earthingStarPointX); - get_map.emplace("cim:SynchronousMachine.ikk", &get_SynchronousMachine_ikk); - get_map.emplace("cim:SynchronousMachine.maxQ", &get_SynchronousMachine_maxQ); - get_map.emplace("cim:SynchronousMachine.minQ", &get_SynchronousMachine_minQ); - get_map.emplace("cim:SynchronousMachine.mu", &get_SynchronousMachine_mu); - get_map.emplace("cim:SynchronousMachine.qPercent", &get_SynchronousMachine_qPercent); - get_map.emplace("cim:SynchronousMachine.r", &get_SynchronousMachine_r); - get_map.emplace("cim:SynchronousMachine.r0", &get_SynchronousMachine_r0); - get_map.emplace("cim:SynchronousMachine.r2", &get_SynchronousMachine_r2); - get_map.emplace("cim:SynchronousMachine.referencePriority", &get_SynchronousMachine_referencePriority); - get_map.emplace("cim:SynchronousMachine.satDirectSubtransX", &get_SynchronousMachine_satDirectSubtransX); - get_map.emplace("cim:SynchronousMachine.satDirectSyncX", &get_SynchronousMachine_satDirectSyncX); - get_map.emplace("cim:SynchronousMachine.satDirectTransX", &get_SynchronousMachine_satDirectTransX); - get_map.emplace("cim:SynchronousMachine.voltageRegulationRange", &get_SynchronousMachine_voltageRegulationRange); - get_map.emplace("cim:SynchronousMachine.x0", &get_SynchronousMachine_x0); - get_map.emplace("cim:SynchronousMachine.x2", &get_SynchronousMachine_x2); + get_map.emplace("SynchronousMachine.earthing", &get_SynchronousMachine_earthing); + get_map.emplace("SynchronousMachine.earthingStarPointR", &get_SynchronousMachine_earthingStarPointR); + get_map.emplace("SynchronousMachine.earthingStarPointX", &get_SynchronousMachine_earthingStarPointX); + get_map.emplace("SynchronousMachine.ikk", &get_SynchronousMachine_ikk); + get_map.emplace("SynchronousMachine.maxQ", &get_SynchronousMachine_maxQ); + get_map.emplace("SynchronousMachine.minQ", &get_SynchronousMachine_minQ); + get_map.emplace("SynchronousMachine.mu", &get_SynchronousMachine_mu); + get_map.emplace("SynchronousMachine.qPercent", &get_SynchronousMachine_qPercent); + get_map.emplace("SynchronousMachine.r", &get_SynchronousMachine_r); + get_map.emplace("SynchronousMachine.r0", &get_SynchronousMachine_r0); + get_map.emplace("SynchronousMachine.r2", &get_SynchronousMachine_r2); + get_map.emplace("SynchronousMachine.referencePriority", &get_SynchronousMachine_referencePriority); + get_map.emplace("SynchronousMachine.satDirectSubtransX", &get_SynchronousMachine_satDirectSubtransX); + get_map.emplace("SynchronousMachine.satDirectSyncX", &get_SynchronousMachine_satDirectSyncX); + get_map.emplace("SynchronousMachine.satDirectTransX", &get_SynchronousMachine_satDirectTransX); + get_map.emplace("SynchronousMachine.voltageRegulationRange", &get_SynchronousMachine_voltageRegulationRange); + get_map.emplace("SynchronousMachine.x0", &get_SynchronousMachine_x0); + get_map.emplace("SynchronousMachine.x2", &get_SynchronousMachine_x2); } void SynchronousMachine::addClassGetFnsToMap(std::map& get_map) const { RotatingMachine::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.InitialReactiveCapabilityCurve", &get_SynchronousMachine_InitialReactiveCapabilityCurve); + get_map.emplace("SynchronousMachine.InitialReactiveCapabilityCurve", &get_SynchronousMachine_InitialReactiveCapabilityCurve); } void SynchronousMachine::addEnumGetFnsToMap(std::map& get_map) const { RotatingMachine::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachine.operatingMode", &get_SynchronousMachine_operatingMode); - get_map.emplace("cim:SynchronousMachine.shortCircuitRotorType", &get_SynchronousMachine_shortCircuitRotorType); - get_map.emplace("cim:SynchronousMachine.type", &get_SynchronousMachine_type); + get_map.emplace("SynchronousMachine.operatingMode", &get_SynchronousMachine_operatingMode); + get_map.emplace("SynchronousMachine.shortCircuitRotorType", &get_SynchronousMachine_shortCircuitRotorType); + get_map.emplace("SynchronousMachine.type", &get_SynchronousMachine_type); +} + +bool SynchronousMachine::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachine" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachine::declare() @@ -808,6 +846,14 @@ const BaseClassDefiner SynchronousMachine::declare() return BaseClassDefiner(SynchronousMachine::addConstructToMap, SynchronousMachine::addPrimitiveAssignFnsToMap, SynchronousMachine::addClassAssignFnsToMap, SynchronousMachine::debugName); } +std::map SynchronousMachine::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachine::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachine_factory() diff --git a/CGMES_3.0.0/SynchronousMachine.hpp b/CGMES_3.0.0/SynchronousMachine.hpp index c5a518ee0..815fdfcfd 100644 --- a/CGMES_3.0.0/SynchronousMachine.hpp +++ b/CGMES_3.0.0/SynchronousMachine.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachine.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "CurrentFlow.hpp" #include "Float.hpp" @@ -110,8 +111,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -119,7 +127,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachine_factory(); diff --git a/CGMES_3.0.0/SynchronousMachineDetailed.cpp b/CGMES_3.0.0/SynchronousMachineDetailed.cpp index 17e8a82bc..b856ec924 100644 --- a/CGMES_3.0.0/SynchronousMachineDetailed.cpp +++ b/CGMES_3.0.0/SynchronousMachineDetailed.cpp @@ -11,35 +11,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineDetailed(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineDetailed.efdBaseRatio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.ifdBaseType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.saturationFactor120QAxis", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDetailed.saturationFactorQAxis", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineDetailed::SynchronousMachineDetailed() {} SynchronousMachineDetailed::~SynchronousMachineDetailed() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineDetailed::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineDetailed::getClassNamespaceUrl() const { - { "cim:SynchronousMachineDetailed.efdBaseRatio", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.ifdBaseType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.saturationFactor120QAxis", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDetailed.saturationFactorQAxis", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineDetailed::getPossibleProfilesForClass() const +const std::string& SynchronousMachineDetailed::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineDetailed::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineDetailed::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineDetailed::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineDetailed::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineDetailed::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineDetailed_efdBaseRatio(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -166,15 +198,15 @@ const char* SynchronousMachineDetailed::debugString() const void SynchronousMachineDetailed::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineDetailed", &SynchronousMachineDetailed_factory); + factory_map.emplace("SynchronousMachineDetailed", &SynchronousMachineDetailed_factory); } void SynchronousMachineDetailed::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineDetailed.efdBaseRatio", &assign_SynchronousMachineDetailed_efdBaseRatio); - assign_map.emplace("cim:SynchronousMachineDetailed.ifdBaseType", &assign_SynchronousMachineDetailed_ifdBaseType); - assign_map.emplace("cim:SynchronousMachineDetailed.saturationFactor120QAxis", &assign_SynchronousMachineDetailed_saturationFactor120QAxis); - assign_map.emplace("cim:SynchronousMachineDetailed.saturationFactorQAxis", &assign_SynchronousMachineDetailed_saturationFactorQAxis); + assign_map.emplace("SynchronousMachineDetailed.efdBaseRatio", &assign_SynchronousMachineDetailed_efdBaseRatio); + assign_map.emplace("SynchronousMachineDetailed.ifdBaseType", &assign_SynchronousMachineDetailed_ifdBaseType); + assign_map.emplace("SynchronousMachineDetailed.saturationFactor120QAxis", &assign_SynchronousMachineDetailed_saturationFactor120QAxis); + assign_map.emplace("SynchronousMachineDetailed.saturationFactorQAxis", &assign_SynchronousMachineDetailed_saturationFactorQAxis); } void SynchronousMachineDetailed::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -184,9 +216,9 @@ void SynchronousMachineDetailed::addClassAssignFnsToMap(std::unordered_map& get_map) const { SynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDetailed.efdBaseRatio", &get_SynchronousMachineDetailed_efdBaseRatio); - get_map.emplace("cim:SynchronousMachineDetailed.saturationFactor120QAxis", &get_SynchronousMachineDetailed_saturationFactor120QAxis); - get_map.emplace("cim:SynchronousMachineDetailed.saturationFactorQAxis", &get_SynchronousMachineDetailed_saturationFactorQAxis); + get_map.emplace("SynchronousMachineDetailed.efdBaseRatio", &get_SynchronousMachineDetailed_efdBaseRatio); + get_map.emplace("SynchronousMachineDetailed.saturationFactor120QAxis", &get_SynchronousMachineDetailed_saturationFactor120QAxis); + get_map.emplace("SynchronousMachineDetailed.saturationFactorQAxis", &get_SynchronousMachineDetailed_saturationFactorQAxis); } void SynchronousMachineDetailed::addClassGetFnsToMap(std::map& get_map) const @@ -197,7 +229,13 @@ void SynchronousMachineDetailed::addClassGetFnsToMap(std::map& get_map) const { SynchronousMachineDynamics::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDetailed.ifdBaseType", &get_SynchronousMachineDetailed_ifdBaseType); + get_map.emplace("SynchronousMachineDetailed.ifdBaseType", &get_SynchronousMachineDetailed_ifdBaseType); +} + +bool SynchronousMachineDetailed::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachineDetailed" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachineDetailed::declare() @@ -205,6 +243,14 @@ const BaseClassDefiner SynchronousMachineDetailed::declare() return BaseClassDefiner(SynchronousMachineDetailed::addConstructToMap, SynchronousMachineDetailed::addPrimitiveAssignFnsToMap, SynchronousMachineDetailed::addClassAssignFnsToMap, SynchronousMachineDetailed::debugName); } +std::map SynchronousMachineDetailed::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineDetailed_factory() diff --git a/CGMES_3.0.0/SynchronousMachineDetailed.hpp b/CGMES_3.0.0/SynchronousMachineDetailed.hpp index 2e3a8549c..382249590 100644 --- a/CGMES_3.0.0/SynchronousMachineDetailed.hpp +++ b/CGMES_3.0.0/SynchronousMachineDetailed.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "IfdBaseKind.hpp" @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineDetailed_factory(); diff --git a/CGMES_3.0.0/SynchronousMachineDynamics.cpp b/CGMES_3.0.0/SynchronousMachineDynamics.cpp index 9568cf4d4..337c95e9b 100644 --- a/CGMES_3.0.0/SynchronousMachineDynamics.cpp +++ b/CGMES_3.0.0/SynchronousMachineDynamics.cpp @@ -17,38 +17,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineDynamics.CrossCompoundTurbineGovernorDyanmics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.CrossCompoundTurbineGovernorDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.GenICompensationForGenJ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.MechanicalLoadDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.SynchronousMachine", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineDynamics::SynchronousMachineDynamics() : CrossCompoundTurbineGovernorDyanmics(nullptr), CrossCompoundTurbineGovernorDynamics(nullptr), ExcitationSystemDynamics(nullptr), MechanicalLoadDynamics(nullptr), SynchronousMachine(nullptr) {} SynchronousMachineDynamics::~SynchronousMachineDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineDynamics::getClassNamespaceUrl() const { - { "cim:SynchronousMachineDynamics.CrossCompoundTurbineGovernorDyanmics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.CrossCompoundTurbineGovernorDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.GenICompensationForGenJ", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.MechanicalLoadDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.SynchronousMachine", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineDynamics::getPossibleProfilesForClass() const +const std::string& SynchronousMachineDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineDynamics::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RotatingMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CrossCompoundTurbineGovernorDynamics_HighPressureSynchronousMachineDynamics(BaseClass*, BaseClass*); @@ -198,7 +230,7 @@ const char* SynchronousMachineDynamics::debugString() const void SynchronousMachineDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineDynamics", &SynchronousMachineDynamics_factory); + factory_map.emplace("SynchronousMachineDynamics", &SynchronousMachineDynamics_factory); } void SynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -207,13 +239,13 @@ void SynchronousMachineDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineDynamics.CrossCompoundTurbineGovernorDyanmics", &assign_SynchronousMachineDynamics_CrossCompoundTurbineGovernorDyanmics); - assign_map.emplace("cim:SynchronousMachineDynamics.CrossCompoundTurbineGovernorDynamics", &assign_SynchronousMachineDynamics_CrossCompoundTurbineGovernorDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.ExcitationSystemDynamics", &assign_SynchronousMachineDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.GenICompensationForGenJ", &assign_SynchronousMachineDynamics_GenICompensationForGenJ); - assign_map.emplace("cim:SynchronousMachineDynamics.MechanicalLoadDynamics", &assign_SynchronousMachineDynamics_MechanicalLoadDynamics); - assign_map.emplace("cim:SynchronousMachineDynamics.SynchronousMachine", &assign_SynchronousMachineDynamics_SynchronousMachine); - assign_map.emplace("cim:SynchronousMachineDynamics.TurbineGovernorDynamics", &assign_SynchronousMachineDynamics_TurbineGovernorDynamics); + assign_map.emplace("SynchronousMachineDynamics.CrossCompoundTurbineGovernorDyanmics", &assign_SynchronousMachineDynamics_CrossCompoundTurbineGovernorDyanmics); + assign_map.emplace("SynchronousMachineDynamics.CrossCompoundTurbineGovernorDynamics", &assign_SynchronousMachineDynamics_CrossCompoundTurbineGovernorDynamics); + assign_map.emplace("SynchronousMachineDynamics.ExcitationSystemDynamics", &assign_SynchronousMachineDynamics_ExcitationSystemDynamics); + assign_map.emplace("SynchronousMachineDynamics.GenICompensationForGenJ", &assign_SynchronousMachineDynamics_GenICompensationForGenJ); + assign_map.emplace("SynchronousMachineDynamics.MechanicalLoadDynamics", &assign_SynchronousMachineDynamics_MechanicalLoadDynamics); + assign_map.emplace("SynchronousMachineDynamics.SynchronousMachine", &assign_SynchronousMachineDynamics_SynchronousMachine); + assign_map.emplace("SynchronousMachineDynamics.TurbineGovernorDynamics", &assign_SynchronousMachineDynamics_TurbineGovernorDynamics); } void SynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -224,7 +256,7 @@ void SynchronousMachineDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { RotatingMachineDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineDynamics.SynchronousMachine", &get_SynchronousMachineDynamics_SynchronousMachine); + get_map.emplace("SynchronousMachineDynamics.SynchronousMachine", &get_SynchronousMachineDynamics_SynchronousMachine); } void SynchronousMachineDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void SynchronousMachineDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineDynamics::declare() { return BaseClassDefiner(SynchronousMachineDynamics::addConstructToMap, SynchronousMachineDynamics::addPrimitiveAssignFnsToMap, SynchronousMachineDynamics::addClassAssignFnsToMap, SynchronousMachineDynamics::debugName); } +std::map SynchronousMachineDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RotatingMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineDynamics_factory() diff --git a/CGMES_3.0.0/SynchronousMachineDynamics.hpp b/CGMES_3.0.0/SynchronousMachineDynamics.hpp index 5950701fb..550396ad5 100644 --- a/CGMES_3.0.0/SynchronousMachineDynamics.hpp +++ b/CGMES_3.0.0/SynchronousMachineDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RotatingMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineDynamics_factory(); diff --git a/CGMES_3.0.0/SynchronousMachineEquivalentCircuit.cpp b/CGMES_3.0.0/SynchronousMachineEquivalentCircuit.cpp index 7ef58f9f7..f2840fa5f 100644 --- a/CGMES_3.0.0/SynchronousMachineEquivalentCircuit.cpp +++ b/CGMES_3.0.0/SynchronousMachineEquivalentCircuit.cpp @@ -11,42 +11,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineEquivalentCircuit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineEquivalentCircuit.r1d", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.r1q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.r2q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.rfd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x1d", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x1q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.x2q", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xad", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xaq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xf1d", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineEquivalentCircuit.xfd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineEquivalentCircuit::SynchronousMachineEquivalentCircuit() {} SynchronousMachineEquivalentCircuit::~SynchronousMachineEquivalentCircuit() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineEquivalentCircuit::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineEquivalentCircuit::getClassNamespaceUrl() const { - { "cim:SynchronousMachineEquivalentCircuit.r1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.r1q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.r2q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.rfd", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x1q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.x2q", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xad", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xaq", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xf1d", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineEquivalentCircuit.xfd", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineEquivalentCircuit::getPossibleProfilesForClass() const +const std::string& SynchronousMachineEquivalentCircuit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineEquivalentCircuit::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineEquivalentCircuit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDetailed::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineEquivalentCircuit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineEquivalentCircuit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineEquivalentCircuit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineEquivalentCircuit_r1d(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -376,22 +408,22 @@ const char* SynchronousMachineEquivalentCircuit::debugString() const void SynchronousMachineEquivalentCircuit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineEquivalentCircuit", &SynchronousMachineEquivalentCircuit_factory); + factory_map.emplace("SynchronousMachineEquivalentCircuit", &SynchronousMachineEquivalentCircuit_factory); } void SynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1d", &assign_SynchronousMachineEquivalentCircuit_r1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1q", &assign_SynchronousMachineEquivalentCircuit_r1q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.r2q", &assign_SynchronousMachineEquivalentCircuit_r2q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.rfd", &assign_SynchronousMachineEquivalentCircuit_rfd); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1d", &assign_SynchronousMachineEquivalentCircuit_x1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1q", &assign_SynchronousMachineEquivalentCircuit_x1q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.x2q", &assign_SynchronousMachineEquivalentCircuit_x2q); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xad", &assign_SynchronousMachineEquivalentCircuit_xad); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xaq", &assign_SynchronousMachineEquivalentCircuit_xaq); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xf1d", &assign_SynchronousMachineEquivalentCircuit_xf1d); - assign_map.emplace("cim:SynchronousMachineEquivalentCircuit.xfd", &assign_SynchronousMachineEquivalentCircuit_xfd); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r1d", &assign_SynchronousMachineEquivalentCircuit_r1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r1q", &assign_SynchronousMachineEquivalentCircuit_r1q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.r2q", &assign_SynchronousMachineEquivalentCircuit_r2q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.rfd", &assign_SynchronousMachineEquivalentCircuit_rfd); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x1d", &assign_SynchronousMachineEquivalentCircuit_x1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x1q", &assign_SynchronousMachineEquivalentCircuit_x1q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.x2q", &assign_SynchronousMachineEquivalentCircuit_x2q); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xad", &assign_SynchronousMachineEquivalentCircuit_xad); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xaq", &assign_SynchronousMachineEquivalentCircuit_xaq); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xf1d", &assign_SynchronousMachineEquivalentCircuit_xf1d); + assign_map.emplace("SynchronousMachineEquivalentCircuit.xfd", &assign_SynchronousMachineEquivalentCircuit_xfd); } void SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -401,17 +433,17 @@ void SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap(std::unordered_ void SynchronousMachineEquivalentCircuit::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1d", &get_SynchronousMachineEquivalentCircuit_r1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r1q", &get_SynchronousMachineEquivalentCircuit_r1q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.r2q", &get_SynchronousMachineEquivalentCircuit_r2q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.rfd", &get_SynchronousMachineEquivalentCircuit_rfd); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1d", &get_SynchronousMachineEquivalentCircuit_x1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x1q", &get_SynchronousMachineEquivalentCircuit_x1q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.x2q", &get_SynchronousMachineEquivalentCircuit_x2q); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xad", &get_SynchronousMachineEquivalentCircuit_xad); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xaq", &get_SynchronousMachineEquivalentCircuit_xaq); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xf1d", &get_SynchronousMachineEquivalentCircuit_xf1d); - get_map.emplace("cim:SynchronousMachineEquivalentCircuit.xfd", &get_SynchronousMachineEquivalentCircuit_xfd); + get_map.emplace("SynchronousMachineEquivalentCircuit.r1d", &get_SynchronousMachineEquivalentCircuit_r1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.r1q", &get_SynchronousMachineEquivalentCircuit_r1q); + get_map.emplace("SynchronousMachineEquivalentCircuit.r2q", &get_SynchronousMachineEquivalentCircuit_r2q); + get_map.emplace("SynchronousMachineEquivalentCircuit.rfd", &get_SynchronousMachineEquivalentCircuit_rfd); + get_map.emplace("SynchronousMachineEquivalentCircuit.x1d", &get_SynchronousMachineEquivalentCircuit_x1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.x1q", &get_SynchronousMachineEquivalentCircuit_x1q); + get_map.emplace("SynchronousMachineEquivalentCircuit.x2q", &get_SynchronousMachineEquivalentCircuit_x2q); + get_map.emplace("SynchronousMachineEquivalentCircuit.xad", &get_SynchronousMachineEquivalentCircuit_xad); + get_map.emplace("SynchronousMachineEquivalentCircuit.xaq", &get_SynchronousMachineEquivalentCircuit_xaq); + get_map.emplace("SynchronousMachineEquivalentCircuit.xf1d", &get_SynchronousMachineEquivalentCircuit_xf1d); + get_map.emplace("SynchronousMachineEquivalentCircuit.xfd", &get_SynchronousMachineEquivalentCircuit_xfd); } void SynchronousMachineEquivalentCircuit::addClassGetFnsToMap(std::map& get_map) const @@ -424,11 +456,25 @@ void SynchronousMachineEquivalentCircuit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineEquivalentCircuit::declare() { return BaseClassDefiner(SynchronousMachineEquivalentCircuit::addConstructToMap, SynchronousMachineEquivalentCircuit::addPrimitiveAssignFnsToMap, SynchronousMachineEquivalentCircuit::addClassAssignFnsToMap, SynchronousMachineEquivalentCircuit::debugName); } +std::map SynchronousMachineEquivalentCircuit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDetailed::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineEquivalentCircuit_factory() diff --git a/CGMES_3.0.0/SynchronousMachineEquivalentCircuit.hpp b/CGMES_3.0.0/SynchronousMachineEquivalentCircuit.hpp index a6a4de217..bff006404 100644 --- a/CGMES_3.0.0/SynchronousMachineEquivalentCircuit.hpp +++ b/CGMES_3.0.0/SynchronousMachineEquivalentCircuit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDetailed.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -61,8 +62,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -70,7 +78,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineEquivalentCircuit_factory(); diff --git a/CGMES_3.0.0/SynchronousMachineSimplified.cpp b/CGMES_3.0.0/SynchronousMachineSimplified.cpp index 565a93b19..d4c0141a1 100644 --- a/CGMES_3.0.0/SynchronousMachineSimplified.cpp +++ b/CGMES_3.0.0/SynchronousMachineSimplified.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineSimplified(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + SynchronousMachineSimplified::SynchronousMachineSimplified() {} SynchronousMachineSimplified::~SynchronousMachineSimplified() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineSimplified::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineSimplified::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineSimplified::getPossibleProfilesForClass() const +const std::string& SynchronousMachineSimplified::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineSimplified::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineSimplified::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineSimplified::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineSimplified::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineSimplified::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char SynchronousMachineSimplified::debugName[] = "SynchronousMachineSimplified"; @@ -46,7 +78,7 @@ const char* SynchronousMachineSimplified::debugString() const void SynchronousMachineSimplified::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineSimplified", &SynchronousMachineSimplified_factory); + factory_map.emplace("SynchronousMachineSimplified", &SynchronousMachineSimplified_factory); } void SynchronousMachineSimplified::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void SynchronousMachineSimplified::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineSimplified::declare() { return BaseClassDefiner(SynchronousMachineSimplified::addConstructToMap, SynchronousMachineSimplified::addPrimitiveAssignFnsToMap, SynchronousMachineSimplified::addClassAssignFnsToMap, SynchronousMachineSimplified::debugName); } +std::map SynchronousMachineSimplified::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineSimplified_factory() diff --git a/CGMES_3.0.0/SynchronousMachineSimplified.hpp b/CGMES_3.0.0/SynchronousMachineSimplified.hpp index 9eed70833..cde4e3972 100644 --- a/CGMES_3.0.0/SynchronousMachineSimplified.hpp +++ b/CGMES_3.0.0/SynchronousMachineSimplified.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineSimplified_factory(); diff --git a/CGMES_3.0.0/SynchronousMachineTimeConstantReactance.cpp b/CGMES_3.0.0/SynchronousMachineTimeConstantReactance.cpp index 0abb79508..0c89e0699 100644 --- a/CGMES_3.0.0/SynchronousMachineTimeConstantReactance.cpp +++ b/CGMES_3.0.0/SynchronousMachineTimeConstantReactance.cpp @@ -11,45 +11,77 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineTimeConstantReactance(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineTimeConstantReactance.ks", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.modelType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.rotorType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tpdo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tppdo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tppqo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.tpqo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectSubtrans", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectSync", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xDirectTrans", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadSubtrans", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadSync", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineTimeConstantReactance.xQuadTrans", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineTimeConstantReactance::SynchronousMachineTimeConstantReactance() {} SynchronousMachineTimeConstantReactance::~SynchronousMachineTimeConstantReactance() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineTimeConstantReactance::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineTimeConstantReactance::getClassNamespaceUrl() const { - { "cim:SynchronousMachineTimeConstantReactance.ks", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.modelType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.rotorType", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tc", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tpdo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tppdo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tppqo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.tpqo", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectSync", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xDirectTrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadSync", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineTimeConstantReactance.xQuadTrans", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineTimeConstantReactance::getPossibleProfilesForClass() const +const std::string& SynchronousMachineTimeConstantReactance::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineTimeConstantReactance::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineTimeConstantReactance::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDetailed::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineTimeConstantReactance::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineTimeConstantReactance::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineTimeConstantReactance::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SynchronousMachineTimeConstantReactance_ks(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -466,25 +498,25 @@ const char* SynchronousMachineTimeConstantReactance::debugString() const void SynchronousMachineTimeConstantReactance::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineTimeConstantReactance", &SynchronousMachineTimeConstantReactance_factory); + factory_map.emplace("SynchronousMachineTimeConstantReactance", &SynchronousMachineTimeConstantReactance_factory); } void SynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.ks", &assign_SynchronousMachineTimeConstantReactance_ks); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.modelType", &assign_SynchronousMachineTimeConstantReactance_modelType); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.rotorType", &assign_SynchronousMachineTimeConstantReactance_rotorType); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tc", &assign_SynchronousMachineTimeConstantReactance_tc); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpdo", &assign_SynchronousMachineTimeConstantReactance_tpdo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppdo", &assign_SynchronousMachineTimeConstantReactance_tppdo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppqo", &assign_SynchronousMachineTimeConstantReactance_tppqo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpqo", &assign_SynchronousMachineTimeConstantReactance_tpqo); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", &assign_SynchronousMachineTimeConstantReactance_xDirectSubtrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSync", &assign_SynchronousMachineTimeConstantReactance_xDirectSync); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectTrans", &assign_SynchronousMachineTimeConstantReactance_xDirectTrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", &assign_SynchronousMachineTimeConstantReactance_xQuadSubtrans); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSync", &assign_SynchronousMachineTimeConstantReactance_xQuadSync); - assign_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadTrans", &assign_SynchronousMachineTimeConstantReactance_xQuadTrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.ks", &assign_SynchronousMachineTimeConstantReactance_ks); + assign_map.emplace("SynchronousMachineTimeConstantReactance.modelType", &assign_SynchronousMachineTimeConstantReactance_modelType); + assign_map.emplace("SynchronousMachineTimeConstantReactance.rotorType", &assign_SynchronousMachineTimeConstantReactance_rotorType); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tc", &assign_SynchronousMachineTimeConstantReactance_tc); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tpdo", &assign_SynchronousMachineTimeConstantReactance_tpdo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tppdo", &assign_SynchronousMachineTimeConstantReactance_tppdo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tppqo", &assign_SynchronousMachineTimeConstantReactance_tppqo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.tpqo", &assign_SynchronousMachineTimeConstantReactance_tpqo); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSubtrans", &assign_SynchronousMachineTimeConstantReactance_xDirectSubtrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSync", &assign_SynchronousMachineTimeConstantReactance_xDirectSync); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xDirectTrans", &assign_SynchronousMachineTimeConstantReactance_xDirectTrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSubtrans", &assign_SynchronousMachineTimeConstantReactance_xQuadSubtrans); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSync", &assign_SynchronousMachineTimeConstantReactance_xQuadSync); + assign_map.emplace("SynchronousMachineTimeConstantReactance.xQuadTrans", &assign_SynchronousMachineTimeConstantReactance_xQuadTrans); } void SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -494,18 +526,18 @@ void SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap(std::unorde void SynchronousMachineTimeConstantReactance::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.ks", &get_SynchronousMachineTimeConstantReactance_ks); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tc", &get_SynchronousMachineTimeConstantReactance_tc); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpdo", &get_SynchronousMachineTimeConstantReactance_tpdo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppdo", &get_SynchronousMachineTimeConstantReactance_tppdo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tppqo", &get_SynchronousMachineTimeConstantReactance_tppqo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.tpqo", &get_SynchronousMachineTimeConstantReactance_tpqo); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSubtrans", &get_SynchronousMachineTimeConstantReactance_xDirectSubtrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectSync", &get_SynchronousMachineTimeConstantReactance_xDirectSync); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xDirectTrans", &get_SynchronousMachineTimeConstantReactance_xDirectTrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSubtrans", &get_SynchronousMachineTimeConstantReactance_xQuadSubtrans); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadSync", &get_SynchronousMachineTimeConstantReactance_xQuadSync); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.xQuadTrans", &get_SynchronousMachineTimeConstantReactance_xQuadTrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.ks", &get_SynchronousMachineTimeConstantReactance_ks); + get_map.emplace("SynchronousMachineTimeConstantReactance.tc", &get_SynchronousMachineTimeConstantReactance_tc); + get_map.emplace("SynchronousMachineTimeConstantReactance.tpdo", &get_SynchronousMachineTimeConstantReactance_tpdo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tppdo", &get_SynchronousMachineTimeConstantReactance_tppdo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tppqo", &get_SynchronousMachineTimeConstantReactance_tppqo); + get_map.emplace("SynchronousMachineTimeConstantReactance.tpqo", &get_SynchronousMachineTimeConstantReactance_tpqo); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSubtrans", &get_SynchronousMachineTimeConstantReactance_xDirectSubtrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectSync", &get_SynchronousMachineTimeConstantReactance_xDirectSync); + get_map.emplace("SynchronousMachineTimeConstantReactance.xDirectTrans", &get_SynchronousMachineTimeConstantReactance_xDirectTrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSubtrans", &get_SynchronousMachineTimeConstantReactance_xQuadSubtrans); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadSync", &get_SynchronousMachineTimeConstantReactance_xQuadSync); + get_map.emplace("SynchronousMachineTimeConstantReactance.xQuadTrans", &get_SynchronousMachineTimeConstantReactance_xQuadTrans); } void SynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const @@ -516,8 +548,14 @@ void SynchronousMachineTimeConstantReactance::addClassGetFnsToMap(std::map& get_map) const { SynchronousMachineDetailed::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.modelType", &get_SynchronousMachineTimeConstantReactance_modelType); - get_map.emplace("cim:SynchronousMachineTimeConstantReactance.rotorType", &get_SynchronousMachineTimeConstantReactance_rotorType); + get_map.emplace("SynchronousMachineTimeConstantReactance.modelType", &get_SynchronousMachineTimeConstantReactance_modelType); + get_map.emplace("SynchronousMachineTimeConstantReactance.rotorType", &get_SynchronousMachineTimeConstantReactance_rotorType); +} + +bool SynchronousMachineTimeConstantReactance::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "SynchronousMachineTimeConstantReactance" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner SynchronousMachineTimeConstantReactance::declare() @@ -525,6 +563,14 @@ const BaseClassDefiner SynchronousMachineTimeConstantReactance::declare() return BaseClassDefiner(SynchronousMachineTimeConstantReactance::addConstructToMap, SynchronousMachineTimeConstantReactance::addPrimitiveAssignFnsToMap, SynchronousMachineTimeConstantReactance::addClassAssignFnsToMap, SynchronousMachineTimeConstantReactance::debugName); } +std::map SynchronousMachineTimeConstantReactance::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDetailed::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineTimeConstantReactance_factory() diff --git a/CGMES_3.0.0/SynchronousMachineTimeConstantReactance.hpp b/CGMES_3.0.0/SynchronousMachineTimeConstantReactance.hpp index 500d57bdd..30ace00e6 100644 --- a/CGMES_3.0.0/SynchronousMachineTimeConstantReactance.hpp +++ b/CGMES_3.0.0/SynchronousMachineTimeConstantReactance.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDetailed.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "RotorKind.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineTimeConstantReactance_factory(); diff --git a/CGMES_3.0.0/SynchronousMachineUserDefined.cpp b/CGMES_3.0.0/SynchronousMachineUserDefined.cpp index 9bdfab19d..a9ef6a083 100644 --- a/CGMES_3.0.0/SynchronousMachineUserDefined.cpp +++ b/CGMES_3.0.0/SynchronousMachineUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + SynchronousMachineUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "SynchronousMachineUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "SynchronousMachineUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + SynchronousMachineUserDefined::SynchronousMachineUserDefined() {} SynchronousMachineUserDefined::~SynchronousMachineUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& SynchronousMachineUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& SynchronousMachineUserDefined::getClassNamespaceUrl() const { - { "cim:SynchronousMachineUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:SynchronousMachineUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -SynchronousMachineUserDefined::getPossibleProfilesForClass() const +const std::string& SynchronousMachineUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -SynchronousMachineUserDefined::getPossibleProfilesForAttributes() const +const std::list& SynchronousMachineUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SynchronousMachineDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& SynchronousMachineUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& SynchronousMachineUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& SynchronousMachineUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_SynchronousMachineUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* SynchronousMachineUserDefined::debugString() const void SynchronousMachineUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:SynchronousMachineUserDefined", &SynchronousMachineUserDefined_factory); + factory_map.emplace("SynchronousMachineUserDefined", &SynchronousMachineUserDefined_factory); } void SynchronousMachineUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineUserDefined.proprietary", &assign_SynchronousMachineUserDefined_proprietary); + assign_map.emplace("SynchronousMachineUserDefined.proprietary", &assign_SynchronousMachineUserDefined_proprietary); } void SynchronousMachineUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:SynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_SynchronousMachineUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("SynchronousMachineUserDefined.ProprietaryParameterDynamics", &assign_SynchronousMachineUserDefined_ProprietaryParameterDynamics); } void SynchronousMachineUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { SynchronousMachineDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:SynchronousMachineUserDefined.proprietary", &get_SynchronousMachineUserDefined_proprietary); + get_map.emplace("SynchronousMachineUserDefined.proprietary", &get_SynchronousMachineUserDefined_proprietary); } void SynchronousMachineUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void SynchronousMachineUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner SynchronousMachineUserDefined::declare() { return BaseClassDefiner(SynchronousMachineUserDefined::addConstructToMap, SynchronousMachineUserDefined::addPrimitiveAssignFnsToMap, SynchronousMachineUserDefined::addClassAssignFnsToMap, SynchronousMachineUserDefined::debugName); } +std::map SynchronousMachineUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SynchronousMachineDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* SynchronousMachineUserDefined_factory() diff --git a/CGMES_3.0.0/SynchronousMachineUserDefined.hpp b/CGMES_3.0.0/SynchronousMachineUserDefined.hpp index 48cbec661..38085d7ed 100644 --- a/CGMES_3.0.0/SynchronousMachineUserDefined.hpp +++ b/CGMES_3.0.0/SynchronousMachineUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SynchronousMachineDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* SynchronousMachineUserDefined_factory(); diff --git a/CGMES_3.0.0/TapChanger.cpp b/CGMES_3.0.0/TapChanger.cpp index f5c8884ee..fe4a596e7 100644 --- a/CGMES_3.0.0/TapChanger.cpp +++ b/CGMES_3.0.0/TapChanger.cpp @@ -14,44 +14,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChanger(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::SV, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChanger.SvTapStep", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "TapChanger.TapChangerControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChanger.TapSchedules", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChanger.controlEnabled", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "TapChanger.highStep", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChanger.lowStep", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChanger.ltcFlag", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChanger.neutralStep", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChanger.neutralU", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChanger.normalStep", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChanger.step", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + TapChanger::TapChanger() : SvTapStep(nullptr), TapChangerControl(nullptr) {} TapChanger::~TapChanger() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChanger::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChanger::getClassNamespaceUrl() const { - { "cim:TapChanger.SvTapStep", { CGMESProfile::SV, } }, - { "cim:TapChanger.TapChangerControl", { CGMESProfile::EQ, } }, - { "cim:TapChanger.TapSchedules", { CGMESProfile::EQ, } }, - { "cim:TapChanger.controlEnabled", { CGMESProfile::SSH, } }, - { "cim:TapChanger.highStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.lowStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.ltcFlag", { CGMESProfile::EQ, } }, - { "cim:TapChanger.neutralStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.neutralU", { CGMESProfile::EQ, } }, - { "cim:TapChanger.normalStep", { CGMESProfile::EQ, } }, - { "cim:TapChanger.step", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChanger::getPossibleProfilesForClass() const +const std::string& TapChanger::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChanger::getPossibleProfilesForAttributes() const +const std::list& TapChanger::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChanger::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChanger::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChanger::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_SvTapStep_TapChanger(BaseClass*, BaseClass*); @@ -361,45 +393,45 @@ const char* TapChanger::debugString() const void TapChanger::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChanger", &TapChanger_factory); + factory_map.emplace("TapChanger", &TapChanger_factory); } void TapChanger::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChanger.controlEnabled", &assign_TapChanger_controlEnabled); - assign_map.emplace("cim:TapChanger.highStep", &assign_TapChanger_highStep); - assign_map.emplace("cim:TapChanger.lowStep", &assign_TapChanger_lowStep); - assign_map.emplace("cim:TapChanger.ltcFlag", &assign_TapChanger_ltcFlag); - assign_map.emplace("cim:TapChanger.neutralStep", &assign_TapChanger_neutralStep); - assign_map.emplace("cim:TapChanger.neutralU", &assign_TapChanger_neutralU); - assign_map.emplace("cim:TapChanger.normalStep", &assign_TapChanger_normalStep); - assign_map.emplace("cim:TapChanger.step", &assign_TapChanger_step); + assign_map.emplace("TapChanger.controlEnabled", &assign_TapChanger_controlEnabled); + assign_map.emplace("TapChanger.highStep", &assign_TapChanger_highStep); + assign_map.emplace("TapChanger.lowStep", &assign_TapChanger_lowStep); + assign_map.emplace("TapChanger.ltcFlag", &assign_TapChanger_ltcFlag); + assign_map.emplace("TapChanger.neutralStep", &assign_TapChanger_neutralStep); + assign_map.emplace("TapChanger.neutralU", &assign_TapChanger_neutralU); + assign_map.emplace("TapChanger.normalStep", &assign_TapChanger_normalStep); + assign_map.emplace("TapChanger.step", &assign_TapChanger_step); } void TapChanger::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChanger.SvTapStep", &assign_TapChanger_SvTapStep); - assign_map.emplace("cim:TapChanger.TapChangerControl", &assign_TapChanger_TapChangerControl); - assign_map.emplace("cim:TapChanger.TapSchedules", &assign_TapChanger_TapSchedules); + assign_map.emplace("TapChanger.SvTapStep", &assign_TapChanger_SvTapStep); + assign_map.emplace("TapChanger.TapChangerControl", &assign_TapChanger_TapChangerControl); + assign_map.emplace("TapChanger.TapSchedules", &assign_TapChanger_TapSchedules); } void TapChanger::addPrimitiveGetFnsToMap(std::map& get_map) const { PowerSystemResource::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TapChanger.controlEnabled", &get_TapChanger_controlEnabled); - get_map.emplace("cim:TapChanger.highStep", &get_TapChanger_highStep); - get_map.emplace("cim:TapChanger.lowStep", &get_TapChanger_lowStep); - get_map.emplace("cim:TapChanger.ltcFlag", &get_TapChanger_ltcFlag); - get_map.emplace("cim:TapChanger.neutralStep", &get_TapChanger_neutralStep); - get_map.emplace("cim:TapChanger.neutralU", &get_TapChanger_neutralU); - get_map.emplace("cim:TapChanger.normalStep", &get_TapChanger_normalStep); - get_map.emplace("cim:TapChanger.step", &get_TapChanger_step); + get_map.emplace("TapChanger.controlEnabled", &get_TapChanger_controlEnabled); + get_map.emplace("TapChanger.highStep", &get_TapChanger_highStep); + get_map.emplace("TapChanger.lowStep", &get_TapChanger_lowStep); + get_map.emplace("TapChanger.ltcFlag", &get_TapChanger_ltcFlag); + get_map.emplace("TapChanger.neutralStep", &get_TapChanger_neutralStep); + get_map.emplace("TapChanger.neutralU", &get_TapChanger_neutralU); + get_map.emplace("TapChanger.normalStep", &get_TapChanger_normalStep); + get_map.emplace("TapChanger.step", &get_TapChanger_step); } void TapChanger::addClassGetFnsToMap(std::map& get_map) const { PowerSystemResource::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TapChanger.TapChangerControl", &get_TapChanger_TapChangerControl); + get_map.emplace("TapChanger.TapChangerControl", &get_TapChanger_TapChangerControl); } void TapChanger::addEnumGetFnsToMap(std::map& get_map) const @@ -407,11 +439,25 @@ void TapChanger::addEnumGetFnsToMap(std::map& get_map PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool TapChanger::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapChanger" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapChanger::declare() { return BaseClassDefiner(TapChanger::addConstructToMap, TapChanger::addPrimitiveAssignFnsToMap, TapChanger::addClassAssignFnsToMap, TapChanger::debugName); } +std::map TapChanger::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChanger_factory() diff --git a/CGMES_3.0.0/TapChanger.hpp b/CGMES_3.0.0/TapChanger.hpp index 3af5135bf..9b9a11299 100644 --- a/CGMES_3.0.0/TapChanger.hpp +++ b/CGMES_3.0.0/TapChanger.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "Integer.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChanger_factory(); diff --git a/CGMES_3.0.0/TapChangerControl.cpp b/CGMES_3.0.0/TapChangerControl.cpp index 167b0d3a7..1e3608a15 100644 --- a/CGMES_3.0.0/TapChangerControl.cpp +++ b/CGMES_3.0.0/TapChangerControl.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChangerControl(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChangerControl.TapChanger", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapChangerControl::TapChangerControl() {} TapChangerControl::~TapChangerControl() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChangerControl::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChangerControl::getClassNamespaceUrl() const { - { "cim:TapChangerControl.TapChanger", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChangerControl::getPossibleProfilesForClass() const +const std::string& TapChangerControl::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChangerControl::getPossibleProfilesForAttributes() const +const std::list& TapChangerControl::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = RegulatingControl::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChangerControl::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChangerControl::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChangerControl::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_TapChangerControl(BaseClass*, BaseClass*); @@ -67,7 +99,7 @@ const char* TapChangerControl::debugString() const void TapChangerControl::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChangerControl", &TapChangerControl_factory); + factory_map.emplace("TapChangerControl", &TapChangerControl_factory); } void TapChangerControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -76,7 +108,7 @@ void TapChangerControl::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChangerControl.TapChanger", &assign_TapChangerControl_TapChanger); + assign_map.emplace("TapChangerControl.TapChanger", &assign_TapChangerControl_TapChanger); } void TapChangerControl::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -94,11 +126,25 @@ void TapChangerControl::addEnumGetFnsToMap(std::map& RegulatingControl::addEnumGetFnsToMap(get_map); } +bool TapChangerControl::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapChangerControl" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapChangerControl::declare() { return BaseClassDefiner(TapChangerControl::addConstructToMap, TapChangerControl::addPrimitiveAssignFnsToMap, TapChangerControl::addClassAssignFnsToMap, TapChangerControl::debugName); } +std::map TapChangerControl::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = RegulatingControl::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChangerControl_factory() diff --git a/CGMES_3.0.0/TapChangerControl.hpp b/CGMES_3.0.0/TapChangerControl.hpp index d28ab9d92..06dcd9c84 100644 --- a/CGMES_3.0.0/TapChangerControl.hpp +++ b/CGMES_3.0.0/TapChangerControl.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "RegulatingControl.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChangerControl_factory(); diff --git a/CGMES_3.0.0/TapChangerTablePoint.cpp b/CGMES_3.0.0/TapChangerTablePoint.cpp index 2044a9212..1ea5f8a2f 100644 --- a/CGMES_3.0.0/TapChangerTablePoint.cpp +++ b/CGMES_3.0.0/TapChangerTablePoint.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapChangerTablePoint(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapChangerTablePoint.b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.g", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.ratio", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.step", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TapChangerTablePoint.x", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapChangerTablePoint::TapChangerTablePoint() {} TapChangerTablePoint::~TapChangerTablePoint() {} -static const std::list PossibleProfilesForClass = +const std::list& TapChangerTablePoint::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapChangerTablePoint::getClassNamespaceUrl() const { - { "cim:TapChangerTablePoint.b", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.g", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.r", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.ratio", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.step", { CGMESProfile::EQ, } }, - { "cim:TapChangerTablePoint.x", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapChangerTablePoint::getPossibleProfilesForClass() const +const std::string& TapChangerTablePoint::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapChangerTablePoint::getPossibleProfilesForAttributes() const +const std::list& TapChangerTablePoint::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapChangerTablePoint::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapChangerTablePoint::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapChangerTablePoint::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChangerTablePoint_b(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* TapChangerTablePoint::debugString() const void TapChangerTablePoint::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapChangerTablePoint", &TapChangerTablePoint_factory); + factory_map.emplace("TapChangerTablePoint", &TapChangerTablePoint_factory); } void TapChangerTablePoint::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapChangerTablePoint.b", &assign_TapChangerTablePoint_b); - assign_map.emplace("cim:TapChangerTablePoint.g", &assign_TapChangerTablePoint_g); - assign_map.emplace("cim:TapChangerTablePoint.r", &assign_TapChangerTablePoint_r); - assign_map.emplace("cim:TapChangerTablePoint.ratio", &assign_TapChangerTablePoint_ratio); - assign_map.emplace("cim:TapChangerTablePoint.step", &assign_TapChangerTablePoint_step); - assign_map.emplace("cim:TapChangerTablePoint.x", &assign_TapChangerTablePoint_x); + assign_map.emplace("TapChangerTablePoint.b", &assign_TapChangerTablePoint_b); + assign_map.emplace("TapChangerTablePoint.g", &assign_TapChangerTablePoint_g); + assign_map.emplace("TapChangerTablePoint.r", &assign_TapChangerTablePoint_r); + assign_map.emplace("TapChangerTablePoint.ratio", &assign_TapChangerTablePoint_ratio); + assign_map.emplace("TapChangerTablePoint.step", &assign_TapChangerTablePoint_step); + assign_map.emplace("TapChangerTablePoint.x", &assign_TapChangerTablePoint_x); } void TapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void TapChangerTablePoint::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TapChangerTablePoint.b", &get_TapChangerTablePoint_b); - get_map.emplace("cim:TapChangerTablePoint.g", &get_TapChangerTablePoint_g); - get_map.emplace("cim:TapChangerTablePoint.r", &get_TapChangerTablePoint_r); - get_map.emplace("cim:TapChangerTablePoint.ratio", &get_TapChangerTablePoint_ratio); - get_map.emplace("cim:TapChangerTablePoint.step", &get_TapChangerTablePoint_step); - get_map.emplace("cim:TapChangerTablePoint.x", &get_TapChangerTablePoint_x); + get_map.emplace("TapChangerTablePoint.b", &get_TapChangerTablePoint_b); + get_map.emplace("TapChangerTablePoint.g", &get_TapChangerTablePoint_g); + get_map.emplace("TapChangerTablePoint.r", &get_TapChangerTablePoint_r); + get_map.emplace("TapChangerTablePoint.ratio", &get_TapChangerTablePoint_ratio); + get_map.emplace("TapChangerTablePoint.step", &get_TapChangerTablePoint_step); + get_map.emplace("TapChangerTablePoint.x", &get_TapChangerTablePoint_x); } void TapChangerTablePoint::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void TapChangerTablePoint::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TapChangerTablePoint::declare() { return BaseClassDefiner(TapChangerTablePoint::addConstructToMap, TapChangerTablePoint::addPrimitiveAssignFnsToMap, TapChangerTablePoint::addClassAssignFnsToMap, TapChangerTablePoint::debugName); } +std::map TapChangerTablePoint::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapChangerTablePoint_factory() diff --git a/CGMES_3.0.0/TapChangerTablePoint.hpp b/CGMES_3.0.0/TapChangerTablePoint.hpp index e167ced70..0e33256ab 100644 --- a/CGMES_3.0.0/TapChangerTablePoint.hpp +++ b/CGMES_3.0.0/TapChangerTablePoint.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "Integer.hpp" #include "PerCent.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapChangerTablePoint_factory(); diff --git a/CGMES_3.0.0/TapSchedule.cpp b/CGMES_3.0.0/TapSchedule.cpp index 039a79967..c730909e0 100644 --- a/CGMES_3.0.0/TapSchedule.cpp +++ b/CGMES_3.0.0/TapSchedule.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TapSchedule(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TapSchedule.TapChanger", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TapSchedule::TapSchedule() : TapChanger(nullptr) {} TapSchedule::~TapSchedule() {} -static const std::list PossibleProfilesForClass = +const std::list& TapSchedule::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TapSchedule::getClassNamespaceUrl() const { - { "cim:TapSchedule.TapChanger", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TapSchedule::getPossibleProfilesForClass() const +const std::string& TapSchedule::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TapSchedule::getPossibleProfilesForAttributes() const +const std::list& TapSchedule::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = SeasonDayTypeSchedule::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TapSchedule::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TapSchedule::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TapSchedule::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TapChanger_TapSchedules(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* TapSchedule::debugString() const void TapSchedule::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TapSchedule", &TapSchedule_factory); + factory_map.emplace("TapSchedule", &TapSchedule_factory); } void TapSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void TapSchedule::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TapSchedule.TapChanger", &assign_TapSchedule_TapChanger); + assign_map.emplace("TapSchedule.TapChanger", &assign_TapSchedule_TapChanger); } void TapSchedule::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void TapSchedule::addPrimitiveGetFnsToMap(std::map& g void TapSchedule::addClassGetFnsToMap(std::map& get_map) const { SeasonDayTypeSchedule::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TapSchedule.TapChanger", &get_TapSchedule_TapChanger); + get_map.emplace("TapSchedule.TapChanger", &get_TapSchedule_TapChanger); } void TapSchedule::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void TapSchedule::addEnumGetFnsToMap(std::map& get_ma SeasonDayTypeSchedule::addEnumGetFnsToMap(get_map); } +bool TapSchedule::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TapSchedule" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TapSchedule::declare() { return BaseClassDefiner(TapSchedule::addConstructToMap, TapSchedule::addPrimitiveAssignFnsToMap, TapSchedule::addClassAssignFnsToMap, TapSchedule::debugName); } +std::map TapSchedule::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = SeasonDayTypeSchedule::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TapSchedule_factory() diff --git a/CGMES_3.0.0/TapSchedule.hpp b/CGMES_3.0.0/TapSchedule.hpp index 2e452fc41..cddaeeb57 100644 --- a/CGMES_3.0.0/TapSchedule.hpp +++ b/CGMES_3.0.0/TapSchedule.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "SeasonDayTypeSchedule.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TapSchedule_factory(); diff --git a/CGMES_3.0.0/Terminal.cpp b/CGMES_3.0.0/Terminal.cpp index d5ce4653c..fca85d842 100644 --- a/CGMES_3.0.0/Terminal.cpp +++ b/CGMES_3.0.0/Terminal.cpp @@ -22,51 +22,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + Terminal(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::EQBD, + CGMESProfile::OP, + CGMESProfile::SC, + CGMESProfile::SSH, + CGMESProfile::SV, + CGMESProfile::TP, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "Terminal.AuxiliaryEquipment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Terminal.ConductingEquipment", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "Terminal.ConnectivityNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "Terminal.ConverterDCSides", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Terminal.HasFirstMutualCoupling", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "Terminal.HasSecondMutualCoupling", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "Terminal.RegulatingControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Terminal.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "Terminal.SvPowerFlow", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "Terminal.TieFlow", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Terminal.TopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "Terminal.TransformerEnd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "Terminal.phases", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + Terminal::Terminal() : ConductingEquipment(nullptr), ConnectivityNode(nullptr), SvPowerFlow(nullptr), TopologicalNode(nullptr) {} Terminal::~Terminal() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::EQBD, - CGMESProfile::OP, - CGMESProfile::SC, - CGMESProfile::SSH, - CGMESProfile::SV, - CGMESProfile::TP, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:Terminal.AuxiliaryEquipment", { CGMESProfile::EQ, } }, - { "cim:Terminal.ConductingEquipment", { CGMESProfile::DY, CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:Terminal.ConnectivityNode", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:Terminal.ConverterDCSides", { CGMESProfile::EQ, } }, - { "cim:Terminal.HasFirstMutualCoupling", { CGMESProfile::SC, } }, - { "cim:Terminal.HasSecondMutualCoupling", { CGMESProfile::SC, } }, - { "cim:Terminal.RegulatingControl", { CGMESProfile::EQ, } }, - { "cim:Terminal.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:Terminal.SvPowerFlow", { CGMESProfile::SV, } }, - { "cim:Terminal.TieFlow", { CGMESProfile::EQ, } }, - { "cim:Terminal.TopologicalNode", { CGMESProfile::TP, } }, - { "cim:Terminal.TransformerEnd", { CGMESProfile::EQ, } }, - { "cim:Terminal.phases", { CGMESProfile::EQ, } }, -}; - -std::list -Terminal::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -Terminal::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCTerminal::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& Terminal::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& Terminal::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& Terminal::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& Terminal::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& Terminal::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& Terminal::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& Terminal::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AuxiliaryEquipment_Terminal(BaseClass*, BaseClass*); @@ -361,28 +393,28 @@ const char* Terminal::debugString() const void Terminal::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:Terminal", &Terminal_factory); + factory_map.emplace("Terminal", &Terminal_factory); } void Terminal::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Terminal.phases", &assign_Terminal_phases); + assign_map.emplace("Terminal.phases", &assign_Terminal_phases); } void Terminal::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:Terminal.AuxiliaryEquipment", &assign_Terminal_AuxiliaryEquipment); - assign_map.emplace("cim:Terminal.ConductingEquipment", &assign_Terminal_ConductingEquipment); - assign_map.emplace("cim:Terminal.ConnectivityNode", &assign_Terminal_ConnectivityNode); - assign_map.emplace("cim:Terminal.ConverterDCSides", &assign_Terminal_ConverterDCSides); - assign_map.emplace("cim:Terminal.HasFirstMutualCoupling", &assign_Terminal_HasFirstMutualCoupling); - assign_map.emplace("cim:Terminal.HasSecondMutualCoupling", &assign_Terminal_HasSecondMutualCoupling); - assign_map.emplace("cim:Terminal.RegulatingControl", &assign_Terminal_RegulatingControl); - assign_map.emplace("cim:Terminal.RemoteInputSignal", &assign_Terminal_RemoteInputSignal); - assign_map.emplace("cim:Terminal.SvPowerFlow", &assign_Terminal_SvPowerFlow); - assign_map.emplace("cim:Terminal.TieFlow", &assign_Terminal_TieFlow); - assign_map.emplace("cim:Terminal.TopologicalNode", &assign_Terminal_TopologicalNode); - assign_map.emplace("cim:Terminal.TransformerEnd", &assign_Terminal_TransformerEnd); + assign_map.emplace("Terminal.AuxiliaryEquipment", &assign_Terminal_AuxiliaryEquipment); + assign_map.emplace("Terminal.ConductingEquipment", &assign_Terminal_ConductingEquipment); + assign_map.emplace("Terminal.ConnectivityNode", &assign_Terminal_ConnectivityNode); + assign_map.emplace("Terminal.ConverterDCSides", &assign_Terminal_ConverterDCSides); + assign_map.emplace("Terminal.HasFirstMutualCoupling", &assign_Terminal_HasFirstMutualCoupling); + assign_map.emplace("Terminal.HasSecondMutualCoupling", &assign_Terminal_HasSecondMutualCoupling); + assign_map.emplace("Terminal.RegulatingControl", &assign_Terminal_RegulatingControl); + assign_map.emplace("Terminal.RemoteInputSignal", &assign_Terminal_RemoteInputSignal); + assign_map.emplace("Terminal.SvPowerFlow", &assign_Terminal_SvPowerFlow); + assign_map.emplace("Terminal.TieFlow", &assign_Terminal_TieFlow); + assign_map.emplace("Terminal.TopologicalNode", &assign_Terminal_TopologicalNode); + assign_map.emplace("Terminal.TransformerEnd", &assign_Terminal_TransformerEnd); } void Terminal::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -393,15 +425,21 @@ void Terminal::addPrimitiveGetFnsToMap(std::map& get_ void Terminal::addClassGetFnsToMap(std::map& get_map) const { ACDCTerminal::addClassGetFnsToMap(get_map); - get_map.emplace("cim:Terminal.ConductingEquipment", &get_Terminal_ConductingEquipment); - get_map.emplace("cim:Terminal.ConnectivityNode", &get_Terminal_ConnectivityNode); - get_map.emplace("cim:Terminal.TopologicalNode", &get_Terminal_TopologicalNode); + get_map.emplace("Terminal.ConductingEquipment", &get_Terminal_ConductingEquipment); + get_map.emplace("Terminal.ConnectivityNode", &get_Terminal_ConnectivityNode); + get_map.emplace("Terminal.TopologicalNode", &get_Terminal_TopologicalNode); } void Terminal::addEnumGetFnsToMap(std::map& get_map) const { ACDCTerminal::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:Terminal.phases", &get_Terminal_phases); + get_map.emplace("Terminal.phases", &get_Terminal_phases); +} + +bool Terminal::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "Terminal" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner Terminal::declare() @@ -409,6 +447,14 @@ const BaseClassDefiner Terminal::declare() return BaseClassDefiner(Terminal::addConstructToMap, Terminal::addPrimitiveAssignFnsToMap, Terminal::addClassAssignFnsToMap, Terminal::debugName); } +std::map Terminal::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCTerminal::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* Terminal_factory() diff --git a/CGMES_3.0.0/Terminal.hpp b/CGMES_3.0.0/Terminal.hpp index 02e8c7096..52c99b61b 100644 --- a/CGMES_3.0.0/Terminal.hpp +++ b/CGMES_3.0.0/Terminal.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCTerminal.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PhaseCode.hpp" namespace CIMPP @@ -78,8 +79,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -87,7 +95,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* Terminal_factory(); diff --git a/CGMES_3.0.0/TextDiagramObject.cpp b/CGMES_3.0.0/TextDiagramObject.cpp index 684542b39..402910ca3 100644 --- a/CGMES_3.0.0/TextDiagramObject.cpp +++ b/CGMES_3.0.0/TextDiagramObject.cpp @@ -11,32 +11,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TextDiagramObject(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TextDiagramObject.text", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + TextDiagramObject::TextDiagramObject() {} TextDiagramObject::~TextDiagramObject() {} -static const std::list PossibleProfilesForClass = +const std::list& TextDiagramObject::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TextDiagramObject::getClassNamespaceUrl() const { - { "cim:TextDiagramObject.text", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TextDiagramObject::getPossibleProfilesForClass() const +const std::string& TextDiagramObject::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TextDiagramObject::getPossibleProfilesForAttributes() const +const std::list& TextDiagramObject::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DiagramObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TextDiagramObject::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TextDiagramObject::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TextDiagramObject::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TextDiagramObject_text(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -76,12 +108,12 @@ const char* TextDiagramObject::debugString() const void TextDiagramObject::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TextDiagramObject", &TextDiagramObject_factory); + factory_map.emplace("TextDiagramObject", &TextDiagramObject_factory); } void TextDiagramObject::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TextDiagramObject.text", &assign_TextDiagramObject_text); + assign_map.emplace("TextDiagramObject.text", &assign_TextDiagramObject_text); } void TextDiagramObject::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -91,7 +123,7 @@ void TextDiagramObject::addClassAssignFnsToMap(std::unordered_map& get_map) const { DiagramObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TextDiagramObject.text", &get_TextDiagramObject_text); + get_map.emplace("TextDiagramObject.text", &get_TextDiagramObject_text); } void TextDiagramObject::addClassGetFnsToMap(std::map& get_map) const @@ -104,11 +136,25 @@ void TextDiagramObject::addEnumGetFnsToMap(std::map& DiagramObject::addEnumGetFnsToMap(get_map); } +bool TextDiagramObject::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TextDiagramObject" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TextDiagramObject::declare() { return BaseClassDefiner(TextDiagramObject::addConstructToMap, TextDiagramObject::addPrimitiveAssignFnsToMap, TextDiagramObject::addClassAssignFnsToMap, TextDiagramObject::debugName); } +std::map TextDiagramObject::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DiagramObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TextDiagramObject_factory() diff --git a/CGMES_3.0.0/TextDiagramObject.hpp b/CGMES_3.0.0/TextDiagramObject.hpp index 188381ff3..c62abdc11 100644 --- a/CGMES_3.0.0/TextDiagramObject.hpp +++ b/CGMES_3.0.0/TextDiagramObject.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DiagramObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TextDiagramObject_factory(); diff --git a/CGMES_3.0.0/ThermalGeneratingUnit.cpp b/CGMES_3.0.0/ThermalGeneratingUnit.cpp index 237cc3857..9e3545e8c 100644 --- a/CGMES_3.0.0/ThermalGeneratingUnit.cpp +++ b/CGMES_3.0.0/ThermalGeneratingUnit.cpp @@ -15,36 +15,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ThermalGeneratingUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ThermalGeneratingUnit.CAESPlant", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ThermalGeneratingUnit.CogenerationPlant", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ThermalGeneratingUnit.CombinedCyclePlant", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "ThermalGeneratingUnit.FossilFuels", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + ThermalGeneratingUnit::ThermalGeneratingUnit() : CAESPlant(nullptr), CogenerationPlant(nullptr), CombinedCyclePlant(nullptr) {} ThermalGeneratingUnit::~ThermalGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& ThermalGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ThermalGeneratingUnit::getClassNamespaceUrl() const { - { "cim:ThermalGeneratingUnit.CAESPlant", { CGMESProfile::EQ, } }, - { "cim:ThermalGeneratingUnit.CogenerationPlant", { CGMESProfile::EQ, } }, - { "cim:ThermalGeneratingUnit.CombinedCyclePlant", { CGMESProfile::EQ, } }, - { "cim:ThermalGeneratingUnit.FossilFuels", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ThermalGeneratingUnit::getPossibleProfilesForClass() const +const std::string& ThermalGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ThermalGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& ThermalGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ThermalGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ThermalGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ThermalGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_CAESPlant_ThermalGeneratingUnit(BaseClass*, BaseClass*); @@ -166,7 +198,7 @@ const char* ThermalGeneratingUnit::debugString() const void ThermalGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ThermalGeneratingUnit", &ThermalGeneratingUnit_factory); + factory_map.emplace("ThermalGeneratingUnit", &ThermalGeneratingUnit_factory); } void ThermalGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -175,10 +207,10 @@ void ThermalGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ThermalGeneratingUnit.CAESPlant", &assign_ThermalGeneratingUnit_CAESPlant); - assign_map.emplace("cim:ThermalGeneratingUnit.CogenerationPlant", &assign_ThermalGeneratingUnit_CogenerationPlant); - assign_map.emplace("cim:ThermalGeneratingUnit.CombinedCyclePlant", &assign_ThermalGeneratingUnit_CombinedCyclePlant); - assign_map.emplace("cim:ThermalGeneratingUnit.FossilFuels", &assign_ThermalGeneratingUnit_FossilFuels); + assign_map.emplace("ThermalGeneratingUnit.CAESPlant", &assign_ThermalGeneratingUnit_CAESPlant); + assign_map.emplace("ThermalGeneratingUnit.CogenerationPlant", &assign_ThermalGeneratingUnit_CogenerationPlant); + assign_map.emplace("ThermalGeneratingUnit.CombinedCyclePlant", &assign_ThermalGeneratingUnit_CombinedCyclePlant); + assign_map.emplace("ThermalGeneratingUnit.FossilFuels", &assign_ThermalGeneratingUnit_FossilFuels); } void ThermalGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -189,9 +221,9 @@ void ThermalGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { GeneratingUnit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ThermalGeneratingUnit.CAESPlant", &get_ThermalGeneratingUnit_CAESPlant); - get_map.emplace("cim:ThermalGeneratingUnit.CogenerationPlant", &get_ThermalGeneratingUnit_CogenerationPlant); - get_map.emplace("cim:ThermalGeneratingUnit.CombinedCyclePlant", &get_ThermalGeneratingUnit_CombinedCyclePlant); + get_map.emplace("ThermalGeneratingUnit.CAESPlant", &get_ThermalGeneratingUnit_CAESPlant); + get_map.emplace("ThermalGeneratingUnit.CogenerationPlant", &get_ThermalGeneratingUnit_CogenerationPlant); + get_map.emplace("ThermalGeneratingUnit.CombinedCyclePlant", &get_ThermalGeneratingUnit_CombinedCyclePlant); } void ThermalGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const @@ -199,11 +231,25 @@ void ThermalGeneratingUnit::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner ThermalGeneratingUnit::declare() { return BaseClassDefiner(ThermalGeneratingUnit::addConstructToMap, ThermalGeneratingUnit::addPrimitiveAssignFnsToMap, ThermalGeneratingUnit::addClassAssignFnsToMap, ThermalGeneratingUnit::debugName); } +std::map ThermalGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ThermalGeneratingUnit_factory() diff --git a/CGMES_3.0.0/ThermalGeneratingUnit.hpp b/CGMES_3.0.0/ThermalGeneratingUnit.hpp index bf51015ee..f0db9a2d4 100644 --- a/CGMES_3.0.0/ThermalGeneratingUnit.hpp +++ b/CGMES_3.0.0/ThermalGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ThermalGeneratingUnit_factory(); diff --git a/CGMES_3.0.0/TieFlow.cpp b/CGMES_3.0.0/TieFlow.cpp index bdae06ae5..a780744a6 100644 --- a/CGMES_3.0.0/TieFlow.cpp +++ b/CGMES_3.0.0/TieFlow.cpp @@ -13,34 +13,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TieFlow(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TieFlow.ControlArea", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TieFlow.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TieFlow.positiveFlowIn", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + TieFlow::TieFlow() : ControlArea(nullptr), Terminal(nullptr) {} TieFlow::~TieFlow() {} -static const std::list PossibleProfilesForClass = +const std::list& TieFlow::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TieFlow::getClassNamespaceUrl() const { - { "cim:TieFlow.ControlArea", { CGMESProfile::EQ, } }, - { "cim:TieFlow.Terminal", { CGMESProfile::EQ, } }, - { "cim:TieFlow.positiveFlowIn", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TieFlow::getPossibleProfilesForClass() const +const std::string& TieFlow::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TieFlow::getPossibleProfilesForAttributes() const +const std::list& TieFlow::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TieFlow::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TieFlow::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TieFlow::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ControlArea_TieFlow(BaseClass*, BaseClass*); @@ -142,31 +174,31 @@ const char* TieFlow::debugString() const void TieFlow::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TieFlow", &TieFlow_factory); + factory_map.emplace("TieFlow", &TieFlow_factory); } void TieFlow::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TieFlow.positiveFlowIn", &assign_TieFlow_positiveFlowIn); + assign_map.emplace("TieFlow.positiveFlowIn", &assign_TieFlow_positiveFlowIn); } void TieFlow::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TieFlow.ControlArea", &assign_TieFlow_ControlArea); - assign_map.emplace("cim:TieFlow.Terminal", &assign_TieFlow_Terminal); + assign_map.emplace("TieFlow.ControlArea", &assign_TieFlow_ControlArea); + assign_map.emplace("TieFlow.Terminal", &assign_TieFlow_Terminal); } void TieFlow::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TieFlow.positiveFlowIn", &get_TieFlow_positiveFlowIn); + get_map.emplace("TieFlow.positiveFlowIn", &get_TieFlow_positiveFlowIn); } void TieFlow::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TieFlow.ControlArea", &get_TieFlow_ControlArea); - get_map.emplace("cim:TieFlow.Terminal", &get_TieFlow_Terminal); + get_map.emplace("TieFlow.ControlArea", &get_TieFlow_ControlArea); + get_map.emplace("TieFlow.Terminal", &get_TieFlow_Terminal); } void TieFlow::addEnumGetFnsToMap(std::map& get_map) const @@ -174,11 +206,25 @@ void TieFlow::addEnumGetFnsToMap(std::map& get_map) c IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TieFlow::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TieFlow" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TieFlow::declare() { return BaseClassDefiner(TieFlow::addConstructToMap, TieFlow::addPrimitiveAssignFnsToMap, TieFlow::addClassAssignFnsToMap, TieFlow::debugName); } +std::map TieFlow::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TieFlow_factory() diff --git a/CGMES_3.0.0/TieFlow.hpp b/CGMES_3.0.0/TieFlow.hpp index f8aefa4bc..d41f2738e 100644 --- a/CGMES_3.0.0/TieFlow.hpp +++ b/CGMES_3.0.0/TieFlow.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TieFlow_factory(); diff --git a/CGMES_3.0.0/TopologicalIsland.cpp b/CGMES_3.0.0/TopologicalIsland.cpp index 46b353666..92078afa5 100644 --- a/CGMES_3.0.0/TopologicalIsland.cpp +++ b/CGMES_3.0.0/TopologicalIsland.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologicalIsland(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + }, + CGMESProfile::SV + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologicalIsland.AngleRefTopologicalNode", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "TopologicalIsland.TopologicalNodes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + TopologicalIsland::TopologicalIsland() : AngleRefTopologicalNode(nullptr) {} TopologicalIsland::~TopologicalIsland() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologicalIsland::getAttributeNames() const { - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologicalIsland::getClassNamespaceUrl() const { - { "cim:TopologicalIsland.AngleRefTopologicalNode", { CGMESProfile::SV, } }, - { "cim:TopologicalIsland.TopologicalNodes", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologicalIsland::getPossibleProfilesForClass() const +const std::string& TopologicalIsland::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologicalIsland::getPossibleProfilesForAttributes() const +const std::list& TopologicalIsland::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologicalIsland::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologicalIsland::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologicalIsland::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalNode_AngleRefTopologicalIsland(BaseClass*, BaseClass*); @@ -108,7 +140,7 @@ const char* TopologicalIsland::debugString() const void TopologicalIsland::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologicalIsland", &TopologicalIsland_factory); + factory_map.emplace("TopologicalIsland", &TopologicalIsland_factory); } void TopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -117,8 +149,8 @@ void TopologicalIsland::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalIsland.AngleRefTopologicalNode", &assign_TopologicalIsland_AngleRefTopologicalNode); - assign_map.emplace("cim:TopologicalIsland.TopologicalNodes", &assign_TopologicalIsland_TopologicalNodes); + assign_map.emplace("TopologicalIsland.AngleRefTopologicalNode", &assign_TopologicalIsland_AngleRefTopologicalNode); + assign_map.emplace("TopologicalIsland.TopologicalNodes", &assign_TopologicalIsland_TopologicalNodes); } void TopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -129,8 +161,8 @@ void TopologicalIsland::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalIsland.AngleRefTopologicalNode", &get_TopologicalIsland_AngleRefTopologicalNode); - get_map.emplace("cim:TopologicalIsland.TopologicalNodes", &get_TopologicalIsland_TopologicalNodes); + get_map.emplace("TopologicalIsland.AngleRefTopologicalNode", &get_TopologicalIsland_AngleRefTopologicalNode); + get_map.emplace("TopologicalIsland.TopologicalNodes", &get_TopologicalIsland_TopologicalNodes); } void TopologicalIsland::addEnumGetFnsToMap(std::map& get_map) const @@ -138,11 +170,25 @@ void TopologicalIsland::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TopologicalIsland::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologicalIsland" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologicalIsland::declare() { return BaseClassDefiner(TopologicalIsland::addConstructToMap, TopologicalIsland::addPrimitiveAssignFnsToMap, TopologicalIsland::addClassAssignFnsToMap, TopologicalIsland::debugName); } +std::map TopologicalIsland::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologicalIsland_factory() diff --git a/CGMES_3.0.0/TopologicalIsland.hpp b/CGMES_3.0.0/TopologicalIsland.hpp index e210c0025..17ed4e42e 100644 --- a/CGMES_3.0.0/TopologicalIsland.hpp +++ b/CGMES_3.0.0/TopologicalIsland.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologicalIsland_factory(); diff --git a/CGMES_3.0.0/TopologicalNode.cpp b/CGMES_3.0.0/TopologicalNode.cpp index ade00d469..b57e6c1a9 100644 --- a/CGMES_3.0.0/TopologicalNode.cpp +++ b/CGMES_3.0.0/TopologicalNode.cpp @@ -19,41 +19,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TopologicalNode(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::SV, + CGMESProfile::TP, + }, + CGMESProfile::TP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TopologicalNode.AngleRefTopologicalIsland", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "TopologicalNode.BaseVoltage", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "TopologicalNode.ConnectivityNodeContainer", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "TopologicalNode.ConnectivityNodes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "TopologicalNode.ReportingGroup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "TopologicalNode.SvInjection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "TopologicalNode.SvVoltage", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "TopologicalNode.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::TP, } } }, + { "TopologicalNode.TopologicalIsland", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + TopologicalNode::TopologicalNode() : AngleRefTopologicalIsland(nullptr), BaseVoltage(nullptr), ConnectivityNodeContainer(nullptr), ReportingGroup(nullptr), SvInjection(nullptr), SvVoltage(nullptr), TopologicalIsland(nullptr) {} TopologicalNode::~TopologicalNode() {} -static const std::list PossibleProfilesForClass = +const std::list& TopologicalNode::getAttributeNames() const { - CGMESProfile::SV, - CGMESProfile::TP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TopologicalNode::getClassNamespaceUrl() const { - { "cim:TopologicalNode.AngleRefTopologicalIsland", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.BaseVoltage", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.ConnectivityNodeContainer", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.ConnectivityNodes", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.ReportingGroup", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.SvInjection", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.SvVoltage", { CGMESProfile::SV, } }, - { "cim:TopologicalNode.Terminal", { CGMESProfile::TP, } }, - { "cim:TopologicalNode.TopologicalIsland", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TopologicalNode::getPossibleProfilesForClass() const +const std::string& TopologicalNode::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TopologicalNode::getPossibleProfilesForAttributes() const +const std::list& TopologicalNode::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TopologicalNode::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TopologicalNode::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TopologicalNode::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TopologicalIsland_AngleRefTopologicalNode(BaseClass*, BaseClass*); @@ -265,7 +297,7 @@ const char* TopologicalNode::debugString() const void TopologicalNode::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TopologicalNode", &TopologicalNode_factory); + factory_map.emplace("TopologicalNode", &TopologicalNode_factory); } void TopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -274,15 +306,15 @@ void TopologicalNode::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TopologicalNode.AngleRefTopologicalIsland", &assign_TopologicalNode_AngleRefTopologicalIsland); - assign_map.emplace("cim:TopologicalNode.BaseVoltage", &assign_TopologicalNode_BaseVoltage); - assign_map.emplace("cim:TopologicalNode.ConnectivityNodeContainer", &assign_TopologicalNode_ConnectivityNodeContainer); - assign_map.emplace("cim:TopologicalNode.ConnectivityNodes", &assign_TopologicalNode_ConnectivityNodes); - assign_map.emplace("cim:TopologicalNode.ReportingGroup", &assign_TopologicalNode_ReportingGroup); - assign_map.emplace("cim:TopologicalNode.SvInjection", &assign_TopologicalNode_SvInjection); - assign_map.emplace("cim:TopologicalNode.SvVoltage", &assign_TopologicalNode_SvVoltage); - assign_map.emplace("cim:TopologicalNode.Terminal", &assign_TopologicalNode_Terminal); - assign_map.emplace("cim:TopologicalNode.TopologicalIsland", &assign_TopologicalNode_TopologicalIsland); + assign_map.emplace("TopologicalNode.AngleRefTopologicalIsland", &assign_TopologicalNode_AngleRefTopologicalIsland); + assign_map.emplace("TopologicalNode.BaseVoltage", &assign_TopologicalNode_BaseVoltage); + assign_map.emplace("TopologicalNode.ConnectivityNodeContainer", &assign_TopologicalNode_ConnectivityNodeContainer); + assign_map.emplace("TopologicalNode.ConnectivityNodes", &assign_TopologicalNode_ConnectivityNodes); + assign_map.emplace("TopologicalNode.ReportingGroup", &assign_TopologicalNode_ReportingGroup); + assign_map.emplace("TopologicalNode.SvInjection", &assign_TopologicalNode_SvInjection); + assign_map.emplace("TopologicalNode.SvVoltage", &assign_TopologicalNode_SvVoltage); + assign_map.emplace("TopologicalNode.Terminal", &assign_TopologicalNode_Terminal); + assign_map.emplace("TopologicalNode.TopologicalIsland", &assign_TopologicalNode_TopologicalIsland); } void TopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -293,9 +325,9 @@ void TopologicalNode::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TopologicalNode.BaseVoltage", &get_TopologicalNode_BaseVoltage); - get_map.emplace("cim:TopologicalNode.ConnectivityNodeContainer", &get_TopologicalNode_ConnectivityNodeContainer); - get_map.emplace("cim:TopologicalNode.ReportingGroup", &get_TopologicalNode_ReportingGroup); + get_map.emplace("TopologicalNode.BaseVoltage", &get_TopologicalNode_BaseVoltage); + get_map.emplace("TopologicalNode.ConnectivityNodeContainer", &get_TopologicalNode_ConnectivityNodeContainer); + get_map.emplace("TopologicalNode.ReportingGroup", &get_TopologicalNode_ReportingGroup); } void TopologicalNode::addEnumGetFnsToMap(std::map& get_map) const @@ -303,11 +335,25 @@ void TopologicalNode::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TopologicalNode::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TopologicalNode" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TopologicalNode::declare() { return BaseClassDefiner(TopologicalNode::addConstructToMap, TopologicalNode::addPrimitiveAssignFnsToMap, TopologicalNode::addClassAssignFnsToMap, TopologicalNode::debugName); } +std::map TopologicalNode::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TopologicalNode_factory() diff --git a/CGMES_3.0.0/TopologicalNode.hpp b/CGMES_3.0.0/TopologicalNode.hpp index b2424d138..4951c0b34 100644 --- a/CGMES_3.0.0/TopologicalNode.hpp +++ b/CGMES_3.0.0/TopologicalNode.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TopologicalNode_factory(); diff --git a/CGMES_3.0.0/TownDetail.cpp b/CGMES_3.0.0/TownDetail.cpp index fbc3720e3..7ed132739 100644 --- a/CGMES_3.0.0/TownDetail.cpp +++ b/CGMES_3.0.0/TownDetail.cpp @@ -11,36 +11,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TownDetail(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TownDetail.code", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "TownDetail.country", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "TownDetail.name", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "TownDetail.section", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + { "TownDetail.stateOrProvince", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::GL, } } }, + }; + return ClassAttrDetailsMap; +} + TownDetail::TownDetail() {} TownDetail::~TownDetail() {} -static const std::list PossibleProfilesForClass = +const std::list& TownDetail::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TownDetail::getClassNamespaceUrl() const { - { "cim:TownDetail.code", { CGMESProfile::GL, } }, - { "cim:TownDetail.country", { CGMESProfile::GL, } }, - { "cim:TownDetail.name", { CGMESProfile::GL, } }, - { "cim:TownDetail.section", { CGMESProfile::GL, } }, - { "cim:TownDetail.stateOrProvince", { CGMESProfile::GL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TownDetail::getPossibleProfilesForClass() const +const std::string& TownDetail::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TownDetail::getPossibleProfilesForAttributes() const +const std::list& TownDetail::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = BaseClass::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TownDetail::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TownDetail::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TownDetail::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TownDetail_code(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -196,16 +228,16 @@ const char* TownDetail::debugString() const void TownDetail::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TownDetail", &TownDetail_factory); + factory_map.emplace("TownDetail", &TownDetail_factory); } void TownDetail::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TownDetail.code", &assign_TownDetail_code); - assign_map.emplace("cim:TownDetail.country", &assign_TownDetail_country); - assign_map.emplace("cim:TownDetail.name", &assign_TownDetail_name); - assign_map.emplace("cim:TownDetail.section", &assign_TownDetail_section); - assign_map.emplace("cim:TownDetail.stateOrProvince", &assign_TownDetail_stateOrProvince); + assign_map.emplace("TownDetail.code", &assign_TownDetail_code); + assign_map.emplace("TownDetail.country", &assign_TownDetail_country); + assign_map.emplace("TownDetail.name", &assign_TownDetail_name); + assign_map.emplace("TownDetail.section", &assign_TownDetail_section); + assign_map.emplace("TownDetail.stateOrProvince", &assign_TownDetail_stateOrProvince); } void TownDetail::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -215,11 +247,11 @@ void TownDetail::addClassAssignFnsToMap(std::unordered_map& get_map) const { BaseClass::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TownDetail.code", &get_TownDetail_code); - get_map.emplace("cim:TownDetail.country", &get_TownDetail_country); - get_map.emplace("cim:TownDetail.name", &get_TownDetail_name); - get_map.emplace("cim:TownDetail.section", &get_TownDetail_section); - get_map.emplace("cim:TownDetail.stateOrProvince", &get_TownDetail_stateOrProvince); + get_map.emplace("TownDetail.code", &get_TownDetail_code); + get_map.emplace("TownDetail.country", &get_TownDetail_country); + get_map.emplace("TownDetail.name", &get_TownDetail_name); + get_map.emplace("TownDetail.section", &get_TownDetail_section); + get_map.emplace("TownDetail.stateOrProvince", &get_TownDetail_stateOrProvince); } void TownDetail::addClassGetFnsToMap(std::map& get_map) const @@ -232,11 +264,25 @@ void TownDetail::addEnumGetFnsToMap(std::map& get_map BaseClass::addEnumGetFnsToMap(get_map); } +bool TownDetail::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TownDetail" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TownDetail::declare() { return BaseClassDefiner(TownDetail::addConstructToMap, TownDetail::addPrimitiveAssignFnsToMap, TownDetail::addClassAssignFnsToMap, TownDetail::debugName); } +std::map TownDetail::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = BaseClass::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TownDetail_factory() diff --git a/CGMES_3.0.0/TownDetail.hpp b/CGMES_3.0.0/TownDetail.hpp index 11f30e0e6..1c6a3ee4f 100644 --- a/CGMES_3.0.0/TownDetail.hpp +++ b/CGMES_3.0.0/TownDetail.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "BaseClass.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "String.hpp" namespace CIMPP @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TownDetail_factory(); diff --git a/CGMES_3.0.0/TransformerEnd.cpp b/CGMES_3.0.0/TransformerEnd.cpp index f15566b09..72b2e2459 100644 --- a/CGMES_3.0.0/TransformerEnd.cpp +++ b/CGMES_3.0.0/TransformerEnd.cpp @@ -15,40 +15,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TransformerEnd(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SC, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TransformerEnd.BaseVoltage", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.PhaseTapChanger", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.RatioTapChanger", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.Terminal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.endNumber", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "TransformerEnd.grounded", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "TransformerEnd.rground", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + { "TransformerEnd.xground", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SC, } } }, + }; + return ClassAttrDetailsMap; +} + TransformerEnd::TransformerEnd() : BaseVoltage(nullptr), PhaseTapChanger(nullptr), RatioTapChanger(nullptr), Terminal(nullptr) {} TransformerEnd::~TransformerEnd() {} -static const std::list PossibleProfilesForClass = +const std::list& TransformerEnd::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SC, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TransformerEnd::getClassNamespaceUrl() const { - { "cim:TransformerEnd.BaseVoltage", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.PhaseTapChanger", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.RatioTapChanger", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.Terminal", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.endNumber", { CGMESProfile::EQ, } }, - { "cim:TransformerEnd.grounded", { CGMESProfile::SC, } }, - { "cim:TransformerEnd.rground", { CGMESProfile::SC, } }, - { "cim:TransformerEnd.xground", { CGMESProfile::SC, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TransformerEnd::getPossibleProfilesForClass() const +const std::string& TransformerEnd::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TransformerEnd::getPossibleProfilesForAttributes() const +const std::list& TransformerEnd::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TransformerEnd::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TransformerEnd::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TransformerEnd::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_TransformerEnds(BaseClass*, BaseClass*); @@ -273,39 +305,39 @@ const char* TransformerEnd::debugString() const void TransformerEnd::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TransformerEnd", &TransformerEnd_factory); + factory_map.emplace("TransformerEnd", &TransformerEnd_factory); } void TransformerEnd::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TransformerEnd.endNumber", &assign_TransformerEnd_endNumber); - assign_map.emplace("cim:TransformerEnd.grounded", &assign_TransformerEnd_grounded); - assign_map.emplace("cim:TransformerEnd.rground", &assign_TransformerEnd_rground); - assign_map.emplace("cim:TransformerEnd.xground", &assign_TransformerEnd_xground); + assign_map.emplace("TransformerEnd.endNumber", &assign_TransformerEnd_endNumber); + assign_map.emplace("TransformerEnd.grounded", &assign_TransformerEnd_grounded); + assign_map.emplace("TransformerEnd.rground", &assign_TransformerEnd_rground); + assign_map.emplace("TransformerEnd.xground", &assign_TransformerEnd_xground); } void TransformerEnd::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TransformerEnd.BaseVoltage", &assign_TransformerEnd_BaseVoltage); - assign_map.emplace("cim:TransformerEnd.PhaseTapChanger", &assign_TransformerEnd_PhaseTapChanger); - assign_map.emplace("cim:TransformerEnd.RatioTapChanger", &assign_TransformerEnd_RatioTapChanger); - assign_map.emplace("cim:TransformerEnd.Terminal", &assign_TransformerEnd_Terminal); + assign_map.emplace("TransformerEnd.BaseVoltage", &assign_TransformerEnd_BaseVoltage); + assign_map.emplace("TransformerEnd.PhaseTapChanger", &assign_TransformerEnd_PhaseTapChanger); + assign_map.emplace("TransformerEnd.RatioTapChanger", &assign_TransformerEnd_RatioTapChanger); + assign_map.emplace("TransformerEnd.Terminal", &assign_TransformerEnd_Terminal); } void TransformerEnd::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TransformerEnd.endNumber", &get_TransformerEnd_endNumber); - get_map.emplace("cim:TransformerEnd.grounded", &get_TransformerEnd_grounded); - get_map.emplace("cim:TransformerEnd.rground", &get_TransformerEnd_rground); - get_map.emplace("cim:TransformerEnd.xground", &get_TransformerEnd_xground); + get_map.emplace("TransformerEnd.endNumber", &get_TransformerEnd_endNumber); + get_map.emplace("TransformerEnd.grounded", &get_TransformerEnd_grounded); + get_map.emplace("TransformerEnd.rground", &get_TransformerEnd_rground); + get_map.emplace("TransformerEnd.xground", &get_TransformerEnd_xground); } void TransformerEnd::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TransformerEnd.BaseVoltage", &get_TransformerEnd_BaseVoltage); - get_map.emplace("cim:TransformerEnd.Terminal", &get_TransformerEnd_Terminal); + get_map.emplace("TransformerEnd.BaseVoltage", &get_TransformerEnd_BaseVoltage); + get_map.emplace("TransformerEnd.Terminal", &get_TransformerEnd_Terminal); } void TransformerEnd::addEnumGetFnsToMap(std::map& get_map) const @@ -313,11 +345,25 @@ void TransformerEnd::addEnumGetFnsToMap(std::map& get IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool TransformerEnd::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TransformerEnd" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TransformerEnd::declare() { return BaseClassDefiner(TransformerEnd::addConstructToMap, TransformerEnd::addPrimitiveAssignFnsToMap, TransformerEnd::addClassAssignFnsToMap, TransformerEnd::debugName); } +std::map TransformerEnd::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TransformerEnd_factory() diff --git a/CGMES_3.0.0/TransformerEnd.hpp b/CGMES_3.0.0/TransformerEnd.hpp index f7e8fb87a..e531351be 100644 --- a/CGMES_3.0.0/TransformerEnd.hpp +++ b/CGMES_3.0.0/TransformerEnd.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Integer.hpp" #include "Reactance.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TransformerEnd_factory(); diff --git a/CGMES_3.0.0/TurbLCFB1.cpp b/CGMES_3.0.0/TurbLCFB1.cpp index 338c975ef..3e7ed2344 100644 --- a/CGMES_3.0.0/TurbLCFB1.cpp +++ b/CGMES_3.0.0/TurbLCFB1.cpp @@ -11,43 +11,75 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbLCFB1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbLCFB1.db", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.emax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.fb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.fbf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.irmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.ki", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.kp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.mwbase", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.pbf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.pmwset", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.speedReferenceGovernor", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbLCFB1.tpelec", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbLCFB1::TurbLCFB1() {} TurbLCFB1::~TurbLCFB1() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbLCFB1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbLCFB1::getClassNamespaceUrl() const { - { "cim:TurbLCFB1.db", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.emax", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.fb", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.fbf", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.irmax", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.ki", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.kp", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.mwbase", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.pbf", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.pmwset", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.speedReferenceGovernor", { CGMESProfile::DY, } }, - { "cim:TurbLCFB1.tpelec", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbLCFB1::getPossibleProfilesForClass() const +const std::string& TurbLCFB1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbLCFB1::getPossibleProfilesForAttributes() const +const std::list& TurbLCFB1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineLoadControllerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbLCFB1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbLCFB1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbLCFB1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TurbLCFB1_db(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -406,23 +438,23 @@ const char* TurbLCFB1::debugString() const void TurbLCFB1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbLCFB1", &TurbLCFB1_factory); + factory_map.emplace("TurbLCFB1", &TurbLCFB1_factory); } void TurbLCFB1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbLCFB1.db", &assign_TurbLCFB1_db); - assign_map.emplace("cim:TurbLCFB1.emax", &assign_TurbLCFB1_emax); - assign_map.emplace("cim:TurbLCFB1.fb", &assign_TurbLCFB1_fb); - assign_map.emplace("cim:TurbLCFB1.fbf", &assign_TurbLCFB1_fbf); - assign_map.emplace("cim:TurbLCFB1.irmax", &assign_TurbLCFB1_irmax); - assign_map.emplace("cim:TurbLCFB1.ki", &assign_TurbLCFB1_ki); - assign_map.emplace("cim:TurbLCFB1.kp", &assign_TurbLCFB1_kp); - assign_map.emplace("cim:TurbLCFB1.mwbase", &assign_TurbLCFB1_mwbase); - assign_map.emplace("cim:TurbLCFB1.pbf", &assign_TurbLCFB1_pbf); - assign_map.emplace("cim:TurbLCFB1.pmwset", &assign_TurbLCFB1_pmwset); - assign_map.emplace("cim:TurbLCFB1.speedReferenceGovernor", &assign_TurbLCFB1_speedReferenceGovernor); - assign_map.emplace("cim:TurbLCFB1.tpelec", &assign_TurbLCFB1_tpelec); + assign_map.emplace("TurbLCFB1.db", &assign_TurbLCFB1_db); + assign_map.emplace("TurbLCFB1.emax", &assign_TurbLCFB1_emax); + assign_map.emplace("TurbLCFB1.fb", &assign_TurbLCFB1_fb); + assign_map.emplace("TurbLCFB1.fbf", &assign_TurbLCFB1_fbf); + assign_map.emplace("TurbLCFB1.irmax", &assign_TurbLCFB1_irmax); + assign_map.emplace("TurbLCFB1.ki", &assign_TurbLCFB1_ki); + assign_map.emplace("TurbLCFB1.kp", &assign_TurbLCFB1_kp); + assign_map.emplace("TurbLCFB1.mwbase", &assign_TurbLCFB1_mwbase); + assign_map.emplace("TurbLCFB1.pbf", &assign_TurbLCFB1_pbf); + assign_map.emplace("TurbLCFB1.pmwset", &assign_TurbLCFB1_pmwset); + assign_map.emplace("TurbLCFB1.speedReferenceGovernor", &assign_TurbLCFB1_speedReferenceGovernor); + assign_map.emplace("TurbLCFB1.tpelec", &assign_TurbLCFB1_tpelec); } void TurbLCFB1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -432,18 +464,18 @@ void TurbLCFB1::addClassAssignFnsToMap(std::unordered_map& get_map) const { TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbLCFB1.db", &get_TurbLCFB1_db); - get_map.emplace("cim:TurbLCFB1.emax", &get_TurbLCFB1_emax); - get_map.emplace("cim:TurbLCFB1.fb", &get_TurbLCFB1_fb); - get_map.emplace("cim:TurbLCFB1.fbf", &get_TurbLCFB1_fbf); - get_map.emplace("cim:TurbLCFB1.irmax", &get_TurbLCFB1_irmax); - get_map.emplace("cim:TurbLCFB1.ki", &get_TurbLCFB1_ki); - get_map.emplace("cim:TurbLCFB1.kp", &get_TurbLCFB1_kp); - get_map.emplace("cim:TurbLCFB1.mwbase", &get_TurbLCFB1_mwbase); - get_map.emplace("cim:TurbLCFB1.pbf", &get_TurbLCFB1_pbf); - get_map.emplace("cim:TurbLCFB1.pmwset", &get_TurbLCFB1_pmwset); - get_map.emplace("cim:TurbLCFB1.speedReferenceGovernor", &get_TurbLCFB1_speedReferenceGovernor); - get_map.emplace("cim:TurbLCFB1.tpelec", &get_TurbLCFB1_tpelec); + get_map.emplace("TurbLCFB1.db", &get_TurbLCFB1_db); + get_map.emplace("TurbLCFB1.emax", &get_TurbLCFB1_emax); + get_map.emplace("TurbLCFB1.fb", &get_TurbLCFB1_fb); + get_map.emplace("TurbLCFB1.fbf", &get_TurbLCFB1_fbf); + get_map.emplace("TurbLCFB1.irmax", &get_TurbLCFB1_irmax); + get_map.emplace("TurbLCFB1.ki", &get_TurbLCFB1_ki); + get_map.emplace("TurbLCFB1.kp", &get_TurbLCFB1_kp); + get_map.emplace("TurbLCFB1.mwbase", &get_TurbLCFB1_mwbase); + get_map.emplace("TurbLCFB1.pbf", &get_TurbLCFB1_pbf); + get_map.emplace("TurbLCFB1.pmwset", &get_TurbLCFB1_pmwset); + get_map.emplace("TurbLCFB1.speedReferenceGovernor", &get_TurbLCFB1_speedReferenceGovernor); + get_map.emplace("TurbLCFB1.tpelec", &get_TurbLCFB1_tpelec); } void TurbLCFB1::addClassGetFnsToMap(std::map& get_map) const @@ -456,11 +488,25 @@ void TurbLCFB1::addEnumGetFnsToMap(std::map& get_map) TurbineLoadControllerDynamics::addEnumGetFnsToMap(get_map); } +bool TurbLCFB1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "TurbLCFB1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner TurbLCFB1::declare() { return BaseClassDefiner(TurbLCFB1::addConstructToMap, TurbLCFB1::addPrimitiveAssignFnsToMap, TurbLCFB1::addClassAssignFnsToMap, TurbLCFB1::debugName); } +std::map TurbLCFB1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineLoadControllerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbLCFB1_factory() diff --git a/CGMES_3.0.0/TurbLCFB1.hpp b/CGMES_3.0.0/TurbLCFB1.hpp index 779af8948..bf76c1aa6 100644 --- a/CGMES_3.0.0/TurbLCFB1.hpp +++ b/CGMES_3.0.0/TurbLCFB1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineLoadControllerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "ActivePower.hpp" #include "Boolean.hpp" #include "PU.hpp" @@ -67,8 +68,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -76,7 +84,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbLCFB1_factory(); diff --git a/CGMES_3.0.0/TurbineGovernorDynamics.cpp b/CGMES_3.0.0/TurbineGovernorDynamics.cpp index dc2364832..6f23bfbc6 100644 --- a/CGMES_3.0.0/TurbineGovernorDynamics.cpp +++ b/CGMES_3.0.0/TurbineGovernorDynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineGovernorDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineGovernorDynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbineGovernorDynamics.SynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbineGovernorDynamics.TurbineLoadControllerDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineGovernorDynamics::TurbineGovernorDynamics() : AsynchronousMachineDynamics(nullptr), SynchronousMachineDynamics(nullptr), TurbineLoadControllerDynamics(nullptr) {} TurbineGovernorDynamics::~TurbineGovernorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineGovernorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineGovernorDynamics::getClassNamespaceUrl() const { - { "cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorDynamics.SynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorDynamics.TurbineLoadControllerDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineGovernorDynamics::getPossibleProfilesForClass() const +const std::string& TurbineGovernorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineGovernorDynamics::getPossibleProfilesForAttributes() const +const std::list& TurbineGovernorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineGovernorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineGovernorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineGovernorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_TurbineGovernorDynamics(BaseClass*, BaseClass*); @@ -132,7 +164,7 @@ const char* TurbineGovernorDynamics::debugString() const void TurbineGovernorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineGovernorDynamics", &TurbineGovernorDynamics_factory); + factory_map.emplace("TurbineGovernorDynamics", &TurbineGovernorDynamics_factory); } void TurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -141,9 +173,9 @@ void TurbineGovernorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", &assign_TurbineGovernorDynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:TurbineGovernorDynamics.SynchronousMachineDynamics", &assign_TurbineGovernorDynamics_SynchronousMachineDynamics); - assign_map.emplace("cim:TurbineGovernorDynamics.TurbineLoadControllerDynamics", &assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics); + assign_map.emplace("TurbineGovernorDynamics.AsynchronousMachineDynamics", &assign_TurbineGovernorDynamics_AsynchronousMachineDynamics); + assign_map.emplace("TurbineGovernorDynamics.SynchronousMachineDynamics", &assign_TurbineGovernorDynamics_SynchronousMachineDynamics); + assign_map.emplace("TurbineGovernorDynamics.TurbineLoadControllerDynamics", &assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics); } void TurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -154,8 +186,8 @@ void TurbineGovernorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TurbineGovernorDynamics.AsynchronousMachineDynamics", &get_TurbineGovernorDynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:TurbineGovernorDynamics.SynchronousMachineDynamics", &get_TurbineGovernorDynamics_SynchronousMachineDynamics); + get_map.emplace("TurbineGovernorDynamics.AsynchronousMachineDynamics", &get_TurbineGovernorDynamics_AsynchronousMachineDynamics); + get_map.emplace("TurbineGovernorDynamics.SynchronousMachineDynamics", &get_TurbineGovernorDynamics_SynchronousMachineDynamics); } void TurbineGovernorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -163,11 +195,25 @@ void TurbineGovernorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineGovernorDynamics::declare() { return BaseClassDefiner(TurbineGovernorDynamics::addConstructToMap, TurbineGovernorDynamics::addPrimitiveAssignFnsToMap, TurbineGovernorDynamics::addClassAssignFnsToMap, TurbineGovernorDynamics::debugName); } +std::map TurbineGovernorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineGovernorDynamics_factory() diff --git a/CGMES_3.0.0/TurbineGovernorDynamics.hpp b/CGMES_3.0.0/TurbineGovernorDynamics.hpp index 03803df30..35ded3494 100644 --- a/CGMES_3.0.0/TurbineGovernorDynamics.hpp +++ b/CGMES_3.0.0/TurbineGovernorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineGovernorDynamics_factory(); diff --git a/CGMES_3.0.0/TurbineGovernorUserDefined.cpp b/CGMES_3.0.0/TurbineGovernorUserDefined.cpp index ad7d7ef5f..7b566e767 100644 --- a/CGMES_3.0.0/TurbineGovernorUserDefined.cpp +++ b/CGMES_3.0.0/TurbineGovernorUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineGovernorUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineGovernorUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbineGovernorUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineGovernorUserDefined::TurbineGovernorUserDefined() {} TurbineGovernorUserDefined::~TurbineGovernorUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineGovernorUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineGovernorUserDefined::getClassNamespaceUrl() const { - { "cim:TurbineGovernorUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineGovernorUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineGovernorUserDefined::getPossibleProfilesForClass() const +const std::string& TurbineGovernorUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineGovernorUserDefined::getPossibleProfilesForAttributes() const +const std::list& TurbineGovernorUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineGovernorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineGovernorUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineGovernorUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineGovernorUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_TurbineGovernorUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* TurbineGovernorUserDefined::debugString() const void TurbineGovernorUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineGovernorUserDefined", &TurbineGovernorUserDefined_factory); + factory_map.emplace("TurbineGovernorUserDefined", &TurbineGovernorUserDefined_factory); } void TurbineGovernorUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorUserDefined.proprietary", &assign_TurbineGovernorUserDefined_proprietary); + assign_map.emplace("TurbineGovernorUserDefined.proprietary", &assign_TurbineGovernorUserDefined_proprietary); } void TurbineGovernorUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineGovernorUserDefined.ProprietaryParameterDynamics", &assign_TurbineGovernorUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("TurbineGovernorUserDefined.ProprietaryParameterDynamics", &assign_TurbineGovernorUserDefined_ProprietaryParameterDynamics); } void TurbineGovernorUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { TurbineGovernorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbineGovernorUserDefined.proprietary", &get_TurbineGovernorUserDefined_proprietary); + get_map.emplace("TurbineGovernorUserDefined.proprietary", &get_TurbineGovernorUserDefined_proprietary); } void TurbineGovernorUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void TurbineGovernorUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineGovernorUserDefined::declare() { return BaseClassDefiner(TurbineGovernorUserDefined::addConstructToMap, TurbineGovernorUserDefined::addPrimitiveAssignFnsToMap, TurbineGovernorUserDefined::addClassAssignFnsToMap, TurbineGovernorUserDefined::debugName); } +std::map TurbineGovernorUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineGovernorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineGovernorUserDefined_factory() diff --git a/CGMES_3.0.0/TurbineGovernorUserDefined.hpp b/CGMES_3.0.0/TurbineGovernorUserDefined.hpp index 9f4c562f6..481c9e938 100644 --- a/CGMES_3.0.0/TurbineGovernorUserDefined.hpp +++ b/CGMES_3.0.0/TurbineGovernorUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineGovernorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineGovernorUserDefined_factory(); diff --git a/CGMES_3.0.0/TurbineLoadControllerDynamics.cpp b/CGMES_3.0.0/TurbineLoadControllerDynamics.cpp index d9ae03d4f..2d83f40fd 100644 --- a/CGMES_3.0.0/TurbineLoadControllerDynamics.cpp +++ b/CGMES_3.0.0/TurbineLoadControllerDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineLoadControllerDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineLoadControllerDynamics.TurbineGovernorDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineLoadControllerDynamics::TurbineLoadControllerDynamics() : TurbineGovernorDynamics(nullptr) {} TurbineLoadControllerDynamics::~TurbineLoadControllerDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineLoadControllerDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineLoadControllerDynamics::getClassNamespaceUrl() const { - { "cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineLoadControllerDynamics::getPossibleProfilesForClass() const +const std::string& TurbineLoadControllerDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineLoadControllerDynamics::getPossibleProfilesForAttributes() const +const std::list& TurbineLoadControllerDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineLoadControllerDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineLoadControllerDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineLoadControllerDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_TurbineGovernorDynamics_TurbineLoadControllerDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* TurbineLoadControllerDynamics::debugString() const void TurbineLoadControllerDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineLoadControllerDynamics", &TurbineLoadControllerDynamics_factory); + factory_map.emplace("TurbineLoadControllerDynamics", &TurbineLoadControllerDynamics_factory); } void TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap(std::unordered_ma void TurbineLoadControllerDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", &assign_TurbineLoadControllerDynamics_TurbineGovernorDynamics); + assign_map.emplace("TurbineLoadControllerDynamics.TurbineGovernorDynamics", &assign_TurbineLoadControllerDynamics_TurbineGovernorDynamics); } void TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:TurbineLoadControllerDynamics.TurbineGovernorDynamics", &get_TurbineLoadControllerDynamics_TurbineGovernorDynamics); + get_map.emplace("TurbineLoadControllerDynamics.TurbineGovernorDynamics", &get_TurbineLoadControllerDynamics_TurbineGovernorDynamics); } void TurbineLoadControllerDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void TurbineLoadControllerDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineLoadControllerDynamics::declare() { return BaseClassDefiner(TurbineLoadControllerDynamics::addConstructToMap, TurbineLoadControllerDynamics::addPrimitiveAssignFnsToMap, TurbineLoadControllerDynamics::addClassAssignFnsToMap, TurbineLoadControllerDynamics::debugName); } +std::map TurbineLoadControllerDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineLoadControllerDynamics_factory() diff --git a/CGMES_3.0.0/TurbineLoadControllerDynamics.hpp b/CGMES_3.0.0/TurbineLoadControllerDynamics.hpp index 3ad55b5cc..4c16c80f4 100644 --- a/CGMES_3.0.0/TurbineLoadControllerDynamics.hpp +++ b/CGMES_3.0.0/TurbineLoadControllerDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineLoadControllerDynamics_factory(); diff --git a/CGMES_3.0.0/TurbineLoadControllerUserDefined.cpp b/CGMES_3.0.0/TurbineLoadControllerUserDefined.cpp index 842adf4c4..af3c43a63 100644 --- a/CGMES_3.0.0/TurbineLoadControllerUserDefined.cpp +++ b/CGMES_3.0.0/TurbineLoadControllerUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + TurbineLoadControllerUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "TurbineLoadControllerUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + TurbineLoadControllerUserDefined::TurbineLoadControllerUserDefined() {} TurbineLoadControllerUserDefined::~TurbineLoadControllerUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& TurbineLoadControllerUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& TurbineLoadControllerUserDefined::getClassNamespaceUrl() const { - { "cim:TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:TurbineLoadControllerUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -TurbineLoadControllerUserDefined::getPossibleProfilesForClass() const +const std::string& TurbineLoadControllerUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -TurbineLoadControllerUserDefined::getPossibleProfilesForAttributes() const +const std::list& TurbineLoadControllerUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = TurbineLoadControllerDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& TurbineLoadControllerUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& TurbineLoadControllerUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& TurbineLoadControllerUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_TurbineLoadControllerUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* TurbineLoadControllerUserDefined::debugString() const void TurbineLoadControllerUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:TurbineLoadControllerUserDefined", &TurbineLoadControllerUserDefined_factory); + factory_map.emplace("TurbineLoadControllerUserDefined", &TurbineLoadControllerUserDefined_factory); } void TurbineLoadControllerUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerUserDefined.proprietary", &assign_TurbineLoadControllerUserDefined_proprietary); + assign_map.emplace("TurbineLoadControllerUserDefined.proprietary", &assign_TurbineLoadControllerUserDefined_proprietary); } void TurbineLoadControllerUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", &assign_TurbineLoadControllerUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", &assign_TurbineLoadControllerUserDefined_ProprietaryParameterDynamics); } void TurbineLoadControllerUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { TurbineLoadControllerDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:TurbineLoadControllerUserDefined.proprietary", &get_TurbineLoadControllerUserDefined_proprietary); + get_map.emplace("TurbineLoadControllerUserDefined.proprietary", &get_TurbineLoadControllerUserDefined_proprietary); } void TurbineLoadControllerUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void TurbineLoadControllerUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner TurbineLoadControllerUserDefined::declare() { return BaseClassDefiner(TurbineLoadControllerUserDefined::addConstructToMap, TurbineLoadControllerUserDefined::addPrimitiveAssignFnsToMap, TurbineLoadControllerUserDefined::addClassAssignFnsToMap, TurbineLoadControllerUserDefined::debugName); } +std::map TurbineLoadControllerUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = TurbineLoadControllerDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* TurbineLoadControllerUserDefined_factory() diff --git a/CGMES_3.0.0/TurbineLoadControllerUserDefined.hpp b/CGMES_3.0.0/TurbineLoadControllerUserDefined.hpp index 1acfa3ca9..7f3d469c8 100644 --- a/CGMES_3.0.0/TurbineLoadControllerUserDefined.hpp +++ b/CGMES_3.0.0/TurbineLoadControllerUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "TurbineLoadControllerDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* TurbineLoadControllerUserDefined_factory(); diff --git a/CGMES_3.0.0/UnderexcLim2Simplified.cpp b/CGMES_3.0.0/UnderexcLim2Simplified.cpp index d3524b97d..b1c18785b 100644 --- a/CGMES_3.0.0/UnderexcLim2Simplified.cpp +++ b/CGMES_3.0.0/UnderexcLim2Simplified.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLim2Simplified(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLim2Simplified.kui", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.p0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.p1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.q0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.q1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.vuimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLim2Simplified.vuimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLim2Simplified::UnderexcLim2Simplified() {} UnderexcLim2Simplified::~UnderexcLim2Simplified() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLim2Simplified::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLim2Simplified::getClassNamespaceUrl() const { - { "cim:UnderexcLim2Simplified.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.p0", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.p1", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.q0", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.q1", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLim2Simplified.vuimin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLim2Simplified::getPossibleProfilesForClass() const +const std::string& UnderexcLim2Simplified::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLim2Simplified::getPossibleProfilesForAttributes() const +const std::list& UnderexcLim2Simplified::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLim2Simplified::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLim2Simplified::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLim2Simplified::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLim2Simplified_kui(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* UnderexcLim2Simplified::debugString() const void UnderexcLim2Simplified::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLim2Simplified", &UnderexcLim2Simplified_factory); + factory_map.emplace("UnderexcLim2Simplified", &UnderexcLim2Simplified_factory); } void UnderexcLim2Simplified::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLim2Simplified.kui", &assign_UnderexcLim2Simplified_kui); - assign_map.emplace("cim:UnderexcLim2Simplified.p0", &assign_UnderexcLim2Simplified_p0); - assign_map.emplace("cim:UnderexcLim2Simplified.p1", &assign_UnderexcLim2Simplified_p1); - assign_map.emplace("cim:UnderexcLim2Simplified.q0", &assign_UnderexcLim2Simplified_q0); - assign_map.emplace("cim:UnderexcLim2Simplified.q1", &assign_UnderexcLim2Simplified_q1); - assign_map.emplace("cim:UnderexcLim2Simplified.vuimax", &assign_UnderexcLim2Simplified_vuimax); - assign_map.emplace("cim:UnderexcLim2Simplified.vuimin", &assign_UnderexcLim2Simplified_vuimin); + assign_map.emplace("UnderexcLim2Simplified.kui", &assign_UnderexcLim2Simplified_kui); + assign_map.emplace("UnderexcLim2Simplified.p0", &assign_UnderexcLim2Simplified_p0); + assign_map.emplace("UnderexcLim2Simplified.p1", &assign_UnderexcLim2Simplified_p1); + assign_map.emplace("UnderexcLim2Simplified.q0", &assign_UnderexcLim2Simplified_q0); + assign_map.emplace("UnderexcLim2Simplified.q1", &assign_UnderexcLim2Simplified_q1); + assign_map.emplace("UnderexcLim2Simplified.vuimax", &assign_UnderexcLim2Simplified_vuimax); + assign_map.emplace("UnderexcLim2Simplified.vuimin", &assign_UnderexcLim2Simplified_vuimin); } void UnderexcLim2Simplified::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void UnderexcLim2Simplified::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLim2Simplified.kui", &get_UnderexcLim2Simplified_kui); - get_map.emplace("cim:UnderexcLim2Simplified.p0", &get_UnderexcLim2Simplified_p0); - get_map.emplace("cim:UnderexcLim2Simplified.p1", &get_UnderexcLim2Simplified_p1); - get_map.emplace("cim:UnderexcLim2Simplified.q0", &get_UnderexcLim2Simplified_q0); - get_map.emplace("cim:UnderexcLim2Simplified.q1", &get_UnderexcLim2Simplified_q1); - get_map.emplace("cim:UnderexcLim2Simplified.vuimax", &get_UnderexcLim2Simplified_vuimax); - get_map.emplace("cim:UnderexcLim2Simplified.vuimin", &get_UnderexcLim2Simplified_vuimin); + get_map.emplace("UnderexcLim2Simplified.kui", &get_UnderexcLim2Simplified_kui); + get_map.emplace("UnderexcLim2Simplified.p0", &get_UnderexcLim2Simplified_p0); + get_map.emplace("UnderexcLim2Simplified.p1", &get_UnderexcLim2Simplified_p1); + get_map.emplace("UnderexcLim2Simplified.q0", &get_UnderexcLim2Simplified_q0); + get_map.emplace("UnderexcLim2Simplified.q1", &get_UnderexcLim2Simplified_q1); + get_map.emplace("UnderexcLim2Simplified.vuimax", &get_UnderexcLim2Simplified_vuimax); + get_map.emplace("UnderexcLim2Simplified.vuimin", &get_UnderexcLim2Simplified_vuimin); } void UnderexcLim2Simplified::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void UnderexcLim2Simplified::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLim2Simplified::declare() { return BaseClassDefiner(UnderexcLim2Simplified::addConstructToMap, UnderexcLim2Simplified::addPrimitiveAssignFnsToMap, UnderexcLim2Simplified::addClassAssignFnsToMap, UnderexcLim2Simplified::debugName); } +std::map UnderexcLim2Simplified::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLim2Simplified_factory() diff --git a/CGMES_3.0.0/UnderexcLim2Simplified.hpp b/CGMES_3.0.0/UnderexcLim2Simplified.hpp index 8a276e657..ae1659202 100644 --- a/CGMES_3.0.0/UnderexcLim2Simplified.hpp +++ b/CGMES_3.0.0/UnderexcLim2Simplified.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLim2Simplified_factory(); diff --git a/CGMES_3.0.0/UnderexcLimIEEE1.cpp b/CGMES_3.0.0/UnderexcLimIEEE1.cpp index ed960945f..e7a2066c3 100644 --- a/CGMES_3.0.0/UnderexcLimIEEE1.cpp +++ b/CGMES_3.0.0/UnderexcLimIEEE1.cpp @@ -11,46 +11,78 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimIEEE1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimIEEE1.kuc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kuf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kui", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kul", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.kur", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.tu4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vucmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vuimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vuimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vulmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vulmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE1.vurmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimIEEE1::UnderexcLimIEEE1() {} UnderexcLimIEEE1::~UnderexcLimIEEE1() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimIEEE1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimIEEE1::getClassNamespaceUrl() const { - { "cim:UnderexcLimIEEE1.kuc", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kuf", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.kur", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.tu4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vucmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vuimin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vulmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vulmin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE1.vurmax", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimIEEE1::getPossibleProfilesForClass() const +const std::string& UnderexcLimIEEE1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimIEEE1::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimIEEE1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimIEEE1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimIEEE1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimIEEE1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimIEEE1_kuc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -496,26 +528,26 @@ const char* UnderexcLimIEEE1::debugString() const void UnderexcLimIEEE1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimIEEE1", &UnderexcLimIEEE1_factory); + factory_map.emplace("UnderexcLimIEEE1", &UnderexcLimIEEE1_factory); } void UnderexcLimIEEE1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimIEEE1.kuc", &assign_UnderexcLimIEEE1_kuc); - assign_map.emplace("cim:UnderexcLimIEEE1.kuf", &assign_UnderexcLimIEEE1_kuf); - assign_map.emplace("cim:UnderexcLimIEEE1.kui", &assign_UnderexcLimIEEE1_kui); - assign_map.emplace("cim:UnderexcLimIEEE1.kul", &assign_UnderexcLimIEEE1_kul); - assign_map.emplace("cim:UnderexcLimIEEE1.kur", &assign_UnderexcLimIEEE1_kur); - assign_map.emplace("cim:UnderexcLimIEEE1.tu1", &assign_UnderexcLimIEEE1_tu1); - assign_map.emplace("cim:UnderexcLimIEEE1.tu2", &assign_UnderexcLimIEEE1_tu2); - assign_map.emplace("cim:UnderexcLimIEEE1.tu3", &assign_UnderexcLimIEEE1_tu3); - assign_map.emplace("cim:UnderexcLimIEEE1.tu4", &assign_UnderexcLimIEEE1_tu4); - assign_map.emplace("cim:UnderexcLimIEEE1.vucmax", &assign_UnderexcLimIEEE1_vucmax); - assign_map.emplace("cim:UnderexcLimIEEE1.vuimax", &assign_UnderexcLimIEEE1_vuimax); - assign_map.emplace("cim:UnderexcLimIEEE1.vuimin", &assign_UnderexcLimIEEE1_vuimin); - assign_map.emplace("cim:UnderexcLimIEEE1.vulmax", &assign_UnderexcLimIEEE1_vulmax); - assign_map.emplace("cim:UnderexcLimIEEE1.vulmin", &assign_UnderexcLimIEEE1_vulmin); - assign_map.emplace("cim:UnderexcLimIEEE1.vurmax", &assign_UnderexcLimIEEE1_vurmax); + assign_map.emplace("UnderexcLimIEEE1.kuc", &assign_UnderexcLimIEEE1_kuc); + assign_map.emplace("UnderexcLimIEEE1.kuf", &assign_UnderexcLimIEEE1_kuf); + assign_map.emplace("UnderexcLimIEEE1.kui", &assign_UnderexcLimIEEE1_kui); + assign_map.emplace("UnderexcLimIEEE1.kul", &assign_UnderexcLimIEEE1_kul); + assign_map.emplace("UnderexcLimIEEE1.kur", &assign_UnderexcLimIEEE1_kur); + assign_map.emplace("UnderexcLimIEEE1.tu1", &assign_UnderexcLimIEEE1_tu1); + assign_map.emplace("UnderexcLimIEEE1.tu2", &assign_UnderexcLimIEEE1_tu2); + assign_map.emplace("UnderexcLimIEEE1.tu3", &assign_UnderexcLimIEEE1_tu3); + assign_map.emplace("UnderexcLimIEEE1.tu4", &assign_UnderexcLimIEEE1_tu4); + assign_map.emplace("UnderexcLimIEEE1.vucmax", &assign_UnderexcLimIEEE1_vucmax); + assign_map.emplace("UnderexcLimIEEE1.vuimax", &assign_UnderexcLimIEEE1_vuimax); + assign_map.emplace("UnderexcLimIEEE1.vuimin", &assign_UnderexcLimIEEE1_vuimin); + assign_map.emplace("UnderexcLimIEEE1.vulmax", &assign_UnderexcLimIEEE1_vulmax); + assign_map.emplace("UnderexcLimIEEE1.vulmin", &assign_UnderexcLimIEEE1_vulmin); + assign_map.emplace("UnderexcLimIEEE1.vurmax", &assign_UnderexcLimIEEE1_vurmax); } void UnderexcLimIEEE1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -525,21 +557,21 @@ void UnderexcLimIEEE1::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimIEEE1.kuc", &get_UnderexcLimIEEE1_kuc); - get_map.emplace("cim:UnderexcLimIEEE1.kuf", &get_UnderexcLimIEEE1_kuf); - get_map.emplace("cim:UnderexcLimIEEE1.kui", &get_UnderexcLimIEEE1_kui); - get_map.emplace("cim:UnderexcLimIEEE1.kul", &get_UnderexcLimIEEE1_kul); - get_map.emplace("cim:UnderexcLimIEEE1.kur", &get_UnderexcLimIEEE1_kur); - get_map.emplace("cim:UnderexcLimIEEE1.tu1", &get_UnderexcLimIEEE1_tu1); - get_map.emplace("cim:UnderexcLimIEEE1.tu2", &get_UnderexcLimIEEE1_tu2); - get_map.emplace("cim:UnderexcLimIEEE1.tu3", &get_UnderexcLimIEEE1_tu3); - get_map.emplace("cim:UnderexcLimIEEE1.tu4", &get_UnderexcLimIEEE1_tu4); - get_map.emplace("cim:UnderexcLimIEEE1.vucmax", &get_UnderexcLimIEEE1_vucmax); - get_map.emplace("cim:UnderexcLimIEEE1.vuimax", &get_UnderexcLimIEEE1_vuimax); - get_map.emplace("cim:UnderexcLimIEEE1.vuimin", &get_UnderexcLimIEEE1_vuimin); - get_map.emplace("cim:UnderexcLimIEEE1.vulmax", &get_UnderexcLimIEEE1_vulmax); - get_map.emplace("cim:UnderexcLimIEEE1.vulmin", &get_UnderexcLimIEEE1_vulmin); - get_map.emplace("cim:UnderexcLimIEEE1.vurmax", &get_UnderexcLimIEEE1_vurmax); + get_map.emplace("UnderexcLimIEEE1.kuc", &get_UnderexcLimIEEE1_kuc); + get_map.emplace("UnderexcLimIEEE1.kuf", &get_UnderexcLimIEEE1_kuf); + get_map.emplace("UnderexcLimIEEE1.kui", &get_UnderexcLimIEEE1_kui); + get_map.emplace("UnderexcLimIEEE1.kul", &get_UnderexcLimIEEE1_kul); + get_map.emplace("UnderexcLimIEEE1.kur", &get_UnderexcLimIEEE1_kur); + get_map.emplace("UnderexcLimIEEE1.tu1", &get_UnderexcLimIEEE1_tu1); + get_map.emplace("UnderexcLimIEEE1.tu2", &get_UnderexcLimIEEE1_tu2); + get_map.emplace("UnderexcLimIEEE1.tu3", &get_UnderexcLimIEEE1_tu3); + get_map.emplace("UnderexcLimIEEE1.tu4", &get_UnderexcLimIEEE1_tu4); + get_map.emplace("UnderexcLimIEEE1.vucmax", &get_UnderexcLimIEEE1_vucmax); + get_map.emplace("UnderexcLimIEEE1.vuimax", &get_UnderexcLimIEEE1_vuimax); + get_map.emplace("UnderexcLimIEEE1.vuimin", &get_UnderexcLimIEEE1_vuimin); + get_map.emplace("UnderexcLimIEEE1.vulmax", &get_UnderexcLimIEEE1_vulmax); + get_map.emplace("UnderexcLimIEEE1.vulmin", &get_UnderexcLimIEEE1_vulmin); + get_map.emplace("UnderexcLimIEEE1.vurmax", &get_UnderexcLimIEEE1_vurmax); } void UnderexcLimIEEE1::addClassGetFnsToMap(std::map& get_map) const @@ -552,11 +584,25 @@ void UnderexcLimIEEE1::addEnumGetFnsToMap(std::map& g UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimIEEE1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimIEEE1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimIEEE1::declare() { return BaseClassDefiner(UnderexcLimIEEE1::addConstructToMap, UnderexcLimIEEE1::addPrimitiveAssignFnsToMap, UnderexcLimIEEE1::addClassAssignFnsToMap, UnderexcLimIEEE1::debugName); } +std::map UnderexcLimIEEE1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimIEEE1_factory() diff --git a/CGMES_3.0.0/UnderexcLimIEEE1.hpp b/CGMES_3.0.0/UnderexcLimIEEE1.hpp index 49187e8b5..1fc608cb0 100644 --- a/CGMES_3.0.0/UnderexcLimIEEE1.hpp +++ b/CGMES_3.0.0/UnderexcLimIEEE1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -74,8 +75,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -83,7 +91,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimIEEE1_factory(); diff --git a/CGMES_3.0.0/UnderexcLimIEEE2.cpp b/CGMES_3.0.0/UnderexcLimIEEE2.cpp index da9274105..8467068d0 100644 --- a/CGMES_3.0.0/UnderexcLimIEEE2.cpp +++ b/CGMES_3.0.0/UnderexcLimIEEE2.cpp @@ -11,71 +11,103 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimIEEE2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimIEEE2.k1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.k2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kfb", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kuf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kui", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.kul", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.p9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q10", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q5", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q6", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q7", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q8", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.q9", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tu4", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tul", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tup", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tuq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.tuv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vuimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vuimin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vulmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimIEEE2.vulmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimIEEE2::UnderexcLimIEEE2() {} UnderexcLimIEEE2::~UnderexcLimIEEE2() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:UnderexcLimIEEE2.k1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.k2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kfb", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kuf", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kui", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.kul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p0", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p10", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p5", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p6", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p7", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p8", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.p9", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q0", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q10", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q5", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q6", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q7", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q8", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.q9", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu1", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu3", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tu4", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tul", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tup", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tuq", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.tuv", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vuimax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vuimin", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vulmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimIEEE2.vulmin", { CGMESProfile::DY, } }, -}; - -std::list -UnderexcLimIEEE2::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -UnderexcLimIEEE2::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& UnderexcLimIEEE2::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& UnderexcLimIEEE2::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& UnderexcLimIEEE2::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& UnderexcLimIEEE2::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimIEEE2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimIEEE2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimIEEE2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimIEEE2_k1(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -1246,51 +1278,51 @@ const char* UnderexcLimIEEE2::debugString() const void UnderexcLimIEEE2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimIEEE2", &UnderexcLimIEEE2_factory); + factory_map.emplace("UnderexcLimIEEE2", &UnderexcLimIEEE2_factory); } void UnderexcLimIEEE2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimIEEE2.k1", &assign_UnderexcLimIEEE2_k1); - assign_map.emplace("cim:UnderexcLimIEEE2.k2", &assign_UnderexcLimIEEE2_k2); - assign_map.emplace("cim:UnderexcLimIEEE2.kfb", &assign_UnderexcLimIEEE2_kfb); - assign_map.emplace("cim:UnderexcLimIEEE2.kuf", &assign_UnderexcLimIEEE2_kuf); - assign_map.emplace("cim:UnderexcLimIEEE2.kui", &assign_UnderexcLimIEEE2_kui); - assign_map.emplace("cim:UnderexcLimIEEE2.kul", &assign_UnderexcLimIEEE2_kul); - assign_map.emplace("cim:UnderexcLimIEEE2.p0", &assign_UnderexcLimIEEE2_p0); - assign_map.emplace("cim:UnderexcLimIEEE2.p1", &assign_UnderexcLimIEEE2_p1); - assign_map.emplace("cim:UnderexcLimIEEE2.p10", &assign_UnderexcLimIEEE2_p10); - assign_map.emplace("cim:UnderexcLimIEEE2.p2", &assign_UnderexcLimIEEE2_p2); - assign_map.emplace("cim:UnderexcLimIEEE2.p3", &assign_UnderexcLimIEEE2_p3); - assign_map.emplace("cim:UnderexcLimIEEE2.p4", &assign_UnderexcLimIEEE2_p4); - assign_map.emplace("cim:UnderexcLimIEEE2.p5", &assign_UnderexcLimIEEE2_p5); - assign_map.emplace("cim:UnderexcLimIEEE2.p6", &assign_UnderexcLimIEEE2_p6); - assign_map.emplace("cim:UnderexcLimIEEE2.p7", &assign_UnderexcLimIEEE2_p7); - assign_map.emplace("cim:UnderexcLimIEEE2.p8", &assign_UnderexcLimIEEE2_p8); - assign_map.emplace("cim:UnderexcLimIEEE2.p9", &assign_UnderexcLimIEEE2_p9); - assign_map.emplace("cim:UnderexcLimIEEE2.q0", &assign_UnderexcLimIEEE2_q0); - assign_map.emplace("cim:UnderexcLimIEEE2.q1", &assign_UnderexcLimIEEE2_q1); - assign_map.emplace("cim:UnderexcLimIEEE2.q10", &assign_UnderexcLimIEEE2_q10); - assign_map.emplace("cim:UnderexcLimIEEE2.q2", &assign_UnderexcLimIEEE2_q2); - assign_map.emplace("cim:UnderexcLimIEEE2.q3", &assign_UnderexcLimIEEE2_q3); - assign_map.emplace("cim:UnderexcLimIEEE2.q4", &assign_UnderexcLimIEEE2_q4); - assign_map.emplace("cim:UnderexcLimIEEE2.q5", &assign_UnderexcLimIEEE2_q5); - assign_map.emplace("cim:UnderexcLimIEEE2.q6", &assign_UnderexcLimIEEE2_q6); - assign_map.emplace("cim:UnderexcLimIEEE2.q7", &assign_UnderexcLimIEEE2_q7); - assign_map.emplace("cim:UnderexcLimIEEE2.q8", &assign_UnderexcLimIEEE2_q8); - assign_map.emplace("cim:UnderexcLimIEEE2.q9", &assign_UnderexcLimIEEE2_q9); - assign_map.emplace("cim:UnderexcLimIEEE2.tu1", &assign_UnderexcLimIEEE2_tu1); - assign_map.emplace("cim:UnderexcLimIEEE2.tu2", &assign_UnderexcLimIEEE2_tu2); - assign_map.emplace("cim:UnderexcLimIEEE2.tu3", &assign_UnderexcLimIEEE2_tu3); - assign_map.emplace("cim:UnderexcLimIEEE2.tu4", &assign_UnderexcLimIEEE2_tu4); - assign_map.emplace("cim:UnderexcLimIEEE2.tul", &assign_UnderexcLimIEEE2_tul); - assign_map.emplace("cim:UnderexcLimIEEE2.tup", &assign_UnderexcLimIEEE2_tup); - assign_map.emplace("cim:UnderexcLimIEEE2.tuq", &assign_UnderexcLimIEEE2_tuq); - assign_map.emplace("cim:UnderexcLimIEEE2.tuv", &assign_UnderexcLimIEEE2_tuv); - assign_map.emplace("cim:UnderexcLimIEEE2.vuimax", &assign_UnderexcLimIEEE2_vuimax); - assign_map.emplace("cim:UnderexcLimIEEE2.vuimin", &assign_UnderexcLimIEEE2_vuimin); - assign_map.emplace("cim:UnderexcLimIEEE2.vulmax", &assign_UnderexcLimIEEE2_vulmax); - assign_map.emplace("cim:UnderexcLimIEEE2.vulmin", &assign_UnderexcLimIEEE2_vulmin); + assign_map.emplace("UnderexcLimIEEE2.k1", &assign_UnderexcLimIEEE2_k1); + assign_map.emplace("UnderexcLimIEEE2.k2", &assign_UnderexcLimIEEE2_k2); + assign_map.emplace("UnderexcLimIEEE2.kfb", &assign_UnderexcLimIEEE2_kfb); + assign_map.emplace("UnderexcLimIEEE2.kuf", &assign_UnderexcLimIEEE2_kuf); + assign_map.emplace("UnderexcLimIEEE2.kui", &assign_UnderexcLimIEEE2_kui); + assign_map.emplace("UnderexcLimIEEE2.kul", &assign_UnderexcLimIEEE2_kul); + assign_map.emplace("UnderexcLimIEEE2.p0", &assign_UnderexcLimIEEE2_p0); + assign_map.emplace("UnderexcLimIEEE2.p1", &assign_UnderexcLimIEEE2_p1); + assign_map.emplace("UnderexcLimIEEE2.p10", &assign_UnderexcLimIEEE2_p10); + assign_map.emplace("UnderexcLimIEEE2.p2", &assign_UnderexcLimIEEE2_p2); + assign_map.emplace("UnderexcLimIEEE2.p3", &assign_UnderexcLimIEEE2_p3); + assign_map.emplace("UnderexcLimIEEE2.p4", &assign_UnderexcLimIEEE2_p4); + assign_map.emplace("UnderexcLimIEEE2.p5", &assign_UnderexcLimIEEE2_p5); + assign_map.emplace("UnderexcLimIEEE2.p6", &assign_UnderexcLimIEEE2_p6); + assign_map.emplace("UnderexcLimIEEE2.p7", &assign_UnderexcLimIEEE2_p7); + assign_map.emplace("UnderexcLimIEEE2.p8", &assign_UnderexcLimIEEE2_p8); + assign_map.emplace("UnderexcLimIEEE2.p9", &assign_UnderexcLimIEEE2_p9); + assign_map.emplace("UnderexcLimIEEE2.q0", &assign_UnderexcLimIEEE2_q0); + assign_map.emplace("UnderexcLimIEEE2.q1", &assign_UnderexcLimIEEE2_q1); + assign_map.emplace("UnderexcLimIEEE2.q10", &assign_UnderexcLimIEEE2_q10); + assign_map.emplace("UnderexcLimIEEE2.q2", &assign_UnderexcLimIEEE2_q2); + assign_map.emplace("UnderexcLimIEEE2.q3", &assign_UnderexcLimIEEE2_q3); + assign_map.emplace("UnderexcLimIEEE2.q4", &assign_UnderexcLimIEEE2_q4); + assign_map.emplace("UnderexcLimIEEE2.q5", &assign_UnderexcLimIEEE2_q5); + assign_map.emplace("UnderexcLimIEEE2.q6", &assign_UnderexcLimIEEE2_q6); + assign_map.emplace("UnderexcLimIEEE2.q7", &assign_UnderexcLimIEEE2_q7); + assign_map.emplace("UnderexcLimIEEE2.q8", &assign_UnderexcLimIEEE2_q8); + assign_map.emplace("UnderexcLimIEEE2.q9", &assign_UnderexcLimIEEE2_q9); + assign_map.emplace("UnderexcLimIEEE2.tu1", &assign_UnderexcLimIEEE2_tu1); + assign_map.emplace("UnderexcLimIEEE2.tu2", &assign_UnderexcLimIEEE2_tu2); + assign_map.emplace("UnderexcLimIEEE2.tu3", &assign_UnderexcLimIEEE2_tu3); + assign_map.emplace("UnderexcLimIEEE2.tu4", &assign_UnderexcLimIEEE2_tu4); + assign_map.emplace("UnderexcLimIEEE2.tul", &assign_UnderexcLimIEEE2_tul); + assign_map.emplace("UnderexcLimIEEE2.tup", &assign_UnderexcLimIEEE2_tup); + assign_map.emplace("UnderexcLimIEEE2.tuq", &assign_UnderexcLimIEEE2_tuq); + assign_map.emplace("UnderexcLimIEEE2.tuv", &assign_UnderexcLimIEEE2_tuv); + assign_map.emplace("UnderexcLimIEEE2.vuimax", &assign_UnderexcLimIEEE2_vuimax); + assign_map.emplace("UnderexcLimIEEE2.vuimin", &assign_UnderexcLimIEEE2_vuimin); + assign_map.emplace("UnderexcLimIEEE2.vulmax", &assign_UnderexcLimIEEE2_vulmax); + assign_map.emplace("UnderexcLimIEEE2.vulmin", &assign_UnderexcLimIEEE2_vulmin); } void UnderexcLimIEEE2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -1300,46 +1332,46 @@ void UnderexcLimIEEE2::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimIEEE2.k1", &get_UnderexcLimIEEE2_k1); - get_map.emplace("cim:UnderexcLimIEEE2.k2", &get_UnderexcLimIEEE2_k2); - get_map.emplace("cim:UnderexcLimIEEE2.kfb", &get_UnderexcLimIEEE2_kfb); - get_map.emplace("cim:UnderexcLimIEEE2.kuf", &get_UnderexcLimIEEE2_kuf); - get_map.emplace("cim:UnderexcLimIEEE2.kui", &get_UnderexcLimIEEE2_kui); - get_map.emplace("cim:UnderexcLimIEEE2.kul", &get_UnderexcLimIEEE2_kul); - get_map.emplace("cim:UnderexcLimIEEE2.p0", &get_UnderexcLimIEEE2_p0); - get_map.emplace("cim:UnderexcLimIEEE2.p1", &get_UnderexcLimIEEE2_p1); - get_map.emplace("cim:UnderexcLimIEEE2.p10", &get_UnderexcLimIEEE2_p10); - get_map.emplace("cim:UnderexcLimIEEE2.p2", &get_UnderexcLimIEEE2_p2); - get_map.emplace("cim:UnderexcLimIEEE2.p3", &get_UnderexcLimIEEE2_p3); - get_map.emplace("cim:UnderexcLimIEEE2.p4", &get_UnderexcLimIEEE2_p4); - get_map.emplace("cim:UnderexcLimIEEE2.p5", &get_UnderexcLimIEEE2_p5); - get_map.emplace("cim:UnderexcLimIEEE2.p6", &get_UnderexcLimIEEE2_p6); - get_map.emplace("cim:UnderexcLimIEEE2.p7", &get_UnderexcLimIEEE2_p7); - get_map.emplace("cim:UnderexcLimIEEE2.p8", &get_UnderexcLimIEEE2_p8); - get_map.emplace("cim:UnderexcLimIEEE2.p9", &get_UnderexcLimIEEE2_p9); - get_map.emplace("cim:UnderexcLimIEEE2.q0", &get_UnderexcLimIEEE2_q0); - get_map.emplace("cim:UnderexcLimIEEE2.q1", &get_UnderexcLimIEEE2_q1); - get_map.emplace("cim:UnderexcLimIEEE2.q10", &get_UnderexcLimIEEE2_q10); - get_map.emplace("cim:UnderexcLimIEEE2.q2", &get_UnderexcLimIEEE2_q2); - get_map.emplace("cim:UnderexcLimIEEE2.q3", &get_UnderexcLimIEEE2_q3); - get_map.emplace("cim:UnderexcLimIEEE2.q4", &get_UnderexcLimIEEE2_q4); - get_map.emplace("cim:UnderexcLimIEEE2.q5", &get_UnderexcLimIEEE2_q5); - get_map.emplace("cim:UnderexcLimIEEE2.q6", &get_UnderexcLimIEEE2_q6); - get_map.emplace("cim:UnderexcLimIEEE2.q7", &get_UnderexcLimIEEE2_q7); - get_map.emplace("cim:UnderexcLimIEEE2.q8", &get_UnderexcLimIEEE2_q8); - get_map.emplace("cim:UnderexcLimIEEE2.q9", &get_UnderexcLimIEEE2_q9); - get_map.emplace("cim:UnderexcLimIEEE2.tu1", &get_UnderexcLimIEEE2_tu1); - get_map.emplace("cim:UnderexcLimIEEE2.tu2", &get_UnderexcLimIEEE2_tu2); - get_map.emplace("cim:UnderexcLimIEEE2.tu3", &get_UnderexcLimIEEE2_tu3); - get_map.emplace("cim:UnderexcLimIEEE2.tu4", &get_UnderexcLimIEEE2_tu4); - get_map.emplace("cim:UnderexcLimIEEE2.tul", &get_UnderexcLimIEEE2_tul); - get_map.emplace("cim:UnderexcLimIEEE2.tup", &get_UnderexcLimIEEE2_tup); - get_map.emplace("cim:UnderexcLimIEEE2.tuq", &get_UnderexcLimIEEE2_tuq); - get_map.emplace("cim:UnderexcLimIEEE2.tuv", &get_UnderexcLimIEEE2_tuv); - get_map.emplace("cim:UnderexcLimIEEE2.vuimax", &get_UnderexcLimIEEE2_vuimax); - get_map.emplace("cim:UnderexcLimIEEE2.vuimin", &get_UnderexcLimIEEE2_vuimin); - get_map.emplace("cim:UnderexcLimIEEE2.vulmax", &get_UnderexcLimIEEE2_vulmax); - get_map.emplace("cim:UnderexcLimIEEE2.vulmin", &get_UnderexcLimIEEE2_vulmin); + get_map.emplace("UnderexcLimIEEE2.k1", &get_UnderexcLimIEEE2_k1); + get_map.emplace("UnderexcLimIEEE2.k2", &get_UnderexcLimIEEE2_k2); + get_map.emplace("UnderexcLimIEEE2.kfb", &get_UnderexcLimIEEE2_kfb); + get_map.emplace("UnderexcLimIEEE2.kuf", &get_UnderexcLimIEEE2_kuf); + get_map.emplace("UnderexcLimIEEE2.kui", &get_UnderexcLimIEEE2_kui); + get_map.emplace("UnderexcLimIEEE2.kul", &get_UnderexcLimIEEE2_kul); + get_map.emplace("UnderexcLimIEEE2.p0", &get_UnderexcLimIEEE2_p0); + get_map.emplace("UnderexcLimIEEE2.p1", &get_UnderexcLimIEEE2_p1); + get_map.emplace("UnderexcLimIEEE2.p10", &get_UnderexcLimIEEE2_p10); + get_map.emplace("UnderexcLimIEEE2.p2", &get_UnderexcLimIEEE2_p2); + get_map.emplace("UnderexcLimIEEE2.p3", &get_UnderexcLimIEEE2_p3); + get_map.emplace("UnderexcLimIEEE2.p4", &get_UnderexcLimIEEE2_p4); + get_map.emplace("UnderexcLimIEEE2.p5", &get_UnderexcLimIEEE2_p5); + get_map.emplace("UnderexcLimIEEE2.p6", &get_UnderexcLimIEEE2_p6); + get_map.emplace("UnderexcLimIEEE2.p7", &get_UnderexcLimIEEE2_p7); + get_map.emplace("UnderexcLimIEEE2.p8", &get_UnderexcLimIEEE2_p8); + get_map.emplace("UnderexcLimIEEE2.p9", &get_UnderexcLimIEEE2_p9); + get_map.emplace("UnderexcLimIEEE2.q0", &get_UnderexcLimIEEE2_q0); + get_map.emplace("UnderexcLimIEEE2.q1", &get_UnderexcLimIEEE2_q1); + get_map.emplace("UnderexcLimIEEE2.q10", &get_UnderexcLimIEEE2_q10); + get_map.emplace("UnderexcLimIEEE2.q2", &get_UnderexcLimIEEE2_q2); + get_map.emplace("UnderexcLimIEEE2.q3", &get_UnderexcLimIEEE2_q3); + get_map.emplace("UnderexcLimIEEE2.q4", &get_UnderexcLimIEEE2_q4); + get_map.emplace("UnderexcLimIEEE2.q5", &get_UnderexcLimIEEE2_q5); + get_map.emplace("UnderexcLimIEEE2.q6", &get_UnderexcLimIEEE2_q6); + get_map.emplace("UnderexcLimIEEE2.q7", &get_UnderexcLimIEEE2_q7); + get_map.emplace("UnderexcLimIEEE2.q8", &get_UnderexcLimIEEE2_q8); + get_map.emplace("UnderexcLimIEEE2.q9", &get_UnderexcLimIEEE2_q9); + get_map.emplace("UnderexcLimIEEE2.tu1", &get_UnderexcLimIEEE2_tu1); + get_map.emplace("UnderexcLimIEEE2.tu2", &get_UnderexcLimIEEE2_tu2); + get_map.emplace("UnderexcLimIEEE2.tu3", &get_UnderexcLimIEEE2_tu3); + get_map.emplace("UnderexcLimIEEE2.tu4", &get_UnderexcLimIEEE2_tu4); + get_map.emplace("UnderexcLimIEEE2.tul", &get_UnderexcLimIEEE2_tul); + get_map.emplace("UnderexcLimIEEE2.tup", &get_UnderexcLimIEEE2_tup); + get_map.emplace("UnderexcLimIEEE2.tuq", &get_UnderexcLimIEEE2_tuq); + get_map.emplace("UnderexcLimIEEE2.tuv", &get_UnderexcLimIEEE2_tuv); + get_map.emplace("UnderexcLimIEEE2.vuimax", &get_UnderexcLimIEEE2_vuimax); + get_map.emplace("UnderexcLimIEEE2.vuimin", &get_UnderexcLimIEEE2_vuimin); + get_map.emplace("UnderexcLimIEEE2.vulmax", &get_UnderexcLimIEEE2_vulmax); + get_map.emplace("UnderexcLimIEEE2.vulmin", &get_UnderexcLimIEEE2_vulmin); } void UnderexcLimIEEE2::addClassGetFnsToMap(std::map& get_map) const @@ -1352,11 +1384,25 @@ void UnderexcLimIEEE2::addEnumGetFnsToMap(std::map& g UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimIEEE2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimIEEE2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimIEEE2::declare() { return BaseClassDefiner(UnderexcLimIEEE2::addConstructToMap, UnderexcLimIEEE2::addPrimitiveAssignFnsToMap, UnderexcLimIEEE2::addClassAssignFnsToMap, UnderexcLimIEEE2::debugName); } +std::map UnderexcLimIEEE2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimIEEE2_factory() diff --git a/CGMES_3.0.0/UnderexcLimIEEE2.hpp b/CGMES_3.0.0/UnderexcLimIEEE2.hpp index d09fa6a51..c81442469 100644 --- a/CGMES_3.0.0/UnderexcLimIEEE2.hpp +++ b/CGMES_3.0.0/UnderexcLimIEEE2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -150,8 +151,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -159,7 +167,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimIEEE2_factory(); diff --git a/CGMES_3.0.0/UnderexcLimX1.cpp b/CGMES_3.0.0/UnderexcLimX1.cpp index a14d1ce69..9cacab0b0 100644 --- a/CGMES_3.0.0/UnderexcLimX1.cpp +++ b/CGMES_3.0.0/UnderexcLimX1.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimX1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimX1.k", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.kf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.km", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.melmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX1.tm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimX1::UnderexcLimX1() {} UnderexcLimX1::~UnderexcLimX1() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimX1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimX1::getClassNamespaceUrl() const { - { "cim:UnderexcLimX1.k", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.kf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.km", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.melmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.tf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX1.tm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimX1::getPossibleProfilesForClass() const +const std::string& UnderexcLimX1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimX1::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimX1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimX1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimX1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimX1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimX1_k(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* UnderexcLimX1::debugString() const void UnderexcLimX1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimX1", &UnderexcLimX1_factory); + factory_map.emplace("UnderexcLimX1", &UnderexcLimX1_factory); } void UnderexcLimX1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimX1.k", &assign_UnderexcLimX1_k); - assign_map.emplace("cim:UnderexcLimX1.kf2", &assign_UnderexcLimX1_kf2); - assign_map.emplace("cim:UnderexcLimX1.km", &assign_UnderexcLimX1_km); - assign_map.emplace("cim:UnderexcLimX1.melmax", &assign_UnderexcLimX1_melmax); - assign_map.emplace("cim:UnderexcLimX1.tf2", &assign_UnderexcLimX1_tf2); - assign_map.emplace("cim:UnderexcLimX1.tm", &assign_UnderexcLimX1_tm); + assign_map.emplace("UnderexcLimX1.k", &assign_UnderexcLimX1_k); + assign_map.emplace("UnderexcLimX1.kf2", &assign_UnderexcLimX1_kf2); + assign_map.emplace("UnderexcLimX1.km", &assign_UnderexcLimX1_km); + assign_map.emplace("UnderexcLimX1.melmax", &assign_UnderexcLimX1_melmax); + assign_map.emplace("UnderexcLimX1.tf2", &assign_UnderexcLimX1_tf2); + assign_map.emplace("UnderexcLimX1.tm", &assign_UnderexcLimX1_tm); } void UnderexcLimX1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void UnderexcLimX1::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimX1.k", &get_UnderexcLimX1_k); - get_map.emplace("cim:UnderexcLimX1.kf2", &get_UnderexcLimX1_kf2); - get_map.emplace("cim:UnderexcLimX1.km", &get_UnderexcLimX1_km); - get_map.emplace("cim:UnderexcLimX1.melmax", &get_UnderexcLimX1_melmax); - get_map.emplace("cim:UnderexcLimX1.tf2", &get_UnderexcLimX1_tf2); - get_map.emplace("cim:UnderexcLimX1.tm", &get_UnderexcLimX1_tm); + get_map.emplace("UnderexcLimX1.k", &get_UnderexcLimX1_k); + get_map.emplace("UnderexcLimX1.kf2", &get_UnderexcLimX1_kf2); + get_map.emplace("UnderexcLimX1.km", &get_UnderexcLimX1_km); + get_map.emplace("UnderexcLimX1.melmax", &get_UnderexcLimX1_melmax); + get_map.emplace("UnderexcLimX1.tf2", &get_UnderexcLimX1_tf2); + get_map.emplace("UnderexcLimX1.tm", &get_UnderexcLimX1_tm); } void UnderexcLimX1::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void UnderexcLimX1::addEnumGetFnsToMap(std::map& get_ UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimX1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimX1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimX1::declare() { return BaseClassDefiner(UnderexcLimX1::addConstructToMap, UnderexcLimX1::addPrimitiveAssignFnsToMap, UnderexcLimX1::addClassAssignFnsToMap, UnderexcLimX1::debugName); } +std::map UnderexcLimX1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimX1_factory() diff --git a/CGMES_3.0.0/UnderexcLimX1.hpp b/CGMES_3.0.0/UnderexcLimX1.hpp index 70ab402fd..f1037b971 100644 --- a/CGMES_3.0.0/UnderexcLimX1.hpp +++ b/CGMES_3.0.0/UnderexcLimX1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -47,8 +48,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -56,7 +64,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimX1_factory(); diff --git a/CGMES_3.0.0/UnderexcLimX2.cpp b/CGMES_3.0.0/UnderexcLimX2.cpp index 64bf7f3c5..2a42c12f5 100644 --- a/CGMES_3.0.0/UnderexcLimX2.cpp +++ b/CGMES_3.0.0/UnderexcLimX2.cpp @@ -11,38 +11,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcLimX2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcLimX2.kf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.km", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.melmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.qo", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.r", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.tf2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcLimX2.tm", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcLimX2::UnderexcLimX2() {} UnderexcLimX2::~UnderexcLimX2() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcLimX2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcLimX2::getClassNamespaceUrl() const { - { "cim:UnderexcLimX2.kf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.km", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.melmax", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.qo", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.r", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.tf2", { CGMESProfile::DY, } }, - { "cim:UnderexcLimX2.tm", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcLimX2::getPossibleProfilesForClass() const +const std::string& UnderexcLimX2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcLimX2::getPossibleProfilesForAttributes() const +const std::list& UnderexcLimX2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcLimX2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcLimX2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcLimX2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_UnderexcLimX2_kf2(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -256,18 +288,18 @@ const char* UnderexcLimX2::debugString() const void UnderexcLimX2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcLimX2", &UnderexcLimX2_factory); + factory_map.emplace("UnderexcLimX2", &UnderexcLimX2_factory); } void UnderexcLimX2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcLimX2.kf2", &assign_UnderexcLimX2_kf2); - assign_map.emplace("cim:UnderexcLimX2.km", &assign_UnderexcLimX2_km); - assign_map.emplace("cim:UnderexcLimX2.melmax", &assign_UnderexcLimX2_melmax); - assign_map.emplace("cim:UnderexcLimX2.qo", &assign_UnderexcLimX2_qo); - assign_map.emplace("cim:UnderexcLimX2.r", &assign_UnderexcLimX2_r); - assign_map.emplace("cim:UnderexcLimX2.tf2", &assign_UnderexcLimX2_tf2); - assign_map.emplace("cim:UnderexcLimX2.tm", &assign_UnderexcLimX2_tm); + assign_map.emplace("UnderexcLimX2.kf2", &assign_UnderexcLimX2_kf2); + assign_map.emplace("UnderexcLimX2.km", &assign_UnderexcLimX2_km); + assign_map.emplace("UnderexcLimX2.melmax", &assign_UnderexcLimX2_melmax); + assign_map.emplace("UnderexcLimX2.qo", &assign_UnderexcLimX2_qo); + assign_map.emplace("UnderexcLimX2.r", &assign_UnderexcLimX2_r); + assign_map.emplace("UnderexcLimX2.tf2", &assign_UnderexcLimX2_tf2); + assign_map.emplace("UnderexcLimX2.tm", &assign_UnderexcLimX2_tm); } void UnderexcLimX2::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -277,13 +309,13 @@ void UnderexcLimX2::addClassAssignFnsToMap(std::unordered_map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcLimX2.kf2", &get_UnderexcLimX2_kf2); - get_map.emplace("cim:UnderexcLimX2.km", &get_UnderexcLimX2_km); - get_map.emplace("cim:UnderexcLimX2.melmax", &get_UnderexcLimX2_melmax); - get_map.emplace("cim:UnderexcLimX2.qo", &get_UnderexcLimX2_qo); - get_map.emplace("cim:UnderexcLimX2.r", &get_UnderexcLimX2_r); - get_map.emplace("cim:UnderexcLimX2.tf2", &get_UnderexcLimX2_tf2); - get_map.emplace("cim:UnderexcLimX2.tm", &get_UnderexcLimX2_tm); + get_map.emplace("UnderexcLimX2.kf2", &get_UnderexcLimX2_kf2); + get_map.emplace("UnderexcLimX2.km", &get_UnderexcLimX2_km); + get_map.emplace("UnderexcLimX2.melmax", &get_UnderexcLimX2_melmax); + get_map.emplace("UnderexcLimX2.qo", &get_UnderexcLimX2_qo); + get_map.emplace("UnderexcLimX2.r", &get_UnderexcLimX2_r); + get_map.emplace("UnderexcLimX2.tf2", &get_UnderexcLimX2_tf2); + get_map.emplace("UnderexcLimX2.tm", &get_UnderexcLimX2_tm); } void UnderexcLimX2::addClassGetFnsToMap(std::map& get_map) const @@ -296,11 +328,25 @@ void UnderexcLimX2::addEnumGetFnsToMap(std::map& get_ UnderexcitationLimiterDynamics::addEnumGetFnsToMap(get_map); } +bool UnderexcLimX2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "UnderexcLimX2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcLimX2::declare() { return BaseClassDefiner(UnderexcLimX2::addConstructToMap, UnderexcLimX2::addPrimitiveAssignFnsToMap, UnderexcLimX2::addClassAssignFnsToMap, UnderexcLimX2::debugName); } +std::map UnderexcLimX2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcLimX2_factory() diff --git a/CGMES_3.0.0/UnderexcLimX2.hpp b/CGMES_3.0.0/UnderexcLimX2.hpp index 9b9f68d26..260b69d89 100644 --- a/CGMES_3.0.0/UnderexcLimX2.hpp +++ b/CGMES_3.0.0/UnderexcLimX2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -50,8 +51,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -59,7 +67,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcLimX2_factory(); diff --git a/CGMES_3.0.0/UnderexcitationLimiterDynamics.cpp b/CGMES_3.0.0/UnderexcitationLimiterDynamics.cpp index 18ef7b3ec..8380bb10e 100644 --- a/CGMES_3.0.0/UnderexcitationLimiterDynamics.cpp +++ b/CGMES_3.0.0/UnderexcitationLimiterDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcitationLimiterDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcitationLimiterDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcitationLimiterDynamics.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcitationLimiterDynamics::UnderexcitationLimiterDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} UnderexcitationLimiterDynamics::~UnderexcitationLimiterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcitationLimiterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcitationLimiterDynamics::getClassNamespaceUrl() const { - { "cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:UnderexcitationLimiterDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcitationLimiterDynamics::getPossibleProfilesForClass() const +const std::string& UnderexcitationLimiterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes() const +const std::list& UnderexcitationLimiterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcitationLimiterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcitationLimiterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcitationLimiterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_UnderexcitationLimiterDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* UnderexcitationLimiterDynamics::debugString() const void UnderexcitationLimiterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcitationLimiterDynamics", &UnderexcitationLimiterDynamics_factory); + factory_map.emplace("UnderexcitationLimiterDynamics", &UnderexcitationLimiterDynamics_factory); } void UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap(std::unordered_m void UnderexcitationLimiterDynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:UnderexcitationLimiterDynamics.RemoteInputSignal", &assign_UnderexcitationLimiterDynamics_RemoteInputSignal); + assign_map.emplace("UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &assign_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); + assign_map.emplace("UnderexcitationLimiterDynamics.RemoteInputSignal", &assign_UnderexcitationLimiterDynamics_RemoteInputSignal); } void UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &get_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); + get_map.emplace("UnderexcitationLimiterDynamics.ExcitationSystemDynamics", &get_UnderexcitationLimiterDynamics_ExcitationSystemDynamics); } void UnderexcitationLimiterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void UnderexcitationLimiterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcitationLimiterDynamics::declare() { return BaseClassDefiner(UnderexcitationLimiterDynamics::addConstructToMap, UnderexcitationLimiterDynamics::addPrimitiveAssignFnsToMap, UnderexcitationLimiterDynamics::addClassAssignFnsToMap, UnderexcitationLimiterDynamics::debugName); } +std::map UnderexcitationLimiterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcitationLimiterDynamics_factory() diff --git a/CGMES_3.0.0/UnderexcitationLimiterDynamics.hpp b/CGMES_3.0.0/UnderexcitationLimiterDynamics.hpp index a1b0b5cc9..b5fe4a715 100644 --- a/CGMES_3.0.0/UnderexcitationLimiterDynamics.hpp +++ b/CGMES_3.0.0/UnderexcitationLimiterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcitationLimiterDynamics_factory(); diff --git a/CGMES_3.0.0/UnderexcitationLimiterUserDefined.cpp b/CGMES_3.0.0/UnderexcitationLimiterUserDefined.cpp index fb5ad61c2..1b8eb4382 100644 --- a/CGMES_3.0.0/UnderexcitationLimiterUserDefined.cpp +++ b/CGMES_3.0.0/UnderexcitationLimiterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + UnderexcitationLimiterUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "UnderexcitationLimiterUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + UnderexcitationLimiterUserDefined::UnderexcitationLimiterUserDefined() {} UnderexcitationLimiterUserDefined::~UnderexcitationLimiterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& UnderexcitationLimiterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& UnderexcitationLimiterUserDefined::getClassNamespaceUrl() const { - { "cim:UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:UnderexcitationLimiterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -UnderexcitationLimiterUserDefined::getPossibleProfilesForClass() const +const std::string& UnderexcitationLimiterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -UnderexcitationLimiterUserDefined::getPossibleProfilesForAttributes() const +const std::list& UnderexcitationLimiterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = UnderexcitationLimiterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& UnderexcitationLimiterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& UnderexcitationLimiterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& UnderexcitationLimiterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_UnderexcitationLimiterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* UnderexcitationLimiterUserDefined::debugString() const void UnderexcitationLimiterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:UnderexcitationLimiterUserDefined", &UnderexcitationLimiterUserDefined_factory); + factory_map.emplace("UnderexcitationLimiterUserDefined", &UnderexcitationLimiterUserDefined_factory); } void UnderexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterUserDefined.proprietary", &assign_UnderexcitationLimiterUserDefined_proprietary); + assign_map.emplace("UnderexcitationLimiterUserDefined.proprietary", &assign_UnderexcitationLimiterUserDefined_proprietary); } void UnderexcitationLimiterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_UnderexcitationLimiterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", &assign_UnderexcitationLimiterUserDefined_ProprietaryParameterDynamics); } void UnderexcitationLimiterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { UnderexcitationLimiterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:UnderexcitationLimiterUserDefined.proprietary", &get_UnderexcitationLimiterUserDefined_proprietary); + get_map.emplace("UnderexcitationLimiterUserDefined.proprietary", &get_UnderexcitationLimiterUserDefined_proprietary); } void UnderexcitationLimiterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void UnderexcitationLimiterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner UnderexcitationLimiterUserDefined::declare() { return BaseClassDefiner(UnderexcitationLimiterUserDefined::addConstructToMap, UnderexcitationLimiterUserDefined::addPrimitiveAssignFnsToMap, UnderexcitationLimiterUserDefined::addClassAssignFnsToMap, UnderexcitationLimiterUserDefined::debugName); } +std::map UnderexcitationLimiterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = UnderexcitationLimiterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* UnderexcitationLimiterUserDefined_factory() diff --git a/CGMES_3.0.0/UnderexcitationLimiterUserDefined.hpp b/CGMES_3.0.0/UnderexcitationLimiterUserDefined.hpp index 8e312cde0..98acba302 100644 --- a/CGMES_3.0.0/UnderexcitationLimiterUserDefined.hpp +++ b/CGMES_3.0.0/UnderexcitationLimiterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "UnderexcitationLimiterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* UnderexcitationLimiterUserDefined_factory(); diff --git a/CGMES_3.0.0/VAdjIEEE.cpp b/CGMES_3.0.0/VAdjIEEE.cpp index f62f88f4f..ebccc6fa4 100644 --- a/CGMES_3.0.0/VAdjIEEE.cpp +++ b/CGMES_3.0.0/VAdjIEEE.cpp @@ -11,37 +11,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VAdjIEEE(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VAdjIEEE.adjslew", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.taoff", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.taon", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjf", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VAdjIEEE.vadjmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VAdjIEEE::VAdjIEEE() {} VAdjIEEE::~VAdjIEEE() {} -static const std::list PossibleProfilesForClass = +const std::list& VAdjIEEE::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VAdjIEEE::getClassNamespaceUrl() const { - { "cim:VAdjIEEE.adjslew", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.taoff", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.taon", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjf", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjmax", { CGMESProfile::DY, } }, - { "cim:VAdjIEEE.vadjmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VAdjIEEE::getPossibleProfilesForClass() const +const std::string& VAdjIEEE::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VAdjIEEE::getPossibleProfilesForAttributes() const +const std::list& VAdjIEEE::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageAdjusterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VAdjIEEE::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VAdjIEEE::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VAdjIEEE::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VAdjIEEE_adjslew(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -226,17 +258,17 @@ const char* VAdjIEEE::debugString() const void VAdjIEEE::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VAdjIEEE", &VAdjIEEE_factory); + factory_map.emplace("VAdjIEEE", &VAdjIEEE_factory); } void VAdjIEEE::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VAdjIEEE.adjslew", &assign_VAdjIEEE_adjslew); - assign_map.emplace("cim:VAdjIEEE.taoff", &assign_VAdjIEEE_taoff); - assign_map.emplace("cim:VAdjIEEE.taon", &assign_VAdjIEEE_taon); - assign_map.emplace("cim:VAdjIEEE.vadjf", &assign_VAdjIEEE_vadjf); - assign_map.emplace("cim:VAdjIEEE.vadjmax", &assign_VAdjIEEE_vadjmax); - assign_map.emplace("cim:VAdjIEEE.vadjmin", &assign_VAdjIEEE_vadjmin); + assign_map.emplace("VAdjIEEE.adjslew", &assign_VAdjIEEE_adjslew); + assign_map.emplace("VAdjIEEE.taoff", &assign_VAdjIEEE_taoff); + assign_map.emplace("VAdjIEEE.taon", &assign_VAdjIEEE_taon); + assign_map.emplace("VAdjIEEE.vadjf", &assign_VAdjIEEE_vadjf); + assign_map.emplace("VAdjIEEE.vadjmax", &assign_VAdjIEEE_vadjmax); + assign_map.emplace("VAdjIEEE.vadjmin", &assign_VAdjIEEE_vadjmin); } void VAdjIEEE::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -246,12 +278,12 @@ void VAdjIEEE::addClassAssignFnsToMap(std::unordered_map& get_map) const { VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VAdjIEEE.adjslew", &get_VAdjIEEE_adjslew); - get_map.emplace("cim:VAdjIEEE.taoff", &get_VAdjIEEE_taoff); - get_map.emplace("cim:VAdjIEEE.taon", &get_VAdjIEEE_taon); - get_map.emplace("cim:VAdjIEEE.vadjf", &get_VAdjIEEE_vadjf); - get_map.emplace("cim:VAdjIEEE.vadjmax", &get_VAdjIEEE_vadjmax); - get_map.emplace("cim:VAdjIEEE.vadjmin", &get_VAdjIEEE_vadjmin); + get_map.emplace("VAdjIEEE.adjslew", &get_VAdjIEEE_adjslew); + get_map.emplace("VAdjIEEE.taoff", &get_VAdjIEEE_taoff); + get_map.emplace("VAdjIEEE.taon", &get_VAdjIEEE_taon); + get_map.emplace("VAdjIEEE.vadjf", &get_VAdjIEEE_vadjf); + get_map.emplace("VAdjIEEE.vadjmax", &get_VAdjIEEE_vadjmax); + get_map.emplace("VAdjIEEE.vadjmin", &get_VAdjIEEE_vadjmin); } void VAdjIEEE::addClassGetFnsToMap(std::map& get_map) const @@ -264,11 +296,25 @@ void VAdjIEEE::addEnumGetFnsToMap(std::map& get_map) VoltageAdjusterDynamics::addEnumGetFnsToMap(get_map); } +bool VAdjIEEE::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VAdjIEEE" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VAdjIEEE::declare() { return BaseClassDefiner(VAdjIEEE::addConstructToMap, VAdjIEEE::addPrimitiveAssignFnsToMap, VAdjIEEE::addClassAssignFnsToMap, VAdjIEEE::debugName); } +std::map VAdjIEEE::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageAdjusterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VAdjIEEE_factory() diff --git a/CGMES_3.0.0/VAdjIEEE.hpp b/CGMES_3.0.0/VAdjIEEE.hpp index e6acf346a..0a5f89f1e 100644 --- a/CGMES_3.0.0/VAdjIEEE.hpp +++ b/CGMES_3.0.0/VAdjIEEE.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageAdjusterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -48,8 +49,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -57,7 +65,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VAdjIEEE_factory(); diff --git a/CGMES_3.0.0/VCompIEEEType1.cpp b/CGMES_3.0.0/VCompIEEEType1.cpp index 92cbabebb..a8ebe7e99 100644 --- a/CGMES_3.0.0/VCompIEEEType1.cpp +++ b/CGMES_3.0.0/VCompIEEEType1.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VCompIEEEType1(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VCompIEEEType1.rc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VCompIEEEType1.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VCompIEEEType1.xc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VCompIEEEType1::VCompIEEEType1() {} VCompIEEEType1::~VCompIEEEType1() {} -static const std::list PossibleProfilesForClass = +const std::list& VCompIEEEType1::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VCompIEEEType1::getClassNamespaceUrl() const { - { "cim:VCompIEEEType1.rc", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType1.tr", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType1.xc", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VCompIEEEType1::getPossibleProfilesForClass() const +const std::string& VCompIEEEType1::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VCompIEEEType1::getPossibleProfilesForAttributes() const +const std::list& VCompIEEEType1::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VCompIEEEType1::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VCompIEEEType1::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VCompIEEEType1::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VCompIEEEType1_rc(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -136,14 +168,14 @@ const char* VCompIEEEType1::debugString() const void VCompIEEEType1::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VCompIEEEType1", &VCompIEEEType1_factory); + factory_map.emplace("VCompIEEEType1", &VCompIEEEType1_factory); } void VCompIEEEType1::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType1.rc", &assign_VCompIEEEType1_rc); - assign_map.emplace("cim:VCompIEEEType1.tr", &assign_VCompIEEEType1_tr); - assign_map.emplace("cim:VCompIEEEType1.xc", &assign_VCompIEEEType1_xc); + assign_map.emplace("VCompIEEEType1.rc", &assign_VCompIEEEType1_rc); + assign_map.emplace("VCompIEEEType1.tr", &assign_VCompIEEEType1_tr); + assign_map.emplace("VCompIEEEType1.xc", &assign_VCompIEEEType1_xc); } void VCompIEEEType1::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -153,9 +185,9 @@ void VCompIEEEType1::addClassAssignFnsToMap(std::unordered_map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VCompIEEEType1.rc", &get_VCompIEEEType1_rc); - get_map.emplace("cim:VCompIEEEType1.tr", &get_VCompIEEEType1_tr); - get_map.emplace("cim:VCompIEEEType1.xc", &get_VCompIEEEType1_xc); + get_map.emplace("VCompIEEEType1.rc", &get_VCompIEEEType1_rc); + get_map.emplace("VCompIEEEType1.tr", &get_VCompIEEEType1_tr); + get_map.emplace("VCompIEEEType1.xc", &get_VCompIEEEType1_xc); } void VCompIEEEType1::addClassGetFnsToMap(std::map& get_map) const @@ -168,11 +200,25 @@ void VCompIEEEType1::addEnumGetFnsToMap(std::map& get VoltageCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool VCompIEEEType1::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VCompIEEEType1" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VCompIEEEType1::declare() { return BaseClassDefiner(VCompIEEEType1::addConstructToMap, VCompIEEEType1::addPrimitiveAssignFnsToMap, VCompIEEEType1::addClassAssignFnsToMap, VCompIEEEType1::debugName); } +std::map VCompIEEEType1::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VCompIEEEType1_factory() diff --git a/CGMES_3.0.0/VCompIEEEType1.hpp b/CGMES_3.0.0/VCompIEEEType1.hpp index bd2fe8205..9c1363475 100644 --- a/CGMES_3.0.0/VCompIEEEType1.hpp +++ b/CGMES_3.0.0/VCompIEEEType1.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VCompIEEEType1_factory(); diff --git a/CGMES_3.0.0/VCompIEEEType2.cpp b/CGMES_3.0.0/VCompIEEEType2.cpp index 1377d7b30..41fa23db4 100644 --- a/CGMES_3.0.0/VCompIEEEType2.cpp +++ b/CGMES_3.0.0/VCompIEEEType2.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VCompIEEEType2(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VCompIEEEType2.GenICompensationForGenJ", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VCompIEEEType2.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VCompIEEEType2::VCompIEEEType2() {} VCompIEEEType2::~VCompIEEEType2() {} -static const std::list PossibleProfilesForClass = +const std::list& VCompIEEEType2::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VCompIEEEType2::getClassNamespaceUrl() const { - { "cim:VCompIEEEType2.GenICompensationForGenJ", { CGMESProfile::DY, } }, - { "cim:VCompIEEEType2.tr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VCompIEEEType2::getPossibleProfilesForClass() const +const std::string& VCompIEEEType2::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VCompIEEEType2::getPossibleProfilesForAttributes() const +const std::list& VCompIEEEType2::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VCompIEEEType2::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VCompIEEEType2::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VCompIEEEType2::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_GenICompensationForGenJ_VcompIEEEType2(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VCompIEEEType2::debugString() const void VCompIEEEType2::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VCompIEEEType2", &VCompIEEEType2_factory); + factory_map.emplace("VCompIEEEType2", &VCompIEEEType2_factory); } void VCompIEEEType2::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType2.tr", &assign_VCompIEEEType2_tr); + assign_map.emplace("VCompIEEEType2.tr", &assign_VCompIEEEType2_tr); } void VCompIEEEType2::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VCompIEEEType2.GenICompensationForGenJ", &assign_VCompIEEEType2_GenICompensationForGenJ); + assign_map.emplace("VCompIEEEType2.GenICompensationForGenJ", &assign_VCompIEEEType2_GenICompensationForGenJ); } void VCompIEEEType2::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VCompIEEEType2.tr", &get_VCompIEEEType2_tr); + get_map.emplace("VCompIEEEType2.tr", &get_VCompIEEEType2_tr); } void VCompIEEEType2::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VCompIEEEType2::addEnumGetFnsToMap(std::map& get VoltageCompensatorDynamics::addEnumGetFnsToMap(get_map); } +bool VCompIEEEType2::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VCompIEEEType2" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VCompIEEEType2::declare() { return BaseClassDefiner(VCompIEEEType2::addConstructToMap, VCompIEEEType2::addPrimitiveAssignFnsToMap, VCompIEEEType2::addClassAssignFnsToMap, VCompIEEEType2::debugName); } +std::map VCompIEEEType2::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VCompIEEEType2_factory() diff --git a/CGMES_3.0.0/VCompIEEEType2.hpp b/CGMES_3.0.0/VCompIEEEType2.hpp index 6d02cf579..a1ba7ec1c 100644 --- a/CGMES_3.0.0/VCompIEEEType2.hpp +++ b/CGMES_3.0.0/VCompIEEEType2.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Seconds.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VCompIEEEType2_factory(); diff --git a/CGMES_3.0.0/VSCDynamics.cpp b/CGMES_3.0.0/VSCDynamics.cpp index 1571a5379..64095e365 100644 --- a/CGMES_3.0.0/VSCDynamics.cpp +++ b/CGMES_3.0.0/VSCDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VSCDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VSCDynamics.VsConverter", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VSCDynamics::VSCDynamics() : VsConverter(nullptr) {} VSCDynamics::~VSCDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VSCDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VSCDynamics::getClassNamespaceUrl() const { - { "cim:VSCDynamics.VsConverter", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VSCDynamics::getPossibleProfilesForClass() const +const std::string& VSCDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VSCDynamics::getPossibleProfilesForAttributes() const +const std::list& VSCDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = HVDCDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VSCDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VSCDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VSCDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsConverter_VSCDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* VSCDynamics::debugString() const void VSCDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VSCDynamics", &VSCDynamics_factory); + factory_map.emplace("VSCDynamics", &VSCDynamics_factory); } void VSCDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void VSCDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VSCDynamics.VsConverter", &assign_VSCDynamics_VsConverter); + assign_map.emplace("VSCDynamics.VsConverter", &assign_VSCDynamics_VsConverter); } void VSCDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void VSCDynamics::addPrimitiveGetFnsToMap(std::map& g void VSCDynamics::addClassGetFnsToMap(std::map& get_map) const { HVDCDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VSCDynamics.VsConverter", &get_VSCDynamics_VsConverter); + get_map.emplace("VSCDynamics.VsConverter", &get_VSCDynamics_VsConverter); } void VSCDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void VSCDynamics::addEnumGetFnsToMap(std::map& get_ma HVDCDynamics::addEnumGetFnsToMap(get_map); } +bool VSCDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VSCDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VSCDynamics::declare() { return BaseClassDefiner(VSCDynamics::addConstructToMap, VSCDynamics::addPrimitiveAssignFnsToMap, VSCDynamics::addClassAssignFnsToMap, VSCDynamics::debugName); } +std::map VSCDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = HVDCDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VSCDynamics_factory() diff --git a/CGMES_3.0.0/VSCDynamics.hpp b/CGMES_3.0.0/VSCDynamics.hpp index 3f0502493..a9a0606ec 100644 --- a/CGMES_3.0.0/VSCDynamics.hpp +++ b/CGMES_3.0.0/VSCDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "HVDCDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VSCDynamics_factory(); diff --git a/CGMES_3.0.0/VSCUserDefined.cpp b/CGMES_3.0.0/VSCUserDefined.cpp index c99302215..712503db7 100644 --- a/CGMES_3.0.0/VSCUserDefined.cpp +++ b/CGMES_3.0.0/VSCUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VSCUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VSCUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VSCUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VSCUserDefined::VSCUserDefined() {} VSCUserDefined::~VSCUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VSCUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VSCUserDefined::getClassNamespaceUrl() const { - { "cim:VSCUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VSCUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VSCUserDefined::getPossibleProfilesForClass() const +const std::string& VSCUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VSCUserDefined::getPossibleProfilesForAttributes() const +const std::list& VSCUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VSCDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VSCUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VSCUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VSCUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VSCUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VSCUserDefined::debugString() const void VSCUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VSCUserDefined", &VSCUserDefined_factory); + factory_map.emplace("VSCUserDefined", &VSCUserDefined_factory); } void VSCUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VSCUserDefined.proprietary", &assign_VSCUserDefined_proprietary); + assign_map.emplace("VSCUserDefined.proprietary", &assign_VSCUserDefined_proprietary); } void VSCUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VSCUserDefined.ProprietaryParameterDynamics", &assign_VSCUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VSCUserDefined.ProprietaryParameterDynamics", &assign_VSCUserDefined_ProprietaryParameterDynamics); } void VSCUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VSCDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VSCUserDefined.proprietary", &get_VSCUserDefined_proprietary); + get_map.emplace("VSCUserDefined.proprietary", &get_VSCUserDefined_proprietary); } void VSCUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VSCUserDefined::addEnumGetFnsToMap(std::map& get VSCDynamics::addEnumGetFnsToMap(get_map); } +bool VSCUserDefined::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VSCUserDefined" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VSCUserDefined::declare() { return BaseClassDefiner(VSCUserDefined::addConstructToMap, VSCUserDefined::addPrimitiveAssignFnsToMap, VSCUserDefined::addClassAssignFnsToMap, VSCUserDefined::debugName); } +std::map VSCUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VSCDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VSCUserDefined_factory() diff --git a/CGMES_3.0.0/VSCUserDefined.hpp b/CGMES_3.0.0/VSCUserDefined.hpp index d63cf4179..c88b7f996 100644 --- a/CGMES_3.0.0/VSCUserDefined.hpp +++ b/CGMES_3.0.0/VSCUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VSCDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VSCUserDefined_factory(); diff --git a/CGMES_3.0.0/ValueAliasSet.cpp b/CGMES_3.0.0/ValueAliasSet.cpp index d770dee21..e0295b3a4 100644 --- a/CGMES_3.0.0/ValueAliasSet.cpp +++ b/CGMES_3.0.0/ValueAliasSet.cpp @@ -15,35 +15,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ValueAliasSet(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ValueAliasSet.Commands", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "ValueAliasSet.Discretes", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "ValueAliasSet.RaiseLowerCommands", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "ValueAliasSet.Values", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + ValueAliasSet::ValueAliasSet() {} ValueAliasSet::~ValueAliasSet() {} -static const std::list PossibleProfilesForClass = +const std::list& ValueAliasSet::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ValueAliasSet::getClassNamespaceUrl() const { - { "cim:ValueAliasSet.Commands", { CGMESProfile::OP, } }, - { "cim:ValueAliasSet.Discretes", { CGMESProfile::OP, } }, - { "cim:ValueAliasSet.RaiseLowerCommands", { CGMESProfile::OP, } }, - { "cim:ValueAliasSet.Values", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ValueAliasSet::getPossibleProfilesForClass() const +const std::string& ValueAliasSet::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ValueAliasSet::getPossibleProfilesForAttributes() const +const std::list& ValueAliasSet::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ValueAliasSet::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ValueAliasSet::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ValueAliasSet::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_Command_ValueAliasSet(BaseClass*, BaseClass*); @@ -126,7 +158,7 @@ const char* ValueAliasSet::debugString() const void ValueAliasSet::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ValueAliasSet", &ValueAliasSet_factory); + factory_map.emplace("ValueAliasSet", &ValueAliasSet_factory); } void ValueAliasSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -135,10 +167,10 @@ void ValueAliasSet::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueAliasSet.Commands", &assign_ValueAliasSet_Commands); - assign_map.emplace("cim:ValueAliasSet.Discretes", &assign_ValueAliasSet_Discretes); - assign_map.emplace("cim:ValueAliasSet.RaiseLowerCommands", &assign_ValueAliasSet_RaiseLowerCommands); - assign_map.emplace("cim:ValueAliasSet.Values", &assign_ValueAliasSet_Values); + assign_map.emplace("ValueAliasSet.Commands", &assign_ValueAliasSet_Commands); + assign_map.emplace("ValueAliasSet.Discretes", &assign_ValueAliasSet_Discretes); + assign_map.emplace("ValueAliasSet.RaiseLowerCommands", &assign_ValueAliasSet_RaiseLowerCommands); + assign_map.emplace("ValueAliasSet.Values", &assign_ValueAliasSet_Values); } void ValueAliasSet::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -156,11 +188,25 @@ void ValueAliasSet::addEnumGetFnsToMap(std::map& get_ IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ValueAliasSet::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ValueAliasSet" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ValueAliasSet::declare() { return BaseClassDefiner(ValueAliasSet::addConstructToMap, ValueAliasSet::addPrimitiveAssignFnsToMap, ValueAliasSet::addClassAssignFnsToMap, ValueAliasSet::debugName); } +std::map ValueAliasSet::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ValueAliasSet_factory() diff --git a/CGMES_3.0.0/ValueAliasSet.hpp b/CGMES_3.0.0/ValueAliasSet.hpp index c73f4520a..2ae3e7f55 100644 --- a/CGMES_3.0.0/ValueAliasSet.hpp +++ b/CGMES_3.0.0/ValueAliasSet.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -43,8 +44,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -52,7 +60,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ValueAliasSet_factory(); diff --git a/CGMES_3.0.0/ValueToAlias.cpp b/CGMES_3.0.0/ValueToAlias.cpp index cee8dc95f..ef7b2a40a 100644 --- a/CGMES_3.0.0/ValueToAlias.cpp +++ b/CGMES_3.0.0/ValueToAlias.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + ValueToAlias(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::OP, + }, + CGMESProfile::OP + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "ValueToAlias.ValueAliasSet", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + { "ValueToAlias.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::OP, } } }, + }; + return ClassAttrDetailsMap; +} + ValueToAlias::ValueToAlias() : ValueAliasSet(nullptr) {} ValueToAlias::~ValueToAlias() {} -static const std::list PossibleProfilesForClass = +const std::list& ValueToAlias::getAttributeNames() const { - CGMESProfile::OP, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& ValueToAlias::getClassNamespaceUrl() const { - { "cim:ValueToAlias.ValueAliasSet", { CGMESProfile::OP, } }, - { "cim:ValueToAlias.value", { CGMESProfile::OP, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -ValueToAlias::getPossibleProfilesForClass() const +const std::string& ValueToAlias::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -ValueToAlias::getPossibleProfilesForAttributes() const +const std::list& ValueToAlias::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& ValueToAlias::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& ValueToAlias::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& ValueToAlias::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ValueAliasSet_Values(BaseClass*, BaseClass*); @@ -109,29 +141,29 @@ const char* ValueToAlias::debugString() const void ValueToAlias::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:ValueToAlias", &ValueToAlias_factory); + factory_map.emplace("ValueToAlias", &ValueToAlias_factory); } void ValueToAlias::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueToAlias.value", &assign_ValueToAlias_value); + assign_map.emplace("ValueToAlias.value", &assign_ValueToAlias_value); } void ValueToAlias::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:ValueToAlias.ValueAliasSet", &assign_ValueToAlias_ValueAliasSet); + assign_map.emplace("ValueToAlias.ValueAliasSet", &assign_ValueToAlias_ValueAliasSet); } void ValueToAlias::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:ValueToAlias.value", &get_ValueToAlias_value); + get_map.emplace("ValueToAlias.value", &get_ValueToAlias_value); } void ValueToAlias::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:ValueToAlias.ValueAliasSet", &get_ValueToAlias_ValueAliasSet); + get_map.emplace("ValueToAlias.ValueAliasSet", &get_ValueToAlias_ValueAliasSet); } void ValueToAlias::addEnumGetFnsToMap(std::map& get_map) const @@ -139,11 +171,25 @@ void ValueToAlias::addEnumGetFnsToMap(std::map& get_m IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool ValueToAlias::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "ValueToAlias" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner ValueToAlias::declare() { return BaseClassDefiner(ValueToAlias::addConstructToMap, ValueToAlias::addPrimitiveAssignFnsToMap, ValueToAlias::addClassAssignFnsToMap, ValueToAlias::debugName); } +std::map ValueToAlias::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* ValueToAlias_factory() diff --git a/CGMES_3.0.0/ValueToAlias.hpp b/CGMES_3.0.0/ValueToAlias.hpp index 4d39dd573..e17ba7eb1 100644 --- a/CGMES_3.0.0/ValueToAlias.hpp +++ b/CGMES_3.0.0/ValueToAlias.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* ValueToAlias_factory(); diff --git a/CGMES_3.0.0/VisibilityLayer.cpp b/CGMES_3.0.0/VisibilityLayer.cpp index 342592e16..b197e258b 100644 --- a/CGMES_3.0.0/VisibilityLayer.cpp +++ b/CGMES_3.0.0/VisibilityLayer.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VisibilityLayer(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DL, + }, + CGMESProfile::DL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VisibilityLayer.VisibleObjects", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + { "VisibilityLayer.drawingOrder", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DL, } } }, + }; + return ClassAttrDetailsMap; +} + VisibilityLayer::VisibilityLayer() {} VisibilityLayer::~VisibilityLayer() {} -static const std::list PossibleProfilesForClass = +const std::list& VisibilityLayer::getAttributeNames() const { - CGMESProfile::DL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VisibilityLayer::getClassNamespaceUrl() const { - { "cim:VisibilityLayer.VisibleObjects", { CGMESProfile::DL, } }, - { "cim:VisibilityLayer.drawingOrder", { CGMESProfile::DL, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VisibilityLayer::getPossibleProfilesForClass() const +const std::string& VisibilityLayer::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VisibilityLayer::getPossibleProfilesForAttributes() const +const std::list& VisibilityLayer::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VisibilityLayer::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VisibilityLayer::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VisibilityLayer::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_DiagramObject_VisibilityLayers(BaseClass*, BaseClass*); @@ -106,29 +138,29 @@ const char* VisibilityLayer::debugString() const void VisibilityLayer::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VisibilityLayer", &VisibilityLayer_factory); + factory_map.emplace("VisibilityLayer", &VisibilityLayer_factory); } void VisibilityLayer::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VisibilityLayer.drawingOrder", &assign_VisibilityLayer_drawingOrder); + assign_map.emplace("VisibilityLayer.drawingOrder", &assign_VisibilityLayer_drawingOrder); } void VisibilityLayer::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VisibilityLayer.VisibleObjects", &assign_VisibilityLayer_VisibleObjects); + assign_map.emplace("VisibilityLayer.VisibleObjects", &assign_VisibilityLayer_VisibleObjects); } void VisibilityLayer::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VisibilityLayer.drawingOrder", &get_VisibilityLayer_drawingOrder); + get_map.emplace("VisibilityLayer.drawingOrder", &get_VisibilityLayer_drawingOrder); } void VisibilityLayer::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VisibilityLayer.VisibleObjects", &get_VisibilityLayer_VisibleObjects); + get_map.emplace("VisibilityLayer.VisibleObjects", &get_VisibilityLayer_VisibleObjects); } void VisibilityLayer::addEnumGetFnsToMap(std::map& get_map) const @@ -136,11 +168,25 @@ void VisibilityLayer::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool VisibilityLayer::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VisibilityLayer" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VisibilityLayer::declare() { return BaseClassDefiner(VisibilityLayer::addConstructToMap, VisibilityLayer::addPrimitiveAssignFnsToMap, VisibilityLayer::addClassAssignFnsToMap, VisibilityLayer::debugName); } +std::map VisibilityLayer::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VisibilityLayer_factory() diff --git a/CGMES_3.0.0/VisibilityLayer.hpp b/CGMES_3.0.0/VisibilityLayer.hpp index 6b3232690..4b2897d1b 100644 --- a/CGMES_3.0.0/VisibilityLayer.hpp +++ b/CGMES_3.0.0/VisibilityLayer.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Integer.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VisibilityLayer_factory(); diff --git a/CGMES_3.0.0/VoltageAdjusterDynamics.cpp b/CGMES_3.0.0/VoltageAdjusterDynamics.cpp index 5ab8b68ac..bd882c341 100644 --- a/CGMES_3.0.0/VoltageAdjusterDynamics.cpp +++ b/CGMES_3.0.0/VoltageAdjusterDynamics.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageAdjusterDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageAdjusterDynamics.PFVArControllerType1Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageAdjusterDynamics::VoltageAdjusterDynamics() : PFVArControllerType1Dynamics(nullptr) {} VoltageAdjusterDynamics::~VoltageAdjusterDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageAdjusterDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageAdjusterDynamics::getClassNamespaceUrl() const { - { "cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageAdjusterDynamics::getPossibleProfilesForClass() const +const std::string& VoltageAdjusterDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageAdjusterDynamics::getPossibleProfilesForAttributes() const +const std::list& VoltageAdjusterDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageAdjusterDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageAdjusterDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageAdjusterDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PFVArControllerType1Dynamics_VoltageAdjusterDynamics(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* VoltageAdjusterDynamics::debugString() const void VoltageAdjusterDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageAdjusterDynamics", &VoltageAdjusterDynamics_factory); + factory_map.emplace("VoltageAdjusterDynamics", &VoltageAdjusterDynamics_factory); } void VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &assign_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); + assign_map.emplace("VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &assign_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); } void VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &get_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); + get_map.emplace("VoltageAdjusterDynamics.PFVArControllerType1Dynamics", &get_VoltageAdjusterDynamics_PFVArControllerType1Dynamics); } void VoltageAdjusterDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void VoltageAdjusterDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageAdjusterDynamics::declare() { return BaseClassDefiner(VoltageAdjusterDynamics::addConstructToMap, VoltageAdjusterDynamics::addPrimitiveAssignFnsToMap, VoltageAdjusterDynamics::addClassAssignFnsToMap, VoltageAdjusterDynamics::debugName); } +std::map VoltageAdjusterDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageAdjusterDynamics_factory() diff --git a/CGMES_3.0.0/VoltageAdjusterDynamics.hpp b/CGMES_3.0.0/VoltageAdjusterDynamics.hpp index f99528de8..76d422436 100644 --- a/CGMES_3.0.0/VoltageAdjusterDynamics.hpp +++ b/CGMES_3.0.0/VoltageAdjusterDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageAdjusterDynamics_factory(); diff --git a/CGMES_3.0.0/VoltageAdjusterUserDefined.cpp b/CGMES_3.0.0/VoltageAdjusterUserDefined.cpp index c89e76a0e..473b2ad5a 100644 --- a/CGMES_3.0.0/VoltageAdjusterUserDefined.cpp +++ b/CGMES_3.0.0/VoltageAdjusterUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageAdjusterUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageAdjusterUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VoltageAdjusterUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageAdjusterUserDefined::VoltageAdjusterUserDefined() {} VoltageAdjusterUserDefined::~VoltageAdjusterUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageAdjusterUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageAdjusterUserDefined::getClassNamespaceUrl() const { - { "cim:VoltageAdjusterUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageAdjusterUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageAdjusterUserDefined::getPossibleProfilesForClass() const +const std::string& VoltageAdjusterUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageAdjusterUserDefined::getPossibleProfilesForAttributes() const +const std::list& VoltageAdjusterUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageAdjusterDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageAdjusterUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageAdjusterUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageAdjusterUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VoltageAdjusterUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VoltageAdjusterUserDefined::debugString() const void VoltageAdjusterUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageAdjusterUserDefined", &VoltageAdjusterUserDefined_factory); + factory_map.emplace("VoltageAdjusterUserDefined", &VoltageAdjusterUserDefined_factory); } void VoltageAdjusterUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterUserDefined.proprietary", &assign_VoltageAdjusterUserDefined_proprietary); + assign_map.emplace("VoltageAdjusterUserDefined.proprietary", &assign_VoltageAdjusterUserDefined_proprietary); } void VoltageAdjusterUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageAdjusterUserDefined.ProprietaryParameterDynamics", &assign_VoltageAdjusterUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VoltageAdjusterUserDefined.ProprietaryParameterDynamics", &assign_VoltageAdjusterUserDefined_ProprietaryParameterDynamics); } void VoltageAdjusterUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageAdjusterDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageAdjusterUserDefined.proprietary", &get_VoltageAdjusterUserDefined_proprietary); + get_map.emplace("VoltageAdjusterUserDefined.proprietary", &get_VoltageAdjusterUserDefined_proprietary); } void VoltageAdjusterUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VoltageAdjusterUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageAdjusterUserDefined::declare() { return BaseClassDefiner(VoltageAdjusterUserDefined::addConstructToMap, VoltageAdjusterUserDefined::addPrimitiveAssignFnsToMap, VoltageAdjusterUserDefined::addClassAssignFnsToMap, VoltageAdjusterUserDefined::debugName); } +std::map VoltageAdjusterUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageAdjusterDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageAdjusterUserDefined_factory() diff --git a/CGMES_3.0.0/VoltageAdjusterUserDefined.hpp b/CGMES_3.0.0/VoltageAdjusterUserDefined.hpp index 7c0945e02..6903bb365 100644 --- a/CGMES_3.0.0/VoltageAdjusterUserDefined.hpp +++ b/CGMES_3.0.0/VoltageAdjusterUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageAdjusterDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageAdjusterUserDefined_factory(); diff --git a/CGMES_3.0.0/VoltageCompensatorDynamics.cpp b/CGMES_3.0.0/VoltageCompensatorDynamics.cpp index b1b3c20fd..84169a5f2 100644 --- a/CGMES_3.0.0/VoltageCompensatorDynamics.cpp +++ b/CGMES_3.0.0/VoltageCompensatorDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageCompensatorDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageCompensatorDynamics.ExcitationSystemDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VoltageCompensatorDynamics.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageCompensatorDynamics::VoltageCompensatorDynamics() : ExcitationSystemDynamics(nullptr), RemoteInputSignal(nullptr) {} VoltageCompensatorDynamics::~VoltageCompensatorDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageCompensatorDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageCompensatorDynamics::getClassNamespaceUrl() const { - { "cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageCompensatorDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageCompensatorDynamics::getPossibleProfilesForClass() const +const std::string& VoltageCompensatorDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageCompensatorDynamics::getPossibleProfilesForAttributes() const +const std::list& VoltageCompensatorDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageCompensatorDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageCompensatorDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageCompensatorDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ExcitationSystemDynamics_VoltageCompensatorDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* VoltageCompensatorDynamics::debugString() const void VoltageCompensatorDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageCompensatorDynamics", &VoltageCompensatorDynamics_factory); + factory_map.emplace("VoltageCompensatorDynamics", &VoltageCompensatorDynamics_factory); } void VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", &assign_VoltageCompensatorDynamics_ExcitationSystemDynamics); - assign_map.emplace("cim:VoltageCompensatorDynamics.RemoteInputSignal", &assign_VoltageCompensatorDynamics_RemoteInputSignal); + assign_map.emplace("VoltageCompensatorDynamics.ExcitationSystemDynamics", &assign_VoltageCompensatorDynamics_ExcitationSystemDynamics); + assign_map.emplace("VoltageCompensatorDynamics.RemoteInputSignal", &assign_VoltageCompensatorDynamics_RemoteInputSignal); } void VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageCompensatorDynamics.ExcitationSystemDynamics", &get_VoltageCompensatorDynamics_ExcitationSystemDynamics); + get_map.emplace("VoltageCompensatorDynamics.ExcitationSystemDynamics", &get_VoltageCompensatorDynamics_ExcitationSystemDynamics); } void VoltageCompensatorDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void VoltageCompensatorDynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageCompensatorDynamics::declare() { return BaseClassDefiner(VoltageCompensatorDynamics::addConstructToMap, VoltageCompensatorDynamics::addPrimitiveAssignFnsToMap, VoltageCompensatorDynamics::addClassAssignFnsToMap, VoltageCompensatorDynamics::debugName); } +std::map VoltageCompensatorDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageCompensatorDynamics_factory() diff --git a/CGMES_3.0.0/VoltageCompensatorDynamics.hpp b/CGMES_3.0.0/VoltageCompensatorDynamics.hpp index 4eefbccdd..909b4c8ee 100644 --- a/CGMES_3.0.0/VoltageCompensatorDynamics.hpp +++ b/CGMES_3.0.0/VoltageCompensatorDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageCompensatorDynamics_factory(); diff --git a/CGMES_3.0.0/VoltageCompensatorUserDefined.cpp b/CGMES_3.0.0/VoltageCompensatorUserDefined.cpp index dc3b5ff50..be44a784f 100644 --- a/CGMES_3.0.0/VoltageCompensatorUserDefined.cpp +++ b/CGMES_3.0.0/VoltageCompensatorUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageCompensatorUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageCompensatorUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VoltageCompensatorUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageCompensatorUserDefined::VoltageCompensatorUserDefined() {} VoltageCompensatorUserDefined::~VoltageCompensatorUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageCompensatorUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageCompensatorUserDefined::getClassNamespaceUrl() const { - { "cim:VoltageCompensatorUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:VoltageCompensatorUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageCompensatorUserDefined::getPossibleProfilesForClass() const +const std::string& VoltageCompensatorUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageCompensatorUserDefined::getPossibleProfilesForAttributes() const +const std::list& VoltageCompensatorUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = VoltageCompensatorDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageCompensatorUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageCompensatorUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageCompensatorUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_VoltageCompensatorUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* VoltageCompensatorUserDefined::debugString() const void VoltageCompensatorUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageCompensatorUserDefined", &VoltageCompensatorUserDefined_factory); + factory_map.emplace("VoltageCompensatorUserDefined", &VoltageCompensatorUserDefined_factory); } void VoltageCompensatorUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorUserDefined.proprietary", &assign_VoltageCompensatorUserDefined_proprietary); + assign_map.emplace("VoltageCompensatorUserDefined.proprietary", &assign_VoltageCompensatorUserDefined_proprietary); } void VoltageCompensatorUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageCompensatorUserDefined.ProprietaryParameterDynamics", &assign_VoltageCompensatorUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("VoltageCompensatorUserDefined.ProprietaryParameterDynamics", &assign_VoltageCompensatorUserDefined_ProprietaryParameterDynamics); } void VoltageCompensatorUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { VoltageCompensatorDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageCompensatorUserDefined.proprietary", &get_VoltageCompensatorUserDefined_proprietary); + get_map.emplace("VoltageCompensatorUserDefined.proprietary", &get_VoltageCompensatorUserDefined_proprietary); } void VoltageCompensatorUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void VoltageCompensatorUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner VoltageCompensatorUserDefined::declare() { return BaseClassDefiner(VoltageCompensatorUserDefined::addConstructToMap, VoltageCompensatorUserDefined::addPrimitiveAssignFnsToMap, VoltageCompensatorUserDefined::addClassAssignFnsToMap, VoltageCompensatorUserDefined::debugName); } +std::map VoltageCompensatorUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = VoltageCompensatorDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageCompensatorUserDefined_factory() diff --git a/CGMES_3.0.0/VoltageCompensatorUserDefined.hpp b/CGMES_3.0.0/VoltageCompensatorUserDefined.hpp index 6cd647c3d..0485207f3 100644 --- a/CGMES_3.0.0/VoltageCompensatorUserDefined.hpp +++ b/CGMES_3.0.0/VoltageCompensatorUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "VoltageCompensatorDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageCompensatorUserDefined_factory(); diff --git a/CGMES_3.0.0/VoltageLevel.cpp b/CGMES_3.0.0/VoltageLevel.cpp index f3dd3bd6d..b9b4ad73d 100644 --- a/CGMES_3.0.0/VoltageLevel.cpp +++ b/CGMES_3.0.0/VoltageLevel.cpp @@ -14,37 +14,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageLevel(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::EQBD, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageLevel.BaseVoltage", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "VoltageLevel.Bays", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "VoltageLevel.Substation", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "VoltageLevel.highVoltageLimit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + { "VoltageLevel.lowVoltageLimit", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, CGMESProfile::EQBD, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageLevel::VoltageLevel() : BaseVoltage(nullptr), Substation(nullptr) {} VoltageLevel::~VoltageLevel() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageLevel::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::EQBD, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageLevel::getClassNamespaceUrl() const { - { "cim:VoltageLevel.BaseVoltage", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:VoltageLevel.Bays", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:VoltageLevel.Substation", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:VoltageLevel.highVoltageLimit", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, - { "cim:VoltageLevel.lowVoltageLimit", { CGMESProfile::EQ, CGMESProfile::EQBD, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageLevel::getPossibleProfilesForClass() const +const std::string& VoltageLevel::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageLevel::getPossibleProfilesForAttributes() const +const std::list& VoltageLevel::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = EquipmentContainer::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageLevel::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageLevel::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageLevel::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_BaseVoltage_VoltageLevel(BaseClass*, BaseClass*); @@ -193,34 +225,34 @@ const char* VoltageLevel::debugString() const void VoltageLevel::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageLevel", &VoltageLevel_factory); + factory_map.emplace("VoltageLevel", &VoltageLevel_factory); } void VoltageLevel::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLevel.highVoltageLimit", &assign_VoltageLevel_highVoltageLimit); - assign_map.emplace("cim:VoltageLevel.lowVoltageLimit", &assign_VoltageLevel_lowVoltageLimit); + assign_map.emplace("VoltageLevel.highVoltageLimit", &assign_VoltageLevel_highVoltageLimit); + assign_map.emplace("VoltageLevel.lowVoltageLimit", &assign_VoltageLevel_lowVoltageLimit); } void VoltageLevel::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLevel.BaseVoltage", &assign_VoltageLevel_BaseVoltage); - assign_map.emplace("cim:VoltageLevel.Bays", &assign_VoltageLevel_Bays); - assign_map.emplace("cim:VoltageLevel.Substation", &assign_VoltageLevel_Substation); + assign_map.emplace("VoltageLevel.BaseVoltage", &assign_VoltageLevel_BaseVoltage); + assign_map.emplace("VoltageLevel.Bays", &assign_VoltageLevel_Bays); + assign_map.emplace("VoltageLevel.Substation", &assign_VoltageLevel_Substation); } void VoltageLevel::addPrimitiveGetFnsToMap(std::map& get_map) const { EquipmentContainer::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLevel.highVoltageLimit", &get_VoltageLevel_highVoltageLimit); - get_map.emplace("cim:VoltageLevel.lowVoltageLimit", &get_VoltageLevel_lowVoltageLimit); + get_map.emplace("VoltageLevel.highVoltageLimit", &get_VoltageLevel_highVoltageLimit); + get_map.emplace("VoltageLevel.lowVoltageLimit", &get_VoltageLevel_lowVoltageLimit); } void VoltageLevel::addClassGetFnsToMap(std::map& get_map) const { EquipmentContainer::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLevel.BaseVoltage", &get_VoltageLevel_BaseVoltage); - get_map.emplace("cim:VoltageLevel.Substation", &get_VoltageLevel_Substation); + get_map.emplace("VoltageLevel.BaseVoltage", &get_VoltageLevel_BaseVoltage); + get_map.emplace("VoltageLevel.Substation", &get_VoltageLevel_Substation); } void VoltageLevel::addEnumGetFnsToMap(std::map& get_map) const @@ -228,11 +260,25 @@ void VoltageLevel::addEnumGetFnsToMap(std::map& get_m EquipmentContainer::addEnumGetFnsToMap(get_map); } +bool VoltageLevel::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VoltageLevel" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VoltageLevel::declare() { return BaseClassDefiner(VoltageLevel::addConstructToMap, VoltageLevel::addPrimitiveAssignFnsToMap, VoltageLevel::addClassAssignFnsToMap, VoltageLevel::debugName); } +std::map VoltageLevel::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = EquipmentContainer::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageLevel_factory() diff --git a/CGMES_3.0.0/VoltageLevel.hpp b/CGMES_3.0.0/VoltageLevel.hpp index 664cd9d21..063f4fe2c 100644 --- a/CGMES_3.0.0/VoltageLevel.hpp +++ b/CGMES_3.0.0/VoltageLevel.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "EquipmentContainer.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -46,8 +47,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -55,7 +63,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageLevel_factory(); diff --git a/CGMES_3.0.0/VoltageLimit.cpp b/CGMES_3.0.0/VoltageLimit.cpp index aeb8307de..7296f7753 100644 --- a/CGMES_3.0.0/VoltageLimit.cpp +++ b/CGMES_3.0.0/VoltageLimit.cpp @@ -11,34 +11,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VoltageLimit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VoltageLimit.normalValue", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "VoltageLimit.value", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + }; + return ClassAttrDetailsMap; +} + VoltageLimit::VoltageLimit() {} VoltageLimit::~VoltageLimit() {} -static const std::list PossibleProfilesForClass = +const std::list& VoltageLimit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VoltageLimit::getClassNamespaceUrl() const { - { "cim:VoltageLimit.normalValue", { CGMESProfile::EQ, } }, - { "cim:VoltageLimit.value", { CGMESProfile::SSH, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VoltageLimit::getPossibleProfilesForClass() const +const std::string& VoltageLimit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VoltageLimit::getPossibleProfilesForAttributes() const +const std::list& VoltageLimit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = OperationalLimit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VoltageLimit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VoltageLimit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VoltageLimit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VoltageLimit_normalValue(std::stringstream& buffer, BaseClass* BaseClass_ptr1) @@ -107,13 +139,13 @@ const char* VoltageLimit::debugString() const void VoltageLimit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VoltageLimit", &VoltageLimit_factory); + factory_map.emplace("VoltageLimit", &VoltageLimit_factory); } void VoltageLimit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VoltageLimit.normalValue", &assign_VoltageLimit_normalValue); - assign_map.emplace("cim:VoltageLimit.value", &assign_VoltageLimit_value); + assign_map.emplace("VoltageLimit.normalValue", &assign_VoltageLimit_normalValue); + assign_map.emplace("VoltageLimit.value", &assign_VoltageLimit_value); } void VoltageLimit::addClassAssignFnsToMap(std::unordered_map& assign_map) @@ -123,8 +155,8 @@ void VoltageLimit::addClassAssignFnsToMap(std::unordered_map& get_map) const { OperationalLimit::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VoltageLimit.normalValue", &get_VoltageLimit_normalValue); - get_map.emplace("cim:VoltageLimit.value", &get_VoltageLimit_value); + get_map.emplace("VoltageLimit.normalValue", &get_VoltageLimit_normalValue); + get_map.emplace("VoltageLimit.value", &get_VoltageLimit_value); } void VoltageLimit::addClassGetFnsToMap(std::map& get_map) const @@ -137,11 +169,25 @@ void VoltageLimit::addEnumGetFnsToMap(std::map& get_m OperationalLimit::addEnumGetFnsToMap(get_map); } +bool VoltageLimit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VoltageLimit" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VoltageLimit::declare() { return BaseClassDefiner(VoltageLimit::addConstructToMap, VoltageLimit::addPrimitiveAssignFnsToMap, VoltageLimit::addClassAssignFnsToMap, VoltageLimit::debugName); } +std::map VoltageLimit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = OperationalLimit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VoltageLimit_factory() diff --git a/CGMES_3.0.0/VoltageLimit.hpp b/CGMES_3.0.0/VoltageLimit.hpp index 5ae215076..8427f7d92 100644 --- a/CGMES_3.0.0/VoltageLimit.hpp +++ b/CGMES_3.0.0/VoltageLimit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "OperationalLimit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Voltage.hpp" namespace CIMPP @@ -34,8 +35,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -43,7 +51,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VoltageLimit_factory(); diff --git a/CGMES_3.0.0/VsCapabilityCurve.cpp b/CGMES_3.0.0/VsCapabilityCurve.cpp index 5a75f1880..646b9b697 100644 --- a/CGMES_3.0.0/VsCapabilityCurve.cpp +++ b/CGMES_3.0.0/VsCapabilityCurve.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VsCapabilityCurve(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VsCapabilityCurve.VsConverterDCSides", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + VsCapabilityCurve::VsCapabilityCurve() {} VsCapabilityCurve::~VsCapabilityCurve() {} -static const std::list PossibleProfilesForClass = +const std::list& VsCapabilityCurve::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VsCapabilityCurve::getClassNamespaceUrl() const { - { "cim:VsCapabilityCurve.VsConverterDCSides", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VsCapabilityCurve::getPossibleProfilesForClass() const +const std::string& VsCapabilityCurve::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VsCapabilityCurve::getPossibleProfilesForAttributes() const +const std::list& VsCapabilityCurve::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Curve::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VsCapabilityCurve::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VsCapabilityCurve::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VsCapabilityCurve::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsConverter_CapabilityCurve(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* VsCapabilityCurve::debugString() const void VsCapabilityCurve::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VsCapabilityCurve", &VsCapabilityCurve_factory); + factory_map.emplace("VsCapabilityCurve", &VsCapabilityCurve_factory); } void VsCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void VsCapabilityCurve::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsCapabilityCurve.VsConverterDCSides", &assign_VsCapabilityCurve_VsConverterDCSides); + assign_map.emplace("VsCapabilityCurve.VsConverterDCSides", &assign_VsCapabilityCurve_VsConverterDCSides); } void VsCapabilityCurve::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void VsCapabilityCurve::addEnumGetFnsToMap(std::map& Curve::addEnumGetFnsToMap(get_map); } +bool VsCapabilityCurve::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VsCapabilityCurve" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner VsCapabilityCurve::declare() { return BaseClassDefiner(VsCapabilityCurve::addConstructToMap, VsCapabilityCurve::addPrimitiveAssignFnsToMap, VsCapabilityCurve::addClassAssignFnsToMap, VsCapabilityCurve::debugName); } +std::map VsCapabilityCurve::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Curve::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VsCapabilityCurve_factory() diff --git a/CGMES_3.0.0/VsCapabilityCurve.hpp b/CGMES_3.0.0/VsCapabilityCurve.hpp index 24fb5a54b..78b13782c 100644 --- a/CGMES_3.0.0/VsCapabilityCurve.hpp +++ b/CGMES_3.0.0/VsCapabilityCurve.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Curve.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VsCapabilityCurve_factory(); diff --git a/CGMES_3.0.0/VsConverter.cpp b/CGMES_3.0.0/VsConverter.cpp index f804ed0fe..f36d9d5b8 100644 --- a/CGMES_3.0.0/VsConverter.cpp +++ b/CGMES_3.0.0/VsConverter.cpp @@ -13,49 +13,81 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + VsConverter(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + CGMESProfile::EQ, + CGMESProfile::SSH, + CGMESProfile::SV, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "VsConverter.CapabilityCurve", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "VsConverter.VSCDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "VsConverter.delta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + { "VsConverter.droop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.droopCompensation", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.maxModulationIndex", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + { "VsConverter.pPccControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.qPccControl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.qShare", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetPWMfactor", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetPhasePcc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetPowerFactorPcc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetQpcc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.targetUpcc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SSH, } } }, + { "VsConverter.uv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::SV, } } }, + }; + return ClassAttrDetailsMap; +} + VsConverter::VsConverter() : CapabilityCurve(nullptr), VSCDynamics(nullptr) {} VsConverter::~VsConverter() {} -static const std::list PossibleProfilesForClass = +const std::list& VsConverter::getAttributeNames() const { - CGMESProfile::DY, - CGMESProfile::EQ, - CGMESProfile::SSH, - CGMESProfile::SV, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& VsConverter::getClassNamespaceUrl() const { - { "cim:VsConverter.CapabilityCurve", { CGMESProfile::EQ, } }, - { "cim:VsConverter.VSCDynamics", { CGMESProfile::DY, } }, - { "cim:VsConverter.delta", { CGMESProfile::SV, } }, - { "cim:VsConverter.droop", { CGMESProfile::SSH, } }, - { "cim:VsConverter.droopCompensation", { CGMESProfile::SSH, } }, - { "cim:VsConverter.maxModulationIndex", { CGMESProfile::EQ, } }, - { "cim:VsConverter.pPccControl", { CGMESProfile::SSH, } }, - { "cim:VsConverter.qPccControl", { CGMESProfile::SSH, } }, - { "cim:VsConverter.qShare", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetPWMfactor", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetPhasePcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetPowerFactorPcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetQpcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.targetUpcc", { CGMESProfile::SSH, } }, - { "cim:VsConverter.uv", { CGMESProfile::SV, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -VsConverter::getPossibleProfilesForClass() const +const std::string& VsConverter::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -VsConverter::getPossibleProfilesForAttributes() const +const std::list& VsConverter::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = ACDCConverter::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& VsConverter::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& VsConverter::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& VsConverter::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_VsCapabilityCurve_VsConverterDCSides(BaseClass*, BaseClass*); @@ -492,59 +524,65 @@ const char* VsConverter::debugString() const void VsConverter::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:VsConverter", &VsConverter_factory); + factory_map.emplace("VsConverter", &VsConverter_factory); } void VsConverter::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsConverter.delta", &assign_VsConverter_delta); - assign_map.emplace("cim:VsConverter.droop", &assign_VsConverter_droop); - assign_map.emplace("cim:VsConverter.droopCompensation", &assign_VsConverter_droopCompensation); - assign_map.emplace("cim:VsConverter.maxModulationIndex", &assign_VsConverter_maxModulationIndex); - assign_map.emplace("cim:VsConverter.pPccControl", &assign_VsConverter_pPccControl); - assign_map.emplace("cim:VsConverter.qPccControl", &assign_VsConverter_qPccControl); - assign_map.emplace("cim:VsConverter.qShare", &assign_VsConverter_qShare); - assign_map.emplace("cim:VsConverter.targetPWMfactor", &assign_VsConverter_targetPWMfactor); - assign_map.emplace("cim:VsConverter.targetPhasePcc", &assign_VsConverter_targetPhasePcc); - assign_map.emplace("cim:VsConverter.targetPowerFactorPcc", &assign_VsConverter_targetPowerFactorPcc); - assign_map.emplace("cim:VsConverter.targetQpcc", &assign_VsConverter_targetQpcc); - assign_map.emplace("cim:VsConverter.targetUpcc", &assign_VsConverter_targetUpcc); - assign_map.emplace("cim:VsConverter.uv", &assign_VsConverter_uv); + assign_map.emplace("VsConverter.delta", &assign_VsConverter_delta); + assign_map.emplace("VsConverter.droop", &assign_VsConverter_droop); + assign_map.emplace("VsConverter.droopCompensation", &assign_VsConverter_droopCompensation); + assign_map.emplace("VsConverter.maxModulationIndex", &assign_VsConverter_maxModulationIndex); + assign_map.emplace("VsConverter.pPccControl", &assign_VsConverter_pPccControl); + assign_map.emplace("VsConverter.qPccControl", &assign_VsConverter_qPccControl); + assign_map.emplace("VsConverter.qShare", &assign_VsConverter_qShare); + assign_map.emplace("VsConverter.targetPWMfactor", &assign_VsConverter_targetPWMfactor); + assign_map.emplace("VsConverter.targetPhasePcc", &assign_VsConverter_targetPhasePcc); + assign_map.emplace("VsConverter.targetPowerFactorPcc", &assign_VsConverter_targetPowerFactorPcc); + assign_map.emplace("VsConverter.targetQpcc", &assign_VsConverter_targetQpcc); + assign_map.emplace("VsConverter.targetUpcc", &assign_VsConverter_targetUpcc); + assign_map.emplace("VsConverter.uv", &assign_VsConverter_uv); } void VsConverter::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:VsConverter.CapabilityCurve", &assign_VsConverter_CapabilityCurve); - assign_map.emplace("cim:VsConverter.VSCDynamics", &assign_VsConverter_VSCDynamics); + assign_map.emplace("VsConverter.CapabilityCurve", &assign_VsConverter_CapabilityCurve); + assign_map.emplace("VsConverter.VSCDynamics", &assign_VsConverter_VSCDynamics); } void VsConverter::addPrimitiveGetFnsToMap(std::map& get_map) const { ACDCConverter::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.delta", &get_VsConverter_delta); - get_map.emplace("cim:VsConverter.droop", &get_VsConverter_droop); - get_map.emplace("cim:VsConverter.droopCompensation", &get_VsConverter_droopCompensation); - get_map.emplace("cim:VsConverter.maxModulationIndex", &get_VsConverter_maxModulationIndex); - get_map.emplace("cim:VsConverter.qShare", &get_VsConverter_qShare); - get_map.emplace("cim:VsConverter.targetPWMfactor", &get_VsConverter_targetPWMfactor); - get_map.emplace("cim:VsConverter.targetPhasePcc", &get_VsConverter_targetPhasePcc); - get_map.emplace("cim:VsConverter.targetPowerFactorPcc", &get_VsConverter_targetPowerFactorPcc); - get_map.emplace("cim:VsConverter.targetQpcc", &get_VsConverter_targetQpcc); - get_map.emplace("cim:VsConverter.targetUpcc", &get_VsConverter_targetUpcc); - get_map.emplace("cim:VsConverter.uv", &get_VsConverter_uv); + get_map.emplace("VsConverter.delta", &get_VsConverter_delta); + get_map.emplace("VsConverter.droop", &get_VsConverter_droop); + get_map.emplace("VsConverter.droopCompensation", &get_VsConverter_droopCompensation); + get_map.emplace("VsConverter.maxModulationIndex", &get_VsConverter_maxModulationIndex); + get_map.emplace("VsConverter.qShare", &get_VsConverter_qShare); + get_map.emplace("VsConverter.targetPWMfactor", &get_VsConverter_targetPWMfactor); + get_map.emplace("VsConverter.targetPhasePcc", &get_VsConverter_targetPhasePcc); + get_map.emplace("VsConverter.targetPowerFactorPcc", &get_VsConverter_targetPowerFactorPcc); + get_map.emplace("VsConverter.targetQpcc", &get_VsConverter_targetQpcc); + get_map.emplace("VsConverter.targetUpcc", &get_VsConverter_targetUpcc); + get_map.emplace("VsConverter.uv", &get_VsConverter_uv); } void VsConverter::addClassGetFnsToMap(std::map& get_map) const { ACDCConverter::addClassGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.CapabilityCurve", &get_VsConverter_CapabilityCurve); + get_map.emplace("VsConverter.CapabilityCurve", &get_VsConverter_CapabilityCurve); } void VsConverter::addEnumGetFnsToMap(std::map& get_map) const { ACDCConverter::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:VsConverter.pPccControl", &get_VsConverter_pPccControl); - get_map.emplace("cim:VsConverter.qPccControl", &get_VsConverter_qPccControl); + get_map.emplace("VsConverter.pPccControl", &get_VsConverter_pPccControl); + get_map.emplace("VsConverter.qPccControl", &get_VsConverter_qPccControl); +} + +bool VsConverter::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "VsConverter" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner VsConverter::declare() @@ -552,6 +590,14 @@ const BaseClassDefiner VsConverter::declare() return BaseClassDefiner(VsConverter::addConstructToMap, VsConverter::addPrimitiveAssignFnsToMap, VsConverter::addClassAssignFnsToMap, VsConverter::debugName); } +std::map VsConverter::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = ACDCConverter::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* VsConverter_factory() diff --git a/CGMES_3.0.0/VsConverter.hpp b/CGMES_3.0.0/VsConverter.hpp index 870938fc0..8e70c7e42 100644 --- a/CGMES_3.0.0/VsConverter.hpp +++ b/CGMES_3.0.0/VsConverter.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "ACDCConverter.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Float.hpp" #include "PU.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* VsConverter_factory(); diff --git a/CGMES_3.0.0/WaveTrap.cpp b/CGMES_3.0.0/WaveTrap.cpp index 8e7d85423..4cec2288f 100644 --- a/CGMES_3.0.0/WaveTrap.cpp +++ b/CGMES_3.0.0/WaveTrap.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WaveTrap(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + WaveTrap::WaveTrap() {} WaveTrap::~WaveTrap() {} -static const std::list PossibleProfilesForClass = +const std::list& WaveTrap::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WaveTrap::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WaveTrap::getPossibleProfilesForClass() const +const std::string& WaveTrap::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WaveTrap::getPossibleProfilesForAttributes() const +const std::list& WaveTrap::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = AuxiliaryEquipment::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WaveTrap::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WaveTrap::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WaveTrap::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char WaveTrap::debugName[] = "WaveTrap"; @@ -46,7 +78,7 @@ const char* WaveTrap::debugString() const void WaveTrap::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WaveTrap", &WaveTrap_factory); + factory_map.emplace("WaveTrap", &WaveTrap_factory); } void WaveTrap::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void WaveTrap::addEnumGetFnsToMap(std::map& get_map) AuxiliaryEquipment::addEnumGetFnsToMap(get_map); } +bool WaveTrap::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WaveTrap" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WaveTrap::declare() { return BaseClassDefiner(WaveTrap::addConstructToMap, WaveTrap::addPrimitiveAssignFnsToMap, WaveTrap::addClassAssignFnsToMap, WaveTrap::debugName); } +std::map WaveTrap::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = AuxiliaryEquipment::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WaveTrap_factory() diff --git a/CGMES_3.0.0/WaveTrap.hpp b/CGMES_3.0.0/WaveTrap.hpp index 80ce0a065..46177d4c1 100644 --- a/CGMES_3.0.0/WaveTrap.hpp +++ b/CGMES_3.0.0/WaveTrap.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "AuxiliaryEquipment.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WaveTrap_factory(); diff --git a/CGMES_3.0.0/WindAeroConstIEC.cpp b/CGMES_3.0.0/WindAeroConstIEC.cpp index a0c75d9ea..f5ac23a18 100644 --- a/CGMES_3.0.0/WindAeroConstIEC.cpp +++ b/CGMES_3.0.0/WindAeroConstIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroConstIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroConstIEC.WindGenTurbineType1aIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroConstIEC::WindAeroConstIEC() : WindGenTurbineType1aIEC(nullptr) {} WindAeroConstIEC::~WindAeroConstIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroConstIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroConstIEC::getClassNamespaceUrl() const { - { "cim:WindAeroConstIEC.WindGenTurbineType1aIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindAeroConstIEC::getPossibleProfilesForClass() const +const std::string& WindAeroConstIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroConstIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroConstIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroConstIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroConstIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroConstIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenTurbineType1aIEC_WindAeroConstIEC(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* WindAeroConstIEC::debugString() const void WindAeroConstIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroConstIEC", &WindAeroConstIEC_factory); + factory_map.emplace("WindAeroConstIEC", &WindAeroConstIEC_factory); } void WindAeroConstIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void WindAeroConstIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroConstIEC.WindGenTurbineType1aIEC", &assign_WindAeroConstIEC_WindGenTurbineType1aIEC); + assign_map.emplace("WindAeroConstIEC.WindGenTurbineType1aIEC", &assign_WindAeroConstIEC_WindGenTurbineType1aIEC); } void WindAeroConstIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void WindAeroConstIEC::addEnumGetFnsToMap(std::map& g IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroConstIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroConstIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroConstIEC::declare() { return BaseClassDefiner(WindAeroConstIEC::addConstructToMap, WindAeroConstIEC::addPrimitiveAssignFnsToMap, WindAeroConstIEC::addClassAssignFnsToMap, WindAeroConstIEC::debugName); } +std::map WindAeroConstIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroConstIEC_factory() diff --git a/CGMES_3.0.0/WindAeroConstIEC.hpp b/CGMES_3.0.0/WindAeroConstIEC.hpp index 116ed897c..c595d89fc 100644 --- a/CGMES_3.0.0/WindAeroConstIEC.hpp +++ b/CGMES_3.0.0/WindAeroConstIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroConstIEC_factory(); diff --git a/CGMES_3.0.0/WindAeroOneDimIEC.cpp b/CGMES_3.0.0/WindAeroOneDimIEC.cpp index 3680cad3b..f4fe05277 100644 --- a/CGMES_3.0.0/WindAeroOneDimIEC.cpp +++ b/CGMES_3.0.0/WindAeroOneDimIEC.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroOneDimIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroOneDimIEC.WindTurbineType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroOneDimIEC.ka", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroOneDimIEC.thetaomega", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroOneDimIEC::WindAeroOneDimIEC() : WindTurbineType3IEC(nullptr) {} WindAeroOneDimIEC::~WindAeroOneDimIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroOneDimIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroOneDimIEC::getClassNamespaceUrl() const { - { "cim:WindAeroOneDimIEC.WindTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindAeroOneDimIEC.ka", { CGMESProfile::DY, } }, - { "cim:WindAeroOneDimIEC.thetaomega", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindAeroOneDimIEC::getPossibleProfilesForClass() const +const std::string& WindAeroOneDimIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroOneDimIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroOneDimIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroOneDimIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroOneDimIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroOneDimIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3IEC_WindAeroOneDimIEC(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* WindAeroOneDimIEC::debugString() const void WindAeroOneDimIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroOneDimIEC", &WindAeroOneDimIEC_factory); + factory_map.emplace("WindAeroOneDimIEC", &WindAeroOneDimIEC_factory); } void WindAeroOneDimIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroOneDimIEC.ka", &assign_WindAeroOneDimIEC_ka); - assign_map.emplace("cim:WindAeroOneDimIEC.thetaomega", &assign_WindAeroOneDimIEC_thetaomega); + assign_map.emplace("WindAeroOneDimIEC.ka", &assign_WindAeroOneDimIEC_ka); + assign_map.emplace("WindAeroOneDimIEC.thetaomega", &assign_WindAeroOneDimIEC_thetaomega); } void WindAeroOneDimIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroOneDimIEC.WindTurbineType3IEC", &assign_WindAeroOneDimIEC_WindTurbineType3IEC); + assign_map.emplace("WindAeroOneDimIEC.WindTurbineType3IEC", &assign_WindAeroOneDimIEC_WindTurbineType3IEC); } void WindAeroOneDimIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindAeroOneDimIEC.ka", &get_WindAeroOneDimIEC_ka); - get_map.emplace("cim:WindAeroOneDimIEC.thetaomega", &get_WindAeroOneDimIEC_thetaomega); + get_map.emplace("WindAeroOneDimIEC.ka", &get_WindAeroOneDimIEC_ka); + get_map.emplace("WindAeroOneDimIEC.thetaomega", &get_WindAeroOneDimIEC_thetaomega); } void WindAeroOneDimIEC::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void WindAeroOneDimIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroOneDimIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroOneDimIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroOneDimIEC::declare() { return BaseClassDefiner(WindAeroOneDimIEC::addConstructToMap, WindAeroOneDimIEC::addPrimitiveAssignFnsToMap, WindAeroOneDimIEC::addClassAssignFnsToMap, WindAeroOneDimIEC::debugName); } +std::map WindAeroOneDimIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroOneDimIEC_factory() diff --git a/CGMES_3.0.0/WindAeroOneDimIEC.hpp b/CGMES_3.0.0/WindAeroOneDimIEC.hpp index 6fe2c6b33..ec167f715 100644 --- a/CGMES_3.0.0/WindAeroOneDimIEC.hpp +++ b/CGMES_3.0.0/WindAeroOneDimIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Float.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroOneDimIEC_factory(); diff --git a/CGMES_3.0.0/WindAeroTwoDimIEC.cpp b/CGMES_3.0.0/WindAeroTwoDimIEC.cpp index 1a5a6e6f5..ae8f74634 100644 --- a/CGMES_3.0.0/WindAeroTwoDimIEC.cpp +++ b/CGMES_3.0.0/WindAeroTwoDimIEC.cpp @@ -12,39 +12,71 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindAeroTwoDimIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindAeroTwoDimIEC.WindTurbineType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroTwoDimIEC.dpomega", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroTwoDimIEC.dptheta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroTwoDimIEC.dpv1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroTwoDimIEC.omegazero", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroTwoDimIEC.pavail", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroTwoDimIEC.thetav2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindAeroTwoDimIEC.thetazero", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindAeroTwoDimIEC::WindAeroTwoDimIEC() : WindTurbineType3IEC(nullptr) {} WindAeroTwoDimIEC::~WindAeroTwoDimIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindAeroTwoDimIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindAeroTwoDimIEC::getClassNamespaceUrl() const { - { "cim:WindAeroTwoDimIEC.WindTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindAeroTwoDimIEC.dpomega", { CGMESProfile::DY, } }, - { "cim:WindAeroTwoDimIEC.dptheta", { CGMESProfile::DY, } }, - { "cim:WindAeroTwoDimIEC.dpv1", { CGMESProfile::DY, } }, - { "cim:WindAeroTwoDimIEC.omegazero", { CGMESProfile::DY, } }, - { "cim:WindAeroTwoDimIEC.pavail", { CGMESProfile::DY, } }, - { "cim:WindAeroTwoDimIEC.thetav2", { CGMESProfile::DY, } }, - { "cim:WindAeroTwoDimIEC.thetazero", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindAeroTwoDimIEC::getPossibleProfilesForClass() const +const std::string& WindAeroTwoDimIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindAeroTwoDimIEC::getPossibleProfilesForAttributes() const +const std::list& WindAeroTwoDimIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindAeroTwoDimIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindAeroTwoDimIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindAeroTwoDimIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3IEC_WindAeroTwoDimIEC(BaseClass*, BaseClass*); @@ -276,35 +308,35 @@ const char* WindAeroTwoDimIEC::debugString() const void WindAeroTwoDimIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindAeroTwoDimIEC", &WindAeroTwoDimIEC_factory); + factory_map.emplace("WindAeroTwoDimIEC", &WindAeroTwoDimIEC_factory); } void WindAeroTwoDimIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroTwoDimIEC.dpomega", &assign_WindAeroTwoDimIEC_dpomega); - assign_map.emplace("cim:WindAeroTwoDimIEC.dptheta", &assign_WindAeroTwoDimIEC_dptheta); - assign_map.emplace("cim:WindAeroTwoDimIEC.dpv1", &assign_WindAeroTwoDimIEC_dpv1); - assign_map.emplace("cim:WindAeroTwoDimIEC.omegazero", &assign_WindAeroTwoDimIEC_omegazero); - assign_map.emplace("cim:WindAeroTwoDimIEC.pavail", &assign_WindAeroTwoDimIEC_pavail); - assign_map.emplace("cim:WindAeroTwoDimIEC.thetav2", &assign_WindAeroTwoDimIEC_thetav2); - assign_map.emplace("cim:WindAeroTwoDimIEC.thetazero", &assign_WindAeroTwoDimIEC_thetazero); + assign_map.emplace("WindAeroTwoDimIEC.dpomega", &assign_WindAeroTwoDimIEC_dpomega); + assign_map.emplace("WindAeroTwoDimIEC.dptheta", &assign_WindAeroTwoDimIEC_dptheta); + assign_map.emplace("WindAeroTwoDimIEC.dpv1", &assign_WindAeroTwoDimIEC_dpv1); + assign_map.emplace("WindAeroTwoDimIEC.omegazero", &assign_WindAeroTwoDimIEC_omegazero); + assign_map.emplace("WindAeroTwoDimIEC.pavail", &assign_WindAeroTwoDimIEC_pavail); + assign_map.emplace("WindAeroTwoDimIEC.thetav2", &assign_WindAeroTwoDimIEC_thetav2); + assign_map.emplace("WindAeroTwoDimIEC.thetazero", &assign_WindAeroTwoDimIEC_thetazero); } void WindAeroTwoDimIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindAeroTwoDimIEC.WindTurbineType3IEC", &assign_WindAeroTwoDimIEC_WindTurbineType3IEC); + assign_map.emplace("WindAeroTwoDimIEC.WindTurbineType3IEC", &assign_WindAeroTwoDimIEC_WindTurbineType3IEC); } void WindAeroTwoDimIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindAeroTwoDimIEC.dpomega", &get_WindAeroTwoDimIEC_dpomega); - get_map.emplace("cim:WindAeroTwoDimIEC.dptheta", &get_WindAeroTwoDimIEC_dptheta); - get_map.emplace("cim:WindAeroTwoDimIEC.dpv1", &get_WindAeroTwoDimIEC_dpv1); - get_map.emplace("cim:WindAeroTwoDimIEC.omegazero", &get_WindAeroTwoDimIEC_omegazero); - get_map.emplace("cim:WindAeroTwoDimIEC.pavail", &get_WindAeroTwoDimIEC_pavail); - get_map.emplace("cim:WindAeroTwoDimIEC.thetav2", &get_WindAeroTwoDimIEC_thetav2); - get_map.emplace("cim:WindAeroTwoDimIEC.thetazero", &get_WindAeroTwoDimIEC_thetazero); + get_map.emplace("WindAeroTwoDimIEC.dpomega", &get_WindAeroTwoDimIEC_dpomega); + get_map.emplace("WindAeroTwoDimIEC.dptheta", &get_WindAeroTwoDimIEC_dptheta); + get_map.emplace("WindAeroTwoDimIEC.dpv1", &get_WindAeroTwoDimIEC_dpv1); + get_map.emplace("WindAeroTwoDimIEC.omegazero", &get_WindAeroTwoDimIEC_omegazero); + get_map.emplace("WindAeroTwoDimIEC.pavail", &get_WindAeroTwoDimIEC_pavail); + get_map.emplace("WindAeroTwoDimIEC.thetav2", &get_WindAeroTwoDimIEC_thetav2); + get_map.emplace("WindAeroTwoDimIEC.thetazero", &get_WindAeroTwoDimIEC_thetazero); } void WindAeroTwoDimIEC::addClassGetFnsToMap(std::map& get_map) const @@ -317,11 +349,25 @@ void WindAeroTwoDimIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindAeroTwoDimIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindAeroTwoDimIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindAeroTwoDimIEC::declare() { return BaseClassDefiner(WindAeroTwoDimIEC::addConstructToMap, WindAeroTwoDimIEC::addPrimitiveAssignFnsToMap, WindAeroTwoDimIEC::addClassAssignFnsToMap, WindAeroTwoDimIEC::debugName); } +std::map WindAeroTwoDimIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindAeroTwoDimIEC_factory() diff --git a/CGMES_3.0.0/WindAeroTwoDimIEC.hpp b/CGMES_3.0.0/WindAeroTwoDimIEC.hpp index b23ed12d9..1770cd94d 100644 --- a/CGMES_3.0.0/WindAeroTwoDimIEC.hpp +++ b/CGMES_3.0.0/WindAeroTwoDimIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "PU.hpp" @@ -54,8 +55,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -63,7 +71,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindAeroTwoDimIEC_factory(); diff --git a/CGMES_3.0.0/WindContCurrLimIEC.cpp b/CGMES_3.0.0/WindContCurrLimIEC.cpp index 87aaa938b..03428a6fd 100644 --- a/CGMES_3.0.0/WindContCurrLimIEC.cpp +++ b/CGMES_3.0.0/WindContCurrLimIEC.cpp @@ -13,40 +13,72 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContCurrLimIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContCurrLimIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.imax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.imaxdip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.kpqu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.mdfslim", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.mqpri", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.tufiltcl", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContCurrLimIEC.upqumax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContCurrLimIEC::WindContCurrLimIEC() : WindTurbineType3or4IEC(nullptr) {} WindContCurrLimIEC::~WindContCurrLimIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContCurrLimIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContCurrLimIEC::getClassNamespaceUrl() const { - { "cim:WindContCurrLimIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.imax", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.imaxdip", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.kpqu", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.mdfslim", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.mqpri", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.tufiltcl", { CGMESProfile::DY, } }, - { "cim:WindContCurrLimIEC.upqumax", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContCurrLimIEC::getPossibleProfilesForClass() const +const std::string& WindContCurrLimIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContCurrLimIEC::getPossibleProfilesForAttributes() const +const std::list& WindContCurrLimIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContCurrLimIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContCurrLimIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContCurrLimIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContCurrLimIEC(BaseClass*, BaseClass*); @@ -296,36 +328,36 @@ const char* WindContCurrLimIEC::debugString() const void WindContCurrLimIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContCurrLimIEC", &WindContCurrLimIEC_factory); + factory_map.emplace("WindContCurrLimIEC", &WindContCurrLimIEC_factory); } void WindContCurrLimIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContCurrLimIEC.imax", &assign_WindContCurrLimIEC_imax); - assign_map.emplace("cim:WindContCurrLimIEC.imaxdip", &assign_WindContCurrLimIEC_imaxdip); - assign_map.emplace("cim:WindContCurrLimIEC.kpqu", &assign_WindContCurrLimIEC_kpqu); - assign_map.emplace("cim:WindContCurrLimIEC.mdfslim", &assign_WindContCurrLimIEC_mdfslim); - assign_map.emplace("cim:WindContCurrLimIEC.mqpri", &assign_WindContCurrLimIEC_mqpri); - assign_map.emplace("cim:WindContCurrLimIEC.tufiltcl", &assign_WindContCurrLimIEC_tufiltcl); - assign_map.emplace("cim:WindContCurrLimIEC.upqumax", &assign_WindContCurrLimIEC_upqumax); + assign_map.emplace("WindContCurrLimIEC.imax", &assign_WindContCurrLimIEC_imax); + assign_map.emplace("WindContCurrLimIEC.imaxdip", &assign_WindContCurrLimIEC_imaxdip); + assign_map.emplace("WindContCurrLimIEC.kpqu", &assign_WindContCurrLimIEC_kpqu); + assign_map.emplace("WindContCurrLimIEC.mdfslim", &assign_WindContCurrLimIEC_mdfslim); + assign_map.emplace("WindContCurrLimIEC.mqpri", &assign_WindContCurrLimIEC_mqpri); + assign_map.emplace("WindContCurrLimIEC.tufiltcl", &assign_WindContCurrLimIEC_tufiltcl); + assign_map.emplace("WindContCurrLimIEC.upqumax", &assign_WindContCurrLimIEC_upqumax); } void WindContCurrLimIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContCurrLimIEC.WindDynamicsLookupTable", &assign_WindContCurrLimIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContCurrLimIEC.WindTurbineType3or4IEC", &assign_WindContCurrLimIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContCurrLimIEC.WindDynamicsLookupTable", &assign_WindContCurrLimIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContCurrLimIEC.WindTurbineType3or4IEC", &assign_WindContCurrLimIEC_WindTurbineType3or4IEC); } void WindContCurrLimIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContCurrLimIEC.imax", &get_WindContCurrLimIEC_imax); - get_map.emplace("cim:WindContCurrLimIEC.imaxdip", &get_WindContCurrLimIEC_imaxdip); - get_map.emplace("cim:WindContCurrLimIEC.kpqu", &get_WindContCurrLimIEC_kpqu); - get_map.emplace("cim:WindContCurrLimIEC.mdfslim", &get_WindContCurrLimIEC_mdfslim); - get_map.emplace("cim:WindContCurrLimIEC.mqpri", &get_WindContCurrLimIEC_mqpri); - get_map.emplace("cim:WindContCurrLimIEC.tufiltcl", &get_WindContCurrLimIEC_tufiltcl); - get_map.emplace("cim:WindContCurrLimIEC.upqumax", &get_WindContCurrLimIEC_upqumax); + get_map.emplace("WindContCurrLimIEC.imax", &get_WindContCurrLimIEC_imax); + get_map.emplace("WindContCurrLimIEC.imaxdip", &get_WindContCurrLimIEC_imaxdip); + get_map.emplace("WindContCurrLimIEC.kpqu", &get_WindContCurrLimIEC_kpqu); + get_map.emplace("WindContCurrLimIEC.mdfslim", &get_WindContCurrLimIEC_mdfslim); + get_map.emplace("WindContCurrLimIEC.mqpri", &get_WindContCurrLimIEC_mqpri); + get_map.emplace("WindContCurrLimIEC.tufiltcl", &get_WindContCurrLimIEC_tufiltcl); + get_map.emplace("WindContCurrLimIEC.upqumax", &get_WindContCurrLimIEC_upqumax); } void WindContCurrLimIEC::addClassGetFnsToMap(std::map& get_map) const @@ -338,11 +370,25 @@ void WindContCurrLimIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContCurrLimIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContCurrLimIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContCurrLimIEC::declare() { return BaseClassDefiner(WindContCurrLimIEC::addConstructToMap, WindContCurrLimIEC::addPrimitiveAssignFnsToMap, WindContCurrLimIEC::addClassAssignFnsToMap, WindContCurrLimIEC::debugName); } +std::map WindContCurrLimIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContCurrLimIEC_factory() diff --git a/CGMES_3.0.0/WindContCurrLimIEC.hpp b/CGMES_3.0.0/WindContCurrLimIEC.hpp index 7bb178368..5899e8f95 100644 --- a/CGMES_3.0.0/WindContCurrLimIEC.hpp +++ b/CGMES_3.0.0/WindContCurrLimIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -59,8 +60,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -68,7 +76,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContCurrLimIEC_factory(); diff --git a/CGMES_3.0.0/WindContPType3IEC.cpp b/CGMES_3.0.0/WindContPType3IEC.cpp index 204a66b37..3e5d6497a 100644 --- a/CGMES_3.0.0/WindContPType3IEC.cpp +++ b/CGMES_3.0.0/WindContPType3IEC.cpp @@ -13,56 +13,88 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType3IEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType3IEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.WindTurbineType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dpmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dprefmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dprefmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dthetamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.dthetamaxuvrt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kdtd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.kpp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.mpuvrt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.omegadtd", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.omegaoffset", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.pdtdmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tdvs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.thetaemin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.thetauscale", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tomegafiltp3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tomegaref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tpfiltp3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tpord", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.tufiltp3", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.udvs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.updip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType3IEC.zeta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType3IEC::WindContPType3IEC() : WindTurbineType3IEC(nullptr) {} WindContPType3IEC::~WindContPType3IEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindContPType3IEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.WindTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dprefmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dprefmin", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dthetamax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.dthetamaxuvrt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kdtd", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kip", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.kpp", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.mpuvrt", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.omegadtd", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.omegaoffset", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.pdtdmax", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tdvs", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.thetaemin", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.thetauscale", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tomegafiltp3", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tomegaref", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tpfiltp3", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tpord", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.tufiltp3", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.udvs", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.updip", { CGMESProfile::DY, } }, - { "cim:WindContPType3IEC.zeta", { CGMESProfile::DY, } }, -}; - -std::list -WindContPType3IEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindContPType3IEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindContPType3IEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindContPType3IEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindContPType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindContPType3IEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContPType3IEC(BaseClass*, BaseClass*); @@ -776,68 +808,68 @@ const char* WindContPType3IEC::debugString() const void WindContPType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType3IEC", &WindContPType3IEC_factory); + factory_map.emplace("WindContPType3IEC", &WindContPType3IEC_factory); } void WindContPType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType3IEC.dpmax", &assign_WindContPType3IEC_dpmax); - assign_map.emplace("cim:WindContPType3IEC.dprefmax", &assign_WindContPType3IEC_dprefmax); - assign_map.emplace("cim:WindContPType3IEC.dprefmin", &assign_WindContPType3IEC_dprefmin); - assign_map.emplace("cim:WindContPType3IEC.dthetamax", &assign_WindContPType3IEC_dthetamax); - assign_map.emplace("cim:WindContPType3IEC.dthetamaxuvrt", &assign_WindContPType3IEC_dthetamaxuvrt); - assign_map.emplace("cim:WindContPType3IEC.kdtd", &assign_WindContPType3IEC_kdtd); - assign_map.emplace("cim:WindContPType3IEC.kip", &assign_WindContPType3IEC_kip); - assign_map.emplace("cim:WindContPType3IEC.kpp", &assign_WindContPType3IEC_kpp); - assign_map.emplace("cim:WindContPType3IEC.mpuvrt", &assign_WindContPType3IEC_mpuvrt); - assign_map.emplace("cim:WindContPType3IEC.omegadtd", &assign_WindContPType3IEC_omegadtd); - assign_map.emplace("cim:WindContPType3IEC.omegaoffset", &assign_WindContPType3IEC_omegaoffset); - assign_map.emplace("cim:WindContPType3IEC.pdtdmax", &assign_WindContPType3IEC_pdtdmax); - assign_map.emplace("cim:WindContPType3IEC.tdvs", &assign_WindContPType3IEC_tdvs); - assign_map.emplace("cim:WindContPType3IEC.thetaemin", &assign_WindContPType3IEC_thetaemin); - assign_map.emplace("cim:WindContPType3IEC.thetauscale", &assign_WindContPType3IEC_thetauscale); - assign_map.emplace("cim:WindContPType3IEC.tomegafiltp3", &assign_WindContPType3IEC_tomegafiltp3); - assign_map.emplace("cim:WindContPType3IEC.tomegaref", &assign_WindContPType3IEC_tomegaref); - assign_map.emplace("cim:WindContPType3IEC.tpfiltp3", &assign_WindContPType3IEC_tpfiltp3); - assign_map.emplace("cim:WindContPType3IEC.tpord", &assign_WindContPType3IEC_tpord); - assign_map.emplace("cim:WindContPType3IEC.tufiltp3", &assign_WindContPType3IEC_tufiltp3); - assign_map.emplace("cim:WindContPType3IEC.udvs", &assign_WindContPType3IEC_udvs); - assign_map.emplace("cim:WindContPType3IEC.updip", &assign_WindContPType3IEC_updip); - assign_map.emplace("cim:WindContPType3IEC.zeta", &assign_WindContPType3IEC_zeta); + assign_map.emplace("WindContPType3IEC.dpmax", &assign_WindContPType3IEC_dpmax); + assign_map.emplace("WindContPType3IEC.dprefmax", &assign_WindContPType3IEC_dprefmax); + assign_map.emplace("WindContPType3IEC.dprefmin", &assign_WindContPType3IEC_dprefmin); + assign_map.emplace("WindContPType3IEC.dthetamax", &assign_WindContPType3IEC_dthetamax); + assign_map.emplace("WindContPType3IEC.dthetamaxuvrt", &assign_WindContPType3IEC_dthetamaxuvrt); + assign_map.emplace("WindContPType3IEC.kdtd", &assign_WindContPType3IEC_kdtd); + assign_map.emplace("WindContPType3IEC.kip", &assign_WindContPType3IEC_kip); + assign_map.emplace("WindContPType3IEC.kpp", &assign_WindContPType3IEC_kpp); + assign_map.emplace("WindContPType3IEC.mpuvrt", &assign_WindContPType3IEC_mpuvrt); + assign_map.emplace("WindContPType3IEC.omegadtd", &assign_WindContPType3IEC_omegadtd); + assign_map.emplace("WindContPType3IEC.omegaoffset", &assign_WindContPType3IEC_omegaoffset); + assign_map.emplace("WindContPType3IEC.pdtdmax", &assign_WindContPType3IEC_pdtdmax); + assign_map.emplace("WindContPType3IEC.tdvs", &assign_WindContPType3IEC_tdvs); + assign_map.emplace("WindContPType3IEC.thetaemin", &assign_WindContPType3IEC_thetaemin); + assign_map.emplace("WindContPType3IEC.thetauscale", &assign_WindContPType3IEC_thetauscale); + assign_map.emplace("WindContPType3IEC.tomegafiltp3", &assign_WindContPType3IEC_tomegafiltp3); + assign_map.emplace("WindContPType3IEC.tomegaref", &assign_WindContPType3IEC_tomegaref); + assign_map.emplace("WindContPType3IEC.tpfiltp3", &assign_WindContPType3IEC_tpfiltp3); + assign_map.emplace("WindContPType3IEC.tpord", &assign_WindContPType3IEC_tpord); + assign_map.emplace("WindContPType3IEC.tufiltp3", &assign_WindContPType3IEC_tufiltp3); + assign_map.emplace("WindContPType3IEC.udvs", &assign_WindContPType3IEC_udvs); + assign_map.emplace("WindContPType3IEC.updip", &assign_WindContPType3IEC_updip); + assign_map.emplace("WindContPType3IEC.zeta", &assign_WindContPType3IEC_zeta); } void WindContPType3IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType3IEC.WindDynamicsLookupTable", &assign_WindContPType3IEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContPType3IEC.WindTurbineType3IEC", &assign_WindContPType3IEC_WindTurbineType3IEC); + assign_map.emplace("WindContPType3IEC.WindDynamicsLookupTable", &assign_WindContPType3IEC_WindDynamicsLookupTable); + assign_map.emplace("WindContPType3IEC.WindTurbineType3IEC", &assign_WindContPType3IEC_WindTurbineType3IEC); } void WindContPType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType3IEC.dpmax", &get_WindContPType3IEC_dpmax); - get_map.emplace("cim:WindContPType3IEC.dprefmax", &get_WindContPType3IEC_dprefmax); - get_map.emplace("cim:WindContPType3IEC.dprefmin", &get_WindContPType3IEC_dprefmin); - get_map.emplace("cim:WindContPType3IEC.dthetamax", &get_WindContPType3IEC_dthetamax); - get_map.emplace("cim:WindContPType3IEC.dthetamaxuvrt", &get_WindContPType3IEC_dthetamaxuvrt); - get_map.emplace("cim:WindContPType3IEC.kdtd", &get_WindContPType3IEC_kdtd); - get_map.emplace("cim:WindContPType3IEC.kip", &get_WindContPType3IEC_kip); - get_map.emplace("cim:WindContPType3IEC.kpp", &get_WindContPType3IEC_kpp); - get_map.emplace("cim:WindContPType3IEC.mpuvrt", &get_WindContPType3IEC_mpuvrt); - get_map.emplace("cim:WindContPType3IEC.omegadtd", &get_WindContPType3IEC_omegadtd); - get_map.emplace("cim:WindContPType3IEC.omegaoffset", &get_WindContPType3IEC_omegaoffset); - get_map.emplace("cim:WindContPType3IEC.pdtdmax", &get_WindContPType3IEC_pdtdmax); - get_map.emplace("cim:WindContPType3IEC.tdvs", &get_WindContPType3IEC_tdvs); - get_map.emplace("cim:WindContPType3IEC.thetaemin", &get_WindContPType3IEC_thetaemin); - get_map.emplace("cim:WindContPType3IEC.thetauscale", &get_WindContPType3IEC_thetauscale); - get_map.emplace("cim:WindContPType3IEC.tomegafiltp3", &get_WindContPType3IEC_tomegafiltp3); - get_map.emplace("cim:WindContPType3IEC.tomegaref", &get_WindContPType3IEC_tomegaref); - get_map.emplace("cim:WindContPType3IEC.tpfiltp3", &get_WindContPType3IEC_tpfiltp3); - get_map.emplace("cim:WindContPType3IEC.tpord", &get_WindContPType3IEC_tpord); - get_map.emplace("cim:WindContPType3IEC.tufiltp3", &get_WindContPType3IEC_tufiltp3); - get_map.emplace("cim:WindContPType3IEC.udvs", &get_WindContPType3IEC_udvs); - get_map.emplace("cim:WindContPType3IEC.updip", &get_WindContPType3IEC_updip); - get_map.emplace("cim:WindContPType3IEC.zeta", &get_WindContPType3IEC_zeta); + get_map.emplace("WindContPType3IEC.dpmax", &get_WindContPType3IEC_dpmax); + get_map.emplace("WindContPType3IEC.dprefmax", &get_WindContPType3IEC_dprefmax); + get_map.emplace("WindContPType3IEC.dprefmin", &get_WindContPType3IEC_dprefmin); + get_map.emplace("WindContPType3IEC.dthetamax", &get_WindContPType3IEC_dthetamax); + get_map.emplace("WindContPType3IEC.dthetamaxuvrt", &get_WindContPType3IEC_dthetamaxuvrt); + get_map.emplace("WindContPType3IEC.kdtd", &get_WindContPType3IEC_kdtd); + get_map.emplace("WindContPType3IEC.kip", &get_WindContPType3IEC_kip); + get_map.emplace("WindContPType3IEC.kpp", &get_WindContPType3IEC_kpp); + get_map.emplace("WindContPType3IEC.mpuvrt", &get_WindContPType3IEC_mpuvrt); + get_map.emplace("WindContPType3IEC.omegadtd", &get_WindContPType3IEC_omegadtd); + get_map.emplace("WindContPType3IEC.omegaoffset", &get_WindContPType3IEC_omegaoffset); + get_map.emplace("WindContPType3IEC.pdtdmax", &get_WindContPType3IEC_pdtdmax); + get_map.emplace("WindContPType3IEC.tdvs", &get_WindContPType3IEC_tdvs); + get_map.emplace("WindContPType3IEC.thetaemin", &get_WindContPType3IEC_thetaemin); + get_map.emplace("WindContPType3IEC.thetauscale", &get_WindContPType3IEC_thetauscale); + get_map.emplace("WindContPType3IEC.tomegafiltp3", &get_WindContPType3IEC_tomegafiltp3); + get_map.emplace("WindContPType3IEC.tomegaref", &get_WindContPType3IEC_tomegaref); + get_map.emplace("WindContPType3IEC.tpfiltp3", &get_WindContPType3IEC_tpfiltp3); + get_map.emplace("WindContPType3IEC.tpord", &get_WindContPType3IEC_tpord); + get_map.emplace("WindContPType3IEC.tufiltp3", &get_WindContPType3IEC_tufiltp3); + get_map.emplace("WindContPType3IEC.udvs", &get_WindContPType3IEC_udvs); + get_map.emplace("WindContPType3IEC.updip", &get_WindContPType3IEC_updip); + get_map.emplace("WindContPType3IEC.zeta", &get_WindContPType3IEC_zeta); } void WindContPType3IEC::addClassGetFnsToMap(std::map& get_map) const @@ -850,11 +882,25 @@ void WindContPType3IEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType3IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType3IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType3IEC::declare() { return BaseClassDefiner(WindContPType3IEC::addConstructToMap, WindContPType3IEC::addPrimitiveAssignFnsToMap, WindContPType3IEC::addClassAssignFnsToMap, WindContPType3IEC::debugName); } +std::map WindContPType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType3IEC_factory() diff --git a/CGMES_3.0.0/WindContPType3IEC.hpp b/CGMES_3.0.0/WindContPType3IEC.hpp index 5c07c0bb7..ef4eed605 100644 --- a/CGMES_3.0.0/WindContPType3IEC.hpp +++ b/CGMES_3.0.0/WindContPType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Float.hpp" #include "PU.hpp" @@ -108,8 +109,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -117,7 +125,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType3IEC_factory(); diff --git a/CGMES_3.0.0/WindContPType4aIEC.cpp b/CGMES_3.0.0/WindContPType4aIEC.cpp index 217091a62..77099cc8d 100644 --- a/CGMES_3.0.0/WindContPType4aIEC.cpp +++ b/CGMES_3.0.0/WindContPType4aIEC.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType4aIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType4aIEC.WindTurbineType4aIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.dpmaxp4a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.tpordp4a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType4aIEC.tufiltp4a", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType4aIEC::WindContPType4aIEC() : WindTurbineType4aIEC(nullptr) {} WindContPType4aIEC::~WindContPType4aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPType4aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPType4aIEC::getClassNamespaceUrl() const { - { "cim:WindContPType4aIEC.WindTurbineType4aIEC", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.dpmaxp4a", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.tpordp4a", { CGMESProfile::DY, } }, - { "cim:WindContPType4aIEC.tufiltp4a", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPType4aIEC::getPossibleProfilesForClass() const +const std::string& WindContPType4aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPType4aIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPType4aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType4aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType4aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType4aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4aIEC_WindContPType4aIEC(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* WindContPType4aIEC::debugString() const void WindContPType4aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType4aIEC", &WindContPType4aIEC_factory); + factory_map.emplace("WindContPType4aIEC", &WindContPType4aIEC_factory); } void WindContPType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4aIEC.dpmaxp4a", &assign_WindContPType4aIEC_dpmaxp4a); - assign_map.emplace("cim:WindContPType4aIEC.tpordp4a", &assign_WindContPType4aIEC_tpordp4a); - assign_map.emplace("cim:WindContPType4aIEC.tufiltp4a", &assign_WindContPType4aIEC_tufiltp4a); + assign_map.emplace("WindContPType4aIEC.dpmaxp4a", &assign_WindContPType4aIEC_dpmaxp4a); + assign_map.emplace("WindContPType4aIEC.tpordp4a", &assign_WindContPType4aIEC_tpordp4a); + assign_map.emplace("WindContPType4aIEC.tufiltp4a", &assign_WindContPType4aIEC_tufiltp4a); } void WindContPType4aIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4aIEC.WindTurbineType4aIEC", &assign_WindContPType4aIEC_WindTurbineType4aIEC); + assign_map.emplace("WindContPType4aIEC.WindTurbineType4aIEC", &assign_WindContPType4aIEC_WindTurbineType4aIEC); } void WindContPType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType4aIEC.dpmaxp4a", &get_WindContPType4aIEC_dpmaxp4a); - get_map.emplace("cim:WindContPType4aIEC.tpordp4a", &get_WindContPType4aIEC_tpordp4a); - get_map.emplace("cim:WindContPType4aIEC.tufiltp4a", &get_WindContPType4aIEC_tufiltp4a); + get_map.emplace("WindContPType4aIEC.dpmaxp4a", &get_WindContPType4aIEC_dpmaxp4a); + get_map.emplace("WindContPType4aIEC.tpordp4a", &get_WindContPType4aIEC_tpordp4a); + get_map.emplace("WindContPType4aIEC.tufiltp4a", &get_WindContPType4aIEC_tufiltp4a); } void WindContPType4aIEC::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void WindContPType4aIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType4aIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType4aIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType4aIEC::declare() { return BaseClassDefiner(WindContPType4aIEC::addConstructToMap, WindContPType4aIEC::addPrimitiveAssignFnsToMap, WindContPType4aIEC::addClassAssignFnsToMap, WindContPType4aIEC::debugName); } +std::map WindContPType4aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType4aIEC_factory() diff --git a/CGMES_3.0.0/WindContPType4aIEC.hpp b/CGMES_3.0.0/WindContPType4aIEC.hpp index b83c70f1b..671f981af 100644 --- a/CGMES_3.0.0/WindContPType4aIEC.hpp +++ b/CGMES_3.0.0/WindContPType4aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType4aIEC_factory(); diff --git a/CGMES_3.0.0/WindContPType4bIEC.cpp b/CGMES_3.0.0/WindContPType4bIEC.cpp index 8cd9589d9..70cd713ba 100644 --- a/CGMES_3.0.0/WindContPType4bIEC.cpp +++ b/CGMES_3.0.0/WindContPType4bIEC.cpp @@ -12,36 +12,68 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPType4bIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPType4bIEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.dpmaxp4b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tpaero", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tpordp4b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPType4bIEC.tufiltp4b", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPType4bIEC::WindContPType4bIEC() : WindTurbineType4bIEC(nullptr) {} WindContPType4bIEC::~WindContPType4bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPType4bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPType4bIEC::getClassNamespaceUrl() const { - { "cim:WindContPType4bIEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.dpmaxp4b", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tpaero", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tpordp4b", { CGMESProfile::DY, } }, - { "cim:WindContPType4bIEC.tufiltp4b", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPType4bIEC::getPossibleProfilesForClass() const +const std::string& WindContPType4bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPType4bIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPType4bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPType4bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPType4bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPType4bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4bIEC_WindContPType4bIEC(BaseClass*, BaseClass*); @@ -186,29 +218,29 @@ const char* WindContPType4bIEC::debugString() const void WindContPType4bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPType4bIEC", &WindContPType4bIEC_factory); + factory_map.emplace("WindContPType4bIEC", &WindContPType4bIEC_factory); } void WindContPType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4bIEC.dpmaxp4b", &assign_WindContPType4bIEC_dpmaxp4b); - assign_map.emplace("cim:WindContPType4bIEC.tpaero", &assign_WindContPType4bIEC_tpaero); - assign_map.emplace("cim:WindContPType4bIEC.tpordp4b", &assign_WindContPType4bIEC_tpordp4b); - assign_map.emplace("cim:WindContPType4bIEC.tufiltp4b", &assign_WindContPType4bIEC_tufiltp4b); + assign_map.emplace("WindContPType4bIEC.dpmaxp4b", &assign_WindContPType4bIEC_dpmaxp4b); + assign_map.emplace("WindContPType4bIEC.tpaero", &assign_WindContPType4bIEC_tpaero); + assign_map.emplace("WindContPType4bIEC.tpordp4b", &assign_WindContPType4bIEC_tpordp4b); + assign_map.emplace("WindContPType4bIEC.tufiltp4b", &assign_WindContPType4bIEC_tufiltp4b); } void WindContPType4bIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPType4bIEC.WindTurbineType4bIEC", &assign_WindContPType4bIEC_WindTurbineType4bIEC); + assign_map.emplace("WindContPType4bIEC.WindTurbineType4bIEC", &assign_WindContPType4bIEC_WindTurbineType4bIEC); } void WindContPType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPType4bIEC.dpmaxp4b", &get_WindContPType4bIEC_dpmaxp4b); - get_map.emplace("cim:WindContPType4bIEC.tpaero", &get_WindContPType4bIEC_tpaero); - get_map.emplace("cim:WindContPType4bIEC.tpordp4b", &get_WindContPType4bIEC_tpordp4b); - get_map.emplace("cim:WindContPType4bIEC.tufiltp4b", &get_WindContPType4bIEC_tufiltp4b); + get_map.emplace("WindContPType4bIEC.dpmaxp4b", &get_WindContPType4bIEC_dpmaxp4b); + get_map.emplace("WindContPType4bIEC.tpaero", &get_WindContPType4bIEC_tpaero); + get_map.emplace("WindContPType4bIEC.tpordp4b", &get_WindContPType4bIEC_tpordp4b); + get_map.emplace("WindContPType4bIEC.tufiltp4b", &get_WindContPType4bIEC_tufiltp4b); } void WindContPType4bIEC::addClassGetFnsToMap(std::map& get_map) const @@ -221,11 +253,25 @@ void WindContPType4bIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContPType4bIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContPType4bIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContPType4bIEC::declare() { return BaseClassDefiner(WindContPType4bIEC::addConstructToMap, WindContPType4bIEC::addPrimitiveAssignFnsToMap, WindContPType4bIEC::addClassAssignFnsToMap, WindContPType4bIEC::debugName); } +std::map WindContPType4bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPType4bIEC_factory() diff --git a/CGMES_3.0.0/WindContPType4bIEC.hpp b/CGMES_3.0.0/WindContPType4bIEC.hpp index e1f1ebd74..7cbf3342f 100644 --- a/CGMES_3.0.0/WindContPType4bIEC.hpp +++ b/CGMES_3.0.0/WindContPType4bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -45,8 +46,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -54,7 +62,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPType4bIEC_factory(); diff --git a/CGMES_3.0.0/WindContPitchAngleIEC.cpp b/CGMES_3.0.0/WindContPitchAngleIEC.cpp index e9cad0d85..14beffc30 100644 --- a/CGMES_3.0.0/WindContPitchAngleIEC.cpp +++ b/CGMES_3.0.0/WindContPitchAngleIEC.cpp @@ -12,42 +12,74 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContPitchAngleIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContPitchAngleIEC.WindTurbineType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.dthetamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.dthetamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kic", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kiomega", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpomega", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.kpx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.thetamax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.thetamin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContPitchAngleIEC.ttheta", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContPitchAngleIEC::WindContPitchAngleIEC() : WindTurbineType3IEC(nullptr) {} WindContPitchAngleIEC::~WindContPitchAngleIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContPitchAngleIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContPitchAngleIEC::getClassNamespaceUrl() const { - { "cim:WindContPitchAngleIEC.WindTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.dthetamax", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.dthetamin", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kic", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kiomega", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpc", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpomega", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.kpx", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.thetamax", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.thetamin", { CGMESProfile::DY, } }, - { "cim:WindContPitchAngleIEC.ttheta", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContPitchAngleIEC::getPossibleProfilesForClass() const +const std::string& WindContPitchAngleIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContPitchAngleIEC::getPossibleProfilesForAttributes() const +const std::list& WindContPitchAngleIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContPitchAngleIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContPitchAngleIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContPitchAngleIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3IEC_WindContPitchAngleIEC(BaseClass*, BaseClass*); @@ -366,41 +398,41 @@ const char* WindContPitchAngleIEC::debugString() const void WindContPitchAngleIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContPitchAngleIEC", &WindContPitchAngleIEC_factory); + factory_map.emplace("WindContPitchAngleIEC", &WindContPitchAngleIEC_factory); } void WindContPitchAngleIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPitchAngleIEC.dthetamax", &assign_WindContPitchAngleIEC_dthetamax); - assign_map.emplace("cim:WindContPitchAngleIEC.dthetamin", &assign_WindContPitchAngleIEC_dthetamin); - assign_map.emplace("cim:WindContPitchAngleIEC.kic", &assign_WindContPitchAngleIEC_kic); - assign_map.emplace("cim:WindContPitchAngleIEC.kiomega", &assign_WindContPitchAngleIEC_kiomega); - assign_map.emplace("cim:WindContPitchAngleIEC.kpc", &assign_WindContPitchAngleIEC_kpc); - assign_map.emplace("cim:WindContPitchAngleIEC.kpomega", &assign_WindContPitchAngleIEC_kpomega); - assign_map.emplace("cim:WindContPitchAngleIEC.kpx", &assign_WindContPitchAngleIEC_kpx); - assign_map.emplace("cim:WindContPitchAngleIEC.thetamax", &assign_WindContPitchAngleIEC_thetamax); - assign_map.emplace("cim:WindContPitchAngleIEC.thetamin", &assign_WindContPitchAngleIEC_thetamin); - assign_map.emplace("cim:WindContPitchAngleIEC.ttheta", &assign_WindContPitchAngleIEC_ttheta); + assign_map.emplace("WindContPitchAngleIEC.dthetamax", &assign_WindContPitchAngleIEC_dthetamax); + assign_map.emplace("WindContPitchAngleIEC.dthetamin", &assign_WindContPitchAngleIEC_dthetamin); + assign_map.emplace("WindContPitchAngleIEC.kic", &assign_WindContPitchAngleIEC_kic); + assign_map.emplace("WindContPitchAngleIEC.kiomega", &assign_WindContPitchAngleIEC_kiomega); + assign_map.emplace("WindContPitchAngleIEC.kpc", &assign_WindContPitchAngleIEC_kpc); + assign_map.emplace("WindContPitchAngleIEC.kpomega", &assign_WindContPitchAngleIEC_kpomega); + assign_map.emplace("WindContPitchAngleIEC.kpx", &assign_WindContPitchAngleIEC_kpx); + assign_map.emplace("WindContPitchAngleIEC.thetamax", &assign_WindContPitchAngleIEC_thetamax); + assign_map.emplace("WindContPitchAngleIEC.thetamin", &assign_WindContPitchAngleIEC_thetamin); + assign_map.emplace("WindContPitchAngleIEC.ttheta", &assign_WindContPitchAngleIEC_ttheta); } void WindContPitchAngleIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContPitchAngleIEC.WindTurbineType3IEC", &assign_WindContPitchAngleIEC_WindTurbineType3IEC); + assign_map.emplace("WindContPitchAngleIEC.WindTurbineType3IEC", &assign_WindContPitchAngleIEC_WindTurbineType3IEC); } void WindContPitchAngleIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContPitchAngleIEC.dthetamax", &get_WindContPitchAngleIEC_dthetamax); - get_map.emplace("cim:WindContPitchAngleIEC.dthetamin", &get_WindContPitchAngleIEC_dthetamin); - get_map.emplace("cim:WindContPitchAngleIEC.kic", &get_WindContPitchAngleIEC_kic); - get_map.emplace("cim:WindContPitchAngleIEC.kiomega", &get_WindContPitchAngleIEC_kiomega); - get_map.emplace("cim:WindContPitchAngleIEC.kpc", &get_WindContPitchAngleIEC_kpc); - get_map.emplace("cim:WindContPitchAngleIEC.kpomega", &get_WindContPitchAngleIEC_kpomega); - get_map.emplace("cim:WindContPitchAngleIEC.kpx", &get_WindContPitchAngleIEC_kpx); - get_map.emplace("cim:WindContPitchAngleIEC.thetamax", &get_WindContPitchAngleIEC_thetamax); - get_map.emplace("cim:WindContPitchAngleIEC.thetamin", &get_WindContPitchAngleIEC_thetamin); - get_map.emplace("cim:WindContPitchAngleIEC.ttheta", &get_WindContPitchAngleIEC_ttheta); + get_map.emplace("WindContPitchAngleIEC.dthetamax", &get_WindContPitchAngleIEC_dthetamax); + get_map.emplace("WindContPitchAngleIEC.dthetamin", &get_WindContPitchAngleIEC_dthetamin); + get_map.emplace("WindContPitchAngleIEC.kic", &get_WindContPitchAngleIEC_kic); + get_map.emplace("WindContPitchAngleIEC.kiomega", &get_WindContPitchAngleIEC_kiomega); + get_map.emplace("WindContPitchAngleIEC.kpc", &get_WindContPitchAngleIEC_kpc); + get_map.emplace("WindContPitchAngleIEC.kpomega", &get_WindContPitchAngleIEC_kpomega); + get_map.emplace("WindContPitchAngleIEC.kpx", &get_WindContPitchAngleIEC_kpx); + get_map.emplace("WindContPitchAngleIEC.thetamax", &get_WindContPitchAngleIEC_thetamax); + get_map.emplace("WindContPitchAngleIEC.thetamin", &get_WindContPitchAngleIEC_thetamin); + get_map.emplace("WindContPitchAngleIEC.ttheta", &get_WindContPitchAngleIEC_ttheta); } void WindContPitchAngleIEC::addClassGetFnsToMap(std::map& get_map) const @@ -413,11 +445,25 @@ void WindContPitchAngleIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindContPitchAngleIEC::declare() { return BaseClassDefiner(WindContPitchAngleIEC::addConstructToMap, WindContPitchAngleIEC::addPrimitiveAssignFnsToMap, WindContPitchAngleIEC::addClassAssignFnsToMap, WindContPitchAngleIEC::debugName); } +std::map WindContPitchAngleIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContPitchAngleIEC_factory() diff --git a/CGMES_3.0.0/WindContPitchAngleIEC.hpp b/CGMES_3.0.0/WindContPitchAngleIEC.hpp index 80831c41e..91740543c 100644 --- a/CGMES_3.0.0/WindContPitchAngleIEC.hpp +++ b/CGMES_3.0.0/WindContPitchAngleIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "AngleDegrees.hpp" #include "Float.hpp" #include "PU.hpp" @@ -65,8 +66,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -74,7 +82,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContPitchAngleIEC_factory(); diff --git a/CGMES_3.0.0/WindContQIEC.cpp b/CGMES_3.0.0/WindContQIEC.cpp index f8e48bde6..e590a575b 100644 --- a/CGMES_3.0.0/WindContQIEC.cpp +++ b/CGMES_3.0.0/WindContQIEC.cpp @@ -12,55 +12,87 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContQIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContQIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqh1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.iqpost", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kiq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kiu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kpq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kpu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.kqv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.rdroop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tpfiltq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tpost", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tqord", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.tufiltq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.udb1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.udb2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.umax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.umin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.uqdip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.uref0", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.windQcontrolModesType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.windUVRTQcontrolModesType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQIEC.xdroop", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContQIEC::WindContQIEC() : WindTurbineType3or4IEC(nullptr) {} WindContQIEC::~WindContQIEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindContQIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqh1", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqmax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqmin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.iqpost", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kiq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kiu", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kpq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kpu", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.kqv", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.rdroop", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tpfiltq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tpost", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tqord", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.tufiltq", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.udb1", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.udb2", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.umax", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.umin", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.uqdip", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.uref0", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.windQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.windUVRTQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindContQIEC.xdroop", { CGMESProfile::DY, } }, -}; - -std::list -WindContQIEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindContQIEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindContQIEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindContQIEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindContQIEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindContQIEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContQIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContQIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContQIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3or4IEC_WIndContQIEC(BaseClass*, BaseClass*); @@ -756,65 +788,65 @@ const char* WindContQIEC::debugString() const void WindContQIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContQIEC", &WindContQIEC_factory); + factory_map.emplace("WindContQIEC", &WindContQIEC_factory); } void WindContQIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQIEC.iqh1", &assign_WindContQIEC_iqh1); - assign_map.emplace("cim:WindContQIEC.iqmax", &assign_WindContQIEC_iqmax); - assign_map.emplace("cim:WindContQIEC.iqmin", &assign_WindContQIEC_iqmin); - assign_map.emplace("cim:WindContQIEC.iqpost", &assign_WindContQIEC_iqpost); - assign_map.emplace("cim:WindContQIEC.kiq", &assign_WindContQIEC_kiq); - assign_map.emplace("cim:WindContQIEC.kiu", &assign_WindContQIEC_kiu); - assign_map.emplace("cim:WindContQIEC.kpq", &assign_WindContQIEC_kpq); - assign_map.emplace("cim:WindContQIEC.kpu", &assign_WindContQIEC_kpu); - assign_map.emplace("cim:WindContQIEC.kqv", &assign_WindContQIEC_kqv); - assign_map.emplace("cim:WindContQIEC.rdroop", &assign_WindContQIEC_rdroop); - assign_map.emplace("cim:WindContQIEC.tpfiltq", &assign_WindContQIEC_tpfiltq); - assign_map.emplace("cim:WindContQIEC.tpost", &assign_WindContQIEC_tpost); - assign_map.emplace("cim:WindContQIEC.tqord", &assign_WindContQIEC_tqord); - assign_map.emplace("cim:WindContQIEC.tufiltq", &assign_WindContQIEC_tufiltq); - assign_map.emplace("cim:WindContQIEC.udb1", &assign_WindContQIEC_udb1); - assign_map.emplace("cim:WindContQIEC.udb2", &assign_WindContQIEC_udb2); - assign_map.emplace("cim:WindContQIEC.umax", &assign_WindContQIEC_umax); - assign_map.emplace("cim:WindContQIEC.umin", &assign_WindContQIEC_umin); - assign_map.emplace("cim:WindContQIEC.uqdip", &assign_WindContQIEC_uqdip); - assign_map.emplace("cim:WindContQIEC.uref0", &assign_WindContQIEC_uref0); - assign_map.emplace("cim:WindContQIEC.windQcontrolModesType", &assign_WindContQIEC_windQcontrolModesType); - assign_map.emplace("cim:WindContQIEC.windUVRTQcontrolModesType", &assign_WindContQIEC_windUVRTQcontrolModesType); - assign_map.emplace("cim:WindContQIEC.xdroop", &assign_WindContQIEC_xdroop); + assign_map.emplace("WindContQIEC.iqh1", &assign_WindContQIEC_iqh1); + assign_map.emplace("WindContQIEC.iqmax", &assign_WindContQIEC_iqmax); + assign_map.emplace("WindContQIEC.iqmin", &assign_WindContQIEC_iqmin); + assign_map.emplace("WindContQIEC.iqpost", &assign_WindContQIEC_iqpost); + assign_map.emplace("WindContQIEC.kiq", &assign_WindContQIEC_kiq); + assign_map.emplace("WindContQIEC.kiu", &assign_WindContQIEC_kiu); + assign_map.emplace("WindContQIEC.kpq", &assign_WindContQIEC_kpq); + assign_map.emplace("WindContQIEC.kpu", &assign_WindContQIEC_kpu); + assign_map.emplace("WindContQIEC.kqv", &assign_WindContQIEC_kqv); + assign_map.emplace("WindContQIEC.rdroop", &assign_WindContQIEC_rdroop); + assign_map.emplace("WindContQIEC.tpfiltq", &assign_WindContQIEC_tpfiltq); + assign_map.emplace("WindContQIEC.tpost", &assign_WindContQIEC_tpost); + assign_map.emplace("WindContQIEC.tqord", &assign_WindContQIEC_tqord); + assign_map.emplace("WindContQIEC.tufiltq", &assign_WindContQIEC_tufiltq); + assign_map.emplace("WindContQIEC.udb1", &assign_WindContQIEC_udb1); + assign_map.emplace("WindContQIEC.udb2", &assign_WindContQIEC_udb2); + assign_map.emplace("WindContQIEC.umax", &assign_WindContQIEC_umax); + assign_map.emplace("WindContQIEC.umin", &assign_WindContQIEC_umin); + assign_map.emplace("WindContQIEC.uqdip", &assign_WindContQIEC_uqdip); + assign_map.emplace("WindContQIEC.uref0", &assign_WindContQIEC_uref0); + assign_map.emplace("WindContQIEC.windQcontrolModesType", &assign_WindContQIEC_windQcontrolModesType); + assign_map.emplace("WindContQIEC.windUVRTQcontrolModesType", &assign_WindContQIEC_windUVRTQcontrolModesType); + assign_map.emplace("WindContQIEC.xdroop", &assign_WindContQIEC_xdroop); } void WindContQIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQIEC.WindTurbineType3or4IEC", &assign_WindContQIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContQIEC.WindTurbineType3or4IEC", &assign_WindContQIEC_WindTurbineType3or4IEC); } void WindContQIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContQIEC.iqh1", &get_WindContQIEC_iqh1); - get_map.emplace("cim:WindContQIEC.iqmax", &get_WindContQIEC_iqmax); - get_map.emplace("cim:WindContQIEC.iqmin", &get_WindContQIEC_iqmin); - get_map.emplace("cim:WindContQIEC.iqpost", &get_WindContQIEC_iqpost); - get_map.emplace("cim:WindContQIEC.kiq", &get_WindContQIEC_kiq); - get_map.emplace("cim:WindContQIEC.kiu", &get_WindContQIEC_kiu); - get_map.emplace("cim:WindContQIEC.kpq", &get_WindContQIEC_kpq); - get_map.emplace("cim:WindContQIEC.kpu", &get_WindContQIEC_kpu); - get_map.emplace("cim:WindContQIEC.kqv", &get_WindContQIEC_kqv); - get_map.emplace("cim:WindContQIEC.rdroop", &get_WindContQIEC_rdroop); - get_map.emplace("cim:WindContQIEC.tpfiltq", &get_WindContQIEC_tpfiltq); - get_map.emplace("cim:WindContQIEC.tpost", &get_WindContQIEC_tpost); - get_map.emplace("cim:WindContQIEC.tqord", &get_WindContQIEC_tqord); - get_map.emplace("cim:WindContQIEC.tufiltq", &get_WindContQIEC_tufiltq); - get_map.emplace("cim:WindContQIEC.udb1", &get_WindContQIEC_udb1); - get_map.emplace("cim:WindContQIEC.udb2", &get_WindContQIEC_udb2); - get_map.emplace("cim:WindContQIEC.umax", &get_WindContQIEC_umax); - get_map.emplace("cim:WindContQIEC.umin", &get_WindContQIEC_umin); - get_map.emplace("cim:WindContQIEC.uqdip", &get_WindContQIEC_uqdip); - get_map.emplace("cim:WindContQIEC.uref0", &get_WindContQIEC_uref0); - get_map.emplace("cim:WindContQIEC.xdroop", &get_WindContQIEC_xdroop); + get_map.emplace("WindContQIEC.iqh1", &get_WindContQIEC_iqh1); + get_map.emplace("WindContQIEC.iqmax", &get_WindContQIEC_iqmax); + get_map.emplace("WindContQIEC.iqmin", &get_WindContQIEC_iqmin); + get_map.emplace("WindContQIEC.iqpost", &get_WindContQIEC_iqpost); + get_map.emplace("WindContQIEC.kiq", &get_WindContQIEC_kiq); + get_map.emplace("WindContQIEC.kiu", &get_WindContQIEC_kiu); + get_map.emplace("WindContQIEC.kpq", &get_WindContQIEC_kpq); + get_map.emplace("WindContQIEC.kpu", &get_WindContQIEC_kpu); + get_map.emplace("WindContQIEC.kqv", &get_WindContQIEC_kqv); + get_map.emplace("WindContQIEC.rdroop", &get_WindContQIEC_rdroop); + get_map.emplace("WindContQIEC.tpfiltq", &get_WindContQIEC_tpfiltq); + get_map.emplace("WindContQIEC.tpost", &get_WindContQIEC_tpost); + get_map.emplace("WindContQIEC.tqord", &get_WindContQIEC_tqord); + get_map.emplace("WindContQIEC.tufiltq", &get_WindContQIEC_tufiltq); + get_map.emplace("WindContQIEC.udb1", &get_WindContQIEC_udb1); + get_map.emplace("WindContQIEC.udb2", &get_WindContQIEC_udb2); + get_map.emplace("WindContQIEC.umax", &get_WindContQIEC_umax); + get_map.emplace("WindContQIEC.umin", &get_WindContQIEC_umin); + get_map.emplace("WindContQIEC.uqdip", &get_WindContQIEC_uqdip); + get_map.emplace("WindContQIEC.uref0", &get_WindContQIEC_uref0); + get_map.emplace("WindContQIEC.xdroop", &get_WindContQIEC_xdroop); } void WindContQIEC::addClassGetFnsToMap(std::map& get_map) const @@ -825,8 +857,14 @@ void WindContQIEC::addClassGetFnsToMap(std::map void WindContQIEC::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindContQIEC.windQcontrolModesType", &get_WindContQIEC_windQcontrolModesType); - get_map.emplace("cim:WindContQIEC.windUVRTQcontrolModesType", &get_WindContQIEC_windUVRTQcontrolModesType); + get_map.emplace("WindContQIEC.windQcontrolModesType", &get_WindContQIEC_windQcontrolModesType); + get_map.emplace("WindContQIEC.windUVRTQcontrolModesType", &get_WindContQIEC_windUVRTQcontrolModesType); +} + +bool WindContQIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContQIEC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindContQIEC::declare() @@ -834,6 +872,14 @@ const BaseClassDefiner WindContQIEC::declare() return BaseClassDefiner(WindContQIEC::addConstructToMap, WindContQIEC::addPrimitiveAssignFnsToMap, WindContQIEC::addClassAssignFnsToMap, WindContQIEC::debugName); } +std::map WindContQIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContQIEC_factory() diff --git a/CGMES_3.0.0/WindContQIEC.hpp b/CGMES_3.0.0/WindContQIEC.hpp index a57caf3a0..6559d2d37 100644 --- a/CGMES_3.0.0/WindContQIEC.hpp +++ b/CGMES_3.0.0/WindContQIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" #include "WindQcontrolModeKind.hpp" @@ -104,8 +105,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -113,7 +121,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContQIEC_factory(); diff --git a/CGMES_3.0.0/WindContQLimIEC.cpp b/CGMES_3.0.0/WindContQLimIEC.cpp index 9da0270a9..1d0a6bec5 100644 --- a/CGMES_3.0.0/WindContQLimIEC.cpp +++ b/CGMES_3.0.0/WindContQLimIEC.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContQLimIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContQLimIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQLimIEC.qmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQLimIEC.qmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContQLimIEC::WindContQLimIEC() : WindTurbineType3or4IEC(nullptr) {} WindContQLimIEC::~WindContQLimIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContQLimIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContQLimIEC::getClassNamespaceUrl() const { - { "cim:WindContQLimIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContQLimIEC.qmax", { CGMESProfile::DY, } }, - { "cim:WindContQLimIEC.qmin", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContQLimIEC::getPossibleProfilesForClass() const +const std::string& WindContQLimIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContQLimIEC::getPossibleProfilesForAttributes() const +const std::list& WindContQLimIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContQLimIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContQLimIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContQLimIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3or4IEC_WindContQLimIEC(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* WindContQLimIEC::debugString() const void WindContQLimIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContQLimIEC", &WindContQLimIEC_factory); + factory_map.emplace("WindContQLimIEC", &WindContQLimIEC_factory); } void WindContQLimIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQLimIEC.qmax", &assign_WindContQLimIEC_qmax); - assign_map.emplace("cim:WindContQLimIEC.qmin", &assign_WindContQLimIEC_qmin); + assign_map.emplace("WindContQLimIEC.qmax", &assign_WindContQLimIEC_qmax); + assign_map.emplace("WindContQLimIEC.qmin", &assign_WindContQLimIEC_qmin); } void WindContQLimIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQLimIEC.WindTurbineType3or4IEC", &assign_WindContQLimIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContQLimIEC.WindTurbineType3or4IEC", &assign_WindContQLimIEC_WindTurbineType3or4IEC); } void WindContQLimIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContQLimIEC.qmax", &get_WindContQLimIEC_qmax); - get_map.emplace("cim:WindContQLimIEC.qmin", &get_WindContQLimIEC_qmin); + get_map.emplace("WindContQLimIEC.qmax", &get_WindContQLimIEC_qmax); + get_map.emplace("WindContQLimIEC.qmin", &get_WindContQLimIEC_qmin); } void WindContQLimIEC::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void WindContQLimIEC::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContQLimIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContQLimIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContQLimIEC::declare() { return BaseClassDefiner(WindContQLimIEC::addConstructToMap, WindContQLimIEC::addPrimitiveAssignFnsToMap, WindContQLimIEC::addClassAssignFnsToMap, WindContQLimIEC::debugName); } +std::map WindContQLimIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContQLimIEC_factory() diff --git a/CGMES_3.0.0/WindContQLimIEC.hpp b/CGMES_3.0.0/WindContQLimIEC.hpp index a719ffa3e..431998a31 100644 --- a/CGMES_3.0.0/WindContQLimIEC.hpp +++ b/CGMES_3.0.0/WindContQLimIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -38,8 +39,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -47,7 +55,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContQLimIEC_factory(); diff --git a/CGMES_3.0.0/WindContQPQULimIEC.cpp b/CGMES_3.0.0/WindContQPQULimIEC.cpp index c72457faa..1edb31c45 100644 --- a/CGMES_3.0.0/WindContQPQULimIEC.cpp +++ b/CGMES_3.0.0/WindContQPQULimIEC.cpp @@ -13,35 +13,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContQPQULimIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContQPQULimIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQPQULimIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQPQULimIEC.tpfiltql", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContQPQULimIEC.tufiltql", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContQPQULimIEC::WindContQPQULimIEC() : WindTurbineType3or4IEC(nullptr) {} WindContQPQULimIEC::~WindContQPQULimIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContQPQULimIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContQPQULimIEC::getClassNamespaceUrl() const { - { "cim:WindContQPQULimIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContQPQULimIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindContQPQULimIEC.tpfiltql", { CGMESProfile::DY, } }, - { "cim:WindContQPQULimIEC.tufiltql", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContQPQULimIEC::getPossibleProfilesForClass() const +const std::string& WindContQPQULimIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContQPQULimIEC::getPossibleProfilesForAttributes() const +const std::list& WindContQPQULimIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContQPQULimIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContQPQULimIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContQPQULimIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContQPQULimIEC(BaseClass*, BaseClass*); @@ -146,26 +178,26 @@ const char* WindContQPQULimIEC::debugString() const void WindContQPQULimIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContQPQULimIEC", &WindContQPQULimIEC_factory); + factory_map.emplace("WindContQPQULimIEC", &WindContQPQULimIEC_factory); } void WindContQPQULimIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQPQULimIEC.tpfiltql", &assign_WindContQPQULimIEC_tpfiltql); - assign_map.emplace("cim:WindContQPQULimIEC.tufiltql", &assign_WindContQPQULimIEC_tufiltql); + assign_map.emplace("WindContQPQULimIEC.tpfiltql", &assign_WindContQPQULimIEC_tpfiltql); + assign_map.emplace("WindContQPQULimIEC.tufiltql", &assign_WindContQPQULimIEC_tufiltql); } void WindContQPQULimIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContQPQULimIEC.WindDynamicsLookupTable", &assign_WindContQPQULimIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContQPQULimIEC.WindTurbineType3or4IEC", &assign_WindContQPQULimIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindContQPQULimIEC.WindDynamicsLookupTable", &assign_WindContQPQULimIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContQPQULimIEC.WindTurbineType3or4IEC", &assign_WindContQPQULimIEC_WindTurbineType3or4IEC); } void WindContQPQULimIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContQPQULimIEC.tpfiltql", &get_WindContQPQULimIEC_tpfiltql); - get_map.emplace("cim:WindContQPQULimIEC.tufiltql", &get_WindContQPQULimIEC_tufiltql); + get_map.emplace("WindContQPQULimIEC.tpfiltql", &get_WindContQPQULimIEC_tpfiltql); + get_map.emplace("WindContQPQULimIEC.tufiltql", &get_WindContQPQULimIEC_tufiltql); } void WindContQPQULimIEC::addClassGetFnsToMap(std::map& get_map) const @@ -178,11 +210,25 @@ void WindContQPQULimIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContQPQULimIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContQPQULimIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContQPQULimIEC::declare() { return BaseClassDefiner(WindContQPQULimIEC::addConstructToMap, WindContQPQULimIEC::addPrimitiveAssignFnsToMap, WindContQPQULimIEC::addClassAssignFnsToMap, WindContQPQULimIEC::debugName); } +std::map WindContQPQULimIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContQPQULimIEC_factory() diff --git a/CGMES_3.0.0/WindContQPQULimIEC.hpp b/CGMES_3.0.0/WindContQPQULimIEC.hpp index 07eb8de88..e01c46360 100644 --- a/CGMES_3.0.0/WindContQPQULimIEC.hpp +++ b/CGMES_3.0.0/WindContQPQULimIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Seconds.hpp" namespace CIMPP @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContQPQULimIEC_factory(); diff --git a/CGMES_3.0.0/WindContRotorRIEC.cpp b/CGMES_3.0.0/WindContRotorRIEC.cpp index 6d57f58a7..ea154e710 100644 --- a/CGMES_3.0.0/WindContRotorRIEC.cpp +++ b/CGMES_3.0.0/WindContRotorRIEC.cpp @@ -13,41 +13,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindContRotorRIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindContRotorRIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.WindGenTurbineType2IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kirr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.komegafilt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kpfilt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.kprr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.rmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.rmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.tomegafiltrr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindContRotorRIEC.tpfiltrr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindContRotorRIEC::WindContRotorRIEC() : WindGenTurbineType2IEC(nullptr) {} WindContRotorRIEC::~WindContRotorRIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindContRotorRIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindContRotorRIEC::getClassNamespaceUrl() const { - { "cim:WindContRotorRIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.WindGenTurbineType2IEC", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kirr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.komegafilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kpfilt", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.kprr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.rmax", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.rmin", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.tomegafiltrr", { CGMESProfile::DY, } }, - { "cim:WindContRotorRIEC.tpfiltrr", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindContRotorRIEC::getPossibleProfilesForClass() const +const std::string& WindContRotorRIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindContRotorRIEC::getPossibleProfilesForAttributes() const +const std::list& WindContRotorRIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindContRotorRIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindContRotorRIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindContRotorRIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindContRotorRIEC(BaseClass*, BaseClass*); @@ -326,38 +358,38 @@ const char* WindContRotorRIEC::debugString() const void WindContRotorRIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindContRotorRIEC", &WindContRotorRIEC_factory); + factory_map.emplace("WindContRotorRIEC", &WindContRotorRIEC_factory); } void WindContRotorRIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContRotorRIEC.kirr", &assign_WindContRotorRIEC_kirr); - assign_map.emplace("cim:WindContRotorRIEC.komegafilt", &assign_WindContRotorRIEC_komegafilt); - assign_map.emplace("cim:WindContRotorRIEC.kpfilt", &assign_WindContRotorRIEC_kpfilt); - assign_map.emplace("cim:WindContRotorRIEC.kprr", &assign_WindContRotorRIEC_kprr); - assign_map.emplace("cim:WindContRotorRIEC.rmax", &assign_WindContRotorRIEC_rmax); - assign_map.emplace("cim:WindContRotorRIEC.rmin", &assign_WindContRotorRIEC_rmin); - assign_map.emplace("cim:WindContRotorRIEC.tomegafiltrr", &assign_WindContRotorRIEC_tomegafiltrr); - assign_map.emplace("cim:WindContRotorRIEC.tpfiltrr", &assign_WindContRotorRIEC_tpfiltrr); + assign_map.emplace("WindContRotorRIEC.kirr", &assign_WindContRotorRIEC_kirr); + assign_map.emplace("WindContRotorRIEC.komegafilt", &assign_WindContRotorRIEC_komegafilt); + assign_map.emplace("WindContRotorRIEC.kpfilt", &assign_WindContRotorRIEC_kpfilt); + assign_map.emplace("WindContRotorRIEC.kprr", &assign_WindContRotorRIEC_kprr); + assign_map.emplace("WindContRotorRIEC.rmax", &assign_WindContRotorRIEC_rmax); + assign_map.emplace("WindContRotorRIEC.rmin", &assign_WindContRotorRIEC_rmin); + assign_map.emplace("WindContRotorRIEC.tomegafiltrr", &assign_WindContRotorRIEC_tomegafiltrr); + assign_map.emplace("WindContRotorRIEC.tpfiltrr", &assign_WindContRotorRIEC_tpfiltrr); } void WindContRotorRIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindContRotorRIEC.WindDynamicsLookupTable", &assign_WindContRotorRIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindContRotorRIEC.WindGenTurbineType2IEC", &assign_WindContRotorRIEC_WindGenTurbineType2IEC); + assign_map.emplace("WindContRotorRIEC.WindDynamicsLookupTable", &assign_WindContRotorRIEC_WindDynamicsLookupTable); + assign_map.emplace("WindContRotorRIEC.WindGenTurbineType2IEC", &assign_WindContRotorRIEC_WindGenTurbineType2IEC); } void WindContRotorRIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindContRotorRIEC.kirr", &get_WindContRotorRIEC_kirr); - get_map.emplace("cim:WindContRotorRIEC.komegafilt", &get_WindContRotorRIEC_komegafilt); - get_map.emplace("cim:WindContRotorRIEC.kpfilt", &get_WindContRotorRIEC_kpfilt); - get_map.emplace("cim:WindContRotorRIEC.kprr", &get_WindContRotorRIEC_kprr); - get_map.emplace("cim:WindContRotorRIEC.rmax", &get_WindContRotorRIEC_rmax); - get_map.emplace("cim:WindContRotorRIEC.rmin", &get_WindContRotorRIEC_rmin); - get_map.emplace("cim:WindContRotorRIEC.tomegafiltrr", &get_WindContRotorRIEC_tomegafiltrr); - get_map.emplace("cim:WindContRotorRIEC.tpfiltrr", &get_WindContRotorRIEC_tpfiltrr); + get_map.emplace("WindContRotorRIEC.kirr", &get_WindContRotorRIEC_kirr); + get_map.emplace("WindContRotorRIEC.komegafilt", &get_WindContRotorRIEC_komegafilt); + get_map.emplace("WindContRotorRIEC.kpfilt", &get_WindContRotorRIEC_kpfilt); + get_map.emplace("WindContRotorRIEC.kprr", &get_WindContRotorRIEC_kprr); + get_map.emplace("WindContRotorRIEC.rmax", &get_WindContRotorRIEC_rmax); + get_map.emplace("WindContRotorRIEC.rmin", &get_WindContRotorRIEC_rmin); + get_map.emplace("WindContRotorRIEC.tomegafiltrr", &get_WindContRotorRIEC_tomegafiltrr); + get_map.emplace("WindContRotorRIEC.tpfiltrr", &get_WindContRotorRIEC_tpfiltrr); } void WindContRotorRIEC::addClassGetFnsToMap(std::map& get_map) const @@ -370,11 +402,25 @@ void WindContRotorRIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindContRotorRIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindContRotorRIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindContRotorRIEC::declare() { return BaseClassDefiner(WindContRotorRIEC::addConstructToMap, WindContRotorRIEC::addPrimitiveAssignFnsToMap, WindContRotorRIEC::addClassAssignFnsToMap, WindContRotorRIEC::debugName); } +std::map WindContRotorRIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindContRotorRIEC_factory() diff --git a/CGMES_3.0.0/WindContRotorRIEC.hpp b/CGMES_3.0.0/WindContRotorRIEC.hpp index aa38dd601..c2ac163bd 100644 --- a/CGMES_3.0.0/WindContRotorRIEC.hpp +++ b/CGMES_3.0.0/WindContRotorRIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindContRotorRIEC_factory(); diff --git a/CGMES_3.0.0/WindDynamicsLookupTable.cpp b/CGMES_3.0.0/WindDynamicsLookupTable.cpp index 56162c71f..77484a38e 100644 --- a/CGMES_3.0.0/WindDynamicsLookupTable.cpp +++ b/CGMES_3.0.0/WindDynamicsLookupTable.cpp @@ -20,44 +20,76 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindDynamicsLookupTable(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindDynamicsLookupTable.WindContCurrLimIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContPType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContQPQULimIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindContRotorRIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindGenType3bIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindPitchContPowerIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindPlantReactiveControlIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.WindProtectionIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.input", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.lookupTableFunctionType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.output", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindDynamicsLookupTable.sequence", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindDynamicsLookupTable::WindDynamicsLookupTable() : WindContCurrLimIEC(nullptr), WindContPType3IEC(nullptr), WindContQPQULimIEC(nullptr), WindContRotorRIEC(nullptr), WindGenType3bIEC(nullptr), WindPitchContPowerIEC(nullptr), WindPlantFreqPcontrolIEC(nullptr), WindPlantReactiveControlIEC(nullptr), WindProtectionIEC(nullptr) {} WindDynamicsLookupTable::~WindDynamicsLookupTable() {} -static const std::list PossibleProfilesForClass = +const std::list& WindDynamicsLookupTable::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindDynamicsLookupTable::getClassNamespaceUrl() const { - { "cim:WindDynamicsLookupTable.WindContCurrLimIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContPType3IEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContQPQULimIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindContRotorRIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindGenType3bIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindPitchContPowerIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindPlantReactiveControlIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.WindProtectionIEC", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.input", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.lookupTableFunctionType", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.output", { CGMESProfile::DY, } }, - { "cim:WindDynamicsLookupTable.sequence", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindDynamicsLookupTable::getPossibleProfilesForClass() const +const std::string& WindDynamicsLookupTable::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindDynamicsLookupTable::getPossibleProfilesForAttributes() const +const std::list& WindDynamicsLookupTable::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindDynamicsLookupTable::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindDynamicsLookupTable::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindDynamicsLookupTable::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContCurrLimIEC_WindDynamicsLookupTable(BaseClass*, BaseClass*); @@ -463,56 +495,62 @@ const char* WindDynamicsLookupTable::debugString() const void WindDynamicsLookupTable::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindDynamicsLookupTable", &WindDynamicsLookupTable_factory); + factory_map.emplace("WindDynamicsLookupTable", &WindDynamicsLookupTable_factory); } void WindDynamicsLookupTable::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindDynamicsLookupTable.input", &assign_WindDynamicsLookupTable_input); - assign_map.emplace("cim:WindDynamicsLookupTable.lookupTableFunctionType", &assign_WindDynamicsLookupTable_lookupTableFunctionType); - assign_map.emplace("cim:WindDynamicsLookupTable.output", &assign_WindDynamicsLookupTable_output); - assign_map.emplace("cim:WindDynamicsLookupTable.sequence", &assign_WindDynamicsLookupTable_sequence); + assign_map.emplace("WindDynamicsLookupTable.input", &assign_WindDynamicsLookupTable_input); + assign_map.emplace("WindDynamicsLookupTable.lookupTableFunctionType", &assign_WindDynamicsLookupTable_lookupTableFunctionType); + assign_map.emplace("WindDynamicsLookupTable.output", &assign_WindDynamicsLookupTable_output); + assign_map.emplace("WindDynamicsLookupTable.sequence", &assign_WindDynamicsLookupTable_sequence); } void WindDynamicsLookupTable::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindDynamicsLookupTable.WindContCurrLimIEC", &assign_WindDynamicsLookupTable_WindContCurrLimIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContPType3IEC", &assign_WindDynamicsLookupTable_WindContPType3IEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContQPQULimIEC", &assign_WindDynamicsLookupTable_WindContQPQULimIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindContRotorRIEC", &assign_WindDynamicsLookupTable_WindContRotorRIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindGenType3bIEC", &assign_WindDynamicsLookupTable_WindGenType3bIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindPitchContPowerIEC", &assign_WindDynamicsLookupTable_WindPitchContPowerIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindPlantReactiveControlIEC", &assign_WindDynamicsLookupTable_WindPlantReactiveControlIEC); - assign_map.emplace("cim:WindDynamicsLookupTable.WindProtectionIEC", &assign_WindDynamicsLookupTable_WindProtectionIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContCurrLimIEC", &assign_WindDynamicsLookupTable_WindContCurrLimIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContPType3IEC", &assign_WindDynamicsLookupTable_WindContPType3IEC); + assign_map.emplace("WindDynamicsLookupTable.WindContQPQULimIEC", &assign_WindDynamicsLookupTable_WindContQPQULimIEC); + assign_map.emplace("WindDynamicsLookupTable.WindContRotorRIEC", &assign_WindDynamicsLookupTable_WindContRotorRIEC); + assign_map.emplace("WindDynamicsLookupTable.WindGenType3bIEC", &assign_WindDynamicsLookupTable_WindGenType3bIEC); + assign_map.emplace("WindDynamicsLookupTable.WindPitchContPowerIEC", &assign_WindDynamicsLookupTable_WindPitchContPowerIEC); + assign_map.emplace("WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); + assign_map.emplace("WindDynamicsLookupTable.WindPlantReactiveControlIEC", &assign_WindDynamicsLookupTable_WindPlantReactiveControlIEC); + assign_map.emplace("WindDynamicsLookupTable.WindProtectionIEC", &assign_WindDynamicsLookupTable_WindProtectionIEC); } void WindDynamicsLookupTable::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.input", &get_WindDynamicsLookupTable_input); - get_map.emplace("cim:WindDynamicsLookupTable.output", &get_WindDynamicsLookupTable_output); - get_map.emplace("cim:WindDynamicsLookupTable.sequence", &get_WindDynamicsLookupTable_sequence); + get_map.emplace("WindDynamicsLookupTable.input", &get_WindDynamicsLookupTable_input); + get_map.emplace("WindDynamicsLookupTable.output", &get_WindDynamicsLookupTable_output); + get_map.emplace("WindDynamicsLookupTable.sequence", &get_WindDynamicsLookupTable_sequence); } void WindDynamicsLookupTable::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.WindContCurrLimIEC", &get_WindDynamicsLookupTable_WindContCurrLimIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContPType3IEC", &get_WindDynamicsLookupTable_WindContPType3IEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContQPQULimIEC", &get_WindDynamicsLookupTable_WindContQPQULimIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindContRotorRIEC", &get_WindDynamicsLookupTable_WindContRotorRIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindGenType3bIEC", &get_WindDynamicsLookupTable_WindGenType3bIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindPitchContPowerIEC", &get_WindDynamicsLookupTable_WindPitchContPowerIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &get_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindPlantReactiveControlIEC", &get_WindDynamicsLookupTable_WindPlantReactiveControlIEC); - get_map.emplace("cim:WindDynamicsLookupTable.WindProtectionIEC", &get_WindDynamicsLookupTable_WindProtectionIEC); + get_map.emplace("WindDynamicsLookupTable.WindContCurrLimIEC", &get_WindDynamicsLookupTable_WindContCurrLimIEC); + get_map.emplace("WindDynamicsLookupTable.WindContPType3IEC", &get_WindDynamicsLookupTable_WindContPType3IEC); + get_map.emplace("WindDynamicsLookupTable.WindContQPQULimIEC", &get_WindDynamicsLookupTable_WindContQPQULimIEC); + get_map.emplace("WindDynamicsLookupTable.WindContRotorRIEC", &get_WindDynamicsLookupTable_WindContRotorRIEC); + get_map.emplace("WindDynamicsLookupTable.WindGenType3bIEC", &get_WindDynamicsLookupTable_WindGenType3bIEC); + get_map.emplace("WindDynamicsLookupTable.WindPitchContPowerIEC", &get_WindDynamicsLookupTable_WindPitchContPowerIEC); + get_map.emplace("WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", &get_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC); + get_map.emplace("WindDynamicsLookupTable.WindPlantReactiveControlIEC", &get_WindDynamicsLookupTable_WindPlantReactiveControlIEC); + get_map.emplace("WindDynamicsLookupTable.WindProtectionIEC", &get_WindDynamicsLookupTable_WindProtectionIEC); } void WindDynamicsLookupTable::addEnumGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindDynamicsLookupTable.lookupTableFunctionType", &get_WindDynamicsLookupTable_lookupTableFunctionType); + get_map.emplace("WindDynamicsLookupTable.lookupTableFunctionType", &get_WindDynamicsLookupTable_lookupTableFunctionType); +} + +bool WindDynamicsLookupTable::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindDynamicsLookupTable" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindDynamicsLookupTable::declare() @@ -520,6 +558,14 @@ const BaseClassDefiner WindDynamicsLookupTable::declare() return BaseClassDefiner(WindDynamicsLookupTable::addConstructToMap, WindDynamicsLookupTable::addPrimitiveAssignFnsToMap, WindDynamicsLookupTable::addClassAssignFnsToMap, WindDynamicsLookupTable::debugName); } +std::map WindDynamicsLookupTable::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindDynamicsLookupTable_factory() diff --git a/CGMES_3.0.0/WindDynamicsLookupTable.hpp b/CGMES_3.0.0/WindDynamicsLookupTable.hpp index a5f98f62f..1aa7d02f9 100644 --- a/CGMES_3.0.0/WindDynamicsLookupTable.hpp +++ b/CGMES_3.0.0/WindDynamicsLookupTable.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "Integer.hpp" #include "WindLookupTableFunctionKind.hpp" @@ -78,8 +79,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -87,7 +95,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindDynamicsLookupTable_factory(); diff --git a/CGMES_3.0.0/WindGenTurbineType1aIEC.cpp b/CGMES_3.0.0/WindGenTurbineType1aIEC.cpp index cfe60f57a..f85cf57de 100644 --- a/CGMES_3.0.0/WindGenTurbineType1aIEC.cpp +++ b/CGMES_3.0.0/WindGenTurbineType1aIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType1aIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType1aIEC.WindAeroConstIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType1aIEC::WindGenTurbineType1aIEC() : WindAeroConstIEC(nullptr) {} WindGenTurbineType1aIEC::~WindGenTurbineType1aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType1aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType1aIEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType1aIEC.WindAeroConstIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType1aIEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType1aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType1aIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType1aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType1aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType1aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType1aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindAeroConstIEC_WindGenTurbineType1aIEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindGenTurbineType1aIEC::debugString() const void WindGenTurbineType1aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType1aIEC", &WindGenTurbineType1aIEC_factory); + factory_map.emplace("WindGenTurbineType1aIEC", &WindGenTurbineType1aIEC_factory); } void WindGenTurbineType1aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindGenTurbineType1aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType1aIEC.WindAeroConstIEC", &assign_WindGenTurbineType1aIEC_WindAeroConstIEC); + assign_map.emplace("WindGenTurbineType1aIEC.WindAeroConstIEC", &assign_WindGenTurbineType1aIEC_WindAeroConstIEC); } void WindGenTurbineType1aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindGenTurbineType1aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType1aIEC.WindAeroConstIEC", &get_WindGenTurbineType1aIEC_WindAeroConstIEC); + get_map.emplace("WindGenTurbineType1aIEC.WindAeroConstIEC", &get_WindGenTurbineType1aIEC_WindAeroConstIEC); } void WindGenTurbineType1aIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindGenTurbineType1aIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType1aIEC::declare() { return BaseClassDefiner(WindGenTurbineType1aIEC::addConstructToMap, WindGenTurbineType1aIEC::addPrimitiveAssignFnsToMap, WindGenTurbineType1aIEC::addClassAssignFnsToMap, WindGenTurbineType1aIEC::debugName); } +std::map WindGenTurbineType1aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType1aIEC_factory() diff --git a/CGMES_3.0.0/WindGenTurbineType1aIEC.hpp b/CGMES_3.0.0/WindGenTurbineType1aIEC.hpp index 0992de82b..188bf064a 100644 --- a/CGMES_3.0.0/WindGenTurbineType1aIEC.hpp +++ b/CGMES_3.0.0/WindGenTurbineType1aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType1aIEC_factory(); diff --git a/CGMES_3.0.0/WindGenTurbineType1bIEC.cpp b/CGMES_3.0.0/WindGenTurbineType1bIEC.cpp index b4df37858..7604cb790 100644 --- a/CGMES_3.0.0/WindGenTurbineType1bIEC.cpp +++ b/CGMES_3.0.0/WindGenTurbineType1bIEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType1bIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType1bIEC.WindPitchContPowerIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType1bIEC::WindGenTurbineType1bIEC() : WindPitchContPowerIEC(nullptr) {} WindGenTurbineType1bIEC::~WindGenTurbineType1bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType1bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType1bIEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType1bIEC.WindPitchContPowerIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType1bIEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType1bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType1bIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType1bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType1bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType1bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType1bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPitchContPowerIEC_WindGenTurbineType1bIEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindGenTurbineType1bIEC::debugString() const void WindGenTurbineType1bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType1bIEC", &WindGenTurbineType1bIEC_factory); + factory_map.emplace("WindGenTurbineType1bIEC", &WindGenTurbineType1bIEC_factory); } void WindGenTurbineType1bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindGenTurbineType1bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType1bIEC.WindPitchContPowerIEC", &assign_WindGenTurbineType1bIEC_WindPitchContPowerIEC); + assign_map.emplace("WindGenTurbineType1bIEC.WindPitchContPowerIEC", &assign_WindGenTurbineType1bIEC_WindPitchContPowerIEC); } void WindGenTurbineType1bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindGenTurbineType1bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType1bIEC.WindPitchContPowerIEC", &get_WindGenTurbineType1bIEC_WindPitchContPowerIEC); + get_map.emplace("WindGenTurbineType1bIEC.WindPitchContPowerIEC", &get_WindGenTurbineType1bIEC_WindPitchContPowerIEC); } void WindGenTurbineType1bIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindGenTurbineType1bIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType1bIEC::declare() { return BaseClassDefiner(WindGenTurbineType1bIEC::addConstructToMap, WindGenTurbineType1bIEC::addPrimitiveAssignFnsToMap, WindGenTurbineType1bIEC::addClassAssignFnsToMap, WindGenTurbineType1bIEC::debugName); } +std::map WindGenTurbineType1bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType1bIEC_factory() diff --git a/CGMES_3.0.0/WindGenTurbineType1bIEC.hpp b/CGMES_3.0.0/WindGenTurbineType1bIEC.hpp index b3bb3c3a6..d4ead2a25 100644 --- a/CGMES_3.0.0/WindGenTurbineType1bIEC.hpp +++ b/CGMES_3.0.0/WindGenTurbineType1bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType1bIEC_factory(); diff --git a/CGMES_3.0.0/WindGenTurbineType2IEC.cpp b/CGMES_3.0.0/WindGenTurbineType2IEC.cpp index d23e059d6..ddbacd2af 100644 --- a/CGMES_3.0.0/WindGenTurbineType2IEC.cpp +++ b/CGMES_3.0.0/WindGenTurbineType2IEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenTurbineType2IEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenTurbineType2IEC.WindContRotorRIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenTurbineType2IEC.WindPitchContPowerIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenTurbineType2IEC::WindGenTurbineType2IEC() : WindContRotorRIEC(nullptr), WindPitchContPowerIEC(nullptr) {} WindGenTurbineType2IEC::~WindGenTurbineType2IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenTurbineType2IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenTurbineType2IEC::getClassNamespaceUrl() const { - { "cim:WindGenTurbineType2IEC.WindContRotorRIEC", { CGMESProfile::DY, } }, - { "cim:WindGenTurbineType2IEC.WindPitchContPowerIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenTurbineType2IEC::getPossibleProfilesForClass() const +const std::string& WindGenTurbineType2IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenTurbineType2IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenTurbineType2IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenTurbineType2IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenTurbineType2IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenTurbineType2IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContRotorRIEC_WindGenTurbineType2IEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindGenTurbineType2IEC::debugString() const void WindGenTurbineType2IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenTurbineType2IEC", &WindGenTurbineType2IEC_factory); + factory_map.emplace("WindGenTurbineType2IEC", &WindGenTurbineType2IEC_factory); } void WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenTurbineType2IEC.WindContRotorRIEC", &assign_WindGenTurbineType2IEC_WindContRotorRIEC); - assign_map.emplace("cim:WindGenTurbineType2IEC.WindPitchContPowerIEC", &assign_WindGenTurbineType2IEC_WindPitchContPowerIEC); + assign_map.emplace("WindGenTurbineType2IEC.WindContRotorRIEC", &assign_WindGenTurbineType2IEC_WindContRotorRIEC); + assign_map.emplace("WindGenTurbineType2IEC.WindPitchContPowerIEC", &assign_WindGenTurbineType2IEC_WindPitchContPowerIEC); } void WindGenTurbineType2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindGenTurbineType2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGenTurbineType2IEC.WindContRotorRIEC", &get_WindGenTurbineType2IEC_WindContRotorRIEC); - get_map.emplace("cim:WindGenTurbineType2IEC.WindPitchContPowerIEC", &get_WindGenTurbineType2IEC_WindPitchContPowerIEC); + get_map.emplace("WindGenTurbineType2IEC.WindContRotorRIEC", &get_WindGenTurbineType2IEC_WindContRotorRIEC); + get_map.emplace("WindGenTurbineType2IEC.WindPitchContPowerIEC", &get_WindGenTurbineType2IEC_WindPitchContPowerIEC); } void WindGenTurbineType2IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindGenTurbineType2IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindGenTurbineType2IEC::declare() { return BaseClassDefiner(WindGenTurbineType2IEC::addConstructToMap, WindGenTurbineType2IEC::addPrimitiveAssignFnsToMap, WindGenTurbineType2IEC::addClassAssignFnsToMap, WindGenTurbineType2IEC::debugName); } +std::map WindGenTurbineType2IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenTurbineType2IEC_factory() diff --git a/CGMES_3.0.0/WindGenTurbineType2IEC.hpp b/CGMES_3.0.0/WindGenTurbineType2IEC.hpp index 7f7d6c7dc..f837c10d0 100644 --- a/CGMES_3.0.0/WindGenTurbineType2IEC.hpp +++ b/CGMES_3.0.0/WindGenTurbineType2IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenTurbineType2IEC_factory(); diff --git a/CGMES_3.0.0/WindGenType3IEC.cpp b/CGMES_3.0.0/WindGenType3IEC.cpp index d41a083ed..cb6e9fd2e 100644 --- a/CGMES_3.0.0/WindGenType3IEC.cpp +++ b/CGMES_3.0.0/WindGenType3IEC.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenType3IEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenType3IEC.WindTurbineType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType3IEC.dipmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType3IEC.diqmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType3IEC.xs", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenType3IEC::WindGenType3IEC() : WindTurbineType3IEC(nullptr) {} WindGenType3IEC::~WindGenType3IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenType3IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenType3IEC::getClassNamespaceUrl() const { - { "cim:WindGenType3IEC.WindTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindGenType3IEC.dipmax", { CGMESProfile::DY, } }, - { "cim:WindGenType3IEC.diqmax", { CGMESProfile::DY, } }, - { "cim:WindGenType3IEC.xs", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenType3IEC::getPossibleProfilesForClass() const +const std::string& WindGenType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenType3IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenType3IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3IEC_WindGenType3IEC(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* WindGenType3IEC::debugString() const void WindGenType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenType3IEC", &WindGenType3IEC_factory); + factory_map.emplace("WindGenType3IEC", &WindGenType3IEC_factory); } void WindGenType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType3IEC.dipmax", &assign_WindGenType3IEC_dipmax); - assign_map.emplace("cim:WindGenType3IEC.diqmax", &assign_WindGenType3IEC_diqmax); - assign_map.emplace("cim:WindGenType3IEC.xs", &assign_WindGenType3IEC_xs); + assign_map.emplace("WindGenType3IEC.dipmax", &assign_WindGenType3IEC_dipmax); + assign_map.emplace("WindGenType3IEC.diqmax", &assign_WindGenType3IEC_diqmax); + assign_map.emplace("WindGenType3IEC.xs", &assign_WindGenType3IEC_xs); } void WindGenType3IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType3IEC.WindTurbineType3IEC", &assign_WindGenType3IEC_WindTurbineType3IEC); + assign_map.emplace("WindGenType3IEC.WindTurbineType3IEC", &assign_WindGenType3IEC_WindTurbineType3IEC); } void WindGenType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenType3IEC.dipmax", &get_WindGenType3IEC_dipmax); - get_map.emplace("cim:WindGenType3IEC.diqmax", &get_WindGenType3IEC_diqmax); - get_map.emplace("cim:WindGenType3IEC.xs", &get_WindGenType3IEC_xs); + get_map.emplace("WindGenType3IEC.dipmax", &get_WindGenType3IEC_dipmax); + get_map.emplace("WindGenType3IEC.diqmax", &get_WindGenType3IEC_diqmax); + get_map.emplace("WindGenType3IEC.xs", &get_WindGenType3IEC_xs); } void WindGenType3IEC::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void WindGenType3IEC::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindGenType3IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGenType3IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindGenType3IEC::declare() { return BaseClassDefiner(WindGenType3IEC::addConstructToMap, WindGenType3IEC::addPrimitiveAssignFnsToMap, WindGenType3IEC::addClassAssignFnsToMap, WindGenType3IEC::debugName); } +std::map WindGenType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenType3IEC_factory() diff --git a/CGMES_3.0.0/WindGenType3IEC.hpp b/CGMES_3.0.0/WindGenType3IEC.hpp index 19b49e8b8..51b6d8e45 100644 --- a/CGMES_3.0.0/WindGenType3IEC.hpp +++ b/CGMES_3.0.0/WindGenType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" namespace CIMPP @@ -41,8 +42,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -50,7 +58,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenType3IEC_factory(); diff --git a/CGMES_3.0.0/WindGenType3aIEC.cpp b/CGMES_3.0.0/WindGenType3aIEC.cpp index b4ff42111..e4ce63378 100644 --- a/CGMES_3.0.0/WindGenType3aIEC.cpp +++ b/CGMES_3.0.0/WindGenType3aIEC.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenType3aIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenType3aIEC.WindTurbineType4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType3aIEC.kpc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType3aIEC.tic", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenType3aIEC::WindGenType3aIEC() : WindTurbineType4IEC(nullptr) {} WindGenType3aIEC::~WindGenType3aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenType3aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenType3aIEC::getClassNamespaceUrl() const { - { "cim:WindGenType3aIEC.WindTurbineType4IEC", { CGMESProfile::DY, } }, - { "cim:WindGenType3aIEC.kpc", { CGMESProfile::DY, } }, - { "cim:WindGenType3aIEC.tic", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenType3aIEC::getPossibleProfilesForClass() const +const std::string& WindGenType3aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenType3aIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenType3aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenType3IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenType3aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenType3aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenType3aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4IEC_WindGenType3aIEC(BaseClass*, BaseClass*); @@ -126,25 +158,25 @@ const char* WindGenType3aIEC::debugString() const void WindGenType3aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenType3aIEC", &WindGenType3aIEC_factory); + factory_map.emplace("WindGenType3aIEC", &WindGenType3aIEC_factory); } void WindGenType3aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType3aIEC.kpc", &assign_WindGenType3aIEC_kpc); - assign_map.emplace("cim:WindGenType3aIEC.tic", &assign_WindGenType3aIEC_tic); + assign_map.emplace("WindGenType3aIEC.kpc", &assign_WindGenType3aIEC_kpc); + assign_map.emplace("WindGenType3aIEC.tic", &assign_WindGenType3aIEC_tic); } void WindGenType3aIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType3aIEC.WindTurbineType4IEC", &assign_WindGenType3aIEC_WindTurbineType4IEC); + assign_map.emplace("WindGenType3aIEC.WindTurbineType4IEC", &assign_WindGenType3aIEC_WindTurbineType4IEC); } void WindGenType3aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindGenType3IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenType3aIEC.kpc", &get_WindGenType3aIEC_kpc); - get_map.emplace("cim:WindGenType3aIEC.tic", &get_WindGenType3aIEC_tic); + get_map.emplace("WindGenType3aIEC.kpc", &get_WindGenType3aIEC_kpc); + get_map.emplace("WindGenType3aIEC.tic", &get_WindGenType3aIEC_tic); } void WindGenType3aIEC::addClassGetFnsToMap(std::map& get_map) const @@ -157,11 +189,25 @@ void WindGenType3aIEC::addEnumGetFnsToMap(std::map& g WindGenType3IEC::addEnumGetFnsToMap(get_map); } +bool WindGenType3aIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGenType3aIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindGenType3aIEC::declare() { return BaseClassDefiner(WindGenType3aIEC::addConstructToMap, WindGenType3aIEC::addPrimitiveAssignFnsToMap, WindGenType3aIEC::addClassAssignFnsToMap, WindGenType3aIEC::debugName); } +std::map WindGenType3aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenType3IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenType3aIEC_factory() diff --git a/CGMES_3.0.0/WindGenType3aIEC.hpp b/CGMES_3.0.0/WindGenType3aIEC.hpp index 5a390689c..ffb5105bc 100644 --- a/CGMES_3.0.0/WindGenType3aIEC.hpp +++ b/CGMES_3.0.0/WindGenType3aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenType3IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "Seconds.hpp" @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenType3aIEC_factory(); diff --git a/CGMES_3.0.0/WindGenType3bIEC.cpp b/CGMES_3.0.0/WindGenType3bIEC.cpp index ce842e56c..a0730257d 100644 --- a/CGMES_3.0.0/WindGenType3bIEC.cpp +++ b/CGMES_3.0.0/WindGenType3bIEC.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenType3bIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenType3bIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType3bIEC.mwtcwp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType3bIEC.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType3bIEC.two", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenType3bIEC::WindGenType3bIEC() {} WindGenType3bIEC::~WindGenType3bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenType3bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenType3bIEC::getClassNamespaceUrl() const { - { "cim:WindGenType3bIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindGenType3bIEC.mwtcwp", { CGMESProfile::DY, } }, - { "cim:WindGenType3bIEC.tg", { CGMESProfile::DY, } }, - { "cim:WindGenType3bIEC.two", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGenType3bIEC::getPossibleProfilesForClass() const +const std::string& WindGenType3bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenType3bIEC::getPossibleProfilesForAttributes() const +const std::list& WindGenType3bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindGenType3IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenType3bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenType3bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenType3bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindGenType3bIEC(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* WindGenType3bIEC::debugString() const void WindGenType3bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenType3bIEC", &WindGenType3bIEC_factory); + factory_map.emplace("WindGenType3bIEC", &WindGenType3bIEC_factory); } void WindGenType3bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType3bIEC.mwtcwp", &assign_WindGenType3bIEC_mwtcwp); - assign_map.emplace("cim:WindGenType3bIEC.tg", &assign_WindGenType3bIEC_tg); - assign_map.emplace("cim:WindGenType3bIEC.two", &assign_WindGenType3bIEC_two); + assign_map.emplace("WindGenType3bIEC.mwtcwp", &assign_WindGenType3bIEC_mwtcwp); + assign_map.emplace("WindGenType3bIEC.tg", &assign_WindGenType3bIEC_tg); + assign_map.emplace("WindGenType3bIEC.two", &assign_WindGenType3bIEC_two); } void WindGenType3bIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType3bIEC.WindDynamicsLookupTable", &assign_WindGenType3bIEC_WindDynamicsLookupTable); + assign_map.emplace("WindGenType3bIEC.WindDynamicsLookupTable", &assign_WindGenType3bIEC_WindDynamicsLookupTable); } void WindGenType3bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindGenType3IEC::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenType3bIEC.mwtcwp", &get_WindGenType3bIEC_mwtcwp); - get_map.emplace("cim:WindGenType3bIEC.tg", &get_WindGenType3bIEC_tg); - get_map.emplace("cim:WindGenType3bIEC.two", &get_WindGenType3bIEC_two); + get_map.emplace("WindGenType3bIEC.mwtcwp", &get_WindGenType3bIEC_mwtcwp); + get_map.emplace("WindGenType3bIEC.tg", &get_WindGenType3bIEC_tg); + get_map.emplace("WindGenType3bIEC.two", &get_WindGenType3bIEC_two); } void WindGenType3bIEC::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void WindGenType3bIEC::addEnumGetFnsToMap(std::map& g WindGenType3IEC::addEnumGetFnsToMap(get_map); } +bool WindGenType3bIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGenType3bIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindGenType3bIEC::declare() { return BaseClassDefiner(WindGenType3bIEC::addConstructToMap, WindGenType3bIEC::addPrimitiveAssignFnsToMap, WindGenType3bIEC::addClassAssignFnsToMap, WindGenType3bIEC::debugName); } +std::map WindGenType3bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindGenType3IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenType3bIEC_factory() diff --git a/CGMES_3.0.0/WindGenType3bIEC.hpp b/CGMES_3.0.0/WindGenType3bIEC.hpp index c7812f789..e2a190900 100644 --- a/CGMES_3.0.0/WindGenType3bIEC.hpp +++ b/CGMES_3.0.0/WindGenType3bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindGenType3IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "Seconds.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenType3bIEC_factory(); diff --git a/CGMES_3.0.0/WindGenType4IEC.cpp b/CGMES_3.0.0/WindGenType4IEC.cpp index f69ea991a..0919e026e 100644 --- a/CGMES_3.0.0/WindGenType4IEC.cpp +++ b/CGMES_3.0.0/WindGenType4IEC.cpp @@ -13,37 +13,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGenType4IEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGenType4IEC.WindTurbineType4aIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.dipmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.diqmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.diqmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindGenType4IEC.tg", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindGenType4IEC::WindGenType4IEC() : WindTurbineType4aIEC(nullptr), WindTurbineType4bIEC(nullptr) {} WindGenType4IEC::~WindGenType4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGenType4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGenType4IEC::getClassNamespaceUrl() const { - { "cim:WindGenType4IEC.WindTurbineType4aIEC", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.dipmax", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.diqmax", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.diqmin", { CGMESProfile::DY, } }, - { "cim:WindGenType4IEC.tg", { CGMESProfile::DY, } }, -}; - -std::list -WindGenType4IEC::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindGenType4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGenType4IEC::getPossibleProfilesForAttributes() const +const std::list& WindGenType4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGenType4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGenType4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGenType4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType4aIEC_WindGenType4IEC(BaseClass*, BaseClass*); @@ -206,30 +238,30 @@ const char* WindGenType4IEC::debugString() const void WindGenType4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGenType4IEC", &WindGenType4IEC_factory); + factory_map.emplace("WindGenType4IEC", &WindGenType4IEC_factory); } void WindGenType4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType4IEC.dipmax", &assign_WindGenType4IEC_dipmax); - assign_map.emplace("cim:WindGenType4IEC.diqmax", &assign_WindGenType4IEC_diqmax); - assign_map.emplace("cim:WindGenType4IEC.diqmin", &assign_WindGenType4IEC_diqmin); - assign_map.emplace("cim:WindGenType4IEC.tg", &assign_WindGenType4IEC_tg); + assign_map.emplace("WindGenType4IEC.dipmax", &assign_WindGenType4IEC_dipmax); + assign_map.emplace("WindGenType4IEC.diqmax", &assign_WindGenType4IEC_diqmax); + assign_map.emplace("WindGenType4IEC.diqmin", &assign_WindGenType4IEC_diqmin); + assign_map.emplace("WindGenType4IEC.tg", &assign_WindGenType4IEC_tg); } void WindGenType4IEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGenType4IEC.WindTurbineType4aIEC", &assign_WindGenType4IEC_WindTurbineType4aIEC); - assign_map.emplace("cim:WindGenType4IEC.WindTurbineType4bIEC", &assign_WindGenType4IEC_WindTurbineType4bIEC); + assign_map.emplace("WindGenType4IEC.WindTurbineType4aIEC", &assign_WindGenType4IEC_WindTurbineType4aIEC); + assign_map.emplace("WindGenType4IEC.WindTurbineType4bIEC", &assign_WindGenType4IEC_WindTurbineType4bIEC); } void WindGenType4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindGenType4IEC.dipmax", &get_WindGenType4IEC_dipmax); - get_map.emplace("cim:WindGenType4IEC.diqmax", &get_WindGenType4IEC_diqmax); - get_map.emplace("cim:WindGenType4IEC.diqmin", &get_WindGenType4IEC_diqmin); - get_map.emplace("cim:WindGenType4IEC.tg", &get_WindGenType4IEC_tg); + get_map.emplace("WindGenType4IEC.dipmax", &get_WindGenType4IEC_dipmax); + get_map.emplace("WindGenType4IEC.diqmax", &get_WindGenType4IEC_diqmax); + get_map.emplace("WindGenType4IEC.diqmin", &get_WindGenType4IEC_diqmin); + get_map.emplace("WindGenType4IEC.tg", &get_WindGenType4IEC_tg); } void WindGenType4IEC::addClassGetFnsToMap(std::map& get_map) const @@ -242,11 +274,25 @@ void WindGenType4IEC::addEnumGetFnsToMap(std::map& ge IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindGenType4IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGenType4IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindGenType4IEC::declare() { return BaseClassDefiner(WindGenType4IEC::addConstructToMap, WindGenType4IEC::addPrimitiveAssignFnsToMap, WindGenType4IEC::addClassAssignFnsToMap, WindGenType4IEC::debugName); } +std::map WindGenType4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGenType4IEC_factory() diff --git a/CGMES_3.0.0/WindGenType4IEC.hpp b/CGMES_3.0.0/WindGenType4IEC.hpp index e5ead6451..7297337de 100644 --- a/CGMES_3.0.0/WindGenType4IEC.hpp +++ b/CGMES_3.0.0/WindGenType4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -49,8 +50,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -58,7 +66,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGenType4IEC_factory(); diff --git a/CGMES_3.0.0/WindGeneratingUnit.cpp b/CGMES_3.0.0/WindGeneratingUnit.cpp index 36288bf89..603934c1f 100644 --- a/CGMES_3.0.0/WindGeneratingUnit.cpp +++ b/CGMES_3.0.0/WindGeneratingUnit.cpp @@ -12,34 +12,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindGeneratingUnit(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::EQ, + CGMESProfile::SSH, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindGeneratingUnit.WindPowerPlant", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, } } }, + { "WindGeneratingUnit.windGenUnitType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + WindGeneratingUnit::WindGeneratingUnit() : WindPowerPlant(nullptr) {} WindGeneratingUnit::~WindGeneratingUnit() {} -static const std::list PossibleProfilesForClass = +const std::list& WindGeneratingUnit::getAttributeNames() const { - CGMESProfile::EQ, - CGMESProfile::SSH, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindGeneratingUnit::getClassNamespaceUrl() const { - { "cim:WindGeneratingUnit.WindPowerPlant", { CGMESProfile::EQ, } }, - { "cim:WindGeneratingUnit.windGenUnitType", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindGeneratingUnit::getPossibleProfilesForClass() const +const std::string& WindGeneratingUnit::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindGeneratingUnit::getPossibleProfilesForAttributes() const +const std::list& WindGeneratingUnit::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = GeneratingUnit::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindGeneratingUnit::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindGeneratingUnit::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindGeneratingUnit::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPowerPlant_WindGeneratingUnits(BaseClass*, BaseClass*); @@ -110,17 +142,17 @@ const char* WindGeneratingUnit::debugString() const void WindGeneratingUnit::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindGeneratingUnit", &WindGeneratingUnit_factory); + factory_map.emplace("WindGeneratingUnit", &WindGeneratingUnit_factory); } void WindGeneratingUnit::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGeneratingUnit.windGenUnitType", &assign_WindGeneratingUnit_windGenUnitType); + assign_map.emplace("WindGeneratingUnit.windGenUnitType", &assign_WindGeneratingUnit_windGenUnitType); } void WindGeneratingUnit::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindGeneratingUnit.WindPowerPlant", &assign_WindGeneratingUnit_WindPowerPlant); + assign_map.emplace("WindGeneratingUnit.WindPowerPlant", &assign_WindGeneratingUnit_WindPowerPlant); } void WindGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -131,13 +163,19 @@ void WindGeneratingUnit::addPrimitiveGetFnsToMap(std::map& get_map) const { GeneratingUnit::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindGeneratingUnit.WindPowerPlant", &get_WindGeneratingUnit_WindPowerPlant); + get_map.emplace("WindGeneratingUnit.WindPowerPlant", &get_WindGeneratingUnit_WindPowerPlant); } void WindGeneratingUnit::addEnumGetFnsToMap(std::map& get_map) const { GeneratingUnit::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindGeneratingUnit.windGenUnitType", &get_WindGeneratingUnit_windGenUnitType); + get_map.emplace("WindGeneratingUnit.windGenUnitType", &get_WindGeneratingUnit_windGenUnitType); +} + +bool WindGeneratingUnit::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindGeneratingUnit" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindGeneratingUnit::declare() @@ -145,6 +183,14 @@ const BaseClassDefiner WindGeneratingUnit::declare() return BaseClassDefiner(WindGeneratingUnit::addConstructToMap, WindGeneratingUnit::addPrimitiveAssignFnsToMap, WindGeneratingUnit::addClassAssignFnsToMap, WindGeneratingUnit::debugName); } +std::map WindGeneratingUnit::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = GeneratingUnit::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindGeneratingUnit_factory() diff --git a/CGMES_3.0.0/WindGeneratingUnit.hpp b/CGMES_3.0.0/WindGeneratingUnit.hpp index a1171697d..f03578d51 100644 --- a/CGMES_3.0.0/WindGeneratingUnit.hpp +++ b/CGMES_3.0.0/WindGeneratingUnit.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "GeneratingUnit.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "WindGenUnitKind.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindGeneratingUnit_factory(); diff --git a/CGMES_3.0.0/WindMechIEC.cpp b/CGMES_3.0.0/WindMechIEC.cpp index 36d81fd65..95b02bc7e 100644 --- a/CGMES_3.0.0/WindMechIEC.cpp +++ b/CGMES_3.0.0/WindMechIEC.cpp @@ -14,38 +14,70 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindMechIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindMechIEC.WindTurbineType1or2IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindMechIEC.WindTurbineType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindMechIEC.WindTurbineType4bIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindMechIEC.cdrt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindMechIEC.hgen", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindMechIEC.hwtr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindMechIEC.kdrt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindMechIEC::WindMechIEC() : WindTurbineType1or2IEC(nullptr), WindTurbineType3IEC(nullptr), WindTurbineType4bIEC(nullptr) {} WindMechIEC::~WindMechIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindMechIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindMechIEC::getClassNamespaceUrl() const { - { "cim:WindMechIEC.WindTurbineType1or2IEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.WindTurbineType3IEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.WindTurbineType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.cdrt", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.hgen", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.hwtr", { CGMESProfile::DY, } }, - { "cim:WindMechIEC.kdrt", { CGMESProfile::DY, } }, -}; - -std::list -WindMechIEC::getPossibleProfilesForClass() const + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindMechIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindMechIEC::getPossibleProfilesForAttributes() const +const std::list& WindMechIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindMechIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindMechIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindMechIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType1or2IEC_WindMechIEC(BaseClass*, BaseClass*); @@ -226,31 +258,31 @@ const char* WindMechIEC::debugString() const void WindMechIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindMechIEC", &WindMechIEC_factory); + factory_map.emplace("WindMechIEC", &WindMechIEC_factory); } void WindMechIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindMechIEC.cdrt", &assign_WindMechIEC_cdrt); - assign_map.emplace("cim:WindMechIEC.hgen", &assign_WindMechIEC_hgen); - assign_map.emplace("cim:WindMechIEC.hwtr", &assign_WindMechIEC_hwtr); - assign_map.emplace("cim:WindMechIEC.kdrt", &assign_WindMechIEC_kdrt); + assign_map.emplace("WindMechIEC.cdrt", &assign_WindMechIEC_cdrt); + assign_map.emplace("WindMechIEC.hgen", &assign_WindMechIEC_hgen); + assign_map.emplace("WindMechIEC.hwtr", &assign_WindMechIEC_hwtr); + assign_map.emplace("WindMechIEC.kdrt", &assign_WindMechIEC_kdrt); } void WindMechIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindMechIEC.WindTurbineType1or2IEC", &assign_WindMechIEC_WindTurbineType1or2IEC); - assign_map.emplace("cim:WindMechIEC.WindTurbineType3IEC", &assign_WindMechIEC_WindTurbineType3IEC); - assign_map.emplace("cim:WindMechIEC.WindTurbineType4bIEC", &assign_WindMechIEC_WindTurbineType4bIEC); + assign_map.emplace("WindMechIEC.WindTurbineType1or2IEC", &assign_WindMechIEC_WindTurbineType1or2IEC); + assign_map.emplace("WindMechIEC.WindTurbineType3IEC", &assign_WindMechIEC_WindTurbineType3IEC); + assign_map.emplace("WindMechIEC.WindTurbineType4bIEC", &assign_WindMechIEC_WindTurbineType4bIEC); } void WindMechIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindMechIEC.cdrt", &get_WindMechIEC_cdrt); - get_map.emplace("cim:WindMechIEC.hgen", &get_WindMechIEC_hgen); - get_map.emplace("cim:WindMechIEC.hwtr", &get_WindMechIEC_hwtr); - get_map.emplace("cim:WindMechIEC.kdrt", &get_WindMechIEC_kdrt); + get_map.emplace("WindMechIEC.cdrt", &get_WindMechIEC_cdrt); + get_map.emplace("WindMechIEC.hgen", &get_WindMechIEC_hgen); + get_map.emplace("WindMechIEC.hwtr", &get_WindMechIEC_hwtr); + get_map.emplace("WindMechIEC.kdrt", &get_WindMechIEC_kdrt); } void WindMechIEC::addClassGetFnsToMap(std::map& get_map) const @@ -263,11 +295,25 @@ void WindMechIEC::addEnumGetFnsToMap(std::map& get_ma IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindMechIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindMechIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindMechIEC::declare() { return BaseClassDefiner(WindMechIEC::addConstructToMap, WindMechIEC::addPrimitiveAssignFnsToMap, WindMechIEC::addClassAssignFnsToMap, WindMechIEC::debugName); } +std::map WindMechIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindMechIEC_factory() diff --git a/CGMES_3.0.0/WindMechIEC.hpp b/CGMES_3.0.0/WindMechIEC.hpp index 399101c72..ed1239b75 100644 --- a/CGMES_3.0.0/WindMechIEC.hpp +++ b/CGMES_3.0.0/WindMechIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -53,8 +54,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -62,7 +70,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindMechIEC_factory(); diff --git a/CGMES_3.0.0/WindPitchContPowerIEC.cpp b/CGMES_3.0.0/WindPitchContPowerIEC.cpp index 424f5592d..0fd8d5514 100644 --- a/CGMES_3.0.0/WindPitchContPowerIEC.cpp +++ b/CGMES_3.0.0/WindPitchContPowerIEC.cpp @@ -14,41 +14,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPitchContPowerIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPitchContPowerIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.WindGenTurbineType1bIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.WindGenTurbineType2IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.dpmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.dpmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.pmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.pset", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.t1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.tr", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPitchContPowerIEC.uuvrt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPitchContPowerIEC::WindPitchContPowerIEC() : WindGenTurbineType1bIEC(nullptr), WindGenTurbineType2IEC(nullptr) {} WindPitchContPowerIEC::~WindPitchContPowerIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPitchContPowerIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPitchContPowerIEC::getClassNamespaceUrl() const { - { "cim:WindPitchContPowerIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.WindGenTurbineType1bIEC", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.WindGenTurbineType2IEC", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.dpmax", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.dpmin", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.pmin", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.pset", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.t1", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.tr", { CGMESProfile::DY, } }, - { "cim:WindPitchContPowerIEC.uuvrt", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPitchContPowerIEC::getPossibleProfilesForClass() const +const std::string& WindPitchContPowerIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPitchContPowerIEC::getPossibleProfilesForAttributes() const +const std::list& WindPitchContPowerIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPitchContPowerIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPitchContPowerIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPitchContPowerIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindPitchContPowerIEC(BaseClass*, BaseClass*); @@ -316,37 +348,37 @@ const char* WindPitchContPowerIEC::debugString() const void WindPitchContPowerIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPitchContPowerIEC", &WindPitchContPowerIEC_factory); + factory_map.emplace("WindPitchContPowerIEC", &WindPitchContPowerIEC_factory); } void WindPitchContPowerIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPitchContPowerIEC.dpmax", &assign_WindPitchContPowerIEC_dpmax); - assign_map.emplace("cim:WindPitchContPowerIEC.dpmin", &assign_WindPitchContPowerIEC_dpmin); - assign_map.emplace("cim:WindPitchContPowerIEC.pmin", &assign_WindPitchContPowerIEC_pmin); - assign_map.emplace("cim:WindPitchContPowerIEC.pset", &assign_WindPitchContPowerIEC_pset); - assign_map.emplace("cim:WindPitchContPowerIEC.t1", &assign_WindPitchContPowerIEC_t1); - assign_map.emplace("cim:WindPitchContPowerIEC.tr", &assign_WindPitchContPowerIEC_tr); - assign_map.emplace("cim:WindPitchContPowerIEC.uuvrt", &assign_WindPitchContPowerIEC_uuvrt); + assign_map.emplace("WindPitchContPowerIEC.dpmax", &assign_WindPitchContPowerIEC_dpmax); + assign_map.emplace("WindPitchContPowerIEC.dpmin", &assign_WindPitchContPowerIEC_dpmin); + assign_map.emplace("WindPitchContPowerIEC.pmin", &assign_WindPitchContPowerIEC_pmin); + assign_map.emplace("WindPitchContPowerIEC.pset", &assign_WindPitchContPowerIEC_pset); + assign_map.emplace("WindPitchContPowerIEC.t1", &assign_WindPitchContPowerIEC_t1); + assign_map.emplace("WindPitchContPowerIEC.tr", &assign_WindPitchContPowerIEC_tr); + assign_map.emplace("WindPitchContPowerIEC.uuvrt", &assign_WindPitchContPowerIEC_uuvrt); } void WindPitchContPowerIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPitchContPowerIEC.WindDynamicsLookupTable", &assign_WindPitchContPowerIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindPitchContPowerIEC.WindGenTurbineType1bIEC", &assign_WindPitchContPowerIEC_WindGenTurbineType1bIEC); - assign_map.emplace("cim:WindPitchContPowerIEC.WindGenTurbineType2IEC", &assign_WindPitchContPowerIEC_WindGenTurbineType2IEC); + assign_map.emplace("WindPitchContPowerIEC.WindDynamicsLookupTable", &assign_WindPitchContPowerIEC_WindDynamicsLookupTable); + assign_map.emplace("WindPitchContPowerIEC.WindGenTurbineType1bIEC", &assign_WindPitchContPowerIEC_WindGenTurbineType1bIEC); + assign_map.emplace("WindPitchContPowerIEC.WindGenTurbineType2IEC", &assign_WindPitchContPowerIEC_WindGenTurbineType2IEC); } void WindPitchContPowerIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPitchContPowerIEC.dpmax", &get_WindPitchContPowerIEC_dpmax); - get_map.emplace("cim:WindPitchContPowerIEC.dpmin", &get_WindPitchContPowerIEC_dpmin); - get_map.emplace("cim:WindPitchContPowerIEC.pmin", &get_WindPitchContPowerIEC_pmin); - get_map.emplace("cim:WindPitchContPowerIEC.pset", &get_WindPitchContPowerIEC_pset); - get_map.emplace("cim:WindPitchContPowerIEC.t1", &get_WindPitchContPowerIEC_t1); - get_map.emplace("cim:WindPitchContPowerIEC.tr", &get_WindPitchContPowerIEC_tr); - get_map.emplace("cim:WindPitchContPowerIEC.uuvrt", &get_WindPitchContPowerIEC_uuvrt); + get_map.emplace("WindPitchContPowerIEC.dpmax", &get_WindPitchContPowerIEC_dpmax); + get_map.emplace("WindPitchContPowerIEC.dpmin", &get_WindPitchContPowerIEC_dpmin); + get_map.emplace("WindPitchContPowerIEC.pmin", &get_WindPitchContPowerIEC_pmin); + get_map.emplace("WindPitchContPowerIEC.pset", &get_WindPitchContPowerIEC_pset); + get_map.emplace("WindPitchContPowerIEC.t1", &get_WindPitchContPowerIEC_t1); + get_map.emplace("WindPitchContPowerIEC.tr", &get_WindPitchContPowerIEC_tr); + get_map.emplace("WindPitchContPowerIEC.uuvrt", &get_WindPitchContPowerIEC_uuvrt); } void WindPitchContPowerIEC::addClassGetFnsToMap(std::map& get_map) const @@ -359,11 +391,25 @@ void WindPitchContPowerIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPitchContPowerIEC::declare() { return BaseClassDefiner(WindPitchContPowerIEC::addConstructToMap, WindPitchContPowerIEC::addPrimitiveAssignFnsToMap, WindPitchContPowerIEC::addClassAssignFnsToMap, WindPitchContPowerIEC::debugName); } +std::map WindPitchContPowerIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPitchContPowerIEC_factory() diff --git a/CGMES_3.0.0/WindPitchContPowerIEC.hpp b/CGMES_3.0.0/WindPitchContPowerIEC.hpp index cf707c5e0..357908202 100644 --- a/CGMES_3.0.0/WindPitchContPowerIEC.hpp +++ b/CGMES_3.0.0/WindPitchContPowerIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -62,8 +63,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -71,7 +79,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPitchContPowerIEC_factory(); diff --git a/CGMES_3.0.0/WindPlantDynamics.cpp b/CGMES_3.0.0/WindPlantDynamics.cpp index c89fc1bb8..92d33aadc 100644 --- a/CGMES_3.0.0/WindPlantDynamics.cpp +++ b/CGMES_3.0.0/WindPlantDynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantDynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantDynamics.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantDynamics.WindTurbineType3or4Dynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantDynamics::WindPlantDynamics() : RemoteInputSignal(nullptr) {} WindPlantDynamics::~WindPlantDynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantDynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantDynamics::getClassNamespaceUrl() const { - { "cim:WindPlantDynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:WindPlantDynamics.WindTurbineType3or4Dynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantDynamics::getPossibleProfilesForClass() const +const std::string& WindPlantDynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantDynamics::getPossibleProfilesForAttributes() const +const std::list& WindPlantDynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantDynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantDynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantDynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_RemoteInputSignal_WindPlantDynamics(BaseClass*, BaseClass*); @@ -99,7 +131,7 @@ const char* WindPlantDynamics::debugString() const void WindPlantDynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantDynamics", &WindPlantDynamics_factory); + factory_map.emplace("WindPlantDynamics", &WindPlantDynamics_factory); } void WindPlantDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -108,8 +140,8 @@ void WindPlantDynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantDynamics.RemoteInputSignal", &assign_WindPlantDynamics_RemoteInputSignal); - assign_map.emplace("cim:WindPlantDynamics.WindTurbineType3or4Dynamics", &assign_WindPlantDynamics_WindTurbineType3or4Dynamics); + assign_map.emplace("WindPlantDynamics.RemoteInputSignal", &assign_WindPlantDynamics_RemoteInputSignal); + assign_map.emplace("WindPlantDynamics.WindTurbineType3or4Dynamics", &assign_WindPlantDynamics_WindTurbineType3or4Dynamics); } void WindPlantDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -120,7 +152,7 @@ void WindPlantDynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantDynamics.RemoteInputSignal", &get_WindPlantDynamics_RemoteInputSignal); + get_map.emplace("WindPlantDynamics.RemoteInputSignal", &get_WindPlantDynamics_RemoteInputSignal); } void WindPlantDynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -128,11 +160,25 @@ void WindPlantDynamics::addEnumGetFnsToMap(std::map& DynamicsFunctionBlock::addEnumGetFnsToMap(get_map); } +bool WindPlantDynamics::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantDynamics" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantDynamics::declare() { return BaseClassDefiner(WindPlantDynamics::addConstructToMap, WindPlantDynamics::addPrimitiveAssignFnsToMap, WindPlantDynamics::addClassAssignFnsToMap, WindPlantDynamics::debugName); } +std::map WindPlantDynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantDynamics_factory() diff --git a/CGMES_3.0.0/WindPlantDynamics.hpp b/CGMES_3.0.0/WindPlantDynamics.hpp index f8475b535..3360efbae 100644 --- a/CGMES_3.0.0/WindPlantDynamics.hpp +++ b/CGMES_3.0.0/WindPlantDynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantDynamics_factory(); diff --git a/CGMES_3.0.0/WindPlantFreqPcontrolIEC.cpp b/CGMES_3.0.0/WindPlantFreqPcontrolIEC.cpp index e8b85f2ab..27cbe3bba 100644 --- a/CGMES_3.0.0/WindPlantFreqPcontrolIEC.cpp +++ b/CGMES_3.0.0/WindPlantFreqPcontrolIEC.cpp @@ -13,48 +13,80 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantFreqPcontrolIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.WindPlantIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dprefmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dprefmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dpwprefmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.dpwprefmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kiwpp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kiwppmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kiwppmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kpwpp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.kwppref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.prefmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.prefmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.tpft", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.tpfv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.twpffiltp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantFreqPcontrolIEC.twppfiltp", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantFreqPcontrolIEC::WindPlantFreqPcontrolIEC() : WindPlantIEC(nullptr) {} WindPlantFreqPcontrolIEC::~WindPlantFreqPcontrolIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantFreqPcontrolIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantFreqPcontrolIEC::getClassNamespaceUrl() const { - { "cim:WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.WindPlantIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dprefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dprefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dpwprefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.dpwprefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kiwpp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kiwppmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kiwppmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kpwpp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.kwppref", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.prefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.prefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.tpft", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.tpfv", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.twpffiltp", { CGMESProfile::DY, } }, - { "cim:WindPlantFreqPcontrolIEC.twppfiltp", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantFreqPcontrolIEC::getPossibleProfilesForClass() const +const std::string& WindPlantFreqPcontrolIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantFreqPcontrolIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantFreqPcontrolIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantFreqPcontrolIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantFreqPcontrolIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantFreqPcontrolIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindPlantFreqPcontrolIEC(BaseClass*, BaseClass*); @@ -536,52 +568,52 @@ const char* WindPlantFreqPcontrolIEC::debugString() const void WindPlantFreqPcontrolIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantFreqPcontrolIEC", &WindPlantFreqPcontrolIEC_factory); + factory_map.emplace("WindPlantFreqPcontrolIEC", &WindPlantFreqPcontrolIEC_factory); } void WindPlantFreqPcontrolIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmax", &assign_WindPlantFreqPcontrolIEC_dprefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmin", &assign_WindPlantFreqPcontrolIEC_dprefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dpwprefmax", &assign_WindPlantFreqPcontrolIEC_dpwprefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.dpwprefmin", &assign_WindPlantFreqPcontrolIEC_dpwprefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwpp", &assign_WindPlantFreqPcontrolIEC_kiwpp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwppmax", &assign_WindPlantFreqPcontrolIEC_kiwppmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwppmin", &assign_WindPlantFreqPcontrolIEC_kiwppmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kpwpp", &assign_WindPlantFreqPcontrolIEC_kpwpp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.kwppref", &assign_WindPlantFreqPcontrolIEC_kwppref); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmax", &assign_WindPlantFreqPcontrolIEC_prefmax); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmin", &assign_WindPlantFreqPcontrolIEC_prefmin); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.tpft", &assign_WindPlantFreqPcontrolIEC_tpft); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.tpfv", &assign_WindPlantFreqPcontrolIEC_tpfv); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.twpffiltp", &assign_WindPlantFreqPcontrolIEC_twpffiltp); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.twppfiltp", &assign_WindPlantFreqPcontrolIEC_twppfiltp); + assign_map.emplace("WindPlantFreqPcontrolIEC.dprefmax", &assign_WindPlantFreqPcontrolIEC_dprefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.dprefmin", &assign_WindPlantFreqPcontrolIEC_dprefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.dpwprefmax", &assign_WindPlantFreqPcontrolIEC_dpwprefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.dpwprefmin", &assign_WindPlantFreqPcontrolIEC_dpwprefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.kiwpp", &assign_WindPlantFreqPcontrolIEC_kiwpp); + assign_map.emplace("WindPlantFreqPcontrolIEC.kiwppmax", &assign_WindPlantFreqPcontrolIEC_kiwppmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.kiwppmin", &assign_WindPlantFreqPcontrolIEC_kiwppmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.kpwpp", &assign_WindPlantFreqPcontrolIEC_kpwpp); + assign_map.emplace("WindPlantFreqPcontrolIEC.kwppref", &assign_WindPlantFreqPcontrolIEC_kwppref); + assign_map.emplace("WindPlantFreqPcontrolIEC.prefmax", &assign_WindPlantFreqPcontrolIEC_prefmax); + assign_map.emplace("WindPlantFreqPcontrolIEC.prefmin", &assign_WindPlantFreqPcontrolIEC_prefmin); + assign_map.emplace("WindPlantFreqPcontrolIEC.tpft", &assign_WindPlantFreqPcontrolIEC_tpft); + assign_map.emplace("WindPlantFreqPcontrolIEC.tpfv", &assign_WindPlantFreqPcontrolIEC_tpfv); + assign_map.emplace("WindPlantFreqPcontrolIEC.twpffiltp", &assign_WindPlantFreqPcontrolIEC_twpffiltp); + assign_map.emplace("WindPlantFreqPcontrolIEC.twppfiltp", &assign_WindPlantFreqPcontrolIEC_twppfiltp); } void WindPlantFreqPcontrolIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", &assign_WindPlantFreqPcontrolIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindPlantFreqPcontrolIEC.WindPlantIEC", &assign_WindPlantFreqPcontrolIEC_WindPlantIEC); + assign_map.emplace("WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", &assign_WindPlantFreqPcontrolIEC_WindDynamicsLookupTable); + assign_map.emplace("WindPlantFreqPcontrolIEC.WindPlantIEC", &assign_WindPlantFreqPcontrolIEC_WindPlantIEC); } void WindPlantFreqPcontrolIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmax", &get_WindPlantFreqPcontrolIEC_dprefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dprefmin", &get_WindPlantFreqPcontrolIEC_dprefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dpwprefmax", &get_WindPlantFreqPcontrolIEC_dpwprefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.dpwprefmin", &get_WindPlantFreqPcontrolIEC_dpwprefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwpp", &get_WindPlantFreqPcontrolIEC_kiwpp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwppmax", &get_WindPlantFreqPcontrolIEC_kiwppmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kiwppmin", &get_WindPlantFreqPcontrolIEC_kiwppmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kpwpp", &get_WindPlantFreqPcontrolIEC_kpwpp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.kwppref", &get_WindPlantFreqPcontrolIEC_kwppref); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmax", &get_WindPlantFreqPcontrolIEC_prefmax); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.prefmin", &get_WindPlantFreqPcontrolIEC_prefmin); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.tpft", &get_WindPlantFreqPcontrolIEC_tpft); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.tpfv", &get_WindPlantFreqPcontrolIEC_tpfv); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.twpffiltp", &get_WindPlantFreqPcontrolIEC_twpffiltp); - get_map.emplace("cim:WindPlantFreqPcontrolIEC.twppfiltp", &get_WindPlantFreqPcontrolIEC_twppfiltp); + get_map.emplace("WindPlantFreqPcontrolIEC.dprefmax", &get_WindPlantFreqPcontrolIEC_dprefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.dprefmin", &get_WindPlantFreqPcontrolIEC_dprefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.dpwprefmax", &get_WindPlantFreqPcontrolIEC_dpwprefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.dpwprefmin", &get_WindPlantFreqPcontrolIEC_dpwprefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.kiwpp", &get_WindPlantFreqPcontrolIEC_kiwpp); + get_map.emplace("WindPlantFreqPcontrolIEC.kiwppmax", &get_WindPlantFreqPcontrolIEC_kiwppmax); + get_map.emplace("WindPlantFreqPcontrolIEC.kiwppmin", &get_WindPlantFreqPcontrolIEC_kiwppmin); + get_map.emplace("WindPlantFreqPcontrolIEC.kpwpp", &get_WindPlantFreqPcontrolIEC_kpwpp); + get_map.emplace("WindPlantFreqPcontrolIEC.kwppref", &get_WindPlantFreqPcontrolIEC_kwppref); + get_map.emplace("WindPlantFreqPcontrolIEC.prefmax", &get_WindPlantFreqPcontrolIEC_prefmax); + get_map.emplace("WindPlantFreqPcontrolIEC.prefmin", &get_WindPlantFreqPcontrolIEC_prefmin); + get_map.emplace("WindPlantFreqPcontrolIEC.tpft", &get_WindPlantFreqPcontrolIEC_tpft); + get_map.emplace("WindPlantFreqPcontrolIEC.tpfv", &get_WindPlantFreqPcontrolIEC_tpfv); + get_map.emplace("WindPlantFreqPcontrolIEC.twpffiltp", &get_WindPlantFreqPcontrolIEC_twpffiltp); + get_map.emplace("WindPlantFreqPcontrolIEC.twppfiltp", &get_WindPlantFreqPcontrolIEC_twppfiltp); } void WindPlantFreqPcontrolIEC::addClassGetFnsToMap(std::map& get_map) const @@ -594,11 +626,25 @@ void WindPlantFreqPcontrolIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantFreqPcontrolIEC::declare() { return BaseClassDefiner(WindPlantFreqPcontrolIEC::addConstructToMap, WindPlantFreqPcontrolIEC::addPrimitiveAssignFnsToMap, WindPlantFreqPcontrolIEC::addClassAssignFnsToMap, WindPlantFreqPcontrolIEC::debugName); } +std::map WindPlantFreqPcontrolIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantFreqPcontrolIEC_factory() diff --git a/CGMES_3.0.0/WindPlantFreqPcontrolIEC.hpp b/CGMES_3.0.0/WindPlantFreqPcontrolIEC.hpp index 039e72f9e..925ed6a24 100644 --- a/CGMES_3.0.0/WindPlantFreqPcontrolIEC.hpp +++ b/CGMES_3.0.0/WindPlantFreqPcontrolIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -83,8 +84,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -92,7 +100,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantFreqPcontrolIEC_factory(); diff --git a/CGMES_3.0.0/WindPlantIEC.cpp b/CGMES_3.0.0/WindPlantIEC.cpp index b455a5284..54902cb43 100644 --- a/CGMES_3.0.0/WindPlantIEC.cpp +++ b/CGMES_3.0.0/WindPlantIEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantIEC.WindPlantFreqPcontrolIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantIEC.WindPlantReactiveControlIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantIEC::WindPlantIEC() : WindPlantFreqPcontrolIEC(nullptr), WindPlantReactiveControlIEC(nullptr) {} WindPlantIEC::~WindPlantIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantIEC::getClassNamespaceUrl() const { - { "cim:WindPlantIEC.WindPlantFreqPcontrolIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantIEC.WindPlantReactiveControlIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantIEC::getPossibleProfilesForClass() const +const std::string& WindPlantIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantIEC::getPossibleProfilesForAttributes() const +const std::list& WindPlantIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindPlantDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindPlantFreqPcontrolIEC_WindPlantIEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindPlantIEC::debugString() const void WindPlantIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantIEC", &WindPlantIEC_factory); + factory_map.emplace("WindPlantIEC", &WindPlantIEC_factory); } void WindPlantIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindPlantIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantIEC.WindPlantFreqPcontrolIEC", &assign_WindPlantIEC_WindPlantFreqPcontrolIEC); - assign_map.emplace("cim:WindPlantIEC.WindPlantReactiveControlIEC", &assign_WindPlantIEC_WindPlantReactiveControlIEC); + assign_map.emplace("WindPlantIEC.WindPlantFreqPcontrolIEC", &assign_WindPlantIEC_WindPlantFreqPcontrolIEC); + assign_map.emplace("WindPlantIEC.WindPlantReactiveControlIEC", &assign_WindPlantIEC_WindPlantReactiveControlIEC); } void WindPlantIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindPlantIEC::addPrimitiveGetFnsToMap(std::map& void WindPlantIEC::addClassGetFnsToMap(std::map& get_map) const { WindPlantDynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantIEC.WindPlantFreqPcontrolIEC", &get_WindPlantIEC_WindPlantFreqPcontrolIEC); - get_map.emplace("cim:WindPlantIEC.WindPlantReactiveControlIEC", &get_WindPlantIEC_WindPlantReactiveControlIEC); + get_map.emplace("WindPlantIEC.WindPlantFreqPcontrolIEC", &get_WindPlantIEC_WindPlantFreqPcontrolIEC); + get_map.emplace("WindPlantIEC.WindPlantReactiveControlIEC", &get_WindPlantIEC_WindPlantReactiveControlIEC); } void WindPlantIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindPlantIEC::addEnumGetFnsToMap(std::map& get_m WindPlantDynamics::addEnumGetFnsToMap(get_map); } +bool WindPlantIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantIEC::declare() { return BaseClassDefiner(WindPlantIEC::addConstructToMap, WindPlantIEC::addPrimitiveAssignFnsToMap, WindPlantIEC::addClassAssignFnsToMap, WindPlantIEC::debugName); } +std::map WindPlantIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindPlantDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantIEC_factory() diff --git a/CGMES_3.0.0/WindPlantIEC.hpp b/CGMES_3.0.0/WindPlantIEC.hpp index 78e0651ce..58575c344 100644 --- a/CGMES_3.0.0/WindPlantIEC.hpp +++ b/CGMES_3.0.0/WindPlantIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindPlantDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantIEC_factory(); diff --git a/CGMES_3.0.0/WindPlantReactiveControlIEC.cpp b/CGMES_3.0.0/WindPlantReactiveControlIEC.cpp index ab7f19d05..f6d0dbb39 100644 --- a/CGMES_3.0.0/WindPlantReactiveControlIEC.cpp +++ b/CGMES_3.0.0/WindPlantReactiveControlIEC.cpp @@ -13,51 +13,83 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantReactiveControlIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantReactiveControlIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.WindPlantIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.dxrefmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.dxrefmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kiwpx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kiwpxmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kiwpxmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kpwpx", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kwpqref", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.kwpqu", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.tuqfilt", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twppfiltq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twpqfiltq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.twpufiltq", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.txft", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.txfv", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.uwpqdip", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.windPlantQcontrolModesType", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.xrefmax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantReactiveControlIEC.xrefmin", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantReactiveControlIEC::WindPlantReactiveControlIEC() : WindPlantIEC(nullptr) {} WindPlantReactiveControlIEC::~WindPlantReactiveControlIEC() {} -static const std::list PossibleProfilesForClass = -{ - CGMESProfile::DY, -}; - -static const std::map> PossibleProfilesForAttributes = -{ - { "cim:WindPlantReactiveControlIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.WindPlantIEC", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.dxrefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.dxrefmin", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kiwpx", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kiwpxmax", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kiwpxmin", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kpwpx", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kwpqref", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.kwpqu", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.tuqfilt", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twppfiltq", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twpqfiltq", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.twpufiltq", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.txft", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.txfv", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.uwpqdip", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.windPlantQcontrolModesType", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.xrefmax", { CGMESProfile::DY, } }, - { "cim:WindPlantReactiveControlIEC.xrefmin", { CGMESProfile::DY, } }, -}; - -std::list -WindPlantReactiveControlIEC::getPossibleProfilesForClass() const -{ - return PossibleProfilesForClass; -} - -std::map> -WindPlantReactiveControlIEC::getPossibleProfilesForAttributes() const -{ - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; +const std::list& WindPlantReactiveControlIEC::getAttributeNames() const +{ + return getCimClassDetails().AttrNamesList; +} + +const std::string& WindPlantReactiveControlIEC::getClassNamespaceUrl() const +{ + return getCimClassDetails().ClassNamespace; +} + +const std::string& WindPlantReactiveControlIEC::getAttributeNamespaceUrl(const std::string& attrName) const +{ + return getCimClassDetails().getAttributeNamespaceUrl(attrName); +} + +const std::list& WindPlantReactiveControlIEC::getPossibleProfiles() const +{ + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantReactiveControlIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantReactiveControlIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantReactiveControlIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindPlantReactiveControlIEC(BaseClass*, BaseClass*); @@ -626,57 +658,57 @@ const char* WindPlantReactiveControlIEC::debugString() const void WindPlantReactiveControlIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantReactiveControlIEC", &WindPlantReactiveControlIEC_factory); + factory_map.emplace("WindPlantReactiveControlIEC", &WindPlantReactiveControlIEC_factory); } void WindPlantReactiveControlIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantReactiveControlIEC.dxrefmax", &assign_WindPlantReactiveControlIEC_dxrefmax); - assign_map.emplace("cim:WindPlantReactiveControlIEC.dxrefmin", &assign_WindPlantReactiveControlIEC_dxrefmin); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kiwpx", &assign_WindPlantReactiveControlIEC_kiwpx); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kiwpxmax", &assign_WindPlantReactiveControlIEC_kiwpxmax); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kiwpxmin", &assign_WindPlantReactiveControlIEC_kiwpxmin); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kpwpx", &assign_WindPlantReactiveControlIEC_kpwpx); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kwpqref", &assign_WindPlantReactiveControlIEC_kwpqref); - assign_map.emplace("cim:WindPlantReactiveControlIEC.kwpqu", &assign_WindPlantReactiveControlIEC_kwpqu); - assign_map.emplace("cim:WindPlantReactiveControlIEC.tuqfilt", &assign_WindPlantReactiveControlIEC_tuqfilt); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twppfiltq", &assign_WindPlantReactiveControlIEC_twppfiltq); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twpqfiltq", &assign_WindPlantReactiveControlIEC_twpqfiltq); - assign_map.emplace("cim:WindPlantReactiveControlIEC.twpufiltq", &assign_WindPlantReactiveControlIEC_twpufiltq); - assign_map.emplace("cim:WindPlantReactiveControlIEC.txft", &assign_WindPlantReactiveControlIEC_txft); - assign_map.emplace("cim:WindPlantReactiveControlIEC.txfv", &assign_WindPlantReactiveControlIEC_txfv); - assign_map.emplace("cim:WindPlantReactiveControlIEC.uwpqdip", &assign_WindPlantReactiveControlIEC_uwpqdip); - assign_map.emplace("cim:WindPlantReactiveControlIEC.windPlantQcontrolModesType", &assign_WindPlantReactiveControlIEC_windPlantQcontrolModesType); - assign_map.emplace("cim:WindPlantReactiveControlIEC.xrefmax", &assign_WindPlantReactiveControlIEC_xrefmax); - assign_map.emplace("cim:WindPlantReactiveControlIEC.xrefmin", &assign_WindPlantReactiveControlIEC_xrefmin); + assign_map.emplace("WindPlantReactiveControlIEC.dxrefmax", &assign_WindPlantReactiveControlIEC_dxrefmax); + assign_map.emplace("WindPlantReactiveControlIEC.dxrefmin", &assign_WindPlantReactiveControlIEC_dxrefmin); + assign_map.emplace("WindPlantReactiveControlIEC.kiwpx", &assign_WindPlantReactiveControlIEC_kiwpx); + assign_map.emplace("WindPlantReactiveControlIEC.kiwpxmax", &assign_WindPlantReactiveControlIEC_kiwpxmax); + assign_map.emplace("WindPlantReactiveControlIEC.kiwpxmin", &assign_WindPlantReactiveControlIEC_kiwpxmin); + assign_map.emplace("WindPlantReactiveControlIEC.kpwpx", &assign_WindPlantReactiveControlIEC_kpwpx); + assign_map.emplace("WindPlantReactiveControlIEC.kwpqref", &assign_WindPlantReactiveControlIEC_kwpqref); + assign_map.emplace("WindPlantReactiveControlIEC.kwpqu", &assign_WindPlantReactiveControlIEC_kwpqu); + assign_map.emplace("WindPlantReactiveControlIEC.tuqfilt", &assign_WindPlantReactiveControlIEC_tuqfilt); + assign_map.emplace("WindPlantReactiveControlIEC.twppfiltq", &assign_WindPlantReactiveControlIEC_twppfiltq); + assign_map.emplace("WindPlantReactiveControlIEC.twpqfiltq", &assign_WindPlantReactiveControlIEC_twpqfiltq); + assign_map.emplace("WindPlantReactiveControlIEC.twpufiltq", &assign_WindPlantReactiveControlIEC_twpufiltq); + assign_map.emplace("WindPlantReactiveControlIEC.txft", &assign_WindPlantReactiveControlIEC_txft); + assign_map.emplace("WindPlantReactiveControlIEC.txfv", &assign_WindPlantReactiveControlIEC_txfv); + assign_map.emplace("WindPlantReactiveControlIEC.uwpqdip", &assign_WindPlantReactiveControlIEC_uwpqdip); + assign_map.emplace("WindPlantReactiveControlIEC.windPlantQcontrolModesType", &assign_WindPlantReactiveControlIEC_windPlantQcontrolModesType); + assign_map.emplace("WindPlantReactiveControlIEC.xrefmax", &assign_WindPlantReactiveControlIEC_xrefmax); + assign_map.emplace("WindPlantReactiveControlIEC.xrefmin", &assign_WindPlantReactiveControlIEC_xrefmin); } void WindPlantReactiveControlIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantReactiveControlIEC.WindDynamicsLookupTable", &assign_WindPlantReactiveControlIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindPlantReactiveControlIEC.WindPlantIEC", &assign_WindPlantReactiveControlIEC_WindPlantIEC); + assign_map.emplace("WindPlantReactiveControlIEC.WindDynamicsLookupTable", &assign_WindPlantReactiveControlIEC_WindDynamicsLookupTable); + assign_map.emplace("WindPlantReactiveControlIEC.WindPlantIEC", &assign_WindPlantReactiveControlIEC_WindPlantIEC); } void WindPlantReactiveControlIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantReactiveControlIEC.dxrefmax", &get_WindPlantReactiveControlIEC_dxrefmax); - get_map.emplace("cim:WindPlantReactiveControlIEC.dxrefmin", &get_WindPlantReactiveControlIEC_dxrefmin); - get_map.emplace("cim:WindPlantReactiveControlIEC.kiwpx", &get_WindPlantReactiveControlIEC_kiwpx); - get_map.emplace("cim:WindPlantReactiveControlIEC.kiwpxmax", &get_WindPlantReactiveControlIEC_kiwpxmax); - get_map.emplace("cim:WindPlantReactiveControlIEC.kiwpxmin", &get_WindPlantReactiveControlIEC_kiwpxmin); - get_map.emplace("cim:WindPlantReactiveControlIEC.kpwpx", &get_WindPlantReactiveControlIEC_kpwpx); - get_map.emplace("cim:WindPlantReactiveControlIEC.kwpqref", &get_WindPlantReactiveControlIEC_kwpqref); - get_map.emplace("cim:WindPlantReactiveControlIEC.kwpqu", &get_WindPlantReactiveControlIEC_kwpqu); - get_map.emplace("cim:WindPlantReactiveControlIEC.tuqfilt", &get_WindPlantReactiveControlIEC_tuqfilt); - get_map.emplace("cim:WindPlantReactiveControlIEC.twppfiltq", &get_WindPlantReactiveControlIEC_twppfiltq); - get_map.emplace("cim:WindPlantReactiveControlIEC.twpqfiltq", &get_WindPlantReactiveControlIEC_twpqfiltq); - get_map.emplace("cim:WindPlantReactiveControlIEC.twpufiltq", &get_WindPlantReactiveControlIEC_twpufiltq); - get_map.emplace("cim:WindPlantReactiveControlIEC.txft", &get_WindPlantReactiveControlIEC_txft); - get_map.emplace("cim:WindPlantReactiveControlIEC.txfv", &get_WindPlantReactiveControlIEC_txfv); - get_map.emplace("cim:WindPlantReactiveControlIEC.uwpqdip", &get_WindPlantReactiveControlIEC_uwpqdip); - get_map.emplace("cim:WindPlantReactiveControlIEC.xrefmax", &get_WindPlantReactiveControlIEC_xrefmax); - get_map.emplace("cim:WindPlantReactiveControlIEC.xrefmin", &get_WindPlantReactiveControlIEC_xrefmin); + get_map.emplace("WindPlantReactiveControlIEC.dxrefmax", &get_WindPlantReactiveControlIEC_dxrefmax); + get_map.emplace("WindPlantReactiveControlIEC.dxrefmin", &get_WindPlantReactiveControlIEC_dxrefmin); + get_map.emplace("WindPlantReactiveControlIEC.kiwpx", &get_WindPlantReactiveControlIEC_kiwpx); + get_map.emplace("WindPlantReactiveControlIEC.kiwpxmax", &get_WindPlantReactiveControlIEC_kiwpxmax); + get_map.emplace("WindPlantReactiveControlIEC.kiwpxmin", &get_WindPlantReactiveControlIEC_kiwpxmin); + get_map.emplace("WindPlantReactiveControlIEC.kpwpx", &get_WindPlantReactiveControlIEC_kpwpx); + get_map.emplace("WindPlantReactiveControlIEC.kwpqref", &get_WindPlantReactiveControlIEC_kwpqref); + get_map.emplace("WindPlantReactiveControlIEC.kwpqu", &get_WindPlantReactiveControlIEC_kwpqu); + get_map.emplace("WindPlantReactiveControlIEC.tuqfilt", &get_WindPlantReactiveControlIEC_tuqfilt); + get_map.emplace("WindPlantReactiveControlIEC.twppfiltq", &get_WindPlantReactiveControlIEC_twppfiltq); + get_map.emplace("WindPlantReactiveControlIEC.twpqfiltq", &get_WindPlantReactiveControlIEC_twpqfiltq); + get_map.emplace("WindPlantReactiveControlIEC.twpufiltq", &get_WindPlantReactiveControlIEC_twpufiltq); + get_map.emplace("WindPlantReactiveControlIEC.txft", &get_WindPlantReactiveControlIEC_txft); + get_map.emplace("WindPlantReactiveControlIEC.txfv", &get_WindPlantReactiveControlIEC_txfv); + get_map.emplace("WindPlantReactiveControlIEC.uwpqdip", &get_WindPlantReactiveControlIEC_uwpqdip); + get_map.emplace("WindPlantReactiveControlIEC.xrefmax", &get_WindPlantReactiveControlIEC_xrefmax); + get_map.emplace("WindPlantReactiveControlIEC.xrefmin", &get_WindPlantReactiveControlIEC_xrefmin); } void WindPlantReactiveControlIEC::addClassGetFnsToMap(std::map& get_map) const @@ -687,7 +719,13 @@ void WindPlantReactiveControlIEC::addClassGetFnsToMap(std::map& get_map) const { IdentifiedObject::addEnumGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantReactiveControlIEC.windPlantQcontrolModesType", &get_WindPlantReactiveControlIEC_windPlantQcontrolModesType); + get_map.emplace("WindPlantReactiveControlIEC.windPlantQcontrolModesType", &get_WindPlantReactiveControlIEC_windPlantQcontrolModesType); +} + +bool WindPlantReactiveControlIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPlantReactiveControlIEC" && + dynamic_cast(otherObject) != nullptr; } const BaseClassDefiner WindPlantReactiveControlIEC::declare() @@ -695,6 +733,14 @@ const BaseClassDefiner WindPlantReactiveControlIEC::declare() return BaseClassDefiner(WindPlantReactiveControlIEC::addConstructToMap, WindPlantReactiveControlIEC::addPrimitiveAssignFnsToMap, WindPlantReactiveControlIEC::addClassAssignFnsToMap, WindPlantReactiveControlIEC::debugName); } +std::map WindPlantReactiveControlIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantReactiveControlIEC_factory() diff --git a/CGMES_3.0.0/WindPlantReactiveControlIEC.hpp b/CGMES_3.0.0/WindPlantReactiveControlIEC.hpp index d5cd67165..cf0f8094c 100644 --- a/CGMES_3.0.0/WindPlantReactiveControlIEC.hpp +++ b/CGMES_3.0.0/WindPlantReactiveControlIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Float.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -93,8 +94,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -102,7 +110,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantReactiveControlIEC_factory(); diff --git a/CGMES_3.0.0/WindPlantUserDefined.cpp b/CGMES_3.0.0/WindPlantUserDefined.cpp index 549a06449..edd1f1a98 100644 --- a/CGMES_3.0.0/WindPlantUserDefined.cpp +++ b/CGMES_3.0.0/WindPlantUserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPlantUserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPlantUserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindPlantUserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindPlantUserDefined::WindPlantUserDefined() {} WindPlantUserDefined::~WindPlantUserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPlantUserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPlantUserDefined::getClassNamespaceUrl() const { - { "cim:WindPlantUserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindPlantUserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPlantUserDefined::getPossibleProfilesForClass() const +const std::string& WindPlantUserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPlantUserDefined::getPossibleProfilesForAttributes() const +const std::list& WindPlantUserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindPlantDynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPlantUserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPlantUserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPlantUserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindPlantUserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindPlantUserDefined::debugString() const void WindPlantUserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPlantUserDefined", &WindPlantUserDefined_factory); + factory_map.emplace("WindPlantUserDefined", &WindPlantUserDefined_factory); } void WindPlantUserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantUserDefined.proprietary", &assign_WindPlantUserDefined_proprietary); + assign_map.emplace("WindPlantUserDefined.proprietary", &assign_WindPlantUserDefined_proprietary); } void WindPlantUserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPlantUserDefined.ProprietaryParameterDynamics", &assign_WindPlantUserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindPlantUserDefined.ProprietaryParameterDynamics", &assign_WindPlantUserDefined_ProprietaryParameterDynamics); } void WindPlantUserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindPlantDynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindPlantUserDefined.proprietary", &get_WindPlantUserDefined_proprietary); + get_map.emplace("WindPlantUserDefined.proprietary", &get_WindPlantUserDefined_proprietary); } void WindPlantUserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindPlantUserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindPlantUserDefined::declare() { return BaseClassDefiner(WindPlantUserDefined::addConstructToMap, WindPlantUserDefined::addPrimitiveAssignFnsToMap, WindPlantUserDefined::addClassAssignFnsToMap, WindPlantUserDefined::debugName); } +std::map WindPlantUserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindPlantDynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPlantUserDefined_factory() diff --git a/CGMES_3.0.0/WindPlantUserDefined.hpp b/CGMES_3.0.0/WindPlantUserDefined.hpp index 713b0093d..9fc3f9bf3 100644 --- a/CGMES_3.0.0/WindPlantUserDefined.hpp +++ b/CGMES_3.0.0/WindPlantUserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindPlantDynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPlantUserDefined_factory(); diff --git a/CGMES_3.0.0/WindPowerPlant.cpp b/CGMES_3.0.0/WindPowerPlant.cpp index d38ca0910..6c0340df5 100644 --- a/CGMES_3.0.0/WindPowerPlant.cpp +++ b/CGMES_3.0.0/WindPowerPlant.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindPowerPlant(), + "http://iec.ch/TC57/CIM100-European#", + { + CGMESProfile::EQ, + }, + CGMESProfile::EQ + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindPowerPlant.WindGeneratingUnits", { "http://iec.ch/TC57/CIM100-European#", { CGMESProfile::EQ, } } }, + }; + return ClassAttrDetailsMap; +} + WindPowerPlant::WindPowerPlant() {} WindPowerPlant::~WindPowerPlant() {} -static const std::list PossibleProfilesForClass = +const std::list& WindPowerPlant::getAttributeNames() const { - CGMESProfile::EQ, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindPowerPlant::getClassNamespaceUrl() const { - { "cim:WindPowerPlant.WindGeneratingUnits", { CGMESProfile::EQ, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindPowerPlant::getPossibleProfilesForClass() const +const std::string& WindPowerPlant::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindPowerPlant::getPossibleProfilesForAttributes() const +const std::list& WindPowerPlant::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = PowerSystemResource::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindPowerPlant::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindPowerPlant::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindPowerPlant::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGeneratingUnit_WindPowerPlant(BaseClass*, BaseClass*); @@ -66,7 +98,7 @@ const char* WindPowerPlant::debugString() const void WindPowerPlant::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindPowerPlant", &WindPowerPlant_factory); + factory_map.emplace("WindPowerPlant", &WindPowerPlant_factory); } void WindPowerPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -75,7 +107,7 @@ void WindPowerPlant::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindPowerPlant.WindGeneratingUnits", &assign_WindPowerPlant_WindGeneratingUnits); + assign_map.emplace("WindPowerPlant.WindGeneratingUnits", &assign_WindPowerPlant_WindGeneratingUnits); } void WindPowerPlant::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -93,11 +125,25 @@ void WindPowerPlant::addEnumGetFnsToMap(std::map& get PowerSystemResource::addEnumGetFnsToMap(get_map); } +bool WindPowerPlant::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindPowerPlant" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindPowerPlant::declare() { return BaseClassDefiner(WindPowerPlant::addConstructToMap, WindPowerPlant::addPrimitiveAssignFnsToMap, WindPowerPlant::addClassAssignFnsToMap, WindPowerPlant::debugName); } +std::map WindPowerPlant::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = PowerSystemResource::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindPowerPlant_factory() diff --git a/CGMES_3.0.0/WindPowerPlant.hpp b/CGMES_3.0.0/WindPowerPlant.hpp index feef50426..e2660d382 100644 --- a/CGMES_3.0.0/WindPowerPlant.hpp +++ b/CGMES_3.0.0/WindPowerPlant.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "PowerSystemResource.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindPowerPlant_factory(); diff --git a/CGMES_3.0.0/WindProtectionIEC.cpp b/CGMES_3.0.0/WindProtectionIEC.cpp index 169065c03..fff5f93fb 100644 --- a/CGMES_3.0.0/WindProtectionIEC.cpp +++ b/CGMES_3.0.0/WindProtectionIEC.cpp @@ -14,41 +14,73 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindProtectionIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindProtectionIEC.WindDynamicsLookupTable", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.WindTurbineType1or2IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.dfimax", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.fover", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.funder", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.mzc", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.tfma", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.uover", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindProtectionIEC.uunder", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindProtectionIEC::WindProtectionIEC() : WindTurbineType1or2IEC(nullptr), WindTurbineType3or4IEC(nullptr) {} WindProtectionIEC::~WindProtectionIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindProtectionIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindProtectionIEC::getClassNamespaceUrl() const { - { "cim:WindProtectionIEC.WindDynamicsLookupTable", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.WindTurbineType1or2IEC", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.dfimax", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.fover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.funder", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.mzc", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.tfma", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.uover", { CGMESProfile::DY, } }, - { "cim:WindProtectionIEC.uunder", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindProtectionIEC::getPossibleProfilesForClass() const +const std::string& WindProtectionIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindProtectionIEC::getPossibleProfilesForAttributes() const +const std::list& WindProtectionIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindProtectionIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindProtectionIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindProtectionIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindDynamicsLookupTable_WindProtectionIEC(BaseClass*, BaseClass*); @@ -316,37 +348,37 @@ const char* WindProtectionIEC::debugString() const void WindProtectionIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindProtectionIEC", &WindProtectionIEC_factory); + factory_map.emplace("WindProtectionIEC", &WindProtectionIEC_factory); } void WindProtectionIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindProtectionIEC.dfimax", &assign_WindProtectionIEC_dfimax); - assign_map.emplace("cim:WindProtectionIEC.fover", &assign_WindProtectionIEC_fover); - assign_map.emplace("cim:WindProtectionIEC.funder", &assign_WindProtectionIEC_funder); - assign_map.emplace("cim:WindProtectionIEC.mzc", &assign_WindProtectionIEC_mzc); - assign_map.emplace("cim:WindProtectionIEC.tfma", &assign_WindProtectionIEC_tfma); - assign_map.emplace("cim:WindProtectionIEC.uover", &assign_WindProtectionIEC_uover); - assign_map.emplace("cim:WindProtectionIEC.uunder", &assign_WindProtectionIEC_uunder); + assign_map.emplace("WindProtectionIEC.dfimax", &assign_WindProtectionIEC_dfimax); + assign_map.emplace("WindProtectionIEC.fover", &assign_WindProtectionIEC_fover); + assign_map.emplace("WindProtectionIEC.funder", &assign_WindProtectionIEC_funder); + assign_map.emplace("WindProtectionIEC.mzc", &assign_WindProtectionIEC_mzc); + assign_map.emplace("WindProtectionIEC.tfma", &assign_WindProtectionIEC_tfma); + assign_map.emplace("WindProtectionIEC.uover", &assign_WindProtectionIEC_uover); + assign_map.emplace("WindProtectionIEC.uunder", &assign_WindProtectionIEC_uunder); } void WindProtectionIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindProtectionIEC.WindDynamicsLookupTable", &assign_WindProtectionIEC_WindDynamicsLookupTable); - assign_map.emplace("cim:WindProtectionIEC.WindTurbineType1or2IEC", &assign_WindProtectionIEC_WindTurbineType1or2IEC); - assign_map.emplace("cim:WindProtectionIEC.WindTurbineType3or4IEC", &assign_WindProtectionIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindProtectionIEC.WindDynamicsLookupTable", &assign_WindProtectionIEC_WindDynamicsLookupTable); + assign_map.emplace("WindProtectionIEC.WindTurbineType1or2IEC", &assign_WindProtectionIEC_WindTurbineType1or2IEC); + assign_map.emplace("WindProtectionIEC.WindTurbineType3or4IEC", &assign_WindProtectionIEC_WindTurbineType3or4IEC); } void WindProtectionIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindProtectionIEC.dfimax", &get_WindProtectionIEC_dfimax); - get_map.emplace("cim:WindProtectionIEC.fover", &get_WindProtectionIEC_fover); - get_map.emplace("cim:WindProtectionIEC.funder", &get_WindProtectionIEC_funder); - get_map.emplace("cim:WindProtectionIEC.mzc", &get_WindProtectionIEC_mzc); - get_map.emplace("cim:WindProtectionIEC.tfma", &get_WindProtectionIEC_tfma); - get_map.emplace("cim:WindProtectionIEC.uover", &get_WindProtectionIEC_uover); - get_map.emplace("cim:WindProtectionIEC.uunder", &get_WindProtectionIEC_uunder); + get_map.emplace("WindProtectionIEC.dfimax", &get_WindProtectionIEC_dfimax); + get_map.emplace("WindProtectionIEC.fover", &get_WindProtectionIEC_fover); + get_map.emplace("WindProtectionIEC.funder", &get_WindProtectionIEC_funder); + get_map.emplace("WindProtectionIEC.mzc", &get_WindProtectionIEC_mzc); + get_map.emplace("WindProtectionIEC.tfma", &get_WindProtectionIEC_tfma); + get_map.emplace("WindProtectionIEC.uover", &get_WindProtectionIEC_uover); + get_map.emplace("WindProtectionIEC.uunder", &get_WindProtectionIEC_uunder); } void WindProtectionIEC::addClassGetFnsToMap(std::map& get_map) const @@ -359,11 +391,25 @@ void WindProtectionIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindProtectionIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindProtectionIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindProtectionIEC::declare() { return BaseClassDefiner(WindProtectionIEC::addConstructToMap, WindProtectionIEC::addPrimitiveAssignFnsToMap, WindProtectionIEC::addClassAssignFnsToMap, WindProtectionIEC::debugName); } +std::map WindProtectionIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindProtectionIEC_factory() diff --git a/CGMES_3.0.0/WindProtectionIEC.hpp b/CGMES_3.0.0/WindProtectionIEC.hpp index 781e1b508..0603b3977 100644 --- a/CGMES_3.0.0/WindProtectionIEC.hpp +++ b/CGMES_3.0.0/WindProtectionIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -63,8 +64,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -72,7 +80,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindProtectionIEC_factory(); diff --git a/CGMES_3.0.0/WindRefFrameRotIEC.cpp b/CGMES_3.0.0/WindRefFrameRotIEC.cpp index 7e1b0f407..d0bb21f9c 100644 --- a/CGMES_3.0.0/WindRefFrameRotIEC.cpp +++ b/CGMES_3.0.0/WindRefFrameRotIEC.cpp @@ -12,35 +12,67 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindRefFrameRotIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindRefFrameRotIEC.WindTurbineType3or4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindRefFrameRotIEC.tpll", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindRefFrameRotIEC.upll1", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindRefFrameRotIEC.upll2", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindRefFrameRotIEC::WindRefFrameRotIEC() : WindTurbineType3or4IEC(nullptr) {} WindRefFrameRotIEC::~WindRefFrameRotIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindRefFrameRotIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindRefFrameRotIEC::getClassNamespaceUrl() const { - { "cim:WindRefFrameRotIEC.WindTurbineType3or4IEC", { CGMESProfile::DY, } }, - { "cim:WindRefFrameRotIEC.tpll", { CGMESProfile::DY, } }, - { "cim:WindRefFrameRotIEC.upll1", { CGMESProfile::DY, } }, - { "cim:WindRefFrameRotIEC.upll2", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindRefFrameRotIEC::getPossibleProfilesForClass() const +const std::string& WindRefFrameRotIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindRefFrameRotIEC::getPossibleProfilesForAttributes() const +const std::list& WindRefFrameRotIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = IdentifiedObject::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindRefFrameRotIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindRefFrameRotIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindRefFrameRotIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindTurbineType3or4IEC_WindRefFrameRotIEC(BaseClass*, BaseClass*); @@ -156,27 +188,27 @@ const char* WindRefFrameRotIEC::debugString() const void WindRefFrameRotIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindRefFrameRotIEC", &WindRefFrameRotIEC_factory); + factory_map.emplace("WindRefFrameRotIEC", &WindRefFrameRotIEC_factory); } void WindRefFrameRotIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindRefFrameRotIEC.tpll", &assign_WindRefFrameRotIEC_tpll); - assign_map.emplace("cim:WindRefFrameRotIEC.upll1", &assign_WindRefFrameRotIEC_upll1); - assign_map.emplace("cim:WindRefFrameRotIEC.upll2", &assign_WindRefFrameRotIEC_upll2); + assign_map.emplace("WindRefFrameRotIEC.tpll", &assign_WindRefFrameRotIEC_tpll); + assign_map.emplace("WindRefFrameRotIEC.upll1", &assign_WindRefFrameRotIEC_upll1); + assign_map.emplace("WindRefFrameRotIEC.upll2", &assign_WindRefFrameRotIEC_upll2); } void WindRefFrameRotIEC::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindRefFrameRotIEC.WindTurbineType3or4IEC", &assign_WindRefFrameRotIEC_WindTurbineType3or4IEC); + assign_map.emplace("WindRefFrameRotIEC.WindTurbineType3or4IEC", &assign_WindRefFrameRotIEC_WindTurbineType3or4IEC); } void WindRefFrameRotIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { IdentifiedObject::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindRefFrameRotIEC.tpll", &get_WindRefFrameRotIEC_tpll); - get_map.emplace("cim:WindRefFrameRotIEC.upll1", &get_WindRefFrameRotIEC_upll1); - get_map.emplace("cim:WindRefFrameRotIEC.upll2", &get_WindRefFrameRotIEC_upll2); + get_map.emplace("WindRefFrameRotIEC.tpll", &get_WindRefFrameRotIEC_tpll); + get_map.emplace("WindRefFrameRotIEC.upll1", &get_WindRefFrameRotIEC_upll1); + get_map.emplace("WindRefFrameRotIEC.upll2", &get_WindRefFrameRotIEC_upll2); } void WindRefFrameRotIEC::addClassGetFnsToMap(std::map& get_map) const @@ -189,11 +221,25 @@ void WindRefFrameRotIEC::addEnumGetFnsToMap(std::map& IdentifiedObject::addEnumGetFnsToMap(get_map); } +bool WindRefFrameRotIEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindRefFrameRotIEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindRefFrameRotIEC::declare() { return BaseClassDefiner(WindRefFrameRotIEC::addConstructToMap, WindRefFrameRotIEC::addPrimitiveAssignFnsToMap, WindRefFrameRotIEC::addClassAssignFnsToMap, WindRefFrameRotIEC::debugName); } +std::map WindRefFrameRotIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = IdentifiedObject::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindRefFrameRotIEC_factory() diff --git a/CGMES_3.0.0/WindRefFrameRotIEC.hpp b/CGMES_3.0.0/WindRefFrameRotIEC.hpp index 952d6b968..86235fad5 100644 --- a/CGMES_3.0.0/WindRefFrameRotIEC.hpp +++ b/CGMES_3.0.0/WindRefFrameRotIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "IdentifiedObject.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "PU.hpp" #include "Seconds.hpp" @@ -42,8 +43,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -51,7 +59,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindRefFrameRotIEC_factory(); diff --git a/CGMES_3.0.0/WindTurbineType1or2Dynamics.cpp b/CGMES_3.0.0/WindTurbineType1or2Dynamics.cpp index 2d438018b..303581678 100644 --- a/CGMES_3.0.0/WindTurbineType1or2Dynamics.cpp +++ b/CGMES_3.0.0/WindTurbineType1or2Dynamics.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType1or2Dynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType1or2Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType1or2Dynamics::WindTurbineType1or2Dynamics() : AsynchronousMachineDynamics(nullptr), RemoteInputSignal(nullptr) {} WindTurbineType1or2Dynamics::~WindTurbineType1or2Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType1or2Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType1or2Dynamics::getClassNamespaceUrl() const { - { "cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", { CGMESProfile::DY, } }, - { "cim:WindTurbineType1or2Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType1or2Dynamics::getPossibleProfilesForClass() const +const std::string& WindTurbineType1or2Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType1or2Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType1or2Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType1or2Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType1or2Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_AsynchronousMachineDynamics_WindTurbineType1or2Dynamics(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType1or2Dynamics::debugString() const void WindTurbineType1or2Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType1or2Dynamics", &WindTurbineType1or2Dynamics_factory); + factory_map.emplace("WindTurbineType1or2Dynamics", &WindTurbineType1or2Dynamics_factory); } void WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void WindTurbineType1or2Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &assign_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); - assign_map.emplace("cim:WindTurbineType1or2Dynamics.RemoteInputSignal", &assign_WindTurbineType1or2Dynamics_RemoteInputSignal); + assign_map.emplace("WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &assign_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); + assign_map.emplace("WindTurbineType1or2Dynamics.RemoteInputSignal", &assign_WindTurbineType1or2Dynamics_RemoteInputSignal); } void WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &get_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); - get_map.emplace("cim:WindTurbineType1or2Dynamics.RemoteInputSignal", &get_WindTurbineType1or2Dynamics_RemoteInputSignal); + get_map.emplace("WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", &get_WindTurbineType1or2Dynamics_AsynchronousMachineDynamics); + get_map.emplace("WindTurbineType1or2Dynamics.RemoteInputSignal", &get_WindTurbineType1or2Dynamics_RemoteInputSignal); } void WindTurbineType1or2Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType1or2Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType1or2Dynamics::declare() { return BaseClassDefiner(WindTurbineType1or2Dynamics::addConstructToMap, WindTurbineType1or2Dynamics::addPrimitiveAssignFnsToMap, WindTurbineType1or2Dynamics::addClassAssignFnsToMap, WindTurbineType1or2Dynamics::debugName); } +std::map WindTurbineType1or2Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType1or2Dynamics_factory() diff --git a/CGMES_3.0.0/WindTurbineType1or2Dynamics.hpp b/CGMES_3.0.0/WindTurbineType1or2Dynamics.hpp index 31e5995a0..d49f229bc 100644 --- a/CGMES_3.0.0/WindTurbineType1or2Dynamics.hpp +++ b/CGMES_3.0.0/WindTurbineType1or2Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType1or2Dynamics_factory(); diff --git a/CGMES_3.0.0/WindTurbineType1or2IEC.cpp b/CGMES_3.0.0/WindTurbineType1or2IEC.cpp index 251c07766..ac36f0f0c 100644 --- a/CGMES_3.0.0/WindTurbineType1or2IEC.cpp +++ b/CGMES_3.0.0/WindTurbineType1or2IEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType1or2IEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType1or2IEC.WindMechIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType1or2IEC.WindProtectionIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType1or2IEC::WindTurbineType1or2IEC() : WindMechIEC(nullptr), WindProtectionIEC(nullptr) {} WindTurbineType1or2IEC::~WindTurbineType1or2IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType1or2IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType1or2IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType1or2IEC.WindMechIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType1or2IEC.WindProtectionIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType1or2IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType1or2IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType1or2IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType1or2IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType1or2IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType1or2IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType1or2IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindMechIEC_WindTurbineType1or2IEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType1or2IEC::debugString() const void WindTurbineType1or2IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType1or2IEC", &WindTurbineType1or2IEC_factory); + factory_map.emplace("WindTurbineType1or2IEC", &WindTurbineType1or2IEC_factory); } void WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType1or2IEC.WindMechIEC", &assign_WindTurbineType1or2IEC_WindMechIEC); - assign_map.emplace("cim:WindTurbineType1or2IEC.WindProtectionIEC", &assign_WindTurbineType1or2IEC_WindProtectionIEC); + assign_map.emplace("WindTurbineType1or2IEC.WindMechIEC", &assign_WindTurbineType1or2IEC_WindMechIEC); + assign_map.emplace("WindTurbineType1or2IEC.WindProtectionIEC", &assign_WindTurbineType1or2IEC_WindProtectionIEC); } void WindTurbineType1or2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType1or2IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2Dynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType1or2IEC.WindMechIEC", &get_WindTurbineType1or2IEC_WindMechIEC); - get_map.emplace("cim:WindTurbineType1or2IEC.WindProtectionIEC", &get_WindTurbineType1or2IEC_WindProtectionIEC); + get_map.emplace("WindTurbineType1or2IEC.WindMechIEC", &get_WindTurbineType1or2IEC_WindMechIEC); + get_map.emplace("WindTurbineType1or2IEC.WindProtectionIEC", &get_WindTurbineType1or2IEC_WindProtectionIEC); } void WindTurbineType1or2IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType1or2IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType1or2IEC::declare() { return BaseClassDefiner(WindTurbineType1or2IEC::addConstructToMap, WindTurbineType1or2IEC::addPrimitiveAssignFnsToMap, WindTurbineType1or2IEC::addClassAssignFnsToMap, WindTurbineType1or2IEC::debugName); } +std::map WindTurbineType1or2IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType1or2IEC_factory() diff --git a/CGMES_3.0.0/WindTurbineType1or2IEC.hpp b/CGMES_3.0.0/WindTurbineType1or2IEC.hpp index 8e9f7f117..1e79292ef 100644 --- a/CGMES_3.0.0/WindTurbineType1or2IEC.hpp +++ b/CGMES_3.0.0/WindTurbineType1or2IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType1or2IEC_factory(); diff --git a/CGMES_3.0.0/WindTurbineType3IEC.cpp b/CGMES_3.0.0/WindTurbineType3IEC.cpp index 6083f1c7e..0d84aab59 100644 --- a/CGMES_3.0.0/WindTurbineType3IEC.cpp +++ b/CGMES_3.0.0/WindTurbineType3IEC.cpp @@ -17,37 +17,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3IEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3IEC.WindAeroOneDimIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3IEC.WindAeroTwoDimIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3IEC.WindContPType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3IEC.WindContPitchAngleIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3IEC.WindGenType3IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3IEC.WindMechIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3IEC::WindTurbineType3IEC() : WindAeroOneDimIEC(nullptr), WindAeroTwoDimIEC(nullptr), WindContPType3IEC(nullptr), WindContPitchAngleIEC(nullptr), WindGenType3IEC(nullptr), WindMechIEC(nullptr) {} WindTurbineType3IEC::~WindTurbineType3IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType3IEC.WindAeroOneDimIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3IEC.WindAeroTwoDimIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3IEC.WindContPType3IEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3IEC.WindContPitchAngleIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3IEC.WindGenType3IEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3IEC.WindMechIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType3IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindAeroOneDimIEC_WindTurbineType3IEC(BaseClass*, BaseClass*); @@ -244,7 +276,7 @@ const char* WindTurbineType3IEC::debugString() const void WindTurbineType3IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3IEC", &WindTurbineType3IEC_factory); + factory_map.emplace("WindTurbineType3IEC", &WindTurbineType3IEC_factory); } void WindTurbineType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -253,12 +285,12 @@ void WindTurbineType3IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3IEC.WindAeroOneDimIEC", &assign_WindTurbineType3IEC_WindAeroOneDimIEC); - assign_map.emplace("cim:WindTurbineType3IEC.WindAeroTwoDimIEC", &assign_WindTurbineType3IEC_WindAeroTwoDimIEC); - assign_map.emplace("cim:WindTurbineType3IEC.WindContPType3IEC", &assign_WindTurbineType3IEC_WindContPType3IEC); - assign_map.emplace("cim:WindTurbineType3IEC.WindContPitchAngleIEC", &assign_WindTurbineType3IEC_WindContPitchAngleIEC); - assign_map.emplace("cim:WindTurbineType3IEC.WindGenType3IEC", &assign_WindTurbineType3IEC_WindGenType3IEC); - assign_map.emplace("cim:WindTurbineType3IEC.WindMechIEC", &assign_WindTurbineType3IEC_WindMechIEC); + assign_map.emplace("WindTurbineType3IEC.WindAeroOneDimIEC", &assign_WindTurbineType3IEC_WindAeroOneDimIEC); + assign_map.emplace("WindTurbineType3IEC.WindAeroTwoDimIEC", &assign_WindTurbineType3IEC_WindAeroTwoDimIEC); + assign_map.emplace("WindTurbineType3IEC.WindContPType3IEC", &assign_WindTurbineType3IEC_WindContPType3IEC); + assign_map.emplace("WindTurbineType3IEC.WindContPitchAngleIEC", &assign_WindTurbineType3IEC_WindContPitchAngleIEC); + assign_map.emplace("WindTurbineType3IEC.WindGenType3IEC", &assign_WindTurbineType3IEC_WindGenType3IEC); + assign_map.emplace("WindTurbineType3IEC.WindMechIEC", &assign_WindTurbineType3IEC_WindMechIEC); } void WindTurbineType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -269,12 +301,12 @@ void WindTurbineType3IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3IEC.WindAeroOneDimIEC", &get_WindTurbineType3IEC_WindAeroOneDimIEC); - get_map.emplace("cim:WindTurbineType3IEC.WindAeroTwoDimIEC", &get_WindTurbineType3IEC_WindAeroTwoDimIEC); - get_map.emplace("cim:WindTurbineType3IEC.WindContPType3IEC", &get_WindTurbineType3IEC_WindContPType3IEC); - get_map.emplace("cim:WindTurbineType3IEC.WindContPitchAngleIEC", &get_WindTurbineType3IEC_WindContPitchAngleIEC); - get_map.emplace("cim:WindTurbineType3IEC.WindGenType3IEC", &get_WindTurbineType3IEC_WindGenType3IEC); - get_map.emplace("cim:WindTurbineType3IEC.WindMechIEC", &get_WindTurbineType3IEC_WindMechIEC); + get_map.emplace("WindTurbineType3IEC.WindAeroOneDimIEC", &get_WindTurbineType3IEC_WindAeroOneDimIEC); + get_map.emplace("WindTurbineType3IEC.WindAeroTwoDimIEC", &get_WindTurbineType3IEC_WindAeroTwoDimIEC); + get_map.emplace("WindTurbineType3IEC.WindContPType3IEC", &get_WindTurbineType3IEC_WindContPType3IEC); + get_map.emplace("WindTurbineType3IEC.WindContPitchAngleIEC", &get_WindTurbineType3IEC_WindContPitchAngleIEC); + get_map.emplace("WindTurbineType3IEC.WindGenType3IEC", &get_WindTurbineType3IEC_WindGenType3IEC); + get_map.emplace("WindTurbineType3IEC.WindMechIEC", &get_WindTurbineType3IEC_WindMechIEC); } void WindTurbineType3IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -282,11 +314,25 @@ void WindTurbineType3IEC::addEnumGetFnsToMap(std::map WindTurbineType3or4IEC::addEnumGetFnsToMap(get_map); } +bool WindTurbineType3IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindTurbineType3IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3IEC::declare() { return BaseClassDefiner(WindTurbineType3IEC::addConstructToMap, WindTurbineType3IEC::addPrimitiveAssignFnsToMap, WindTurbineType3IEC::addClassAssignFnsToMap, WindTurbineType3IEC::debugName); } +std::map WindTurbineType3IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3IEC_factory() diff --git a/CGMES_3.0.0/WindTurbineType3IEC.hpp b/CGMES_3.0.0/WindTurbineType3IEC.hpp index 4a511f756..6b8f4356f 100644 --- a/CGMES_3.0.0/WindTurbineType3IEC.hpp +++ b/CGMES_3.0.0/WindTurbineType3IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3IEC_factory(); diff --git a/CGMES_3.0.0/WindTurbineType3or4Dynamics.cpp b/CGMES_3.0.0/WindTurbineType3or4Dynamics.cpp index b453a7075..8376ea0d5 100644 --- a/CGMES_3.0.0/WindTurbineType3or4Dynamics.cpp +++ b/CGMES_3.0.0/WindTurbineType3or4Dynamics.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3or4Dynamics(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3or4Dynamics.PowerElectronicsConnection", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4Dynamics.RemoteInputSignal", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4Dynamics.WindPlantDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3or4Dynamics::WindTurbineType3or4Dynamics() : PowerElectronicsConnection(nullptr), RemoteInputSignal(nullptr), WindPlantDynamics(nullptr) {} WindTurbineType3or4Dynamics::~WindTurbineType3or4Dynamics() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3or4Dynamics::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3or4Dynamics::getClassNamespaceUrl() const { - { "cim:WindTurbineType3or4Dynamics.PowerElectronicsConnection", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4Dynamics.RemoteInputSignal", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4Dynamics.WindPlantDynamics", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3or4Dynamics::getPossibleProfilesForClass() const +const std::string& WindTurbineType3or4Dynamics::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3or4Dynamics::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = DynamicsFunctionBlock::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3or4Dynamics::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3or4Dynamics::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3or4Dynamics::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_PowerElectronicsConnection_WindTurbineType3or4Dynamics(BaseClass*, BaseClass*); @@ -145,7 +177,7 @@ const char* WindTurbineType3or4Dynamics::debugString() const void WindTurbineType3or4Dynamics::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3or4Dynamics", &WindTurbineType3or4Dynamics_factory); + factory_map.emplace("WindTurbineType3or4Dynamics", &WindTurbineType3or4Dynamics_factory); } void WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap(std::unordered_map< void WindTurbineType3or4Dynamics::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3or4Dynamics.PowerElectronicsConnection", &assign_WindTurbineType3or4Dynamics_PowerElectronicsConnection); - assign_map.emplace("cim:WindTurbineType3or4Dynamics.RemoteInputSignal", &assign_WindTurbineType3or4Dynamics_RemoteInputSignal); - assign_map.emplace("cim:WindTurbineType3or4Dynamics.WindPlantDynamics", &assign_WindTurbineType3or4Dynamics_WindPlantDynamics); + assign_map.emplace("WindTurbineType3or4Dynamics.PowerElectronicsConnection", &assign_WindTurbineType3or4Dynamics_PowerElectronicsConnection); + assign_map.emplace("WindTurbineType3or4Dynamics.RemoteInputSignal", &assign_WindTurbineType3or4Dynamics_RemoteInputSignal); + assign_map.emplace("WindTurbineType3or4Dynamics.WindPlantDynamics", &assign_WindTurbineType3or4Dynamics_WindPlantDynamics); } void WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -167,9 +199,9 @@ void WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(std::map& get_map) const { DynamicsFunctionBlock::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3or4Dynamics.PowerElectronicsConnection", &get_WindTurbineType3or4Dynamics_PowerElectronicsConnection); - get_map.emplace("cim:WindTurbineType3or4Dynamics.RemoteInputSignal", &get_WindTurbineType3or4Dynamics_RemoteInputSignal); - get_map.emplace("cim:WindTurbineType3or4Dynamics.WindPlantDynamics", &get_WindTurbineType3or4Dynamics_WindPlantDynamics); + get_map.emplace("WindTurbineType3or4Dynamics.PowerElectronicsConnection", &get_WindTurbineType3or4Dynamics_PowerElectronicsConnection); + get_map.emplace("WindTurbineType3or4Dynamics.RemoteInputSignal", &get_WindTurbineType3or4Dynamics_RemoteInputSignal); + get_map.emplace("WindTurbineType3or4Dynamics.WindPlantDynamics", &get_WindTurbineType3or4Dynamics_WindPlantDynamics); } void WindTurbineType3or4Dynamics::addEnumGetFnsToMap(std::map& get_map) const @@ -177,11 +209,25 @@ void WindTurbineType3or4Dynamics::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3or4Dynamics::declare() { return BaseClassDefiner(WindTurbineType3or4Dynamics::addConstructToMap, WindTurbineType3or4Dynamics::addPrimitiveAssignFnsToMap, WindTurbineType3or4Dynamics::addClassAssignFnsToMap, WindTurbineType3or4Dynamics::debugName); } +std::map WindTurbineType3or4Dynamics::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = DynamicsFunctionBlock::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3or4Dynamics_factory() diff --git a/CGMES_3.0.0/WindTurbineType3or4Dynamics.hpp b/CGMES_3.0.0/WindTurbineType3or4Dynamics.hpp index a635b105a..78e9ba9d5 100644 --- a/CGMES_3.0.0/WindTurbineType3or4Dynamics.hpp +++ b/CGMES_3.0.0/WindTurbineType3or4Dynamics.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "DynamicsFunctionBlock.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3or4Dynamics_factory(); diff --git a/CGMES_3.0.0/WindTurbineType3or4IEC.cpp b/CGMES_3.0.0/WindTurbineType3or4IEC.cpp index 70f2321f4..d7326a8ef 100644 --- a/CGMES_3.0.0/WindTurbineType3or4IEC.cpp +++ b/CGMES_3.0.0/WindTurbineType3or4IEC.cpp @@ -17,37 +17,69 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType3or4IEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType3or4IEC.WIndContQIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindContCurrLimIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindContQLimIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindContQPQULimIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindProtectionIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType3or4IEC.WindRefFrameRotIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType3or4IEC::WindTurbineType3or4IEC() : WIndContQIEC(nullptr), WindContCurrLimIEC(nullptr), WindContQLimIEC(nullptr), WindContQPQULimIEC(nullptr), WindProtectionIEC(nullptr), WindRefFrameRotIEC(nullptr) {} WindTurbineType3or4IEC::~WindTurbineType3or4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType3or4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType3or4IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType3or4IEC.WIndContQIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindContCurrLimIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindContQLimIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindContQPQULimIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindProtectionIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType3or4IEC.WindRefFrameRotIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType3or4IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType3or4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType3or4IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType3or4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType3or4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType3or4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType3or4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContQIEC_WindTurbineType3or4IEC(BaseClass*, BaseClass*); @@ -244,7 +276,7 @@ const char* WindTurbineType3or4IEC::debugString() const void WindTurbineType3or4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType3or4IEC", &WindTurbineType3or4IEC_factory); + factory_map.emplace("WindTurbineType3or4IEC", &WindTurbineType3or4IEC_factory); } void WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -253,12 +285,12 @@ void WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType3or4IEC.WIndContQIEC", &assign_WindTurbineType3or4IEC_WIndContQIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindContCurrLimIEC", &assign_WindTurbineType3or4IEC_WindContCurrLimIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindContQLimIEC", &assign_WindTurbineType3or4IEC_WindContQLimIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindContQPQULimIEC", &assign_WindTurbineType3or4IEC_WindContQPQULimIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindProtectionIEC", &assign_WindTurbineType3or4IEC_WindProtectionIEC); - assign_map.emplace("cim:WindTurbineType3or4IEC.WindRefFrameRotIEC", &assign_WindTurbineType3or4IEC_WindRefFrameRotIEC); + assign_map.emplace("WindTurbineType3or4IEC.WIndContQIEC", &assign_WindTurbineType3or4IEC_WIndContQIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindContCurrLimIEC", &assign_WindTurbineType3or4IEC_WindContCurrLimIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindContQLimIEC", &assign_WindTurbineType3or4IEC_WindContQLimIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindContQPQULimIEC", &assign_WindTurbineType3or4IEC_WindContQPQULimIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindProtectionIEC", &assign_WindTurbineType3or4IEC_WindProtectionIEC); + assign_map.emplace("WindTurbineType3or4IEC.WindRefFrameRotIEC", &assign_WindTurbineType3or4IEC_WindRefFrameRotIEC); } void WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -269,12 +301,12 @@ void WindTurbineType3or4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4Dynamics::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType3or4IEC.WIndContQIEC", &get_WindTurbineType3or4IEC_WIndContQIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindContCurrLimIEC", &get_WindTurbineType3or4IEC_WindContCurrLimIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindContQLimIEC", &get_WindTurbineType3or4IEC_WindContQLimIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindContQPQULimIEC", &get_WindTurbineType3or4IEC_WindContQPQULimIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindProtectionIEC", &get_WindTurbineType3or4IEC_WindProtectionIEC); - get_map.emplace("cim:WindTurbineType3or4IEC.WindRefFrameRotIEC", &get_WindTurbineType3or4IEC_WindRefFrameRotIEC); + get_map.emplace("WindTurbineType3or4IEC.WIndContQIEC", &get_WindTurbineType3or4IEC_WIndContQIEC); + get_map.emplace("WindTurbineType3or4IEC.WindContCurrLimIEC", &get_WindTurbineType3or4IEC_WindContCurrLimIEC); + get_map.emplace("WindTurbineType3or4IEC.WindContQLimIEC", &get_WindTurbineType3or4IEC_WindContQLimIEC); + get_map.emplace("WindTurbineType3or4IEC.WindContQPQULimIEC", &get_WindTurbineType3or4IEC_WindContQPQULimIEC); + get_map.emplace("WindTurbineType3or4IEC.WindProtectionIEC", &get_WindTurbineType3or4IEC_WindProtectionIEC); + get_map.emplace("WindTurbineType3or4IEC.WindRefFrameRotIEC", &get_WindTurbineType3or4IEC_WindRefFrameRotIEC); } void WindTurbineType3or4IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -282,11 +314,25 @@ void WindTurbineType3or4IEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType3or4IEC::declare() { return BaseClassDefiner(WindTurbineType3or4IEC::addConstructToMap, WindTurbineType3or4IEC::addPrimitiveAssignFnsToMap, WindTurbineType3or4IEC::addClassAssignFnsToMap, WindTurbineType3or4IEC::debugName); } +std::map WindTurbineType3or4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType3or4IEC_factory() diff --git a/CGMES_3.0.0/WindTurbineType3or4IEC.hpp b/CGMES_3.0.0/WindTurbineType3or4IEC.hpp index d72c0b1ab..4ede2030a 100644 --- a/CGMES_3.0.0/WindTurbineType3or4IEC.hpp +++ b/CGMES_3.0.0/WindTurbineType3or4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -51,8 +52,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -60,7 +68,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType3or4IEC_factory(); diff --git a/CGMES_3.0.0/WindTurbineType4IEC.cpp b/CGMES_3.0.0/WindTurbineType4IEC.cpp index b8c86f657..6c6705f89 100644 --- a/CGMES_3.0.0/WindTurbineType4IEC.cpp +++ b/CGMES_3.0.0/WindTurbineType4IEC.cpp @@ -12,32 +12,64 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4IEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4IEC.WindGenType3aIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4IEC::WindTurbineType4IEC() : WindGenType3aIEC(nullptr) {} WindTurbineType4IEC::~WindTurbineType4IEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4IEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4IEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4IEC.WindGenType3aIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4IEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4IEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4IEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4IEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4IEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4IEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4IEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindGenType3aIEC_WindTurbineType4IEC(BaseClass*, BaseClass*); @@ -79,7 +111,7 @@ const char* WindTurbineType4IEC::debugString() const void WindTurbineType4IEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4IEC", &WindTurbineType4IEC_factory); + factory_map.emplace("WindTurbineType4IEC", &WindTurbineType4IEC_factory); } void WindTurbineType4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -88,7 +120,7 @@ void WindTurbineType4IEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4IEC.WindGenType3aIEC", &assign_WindTurbineType4IEC_WindGenType3aIEC); + assign_map.emplace("WindTurbineType4IEC.WindGenType3aIEC", &assign_WindTurbineType4IEC_WindGenType3aIEC); } void WindTurbineType4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -99,7 +131,7 @@ void WindTurbineType4IEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4IEC.WindGenType3aIEC", &get_WindTurbineType4IEC_WindGenType3aIEC); + get_map.emplace("WindTurbineType4IEC.WindGenType3aIEC", &get_WindTurbineType4IEC_WindGenType3aIEC); } void WindTurbineType4IEC::addEnumGetFnsToMap(std::map& get_map) const @@ -107,11 +139,25 @@ void WindTurbineType4IEC::addEnumGetFnsToMap(std::map WindTurbineType3or4IEC::addEnumGetFnsToMap(get_map); } +bool WindTurbineType4IEC::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WindTurbineType4IEC" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4IEC::declare() { return BaseClassDefiner(WindTurbineType4IEC::addConstructToMap, WindTurbineType4IEC::addPrimitiveAssignFnsToMap, WindTurbineType4IEC::addClassAssignFnsToMap, WindTurbineType4IEC::debugName); } +std::map WindTurbineType4IEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4IEC_factory() diff --git a/CGMES_3.0.0/WindTurbineType4IEC.hpp b/CGMES_3.0.0/WindTurbineType4IEC.hpp index 1ead86cbe..3cf4af74c 100644 --- a/CGMES_3.0.0/WindTurbineType4IEC.hpp +++ b/CGMES_3.0.0/WindTurbineType4IEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -31,8 +32,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -40,7 +48,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4IEC_factory(); diff --git a/CGMES_3.0.0/WindTurbineType4aIEC.cpp b/CGMES_3.0.0/WindTurbineType4aIEC.cpp index d6dda8c46..0eb513d29 100644 --- a/CGMES_3.0.0/WindTurbineType4aIEC.cpp +++ b/CGMES_3.0.0/WindTurbineType4aIEC.cpp @@ -13,33 +13,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4aIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4aIEC.WindContPType4aIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType4aIEC.WindGenType4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4aIEC::WindTurbineType4aIEC() : WindContPType4aIEC(nullptr), WindGenType4IEC(nullptr) {} WindTurbineType4aIEC::~WindTurbineType4aIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4aIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4aIEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4aIEC.WindContPType4aIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType4aIEC.WindGenType4IEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4aIEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4aIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4aIEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4aIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4aIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4aIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4aIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContPType4aIEC_WindTurbineType4aIEC(BaseClass*, BaseClass*); @@ -112,7 +144,7 @@ const char* WindTurbineType4aIEC::debugString() const void WindTurbineType4aIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4aIEC", &WindTurbineType4aIEC_factory); + factory_map.emplace("WindTurbineType4aIEC", &WindTurbineType4aIEC_factory); } void WindTurbineType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -121,8 +153,8 @@ void WindTurbineType4aIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4aIEC.WindContPType4aIEC", &assign_WindTurbineType4aIEC_WindContPType4aIEC); - assign_map.emplace("cim:WindTurbineType4aIEC.WindGenType4IEC", &assign_WindTurbineType4aIEC_WindGenType4IEC); + assign_map.emplace("WindTurbineType4aIEC.WindContPType4aIEC", &assign_WindTurbineType4aIEC_WindContPType4aIEC); + assign_map.emplace("WindTurbineType4aIEC.WindGenType4IEC", &assign_WindTurbineType4aIEC_WindGenType4IEC); } void WindTurbineType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -133,8 +165,8 @@ void WindTurbineType4aIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4aIEC.WindContPType4aIEC", &get_WindTurbineType4aIEC_WindContPType4aIEC); - get_map.emplace("cim:WindTurbineType4aIEC.WindGenType4IEC", &get_WindTurbineType4aIEC_WindGenType4IEC); + get_map.emplace("WindTurbineType4aIEC.WindContPType4aIEC", &get_WindTurbineType4aIEC_WindContPType4aIEC); + get_map.emplace("WindTurbineType4aIEC.WindGenType4IEC", &get_WindTurbineType4aIEC_WindGenType4IEC); } void WindTurbineType4aIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -142,11 +174,25 @@ void WindTurbineType4aIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4aIEC::declare() { return BaseClassDefiner(WindTurbineType4aIEC::addConstructToMap, WindTurbineType4aIEC::addPrimitiveAssignFnsToMap, WindTurbineType4aIEC::addClassAssignFnsToMap, WindTurbineType4aIEC::debugName); } +std::map WindTurbineType4aIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4aIEC_factory() diff --git a/CGMES_3.0.0/WindTurbineType4aIEC.hpp b/CGMES_3.0.0/WindTurbineType4aIEC.hpp index 02f440eff..e9e4214b6 100644 --- a/CGMES_3.0.0/WindTurbineType4aIEC.hpp +++ b/CGMES_3.0.0/WindTurbineType4aIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4aIEC_factory(); diff --git a/CGMES_3.0.0/WindTurbineType4bIEC.cpp b/CGMES_3.0.0/WindTurbineType4bIEC.cpp index 9ac4e6046..6312438bc 100644 --- a/CGMES_3.0.0/WindTurbineType4bIEC.cpp +++ b/CGMES_3.0.0/WindTurbineType4bIEC.cpp @@ -14,34 +14,66 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindTurbineType4bIEC(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindTurbineType4bIEC.WindContPType4bIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType4bIEC.WindGenType4IEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindTurbineType4bIEC.WindMechIEC", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindTurbineType4bIEC::WindTurbineType4bIEC() : WindContPType4bIEC(nullptr), WindGenType4IEC(nullptr), WindMechIEC(nullptr) {} WindTurbineType4bIEC::~WindTurbineType4bIEC() {} -static const std::list PossibleProfilesForClass = +const std::list& WindTurbineType4bIEC::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindTurbineType4bIEC::getClassNamespaceUrl() const { - { "cim:WindTurbineType4bIEC.WindContPType4bIEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType4bIEC.WindGenType4IEC", { CGMESProfile::DY, } }, - { "cim:WindTurbineType4bIEC.WindMechIEC", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindTurbineType4bIEC::getPossibleProfilesForClass() const +const std::string& WindTurbineType4bIEC::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindTurbineType4bIEC::getPossibleProfilesForAttributes() const +const std::list& WindTurbineType4bIEC::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType4IEC::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindTurbineType4bIEC::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindTurbineType4bIEC::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindTurbineType4bIEC::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_WindContPType4bIEC_WindTurbineType4bIEC(BaseClass*, BaseClass*); @@ -145,7 +177,7 @@ const char* WindTurbineType4bIEC::debugString() const void WindTurbineType4bIEC::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindTurbineType4bIEC", &WindTurbineType4bIEC_factory); + factory_map.emplace("WindTurbineType4bIEC", &WindTurbineType4bIEC_factory); } void WindTurbineType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -154,9 +186,9 @@ void WindTurbineType4bIEC::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindTurbineType4bIEC.WindContPType4bIEC", &assign_WindTurbineType4bIEC_WindContPType4bIEC); - assign_map.emplace("cim:WindTurbineType4bIEC.WindGenType4IEC", &assign_WindTurbineType4bIEC_WindGenType4IEC); - assign_map.emplace("cim:WindTurbineType4bIEC.WindMechIEC", &assign_WindTurbineType4bIEC_WindMechIEC); + assign_map.emplace("WindTurbineType4bIEC.WindContPType4bIEC", &assign_WindTurbineType4bIEC_WindContPType4bIEC); + assign_map.emplace("WindTurbineType4bIEC.WindGenType4IEC", &assign_WindTurbineType4bIEC_WindGenType4IEC); + assign_map.emplace("WindTurbineType4bIEC.WindMechIEC", &assign_WindTurbineType4bIEC_WindMechIEC); } void WindTurbineType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const @@ -167,9 +199,9 @@ void WindTurbineType4bIEC::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType4IEC::addClassGetFnsToMap(get_map); - get_map.emplace("cim:WindTurbineType4bIEC.WindContPType4bIEC", &get_WindTurbineType4bIEC_WindContPType4bIEC); - get_map.emplace("cim:WindTurbineType4bIEC.WindGenType4IEC", &get_WindTurbineType4bIEC_WindGenType4IEC); - get_map.emplace("cim:WindTurbineType4bIEC.WindMechIEC", &get_WindTurbineType4bIEC_WindMechIEC); + get_map.emplace("WindTurbineType4bIEC.WindContPType4bIEC", &get_WindTurbineType4bIEC_WindContPType4bIEC); + get_map.emplace("WindTurbineType4bIEC.WindGenType4IEC", &get_WindTurbineType4bIEC_WindGenType4IEC); + get_map.emplace("WindTurbineType4bIEC.WindMechIEC", &get_WindTurbineType4bIEC_WindMechIEC); } void WindTurbineType4bIEC::addEnumGetFnsToMap(std::map& get_map) const @@ -177,11 +209,25 @@ void WindTurbineType4bIEC::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindTurbineType4bIEC::declare() { return BaseClassDefiner(WindTurbineType4bIEC::addConstructToMap, WindTurbineType4bIEC::addPrimitiveAssignFnsToMap, WindTurbineType4bIEC::addClassAssignFnsToMap, WindTurbineType4bIEC::debugName); } +std::map WindTurbineType4bIEC::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType4IEC::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindTurbineType4bIEC_factory() diff --git a/CGMES_3.0.0/WindTurbineType4bIEC.hpp b/CGMES_3.0.0/WindTurbineType4bIEC.hpp index 751928516..712758038 100644 --- a/CGMES_3.0.0/WindTurbineType4bIEC.hpp +++ b/CGMES_3.0.0/WindTurbineType4bIEC.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType4IEC.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -39,8 +40,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -48,7 +56,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindTurbineType4bIEC_factory(); diff --git a/CGMES_3.0.0/WindType1or2UserDefined.cpp b/CGMES_3.0.0/WindType1or2UserDefined.cpp index be1daa797..a341da334 100644 --- a/CGMES_3.0.0/WindType1or2UserDefined.cpp +++ b/CGMES_3.0.0/WindType1or2UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindType1or2UserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindType1or2UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindType1or2UserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindType1or2UserDefined::WindType1or2UserDefined() {} WindType1or2UserDefined::~WindType1or2UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindType1or2UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindType1or2UserDefined::getClassNamespaceUrl() const { - { "cim:WindType1or2UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindType1or2UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindType1or2UserDefined::getPossibleProfilesForClass() const +const std::string& WindType1or2UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindType1or2UserDefined::getPossibleProfilesForAttributes() const +const std::list& WindType1or2UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType1or2Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindType1or2UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindType1or2UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindType1or2UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindType1or2UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindType1or2UserDefined::debugString() const void WindType1or2UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindType1or2UserDefined", &WindType1or2UserDefined_factory); + factory_map.emplace("WindType1or2UserDefined", &WindType1or2UserDefined_factory); } void WindType1or2UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType1or2UserDefined.proprietary", &assign_WindType1or2UserDefined_proprietary); + assign_map.emplace("WindType1or2UserDefined.proprietary", &assign_WindType1or2UserDefined_proprietary); } void WindType1or2UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType1or2UserDefined.ProprietaryParameterDynamics", &assign_WindType1or2UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindType1or2UserDefined.ProprietaryParameterDynamics", &assign_WindType1or2UserDefined_ProprietaryParameterDynamics); } void WindType1or2UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType1or2Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindType1or2UserDefined.proprietary", &get_WindType1or2UserDefined_proprietary); + get_map.emplace("WindType1or2UserDefined.proprietary", &get_WindType1or2UserDefined_proprietary); } void WindType1or2UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindType1or2UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindType1or2UserDefined::declare() { return BaseClassDefiner(WindType1or2UserDefined::addConstructToMap, WindType1or2UserDefined::addPrimitiveAssignFnsToMap, WindType1or2UserDefined::addClassAssignFnsToMap, WindType1or2UserDefined::debugName); } +std::map WindType1or2UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType1or2Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindType1or2UserDefined_factory() diff --git a/CGMES_3.0.0/WindType1or2UserDefined.hpp b/CGMES_3.0.0/WindType1or2UserDefined.hpp index 81d758773..d7d03cf30 100644 --- a/CGMES_3.0.0/WindType1or2UserDefined.hpp +++ b/CGMES_3.0.0/WindType1or2UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType1or2Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindType1or2UserDefined_factory(); diff --git a/CGMES_3.0.0/WindType3or4UserDefined.cpp b/CGMES_3.0.0/WindType3or4UserDefined.cpp index 300908ba4..86c7f4d77 100644 --- a/CGMES_3.0.0/WindType3or4UserDefined.cpp +++ b/CGMES_3.0.0/WindType3or4UserDefined.cpp @@ -12,33 +12,65 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WindType3or4UserDefined(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::DY, + }, + CGMESProfile::DY + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + { "WindType3or4UserDefined.ProprietaryParameterDynamics", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + { "WindType3or4UserDefined.proprietary", { "http://iec.ch/TC57/CIM100#", { CGMESProfile::DY, } } }, + }; + return ClassAttrDetailsMap; +} + WindType3or4UserDefined::WindType3or4UserDefined() {} WindType3or4UserDefined::~WindType3or4UserDefined() {} -static const std::list PossibleProfilesForClass = +const std::list& WindType3or4UserDefined::getAttributeNames() const { - CGMESProfile::DY, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WindType3or4UserDefined::getClassNamespaceUrl() const { - { "cim:WindType3or4UserDefined.ProprietaryParameterDynamics", { CGMESProfile::DY, } }, - { "cim:WindType3or4UserDefined.proprietary", { CGMESProfile::DY, } }, -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WindType3or4UserDefined::getPossibleProfilesForClass() const +const std::string& WindType3or4UserDefined::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WindType3or4UserDefined::getPossibleProfilesForAttributes() const +const std::list& WindType3or4UserDefined::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = WindTurbineType3or4Dynamics::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WindType3or4UserDefined::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WindType3or4UserDefined::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WindType3or4UserDefined::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } bool assign_ProprietaryParameterDynamics_WindType3or4UserDefined(BaseClass*, BaseClass*); @@ -96,23 +128,23 @@ const char* WindType3or4UserDefined::debugString() const void WindType3or4UserDefined::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WindType3or4UserDefined", &WindType3or4UserDefined_factory); + factory_map.emplace("WindType3or4UserDefined", &WindType3or4UserDefined_factory); } void WindType3or4UserDefined::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType3or4UserDefined.proprietary", &assign_WindType3or4UserDefined_proprietary); + assign_map.emplace("WindType3or4UserDefined.proprietary", &assign_WindType3or4UserDefined_proprietary); } void WindType3or4UserDefined::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.emplace("cim:WindType3or4UserDefined.ProprietaryParameterDynamics", &assign_WindType3or4UserDefined_ProprietaryParameterDynamics); + assign_map.emplace("WindType3or4UserDefined.ProprietaryParameterDynamics", &assign_WindType3or4UserDefined_ProprietaryParameterDynamics); } void WindType3or4UserDefined::addPrimitiveGetFnsToMap(std::map& get_map) const { WindTurbineType3or4Dynamics::addPrimitiveGetFnsToMap(get_map); - get_map.emplace("cim:WindType3or4UserDefined.proprietary", &get_WindType3or4UserDefined_proprietary); + get_map.emplace("WindType3or4UserDefined.proprietary", &get_WindType3or4UserDefined_proprietary); } void WindType3or4UserDefined::addClassGetFnsToMap(std::map& get_map) const @@ -125,11 +157,25 @@ void WindType3or4UserDefined::addEnumGetFnsToMap(std::map(otherObject) != nullptr; +} + const BaseClassDefiner WindType3or4UserDefined::declare() { return BaseClassDefiner(WindType3or4UserDefined::addConstructToMap, WindType3or4UserDefined::addPrimitiveAssignFnsToMap, WindType3or4UserDefined::addClassAssignFnsToMap, WindType3or4UserDefined::debugName); } +std::map WindType3or4UserDefined::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = WindTurbineType3or4Dynamics::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WindType3or4UserDefined_factory() diff --git a/CGMES_3.0.0/WindType3or4UserDefined.hpp b/CGMES_3.0.0/WindType3or4UserDefined.hpp index e5b1b41f2..5338f84e6 100644 --- a/CGMES_3.0.0/WindType3or4UserDefined.hpp +++ b/CGMES_3.0.0/WindType3or4UserDefined.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "WindTurbineType3or4Dynamics.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" #include "Boolean.hpp" namespace CIMPP @@ -35,8 +36,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -44,7 +52,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WindType3or4UserDefined_factory(); diff --git a/CGMES_3.0.0/WorkLocation.cpp b/CGMES_3.0.0/WorkLocation.cpp index e5a958f85..f09dd6ab9 100644 --- a/CGMES_3.0.0/WorkLocation.cpp +++ b/CGMES_3.0.0/WorkLocation.cpp @@ -11,31 +11,63 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim using namespace CIMPP; +static const CimClassDetails& getCimClassDetails() +{ + static const CimClassDetails ClassDetails = CimClassDetails( + WorkLocation(), + "http://iec.ch/TC57/CIM100#", + { + CGMESProfile::GL, + }, + CGMESProfile::GL + ); + return ClassDetails; +} + +static const std::map& getClassAttrDetailsMap() +{ + static const std::map ClassAttrDetailsMap = + { + }; + return ClassAttrDetailsMap; +} + WorkLocation::WorkLocation() {} WorkLocation::~WorkLocation() {} -static const std::list PossibleProfilesForClass = +const std::list& WorkLocation::getAttributeNames() const { - CGMESProfile::GL, -}; + return getCimClassDetails().AttrNamesList; +} -static const std::map> PossibleProfilesForAttributes = +const std::string& WorkLocation::getClassNamespaceUrl() const { -}; + return getCimClassDetails().ClassNamespace; +} -std::list -WorkLocation::getPossibleProfilesForClass() const +const std::string& WorkLocation::getAttributeNamespaceUrl(const std::string& attrName) const { - return PossibleProfilesForClass; + return getCimClassDetails().getAttributeNamespaceUrl(attrName); } -std::map> -WorkLocation::getPossibleProfilesForAttributes() const +const std::list& WorkLocation::getPossibleProfiles() const { - auto map = PossibleProfilesForAttributes; - auto&& parent_map = Location::getPossibleProfilesForAttributes(); - map.insert(parent_map.begin(), parent_map.end()); - return map; + return getCimClassDetails().PossibleProfiles; +} + +const CGMESProfile& WorkLocation::getRecommendedProfile() const +{ + return getCimClassDetails().RecommendedProfile; +} + +const std::list& WorkLocation::getPossibleAttributeProfiles(const std::string& attrName) const +{ + return getCimClassDetails().getPossibleAttributeProfiles(attrName); +} + +const std::list& WorkLocation::getPossibleProfilesIncludingAttributes() const +{ + return getCimClassDetails().PossibleProfilesIncludingAttributes; } const char WorkLocation::debugName[] = "WorkLocation"; @@ -46,7 +78,7 @@ const char* WorkLocation::debugString() const void WorkLocation::addConstructToMap(std::unordered_map& factory_map) { - factory_map.emplace("cim:WorkLocation", &WorkLocation_factory); + factory_map.emplace("WorkLocation", &WorkLocation_factory); } void WorkLocation::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) @@ -72,11 +104,25 @@ void WorkLocation::addEnumGetFnsToMap(std::map& get_m Location::addEnumGetFnsToMap(get_map); } +bool WorkLocation::isAssignableFrom(BaseClass* otherObject) const +{ + return std::string(debugString()) == "WorkLocation" && + dynamic_cast(otherObject) != nullptr; +} + const BaseClassDefiner WorkLocation::declare() { return BaseClassDefiner(WorkLocation::addConstructToMap, WorkLocation::addPrimitiveAssignFnsToMap, WorkLocation::addClassAssignFnsToMap, WorkLocation::debugName); } +std::map WorkLocation::allAttrDetailsMap() const +{ + auto map = getClassAttrDetailsMap(); + const auto& parent_map = Location::allAttrDetailsMap(); + map.insert(parent_map.begin(), parent_map.end()); + return map; +} + namespace CIMPP { BaseClass* WorkLocation_factory() diff --git a/CGMES_3.0.0/WorkLocation.hpp b/CGMES_3.0.0/WorkLocation.hpp index b47676a48..f1a12dd81 100644 --- a/CGMES_3.0.0/WorkLocation.hpp +++ b/CGMES_3.0.0/WorkLocation.hpp @@ -12,6 +12,7 @@ Generated from the CGMES files via cimgen: https://github.com/sogno-platform/cim #include "Location.hpp" #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" namespace CIMPP { @@ -27,8 +28,15 @@ namespace CIMPP static const char debugName[]; const char* debugString() const override; - std::list getPossibleProfilesForClass() const override; - std::map> getPossibleProfilesForAttributes() const override; + const std::list& getAttributeNames() const override; + + const std::string& getClassNamespaceUrl() const override; + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const override; + + const std::list& getPossibleProfiles() const override; + const CGMESProfile& getRecommendedProfile() const override; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const override; + const std::list& getPossibleProfilesIncludingAttributes() const override; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -36,7 +44,12 @@ namespace CIMPP void addPrimitiveGetFnsToMap(std::map& get_map) const override; void addClassGetFnsToMap(std::map& get_map) const override; void addEnumGetFnsToMap(std::map& get_map) const override; + + bool isAssignableFrom(BaseClass* otherObject) const override; static const BaseClassDefiner declare(); + + protected: + std::map allAttrDetailsMap() const override; }; BaseClass* WorkLocation_factory(); diff --git a/static/BaseClass.cpp b/static/BaseClass.cpp index cc93fcd59..c19f85193 100644 --- a/static/BaseClass.cpp +++ b/static/BaseClass.cpp @@ -4,8 +4,15 @@ using namespace CIMPP; BaseClass::~BaseClass() {} -std::list BaseClass::getPossibleProfilesForClass() const { return {}; } -std::map> BaseClass::getPossibleProfilesForAttributes() const { return {}; } +const std::list& BaseClass::getAttributeNames() const { return CimClassDetails::UnknownAttributes; }; + +const std::string& BaseClass::getClassNamespaceUrl() const { return CimClassDetails::UnknownNamespace; } +const std::string& BaseClass::getAttributeNamespaceUrl(const std::string& /*attrName*/) const { return CimClassDetails::UnknownNamespace; } + +const std::list& BaseClass::getPossibleProfiles() const { return CimClassDetails::UnknownProfiles; } +const CGMESProfile& BaseClass::getRecommendedProfile() const { return UnknownProfile; } +const std::list& BaseClass::getPossibleAttributeProfiles(const std::string& /*attrName*/) const { return CimClassDetails::UnknownProfiles; } +const std::list& BaseClass::getPossibleProfilesIncludingAttributes() const { return CimClassDetails::UnknownProfiles; } const char BaseClass::debugName[] = "BaseClass"; const char* BaseClass::debugString() const @@ -24,3 +31,8 @@ const BaseClassDefiner BaseClass::declare() { return BaseClassDefiner(BaseClass::addConstructToMap, BaseClass::addPrimitiveAssignFnsToMap, BaseClass::addClassAssignFnsToMap, BaseClass::debugName); } + +std::map BaseClass::allAttrDetailsMap() const +{ + return {}; +} diff --git a/static/BaseClass.hpp b/static/BaseClass.hpp index f761249cf..a0c36ec0b 100644 --- a/static/BaseClass.hpp +++ b/static/BaseClass.hpp @@ -12,6 +12,7 @@ #include "BaseClassDefiner.hpp" #include "CGMESProfile.hpp" +#include "CimClassDetails.hpp" class BaseClass; typedef bool (*class_get_function)(const BaseClass*, std::list&); @@ -29,8 +30,15 @@ class BaseClass static const char debugName[]; virtual const char* debugString() const; - virtual std::list getPossibleProfilesForClass() const; - virtual std::map> getPossibleProfilesForAttributes() const; + virtual const std::list& getAttributeNames() const; + + virtual const std::string& getClassNamespaceUrl() const; + virtual const std::string& getAttributeNamespaceUrl(const std::string& attrName) const; + + virtual const std::list& getPossibleProfiles() const; + virtual const CGMESProfile& getRecommendedProfile() const; + virtual const std::list& getPossibleAttributeProfiles(const std::string& attrName) const; + virtual const std::list& getPossibleProfilesIncludingAttributes() const; static void addConstructToMap(std::unordered_map& factory_map); static void addPrimitiveAssignFnsToMap(std::unordered_map& assign_map); @@ -38,6 +46,12 @@ class BaseClass virtual void addPrimitiveGetFnsToMap(std::map& get_map) const; virtual void addClassGetFnsToMap(std::map& get_map) const; virtual void addEnumGetFnsToMap(std::map& get_map) const; + + virtual bool isAssignableFrom(BaseClass* otherObject) const { return false; } static const CIMPP::BaseClassDefiner declare(); + +protected: + friend class CimClassDetails; + virtual std::map allAttrDetailsMap() const; }; #endif // BASECLASS_HPP diff --git a/static/CimClassDetails.cpp b/static/CimClassDetails.cpp new file mode 100644 index 000000000..90112f6fa --- /dev/null +++ b/static/CimClassDetails.cpp @@ -0,0 +1,63 @@ +#include "CimClassDetails.hpp" + +#include "BaseClass.hpp" + +CimClassDetails::CimClassDetails( + const BaseClass& obj, + std::string classNamespace, + std::list possibleProfiles, + CGMESProfile recommendedProfile) +: + ClassNamespace(classNamespace), + AttrDetailsMap(obj.allAttrDetailsMap()), + AttrNamesList(constructAttrNamesList(AttrDetailsMap)), + PossibleProfiles(possibleProfiles), + RecommendedProfile(recommendedProfile), + PossibleProfilesIncludingAttributes(constructPossibleProfilesIncludingAttributes(PossibleProfiles, AttrDetailsMap)) +{ +} + +const std::string& CimClassDetails::getAttributeNamespaceUrl(const std::string& attrName) const +{ + if (AttrDetailsMap.find(attrName) != AttrDetailsMap.end()) + { + return AttrDetailsMap.at(attrName).nameSpace; + } + return UnknownNamespace; +} + +const std::list& CimClassDetails::getPossibleAttributeProfiles(const std::string& attrName) const +{ + if (AttrDetailsMap.find(attrName) != AttrDetailsMap.end()) + { + return AttrDetailsMap.at(attrName).profiles; + } + return UnknownProfiles; +} + +std::list CimClassDetails::constructAttrNamesList(const std::map& attrDetailsMap) +{ + std::list list; + for (const auto& nameAndDetails : attrDetailsMap) + { + list.push_back(nameAndDetails.first); + } + return list; +} + +std::list CimClassDetails::constructPossibleProfilesIncludingAttributes( + const std::list& possibleProfiles, + const std::map& attrDetailsMap) +{ + auto profiles = possibleProfiles; + for (const auto& nameAndDetails : attrDetailsMap) + { + const auto& attrProfiles = nameAndDetails.second.profiles; + profiles.insert(profiles.end(), attrProfiles.begin(), attrProfiles.end()); + } + return profiles; +} + +const std::list CimClassDetails::UnknownAttributes; +const std::string CimClassDetails::UnknownNamespace; +const std::list CimClassDetails::UnknownProfiles; diff --git a/static/CimClassDetails.hpp b/static/CimClassDetails.hpp new file mode 100644 index 000000000..4438cfb80 --- /dev/null +++ b/static/CimClassDetails.hpp @@ -0,0 +1,51 @@ +#ifndef CIMCLASSDETAILS_HPP +#define CIMCLASSDETAILS_HPP + +#include +#include +#include + +#include "CGMESProfile.hpp" + +class BaseClass; +class AttrDetails; + +class CimClassDetails +{ +public: + CimClassDetails( + const BaseClass& obj, + std::string classNamespace, + std::list possibleProfiles, + CGMESProfile recommendedProfile); + + const std::string ClassNamespace; + const std::map AttrDetailsMap; + const std::list AttrNamesList; + const std::list PossibleProfiles; + const CGMESProfile RecommendedProfile; + const std::list PossibleProfilesIncludingAttributes; + + const std::string& getAttributeNamespaceUrl(const std::string& attrName) const; + const std::list& getPossibleAttributeProfiles(const std::string& attrName) const; + +private: + static std::list constructAttrNamesList(const std::map& attrDetailsMap); + static std::list constructPossibleProfilesIncludingAttributes( + const std::list& possibleProfiles, + const std::map& attrDetailsMap); + +public: + static const std::list UnknownAttributes; + static const std::string UnknownNamespace; + static const std::list UnknownProfiles; +}; + +class AttrDetails +{ +public: + AttrDetails(std::string n, std::list c) : nameSpace(n), profiles(c) {} + const std::string nameSpace; + const std::list profiles; +}; +#endif From df4e945d339f8df238d2365aa1d0309e62322db9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Sun, 15 Jun 2025 15:00:17 +0200 Subject: [PATCH 02/13] Add writeFile and writeCim to CIMWriter (write to just one file/stream, regardless of profiles) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- src/CIMWriter.cpp | 67 ++++++++++++++++++++++++++++++++++------------- src/CIMWriter.hpp | 49 ++++++++++++++++++++++++++++------ 2 files changed, 90 insertions(+), 26 deletions(-) diff --git a/src/CIMWriter.cpp b/src/CIMWriter.cpp index cb01fd7e7..ba7080a7f 100644 --- a/src/CIMWriter.cpp +++ b/src/CIMWriter.cpp @@ -15,9 +15,25 @@ #include "gettercache.hpp" #include "profilecache.hpp" -std::map CIMWriter::writeFiles(const std::string& outputfile, +void CIMWriter::writeFile(const std::string& path, const std::vector& objList) +{ + writeFile(path, objList, UnknownProfile, {}, {}); +} + +void CIMWriter::writeFile(const std::string& path, const std::vector& objList, + const CGMESProfile& profile, const std::string& modelId, + const std::map& classProfileMap) +{ + std::stringstream rdf; + writeCim(rdf, objList, profile, modelId, classProfileMap); + + std::ofstream rdfFile(path); + rdfFile << rdf.str(); +} + +std::map CIMWriter::writeFiles(const std::string& pathStem, const std::vector& objList, - const std::string& modelID, + const std::string& modelIdStem, const std::map& classProfileMap) { std::map profileToFileMap; @@ -26,9 +42,9 @@ std::map CIMWriter::writeFiles(const std::string& out { std::string profileName = getProfileLongName(profile); std::stringstream rdf; - if (writeCim(rdf, objList, profile, modelID + "_" + profileName, classProfileMap)) + if (writeCim(rdf, objList, profile, modelIdStem + "_" + profileName, classProfileMap)) { - std::string file = outputfile + "_" + profileName + ".xml"; + std::string file = pathStem + "_" + profileName + ".xml"; std::ofstream rdfFile(file); rdfFile << rdf.str(); profileToFileMap.emplace(profile, file); @@ -38,8 +54,13 @@ std::map CIMWriter::writeFiles(const std::string& out return profileToFileMap; } +void CIMWriter::writeCim(std::ostream& rdf, const std::vector& objList) +{ + writeCim(rdf, objList, UnknownProfile, {}, {}); +} + bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objList, - const CGMESProfile& profile, const std::string& modelID, + const CGMESProfile& profile, const std::string& modelId, const std::map& classProfileMap) { int objectsCount = 0; @@ -49,31 +70,41 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi rdf << "" << std::endl; rdf << "" << std::endl; + rdf << " xmlns:cim='" << cimURL << "'"; + if (profile != UnknownProfile) + { + rdf << std::endl << " xmlns:md='" << mdURL << "'"; + } + rdf << ">" << std::endl; - rdf << " " << std::endl; - for (const auto& uri : getProfileURIs(profile)) + if (profile != UnknownProfile) { - rdf << " " << uri << "" << std::endl; + rdf << " " << std::endl; + for (const auto& uri : getProfileURIs(profile)) + { + rdf << " " << uri << "" << std::endl; + } + rdf << " " << std::endl; } - rdf << " " << std::endl; for (const BaseClass* obj : objList) { std::string type = obj->debugString(); std::string id = obj->getRdfid(); - if (!id.empty() && type != "UnknownType" && isClassMatchingProfile(obj, profile)) + if (!id.empty() && type != "UnknownType" && (profile == UnknownProfile || isClassMatchingProfile(obj, profile))) { std::stringstream rdfObj; int attributesCount = 0; CGMESProfile classProfile = UnknownProfile; - auto it = classProfileMap.find(type); - if (it != classProfileMap.end()) + if (profile != UnknownProfile) { - classProfile = it->second; + auto it = classProfileMap.find(type); + if (it != classProfileMap.end()) + { + classProfile = it->second; + } } bool mainEntryOfObject = (classProfile == profile); @@ -92,7 +123,7 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi get_function func = attrAndFunc.second; if (attr != "cim:IdentifiedObject.mRID" && - getAttributeProfile(obj, attr, classProfile) == profile) + (profile == UnknownProfile || getAttributeProfile(obj, attr, classProfile) == profile)) { std::stringstream stream; if (func(obj, stream)) @@ -108,7 +139,7 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi std::string attr = attrAndFunc.first; class_get_function func = attrAndFunc.second; - if (getAttributeProfile(obj, attr, classProfile) == profile) + if (profile == UnknownProfile || getAttributeProfile(obj, attr, classProfile) == profile) { std::list targetList; if (func(obj, targetList)) @@ -127,7 +158,7 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi std::string attr = attrAndFunc.first; get_function func = attrAndFunc.second; - if (getAttributeProfile(obj, attr, classProfile) == profile) + if (profile == UnknownProfile || getAttributeProfile(obj, attr, classProfile) == profile) { std::stringstream stream; if (func(obj, stream)) diff --git a/src/CIMWriter.hpp b/src/CIMWriter.hpp index c32789a7b..33d233569 100644 --- a/src/CIMWriter.hpp +++ b/src/CIMWriter.hpp @@ -16,24 +16,57 @@ class CIMWriter { public: /** - * \brief Write CIM RDF/XML files. + * \brief Write the CIM data to a RDF/XML file. * - * This function writes CIM objects into one or more RDF/XML files separated by profiles. + * All CIM objects are written to just one file, regardless of profiles. + * + * \param path Path of the file to write + * \param objList List of CIM objects to write + */ + static void writeFile(const std::string& path, const std::vector& objList); + + /** + * \brief Write the CIM data corresponding to one profile to a RDF file. + * + * If no profile is specified, all objects are written, regardless of profiles. + * In this case, modelId and classProfileMap are not required. + * + * \param path Path of file to write + * \param profile Only data for this profile should be written (if specified) + * \param modelId Model ID to write into the model description + * \param classProfileMap Mapping of CIM type to profile + */ + static void writeFile(const std::string& path, const std::vector& objList, + const CGMESProfile& profile, const std::string& modelId, + const std::map& classProfileMap); + + /** + * \brief Write the CIM data to RDF/XML files separated by profiles. * * Each CIM object will be written to its corresponding profile file depending on classProfileMap. * But some objects to more than one file if some attribute profiles are not the same as the class profile. * - * \param outputfile Stem of the output file, resulting files: _.xml + * \param pathStem Stem of the output files, resulting files: _.xml * \param objList List of CIM objects to write - * \param modelID Stem of the model IDs, resulting IDs: _ + * \param modelIdStem Stem of the model IDs, resulting IDs: _ * \param classProfileMap Mapping of CIM type to profile * \return Written files: Mapping of profile to file */ - static std::map writeFiles(const std::string& outputfile, + static std::map writeFiles(const std::string& pathStem, const std::vector& objList, - const std::string& modelID, + const std::string& modelIdStem, const std::map& classProfileMap); + /** + * \brief Write the CIM data to a stream (e.g. a file stream). + * + * All CIM objects are written to just one stream, regardless of profiles. + * + * \param rdf Output stream + * \param objList List of CIM objects to write + */ + static void writeCim(std::ostream& rdf, const std::vector& objList); + /** * \brief Write CIM objects as RDF/XML data to a stream. * @@ -42,12 +75,12 @@ class CIMWriter * \param rdf Output stream * \param objList List of CIM objects to write * \param profile Only data for this profile should be written - * \param modelID Model ID to write into the model description + * \param modelId Model ID to write into the model description * \param classProfileMap Mapping of CIM type to profile * \return Success: at least one object ist written to the stream */ static bool writeCim(std::ostream& rdf, const std::vector& objList, - const CGMESProfile& profile, const std::string& modelID, + const CGMESProfile& profile, const std::string& modelId, const std::map& classProfileMap); /** From 326b9dfac9721456db037327c084ed2d4b988add Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Sun, 29 Jun 2025 12:04:09 +0200 Subject: [PATCH 03/13] Fix custom namespace in cpp reader (e.g. entsoe in CGMES2, eu in CGMES3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- src/CIMContentHandler.cpp | 36 +++++++++++++++--------------------- src/CIMWriter.cpp | 8 ++++---- static/UnknownType.cpp | 34 +++++++++++++++++----------------- 3 files changed, 36 insertions(+), 42 deletions(-) diff --git a/src/CIMContentHandler.cpp b/src/CIMContentHandler.cpp index 93aaea382..ce87bbeaa 100644 --- a/src/CIMContentHandler.cpp +++ b/src/CIMContentHandler.cpp @@ -6,6 +6,10 @@ #include "CIMFactory.hpp" #include "assignments.hpp" #include "CIMExceptions.hpp" +#include "CimConstants.hpp" + +static std::string RDF = NamespaceMap.at("rdf"); +static std::string MD = NamespaceMap.at("md"); CIMContentHandler::CIMContentHandler() : Objects(nullptr), RDFMap(nullptr) { @@ -73,21 +77,13 @@ void CIMContentHandler::endPrefixMapping(const std::string &prefix) void CIMContentHandler::startElement(const std::string &namespaceURI, const std::string &localName, const std::string &qName, const AttributesT &atts) { - // Only process tags in cim namespace - if(qName.find("cim:") == std::string::npos) + if (namespaceURI == RDF || namespaceURI == MD) // RDF root element or ModelDescription { - bool isModelDescription = qName.find("md:") != std::string::npos || qName.find("DependentOn:") != std::string::npos || qName.find("createdBy") != std::string::npos; - bool isModel = qName.find("rdf:") != std::string::npos; - - if(!isModelDescription && !isModel) - { - std::cerr << "WARNING: "<< qName << " not in namespace \"cim\"" << std::endl; - } return; } // Remember last opened tag - tagStack.push(qName); + tagStack.push(localName); value.clear(); // If there is no RDF ID (an XML attribute!) then we don't have a new CIM @@ -96,7 +92,7 @@ void CIMContentHandler::startElement(const std::string &namespaceURI, const std: if(atts.getLength() == 0) return; // If name is a CIM class check if to create a new object - if(CIMFactory::IsCIMClass(qName)) + if (CIMFactory::IsCIMClass(localName)) { // Get rdf_id std::string rdf_id = get_rdf_id(atts); @@ -112,7 +108,7 @@ void CIMContentHandler::startElement(const std::string &namespaceURI, const std: } else // object does not exist -> create object { - BaseClass* BaseClass_ptr = CIMFactory::CreateNew(qName); + BaseClass* BaseClass_ptr = CIMFactory::CreateNew(localName); //Check if created Object is IdentifiedObject and place rdf_id into mRID if(CIMPP::IdentifiedObject* idOb = dynamic_cast(BaseClass_ptr)) @@ -130,26 +126,25 @@ void CIMContentHandler::startElement(const std::string &namespaceURI, const std: std::string rdf_id = get_rdf_resource(atts); if (!rdf_id.empty()) { - taskQueue.push_back(Task(objectStack.top(), qName, rdf_id)); + taskQueue.push_back(Task(objectStack.top(), localName, rdf_id)); return; } // Assign an enum symbol if the rdf id contains a enum symbol std::string enumSymbol = get_rdf_enum(atts); if(!enumSymbol.empty()) { - if(!assign(objectStack.top(), qName, enumSymbol)) + if (!assign(objectStack.top(), localName, enumSymbol)) std::cerr << "CIMContentHandler: Error: " << enumSymbol << " can not be assigned" << std::endl; return; } // Nobody knows what to do - std::cerr << "CIMContentHandler: Error: Nobody knows, the " << qName << " I've seen... *sing*" << std::endl; + std::cerr << "CIMContentHandler: Error: Nobody knows, the " << localName << " I've seen... *sing*" << std::endl; } void CIMContentHandler::endElement(const std::string &namespaceURI, const std::string &localName, const std::string &qName) { - // Only process tags in cim namespace - if (qName.find("cim:") == std::string::npos) + if (namespaceURI == RDF || namespaceURI == MD) // RDF root element or ModelDescription { return; } @@ -161,20 +156,19 @@ void CIMContentHandler::endElement(const std::string &namespaceURI, const std::s // Pop Stacks if (tagStack.size() == 0) { - std::cerr << "WARNING: Nearly tried to pop empty tag stack for tag: " << qName << std::endl; + std::cerr << "WARNING: Nearly tried to pop empty tag stack for tag: " << localName << std::endl; } else { tagStack.pop(); } - if(CIMFactory::IsCIMClass(qName)) + if (CIMFactory::IsCIMClass(localName)) { if (objectStack.size() == 0) { - std::cerr << "WARNING: Nearly tried to pop empty object stack for tag: " << qName << std::endl; + std::cerr << "WARNING: Nearly tried to pop empty object stack for tag: " << localName << std::endl; } else { objectStack.pop(); } - //std::cout << "Popped " << name << std::endl; } } diff --git a/src/CIMWriter.cpp b/src/CIMWriter.cpp index ba7080a7f..5f4c43d6b 100644 --- a/src/CIMWriter.cpp +++ b/src/CIMWriter.cpp @@ -122,13 +122,13 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi std::string attr = attrAndFunc.first; get_function func = attrAndFunc.second; - if (attr != "cim:IdentifiedObject.mRID" && + if (attr != "IdentifiedObject.mRID" && (profile == UnknownProfile || getAttributeProfile(obj, attr, classProfile) == profile)) { std::stringstream stream; if (func(obj, stream)) { - rdfObj << " <" << attr << ">" << xmlEscape(stream.str()) << "" << std::endl; + rdfObj << " " << xmlEscape(stream.str()) << "" << std::endl; ++attributesCount; } } @@ -146,7 +146,7 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi { for (const BaseClass* targetObj : targetList) { - rdfObj << " <" << attr << " rdf:resource='#" << targetObj->getRdfid() << "' />" << std::endl; + rdfObj << " " << std::endl; ++attributesCount; } } @@ -163,7 +163,7 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi std::stringstream stream; if (func(obj, stream)) { - rdfObj << " <" << attr << " rdf:resource='" << cimURL << stream.str() << "' />" << std::endl; + rdfObj << " " << std::endl; ++attributesCount; } } diff --git a/static/UnknownType.cpp b/static/UnknownType.cpp index fc55a922e..420c6285e 100644 --- a/static/UnknownType.cpp +++ b/static/UnknownType.cpp @@ -40,15 +40,15 @@ bool assign_Unknown_Attribute(std::stringstream &buffer, std::string name) { } bool assign_Name_name(std::stringstream &buffer, BaseClass* BaseClass_ptr1) { - return assign_Unknown_Attribute(buffer, "cim:Name.name"); + return assign_Unknown_Attribute(buffer, "Name.name"); } bool assign_NameType_name(std::stringstream &buffer, BaseClass* BaseClass_ptr1) { - return assign_Unknown_Attribute(buffer, "cim:NameType.name"); + return assign_Unknown_Attribute(buffer, "NameType.name"); } bool assign_Name_IdentifiedObject(std::stringstream &buffer, BaseClass* BaseClass_ptr1) { - return assign_Unknown_Attribute(buffer, "cim:Name.IdentifiedObject"); + return assign_Unknown_Attribute(buffer, "Name.IdentifiedObject"); } bool assign_ACDCTerminal_connected(std::stringstream &buffer, BaseClass* BaseClass_ptr1); @@ -66,7 +66,7 @@ bool assign_Class_NameType_name(BaseClass* BaseClass_ptr1, BaseClass* BaseClass_ } else { seen = true; - return assign_Unknown_Class("cim:NameType.name"); + return assign_Unknown_Class("NameType.name"); } } @@ -77,7 +77,7 @@ bool assign_Class_Name_NameType(BaseClass* BaseClass_ptr1, BaseClass* BaseClass_ } else { seen = true; - return assign_Unknown_Class("cim:Name.NameType"); + return assign_Unknown_Class("Name.NameType"); } } @@ -88,7 +88,7 @@ bool assign_Class_Name_name(BaseClass* BaseClass_ptr1, BaseClass* BaseClass_ptr2 } else { seen = true; - return assign_Unknown_Class("cim:Name.name"); + return assign_Unknown_Class("Name.name"); } } @@ -99,22 +99,22 @@ bool assign_Class_Name_IdentifiedObject(BaseClass* BaseClass_ptr1, BaseClass* Ba } else { seen = true; - return assign_Unknown_Class("cim:Name.IdentifiedObject"); + return assign_Unknown_Class("Name.IdentifiedObject"); } } void UnknownType::addPrimitiveAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.insert(std::make_pair(std::string("cim:Terminal.sequenceNumber"), &assign_ACDCTerminal_sequenceNumber)); - assign_map.insert(std::make_pair(std::string("cim:Terminal.connected"), &assign_ACDCTerminal_connected)); - assign_map.insert(std::make_pair(std::string("cim:Name.name"), &assign_Name_name)); - assign_map.insert(std::make_pair(std::string("cim:NameType.name"), &assign_NameType_name)); + assign_map.insert(std::make_pair(std::string("Terminal.sequenceNumber"), &assign_ACDCTerminal_sequenceNumber)); + assign_map.insert(std::make_pair(std::string("Terminal.connected"), &assign_ACDCTerminal_connected)); + assign_map.insert(std::make_pair(std::string("Name.name"), &assign_Name_name)); + assign_map.insert(std::make_pair(std::string("NameType.name"), &assign_NameType_name)); } void UnknownType::addClassAssignFnsToMap(std::unordered_map& assign_map) { - assign_map.insert(std::make_pair(std::string("cim:Name.name"), &assign_Class_Name_name)); - assign_map.insert(std::make_pair(std::string("cim:Name.IdentifiedObject"), &assign_Class_Name_IdentifiedObject)); - assign_map.insert(std::make_pair(std::string("cim:NameType.name"), &assign_Class_NameType_name)); - assign_map.insert(std::make_pair(std::string("cim:Name.NameType"), &assign_Class_Name_NameType)); + assign_map.insert(std::make_pair(std::string("Name.name"), &assign_Class_Name_name)); + assign_map.insert(std::make_pair(std::string("Name.IdentifiedObject"), &assign_Class_Name_IdentifiedObject)); + assign_map.insert(std::make_pair(std::string("NameType.name"), &assign_Class_NameType_name)); + assign_map.insert(std::make_pair(std::string("Name.NameType"), &assign_Class_Name_NameType)); } namespace CIMPP { @@ -124,8 +124,8 @@ namespace CIMPP { } void UnknownType::addConstructToMap(std::unordered_map& factory_map) { - factory_map.insert(std::make_pair(std::string("cim:NameType"), &UnknownType_factory)); - factory_map.insert(std::make_pair(std::string("cim:Name"), &UnknownType_factory)); + factory_map.insert(std::make_pair(std::string("NameType"), &UnknownType_factory)); + factory_map.insert(std::make_pair(std::string("Name"), &UnknownType_factory)); } const char UnknownType::debugName[] = "UnknownType"; From 344415e1873b3d6f3bcee07dc61c882fa05918b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Mon, 30 Jun 2025 16:51:16 +0200 Subject: [PATCH 04/13] Fix custom namespace in cpp writer (e.g. "entsoe" in CGMES2, "eu" in CGMES3; using new generated functions getClassNamespaceUrl and getAttributeNamespaceUrl) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- src/CIMWriter.cpp | 133 +++++++++++++++++++++++++++++++--------- src/CIMWriter.hpp | 2 + static/profilecache.cpp | 39 ------------ static/profilecache.hpp | 14 ----- 4 files changed, 107 insertions(+), 81 deletions(-) delete mode 100644 static/profilecache.cpp delete mode 100644 static/profilecache.hpp diff --git a/src/CIMWriter.cpp b/src/CIMWriter.cpp index 5f4c43d6b..985546415 100644 --- a/src/CIMWriter.cpp +++ b/src/CIMWriter.cpp @@ -5,15 +5,15 @@ #include #include #include +#include #include #include #include +#include "BaseClass.hpp" #include "CGMESProfile.hpp" #include "CimConstants.hpp" -#include "BaseClass.hpp" #include "gettercache.hpp" -#include "profilecache.hpp" void CIMWriter::writeFile(const std::string& path, const std::vector& objList) { @@ -64,16 +64,20 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi const std::map& classProfileMap) { int objectsCount = 0; - static const auto& rdfURL = NamespaceMap.at("rdf"); static const auto& cimURL = NamespaceMap.at("cim"); static const auto& mdURL = NamespaceMap.at("md"); - rdf << "" << std::endl; - rdf << "" << std::endl; + rdf << "" << std::endl; @@ -91,8 +95,10 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi { std::string type = obj->debugString(); std::string id = obj->getRdfid(); + std::string nsObj = getNamespaceKey(obj->getClassNamespaceUrl()); - if (!id.empty() && type != "UnknownType" && (profile == UnknownProfile || isClassMatchingProfile(obj, profile))) + if (!id.empty() && type != "UnknownType" && !nsObj.empty() && + (profile == UnknownProfile || isClassMatchingProfile(obj, profile))) { std::stringstream rdfObj; int attributesCount = 0; @@ -110,17 +116,18 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi bool mainEntryOfObject = (classProfile == profile); if (mainEntryOfObject) { - rdfObj << " " << std::endl; + rdfObj << " <" << nsObj << ":" << type << " rdf:ID='" << id << "'>" << std::endl; } else { - rdfObj << " " << std::endl; + rdfObj << " <" << nsObj << ":" << type << " rdf:about='#" << id << "'>" << std::endl; } for (const auto& attrAndFunc : get_primitive_getter_map(obj)) { std::string attr = attrAndFunc.first; get_function func = attrAndFunc.second; + std::string nsAttr = getNamespaceKey(obj->getAttributeNamespaceUrl(attr)); if (attr != "IdentifiedObject.mRID" && (profile == UnknownProfile || getAttributeProfile(obj, attr, classProfile) == profile)) @@ -128,7 +135,8 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi std::stringstream stream; if (func(obj, stream)) { - rdfObj << " " << xmlEscape(stream.str()) << "" << std::endl; + rdfObj << " <" << nsAttr << ":" << attr << ">" << xmlEscape(stream.str()) << "" << std::endl; ++attributesCount; } } @@ -138,6 +146,7 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi { std::string attr = attrAndFunc.first; class_get_function func = attrAndFunc.second; + std::string nsAttr = getNamespaceKey(obj->getAttributeNamespaceUrl(attr)); if (profile == UnknownProfile || getAttributeProfile(obj, attr, classProfile) == profile) { @@ -146,7 +155,8 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi { for (const BaseClass* targetObj : targetList) { - rdfObj << " " << std::endl; + rdfObj << " <" << nsAttr << ":" << attr << " rdf:resource='#" << targetObj->getRdfid() << "' />" + << std::endl; ++attributesCount; } } @@ -157,19 +167,22 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi { std::string attr = attrAndFunc.first; get_function func = attrAndFunc.second; + std::string namespaceUrl = obj->getAttributeNamespaceUrl(attr); + std::string nsAttr = getNamespaceKey(namespaceUrl); if (profile == UnknownProfile || getAttributeProfile(obj, attr, classProfile) == profile) { std::stringstream stream; if (func(obj, stream)) { - rdfObj << " " << std::endl; + rdfObj << " <" << nsAttr << ":" << attr << " rdf:resource='" << namespaceUrl << stream.str() << "' />" + << std::endl; ++attributesCount; } } } - rdfObj << " " << std::endl; + rdfObj << " " << std::endl; if (mainEntryOfObject || attributesCount != 0) { @@ -185,22 +198,22 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi bool CIMWriter::isClassMatchingProfile(const BaseClass* obj, const CGMESProfile& profile) { - const auto& profiles = get_possible_profiles_for_class(obj); + const auto& profiles = obj->getPossibleProfiles(); return std::find(profiles.begin(), profiles.end(), profile) != profiles.end(); } CGMESProfile CIMWriter::getClassProfile(const BaseClass* obj) { - const auto& classProfiles = get_possible_profiles_for_class(obj); + const auto& classProfiles = obj->getPossibleProfiles(); if (classProfiles.size() == 1) { return classProfiles.front(); } std::map profileCountMap; - for (const auto& attrAndProfiles : get_possible_profiles_for_attributes(obj)) + for (const auto& attrName : obj->getAttributeNames()) { - const auto& profiles = attrAndProfiles.second; + auto profiles = obj->getPossibleAttributeProfiles(attrName); bool ambiguousProfile = profiles.size() > 1; for (CGMESProfile profile : profiles) { @@ -246,22 +259,86 @@ std::map CIMWriter::getClassProfileMap(const std::vec CGMESProfile CIMWriter::getAttributeProfile(const BaseClass* obj, const std::string& attr, const CGMESProfile& classProfile) { - const auto& profilesMap = get_possible_profiles_for_attributes(obj); - auto it = profilesMap.find(attr); - if (it != profilesMap.end()) + auto profiles = obj->getPossibleAttributeProfiles(attr); + if (std::find(profiles.begin(), profiles.end(), classProfile) != profiles.end()) + { + return classProfile; + } + else if (!profiles.empty()) + { + profiles.sort(); + return profiles.front(); + } + return UnknownProfile; +} + +std::map CIMWriter::getUsedNamespaces(const std::vector& objList) +{ + std::set urls; + urls.insert(NamespaceMap.at("rdf")); + + for (const BaseClass* obj : objList) { - auto profiles = it->second; - if (std::find(profiles.begin(), profiles.end(), classProfile) != profiles.end()) + urls.insert(obj->getClassNamespaceUrl()); + for (const auto& attrAndFunc : get_primitive_getter_map(obj)) { - return classProfile; + std::string attr = attrAndFunc.first; + get_function func = attrAndFunc.second; + + std::stringstream stream; + if (func(obj, stream)) + { + urls.insert(obj->getAttributeNamespaceUrl(attr)); + } } - else if (!profiles.empty()) + + for (const auto& attrAndFunc : get_class_getter_map(obj)) { - profiles.sort(); - return profiles.front(); + std::string attr = attrAndFunc.first; + class_get_function func = attrAndFunc.second; + + std::list targetList; + if (func(obj, targetList) && !targetList.empty()) + { + urls.insert(obj->getAttributeNamespaceUrl(attr)); + } + } + + for (const auto& attrAndFunc : get_enum_getter_map(obj)) + { + std::string attr = attrAndFunc.first; + get_function func = attrAndFunc.second; + + std::stringstream stream; + if (func(obj, stream)) + { + urls.insert(obj->getAttributeNamespaceUrl(attr)); + } } } - return UnknownProfile; + + std::map namespaces; + for (const auto& url : urls) + { + const auto& ns = getNamespaceKey(url); + if (!ns.empty()) + { + namespaces.emplace(ns, url); + } + } + return namespaces; +} + +std::string CIMWriter::getNamespaceKey(const std::string& url) +{ + for (const auto& nsAndUrl : NamespaceMap) + { + if (nsAndUrl.second == url) + { + return nsAndUrl.first; + } + } + return ""; } std::string CIMWriter::xmlEscape(const std::string& txt) diff --git a/src/CIMWriter.hpp b/src/CIMWriter.hpp index 33d233569..6730eb8fa 100644 --- a/src/CIMWriter.hpp +++ b/src/CIMWriter.hpp @@ -139,6 +139,8 @@ class CIMWriter const CGMESProfile& classProfile); private: + static std::map getUsedNamespaces(const std::vector& objList); + static std::string getNamespaceKey(const std::string& url); static std::string xmlEscape(const std::string& txt); }; diff --git a/static/profilecache.cpp b/static/profilecache.cpp deleted file mode 100644 index a5d008a4e..000000000 --- a/static/profilecache.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "profilecache.hpp" - -#include -#include -#include - -#include "CGMESProfile.hpp" -#include "BaseClass.hpp" - -using namespace CIMPP; - -static std::unordered_map> profiles_for_class_cache; -static std::unordered_map>> profiles_for_attributes_cache; -static const std::list empty_list; -static const std::map> empty_map; - -const std::list& get_possible_profiles_for_class(const BaseClass* obj) -{ - std::string type = obj->debugString(); - - if (profiles_for_class_cache.find(type) == profiles_for_class_cache.end()) - { - profiles_for_class_cache.emplace(type, obj->getPossibleProfilesForClass()); - } - - return profiles_for_class_cache.at(type); -} - -const std::map>& get_possible_profiles_for_attributes(const BaseClass* obj) -{ - std::string type = obj->debugString(); - - if (profiles_for_attributes_cache.find(type) == profiles_for_attributes_cache.end()) - { - profiles_for_attributes_cache.emplace(type, obj->getPossibleProfilesForAttributes()); - } - - return profiles_for_attributes_cache.at(type); -} diff --git a/static/profilecache.hpp b/static/profilecache.hpp deleted file mode 100644 index 1d72c8f05..000000000 --- a/static/profilecache.hpp +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PROFILECACHE_HPP -#define PROFILECACHE_HPP - -#include -#include -#include - -#include "CGMESProfile.hpp" -#include "BaseClass.hpp" - -const std::list& get_possible_profiles_for_class(const BaseClass* obj); -const std::map>& get_possible_profiles_for_attributes(const BaseClass* obj); - -#endif // PROFILECACHE_HPP From 65ba93901c91077bf760804efd9a2f3bbd90c76d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Mon, 30 Jun 2025 17:26:22 +0200 Subject: [PATCH 05/13] Fix isClassMatchingProfile in cpp writer (class is also matching if it contains attributes for the profile) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- src/CIMWriter.cpp | 36 ++---------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/src/CIMWriter.cpp b/src/CIMWriter.cpp index 985546415..d9f8967b9 100644 --- a/src/CIMWriter.cpp +++ b/src/CIMWriter.cpp @@ -198,45 +198,13 @@ bool CIMWriter::writeCim(std::ostream& rdf, const std::vector& objLi bool CIMWriter::isClassMatchingProfile(const BaseClass* obj, const CGMESProfile& profile) { - const auto& profiles = obj->getPossibleProfiles(); + const auto& profiles = obj->getPossibleProfilesIncludingAttributes(); return std::find(profiles.begin(), profiles.end(), profile) != profiles.end(); } CGMESProfile CIMWriter::getClassProfile(const BaseClass* obj) { - const auto& classProfiles = obj->getPossibleProfiles(); - if (classProfiles.size() == 1) - { - return classProfiles.front(); - } - - std::map profileCountMap; - for (const auto& attrName : obj->getAttributeNames()) - { - auto profiles = obj->getPossibleAttributeProfiles(attrName); - bool ambiguousProfile = profiles.size() > 1; - for (CGMESProfile profile : profiles) - { - if (ambiguousProfile && - std::find(classProfiles.begin(), classProfiles.end(), profile) != classProfiles.end()) - { - ++profileCountMap[profile]; - } - } - } - - std::multimap countProfileMap; - for (const auto& profileAndCount : profileCountMap) - { - countProfileMap.emplace(-profileAndCount.second, profileAndCount.first); - } - - for (const auto& countAndProfile : countProfileMap) - { - return countAndProfile.second; - } - - return UnknownProfile; + return obj->getRecommendedProfile(); } std::map CIMWriter::getClassProfileMap(const std::vector& objList) From d78e66e65f0195005c6fe8c6483337d3c85ee306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Mon, 7 Jul 2025 01:48:57 +0200 Subject: [PATCH 06/13] Fix parsing objects with changing types (e.g. first as Equipment, than as PowerTransformer) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- src/CIMContentHandler.cpp | 72 +++++++++++++++++++++++++++++++++++++-- src/CIMContentHandler.hpp | 1 + static/Task.cpp | 9 ++++- static/Task.hpp | 1 + 4 files changed, 79 insertions(+), 4 deletions(-) diff --git a/src/CIMContentHandler.cpp b/src/CIMContentHandler.cpp index ce87bbeaa..a42765d7e 100644 --- a/src/CIMContentHandler.cpp +++ b/src/CIMContentHandler.cpp @@ -3,10 +3,11 @@ #include #include -#include "CIMFactory.hpp" -#include "assignments.hpp" #include "CIMExceptions.hpp" +#include "CIMFactory.hpp" #include "CimConstants.hpp" +#include "assignments.hpp" +#include "gettercache.hpp" static std::string RDF = NamespaceMap.at("rdf"); static std::string MD = NamespaceMap.at("md"); @@ -104,7 +105,24 @@ void CIMContentHandler::startElement(const std::string &namespaceURI, const std: std::unordered_map::iterator it = RDFMap->find(rdf_id); if(it != RDFMap->end()) // object exists -> push it on the stack { - objectStack.push(it->second); + BaseClass* BaseClass_ptr = it->second; + if (BaseClass_ptr->debugString() != localName) + { + BaseClass* newObject_ptr = retypeObject(BaseClass_ptr, localName, rdf_id); + if (newObject_ptr != nullptr) + { + it->second = newObject_ptr; + *std::find(Objects->begin(), Objects->end(), BaseClass_ptr) = newObject_ptr; + delete BaseClass_ptr; + BaseClass_ptr = newObject_ptr; + } + else + { + std::cout << "CIMContentHandler: Found " << BaseClass_ptr->debugString() << " (instead of " + << localName << ") with rdf:ID: " << rdf_id << " in map" << std::endl; + } + } + objectStack.push(BaseClass_ptr); } else // object does not exist -> create object { @@ -264,3 +282,51 @@ bool CIMContentHandler::resolveRDFRelations() else return true; } + +BaseClass* CIMContentHandler::retypeObject(BaseClass* oldObject_ptr, const std::string& newClassName, const std::string& rdfid) +{ + BaseClass* newObject_ptr = CIMFactory::CreateNew(newClassName); + if (oldObject_ptr->isAssignableFrom(newObject_ptr)) + { + std::cout << "CIMContentHandler: Retyping object with rdf:ID: " << rdfid << " from type: " + << oldObject_ptr->debugString() << " to type: " << newClassName << std::endl; + + newObject_ptr->setRdfid(rdfid); + + // Copy primitive attributes from old object to the new object + for (const auto& attrAndFunc : get_primitive_getter_map(oldObject_ptr)) + { + std::string attr = attrAndFunc.first; + get_function func = attrAndFunc.second; + + std::stringstream stream; + if (func(oldObject_ptr, stream)) + { + assign(newObject_ptr, attr, stream.str()); + } + } + + // Copy enum attributes from old object to the new object + for (const auto& attrAndFunc : get_enum_getter_map(oldObject_ptr)) + { + std::string attr = attrAndFunc.first; + get_function func = attrAndFunc.second; + + std::stringstream stream; + if (func(oldObject_ptr, stream)) + { + assign(newObject_ptr, attr, stream.str()); + } + } + + // Copy class attributes from old object to the new object + for (auto& task : taskQueue) + { + task.replaceObject(oldObject_ptr, newObject_ptr); + } + + return newObject_ptr; + } + delete newObject_ptr; + return nullptr; +} diff --git a/src/CIMContentHandler.hpp b/src/CIMContentHandler.hpp index ea9beb91f..7e8fce779 100644 --- a/src/CIMContentHandler.hpp +++ b/src/CIMContentHandler.hpp @@ -51,6 +51,7 @@ class CIMContentHandler : public Arabica::SAX::ContentHandler std::stack tagStack; std::list taskQueue; std::string value; + BaseClass* retypeObject(BaseClass* oldObject_ptr, const std::string& className, const std::string& rdfid); }; diff --git a/static/Task.cpp b/static/Task.cpp index be10d25a4..30fda30ba 100644 --- a/static/Task.cpp +++ b/static/Task.cpp @@ -24,7 +24,6 @@ void Task::print() std::cout << _CIMAttrName << " '" << IdObj->name << "' = '" << _Value << "'" << std::endl; else std::cout << _CIMAttrName << " = '" << _Value << "'" << std::endl; - } bool Task::resolve(std::unordered_map *RDFMap) @@ -47,6 +46,14 @@ bool Task::resolve(std::unordered_map *RDFMap) return (*it_func->second)(it_id->second, _CIMObj); } +void Task::replaceObject(BaseClass* oldObject_ptr, BaseClass* newObject_ptr) +{ + if (_CIMObj == oldObject_ptr) + { + _CIMObj = newObject_ptr; + } +} + static std::unordered_map initialize() { std::unordered_map object_map; diff --git a/static/Task.hpp b/static/Task.hpp index 2dd484a3f..10845ceb3 100644 --- a/static/Task.hpp +++ b/static/Task.hpp @@ -13,6 +13,7 @@ class Task ~Task(); bool resolve(std::unordered_map *RDFMap); void print(); + void replaceObject(BaseClass* oldObject_ptr, BaseClass* newObject_ptr); private: BaseClass* _CIMObj; std::string _CIMAttrName; From daab19eeb6774387680cb627d7681a69442866ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Mon, 23 Jun 2025 02:00:52 +0200 Subject: [PATCH 07/13] Optimize reader performance (change Task::resolve() to const, don't erase tasks in resolveRDFRelations) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- src/CIMContentHandler.cpp | 12 +++--------- src/CIMContentHandler.hpp | 4 ++-- static/Task.cpp | 4 ++-- static/Task.hpp | 4 ++-- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/CIMContentHandler.cpp b/src/CIMContentHandler.cpp index a42765d7e..840799e13 100644 --- a/src/CIMContentHandler.cpp +++ b/src/CIMContentHandler.cpp @@ -261,19 +261,13 @@ bool CIMContentHandler::resolveRDFRelations() unsigned int unresolved; unresolved = 0; size_t taskSize = taskQueue.size(); - std::list::iterator it = taskQueue.begin(); - while(it != taskQueue.end()) + for (const auto& task : taskQueue) { - if(!it->resolve(RDFMap)) + if (!task.resolve(RDFMap)) { std::cout << "CIMContentHandler: Note: Cannot resolve following RDF relationship: "; - it->print(); + task.print(); unresolved++; - ++it; - } - else - { - taskQueue.erase(it++); } } std::cout << "CIMContentHandler: Note: " << unresolved << " out of " << taskSize << " tasks remain unresolved!" << std::endl; diff --git a/src/CIMContentHandler.hpp b/src/CIMContentHandler.hpp index 7e8fce779..ef9125d7f 100644 --- a/src/CIMContentHandler.hpp +++ b/src/CIMContentHandler.hpp @@ -4,8 +4,8 @@ #include #include +#include #include -#include #include #include @@ -49,7 +49,7 @@ class CIMContentHandler : public Arabica::SAX::ContentHandler private: std::stack objectStack; std::stack tagStack; - std::list taskQueue; + std::deque taskQueue; std::string value; BaseClass* retypeObject(BaseClass* oldObject_ptr, const std::string& className, const std::string& rdfid); }; diff --git a/static/Task.cpp b/static/Task.cpp index 30fda30ba..33cf520c8 100644 --- a/static/Task.cpp +++ b/static/Task.cpp @@ -18,7 +18,7 @@ Task::Task(BaseClass* CIMObj, const std::string CIMAttrName, const std::string V Task::~Task() {} -void Task::print() +void Task::print() const { if(IdentifiedObject* IdObj = dynamic_cast(_CIMObj)) std::cout << _CIMAttrName << " '" << IdObj->name << "' = '" << _Value << "'" << std::endl; @@ -26,7 +26,7 @@ void Task::print() std::cout << _CIMAttrName << " = '" << _Value << "'" << std::endl; } -bool Task::resolve(std::unordered_map *RDFMap) +bool Task::resolve(std::unordered_map *RDFMap) const { std::unordered_map::iterator it_id = RDFMap->find(_Value); if(it_id == RDFMap->end()) { diff --git a/static/Task.hpp b/static/Task.hpp index 10845ceb3..13d9fc024 100644 --- a/static/Task.hpp +++ b/static/Task.hpp @@ -11,8 +11,8 @@ class Task Task(); Task(BaseClass* CIMObj, const std::string CIMAttrName, const std::string Value); ~Task(); - bool resolve(std::unordered_map *RDFMap); - void print(); + bool resolve(std::unordered_map *RDFMap) const; + void print() const; void replaceObject(BaseClass* oldObject_ptr, BaseClass* newObject_ptr); private: BaseClass* _CIMObj; From 716dc25267075707f41b145a1dfc9907437f9f66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Mon, 7 Jul 2025 01:50:45 +0200 Subject: [PATCH 08/13] Add unit tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- CMakeLists.txt | 4 + .../CGMESProfile_getProfileFromLongName.cpp | 18 ++ .../CGMESProfile_getProfileFromShortName.cpp | 11 + .../CGMESProfile_getProfileList.cpp | 50 +++ .../CGMESProfile_getProfileLongName.cpp | 17 ++ .../CGMESProfile_getProfileShortName.cpp | 10 + .../CGMESProfile_getProfileURIs.cpp | 37 +++ test/CIMModel/CIMModel_test.cpp | 10 + test/CIMModel/CIMModel_test001.cpp | 41 +++ test/CIMModel/CIMModel_test002.cpp | 43 +++ test/CIMModel/CIMModel_test003.cpp | 34 +++ test/CIMModel/CIMModel_test004.cpp | 27 ++ test/CIMModel/CIMModel_test005.cpp | 104 +++++++ test/CIMModel/CIMModel_test006.cpp | 61 ++++ test/CIMModel/CIMModel_test007.cpp | 46 +++ test/CIMModel/CIMModel_test008.cpp | 68 +++++ test/CIMModel/CIMModel_test009.cpp | 68 +++++ test/CIMModel/CIMModel_test010.cpp | 96 ++++++ test/CIMModel/CIMModel_test011.cpp | 180 +++++++++++ test/CIMModel/CIMModel_test012.cpp | 31 ++ test/CIMModel/CIMModel_test013.cpp | 50 +++ test/CIMModel/CIMModel_test014.cpp | 50 +++ test/CIMModel/CIMModel_test015.cpp | 51 ++++ test/CIMModel/CIMModel_test016.cpp | 52 ++++ test/CIMModel/CIMModel_test017.cpp | 33 ++ test/CIMModel/CIMModel_test018.cpp | 33 ++ test/CIMModel/CIMModel_test019.cpp | 34 +++ test/CIMModel/CIMModel_test020.cpp | 37 +++ test/CIMModel/CIMModel_test021.cpp | 28 ++ test/CIMModel/CIMModel_test022.cpp | 40 +++ test/CIMModel/CIMModel_test023.cpp | 24 ++ test/CIMModel/CIMModel_test024.cpp | 53 ++++ test/CIMModel/CIMModel_test025.cpp | 53 ++++ test/CIMModel/CIMModel_test026.cpp | 53 ++++ test/CIMModel/CIMModel_test027.cpp | 53 ++++ test/CIMModel/CIMModel_test028.cpp | 54 ++++ test/CIMModel/CIMModel_test029.cpp | 40 +++ test/CIMModel/CIMModel_test030.cpp | 41 +++ test/CIMModel/CIMModel_test031.cpp | 41 +++ test/CIMModel/CIMModel_test032.cpp | 39 +++ test/CIMModel/CIMModel_test033.cpp | 42 +++ test/CIMModel/CIMModel_test034.cpp | 56 ++++ test/CIMModel/CIMModel_test035.cpp | 56 ++++ test/CIMModel/CIMModel_test036.cpp | 40 +++ test/CIMModel/CIMModel_test037.cpp | 42 +++ test/CIMModel/CIMModel_test038.cpp | 36 +++ test/CIMModel/CIMModel_test039.cpp | 34 +++ .../CIMWriter_getAttributeProfile.cpp | 49 +++ test/CIMWriter/CIMWriter_getClassProfile.cpp | 14 + .../CIMWriter_getClassProfileMap.cpp | 21 ++ .../CIMWriter_isClassMatchingProfile.cpp | 72 +++++ test/CIMWriter/CIMWriter_test.cpp | 284 ++++++++++++++++++ test/CIMWriter/CIMWriter_test001.cpp | 46 +++ test/CIMWriter/CIMWriter_test002.cpp | 51 ++++ test/CIMWriter/CIMWriter_test003.cpp | 45 +++ test/CIMWriter/CIMWriter_test004.cpp | 45 +++ test/CIMWriter/CIMWriter_test005.cpp | 88 ++++++ test/CIMWriter/CIMWriter_test006.cpp | 82 +++++ test/CIMWriter/CIMWriter_test007.cpp | 53 ++++ test/CIMWriter/CIMWriter_test008.cpp | 90 ++++++ .../CIMWriter_test008_with_profiles.cpp | 133 ++++++++ test/CIMWriter/CIMWriter_test009.cpp | 90 ++++++ test/CIMWriter/CIMWriter_test010.cpp | 120 ++++++++ test/CIMWriter/CIMWriter_test011.cpp | 67 +++++ test/CIMWriter/CIMWriter_test012.cpp | 41 +++ test/CIMWriter/CIMWriter_test013.cpp | 51 ++++ test/CIMWriter/CIMWriter_test014.cpp | 51 ++++ test/CIMWriter/CIMWriter_test015.cpp | 52 ++++ test/CIMWriter/CIMWriter_test016.cpp | 53 ++++ test/CIMWriter/CIMWriter_test017.cpp | 46 +++ test/CIMWriter/CIMWriter_test018.cpp | 46 +++ test/CIMWriter/CIMWriter_test019.cpp | 47 +++ test/CIMWriter/CIMWriter_test020.cpp | 45 +++ test/CIMWriter/CIMWriter_test021.cpp | 41 +++ test/CIMWriter/CIMWriter_test022.cpp | 103 +++++++ test/CIMWriter/CIMWriter_test023.cpp | 43 +++ test/CIMWriter/CIMWriter_test024.cpp | 53 ++++ test/CIMWriter/CIMWriter_test025.cpp | 53 ++++ test/CIMWriter/CIMWriter_test026.cpp | 53 ++++ test/CIMWriter/CIMWriter_test027.cpp | 53 ++++ test/CIMWriter/CIMWriter_test028.cpp | 54 ++++ test/CIMWriter/CIMWriter_test029.cpp | 47 +++ test/CIMWriter/CIMWriter_test030.cpp | 48 +++ test/CIMWriter/CIMWriter_test031.cpp | 48 +++ test/CIMWriter/CIMWriter_test032.cpp | 48 +++ test/CIMWriter/CIMWriter_test033.cpp | 49 +++ test/CIMWriter/CIMWriter_test034.cpp | 54 ++++ test/CIMWriter/CIMWriter_test035.cpp | 54 ++++ test/CIMWriter/CIMWriter_test036.cpp | 49 +++ test/CIMWriter/CIMWriter_test037.cpp | 51 ++++ test/CIMWriter/CIMWriter_test038.cpp | 46 +++ test/CIMWriter/CIMWriter_test039.cpp | 45 +++ test/CMakeLists.txt | 27 ++ test/rdf/test001.xml | 11 + test/rdf/test002.xml | 13 + test/rdf/test003.xml | 10 + test/rdf/test004.xml | 13 + test/rdf/test005_CGMES2.xml | 11 + test/rdf/test005_CGMES3.xml | 11 + test/rdf/test006_CGMES2.xml | 9 + test/rdf/test006_CGMES3.xml | 9 + test/rdf/test007.xml | 16 + test/rdf/test008_EQ.xml | 8 + test/rdf/test008_TP.xml | 7 + test/rdf/test009_EQ.xml | 7 + test/rdf/test009_TP.xml | 10 + test/rdf/test010_ISO-8859-1.xml | 7 + test/rdf/test010_ISO-8859-15.xml | 7 + test/rdf/test010_UTF-16BE.xml | Bin 0 -> 656 bytes test/rdf/test010_UTF-16LE.xml | Bin 0 -> 656 bytes test/rdf/test010_UTF-8.xml | 7 + test/rdf/test011_CGMES3.xml | 25 ++ test/rdf/test012.xml | 8 + test/rdf/test013.xml | 15 + test/rdf/test014.xml | 15 + test/rdf/test015.xml | 17 ++ test/rdf/test016.xml | 15 + test/rdf/test017.xml | 11 + test/rdf/test018.xml | 11 + test/rdf/test019.xml | 12 + test/rdf/test020.xml | 10 + test/rdf/test021.xml | 8 + test/rdf/test022.xml | 10 + test/rdf/test023.xml | 7 + test/rdf/test024.xml | 17 ++ test/rdf/test025.xml | 17 ++ test/rdf/test026.xml | 17 ++ test/rdf/test027.xml | 17 ++ test/rdf/test028.xml | 17 ++ test/rdf/test029.xml | 16 + test/rdf/test030.xml | 16 + test/rdf/test031.xml | 16 + test/rdf/test032.xml | 16 + test/rdf/test033.xml | 13 + test/rdf/test034.xml | 17 ++ test/rdf/test035.xml | 17 ++ test/rdf/test036.xml | 13 + test/rdf/test037.xml | 13 + test/rdf/test038.xml | 10 + test/rdf/test039.xml | 11 + test/test_main.cpp | 2 + 141 files changed, 5487 insertions(+) create mode 100644 test/CGMESProfile/CGMESProfile_getProfileFromLongName.cpp create mode 100644 test/CGMESProfile/CGMESProfile_getProfileFromShortName.cpp create mode 100644 test/CGMESProfile/CGMESProfile_getProfileList.cpp create mode 100644 test/CGMESProfile/CGMESProfile_getProfileLongName.cpp create mode 100644 test/CGMESProfile/CGMESProfile_getProfileShortName.cpp create mode 100644 test/CGMESProfile/CGMESProfile_getProfileURIs.cpp create mode 100644 test/CIMModel/CIMModel_test.cpp create mode 100644 test/CIMModel/CIMModel_test001.cpp create mode 100644 test/CIMModel/CIMModel_test002.cpp create mode 100644 test/CIMModel/CIMModel_test003.cpp create mode 100644 test/CIMModel/CIMModel_test004.cpp create mode 100644 test/CIMModel/CIMModel_test005.cpp create mode 100644 test/CIMModel/CIMModel_test006.cpp create mode 100644 test/CIMModel/CIMModel_test007.cpp create mode 100644 test/CIMModel/CIMModel_test008.cpp create mode 100644 test/CIMModel/CIMModel_test009.cpp create mode 100644 test/CIMModel/CIMModel_test010.cpp create mode 100644 test/CIMModel/CIMModel_test011.cpp create mode 100644 test/CIMModel/CIMModel_test012.cpp create mode 100644 test/CIMModel/CIMModel_test013.cpp create mode 100644 test/CIMModel/CIMModel_test014.cpp create mode 100644 test/CIMModel/CIMModel_test015.cpp create mode 100644 test/CIMModel/CIMModel_test016.cpp create mode 100644 test/CIMModel/CIMModel_test017.cpp create mode 100644 test/CIMModel/CIMModel_test018.cpp create mode 100644 test/CIMModel/CIMModel_test019.cpp create mode 100644 test/CIMModel/CIMModel_test020.cpp create mode 100644 test/CIMModel/CIMModel_test021.cpp create mode 100644 test/CIMModel/CIMModel_test022.cpp create mode 100644 test/CIMModel/CIMModel_test023.cpp create mode 100644 test/CIMModel/CIMModel_test024.cpp create mode 100644 test/CIMModel/CIMModel_test025.cpp create mode 100644 test/CIMModel/CIMModel_test026.cpp create mode 100644 test/CIMModel/CIMModel_test027.cpp create mode 100644 test/CIMModel/CIMModel_test028.cpp create mode 100644 test/CIMModel/CIMModel_test029.cpp create mode 100644 test/CIMModel/CIMModel_test030.cpp create mode 100644 test/CIMModel/CIMModel_test031.cpp create mode 100644 test/CIMModel/CIMModel_test032.cpp create mode 100644 test/CIMModel/CIMModel_test033.cpp create mode 100644 test/CIMModel/CIMModel_test034.cpp create mode 100644 test/CIMModel/CIMModel_test035.cpp create mode 100644 test/CIMModel/CIMModel_test036.cpp create mode 100644 test/CIMModel/CIMModel_test037.cpp create mode 100644 test/CIMModel/CIMModel_test038.cpp create mode 100644 test/CIMModel/CIMModel_test039.cpp create mode 100644 test/CIMWriter/CIMWriter_getAttributeProfile.cpp create mode 100644 test/CIMWriter/CIMWriter_getClassProfile.cpp create mode 100644 test/CIMWriter/CIMWriter_getClassProfileMap.cpp create mode 100644 test/CIMWriter/CIMWriter_isClassMatchingProfile.cpp create mode 100644 test/CIMWriter/CIMWriter_test.cpp create mode 100644 test/CIMWriter/CIMWriter_test001.cpp create mode 100644 test/CIMWriter/CIMWriter_test002.cpp create mode 100644 test/CIMWriter/CIMWriter_test003.cpp create mode 100644 test/CIMWriter/CIMWriter_test004.cpp create mode 100644 test/CIMWriter/CIMWriter_test005.cpp create mode 100644 test/CIMWriter/CIMWriter_test006.cpp create mode 100644 test/CIMWriter/CIMWriter_test007.cpp create mode 100644 test/CIMWriter/CIMWriter_test008.cpp create mode 100644 test/CIMWriter/CIMWriter_test008_with_profiles.cpp create mode 100644 test/CIMWriter/CIMWriter_test009.cpp create mode 100644 test/CIMWriter/CIMWriter_test010.cpp create mode 100644 test/CIMWriter/CIMWriter_test011.cpp create mode 100644 test/CIMWriter/CIMWriter_test012.cpp create mode 100644 test/CIMWriter/CIMWriter_test013.cpp create mode 100644 test/CIMWriter/CIMWriter_test014.cpp create mode 100644 test/CIMWriter/CIMWriter_test015.cpp create mode 100644 test/CIMWriter/CIMWriter_test016.cpp create mode 100644 test/CIMWriter/CIMWriter_test017.cpp create mode 100644 test/CIMWriter/CIMWriter_test018.cpp create mode 100644 test/CIMWriter/CIMWriter_test019.cpp create mode 100644 test/CIMWriter/CIMWriter_test020.cpp create mode 100644 test/CIMWriter/CIMWriter_test021.cpp create mode 100644 test/CIMWriter/CIMWriter_test022.cpp create mode 100644 test/CIMWriter/CIMWriter_test023.cpp create mode 100644 test/CIMWriter/CIMWriter_test024.cpp create mode 100644 test/CIMWriter/CIMWriter_test025.cpp create mode 100644 test/CIMWriter/CIMWriter_test026.cpp create mode 100644 test/CIMWriter/CIMWriter_test027.cpp create mode 100644 test/CIMWriter/CIMWriter_test028.cpp create mode 100644 test/CIMWriter/CIMWriter_test029.cpp create mode 100644 test/CIMWriter/CIMWriter_test030.cpp create mode 100644 test/CIMWriter/CIMWriter_test031.cpp create mode 100644 test/CIMWriter/CIMWriter_test032.cpp create mode 100644 test/CIMWriter/CIMWriter_test033.cpp create mode 100644 test/CIMWriter/CIMWriter_test034.cpp create mode 100644 test/CIMWriter/CIMWriter_test035.cpp create mode 100644 test/CIMWriter/CIMWriter_test036.cpp create mode 100644 test/CIMWriter/CIMWriter_test037.cpp create mode 100644 test/CIMWriter/CIMWriter_test038.cpp create mode 100644 test/CIMWriter/CIMWriter_test039.cpp create mode 100644 test/CMakeLists.txt create mode 100644 test/rdf/test001.xml create mode 100644 test/rdf/test002.xml create mode 100644 test/rdf/test003.xml create mode 100644 test/rdf/test004.xml create mode 100644 test/rdf/test005_CGMES2.xml create mode 100644 test/rdf/test005_CGMES3.xml create mode 100644 test/rdf/test006_CGMES2.xml create mode 100644 test/rdf/test006_CGMES3.xml create mode 100644 test/rdf/test007.xml create mode 100644 test/rdf/test008_EQ.xml create mode 100644 test/rdf/test008_TP.xml create mode 100644 test/rdf/test009_EQ.xml create mode 100644 test/rdf/test009_TP.xml create mode 100644 test/rdf/test010_ISO-8859-1.xml create mode 100644 test/rdf/test010_ISO-8859-15.xml create mode 100644 test/rdf/test010_UTF-16BE.xml create mode 100644 test/rdf/test010_UTF-16LE.xml create mode 100644 test/rdf/test010_UTF-8.xml create mode 100644 test/rdf/test011_CGMES3.xml create mode 100644 test/rdf/test012.xml create mode 100644 test/rdf/test013.xml create mode 100644 test/rdf/test014.xml create mode 100644 test/rdf/test015.xml create mode 100644 test/rdf/test016.xml create mode 100644 test/rdf/test017.xml create mode 100644 test/rdf/test018.xml create mode 100644 test/rdf/test019.xml create mode 100644 test/rdf/test020.xml create mode 100644 test/rdf/test021.xml create mode 100644 test/rdf/test022.xml create mode 100644 test/rdf/test023.xml create mode 100644 test/rdf/test024.xml create mode 100644 test/rdf/test025.xml create mode 100644 test/rdf/test026.xml create mode 100644 test/rdf/test027.xml create mode 100644 test/rdf/test028.xml create mode 100644 test/rdf/test029.xml create mode 100644 test/rdf/test030.xml create mode 100644 test/rdf/test031.xml create mode 100644 test/rdf/test032.xml create mode 100644 test/rdf/test033.xml create mode 100644 test/rdf/test034.xml create mode 100644 test/rdf/test035.xml create mode 100644 test/rdf/test036.xml create mode 100644 test/rdf/test037.xml create mode 100644 test/rdf/test038.xml create mode 100644 test/rdf/test039.xml create mode 100644 test/test_main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 57b003098..dbe749c05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,6 +90,10 @@ if(CIMPP_BUILD_EXAMPLES) target_compile_features(example PUBLIC cxx_range_for) endif() +# Unit tests +enable_testing() +add_subdirectory(test) + # Show feature summary include(FeatureSummary) feature_summary(WHAT ALL VAR enabledFeaturesText) diff --git a/test/CGMESProfile/CGMESProfile_getProfileFromLongName.cpp b/test/CGMESProfile/CGMESProfile_getProfileFromLongName.cpp new file mode 100644 index 000000000..7d83380d9 --- /dev/null +++ b/test/CGMESProfile/CGMESProfile_getProfileFromLongName.cpp @@ -0,0 +1,18 @@ +#include + +#include "CGMESProfile.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CGMESProfile_getProfileFromLongName) +{ + // Check getProfileFromLongName + auto EQ = "Equipment"; + auto TP = "Topology"; + if (CimVersion == "cgmes_v3_0_0") + { + EQ = "CoreEquipment"; + } + BOOST_REQUIRE(CGMESProfile::EQ == getProfileFromLongName(EQ)); + BOOST_REQUIRE(CGMESProfile::TP == getProfileFromLongName(TP)); + BOOST_REQUIRE(UnknownProfile == getProfileFromLongName("dummy")); +} diff --git a/test/CGMESProfile/CGMESProfile_getProfileFromShortName.cpp b/test/CGMESProfile/CGMESProfile_getProfileFromShortName.cpp new file mode 100644 index 000000000..baea9565b --- /dev/null +++ b/test/CGMESProfile/CGMESProfile_getProfileFromShortName.cpp @@ -0,0 +1,11 @@ +#include + +#include "CGMESProfile.hpp" + +BOOST_AUTO_TEST_CASE(CGMESProfile_getProfileFromShortName) +{ + // Check getProfileFromShortName + BOOST_REQUIRE(CGMESProfile::EQ == getProfileFromShortName("EQ")); + BOOST_REQUIRE(CGMESProfile::TP == getProfileFromShortName("TP")); + BOOST_REQUIRE(UnknownProfile == getProfileFromShortName("dummy")); +} diff --git a/test/CGMESProfile/CGMESProfile_getProfileList.cpp b/test/CGMESProfile/CGMESProfile_getProfileList.cpp new file mode 100644 index 000000000..592007b10 --- /dev/null +++ b/test/CGMESProfile/CGMESProfile_getProfileList.cpp @@ -0,0 +1,50 @@ +#include + +#include +#include +#include + +#include "CGMESProfile.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CGMESProfile_getProfileList) +{ + // Check getProfileList + int count = 9; + int EQ = 0; + int TP = 7; + if (CimVersion == "cgmes_v3_0_0") + { + count = 10; + TP = 9; + } + auto values = getProfileList(); + BOOST_REQUIRE_EQUAL(count, values.size()); + + auto list = std::vector(values.begin(), values.end()); + BOOST_REQUIRE(CGMESProfile::EQ == list[EQ]); + BOOST_REQUIRE(CGMESProfile::TP == list[TP]); + + BOOST_REQUIRE_EQUAL(EQ, static_cast(CGMESProfile::EQ)); + BOOST_REQUIRE_EQUAL(TP, static_cast(CGMESProfile::TP)); + + for (auto profile : values) + { + BOOST_REQUIRE(profile != UnknownProfile); + } + BOOST_REQUIRE(static_cast(-1) == UnknownProfile); + + // Check if all profile values are unique + auto set = std::set(values.begin(), values.end()); + BOOST_REQUIRE_EQUAL(count, set.size()); + + // Check if profile values are sorted + auto sorted_list = std::vector(set.begin(), set.end()); + std::sort(sorted_list.begin(), sorted_list.end()); + int idx = 0; + for (auto profile : values) + { + BOOST_CHECK(profile == sorted_list[idx]); + ++idx; + } +} diff --git a/test/CGMESProfile/CGMESProfile_getProfileLongName.cpp b/test/CGMESProfile/CGMESProfile_getProfileLongName.cpp new file mode 100644 index 000000000..bc1f33cee --- /dev/null +++ b/test/CGMESProfile/CGMESProfile_getProfileLongName.cpp @@ -0,0 +1,17 @@ +#include + +#include "CGMESProfile.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CGMESProfile_getProfileLongName) +{ + // Check getProfileLongName + auto EQ = "Equipment"; + auto TP = "Topology"; + if (CimVersion == "cgmes_v3_0_0") + { + EQ = "CoreEquipment"; + } + BOOST_REQUIRE_EQUAL(EQ, getProfileLongName(CGMESProfile::EQ)); + BOOST_REQUIRE_EQUAL(TP, getProfileLongName(CGMESProfile::TP)); +} diff --git a/test/CGMESProfile/CGMESProfile_getProfileShortName.cpp b/test/CGMESProfile/CGMESProfile_getProfileShortName.cpp new file mode 100644 index 000000000..5de2184ee --- /dev/null +++ b/test/CGMESProfile/CGMESProfile_getProfileShortName.cpp @@ -0,0 +1,10 @@ +#include + +#include "CGMESProfile.hpp" + +BOOST_AUTO_TEST_CASE(CGMESProfile_getProfileShortName) +{ + // Check getProfileShortName + BOOST_REQUIRE_EQUAL("EQ", getProfileShortName(CGMESProfile::EQ)); + BOOST_REQUIRE_EQUAL("TP", getProfileShortName(CGMESProfile::TP)); +} diff --git a/test/CGMESProfile/CGMESProfile_getProfileURIs.cpp b/test/CGMESProfile/CGMESProfile_getProfileURIs.cpp new file mode 100644 index 000000000..81edd5899 --- /dev/null +++ b/test/CGMESProfile/CGMESProfile_getProfileURIs.cpp @@ -0,0 +1,37 @@ +#include + +#include +#include + +#include "CGMESProfile.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CGMESProfile_getProfileURIs) +{ + // Check getProfileURIs + if (CimVersion == "cgmes_v2_4_13" || CimVersion == "cgmes_v2_4_15") + { + auto uris = getProfileURIs(CGMESProfile::EQ); + BOOST_REQUIRE_EQUAL(3, uris.size()); + + auto list = std::vector(uris.begin(), uris.end()); + BOOST_REQUIRE_EQUAL(3, list.size()); + BOOST_REQUIRE_EQUAL("http://entsoe.eu/CIM/EquipmentCore/3/1", list[0]); + BOOST_REQUIRE_EQUAL("http://entsoe.eu/CIM/EquipmentOperation/3/1", list[1]); + BOOST_REQUIRE_EQUAL("http://entsoe.eu/CIM/EquipmentShortCircuit/3/1", list[2]); + + uris = getProfileURIs(CGMESProfile::TP); + BOOST_REQUIRE_EQUAL(1, uris.size()); + BOOST_REQUIRE_EQUAL("http://entsoe.eu/CIM/Topology/4/1", uris.front()); + } + else if (CimVersion == "cgmes_v3_0_0") + { + auto uris = getProfileURIs(CGMESProfile::EQ); + BOOST_REQUIRE_EQUAL(1, uris.size()); + BOOST_REQUIRE_EQUAL("http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0", uris.front()); + + uris = getProfileURIs(CGMESProfile::TP); + BOOST_REQUIRE_EQUAL(1, uris.size()); + BOOST_REQUIRE_EQUAL("http://iec.ch/TC57/ns/CIM/Topology-EU/3.0", uris.front()); + } +} diff --git a/test/CIMModel/CIMModel_test.cpp b/test/CIMModel/CIMModel_test.cpp new file mode 100644 index 000000000..5d27ac900 --- /dev/null +++ b/test/CIMModel/CIMModel_test.cpp @@ -0,0 +1,10 @@ +#include + +#include "CIMModel.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test) +{ + CIMModel model; + + BOOST_REQUIRE(!model.addCIMFile("dummy.xml")); +} diff --git a/test/CIMModel/CIMModel_test001.cpp b/test/CIMModel/CIMModel_test001.cpp new file mode 100644 index 000000000..fb14f204d --- /dev/null +++ b/test/CIMModel/CIMModel_test001.cpp @@ -0,0 +1,41 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test001) +{ + // Check CIM objects with primitive, datatype and class attribute (ManyToOne) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test001.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("VoltageLevel.98", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("VoltageLevel.98", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL("98", static_cast(voltageLevel->name)); + + const auto* baseVoltage = voltageLevel->BaseVoltage; + BOOST_REQUIRE_NE(nullptr, baseVoltage); + BOOST_REQUIRE_EQUAL("BaseVoltage", baseVoltage->debugString()); + BOOST_REQUIRE_EQUAL("BaseVoltage.20", baseVoltage->getRdfid()); + BOOST_REQUIRE_EQUAL(baseVoltage, model.Objects[0]); + + const auto& voltageLevels = baseVoltage->VoltageLevel; + BOOST_REQUIRE_EQUAL(1, voltageLevels.size()); + BOOST_REQUIRE_EQUAL(voltageLevel, voltageLevels.front()); + + const auto nominalVoltage = baseVoltage->nominalVoltage; + BOOST_REQUIRE(nominalVoltage.initialized); + BOOST_REQUIRE_EQUAL(20.0, nominalVoltage.value); +} diff --git a/test/CIMModel/CIMModel_test002.cpp b/test/CIMModel/CIMModel_test002.cpp new file mode 100644 index 000000000..be3a4154f --- /dev/null +++ b/test/CIMModel/CIMModel_test002.cpp @@ -0,0 +1,43 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test002) +{ + // Check enum attributes + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test002.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("Analog.N0.Voltage", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("AnalogValue.N0.Voltage", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("AnalogValue", obj->debugString()); + const auto* analogValue = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, analogValue); + BOOST_REQUIRE_EQUAL("AnalogValue.N0.Voltage", analogValue->getRdfid()); + + const auto* analog = analogValue->Analog; + BOOST_REQUIRE_NE(nullptr, analog); + BOOST_REQUIRE_EQUAL("Analog", analog->debugString()); + BOOST_REQUIRE_EQUAL("Analog.N0.Voltage", analog->getRdfid()); + BOOST_REQUIRE_EQUAL(analog, model.Objects[0]); + + BOOST_REQUIRE_EQUAL("Voltage", static_cast(analog->measurementType)); + BOOST_REQUIRE_EQUAL("Voltage Magnitude Measurement at N0", static_cast(analog->name)); + + const auto& unitMultiplier = analog->unitMultiplier; + BOOST_REQUIRE(unitMultiplier.initialized); + BOOST_REQUIRE_EQUAL(CIMPP::UnitMultiplier::k, unitMultiplier.value); + + const auto& unitSymbol = analog->unitSymbol; + BOOST_REQUIRE(unitSymbol.initialized); + BOOST_REQUIRE_EQUAL(CIMPP::UnitSymbol::V, unitSymbol.value); +} diff --git a/test/CIMModel/CIMModel_test003.cpp b/test/CIMModel/CIMModel_test003.cpp new file mode 100644 index 000000000..68fd70078 --- /dev/null +++ b/test/CIMModel/CIMModel_test003.cpp @@ -0,0 +1,34 @@ +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test003) +{ + // Check reading rdf:about instead of rdf:ID + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test003.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("Terminal", obj->debugString()); + const auto* terminal = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, terminal); + BOOST_REQUIRE_EQUAL("Terminal.N0", terminal->getRdfid()); + + const auto* topologicalNode = terminal->TopologicalNode; + BOOST_REQUIRE_NE(nullptr, topologicalNode); + BOOST_REQUIRE_EQUAL("TopologicalNode", topologicalNode->debugString()); + BOOST_REQUIRE_EQUAL("N0", topologicalNode->getRdfid()); + BOOST_REQUIRE_EQUAL(topologicalNode, model.Objects[0]); + + const auto& name = topologicalNode->name; + BOOST_REQUIRE(name.initialized); + BOOST_REQUIRE_EQUAL("N0", name.value); +} diff --git a/test/CIMModel/CIMModel_test004.cpp b/test/CIMModel/CIMModel_test004.cpp new file mode 100644 index 000000000..fb4ea91b9 --- /dev/null +++ b/test/CIMModel/CIMModel_test004.cpp @@ -0,0 +1,27 @@ +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test004) +{ + // Check reading model header and primitive attribute with custom namespace + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test004.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[0]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("BaseVoltage", obj->debugString()); + const auto* baseVoltage = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, baseVoltage); + BOOST_REQUIRE_EQUAL("BaseVoltage.20", baseVoltage->getRdfid()); + + const auto& shortName = baseVoltage->shortName; + BOOST_REQUIRE(shortName.initialized); + BOOST_REQUIRE_EQUAL("20", shortName.value); +} diff --git a/test/CIMModel/CIMModel_test005.cpp b/test/CIMModel/CIMModel_test005.cpp new file mode 100644 index 000000000..3b691a448 --- /dev/null +++ b/test/CIMModel/CIMModel_test005.cpp @@ -0,0 +1,104 @@ +#include + +#include +#include + +#include "CIMModel.hpp" +#include "CimConstants.hpp" +#include "IEC61970.hpp" +#include "gettercache.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test005) +{ + // Check object with custom namespace and class attribute with custom namespace + if (CimVersion == "cgmes_v2_4_13" || CimVersion == "cgmes_v2_4_15") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test005_CGMES2.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("ES", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("EST", model.Objects[1]->getRdfid()); + + const auto* energySource = model.Objects[0]; + BOOST_REQUIRE_NE(nullptr, energySource); + BOOST_REQUIRE_EQUAL("EnergySource", energySource->debugString()); + BOOST_REQUIRE_EQUAL("ES", energySource->getRdfid()); + + const auto* energySchedulingType = model.Objects[1]; + BOOST_REQUIRE_NE(nullptr, energySchedulingType); + BOOST_REQUIRE_EQUAL("EnergySchedulingType", energySchedulingType->debugString()); + BOOST_REQUIRE_EQUAL("EST", energySchedulingType->getRdfid()); + + // Check class attribute EnergySchedulingType of energySource + { + const auto& map = get_class_getter_map(energySource); + auto it = map.find("EnergySource.EnergySchedulingType"); + BOOST_REQUIRE(it != map.end()); + class_get_function func = it->second; + std::list targetList; + BOOST_REQUIRE(func(energySource, targetList)); + BOOST_REQUIRE_EQUAL(1, targetList.size()); + BOOST_REQUIRE_EQUAL(energySchedulingType, targetList.front()); + } + + // Check primitive attribute name of energySchedulingType + { + const auto& map = get_primitive_getter_map(energySchedulingType); + auto it = map.find("IdentifiedObject.name"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(energySchedulingType, stream)); + BOOST_REQUIRE_EQUAL("EST", stream.str()); + } + } + else if (CimVersion == "cgmes_v3_0_0") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test005_CGMES3.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0_BP", model.Objects[1]->getRdfid()); + + const auto* connectivityNode = model.Objects[0]; + BOOST_REQUIRE_NE(nullptr, connectivityNode); + BOOST_REQUIRE_EQUAL("ConnectivityNode", connectivityNode->debugString()); + BOOST_REQUIRE_EQUAL("N0", connectivityNode->getRdfid()); + + const auto* boundaryPoint = model.Objects[1]; + BOOST_REQUIRE_NE(nullptr, boundaryPoint); + BOOST_REQUIRE_EQUAL("BoundaryPoint", boundaryPoint->debugString()); + BOOST_REQUIRE_EQUAL("N0_BP", boundaryPoint->getRdfid()); + + // Check class attribute ConnectivityNode of boundaryPoint + { + const auto& map = get_class_getter_map(boundaryPoint); + auto it = map.find("BoundaryPoint.ConnectivityNode"); + BOOST_REQUIRE(it != map.end()); + class_get_function func = it->second; + std::list targetList; + BOOST_REQUIRE(func(boundaryPoint, targetList)); + BOOST_REQUIRE_EQUAL(1, targetList.size()); + BOOST_REQUIRE_EQUAL(connectivityNode, targetList.front()); + } + + // Check primitive attribute name of connectivityNode + { + const auto& map = get_primitive_getter_map(connectivityNode); + auto it = map.find("IdentifiedObject.name"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(connectivityNode, stream)); + BOOST_REQUIRE_EQUAL("N0", stream.str()); + } + } +} diff --git a/test/CIMModel/CIMModel_test006.cpp b/test/CIMModel/CIMModel_test006.cpp new file mode 100644 index 000000000..6ca6fe7fd --- /dev/null +++ b/test/CIMModel/CIMModel_test006.cpp @@ -0,0 +1,61 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "CimConstants.hpp" +#include "IEC61970.hpp" +#include "gettercache.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test006) +{ + // Check enum attribute with custom namespace + if (CimVersion == "cgmes_v2_4_13" || CimVersion == "cgmes_v2_4_15") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test006_CGMES2.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("OLT", model.Objects[0]->getRdfid()); + + const auto* operationalLimitType = model.Objects[0]; + BOOST_REQUIRE_NE(nullptr, operationalLimitType); + BOOST_REQUIRE_EQUAL("OperationalLimitType", operationalLimitType->debugString()); + BOOST_REQUIRE_EQUAL("OLT", operationalLimitType->getRdfid()); + + const auto& map = get_enum_getter_map(operationalLimitType); + auto it = map.find("OperationalLimitType.limitType"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(operationalLimitType, stream)); + BOOST_REQUIRE_EQUAL("LimitTypeKind.highVoltage", stream.str()); + } + else if (CimVersion == "cgmes_v3_0_0") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test006_CGMES3.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("OLT", model.Objects[0]->getRdfid()); + + const auto* operationalLimitType = model.Objects[0]; + BOOST_REQUIRE_NE(nullptr, operationalLimitType); + BOOST_REQUIRE_EQUAL("OperationalLimitType", operationalLimitType->debugString()); + BOOST_REQUIRE_EQUAL("OLT", operationalLimitType->getRdfid()); + + const auto& map = get_enum_getter_map(operationalLimitType); + auto it = map.find("OperationalLimitType.kind"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(operationalLimitType, stream)); + BOOST_REQUIRE_EQUAL("LimitKind.highVoltage", stream.str()); + } +} diff --git a/test/CIMModel/CIMModel_test007.cpp b/test/CIMModel/CIMModel_test007.cpp new file mode 100644 index 000000000..6aeb2292d --- /dev/null +++ b/test/CIMModel/CIMModel_test007.cpp @@ -0,0 +1,46 @@ +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test007) +{ + // Check class attributes if the linked object is defined later + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test007.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(4, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("VoltageLevel.96", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("VoltageLevel.97", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[2]->getRdfid()); + BOOST_REQUIRE_EQUAL("VoltageLevel.98", model.Objects[3]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("VoltageLevel.96", voltageLevel->getRdfid()); + + const auto* baseVoltage = voltageLevel->BaseVoltage; + BOOST_REQUIRE_NE(nullptr, baseVoltage); + BOOST_REQUIRE_EQUAL("BaseVoltage", baseVoltage->debugString()); + BOOST_REQUIRE_EQUAL("BaseVoltage.20", baseVoltage->getRdfid()); + BOOST_REQUIRE_EQUAL(baseVoltage, model.Objects[2]); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("VoltageLevel.97", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL(baseVoltage, voltageLevel->BaseVoltage); + + obj = model.Objects[3]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("VoltageLevel.98", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL(baseVoltage, voltageLevel->BaseVoltage); +} diff --git a/test/CIMModel/CIMModel_test008.cpp b/test/CIMModel/CIMModel_test008.cpp new file mode 100644 index 000000000..a18dcd8a4 --- /dev/null +++ b/test/CIMModel/CIMModel_test008.cpp @@ -0,0 +1,68 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_SUITE(CIMModel_test008) + +BOOST_AUTO_TEST_CASE(EQ_TP) +{ + // Check reading models from more than one file + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_EQ.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_TP.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("Terminal", obj->debugString()); + const auto* terminal = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, terminal); + BOOST_REQUIRE_EQUAL("Terminal.N0", terminal->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", static_cast(terminal->name)); + + const auto* topologicalNode = terminal->TopologicalNode; + BOOST_REQUIRE_NE(nullptr, topologicalNode); + BOOST_REQUIRE_EQUAL("TopologicalNode", topologicalNode->debugString()); + BOOST_REQUIRE_EQUAL("N0", topologicalNode->getRdfid()); + BOOST_REQUIRE_EQUAL(topologicalNode, model.Objects[1]); + BOOST_REQUIRE_EQUAL("N0", static_cast(topologicalNode->name)); +} + +BOOST_AUTO_TEST_CASE(TP_EQ) +{ + // Check reading models from more than one file in reverse order + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_TP.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_EQ.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("Terminal", obj->debugString()); + const auto* terminal = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, terminal); + BOOST_REQUIRE_EQUAL("Terminal.N0", terminal->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", static_cast(terminal->name)); + + const auto* topologicalNode = terminal->TopologicalNode; + BOOST_REQUIRE_NE(nullptr, topologicalNode); + BOOST_REQUIRE_EQUAL("TopologicalNode", topologicalNode->debugString()); + BOOST_REQUIRE_EQUAL("N0", topologicalNode->getRdfid()); + BOOST_REQUIRE_EQUAL(topologicalNode, model.Objects[0]); + BOOST_REQUIRE_EQUAL("N0", static_cast(topologicalNode->name)); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/CIMModel/CIMModel_test009.cpp b/test/CIMModel/CIMModel_test009.cpp new file mode 100644 index 000000000..6ba6e2e46 --- /dev/null +++ b/test/CIMModel/CIMModel_test009.cpp @@ -0,0 +1,68 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_SUITE(CIMModel_test009) + +BOOST_AUTO_TEST_CASE(EQ_TP) +{ + // Check reading one object from more than one file + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test009_EQ.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test009_TP.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("Terminal", obj->debugString()); + const auto* terminal = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, terminal); + BOOST_REQUIRE_EQUAL("Terminal.N0", terminal->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", static_cast(terminal->name)); + + const auto* topologicalNode = terminal->TopologicalNode; + BOOST_REQUIRE_NE(nullptr, topologicalNode); + BOOST_REQUIRE_EQUAL("TopologicalNode", topologicalNode->debugString()); + BOOST_REQUIRE_EQUAL("N0", topologicalNode->getRdfid()); + BOOST_REQUIRE_EQUAL(topologicalNode, model.Objects[1]); + BOOST_REQUIRE_EQUAL("N0", static_cast(topologicalNode->name)); +} + +BOOST_AUTO_TEST_CASE(TP_EQ) +{ + // Check reading one object from more than one file in reverse order + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test009_TP.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test009_EQ.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("Terminal", obj->debugString()); + const auto* terminal = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, terminal); + BOOST_REQUIRE_EQUAL("Terminal.N0", terminal->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", static_cast(terminal->name)); + + const auto* topologicalNode = terminal->TopologicalNode; + BOOST_REQUIRE_NE(nullptr, topologicalNode); + BOOST_REQUIRE_EQUAL("TopologicalNode", topologicalNode->debugString()); + BOOST_REQUIRE_EQUAL("N0", topologicalNode->getRdfid()); + BOOST_REQUIRE_EQUAL(topologicalNode, model.Objects[0]); + BOOST_REQUIRE_EQUAL("N0", static_cast(topologicalNode->name)); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/CIMModel/CIMModel_test010.cpp b/test/CIMModel/CIMModel_test010.cpp new file mode 100644 index 000000000..6d09dbba4 --- /dev/null +++ b/test/CIMModel/CIMModel_test010.cpp @@ -0,0 +1,96 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +// forward declarations +static void check_text_with_non_ascii_characters(std::string file, bool with_euro_sign = true); + +BOOST_AUTO_TEST_SUITE(CIMModel_test010) + +BOOST_AUTO_TEST_CASE(UTF_8) +{ + // Check text with non ASCII characters encoded in UTF-8 + check_text_with_non_ascii_characters("../../test/rdf/test010_UTF-8.xml"); +} + +BOOST_AUTO_TEST_CASE(ISO_8859_1) +{ + // Check text with non ASCII characters encoded in ISO-8859-1 (which has no EURO SIGN) + check_text_with_non_ascii_characters("../../test/rdf/test010_ISO-8859-1.xml", false); +} + +BOOST_AUTO_TEST_CASE(ISO_8859_15) +{ + // Check text with non ASCII characters encoded in ISO-8859-15 + check_text_with_non_ascii_characters("../../test/rdf/test010_ISO-8859-15.xml"); +} + +BOOST_AUTO_TEST_CASE(UTF_16LE) +{ + // Check text with non ASCII characters encoded in UTF-16LE + check_text_with_non_ascii_characters("../../test/rdf/test010_UTF-16LE.xml"); +} + +BOOST_AUTO_TEST_CASE(UTF_16BE) +{ + // Check text with non ASCII characters encoded in UTF-16BE + check_text_with_non_ascii_characters("../../test/rdf/test010_UTF-16BE.xml"); +} + +BOOST_AUTO_TEST_SUITE_END() + + +// static functions + +static void check_text_with_non_ascii_characters(std::string file, bool with_euro_sign /*= true*/) +{ + // Check text with non ASCII characters + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile(file)); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[0]->getRdfid()); + + const auto* baseVoltage = dynamic_cast(model.Objects[0]); + BOOST_REQUIRE_NE(nullptr, baseVoltage); + + const auto& description = static_cast(baseVoltage->description); + if (with_euro_sign) + { + BOOST_REQUIRE_EQUAL(17, description.length()); // 3 + 7 * 2 = 17 + } + else + { + BOOST_REQUIRE_EQUAL(14, description.length()); // 7 * 2 = 14 + } + + // text is always converted to UTF-8 by libxml2 + const char* ptr = description.c_str(); + if (with_euro_sign) + { + BOOST_REQUIRE_EQUAL('\xE2', *ptr++); // UTF-8 - EURO SIGN(E2 82 AC) + BOOST_REQUIRE_EQUAL('\x82', *ptr++); + BOOST_REQUIRE_EQUAL('\xAC', *ptr++); + } + BOOST_REQUIRE_EQUAL('\xC3', *ptr++); // UTF-8 - LATIN SMALL LETTER A WITH DIAERESIS (C3 84) + BOOST_REQUIRE_EQUAL('\x84', *ptr++); + BOOST_REQUIRE_EQUAL('\xC3', *ptr++); // UTF-8 - LATIN SMALL LETTER O WITH DIAERESIS (C3 96) + BOOST_REQUIRE_EQUAL('\x96', *ptr++); + BOOST_REQUIRE_EQUAL('\xC3', *ptr++); // UTF-8 - LATIN SMALL LETTER U WITH DIAERESIS (C3 9C) + BOOST_REQUIRE_EQUAL('\x9C', *ptr++); + BOOST_REQUIRE_EQUAL('\xC3', *ptr++); // UTF-8 - LATIN SMALL LETTER A WITH DIAERESIS (C3 A4) + BOOST_REQUIRE_EQUAL('\xA4', *ptr++); + BOOST_REQUIRE_EQUAL('\xC3', *ptr++); // UTF-8 - LATIN SMALL LETTER O WITH DIAERESIS (C3 B6) + BOOST_REQUIRE_EQUAL('\xB6', *ptr++); + BOOST_REQUIRE_EQUAL('\xC3', *ptr++); // UTF-8 - LATIN SMALL LETTER U WITH DIAERESIS (C3 BC) + BOOST_REQUIRE_EQUAL('\xBC', *ptr++); + BOOST_REQUIRE_EQUAL('\xC3', *ptr++); // UTF-8 - LATIN SMALL LETTER SHARP S (C3 9F) + BOOST_REQUIRE_EQUAL('\x9F', *ptr++); + BOOST_REQUIRE_EQUAL('\x00', *ptr); +} diff --git a/test/CIMModel/CIMModel_test011.cpp b/test/CIMModel/CIMModel_test011.cpp new file mode 100644 index 000000000..f4b59589a --- /dev/null +++ b/test/CIMModel/CIMModel_test011.cpp @@ -0,0 +1,180 @@ +#include + +#include +#include + +#include "CIMModel.hpp" +#include "CimConstants.hpp" +#include "IEC61970.hpp" +#include "gettercache.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test011) +{ + // Check class attributes of Status, StreetAddress, StreetDetail, TownDetail + // (to make sure they are not primitive string attributes, only for CGMES3) + if (CimVersion == "cgmes_v3_0_0") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test011_CGMES3.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(5, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_Location", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Address", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Status", model.Objects[2]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Street", model.Objects[3]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Town", model.Objects[4]->getRdfid()); + + const auto* location = model.Objects[0]; + BOOST_REQUIRE_NE(nullptr, location); + BOOST_REQUIRE_EQUAL("Location", location->debugString()); + BOOST_REQUIRE_EQUAL("_Location", location->getRdfid()); + + const auto* address = model.Objects[1]; + BOOST_REQUIRE_NE(nullptr, address); + BOOST_REQUIRE_EQUAL("StreetAddress", address->debugString()); + BOOST_REQUIRE_EQUAL("_Address", address->getRdfid()); + + const auto* status = model.Objects[2]; + BOOST_REQUIRE_NE(nullptr, status); + BOOST_REQUIRE_EQUAL("Status", status->debugString()); + BOOST_REQUIRE_EQUAL("_Status", status->getRdfid()); + + const auto* streetDetail = model.Objects[3]; + BOOST_REQUIRE_NE(nullptr, streetDetail); + BOOST_REQUIRE_EQUAL("StreetDetail", streetDetail->debugString()); + BOOST_REQUIRE_EQUAL("_Street", streetDetail->getRdfid()); + + const auto* townDetail = model.Objects[4]; + BOOST_REQUIRE_NE(nullptr, townDetail); + BOOST_REQUIRE_EQUAL("TownDetail", townDetail->debugString()); + BOOST_REQUIRE_EQUAL("_Town", townDetail->getRdfid()); + + // Check class attribute mainAddress of location + { + const auto& map = get_class_getter_map(location); + auto it = map.find("Location.mainAddress"); + BOOST_REQUIRE(it != map.end()); + class_get_function func = it->second; + std::list targetList; + BOOST_REQUIRE(func(location, targetList)); + BOOST_REQUIRE_EQUAL(1, targetList.size()); + BOOST_REQUIRE_EQUAL(address, targetList.front()); + } + + // Check class attribute status of address + { + const auto& map = get_class_getter_map(address); + auto it = map.find("StreetAddress.status"); + BOOST_REQUIRE(it != map.end()); + class_get_function func = it->second; + std::list targetList; + BOOST_REQUIRE(func(address, targetList)); + BOOST_REQUIRE_EQUAL(1, targetList.size()); + BOOST_REQUIRE_EQUAL(status, targetList.front()); + } + + // Check class attribute streetDetail of address + { + const auto& map = get_class_getter_map(address); + auto it = map.find("StreetAddress.streetDetail"); + BOOST_REQUIRE(it != map.end()); + class_get_function func = it->second; + std::list targetList; + BOOST_REQUIRE(func(address, targetList)); + BOOST_REQUIRE_EQUAL(1, targetList.size()); + BOOST_REQUIRE_EQUAL(streetDetail, targetList.front()); + } + + // Check class attribute townDetail of address + { + const auto& map = get_class_getter_map(address); + auto it = map.find("StreetAddress.townDetail"); + BOOST_REQUIRE(it != map.end()); + class_get_function func = it->second; + std::list targetList; + BOOST_REQUIRE(func(address, targetList)); + BOOST_REQUIRE_EQUAL(1, targetList.size()); + BOOST_REQUIRE_EQUAL(townDetail, targetList.front()); + } + + // Check primitive attribute dateTime of status + { + const auto& map = get_primitive_getter_map(status); + auto it = map.find("Status.dateTime"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(status, stream)); + BOOST_REQUIRE_EQUAL("2024-10-13 19:17:22 +0200", stream.str()); + } + + // Check primitive attribute value of status + { + const auto& map = get_primitive_getter_map(status); + auto it = map.find("Status.value"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(status, stream)); + BOOST_REQUIRE_EQUAL("verified", stream.str()); + } + + // Check primitive attribute name of streetDetail + { + const auto& map = get_primitive_getter_map(streetDetail); + auto it = map.find("StreetDetail.name"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(streetDetail, stream)); + BOOST_REQUIRE_EQUAL("Ku'damm", stream.str()); + } + + // Check primitive attribute number of streetDetail + { + const auto& map = get_primitive_getter_map(streetDetail); + auto it = map.find("StreetDetail.number"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(streetDetail, stream)); + BOOST_REQUIRE_EQUAL("33", stream.str()); + } + + // Check primitive attribute withinTownLimits of streetDetail + { + const auto& map = get_primitive_getter_map(streetDetail); + auto it = map.find("StreetDetail.withinTownLimits"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(streetDetail, stream)); + BOOST_REQUIRE_EQUAL("true", stream.str()); + } + + // Check primitive attribute country of streetDetail + { + const auto& map = get_primitive_getter_map(townDetail); + auto it = map.find("TownDetail.country"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(townDetail, stream)); + BOOST_REQUIRE_EQUAL("Germany", stream.str()); + } + + // Check primitive attribute name of streetDetail + { + const auto& map = get_primitive_getter_map(townDetail); + auto it = map.find("TownDetail.name"); + BOOST_REQUIRE(it != map.end()); + get_function func = it->second; + std::stringstream stream; + BOOST_REQUIRE(func(townDetail, stream)); + BOOST_REQUIRE_EQUAL("Berlin", stream.str()); + } + } +} diff --git a/test/CIMModel/CIMModel_test012.cpp b/test/CIMModel/CIMModel_test012.cpp new file mode 100644 index 000000000..0010ea57c --- /dev/null +++ b/test/CIMModel/CIMModel_test012.cpp @@ -0,0 +1,31 @@ +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test012) +{ + // Check MonthDay as primitive string attribute + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test012.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_Season", model.Objects[0]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("Season", obj->debugString()); + const auto* season = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, season); + BOOST_REQUIRE_EQUAL("_Season", season->getRdfid()); + + const auto& endDate = season->endDate; + BOOST_REQUIRE(endDate.initialized); + BOOST_REQUIRE_EQUAL("--10-31", endDate.value); + + const auto& startDate = season->startDate; + BOOST_REQUIRE(startDate.initialized); + BOOST_REQUIRE_EQUAL("--10-13", startDate.value); +} diff --git a/test/CIMModel/CIMModel_test013.cpp b/test/CIMModel/CIMModel_test013.cpp new file mode 100644 index 000000000..0243b97a0 --- /dev/null +++ b/test/CIMModel/CIMModel_test013.cpp @@ -0,0 +1,50 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test013) +{ + // Check list attributes (TopologicalIsland to TopologicalNode, OneToMany) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test013.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("N1", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("TopologicalIsland", obj->debugString()); + const auto* topologicalIsland = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalIsland); + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", topologicalIsland->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode1 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode1); + BOOST_REQUIRE_EQUAL("N0", topologicalNode1->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode2 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode2); + BOOST_REQUIRE_EQUAL("N1", topologicalNode2->getRdfid()); + + const auto& topologicalNodes = topologicalIsland->TopologicalNodes; + BOOST_REQUIRE_EQUAL(2, topologicalNodes.size()); + + auto it = std::find(topologicalNodes.begin(), topologicalNodes.end(), topologicalNode1); + BOOST_REQUIRE(it != topologicalNodes.end()); + it = std::find(topologicalNodes.begin(), topologicalNodes.end(), topologicalNode2); + BOOST_REQUIRE(it != topologicalNodes.end()); + + BOOST_REQUIRE_EQUAL(topologicalIsland, topologicalNode1->TopologicalIsland); + BOOST_REQUIRE_EQUAL(topologicalIsland, topologicalNode2->TopologicalIsland); +} diff --git a/test/CIMModel/CIMModel_test014.cpp b/test/CIMModel/CIMModel_test014.cpp new file mode 100644 index 000000000..de0028123 --- /dev/null +++ b/test/CIMModel/CIMModel_test014.cpp @@ -0,0 +1,50 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test014) +{ + // Check links from TopologicalNode to TopologicalIsland (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test014.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("N1", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("TopologicalIsland", obj->debugString()); + const auto* topologicalIsland = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalIsland); + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", topologicalIsland->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode1 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode1); + BOOST_REQUIRE_EQUAL("N0", topologicalNode1->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode2 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode2); + BOOST_REQUIRE_EQUAL("N1", topologicalNode2->getRdfid()); + + const auto& topologicalNodes = topologicalIsland->TopologicalNodes; + BOOST_REQUIRE_EQUAL(2, topologicalNodes.size()); + + auto it = std::find(topologicalNodes.begin(), topologicalNodes.end(), topologicalNode1); + BOOST_REQUIRE(it != topologicalNodes.end()); + it = std::find(topologicalNodes.begin(), topologicalNodes.end(), topologicalNode2); + BOOST_REQUIRE(it != topologicalNodes.end()); + + BOOST_REQUIRE_EQUAL(topologicalIsland, topologicalNode1->TopologicalIsland); + BOOST_REQUIRE_EQUAL(topologicalIsland, topologicalNode2->TopologicalIsland); +} diff --git a/test/CIMModel/CIMModel_test015.cpp b/test/CIMModel/CIMModel_test015.cpp new file mode 100644 index 000000000..51c16bce6 --- /dev/null +++ b/test/CIMModel/CIMModel_test015.cpp @@ -0,0 +1,51 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test015) +{ + // Check reading links between TopologicalNode and TopologicalIsland + // if they are set on both sides (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test015.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("N1", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("TopologicalIsland", obj->debugString()); + const auto* topologicalIsland = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalIsland); + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", topologicalIsland->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode1 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode1); + BOOST_REQUIRE_EQUAL("N0", topologicalNode1->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode2 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode2); + BOOST_REQUIRE_EQUAL("N1", topologicalNode2->getRdfid()); + + const auto& topologicalNodes = topologicalIsland->TopologicalNodes; + BOOST_REQUIRE_EQUAL(2, topologicalNodes.size()); + + auto it = std::find(topologicalNodes.begin(), topologicalNodes.end(), topologicalNode1); + BOOST_REQUIRE(it != topologicalNodes.end()); + it = std::find(topologicalNodes.begin(), topologicalNodes.end(), topologicalNode2); + BOOST_REQUIRE(it != topologicalNodes.end()); + + BOOST_REQUIRE_EQUAL(topologicalIsland, topologicalNode1->TopologicalIsland); + BOOST_REQUIRE_EQUAL(topologicalIsland, topologicalNode2->TopologicalIsland); +} diff --git a/test/CIMModel/CIMModel_test016.cpp b/test/CIMModel/CIMModel_test016.cpp new file mode 100644 index 000000000..5f296fbe9 --- /dev/null +++ b/test/CIMModel/CIMModel_test016.cpp @@ -0,0 +1,52 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test016) +{ + // Check reading mixed links between TopologicalNode and TopologicalIsland: + // one from TopologicalIsland to TopologicalNode and the other + // from TopologicalNode to TopologicalIsland (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test016.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("N1", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("TopologicalIsland", obj->debugString()); + const auto* topologicalIsland = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalIsland); + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", topologicalIsland->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode1 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode1); + BOOST_REQUIRE_EQUAL("N0", topologicalNode1->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode2 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode2); + BOOST_REQUIRE_EQUAL("N1", topologicalNode2->getRdfid()); + + const auto& topologicalNodes = topologicalIsland->TopologicalNodes; + BOOST_REQUIRE_EQUAL(2, topologicalNodes.size()); + + auto it = std::find(topologicalNodes.begin(), topologicalNodes.end(), topologicalNode1); + BOOST_REQUIRE(it != topologicalNodes.end()); + it = std::find(topologicalNodes.begin(), topologicalNodes.end(), topologicalNode2); + BOOST_REQUIRE(it != topologicalNodes.end()); + + BOOST_REQUIRE_EQUAL(topologicalIsland, topologicalNode1->TopologicalIsland); + BOOST_REQUIRE_EQUAL(topologicalIsland, topologicalNode2->TopologicalIsland); +} diff --git a/test/CIMModel/CIMModel_test017.cpp b/test/CIMModel/CIMModel_test017.cpp new file mode 100644 index 000000000..a48566746 --- /dev/null +++ b/test/CIMModel/CIMModel_test017.cpp @@ -0,0 +1,33 @@ +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test017) +{ + // Check class attributes (SvVoltage to TopologicalNode, OneToOne) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test017.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode); + BOOST_REQUIRE_EQUAL("N0", topologicalNode->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("SvVoltage", obj->debugString()); + const auto* svVoltage = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, svVoltage); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", svVoltage->getRdfid()); + + BOOST_REQUIRE_EQUAL(svVoltage, topologicalNode->SvVoltage); + BOOST_REQUIRE_EQUAL(topologicalNode, svVoltage->TopologicalNode); +} diff --git a/test/CIMModel/CIMModel_test018.cpp b/test/CIMModel/CIMModel_test018.cpp new file mode 100644 index 000000000..386c5a3ad --- /dev/null +++ b/test/CIMModel/CIMModel_test018.cpp @@ -0,0 +1,33 @@ +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test018) +{ + // Check link from TopologicalNode to SvVoltage (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test018.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode); + BOOST_REQUIRE_EQUAL("N0", topologicalNode->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("SvVoltage", obj->debugString()); + const auto* svVoltage = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, svVoltage); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", svVoltage->getRdfid()); + + BOOST_REQUIRE_EQUAL(svVoltage, topologicalNode->SvVoltage); + BOOST_REQUIRE_EQUAL(topologicalNode, svVoltage->TopologicalNode); +} diff --git a/test/CIMModel/CIMModel_test019.cpp b/test/CIMModel/CIMModel_test019.cpp new file mode 100644 index 000000000..f28ee5f68 --- /dev/null +++ b/test/CIMModel/CIMModel_test019.cpp @@ -0,0 +1,34 @@ +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test019) +{ + // Check reading links between SvVoltage and TopologicalNode + // if they are set on both sides (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test019.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("TopologicalNode", obj->debugString()); + const auto* topologicalNode = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalNode); + BOOST_REQUIRE_EQUAL("N0", topologicalNode->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("SvVoltage", obj->debugString()); + const auto* svVoltage = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, svVoltage); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", svVoltage->getRdfid()); + + BOOST_REQUIRE_EQUAL(svVoltage, topologicalNode->SvVoltage); + BOOST_REQUIRE_EQUAL(topologicalNode, svVoltage->TopologicalNode); +} diff --git a/test/CIMModel/CIMModel_test020.cpp b/test/CIMModel/CIMModel_test020.cpp new file mode 100644 index 000000000..63e88eb1e --- /dev/null +++ b/test/CIMModel/CIMModel_test020.cpp @@ -0,0 +1,37 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test020) +{ + // Check inherited object links + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test020.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("VoltageLevel.98", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("EnergyConsumer.H-5", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("EnergyConsumer", obj->debugString()); + const auto* energyConsumer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, energyConsumer); + BOOST_REQUIRE_EQUAL("EnergyConsumer.H-5", energyConsumer->getRdfid()); + + const auto* voltageLevel = energyConsumer->EquipmentContainer; + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("VoltageLevel", voltageLevel->debugString()); + BOOST_REQUIRE_EQUAL("VoltageLevel.98", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL(voltageLevel, model.Objects[0]); + BOOST_REQUIRE_EQUAL("98", static_cast(voltageLevel->name)); + + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(energyConsumer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test021.cpp b/test/CIMModel/CIMModel_test021.cpp new file mode 100644 index 000000000..a5ff87998 --- /dev/null +++ b/test/CIMModel/CIMModel_test021.cpp @@ -0,0 +1,28 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test021) +{ + // Check handling links to not existing objects (causing an error log entry) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test021.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("VoltageLevel.98", model.Objects[0]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("VoltageLevel.98", voltageLevel->getRdfid()); + + BOOST_REQUIRE_EQUAL(nullptr, voltageLevel->BaseVoltage); + BOOST_REQUIRE_EQUAL("98", static_cast(voltageLevel->name)); +} diff --git a/test/CIMModel/CIMModel_test022.cpp b/test/CIMModel/CIMModel_test022.cpp new file mode 100644 index 000000000..5e5f27286 --- /dev/null +++ b/test/CIMModel/CIMModel_test022.cpp @@ -0,0 +1,40 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test022) +{ + // Check models with more than one profile + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test022.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("TopologicalIsland.N2", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("TopologicalIsland", obj->debugString()); + const auto* topologicalIsland = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalIsland); + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", topologicalIsland->getRdfid()); + + BOOST_REQUIRE_EQUAL(0, topologicalIsland->TopologicalNodes.size()); + BOOST_REQUIRE_EQUAL("Island N", static_cast(topologicalIsland->description)); + BOOST_REQUIRE_EQUAL("N", static_cast(topologicalIsland->name)); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("TopologicalIsland", obj->debugString()); + topologicalIsland = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, topologicalIsland); + BOOST_REQUIRE_EQUAL("TopologicalIsland.N2", topologicalIsland->getRdfid()); + + BOOST_REQUIRE_EQUAL(0, topologicalIsland->TopologicalNodes.size()); + BOOST_REQUIRE(!topologicalIsland->description.initialized); + BOOST_REQUIRE(!topologicalIsland->name.initialized); +} diff --git a/test/CIMModel/CIMModel_test023.cpp b/test/CIMModel/CIMModel_test023.cpp new file mode 100644 index 000000000..dcb26ab61 --- /dev/null +++ b/test/CIMModel/CIMModel_test023.cpp @@ -0,0 +1,24 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test023) +{ + // Check text with entity references + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test023.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[0]->getRdfid()); + + const auto* baseVoltage = dynamic_cast(model.Objects[0]); + BOOST_REQUIRE_NE(nullptr, baseVoltage); + + BOOST_REQUIRE_EQUAL("<&> <&> <&>", static_cast(baseVoltage->description)); +} diff --git a/test/CIMModel/CIMModel_test024.cpp b/test/CIMModel/CIMModel_test024.cpp new file mode 100644 index 000000000..450cf9c07 --- /dev/null +++ b/test/CIMModel/CIMModel_test024.cpp @@ -0,0 +1,53 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test024) +{ + // Check parsing one object with different types (maybe not CGMES conform) + // PowerTransformer gets more attributes from Equipment entry with rdf:about + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test024.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL("VL", static_cast(voltageLevel->name)); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL("PowerTransformer", static_cast(powerTransformer->description)); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("PowerTransformerEnd", obj->debugString()); + const auto* powerTransformerEnd = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformerEnd); + BOOST_REQUIRE_EQUAL("_PTE", powerTransformerEnd->getRdfid()); + + BOOST_REQUIRE_EQUAL(powerTransformer, powerTransformerEnd->PowerTransformer); + const auto& powerTransformerEnds = powerTransformer->PowerTransformerEnd; + BOOST_REQUIRE_EQUAL(1, powerTransformerEnds.size()); + BOOST_REQUIRE_EQUAL(powerTransformerEnd, powerTransformerEnds.front()); + + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test025.cpp b/test/CIMModel/CIMModel_test025.cpp new file mode 100644 index 000000000..35654b581 --- /dev/null +++ b/test/CIMModel/CIMModel_test025.cpp @@ -0,0 +1,53 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test025) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object (rdf:about) has to be changed to PowerTransformer + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test025.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL("VL", static_cast(voltageLevel->name)); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL("PowerTransformer", static_cast(powerTransformer->description)); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("PowerTransformerEnd", obj->debugString()); + const auto* powerTransformerEnd = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformerEnd); + BOOST_REQUIRE_EQUAL("_PTE", powerTransformerEnd->getRdfid()); + + BOOST_REQUIRE_EQUAL(powerTransformer, powerTransformerEnd->PowerTransformer); + const auto& powerTransformerEnds = powerTransformer->PowerTransformerEnd; + BOOST_REQUIRE_EQUAL(1, powerTransformerEnds.size()); + BOOST_REQUIRE_EQUAL(powerTransformerEnd, powerTransformerEnds.front()); + + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test026.cpp b/test/CIMModel/CIMModel_test026.cpp new file mode 100644 index 000000000..dcbb9f63c --- /dev/null +++ b/test/CIMModel/CIMModel_test026.cpp @@ -0,0 +1,53 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test026) +{ + // Check parsing one object with different types (maybe not CGMES conform) + // PowerTransformer (rdf:about) gets more attributes from Equipment entry + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test026.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL("VL", static_cast(voltageLevel->name)); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL("PowerTransformer", static_cast(powerTransformer->description)); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("PowerTransformerEnd", obj->debugString()); + const auto* powerTransformerEnd = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformerEnd); + BOOST_REQUIRE_EQUAL("_PTE", powerTransformerEnd->getRdfid()); + + BOOST_REQUIRE_EQUAL(powerTransformer, powerTransformerEnd->PowerTransformer); + const auto& powerTransformerEnds = powerTransformer->PowerTransformerEnd; + BOOST_REQUIRE_EQUAL(1, powerTransformerEnds.size()); + BOOST_REQUIRE_EQUAL(powerTransformerEnd, powerTransformerEnds.front()); + + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test027.cpp b/test/CIMModel/CIMModel_test027.cpp new file mode 100644 index 000000000..1f18c34eb --- /dev/null +++ b/test/CIMModel/CIMModel_test027.cpp @@ -0,0 +1,53 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test027) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer (rdf:about) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test027.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL("VL", static_cast(voltageLevel->name)); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL("PowerTransformer", static_cast(powerTransformer->description)); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("PowerTransformerEnd", obj->debugString()); + const auto* powerTransformerEnd = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformerEnd); + BOOST_REQUIRE_EQUAL("_PTE", powerTransformerEnd->getRdfid()); + + BOOST_REQUIRE_EQUAL(powerTransformer, powerTransformerEnd->PowerTransformer); + const auto& powerTransformerEnds = powerTransformer->PowerTransformerEnd; + BOOST_REQUIRE_EQUAL(1, powerTransformerEnds.size()); + BOOST_REQUIRE_EQUAL(powerTransformerEnd, powerTransformerEnds.front()); + + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test028.cpp b/test/CIMModel/CIMModel_test028.cpp new file mode 100644 index 000000000..e89110b15 --- /dev/null +++ b/test/CIMModel/CIMModel_test028.cpp @@ -0,0 +1,54 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test028) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer (rdf:about) + // Equipment has class attribute, but the linked object is defined later + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test028.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL("PowerTransformer", static_cast(powerTransformer->description)); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + BOOST_REQUIRE_EQUAL("VL", static_cast(voltageLevel->name)); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("PowerTransformerEnd", obj->debugString()); + const auto* powerTransformerEnd = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformerEnd); + BOOST_REQUIRE_EQUAL("_PTE", powerTransformerEnd->getRdfid()); + + BOOST_REQUIRE_EQUAL(powerTransformer, powerTransformerEnd->PowerTransformer); + const auto& powerTransformerEnds = powerTransformer->PowerTransformerEnd; + BOOST_REQUIRE_EQUAL(1, powerTransformerEnds.size()); + BOOST_REQUIRE_EQUAL(powerTransformerEnd, powerTransformerEnds.front()); + + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test029.cpp b/test/CIMModel/CIMModel_test029.cpp new file mode 100644 index 000000000..d4f9b11c2 --- /dev/null +++ b/test/CIMModel/CIMModel_test029.cpp @@ -0,0 +1,40 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test029) +{ + // Check parsing one object with overriding attributes (maybe not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test029.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test030.cpp b/test/CIMModel/CIMModel_test030.cpp new file mode 100644 index 000000000..3374948c5 --- /dev/null +++ b/test/CIMModel/CIMModel_test030.cpp @@ -0,0 +1,41 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test030) +{ + // Check parsing one object with overriding attributes (maybe not CGMES conform) + // and the overriding class attribute links to object, that is defined later + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test030.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test031.cpp b/test/CIMModel/CIMModel_test031.cpp new file mode 100644 index 000000000..cab3b76e2 --- /dev/null +++ b/test/CIMModel/CIMModel_test031.cpp @@ -0,0 +1,41 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test031) +{ + // Check parsing one object with overriding attributes (maybe not CGMES conform) + // and both (overridden and overriding) link to objects, that are defined later + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test031.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test032.cpp b/test/CIMModel/CIMModel_test032.cpp new file mode 100644 index 000000000..6f09fcf1e --- /dev/null +++ b/test/CIMModel/CIMModel_test032.cpp @@ -0,0 +1,39 @@ +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test032) +{ + // Check parsing one object with overriding attributes (maybe not CGMES conform) + // and the overridden class attribute links to object, that is defined later + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test032.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL0", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test033.cpp b/test/CIMModel/CIMModel_test033.cpp new file mode 100644 index 000000000..380ae28a8 --- /dev/null +++ b/test/CIMModel/CIMModel_test033.cpp @@ -0,0 +1,42 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test033) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer (rdf:about) + // Equipment has class attribute, but the linked object is defined later + // after changing to PowerTransformer + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test033.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer->EquipmentContainer); + + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(1, equipments.size()); + BOOST_REQUIRE_EQUAL(powerTransformer, equipments.front()); +} diff --git a/test/CIMModel/CIMModel_test034.cpp b/test/CIMModel/CIMModel_test034.cpp new file mode 100644 index 000000000..36d45a484 --- /dev/null +++ b/test/CIMModel/CIMModel_test034.cpp @@ -0,0 +1,56 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test034) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // EquipmentContainer object has to be changed to VoltageLevel + // EquipmentContainer has list attributes (not CGMES conform), but the linked + // objects are defined later after changing to VoltageLevel + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test034.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT2", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer1 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer1); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer1->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer2 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer2); + BOOST_REQUIRE_EQUAL("_PT2", powerTransformer2->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer1->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer1->EquipmentContainer); + + BOOST_REQUIRE_EQUAL("PT2", static_cast(powerTransformer2->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer2->EquipmentContainer); + + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(2, equipments.size()); + + auto it = std::find(equipments.begin(), equipments.end(), powerTransformer1); + BOOST_REQUIRE(it != equipments.end()); + it = std::find(equipments.begin(), equipments.end(), powerTransformer2); + BOOST_REQUIRE(it != equipments.end()); +} diff --git a/test/CIMModel/CIMModel_test035.cpp b/test/CIMModel/CIMModel_test035.cpp new file mode 100644 index 000000000..2bf565742 --- /dev/null +++ b/test/CIMModel/CIMModel_test035.cpp @@ -0,0 +1,56 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test035) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // EquipmentContainer object has to be changed to VoltageLevel + // EquipmentContainer has list attributes (not CGMES conform), but the linked + // objects are defined later: one before and one after changing to VoltageLevel + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test035.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT2", model.Objects[2]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("VoltageLevel", obj->debugString()); + const auto* voltageLevel = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, voltageLevel); + BOOST_REQUIRE_EQUAL("_VL", voltageLevel->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer1 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer1); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer1->getRdfid()); + + obj = model.Objects[2]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer2 = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer2); + BOOST_REQUIRE_EQUAL("_PT2", powerTransformer2->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer1->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer1->EquipmentContainer); + + BOOST_REQUIRE_EQUAL("PT2", static_cast(powerTransformer2->name)); + BOOST_REQUIRE_EQUAL(voltageLevel, powerTransformer2->EquipmentContainer); + + const auto& equipments = voltageLevel->Equipments; + BOOST_REQUIRE_EQUAL(2, equipments.size()); + + auto it = std::find(equipments.begin(), equipments.end(), powerTransformer1); + BOOST_REQUIRE(it != equipments.end()); + it = std::find(equipments.begin(), equipments.end(), powerTransformer2); + BOOST_REQUIRE(it != equipments.end()); +} diff --git a/test/CIMModel/CIMModel_test036.cpp b/test/CIMModel/CIMModel_test036.cpp new file mode 100644 index 000000000..111b8d3fb --- /dev/null +++ b/test/CIMModel/CIMModel_test036.cpp @@ -0,0 +1,40 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test036) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer + // and is linked as ConductingEquipment (which is not allowed for Equipment) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test036.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_Status", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("SvStatus", obj->debugString()); + const auto* svStatus = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, svStatus); + BOOST_REQUIRE_EQUAL("_Status", svStatus->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL("PowerTransformer", static_cast(powerTransformer->description)); + BOOST_REQUIRE_EQUAL(svStatus, powerTransformer->SvStatus); + + BOOST_REQUIRE_EQUAL(powerTransformer, svStatus->ConductingEquipment); +} diff --git a/test/CIMModel/CIMModel_test037.cpp b/test/CIMModel/CIMModel_test037.cpp new file mode 100644 index 000000000..2a11d3638 --- /dev/null +++ b/test/CIMModel/CIMModel_test037.cpp @@ -0,0 +1,42 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test037) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer + // and is linked as ConductingEquipment (which is not allowed for Equipment) + // before changing to PowerTransformer (typically the entries are defined + // in more than one file, so the order of reading is not clearly defined) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test037.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Status", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("PowerTransformer", obj->debugString()); + const auto* powerTransformer = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, powerTransformer); + BOOST_REQUIRE_EQUAL("_PT", powerTransformer->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("SvStatus", obj->debugString()); + const auto* svStatus = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, svStatus); + BOOST_REQUIRE_EQUAL("_Status", svStatus->getRdfid()); + + BOOST_REQUIRE_EQUAL("PT", static_cast(powerTransformer->name)); + BOOST_REQUIRE_EQUAL("PowerTransformer", static_cast(powerTransformer->description)); + BOOST_REQUIRE_EQUAL(svStatus, powerTransformer->SvStatus); + + BOOST_REQUIRE_EQUAL(powerTransformer, svStatus->ConductingEquipment); +} diff --git a/test/CIMModel/CIMModel_test038.cpp b/test/CIMModel/CIMModel_test038.cpp new file mode 100644 index 000000000..54a85ff81 --- /dev/null +++ b/test/CIMModel/CIMModel_test038.cpp @@ -0,0 +1,36 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test038) +{ + // Check not allowed linked type (causing an error log entry) + // Equipment object is tried to be linked as ConductingEquipment + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test038.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Status", model.Objects[1]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("Equipment", obj->debugString()); + const auto* equipment = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, equipment); + BOOST_REQUIRE_EQUAL("_PT", equipment->getRdfid()); + + obj = model.Objects[1]; + BOOST_REQUIRE_EQUAL("SvStatus", obj->debugString()); + const auto* svStatus = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, svStatus); + BOOST_REQUIRE_EQUAL("_Status", svStatus->getRdfid()); + + BOOST_REQUIRE_EQUAL("PowerTransformer", static_cast(equipment->description)); + BOOST_REQUIRE_EQUAL(nullptr, svStatus->ConductingEquipment); +} diff --git a/test/CIMModel/CIMModel_test039.cpp b/test/CIMModel/CIMModel_test039.cpp new file mode 100644 index 000000000..67d1a1f74 --- /dev/null +++ b/test/CIMModel/CIMModel_test039.cpp @@ -0,0 +1,34 @@ +#include + +#include + +#include "CIMModel.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMModel_test039) +{ + // Check replacing enum attributes + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test039.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("Analog.N0.Voltage", model.Objects[0]->getRdfid()); + + const auto* obj = model.Objects[0]; + BOOST_REQUIRE_EQUAL("Analog", obj->debugString()); + const auto* analog = dynamic_cast(obj); + BOOST_REQUIRE_NE(nullptr, analog); + BOOST_REQUIRE_EQUAL("Analog.N0.Voltage", analog->getRdfid()); + BOOST_REQUIRE_EQUAL("Voltage", static_cast(analog->measurementType)); + + const auto& unitMultiplier = analog->unitMultiplier; + BOOST_REQUIRE(unitMultiplier.initialized); + BOOST_REQUIRE_EQUAL(CIMPP::UnitMultiplier::k, unitMultiplier.value); + + const auto& unitSymbol = analog->unitSymbol; + BOOST_REQUIRE(unitSymbol.initialized); + BOOST_REQUIRE_EQUAL(CIMPP::UnitSymbol::V, unitSymbol.value); +} diff --git a/test/CIMWriter/CIMWriter_getAttributeProfile.cpp b/test/CIMWriter/CIMWriter_getAttributeProfile.cpp new file mode 100644 index 000000000..05a1ee544 --- /dev/null +++ b/test/CIMWriter/CIMWriter_getAttributeProfile.cpp @@ -0,0 +1,49 @@ +#include + +#include "CIMWriter.hpp" +#include "CGMESProfile.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_getAttributeProfile) +{ + // Check getAttributeProfile + BaseClass* cimObj = new CIMPP::BaseVoltage; + auto profile = CGMESProfile::EQ; + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "BaseVoltage.nominalVoltage", profile)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "BaseVoltage.VoltageLevel", profile)); + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getAttributeProfile(cimObj, "BaseVoltage.TopologicalNode", profile)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.name", profile)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.description", profile)); + profile = CGMESProfile::TP; + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "BaseVoltage.nominalVoltage", profile)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "BaseVoltage.VoltageLevel", profile)); + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getAttributeProfile(cimObj, "BaseVoltage.TopologicalNode", profile)); + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.name", profile)); + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.description", profile)); + + cimObj = new CIMPP::VoltageLevel; + profile = CGMESProfile::EQ; + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "VoltageLevel.BaseVoltage", profile)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.name", profile)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.description", profile)); + + cimObj = new CIMPP::TopologicalNode; + profile = CGMESProfile::TP; + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getAttributeProfile(cimObj, "TopologicalNode.BaseVoltage", profile)); + BOOST_REQUIRE(CGMESProfile::SV == CIMWriter::getAttributeProfile(cimObj, "TopologicalNode.TopologicalIsland", profile)); + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.name", profile)); + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.description", profile)); + profile = CGMESProfile::SV; + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getAttributeProfile(cimObj, "TopologicalNode.BaseVoltage", profile)); + BOOST_REQUIRE(CGMESProfile::SV == CIMWriter::getAttributeProfile(cimObj, "TopologicalNode.TopologicalIsland", profile)); + BOOST_REQUIRE(CGMESProfile::SV == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.name", profile)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.description", profile)); + + cimObj = new CIMPP::TopologicalIsland; + profile = CGMESProfile::SV; + BOOST_REQUIRE(CGMESProfile::SV == CIMWriter::getAttributeProfile(cimObj, "TopologicalIsland.TopologicalNodes", profile)); + BOOST_REQUIRE(CGMESProfile::SV == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.name", profile)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getAttributeProfile(cimObj, "IdentifiedObject.description", profile)); + + BOOST_REQUIRE(UnknownProfile == CIMWriter::getAttributeProfile(cimObj, "dummy", profile)); +} diff --git a/test/CIMWriter/CIMWriter_getClassProfile.cpp b/test/CIMWriter/CIMWriter_getClassProfile.cpp new file mode 100644 index 000000000..09343ef19 --- /dev/null +++ b/test/CIMWriter/CIMWriter_getClassProfile.cpp @@ -0,0 +1,14 @@ +#include + +#include "CIMWriter.hpp" +#include "CGMESProfile.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_getClassProfile) +{ + // Check getClassProfile + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getClassProfile(new CIMPP::BaseVoltage)); + BOOST_REQUIRE(CGMESProfile::EQ == CIMWriter::getClassProfile(new CIMPP::VoltageLevel)); + BOOST_REQUIRE(CGMESProfile::TP == CIMWriter::getClassProfile(new CIMPP::TopologicalNode)); + BOOST_REQUIRE(CGMESProfile::SV == CIMWriter::getClassProfile(new CIMPP::TopologicalIsland)); +} diff --git a/test/CIMWriter/CIMWriter_getClassProfileMap.cpp b/test/CIMWriter/CIMWriter_getClassProfileMap.cpp new file mode 100644 index 000000000..a96045e65 --- /dev/null +++ b/test/CIMWriter/CIMWriter_getClassProfileMap.cpp @@ -0,0 +1,21 @@ +#include + +#include + +#include "CIMWriter.hpp" +#include "CGMESProfile.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_getClassProfileMap) +{ + // Check getClassProfileMap + std::vector cimList = { new CIMPP::BaseVoltage, new CIMPP::TopologicalNode, new CIMPP::BaseVoltage }; + auto profileMap = CIMWriter::getClassProfileMap(cimList); + BOOST_REQUIRE_EQUAL(2, profileMap.size()); + + BOOST_REQUIRE(profileMap.find("BaseVoltage") != profileMap.end()); + BOOST_REQUIRE(profileMap.find("TopologicalNode") != profileMap.end()); + + BOOST_REQUIRE(CGMESProfile::EQ == profileMap.at("BaseVoltage")); + BOOST_REQUIRE(CGMESProfile::TP == profileMap.at("TopologicalNode")); +} diff --git a/test/CIMWriter/CIMWriter_isClassMatchingProfile.cpp b/test/CIMWriter/CIMWriter_isClassMatchingProfile.cpp new file mode 100644 index 000000000..80e953ffa --- /dev/null +++ b/test/CIMWriter/CIMWriter_isClassMatchingProfile.cpp @@ -0,0 +1,72 @@ +#include + +#include + +#include "CIMWriter.hpp" +#include "CGMESProfile.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_isClassMatchingProfile) +{ + // Check isClassMatchingProfile + BaseClass* cimObj = new CIMPP::BaseVoltage; + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::EQ)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::TP)); + + // Many profiles are matching because of the attributes inherited from + // IdentifiedObject (e.g. name). + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::DL)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::DY)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::GL)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SSH)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SV)); + + cimObj = new CIMPP::VoltageLevel; + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::EQ)); + + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::DL)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::DY)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::GL)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SSH)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SV)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::TP)); + + cimObj = new CIMPP::TopologicalNode; + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SV)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::TP)); + + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::EQ)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::DL)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::DY)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::GL)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SSH)); + + cimObj = new CIMPP::TopologicalIsland; + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SV)); + + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::EQ)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::DL)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::DY)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::GL)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SSH)); + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::TP)); + + cimObj = new CIMPP::SvVoltage; + BOOST_REQUIRE(CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::SV)); + BOOST_REQUIRE(!CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::EQ)); + BOOST_REQUIRE(!CIMWriter::isClassMatchingProfile(cimObj, CGMESProfile::TP)); + + // SvVoltage does not inherit from IdentifiedObject + for (auto profile : getProfileList()) + { + std::string profileName = getProfileLongName(profile); + if (profile == CGMESProfile::SV) + { + BOOST_REQUIRE_MESSAGE(CIMWriter::isClassMatchingProfile(cimObj, profile), profileName); + } + else + { + BOOST_REQUIRE_MESSAGE(!CIMWriter::isClassMatchingProfile(cimObj, profile), profileName); + } + } +} diff --git a/test/CIMWriter/CIMWriter_test.cpp b/test/CIMWriter/CIMWriter_test.cpp new file mode 100644 index 000000000..a633fcf5d --- /dev/null +++ b/test/CIMWriter/CIMWriter_test.cpp @@ -0,0 +1,284 @@ +#include + +#include +#include +#include + +#include "CGMESProfile.hpp" +#include "CIMFactory.hpp" +#include "CIMModel.hpp" +#include "CIMWriter.hpp" +#include "CimConstants.hpp" +#include "IEC61970.hpp" + +BOOST_AUTO_TEST_SUITE(CIMWriter_test) + +BOOST_AUTO_TEST_CASE(writeCim_empty) +{ + // Check writing with empty CIM objects list without profile + static std::string XML_HEADER = ""; + static std::string RDF = NamespaceMap.at("rdf"); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, {}); + + std::vector lines; + std::string line; + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(3, lines.size()); + + BOOST_REQUIRE_EQUAL(XML_HEADER, lines[0]); + BOOST_REQUIRE_EQUAL("", lines[1]); + BOOST_REQUIRE_EQUAL("", lines[2]); +} + +BOOST_AUTO_TEST_CASE(writeCim_one_object) +{ + // Check writing one CIM object without profile + static std::string XML_HEADER = ""; + static std::string RDF = NamespaceMap.at("rdf"); + static std::string CIM = NamespaceMap.at("cim"); + + auto* cimObj = new CIMPP::IdentifiedObject; + cimObj->setRdfid("rdfid"); + std::vector objList = { cimObj }; + + std::stringstream rdf; + CIMWriter::writeCim(rdf, objList); + + std::vector lines; + std::string line; + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(5, lines.size()); + + BOOST_REQUIRE_EQUAL(XML_HEADER, lines[0]); + BOOST_REQUIRE_EQUAL("", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL("", lines[4]); +} + +BOOST_AUTO_TEST_CASE(writeCim_with_custom_namespace) +{ + // Check writing one CIM object without profile including one attribute with custom namespace + static std::string XML_HEADER = ""; + static std::string RDF = NamespaceMap.at("rdf"); + static std::string CIM = NamespaceMap.at("cim"); + static std::string ENTSOE_EU = CimVersion == "cgmes_v3_0_0" ? "eu" : "entsoe"; + + auto* cimObj = new CIMPP::IdentifiedObject; + cimObj->setRdfid("rdfid"); + cimObj->shortName = "dummy"; + std::vector objList = { cimObj }; + + std::stringstream rdf; + CIMWriter::writeCim(rdf, objList); + + std::vector lines; + std::string line; + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(6, lines.size()); + + BOOST_REQUIRE_EQUAL(XML_HEADER, lines[0]); + BOOST_REQUIRE_EQUAL("", + lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL( + " <" + ENTSOE_EU + ":IdentifiedObject.shortName>dummy", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL("", lines[5]); +} + +BOOST_AUTO_TEST_CASE(writeCim_with_profile) +{ + // Check writing one CIM object with profile + static std::string XML_HEADER = ""; + static std::string RDF = NamespaceMap.at("rdf"); + static std::string CIM = NamespaceMap.at("cim"); + static std::string MD = NamespaceMap.at("md"); + + auto* cimObj = new CIMPP::IdentifiedObject; + cimObj->setRdfid("rdfid"); + std::vector objList = { cimObj }; + + auto profile = CGMESProfile::EQ; + std::stringstream rdf; + bool success = CIMWriter::writeCim(rdf, objList, profile, "model", CIMWriter::getClassProfileMap(objList)); + BOOST_REQUIRE(success); + + std::vector lines; + std::string line; + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(7 + getProfileURIs(profile).size(), lines.size()); + + BOOST_REQUIRE_EQUAL(XML_HEADER, lines[0]); + BOOST_REQUIRE_EQUAL("", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + int idx = 0; + for (const auto& url : getProfileURIs(profile)) + { + BOOST_REQUIRE_EQUAL(" " + url + "", lines[3 + idx]); + ++idx; + } + BOOST_REQUIRE_EQUAL(" ", lines[3 + idx]); + BOOST_REQUIRE_EQUAL(" ", lines[4 + idx]); + BOOST_REQUIRE_EQUAL(" ", lines[5 + idx]); + BOOST_REQUIRE_EQUAL("", lines[6 + idx]); +} + +BOOST_AUTO_TEST_CASE(writeFile_empty) +{ + // Check writing an empty file (i.e. with no CIM objects) without profile + CIMWriter::writeFile("test1.xml", {}); +} + +BOOST_AUTO_TEST_CASE(writeFile_one_object) +{ + // Check writing one CIM object without profile to a file + auto* cimObj = new CIMPP::IdentifiedObject; + cimObj->setRdfid("rdfid"); + + CIMWriter::writeFile("test2.xml", { cimObj }); +} + +BOOST_AUTO_TEST_CASE(writeFile_with_custom_namespace) +{ + // Check writing one CIM object without profile including one attribute with custom namespace to a file + auto* cimObj = new CIMPP::IdentifiedObject; + cimObj->setRdfid("rdfid"); + cimObj->shortName = "dummy"; + std::vector objList = { cimObj }; + + CIMWriter::writeFile("test3.xml", { cimObj }); +} + +BOOST_AUTO_TEST_CASE(writeFile_with_profile) +{ + // Check writing one CIM object with profile to a file + auto* cimObj = new CIMPP::IdentifiedObject; + cimObj->setRdfid("rdfid"); + std::vector objList = { cimObj }; + + auto profile = CGMESProfile::EQ; + CIMWriter::writeFile("test4.xml", objList, profile, "model", CIMWriter::getClassProfileMap(objList)); +} + +BOOST_AUTO_TEST_CASE(writeFiles_with_profiles) +{ + // Check writing more than one profile file + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test013.xml")); + model.parseFiles(); + + const auto map = CIMWriter::writeFiles("test5", model.Objects, "model", CIMWriter::getClassProfileMap(model.Objects)); + + BOOST_REQUIRE_EQUAL(2, map.size()); + BOOST_REQUIRE(map.find(CGMESProfile::SV) != map.end()); + BOOST_REQUIRE(map.find(CGMESProfile::TP) != map.end()); + + BOOST_REQUIRE_EQUAL("test5_StateVariables.xml", map.at(CGMESProfile::SV)); + BOOST_REQUIRE_EQUAL("test5_Topology.xml", map.at(CGMESProfile::TP)); +} + +BOOST_AUTO_TEST_CASE(getClassNamespaceUrl) +{ + // Check getClassNamespaceUrl + static std::string CIM = NamespaceMap.at("cim"); + static std::string ENTSOE_EU = CimVersion == "cgmes_v3_0_0" ? NamespaceMap.at("eu") : NamespaceMap.at("entsoe"); + + // Check CIM namespace + BOOST_REQUIRE_EQUAL(CIM, CIMPP::IdentifiedObject().getClassNamespaceUrl()); + + // Check custom namespace + if (CimVersion == "cgmes_v2_4_13") + { + // There is no class in cgmes_v2_4_13 with entsoe namespace + } + else if (CimVersion == "cgmes_v2_4_15") + { + BOOST_REQUIRE_EQUAL(ENTSOE_EU, CIMPP::EnergySchedulingType().getClassNamespaceUrl()); + } + else if (CimVersion == "cgmes_v3_0_0") + { + BaseClass* cimObj = CIMPP::CIMFactory::CreateNew("BoundaryPoint"); + BOOST_REQUIRE_EQUAL(ENTSOE_EU, cimObj->getClassNamespaceUrl()); + } +} + +BOOST_AUTO_TEST_CASE(getAttributeNamespaceUrl) +{ + // Check getAttributeNamespaceUrl + static std::string CIM = NamespaceMap.at("cim"); + static std::string ENTSOE_EU = CimVersion == "cgmes_v3_0_0" ? NamespaceMap.at("eu") : NamespaceMap.at("entsoe"); + BaseClass* cimObj = new CIMPP::IdentifiedObject; + + // Check CIM namespace + BOOST_REQUIRE_EQUAL(CIM, cimObj->getAttributeNamespaceUrl("IdentifiedObject.name")); + + // Check custom namespace + BOOST_REQUIRE_EQUAL(ENTSOE_EU, cimObj->getAttributeNamespaceUrl("IdentifiedObject.shortName")); +} + +BOOST_AUTO_TEST_CASE(isAssignableFrom) +{ + // Check isAssignableFrom + BaseClass* equipment = new CIMPP::Equipment; + BaseClass* powerTransformer = new CIMPP::PowerTransformer; + BaseClass* equipmentContainer = new CIMPP::EquipmentContainer; + BaseClass* voltageLevel = new CIMPP::VoltageLevel; + BaseClass* measurement = new CIMPP::Measurement; + BaseClass* analog = new CIMPP::Analog; + + BOOST_REQUIRE(equipment->isAssignableFrom(powerTransformer)); + BOOST_REQUIRE(!equipment->isAssignableFrom(equipmentContainer)); + BOOST_REQUIRE(!equipment->isAssignableFrom(voltageLevel)); + BOOST_REQUIRE(!equipment->isAssignableFrom(measurement)); + BOOST_REQUIRE(!equipment->isAssignableFrom(analog)); + + BOOST_REQUIRE(!powerTransformer->isAssignableFrom(equipment)); + BOOST_REQUIRE(!powerTransformer->isAssignableFrom(equipmentContainer)); + BOOST_REQUIRE(!powerTransformer->isAssignableFrom(voltageLevel)); + BOOST_REQUIRE(!powerTransformer->isAssignableFrom(measurement)); + BOOST_REQUIRE(!powerTransformer->isAssignableFrom(analog)); + + BOOST_REQUIRE(equipmentContainer->isAssignableFrom(voltageLevel)); + BOOST_REQUIRE(!equipmentContainer->isAssignableFrom(equipment)); + BOOST_REQUIRE(!equipmentContainer->isAssignableFrom(powerTransformer)); + BOOST_REQUIRE(!equipmentContainer->isAssignableFrom(measurement)); + BOOST_REQUIRE(!equipmentContainer->isAssignableFrom(analog)); + + BOOST_REQUIRE(!voltageLevel->isAssignableFrom(equipmentContainer)); + BOOST_REQUIRE(!voltageLevel->isAssignableFrom(equipment)); + BOOST_REQUIRE(!voltageLevel->isAssignableFrom(powerTransformer)); + BOOST_REQUIRE(!voltageLevel->isAssignableFrom(measurement)); + BOOST_REQUIRE(!voltageLevel->isAssignableFrom(analog)); + + BOOST_REQUIRE(measurement->isAssignableFrom(analog)); + BOOST_REQUIRE(!measurement->isAssignableFrom(equipment)); + BOOST_REQUIRE(!measurement->isAssignableFrom(powerTransformer)); + BOOST_REQUIRE(!measurement->isAssignableFrom(equipmentContainer)); + BOOST_REQUIRE(!measurement->isAssignableFrom(voltageLevel)); + + BOOST_REQUIRE(!analog->isAssignableFrom(measurement)); + BOOST_REQUIRE(!analog->isAssignableFrom(equipment)); + BOOST_REQUIRE(!analog->isAssignableFrom(powerTransformer)); + BOOST_REQUIRE(!analog->isAssignableFrom(equipmentContainer)); + BOOST_REQUIRE(!analog->isAssignableFrom(voltageLevel)); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/CIMWriter/CIMWriter_test001.cpp b/test/CIMWriter/CIMWriter_test001.cpp new file mode 100644 index 000000000..233ac35a4 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test001.cpp @@ -0,0 +1,46 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test001) +{ + // Check CIM objects with primitive, datatype and class attribute (ManyToOne) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test001.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("VoltageLevel.98", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" 20", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" 98", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} diff --git a/test/CIMWriter/CIMWriter_test002.cpp b/test/CIMWriter/CIMWriter_test002.cpp new file mode 100644 index 000000000..ddce25a31 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test002.cpp @@ -0,0 +1,51 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test002) +{ + // Check enum attributes + static std::string CIM = NamespaceMap.at("cim"); + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test002.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("Analog.N0.Voltage", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("AnalogValue.N0.Voltage", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(10, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" Voltage Magnitude Measurement at N0", + lines[1]); + BOOST_REQUIRE_EQUAL(" Voltage", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); +} diff --git a/test/CIMWriter/CIMWriter_test003.cpp b/test/CIMWriter/CIMWriter_test003.cpp new file mode 100644 index 000000000..d77ef8d8e --- /dev/null +++ b/test/CIMWriter/CIMWriter_test003.cpp @@ -0,0 +1,45 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test003) +{ + // Check reading rdf:about instead of rdf:ID + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test003.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(7, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); +} diff --git a/test/CIMWriter/CIMWriter_test004.cpp b/test/CIMWriter/CIMWriter_test004.cpp new file mode 100644 index 000000000..e5ce6eb70 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test004.cpp @@ -0,0 +1,45 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test004) +{ + // Check reading model header and primitive attribute with custom namespace + static std::string ENTSOE_EU = CimVersion == "cgmes_v3_0_0" ? "eu" : "entsoe"; + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test004.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[0]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(5, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" 20", lines[1]); + BOOST_REQUIRE_EQUAL(" <" + ENTSOE_EU + ":IdentifiedObject.shortName>20", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); +} diff --git a/test/CIMWriter/CIMWriter_test005.cpp b/test/CIMWriter/CIMWriter_test005.cpp new file mode 100644 index 000000000..ec8ebbf64 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test005.cpp @@ -0,0 +1,88 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test005) +{ + // Check object with custom namespace and class attribute with custom namespace + if (CimVersion == "cgmes_v2_4_13") + { + // There is no class or list attribute in cgmes_v2_4_13 with entsoe namespace + } + else if (CimVersion == "cgmes_v2_4_15") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test005_CGMES2.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("ES", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("EST", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(7, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" ", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" EST", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + } + else if (CimVersion == "cgmes_v3_0_0") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test005_CGMES3.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0_BP", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(7, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + } +} diff --git a/test/CIMWriter/CIMWriter_test006.cpp b/test/CIMWriter/CIMWriter_test006.cpp new file mode 100644 index 000000000..1e4cd1a60 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test006.cpp @@ -0,0 +1,82 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test006) +{ + // Check enum attribute with custom namespace + if (CimVersion == "cgmes_v2_4_13" || CimVersion == "cgmes_v2_4_15") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test006_CGMES2.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("OLT", model.Objects[0]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(5, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" High Voltage", lines[1]); + BOOST_REQUIRE_EQUAL(" ", + lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + } + else if (CimVersion == "cgmes_v3_0_0") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test006_CGMES3.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("OLT", model.Objects[0]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(5, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" High Voltage", lines[1]); + BOOST_REQUIRE_EQUAL(" ", + lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + } +} diff --git a/test/CIMWriter/CIMWriter_test007.cpp b/test/CIMWriter/CIMWriter_test007.cpp new file mode 100644 index 000000000..a55f1df5f --- /dev/null +++ b/test/CIMWriter/CIMWriter_test007.cpp @@ -0,0 +1,53 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test007) +{ + // Check class attributes if the linked object is defined later + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test007.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(4, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("VoltageLevel.96", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("VoltageLevel.97", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[2]->getRdfid()); + BOOST_REQUIRE_EQUAL("VoltageLevel.98", model.Objects[3]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(13, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" ", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" 20", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); + BOOST_REQUIRE_EQUAL(" ", lines[11]); +} diff --git a/test/CIMWriter/CIMWriter_test008.cpp b/test/CIMWriter/CIMWriter_test008.cpp new file mode 100644 index 000000000..3be41fa87 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test008.cpp @@ -0,0 +1,90 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_SUITE(CIMWriter_test008) + +BOOST_AUTO_TEST_CASE(EQ_TP) +{ + // Check reading models from more than one file + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_EQ.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_TP.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" Terminal.N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" N0", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} + +BOOST_AUTO_TEST_CASE(TP_EQ) +{ + // Check reading models from more than one file in reverse order + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_TP.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_EQ.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" Terminal.N0", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/CIMWriter/CIMWriter_test008_with_profiles.cpp b/test/CIMWriter/CIMWriter_test008_with_profiles.cpp new file mode 100644 index 000000000..cda71581e --- /dev/null +++ b/test/CIMWriter/CIMWriter_test008_with_profiles.cpp @@ -0,0 +1,133 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_SUITE(CIMWriter_test008_with_profiles) + +BOOST_AUTO_TEST_CASE(TP) +{ + // Check reading models from more than one file and writing for Topology profile + static std::string TP_PROFILE = getProfileURIs(CGMESProfile::TP).front(); + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_TP.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_EQ.xml")); + model.parseFiles(); + + auto classProfileMap = CIMWriter::getClassProfileMap(model.Objects); + std::stringstream rdf; + bool success = CIMWriter::writeCim(rdf, model.Objects, CGMESProfile::TP, "model", classProfileMap); + BOOST_REQUIRE(success); + CIMWriter::writeFile("test.xml", model.Objects, CGMESProfile::TP, "model", classProfileMap); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(10, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" " + TP_PROFILE + "", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" N0", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); +} + +BOOST_AUTO_TEST_CASE(EQ) +{ + // Check reading models from more than one file and writing for EQ profile + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_TP.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_EQ.xml")); + model.parseFiles(); + + auto classProfileMap = CIMWriter::getClassProfileMap(model.Objects); + std::stringstream rdf; + bool success = CIMWriter::writeCim(rdf, model.Objects, CGMESProfile::EQ, "model", classProfileMap); + BOOST_REQUIRE(success); + CIMWriter::writeFile("test.xml", model.Objects, CGMESProfile::EQ, "model", classProfileMap); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 4 + getProfileURIs(CGMESProfile::EQ).size(); ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(4, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" Terminal.N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); +} + +BOOST_AUTO_TEST_CASE(TPall) +{ + // Check reading models from more than one file and writing for Topology profile + // forcing Terminal object to be written completely into Topology profile + static std::string TP_PROFILE = getProfileURIs(CGMESProfile::TP).front(); + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_TP.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test008_EQ.xml")); + model.parseFiles(); + + // Set class profile of class Terminal also to TP. + auto classProfileMap = CIMWriter::getClassProfileMap(model.Objects); + BOOST_REQUIRE(CGMESProfile::TP == classProfileMap.at("TopologicalNode")); + BOOST_REQUIRE(CGMESProfile::EQ == classProfileMap.at("Terminal")); + classProfileMap["Terminal"] = CGMESProfile::TP; + BOOST_REQUIRE(CGMESProfile::TP == classProfileMap.at("Terminal")); + + std::stringstream rdf; + bool success = CIMWriter::writeCim(rdf, model.Objects, CGMESProfile::TP, "model", classProfileMap); + BOOST_REQUIRE(success); + CIMWriter::writeFile("test.xml", model.Objects, CGMESProfile::TP, "model", classProfileMap); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(11, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" " + TP_PROFILE + "", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" N0", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" Terminal.N0", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/CIMWriter/CIMWriter_test009.cpp b/test/CIMWriter/CIMWriter_test009.cpp new file mode 100644 index 000000000..b39c48fcb --- /dev/null +++ b/test/CIMWriter/CIMWriter_test009.cpp @@ -0,0 +1,90 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_SUITE(CIMWriter_test009) + +BOOST_AUTO_TEST_CASE(EQ_TP) +{ + // Check reading one object from more than one file + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test009_EQ.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test009_TP.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" Terminal.N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" N0", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} + +BOOST_AUTO_TEST_CASE(TP_EQ) +{ + // Check reading one object from more than one file in reverse order + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test009_TP.xml")); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test009_EQ.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("Terminal.N0", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" Terminal.N0", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/CIMWriter/CIMWriter_test010.cpp b/test/CIMWriter/CIMWriter_test010.cpp new file mode 100644 index 000000000..791c70079 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test010.cpp @@ -0,0 +1,120 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +// forward declarations +static void check_text_with_non_ascii_characters(std::string file, bool with_euro_sign = true); + +BOOST_AUTO_TEST_SUITE(CIMWriter_test010) + +BOOST_AUTO_TEST_CASE(UTF_8) +{ + // Check text with non ASCII characters encoded in UTF-8 + check_text_with_non_ascii_characters("../../test/rdf/test010_UTF-8.xml"); +} + +BOOST_AUTO_TEST_CASE(ISO_8859_1) +{ + // Check text with non ASCII characters encoded in ISO-8859-1 (which has no EURO SIGN) + check_text_with_non_ascii_characters("../../test/rdf/test010_ISO-8859-1.xml", false); +} + +BOOST_AUTO_TEST_CASE(ISO_8859_15) +{ + // Check text with non ASCII characters encoded in ISO-8859-15 + check_text_with_non_ascii_characters("../../test/rdf/test010_ISO-8859-15.xml"); +} + +BOOST_AUTO_TEST_CASE(UTF_16LE) +{ + // Check text with non ASCII characters encoded in UTF-16LE + check_text_with_non_ascii_characters("../../test/rdf/test010_UTF-16LE.xml"); +} + +BOOST_AUTO_TEST_CASE(UTF_16BE) +{ + // Check text with non ASCII characters encoded in UTF-16BE + check_text_with_non_ascii_characters("../../test/rdf/test010_UTF-16BE.xml"); +} + +BOOST_AUTO_TEST_SUITE_END() + + +// static functions + +static void check_text_with_non_ascii_characters(std::string file, bool with_euro_sign /*= true*/) +{ + // Check text with non ASCII characters + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile(file)); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[0]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(4, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + std::string description = lines[1]; + BOOST_REQUIRE_EQUAL(" ", lines[2]); + + // Check description line + BOOST_REQUIRE_EQUAL(0, description.find(" ")); + BOOST_REQUIRE(std::string::npos != description.find("")); + + description = description.substr(description.find(">") + 1); + description = description.substr(0, description.find(" + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test011){ + // Check class attributes of Status, StreetAddress, StreetDetail, TownDetail + // (to make sure they are not primitive string attributes, only for CGMES3) + if (CimVersion == "cgmes_v3_0_0") + { + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test011_CGMES3.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(5, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_Location", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Address", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Status", model.Objects[2]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Street", model.Objects[3]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Town", model.Objects[4]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(22, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" ", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" 2024-10-13 19:17:22 +0200", lines[9]); + BOOST_REQUIRE_EQUAL(" verified", lines[10]); + BOOST_REQUIRE_EQUAL(" ", lines[11]); + BOOST_REQUIRE_EQUAL(" ", lines[12]); + BOOST_REQUIRE_EQUAL(" Ku'damm", lines[13]); + BOOST_REQUIRE_EQUAL(" 33", lines[14]); + BOOST_REQUIRE_EQUAL(" true", lines[15]); + BOOST_REQUIRE_EQUAL(" ", lines[16]); + BOOST_REQUIRE_EQUAL(" ", lines[17]); + BOOST_REQUIRE_EQUAL(" Germany", lines[18]); + BOOST_REQUIRE_EQUAL(" Berlin", lines[19]); + BOOST_REQUIRE_EQUAL(" ", lines[20]); + } +} diff --git a/test/CIMWriter/CIMWriter_test012.cpp b/test/CIMWriter/CIMWriter_test012.cpp new file mode 100644 index 000000000..6dbcd2975 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test012.cpp @@ -0,0 +1,41 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test012){ + // Check MonthDay as primitive string attribute + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test012.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_Season", model.Objects[0]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(5, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" --10-31", lines[1]); + BOOST_REQUIRE_EQUAL(" --10-13", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); +} diff --git a/test/CIMWriter/CIMWriter_test013.cpp b/test/CIMWriter/CIMWriter_test013.cpp new file mode 100644 index 000000000..e88287842 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test013.cpp @@ -0,0 +1,51 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test013) +{ + // Check list attributes (TopologicalIsland to TopologicalNode, OneToMany) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test013.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("N1", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" N0", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" N1", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test014.cpp b/test/CIMWriter/CIMWriter_test014.cpp new file mode 100644 index 000000000..49ff9c582 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test014.cpp @@ -0,0 +1,51 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test014) +{ + // Check links from TopologicalNode to TopologicalIsland (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test014.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("N1", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" N0", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" N1", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test015.cpp b/test/CIMWriter/CIMWriter_test015.cpp new file mode 100644 index 000000000..a8a39df79 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test015.cpp @@ -0,0 +1,52 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test015) +{ + // Check reading links between TopologicalNode and TopologicalIsland + // if they are set on both sides (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test015.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("N1", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" N0", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" N1", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test016.cpp b/test/CIMWriter/CIMWriter_test016.cpp new file mode 100644 index 000000000..8ed2c1ec4 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test016.cpp @@ -0,0 +1,53 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test016) +{ + // Check reading mixed links between TopologicalNode and TopologicalIsland: + // one from TopologicalIsland to TopologicalNode and the other + // from TopologicalNode to TopologicalIsland (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test016.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("N0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("N1", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" N0", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" N1", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test017.cpp b/test/CIMWriter/CIMWriter_test017.cpp new file mode 100644 index 000000000..ad8d34489 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test017.cpp @@ -0,0 +1,46 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test017) +{ + // Check class attributes (SvVoltage to TopologicalNode, OneToOne) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test017.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" 110.5", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} diff --git a/test/CIMWriter/CIMWriter_test018.cpp b/test/CIMWriter/CIMWriter_test018.cpp new file mode 100644 index 000000000..17d37ef91 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test018.cpp @@ -0,0 +1,46 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test018) +{ + // Check link from TopologicalNode to SvVoltage (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test018.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" 110.5", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} diff --git a/test/CIMWriter/CIMWriter_test019.cpp b/test/CIMWriter/CIMWriter_test019.cpp new file mode 100644 index 000000000..5a55afcd9 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test019.cpp @@ -0,0 +1,47 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test019) +{ + // Check reading links between SvVoltage and TopologicalNode + // if they are set on both sides (not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test019.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("N0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("SvVoltage.N0", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" N0", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" 110.5", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} diff --git a/test/CIMWriter/CIMWriter_test020.cpp b/test/CIMWriter/CIMWriter_test020.cpp new file mode 100644 index 000000000..b2d613bff --- /dev/null +++ b/test/CIMWriter/CIMWriter_test020.cpp @@ -0,0 +1,45 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test020) +{ + // Check inherited object links + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test020.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("VoltageLevel.98", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("EnergyConsumer.H-5", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(7, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" 98", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); +} diff --git a/test/CIMWriter/CIMWriter_test021.cpp b/test/CIMWriter/CIMWriter_test021.cpp new file mode 100644 index 000000000..c65223660 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test021.cpp @@ -0,0 +1,41 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test021) +{ + // Check handling links to not existing objects (causing an error log entry) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test021.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("VoltageLevel.98", model.Objects[0]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(4, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" 98", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); +} diff --git a/test/CIMWriter/CIMWriter_test022.cpp b/test/CIMWriter/CIMWriter_test022.cpp new file mode 100644 index 000000000..cbdd28dcc --- /dev/null +++ b/test/CIMWriter/CIMWriter_test022.cpp @@ -0,0 +1,103 @@ +#include + +#include +#include +#include + +#include "CGMESProfile.hpp" +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_SUITE(CIMWriter_test022) + +BOOST_AUTO_TEST_CASE(SV) +{ + // Check models with more than one profile for StateVariables profile + static std::string SV_PROFILE = getProfileURIs(CGMESProfile::SV).front(); + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test022.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("TopologicalIsland.N", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("TopologicalIsland.N2", model.Objects[1]->getRdfid()); + + auto classProfileMap = CIMWriter::getClassProfileMap(model.Objects); + std::stringstream rdf; + bool success = CIMWriter::writeCim(rdf, model.Objects, CGMESProfile::SV, "model", classProfileMap); + BOOST_REQUIRE(success); + CIMWriter::writeFile("test_SV.xml", model.Objects, CGMESProfile::SV, "model", classProfileMap); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(9, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" " + SV_PROFILE + "", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" N", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); +} + +BOOST_AUTO_TEST_CASE(EQ) +{ + // Check models with more than one profile for Equipment/CoreEquipment profile + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test022.xml")); + model.parseFiles(); + + auto classProfileMap = CIMWriter::getClassProfileMap(model.Objects); + std::stringstream rdf; + bool success = CIMWriter::writeCim(rdf, model.Objects, CGMESProfile::EQ, "model", classProfileMap); + BOOST_REQUIRE(success); + CIMWriter::writeFile("test_EQ.xml", model.Objects, CGMESProfile::EQ, "model", classProfileMap); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 4 + getProfileURIs(CGMESProfile::EQ).size(); ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(4, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" Island N", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); +} + +BOOST_AUTO_TEST_CASE(TP) +{ + // Check models with more than one profile for Topology profile + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test022.xml")); + model.parseFiles(); + + auto classProfileMap = CIMWriter::getClassProfileMap(model.Objects); + std::stringstream rdf; + bool success = CIMWriter::writeCim(rdf, model.Objects, CGMESProfile::TP, "model", classProfileMap); + BOOST_REQUIRE(!success); + CIMWriter::writeFile("test_TP.xml", model.Objects, CGMESProfile::TP, "model", classProfileMap); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/CIMWriter/CIMWriter_test023.cpp b/test/CIMWriter/CIMWriter_test023.cpp new file mode 100644 index 000000000..e547defc5 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test023.cpp @@ -0,0 +1,43 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test023) +{ + // Check text with entity references + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test023.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("BaseVoltage.20", model.Objects[0]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(4, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL( + " <&> <&> <&>", + lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); +} diff --git a/test/CIMWriter/CIMWriter_test024.cpp b/test/CIMWriter/CIMWriter_test024.cpp new file mode 100644 index 000000000..87325521e --- /dev/null +++ b/test/CIMWriter/CIMWriter_test024.cpp @@ -0,0 +1,53 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test024) +{ + // Check parsing one object with different types (maybe not CGMES conform) + // PowerTransformer gets more attributes from Equipment entry with rdf:about + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test024.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" VL", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" PowerTransformer", + lines[4]); + BOOST_REQUIRE_EQUAL(" PT", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test025.cpp b/test/CIMWriter/CIMWriter_test025.cpp new file mode 100644 index 000000000..d75c48ba2 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test025.cpp @@ -0,0 +1,53 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test025) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object (rdf:about) has to be changed to PowerTransformer + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test025.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" VL", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" PowerTransformer", + lines[4]); + BOOST_REQUIRE_EQUAL(" PT", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test026.cpp b/test/CIMWriter/CIMWriter_test026.cpp new file mode 100644 index 000000000..3365a7d20 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test026.cpp @@ -0,0 +1,53 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test026) +{ + // Check parsing one object with different types (maybe not CGMES conform) + // PowerTransformer (rdf:about) gets more attributes from Equipment entry + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test026.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" VL", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" PowerTransformer", + lines[4]); + BOOST_REQUIRE_EQUAL(" PT", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test027.cpp b/test/CIMWriter/CIMWriter_test027.cpp new file mode 100644 index 000000000..0d2ef7845 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test027.cpp @@ -0,0 +1,53 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test027) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer (rdf:about) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test027.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" VL", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" PowerTransformer", + lines[4]); + BOOST_REQUIRE_EQUAL(" PT", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test028.cpp b/test/CIMWriter/CIMWriter_test028.cpp new file mode 100644 index 000000000..e05d0c195 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test028.cpp @@ -0,0 +1,54 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test028) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer (rdf:about) + // Equipment has class attribute, but the linked object is defined later + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test028.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PTE", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" PowerTransformer", + lines[1]); + BOOST_REQUIRE_EQUAL(" PT", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" VL", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" ", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test029.cpp b/test/CIMWriter/CIMWriter_test029.cpp new file mode 100644 index 000000000..c4d02f3f4 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test029.cpp @@ -0,0 +1,47 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test029) +{ + // Check parsing one object with overriding attributes (maybe not CGMES conform) + CIMModel model; + model.setDependencyCheckOff(); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test029.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(9, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" ", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" PT", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); +} diff --git a/test/CIMWriter/CIMWriter_test030.cpp b/test/CIMWriter/CIMWriter_test030.cpp new file mode 100644 index 000000000..4d9e4614f --- /dev/null +++ b/test/CIMWriter/CIMWriter_test030.cpp @@ -0,0 +1,48 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test030) +{ + // Check parsing one object with overriding attributes (maybe not CGMES conform) + // and the overriding class attribute links to object, that is defined later + CIMModel model; + model.setDependencyCheckOff(); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test030.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL0", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(9, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" ", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" PT", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); +} diff --git a/test/CIMWriter/CIMWriter_test031.cpp b/test/CIMWriter/CIMWriter_test031.cpp new file mode 100644 index 000000000..8929b2415 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test031.cpp @@ -0,0 +1,48 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test031) +{ + // Check parsing one object with overriding attributes (maybe not CGMES conform) + // and both (overridden and overriding) link to objects, that are defined later + CIMModel model; + model.setDependencyCheckOff(); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test031.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL0", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(9, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" PT", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); +} diff --git a/test/CIMWriter/CIMWriter_test032.cpp b/test/CIMWriter/CIMWriter_test032.cpp new file mode 100644 index 000000000..29492ef7f --- /dev/null +++ b/test/CIMWriter/CIMWriter_test032.cpp @@ -0,0 +1,48 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test032) +{ + // Check parsing one object with overriding attributes (maybe not CGMES conform) + // and the overridden class attribute links to object, that is defined later + CIMModel model; + model.setDependencyCheckOff(); + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test032.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL0", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(9, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" ", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" PT", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); +} diff --git a/test/CIMWriter/CIMWriter_test033.cpp b/test/CIMWriter/CIMWriter_test033.cpp new file mode 100644 index 000000000..94aede4da --- /dev/null +++ b/test/CIMWriter/CIMWriter_test033.cpp @@ -0,0 +1,49 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test033) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer (rdf:about) + // Equipment has class attribute, but the linked object is defined later + // after changing to PowerTransformer + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test033.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_VL", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" PT", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" VL", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} diff --git a/test/CIMWriter/CIMWriter_test034.cpp b/test/CIMWriter/CIMWriter_test034.cpp new file mode 100644 index 000000000..ee69e3a5a --- /dev/null +++ b/test/CIMWriter/CIMWriter_test034.cpp @@ -0,0 +1,54 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test034) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // EquipmentContainer object has to be changed to VoltageLevel + // EquipmentContainer has list attributes (not CGMES conform), but the linked + // objects are defined later after changing to VoltageLevel + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test034.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT2", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" VL", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" PT", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" PT2", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test035.cpp b/test/CIMWriter/CIMWriter_test035.cpp new file mode 100644 index 000000000..64496bb47 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test035.cpp @@ -0,0 +1,54 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test035) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // EquipmentContainer object has to be changed to VoltageLevel + // EquipmentContainer has list attributes (not CGMES conform), but the linked + // objects are defined later: one before and one after changing to VoltageLevel + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test035.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(3, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_VL", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT2", model.Objects[2]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(12, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" VL", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" PT", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); + BOOST_REQUIRE_EQUAL(" ", lines[7]); + BOOST_REQUIRE_EQUAL(" PT2", lines[8]); + BOOST_REQUIRE_EQUAL(" ", lines[9]); + BOOST_REQUIRE_EQUAL(" ", lines[10]); +} diff --git a/test/CIMWriter/CIMWriter_test036.cpp b/test/CIMWriter/CIMWriter_test036.cpp new file mode 100644 index 000000000..724c2e2af --- /dev/null +++ b/test/CIMWriter/CIMWriter_test036.cpp @@ -0,0 +1,49 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test036) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer + // and is linked as ConductingEquipment (which is not allowed for Equipment) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test036.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_Status", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_PT", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" ", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" PowerTransformer", + lines[4]); + BOOST_REQUIRE_EQUAL(" PT", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} diff --git a/test/CIMWriter/CIMWriter_test037.cpp b/test/CIMWriter/CIMWriter_test037.cpp new file mode 100644 index 000000000..b345f7203 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test037.cpp @@ -0,0 +1,51 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test037) +{ + // Check parsing one object with changing type (maybe not CGMES conform) + // Equipment object has to be changed to PowerTransformer + // and is linked as ConductingEquipment (which is not allowed for Equipment) + // before changing to PowerTransformer (typically the entries are defined + // in more than one file, so the order of reading is not clearly defined) + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test037.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Status", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(8, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" PowerTransformer", + lines[1]); + BOOST_REQUIRE_EQUAL(" PT", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); + BOOST_REQUIRE_EQUAL(" ", lines[5]); + BOOST_REQUIRE_EQUAL(" ", lines[6]); +} diff --git a/test/CIMWriter/CIMWriter_test038.cpp b/test/CIMWriter/CIMWriter_test038.cpp new file mode 100644 index 000000000..a3d4765f8 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test038.cpp @@ -0,0 +1,46 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test038) +{ + // Check not allowed linked type (causing an error log entry) + // Equipment object is tried to be linked as ConductingEquipment + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test038.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(2, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("_PT", model.Objects[0]->getRdfid()); + BOOST_REQUIRE_EQUAL("_Status", model.Objects[1]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(6, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" PowerTransformer", + lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); +} diff --git a/test/CIMWriter/CIMWriter_test039.cpp b/test/CIMWriter/CIMWriter_test039.cpp new file mode 100644 index 000000000..b99471d94 --- /dev/null +++ b/test/CIMWriter/CIMWriter_test039.cpp @@ -0,0 +1,45 @@ +#include + +#include +#include +#include + +#include "CIMModel.hpp" +#include "CIMWriter.hpp" +#include "CimConstants.hpp" + +BOOST_AUTO_TEST_CASE(CIMWriter_test039) +{ + // Check replacing enum attributes + static std::string CIM = NamespaceMap.at("cim"); + CIMModel model; + model.setDependencyCheckOff(); + + BOOST_REQUIRE(model.addCIMFile("../../test/rdf/test039.xml")); + model.parseFiles(); + BOOST_REQUIRE_EQUAL(1, model.Objects.size()); + + BOOST_REQUIRE_EQUAL("Analog.N0.Voltage", model.Objects[0]->getRdfid()); + + std::stringstream rdf; + CIMWriter::writeCim(rdf, model.Objects); + CIMWriter::writeFile("test.xml", model.Objects); + + std::vector lines; + std::string line; + for (int idx = 0; idx < 2; ++idx) // Skip header + { + std::getline(rdf, line); + } + while (std::getline(rdf, line)) + { + lines.push_back(line); + } + BOOST_REQUIRE_EQUAL(6, lines.size()); + + BOOST_REQUIRE_EQUAL(" ", lines[0]); + BOOST_REQUIRE_EQUAL(" Voltage", lines[1]); + BOOST_REQUIRE_EQUAL(" ", lines[2]); + BOOST_REQUIRE_EQUAL(" ", lines[3]); + BOOST_REQUIRE_EQUAL(" ", lines[4]); +} diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 000000000..629d886a9 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.5) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ".") +set(PROJECT_TEST_NAME ${PROJECT_NAME}${USE_CIM_VERSION}_unit_tests) + +find_package(Boost COMPONENTS filesystem system unit_test_framework REQUIRED) + +file(GLOB_RECURSE TEST_SRC_FILES *.cpp) + +include_directories(${Boost_INCLUDE_DIRS}) +include_directories(../${USE_CIM_VERSION}) +include_directories(../static) +include_directories(../src) + +# Build unit tests +add_definitions(-DBOOST_TEST_DYN_LINK) +add_executable(${PROJECT_TEST_NAME} ${TEST_SRC_FILES}) +target_link_libraries(${PROJECT_TEST_NAME} ${Boost_LIBRARIES}) +target_link_libraries(${PROJECT_TEST_NAME} libcimpp) + +foreach(TEST_SRC_FILE ${TEST_SRC_FILES}) + get_filename_component(TEST_NAME ${TEST_SRC_FILE} NAME_WE) + if(TEST_NAME STREQUAL "test_main") + continue() + endif() + add_test(NAME ${TEST_NAME} COMMAND ${PROJECT_TEST_NAME} --run_test=${TEST_NAME}) +endforeach() diff --git a/test/rdf/test001.xml b/test/rdf/test001.xml new file mode 100644 index 000000000..22c3c2c69 --- /dev/null +++ b/test/rdf/test001.xml @@ -0,0 +1,11 @@ + + + + 20.0 + + + + 98 + + diff --git a/test/rdf/test002.xml b/test/rdf/test002.xml new file mode 100644 index 000000000..9fd9f116d --- /dev/null +++ b/test/rdf/test002.xml @@ -0,0 +1,13 @@ + + + + Voltage + + + Voltage Magnitude Measurement at N0 + + + + + diff --git a/test/rdf/test003.xml b/test/rdf/test003.xml new file mode 100644 index 000000000..f3ddd5442 --- /dev/null +++ b/test/rdf/test003.xml @@ -0,0 +1,10 @@ + + + + N0 + + + + + diff --git a/test/rdf/test004.xml b/test/rdf/test004.xml new file mode 100644 index 000000000..43ccfff87 --- /dev/null +++ b/test/rdf/test004.xml @@ -0,0 +1,13 @@ + + + + http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0 + + + 20.0 + 20 + + diff --git a/test/rdf/test005_CGMES2.xml b/test/rdf/test005_CGMES2.xml new file mode 100644 index 000000000..e73605593 --- /dev/null +++ b/test/rdf/test005_CGMES2.xml @@ -0,0 +1,11 @@ + + + + + + + EST + + diff --git a/test/rdf/test005_CGMES3.xml b/test/rdf/test005_CGMES3.xml new file mode 100644 index 000000000..911a739f2 --- /dev/null +++ b/test/rdf/test005_CGMES3.xml @@ -0,0 +1,11 @@ + + + + N0 + + + + + diff --git a/test/rdf/test006_CGMES2.xml b/test/rdf/test006_CGMES2.xml new file mode 100644 index 000000000..14f033256 --- /dev/null +++ b/test/rdf/test006_CGMES2.xml @@ -0,0 +1,9 @@ + + + + High Voltage + + + diff --git a/test/rdf/test006_CGMES3.xml b/test/rdf/test006_CGMES3.xml new file mode 100644 index 000000000..ad3b0080c --- /dev/null +++ b/test/rdf/test006_CGMES3.xml @@ -0,0 +1,9 @@ + + + + High Voltage + + + diff --git a/test/rdf/test007.xml b/test/rdf/test007.xml new file mode 100644 index 000000000..0a928b21f --- /dev/null +++ b/test/rdf/test007.xml @@ -0,0 +1,16 @@ + + + + + + + + + + 20.0 + + + + + diff --git a/test/rdf/test008_EQ.xml b/test/rdf/test008_EQ.xml new file mode 100644 index 000000000..9880f6c4f --- /dev/null +++ b/test/rdf/test008_EQ.xml @@ -0,0 +1,8 @@ + + + + + Terminal.N0 + + diff --git a/test/rdf/test008_TP.xml b/test/rdf/test008_TP.xml new file mode 100644 index 000000000..2499d9607 --- /dev/null +++ b/test/rdf/test008_TP.xml @@ -0,0 +1,7 @@ + + + + N0 + + diff --git a/test/rdf/test009_EQ.xml b/test/rdf/test009_EQ.xml new file mode 100644 index 000000000..255b82ae7 --- /dev/null +++ b/test/rdf/test009_EQ.xml @@ -0,0 +1,7 @@ + + + + Terminal.N0 + + diff --git a/test/rdf/test009_TP.xml b/test/rdf/test009_TP.xml new file mode 100644 index 000000000..f3ddd5442 --- /dev/null +++ b/test/rdf/test009_TP.xml @@ -0,0 +1,10 @@ + + + + N0 + + + + + diff --git a/test/rdf/test010_ISO-8859-1.xml b/test/rdf/test010_ISO-8859-1.xml new file mode 100644 index 000000000..ba4e918fd --- /dev/null +++ b/test/rdf/test010_ISO-8859-1.xml @@ -0,0 +1,7 @@ + + + + ÄÖÜäöüß + + diff --git a/test/rdf/test010_ISO-8859-15.xml b/test/rdf/test010_ISO-8859-15.xml new file mode 100644 index 000000000..75276d33c --- /dev/null +++ b/test/rdf/test010_ISO-8859-15.xml @@ -0,0 +1,7 @@ + + + + ¤ÄÖÜäöüß + + diff --git a/test/rdf/test010_UTF-16BE.xml b/test/rdf/test010_UTF-16BE.xml new file mode 100644 index 0000000000000000000000000000000000000000..7bfb3f7981651a1b3fca4a542c244ea912f05ec8 GIT binary patch literal 656 zcmbV~%}T>S6otQapCafwNz>wAs4Z9#vJgR}`x?_&Y15L#zjyL6dE9LOLUpO40ejYbY3RuB$lMyk z72ds+l#IpTYFDr++?E*s+HVE1^v|vORRvRZ7>hfWGM_VsY_VfG+tSh1Zb-zjm}CRny;sLW4pdbLd!(*rR&6TJX{HouN@gDG>pXRA=KqbmiXCav=3Ywm zG|`vHKjEA!?P5hen>TuMWtXHP<5eOJ{x@tYY` HFGbNWLO5<5 literal 0 HcmV?d00001 diff --git a/test/rdf/test010_UTF-16LE.xml b/test/rdf/test010_UTF-16LE.xml new file mode 100644 index 0000000000000000000000000000000000000000..94b539fbedf25fc2382b8b64a01a83326108d2dd GIT binary patch literal 656 zcmbV~%}T>S6otQapCafwNz>wAs4Z9#vJgR}`E9OPTy?3U0SDH6X=urB$=nLV z72boC6b!}SYL~Mu+=dwc+HVE1^v|sNbp;c37>hfWGM@|j?67A!o6^zNu200Nm~vZ_ z2xTa*#0%K9>}CRny;H?Qj#QNkd!VkSR&6TJsizcaN@gCL>pXRA=D)&S$Br~ + + + €ÄÖÜäöüß + + diff --git a/test/rdf/test011_CGMES3.xml b/test/rdf/test011_CGMES3.xml new file mode 100644 index 000000000..d11a4c3da --- /dev/null +++ b/test/rdf/test011_CGMES3.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + 2024-10-13 19:17:22 +0200 + verified + + + Ku'damm + 33 + true + + + Germany + Berlin + + diff --git a/test/rdf/test012.xml b/test/rdf/test012.xml new file mode 100644 index 000000000..8f9bd8c7e --- /dev/null +++ b/test/rdf/test012.xml @@ -0,0 +1,8 @@ + + + + --10-31 + --10-13 + + diff --git a/test/rdf/test013.xml b/test/rdf/test013.xml new file mode 100644 index 000000000..638b1c6d9 --- /dev/null +++ b/test/rdf/test013.xml @@ -0,0 +1,15 @@ + + + + + + N + + + N0 + + + N1 + + diff --git a/test/rdf/test014.xml b/test/rdf/test014.xml new file mode 100644 index 000000000..cbe634b38 --- /dev/null +++ b/test/rdf/test014.xml @@ -0,0 +1,15 @@ + + + + N + + + + N0 + + + + N1 + + diff --git a/test/rdf/test015.xml b/test/rdf/test015.xml new file mode 100644 index 000000000..479a389bf --- /dev/null +++ b/test/rdf/test015.xml @@ -0,0 +1,17 @@ + + + + + + N + + + + N0 + + + + N1 + + diff --git a/test/rdf/test016.xml b/test/rdf/test016.xml new file mode 100644 index 000000000..ca42c9603 --- /dev/null +++ b/test/rdf/test016.xml @@ -0,0 +1,15 @@ + + + + + N + + + N0 + + + + N1 + + diff --git a/test/rdf/test017.xml b/test/rdf/test017.xml new file mode 100644 index 000000000..a7e4a2152 --- /dev/null +++ b/test/rdf/test017.xml @@ -0,0 +1,11 @@ + + + + N0 + + + 110.5 + + + diff --git a/test/rdf/test018.xml b/test/rdf/test018.xml new file mode 100644 index 000000000..fd20e2ae4 --- /dev/null +++ b/test/rdf/test018.xml @@ -0,0 +1,11 @@ + + + + N0 + + + + 110.5 + + diff --git a/test/rdf/test019.xml b/test/rdf/test019.xml new file mode 100644 index 000000000..e0fbdf3dc --- /dev/null +++ b/test/rdf/test019.xml @@ -0,0 +1,12 @@ + + + + N0 + + + + 110.5 + + + diff --git a/test/rdf/test020.xml b/test/rdf/test020.xml new file mode 100644 index 000000000..9435f6517 --- /dev/null +++ b/test/rdf/test020.xml @@ -0,0 +1,10 @@ + + + + 98 + + + + + diff --git a/test/rdf/test021.xml b/test/rdf/test021.xml new file mode 100644 index 000000000..f7b7c8adc --- /dev/null +++ b/test/rdf/test021.xml @@ -0,0 +1,8 @@ + + + + + 98 + + diff --git a/test/rdf/test022.xml b/test/rdf/test022.xml new file mode 100644 index 000000000..63dd9d7b0 --- /dev/null +++ b/test/rdf/test022.xml @@ -0,0 +1,10 @@ + + + + Island N + N + + + + diff --git a/test/rdf/test023.xml b/test/rdf/test023.xml new file mode 100644 index 000000000..5c3195b56 --- /dev/null +++ b/test/rdf/test023.xml @@ -0,0 +1,7 @@ + + + + <&> <&> <&> + + diff --git a/test/rdf/test024.xml b/test/rdf/test024.xml new file mode 100644 index 000000000..b0c52fe51 --- /dev/null +++ b/test/rdf/test024.xml @@ -0,0 +1,17 @@ + + + + VL + + + PT + + + + PowerTransformer + + + + + diff --git a/test/rdf/test025.xml b/test/rdf/test025.xml new file mode 100644 index 000000000..e795f6b05 --- /dev/null +++ b/test/rdf/test025.xml @@ -0,0 +1,17 @@ + + + + VL + + + + PowerTransformer + + + PT + + + + + diff --git a/test/rdf/test026.xml b/test/rdf/test026.xml new file mode 100644 index 000000000..81905ee55 --- /dev/null +++ b/test/rdf/test026.xml @@ -0,0 +1,17 @@ + + + + VL + + + PT + + + + PowerTransformer + + + + + diff --git a/test/rdf/test027.xml b/test/rdf/test027.xml new file mode 100644 index 000000000..fa222706a --- /dev/null +++ b/test/rdf/test027.xml @@ -0,0 +1,17 @@ + + + + VL + + + + PowerTransformer + + + PT + + + + + diff --git a/test/rdf/test028.xml b/test/rdf/test028.xml new file mode 100644 index 000000000..546fe01c7 --- /dev/null +++ b/test/rdf/test028.xml @@ -0,0 +1,17 @@ + + + + + PowerTransformer + + + VL + + + PT + + + + + diff --git a/test/rdf/test029.xml b/test/rdf/test029.xml new file mode 100644 index 000000000..2ea5da32c --- /dev/null +++ b/test/rdf/test029.xml @@ -0,0 +1,16 @@ + + + + + + + + + PT0 + + + + PT + + diff --git a/test/rdf/test030.xml b/test/rdf/test030.xml new file mode 100644 index 000000000..2888f80f6 --- /dev/null +++ b/test/rdf/test030.xml @@ -0,0 +1,16 @@ + + + + + + + PT0 + + + + PT + + + + diff --git a/test/rdf/test031.xml b/test/rdf/test031.xml new file mode 100644 index 000000000..9bbbf72db --- /dev/null +++ b/test/rdf/test031.xml @@ -0,0 +1,16 @@ + + + + + PT0 + + + + PT + + + + + + diff --git a/test/rdf/test032.xml b/test/rdf/test032.xml new file mode 100644 index 000000000..b15b441ee --- /dev/null +++ b/test/rdf/test032.xml @@ -0,0 +1,16 @@ + + + + + + + PT0 + + + + PT + + + + diff --git a/test/rdf/test033.xml b/test/rdf/test033.xml new file mode 100644 index 000000000..78339784f --- /dev/null +++ b/test/rdf/test033.xml @@ -0,0 +1,13 @@ + + + + + + + PT + + + VL + + diff --git a/test/rdf/test034.xml b/test/rdf/test034.xml new file mode 100644 index 000000000..c830c087e --- /dev/null +++ b/test/rdf/test034.xml @@ -0,0 +1,17 @@ + + + + + + + + VL + + + PT + + + PT2 + + diff --git a/test/rdf/test035.xml b/test/rdf/test035.xml new file mode 100644 index 000000000..851dfa2c0 --- /dev/null +++ b/test/rdf/test035.xml @@ -0,0 +1,17 @@ + + + + + + + + PT + + + VL + + + PT2 + + diff --git a/test/rdf/test036.xml b/test/rdf/test036.xml new file mode 100644 index 000000000..608cdf87a --- /dev/null +++ b/test/rdf/test036.xml @@ -0,0 +1,13 @@ + + + + + + + PowerTransformer + + + PT + + diff --git a/test/rdf/test037.xml b/test/rdf/test037.xml new file mode 100644 index 000000000..11f7942bc --- /dev/null +++ b/test/rdf/test037.xml @@ -0,0 +1,13 @@ + + + + PowerTransformer + + + + + + PT + + diff --git a/test/rdf/test038.xml b/test/rdf/test038.xml new file mode 100644 index 000000000..79d4afbe1 --- /dev/null +++ b/test/rdf/test038.xml @@ -0,0 +1,10 @@ + + + + PowerTransformer + + + + + diff --git a/test/rdf/test039.xml b/test/rdf/test039.xml new file mode 100644 index 000000000..d553a8071 --- /dev/null +++ b/test/rdf/test039.xml @@ -0,0 +1,11 @@ + + + + + + + + Voltage + + diff --git a/test/test_main.cpp b/test/test_main.cpp new file mode 100644 index 000000000..9d3ea9b5f --- /dev/null +++ b/test/test_main.cpp @@ -0,0 +1,2 @@ +#define BOOST_TEST_MODULE test +#include From 9a8d9a57e5d8a8fb08993705bc2f230727dadddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Wed, 9 Jul 2025 00:51:20 +0200 Subject: [PATCH 09/13] Add installation of Boost to github workflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- .github/workflows/build-doc.yml | 3 +++ .github/workflows/build-src.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/build-doc.yml b/.github/workflows/build-doc.yml index db8e1f086..8a7aca533 100644 --- a/.github/workflows/build-doc.yml +++ b/.github/workflows/build-doc.yml @@ -18,6 +18,9 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 + - name: Install Boost + shell: bash + run: sudo apt-get install libboost-filesystem-dev libboost-system-dev libboost-test-dev - name: Install Doxygen shell: bash run: sudo apt-get install doxygen diff --git a/.github/workflows/build-src.yml b/.github/workflows/build-src.yml index c2f8a6368..f855174d0 100644 --- a/.github/workflows/build-src.yml +++ b/.github/workflows/build-src.yml @@ -15,6 +15,9 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 + - name: Install Boost + shell: bash + run: sudo apt-get install libboost-filesystem-dev libboost-system-dev libboost-test-dev - name: Create Build Environment run: cmake -E make_directory ${{runner.workspace}}/libcimpp/build/${{matrix.schema}} - name: Configure CMake and compile From 729ec9afbfb4c642dae97201085f42a80fce5244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Wed, 9 Jul 2025 23:54:20 +0200 Subject: [PATCH 10/13] Add running of unit tests to build-src workflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- .github/workflows/build-src.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build-src.yml b/.github/workflows/build-src.yml index f855174d0..da0f87842 100644 --- a/.github/workflows/build-src.yml +++ b/.github/workflows/build-src.yml @@ -26,3 +26,7 @@ jobs: run: | cmake ../.. -DUSE_CIM_VERSION=${{matrix.schema}} make -j4 + - name: Run unit tests + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/build/${{matrix.schema}}/ + run: ctest --output-on-failure From 0eadafbc3fd787c547d61782496052ad269dfc47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Wed, 9 Jul 2025 23:54:20 +0200 Subject: [PATCH 11/13] Add installation of Boost to Dockerfile for packaging with cpack in release workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- .devcontainer/Dockerfile.dev | 3 ++- package/Dockerfile | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.devcontainer/Dockerfile.dev b/.devcontainer/Dockerfile.dev index 6292eb49d..e2263b17d 100644 --- a/.devcontainer/Dockerfile.dev +++ b/.devcontainer/Dockerfile.dev @@ -12,4 +12,5 @@ RUN dnf -y install \ graphviz \ python3-pip \ rpmdevtools \ - libxml2-devel + libxml2-devel \ + boost-devel diff --git a/package/Dockerfile b/package/Dockerfile index 64c94ed27..dc9b9af52 100644 --- a/package/Dockerfile +++ b/package/Dockerfile @@ -15,7 +15,10 @@ RUN DEBIAN_FRONTEND=noninteractive \ g++ \ libxml2-dev \ make \ - rpm + rpm \ + libboost-filesystem-dev \ + libboost-system-dev \ + libboost-test-dev # Starts on github with workdir /github/workspace which is bind mount to libcimpp. ENTRYPOINT [ "package/entrypoint.sh" ] From f8a860ee0f7c72cdba0680a6c8268627b14acc63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Wed, 9 Jul 2025 23:54:20 +0200 Subject: [PATCH 12/13] Fix unit tests in github workflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- .github/workflows/build-doc.yml | 8 ++++---- .github/workflows/build-src.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-doc.yml b/.github/workflows/build-doc.yml index 8a7aca533..9ca1c31cf 100644 --- a/.github/workflows/build-doc.yml +++ b/.github/workflows/build-doc.yml @@ -29,18 +29,18 @@ jobs: run: sudo apt-get install graphviz - name: Create Build Environment shell: bash - run: cmake -E make_directory ${{runner.workspace}}/libcimpp/build/${{matrix.schema}} + run: cmake -E make_directory ${{runner.workspace}}/libcimpp/build_${{matrix.schema}} - name: Configure CMake and compile shell: bash - working-directory: ${{runner.workspace}}/libcimpp/build/${{matrix.schema}}/ + working-directory: ${{runner.workspace}}/libcimpp/build_${{matrix.schema}}/ run: | - cmake ../.. -DUSE_CIM_VERSION=${{matrix.schema}} + cmake .. -DUSE_CIM_VERSION=${{matrix.schema}} make -j4 doc - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: doc_${{matrix.schema}} - path: ${{runner.workspace}}/libcimpp/build/${{matrix.schema}}/doc/html + path: ${{runner.workspace}}/libcimpp/build_${{matrix.schema}}/doc/html build-gh-pages-artifact: name: Build and Upload Artifact github-pages diff --git a/.github/workflows/build-src.yml b/.github/workflows/build-src.yml index da0f87842..eb5cef740 100644 --- a/.github/workflows/build-src.yml +++ b/.github/workflows/build-src.yml @@ -19,14 +19,14 @@ jobs: shell: bash run: sudo apt-get install libboost-filesystem-dev libboost-system-dev libboost-test-dev - name: Create Build Environment - run: cmake -E make_directory ${{runner.workspace}}/libcimpp/build/${{matrix.schema}} + run: cmake -E make_directory ${{runner.workspace}}/libcimpp/build_${{matrix.schema}} - name: Configure CMake and compile shell: bash - working-directory: ${{runner.workspace}}/libcimpp/build/${{matrix.schema}}/ + working-directory: ${{runner.workspace}}/libcimpp/build_${{matrix.schema}}/ run: | - cmake ../.. -DUSE_CIM_VERSION=${{matrix.schema}} + cmake .. -DUSE_CIM_VERSION=${{matrix.schema}} make -j4 - name: Run unit tests shell: bash - working-directory: ${{runner.workspace}}/libcimpp/build/${{matrix.schema}}/ + working-directory: ${{runner.workspace}}/libcimpp/build_${{matrix.schema}}/ run: ctest --output-on-failure From df65950a20eb5bd814fffe1bdb3c074c11a14f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Wed, 9 Jul 2025 23:54:20 +0200 Subject: [PATCH 13/13] Add missing documentation of parameter objList in CIMWriter.hpp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Günther --- src/CIMWriter.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/CIMWriter.hpp b/src/CIMWriter.hpp index 6730eb8fa..4e7278fca 100644 --- a/src/CIMWriter.hpp +++ b/src/CIMWriter.hpp @@ -32,6 +32,7 @@ class CIMWriter * In this case, modelId and classProfileMap are not required. * * \param path Path of file to write + * \param objList List of CIM objects to write * \param profile Only data for this profile should be written (if specified) * \param modelId Model ID to write into the model description * \param classProfileMap Mapping of CIM type to profile